@kong-ui-public/entities-plugins 9.133.6 → 9.134.0

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(Ie,t){typeof exports=="object"&&typeof module<"u"?t(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("@vueuse/core"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("monaco-editor"),require("monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js"),require("@shikijs/core"),require("@shikijs/engine-javascript"),require("zod"),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","@vueuse/core","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","monaco-editor","monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js","@shikijs/core","@shikijs/engine-javascript","zod","@kong-ui-public/entities-plugins-icon"],t):(Ie=typeof globalThis<"u"?globalThis:Ie||self,t(Ie["kong-ui-public-entities-plugins"]={},Ie.Vue,Ie["kong-ui-public-entities-shared"],Ie.marked,Ie.VueRouter,Ie["kong-ui-public-i18n"],Ie.entitiesPluginsMetadata,Ie.forms,Ie.entitiesVaults,null,Ie.core$1,Ie.KongIcons,Ie.Kongponents,Ie.entitiesRedisConfigurations,null,Ie.monaco,null,Ie.core$2,Ie.engineJavascript,Ie.zod,Ie.entitiesPluginsIcon))})(this,function(Ie,t,ye,Nr,oo,Je,Z,Fe,Oo,W2,je,ve,Be,Os,X2,hg,Z2,$s,yg,ee,$o){"use strict";var H2=Object.defineProperty;var Y2=(Ie,t,ye)=>t in Ie?H2(Ie,t,{enumerable:!0,configurable:!0,writable:!0,value:ye}):Ie[t]=ye;var rt=(Ie,t,ye)=>Y2(Ie,typeof t!="symbol"?t+"":t,ye);function _g(e){const n=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(n,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return n.default=e,Object.freeze(n)}const xr=_g(hg),it={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.",learn_more:"Learn more"}},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."},ace:{name:"Konnect Access Control Enforcement",description:"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{name:"Solace Consume",description:"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{name:"Solace Log",description:"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{name:"AI LLM Judge",description:"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for `llm/v1/chat` requests."},"ai-mcp-proxy":{name:"AI MCP Proxy",description:"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{name:"AI GCP Model Armor",description:"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{name:"AI MCP OAuth2",description:"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{name:"AI Semantic Response Guard",description:"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of `llm/v1/chat` or `llm/v1/completions` requests."},"ai-lakera-guard":{name:"AI Lakera Guard",description:"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."}},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:{disable_data_retrieving:"You do not have permission to select {scope}",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it",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",placeholder:"Search by name or UUID",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Select a gateway service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Select a route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Select a consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Select a 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 the following values is required: {parameters}.",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"These values must be used together: {parameters}.",mutually_exclusive:"Only one of these values can be used: {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:"Set the plugin's behavior by defining its configuration settings."}}},"free-form":{"ai-mcp-proxy":{default_acl_item_label:"Default ACL #{index}",tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request callout",by_lua_placeholder:"Enter Lua script here..."},datakit:{plugin_config:{title:"Flow editor"},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:"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.",description_example:"Start with a use case:",detected_config_format:"Detected {format} configuration. Do you want to convert it to Datakit configuration?",detected_config_format_title:"Convert configuration",detected_config_format_confirm:"Convert",examples:{authenticate:"Authenticate Kong to a third-party service",vault:"Authenticate to a third-party service using vault secrets",combine:"Combine multiple API responses",cache:"Conditionally fetch or store cache data",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow editor",name:"Datakit flow editor",cta:"Go to flow editor",disabled_tooltip:"The flow editor is unavailable. To switch, fix configuration errors or remove unsupported nodes.",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to plugin configuration",canvas_panel:{request:"Request",response:"Response",node_count_plural:"{count} nodes",node_count_singular:"1 node"},panel_segments:{nodes:"Nodes",resources:{title:"Resources",vault:{title:"Vault secrets",add_button:"Add vault resource",name_exists_error:"Vault name already exists",name_required_error:"Vault name is required",edit:"Edit",delete:"Delete"},cache:{title:"Cache configuration",add_button:"Add cache configuration",strategy_options:{memory:"Memory",redis:"Redis"},select_redis_configuration:"Select a shared Redis configuration",inline_config:"Inline config",inline_config_preview:"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},vault_secret_picker:{title:"Add secret to Datakit",proceed_button_text:"Add secret",secret_name:{label:"Secret name",placeholder:"Enter a name",help:"A unique identifier for this secret in your Datakit configuration"}},node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},examples:"Examples",debug:{label:"Debug",description:'Enables detailed error messages in client responses, making debugging easier. <a href="https://developer.konghq.com/plugins/datakit/#debugging" target="_blank">See the docs</a> for details.'},actions:{zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Zoom to fit",auto_layout:"Auto layout",undo:"Undo",redo:"Redo",duplicate:"Duplicate",remove_from_branch:"Remove from branch",delete:"Delete",view_docs:"View docs",done:"Done"},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 <code>jq</code> 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 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-specific data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Configure static input values ahead of time",description:"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},branch:{name:"branch",summary:"Execute nodes based on matching input conditions",description:"Execute different nodes based on matching input conditions, such as a cache hit or miss."},cache:{name:"cache",summary:"Store and fetch cached data",description:"Store data into cache and fetch cached data from cache."},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."},vault:{name:"Vault",description:"Vault is a tool for securely accessing secrets."}},node_properties:{name:"Name",configuration:"Configuration",input:{label:"Inputs configuration",placeholder:"Select a source",add_button:"Add an input",or:"or",input:"Input",fields:"Fields",source:"Source",tooltip:"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},input_name:{label:"Input name",placeholder:"Enter an input name"},jq:{label:"jq script",help:"Refer to {link} for full documentation."},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},branch:{placeholder:"Select nodes"},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",reserved_node_name:'"{nodeName}" is a reserved node name'}},error:{invalid_connection:"Invalid connection",branch_cycle:"Cannot create a circular branch relationship"},confirm:{title:"Connection conflict",message:{confirm:"Are you sure you want to make this change?",switch:"You can connect an output source to either all inputs of a node or to individual inputs.",override:"Each input can connect to only one output, but one output can connect to many inputs.",branch_replace:"This node already belongs to another branch. Move it to the new branch?"},proceed:"Yes, update"},leave_confirm:"Leave current page? Changes you made may not be saved.",phase_mask_help:"You can't add call nodes in the response phase."},code_editor:{mode:"Code editor"}},vault_picker:{component_error:"The vault secret picker is not available"},tag_helper:"Use comma to separate values. eg: value1, value2",foreign_placeholder:"Enter a UUID of {entity}"}},redis:{title:"Redis Configuration",shared_configuration:{label:"Shared configuration",description:"Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed."},dedicated_configuration:{label:"Dedicated configuration",description:"Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins."},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}}},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(Ie,t){typeof exports=="object"&&typeof module<"u"?t(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("@vueuse/core"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("monaco-editor"),require("monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js"),require("@shikijs/core"),require("@shikijs/engine-javascript"),require("zod"),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","@vueuse/core","@kong/icons","@kong/kongponents","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","monaco-editor","monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js","@shikijs/core","@shikijs/engine-javascript","zod","@kong-ui-public/entities-plugins-icon"],t):(Ie=typeof globalThis<"u"?globalThis:Ie||self,t(Ie["kong-ui-public-entities-plugins"]={},Ie.Vue,Ie["kong-ui-public-entities-shared"],Ie.marked,Ie.VueRouter,Ie["kong-ui-public-i18n"],Ie.entitiesPluginsMetadata,Ie.forms,Ie.entitiesVaults,null,Ie.core$1,Ie.KongIcons,Ie.Kongponents,Ie.entitiesRedisConfigurations,null,Ie.monaco,null,Ie.core$2,Ie.engineJavascript,Ie.zod,Ie.entitiesPluginsIcon))})(this,function(Ie,t,ye,Nr,oo,Je,Z,Fe,Oo,W2,je,ve,Be,Os,X2,hg,Z2,$s,yg,ee,$o){"use strict";var H2=Object.defineProperty;var Y2=(Ie,t,ye)=>t in Ie?H2(Ie,t,{enumerable:!0,configurable:!0,writable:!0,value:ye}):Ie[t]=ye;var rt=(Ie,t,ye)=>Y2(Ie,typeof t!="symbol"?t+"":t,ye);function _g(e){const n=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(n,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return n.default=e,Object.freeze(n)}const xr=_g(hg),it={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",deck:"decK"},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.",learn_more:"Learn more"}},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."},ace:{name:"Konnect Access Control Enforcement",description:"Enable Developer Self-Service for Konnect Dev Portals."},"solace-consume":{name:"Solace Consume",description:"Consume messages from Solace and make them available through HTTP endpoints."},"solace-log":{name:"Solace Log",description:"Publish request and response logs to a Solace topic."},"ai-llm-as-judge":{name:"AI LLM Judge",description:"Evaluate LLM responses with an external LLM service and use accuracy scores to drive dynamic load balancing for `llm/v1/chat` requests."},"ai-mcp-proxy":{name:"AI MCP Proxy",description:"Convert APIs into MCP tools, proxy MCP servers, expose multiple MCP tools, and observe MCP traffic in real time."},"ai-gcp-model-armor":{name:"AI GCP Model Armor",description:"Audit and validate AI Proxy messages with Google Cloud Model Armor before forwarding them to an upstream LLM."},"ai-mcp-oauth2":{name:"AI MCP OAuth2",description:"Secure MCP server access with OAuth2 authentication."},"ai-semantic-response-guard":{name:"AI Semantic Response Guard",description:"Permit or block prompts based on semantic similarity to known LLM responses, preventing misuse of `llm/v1/chat` or `llm/v1/completions` requests."},"ai-lakera-guard":{name:"AI Lakera Guard",description:"Audit and enforce safety policies on LLM requests and responses using the AI AWS Lakera plugin before they reach upstream LLMs."}},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:{disable_data_retrieving:"You do not have permission to select {scope}",disable_source_scope_change:"Changing the {scope} is not allowed when configuring a plugin under it",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",placeholder:"Search by name or UUID",global:{label:"Global",help:"All services, routes, and consumers"},gateway_service:{label:"Select a gateway service",help:"The Gateway Service to which this plugin configuration will apply",placeholder:"Select a Gateway Service",plural:"Gateway Services"},route:{label:"Select a route",help:"The Route that this Plugin configuration will target",placeholder:"Select a Route",plural:"Routes"},consumer:{label:"Select a consumer",help:"The Consumer that this plugin configuration will target",placeholder:"Select a Consumer",plural:"Consumers"},consumer_group:{label:"Select a 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 the following values is required: {parameters}.",only_one_of:"Exactly one of these parameters is required: {parameters}",mutually_required:"These values must be used together: {parameters}.",mutually_exclusive:"Only one of these values can be used: {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:"Set the plugin's behavior by defining its configuration settings."}}},"free-form":{"ai-mcp-proxy":{default_acl_item_label:"Default ACL #{index}",tool_item_label:"Tool #{index}"},"request-callout":{entity_name:"Request callout",by_lua_placeholder:"Enter Lua script here..."},datakit:{plugin_config:{title:"Flow editor"},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:"Build flows visually with a drag-and-drop editor for Datakit. Visualize node connections, inputs, and outputs as you design.",description_example:"Start with a use case:",detected_config_format:"Detected {format} configuration. Do you want to convert it to Datakit configuration?",detected_config_format_title:"Convert configuration",detected_config_format_confirm:"Convert",examples:{authenticate:"Authenticate Kong to a third-party service",vault:"Authenticate to a third-party service using vault secrets",combine:"Combine multiple API responses",cache:"Conditionally fetch or store cache data",manipulate:"Manipulate request headers"},flow_editor:{mode:"Flow editor",name:"Datakit flow editor",cta:"Go to flow editor",disabled_tooltip:"The flow editor is unavailable. To switch, fix configuration errors or remove unsupported nodes.",expand_panel:"Expand panel",collapse_panel:"Collapse panel",return_to_config:"Return to plugin configuration",canvas_panel:{request:"Request",response:"Response",node_count_plural:"{count} nodes",node_count_singular:"1 node"},panel_segments:{nodes:"Nodes",resources:{title:"Resources",vault:{title:"Vault secrets",add_button:"Add vault resource",name_exists_error:"Vault name already exists",name_required_error:"Vault name is required",edit:"Edit",delete:"Delete"},cache:{title:"Cache configuration",add_button:"Add cache configuration",strategy_options:{memory:"Memory",redis:"Redis"},select_redis_configuration:"Select a shared Redis configuration",inline_config:"Inline config",inline_config_preview:"You are using a dedicated Redis configuration, This is a preview of your current setup, please edit it in code editor"}}},vault_secret_picker:{title:"Add secret to Datakit",proceed_button_text:"Add secret",secret_name:{label:"Secret name",placeholder:"Enter a name",help:"A unique identifier for this secret in your Datakit configuration"}},node_panel:{title:"Node types",description:"Drag a node onto the canvas to add it to your data flow."},examples:"Examples",debug:{label:"Debug",description:'Enables detailed error messages in client responses, making debugging easier. <a href="https://developer.konghq.com/plugins/datakit/#debugging" target="_blank">See the docs</a> for details.'},actions:{zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Zoom to fit",auto_layout:"Auto layout",undo:"Undo",redo:"Redo",duplicate:"Duplicate",remove_from_branch:"Remove from branch",delete:"Delete",view_docs:"View docs",done:"Done"},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 <code>jq</code> 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 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-specific data",description:"Get and set Kong Gateway host and request properties."},static:{name:"static",summary:"Configure static input values ahead of time",description:"Emits static values to be used as inputs for other nodes. The <code>static</code> node can help you with hardcoding some known value for an input."},branch:{name:"branch",summary:"Execute nodes based on matching input conditions",description:"Execute different nodes based on matching input conditions, such as a cache hit or miss."},cache:{name:"cache",summary:"Store and fetch cached data",description:"Store data into cache and fetch cached data from cache."},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."},vault:{name:"Vault",description:"Vault is a tool for securely accessing secrets."}},node_properties:{name:"Name",configuration:"Configuration",input:{label:"Inputs configuration",placeholder:"Select a source",add_button:"Add an input",or:"or",input:"Input",fields:"Fields",source:"Source",tooltip:"Fields are part of the node input. A source can connect to either the fields or the input, but not both."},input_name:{label:"Input name",placeholder:"Enter an input name"},jq:{label:"jq script",help:"Refer to {link} for full documentation."},output_value:{label:"Output value",value_name:"Value name",value:"Value",add_button:"Add a value"},property:{get:"get",set:"set"},branch:{placeholder:"Select nodes"},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",reserved_node_name:'"{nodeName}" is a reserved node name'}},error:{invalid_connection:"Invalid connection",branch_cycle:"Cannot create a circular branch relationship"},confirm:{title:"Connection conflict",message:{confirm:"Are you sure you want to make this change?",switch:"You can connect an output source to either all inputs of a node or to individual inputs.",override:"Each input can connect to only one output, but one output can connect to many inputs.",branch_replace:"This node already belongs to another branch. Move it to the new branch?"},proceed:"Yes, update"},leave_confirm:"Leave current page? Changes you made may not be saved.",phase_mask_help:"You can't add call nodes in the response phase."},code_editor:{mode:"Code editor"}},vault_picker:{component_error:"The vault secret picker is not available"},tag_helper:"Use comma to separate values. eg: value1, value2",foreign_placeholder:"Enter a UUID of {entity}"}},redis:{title:"Redis Configuration",shared_configuration:{label:"Shared configuration",description:"Select an existing shared Redis configuration or create a new one. Changes to this configuration automatically apply to all associated plugins.",title:"Shared Redis Configuration",error:"Fetching shared Redis configurations failed."},dedicated_configuration:{label:"Dedicated configuration",description:"Create a Redis configuration that is used only by this plugin. Changes won’t affect other plugins."},config_card:{common_fields:{created_at_label:"Created at",updated_at_label:"Last Updated at",type_label:"Redis Type"}}},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 De(){const e=Je.createI18n("en-us",it);return{i18n:e,i18nT:Je.i18nTComponent(e)}}function Bs(){const{capitalize:e}=ye.useStringHelpers(),n=["methods","logout_methods"];return{setFieldType:(u,p,m)=>{var g,_,y;if(!(!u||!p||!m))switch(m.type){case"boolean":u[p]={type:ye.ConfigurationSchemaType.BadgeStatus,...u[p]};break;case"string":m.encrypted?u[p]={type:ye.ConfigurationSchemaType.Redacted,...u[p]}:u[p]={type:ye.ConfigurationSchemaType.Text,...u[p]};break;case"set":((g=m.elements)==null?void 0:g.type)==="string"&&(u[p]={type:ye.ConfigurationSchemaType.BadgeTag,...u[p]});break;case"array":n.includes(p)?u[p]={type:ye.ConfigurationSchemaType.BadgeMethod,...u[p]}:((_=m.elements)==null?void 0:_.type)==="string"?m.encrypted?u[p]={type:ye.ConfigurationSchemaType.RedactedArray,...u[p]}:u[p]={type:ye.ConfigurationSchemaType.BadgeTag,...u[p]}:((y=m.elements)==null?void 0:y.type)==="record"&&(u[p]={type:ye.ConfigurationSchemaType.Json,...u[p]});break;case"record":u[p]={type:ye.ConfigurationSchemaType.Json,...u[p]};break;default:u[p]={type:ye.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((_,y,h)=>_[y]||(_[y]=isNaN(g[h+1])?g.length-1===h?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(y=>{y.match(_)&&delete u[y]}):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 Sr=(e=>(e.REDIS_CE="redis-ce",e.REDIS_EE="redis-ee",e))(Sr||{});const Vs=[Z.PluginGroup.AUTHENTICATION,Z.PluginGroup.AI,Z.PluginGroup.SECURITY,Z.PluginGroup.TRAFFIC_CONTROL,Z.PluginGroup.SERVERLESS,Z.PluginGroup.ANALYTICS_AND_MONITORING,Z.PluginGroup.TRANSFORMATIONS,Z.PluginGroup.LOGGING,Z.PluginGroup.DEPLOYMENT,Z.PluginGroup.WEBSOCKET,Z.PluginGroup.CUSTOM_PLUGINS],Rs={[Z.PluginGroup.AUTHENTICATION]:!1,[Z.PluginGroup.AI]:!1,[Z.PluginGroup.SECURITY]:!1,[Z.PluginGroup.TRAFFIC_CONTROL]:!1,[Z.PluginGroup.SERVERLESS]:!1,[Z.PluginGroup.ANALYTICS_AND_MONITORING]:!1,[Z.PluginGroup.TRANSFORMATIONS]:!1,[Z.PluginGroup.LOGGING]:!1,[Z.PluginGroup.DEPLOYMENT]:!1,[Z.PluginGroup.CUSTOM_PLUGINS]:!1};var Nn=(e=>(e.SERVICE="service_id",e.ROUTE="route_id",e.CONSUMER="consumer_id",e.CONSUMER_GROUP="consumer_group_id",e))(Nn||{});const xn=e=>{const n=Object.fromEntries(e.fields.map(o=>Object.entries(o)[0]));return"id"in n||(n.id={}),n},Sn={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"},ro={getColumnFields:xn,tags:Sn,id:{label:"ID"},enabled:{label:"Enabled",indexed:!0,type:"boolean"},created_at:{label:"Created"},updated_at:{label:"Last updated"},fields:{arrayItems(e){const n=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"},...n},removeElementButtonLabel:"remove",styleClasses:"kong-form-field-wrapper",inputType:"text",valueType:"array",valueArrayType:"string",...e}}}},Ds={fields:[{group:{hint:"The arbitrary group name to associate to the consumer."}},{tags:Sn}]},bg={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"}}]},Ms={fields:[{username:{}},{password:{inputType:"password"}},{tags:Sn}]},wg={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"}}]},Ls=t.defineComponent({name:"KeyAuthIdentityRealmsBase",__name:"Base",props:{modelValue:{default:[{scope:"cp",id:null,region:null}]},modelModifiers:{}},emits:["update:modelValue"],setup(e){const n=t.useModel(e,"modelValue"),{i18n:o}=Ke.useI18n(),{t:r}=o,i={value:"current-cp",label:r("custom_field.key_auth_identity_realms.cp_label"),group:r("custom_field.key_auth_identity_realms.cp_group_label")},a=t.inject(Fe.FORMS_CONFIG),{axiosInstance:l}=ye.useAxios(a==null?void 0:a.axiosRequestConfig),s=()=>{if((a==null?void 0:a.app)==="konnect"){const m=/\b(us|eu|au|me|in)\b/.exec((a==null?void 0:a.apiBaseUrl)||"");if(m)return{region:m[1]}}return{}},c=t.ref(!0),d=t.ref([i]),f=async()=>{if((a==null?void 0:a.app)==="konnect")try{c.value=!0;let m=`${a==null?void 0:a.apiBaseUrl}/v1/realms`;const g=[];do{const _=await l.get(m);_&&_.data&&_.data.data&&g.push(..._.data.data.map(y=>({value:y.id,label:y.name,group:r("custom_field.key_auth_identity_realms.realm_group_label")}))),m=_.data.meta.next?`${a==null?void 0:a.apiBaseUrl}${_.data.meta.next}`:null}while(m);d.value=[i,...g]}catch(m){console.error("Failed to fetch Konnect realms",m)}finally{c.value=!1}},u=t.computed(()=>n.value.map(m=>m.id||"current-cp")),p=m=>{const g=m.includes("current-cp")?[{scope:"cp",id:null,region:null}]:[],_=n.value.filter(({scope:N})=>N!=="cp").map(({id:N})=>N),y=m.filter(N=>N!=="current-cp"),b=(_.length!==y.length||_.some(N=>!y.includes(N))?y.filter(N=>!_.includes(N)):y).map(N=>({...s(),scope:"realm",id:N}));n.value=[...g,...b]};return t.onMounted(()=>{f()}),(m,g)=>{const _=t.resolveComponent("KMultiselect");return t.openBlock(),t.createBlock(_,{items:d.value,loading:c.value,"model-value":u.value,"onUpdate:modelValue":p},null,8,["items","loading","model-value"])}}}),kg={class:"field-wrapper"},Cg=t.defineComponent({__name:"VfgAdapter",props:{disabled:{type:Boolean},formOptions:{},model:{},schema:{},vfg:{},errors:{},hint:{}},emits:["modelUpdated"],setup(e,{expose:n,emit:o}){const r=e,i=o,{clearValidationErrors:a,value:l}=Fe.composables.useAbstractFields({model:t.toRef(()=>r.model),schema:r.schema,formOptions:r.formOptions,emitModelUpdated:s=>{i("modelUpdated",s.value,s.model)}});return n({clearValidationErrors:a}),(s,c)=>(t.openBlock(),t.createElementBlock("div",kg,[t.createVNode(Ls,{modelValue:t.unref(l),"onUpdate:modelValue":c[0]||(c[0]=d=>t.isRef(l)?l.value=d:null)},null,8,["modelValue"])]))}}),Ae=(e,n)=>{const o=e.__vccOpts||e;for(const[r,i]of n)o[r]=i;return o},Eg=Ae(Cg,[["__scopeId","data-v-269e85ed"]]),Fs={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.`,inputType:"password",encrypted:!0}},{tags:Sn},{ttl:{help:"Time-to-live (in seconds) value for data"}}]},Ng=e=>{var n;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:((n=e==null?void 0:e.experimentalRenders)==null?void 0:n.keyAuthIdentityRealms)??!1?t.markRaw(Eg):null}}},xg={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",encrypted:!0,unique:!0}},{tags:{elements:{type:"string",required:!0},type:"set"}},{ttl:{between:[0,1e8],description:"Time-to-live (in seconds) value for data",type:"number"}}]},Us={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
@@ -231,4 +231,4 @@ Edge: ${e}
231
231
  Source: ${n}
232
232
  Target: ${o}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed
233
233
  Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found
234
- 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 lt extends Error{constructor(n,...o){var r;super((r=gp[n])==null?void 0:r.call(gp,...o)),this.name="VueFlowError",this.code=n,this.args=o}}function Yl(e){return"clientX"in e}function FA(e){return"sourceEvent"in e}function zt(e,n){const o=Yl(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-((n==null?void 0:n.left)??0),y:i-((n==null?void 0:n.top)??0)}}const Oi=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function UA(e){var n,o;return{width:((n=e.dimensions)==null?void 0:n.width)??e.width??0,height:((o=e.dimensions)==null?void 0:o.height)??e.height??0}}function $i(e,n=[1,1]){return{x:n[0]*Math.round(e.x/n[0]),y:n[1]*Math.round(e.y/n[1])}}const KA=()=>!0;function Wl(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function jA(e,n,o){const r=[],i={x:e.x-o,y:e.y-o,width:o*2,height:o*2};for(const a of n.values())Ii(i,Ai(a))>0&&r.push(a);return r}const GA=250;function qA(e,n,o,r){var i,a;let l=[],s=Number.POSITIVE_INFINITY;const c=jA(e,o,n+GA);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}=vo(d,u,u.position,!0),g=Math.sqrt((p-e.x)**2+(m-e.y)**2);g>n||(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 hp(e,{handle:n,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:c,isValidConnection:d=KA},f,u,p){const m=a==="target",g=n?l.querySelector(`.${s}-flow__handle[data-id="${c}-${n==null?void 0:n.nodeId}-${n==null?void 0:n.id}-${n==null?void 0:n.type}"]`):null,{x:_,y}=zt(e),h=l.elementFromPoint(_,y),k=h!=null&&h.classList.contains(`${s}-flow__handle`)?h:g,b={handleDomNode:k,isValid:!1,connection:null,toHandle:null};if(k){const N=yp(void 0,k),E=k.getAttribute("data-nodeid"),C=k.getAttribute("data-handleid"),x=k.classList.contains("connectable"),A=k.classList.contains("connectableend");if(!E||!N)return b;const v={source:m?E:r,sourceHandle:m?C:i,target:m?r:E,targetHandle:m?i:C};b.connection=v;const I=x&&A&&(o===yn.Strict?m&&N==="source"||!m&&N==="target":E!==r||C!==i);b.isValid=I&&d(v,{nodes:u,edges:f,sourceNode:p(r),targetNode:p(E)}),b.toHandle=n}return b}function yp(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function zA(e,n){let o=null;return n?o="valid":e&&!n&&(o="invalid"),o}function HA(e,n){let o=null;return n?o=!0:e&&!n&&(o=!1),o}function YA(e,n,o,r,i,a=!1){var l,s,c;const d=r.get(e);if(!d)return null;const f=i===yn.Strict?(l=d.handleBounds)==null?void 0:l[n]:[...((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,...vo(d,u,u.position,!0)}:u}const Xl={[Ne.Left]:Ne.Right,[Ne.Right]:Ne.Left,[Ne.Top]:Ne.Bottom,[Ne.Bottom]:Ne.Top},WA=["production","prod"];function Bi(e,...n){_p()&&console.warn(`[Vue Flow]: ${e}`,...n)}function _p(){return!WA.includes(process.env.NODE_ENV||"")}function bp(e,n,o,r,i){const a=n.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,...Pi(l)}}):null}function Zl(e,n,o,r,i,a=!1,l){i.value=!1,e.selected?(a||e.selected&&n)&&(r([e]),t.nextTick(()=>{l.blur()})):o([e])}function tt(e){return typeof t.unref(e)<"u"}function XA(e,n,o,r){if(!e||!e.source||!e.target)return o(new lt(et.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return _n(e)?i=e:i={...e,id:Qf(e)},i=Zf(i,void 0,r),PA(i,n)?!1:i}function ZA(e,n,o,r,i){if(!n.source||!n.target)return i(new lt(et.EDGE_INVALID,e.id)),!1;if(!o)return i(new lt(et.EDGE_NOT_FOUND,e.id)),!1;const{id:a,...l}=e;return{...l,id:r?Qf(n):a,source:n.source,target:n.target,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle}}function wp(e,n,o){const r={},i=[];for(let a=0;a<e.length;++a){const l=e[a];if(!Hn(l)){o(new lt(et.NODE_INVALID,l==null?void 0:l.id)||`[ID UNKNOWN|INDEX ${a}]`);continue}const s=vA(l,n(l.id),l.parentNode);l.parentNode&&(r[l.parentNode]=!0),i[a]=s}for(const a of i){const l=n(a.parentNode)||i.find(s=>s.id===a.parentNode);a.parentNode&&!l&&o(new lt(et.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 kp(e,n,o,r,i,a){let l=i;const s=r.get(l)||new Map;r.set(l,s.set(o,n)),l=`${i}-${e}`;const c=r.get(l)||new Map;if(r.set(l,c.set(o,n)),a){l=`${i}-${e}-${a}`;const d=r.get(l)||new Map;r.set(l,d.set(o,n))}}function Jl(e,n,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}`;kp("source",c,f,e,i,l),kp("target",c,d,e,a,s)}}function Cp(e,n){if(e.size!==n.size)return!1;for(const o of e)if(!n.has(o))return!1;return!0}function Ql(e,n,o,r,i,a,l,s){const c=[];for(const d of e){const f=_n(d)?d:XA(d,s,i,a);if(!f)continue;const u=o(f.source),p=o(f.target);if(!u||!p){i(new lt(et.EDGE_SOURCE_TARGET_MISSING,f.id,f.source,f.target));continue}if(!u){i(new lt(et.EDGE_SOURCE_MISSING,f.id,f.source));continue}if(!p){i(new lt(et.EDGE_TARGET_MISSING,f.id,f.target));continue}if(n&&!n(f,{edges:s,nodes:l,sourceNode:u,targetNode:p})){i(new lt(et.EDGE_INVALID,f.id));continue}const m=r(f.id);c.push({...Zf(f,m,a),sourceNode:u,targetNode:p})}return c}const Ep=Symbol("vueFlow"),Np=Symbol("nodeId"),xp=Symbol("nodeRef"),JA=Symbol("edgeId"),QA=Symbol("edgeRef"),Vi=Symbol("slots");function Sp(e){const{vueFlowRef:n,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:y,removeSelectedElements:h,addSelectedNodes:k,updateNodePositions:b,emits:N}=Le(),{onStart:E,onDrag:C,onStop:x,onClick:A,el:v,disabled:T,id:I,selectable:w,dragHandle:F}=e,S=t.shallowRef(!1);let U=[],B,oe=null,ie={x:void 0,y:void 0},M={x:0,y:0},L=null,O=!1,R=0,H=!1;const te=nI(),W=({x:q,y:ae})=>{ie={x:q,y:ae};let ce=!1;if(U=U.map($=>{const P={x:q-$.distance.x,y:ae-$.distance.y},{computedPosition:V}=Hl($,o.value?$i(P,r.value):P,N.error,l.value,$.parentNode?m($.parentNode):void 0);return ce=ce||$.position.x!==V.x||$.position.y!==V.y,$.position=V,$}),!!ce&&(b(U,!0,!0),S.value=!0,L)){const[$,P]=zl({id:I,dragItems:U,findNode:m});C({event:L,node:$,nodes:P})}},j=()=>{if(!oe)return;const[q,ae]=lp(M,oe,f.value);if(q!==0||ae!==0){const ce={x:(ie.x??0)-q/c.value.zoom,y:(ie.y??0)-ae/c.value.zoom};p({x:q,y:ae})&&W(ce)}R=requestAnimationFrame(j)},se=(q,ae)=>{O=!0;const ce=m(I);!y.value&&!g.value&&ce&&(ce.selected||h()),ce&&t.toValue(w)&&y.value&&Zl(ce,g.value,k,h,_,!1,ae);const $=te(q.sourceEvent);if(ie=$,U=BA(a.value,u.value,$,m,I),U.length){const[P,V]=zl({id:I,dragItems:U,findNode:m});E({event:q.sourceEvent,node:P,nodes:V})}},ue=(q,ae)=>{var ce;q.sourceEvent.type==="touchmove"&&q.sourceEvent.touches.length>1||(s.value===0&&se(q,ae),ie=te(q.sourceEvent),oe=((ce=n.value)==null?void 0:ce.getBoundingClientRect())||null,M=zt(q.sourceEvent,oe))},ge=(q,ae)=>{const ce=te(q.sourceEvent);if(!H&&O&&d.value&&(H=!0,j()),!O){const $=ce.xSnapped-(ie.x??0),P=ce.ySnapped-(ie.y??0);Math.sqrt($*$+P*P)>s.value&&se(q,ae)}(ie.x!==ce.xSnapped||ie.y!==ce.ySnapped)&&U.length&&O&&(L=q.sourceEvent,M=zt(q.sourceEvent,oe),W(ce))},re=q=>{let ae=!1;if(!O&&!S.value&&!g.value){const ce=q.sourceEvent,$=te(ce),P=$.xSnapped-(ie.x??0),V=$.ySnapped-(ie.y??0),D=Math.sqrt(P*P+V*V);D!==0&&D<=s.value&&(A==null||A(ce),ae=!0)}if(U.length&&!ae){b(U,!1,!1);const[ce,$]=zl({id:I,dragItems:U,findNode:m});x({event:q.sourceEvent,node:ce,nodes:$})}U=[],S.value=!1,H=!1,O=!1,ie={x:void 0,y:void 0},cancelAnimationFrame(R)};return t.watch([()=>t.toValue(T),v],([q,ae],ce,$)=>{if(ae){const P=Rt(ae);q||(B=SS().on("start",V=>ue(V,ae)).on("drag",V=>ge(V,ae)).on("end",V=>re(V)).filter(V=>{const D=V.target,ne=t.toValue(F);return!V.button&&(!i.value||!fp(D,`.${i.value}`,ae)&&(!ne||fp(D,ne,ae)))}),P.call(B)),$(()=>{P.on(".drag",null),B&&(B.on("start",null),B.on("drag",null),B.on("end",null))})}}),S}function eI(){return{doubleClick:Ee(),click:Ee(),mouseEnter:Ee(),mouseMove:Ee(),mouseLeave:Ee(),contextMenu:Ee(),updateStart:Ee(),update:Ee(),updateEnd:Ee()}}function tI(e,n){const o=eI();return o.doubleClick.on(r=>{var i,a;n.edgeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;n.edgeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;n.edgeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;n.edgeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;n.edgeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;n.edgeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.updateStart.on(r=>{var i,a;n.edgeUpdateStart(r),(a=(i=e.events)==null?void 0:i.updateStart)==null||a.call(i,r)}),o.update.on(r=>{var i,a;n.edgeUpdate(r),(a=(i=e.events)==null?void 0:i.update)==null||a.call(i,r)}),o.updateEnd.on(r=>{var i,a;n.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 nI(){const{viewport:e,snapGrid:n,snapToGrid:o,vueFlowRef:r}=Le();return i=>{var a;const l=((a=r.value)==null?void 0:a.getBoundingClientRect())??{left:0,top:0},s=FA(i)?i.sourceEvent:i,{x:c,y:d}=zt(s,l),f=gr({x:c,y:d},e.value),{x:u,y:p}=o.value?$i(f,n.value):f;return{xSnapped:u,ySnapped:p,...f}}}function Ri(){return!0}function vp({handleId:e,nodeId:n,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:y,panBy:h,startConnection:k,updateConnection:b,endConnection:N,emits:E,viewport:C,edges:x,nodes:A,isValidConnection:v,nodeLookup:T}=Le();let I=null,w=!1,F=null;function S(B){var oe;const ie=t.toValue(o)==="target",M=Yl(B),L=Xf(B.target);if(M&&B.button===0||!M){let O=function(le){$=zt(le,q),W=qA(gr($,C.value,!1,[1,1]),f.value,T.value,D),P||(V(),P=!0);const G=hp(le,{handle:W,connectionMode:d.value,fromNodeId:t.toValue(n),fromHandleId:t.toValue(e),fromType:ie?"target":"source",isValidConnection:te,doc:L,lib:"vue",flowId:s,nodeLookup:T.value},x.value,A.value,y);F=G.handleDomNode,I=G.connection,w=HA(!!W,G.isValid);const z={...K,isValid:w,to:G.toHandle&&w?Gl({x:G.toHandle.x,y:G.toHandle.y},C.value):$,toHandle:G.toHandle,toPosition:w&&G.toHandle?G.toHandle.position:Xl[D.position],toNode:G.toHandle?T.value.get(G.toHandle.nodeId):null};if(!(w&&W&&(K!=null&&K.toHandle)&&z.toHandle&&K.toHandle.type===z.toHandle.type&&K.toHandle.nodeId===z.toHandle.nodeId&&K.toHandle.id===z.toHandle.id&&K.to.x===z.to.x&&K.to.y===z.to.y)){if(b(W&&w?Gl({x:W.x,y:W.y},C.value):$,G.toHandle,zA(!!W,w)),K=z,!W&&!w&&!F)return Wl(ce);I&&I.source!==I.target&&F&&(Wl(ce),ce=F,F.classList.add("connecting","vue-flow__handle-connecting"),F.classList.toggle("valid",!!w),F.classList.toggle("vue-flow__handle-valid",!!w))}},R=function(le){(W||F)&&I&&w&&(a?a(le,I):E.connect(I)),E.connectEnd(le),i&&(l==null||l(le)),Wl(ce),cancelAnimationFrame(j),N(le),P=!1,w=!1,I=null,F=null,L.removeEventListener("mousemove",O),L.removeEventListener("mouseup",R),L.removeEventListener("touchmove",O),L.removeEventListener("touchend",R)};const H=y(t.toValue(n));let te=t.toValue(r)||v.value||Ri;!te&&H&&(te=(ie?H.isValidSourcePos:H.isValidTargetPos)||Ri);let W,j=0;const{x:se,y:ue}=zt(B),ge=L==null?void 0:L.elementFromPoint(se,ue),re=yp(t.toValue(i),ge),q=(oe=c.value)==null?void 0:oe.getBoundingClientRect();if(!q||!re)return;const ae=YA(t.toValue(n),re,t.toValue(e),T.value,d.value);if(!ae)return;let ce,$=zt(B,q),P=!1;const V=()=>{if(!g.value)return;const[le,G]=lp($,q,_.value);h({x:le,y:G}),j=requestAnimationFrame(V)},D={...ae,nodeId:t.toValue(n),type:re,position:ae.position},ne=T.value.get(t.toValue(n)),Y={inProgress:!0,isValid:null,from:vo(ne,D,Ne.Left,!0),fromHandle:D,fromPosition:D.position,fromNode:ne,to:$,toHandle:null,toPosition:Xl[D.position],toNode:null};k({nodeId:t.toValue(n),id:t.toValue(e),type:re,position:(ge==null?void 0:ge.getAttribute("data-handlepos"))||Ne.Top,...$},{x:se-q.left,y:ue-q.top}),E.connectStart({event:B,nodeId:t.toValue(n),handleId:t.toValue(e),handleType:re});let K=Y;L.addEventListener("mousemove",O),L.addEventListener("mouseup",R),L.addEventListener("touchmove",O),L.addEventListener("touchend",R)}}function U(B){var oe,ie;if(!u.value)return;const M=t.toValue(o)==="target";if(!p.value){E.clickConnectStart({event:B,nodeId:t.toValue(n),handleId:t.toValue(e)}),k({nodeId:t.toValue(n),type:t.toValue(o),id:t.toValue(e),position:Ne.Top,...zt(B)},void 0,!0);return}let L=t.toValue(r)||v.value||Ri;const O=y(t.toValue(n));if(!L&&O&&(L=(M?O.isValidSourcePos:O.isValidTargetPos)||Ri),O&&(typeof O.connectable>"u"?m.value:O.connectable)===!1)return;const R=Xf(B.target),H=hp(B,{handle:{nodeId:t.toValue(n),id:t.toValue(e),type:t.toValue(o),position:Ne.Top,...zt(B)},connectionMode:d.value,fromNodeId:p.value.nodeId,fromHandleId:p.value.id??null,fromType:p.value.type,isValidConnection:L,doc:R,lib:"vue",flowId:s,nodeLookup:T.value},x.value,A.value,y),te=((oe=H.connection)==null?void 0:oe.source)===((ie=H.connection)==null?void 0:ie.target);H.isValid&&H.connection&&!te&&E.connect(H.connection),E.clickConnectEnd(B),N(B,!0)}return{handlePointerDown:S,handleClick:U}}function oI(){return t.inject(Np,"")}function Ap(e){const n=e??oI()??"",o=t.inject(xp,t.ref(null)),{findNode:r,edges:i,emits:a}=Le(),l=r(n);return l||a.error(new lt(et.NODE_NOT_FOUND,n)),{id:n,nodeEl:o,node:l,parentNode:t.computed(()=>r(l.parentNode)),connectedEdges:t.computed(()=>op([l],i.value))}}function rI(){return{doubleClick:Ee(),click:Ee(),mouseEnter:Ee(),mouseMove:Ee(),mouseLeave:Ee(),contextMenu:Ee(),dragStart:Ee(),drag:Ee(),dragStop:Ee()}}function iI(e,n){const o=rI();return o.doubleClick.on(r=>{var i,a;n.nodeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;n.nodeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;n.nodeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;n.nodeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;n.nodeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;n.nodeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.dragStart.on(r=>{var i,a;n.nodeDragStart(r),(a=(i=e.events)==null?void 0:i.dragStart)==null||a.call(i,r)}),o.drag.on(r=>{var i,a;n.nodeDrag(r),(a=(i=e.events)==null?void 0:i.drag)==null||a.call(i,r)}),o.dragStop.on(r=>{var i,a;n.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 Ip(){const{getSelectedNodes:e,nodeExtent:n,updateNodePositions:o,findNode:r,snapGrid:i,snapToGrid:a,nodesDraggable:l,emits:s}=Le();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 y of e.value)if(y.draggable||l&&typeof y.draggable>"u"){const h={x:y.computedPosition.x+m,y:y.computedPosition.y+g},{computedPosition:k}=Hl(y,h,s.error,n.value,y.parentNode?r(y.parentNode):void 0);_.push({id:y.id,position:k,from:y.position,distance:{x:c.x,y:c.y},dimensions:y.dimensions})}o(_,!0,!1)}}const es=.1,aI=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function kn(){return Bi("Viewport not initialized yet."),Promise.resolve(!1)}const lI={zoomIn:kn,zoomOut:kn,zoomTo:kn,fitView:kn,setCenter:kn,fitBounds:kn,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:kn,setTransform:kn,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function sI(e){function n(r,i){return new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((i==null?void 0:i.interpolate)==="linear"?ir:_i).scaleBy(ts(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}=Wf({x:-r,y:-i},e.translateExtent),u=xo.translate(-d,-f).scale(a);e.d3Selection&&e.d3Zoom?(c=e.d3Zoom)==null||c.interpolate((l==null?void 0:l.interpolate)==="linear"?ir:_i).transform(ts(e.d3Selection,l==null?void 0:l.duration,l==null?void 0:l.ease,()=>{s(!0)}),u):s(!1)})}return t.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>n(1.2,i),zoomOut:i=>n(1/1.2,i),zoomTo:(i,a)=>new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((a==null?void 0:a.interpolate)==="linear"?ir:_i).scaleTo(ts(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:es,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=tp(s),{x:d,y:f,zoom:u}=rp(c,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??es,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:es})=>{const{x:l,y:s,zoom:c}=rp(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,a.padding);return o(l,s,c,a)},project:i=>gr(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 gr(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 Gl(s,e.viewport)}return{x:0,y:0}}}:lI)}function ts(e,n=0,o=aI,r=()=>{}){const i=typeof n=="number"&&n>0;return i||r(),i?e.transition().duration(n).ease(o).on("end",r):e}function cI(e,n,o){const r=t.effectScope(!0);return r.run(()=>{const i=()=>{r.run(()=>{let _,y,h=!!(o.nodes.value.length||o.edges.value.length);_=wo([e.modelValue,()=>{var k,b;return(b=(k=e.modelValue)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setElements(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.nodes,o.edges,()=>o.edges.value.length,()=>o.nodes.value.length],([k,b])=>{var N;(N=e.modelValue)!=null&&N.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...k,...b],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},a=()=>{r.run(()=>{let _,y,h=!!o.nodes.value.length;_=wo([e.nodes,()=>{var k,b;return(b=(k=e.nodes)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setNodes(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.nodes,()=>o.nodes.value.length],([k])=>{var b;(b=e.nodes)!=null&&b.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...k],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},l=()=>{r.run(()=>{let _,y,h=!!o.edges.value.length;_=wo([e.edges,()=>{var k,b;return(b=(k=e.edges)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setEdges(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.edges,()=>o.edges.value.length],([k])=>{var b;(b=e.edges)!=null&&b.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...k],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},s=()=>{r.run(()=>{t.watch(()=>n.maxZoom,()=>{n.maxZoom&&tt(n.maxZoom)&&o.setMaxZoom(n.maxZoom)},{immediate:!0})})},c=()=>{r.run(()=>{t.watch(()=>n.minZoom,()=>{n.minZoom&&tt(n.minZoom)&&o.setMinZoom(n.minZoom)},{immediate:!0})})},d=()=>{r.run(()=>{t.watch(()=>n.translateExtent,()=>{n.translateExtent&&tt(n.translateExtent)&&o.setTranslateExtent(n.translateExtent)},{immediate:!0})})},f=()=>{r.run(()=>{t.watch(()=>n.nodeExtent,()=>{n.nodeExtent&&tt(n.nodeExtent)&&o.setNodeExtent(n.nodeExtent)},{immediate:!0})})},u=()=>{r.run(()=>{t.watch(()=>n.applyDefault,()=>{tt(n.applyDefault)&&(o.applyDefault.value=n.applyDefault)},{immediate:!0})})},p=()=>{r.run(()=>{const _=async y=>{let h=y;typeof n.autoConnect=="function"&&(h=await n.autoConnect(y)),h!==!1&&o.addEdges([h])};t.watch(()=>n.autoConnect,()=>{tt(n.autoConnect)&&(o.autoConnect.value=n.autoConnect)},{immediate:!0}),t.watch(o.autoConnect,(y,h,k)=>{y?o.onConnect(_):o.hooks.value.connect.off(_),k(()=>{o.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const y of Object.keys(n)){const h=y;if(!_.includes(h)){const k=t.toRef(()=>n[h]),b=o[h];t.isRef(b)&&r.run(()=>{t.watch(k,N=>{tt(N)&&(b.value=N)},{immediate:!0})})}}};(()=>{i(),a(),l(),c(),s(),d(),f(),u(),p(),m()})()}),()=>r.stop()}function dI(){return{edgesChange:Ee(),nodesChange:Ee(),nodeDoubleClick:Ee(),nodeClick:Ee(),nodeMouseEnter:Ee(),nodeMouseMove:Ee(),nodeMouseLeave:Ee(),nodeContextMenu:Ee(),nodeDragStart:Ee(),nodeDrag:Ee(),nodeDragStop:Ee(),nodesInitialized:Ee(),miniMapNodeClick:Ee(),miniMapNodeDoubleClick:Ee(),miniMapNodeMouseEnter:Ee(),miniMapNodeMouseMove:Ee(),miniMapNodeMouseLeave:Ee(),connect:Ee(),connectStart:Ee(),connectEnd:Ee(),clickConnectStart:Ee(),clickConnectEnd:Ee(),paneReady:Ee(),init:Ee(),move:Ee(),moveStart:Ee(),moveEnd:Ee(),selectionDragStart:Ee(),selectionDrag:Ee(),selectionDragStop:Ee(),selectionContextMenu:Ee(),selectionStart:Ee(),selectionEnd:Ee(),viewportChangeStart:Ee(),viewportChange:Ee(),viewportChangeEnd:Ee(),paneScroll:Ee(),paneClick:Ee(),paneContextMenu:Ee(),paneMouseEnter:Ee(),paneMouseMove:Ee(),paneMouseLeave:Ee(),edgeContextMenu:Ee(),edgeMouseEnter:Ee(),edgeMouseMove:Ee(),edgeMouseLeave:Ee(),edgeDoubleClick:Ee(),edgeClick:Ee(),edgeUpdateStart:Ee(),edgeUpdate:Ee(),edgeUpdateEnd:Ee(),updateNodeInternals:Ee(),error:Ee(e=>Bi(e.message))}}function uI(e,n){t.onBeforeMount(()=>{for(const[o,r]of Object.entries(n.value)){const i=a=>{e(o,a)};r.fns.add(i),ai(()=>{r.off(i)})}})}function Pp(){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:Kl.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:fr.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:qn.Bezier,style:{}},connectionMode:yn.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:Oi()?"Meta":"Control",zoomActivationKeyCode:Oi()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:dI(),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 fI=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function pI(e,n,o){const r=sI(e),i=$=>{const P=$??[];e.hooks.updateNodeInternals.trigger(P)},a=$=>IA($,e.nodes,e.edges),l=$=>AA($,e.nodes,e.edges),s=$=>op($,e.edges),c=({id:$,type:P,nodeId:V})=>{var D;return Array.from(((D=e.connectionLookup.get(`${V}-${P}-${$??null}`))==null?void 0:D.values())??[])},d=$=>{if($)return n.value.get($)},f=$=>{if($)return o.value.get($)},u=($,P,V)=>{var D,ne;const X=[];for(const Y of $){const K={id:Y.id,type:"position",dragging:V,from:Y.from};if(P&&(K.position=Y.position,Y.parentNode)){const le=d(Y.parentNode);K.position={x:K.position.x-(((D=le==null?void 0:le.computedPosition)==null?void 0:D.x)??0),y:K.position.y-(((ne=le==null?void 0:le.computedPosition)==null?void 0:ne.y)??0)}}X.push(K)}X!=null&&X.length&&e.hooks.nodesChange.trigger(X)},p=$=>{if(!e.vueFlowRef)return;const P=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!P)return;const V=window.getComputedStyle(P),{m22:D}=new window.DOMMatrixReadOnly(V.transform),ne=[];for(const X of $){const Y=X,K=d(Y.id);if(K){const le=Pi(Y.nodeElement);if(!!(le.width&&le.height&&(K.dimensions.width!==le.width||K.dimensions.height!==le.height||Y.forceUpdate))){const z=Y.nodeElement.getBoundingClientRect();K.dimensions=le,K.handleBounds.source=bp("source",Y.nodeElement,z,D,K.id),K.handleBounds.target=bp("target",Y.nodeElement,z,D,K.id),ne.push({id:K.id,type:"dimensions",dimensions:le})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),ne.length&&e.hooks.nodesChange.trigger(ne)},m=($,P)=>{const V=new Set,D=new Set;for(const Y of $)Hn(Y)?V.add(Y.id):_n(Y)&&D.add(Y.id);const ne=wn(n.value,V,!0),X=wn(o.value,D);if(e.multiSelectionActive){for(const Y of V)ne.push(bn(Y,P));for(const Y of D)X.push(bn(Y,P))}ne.length&&e.hooks.nodesChange.trigger(ne),X.length&&e.hooks.edgesChange.trigger(X)},g=$=>{if(e.multiSelectionActive){const P=$.map(V=>bn(V.id,!0));e.hooks.nodesChange.trigger(P);return}e.hooks.nodesChange.trigger(wn(n.value,new Set($.map(P=>P.id)),!0)),e.hooks.edgesChange.trigger(wn(o.value))},_=$=>{if(e.multiSelectionActive){const P=$.map(V=>bn(V.id,!0));e.hooks.edgesChange.trigger(P);return}e.hooks.edgesChange.trigger(wn(o.value,new Set($.map(P=>P.id)))),e.hooks.nodesChange.trigger(wn(n.value,new Set,!0))},y=$=>{m($,!0)},h=$=>{const V=($||e.nodes).map(D=>(D.selected=!1,bn(D.id,!1)));e.hooks.nodesChange.trigger(V)},k=$=>{const V=($||e.edges).map(D=>(D.selected=!1,bn(D.id,!1)));e.hooks.edgesChange.trigger(V)},b=$=>{if(!$||!$.length)return m([],!1);const P=$.reduce((V,D)=>{const ne=bn(D.id,!1);return Hn(D)?V.nodes.push(ne):V.edges.push(ne),V},{nodes:[],edges:[]});P.nodes.length&&e.hooks.nodesChange.trigger(P.nodes),P.edges.length&&e.hooks.edgesChange.trigger(P.edges)},N=$=>{var P;(P=e.d3Zoom)==null||P.scaleExtent([$,e.maxZoom]),e.minZoom=$},E=$=>{var P;(P=e.d3Zoom)==null||P.scaleExtent([e.minZoom,$]),e.maxZoom=$},C=$=>{var P;(P=e.d3Zoom)==null||P.translateExtent($),e.translateExtent=$},x=$=>{e.nodeExtent=$,i()},A=$=>{var P;(P=e.d3Zoom)==null||P.clickDistance($)},v=$=>{e.nodesDraggable=$,e.nodesConnectable=$,e.elementsSelectable=$},T=$=>{const P=$ instanceof Function?$(e.nodes):$;!e.initialized&&!P.length||(e.nodes=wp(P,d,e.hooks.error.trigger))},I=$=>{const P=$ instanceof Function?$(e.edges):$;if(!e.initialized&&!P.length)return;const V=Ql(P,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);Jl(e.connectionLookup,o.value,V),e.edges=V},w=$=>{const P=$ instanceof Function?$([...e.nodes,...e.edges]):$;!e.initialized&&!P.length||(T(P.filter(Hn)),I(P.filter(_n)))},F=$=>{let P=$ instanceof Function?$(e.nodes):$;P=Array.isArray(P)?P:[P];const V=wp(P,d,e.hooks.error.trigger),D=[];for(const ne of V)D.push(cp(ne));D.length&&e.hooks.nodesChange.trigger(D)},S=$=>{let P=$ instanceof Function?$(e.edges):$;P=Array.isArray(P)?P:[P];const V=Ql(P,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),D=[];for(const ne of V)D.push(cp(ne));D.length&&e.hooks.edgesChange.trigger(D)},U=($,P=!0,V=!1)=>{const D=$ instanceof Function?$(e.nodes):$,ne=Array.isArray(D)?D:[D],X=[],Y=[];function K(G){const z=s(G);for(const J of z)(!tt(J.deletable)||J.deletable)&&Y.push(up(J.id,J.source,J.target,J.sourceHandle,J.targetHandle))}function le(G){const z=[];for(const J of e.nodes)J.parentNode===G&&z.push(J);if(z.length){for(const J of z)X.push(dp(J.id));P&&K(z);for(const J of z)le(J.id)}}for(const G of ne){const z=typeof G=="string"?d(G):G;z&&(tt(z.deletable)&&!z.deletable||(X.push(dp(z.id)),P&&K([z]),V&&le(z.id)))}Y.length&&e.hooks.edgesChange.trigger(Y),X.length&&e.hooks.nodesChange.trigger(X)},B=$=>{const P=$ instanceof Function?$(e.edges):$,V=Array.isArray(P)?P:[P],D=[];for(const ne of V){const X=typeof ne=="string"?f(ne):ne;X&&(tt(X.deletable)&&!X.deletable||D.push(up(typeof ne=="string"?ne:ne.id,X.source,X.target,X.sourceHandle,X.targetHandle)))}e.hooks.edgesChange.trigger(D)},oe=($,P,V=!0)=>{const D=f($.id);if(!D)return!1;const ne=e.edges.indexOf(D),X=ZA($,P,D,V,e.hooks.error.trigger);if(X){const[Y]=Ql([X],e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((K,le)=>le===ne?Y:K),Jl(e.connectionLookup,o.value,[Y]),Y}return!1},ie=($,P,V={replace:!1})=>{const D=f($);if(!D)return;const ne=typeof P=="function"?P(D):P;D.data=V.replace?ne:{...D.data,...ne}},M=$=>sp($,e.nodes),L=$=>{const P=sp($,e.edges);return Jl(e.connectionLookup,o.value,P),P},O=($,P,V={replace:!1})=>{const D=d($);if(!D)return;const ne=typeof P=="function"?P(D):P;V.replace?e.nodes.splice(e.nodes.indexOf(D),1,ne):Object.assign(D,ne)},R=($,P,V={replace:!1})=>{const D=d($);if(!D)return;const ne=typeof P=="function"?P(D):P;D.data=V.replace?ne:{...D.data,...ne}},H=($,P,V=!1)=>{V?e.connectionClickStartHandle=$:e.connectionStartHandle=$,e.connectionEndHandle=null,e.connectionStatus=null,P&&(e.connectionPosition=P)},te=($,P=null,V=null)=>{e.connectionStartHandle&&(e.connectionPosition=$,e.connectionEndHandle=P,e.connectionStatus=V)},W=($,P)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,P?e.connectionClickStartHandle=null:e.connectionStartHandle=null},j=$=>{const P=SA($),V=P?null:mr($)?$:d($.id);return!P&&!V?[null,null,P]:[P?$:Ai(V),V,P]},se=($,P=!0,V=e.nodes)=>{const[D,ne,X]=j($);if(!D)return[];const Y=[];for(const K of V||e.nodes){if(!X&&(K.id===ne.id||!K.computedPosition))continue;const le=Ai(K),G=Ii(le,D);(P&&G>0||G>=Number(D.width)*Number(D.height))&&Y.push(K)}return Y},ue=($,P,V=!0)=>{const[D]=j($);if(!D)return!1;const ne=Ii(D,P);return V&&ne>0||ne>=Number(D.width)*Number(D.height)},ge=$=>{const{viewport:P,dimensions:V,d3Zoom:D,d3Selection:ne,translateExtent:X}=e;if(!D||!ne||!$.x&&!$.y)return!1;const Y=xo.translate(P.x+$.x,P.y+$.y).scale(P.zoom),K=[[0,0],[V.width,V.height]],le=D.constrain()(Y,K,X),G=e.viewport.x!==le.x||e.viewport.y!==le.y||e.viewport.zoom!==le.k;return D.transform(ne,le),G},re=$=>{const P=$ instanceof Function?$(e):$,V=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];tt(P.defaultEdgeOptions)&&(e.defaultEdgeOptions=P.defaultEdgeOptions);const D=P.modelValue||P.nodes||P.edges?[]:void 0;D&&(P.modelValue&&D.push(...P.modelValue),P.nodes&&D.push(...P.nodes),P.edges&&D.push(...P.edges),w(D));const ne=()=>{tt(P.maxZoom)&&E(P.maxZoom),tt(P.minZoom)&&N(P.minZoom),tt(P.translateExtent)&&C(P.translateExtent)};for(const X of Object.keys(P)){const Y=X,K=P[Y];![...fI,...V].includes(Y)&&tt(K)&&(e[Y]=K)}kl(()=>e.d3Zoom).not.toBeNull().then(ne),e.initialized||(e.initialized=!0)};return{updateNodePositions:u,updateNodeDimensions:p,setElements:w,setNodes:T,setEdges:I,addNodes:F,addEdges:S,removeNodes:U,removeEdges:B,findNode:d,findEdge:f,updateEdge:oe,updateEdgeData:ie,updateNode:O,updateNodeData:R,applyEdgeChanges:L,applyNodeChanges:M,addSelectedElements:y,addSelectedNodes:g,addSelectedEdges:_,setMinZoom:N,setMaxZoom:E,setTranslateExtent:C,setNodeExtent:x,setPaneClickDistance:A,removeSelectedElements:b,removeSelectedNodes:h,removeSelectedEdges:k,startConnection:H,updateConnection:te,endConnection:W,setInteractive:v,setState:re,getIntersectingNodes:se,getIncomers:a,getOutgoers:l,getConnectedEdges:s,getHandleConnections:c,isNodeIntersecting:ue,panBy:ge,fitView:$=>r.value.fitView($),zoomIn:$=>r.value.zoomIn($),zoomOut:$=>r.value.zoomOut($),zoomTo:($,P)=>r.value.zoomTo($,P),setViewport:($,P)=>r.value.setViewport($,P),setTransform:($,P)=>r.value.setTransform($,P),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:($,P,V)=>r.value.setCenter($,P,V),fitBounds:($,P)=>r.value.fitBounds($,P),project:$=>r.value.project($),screenToFlowCoordinate:$=>r.value.screenToFlowCoordinate($),flowToScreenCoordinate:$=>r.value.flowToScreenCoordinate($),toObject:()=>{const $=[],P=[];for(const V of e.nodes){const{computedPosition:D,handleBounds:ne,selected:X,dimensions:Y,isParent:K,resizing:le,dragging:G,events:z,...J}=V;$.push(J)}for(const V of e.edges){const{selected:D,sourceNode:ne,targetNode:X,events:Y,...K}=V;P.push(K)}return JSON.parse(JSON.stringify({nodes:$,edges:P,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:$=>new Promise(P=>{const{nodes:V,edges:D,position:ne,zoom:X,viewport:Y}=$;if(V&&T(V),D&&I(D),Y!=null&&Y.x&&(Y!=null&&Y.y)||ne){const K=(Y==null?void 0:Y.x)||ne[0],le=(Y==null?void 0:Y.y)||ne[1],G=(Y==null?void 0:Y.zoom)||X||e.viewport.zoom;return kl(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:K,y:le,zoom:G}).then(()=>{P(!0)})})}else P(!0)}),updateNodeInternals:i,viewportHelper:r,$reset:()=>{const $=Pp();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const P=xo.translate($.defaultViewport.x??0,$.defaultViewport.y??0).scale(zn($.defaultViewport.zoom??1,$.minZoom,$.maxZoom)),V=e.viewportRef.getBoundingClientRect(),D=[[0,0],[V.width,V.height]],ne=e.d3Zoom.constrain()(P,D,$.translateExtent);e.d3Zoom.transform(e.d3Selection,ne)}re($)},$destroy:()=>{}}}const mI=["data-id","data-handleid","data-nodeid","data-handlepos"],gI={name:"Handle",compatConfig:{MODE:3}},Ht=t.defineComponent({...gI,props:{id:{default:null},type:{},position:{default:()=>Ne.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:n}){const o=t.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),r=t.toRef(()=>o.type??"source"),i=t.toRef(()=>o.isValidConnection??null),{id:a,connectionStartHandle:l,connectionClickStartHandle:s,connectionEndHandle:c,vueFlowRef:d,nodesConnectable:f,noDragClassName:u,noPanClassName:p}=Le(),{id:m,node:g,nodeEl:_,connectedEdges:y}=Ap(),h=t.ref(),k=t.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),b=t.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),N=t.toRef(()=>{var I,w,F,S,U,B;return((I=l.value)==null?void 0:I.nodeId)===m&&((w=l.value)==null?void 0:w.id)===e.id&&((F=l.value)==null?void 0:F.type)===r.value||((S=c.value)==null?void 0:S.nodeId)===m&&((U=c.value)==null?void 0:U.id)===e.id&&((B=c.value)==null?void 0:B.type)===r.value}),E=t.toRef(()=>{var I,w,F;return((I=s.value)==null?void 0:I.nodeId)===m&&((w=s.value)==null?void 0:w.id)===e.id&&((F=s.value)==null?void 0:F.type)===r.value}),{handlePointerDown:C,handleClick:x}=vp({nodeId:m,handleId:e.id,isValidConnection:i,type:r}),A=t.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!y.value.some(I=>{const w=I[`${r.value}Handle`];return I[r.value]!==m?!1:w?w===e.id:!0}):typeof e.connectable=="number"?y.value.filter(I=>{const w=I[`${r.value}Handle`];return I[r.value]!==m?!1:w?w===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(g,y.value):tt(e.connectable)?e.connectable:f.value);t.onMounted(()=>{var I;if(!g.dimensions.width||!g.dimensions.height)return;const w=(I=g.handleBounds[r.value])==null?void 0:I.find(M=>M.id===e.id);if(!d.value||w)return;const F=d.value.querySelector(".vue-flow__transformationpane");if(!_.value||!h.value||!F||!e.id)return;const S=_.value.getBoundingClientRect(),U=h.value.getBoundingClientRect(),B=window.getComputedStyle(F),{m22:oe}=new window.DOMMatrixReadOnly(B.transform),ie={id:e.id,position:e.position,x:(U.left-S.left)/oe,y:(U.top-S.top)/oe,type:r.value,nodeId:m,...Pi(h.value)};g.handleBounds[r.value]=[...g.handleBounds[r.value]??[],ie]});function v(I){const w=Yl(I);A.value&&k.value&&(w&&I.button===0||!w)&&C(I)}function T(I){!m||!s.value&&!k.value||A.value&&x(I)}return n({handleClick:x,handlePointerDown:C,onClick:T,onPointerDown:v}),(I,w)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"handle",ref:h,"data-id":`${t.unref(a)}-${t.unref(m)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":t.unref(m),"data-handlepos":I.position,class:t.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${I.position}`,`vue-flow__handle-${e.id}`,t.unref(u),t.unref(p),r.value,{connectable:A.value,connecting:E.value,connectablestart:k.value,connectableend:b.value,connectionindicator:A.value&&(k.value&&!N.value||b.value&&N.value)}]]),onMousedown:v,onTouchstartPassive:v,onClick:T},[t.renderSlot(I.$slots,"default",{id:I.id})],42,mI))}}),Di=function({sourcePosition:e=Ne.Bottom,targetPosition:n=Ne.Top,label:o,connectable:r=!0,isValidTargetPos:i,isValidSourcePos:a,data:l}){const s=l.label??o;return[t.h(Ht,{type:"target",position:n,connectable:r,isValidConnection:i}),typeof s!="string"&&s?t.h(s):t.h(t.Fragment,[s]),t.h(Ht,{type:"source",position:e,connectable:r,isValidConnection:a})]};Di.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],Di.inheritAttrs=!1,Di.compatConfig={MODE:3};const hI=Di,Mi=function({targetPosition:e=Ne.Top,label:n,connectable:o=!0,isValidTargetPos:r,data:i}){const a=i.label??n;return[t.h(Ht,{type:"target",position:e,connectable:o,isValidConnection:r}),typeof a!="string"&&a?t.h(a):t.h(t.Fragment,[a])]};Mi.props=["targetPosition","label","isValidTargetPos","connectable","data"],Mi.inheritAttrs=!1,Mi.compatConfig={MODE:3};const yI=Mi,Li=function({sourcePosition:e=Ne.Bottom,label:n,connectable:o=!0,isValidSourcePos:r,data:i}){const a=i.label??n;return[typeof a!="string"&&a?t.h(a):t.h(t.Fragment,[a]),t.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 _I=Li,bI=["transform"],wI=["width","height","x","y","rx","ry"],kI=["y"],CI={name:"EdgeText",compatConfig:{MODE:3}},EI=t.defineComponent({...CI,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const n=t.ref({x:0,y:0,width:0,height:0}),o=t.ref(null),r=t.computed(()=>`translate(${e.x-n.value.width/2} ${e.y-n.value.height/2})`);t.onMounted(i),t.watch([()=>e.x,()=>e.y,o,()=>e.label],i);function i(){if(!o.value)return;const a=o.value.getBBox();(a.width!==n.value.width||a.height!==n.value.height)&&(n.value=a)}return(a,l)=>(t.openBlock(),t.createElementBlock("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[a.labelShowBg?(t.openBlock(),t.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${n.value.width+2*a.labelBgPadding[0]}px`,height:`${n.value.height+2*a.labelBgPadding[1]}px`,x:-a.labelBgPadding[0],y:-a.labelBgPadding[1],style:t.normalizeStyle(a.labelBgStyle),rx:a.labelBgBorderRadius,ry:a.labelBgBorderRadius},null,12,wI)):t.createCommentVNode("",!0),t.createElementVNode("text",t.mergeProps(a.$attrs,{ref_key:"el",ref:o,class:"vue-flow__edge-text",y:n.value.height/2,dy:"0.3em",style:a.labelStyle}),[t.renderSlot(a.$slots,"default",{},()=>[typeof a.label!="string"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(a.label),{key:0})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(a.label),1)],64))])],16,kI)],8,bI))}}),NI=["id","d","marker-end","marker-start"],xI=["d","stroke-width"],SI={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Fi=t.defineComponent({...SI,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:n}){const o=t.ref(null),r=t.ref(null),i=t.ref(null),a=t.useAttrs();return n({pathEl:o,interactionEl:r,labelEl:i}),(l,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("path",t.mergeProps(t.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,NI),l.interactionWidth?(t.openBlock(),t.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,xI)):t.createCommentVNode("",!0),l.label&&l.labelX&&l.labelY?(t.openBlock(),t.createBlock(EI,{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"])):t.createCommentVNode("",!0)],64))}});function Tp({sourceX:e,sourceY:n,targetX:o,targetY:r}){const i=Math.abs(o-e)/2,a=o<e?o+i:o-i,l=Math.abs(r-n)/2,s=r<n?r+l:r-l;return[a,s,i,l]}function Op({sourceX:e,sourceY:n,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:s}){const c=e*.125+i*.375+l*.375+o*.125,d=n*.125+a*.375+s*.375+r*.125,f=Math.abs(c-e),u=Math.abs(d-n);return[c,d,f,u]}function Ui(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function $p({pos:e,x1:n,y1:o,x2:r,y2:i,c:a}){let l,s;switch(e){case Ne.Left:l=n-Ui(n-r,a),s=o;break;case Ne.Right:l=n+Ui(r-n,a),s=o;break;case Ne.Top:l=n,s=o-Ui(o-i,a);break;case Ne.Bottom:l=n,s=o+Ui(i-o,a);break}return[l,s]}function Bp(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top,curvature:s=.25}=e,[c,d]=$p({pos:r,x1:n,y1:o,x2:i,y2:a,c:s}),[f,u]=$p({pos:l,x1:i,y1:a,x2:n,y2:o,c:s}),[p,m,g,_]=Op({sourceX:n,sourceY:o,targetX:i,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:f,targetControlY:u});return[`M${n},${o} C${c},${d} ${f},${u} ${i},${a}`,p,m,g,_]}function Vp({pos:e,x1:n,y1:o,x2:r,y2:i}){let a,l;switch(e){case Ne.Left:case Ne.Right:a=.5*(n+r),l=o;break;case Ne.Top:case Ne.Bottom:a=n,l=.5*(o+i);break}return[a,l]}function Rp(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top}=e,[s,c]=Vp({pos:r,x1:n,y1:o,x2:i,y2:a}),[d,f]=Vp({pos:l,x1:i,y1:a,x2:n,y2:o}),[u,p,m,g]=Op({sourceX:n,sourceY:o,targetX:i,targetY:a,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${n},${o} C${s},${c} ${d},${f} ${i},${a}`,u,p,m,g]}const Dp={[Ne.Left]:{x:-1,y:0},[Ne.Right]:{x:1,y:0},[Ne.Top]:{x:0,y:-1},[Ne.Bottom]:{x:0,y:1}};function vI({source:e,sourcePosition:n=Ne.Bottom,target:o}){return n===Ne.Left||n===Ne.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 Mp(e,n){return Math.sqrt((n.x-e.x)**2+(n.y-e.y)**2)}function AI({source:e,sourcePosition:n=Ne.Bottom,target:o,targetPosition:r=Ne.Top,center:i,offset:a}){const l=Dp[n],s=Dp[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=vI({source:c,sourcePosition:n,target:d}),u=f.x!==0?"x":"y",p=f[u];let m,g,_;const y={x:0,y:0},h={x:0,y:0},[k,b,N,E]=Tp({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(l[u]*s[u]===-1){g=i.x??k,_=i.y??b;const x=[{x:g,y:c.y},{x:g,y:d.y}],A=[{x:c.x,y:_},{x:d.x,y:_}];l[u]===p?m=u==="x"?x:A:m=u==="x"?A:x}else{const x=[{x:c.x,y:d.y}],A=[{x:d.x,y:c.y}];if(u==="x"?m=l.x===p?A:x:m=l.y===p?x:A,n===r){const F=Math.abs(e[u]-o[u]);if(F<=a){const S=Math.min(a-1,a-F);l[u]===p?y[u]=(c[u]>e[u]?-1:1)*S:h[u]=(d[u]>o[u]?-1:1)*S}}if(n!==r){const F=u==="x"?"y":"x",S=l[u]===s[F],U=c[F]>d[F],B=c[F]<d[F];(l[u]===1&&(!S&&U||S&&B)||l[u]!==1&&(!S&&B||S&&U))&&(m=u==="x"?x:A)}const v={x:c.x+y.x,y:c.y+y.y},T={x:d.x+h.x,y:d.y+h.y},I=Math.max(Math.abs(v.x-m[0].x),Math.abs(T.x-m[0].x)),w=Math.max(Math.abs(v.y-m[0].y),Math.abs(T.y-m[0].y));I>=w?(g=(v.x+T.x)/2,_=m[0].y):(g=m[0].x,_=(v.y+T.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...m,{x:d.x+h.x,y:d.y+h.y},o],g,_,N,E]}function II(e,n,o,r){const i=Math.min(Mp(e,n)/2,Mp(n,o)/2,r),{x:a,y:l}=n;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 ns(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top,borderRadius:s=5,centerX:c,centerY:d,offset:f=20}=e,[u,p,m,g,_]=AI({source:{x:n,y:o},sourcePosition:r,target:{x:i,y:a},targetPosition:l,center:{x:c,y:d},offset:f});return[u.reduce((h,k,b)=>{let N;return b>0&&b<u.length-1?N=II(u[b-1],k,u[b+1],s):N=`${b===0?"M":"L"}${k.x} ${k.y}`,h+=N,h},""),p,m,g,_]}function PI(e){const{sourceX:n,sourceY:o,targetX:r,targetY:i}=e,[a,l,s,c]=Tp({sourceX:n,sourceY:o,targetX:r,targetY:i});return[`M ${n},${o}L ${r},${i}`,a,l,s,c]}const TI=t.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:n}){return()=>{const[o,r,i]=PI(e);return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),Lp=t.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:n}){return()=>{const[o,r,i]=ns({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),OI=t.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:n}){return()=>t.h(Lp,{...e,...n,borderRadius:0})}}),$I=t.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:n}){return()=>{const[o,r,i]=Bp({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),BI=t.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:n}){return()=>{const[o,r,i]=Rp({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),VI={input:_I,default:hI,output:yI},RI={default:$I,straight:TI,step:OI,smoothstep:Lp,simplebezier:BI};function DI(e,n,o){const r=t.computed(()=>_=>n.value.get(_)),i=t.computed(()=>_=>o.value.get(_)),a=t.computed(()=>{const _={...RI,...e.edgeTypes},y=Object.keys(_);for(const h of e.edges)h.type&&!y.includes(h.type)&&(_[h.type]=h.type);return _}),l=t.computed(()=>{const _={...VI,...e.nodeTypes},y=Object.keys(_);for(const h of e.nodes)h.type&&!y.includes(h.type)&&(_[h.type]=h.type);return _}),s=t.computed(()=>e.onlyRenderVisibleElements?np(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),c=t.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const y of e.edges){const h=n.value.get(y.source),k=n.value.get(y.target);MA({sourcePos:h.computedPosition||{x:0,y:0},targetPos:k.computedPosition||{x:0,y:0},sourceWidth:h.dimensions.width,sourceHeight:h.dimensions.height,targetWidth:k.dimensions.width,targetHeight:k.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(y)}return _}return e.edges}),d=t.computed(()=>[...s.value,...c.value]),f=t.computed(()=>{const _=[];for(const y of e.nodes)y.selected&&_.push(y);return _}),u=t.computed(()=>{const _=[];for(const y of e.edges)y.selected&&_.push(y);return _}),p=t.computed(()=>[...f.value,...u.value]),m=t.computed(()=>{const _=[];for(const y of e.nodes)y.dimensions.width&&y.dimensions.height&&y.handleBounds!==void 0&&_.push(y);return _}),g=t.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 Yn{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var n;const o=(n=t.getCurrentInstance())==null?void 0:n.appContext.app,r=(o==null?void 0:o.config.globalProperties.$vueFlowStorage)??Yn.instance;return Yn.instance=r??new Yn,o&&(o.config.globalProperties.$vueFlowStorage=Yn.instance),Yn.instance}set(n,o){return this.flows.set(n,o)}get(n){return this.flows.get(n)}remove(n){return this.flows.delete(n)}create(n,o){const r=Pp(),i=t.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=t.computed(()=>{const p=new Map;for(const m of i.nodes)p.set(m.id,m);return p}),c=t.computed(()=>{const p=new Map;for(const m of i.edges)p.set(m.id,m);return p}),d=DI(i,s,c),f=pI(i,s,c);f.setState({...i,...o});const u={...a,...d,...f,...V1(i),nodeLookup:s,edgeLookup:c,emits:l,id:n,vueFlowVersion:"1.45.0",$destroy:()=>{this.remove(n)}};return this.set(n,u),u}getId(){return`vue-flow-${this.currentId++}`}}function Le(e){const n=Yn.getInstance(),o=t.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=t.inject(Ep,null);typeof c<"u"&&c!==null&&(!l||c.id===l)&&(s=c)}if(s||l&&(s=n.get(l)),!s||l&&s.id!==l){const c=a??n.getId(),d=n.create(c,i);s=d,(o??t.effectScope(!0)).run(()=>{t.watch(d.applyDefault,(u,p,m)=>{const g=y=>{d.applyNodeChanges(y)},_=y=>{d.applyEdgeChanges(y)};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}),ai(()=>{if(s){const u=n.get(s.id);u?u.$destroy():Bi(`No store instance found for id ${s.id} in storage.`)}})})}else r&&s.setState(i);if(o&&(t.provide(Ep,s),o.vueFlowId=s.id),r){const c=t.getCurrentInstance();(c==null?void 0:c.type.name)!=="VueFlow"&&s.emits.error(new lt(et.USEVUEFLOW_OPTIONS))}return s}function MI(e){const{emits:n,dimensions:o}=Le();let r;t.onMounted(()=>{const i=e.value,a=()=>{if(!i)return;const l=Pi(i);(l.width===0||l.height===0)&&n.error(new lt(et.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)),t.onBeforeUnmount(()=>{window.removeEventListener("resize",a),r&&i&&r.unobserve(i)})})}const LI={name:"UserSelection",compatConfig:{MODE:3}},FI=t.defineComponent({...LI,props:{userSelectionRect:{}},setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:t.normalizeStyle({width:`${n.userSelectionRect.width}px`,height:`${n.userSelectionRect.height}px`,transform:`translate(${n.userSelectionRect.x}px, ${n.userSelectionRect.y}px)`})},null,4))}}),UI=["tabIndex"],KI={name:"NodesSelection",compatConfig:{MODE:3}},jI=t.defineComponent({...KI,setup(e){const{emits:n,viewport:o,getSelectedNodes:r,noPanClassName:i,disableKeyboardA11y:a,userSelectionActive:l}=Le(),s=Ip(),c=t.ref(null),d=Sp({el:c,onStart(g){n.selectionDragStart(g)},onDrag(g){n.selectionDrag(g)},onStop(g){n.selectionDragStop(g)}});t.onMounted(()=>{var g;a.value||(g=c.value)==null||g.focus({preventScroll:!0})});const f=t.computed(()=>tp(r.value)),u=t.computed(()=>({width:`${f.value.width}px`,height:`${f.value.height}px`,top:`${f.value.y}px`,left:`${f.value.x}px`}));function p(g){n.selectionContextMenu({event:g,nodes:r.value})}function m(g){a||So[g.key]&&(g.preventDefault(),s({x:So[g.key].x,y:So[g.key].y},g.shiftKey))}return(g,_)=>!t.unref(l)&&f.value.width&&f.value.height?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["vue-flow__nodesselection vue-flow__container",t.unref(i)]),style:t.normalizeStyle({transform:`translate(${t.unref(o).x}px,${t.unref(o).y}px) scale(${t.unref(o).zoom})`})},[t.createElementVNode("div",{ref_key:"el",ref:c,class:t.normalizeClass([{dragging:t.unref(d)},"vue-flow__nodesselection-rect"]),style:t.normalizeStyle(u.value),tabIndex:t.unref(a)?void 0:-1,onContextmenu:p,onKeydown:m},null,46,UI)],6)):t.createCommentVNode("",!0)}});function GI(e,n){return{x:e.clientX-n.left,y:e.clientY-n.top}}const qI={name:"Pane",compatConfig:{MODE:3}},zI=t.defineComponent({...qI,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:n,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:y,multiSelectionActive:h,edgeLookup:k,nodeLookup:b,connectionLookup:N,defaultEdgeOptions:E,connectionStartHandle:C}=Le(),x=t.ref(null),A=t.ref(new Set),v=t.ref(new Set),T=t.ref(),I=t.toRef(()=>c.value&&(e.isSelecting||a.value)),w=t.toRef(()=>C.value!==null);let F=!1,S=!1;const U=pr(_,{actInsideInputWithModifier:!1}),B=pr(y);t.watch(U,te=>{te&&(p(u.value),m(f.value),d.value=!1)}),t.watch(B,te=>{h.value=te});function oe(te,W){return j=>{j.target===W&&(te==null||te(j))}}function ie(te){if(F||w.value){F=!1;return}i.paneClick(te),l(),d.value=!1}function M(te){te.preventDefault(),te.stopPropagation(),i.paneContextMenu(te)}function L(te){i.paneScroll(te)}function O(te){var W,j,se;if(T.value=(W=n.value)==null?void 0:W.getBoundingClientRect(),!c.value||!e.isSelecting||te.button!==0||te.target!==x.value||!T.value)return;(se=(j=te.target)==null?void 0:j.setPointerCapture)==null||se.call(j,te.pointerId);const{x:ue,y:ge}=GI(te,T.value);S=!0,F=!1,l(),s.value={width:0,height:0,startX:ue,startY:ge,x:ue,y:ge},i.selectionStart(te)}function R(te){var W;if(!T.value||!s.value)return;F=!0;const{x:j,y:se}=zt(te,T.value),{startX:ue=0,startY:ge=0}=s.value,re={startX:ue,startY:ge,x:j<ue?j:ue,y:se<ge?se:ge,width:Math.abs(j-ue),height:Math.abs(se-ge)},q=A.value,ae=v.value;A.value=new Set(np(o.value,re,r.value,g.value===Kl.Partial,!0).map($=>$.id)),v.value=new Set;const ce=((W=E.value)==null?void 0:W.selectable)??!0;for(const $ of A.value){const P=N.value.get($);if(P)for(const{edgeId:V}of P.values()){const D=k.value.get(V);D&&(D.selectable??ce)&&v.value.add(V)}}if(!Cp(q,A.value)){const $=wn(b.value,A.value,!0);i.nodesChange($)}if(!Cp(ae,v.value)){const $=wn(k.value,v.value);i.edgesChange($)}s.value=re,a.value=!0,d.value=!1}function H(te){var W;te.button!==0||!S||((W=te.target)==null||W.releasePointerCapture(te.pointerId),!a.value&&s.value&&te.target===x.value&&ie(te),a.value=!1,s.value=null,d.value=A.value.size>0,i.selectionEnd(te),e.selectionKeyPressed&&(F=!1),S=!1)}return(te,W)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"container",ref:x,class:t.normalizeClass(["vue-flow__pane vue-flow__container",{selection:te.isSelecting}]),onClick:W[0]||(W[0]=j=>I.value?void 0:oe(ie,x.value)(j)),onContextmenu:W[1]||(W[1]=j=>oe(M,x.value)(j)),onWheelPassive:W[2]||(W[2]=j=>oe(L,x.value)(j)),onPointerenter:W[3]||(W[3]=j=>I.value?void 0:t.unref(i).paneMouseEnter(j)),onPointerdown:W[4]||(W[4]=j=>I.value?O(j):t.unref(i).paneMouseMove(j)),onPointermove:W[5]||(W[5]=j=>I.value?R(j):t.unref(i).paneMouseMove(j)),onPointerup:W[6]||(W[6]=j=>I.value?H(j):void 0),onPointerleave:W[7]||(W[7]=j=>t.unref(i).paneMouseLeave(j))},[t.renderSlot(te.$slots,"default"),t.unref(a)&&t.unref(s)?(t.openBlock(),t.createBlock(FI,{key:0,"user-selection-rect":t.unref(s)},null,8,["user-selection-rect"])):t.createCommentVNode("",!0),t.unref(d)&&t.unref(u).length?(t.openBlock(),t.createBlock(jI,{key:1})):t.createCommentVNode("",!0)],34))}}),HI={name:"Transform",compatConfig:{MODE:3}},YI=t.defineComponent({...HI,setup(e){const{viewport:n,fitViewOnInit:o,fitViewOnInitDone:r}=Le(),i=t.computed(()=>o.value?!r.value:!1),a=t.computed(()=>`translate(${n.value.x}px,${n.value.y}px) scale(${n.value.zoom})`);return(l,s)=>(t.openBlock(),t.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:t.normalizeStyle({transform:a.value,opacity:i.value?0:void 0})},[t.renderSlot(l.$slots,"default")],4))}}),WI={name:"Viewport",compatConfig:{MODE:3}},XI=t.defineComponent({...WI,setup(e){const{minZoom:n,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:y,noPanClassName:h,emits:k,connectionStartHandle:b,userSelectionActive:N,paneDragging:E,d3Zoom:C,d3Selection:x,d3ZoomHandler:A,viewport:v,viewportRef:T,paneClickDistance:I}=Le();MI(T);const w=t.shallowRef(!1),F=t.shallowRef(!1);let S=null,U=!1,B=0,oe={x:0,y:0,zoom:0};const ie=pr(s),M=pr(l),L=pr(a),O=t.toRef(()=>(!M.value||M.value&&l.value===!0)&&(ie.value||u.value)),R=t.toRef(()=>ie.value||c.value),H=t.toRef(()=>M.value||l.value===!0&&O.value!==!0);t.onMounted(()=>{if(!T.value){Bi("Viewport element is missing");return}const ge=T.value,re=ge.getBoundingClientRect(),q=bA().clickDistance(I.value).scaleExtent([n.value,o.value]).translateExtent(i.value),ae=Rt(ge).call(q),ce=ae.on("wheel.zoom"),$=xo.translate(r.value.x??0,r.value.y??0).scale(zn(r.value.zoom??1,n.value,o.value)),P=[[0,0],[re.width,re.height]],V=q.constrain()($,P,i.value);q.transform(ae,V),q.wheelDelta(W),C.value=q,x.value=ae,A.value=ce,v.value={x:V.x,y:V.y,zoom:V.k},q.on("start",D=>{var ne;if(!D.sourceEvent)return null;B=D.sourceEvent.button,w.value=!0;const X=se(D.transform);((ne=D.sourceEvent)==null?void 0:ne.type)==="mousedown"&&(E.value=!0),oe=X,k.viewportChangeStart(X),k.moveStart({event:D,flowTransform:X})}),q.on("end",D=>{if(!D.sourceEvent)return null;if(w.value=!1,E.value=!1,te(O.value,B??0)&&!U&&k.paneContextMenu(D.sourceEvent),U=!1,j(oe,D.transform)){const ne=se(D.transform);oe=ne,k.viewportChangeEnd(ne),k.moveEnd({event:D,flowTransform:ne})}}),q.filter(D=>{var ne;const X=L.value||g.value,Y=m.value&&D.ctrlKey,K=D.button;if(K===1&&D.type==="mousedown"&&(ue(D,"vue-flow__node")||ue(D,"vue-flow__edge")))return!0;if(!O.value&&!X&&!R.value&&!p.value&&!m.value||N.value||!p.value&&D.type==="dblclick"||ue(D,y.value)&&D.type==="wheel"||ue(D,h.value)&&(D.type!=="wheel"||R.value&&D.type==="wheel"&&!L.value)||!m.value&&D.ctrlKey&&D.type==="wheel"||!X&&!R.value&&!Y&&D.type==="wheel")return!1;if(!m&&D.type==="touchstart"&&((ne=D.touches)==null?void 0:ne.length)>1)return D.preventDefault(),!1;if(!O.value&&(D.type==="mousedown"||D.type==="touchstart")||l.value===!0&&Array.isArray(u.value)&&u.value.includes(0)&&K===0||Array.isArray(u.value)&&!u.value.includes(K)&&(D.type==="mousedown"||D.type==="touchstart"))return!1;const le=Array.isArray(u.value)&&u.value.includes(K)||l.value===!0&&Array.isArray(u.value)&&!u.value.includes(0)||!K||K<=1;return(!D.ctrlKey||ie.value||D.type==="wheel")&&le}),t.watch([N,O],()=>{N.value&&!w.value?q.on("zoom",null):N.value||q.on("zoom",D=>{v.value={x:D.transform.x,y:D.transform.y,zoom:D.transform.k};const ne=se(D.transform);U=te(O.value,B??0),k.viewportChange(ne),k.move({event:D,flowTransform:ne})})},{immediate:!0}),t.watch([N,R,d,L,m,_,y],()=>{R.value&&!L.value&&!N.value?ae.on("wheel.zoom",D=>{if(ue(D,y.value))return!1;const ne=L.value||g.value,X=m.value&&D.ctrlKey;if(!(!_.value||R.value||ne||X))return!1;D.preventDefault(),D.stopImmediatePropagation();const K=ae.property("__zoom").k||1,le=Oi();if(!ie.value&&D.ctrlKey&&m.value&&le){const _e=Kt(D),Q=W(D),he=K*2**Q;q.scaleTo(ae,he,_e,D);return}const G=D.deltaMode===1?20:1;let z=d.value===fr.Vertical?0:D.deltaX*G,J=d.value===fr.Horizontal?0:D.deltaY*G;!le&&D.shiftKey&&d.value!==fr.Vertical&&!z&&J&&(z=J,J=0),q.translateBy(ae,-(z/K)*f.value,-(J/K)*f.value);const de=se(ae.property("__zoom"));S&&clearTimeout(S),F.value?(k.move({event:D,flowTransform:de}),k.viewportChange(de),S=setTimeout(()=>{k.moveEnd({event:D,flowTransform:de}),k.viewportChangeEnd(de),F.value=!1},150)):(F.value=!0,k.moveStart({event:D,flowTransform:de}),k.viewportChangeStart(de))},{passive:!1}):typeof ce<"u"&&ae.on("wheel.zoom",function(D,ne){const X=!_.value&&D.type==="wheel"&&!D.ctrlKey,Y=L.value||g.value,K=m.value&&D.ctrlKey;if(!Y&&!c.value&&!K&&D.type==="wheel"||X||ue(D,y.value))return null;D.preventDefault(),ce.call(this,D,ne)},{passive:!1})},{immediate:!0})});function te(ge,re){return re===2&&Array.isArray(ge)&&ge.includes(2)}function W(ge){const re=ge.ctrlKey&&Oi()?10:1;return-ge.deltaY*(ge.deltaMode===1?.05:ge.deltaMode?1:.002)*re}function j(ge,re){return ge.x!==re.x&&!Number.isNaN(re.x)||ge.y!==re.y&&!Number.isNaN(re.y)||ge.zoom!==re.k&&!Number.isNaN(re.k)}function se(ge){return{x:ge.x,y:ge.y,zoom:ge.k}}function ue(ge,re){return ge.target.closest(`.${re}`)}return(ge,re)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"viewportRef",ref:T,class:"vue-flow__viewport vue-flow__container"},[t.createVNode(zI,{"is-selecting":H.value,"selection-key-pressed":t.unref(M),class:t.normalizeClass({connecting:!!t.unref(b),dragging:t.unref(E),draggable:t.unref(u)===!0||Array.isArray(t.unref(u))&&t.unref(u).includes(0)})},{default:t.withCtx(()=>[t.createVNode(YI,null,{default:t.withCtx(()=>[t.renderSlot(ge.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),ZI=["id"],JI=["id"],QI=["id"],eP={name:"A11yDescriptions",compatConfig:{MODE:3}},tP=t.defineComponent({...eP,setup(e){const{id:n,disableKeyboardA11y:o,ariaLiveMessage:r}=Le();return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",{id:`${t.unref(zf)}-${t.unref(n)}`,style:{display:"none"}}," Press enter or space to select a node. "+t.toDisplayString(t.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,ZI),t.createElementVNode("div",{id:`${t.unref(Hf)}-${t.unref(n)}`,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,JI),t.unref(o)?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,id:`${t.unref(xA)}-${t.unref(n)}`,"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%)"}},t.toDisplayString(t.unref(r)),9,QI))],64))}});function nP(){const e=Le();t.watch(()=>e.viewportHelper.value.viewportInitialized,n=>{n&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function oP(e,n,o){return o===Ne.Left?e-n:o===Ne.Right?e+n:e}function rP(e,n,o){return o===Ne.Top?e-n:o===Ne.Bottom?e+n:e}const os=function({radius:e=10,centerX:n=0,centerY:o=0,position:r=Ne.Top,type:i}){return t.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:oP(n,e,r),cy:rP(o,e,r),r:e,stroke:"transparent",fill:"transparent"})};os.props=["radius","centerX","centerY","position","type"],os.compatConfig={MODE:3};const Fp=os,iP=t.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:n,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:y,edgesFocusable:h,hooks:k}=Le(),b=t.computed(()=>f(e.id)),{emit:N,on:E}=tI(b.value,a),C=t.inject(Vi),x=t.getCurrentInstance(),A=t.ref(!1),v=t.ref(!1),T=t.ref(""),I=t.ref(null),w=t.ref("source"),F=t.ref(null),S=t.toRef(()=>typeof b.value.selectable>"u"?_.value:b.value.selectable),U=t.toRef(()=>typeof b.value.updatable>"u"?y.value:b.value.updatable),B=t.toRef(()=>typeof b.value.focusable>"u"?h.value:b.value.focusable);t.provide(JA,e.id),t.provide(QA,F);const oe=t.computed(()=>b.value.class instanceof Function?b.value.class(b.value):b.value.class),ie=t.computed(()=>b.value.style instanceof Function?b.value.style(b.value):b.value.style),M=t.computed(()=>{const P=b.value.type||"default",V=C==null?void 0:C[`edge-${P}`];if(V)return V;let D=b.value.template??c.value[P];if(typeof D=="string"&&x){const ne=Object.keys(x.appContext.components);ne&&ne.includes(P)&&(D=t.resolveComponent(P,!1))}return D&&typeof D!="string"?D:(a.error(new lt(et.EDGE_TYPE_MISSING,D)),!1)}),{handlePointerDown:L}=vp({nodeId:T,handleId:I,type:w,isValidConnection:p,edgeUpdaterType:w,onEdgeUpdate:H,onEdgeUpdateEnd:te});return()=>{const P=u(b.value.source),V=u(b.value.target),D="pathOptions"in b.value?b.value.pathOptions:{};if(!P&&!V)return a.error(new lt(et.EDGE_SOURCE_TARGET_MISSING,b.value.id,b.value.source,b.value.target)),null;if(!P)return a.error(new lt(et.EDGE_SOURCE_MISSING,b.value.id,b.value.source)),null;if(!V)return a.error(new lt(et.EDGE_TARGET_MISSING,b.value.id,b.value.target)),null;if(!b.value||b.value.hidden||P.hidden||V.hidden)return null;let ne;r.value===yn.Strict?ne=P.handleBounds.source:ne=[...P.handleBounds.source||[],...P.handleBounds.target||[]];const X=mp(ne,b.value.sourceHandle);let Y;r.value===yn.Strict?Y=V.handleBounds.target:Y=[...V.handleBounds.target||[],...V.handleBounds.source||[]];const K=mp(Y,b.value.targetHandle),le=(X==null?void 0:X.position)||Ne.Bottom,G=(K==null?void 0:K.position)||Ne.Top,{x:z,y:J}=vo(P,X,le),{x:de,y:_e}=vo(V,K,G);return b.value.sourceX=z,b.value.sourceY=J,b.value.targetX=de,b.value.targetY=_e,t.h("g",{ref:F,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${M.value===!1?"default":b.value.type||"default"}`,s.value,oe.value,{updating:A.value,selected:b.value.selected,animated:b.value.animated,inactive:!S.value&&!k.value.edgeClick.hasListeners()}],tabIndex:B.value?0:void 0,"aria-label":b.value.ariaLabel===null?void 0:b.value.ariaLabel??`Edge from ${b.value.source} to ${b.value.target}`,"aria-describedby":B.value?`${Hf}-${n}`:void 0,"aria-roledescription":"edge",role:B.value?"group":"img",...b.value.domAttributes,onClick:j,onContextmenu:se,onDblclick:ue,onMouseenter:ge,onMousemove:re,onMouseleave:q,onKeyDown:B.value?$:void 0},[v.value?null:t.h(M.value===!1?c.value.default:M.value,{id:e.id,sourceNode:P,targetNode:V,source:b.value.source,target:b.value.target,type:b.value.type,updatable:U.value,selected:b.value.selected,animated:b.value.animated,label:b.value.label,labelStyle:b.value.labelStyle,labelShowBg:b.value.labelShowBg,labelBgStyle:b.value.labelBgStyle,labelBgPadding:b.value.labelBgPadding,labelBgBorderRadius:b.value.labelBgBorderRadius,data:b.value.data,events:{...b.value.events,...E},style:ie.value,markerStart:`url('#${hr(b.value.markerStart,n)}')`,markerEnd:`url('#${hr(b.value.markerEnd,n)}')`,sourcePosition:le,targetPosition:G,sourceX:z,sourceY:J,targetX:de,targetY:_e,sourceHandleId:b.value.sourceHandle,targetHandleId:b.value.targetHandle,interactionWidth:b.value.interactionWidth,...D}),[U.value==="source"||U.value===!0?[t.h("g",{onMousedown:ae,onMouseenter:O,onMouseout:R},t.h(Fp,{position:le,centerX:z,centerY:J,radius:i.value,type:"source","data-type":"source"}))]:null,U.value==="target"||U.value===!0?[t.h("g",{onMousedown:ce,onMouseenter:O,onMouseout:R},t.h(Fp,{position:G,centerX:de,centerY:_e,radius:i.value,type:"target","data-type":"target"}))]:null]])};function O(){A.value=!0}function R(){A.value=!1}function H(P,V){N.update({event:P,edge:b.value,connection:V})}function te(P){N.updateEnd({event:P,edge:b.value}),v.value=!1}function W(P,V){P.button===0&&(v.value=!0,T.value=V?b.value.target:b.value.source,I.value=(V?b.value.targetHandle:b.value.sourceHandle)??null,w.value=V?"target":"source",N.updateStart({event:P,edge:b.value}),L(P))}function j(P){var V;const D={event:P,edge:b.value};S.value&&(l.value=!1,b.value.selected&&m.value?(d([b.value]),(V=F.value)==null||V.blur()):o([b.value])),N.click(D)}function se(P){N.contextMenu({event:P,edge:b.value})}function ue(P){N.doubleClick({event:P,edge:b.value})}function ge(P){N.mouseEnter({event:P,edge:b.value})}function re(P){N.mouseMove({event:P,edge:b.value})}function q(P){N.mouseLeave({event:P,edge:b.value})}function ae(P){W(P,!0)}function ce(P){W(P,!1)}function $(P){var V;!g.value&&Yf.includes(P.key)&&S.value&&(P.key==="Escape"?((V=F.value)==null||V.blur(),d([f(e.id)])):o([f(e.id)]))}}}),aP=t.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:n,connectionMode:o,connectionStartHandle:r,connectionEndHandle:i,connectionPosition:a,connectionLineType:l,connectionLineStyle:s,connectionLineOptions:c,connectionStatus:d,viewport:f,findNode:u}=Le(),p=(e=t.inject(Vi))==null?void 0:e["connection-line"],m=t.computed(()=>{var k;return u((k=r.value)==null?void 0:k.nodeId)}),g=t.computed(()=>{var k;return u((k=i.value)==null?void 0:k.nodeId)??null}),_=t.computed(()=>({x:(a.value.x-f.value.x)/f.value.zoom,y:(a.value.y-f.value.y)/f.value.zoom})),y=t.computed(()=>c.value.markerStart?`url(#${hr(c.value.markerStart,n)})`:""),h=t.computed(()=>c.value.markerEnd?`url(#${hr(c.value.markerEnd,n)})`:"");return()=>{var k,b,N;if(!m.value||!r.value)return null;const E=r.value.id,C=r.value.type,x=m.value.handleBounds;let A=(x==null?void 0:x[C])??[];if(o.value===yn.Loose){const ie=(x==null?void 0:x[C==="source"?"target":"source"])??[];A=[...A,...ie]}if(!A)return null;const v=(E?A.find(ie=>ie.id===E):A[0])??null,T=(v==null?void 0:v.position)??Ne.Top,{x:I,y:w}=vo(m.value,v,T);let F=null;g.value&&(o.value===yn.Strict?F=((k=g.value.handleBounds[C==="source"?"target":"source"])==null?void 0:k.find(ie=>{var M;return ie.id===((M=i.value)==null?void 0:M.id)}))||null:F=((b=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:b.find(ie=>{var M;return ie.id===((M=i.value)==null?void 0:M.id)}))||null);const S=((N=i.value)==null?void 0:N.position)??(T?Xl[T]:null);if(!T||!S)return null;const U=l.value??c.value.type??qn.Bezier;let B="";const oe={sourceX:I,sourceY:w,sourcePosition:T,targetX:_.value.x,targetY:_.value.y,targetPosition:S};return U===qn.Bezier?[B]=Bp(oe):U===qn.Step?[B]=ns({...oe,borderRadius:0}):U===qn.SmoothStep?[B]=ns(oe):U===qn.SimpleBezier?[B]=Rp(oe):B=`M${I},${w} ${_.value.x},${_.value.y}`,t.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},t.h("g",{class:"vue-flow__connection"},p?t.h(p,{sourceX:I,sourceY:w,sourcePosition:T,targetX:_.value.x,targetY:_.value.y,targetPosition:S,sourceNode:m.value,sourceHandle:v,targetNode:g.value,targetHandle:F,markerEnd:h.value,markerStart:y.value,connectionStatus:d.value}):t.h("path",{d:B,class:[c.value.class,d,"vue-flow__connection-path"],style:{...s.value,...c.value.style},"marker-end":h.value,"marker-start":y.value})))}}}),lP=["id","markerWidth","markerHeight","markerUnits","orient"],sP={name:"MarkerType",compatConfig:{MODE:3}},cP=t.defineComponent({...sP,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(n,o)=>(t.openBlock(),t.createElementBlock("marker",{id:n.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${n.width}`,markerHeight:`${n.height}`,markerUnits:n.markerUnits,orient:n.orient},[n.type===t.unref(ur).ArrowClosed?(t.openBlock(),t.createElementBlock("polyline",{key:0,style:t.normalizeStyle({stroke:n.color,fill:n.color,strokeWidth:n.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):t.createCommentVNode("",!0),n.type===t.unref(ur).Arrow?(t.openBlock(),t.createElementBlock("polyline",{key:1,style:t.normalizeStyle({stroke:n.color,strokeWidth:n.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):t.createCommentVNode("",!0)],8,lP))}}),dP={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},uP={name:"MarkerDefinitions",compatConfig:{MODE:3}},fP=t.defineComponent({...uP,setup(e){const{id:n,edges:o,connectionLineOptions:r,defaultMarkerColor:i}=Le(),a=t.computed(()=>{const l=new Set,s=[],c=d=>{if(d){const f=hr(d,n);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)=>(t.openBlock(),t.createElementBlock("svg",dP,[t.createElementVNode("defs",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.value,c=>(t.openBlock(),t.createBlock(cP,{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))])]))}}),pP={name:"Edges",compatConfig:{MODE:3}},mP=t.defineComponent({...pP,setup(e){const{findNode:n,getEdges:o,elevateEdgesOnSelect:r}=Le();return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(fP),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(o),l=>(t.openBlock(),t.createElementBlock("svg",{key:l.id,class:"vue-flow__edges vue-flow__container",style:t.normalizeStyle({zIndex:t.unref(LA)(l,t.unref(n),t.unref(r))})},[t.createVNode(t.unref(iP),{id:l.id},null,8,["id"])],4))),128)),t.createVNode(t.unref(aP))],64))}}),gP=t.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:n,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:y,snapGrid:h,nodeDragThreshold:k,nodesDraggable:b,elementsSelectable:N,nodesConnectable:E,nodesFocusable:C,hooks:x}=Le(),A=t.ref(null);t.provide(xp,A),t.provide(Np,e.id);const v=t.inject(Vi),T=t.getCurrentInstance(),I=Ip(),{node:w,parentNode:F}=Ap(e.id),{emit:S,on:U}=iI(w,l),B=t.toRef(()=>typeof w.draggable>"u"?b.value:w.draggable),oe=t.toRef(()=>typeof w.selectable>"u"?N.value:w.selectable),ie=t.toRef(()=>typeof w.connectable>"u"?E.value:w.connectable),M=t.toRef(()=>typeof w.focusable>"u"?C.value:w.focusable),L=t.computed(()=>oe.value||B.value||x.value.nodeClick.hasListeners()||x.value.nodeDoubleClick.hasListeners()||x.value.nodeMouseEnter.hasListeners()||x.value.nodeMouseMove.hasListeners()||x.value.nodeMouseLeave.hasListeners()),O=t.toRef(()=>!!w.dimensions.width&&!!w.dimensions.height),R=t.computed(()=>{const V=w.type||"default",D=v==null?void 0:v[`node-${V}`];if(D)return D;let ne=w.template||u.value[V];if(typeof ne=="string"&&T){const X=Object.keys(T.appContext.components);X&&X.includes(V)&&(ne=t.resolveComponent(V,!1))}return ne&&typeof ne!="string"?ne:(l.error(new lt(et.NODE_TYPE_MISSING,ne)),!1)}),H=Sp({id:e.id,el:A,disabled:()=>!B.value,selectable:oe,dragHandle:()=>w.dragHandle,onStart(V){S.dragStart(V)},onDrag(V){S.drag(V)},onStop(V){S.dragStop(V)},onClick(V){$(V)}}),te=t.computed(()=>w.class instanceof Function?w.class(w):w.class),W=t.computed(()=>{const V=(w.style instanceof Function?w.style(w):w.style)||{},D=w.width instanceof Function?w.width(w):w.width,ne=w.height instanceof Function?w.height(w):w.height;return!V.width&&D&&(V.width=typeof D=="string"?D:`${D}px`),!V.height&&ne&&(V.height=typeof ne=="string"?ne:`${ne}px`),V}),j=t.toRef(()=>Number(w.zIndex??W.value.zIndex??0));return f(V=>{(V.includes(e.id)||!V.length)&&ue()}),t.onMounted(()=>{t.watch(()=>w.hidden,(V=!1,D,ne)=>{!V&&A.value&&(e.resizeObserver.observe(A.value),ne(()=>{A.value&&e.resizeObserver.unobserve(A.value)}))},{immediate:!0,flush:"post"})}),t.watch([()=>w.type,()=>w.sourcePosition,()=>w.targetPosition],()=>{t.nextTick(()=>{d([{id:e.id,nodeElement:A.value,forceUpdate:!0}])})}),t.watch([()=>w.position.x,()=>w.position.y,()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.x},()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.y},()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.z},j,()=>w.selected,()=>w.dimensions.height,()=>w.dimensions.width,()=>{var V;return(V=F.value)==null?void 0:V.dimensions.height},()=>{var V;return(V=F.value)==null?void 0:V.dimensions.width}],([V,D,ne,X,Y,K])=>{const le={x:V,y:D,z:K+(m.value&&w.selected?1e3:0)};typeof ne<"u"&&typeof X<"u"?w.computedPosition=$A({x:ne,y:X,z:Y},le):w.computedPosition=le},{flush:"post",immediate:!0}),t.watch([()=>w.extent,p],([V,D],[ne,X])=>{(V!==ne||D!==X)&&se()}),w.extent==="parent"||typeof w.extent=="object"&&"range"in w.extent&&w.extent.range==="parent"?kl(()=>O).toBe(!0).then(se):se(),()=>w.hidden?null:t.h("div",{ref:A,"data-id":w.id,class:["vue-flow__node",`vue-flow__node-${R.value===!1?"default":w.type||"default"}`,{[o.value]:B.value,dragging:H==null?void 0:H.value,draggable:B.value,selected:w.selected,selectable:oe.value,parent:w.isParent},te.value],style:{visibility:O.value?"visible":"hidden",zIndex:w.computedPosition.z??j.value,transform:`translate(${w.computedPosition.x}px,${w.computedPosition.y}px)`,pointerEvents:L.value?"all":"none",...W.value},tabIndex:M.value?0:void 0,role:M.value?"group":void 0,"aria-describedby":g.value?void 0:`${zf}-${n}`,"aria-label":w.ariaLabel,"aria-roledescription":"node",...w.domAttributes,onMouseenter:ge,onMousemove:re,onMouseleave:q,onContextmenu:ae,onClick:$,onDblclick:ce,onKeydown:P},[t.h(R.value===!1?u.value.default:R.value,{id:w.id,type:w.type,data:w.data,events:{...w.events,...U},selected:w.selected,resizing:w.resizing,dragging:H.value,connectable:ie.value,position:w.computedPosition,dimensions:w.dimensions,isValidTargetPos:w.isValidTargetPos,isValidSourcePos:w.isValidSourcePos,parent:w.parentNode,parentNodeId:w.parentNode,zIndex:w.computedPosition.z??j.value,targetPosition:w.targetPosition,sourcePosition:w.sourcePosition,label:w.label,dragHandle:w.dragHandle,onUpdateNodeInternals:ue})]);function se(){const V=w.computedPosition,{computedPosition:D,position:ne}=Hl(w,y.value?$i(V,h.value):V,l.error,p.value,F.value);(w.computedPosition.x!==D.x||w.computedPosition.y!==D.y)&&(w.computedPosition={...w.computedPosition,...D}),(w.position.x!==ne.x||w.position.y!==ne.y)&&(w.position=ne)}function ue(){A.value&&d([{id:e.id,nodeElement:A.value,forceUpdate:!0}])}function ge(V){H!=null&&H.value||S.mouseEnter({event:V,node:w})}function re(V){H!=null&&H.value||S.mouseMove({event:V,node:w})}function q(V){H!=null&&H.value||S.mouseLeave({event:V,node:w})}function ae(V){return S.contextMenu({event:V,node:w})}function ce(V){return S.doubleClick({event:V,node:w})}function $(V){oe.value&&(!r.value||!B.value||k.value>0)&&Zl(w,a.value,c,s,i,!1,A.value),S.click({event:V,node:w})}function P(V){if(!(jl(V)||g.value))if(Yf.includes(V.key)&&oe.value){const D=V.key==="Escape";Zl(w,a.value,c,s,i,D,A.value)}else B.value&&w.selected&&So[V.key]&&(V.preventDefault(),_.value=`Moved selected node ${V.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~w.position.x}, y: ${~~w.position.y}`,I({x:So[V.key].x,y:So[V.key].y},V.shiftKey))}}});function hP(e={includeHiddenNodes:!1}){const{nodes:n}=Le();return t.computed(()=>{if(n.value.length===0)return!1;for(const o of n.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 yP={class:"vue-flow__nodes vue-flow__container"},_P={name:"Nodes",compatConfig:{MODE:3}},bP=t.defineComponent({..._P,setup(e){const{getNodes:n,updateNodeDimensions:o,emits:r}=Le(),i=hP(),a=t.ref();return t.watch(i,l=>{l&&t.nextTick(()=>{r.nodesInitialized(n.value)})},{immediate:!0}),t.onMounted(()=>{a.value=new ResizeObserver(l=>{const s=l.map(c=>({id:c.target.getAttribute("data-id"),nodeElement:c.target,forceUpdate:!0}));t.nextTick(()=>o(s))})}),t.onBeforeUnmount(()=>{var l;return(l=a.value)==null?void 0:l.disconnect()}),(l,s)=>(t.openBlock(),t.createElementBlock("div",yP,[a.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(t.unref(n),(c,d,f,u)=>{const p=[c.id];if(u&&u.key===c.id&&t.isMemoSame(u,p))return u;const m=(t.openBlock(),t.createBlock(t.unref(gP),{id:c.id,key:c.id,"resize-observer":a.value},null,8,["id","resize-observer"]));return m.memo=p,m},s,0),128)):t.createCommentVNode("",!0)]))}});function wP(){const{emits:e}=Le();t.onMounted(()=>{if(_p()){const n=document.querySelector(".vue-flow__pane");n&&window.getComputedStyle(n).zIndex!=="1"&&e.error(new lt(et.MISSING_STYLES))}})}const kP=t.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),CP={name:"VueFlow",compatConfig:{MODE:3}},Up=t.defineComponent({...CP,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:n,emit:o}){const r=e,i=t.useSlots(),a=Cl(r,"modelValue",o),l=Cl(r,"nodes",o),s=Cl(r,"edges",o),c=Le(r),d=cI({modelValue:a,nodes:l,edges:s},r,c);return uI(o,c.hooks),nP(),wP(),t.provide(Vi,i),t.onUnmounted(()=>{d()}),n(c),(f,u)=>(t.openBlock(),t.createElementBlock("div",{ref:t.unref(c).vueFlowRef,class:"vue-flow"},[t.createVNode(XI,null,{default:t.withCtx(()=>[t.createVNode(mP),kP,t.createVNode(bP),t.renderSlot(f.$slots,"zoom-pane")]),_:3}),t.renderSlot(f.$slots,"default"),t.createVNode(tP)],512))}}),EP={name:"Panel",compatConfig:{MODE:3}},NP=t.defineComponent({...EP,props:{position:{}},setup(e){const n=e,{userSelectionActive:o}=Le(),r=t.computed(()=>`${n.position}`.split("-"));return(i,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["vue-flow__panel",r.value]),style:t.normalizeStyle({pointerEvents:t.unref(o)?"none":"all"})},[t.renderSlot(i.$slots,"default")],6))}});var an=(e=>(e.Lines="lines",e.Dots="dots",e))(an||{});const Kp=function({dimensions:e,size:n,color:o}){return t.h("path",{stroke:o,"stroke-width":n,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},jp=function({radius:e,color:n}){return t.h("circle",{cx:e,cy:e,r:e,fill:n})};an.Lines+"",an.Dots+"";const xP={[an.Dots]:"#81818a",[an.Lines]:"#eee"},SP=["id","x","y","width","height","patternTransform"],vP={key:2,height:"100",width:"100"},AP=["fill"],IP=["x","y","fill"],PP={name:"Background",compatConfig:{MODE:3}},TP=t.defineComponent({...PP,props:{id:{},variant:{default:()=>an.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:n,viewport:o}=Le(),r=t.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=t.toRef(()=>`pattern-${n}${e.id?`-${e.id}`:""}`),a=t.toRef(()=>e.color||e.patternColor||xP[e.variant||an.Dots]);return(l,s)=>(t.openBlock(),t.createElementBlock("svg",{class:"vue-flow__background vue-flow__container",style:t.normalizeStyle({height:`${l.height>100?100:l.height}%`,width:`${l.width>100?100:l.width}%`})},[t.renderSlot(l.$slots,"pattern-container",{id:i.value},()=>[t.createElementVNode("pattern",{id:i.value,x:t.unref(o).x%r.value.scaledGap[0],y:t.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"},[t.renderSlot(l.$slots,"pattern",{},()=>[l.variant===t.unref(an).Lines?(t.openBlock(),t.createBlock(t.unref(Kp),{key:0,size:l.lineWidth,color:a.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):l.variant===t.unref(an).Dots?(t.openBlock(),t.createBlock(t.unref(jp),{key:1,color:a.value,radius:r.value.size/2},null,8,["color","radius"])):t.createCommentVNode("",!0),l.bgColor?(t.openBlock(),t.createElementBlock("svg",vP,[t.createElementVNode("rect",{width:"100%",height:"100%",fill:l.bgColor},null,8,AP)])):t.createCommentVNode("",!0)])],8,SP)]),t.createElementVNode("rect",{x:l.x,y:l.y,width:"100%",height:"100%",fill:`url(#${i.value})`},null,8,IP),t.renderSlot(l.$slots,"default",{id:i.value})],4))}}),OP={name:"ControlButton",compatConfig:{MODE:3}},$P=(e,n)=>{const o=e.__vccOpts||e;for(const[r,i]of n)o[r]=i;return o},BP={class:"vue-flow__controls-button"};function VP(e,n,o,r,i,a){return t.openBlock(),t.createElementBlock("button",BP,[t.renderSlot(e.$slots,"default")])}const yr=$P(OP,[["render",VP]]),RP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},DP=[t.createElementVNode("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1)];function MP(e,n){return t.openBlock(),t.createElementBlock("svg",RP,DP)}const LP={render:MP},FP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},UP=[t.createElementVNode("path",{d:"M0 0h32v4.2H0z"},null,-1)];function KP(e,n){return t.openBlock(),t.createElementBlock("svg",FP,UP)}const jP={render:KP},GP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},qP=[t.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 zP(e,n){return t.openBlock(),t.createElementBlock("svg",GP,qP)}const HP={render:zP},YP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},WP=[t.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 XP(e,n){return t.openBlock(),t.createElementBlock("svg",YP,WP)}const ZP={render:XP},JP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},QP=[t.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 eT(e,n){return t.openBlock(),t.createElementBlock("svg",JP,QP)}const tT={render:eT},nT={name:"Controls",compatConfig:{MODE:3}},oT=t.defineComponent({...nT,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>Gf.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:n}){const{nodesDraggable:o,nodesConnectable:r,elementsSelectable:i,setInteractive:a,zoomIn:l,zoomOut:s,fitView:c,viewport:d,minZoom:f,maxZoom:u}=Le(),p=t.toRef(()=>o.value||r.value||i.value),m=t.toRef(()=>d.value.zoom<=f.value),g=t.toRef(()=>d.value.zoom>=u.value);function _(){l(),n("zoomIn")}function y(){s(),n("zoomOut")}function h(){c(e.fitViewParams),n("fitView")}function k(){a(!p.value),n("interactionChange",!p.value)}return(b,N)=>(t.openBlock(),t.createBlock(t.unref(NP),{class:"vue-flow__controls",position:b.position},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"top"),b.showZoom?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(b.$slots,"control-zoom-in",{},()=>[t.createVNode(yr,{class:"vue-flow__controls-zoomin",disabled:g.value,onClick:_},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-zoom-in",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(LP))))])]),_:3},8,["disabled"])]),t.renderSlot(b.$slots,"control-zoom-out",{},()=>[t.createVNode(yr,{class:"vue-flow__controls-zoomout",disabled:m.value,onClick:y},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-zoom-out",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(jP))))])]),_:3},8,["disabled"])])],64)):t.createCommentVNode("",!0),b.showFitView?t.renderSlot(b.$slots,"control-fit-view",{key:1},()=>[t.createVNode(yr,{class:"vue-flow__controls-fitview",onClick:h},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-fit-view",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(HP))))])]),_:3})]):t.createCommentVNode("",!0),b.showInteractive?t.renderSlot(b.$slots,"control-interactive",{key:2},()=>[b.showInteractive?(t.openBlock(),t.createBlock(yr,{key:0,class:"vue-flow__controls-interactive",onClick:k},{default:t.withCtx(()=>[p.value?t.renderSlot(b.$slots,"icon-unlock",{key:0},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(tT))))]):t.createCommentVNode("",!0),p.value?t.createCommentVNode("",!0):t.renderSlot(b.$slots,"icon-lock",{key:1},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(ZP))))])]),_:3})):t.createCommentVNode("",!0)]):t.createCommentVNode("",!0),t.renderSlot(b.$slots,"default")]),_:3},8,["position"]))}}),rT=["undo","redo","duplicate","cut","copy","paste"],Gp=()=>{};function iT(e){const n=e;return n?!!n.closest('input, textarea, [contenteditable]:not([contenteditable="false"])'):!1}function aT(e){if(!(e.metaKey||e.ctrlKey))return;switch(e.key.toLowerCase()){case"z":return e.shiftKey?"redo":"undo";case"y":return"redo";case"d":return"duplicate";case"x":return"cut";case"c":return"copy";case"v":return"paste"}}const lT=je.createSharedComposable(()=>{const e=new Set;je.useEventListener("keydown",o=>{if(iT(o.target))return;const r=aT(o);if(r)for(const i of e){if(!t.toValue(i.enabled))continue;const a=i[r];if(a){if(o.defaultPrevented){t.warn(`[useHotkeys] event for "${r}" was already defaultPrevented. Hotkey ignored.`);return}o.preventDefault(),a();return}}},{passive:!1});function n(o){if(!rT.some(i=>typeof o[i]=="function"))return Gp;const r={enabled:o.enabled??!0,...o};return e.add(r),()=>e.delete(r)}return{subscribe:n}});function qp(e={}){if(typeof window>"u")return Gp;const n=lT().subscribe(e);return t.onScopeDispose(n),n}const zp=44,sT=220,Hp=366,cT=1e3,dT=zp+parseFloat(Vu),Ki=1,uT=0,fT=1,pT=2,mT=3,Ao=parseInt(a1,10),_r="application/x-datakit+json",ji={delete:["Delete"],undo:["Mod","Z"],redo:{mac:["Mod","Shift","Z"],windows:["Mod","Y"],linux:["Mod","Shift","Z"]},copy:["Mod","C"],paste:["Mod","V"],duplicate:["Mod","D"]},Cn={padding:80,gaps:{nodes:60,edges:80,ranks:60}},gT=1600,hT=1.2,yT=0,_T=200,Yp=Symbol("confirm-modal"),Io="{key}",Wn={"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}},Gi=Object.keys(Wn).filter(e=>e.includes(Io)).map(e=>e.replace(Io,""));function rs(e){if(!e||!wr(e))return;const n=Gi.find(o=>e.startsWith(o));if(n)return e.slice(n.length).replace(Io,"")}function br(e){if(!e)return null;const n=Gi.find(o=>e.startsWith(o));return n||e}function wr(e){return e?Gi.some(n=>e.startsWith(n)):!1}function Wp(e){return e?wr(e)?br(e)+Io:e:null}function is(e){var o;if(!e)return!1;const n=Wp(e);return n?((o=Wn[n])==null?void 0:o.readable)??!1:!1}function as(e){var o;if(!e)return!1;const n=Wp(e);return n?((o=Wn[n])==null?void 0:o.writable)??!1:!1}function qi(e,n,o){const r=n?hn(e,o,n):void 0;return`${e.name}${r?`.${r.name}`:""}`}function kr(e,n){const o=n(e.source),r=n(e.target);return[qi(o,e.sourceField,"output"),qi(r,e.targetField,"input")]}function ls(e,n,o,r,i){const a=i(e),l=i(o);return[qi(a,n,"output"),qi(l,r,"input")]}function Xp(e){if(e.length===0)throw new Error("getBoundingRect requires at least one rect");let n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const{x:a,y:l,width:s,height:c}of e){if(![a,l,s,c].every(Number.isFinite))throw new Error("Rect values must be finite numbers");if(s<0||c<0)throw new RangeError("Rect width and height must be non-negative");const d=a+s,f=l+c;if(!Number.isFinite(d)||!Number.isFinite(f))throw new RangeError("Rect boundaries must be finite numbers");a<n&&(n=a),l<o&&(o=l),d>r&&(r=d),f>i&&(i=f)}return{x:n,y:o,width:r-n,height:i-o}}function bT(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wT="\0",Xn="\0",Zp="";let kT=class{constructor(n){rt(this,"_isDirected",!0);rt(this,"_isMultigraph",!1);rt(this,"_isCompound",!1);rt(this,"_label");rt(this,"_defaultNodeLabelFn",()=>{});rt(this,"_defaultEdgeLabelFn",()=>{});rt(this,"_nodes",{});rt(this,"_in",{});rt(this,"_preds",{});rt(this,"_out",{});rt(this,"_sucs",{});rt(this,"_edgeObjs",{});rt(this,"_edgeLabels",{});rt(this,"_nodeCount",0);rt(this,"_edgeCount",0);rt(this,"_parent");rt(this,"_children");n&&(this._isDirected=Object.hasOwn(n,"directed")?n.directed:!0,this._isMultigraph=Object.hasOwn(n,"multigraph")?n.multigraph:!1,this._isCompound=Object.hasOwn(n,"compound")?n.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[Xn]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return this._defaultNodeLabelFn=n,typeof n!="function"&&(this._defaultNodeLabelFn=()=>n),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var n=this;return this.nodes().filter(o=>Object.keys(n._in[o]).length===0)}sinks(){var n=this;return this.nodes().filter(o=>Object.keys(n._out[o]).length===0)}setNodes(n,o){var r=arguments,i=this;return n.forEach(function(a){r.length>1?i.setNode(a,o):i.setNode(a)}),this}setNode(n,o){return Object.hasOwn(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=o),this):(this._nodes[n]=arguments.length>1?o:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=Xn,this._children[n]={},this._children[Xn][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return Object.hasOwn(this._nodes,n)}removeNode(n){var o=this;if(Object.hasOwn(this._nodes,n)){var r=i=>o.removeEdge(o._edgeObjs[i]);delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],this.children(n).forEach(function(i){o.setParent(i)}),delete this._children[n]),Object.keys(this._in[n]).forEach(r),delete this._in[n],delete this._preds[n],Object.keys(this._out[n]).forEach(r),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,o){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(o===void 0)o=Xn;else{o+="";for(var r=o;r!==void 0;r=this.parent(r))if(r===n)throw new Error("Setting "+o+" as parent of "+n+" would create a cycle");this.setNode(o)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=o,this._children[o][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var o=this._parent[n];if(o!==Xn)return o}}children(n=Xn){if(this._isCompound){var o=this._children[n];if(o)return Object.keys(o)}else{if(n===Xn)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var o=this._preds[n];if(o)return Object.keys(o)}successors(n){var o=this._sucs[n];if(o)return Object.keys(o)}neighbors(n){var o=this.predecessors(n);if(o){const i=new Set(o);for(var r of this.successors(n))i.add(r);return Array.from(i.values())}}isLeaf(n){var o;return this.isDirected()?o=this.successors(n):o=this.neighbors(n),o.length===0}filterNodes(n){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]){n(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(n){return this._defaultEdgeLabelFn=n,typeof n!="function"&&(this._defaultEdgeLabelFn=()=>n),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(n,o){var r=this,i=arguments;return n.reduce(function(a,l){return i.length>1?r.setEdge(a,l,o):r.setEdge(a,l),l}),this}setEdge(){var n,o,r,i,a=!1,l=arguments[0];typeof l=="object"&&l!==null&&"v"in l?(n=l.v,o=l.w,r=l.name,arguments.length===2&&(i=arguments[1],a=!0)):(n=l,o=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),n=""+n,o=""+o,r!==void 0&&(r=""+r);var s=Cr(this._isDirected,n,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(n),this.setNode(o),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(n,o,r);var c=CT(this._isDirected,n,o,r);return n=c.v,o=c.w,Object.freeze(c),this._edgeObjs[s]=c,Jp(this._preds[o],n),Jp(this._sucs[n],o),this._in[o][s]=c,this._out[n][s]=c,this._edgeCount++,this}edge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r);return this._edgeLabels[i]}edgeAsObj(){const n=this.edge(...arguments);return typeof n!="object"?{label:n}:n}hasEdge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r);return Object.hasOwn(this._edgeLabels,i)}removeEdge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r),a=this._edgeObjs[i];return a&&(n=a.v,o=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Qp(this._preds[o],n),Qp(this._sucs[n],o),delete this._in[o][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,o){var r=this._in[n];if(r){var i=Object.values(r);return o?i.filter(a=>a.v===o):i}}outEdges(n,o){var r=this._out[n];if(r){var i=Object.values(r);return o?i.filter(a=>a.w===o):i}}nodeEdges(n,o){var r=this.inEdges(n,o);if(r)return r.concat(this.outEdges(n,o))}};function Jp(e,n){e[n]?e[n]++:e[n]=1}function Qp(e,n){--e[n]||delete e[n]}function Cr(e,n,o,r){var i=""+n,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}return i+Zp+a+Zp+(r===void 0?wT:r)}function CT(e,n,o,r){var i=""+n,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 ss(e,n){return Cr(e,n.v,n.w,n.name)}var cs=kT,ET="2.2.4",NT={Graph:cs,version:ET},xT=cs,ST={write:vT,read:PT};function vT(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:AT(e),edges:IT(e)};return e.graph()!==void 0&&(n.value=structuredClone(e.graph())),n}function AT(e){return e.nodes().map(function(n){var o=e.node(n),r=e.parent(n),i={v:n};return o!==void 0&&(i.value=o),r!==void 0&&(i.parent=r),i})}function IT(e){return e.edges().map(function(n){var o=e.edge(n),r={v:n.v,w:n.w};return n.name!==void 0&&(r.name=n.name),o!==void 0&&(r.value=o),r})}function PT(e){var n=new xT(e.options).setGraph(e.value);return e.nodes.forEach(function(o){n.setNode(o.v,o.value),o.parent&&n.setParent(o.v,o.parent)}),e.edges.forEach(function(o){n.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),n}var TT=OT;function OT(e){var n={},o=[],r;function i(a){Object.hasOwn(n,a)||(n[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 em=class{constructor(){rt(this,"_arr",[]);rt(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var o=this._keyIndices[n];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(n,o){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var i=this._arr,a=i.length;return r[n]=a,i.push({key:n,priority:o}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,o){var r=this._keyIndices[n];if(o>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+o);this._arr[r].priority=o,this._decrease(r)}_heapify(n){var o=this._arr,r=2*n,i=r+1,a=n;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!==n&&(this._swap(n,a),this._heapify(a)))}_decrease(n){for(var o=this._arr,r=o[n].priority,i;n!==0&&(i=n>>1,!(o[i].priority<r));)this._swap(n,i),n=i}_swap(n,o){var r=this._arr,i=this._keyIndices,a=r[n],l=r[o];r[n]=l,r[o]=a,i[l.key]=n,i[a.key]=o}},$T=em,tm=VT,BT=()=>1;function VT(e,n,o,r){return RT(e,String(n),o||BT,r||function(i){return e.outEdges(i)})}function RT(e,n,o,r){var i={},a=new $T,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===n?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 DT=tm,MT=LT;function LT(e,n,o){return e.nodes().reduce(function(r,i){return r[i]=DT(e,i,n,o),r},{})}var nm=FT;function FT(e){var n=0,o=[],r={},i=[];function a(l){var s=r[l]={onStack:!0,lowlink:n,index:n++};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 UT=nm,KT=jT;function jT(e){return UT(e).filter(function(n){return n.length>1||n.length===1&&e.hasEdge(n[0],n[0])})}var GT=zT,qT=()=>1;function zT(e,n,o){return HT(e,n||qT,o||function(r){return e.outEdges(r)})}function HT(e,n,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=n(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 om(e){var n={},o={},r=[];function i(a){if(Object.hasOwn(o,a))throw new ds;Object.hasOwn(n,a)||(o[a]=!0,n[a]=!0,e.predecessors(a).forEach(i),delete o[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(n).length!==e.nodeCount())throw new ds;return r}class ds extends Error{constructor(){super(...arguments)}}var rm=om;om.CycleException=ds;var im=rm,YT=WT;function WT(e){try{im(e)}catch(n){if(n instanceof im.CycleException)return!1;throw n}return!0}var am=XT;function XT(e,n,o){Array.isArray(n)||(n=[n]);var r=e.isDirected()?s=>e.successors(s):s=>e.neighbors(s),i=o==="post"?ZT:JT,a=[],l={};return n.forEach(s=>{if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);i(s,r,l,a)}),a}function ZT(e,n,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]),lm(n(a[0]),l=>i.push([l,!1])))}}function JT(e,n,o,r){for(var i=[e];i.length>0;){var a=i.pop();Object.hasOwn(o,a)||(o[a]=!0,r.push(a),lm(n(a),l=>i.push(l)))}}function lm(e,n){for(var o=e.length;o--;)n(e[o],o,e);return e}var QT=am,eO=tO;function tO(e,n){return QT(e,n,"post")}var nO=am,oO=rO;function rO(e,n){return nO(e,n,"pre")}var iO=cs,aO=em,lO=sO;function sO(e,n){var o=new iO,r={},i=new aO,a;function l(c){var d=c.v===a?c.w:c.v,f=i.priority(d);if(f!==void 0){var u=n(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 cO={components:TT,dijkstra:tm,dijkstraAll:MT,findCycles:KT,floydWarshall:GT,isAcyclic:YT,postorder:eO,preorder:oO,prim:lO,tarjan:nm,topsort:rm},sm=NT,Lt={Graph:sm.Graph,json:ST,alg:cO,version:sm.version};let dO=class{constructor(){let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let n=this._sentinel,o=n._prev;if(o!==n)return cm(o),o}enqueue(n){let o=this._sentinel;n._prev&&n._next&&cm(n),n._next=o._next,o._next._prev=n,o._next=n,n._prev=o}toString(){let n=[],o=this._sentinel,r=o._prev;for(;r!==o;)n.push(JSON.stringify(r,uO)),r=r._prev;return"["+n.join(", ")+"]"}};function cm(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function uO(e,n){if(e!=="_next"&&e!=="_prev")return n}var fO=dO;let pO=Lt.Graph,mO=fO;var gO=yO;let hO=()=>1;function yO(e,n){if(e.nodeCount()<=1)return[];let o=bO(e,n||hO);return _O(o.graph,o.buckets,o.zeroIdx).flatMap(i=>e.outEdges(i.v,i.w))}function _O(e,n,o){let r=[],i=n[n.length-1],a=n[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)us(e,n,o,l);for(;l=i.dequeue();)us(e,n,o,l);if(e.nodeCount()){for(let s=n.length-2;s>0;--s)if(l=n[s].dequeue(),l){r=r.concat(us(e,n,o,l,!0));break}}}return r}function us(e,n,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,fs(n,o,c)}),e.outEdges(r.v).forEach(l=>{let s=e.edge(l),c=l.w,d=e.node(c);d.in-=s,fs(n,o,d)}),e.removeNode(r.v),a}function bO(e,n){let o=new pO,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=n(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=wO(i+r+3).map(()=>new mO),l=r+1;return o.nodes().forEach(s=>{fs(a,l,o.node(s))}),{graph:o,buckets:a,zeroIdx:l}}function fs(e,n,o){o.out?o.in?e[o.out-o.in+n].enqueue(o):e[e.length-1].enqueue(o):e[0].enqueue(o)}function wO(e){const n=[];for(let o=0;o<e;o++)n.push(o);return n}let dm=Lt.Graph;var nt={addBorderNode:IO,addDummyNode:um,applyWithChunking:zi,asNonCompoundGraph:CO,buildLayerMatrix:SO,intersectRect:xO,mapValues:RO,maxRank:pm,normalizeRanks:vO,notime:$O,partition:TO,pick:VO,predecessorWeights:NO,range:gm,removeEmptyRanks:AO,simplify:kO,successorWeights:EO,time:OO,uniqueId:mm,zipObject:ps};function um(e,n,o,r){for(var i=r;e.hasNode(i);)i=mm(r);return o.dummy=n,e.setNode(i,o),i}function kO(e){let n=new dm().setGraph(e.graph());return e.nodes().forEach(o=>n.setNode(o,e.node(o))),e.edges().forEach(o=>{let r=n.edge(o.v,o.w)||{weight:0,minlen:1},i=e.edge(o);n.setEdge(o.v,o.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),n}function CO(e){let n=new dm({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(o=>{e.children(o).length||n.setNode(o,e.node(o))}),e.edges().forEach(o=>{n.setEdge(o,e.edge(o))}),n}function EO(e){let n=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 ps(e.nodes(),n)}function NO(e){let n=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 ps(e.nodes(),n)}function xO(e,n){let o=e.x,r=e.y,i=n.x-o,a=n.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 SO(e){let n=gm(pm(e)+1).map(()=>[]);return e.nodes().forEach(o=>{let r=e.node(o),i=r.rank;i!==void 0&&(n[i][r.order]=o)}),n}function vO(e){let n=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MAX_VALUE:i}),o=zi(Math.min,n);e.nodes().forEach(r=>{let i=e.node(r);Object.hasOwn(i,"rank")&&(i.rank-=o)})}function AO(e){let n=e.nodes().map(l=>e.node(l).rank),o=zi(Math.min,n),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 IO(e,n,o,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=o,i.order=r),um(e,"border",i,n)}function PO(e,n=fm){const o=[];for(let r=0;r<e.length;r+=n){const i=e.slice(r,r+n);o.push(i)}return o}const fm=65535;function zi(e,n){if(n.length>fm){const o=PO(n);return e.apply(null,o.map(r=>e.apply(null,r)))}else return e.apply(null,n)}function pm(e){const o=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MIN_VALUE:i});return zi(Math.max,o)}function TO(e,n){let o={lhs:[],rhs:[]};return e.forEach(r=>{n(r)?o.lhs.push(r):o.rhs.push(r)}),o}function OO(e,n){let o=Date.now();try{return n()}finally{console.log(e+" time: "+(Date.now()-o)+"ms")}}function $O(e,n){return n()}let BO=0;function mm(e){var n=++BO;return e+(""+n)}function gm(e,n,o=1){n==null&&(n=e,e=0);let r=a=>a<n;o<0&&(r=a=>n<a);const i=[];for(let a=e;r(a);a+=o)i.push(a);return i}function VO(e,n){const o={};for(const r of n)e[r]!==void 0&&(o[r]=e[r]);return o}function RO(e,n){let o=n;return typeof n=="string"&&(o=r=>r[n]),Object.entries(e).reduce((r,[i,a])=>(r[i]=o(a,i),r),{})}function ps(e,n){return e.reduce((o,r,i)=>(o[r]=n[i],o),{})}let DO=gO,MO=nt.uniqueId;var LO={run:FO,undo:KO};function FO(e){(e.graph().acyclicer==="greedy"?DO(e,o(e)):UO(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,MO("rev"))});function o(r){return i=>r.edge(i).weight}}function UO(e){let n=[],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)?n.push(l):i(l.w)}),delete o[a])}return e.nodes().forEach(i),n}function KO(e){e.edges().forEach(n=>{let o=e.edge(n);if(o.reversed){e.removeEdge(n);let r=o.forwardName;delete o.reversed,delete o.forwardName,e.setEdge(n.w,n.v,o,r)}})}let jO=nt;var GO={run:qO,undo:HO};function qO(e){e.graph().dummyChains=[],e.edges().forEach(n=>zO(e,n))}function zO(e,n){let o=n.v,r=e.node(o).rank,i=n.w,a=e.node(i).rank,l=n.name,s=e.edge(n),c=s.labelRank;if(a===r+1)return;e.removeEdge(n);let d,f,u;for(u=0,++r;r<a;++u,++r)s.points=[],f={width:0,height:0,edgeLabel:s,edgeObj:n,rank:r},d=jO.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 HO(e){e.graph().dummyChains.forEach(n=>{let o=e.node(n),r=o.edgeLabel,i;for(e.setEdge(o.edgeObj,r);o.dummy;)i=e.successors(n)[0],e.removeNode(n),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),n=i,o=e.node(n)})}const{applyWithChunking:YO}=nt;var Hi={longestPath:WO,slack:XO};function WO(e){var n={};function o(r){var i=e.node(r);if(Object.hasOwn(n,r))return i.rank;n[r]=!0;let a=e.outEdges(r).map(s=>s==null?Number.POSITIVE_INFINITY:o(s.w)-e.edge(s).minlen);var l=YO(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(o)}function XO(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}var ZO=Lt.Graph,Yi=Hi.slack,hm=JO;function JO(e){var n=new ZO({directed:!1}),o=e.nodes()[0],r=e.nodeCount();n.setNode(o,{});for(var i,a;QO(n,e)<r;)i=e$(n,e),a=n.hasNode(i.v)?Yi(e,i):-Yi(e,i),t$(n,e,a);return n}function QO(e,n){function o(r){n.nodeEdges(r).forEach(i=>{var a=i.v,l=r===a?i.w:a;!e.hasNode(l)&&!Yi(n,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),o(l))})}return e.nodes().forEach(o),e.nodeCount()}function e$(e,n){return n.edges().reduce((r,i)=>{let a=Number.POSITIVE_INFINITY;return e.hasNode(i.v)!==e.hasNode(i.w)&&(a=Yi(n,i)),a<r[0]?[a,i]:r},[Number.POSITIVE_INFINITY,null])[1]}function t$(e,n,o){e.nodes().forEach(r=>n.node(r).rank+=o)}var n$=hm,ym=Hi.slack,o$=Hi.longestPath,r$=Lt.alg.preorder,i$=Lt.alg.postorder,a$=nt.simplify,l$=Zn;Zn.initLowLimValues=gs,Zn.initCutValues=ms,Zn.calcCutValue=_m,Zn.leaveEdge=wm,Zn.enterEdge=km,Zn.exchangeEdges=Cm;function Zn(e){e=a$(e),o$(e);var n=n$(e);gs(n),ms(n,e);for(var o,r;o=wm(n);)r=km(n,e,o),Cm(n,e,o,r)}function ms(e,n){var o=i$(e,e.nodes());o=o.slice(0,o.length-1),o.forEach(r=>s$(e,n,r))}function s$(e,n,o){var r=e.node(o),i=r.parent;e.edge(o,i).cutvalue=_m(e,n,o)}function _m(e,n,o){var r=e.node(o),i=r.parent,a=!0,l=n.edge(o,i),s=0;return l||(a=!1,l=n.edge(i,o)),s=l.weight,n.nodeEdges(o).forEach(c=>{var d=c.v===o,f=d?c.w:c.v;if(f!==i){var u=d===a,p=n.edge(c).weight;if(s+=u?p:-p,d$(e,o,f)){var m=e.edge(o,f).cutvalue;s+=u?-m:m}}}),s}function gs(e,n){arguments.length<2&&(n=e.nodes()[0]),bm(e,{},1,n)}function bm(e,n,o,r,i){var a=o,l=e.node(r);return n[r]=!0,e.neighbors(r).forEach(s=>{Object.hasOwn(n,s)||(o=bm(e,n,o,s,r))}),l.low=a,l.lim=o++,i?l.parent=i:delete l.parent,o}function wm(e){return e.edges().find(n=>e.edge(n).cutvalue<0)}function km(e,n,o){var r=o.v,i=o.w;n.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=n.edges().filter(f=>c===Em(e,e.node(f.v),s)&&c!==Em(e,e.node(f.w),s));return d.reduce((f,u)=>ym(n,u)<ym(n,f)?u:f)}function Cm(e,n,o,r){var i=o.v,a=o.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),gs(e),ms(e,n),c$(e,n)}function c$(e,n){var o=e.nodes().find(i=>!n.node(i).parent),r=r$(e,o);r=r.slice(1),r.forEach(i=>{var a=e.node(i).parent,l=n.edge(i,a),s=!1;l||(l=n.edge(a,i),s=!0),n.node(i).rank=n.node(a).rank+(s?l.minlen:-l.minlen)})}function d$(e,n,o){return e.hasEdge(n,o)}function Em(e,n,o){return o.low<=n.lim&&n.lim<=o.lim}var u$=Hi,Nm=u$.longestPath,f$=hm,p$=l$,m$=g$;function g$(e){var n=e.graph().ranker;if(n instanceof Function)return n(e);switch(e.graph().ranker){case"network-simplex":xm(e);break;case"tight-tree":y$(e);break;case"longest-path":h$(e);break;case"none":break;default:xm(e)}}var h$=Nm;function y$(e){Nm(e),f$(e)}function xm(e){p$(e)}var _$=b$;function b$(e){let n=k$(e);e.graph().dummyChains.forEach(o=>{let r=e.node(o),i=r.edgeObj,a=w$(e,n,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 w$(e,n,o,r){let i=[],a=[],l=Math.min(n[o].low,n[r].low),s=Math.max(n[o].lim,n[r].lim),c,d;c=o;do c=e.parent(c),i.push(c);while(c&&(n[c].low>l||s>n[c].lim));for(d=c,c=r;(c=e.parent(c))!==d;)a.push(c);return{path:i.concat(a.reverse()),lca:d}}function k$(e){let n={},o=0;function r(i){let a=o;e.children(i).forEach(r),n[i]={low:a,lim:o++}}return e.children().forEach(r),n}let Wi=nt;var C$={run:E$,cleanup:S$};function E$(e){let n=Wi.addDummyNode(e,"root",{},"_root"),o=N$(e),r=Object.values(o),i=Wi.applyWithChunking(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=n,e.edges().forEach(s=>e.edge(s).minlen*=a);let l=x$(e)+1;e.children().forEach(s=>Sm(e,n,a,l,i,o,s)),e.graph().nodeRankFactor=a}function Sm(e,n,o,r,i,a,l){let s=e.children(l);if(!s.length){l!==n&&e.setEdge(n,l,{weight:0,minlen:o});return}let c=Wi.addBorderNode(e,"_bt"),d=Wi.addBorderNode(e,"_bb"),f=e.node(l);e.setParent(c,l),f.borderTop=c,e.setParent(d,l),f.borderBottom=d,s.forEach(u=>{Sm(e,n,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,y=m!==g?1:i-a[l]+1;e.setEdge(c,m,{weight:_,minlen:y,nestingEdge:!0}),e.setEdge(g,d,{weight:_,minlen:y,nestingEdge:!0})}),e.parent(l)||e.setEdge(n,c,{weight:0,minlen:i+a[l]})}function N$(e){var n={};function o(r,i){var a=e.children(r);a&&a.length&&a.forEach(l=>o(l,i+1)),n[r]=i}return e.children().forEach(r=>o(r,1)),n}function x$(e){return e.edges().reduce((n,o)=>n+e.edge(o).weight,0)}function S$(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,e.edges().forEach(o=>{var r=e.edge(o);r.nestingEdge&&e.removeEdge(o)})}let v$=nt;var A$=I$;function I$(e){function n(o){let r=e.children(o),i=e.node(o);if(r.length&&r.forEach(n),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,l=i.maxRank+1;a<l;++a)vm(e,"borderLeft","_bl",o,i,a),vm(e,"borderRight","_br",o,i,a)}}e.children().forEach(n)}function vm(e,n,o,r,i,a){let l={width:0,height:0,rank:a,borderType:n},s=i[n][a-1],c=v$.addDummyNode(e,"border",l,o);i[n][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}var P$={adjust:T$,undo:O$};function T$(e){let n=e.graph().rankdir.toLowerCase();(n==="lr"||n==="rl")&&Am(e)}function O$(e){let n=e.graph().rankdir.toLowerCase();(n==="bt"||n==="rl")&&$$(e),(n==="lr"||n==="rl")&&(B$(e),Am(e))}function Am(e){e.nodes().forEach(n=>Im(e.node(n))),e.edges().forEach(n=>Im(e.edge(n)))}function Im(e){let n=e.width;e.width=e.height,e.height=n}function $$(e){e.nodes().forEach(n=>hs(e.node(n))),e.edges().forEach(n=>{let o=e.edge(n);o.points.forEach(hs),Object.hasOwn(o,"y")&&hs(o)})}function hs(e){e.y=-e.y}function B$(e){e.nodes().forEach(n=>ys(e.node(n))),e.edges().forEach(n=>{let o=e.edge(n);o.points.forEach(ys),Object.hasOwn(o,"x")&&ys(o)})}function ys(e){let n=e.x;e.x=e.y,e.y=n}let Pm=nt;var V$=R$;function R$(e){let n={},o=e.nodes().filter(c=>!e.children(c).length),r=o.map(c=>e.node(c).rank),i=Pm.applyWithChunking(Math.max,r),a=Pm.range(i+1).map(()=>[]);function l(c){if(n[c])return;n[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 D$=nt.zipObject;var M$=L$;function L$(e,n){let o=0;for(let r=1;r<n.length;++r)o+=F$(e,n[r-1],n[r]);return o}function F$(e,n,o){let r=D$(o,o.map((d,f)=>f)),i=n.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 U$=K$;function K$(e,n=[]){return n.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 j$=nt;var G$=q$;function q$(e,n){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)}),n.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 z$(r)}function z$(e){let n=[];function o(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&H$(i,a)}}function r(i){return a=>{a.in.push(i),--a.indegree===0&&e.push(a)}}for(;e.length;){let i=e.pop();n.push(i),i.in.reverse().forEach(o(i)),i.out.forEach(r(i))}return n.filter(i=>!i.merged).map(i=>j$.pick(i,["vs","i","barycenter","weight"]))}function H$(e,n){let o=0,r=0;e.weight&&(o+=e.barycenter*e.weight,r+=e.weight),n.weight&&(o+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=o/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}let Y$=nt;var W$=X$;function X$(e,n){let o=Y$.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(Z$(!!n)),c=Tm(a,i,c),r.forEach(f=>{c+=f.vs.length,a.push(f.vs),l+=f.barycenter*f.weight,s+=f.weight,c=Tm(a,i,c)});let d={vs:a.flat(!0)};return s&&(d.barycenter=l/s,d.weight=s),d}function Tm(e,n,o){let r;for(;n.length&&(r=n[n.length-1]).i<=o;)n.pop(),e.push(r.vs),o++;return o}function Z$(e){return(n,o)=>n.barycenter<o.barycenter?-1:n.barycenter>o.barycenter?1:e?o.i-n.i:n.i-o.i}let J$=U$,Q$=G$,eB=W$;var tB=Om;function Om(e,n,o,r){let i=e.children(n),a=e.node(n),l=a?a.borderLeft:void 0,s=a?a.borderRight:void 0,c={};l&&(i=i.filter(p=>p!==l&&p!==s));let d=J$(e,i);d.forEach(p=>{if(e.children(p.v).length){let m=Om(e,p.v,o,r);c[p.v]=m,Object.hasOwn(m,"barycenter")&&oB(p,m)}});let f=Q$(d,o);nB(f,c);let u=eB(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 nB(e,n){e.forEach(o=>{o.vs=o.vs.flatMap(r=>n[r]?n[r].vs:r)})}function oB(e,n){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight):(e.barycenter=n.barycenter,e.weight=n.weight)}let rB=Lt.Graph,iB=nt;var aB=lB;function lB(e,n,o){let r=sB(e),i=new rB({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===n||l.minRank<=n&&n<=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[n],borderRight:l.borderRight[n]}))}),i}function sB(e){for(var n;e.hasNode(n=iB.uniqueId("_root")););return n}var cB=dB;function dB(e,n,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){n.setEdge(c,l);return}l=s}})}let uB=V$,fB=M$,pB=tB,mB=aB,gB=cB,hB=Lt.Graph,Xi=nt;var yB=$m;function $m(e,n){if(n&&typeof n.customOrder=="function"){n.customOrder(e,$m);return}let o=Xi.maxRank(e),r=Bm(e,Xi.range(1,o+1),"inEdges"),i=Bm(e,Xi.range(o-1,-1,-1),"outEdges"),a=uB(e);if(Vm(e,a),n&&n.disableOptimalOrderHeuristic)return;let l=Number.POSITIVE_INFINITY,s;for(let c=0,d=0;d<4;++c,++d){_B(c%2?r:i,c%4>=2),a=Xi.buildLayerMatrix(e);let f=fB(e,a);f<l&&(d=0,s=Object.assign({},a),l=f)}Vm(e,s)}function Bm(e,n,o){return n.map(function(r){return mB(e,r,o)})}function _B(e,n){let o=new hB;e.forEach(function(r){let i=r.graph().root,a=pB(r,i,o,n);a.vs.forEach((l,s)=>r.node(l).order=s),gB(r,o,a.vs)})}function Vm(e,n){Object.values(n).forEach(o=>o.forEach((r,i)=>e.node(r).order=i))}let bB=Lt.Graph,ln=nt;var wB={positionX:TB};function kB(e,n){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=EB(e,f),m=p?e.node(p).order:c;(p||f===d)&&(a.slice(s,u+1).forEach(g=>{e.predecessors(g).forEach(_=>{let y=e.node(_),h=y.order;(h<l||m<h)&&!(y.dummy&&e.node(g).dummy)&&Rm(o,_,g)})}),s=u+1,l=m)}),a}return n.length&&n.reduce(r),o}function CB(e,n){let o={};function r(a,l,s,c,d){let f;ln.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)&&Rm(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 n.length&&n.reduce(i),o}function EB(e,n){if(e.node(n).dummy)return e.predecessors(n).find(o=>e.node(o).dummy)}function Rm(e,n,o){if(n>o){let i=n;n=o,o=i}let r=e[n];r||(e[n]=r={}),r[o]=!0}function NB(e,n,o){if(n>o){let r=n;n=o,o=r}return!!e[n]&&Object.hasOwn(e[n],o)}function xB(e,n,o,r){let i={},a={},l={};return n.forEach(s=>{s.forEach((c,d)=>{i[c]=c,a[c]=c,l[c]=d})}),n.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]&&!NB(o,d,g)&&(a[g]=d,a[d]=i[d]=i[g],c=l[g])}}})}),{root:i,align:a}}function SB(e,n,o,r,i){let a={},l=vB(e,n,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 vB(e,n,o,r){let i=new bB,a=e.graph(),l=OB(a.nodesep,a.edgesep,r);return n.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 AB(e,n){return Object.values(n).reduce((o,r)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([s,c])=>{let d=$B(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 IB(e,n){let o=Object.values(n),r=ln.applyWithChunking(Math.min,o),i=ln.applyWithChunking(Math.max,o);["u","d"].forEach(a=>{["l","r"].forEach(l=>{let s=a+l,c=e[s];if(c===n)return;let d=Object.values(c),f=r-ln.applyWithChunking(Math.min,d);l!=="l"&&(f=i-ln.applyWithChunking(Math.max,d)),f&&(e[s]=ln.mapValues(c,u=>u+f))})})}function PB(e,n){return ln.mapValues(e.ul,(o,r)=>{if(n)return e[n.toLowerCase()][r];{let i=Object.values(e).map(a=>a[r]).sort((a,l)=>a-l);return(i[1]+i[2])/2}})}function TB(e){let n=ln.buildLayerMatrix(e),o=Object.assign(kB(e,n),CB(e,n)),r={},i;["u","d"].forEach(l=>{i=l==="u"?n:Object.values(n).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=xB(e,i,o,c),f=SB(e,i,d.root,d.align,s==="r");s==="r"&&(f=ln.mapValues(f,u=>-u)),r[l+s]=f})});let a=AB(e,r);return IB(r,a),PB(r,e.graph().align)}function OB(e,n,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?n:e)/2,c+=(s.dummy?n: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 $B(e,n){return e.node(n).width}let Dm=nt,BB=wB.positionX;var VB=RB;function RB(e){e=Dm.asNonCompoundGraph(e),DB(e),Object.entries(BB(e)).forEach(([n,o])=>e.node(n).x=o)}function DB(e){let n=Dm.buildLayerMatrix(e),o=e.graph().ranksep,r=0;n.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 Mm=LO,Lm=GO,MB=m$,LB=nt.normalizeRanks,FB=_$,UB=nt.removeEmptyRanks,Fm=C$,KB=A$,Um=P$,jB=yB,GB=VB,Ot=nt,qB=Lt.Graph;var zB=HB;function HB(e,n){let o=n&&n.debugTiming?Ot.time:Ot.notime;o("layout",()=>{let r=o(" buildLayoutGraph",()=>oV(e));o(" runLayout",()=>YB(r,o,n)),o(" updateInputGraph",()=>WB(e,r))})}function YB(e,n,o){n(" makeSpaceForEdgeLabels",()=>rV(e)),n(" removeSelfEdges",()=>pV(e)),n(" acyclic",()=>Mm.run(e)),n(" nestingGraph.run",()=>Fm.run(e)),n(" rank",()=>MB(Ot.asNonCompoundGraph(e))),n(" injectEdgeLabelProxies",()=>iV(e)),n(" removeEmptyRanks",()=>UB(e)),n(" nestingGraph.cleanup",()=>Fm.cleanup(e)),n(" normalizeRanks",()=>LB(e)),n(" assignRankMinMax",()=>aV(e)),n(" removeEdgeLabelProxies",()=>lV(e)),n(" normalize.run",()=>Lm.run(e)),n(" parentDummyChains",()=>FB(e)),n(" addBorderSegments",()=>KB(e)),n(" order",()=>jB(e,o)),n(" insertSelfEdges",()=>mV(e)),n(" adjustCoordinateSystem",()=>Um.adjust(e)),n(" position",()=>GB(e)),n(" positionSelfEdges",()=>gV(e)),n(" removeBorderNodes",()=>fV(e)),n(" normalize.undo",()=>Lm.undo(e)),n(" fixupEdgeLabelCoords",()=>dV(e)),n(" undoCoordinateSystem",()=>Um.undo(e)),n(" translateGraph",()=>sV(e)),n(" assignNodeIntersects",()=>cV(e)),n(" reversePoints",()=>uV(e)),n(" acyclic.undo",()=>Mm.undo(e))}function WB(e,n){e.nodes().forEach(o=>{let r=e.node(o),i=n.node(o);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,n.children(o).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(o=>{let r=e.edge(o),i=n.edge(o);r.points=i.points,Object.hasOwn(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}let XB=["nodesep","edgesep","ranksep","marginx","marginy"],ZB={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},JB=["acyclicer","ranker","rankdir","align"],QB=["width","height","rank"],Km={width:0,height:0},eV=["minlen","weight","width","height","labeloffset"],tV={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nV=["labelpos"];function oV(e){let n=new qB({multigraph:!0,compound:!0}),o=bs(e.graph());return n.setGraph(Object.assign({},ZB,_s(o,XB),Ot.pick(o,JB))),e.nodes().forEach(r=>{let i=bs(e.node(r));const a=_s(i,QB);Object.keys(Km).forEach(l=>{a[l]===void 0&&(a[l]=Km[l])}),n.setNode(r,a),n.setParent(r,e.parent(r))}),e.edges().forEach(r=>{let i=bs(e.edge(r));n.setEdge(r,Object.assign({},tV,_s(i,eV),Ot.pick(i,nV)))}),n}function rV(e){let n=e.graph();n.ranksep/=2,e.edges().forEach(o=>{let r=e.edge(o);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function iV(e){e.edges().forEach(n=>{let o=e.edge(n);if(o.width&&o.height){let r=e.node(n.v),a={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};Ot.addDummyNode(e,"edge-proxy",a,"_ep")}})}function aV(e){let n=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,n=Math.max(n,r.maxRank))}),e.graph().maxRank=n}function lV(e){e.nodes().forEach(n=>{let o=e.node(n);o.dummy==="edge-proxy"&&(e.edge(o.e).labelRank=o.rank,e.removeNode(n))})}function sV(e){let n=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;n=Math.min(n,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)}),n-=l,r-=s,e.nodes().forEach(d=>{let f=e.node(d);f.x-=n,f.y-=r}),e.edges().forEach(d=>{let f=e.edge(d);f.points.forEach(u=>{u.x-=n,u.y-=r}),Object.hasOwn(f,"x")&&(f.x-=n),Object.hasOwn(f,"y")&&(f.y-=r)}),a.width=o-n+l,a.height=i-r+s}function cV(e){e.edges().forEach(n=>{let o=e.edge(n),r=e.node(n.v),i=e.node(n.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(Ot.intersectRect(r,a)),o.points.push(Ot.intersectRect(i,l))})}function dV(e){e.edges().forEach(n=>{let o=e.edge(n);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 uV(e){e.edges().forEach(n=>{let o=e.edge(n);o.reversed&&o.points.reverse()})}function fV(e){e.nodes().forEach(n=>{if(e.children(n).length){let o=e.node(n),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(n=>{e.node(n).dummy==="border"&&e.removeNode(n)})}function pV(e){e.edges().forEach(n=>{if(n.v===n.w){var o=e.node(n.v);o.selfEdges||(o.selfEdges=[]),o.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function mV(e){var n=Ot.buildLayerMatrix(e);n.forEach(o=>{var r=0;o.forEach((i,a)=>{var l=e.node(i);l.order=a+r,(l.selfEdges||[]).forEach(s=>{Ot.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 gV(e){e.nodes().forEach(n=>{var o=e.node(n);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(n),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 _s(e,n){return Ot.mapValues(Ot.pick(e,n),Number)}function bs(e){var n={};return e&&Object.entries(e).forEach(([o,r])=>{typeof o=="string"&&(o=o.toLowerCase()),n[o]=r}),n}let hV=nt,yV=Lt.Graph;var _V={debugOrdering:bV};function bV(e){let n=hV.buildLayerMatrix(e),o=new yV({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)),n.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 wV="1.1.5",kV={graphlib:Lt,layout:zB,debug:_V,util:{time:nt.time,notime:nt.notime},version:wV};const jm=bT(kV);function CV(e){const{branchLayout:n,phase:o,layoutOptions:r,nodes:i,edges:a}=e,{findNode:l}=Le(),{state:s,branchGroups:c,getNodeById:d,moveNode:f,commit:u}=Ye(),{getNodeDepth:p,isGroupId:m,groupsByOwner:g}=c,{isBranchEdgeId:_,updateGroupLayout:y,translateGroupTree:h,waitForLayoutFlush:k}=n,{viewport:b,padding:N=Cn.padding,gaps:E=Cn.gaps}=r,{nodes:C=Cn.gaps.nodes,edges:x=Cn.gaps.edges,ranks:A=Cn.gaps.ranks}=E;async function v(w=!0){const F=new Map(i.value.map(W=>[W.id,W.data])),S=new Map,U=new Map,B=W=>{if(!W)return;let j=U.get(W);return j||(j=l(W),j&&U.set(W,j),j)},oe=new Map,ie=W=>{let j=oe.get(W);return j!==void 0||(j=p(W),oe.set(W,j)),j},M=W=>{if(!Jo(W.data))return W.parentNode;const j=B(W.data.ownerId);if(!j)throw new Error(`Cannot find owner node '${W.data.ownerId}' for group node '${W.id}' via findNode`);return j.parentNode};for(const W of a.value){if(_(W.id))continue;const j=W.source,se=W.target;if(m(j)||m(se))continue;const ue=B(j),ge=B(se);if(ue){if(!ge)throw new Error(`Cannot find target node '${se}' for edge '${W.id}' via findNode`)}else throw new Error(`Cannot find source node '${j}' for edge '${W.id}' via findNode`);if(M(ue)===M(ge))continue;let re=ue,q=ge,ae=ie(re.id),ce=ie(q.id);for(;ae!==ce;)if(ae>ce){const $=M(re);if(!$)throw new Error(`Expected node '${re.id}' to have parent, but it does not`);const P=B($);if(!P)throw new Error(`Cannot find parent node '${$}' for node '${re.id}' via findNode`);re=P,ae--}else if(ce>ae){const $=M(q);if(!$)throw new Error(`Expected node '${q.id}' to have parent, but it does not`);const P=B($);if(!P)throw new Error(`Cannot find parent node '${$}' for node '${q.id}' via findNode`);q=P,ce--}for(;ae>=0;){const $=M(re),P=M(q);if($===P){S.has(ae)||S.set(ae,[]),S.get(ae).push({v:re.id,w:q.id});break}if($){if(!P){const ne=`Expected node '${q.id}' to have parent, but it does not`;throw console.error(ne,q),new Error(ne)}}else{const ne=`Expected node '${re.id}' to have parent, but it does not`;throw console.error(ne,re),new Error(ne)}const V=B($),D=B(P);if(V){if(!D)throw new Error(`Cannot find parent node '${P}' for node '${q.id}' via findNode`)}else throw new Error(`Cannot find parent node '${$}' for node '${re.id}' via findNode`);re=V,q=D,ae--,ce--}}const L=s.value.groups.toSorted((W,j)=>ie(j.ownerId)-ie(W.ownerId));for(const W of L)T(W.memberIds.reduce((j,se)=>{const ue=d(se);if(!ue)return console.warn(`Cannot find node '${se}' of group '${W.id}' by getNodeById`),j;if(ue.phase!==o)return j;if(ue.type==="branch"){const ge=g.value.get(ue.id);ge&&j.push(...ge)}return F.delete(ue.id),j.push(ue),j},[]),{virtualEdges:S.get(ie(W.ownerId)),cachedFindNode:B}),await t.nextTick(),y(W.id,!1),await k();const O=F.values().toArray();for(const W of O){if(Jo(W)||W.type!=="branch")continue;const j=g.value.get(W.id);j&&O.push(...j)}const{autoNodes:R,leftNode:H,rightNode:te}=I(O);T(R,{leftNode:H,rightNode:te,virtualEdges:S.get(0),cachedFindNode:B}),w&&u()}function T(w,F){var re,q,ae,ce,$;const{leftNode:S,rightNode:U,virtualEdges:B,cachedFindNode:oe}=F||{},ie=S?(oe??l)(S.id):void 0,M=U?(oe??l)(U.id):void 0;let L;if(w.length>0){L=new jm.graphlib.Graph({multigraph:!0}),L.setGraph({rankdir:o==="request"?"LR":"RL",nodesep:C,edgesep:x,ranksep:A});const P=new Set;for(const V of w){const D=(oe??l)(V.id);if(!D){console.warn(`Cannot find graph node '${V.id}' in ${o} phase`);continue}P.add(V.id),Jo(V)?L.setNode(V.id,V.dimensions??D.dimensions):L.setNode(V.id,D.dimensions)}for(const V of a.value)!P.has(V.source)||!P.has(V.target)||L.setEdge(V.source,V.target,{points:[]});B==null||B.forEach(V=>L.setEdge(V,{points:[]})),jm.layout(L)}const O=[],R=P=>({x:P.x-P.width/2,y:P.y-P.height/2,width:P.width,height:P.height});if(w.length>0){if(!L)throw new Error("Expected dagreGraph to be initialized");for(const P of w){const V=L.node(P.id),D=R(V);O.push(D),Jo(P)?h(P.id,D,D.x+Ao,D.y+Ao):f(P.id,{x:D.x,y:D.y},!1)}}const H=O.length>0?Xp(O):{x:0,y:0,width:0,height:0},te=H.width,W=H.height,j=H.x,se=H.x+H.width,ue=Math.max(0,Math.min(t.toValue(b==null?void 0:b.width)??Number.POSITIVE_INFINITY,gT)-te-2*C-(((re=ie==null?void 0:ie.dimensions)==null?void 0:re.width)??0)-(((q=M==null?void 0:M.dimensions)==null?void 0:q.width)??0)-2*N),ge=H.y+W/2;S&&f(S.id,{x:j-C-ue/2-(((ae=ie==null?void 0:ie.dimensions)==null?void 0:ae.width)??0),y:ge-(((ce=ie==null?void 0:ie.dimensions)==null?void 0:ce.height)??0)/2},!1),U&&f(U.id,{x:se+C+ue/2,y:ge-((($=M==null?void 0:M.dimensions)==null?void 0:$.height)??0)/2},!1)}function I(w){let F,S;const U=[];for(const B of w){if(Jo(B)){U.push(B);continue}switch(B.name){case"request":{if(o!=="request")throw new Error(`Unexpected request node in ${o} phase`);if(F)throw new Error("Duplicated request node in request phase");F=B;break}case"service_request":{if(o!=="request")throw new Error(`Unexpected service_request node in ${o} phase`);if(S)throw new Error("Duplicated service_request node in request phase");S=B;break}case"service_response":{if(o!=="response")throw new Error(`Unexpected service_response node in ${o} phase`);if(S)throw new Error("Duplicated service_response node in response phase");S=B;break}case"response":{if(o!=="response")throw new Error(`Unexpected response node in ${o} phase`);if(F)throw new Error("Duplicated response node in response phase");F=B;break}default:{U.push(B);break}}}return{autoNodes:U,leftNode:F,rightNode:S}}return{autoLayout:v}}function EV({phase:e,groupMapById:n,getNodeDepth:o}){const r=t.shallowRef(),i=t.shallowRef();function a(d){r.value=d,i.value=void 0}function l(){r.value&&(r.value=void 0,i.value=void 0)}function s(d){let f;return n.value.forEach(u=>{if(u.phase!==e)return;const p=u.position,m=u.dimensions;if(!p||!m||!(d.x>=p.x&&d.x<=p.x+m.width&&d.y>=p.y&&d.y<=p.y+m.height))return;const _=o(u.ownerId);(!f||_>f.depth)&&(f={depth:_,id:u.id})}),f==null?void 0:f.id}function c(d){if(!r.value){i.value=void 0;return}if(!d){i.value=void 0;return}i.value=s(d)}return{activeGroupId:i,start:a,updateActiveGroup:c,end:l}}function NV({phase:e,readonly:n,flowId:o}){const{findNode:r}=Le(o),i=Ye(),{state:a,groupMapById:l,getNodeById:s,moveNode:c,moveGroup:d,setGroupLayout:f,commit:u,branchGroups:p}=i,{memberGroupMap:m,groupsByOwner:g,getNodeDepth:_,getGroupDepth:y}=p,h=t.ref(),k=M=>!!M&&M.startsWith("branch:");function b(M){const L=[];for(const O of M.memberIds){const R=s(O);R&&L.push(R)}return L}const N=t.computed(()=>{const M=new Map;return m.value.forEach((L,O)=>{if(L.phase!==e||!L.position)return;const R=s(O);R&&(R.phase!==e||R.hidden||M.set(O,L))}),M}),E=t.computed(()=>{const M=new Map;return g.value.forEach((L,O)=>{const R=L.filter(H=>H.phase===e);R.length>0&&M.set(O,R)}),M}),C=t.computed(()=>{const M=[];for(const L of a.value.groups){const O=s(L.ownerId);if(!O||O.phase!==e)continue;const R=L.position,H=L.dimensions;if(!R||!H)continue;const te=b(L).filter(j=>j.phase===e&&!j.hidden),W=y(L.id);M.push({id:L.id,type:"group",position:R,width:H.width,height:H.height,data:{...L,memberIds:te.map(j=>j.id)},draggable:!n,selectable:!1,zIndex:W*Ki+uT})}return M}),x=t.computed(()=>{let M=0;for(const L of a.value.groups){if(L.phase!==e)continue;const O=y(L.id);O>M&&(M=O)}return M}),A=t.computed(()=>{const M=[];for(const L of a.value.groups){if(L.phase!==e||!L.position||!L.dimensions)continue;const O=s(L.ownerId);if(!O||O.phase!==e||O.hidden||!b(L).filter(W=>W.phase===e&&!W.hidden).length)continue;const H=Math.max(_(O.id),y(L.id))+x.value+1,te={id:`branch:${L.id}`,source:O.id,target:L.id,sourceHandle:`branch@${L.branch}`,targetHandle:"input",markerEnd:ur.ArrowClosed,selectable:!1,focusable:!1,updatable:!1,data:{type:"branch",ownerId:O.id,branch:L.branch,groupId:L.id},zIndex:H*Ki+pT};M.push(te)}return M}),v=new Map,T=new Map;let I;function w(M,L=!0){if(M.phase!==e)return;const O=b(M).filter(j=>j.phase===e&&!j.hidden);if(!O.length)return;const R=[];for(const j of O){const se=r(j.id),ue=se==null?void 0:se.dimensions,ge=(ue==null?void 0:ue.width)??0,re=(ue==null?void 0:ue.height)??0;if(ge<=0||re<=0)return;R.push({...j.position,width:ge,height:re});const q=g.value.get(j.id)??[];for(const ae of q){if(ae.phase!==e)continue;const ce=v.get(ae.id),$=(ce==null?void 0:ce.position)??ae.position,P=(ce==null?void 0:ce.dimensions)??ae.dimensions;!$||!P||R.push({x:$.x,y:$.y,width:P.width,height:P.height})}}const H=Xp(R),te=H.width+Ao*2,W=H.height+Ao*2;return{position:{x:Math.round(H.x-Ao),y:Math.round(H.y-Ao)},dimensions:{width:Math.round(te),height:Math.round(W)},commit:L}}function F(){if(v.size===0){I=void 0;return}const M=[];let L=!1;v.forEach((O,R)=>{const H=f(R,O,!1);M.push({id:R,changed:H,commit:O.commit}),O.commit&&H&&!L&&(L=!0)}),v.clear(),I=void 0;for(const{id:O,changed:R,commit:H}of M){if(!R)continue;const te=l.value.get(O);if(!te)continue;const W=N.value.get(te.ownerId);W&&T.set(W.id,{commit:H})}if(T.size>0){const O=Array.from(T);T.clear();for(const[R,{commit:H}]of O)U(R,H)}L&&u("*")}function S(){v.size!==0&&(I||(I=t.nextTick().then(F)))}function U(M,L=!0){const O=l.value.get(M);if(!O)return;const R=w(O,L);R&&(v.set(M,R),S())}function B(M,L,O,R){const H=l.value.get(M);if(!H)return;if(!H.position){d(M,L,!1),U(M);return}if(O===0&&R===0){d(M,L,!1);return}d(M,L,!1);const te=[M],W=new Set([M]),j=new Set;for(;te.length;){const se=te.shift(),ue=l.value.get(se);if(!ue)continue;const ge=b(ue).filter(re=>re.phase===e&&!re.hidden);for(const re of ge){j.has(re.id)||(c(re.id,{x:re.position.x+O,y:re.position.y+R},!1),j.add(re.id));const q=E.value.get(re.id)??[];for(const ae of q){if(W.has(ae.id))continue;const ce=l.value.get(ae.id);ce!=null&&ce.position&&d(ae.id,{x:ce.position.x+O,y:ce.position.y+R},!1),W.add(ae.id),te.push(ae.id)}}}}function oe(M,L){const O=h.value;if(!O)return!1;if(O===M||L.some(R=>O===R))return!0;for(const R of L){const H=E.value.get(R)??[];if(H!=null&&H.some(te=>te.id===O))return!0}return!1}const ie=new Map;return t.watch(()=>a.value.groups.filter(L=>L.phase===e).map(L=>{const O=L.memberIds.map(R=>{var j,se;const H=r(R),te=Math.round(((j=H==null?void 0:H.dimensions)==null?void 0:j.width)??0),W=Math.round(((se=H==null?void 0:H.dimensions)==null?void 0:se.height)??0);return`${R}:${te}x${W}`});return{id:L.id,memberIds:L.memberIds,signature:O.join(",")}}),M=>{const L=new Set(M.map(O=>O.id));for(const O of ie.keys())L.has(O)||ie.delete(O);for(const O of M)oe(O.id,O.memberIds)||ie.get(O.id)===O.signature||(ie.set(O.id,O.signature),U(O.id))},{deep:!0,flush:"post"}),{groupsByOwner:E,memberGroupMap:N,groupNodes:C,branchEdges:A,isBranchEdgeId:k,updateGroupLayout:U,translateGroupTree:B,updateDragging:M=>{h.value=M},getNodeDepth:_,maxGroupDepth:x,waitForLayoutFlush:()=>I??Promise.resolve()}}function xV(e){t.provide(Yp,e)}function Gm(){return t.inject(Yp,void 0)}function qm(){const e=Gm();if(!e)throw new Error("Confirm modal not provided");return e}function SV(e){const{readonly:n,flowId:o}=e,r=Le(o),{onNodesChange:i,onEdgesChange:a,onPaneClick:l,findEdge:s}=r,{disconnectEdge:c,commit:d,portalSelection:f,selectPortalEdge:u}=Ye();i(p=>{p.some(m=>m.type==="select"&&"selected"in m&&m.selected)&&u(void 0)}),a(p=>{const m=p.some(_=>_.type==="select"&&"selected"in _&&_.selected),g=f.value?p.some(_=>_.type==="remove"&&_.id===f.value):!1;(m||g)&&u(void 0)}),l(()=>u(void 0)),je.useEventListener("keydown",p=>{if(n||p.key!=="Delete"&&p.key!=="Backspace")return;const m=f.value;!m||s(m)||(p.preventDefault(),c(m,!1),u(void 0),d())})}function zm(e){const n=e.match(/^(input|output)(?:s@(.*))?$/);if(n)return{io:n[1],field:n[2]}}const vV={default:HN,hover:WN,selected:YN};let Hm,ws;function Zi(e){const n=e.id===Hm?"selected":e.id===ws?"hover":"default",o=vV[n],{markerEnd:r}=e,i=typeof r=="object"?{...r,color:o}:{type:r,color:o},a=e.zIndex??0,l=n==="selected"?a+2:n==="hover"?a+1:a;return{...e,style:{...e.style,stroke:o,strokeWidth:n==="selected"?1.5:void 0},markerEnd:i,zIndex:l}}const[AV,IV]=je.createInjectionState(function(e){const{phase:n,flowId:o,layoutOptions:r,readonly:i}=e,{viewport:a,padding:l=Cn.padding,gaps:s=Cn.gaps}=r,{nodes:c=Cn.gaps.nodes}=s,d=Le(o),f=Ye(),u=Gm(),p=qa(),{i18n:{t:m}}=De(),{findNode:g,fitView:_,deleteKeyCode:y,onNodeDrag:h,onNodeDragStop:k,onConnect:b,onNodesChange:N,onEdgesChange:E,onEdgeUpdate:C,onEdgeMouseEnter:x,onEdgeMouseLeave:A,getNodes:v,setNodes:T,setEdges:I,addSelectedNodes:w,screenToFlowCoordinate:F}=d;y.value=["Delete","Backspace"];const{state:S,commit:U,moveNode:B,selectNode:oe,removeNode:ie,getNodeById:M,connectEdge:L,disconnectEdge:O,getInEdgesByNodeId:R,branchGroups:H,commit:te,reset:W,groupMapById:j}=f,{isGroupId:se}=H;function ue(fe,Pe){const ke=M(fe.source),we=M(fe.target);return!!(ke&&we&&ke.phase===Pe&&we.phase===Pe)}const ge=NV({phase:n,readonly:i,flowId:o}),{memberGroupMap:re,groupNodes:q,branchEdges:ae,isBranchEdgeId:ce,updateGroupLayout:$,translateGroupTree:P,updateDragging:V,getNodeDepth:D,maxGroupDepth:ne}=ge,{activeGroupId:X,start:Y,updateActiveGroup:K,end:le}=EV({phase:n,groupMapById:j,getNodeDepth:D}),G=t.computed(()=>S.value.nodes.filter(fe=>fe.phase===n&&!fe.hidden).map(fe=>{const Pe=re.value.get(fe.id),ke=Pe==null?void 0:Pe.position,we=Pe==null?void 0:Pe.dimensions,be=Pe&&ke&&we?{x:fe.position.x-ke.x,y:fe.position.y-ke.y}:fe.position,Se=D(fe.id),Oe=!!(Pe&&ke&&we),xe=(Oe?Se:0)+ne.value+1;return{id:fe.id,type:"flow",position:be,data:fe,deletable:!ml(fe),parentNode:Oe?Pe.id:void 0,zIndex:xe*Ki+mT}})),z=t.computed(()=>S.value.edges.filter(fe=>ue(fe,n)).filter(fe=>!H.isEdgeEnteringGroup(fe.source,fe.target)).filter(fe=>{const Pe=M(fe.source),ke=M(fe.target);return!(Pe!=null&&Pe.hidden)&&!(ke!=null&&ke.hidden)}).map(fe=>{const Pe=M(fe.source),ke=M(fe.target);if(!Pe||!ke){const be=[];throw Pe||be.push(`source node "${fe.source}"`),ke||be.push(`target node "${fe.target}"`),new Error(`Missing ${be.join(" and ")} for edge "${fe.id}" in phase "${n}"`)}const we=Math.max(D(fe.source),D(fe.target))+ne.value+1;return Zi({id:fe.id,source:fe.source,target:fe.target,sourceHandle:fe.sourceField?`outputs@${fe.sourceField}`:"output",targetHandle:fe.targetField?`inputs@${fe.targetField}`:"input",markerEnd:ur.ArrowClosed,data:fe,updatable:!i,zIndex:we*Ki+fT})})),J=t.computed(()=>[...ae.value,...z.value]),{autoLayout:de}=CV({phase:n,layoutOptions:r,branchLayout:ge,nodes:G,edges:J});SV({readonly:i,flowId:o}),t.watch([G,q,J],([fe,Pe,ke])=>{T([...Pe,...fe]),I(ke)},{immediate:!0});const _e=t.computed(()=>({padding:l/Math.max(t.toValue(a==null?void 0:a.width)??0,t.toValue(a==null?void 0:a.height)??0)}));async function Q({source:fe,sourceHandle:Pe,target:ke,targetHandle:we}){if(!Pe||!we)return;const be=zm(Pe),Se=zm(we);if((be==null?void 0:be.io)==="input"||(Se==null?void 0:Se.io)==="output"||Pe==="output"&&we==="output")return;const Oe=R(ke);let xe=!1,Ve=!1;const $e=[],Ue=[],Re=(Se==null?void 0:Se.io)==="input"?Oe.filter(ot=>!ot.targetField):Oe.filter(ot=>!!ot.targetField);Re.length>0&&(xe=!0,Re.forEach(ot=>{Ue.push(kr(ot,M)),O(ot.id,!1)}));const We=(Se==null?void 0:Se.io)==="input"?Se!=null&&Se.field?Oe.filter(ot=>ot.targetField===Se.field):Oe.filter(ot=>!!ot.targetField):Oe.filter(ot=>!ot.targetField);if(We.length>0){if(We.some($t=>$t.source===fe&&$t.target===ke&&$t.targetField===(Se==null?void 0:Se.field)&&$t.sourceField===(be==null?void 0:be.field)))return;Ve=!0,We.forEach($t=>{Ue.push(kr($t,M)),O($t.id,!1)})}if(!L({source:fe,sourceField:be==null?void 0:be.field,target:ke,targetField:Se==null?void 0:Se.field},!1)){W(),p({message:m("plugins.free-form.datakit.flow_editor.error.invalid_connection"),appearance:"danger"});return}if($e.push(ls(fe,be==null?void 0:be.field,ke,Se==null?void 0:Se.field,M)),xe||Ve){if(!u)throw W(),new Error("Expected confirm modal to be provided here when reachable");if(!await u(m(xe?"plugins.free-form.datakit.flow_editor.confirm.message.switch":"plugins.free-form.datakit.flow_editor.confirm.message.override"),$e,Ue)){W();return}}te()}b(Q);let he=!1;const Ce=()=>{he&&(he=!1,te())};N(fe=>{fe.filter(we=>we.type==="select").filter(we=>!se(we.id)).sort((we,be)=>we.selected===be.selected?0:we.selected?1:-1).forEach(we=>{oe(we.selected?we.id:void 0)});let ke=!1;fe.forEach(we=>{if(we.type==="remove"){if(se(we.id))return;ke=!0,ie(we.id,!1)}}),ke&&!he&&(he=!0,queueMicrotask(Ce))}),h(({node:fe,event:Pe})=>{var Oe,xe,Ve;if(!fe)return;if(se(fe.id)){const $e=fe.id;V($e),K(void 0);const Ue=j.value.get($e);if(!Ue)return;const Re=Ue.position??{...fe.position},We=fe.position.x-Re.x,no=fe.position.y-Re.y;P($e,fe.position,We,no);const ot=re.value.get(Ue.ownerId);ot&&$(ot.id,!1);return}const ke=fe.id;Y("canvas"),V(ke);const we=fe.parentNode;let be={...fe.position};if(we&&se(we)){const $e=j.value.get(we);$e!=null&&$e.position&&(be={x:$e.position.x+fe.position.x,y:$e.position.y+fe.position.y})}if(B(ke,be,!1),!ml(M(ke))){const $e={x:be.x,y:be.y,width:((Oe=fe.dimensions)==null?void 0:Oe.width)??0,height:((xe=fe.dimensions)==null?void 0:xe.height)??0},Ue=Pe&&"clientX"in Pe?F({x:Pe.clientX,y:Pe.clientY}):void 0,Re={x:$e.x+$e.width/2,y:$e.y+$e.height/2};K(Ue??Re)}const Se=we&&se(we)?we:(Ve=re.value.get(ke))==null?void 0:Ve.id;Se&&$(Se,!1)}),k(({node:fe})=>{var Se;if(!fe)return;if(V(void 0),se(fe.id)){U();return}const Pe=fe.id,ke=fe.parentNode;let we={...fe.position};if(ke&&se(ke)){const Oe=j.value.get(ke);Oe!=null&&Oe.position&&(we={x:Oe.position.x+fe.position.x,y:Oe.position.y+fe.position.y})}B(Pe,we,!1);const be=ke&&se(ke)?ke:(Se=re.value.get(Pe))==null?void 0:Se.id;be&&$(be,!1),pt(Pe),le(),U()}),E(fe=>{fe.filter(we=>we.type==="select").sort((we,be)=>we.selected===be.selected?0:we.selected?1:-1).forEach(we=>{ce(we.id)||(Hm=we.selected?we.id:void 0,I(be=>be.map(Se=>Se.id!==we.id||!Se.markerEnd?Se:Zi({...Se,zIndex:we.selected?1:void 0}))))});let ke=!1;fe.forEach(we=>{if(we.type==="remove"){if(ce(we.id))return;ke=!0,O(we.id,!1)}}),ke&&!he&&(he=!0,queueMicrotask(Ce))}),x(({edge:fe})=>{ce(fe.id)||(ws=fe.id,I(Pe=>Pe.map(ke=>ke.id!==fe.id?ke:Zi(ke))))}),A(({edge:fe})=>{ce(fe.id)||(ws=void 0,I(Pe=>Pe.map(ke=>ke.id!==fe.id?ke:Zi(ke))))}),C(({edge:fe,connection:Pe})=>{ce(fe.id)||(O(fe.id,!1),Q(Pe))});function pe(fe){_({..._e.value,...fe})}async function me(fe){return oe(fe),new Promise(Pe=>setTimeout(()=>{const ke=g(fe);w(ke?[ke]:[]),Pe()},0))}function He(fe){const Pe=v.value.filter(({type:Re})=>Re!=="group"),ke=Pe.find(({id:Re})=>Re===fe);if(!ke)throw new Error(`Node ${fe} not found`);const{x:we,y:be}=ke.data.position,{width:Se,height:Oe}=ke.dimensions,xe=be,Ve=be+Oe,$e=Pe.filter(({id:Re})=>Re!==fe).filter(({data:{position:{y:Re}},dimensions:{height:We}})=>Re<Ve&&Re+We>xe).map(({data:{position:{x:Re}},dimensions:{width:We}})=>({left:Re,right:Re+We})).sort((Re,We)=>Re.left-We.left);let Ue=we+Se+c;for(const{left:Re,right:We}of $e)if(!(We<=Ue)){if(Ue+Se<=Re)return{x:Ue,y:xe};Ue=Math.max(Ue,We)+c}return{x:Ue,y:xe}}function st(fe){if(!fe)return;const Pe=g(fe);if(!Pe)throw new Error(`Node ${fe} not found`);const{position:{x:ke},dimensions:{width:we}}=Pe,be=ke+we,{viewport:Se,dimensions:Oe,setViewport:xe}=d,{x:Ve,y:$e,zoom:Ue}=Se.value,{width:Re}=Oe.value,We=ke*Ue+Ve,no=be*Ue+Ve,ot=Re-Hp-c;if(no<=ot)return;let $t=ot-no;We+$t<0&&($t=-We),$t!==0&&xe({x:Ve+$t,y:$e,zoom:Ue},{duration:_T})}function pt(fe){if(!X.value)return!1;const{nodeId:Pe,branch:ke}=d1(X.value),we=H.addMember(Pe,ke,fe,{commit:!1});return K(void 0),we}return{vueFlowStore:d,editorStore:f,readonly:i,nodes:G,edges:J,selectNode:me,autoLayout:de,placeToRight:He,scrollRightToReveal:st,fitViewParams:_e,fitView:pe,groupDrop:{activeGroupId:X,startPanelDrag:()=>Y("panel"),endPanelDrag:le,updateActiveGroup:K,attachNodeToActiveGroup:pt}}});let Po=null;function PV(){var n;if(Po)return Po;if(typeof navigator>"u")return Po="windows";const e=((n=navigator.userAgentData)==null?void 0:n.platform)||navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)?Po="mac":/Linux/i.test(e)&&!/Android/i.test(e)?Po="linux":Po="windows"}const TV={Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Meta:"⌘",Mod:"⌘",Enter:"↩",ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Tab:"⇥",Esc:"⎋",Space:"Space",Delete:"⌫"},OV={Shift:"Shift",Alt:"Alt",Ctrl:"Ctrl",Meta:"Win",Mod:"Ctrl",Enter:"Enter",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",Tab:"Tab",Esc:"Esc",Space:"Spacebar",Delete:"Delete"},$V={Shift:"Shift",Alt:"Alt",Ctrl:"Ctrl",Meta:"Super",Mod:"Ctrl",Enter:"Enter",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",Tab:"Tab",Esc:"Esc",Space:"Space",Delete:"Delete"};function BV(e,n={}){const o=n.platform??PV(),r=n.joiner??(o==="mac"?"":" + "),i=o==="mac"?TV:o==="linux"?$V:OV;return(Array.isArray(e)?e:e[o]).map(l=>l in i?i[l]:l).join(r)}const VV={key:0,class:"label"},RV={class:"keys"},Ji=Ae(t.defineComponent({__name:"HotkeyLabel",props:{label:{},keys:{},reverse:{type:Boolean}},setup(e){const n=BV(e.keys);return(o,r)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["dk-hotkey-label",{reverse:e.reverse}])},[e.label?(t.openBlock(),t.createElementBlock("span",VV,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0),t.createElementVNode("kbd",RV,t.toDisplayString(t.unref(n)),1)],2))}}),[["__scopeId","data-v-cc70d56b"]]),DV=["onClick"],MV={key:0,class:"additional-count"},Ym=24,LV=16,Qi=Ae(t.defineComponent({__name:"NodePortal",props:{expanded:{type:Boolean,default:()=>{}},reversed:{type:Boolean},targets:{}},setup(e){const n=Number.parseFloat(i1)||0,o={target:"body"},{portalSelection:r,selectPortalEdge:i}=Ye(),a=t.ref(!1),l=t.computed(()=>{const g=r.value;return g?e.targets.some(_=>_.edgeId===g):!1}),s=t.computed(()=>e.expanded!==void 0?e.expanded||l.value:a.value||l.value),c=()=>Ym*e.targets.length+n*(e.targets.length-1),d=t.computed(()=>({width:s.value?`${c()}px`:"fit-content"})),f=g=>{i(g)},u=g=>r.value===g,p=t.computed(()=>e.targets.map((g,_)=>{var h;const y=(Ym+n)*_;return{edgeId:g.edgeId,key:`${g.node.id}-${g.fieldName??"node"}-${_}`,icon:(h=wt[g.node.type])==null?void 0:h.icon,tooltip:g.fieldName?`${g.node.name}.${g.fieldName}`:g.node.name,highlighted:u(g.edgeId),tooltipEl:null,style:_===0?{width:"fit-content",zIndex:e.targets.length}:{position:"absolute",...e.reversed?{left:`${y}px`,transform:s.value?"translateX(0)":`translateX(-${y}px)`}:{right:0,transform:s.value?`translateX(-${y}px)`:"translateX(0)"},zIndex:e.targets.length-_}}})),m=t.computed(()=>Math.max(e.targets.length-1,0));return(g,_)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-node-portal",{expanded:s.value,reversed:e.reversed}]),onClick:_[0]||(_[0]=t.withModifiers(()=>{},["stop"])),onDragstart:_[1]||(_[1]=t.withModifiers(()=>{},["stop"])),onMousedown:_[2]||(_[2]=t.withModifiers(()=>{},["stop"])),onMouseenter:_[3]||(_[3]=y=>a.value=!0),onMouseleave:_[4]||(_[4]=y=>a.value=!1)},[t.createElementVNode("div",{class:"target-boxes",style:t.normalizeStyle(d.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,(y,h)=>(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:y.key,class:"target-box-wrapper","kpop-attributes":o,placement:"top",style:t.normalizeStyle(y.style),text:y.tooltip},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["target-box",{highlighted:y.highlighted}]),onClick:t.withModifiers(k=>f(y.edgeId),["stop"])},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(y.icon),{color:t.unref(Jr),size:LV},null,8,["color"])),h===0&&m.value>0?(t.openBlock(),t.createElementBlock("span",MV," +"+t.toDisplayString(m.value),1)):t.createCommentVNode("",!0)],10,DV)]),_:2},1032,["style","text"]))),128))],4)],34))}}),[["__scopeId","data-v-926821a3"]]),ea=Ae(t.defineComponent({__name:"HandleTwig",props:{color:{},position:{default:()=>Ne.Left},size:{default:()=>Number.parseFloat(Vu)},type:{}},setup(e){t.useCssVars(o=>({v753622c4:o.color}));const n=t.computed(()=>({width:`${e.size}px`,minWidth:`${e.size}px`}));return(o,r)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["handle-twig",[e.type,e.position===t.unref(Ne).Left?"left":"right"]]),style:t.normalizeStyle(n.value)},null,6))}}),[["__scopeId","data-v-eb2bc3f2"]]),Wm=Ae(t.defineComponent({__name:"NodeBadge",props:{type:{},size:{},iconOnly:{type:Boolean}},setup(e){t.useCssVars(r=>{var i,a;return{b58c4842:(i=n.value.colors)==null?void 0:i.background,v6ae9eff4:(a=n.value.colors)==null?void 0:a.foreground}});const n=t.computed(()=>wt[e.type]),o=t.computed(()=>l1(e.type));return(r,i)=>{var l;const a=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(a,{appearance:"neutral",class:t.normalizeClass(["dk-node-badge",{"icon-only":e.iconOnly,"has-colors":!!n.value.colors}]),size:e.size},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(" "+t.toDisplayString(o.value),1)]),_:2},[(l=n.value)!=null&&l.icon?{name:"icon",fn:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(n.value.icon)))]),key:"0"}:void 0]),1032,["class","size"])}}}),[["__scopeId","data-v-05435e4f"]]),FV={class:"body"},UV={class:"name"},KV={class:"handle"},jV={class:"handle-label-wrapper"},GV={class:"handle-label-wrapper"},qV={class:"handle-label text"},zV={class:"handle"},HV={class:"handle-label-wrapper"},YV={class:"handle-label-wrapper"},WV={class:"handle-label text"},XV={key:2,class:"branch-handles"},ZV={class:"handle-label-wrapper"},JV={class:"handle-label text"},Xm=Ae(t.defineComponent({__name:"FlowNode",props:{data:{},error:{type:Boolean},readonly:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=IV(),{getInEdgesByNodeId:r,getOutEdgesByNodeId:i,getNodeById:a,toggleExpanded:l,duplicateNode:s,removeNode:c,propertiesPanelOpen:d,branchGroups:f}=Ye(),u=t.computed(()=>bo(e.data.type)),p=t.computed(()=>e.data.fields.input.length>0),m=t.computed(()=>e.data.fields.output.length>0),g=t.computed(()=>p.value&&r(e.data.id).every(O=>O.targetField===void 0)),_=t.computed(()=>m.value&&i(e.data.id).every(O=>O.sourceField===void 0)),y=t.computed(()=>e.data.expanded.input??!1),h=t.computed(()=>e.data.expanded.output??!1),k=t.computed(()=>{var O,R,H;return((H=(R=(O=u.value.io)==null?void 0:O.next)==null?void 0:R.branches)==null?void 0:H.map(({name:te})=>te))??[]}),b=t.computed(()=>k.value.length>0),N=t.computed(()=>f.findMembership(e.data.id)),E=t.computed(()=>{var O,R;if(e.data.type==="property"){const H=(O=e.data.config)==null?void 0:O.property;return as(H)}return(R=u.value.io)==null?void 0:R.input}),C=t.computed(()=>{var O,R;if(e.data.type==="property"){const H=(O=e.data.config)==null?void 0:O.property;return is(H)}return(R=u.value.io)==null?void 0:R.output}),x=t.computed(()=>ml(e.data)),A=t.computed(()=>e.data.phase==="response"),v=t.computed(()=>e.data.phase==="request"?Ne.Left:Ne.Right),T=t.computed(()=>e.data.phase==="request"?Ne.Right:Ne.Left),I=t.computed(()=>e.data.phase==="request"?Ne.Right:Ne.Left),w=t.computed(()=>x.value?n(`plugins.free-form.datakit.flow_editor.node_types.${e.data.type}.name`):e.data.name),F=t.computed(()=>x.value?jN:GN);function S(O){return O==="input"?A.value:!A.value}function U(O){const R=new Map,H=O==="input"?r(e.data.id):i(e.data.id);for(const te of H){const W=a(O==="input"?te.source:te.target);if(!W)continue;if(O==="input"){const re=W.type==="vault",q=W.phase!==e.data.phase,ae=f.isEdgeEnteringGroup(W.id,e.data.id);if(!(re||q||ae))continue}else{const re=W.phase!==e.data.phase,q=f.isEdgeEnteringGroup(e.data.id,W.id);if(!(re||q))continue}const j=O==="input"?te.targetField||"input":te.sourceField||"output";let se;if(O==="input"&&te.sourceField){const re=W.fields.output.find(q=>q.id===te.sourceField);se=re==null?void 0:re.name}else if(O==="output"&&te.targetField){const re=W.fields.input.find(q=>q.id===te.targetField);se=re==null?void 0:re.name}const ue={edgeId:te.id,node:W,fieldName:se},ge=R.get(j);ge?ge.push(ue):R.set(j,[ue])}return R}const B=t.computed(()=>U("input")),oe=t.computed(()=>U("output"));function ie(O){!o||o.readonly||O==="input"&&!g.value||O==="output"&&!_.value||l(e.data.id,O)}async function M(){if(!o||o.readonly)return;const O=s(e.data.id,o.placeToRight(e.data.id));await o.selectNode(O),o.scrollRightToReveal(O),d.value=!0}function L(){f.removeMember(e.data.id)}return t.watch(g,O=>{O||l(e.data.id,"input",!0,!0,"*")},{immediate:!0}),t.watch(_,O=>{O||l(e.data.id,"output",!0,!0,"*")},{immediate:!0}),t.watch(()=>e.data.fields.input,(O,R)=>{$n(O,R)||l(e.data.id,"input",O.length>0,!0,"*")},{deep:!0}),t.watch(()=>e.data.fields.output,(O,R)=>{$n(O,R)||l(e.data.id,"output",O.length>0,!0,"*")},{deep:!0}),(O,R)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-flow-node",{reversed:A.value,implicit:x.value,readonly:e.readonly}])},[t.createElementVNode("div",FV,[x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:0,class:"badge",placement:"top",text:e.data.type},{default:t.withCtx(()=>[t.createVNode(Wm,{"icon-only":"",size:"small",type:e.data.type},null,8,["type"])]),_:1},8,["text"])),t.createElementVNode("div",UV,t.toDisplayString(w.value),1),e.error?(t.openBlock(),t.createBlock(t.unref(ve.WarningIcon),{key:1,class:"error-icon",color:t.unref(cl),size:16},null,8,["color"])):t.createCommentVNode("",!0),x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Be.KDropdown),{key:2,class:"menu",disabled:e.readonly,"kpop-attributes":{offset:"4px",target:"body",popoverClasses:"dk-flow-node-menu"},width:"160",onClick:R[1]||(R[1]=t.withModifiers(()=>{},["stop"]))},{items:t.withCtx(()=>[t.createVNode(t.unref(Be.KDropdownItem),{onClick:M},{default:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).duplicate,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.duplicate")},null,8,["keys","label"])]),_:1}),N.value?(t.openBlock(),t.createBlock(t.unref(Be.KDropdownItem),{key:0,onClick:L},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(Be.KDropdownItem),{danger:"",onClick:R[0]||(R[0]=H=>t.unref(c)(e.data.id))},{default:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).delete,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.delete")},null,8,["keys","label"])]),_:1})]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",class:"menu-trigger",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:1},8,["disabled"]))]),t.createElementVNode("div",{class:t.normalizeClass(["handles",{reversed:A.value}])},[E.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["input-handles",{"has-fields":p.value}])},[t.createElementVNode("div",KV,[t.createVNode(t.unref(Ht),{id:"input",position:v.value,type:"target"},null,8,["position"]),B.value.has("input")?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"input",reversed:S("input"),targets:B.value.get("input")},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",jV,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:g.value}]),onClick:R[2]||(R[2]=t.withModifiers(H=>ie("input"),["stop"]))},[R[4]||(R[4]=t.createElementVNode("div",{class:"text"}," inputs ",-1)),p.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[y.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(ve.UnfoldMoreIcon),{key:0,size:t.unref(Qr)},null,8,["size"])),y.value?(t.openBlock(),t.createBlock(t.unref(ve.UnfoldLessIcon),{key:1,color:g.value?void 0:t.unref($u),size:t.unref(Qr)},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),p.value&&y.value?(t.openBlock(),t.createBlock(ea,{key:0,color:F.value,position:v.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)])]),p.value&&y.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.input,(H,te)=>(t.openBlock(),t.createElementBlock("div",{key:`inputs-${H.id}`,class:"handle indented"},[t.createVNode(t.unref(Ht),{id:`inputs@${H.id}`,position:v.value,type:"target"},null,8,["id","position"]),B.value.has(H.id)?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"input",reversed:S("input"),targets:B.value.get(H.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",GV,[t.createElementVNode("div",qV,t.toDisplayString(H.name),1),t.createVNode(ea,{color:F.value,position:v.value,type:te<e.data.fields.input.length-1?"trident":"corner"},null,8,["color","position","type"])])]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),C.value?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["output-handles",{"has-fields":m.value}])},[t.createElementVNode("div",zV,[t.createElementVNode("div",HV,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:_.value}]),onClick:R[3]||(R[3]=t.withModifiers(H=>ie("output"),["stop"]))},[R[5]||(R[5]=t.createElementVNode("div",{class:"text"}," outputs ",-1)),m.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[h.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(ve.UnfoldMoreIcon),{key:0,size:t.unref(Qr)},null,8,["size"])),h.value?(t.openBlock(),t.createBlock(t.unref(ve.UnfoldLessIcon),{key:1,color:_.value?void 0:t.unref($u),size:t.unref(Qr)},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),m.value&&h.value?(t.openBlock(),t.createBlock(ea,{key:0,color:F.value,position:T.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Ht),{id:"output",position:T.value,type:"source"},null,8,["position"]),oe.value.has("output")?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"output",reversed:S("output"),targets:oe.value.get("output")},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]),m.value&&h.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.output,(H,te)=>(t.openBlock(),t.createElementBlock("div",{key:`outputs-${H.id}`,class:"handle indented"},[t.createElementVNode("div",YV,[t.createElementVNode("div",WV,t.toDisplayString(H.name),1),t.createVNode(ea,{color:F.value,position:T.value,type:te<e.data.fields.output.length-1?"trident":"corner"},null,8,["color","position","type"])]),t.createVNode(t.unref(Ht),{id:`outputs@${H.id}`,position:T.value,type:"source"},null,8,["id","position"]),oe.value.has(H.id)?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"output",reversed:S("output"),targets:oe.value.get(H.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),b.value?(t.openBlock(),t.createElementBlock("div",XV,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(k.value,H=>(t.openBlock(),t.createElementBlock("div",{key:`branch-${H}`,class:"handle"},[t.createElementVNode("div",ZV,[t.createElementVNode("div",JV,t.toDisplayString(H),1)]),t.createVNode(t.unref(Ht),{id:`branch@${H}`,connectable:!1,position:I.value,type:"source"},null,8,["id","position"])]))),128))])):t.createCommentVNode("",!0)],2)],2))}}),[["__scopeId","data-v-c0706d4a"]]),QV=Ae(t.defineComponent({__name:"GroupNode",props:{data:{},active:{type:Boolean}},setup(e){const n=e,o=t.computed(()=>n.data.phase==="response"),r=t.computed(()=>o.value?Ne.Right:Ne.Left);return(i,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-branch-group-node",{reversed:o.value,"drop-target":e.active}])},[t.createVNode(t.unref(Ht),{id:"input",connectable:!1,position:r.value,type:"target"},null,8,["position"])],2))}}),[["__scopeId","data-v-61116224"]]),eR={key:0,class:"dk-flow-mask"},Zm=Ae(t.defineComponent({__name:"FlowCanvas",props:{flowId:{},phase:{},mode:{}},emits:["initialized","nodes-change"],setup(e,{expose:n,emit:o}){const r=o,i=t.useTemplateRef("flowCanvas"),a=je.useElementBounding(i),{i18n:{t:l}}=De(),{vueFlowStore:s,editorStore:c,autoLayout:d,fitViewParams:f,fitView:u,selectNode:p,placeToRight:m,scrollRightToReveal:g,groupDrop:_}=AV({phase:e.phase,flowId:e.flowId,layoutOptions:{viewport:{width:a.width,height:a.height}},readonly:e.mode!=="edit"}),{addNode:y,propertiesPanelOpen:h,invalidConfigNodeIds:k,selectedNode:b,duplicateNode:N,commit:E,selectPortalEdge:C}=c,{screenToFlowCoordinate:x,zoomIn:A,zoomOut:v,viewport:T,maxZoom:I,minZoom:w}=s,{activeGroupId:F,startPanelDrag:S,endPanelDrag:U,updateActiveGroup:B,attachNodeToActiveGroup:oe}=_,ie=t.ref(!1);function M(j){var ue;const se=(ue=j.dataTransfer)==null?void 0:ue.types.find(ge=>ge.startsWith(`${_r}/`));if(se)return se.replace(`${_r}/`,"")}function L(j){var se;if(e.mode==="edit"){if(((se=j==null?void 0:j.node)==null?void 0:se.type)==="group"){p(void 0),C(void 0);return}h.value=!0}}function O(j){e.mode!=="edit"||ie.value||(j.preventDefault(),B(x({x:j.clientX,y:j.clientY})))}function R(j){var $;if(e.mode!=="edit"||ie.value)return;const se=($=j.dataTransfer)==null?void 0:$.getData(_r);if(!se)return;j.preventDefault();const ue=JSON.parse(se);if(ue.action!=="create-node")return;const ge=x({x:j.clientX,y:j.clientY}),{type:re,anchor:q}=ue.data,ae={type:re,phase:e.phase,position:{x:ge.x-q.offsetX,y:ge.y-q.offsetY}},ce=y(ae,!1);if(!ce){U();return}oe(ce),E(),p(ce),h.value=!0,U()}async function H(){await d(),setTimeout(()=>u(),0)}const te=t.computed(()=>{if(e.mode==="preview")return[];const j=[{name:"zoom_in",icon:ve.AddIcon,action:A,disabled:T.value.zoom>=I.value},{name:"zoom_out",icon:ve.RemoveIcon,action:v,disabled:T.value.zoom<=w.value},{name:"fit_view",icon:ve.FullscreenIcon,action:u}];return e.mode==="edit"&&j.push({name:"auto_layout",icon:ve.AutoLayoutIcon,action:H}),j});if(e.phase==="response"&&e.mode==="edit"){je.useEventListener("dragstart",se=>{M(se)==="call"&&(ie.value=!0)});const{start:j}=je.useTimeoutFn(()=>{ie.value=!1},80);je.useEventListener("dragover",()=>{j()}),je.useEventListener("dragend",()=>{ie.value=!1})}e.mode==="edit"&&(je.useEventListener("dragstart",j=>{M(j)&&S()}),je.useEventListener("dragend",()=>{U()}));async function W(){const j=b.value;if(e.mode!=="edit"||!j||j.phase!==e.phase)return;const se=N(j.id,m(j.id));se&&(await p(se),h.value=!0,g(se))}return qp({enabled:t.computed(()=>!!b.value&&e.mode==="edit"&&b.value.phase===e.phase),duplicate:W}),n({autoLayout:d,fitView:u}),(j,se)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowCanvas",ref:i,class:"dk-flow-canvas"},[t.createVNode(t.unref(Up),{id:e.flowId,class:t.normalizeClass(["flow",{readonly:e.mode!=="edit"}]),"connect-on-click":!1,"elements-selectable":e.mode==="edit","max-zoom":t.unref(hT),"min-zoom":t.unref(yT),"multi-selection-key-code":null,"nodes-connectable":e.mode==="edit","nodes-draggable":e.mode==="edit","pan-on-drag":e.mode==="preview"?!1:void 0,"pan-on-scroll":e.mode!=="edit"?!1:void 0,"zoom-on-double-click":e.mode!=="edit"?!1:void 0,"zoom-on-pinch":e.mode!=="edit"?!1:void 0,"zoom-on-scroll":e.mode!=="edit"?!1:void 0,onDragover:O,onDrop:R,onNodeClick:L,onNodesChange:se[0]||(se[0]=ue=>r("nodes-change")),onNodesInitialized:se[1]||(se[1]=ue=>r("initialized"))},{"node-flow":t.withCtx(({data:ue})=>[t.createVNode(Xm,{data:ue,error:t.unref(k).has(ue.id),readonly:e.mode!=="edit"},null,8,["data","error","readonly"])]),"node-group":t.withCtx(({data:ue})=>[t.createVNode(QV,{active:t.unref(F)===ue.id,data:ue},null,8,["active","data"])]),default:t.withCtx(()=>[t.createVNode(t.unref(TP)),t.createVNode(t.unref(oT),{"fit-view-params":t.unref(f),position:"bottom-left","show-fit-view":!1,"show-interactive":!1,"show-zoom":!1},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(te.value,ue=>(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:ue.name,placement:"right",text:t.unref(l)(`plugins.free-form.datakit.flow_editor.actions.${ue.name}`)},{default:t.withCtx(()=>[t.createVNode(t.unref(yr),{disabled:ue.disabled,onClick:t.withModifiers(ue.action,["stop"])},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(ue.icon),{size:18}))]),_:2},1032,["disabled","onClick"])]),_:2},1032,["text"]))),128))]),_:1},8,["fit-view-params"])]),_:1},8,["id","class","elements-selectable","max-zoom","min-zoom","nodes-connectable","nodes-draggable","pan-on-drag","pan-on-scroll","zoom-on-double-click","zoom-on-pinch","zoom-on-scroll"]),ie.value?(t.openBlock(),t.createElementBlock("div",eR,t.toDisplayString(t.unref(l)("plugins.free-form.datakit.flow_editor.phase_mask_help")),1)):t.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-c1890d6b"]]),tR={class:"label-content"},nR={class:"count"},oR={class:"label-content"},rR={class:"count"},Jm=.5,ks=.03,iR=30,Cs=Ae(t.defineComponent({__name:"FlowPanels",props:{inactive:{type:Boolean},mode:{},resizable:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=t.ref(!1),r=t.ref(!1),{responsePanelCollapsed:i}=ii(),{state:a,configNodeCounts:l,clearPendingLayout:s,setPendingFitView:c,commit:d,clear:f,portalSelection:u}=Ye(),p=t.useId(),m=`${p}-request`,g=`${p}-response`,_=Le(m),y=Le(g);function h(q,ae){const{onPaneClick:ce,onNodesChange:$,onEdgesChange:P,getSelectedNodes:V,getSelectedEdges:D}=q,{removeSelectedElements:ne}=ae;function X(Y){if(!Y){ne();return}Y.some(K=>K.type==="select")&&V.value.length+D.value.length>0&&ne()}$(X),P(X),ce(()=>X())}h(_,y),h(y,_),t.watch(u,q=>{q&&(_.removeSelectedElements(),y.removeSelectedElements())});const k=t.useTemplateRef("flowPanels"),b=t.useTemplateRef("requestLabel"),N=t.useTemplateRef("requestCanvasContainer"),E=t.useTemplateRef("requestFlow"),C=t.useTemplateRef("resizeHandle"),x=t.useTemplateRef("responseLabel"),A=t.useTemplateRef("responseCanvasContainer"),v=t.useTemplateRef("responseFlow"),T=je.useElementBounding(k),I=je.useElementBounding(b),w=je.useElementBounding(N),F=je.useElementBounding(C),S=je.useElementBounding(x),U=je.useElementBounding(A),B=t.computed(()=>Math.max(iR,T.height.value*ks)),oe=t.computed(()=>T.height.value-I.height.value-F.height.value-S.height.value),ie=t.computed(()=>{const q=oe.value;return q?Math.max(ks,B.value/q):ks}),M=t.ref(Jm),L=t.computed(()=>`${M.value*100}%`),O=t.computed(()=>`${(1-M.value)*100}%`),R=t.computed(()=>M.value<=ie.value),H=t.computed(()=>1-M.value<=ie.value);function te(q,{persist:ae=!0}={}){const ce=Math.min(1,Math.max(0,q));M.value=ce,ae&&e.mode==="edit"&&(i.value=H.value)}function W(q,ae=!0){te(q?1:Jm,{persist:ae})}function j(q=!0){te(0,{persist:q})}if(e.mode==="edit"){const q=l.value.response===0,ae=i.value;W(q||ae,!1)}else t.watch(()=>l.value.response,q=>{W(q===0,!1)},{immediate:!0});const se=()=>{e.resizable&&(R.value?W(!1):j())},ue=()=>{e.resizable&&W(!H.value)},{isDragging:ge}=je.useDraggable(C,{onMove(q){if(!e.resizable)return;const ae=Math.max(0,q.y-w.top.value),ce=Math.min(1,Math.max(0,ae/oe.value));te(ce,{persist:!1})},onEnd(){e.resizable&&(w.height.value<B.value?j():U.height.value<B.value?W(!0):te(M.value))}});function re(){t.nextTick(()=>{var q,ae;(q=E.value)==null||q.fitView(),(ae=v.value)==null||ae.fitView()})}return t.watch([o,r,()=>a.value.pendingLayout,()=>a.value.pendingFitView],([q,ae,ce,$])=>{e.inactive||!q||!ae||!ce&&!$||(ce&&s(),$&&c(!1),setTimeout(async()=>{var P,V;ce&&(await((P=E.value)==null?void 0:P.autoLayout(!1)),await((V=v.value)==null?void 0:V.autoLayout(!1)),d("*"),ce==="clearHistory"&&f()),$&&setTimeout(()=>re(),0)},0))}),(q,ae)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowPanels",ref:k,class:"flow-panels"},[t.createElementVNode("div",{ref_key:"requestLabel",ref:b,class:t.normalizeClass(["label request",{resizable:e.resizable}]),onClick:se},[e.resizable?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:R.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",tR,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.request"))+" ",1),t.createElementVNode("span",nR,[t.unref(l).request===1?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular"))+") ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural",{count:t.unref(l).request}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"requestCanvasContainer",ref:N,class:t.normalizeClass(["canvas",{dragging:t.unref(ge)}]),style:t.normalizeStyle({flexBasis:L.value})},[t.createVNode(Zm,{ref_key:"requestFlow",ref:E,"flow-id":m,mode:e.mode,phase:"request",onInitialized:ae[0]||(ae[0]=ce=>o.value=!0),onNodesChange:ae[1]||(ae[1]=ce=>o.value=!1)},null,8,["mode"])],6),t.createElementVNode("div",{ref_key:"resizeHandle",ref:C,class:t.normalizeClass(["resize-handle",{resizable:e.resizable}])},null,2),t.createElementVNode("div",{ref_key:"responseLabel",ref:x,class:t.normalizeClass(["label response",{dragging:t.unref(ge),resizable:e.resizable}]),onClick:ue},[e.resizable?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:H.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",oR,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.response"))+" ",1),t.createElementVNode("span",rR,[t.unref(l).response===1?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular"))+") ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural",{count:t.unref(l).response}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"responseCanvasContainer",ref:A,class:t.normalizeClass(["canvas response",{dragging:t.unref(ge)}]),style:t.normalizeStyle({flexBasis:O.value})},[t.createVNode(Zm,{ref_key:"responseFlow",ref:v,"flow-id":g,mode:e.mode,phase:"response",onInitialized:ae[2]||(ae[2]=ce=>r.value=!0),onNodesChange:ae[3]||(ae[3]=ce=>r.value=!1)},null,8,["mode"])],6)],512))}}),[["__scopeId","data-v-3d68b40b"]]),aR={class:"dk-confirm-modal-body"},lR={class:"connections"},sR=Ae(t.defineComponent({__name:"ConflictModal",props:{title:{},message:{},addedConnections:{},removedConnections:{}},emits:["cancel","confirm"],setup(e,{expose:n,emit:o}){const{i18n:{t:r}}=De(),i=o,a=t.ref(!1),l=t.ref(e.message),s=t.ref(e.addedConnections??[]),c=t.ref(e.removedConnections??[]);let d=null;function f(){a.value=!1,i("cancel"),d==null||d(!1)}function u(){a.value=!1,i("confirm"),d==null||d(!0)}async function p(m,g,_){return l.value=m,s.value=g??[],c.value=_??[],a.value=!0,await new Promise(y=>{d=y})}return n({open:p}),(m,g)=>{const _=t.resolveComponent("KModal");return t.openBlock(),t.createBlock(_,{"action-button-text":t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.proceed"),"close-on-backdrop-click":"","max-width":"660px",title:e.title??t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.title"),visible:a.value,"z-index":9999,onCancel:f,onProceed:u},{default:t.withCtx(()=>[t.createElementVNode("div",aR,[t.createElementVNode("p",null,t.toDisplayString(l.value),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.message.confirm")),1),t.createElementVNode("div",lR,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value??[],([y,h])=>(t.openBlock(),t.createElementBlock("div",{key:`${y}-${h}`,class:"connection"},[t.createVNode(t.unref(ve.AddIcon),{color:t.unref(qN)},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(y)+" → "+t.toDisplayString(h),1)]))),128)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value??[],([y,h])=>(t.openBlock(),t.createElementBlock("div",{key:`${y}-${h}`,class:"connection"},[t.createVNode(t.unref(ve.RemoveIcon),{color:t.unref(cl)},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(y)+" → "+t.toDisplayString(h),1)]))),128))])])]),_:1},8,["action-button-text","title","visible"])}}}),[["__scopeId","data-v-ac52e1e6"]]),cR={class:"dk-editor-nav"},dR={class:"top"},uR={class:"bottom"},fR=Ae(t.defineComponent({__name:"EditorNav",emits:["back"],setup(e,{emit:n}){const{t:o}=Je.createI18n("en-us",it),r=n,i=[{label:o("plugins.free-form.datakit.flow_editor.return_to_config"),icon:ve.ArrowLeftIcon,onClick:()=>r("back")}],{sidePanelExpanded:a}=ii(),l=t.computed(()=>a.value?o("plugins.free-form.datakit.flow_editor.collapse_panel"):o("plugins.free-form.datakit.flow_editor.expand_panel")),s=t.ref(!1);function c(){a.value=!a.value}return(d,f)=>(t.openBlock(),t.createElementBlock("nav",cR,[t.createElementVNode("div",dR,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,({label:u,to:p,icon:m,onClick:g})=>t.createVNode(t.unref(Be.KTooltip),{key:u,"kpop-attributes":{offset:"10px"},label:u,placement:"right"},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.unref(Be.KButton),{key:u,appearance:"none",class:"nav-item",icon:"",to:p,onClick:g},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m),{decorative:"",size:t.unref(ei)},null,8,["size"]))]),_:2},1032,["to","onClick"]))]),_:2},1032,["label"])),64))]),t.createElementVNode("div",uR,[t.createElementVNode("div",{class:t.normalizeClass(["side-panel-toggle",{expanded:t.unref(a)}]),onTransitionend:f[0]||(f[0]=t.withModifiers(u=>s.value=!1,["self"])),onTransitionstart:f[1]||(f[1]=t.withModifiers(u=>s.value=!0,["self"]))},[t.createVNode(t.unref(Be.KTooltip),{label:s.value?void 0:l.value,placement:t.unref(a)?"left":"right"},{default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"none",class:"nav-item nav-item-toggle",icon:"",size:"large",onClick:c},{default:t.withCtx(()=>[t.unref(a)?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDoubleLeftIcon),{key:0,decorative:"",size:t.unref(ei)},null,8,["size"])):(t.openBlock(),t.createBlock(t.unref(ve.ChevronDoubleRightIcon),{key:1,decorative:"",size:t.unref(ei)},null,8,["size"]))]),_:1})]),_:1},8,["label","placement"])],34)])]))}}),[["__scopeId","data-v-2915b6fa"]]),pR={class:"dk-editor-main"},mR={class:"header"},gR={class:"actions"},hR={class:"settings"},yR={ref:"canvasContainer",class:"body"},_R=Ae(t.defineComponent({__name:"EditorMain",setup(e){const{t:n}=Je.createI18n("en-us",it),{modalOpen:o,undo:r,redo:i,canUndo:a,canRedo:l,load:s}=Ye(),c=t.inject(un.DATAKIT_M2,!1),d=["vault","cache"],f=t.computed(()=>c?ho:Jt(ho,d));function u(g){const _=ho[g],y=mn.load(_,{schema:go,json:!0});if(typeof y!="object"||y===null)return;const h=y,k={config:{...h,nodes:h.nodes??[]}};s(k,!0)}function p(){o.value=!1}qp({enabled:o,undo:r,redo:i});const m={maxWidth:"300px",zIndex:1e4};return(g,_)=>(t.openBlock(),t.createElementBlock("div",pR,[t.createElementVNode("header",mR,[t.createElementVNode("div",gR,[t.createVNode(t.unref(Be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).undo,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.undo"),reverse:""},null,8,["keys","label"])]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",disabled:!t.unref(a),icon:"",onClick:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.UndoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),t.createVNode(t.unref(Be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).redo,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.redo"),reverse:""},null,8,["keys","label"])]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",disabled:!t.unref(l),icon:"",onClick:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.RedoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),_[0]||(_[0]=t.createElementVNode("div",{class:"divider"},null,-1)),t.createElementVNode("div",hR,[t.createVNode(Ur,{label:t.unref(n)("plugins.free-form.datakit.flow_editor.debug.label"),"label-attributes":{info:t.unref(n)("plugins.free-form.datakit.flow_editor.debug.description"),tooltipAttributes:m},name:"config.debug"},null,8,["label","label-attributes"])]),_[1]||(_[1]=t.createElementVNode("div",{class:"divider"},null,-1)),t.createVNode(t.unref(Be.KDropdown),{appearance:"tertiary","kpop-attributes":{placement:"bottom-end",target:"body"},"show-caret":"","trigger-text":t.unref(n)("plugins.free-form.datakit.flow_editor.examples"),width:240},{items:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.value,(y,h)=>(t.openBlock(),t.createBlock(t.unref(Be.KDropdownItem),{key:h,onClick:k=>u(h)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)(`plugins.free-form.datakit.examples.${h}`)),1)]),_:2},1032,["onClick"]))),128))]),_:1},8,["trigger-text"]),t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",target:"_blank",to:"https://developer.konghq.com/plugins/datakit/"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.view_docs"))+" ",1),t.createVNode(t.unref(ve.ExternalLinkIcon))]),_:1}),t.createVNode(t.unref(Be.KButton),{onClick:p},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.done")),1)]),_:1})])]),t.createElementVNode("div",yR,[t.createVNode(Cs,{mode:"edit",resizable:""})],512)]))}}),[["__scopeId","data-v-e342016d"]]),bR=["draggable"],wR={class:"icon"},kR={class:"content"},CR={class:"title"},ER={class:"description"},NR=Ae(t.defineComponent({__name:"NodePanelItem",props:{type:{},unsupported:{type:Boolean}},emits:["dragstart"],setup(e,{emit:n}){t.useCssVars(c=>({f628e926:t.unref(a),v4a9b9f82:t.unref(l)}));const o=n,{summary:r,icon:i,colors:{background:a,foreground:l}={}}=ul[e.type];function s(c){o("dragstart",c,e.type)}return(c,d)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-node-panel-item",{[`node-type-${e.type}`]:!0,unsupported:e.unsupported}]),draggable:!e.unsupported,onDragstart:s},[t.createElementVNode("div",wR,[t.createVNode(t.unref(i),{size:16})]),t.createElementVNode("div",kR,[t.createElementVNode("div",CR,t.toDisplayString(e.type),1),t.createElementVNode("div",ER,t.toDisplayString(t.unref(r)),1)])],42,bR))}}),[["__scopeId","data-v-38d156c9"]]),xR={class:"dk-node-panel"},SR={key:0,class:"title"},vR={class:"node-list"},AR={"aria-hidden":"true",class:"preview",inert:""},Qm=Ae(t.defineComponent({__name:"NodePanel",props:{hideTitle:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),{createNode:o}=Ye(),r=t.inject(un.DATAKIT_M2,!1),i=["branch","cache"],a=`dk-drag-preview-${t.useId()}`,l=t.shallowRef(),s=t.computed(()=>l.value?[{id:"preview",type:"flow",data:l.value,position:{x:0,y:0}}]:[]),c=async(d,f)=>{var T,I,w;const u=d.currentTarget,{left:p,top:m,width:g,height:_}=u.getBoundingClientRect(),y=d.clientX-p,h=d.clientY-m;l.value=o({type:f}),await t.nextTick();const k=document.querySelector(`#${a}`)||u,b=k.cloneNode(!0);b.classList.add("dk-drag-snapshot");const{offsetWidth:N,offsetHeight:E}=k;Object.assign(b.style,{position:"absolute",top:"-9999px",left:"-9999px",width:`${N}px`,height:`${E}px`}),document.body.appendChild(b);const C=y/g,x=h/_,A={ratioX:C,ratioY:x,offsetX:N*C,offsetY:E*x},v={action:"create-node",data:{type:f,anchor:A}};(T=d.dataTransfer)==null||T.setData(_r,JSON.stringify(v)),(I=d.dataTransfer)==null||I.setData(`${_r}/${f}`,f),(w=d.dataTransfer)==null||w.setDragImage(b,A.offsetX,A.offsetY),requestAnimationFrame(()=>{b.remove(),l.value=void 0})};return(d,f)=>{const u=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",xR,[e.hideTitle?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("h3",SR,[t.createVNode(u,{class:"label",info:t.unref(n)("plugins.free-form.datakit.flow_editor.node_panel.description")},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_panel.title")),1)]),_:1},8,["info"])])),t.createElementVNode("div",vR,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(t.unref(ul)),p=>(t.openBlock(),t.createBlock(NR,{key:p,type:p,unsupported:!t.unref(r)&&i.includes(p),onDragstart:c},null,8,["type","unsupported"]))),128))]),t.createElementVNode("div",AR,[t.createVNode(t.unref(Up),{nodes:s.value},{"node-flow":t.withCtx(p=>[t.createVNode(Xm,{id:a,data:p.data},null,8,["data"])]),_:1},8,["nodes"])])])}}}),[["__scopeId","data-v-03b0fafb"]]);function IR(){const{addField:e,getNodeByName:n,removeField:o,replaceConfig:r,renameField:i,disconnectOutEdges:a,nodeMapByName:l}=Ye(),s=n("vault");if(!s)throw new Error("no vault node");const c=t.computed(()=>{var g;return((g=l.value.get("vault"))==null?void 0:g.config)||{}});return{formData:t.computed(()=>({vault:{...c.value}})),addVault:(g,_)=>{e(s.id,"output",g,!1);const y={...s.config,[g]:_};r(s.id,y)},removeVault:g=>{const _=gn(s,"output",g);if(!_)return;const y=s.fields.output.length===1;o(s.id,_.id,!0,!1);const h=Jt(s.config,g);r(s.id,h,!y),y&&a(s.id)},updateVault:(g,_,y=!0)=>{const h={...s.config,[g]:_};r(s.id,h,y)},renameVault:(g,_,y=!0)=>{var N;const h=gn(s,"output",g);if(!h)return;i(s.id,h.id,_,!1);const k=((N=s.config)==null?void 0:N[g])??"",b={...Jt(s.config,g),[_]:k};r(s.id,b,y)}}}const PR=t.defineComponent({__name:"VaultSecretPicker",props:{secretRef:{type:[String,Boolean]},secretName:{},validateName:{type:Function,default:()=>{}},isEditing:{type:Boolean,default:!1}},emits:["proceed","cancel"],setup(e,{emit:n}){const o=n,{i18n:{t:r}}=Ke.useI18n(),i=t.inject(Fe.FORMS_CONFIG),a=t.ref(e.secretName||""),l=t.ref(""),s=t.computed(()=>a.value.trim()?e.validateName(a.value.trim(),e.isEditing)===void 0:!1),c=t.computed(()=>!s.value),d=()=>{const m=a.value.trim(),g=e.validateName(m,e.isEditing);return l.value=g||"",g===void 0},f=()=>{l.value="",d()},u=m=>{d()&&o("proceed",{secretRef:m,secretName:a.value.trim()})},p=()=>{a.value="",l.value="",o("cancel")};return t.watch(()=>e.secretName,m=>{a.value=m||"",l.value=""}),(m,g)=>{const _=t.resolveComponent("KInput"),y=t.resolveComponent("KEmptyState");return t.unref(i)?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPicker),{key:0,"additional-disabled":c.value,config:t.unref(i),"proceed-button-text":t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.proceed_button_text"),setup:e.secretRef,title:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.title"),onCancel:p,onProceed:u},{"form-prefix":t.withCtx(()=>[t.createVNode(_,{"model-value":a.value,"onUpdate:modelValue":[g[0]||(g[0]=h=>a.value=h),f],"data-testid":"vault-secret-picker-secret-name-input",error:!!l.value,"error-message":l.value,label:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.label"),"label-attributes":{info:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.help")},placeholder:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.placeholder"),required:""},null,8,["model-value","error","error-message","label","label-attributes","placeholder"])]),_:1},8,["additional-disabled","config","proceed-button-text","setup","title"])):(t.openBlock(),t.createBlock(y,{key:1,"icon-variant":"error",message:t.unref(r)("plugins.free-form.vault_picker.component_error")},null,8,["message"]))}}}),TR={class:"dk-vault-panel"},OR={class:"title"},$R={class:"vault-list"},BR={key:0,class:"vault-list-item"},VR={class:"vault-list-item-key"},RR={class:"vault-list-item-key-text"},DR=Ae(t.defineComponent({__name:"VaultField",props:{initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["update","add","remove","change"],setup(e,{emit:n}){const o=e,r=n,{entries:i,addEntry:a,removeEntry:l}=Kr(o,r),s=t.ref(null),c=t.ref(null),{i18n:{t:d}}=Ke.useI18n(),f=t.computed(()=>new Set(i.value.map(h=>h.key))),u=()=>{const h=a();c.value=h,s.value=h},p=()=>{s.value=null,c.value&&(l(c.value.id),c.value=null)},m=h=>{if(!s.value)throw new Error("no selected entry");const k=s.value.key,b=k!==h.secretName,N=s.value.value!==h.secretRef,E=b||N;s.value.value=h.secretRef,s.value.key=h.secretName,c.value?r("add",h.secretName,h.secretRef):E&&r("update",h.secretName,h.secretRef,b?k:void 0),c.value=null,p()},g=h=>{s.value=h},_=h=>{l(h.id),r("remove",h.key)},y=(h,k)=>{var b;if(!h)return d("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_required_error");if(f.value.has(h)&&!(k&&h===((b=s.value)==null?void 0:b.key)))return d("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_exists_error")};return(h,k)=>{var C,x;const b=t.resolveComponent("KButton"),N=t.resolveComponent("KDropdownItem"),E=t.resolveComponent("KDropdown");return t.openBlock(),t.createElementBlock("div",TR,[t.createElementVNode("h3",OR,t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.title")),1),t.createVNode(b,{appearance:"tertiary",class:"add-button",size:"small",onClick:u},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.add_button")),1)]),_:1}),t.createElementVNode("div",$R,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),A=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:A.id},[A.key?(t.openBlock(),t.createElementBlock("div",BR,[t.createElementVNode("div",VR,[t.createVNode(t.unref(ve.KeyIcon),{color:t.unref(Jr),size:16},null,8,["color"]),t.createElementVNode("div",RR,t.toDisplayString(A.key),1)]),t.createVNode(E,null,{items:t.withCtx(()=>[t.createVNode(N,{onClick:v=>g(A)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1},8,["onClick"]),t.createVNode(N,{danger:"",onClick:v=>_(A)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1},8,["onClick"])]),default:t.withCtx(()=>[t.createVNode(b,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:2},1024)])):t.createCommentVNode("",!0)],64))),128))]),t.createVNode(PR,{"is-editing":!!s.value&&!c.value,"secret-name":(C=s.value)==null?void 0:C.key,"secret-ref":(x=s.value)==null?void 0:x.value,"validate-name":y,onCancel:p,onProceed:m},null,8,["is-editing","secret-name","secret-ref"])])}}}),[["__scopeId","data-v-c9f18d61"]]);function MR(){const{getSchema:e}=Ge();return t.computed(()=>{const n=e("config.resources");if(!n)throw new Error("Failed to get resource schema");const o=en(n);return o.fields.forEach(r=>{const i=Object.keys(r)[0];if(i==="cache"){const a=r[i];r[i]={...a,fields:[...a.fields,{partial_id:{type:"string"}}]}}}),o})}const LR={class:"dk-cache-panel"},FR={class:"title"},UR={key:0,class:"cache-item"},KR={class:"cache-item-key"},jR={class:"cache-item-key-text"},GR={class:"dk-resource-cache-form"},qR={key:1},zR={key:2,class:"dk-cache-inline-redis"},HR=Ae(t.defineComponent({__name:"CacheField",props:{strategy:{}},emits:["update","remove","cancel"],setup(e,{emit:n}){const o=n,{getDefault:r,formData:i}=Ge(),a=yt("cache");if(a.error)throw new Error("No cache schema");const l=t.ref(!1),{i18n:{t:s}}=Ke.useI18n(),c=t.computed(()=>!(d.value==="redis"&&!i.cache.partial_id&&!i.cache.redis)),d=t.computed(()=>{var N;return(N=a.value.value)==null?void 0:N.strategy}),f=t.computed(()=>{var N;return(N=a.value.value)!=null&&N.redis?mn.dump(a.value.value.redis,{indent:2,noRefs:!0}):""}),u=()=>{l.value=!0},p=()=>{l.value=!1,o("cancel")},m=()=>{o("remove")},g=()=>{u(),a.value.value||(a.value.value=r("cache"),a.value.value.strategy="memory")},_=()=>{l.value=!1,o("update",i)},y=$s.createdBundledHighlighter({langs:{yaml:()=>import("@shikijs/langs/yaml")},themes:{"github-dark":()=>import("@shikijs/themes/github-dark")},engine:()=>yg.createJavaScriptRegexEngine()}),{codeToHtml:h}=$s.createSingletonShorthands(y),k=()=>{var N,E;d.value==="memory"&&((N=i.cache)!=null&&N.partial_id)&&((E=i.cache)==null||delete E.partial_id)};async function b({codeElement:N,language:E,code:C}){N.innerHTML=await h(C,{lang:E,theme:"github-dark",structure:"inline"})}return(N,E)=>{const C=t.resolveComponent("KButton"),x=t.resolveComponent("KDropdownItem"),A=t.resolveComponent("KDropdown"),v=t.resolveComponent("KLabel"),T=t.resolveComponent("KCodeBlock"),I=t.resolveComponent("KModal");return t.openBlock(),t.createElementBlock("div",LR,[t.createElementVNode("h3",FR,t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title")),1),e.strategy?(t.openBlock(),t.createElementBlock("div",UR,[t.createElementVNode("div",KR,[t.createVNode(t.unref(ve.DeployIcon),{color:t.unref(Jr),size:t.unref(Bu)},null,8,["color","size"]),t.createElementVNode("div",jR,t.toDisplayString(e.strategy),1)]),t.createVNode(A,null,{items:t.withCtx(()=>[t.createVNode(x,{onClick:u},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1}),t.createVNode(x,{danger:"",onClick:m},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1})]),default:t.withCtx(()=>[t.createVNode(C,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:1})])):(t.openBlock(),t.createBlock(C,{key:1,appearance:"tertiary",class:"add-button",size:"small",onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.add_button")),1)]),_:1})),t.createVNode(I,{"action-button-disabled":!c.value,"action-button-text":t.unref(s)("actions.save"),"max-width":"640px",title:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title"),visible:l.value,onCancel:p,onProceed:_},{default:t.withCtx(()=>{var w,F;return[t.createElementVNode("div",GR,[t.createVNode(Cd,{items:[{label:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.memory"),value:"memory"},{label:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.redis"),value:"redis"}],name:"strategy","onUpdate:modelValue":k},null,8,["items"]),d.value==="memory"?(t.openBlock(),t.createBlock(mt,{key:0,name:"memory.dictionary_name"})):t.createCommentVNode("",!0),d.value==="redis"?(t.openBlock(),t.createElementBlock("div",qR,[t.createVNode(v,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.select_redis_configuration")),1)]),_:1}),t.createVNode(t.unref(Os.RedisConfigurationSelector),{"model-value":(w=t.unref(i).cache)==null?void 0:w.partial_id,"redis-type":"redis-ee","onUpdate:modelValue":E[0]||(E[0]=S=>t.unref(i).cache.partial_id=S)},null,8,["model-value"])])):t.createCommentVNode("",!0),d.value==="redis"&&!((F=t.unref(i).cache)!=null&&F.partial_id)&&f.value?(t.openBlock(),t.createElementBlock("div",zR,[t.createElementVNode("div",null,t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config_preview")),1),t.createVNode(T,{id:"dk-cache-redis-configuration",code:f.value,language:"yaml",theme:"dark",onCodeBlockRender:b},null,8,["code"])])):t.createCommentVNode("",!0)])]}),_:1},8,["action-button-disabled","action-button-text","title","visible"])])}}}),[["__scopeId","data-v-ad53942e"]]),YR={class:"dk-resources-panel"},WR=Ae(t.defineComponent({__name:"ResourcesPanel",setup(e){const n=MR(),o=t.ref(0),{addVault:r,removeVault:i,updateVault:a,renameVault:l,formData:s}=IR();function c(_,y,h){h&&h!==_&&l(h,_,!1),a(_,y)}const{state:d,commit:f}=Ye(),u=t.computed(()=>({cache:d.value.cacheConfig}));function p(_){d.value.cacheConfig=_.cache,f()}function m(){d.value.cacheConfig=void 0,f()}function g(){o.value++}return(_,y)=>(t.openBlock(),t.createElementBlock("div",YR,[t.createVNode(_t,{data:t.unref(s),schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(DR,{name:"vault",onAdd:t.unref(r),onRemove:t.unref(i),onUpdate:c},null,8,["onAdd","onRemove"])]),_:1},8,["data","schema"]),y[0]||(y[0]=t.createElementVNode("hr",{class:"dk-resources-divider"},null,-1)),(t.openBlock(),t.createBlock(_t,{key:`${o.value}`,data:u.value,schema:t.unref(n)},{default:t.withCtx(()=>{var h;return[t.createVNode(HR,{strategy:(h=u.value.cache)==null?void 0:h.strategy,onCancel:g,onRemove:m,onUpdate:p},null,8,["strategy"])]}),_:1},8,["data","schema"]))]))}}),[["__scopeId","data-v-3a9010b8"]]),XR={class:"header"},ZR={class:"title"},JR={class:"body"},QR={class:"panel"},eD=Ae(t.defineComponent({__name:"SidePanel",setup(e){const{t:n}=Je.createI18n("en-us",it),{sidePanelExpanded:o}=ii(),{propertiesPanelOpen:r,selectedNode:i}=Ye(),a=t.inject(un.DATAKIT_M2,!1),l=t.ref("nodes");function s(){r.value=!1}t.watch(i,d=>{d||s()});const c=t.ref(!1);return t.onMounted(()=>{c.value=!0}),(d,f)=>{const u=t.resolveComponent("KSegmentedControl");return t.openBlock(),t.createElementBlock("aside",{class:t.normalizeClass(["side-panel",{expanded:t.unref(o),inited:c.value}])},[t.createElementVNode("header",XR,[t.createElementVNode("h2",ZR,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.name")),1)]),t.createElementVNode("div",JR,[t.createElementVNode("div",QR,[t.unref(a)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(u,{modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=p=>l.value=p),options:[{label:t.unref(n)("plugins.free-form.datakit.flow_editor.panel_segments.nodes"),value:"nodes"},{label:t.unref(n)("plugins.free-form.datakit.flow_editor.panel_segments.resources.title"),value:"resources"}]},null,8,["modelValue","options"]),l.value==="nodes"?(t.openBlock(),t.createBlock(Qm,{key:0,"hide-title":""})):t.createCommentVNode("",!0),l.value==="resources"?(t.openBlock(),t.createBlock(WR,{key:1})):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createBlock(Qm,{key:1}))])])],2)}}}),[["__scopeId","data-v-ae943268"]]),tD=t.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(n,o)=>(t.openBlock(),t.createBlock(Pt,{items:t.unref(Va)([...t.unref(Ou)]),name:e.name},null,8,["items","name"]))}}),nD=t.defineComponent({__name:"InputsRecordField",props:{name:{},items:{}},emits:["change:inputs"],setup(e){const{getSchema:n}=Ge(),{i18n:o}=De(),r=t.computed(()=>{const i=n("inputs");return i?i.fields.map(a=>Object.keys(a)[0]):[]});return(i,a)=>(t.openBlock(),t.createBlock(kt,{"as-child":"",name:e.name,"reset-label-path":"isolate"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.value,l=>(t.openBlock(),t.createBlock(Pt,{key:l,clearable:"","enable-filtering":"",items:e.items,name:l,placeholder:t.unref(o).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s=>i.$emit("change:inputs",l,s?s.value:null)},t.createSlots({_:2},[i.$slots["item-label"]?{name:"item-label",fn:t.withCtx(s=>[t.renderSlot(i.$slots,"item-label",t.mergeProps({ref_for:!0},s))]),key:"0"}:void 0]),1032,["items","name","placeholder","onChange"]))),128))]),_:3},8,["name"]))}}),oD=["data-testid"],rD={class:"dk-inputs-map-field-entry-body"},iD={class:"dk-inputs-map-field-entry-content"},aD=Ae(t.defineComponent({__name:"InputsMapField",props:{items:{},fieldNameValidator:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["change:inputs","add:field","remove:field","rename:field","change"],setup(e,{emit:n}){const o=e,r=n,{entries:i,addEntry:a,removeEntry:l,field:s}=Kr(o,r),{i18n:{t:c}}=De(),d=t.useTemplateRef("root"),f=t.ref(null),u=t.ref({});let p;async function m(E,C="key"){var x;d.value&&(await t.nextTick(),(x=d.value.querySelector(`[data-${C}-input="${E}"]`))==null||x.focus())}function g(){const{id:E}=a(),C=i.value.findIndex(({key:x})=>!x);m(C===-1?i.value.length-1:C),f.value=E}function _(E){l(E.id),E.id===f.value&&(f.value=null),E.key.trim()!==""&&r("remove:field",E.key)}function y(E){p=E.key}function h(E){if(k(E)){E.key=p,delete u.value[E.id];return}if(E.id===f.value){if(E.key.trim()==="")return;r("add:field",E.key,E.value),f.value=null}else r("rename:field",p,E.key);p=E.key}function k(E){delete u.value[E.id];const C=o.fieldNameValidator("input",p,E.key);if(C)return u.value[E.id]=C,C}function b(E){k(E)}function N(E,C){E.id!==f.value&&r("change:inputs",E.key,C)}return t.watch(()=>i.value,E=>{f.value&&(E.find(({id:C})=>C===f.value)||(f.value=null))}),(E,C)=>{const x=t.resolveComponent("KAlert"),A=t.resolveComponent("KLabel"),v=t.resolveComponent("KInput"),T=t.resolveComponent("KSelect"),I=t.resolveComponent("KButton");return t.unref(s).error?(t.openBlock(),t.createBlock(x,{key:0,appearance:"danger",message:t.unref(s).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:d,class:"dk-inputs-map-field"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),(w,F)=>(t.openBlock(),t.createElementBlock("div",{key:w.id,class:"dk-inputs-map-field-entry","data-testid":`ff-kv-container-${t.unref(s).path.value}.${F}`},[t.createVNode(A,{for:`ff-kv-entry-key-${t.unref(s).path.value}.${F}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:1},8,["for"]),t.createElementVNode("div",rD,[t.createElementVNode("div",iD,[t.createVNode(v,{id:`ff-kv-entry-key-${t.unref(s).path.value}.${F}`,modelValue:w.key,"onUpdate:modelValue":[S=>w.key=S,S=>k(w)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":F,"data-testid":`ff-key-${t.unref(s).path.value}.${F}`,error:!!u.value[w.id],"error-message":u.value[w.id],placeholder:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:S=>b(w),onChange:S=>h(w),onFocus:S=>y(w)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","placeholder","onBlur","onChange","onFocus"]),t.createVNode(T,{modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${t.unref(s).path.value}.${F}`,"enable-filtering":"",items:e.items,label:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.source"),placeholder:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:S=>N(w,(S==null?void 0:S.value)??null)},t.createSlots({_:2},[E.$slots["item-label"]?{name:"item-template",fn:t.withCtx(({item:S})=>[t.renderSlot(E.$slots,"item-label",t.mergeProps({ref_for:!0},S),void 0,!0)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","data-testid","items","label","placeholder","onChange"])]),t.createVNode(I,{appearance:"tertiary",class:"dk-inputs-map-field-remove-btn","data-testid":`ff-kv-remove-btn-${t.unref(s).path.value}.${F}`,icon:"",onClick:S=>_(w)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.CloseIcon))]),_:1},8,["data-testid","onClick"])])],8,oD))),128)),t.createVNode(I,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(s).path.value}`,disabled:!!f.value,onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-dda8b239"]]),lD={class:"dk-source-item"},ta=Ae(t.defineComponent({__name:"SourceItem",props:{item:{}},setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("span",lD,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(wt)[e.item.type].icon),{color:t.unref(Jr),size:t.unref(ei)},null,8,["color","size"])),t.createTextVNode(" "+t.toDisplayString(e.item.label),1)]))}}),[["__scopeId","data-v-78ea8dff"]]),sD={key:1,class:"dk-inputs-field-or"},En=Ae(t.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const o=n,{getSchema:r}=Ge(),{i18n:{t:i}}=De(),a=t.computed(()=>r("inputs")),l=t.computed(()=>a.value?a.value.type==="record"?nD:aD: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)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(Be.KLabel),{class:"dk-inputs-field-h1",info:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.tooltip")},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.label")),1)]),_:1},8,["info"]),t.unref(r)("input")?(t.openBlock(),t.createBlock(Pt,{key:0,class:"dk-inputs-field-h2",clearable:"","enable-filtering":"",items:e.items,label:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.input"),"label-attributes":{info:void 0},name:"input",placeholder:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s},{"item-label":t.withCtx(g=>[t.renderSlot(p.$slots,"item-label",t.normalizeProps(t.guardReactiveProps(g)),()=>[t.createVNode(ta,{item:g},null,8,["item"])],!0)]),_:3},8,["items","label","placeholder"])):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createElementBlock("div",sD,[t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.or")),1)])):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createBlock(t.unref(Be.KLabel),{key:2,class:"dk-inputs-field-h2 dk-margin-0"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.fields")),1)]),_:1})):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createBlock(t.unref(l),{key:3,"field-name-validator":e.fieldNameValidator,items:e.items,"key-order":e.fieldNames,name:"inputs","onAdd:field":c,"onChange:inputs":d,"onRemove:field":f,"onRename:field":u},{"item-label":t.withCtx(g=>[t.createVNode(ta,{item:g},null,8,["item"])]),_:1},8,["field-name-validator","items","key-order"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-90518c04"]]),cD={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"},dD={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 uD(e){const n=Number(e);return!isNaN(n)&&isFinite(n)}function Jn(...e){return function(o){for(const r of e){const i=r(o);if(i)return i}}}function To(e){const{i18n:{t:n}}=De(),o=()=>e?typeof e=="string"?e:n("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 eg(e,n){const{i18n:{t:o}}=De();return function(i){if(i!=null)switch(e){case"identifier":{const a=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_identifier_format",n):"Invalid identifier format";return/^[A-Za-z_][A-Za-z0-9_-]*$/.test(i)?void 0:a()}case"url":{const a=()=>n?typeof n=="string"?n: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 fD(e=0,n=1/0,o){const{i18n:{t:r}}=De();return function(a){if(a!=null&&typeof a=="string"&&(a.length<e||a.length>n))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:n}):`Value must be between ${e} and ${n} characters`}}function tg(e){const{i18n:{t:n}}=De();return function(r){if(!uD(r))return e?typeof e=="string"?e:n("plugins.free-form.datakit.flow_editor.node_properties.errors.not_number",e):"Value must be a number"}}function Es(e,n){const{i18n:{t:o}}=De();return function(i){if(i==null)return;const a=tg(n)(i);if(a)return a;const l=Number(i);switch(e){case"float":{const s=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_float",n):"Invalid float format";return Number.isFinite(l)?void 0:s()}case"integer":{const s=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_integer",n):"Invalid integer format";return Number.isInteger(l)?void 0:s()}default:return}}}function Ns(e=-1/0,n=1/0,o){const{i18n:{t:r}}=De();return function(a){if(a==null)return;const l=tg(o)(a);if(l)return l;const s=Number(a);if(s<e||s>n)return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.number_range",{fieldName:o.fieldName,min:e,max:n}):`Value must be between ${e} and ${n}`}}function pD(e,n){const{state:o}=Ye(),{i18n:{t:r}}=De();return function(a){if(o.value.nodes.some(l=>l.name===a&&l.id!==e))return n?typeof n=="string"?n:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",n):"Name must be unique."}}function mD(e,n,o){const{i18n:{t:r}}=De();return function(a){if(!n)return;if(o?n.fields[e].some(s=>s.name===a&&s.id!==o):n.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 gD(){const{i18n:{t:e}}=De();return function(o){if(pl(o))return e("plugins.free-form.datakit.flow_editor.node_properties.errors.reserved_node_name",{nodeName:o})}}function ng(e){const{i18n:{t:n}}=De(),o={fieldName:n("plugins.free-form.datakit.flow_editor.node_properties.name")};return Jn(To(o),eg("identifier",o),gD(),pD(e,o))}function hD(e){const{i18n:{t:n}}=De(),{getNodeById:o}=Ye();return function(i,a,l){const s={fieldName:n(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 Jn(To(s),mD(i,o(e),l))(a)}}function yD(e){const n=t.ref({}),o=t.computed(()=>Object.values(n.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 n.value[l]=m,m},d=()=>{n.value[l]=void 0},f=u=>(d(),c(u));r[l]={handleChange:f,handleBlur:f,validate:f,isValid:t.computed(()=>n.value[l]===void 0),error:t.computed(()=>n.value[l])}});function i(){n.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 n.value}return{isValid:o,errorMap:n,fields:r,clearErrors:i,validate:a}}function Er(e){const{validationConfig:n,getValidationData:o,toggleNodeValid:r}=e,{skipValidation:i}=Ye(),a=t.computed(()=>typeof n=="function"?n():n),l=t.computed(()=>yD(a.value)),s=t.computed(()=>l.value.fields),c=t.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:t.computed(()=>{const m=s.value[u];return m?!m.isValid.value:!1}),errorMessage:t.computed(()=>{const m=s.value[u];return m?m.error.value??"":""})}}return t.onMounted(()=>{i.value?i.value=!1:d()}),t.onBeforeUnmount(async()=>{try{const u=d(),p=Object.values(u).filter(Boolean).length>0;r(!p)}catch{}}),t.watch(()=>c.value,r,{immediate:!0}),{fields:s.value,isValid:c,validateAll:d,createFieldHandler:f}}function sn(e,n){const o=t.inject(un.DATAKIT_M2,!1),{state:r,renameNode:i,getNodeById:a,addField:l,renameField:s,removeField:c,replaceConfig:d,disconnectEdge:f,connectEdge:u,invalidConfigNodeIds:p,commit:m,revert:g}=Ye(),{i18n:{t:_}}=De(),y=qm(),h=t.computed(()=>{const M=a(e);if(!M)throw new Error("Node not existed");return M}),k=t.computed(()=>{const L=r.value.edges.filter(O=>O.target===e).reduce((O,R)=>{var se,ue;const H=a(R.source),te=(se=hn(H,"output",R.sourceField))==null?void 0:se.id,W=(ue=hn(h.value,"input",R.targetField))==null?void 0:ue.name,j=H.id+(te?`.${te}`:"");return W?O.inputs={...O.inputs,[W]:j}:O.input=j,O},{});return h.value.fields.input.forEach(O=>{L.inputs||(L.inputs={}),L.inputs[O.name]||(L.inputs[O.name]=null)}),{...h.value.config,...L,name:h.value.name}}),b=M=>{i(e,M??"",!0,`${e}:rename`)},N=(M,L=!0)=>{if(!n)throw new Error("getFormValue is not defined");const O=Jt(n(),["name","input","inputs"]),R=M?`update:${e}:${M}`:void 0;d(e,O,L,R)},E=(M,L)=>{const O=gn(h.value,M,L);if(!O)throw new Error(`Field with name "${L}" not found in node "${h.value.name}"`);return O},C=(M,L,O)=>{const R=!!O;l(e,M,L,!R),R&&I(L,O)},x=(M,L,O)=>{const R=E(M,L).id;s(e,R,O)},A=(M,L)=>{const O=E(M,L).id;c(e,O)},v=t.computed(()=>r.value.edges.filter(M=>M.target===e&&!M.targetField)[0]),T=t.computed(()=>r.value.edges.filter(M=>M.target===e&&M.targetField)),I=async(M,L)=>{const O=L==null,R=E("input",M).id;if(O){const q=T.value.find(ae=>ae.targetField===R);q&&f(q.id);return}const{nodeId:H,fieldId:te}=Du(L),W=E("input",M).id,j=[];v.value&&(j.push(kr(v.value,a)),f(v.value.id,!1));const se=T.value.find(q=>q.targetField===R);se&&(j.push(kr(se,a)),f(se.id,!1)),u({source:H,sourceField:te,target:e,targetField:W},!1);const ue=ls(H,te,e,W,a),ge=j[0]&&ue?j[0][1]===ue[1]:!1;if(m(),ge||j.length===0)return;await y(_("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[ue],j)||g()},w=async M=>{if(M==null){v.value&&f(v.value.id);return}const O=[];for(const j of T.value)O.push(kr(j,a)),f(j.id,!1);v.value&&f(v.value.id,!1);const{nodeId:R,fieldId:H}=Du(M);u({source:R,sourceField:H,target:e,targetField:void 0},!1);const te=ls(R,H,e,void 0,a);if(m(),O.length===0)return;await y(_("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[te],O)||g()},F=M=>{const L=[...r.value.edges,{source:M,target:e}];return _l(ri(L))},S=t.computed(()=>{var L,O;const M=[];for(const R of r.value.nodes)if(!(!o&&R.type==="vault"||!((L=bo(R.type).io)!=null&&L.output))&&R.fields.output&&R.id!==e&&!(R.type==="property"&&!is((O=R.config)==null?void 0:O.property))&&!F(R.id)&&!(h.value.phase==="request"&&R.phase==="response")&&!(R.type==="vault"&&R.fields.output.length===0)){M.push({value:R.id,label:R.name,type:R.type});for(const te of R.fields.output)M.push({value:`${R.id}.${te.id}`,label:`${R.name}.${te.name}`,type:R.type})}return M}),U=t.computed(()=>h.value.fields.input.map(M=>M.name)||[]);function B(M){p.value.delete(e),M||p.value.add(e)}const oe=hD(e);function ie(M,L,O){const R=a(e);if(!R)throw new Error("Node not found when validating field name");const H=gn(R,M,L);return oe(M,O,H==null?void 0:H.id)}return{formData:k,inputOptions:S,inputEdge:v,inputsEdges:T,inputsFieldNames:U,currentNode:h,setName:b,setConfig:N,addField:C,renameFieldByName:x,removeFieldByName:A,setInputs:I,setInput:w,nameValidator:ng(e),fieldNameValidator:ie,toggleNodeValid:B}}function cn(e){const{getSchema:n}=Ge();return t.computed(()=>{if(Nt(e))switch(e){case"response":return dD;case"service_request":return cD}try{const l=n().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 Qn=t.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:n}){const o=e,r=n,{i18n:{t:i}}=De(),a=t.ref(o.name),l=t.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 t.watch(()=>o.name,f=>{f!==a.value&&(a.value=f)}),(f,u)=>{const p=t.resolveComponent("KInput");return t.openBlock(),t.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:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.name"),required:"",onChange:c,onFocus:d},null,8,["model-value","error","error-message","label"])}}}),_D=t.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=De(),o=t.useTemplateRef("form"),r=cn("call"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,toggleNodeValid:p,fieldNameValidator:m}=sn(e.nodeId,()=>o.value.getValue()),{createFieldHandler:g}=Er({validationConfig:{url:Jn(To({fieldName:"URL"}),eg("url",{fieldName:"URL"})),timeout:Jn(Es("integer"),Ns(0,2147483646))},getValidationData:()=>({url:i.value.url,timeout:i.value.timeout}),toggleNodeValid:p}),_=g("url",()=>l("url")),y=g("timeout",()=>l("timeout"));return(h,k)=>{const b=t.resolveComponent("KLabel");return t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(u),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(b,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(so,{error:t.unref(_).error.value,"error-message":t.unref(_).errorMessage.value,name:"url",onBlur:t.unref(_).onBlur,"onUpdate:modelValue":t.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(tD,{name:"method",onUpdate:k[0]||(k[0]=N=>t.unref(l)())}),t.createVNode(Mn,{error:t.unref(y).error.value,"error-message":t.unref(y).errorMessage.value,name:"timeout",onBlur:t.unref(y).onBlur,"onUpdate:modelValue":t.unref(y).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(so,{name:"ssl_server_name","onUpdate:modelValue":k[1]||(k[1]=N=>t.unref(l)("ssl_server_name"))}),t.createVNode(En,{"field-name-validator":t.unref(m),"field-names":t.unref(f),items:t.unref(s),"onChange:input":t.unref(d),"onChange:inputs":t.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),bD=t.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("service_request"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=sn(e.nodeId,()=>n.value.getValue());return(d,f)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(En,{"field-name-validator":t.unref(c),"field-names":t.unref(s),items:t.unref(i),"onChange:input":t.unref(l),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),wD=t.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("response"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=sn(e.nodeId,()=>n.value.getValue());return(d,f)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(En,{"field-name-validator":t.unref(c),"field-names":t.unref(s),items:t.unref(i),"onChange:input":t.unref(l),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),og={jqlang:"https://jqlang.org/manual/"},kD=t.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t:n},i18nT:o}=De(),r=t.useTemplateRef("form"),i=cn("jq"),{formData:a,setName:l,setConfig:s,inputOptions:c,setInputs:d,setInput:f,addField:u,removeFieldByName:p,renameFieldByName:m,inputsFieldNames:g,nameValidator:_,toggleNodeValid:y,fieldNameValidator:h}=sn(e.nodeId,()=>r.value.getValue());function k(A,v){u("input",A,v)}function b(A){p("input",A)}function N(A,v){m("input",A,v)}const E=n("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:C}=Er({validationConfig:{jq:Jn(To({fieldName:E}),fD(1,10240,{fieldName:E}))},getValidationData:()=>({jq:a.value.jq}),toggleNodeValid:y}),x=C("jq",()=>s("jq"));return(A,v)=>{const T=t.resolveComponent("KLabel"),I=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(a),schema:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(a).name,validate:t.unref(_),onUpdate:t.unref(l)},null,8,["name","validate","onUpdate"]),t.createVNode(T,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(so,{autosize:"",error:t.unref(x).error.value,"error-message":t.unref(x).errorMessage.value,label:t.unref(E),"label-attributes":{},multiline:"",name:"jq",resizable:"",onBlur:t.unref(x).onBlur,"onUpdate:modelValue":t.unref(x).onUpdate},{help:t.withCtx(()=>[t.createVNode(t.unref(o),{keypath:"plugins.free-form.datakit.flow_editor.node_properties.jq.help"},{link:t.withCtx(()=>[t.createVNode(I,{"hide-icon":"",href:t.unref(og).jqlang},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(og).jqlang),1)]),_:1},8,["href"])]),_:1})]),_:1},8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createVNode(En,{"field-name-validator":t.unref(h),"field-names":t.unref(g),items:t.unref(c),"onAdd:field":k,"onChange:input":t.unref(f),"onChange:inputs":t.unref(d),"onRemove:field":b,"onRename:field":N},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),CD=Ae(t.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["change:value","add:field","rename:field","remove:field","change"],setup(e,{emit:n}){const o=e,r=n,i=t.ref({}),{entries:a,addEntry:l,removeEntry:s,field:c}=Kr(o,r,!1),{i18n:d}=De(),f=t.useTemplateRef("root"),u=t.ref(null);let p;async function m(E,C="key"){var x;f.value&&(await t.nextTick(),(x=f.value.querySelector(`[data-${C}-input="${E}"]`))==null||x.focus())}function g(){const E=l(),C=a.value.findIndex(({key:x})=>!x);m(C===-1?a.value.length-1:C),u.value=E}function _(E){var C;E.id===((C=u.value)==null?void 0:C.id)&&(u.value=null),s(E.id),E.key.trim()!==""&&r("remove:field",E.key)}function y(E){p=E.key}function h(E){var C;if(b(E)){E.key=p,delete i.value[E.id];return}if(E.id===((C=u.value)==null?void 0:C.id)){if(E.key.trim()==="")return;u.value=null,r("add:field",E.key,E.value)}else r("rename:field",p,E.key);p=E.key}function k(E,C){var A;if(C.id===((A=u.value)==null?void 0:A.id))return;const x=E.target.value.trim();r("change:value",C.key,x)}function b(E){delete i.value[E.id];const C=o.fieldNameValidator("output",p,E.key);if(C)return i.value[E.id]=C,C}function N(E){b(E)}return t.watchEffect(()=>{u.value&&!a.value.some(E=>E.id===u.value.id)&&a.value.push(u.value)}),(E,C)=>{const x=t.resolveComponent("KAlert"),A=t.resolveComponent("KLabel"),v=t.resolveComponent("KButton"),T=t.resolveComponent("KInput"),I=t.resolveComponent("KCard");return t.unref(c).error?(t.openBlock(),t.createBlock(x,{key:0,appearance:"danger",message:t.unref(c).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:f,class:"dk-output-value-field"},[t.createVNode(A,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(a),(w,F)=>(t.openBlock(),t.createBlock(I,{key:w.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${t.unref(c).path.value}.${F}`},{actions:t.withCtx(()=>[t.createVNode(v,{appearance:"none","data-testid":`ff-kv-remove-btn-${t.unref(c).path.value}.${F}`,icon:"",onClick:S=>_(w)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.CloseIcon))]),_:1},8,["data-testid","onClick"])]),default:t.withCtx(()=>[t.createVNode(T,{id:`ff-kv-entry-key-${t.unref(c).path.value}.${F}`,modelValue:w.key,"onUpdate:modelValue":[S=>w.key=S,S=>b(w)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":F,"data-testid":`ff-key-${t.unref(c).path.value}.${F}`,error:!!i.value[w.id],"error-message":i.value[w.id],label:t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:S=>N(w),onChange:S=>h(w),onFocus:S=>y(w)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),t.createVNode(T,{modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${t.unref(c).path.value}.${F}`,label:t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:S=>k(S,w)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),t.createVNode(v,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(c).path.value}`,disabled:!!u.value,onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.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-5e17f8cb"]]);function ED(e){const n={};for(const[o,r]of Object.entries(e))typeof r=="object"&&r!==null?n[o]=JSON.stringify(r):n[o]=String(r);return n}function na(e){const n={};for(const[o,r]of Object.entries(e))if(r!=null){n[o]=r;try{r==="null"?n[o]=null:(r==="true"||r==="false"||/^-?\d+(\.\d+)?$/.test(r)||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))&&(n[o]=JSON.parse(r))}catch{}}return n}function ND(e,n,o){const r={};for(const i of Object.keys(e))i===n?r[o]=e[n]:r[i]=e[i];return r}const xD=t.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:n,getOutEdgesByNodeId:o,addField:r,renameField:i,removeField:a,replaceConfig:l,getNodeById:s}=Ye(),{fieldNameValidator:c}=sn(e.nodeId),d=cn("static"),f=ng(e.nodeId),u=t.computed(()=>s(e.nodeId)),p=t.computed(()=>{var b;return((b=u.value)==null?void 0:b.fields.output.map(N=>N.name))||[]});function m(b){if(!u.value)throw new Error("No current node");n(u.value.id,b??"")}const g=t.computed(()=>{var v;if(!u.value)return{};const b=((v=u.value.config)==null?void 0:v.values)??{},N={},E=o(u.value.id).map(T=>T.sourceField).filter(Boolean).map(T=>hn(u.value,"output",T)).map(T=>T==null?void 0:T.name).filter(Boolean),C=u.value.fields.output.map(T=>T.name),x=Object.keys(b);return new Set([...x,...E,...C]).forEach(T=>{if(T in b){N[T]=b[T];return}N[T]=""}),{name:u.value.name,values:ED(N)}});function _(b,N){if(!u.value)throw new Error("No selected node");const E=N!==void 0;if(r(e.nodeId,"output",b,!E),E){const C={values:na({...g.value.values,[b]:N})};l(e.nodeId,C)}}function y(b,N){if(!u.value)throw new Error("No selected node");const E=gn(u.value,"output",b);if(!E)throw new Error("No field found to rename");const C={values:na(ND(g.value.values??{},b,N))};l(e.nodeId,C,!1),i(e.nodeId,E.id,N)}function h(b){var C;if(!u.value)throw new Error("No selected node");const N=gn(u.value,"output",b);if(!N)throw new Error("No field found to delete");a((C=u.value)==null?void 0:C.id,N.id,!0,!1);const E={values:na({...g.value.values})};delete E.values[b],l(e.nodeId,E)}function k(b,N){if(!u.value)throw new Error("No selected node");const E={...g.value.values};E[b]=N;const C={values:na(E)};l(e.nodeId,C)}return(b,N)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:g.value,schema:t.unref(d)},{default:t.withCtx(()=>{var E;return[t.createVNode(Qn,{name:((E=u.value)==null?void 0:E.name)??"",validate:t.unref(f),onUpdate:m},null,8,["name","validate"]),t.createVNode(CD,{"field-name-validator":t.unref(c),"key-order":p.value,name:"values","onAdd:field":_,"onChange:value":k,"onRemove:field":h,"onRename:field":y},null,8,["field-name-validator","key-order"])]}),_:1},8,["data","schema"]))}}),SD={class:"dk-kong-property-item"},vD={class:"property-type"},AD={class:"property-badges"},ID=Ae(t.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:n}){const{i18n:{t:o}}=De(),r=e,i=n,{formData:a}=Ge(),l=t.ref(br(a.property)),s=t.computed(()=>wr(a.property)),c=t.ref(rs(a.property)),d=t.computed(()=>a.property??""),f=t.computed(()=>Object.entries(Wn).map(([m])=>{var y;const g=wr(m)?(y=a.property)==null?void 0:y.startsWith(m.replace(Io,"")):a.property===m;return{label:g&&c.value?m.replace(Io,c.value):m,value:m,selected:g}}));function u(m){const g=Gi.find(_=>{var y;return(y=a.property)==null?void 0:y.startsWith(_)});g&&(a.property=g+m,r.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){l.value!==br(m==null?void 0:m.value)&&(a.property=(m==null?void 0:m.value)||null,l.value=br(a.property),r.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return t.watch(()=>a.property,m=>{c.value=rs(m),l.value=br(m)}),(m,g)=>{const _=t.resolveComponent("KBadge"),y=t.resolveComponent("KSelect"),h=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock(t.Fragment,null,[(t.openBlock(),t.createBlock(y,{key:d.value,"enable-filtering":"",error:!e.validators.property.isValid.value,help:e.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]=k=>e.validators.property.handleBlur(()=>t.unref(a).property)),onChange:p},{"item-template":t.withCtx(({item:k})=>[t.createElementVNode("div",SD,[t.createElementVNode("div",null,[t.createElementVNode("div",null,t.toDisplayString(k.label),1),t.createElementVNode("div",vD,t.toDisplayString(t.unref(Wn)[k.value].dataType),1)]),t.createElementVNode("div",AD,[t.unref(Wn)[k.value].readable?(t.openBlock(),t.createBlock(_,{key:0,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):t.createCommentVNode("",!0),t.unref(Wn)[k.value].writable?(t.openBlock(),t.createBlock(_,{key:1,appearance:"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):t.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),s.value?(t.openBlock(),t.createBlock(h,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=k=>c.value=k),u],error:!e.validators.key.isValid.value,"error-message":e.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=k=>e.validators.key.handleBlur(()=>t.unref(a).property))},null,8,["model-value","error","error-message"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-0ab1be87"]]),PD=t.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),{selectedNode:o,disconnectInEdges:r,disconnectOutEdges:i}=Ye(),a=cn("property"),{formData:l,setName:s,setConfig:c,inputOptions:d,setInputs:f,setInput:u,inputsFieldNames:p,nameValidator:m,toggleNodeValid:g,fieldNameValidator:_}=sn(e.nodeId,()=>n.value.getValue()),y=t.computed(()=>as(l.value.property));function h(b){var E;const N=(E=o.value)==null?void 0:E.id;if(!N)throw new Error("Expected selectedNode to be defined");is(b)||i(N,!1),as(b)||r(N,!1),c()}const{fields:k}=Er({validationConfig:()=>({property:To({fieldName:"Property"}),key:wr(l.value.property)?To({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:rs(l.value.property)}),toggleNodeValid:g});return(b,N)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(l).name,validate:t.unref(m),onUpdate:t.unref(s)},null,8,["name","validate","onUpdate"]),t.createVNode(Pt,{name:"content_type",onUpdate:N[0]||(N[0]=E=>t.unref(c)())}),t.createVNode(ID,{validators:t.unref(k),"onUpdate:modelValue":h,"onUpdate:propertyKey":N[1]||(N[1]=E=>t.unref(c)("property-key"))},null,8,["validators"]),y.value?(t.openBlock(),t.createBlock(En,{key:0,"field-name-validator":t.unref(_),"field-names":t.unref(p),items:t.unref(d),"onChange:input":t.unref(u),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):t.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),TD=t.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("exit"),{formData:r,setName:i,setConfig:a,inputOptions:l,setInputs:s,setInput:c,inputsFieldNames:d,nameValidator:f,toggleNodeValid:u,fieldNameValidator:p}=sn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:m}=Er({validationConfig:{status:Jn(Es("integer",{fieldName:"Status"}),Ns(200,599,{fieldName:"Status"}))},getValidationData:()=>({status:r.value.status}),toggleNodeValid:u}),g=m("status",()=>a("status"));return(_,y)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(r).name,validate:t.unref(f),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(Mn,{error:t.unref(g).error.value,"error-message":t.unref(g).errorMessage.value,name:"status",onBlur:t.unref(g).onBlur,"onUpdate:modelValue":t.unref(g).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(Ur,{name:"warn_headers_sent","onUpdate:modelValue":y[0]||(y[0]=h=>t.unref(a)())}),t.createVNode(En,{"field-name-validator":t.unref(p),"field-names":t.unref(d),items:t.unref(l),"onChange:input":t.unref(c),"onChange:inputs":t.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}});function OD(e){const n=sn(e),{state:o,getNodeById:r,branchGroups:i,commit:a}=Ye(),{i18n:{t:l}}=De(),s=qm(),c=qa(),d=t.computed(()=>{var b;const h={...n.formData.value},k=Qo(((b=n.currentNode.value)==null?void 0:b.type)||"branch");for(const N of k)(!(N in h)||h[N]==null)&&(h[N]=[]);return h});function f(h,k,b){const N=r(h),E=r(b),C=N?`${N.name}.${k}`:`${h}.${k}`,x=E?E.name:b;return[C,x]}function u(h){return(h==null?[]:Array.isArray(h)?h:[h]).filter(k=>Ru(k))}function p(h,k){return i.wouldCreateCycle(h,k)?(c({message:l("plugins.free-form.datakit.flow_editor.error.branch_cycle"),appearance:"danger"}),!0):!1}function m(h,k,b){const N=[],E=[],C=[];for(const x of b){const A=i.findMembership(x);if(!A||A.ownerId===h&&A.branch===k)continue;const v=i.getMembers(A.ownerId,A.branch).filter(T=>T!==x);C.push({ownerId:A.ownerId,branch:A.branch,members:v}),N.push(f(h,k,x)),E.push(f(A.ownerId,A.branch,x))}return{conflictUpdates:C,addedAssignments:N,removedAssignments:E}}function g(h,k,b,N){let E=!1;for(const C of N)E=i.setMembers(C.ownerId,C.branch,C.members,{commit:!1})||E;return E=i.setMembers(h,k,b,{commit:!1})||E,E}async function _(h,k){const b=n.currentNode.value,N=u(k),E=i.prepareMembers(b.id,h,N),C=i.getMembers(b.id,h);if(gl(C,E))return!0;const x=E.filter(w=>!C.includes(w));for(const w of x)if(p(b.id,w))return!1;const{conflictUpdates:A,addedAssignments:v,removedAssignments:T}=m(b.id,h,x);return A.length>0&&!await s(l("plugins.free-form.datakit.flow_editor.confirm.message.branch_replace"),v,T)?!1:(g(b.id,h,E,A)&&a(),!0)}const y=t.computed(()=>{const h=n.currentNode.value;return!h||!i?[]:o.value.nodes.filter(k=>k.id!==e&&!Nt(k.type)&&k.phase===h.phase&&!i.wouldCreateCycle(h.id,k.id)).map(k=>({value:k.id,label:k.name,type:k.type}))});return{...n,formData:d,branchOptions:y,updateBranchMembers:_}}const $D=t.defineComponent({__name:"NodeFormBranch",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=De(),o=cn("branch"),r=t.ref(0),{formData:i,setName:a,inputOptions:l,branchOptions:s,nameValidator:c,setInput:d,setInputs:f,inputsFieldNames:u,fieldNameValidator:p,updateBranchMembers:m}=OD(e.nodeId);async function g(_,y){await m(_,y)||(r.value+=1)}return(_,y)=>(t.openBlock(),t.createBlock(_t,{key:r.value,data:t.unref(i),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(c),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(Be.KLabel),{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(Pt,{"enable-filtering":"",items:t.unref(s),multiple:"",name:"then",onUpdate:y[0]||(y[0]=h=>g("then",h))},{"item-label":t.withCtx(h=>[t.createVNode(ta,{item:h},null,8,["item"])]),_:1},8,["items"]),t.createVNode(Pt,{"enable-filtering":"",items:t.unref(s),multiple:"",name:"else",onUpdate:y[1]||(y[1]=h=>g("else",h))},{"item-label":t.withCtx(h=>[t.createVNode(ta,{item:h},null,8,["item"])]),_:1},8,["items"]),t.createVNode(En,{"field-name-validator":t.unref(p),"field-names":t.unref(u),items:t.unref(l),"onChange:input":t.unref(d),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),BD=t.defineComponent({__name:"NodeFormCache",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("cache"),{i18n:{t:r}}=De(),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,toggleNodeValid:p,fieldNameValidator:m}=sn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Er({validationConfig:()=>({ttl:Jn(Es("integer",{fieldName:"TTL"}),Ns(1,1/0,{fieldName:"TTL"}))}),getValidationData:()=>({ttl:i.value.ttl}),toggleNodeValid:p}),_=g("ttl",()=>l("ttl"));return(y,h)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(i),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(u),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(Be.KLabel),{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(Ur,{name:"bypass_on_error","onUpdate:modelValue":h[0]||(h[0]=k=>t.unref(l)("bypass_on_error"))}),t.createVNode(Mn,{error:t.unref(_).error.value,"error-message":t.unref(_).errorMessage.value,name:"ttl",onBlur:t.unref(_).onBlur,"onUpdate:modelValue":t.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(En,{"field-name-validator":t.unref(m),"field-names":t.unref(f),items:t.unref(s),"onChange:input":t.unref(d),"onChange:inputs":t.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),VD=["innerHTML"],RD=t.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:`${Hp}px`},offsetTop:{default:`${dT}px`},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{getNodeById:n}=Ye(),o=t.computed(()=>e.nodeId&&n(e.nodeId)),r=t.computed(()=>{var i;switch((i=o.value)==null?void 0:i.type){case"call":return _D;case"service_request":return bD;case"response":return wD;case"jq":return kD;case"static":return xD;case"property":return PD;case"exit":return TD;case"branch":return $D;case"cache":return BD;default:return null}});return(i,a)=>(t.openBlock(),t.createBlock(t.unref(Be.KSlideout),{class:"dk-node-properties-panel","close-on-blur":!1,"has-overlay":!1,"max-width":e.maxWidth,"offset-top":e.offsetTop,visible:e.visible,"z-index":t.unref(cT),onClose:a[0]||(a[0]=l=>i.$emit("close"))},t.createSlots({default:t.withCtx(()=>[o.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:t.unref(Tt)(o.value.type)},null,8,VD)):t.createCommentVNode("",!0),r.value?(t.openBlock(),t.createBlock(t.unref(r),{key:e.nodeId,class:"dk-node-properties-panel-form","node-id":e.nodeId},null,8,["node-id"])):t.createCommentVNode("",!0)]),_:2},[o.value?{name:"title",fn:t.withCtx(()=>[t.createVNode(Wm,{type:o.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible","z-index"]))}}),DD=Ae(RD,[["__scopeId","data-v-bad25d77"]]),MD={class:"dk-editor-content"},LD={class:"main"},FD=Ae(t.defineComponent({__name:"EditorContent",setup(e){const{propertiesPanelOpen:n,selectedNode:o}=Ye();function r(){n.value=!1}t.watch(o,a=>{a||r()});const i=t.ref(!1);return t.onMounted(()=>{i.value=!0}),(a,l)=>{var s;return t.openBlock(),t.createElementBlock("div",MD,[t.createVNode(t.unref(eD)),t.createElementVNode("div",LD,[t.createVNode(_R)]),t.createVNode(DD,{"node-id":(s=t.unref(o))==null?void 0:s.id,visible:t.unref(n),onClose:r},null,8,["node-id","visible"])])}}}),[["__scopeId","data-v-8f04afa6"]]),UD={key:0,class:"dk-editor-modal"},KD=Ae(t.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){t.useCssVars(s=>({v8758bbfe:`${t.unref(sT)}px`,v30e03211:`${t.unref(zp)}px`}));const n=t.useModel(e,"open"),o=t.ref(!1),r=t.useTemplateRef("confirm-modal"),{clear:i}=Ye();xV(async(...s)=>{o.value=!0;const c=await r.value.open(...s);return o.value=!1,c});const a=je.useScrollLock(document);t.watch(n,s=>{a.value=!!s,s||i()},{immediate:!0});function l(){n.value=!1}return(s,c)=>n.value?(t.openBlock(),t.createElementBlock("div",UD,[t.createVNode(fR,{class:"nav",onBack:l}),t.createVNode(FD,{ref:"content",class:"content",tabindex:"0"},null,512),t.createVNode(sR,{ref:"confirm-modal"},null,512)])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-abbb8dba"]]),jD={class:"dk-flow-editor"},GD={class:"flow-panels-container"},qD={class:"overlay"},zD=Ae(t.defineComponent({__name:"FlowEditor",props:{isEditing:{type:Boolean}},emits:["change","error"],setup(e,{emit:n}){const{t:o}=Je.createI18n("en-us",it),{formData:r}=Ge(),i=n;function a(c,d,f,u){const p={...r.config,nodes:c};f!==void 0&&(p.resources=f);const m={...r.__ui_data,...d};r.config=p,r.__ui_data=m,u!=null?r.partials=[{id:u}]:r.partials&&(r.partials=null),i("change",p,m)}const{modalOpen:l,setPendingFitView:s}=Hu(r,{onChange:a,isEditing:e.isEditing});return t.watch(l,()=>{s(!0)},{flush:"post"}),S1({enabled:l}),(c,d)=>{const f=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",jD,[t.createElementVNode("div",GD,[t.createVNode(Cs,{inactive:t.unref(l),mode:"preview"},null,8,["inactive"]),t.createElementVNode("div",qD,[t.createVNode(f,{appearance:"secondary",class:"button-open-editor",onClick:d[0]||(d[0]=u=>l.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.cta"))+" ",1),t.createVNode(t.unref(ve.ExpandIcon))]),_:1})])]),t.createVNode(KD,{open:t.unref(l),"onUpdate:open":d[1]||(d[1]=u=>t.isRef(l)?l.value=u:null)},null,8,["open"])])}}}),[["__scopeId","data-v-82ca6e78"]]);function HD(e,n){const o=[],r=(i,a)=>{typeof a=="string"&&o.push({nodeName:e.name,path:["nodes",n,...i],value:a})};if("input"in e&&e.input!=null&&r(["input"],e.input),"inputs"in e&&e.inputs&&typeof e.inputs=="object")for(const[i,a]of Object.entries(e.inputs))a!=null&&r(["inputs",i],a);if("output"in e&&e.output!=null&&r(["output"],e.output),"outputs"in e&&e.outputs&&typeof e.outputs=="object")for(const[i,a]of Object.entries(e.outputs))a!=null&&r(["outputs",i],a);return o}function YD(e){const n=e.path[2];return n==="output"||n==="outputs"}function rg(e){if(!e)return!1;for(const n of Object.values(e))if(n!=null)return!0;return!1}function ig(e,n){const o=e.input!==void 0&&e.input!==null,r=rg(e.inputs);o&&r&&n.addIssue({code:"custom",message:'A node cannot use both "input" and "inputs". Use one or the other.',path:["inputs"]});const i=e.output!==void 0&&e.output!==null,a=rg(e.outputs);i&&a&&n.addIssue({code:"custom",message:'A node cannot use both "output" and "outputs". Use one or the other.',path:["outputs"]})}function ag(e,n,o){if(!e.nodes)return;const r=e.nodes.map(c=>c.name),i=new Set;r.forEach((c,d)=>{i.has(c)&&o.addIssue({code:"custom",message:`Duplicate node name: "${c}"`,path:["nodes",d,"name"]}),i.add(c)});const a=new Set([...n,...r]),l=new Map,s=new Map;e.nodes.forEach((c,d)=>{for(const f of HD(c,d)){const u=f.value.split(".",1)[0];if(a.has(u)||o.addIssue({code:"custom",message:`Unknown node "${u}" in connection "${f.value}"`,path:f.path}),YD(f)){const p=`${f.nodeName}->${u}`;s.has(p)?o.addIssue({code:"custom",message:`Connection specified on both sides: "${f.nodeName}" outputs to "${u}" and "${u}" inputs from "${f.nodeName}". Specify it on one side only.`,path:f.path}):l.set(p,l.get(p)??f.path)}else{const p=`${u}->${f.nodeName}`;l.has(p)?o.addIssue({code:"custom",message:`Connection specified on both sides: "${u}" outputs to "${f.nodeName}" and "${f.nodeName}" inputs from "${u}". Specify it on one side only.`,path:f.path}):s.set(p,s.get(p)??f.path)}}})}const WD=ee.z.enum(Pu),XD=ee.z.enum(yo),lg=e=>yo.includes(e),xs=ee.z.enum(Tu),sg=xs.options;ee.z.union([xs,WD]);const ZD=/^[A-Za-z_][A-Za-z0-9_-]{0,254}$/,cg=ee.z.string().min(1).max(255).regex(ZD,"Invalid node name (snake_case / kebab-case only)").refine(e=>!lg(e),"Name clashes with reserved implicit node").brand(),oa=ee.z.union([XD,cg]),JD=ee.z.string().min(1).brand(),QD=["then","else"];ee.z.enum(QD);const ut=ee.z.string().refine(e=>{if(oa.safeParse(e).success)return!0;const n=e.match(/^([^.]+)\.([^.]+)$/);if(!n)return!1;const[,o,r]=n;return oa.safeParse(o).success&&JD.safeParse(r).success},'Invalid connection, expected "NODE" or "NODE.FIELD"').nullish(),dg=ee.z.enum(Ou),eo=ee.z.object({type:ee.z.string(),name:cg,input:ut,inputs:ee.z.record(ee.z.string(),ut).nullish(),output:ut,outputs:ee.z.record(ee.z.string(),ut).nullish()}).loose().superRefine((e,n)=>{ig(e,n)}),eM=ee.z.object({type:ee.z.string(),name:ee.z.string()}).loose().superRefine((e,n)=>{const o=e.type,r=e.name;(typeof r!="string"||r.length===0||r.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"invalid node name",fatal:!1}),sg.includes(o)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${o}", expected one of: ${sg.join(", ")}`})}),tM=eo.safeExtend({type:ee.z.literal("call"),method:dg.nullish(),ssl_server_name:ee.z.string().min(1).nullish(),timeout:ee.z.number().int().min(0).max(2147483646).nullish(),url:ee.z.url(),inputs:ee.z.object({body:ut,headers:ut,query:ut}).partial().nullish(),outputs:ee.z.object({body:ut,headers:ut,status:ut}).partial().nullish()}).strict(),nM=eo.safeExtend({type:ee.z.literal("exit"),status:ee.z.number().int().min(200).max(599).nullish(),warn_headers_sent:ee.z.boolean().nullish(),output:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),oM=eo.safeExtend({type:ee.z.literal("jq"),jq:ee.z.string().min(1).max(10240),outputs:ee.z.never().optional()}).strict(),rM=eo.safeExtend({type:ee.z.literal("property"),content_type:ee.z.enum(["application/json","text/plain","application/octet-stream"]).nullish(),property:ee.z.string().min(1),inputs:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),iM=eo.safeExtend({type:ee.z.literal("static"),values:ee.z.record(ee.z.string(),ee.z.unknown()),input:ee.z.never().optional(),inputs:ee.z.never().optional()}).strict(),aM=eo.safeExtend({type:ee.z.literal("cache"),bypass_on_error:ee.z.boolean().nullish(),inputs:ee.z.object({data:ut,key:ut,ttl:ut}).partial().nullish(),outputs:ee.z.object({data:ut,hit:ut,miss:ut,stored:ut}).partial().nullish(),ttl:ee.z.number().int().gt(0).nullish()}).strict(),lM=eo.safeExtend({type:ee.z.literal("branch"),then:ee.z.array(oa).nullish(),else:ee.z.array(oa).nullish()}).strict(),sM=eM.pipe(ee.z.discriminatedUnion("type",[tM,nM,oM,rM,iM,aM,lM])),cM=ee.z.record(ee.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),ee.z.string().min(1).max(4095)),dM=ee.z.object({dictionary_name:ee.z.string().default("kong_db_cache")}),uM=ee.z.object({host:ee.z.string().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).default(6379)}),fM=ee.z.object({ip:ee.z.string().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).default(6379)}),pM=ee.z.object({host:ee.z.string().optional().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).optional().default(6379),connect_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),send_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),read_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),username:ee.z.string().optional(),password:ee.z.string().optional(),sentinel_username:ee.z.string().optional(),sentinel_password:ee.z.string().optional(),database:ee.z.number().int().optional().default(0),keepalive_pool_size:ee.z.number().int().min(1).max(2147483646).default(256),keepalive_backlog:ee.z.number().int().min(0).max(2147483646).optional(),sentinel_master:ee.z.string().optional(),sentinel_role:ee.z.enum(["master","slave","any"]).optional(),sentinel_nodes:ee.z.array(uM).min(1,{message:"sentinel_nodes must contain at least 1 item"}).optional(),cluster_nodes:ee.z.array(fM).min(1,{message:"cluster_nodes must contain at least 1 item"}).optional(),ssl:ee.z.boolean().default(!1).optional(),ssl_verify:ee.z.boolean().default(!1).optional(),server_name:ee.z.string().optional(),cluster_max_redirections:ee.z.number().int().default(5).optional(),connection_is_proxied:ee.z.boolean().default(!1).optional(),timeout:ee.z.number().int().optional(),sentinel_addresses:ee.z.array(ee.z.string()).min(1).optional(),cluster_addresses:ee.z.array(ee.z.string()).min(1).optional()}).superRefine((e,n)=>{var c;const o=e.host!==void 0&&e.host!==null,r=e.port!==void 0&&e.port!==null;(o&&!r||!o&&r)&&n.addIssue({code:"custom",message:"host and port must be specified together",path:o?["port"]:["host"]});const i=!!e.sentinel_master,a=!!e.sentinel_role,l=!!((c=e.sentinel_nodes)!=null&&c.length),s=[i,a,l].filter(Boolean).length;s>0&&s<3&&n.addIssue({code:"custom",message:"sentinel_master, sentinel_role and sentinel_nodes must be provided together"}),e.connection_is_proxied===!0&&!o&&n.addIssue({code:"custom",message:"host is required when connection_is_proxied is true (host/port should point to the proxy)",path:["host"]})}),mM=ee.z.object({strategy:ee.z.enum(["memory","redis"]).optional(),memory:dM,redis:pM}),gM=ee.z.object({vault:cM.nullish(),cache:mM.nullish()});ee.z.array(ee.z.object({id:ee.z.string()})),ee.z.object({nodes:ee.z.array(sM).min(1,"At least one node is required"),debug:ee.z.boolean().nullish(),resources:gM.nullish()}).strict().superRefine((e,n)=>{ag(e,yo,n)});const ug=xs.options,Ss=ee.z.string().min(1).refine(e=>!e.includes("."),"Invalid node name").refine(e=>!lg(e),"Node name conflicts with reserved implicit node"),ft=ee.z.string().refine(e=>{if(!e||/\s/.test(e))return!1;const n=e.indexOf(".");if(n===-1)return!0;const o=e.slice(0,n),r=e.slice(n+1);return o.length>0&&r.length>0},"Invalid connection"),to=ee.z.object({type:ee.z.string(),name:Ss,input:ft.nullish(),inputs:ee.z.record(ee.z.string(),ft.nullish()).nullish(),output:ft.nullish(),outputs:ee.z.record(ee.z.string(),ft.nullish()).nullish()}).loose().superRefine((e,n)=>{ig(e,n)}),hM=ee.z.object({type:ee.z.string(),name:ee.z.string()}).loose().superRefine((e,n)=>{const o=e.type,r=e.name;(typeof r!="string"||r.length===0||r.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"Invalid node name",fatal:!1}),ug.includes(o)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${o}", expected one of: ${ug.join(", ")}`})}),yM=to.safeExtend({type:ee.z.literal("call"),method:dg.nullish(),ssl_server_name:ee.z.string().nullish(),timeout:ee.z.union([ee.z.number(),ee.z.string()]).nullish(),url:ee.z.string().nullish(),inputs:ee.z.object({body:ft.nullish(),headers:ft.nullish(),query:ft.nullish()}).partial().nullish(),outputs:ee.z.object({body:ft.nullish(),headers:ft.nullish(),status:ft.nullish()}).partial().nullish()}).strict(),_M=to.safeExtend({type:ee.z.literal("exit"),status:ee.z.union([ee.z.number(),ee.z.string()]).nullish(),warn_headers_sent:ee.z.boolean().nullish(),output:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),bM=to.safeExtend({type:ee.z.literal("jq"),jq:ee.z.string().nullish(),outputs:ee.z.never().optional()}).strict(),wM=to.safeExtend({type:ee.z.literal("property"),content_type:ee.z.string().nullish(),property:ee.z.string().nullish(),inputs:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),kM=to.safeExtend({type:ee.z.literal("static"),values:ee.z.record(ee.z.string(),ee.z.unknown()).nullish(),input:ee.z.never().optional(),inputs:ee.z.never().optional()}).strict(),CM=to.safeExtend({type:ee.z.literal("cache"),bypass_on_error:ee.z.boolean().nullish(),inputs:ee.z.object({data:ft.nullish(),key:ft.nullish(),ttl:ft.nullish()}).partial().nullish(),outputs:ee.z.object({data:ft.nullish(),hit:ft.nullish(),miss:ft.nullish(),stored:ft.nullish()}).partial().nullish(),ttl:ee.z.union([ee.z.number(),ee.z.string()]).nullish()}).strict(),EM=to.safeExtend({type:ee.z.literal("branch"),then:ee.z.array(Ss).nullish(),else:ee.z.array(Ss).nullish()}).strict(),NM=hM.pipe(ee.z.discriminatedUnion("type",[yM,_M,bM,wM,kM,CM,EM])),xM=ee.z.record(ee.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),ee.z.string().min(1).max(4095)),SM=ee.z.object({dictionary_name:ee.z.string().default("kong_db_cache")}),vM=ee.z.object(),AM=ee.z.object({strategy:ee.z.enum(["memory","redis"]).optional(),memory:SM.optional(),redis:vM.optional()}),IM=ee.z.object({vault:xM.nullish(),cache:AM.nullish()}),PM=ee.z.object({nodes:ee.z.array(NM).nullish(),debug:ee.z.boolean().nullish(),resources:IM.nullish()}).strict().superRefine((e,n)=>{!e||!Array.isArray(e.nodes)||ag(e,yo,n)}).nullish(),TM={class:"dk-option-label"},OM={class:"dk-option-label"},$M=["innerHTML"],BM=Ae(t.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},editorMode:{},formConfig:{},renderRules:{},pluginName:{}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=e,r=t.inject(un.DATAKIT_ENABLE_FLOW_EDITOR,!1),i=t.inject(un.DATAKIT_M2,!1),a=t.ref(!1);t.onMounted(()=>{a.value=!!document.querySelector("#plugin-form-page-actions")});const{editorMode:l}=ii(),s=t.computed(()=>r&&f.value?l.value:"code"),c=t.computed(()=>i?s.value==="flow"?"form":"code":"form"),d={flow:ve.DesignIcon,code:ve.CodeblockIcon},f=t.ref(!0),u=t.computed(()=>{const b=[{label:n("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:n("plugins.free-form.datakit.code_editor.mode"),value:"code"}];return b[0].disabled=!f.value,b}),p=t.computed(()=>{switch(s.value){case"code":return n("plugins.free-form.datakit.description_code");case"flow":return n("plugins.free-form.datakit.description_flow");default:return""}}),m=t.computed(()=>n(i?"plugins.free-form.datakit.plugin_config.title":"plugins.form.sections.plugin_config.title"));t.watch(s,()=>{var b;(b=o.onValidityChange)==null||b.call(o,{model:"config",valid:!0})});function g(){var b;(b=o.onValidityChange)==null||b.call(o,{model:"config",valid:!0})}function _(){g()}function y(b){g();let N=b;i&&(N=b==null?void 0:b.config);const{success:E}=PM.safeParse(N);let C=E;!i&&C&&(C=!h(b)),f.value=C}function h(b){var E,C;return!!((E=b==null?void 0:b.resources)!=null&&E.vault||((C=b==null?void 0:b.nodes)==null?void 0:C.some(x=>x.type==="branch"||x.type==="cache")))}function k(b){var N;f.value=!1,(N=o.onValidityChange)==null||N.call(o,{model:"config",valid:!1,error:b})}return(b,N)=>{const E=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.unref(i)?(t.openBlock(),t.createBlock(t.Teleport,{key:0,disabled:!a.value,to:"#plugin-form-page-actions"},[t.createVNode(t.unref(Be.KSegmentedControl),{"data-testid":"datakit-editor-mode-switcher","model-value":s.value,options:u.value,"onUpdate:modelValue":N[0]||(N[0]=C=>l.value=C)},{"option-label":t.withCtx(({option:C})=>[t.createVNode(E,{disabled:f.value||C.value!=="flow",text:t.unref(n)("plugins.free-form.datakit.flow_editor.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",TM,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[C.value]))),t.createTextVNode(" "+t.toDisplayString(C.label),1)])]),_:2},1032,["disabled","text"])]),_:1},8,["model-value","options"])],8,["disabled"])):t.createCommentVNode("",!0),t.createVNode(Nd,t.mergeProps(o,{class:"dk-form","editor-mode":c.value}),t.createSlots({"code-editor":t.withCtx(()=>[t.createVNode(Iu,{class:"code-editor",editing:o.isEditing,onChange:y,onError:k},null,8,["editing"])]),"plugin-config-title":t.withCtx(()=>[t.createTextVNode(t.toDisplayString(m.value),1)]),"plugin-config-description":t.withCtx(()=>[t.createElementVNode("span",{innerHTML:p.value},null,8,$M)]),default:t.withCtx(()=>[s.value==="flow"?(t.openBlock(),t.createBlock(zD,{key:0,"is-editing":o.isEditing,onChange:_},null,8,["is-editing"])):s.value==="code"&&!t.unref(i)?(t.openBlock(),t.createBlock(Iu,{key:1,class:"code-editor",editing:o.isEditing,onChange:y,onError:k},null,8,["editing"])):t.createCommentVNode("",!0)]),_:2},[t.unref(r)&&!t.unref(i)?{name:"plugin-config-extra",fn:t.withCtx(()=>[t.createVNode(t.unref(Be.KSegmentedControl),{"model-value":s.value,options:u.value,"onUpdate:modelValue":N[1]||(N[1]=C=>l.value=C)},{"option-label":t.withCtx(({option:C})=>[t.createVNode(E,{disabled:f.value||C.value!=="flow",text:t.unref(n)("plugins.free-form.datakit.flow_editor.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",OM,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[C.value]))),t.createTextVNode(" "+t.toDisplayString(C.label),1)])]),_:2},1032,["disabled","text"])]),_:1},8,["model-value","options"])]),key:"0"}:void 0]),1040,["editor-mode"])],64)}}}),[["__scopeId","data-v-35f07a89"]]),fg=e=>{if(!(!e||typeof e!="object"))for(const[n,o]of Object.entries(e))typeof o=="string"&&(e[n]=o.split(/\s*,\s*/).filter(Boolean))},pg=e=>{if(!(!e||typeof e!="object"))for(const[n,o]of Object.entries(e))Array.isArray(o)&&(e[n]=o.join(", "))},VM=t.defineComponent({__name:"ConfigForm",props:{schema:{},data:{},onChange:{type:Function}},emits:["change"],setup(e,{emit:n}){const o=n,{i18n:{t:r}}=Ke.useI18n(),l={prepareFormData:c=>{var f,u;const d=On(c);return(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{pg(p.headers),pg(p.query)}),d},hasValue:c=>!!(c!=null&&c.config)},s=c=>{var f,u;const d=On(c);(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{fg(p.headers),fg(p.query)}),o("change",d)};return(c,d)=>(t.openBlock(),t.createBlock(_t,{config:l,data:e.data,schema:e.schema,tag:"div",onChange:s},{default:t.withCtx(()=>[t.createVNode(kt,{"as-child":"",name:"config","reset-label-path":"reset"},{default_acl:t.withCtx(({name:f})=>[t.createVNode(Go,{appearance:"tabs","item-label":(u,p)=>t.unref(r)("plugins.free-form.ai-mcp-proxy.default_acl_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),tools:t.withCtx(({name:f})=>[t.createVNode(Go,{appearance:"tabs","item-label":(u,p)=>t.unref(r)("plugins.free-form.ai-mcp-proxy.tool_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),_:1}),t.createVNode(Gr)]),_:1},8,["data","schema"]))}}),RM=t.defineComponent({__name:"AIMcpProxyForm",props:{schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function}},setup(e){const n=e,o=t.useSlots();return t.provide(Fe.AUTOFILL_SLOT,o==null?void 0:o[Fe.AUTOFILL_SLOT_NAME]),(r,i)=>(t.openBlock(),t.createBlock(ja,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(a=>[t.createVNode(VM,t.normalizeProps(t.guardReactiveProps(a)),null,16)]),_:1},16))}}),DM=Ae(t.defineComponent({__name:"ConfigForm",setup(e){const{getSchema:n,createComputedRenderRules:o}=Ge(),r=o("config"),i=t.computed(()=>{var _;const a=[],l=[],s=new Set,d=n().fields.find(y=>Object.keys(y)[0]==="config");if(!d||!("config"in d))return{defaultVisible:a,advanced:l};const f=d.config;f.entity_checks&&f.entity_checks.forEach(y=>{var k,b;let h;"at_least_one_of"in y?h=y.at_least_one_of:"conditional"in y&&((k=n(Ze("config",y.conditional.if_field)))!=null&&k.required)&&y.conditional.then_match.required?h=[y.conditional.if_field,y.conditional.then_field]:"conditional_at_least_one_of"in y&&((b=n(Ze("config",y.conditional_at_least_one_of.if_field)))!=null&&b.required)&&(h=[y.conditional_at_least_one_of.if_field,...y.conditional_at_least_one_of.then_at_least_one_of]),h==null||h.forEach(N=>s.add(N))});const u=((_=r.value)==null?void 0:_.bundles)??[],p=new Map;for(const y of u)for(let h=1;h<y.length;h++)p.set(y[h],y[h-1]);const m=y=>{const h=p.get(y);return h?m(h):y},g=new Map;for(const y of f.fields){const h=Object.keys(y)[0];g.set(h,m(h))}for(const y of f.fields){const h=Object.keys(y)[0];if(g.get(h)!==h)continue;let b;y[h].required||s.has(h)?b=a:b=l,b.push(h)}for(const y of f.fields){const h=Object.keys(y)[0],k=g.get(h);k!==h&&(a.includes(k)?a:l).push(h)}return{defaultVisible:a,advanced:l}});return(a,l)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(kt,{"as-child":"",name:"config",omit:i.value.advanced,"reset-label-path":"reset"},null,8,["omit"]),t.createVNode(Gr,{class:"ff-advanced-fields","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(kt,{"as-child":"",name:"config",omit:i.value.defaultVisible,"reset-label-path":"reset"},null,8,["omit"])]),_:1})],64))}}),[["__scopeId","data-v-f5897284"]]),mg=Object.freeze(Object.defineProperty({__proto__:null,AIMcpProxyForm:RM,CommonForm:t.defineComponent({__name:"CommonForm",props:{generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{},schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function},onValidityChange:{type:Function},editorMode:{},formConfig:{},renderRules:{},pluginName:{}},setup(e){const n=e,o=t.useSlots();return t.provide(Fe.AUTOFILL_SLOT,o==null?void 0:o[Fe.AUTOFILL_SLOT_NAME]),(r,i)=>(t.openBlock(),t.createBlock(Nd,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(()=>[t.createVNode(DM)]),_:1},16))}}),DatakitForm:BM,RequestCalloutForm:Ok,ServiceProtectionForm:uC},Symbol.toStringTag,{value:"Module"}));function MM(e,n){const o=St[e];if(!o||!o.fieldRules)return n;const r=LM(o.fieldRules),i={...n};return i.fields=i.fields.map(a=>Object.keys(a)[0]==="config"?{config:{...a.config,entity_checks:[...a.config.entity_checks||[],...r]}}:a),i}function LM(e){const n=[],o=r=>r.startsWith("config.")?r.substring(7):r;return e.atLeastOneOf&&e.atLeastOneOf.forEach(r=>{n.push({at_least_one_of:r.map(o)})}),e.onlyOneOf&&e.onlyOneOf.forEach(r=>{n.push({mutually_exclusive:r.map(o)})}),e.mutuallyRequired&&e.mutuallyRequired.forEach(r=>{n.push({mutually_required:r.map(o)})}),e.onlyOneOfMutuallyRequired&&e.onlyOneOfMutuallyRequired.forEach(r=>{if(r.forEach(i=>{n.push({mutually_required:i.map(o)})}),r.length>1)for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){const l=r[i].map(o),s=r[a].map(o);l.forEach(c=>{s.forEach(d=>{n.push({mutually_exclusive:[c,d]})})})}}),n}const FM={class:"kong-ui-entities-plugin-form"},UM={key:1,class:"entity-form"},KM={class:"plugin-config-empty-state"},jM=Ae(t.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},engine:{type:String,required:!1,default:void 0}},emits:["loading","model-updated","showNewPartialModal","globalAction","validity-change"],setup(e,{emit:n}){var ue,ge;const o=Object.keys(Fe.sharedForms),r=Object.keys(mg);if(new Set([...o,...r]).size!==o.length+r.length)throw new Error("Duplicate form component names found in `sharedForms` and `freeForm`");const i=n,a=e,{axiosInstance:l}=ye.useAxios((ue=a.config)==null?void 0:ue.axiosRequestConfig),{parseSchema:s}=Ke.useSchemas({entityId:((ge=a.entityMap.focusedEntity)==null?void 0:ge.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}=Ke.usePluginHelpers(),m=Ke.useExperimentalFreeForms(),{objectsAreEqual:g}=ye.useHelpers(),{i18n:{t:_}}=De(),y=re=>a.config.app==="konnect"?re.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"?re.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:""):re,h=(re,q)=>{let ae=`${a.config.apiBaseUrl}${Xe.form[a.config.app].entityGetOne}`;return ae=y(ae),ae=ae.replace(/{entity}/gi,re),ae=ae.replace(/{id}/gi,q),ae},k=re=>{let q=`${a.config.apiBaseUrl}${Xe.form[a.config.app].entityGetAll}`;return q=y(q),q=q.replace(/{entity}/gi,re),q},b=(re,q,ae)=>{const ce=h(re,q);return l.get(ce,ae)},N=(re,q)=>{const ae=k(re);return a.config.app==="konnect"?l.get(ae).then(ce=>{const{data:{data:$}}=ce;if(delete q.size,delete q.offset,$.length&&Object.keys(q).length===1){const P=Object.keys(q)[0],V=$.filter(D=>D[P]?!!D[P].toLowerCase().includes(q[P].toLowerCase()):!1);ce.data.data=V}return ce}):l.get(ae,{params:q})},E=(re,q,ae)=>{const ce=k(re);if(a.config.app==="konnect"){const{size:$,offset:P,...V}=q;if(re==="consumer_groups")return l.get(ce,{params:{size:1e3},signal:ae}).then(ne=>{const{data:{data:X}}=ne;if(X.length&&Object.keys(V).length===1){const Y=Object.keys(V)[0],K=X.filter(le=>le[Y]?!!le[Y].toLowerCase().includes(V[Y].toLowerCase()):!1);ne.data.data=K}return ne});const D={size:$,offset:P};for(const ne of Object.keys(V))D.filter={[ne]:{contains:V[ne]}};return l.get(ce,{params:D,signal:ae})}return l.get(ce,{params:q,signal:ae})},C=(re,q=50)=>{const ae=k(re);return l.get(ae,{params:{size:q}})};t.provide(Fe.FORMS_API_KEY,{getOne:b,getAll:N,getAllV2:E,peek:C}),t.provide(Fe.FORMS_CONFIG,a.config);const x=t.ref(""),A=t.ref(""),v=t.ref(null),T=t.ref({}),I=t.reactive({}),w=t.reactive({}),F=t.computed(()=>{var re;return(re=v.value)==null?void 0:re.options}),S=t.computed(()=>MM(w.name,a.rawSchema)),U=t.ref(!1),B=t.ref(),oe=(re,q)=>{U.value=re??"",B.value=q},ie=re=>{var q;(q=B.value)==null||q.call(B,re),U.value=!1},M=()=>{var V,D;const re={...a.schema},q=w,ae=I,ce=Object.keys(q),$={};if(!u(T.value))for(let ne=0;ne<((D=(V=T.value)==null?void 0:V.fields)==null?void 0:D.length);ne++)re[T.value.fields[ne].model]=T.value.fields[ne];Fe.customFields.forEach(ne=>{re[ne]&&(re[ne].fields.forEach(X=>{X.fields&&X.fields.forEach(Y=>{re[Y.model]=Y}),X.model&&(re[X.model]=X)}),delete re[ne])}),ce.forEach(ne=>{var _e;if(!re[ne]){ne==="partials"&&($[ne]=q[ne]);return}const X=re[ne];let Y=q[ne];const K=ae[ne],le=Array.isArray(Y)?"array":typeof Y,G=X?X.valueType:null,z=X?X.valueArrayType:null,J=X?X.transform:null;if(Y==null&&K==null&&!X.submitWhenNull)return;if(X){if(G&&le!==G)switch(G){case"array":le==="string"&&Y.length&&(Y=Y.split(",").map(Q=>{if(Q=Q.trim(),z==="string")return String(Q);if(z==="number")return Number(Q);if(z==="boolean"){if(typeof Q=="string")return Q.toLowerCase()==="true"||Q==="1";if(typeof Q=="number")return Q===1}return Q})),(!Y||!Y.length)&&(Y=X.submitWhenNull?null:[]);break;case"number":X.referenceable!==!0&&(Y=Number(Y));break;case"boolean":le==="string"&&(Y=Y.toLowerCase()==="true"||Y==="1"),le==="number"&&(Y=Y===1);break;case"string":Y=Y==null?"":String(Y);break}else G==="array"&&(!Y||!Y.length?Y=X.submitWhenNull?null:[]:((_e=X.inputAttributes)==null?void 0:_e.type)==="number"&&(Y=Y.map(Q=>Number(Q))));if(X.type==="array"&&X.nestedFields){const Q=he=>{Object.keys(he).forEach(Ce=>{he[Ce]&&typeof he[Ce]=="object"&&!Array.isArray(he[Ce])&&he[Ce]!==null?Q(he[Ce]):(he[Ce]===void 0||he[Ce]===null||typeof he[Ce]=="number"&&isNaN(he[Ce])||typeof he[Ce]=="string"&&he[Ce].trim().length===0)&&delete he[Ce]})};Y&&typeof Y=="object"&&Q(Y)}X.type==="object-advanced"&&X.fields&&Y!==null&&(Object.entries(Y).length===0?Y=null:Object.keys(Y).forEach(Q=>{Array.isArray(Y[Q])||(Y[Q]=Y[Q].split(","))}))}let de=c(ne);if(X.fieldNameHasDashes){const[Q,...he]=de.split(".").reverse();de=[Q.replace(/_/g,"-"),...he].reverse().join(".")}if(G==="object-expand"){let Q;[de,Q]=de.split(".");let he={};$[de]&&(he=$[de]),he[Q]=Y,Y=he}K!==void 0&&Y===""&&Y!==K?$[de]=G==="object"?{}:null:X.type==="checklist"&&Y===""?$[de]=[]:Y!==""&&($[de]=Y),$[de]=J?J(Y):$[de],p(de,$)});const P=d($);return A.value&&Object.assign(P,te.value),P},L=(re,q={})=>{f(w,q,re,a.editing),i("model-updated",{model:w,originalModel:I,data:M()})},O=(re,q)=>{var $;const ae={[q]:re};typeof(($=a.schema[q])==null?void 0:$.modelTransformer)=="function"&&(ae[q]=a.schema[q].modelTransformer(re));const ce=Object.assign({},w,ae);Object.assign(w,ce),i("model-updated",{model:w,originalModel:I,data:M()})},R=re=>{i("validity-change",re)},H=(re,q)=>{Object.keys(re).forEach(ae=>{var D,ne;let ce=q?`${q}-${ae}`:ae,$=a.schema[ce];if(!$){const X=q?`${q}-${ae.replace(/-/g,"_")}`:ae.replace(/-/g,"_");(D=a.schema[X])!=null&&D.fieldNameHasDashes&&(ce=X,$=a.schema[ce]),q&&((ne=a.schema[q])==null?void 0:ne.keyFromObject)===ae&&(ce=q,$=a.schema[ce])}const P=re[ae],V=typeof P;if($&&$.type==="object-advanced"&&!P){w[ce]={},I[ce]={};return}if(Array.isArray(P)){w[ce]=JSON.parse(JSON.stringify(P)),I[ce]=JSON.parse(JSON.stringify(P));return}if(V==="object"&&P&&!P.length)return H(P,ce);if(V==="object"&&P&&P.length&&$.type==="input"){w[ce]=P.join(", "),I[ce]=P.join(", ");return}w[ce]=P,I[ce]=P}),i("model-updated",{model:w,originalModel:I,data:M()})},te=t.shallowRef(a.record),W=re=>{te.value=re,i("model-updated",{model:{...w,...re},originalModel:I,data:M()})},j=t.ref(!0),se=()=>{var re;if(a.record&&a.schema&&(H({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)&&H({consumer_id:a.record.consumer_id||a.record.consumer}),H(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)&&H({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&&L("redis",{partials:a.record.partials}),A.value?W(a.record):H(a.record.config,"config"))),Object.keys(a.entityMap).length&&!a.entityMap.global&&a.schema){const q={};for(const ae in a.entityMap){const ce=a.entityMap[ae].id,$=a.entityMap[ae].idField,P=$==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify($).replace("_","-"));Object.prototype.hasOwnProperty.call(w,P)&&(q[P]=ce)}H(q)}if((re=a.entityMap.consumer)!=null&&re.id&&a.schema&&a.credential){const q={};Object.prototype.hasOwnProperty.call(w,"consumer")&&(q.consumer=a.entityMap.consumer.id),H(q)}j.value=!1};return t.watch(j,re=>{i("loading",re)}),t.watch(()=>a.schema,(re,q)=>{var ce,$;if(g(re||{},q||{}))return;const ae=s(re,void 0,void 0,a.engine);Object.assign(w,ae.model),T.value={fields:($=(ce=T.value)==null?void 0:ce.fields)==null?void 0:$.map(P=>({...P,disabled:P.disabled||!1}))},Object.assign(I,JSON.parse(JSON.stringify(ae.model))),A.value=a.engine?a.engine==="vfg"?void 0:$a(ae.model.name,m)||"CommonForm":$a(ae.model.name,m),x.value=Fe.getSharedFormName(ae.model.name),se()},{immediate:!0,deep:!0}),t.onBeforeMount(()=>{var re,q;v.value=s(a.schema,void 0,void 0,a.engine),Object.assign(w,((re=v.value)==null?void 0:re.model)||{}),T.value=((q=v.value)==null?void 0:q.schema)||{},se()}),(re,q)=>{var ce,$;const ae=t.resolveComponent("KSkeleton");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",FM,[j.value?(t.openBlock(),t.createBlock(ae,{key:0,type:"form"})):w.id&&e.editing||!e.editing?(t.openBlock(),t.createElementBlock("div",UM,[A.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(mg[A.value]),{key:0,"form-model":w,"form-options":F.value,"form-schema":T.value,"is-editing":e.editing,model:e.record,"on-form-change":W,"on-model-updated":O,"on-validity-change":R,"plugin-name":w.name,"render-rules":(ce=t.unref(St)[w.name])==null?void 0:ce.freeformRenderRules,schema:S.value,onGlobalAction:q[0]||(q[0]=(P,V)=>re.$emit("globalAction",P,V))},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["form-model","form-options","form-schema","is-editing","model","plugin-name","render-rules","schema"])):x.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(Fe.sharedForms)[x.value]),{key:1,"enable-redis-partial":e.enableRedisPartial,"form-model":w,"form-options":F.value,"form-schema":T.value,"is-editing":e.editing,"on-model-updated":O,"on-partial-toggled":L,"show-new-partial-modal":P=>re.$emit("showNewPartialModal",P)},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["enable-redis-partial","form-model","form-options","form-schema","is-editing","show-new-partial-modal"])):(t.openBlock(),t.createBlock(t.unref(Fe.VueFormGenerator),{key:2,"enable-redis-partial":e.enableRedisPartial,"is-editing":e.editing,model:w,options:F.value,schema:T.value,onModelUpdated:O,onPartialToggled:L,onRefreshModel:M,onShowNewPartialModal:q[1]||(q[1]=P=>re.$emit("showNewPartialModal",P))},t.createSlots({"plugin-config-empty-state":t.withCtx(()=>[t.createElementVNode("div",KM,t.toDisplayString(t.unref(_)("plugins.form.grouping.plugin_configuration.empty")),1)]),_:2},[($=t.unref(St)[w.name])!=null&&$.fieldRules&&(a.config.isNewOtelSchema||w.name!=="opentelemetry")?{name:"plugin-config-before-content",fn:t.withCtx(()=>[t.createVNode($0,{rules:t.unref(St)[w.name].fieldRules},null,8,["rules"])]),key:"0"}:void 0,e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"1"}:void 0]),1032,["enable-redis-partial","is-editing","model","options","schema"]))])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Oo.VaultSecretPicker),{config:a.config,setup:U.value,onCancel:q[2]||(q[2]=()=>U.value=!1),onProceed:ie},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-00037786"]]),GM={key:1},qM=t.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(n,o)=>e.teleportTarget?(t.openBlock(),t.createBlock(t.Teleport,{key:0,to:e.teleportTarget},[t.renderSlot(n.$slots,"default")],8,["to"])):(t.openBlock(),t.createElementBlock("div",GM,[t.renderSlot(n.$slots,"default")]))}}),zM={class:"kong-ui-entities-plugin-form-container"},HM={key:0},YM={class:"plugin-form-actions"},WM=Ae(t.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},scopedEntitiesPermissions:{type:Object,default:null},engine:{type:String,required:!1}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","showNewPartialModal","globalAction"],setup(e,{emit:n}){var Y;const o=n,r=e,i=oo.useRouter(),{i18n:{t:a}}=Ke.useI18n(),{customSchemas:l,typedefs:s}=Ke.useSchemas({app:r.config.app,credential:r.credential,experimentalRenders:r.config.app==="konnect"?r.config.experimentalRenders:void 0}),{formatPluginFieldLabel:c}=Ke.usePluginHelpers(),{getMessageFromError:d}=ye.useErrors(),{capitalize:f}=ye.useStringHelpers(),{objectsAreEqual:u}=ye.useHelpers(),{axiosInstance:p}=ye.useAxios((Y=r.config)==null?void 0:Y.axiosRequestConfig),m=t.ref(!1),g=t.computed(()=>!!r.pluginId),_=t.computed(()=>r.pluginId?ye.EntityBaseFormType.Edit:ye.EntityBaseFormType.Create),y=t.ref(void 0),h=t.ref(void 0),k=t.computed(()=>!!(r.credential&&r.config.entityId)),b=t.ref(void 0),N=t.ref({}),E=t.ref(),C=t.ref();t.provide(qr,{redisType:E,redisPath:C,isEditing:g.value});const x=t.ref(!1),A=t.reactive({enabled:!0,protocols:[],tags:[]}),v=t.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),T=t.ref([{title:a("view_configuration.json"),hash:"#json"},{title:a("view_configuration.yaml"),hash:"#yaml"}]);r.config.app==="konnect"&&T.value.splice(1,0,{title:a("view_configuration.terraform"),hash:"#terraform"});const I=t.ref(""),w=t.computed(()=>{var le;if(k.value){let G=Xe.form[r.config.app].credential[_.value];return G=G.replace(/{resourceEndpoint}/gi,B.value),G}let K;return r.config.entityType&&r.config.entityId?K=Xe.form[r.config.app].edit.forEntity.replace(/{entityType}/gi,r.config.entityType).replace(/{entityId}/gi,r.config.entityId):K=Xe.form[r.config.app].edit.all,r.config.app==="konnect"&&((le=St[r.pluginType])!=null&&le.useUIData)?`${K}?__ui_data=true`:K}),F=()=>{m.value=!m.value},S=t.computed(()=>{var de,_e,Q,he,Ce,pe,me,He;const K=r.config.entityType==="consumers"&&r.config.entityId||((_e=(de=b.value)==null?void 0:de.consumer)==null?void 0:_e.id),le=r.config.entityType==="consumer_groups"&&r.config.entityId||((he=(Q=b.value)==null?void 0:Q.consumer_group)==null?void 0:he.id),G=r.config.entityType==="services"&&r.config.entityId||((pe=(Ce=b.value)==null?void 0:Ce.service)==null?void 0:pe.id),z=r.config.entityType==="routes"&&r.config.entityId||((He=(me=b.value)==null?void 0:me.route)==null?void 0:He.id);if(!(K||le||G||z))return{global:{entity:Z.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const J={};return G&&(J.service={entity:Z.PluginScope.SERVICE,entityEndpoint:"services",id:G,idField:Nn.SERVICE}),z&&(J.route={entity:Z.PluginScope.ROUTE,entityEndpoint:"routes",id:z,idField:Nn.ROUTE}),K&&(J.consumer={entity:Z.PluginScope.CONSUMER,entityEndpoint:"consumers",id:K,idField:Nn.CONSUMER}),le&&(J.consumer_group={entity:Z.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:le,idField:Nn.CONSUMER_GROUP}),r.config.entityType&&(J.focusedEntity={entity:Z.PluginScope[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()],entityEndpoint:r.config.entityType,id:r.config.entityId,idField:Nn[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()]}),J}),U=t.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===ye.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}),B=t.computed(()=>{var G;const K=r.developer?"developers":"consumers",le=((G=io[r.pluginType])==null?void 0:G.endpoint)||"/plugins";return`${K}/${r.config.entityId}${r.developer?"/credentials":""}${le}`}),oe=K=>{const le=Array.from(new Set(K.map(G=>typeof G)));return le.length>1?"string":le[0]},ie=(K,le,G,z)=>{var Q,he;let J=le&&le.fields||[];const de=l[r.pluginType],_e=(he=(Q=io[r.pluginType])==null?void 0:Q.schema)==null?void 0:he.fields;return Array.isArray(J)&&(J=J.reduce((Ce,pe)=>{const me=Object.keys(pe)[0];return me.match(/-/g)?Ce[me.replace(/-/g,"_")]={...pe[me],fieldNameHasDashes:!0}:Ce[me]=pe[me],Ce},{})),Object.keys(J).sort().forEach(Ce=>{var st,pt,dn,fe,Pe,ke,we;const pe=J[Ce];pe.type==="set"&&(pe.type="array");const me=K?`${K}-${Ce}`:`${Ce}`;if((st=de==null?void 0:de.fieldsToDelete)!=null&&st.includes(me)){rd(G,me);return}if(Object.prototype.hasOwnProperty.call(pe,"overwrite")||pe.hidden)return;if(pe.type==="table")return ie(me,pe.schema,G);if(pe.fields)return z&&pe.type==="record"?(G[me]={type:"object",model:Ce,schema:{fields:Object.values(ie(me,pe,{},!0))}},G):ie(me,pe,G);if(G[me]={id:me,model:Ce},G[me].type=pe.type==="boolean"?"checkbox":"input",G[me].required=pe.required,G[me].referenceable=pe.referenceable,me.startsWith("config-"))if(!z&&pe.type==="array"&&(I.value=me),z&&I.value&&me.startsWith(I.value)){const be=me.slice(I.value.length+1);G[me].label=be.split("-").map(c).join(".")}else G[me].label=c(me);if((K==="config"||K.startsWith("config-"))&&(pt=J[Ce])!=null&&pt.description&&(G[me].help=Nr.marked.parse(J[Ce].description,{mangle:!1,headerIds:!1})),pe.type==="map"){if(G[me].type="object-advanced",G[me].values=pe.values,pe.values.type==="array"){const{type:be}=pe.values.elements||{};G[me].schema={fields:[{schema:{fields:[{...Me,model:me,valueArrayType:be==="integer"?"number":be||"string",inputAttributes:{...Me.inputAttributes,type:be==="integer"?"number":"text",inputMode:be==="integer"?"numeric":"text"}}]}}]}}else pe.values.fields&&(G[me].schema={fields:[{type:"object",model:"object",schema:{fields:pe.values.fields.map(be=>{const Se=Object.keys(be)[0];return{model:Se,type:"input",label:f(Se),placeholder:Se,inputType:be[Se].type}})}}]});return G}if(pe.enum&&pe.type==="array"&&(G[me].type="checklist",G[me].values=pe.enum,G[me].multi=!0,G[me].multiSelect=!0),pe.one_of&&pe.type!=="array"&&(G[me].type="select",G[me].values=pe.one_of,G[me].selectOptions={noneSelectedText:a("plugins.form.no_selection")}),pe.elements&&pe.type==="array"){const be=pe.elements;if(G[me].referenceable=be.referenceable,G[me].elements=be,["string","integer","number"].includes(be.type)&&!be.one_of){const{id:Se,help:Oe,label:xe,hint:Ve,values:$e,referenceable:Ue,model:Re}=G[me],{inputAttributes:We,...no}=JSON.parse(JSON.stringify(Me));We.type=be.type==="string"?"text":"number",G[me]={id:Se,help:Oe,label:xe,hint:Ve,values:$e,referenceable:Ue,model:Re,inputAttributes:We,...no}}}if(pe.hint&&(G[me].hint=pe.hint),de&&!de.overwriteDefault&&Object.keys(de).forEach(be=>{if(be===me){const{help:Se,label:Oe,hint:xe,values:Ve,referenceable:$e,elements:Ue}=G[me],{help:Re,...We}=de[be];G[me]={help:Se,label:Oe,hint:xe,values:Ve,referenceable:$e,elements:Ue,...We},typeof Re=="string"&&(G[me].help=Nr.marked.parse(Re,{mangle:!1,headerIds:!1}))}}),pe.type==="array"&&((dn=pe.elements)==null?void 0:dn.type)==="record"&&Array.isArray(pe.elements.fields)){let be={};for(const Oe of pe.elements.fields)be={...be,...Oe};const Se=(ke=(Pe=(fe=G[me])==null?void 0:fe.items)==null?void 0:Pe.schema)==null?void 0:ke.fields;if(Array.isArray(Se))for(const Oe of G[me].items.schema.fields){const xe=(we=be[Oe.model])==null?void 0:we.description;Oe.help===void 0&&typeof xe=="string"&&(Oe.help=Nr.marked.parse(xe,{mangle:!1,headerIds:!1}))}if(Se||(G[me].type="array",G[me].newElementButtonLabelClasses="kong-form-new-element-button-label",G[me].fieldClasses="array-card-container-wrapper",G[me].itemContainerComponent="FieldArrayCardContainer",G[me].items={type:"object",schema:{fields:Object.values(ie(me,pe.elements,{},!0))}},G[me].items.schema.fields.forEach(Oe=>{var xe,Ve;for(const $e of pe.elements.fields){const Ue=Object.keys($e)[0],Re=((Ve=(xe=Oe.id)==null?void 0:xe.split)==null?void 0:Ve.call(xe,"-"))??[];if(Re[Re.length-1]===Ue){Oe.model=Ue,Oe.label=c(Ue);break}}}),pe.elements.type==="record"&&(G[me].nestedFields=!0)),!G[me].nestedFields)G[me].items.default=()=>pe.elements.fields.reduce((Oe,xe)=>{const Ve=Object.keys(xe)[0];return Oe[Ve]=xe[Ve].default,Oe},{});else{const Oe=(xe,Ve)=>{if(xe.type==="object"){xe.model&&(Ve[xe.model]={});for(const $e of xe.schema.fields)Oe($e,xe.model?Ve[xe.model]:Ve)}else xe.model&&(Ve[xe.model]=xe.default)};G[me].items.default=()=>{const xe={};return Oe(G[me].items,xe),xe}}}if(k.value&&_e){for(let be=0;be<_e.length;be++)if(_e[be][me]){G[me]={...G[me],..._e[be][me]};break}}if(pe.required&&pe.type!=="boolean"&&(G[me].required=!0,G[me].selectOptions={hideNoneSelectedText:!0}),pe.required&&pe.type==="boolean"&&(G[me].default=pe.default??!1),pe.default!=null&&typeof pe.default!="object"&&pe.default!=="function"&&(G[me].default=pe.default),G[me].type==="input"){["string","number"].includes(typeof G[me].default)&&r.config.app==="konnect"&&(G[me].placeholder=`Default: ${G[me].default===""?"<empty string>":G[me].default}`);const{type:be}=pe.elements||{};be&&(G[me].valueArrayType=be==="integer"?"number":be),G[me].inputType=pe.type==="array"||pe.type==="string"?pe.encrypted?"password":"text":pe.type}let He="string";pe.enum?He=oe(pe.enum):pe.type==="boolean"?He="boolean":pe.type==="number"||pe.type==="integer"?(He="number",G[me].inputType="number"):pe.type==="array"?(He="array",G[me].default=pe.default,pe.len_min>0&&(G[me].submitWhenNull=!0)):pe.type==="foreign"?He="object":pe.default&&Array.isArray(pe.default)?(He="array",G[me].valueArrayType=oe(pe.default)):pe.default&&(He=typeof pe.default),G[me].valueType=He,pe.fieldNameHasDashes&&(G[me].fieldNameHasDashes=!0)}),G},M=()=>{var me,He,st,pt,dn,fe,Pe,ke,we,be,Se,Oe;const K=((me=St[r.pluginType])==null?void 0:me.scope.includes(Z.PluginScope.SERVICE))??!0,le=((He=St[r.pluginType])==null?void 0:He.scope.includes(Z.PluginScope.ROUTE))??!0,G=((st=St[r.pluginType])==null?void 0:st.scope.includes(Z.PluginScope.CONSUMER))??!0,z=r.config.disableConsumerGroupScope?!1:((pt=St[r.pluginType])==null?void 0:pt.scope.includes(Z.PluginScope.CONSUMER_GROUP))??!0,J=r.config.entityType==="consumers"&&!!r.config.entityId||!!((fe=(dn=b.value)==null?void 0:dn.consumer)!=null&&fe.id),de=r.config.entityType==="consumer_groups"&&!!r.config.entityId||!!((ke=(Pe=b.value)==null?void 0:Pe.consumer_group)!=null&&ke.id),_e=r.config.entityType==="services"&&!!r.config.entityId||!!((be=(we=b.value)==null?void 0:we.service)!=null&&be.id),Q=r.config.entityType==="routes"&&!!r.config.entityId||!!((Oe=(Se=b.value)==null?void 0:Se.route)!=null&&Oe.id),he=[],Ce=(xe,Ve,$e)=>xe?a("plugins.form.disable_source_scope_change",{scope:$e}):Ve?a("plugins.form.disable_data_retrieving",{scope:$e}):"",pe=xe=>{var Ve,$e;return(($e=(Ve=r.scopedEntitiesPermissions)==null?void 0:Ve[xe])==null?void 0:$e.canRetrieve)===!1};if(K){const xe=pe("service"),Ve="services",$e=_e&&r.disableScopeSelection;he.push({id:"service-id",model:"service-id",label:a("plugins.form.scoping.gateway_service.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",labelField:"name",entity:Ve,inputValues:{fields:["name","id"]},help:a("plugins.form.scoping.gateway_service.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(le){const xe=pe("route"),Ve="routes",$e=Q&&r.disableScopeSelection;he.push({id:"route-id",model:"route-id",label:a("plugins.form.scoping.route.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,labelField:"name",inputValues:{fields:["name","id"],primaryField:"id"},help:a("plugins.form.scoping.route.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(G){const xe=pe("consumer"),Ve="consumers",$e=J&&r.disableScopeSelection;he.push({model:"consumer-id",label:a("plugins.form.scoping.consumer.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,labelField:"username",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:a("plugins.form.scoping.consumer.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(z){const xe=pe("consumer_group"),Ve="consumer_groups",$e=de&&r.disableScopeSelection;he.push({model:"consumer_group-id",label:a("plugins.form.scoping.consumer_group.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,entityDataKey:"consumer_group",labelField:"name",inputValues:{fields:["name","id"],primaryField:"name"},help:a("plugins.form.scoping.consumer_group.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(he.length){const xe=[...K?["service"]:[],...le?["route"]:[],...G?["consumer"]:[],...z?["consumer_group"]:[]],$e=xe.splice(xe.length-2,2).map(Re=>a(Re==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${Re}.plural`)).join(`${xe.length>0?",":""} and/or `),Ue=["Specific",[...xe.length>0?[xe.map(Re=>a(Re==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${Re}.plural`)).join(", ")]:[],$e].join(", ")].join(" ");U.selectionGroup.fields.push({label:a("plugins.form.scoping.label"),description:Ue,fields:[]}),U.selectionGroup.fields[1].fields=he}l[r.pluginType]&&l[r.pluginType].overwriteDefault&&Object.hasOwnProperty.call(l[r.pluginType],"formSchema")&&Object.assign(U,l[r.pluginType].formSchema)},L=t.computed(()=>!u(v.fields,A,!0)),O=t.computed(()=>!ne.value&&!x.value&&(_.value===ye.EntityBaseFormType.Create||L.value)),R=t.ref(!1),H=t.ref(),te=K=>{r.credential&&K.password&&(K.password=""),v.fields.id=(K==null?void 0:K.id)||void 0,H.value=K==null?void 0:K.ordering,Object.assign(A,v.fields),b.value=K,R.value=!0},W=t.ref({}),j=K=>{var le;v.fields=K.model,v.fields.id=((le=b.value)==null?void 0:le.id)||void 0,Object.assign(A,K.originalModel),W.value=K.data,r.isWizardStep&&o("model-updated",{model:v.fields,data:K.data,resourceEndpoint:B.value})},se=t.ref(new Map),ue=t.computed(()=>[v.clientErrorMessage,v.serverErrorMessage].filter(Boolean).join("; ")),ge=K=>{K.valid?se.value.delete(K.model):se.value.set(K.model,K.error),v.clientErrorMessage=[...se.value.entries()].map(([le,G])=>`${le}: ${typeof G=="string"?G:d(G)}`).join("; "),v.clientErrorMessage&&(v.serverErrorMessage="")};t.watch([S,R],(K,le)=>{const G=K[0]!==le[0],z=K[1],J=le[1];if(!k.value&&_.value===ye.EntityBaseFormType.Edit&&(G||z&&z!==J)){const de=ie("config",N.value,U);ae.value&&(de._isCustomPlugin=!0),E.value&&(de._supported_redis_partial_type=E.value),h.value=de}},{deep:!0});const re=()=>{r.config.cancelRoute?i.push(r.config.cancelRoute):o("cancel")},q=t.computed(()=>{const K=r.config.entityType&&r.config.entityId&&!r.developer,le=k.value?Xe.form[r.config.app].credential[_.value]:Xe.form[r.config.app][_.value][K?"forEntity":"all"];let G=`${r.config.apiBaseUrl}${le}`;return r.config.app==="konnect"?G=G.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(G=G.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),G=G.replace(/{resourceEndpoint}/gi,B.value),G=G.replace(/{id}/gi,r.pluginId),G=G.replace(/{entityType}/gi,r.config.entityType||""),G=G.replace(/{entityId}/gi,r.config.entityId||""),G}),ae=t.computed(()=>!Object.keys(St).includes(r.pluginType)),ce=t.computed(()=>{const K=W.value;if(k.value){for(const le in Z.PluginScope){const G=Z.PluginScope[le];K[G]&&!K[G].id&&(K[G]={id:r.config.entityId})}delete K.created_at}return W.value.partials&&C.value&&rd(K,C.value),K}),$=t.computed(()=>{const{__ui_data:K,...le}={...ce.value};return le}),P=async()=>{if(!v.clientErrorMessage&&!r.isWizardStep)try{v.isReadonly=!0;let K;const le=JSON.parse(JSON.stringify(ce.value)),G=l[r.pluginType];typeof(G==null?void 0:G.shamefullyTransformPayload)=="function"&&G.shamefullyTransformPayload({originalModel:A,model:v.fields,payload:le,schema:h.value}),_.value==="create"?K=await p.post(q.value,le):_.value==="edit"&&(K=r.config.app==="konnect"||E.value&&le.partials?await p.put(q.value,Object.assign({ordering:H.value},le)):await p.patch(q.value,le)),Object.assign(A,v.fields),o("update",K==null?void 0:K.data)}catch(K){v.serverErrorMessage=d(K),o("error",K)}finally{v.isReadonly=!1}},V=t.computed(()=>{var z;const K=k.value?(z=io[r.pluginType])==null?void 0:z.schemaEndpoint:r.pluginType,le=k.value?Xe.form[r.config.app].credentialSchema:Xe.form[r.config.app].pluginSchema;let G=`${r.config.apiBaseUrl}${le}`;return r.config.app==="konnect"?G=G.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(G=G.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),G=G.replace(/{plugin}/gi,K),G}),D=t.ref(""),ne=t.ref(!1),X=t.ref("");return t.onBeforeMount(async()=>{var K,le,G,z;ne.value=!0;try{if(k.value&&r.config.app==="konnect"){const J=(K=io[r.pluginType])==null?void 0:K.schemaEndpoint,de=Og[J];D.value=J,h.value=ie("",de,{}),ne.value=!1}else{const J=r.schema??(await p.get(V.value)).data;if(y.value=J,J)if(k.value)h.value=ie("",J,{}),ne.value=!1;else{const de=J.fields.find(Q=>Q.config);N.value=de?de.config:J,J.supported_partials&&(E.value=Object.keys(J.supported_partials).find(Q=>[Sr.REDIS_CE,Sr.REDIS_EE].includes(Q)),C.value=(le=J.supported_partials[E.value])==null?void 0:le[0]),M();const _e=(G=J.fields.find(Q=>Q.protocols))==null?void 0:G.protocols;if(_e){const{default:Q=[],elements:he={}}=_e;U.protocols.default=Q,U.protocols.placeholder=r.config.app==="konnect"?a("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:Q.join(", ")}):a("plugins.form.fields.protocols.placeholder"),(z=he.one_of)!=null&&z.length&&(U.protocols.values=he.one_of.map(Ce=>({label:Ce,value:Ce})))}if(R.value||_.value===ye.EntityBaseFormType.Create){const Q=ie("config",N.value,U);E.value&&(Q._supported_redis_partial_type=E.value),ae.value&&(Q._isCustomPlugin=!0),h.value=Q}}}}catch(J){console.error(J),X.value=d(J),o("error:fetch-schema",J)}finally{ne.value=!1}}),(K,le)=>{const G=t.resolveComponent("KSkeleton"),z=t.resolveComponent("KEmptyState"),J=t.resolveComponent("KButton"),de=t.resolveComponent("KTabs"),_e=t.resolveComponent("KSlideout");return t.openBlock(),t.createElementBlock("div",zM,[ne.value?(t.openBlock(),t.createBlock(G,{key:0,type:"form"})):X.value?(t.openBlock(),t.createBlock(z,{key:1,"action-button-visible":!1,"data-testid":"plugin-form-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(t.unref(a)("errors.load_schema")),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ye.EntityBaseForm),{key:2,"can-submit":O.value,config:e.config,"edit-id":e.pluginId,"entity-type":t.unref(ye.SupportedEntityType).Plugin,"error-message":ue.value,"fetch-url":w.value,"form-fields":ce.value,"is-readonly":v.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:re,"onFetch:error":le[4]||(le[4]=Q=>K.$emit("error",Q)),"onFetch:success":te,onLoading:le[5]||(le[5]=Q=>K.$emit("loading",Q))},{"form-actions":t.withCtx(()=>[e.isWizardStep?(t.openBlock(),t.createElementBlock("div",HM)):(t.openBlock(),t.createBlock(qM,{key:1,"teleport-target":e.actionsTeleportTarget},{default:t.withCtx(()=>[t.createElementVNode("div",YM,[e.hideViewConfigAction?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(J,{key:0,appearance:"tertiary","data-testid":`plugin-${g.value?"edit":"create"}-form-view-configuration`,onClick:le[3]||(le[3]=Q=>F())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),t.createVNode(J,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${g.value?"edit":"create"}-form-cancel`,disabled:v.isReadonly,onClick:re},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),t.createVNode(J,{appearance:"primary","data-testid":`plugin-${g.value?"edit":"create"}-form-submit`,disabled:!O.value||v.isReadonly,type:"submit",onClick:P},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:t.withCtx(()=>[t.createElementVNode("form",{hidden:"",onSubmit:P},null,32),t.createVNode(jM,{config:e.config,credential:k.value,editing:_.value===t.unref(ye.EntityBaseFormType).Edit,"enable-redis-partial":e.enableRedisPartial,"enable-vault-secret-picker":r.enableVaultSecretPicker,engine:e.engine,"entity-map":S.value,"raw-schema":y.value,record:b.value,schema:h.value,onGlobalAction:le[0]||(le[0]=(Q,he)=>K.$emit("globalAction",Q,he)),onLoading:le[1]||(le[1]=Q=>x.value=Q),onModelUpdated:j,onShowNewPartialModal:le[2]||(le[2]=Q=>K.$emit("showNewPartialModal",Q)),onValidityChange:ge},null,8,["config","credential","editing","enable-redis-partial","enable-vault-secret-picker","engine","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"])),t.createVNode(_e,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:t.unref(a)("view_configuration.title"),visible:m.value,onClose:F},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("view_configuration.message")),1),t.createVNode(de,{"data-testid":"form-view-configuration-slideout-tabs",tabs:T.value},{json:t.withCtx(()=>[t.createVNode(t.unref(ye.JsonCodeBlock),{config:e.config,"entity-record":$.value,"fetcher-url":q.value,"request-method":r.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:t.withCtx(()=>[t.createVNode(t.unref(ye.YamlCodeBlock),{"entity-record":$.value},null,8,["entity-record"])]),terraform:t.withCtx(()=>[t.createVNode(t.unref(ye.TerraformCodeBlock),{"credential-type":D.value,"entity-record":$.value,"entity-type":t.unref(ye.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),_:1},8,["tabs"])]),_:1},8,["title","visible"])])}}}),[["__scopeId","data-v-b9713619"]]),XM={class:"kong-ui-entities-plugins-list"},ZM={class:"button-row"},JM={class:"name-cell-wrapper"},QM={class:"info-wrapper"},e2={key:0,class:"info-name"},t2={key:1,class:"info-name"},n2={key:2,class:"info-type"},o2={key:1},r2=Ae(t.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:n}){var D,ne;const o=Ke.usePluginMetaData(),r=n,i=e,{i18n:{t:a}}=Ke.useI18n(),l=oo.useRouter(),{axiosInstance:s}=ye.useAxios((D=i.config)==null?void 0:D.axiosRequestConfig),{hasRecords:c,handleStateChange:d}=ye.useTableState(()=>b.value),f=t.computed(()=>c.value&&i.config.app==="konnect"),u=t.computed(()=>!!i.config.entityId),p=t.computed(()=>{var X;return((X=i.config)==null?void 0:X.entityType)==="consumers"}),m=t.computed(()=>{var X;return((X=i.config)==null?void 0:X.entityType)==="consumer_groups"}),g=i.config.app==="konnect"||ye.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),_=t.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),y={name:{label:a("plugins.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1}};(ne=i.config)!=null&&ne.entityId||(y.appliedTo={label:a("plugins.list.table_headers.applied_to"),sortable:!1}),y.enabled={label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},g&&(y.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),y.tags={label:a("plugins.list.table_headers.tags"),sortable:!1};const h=y,k=t.computed(()=>{var Y,K,le,G;let X=i.config.entityType?`${i.config.apiBaseUrl}${Xe.list[i.config.app].forEntity}`:`${i.config.apiBaseUrl}${Xe.list[i.config.app].all}`;return i.config.app==="konnect"?X=X.replace(/{controlPlaneId}/gi,((Y=i.config)==null?void 0:Y.controlPlaneId)||""):i.config.app==="kongManager"&&(X=X.replace(/\/{workspace}/gi,(K=i.config)!=null&&K.workspace?`/${i.config.workspace}`:"")),X.replace(/{entityType}/gi,((le=i.config)==null?void 0:le.entityType)||"").replace(/{entityId}/gi,((G=i.config)==null?void 0:G.entityId)||"")}),b=t.ref(""),N=t.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:y.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:{...y.enabled,label:a("search.filter.field.enabled")},name:y.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),{fetcher:E,fetcherState:C,fetcherCacheKey:x}=ye.useFetcher(t.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier})),k),A=()=>{b.value=""},v=()=>{x.value++},T=t.ref(null),I=X=>{var K,le,G,z;const Y=[];return((K=X.route)!=null&&K.id||X.route_id)&&Y.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),((le=X.service)!=null&&le.id||X.service_id)&&Y.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),((G=X.consumer)!=null&&G.id||X.consumer_id)&&Y.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),((z=X.consumer_group)!=null&&z.id||X.consumer_group_id)&&Y.push({type:"consumer_group",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer_group")}),Y.length?Y:[{type:null,badgeText:a("plugins.list.table_headers.applied_to_badges.global")}]},w=async(X,Y)=>{var K;return X===null?!1:await((K=i.canRetrieveScopedEntity)==null?void 0:K.call(i,X,Y.id))},F=(X,Y)=>{var le,G,z,J,de;let K=null;switch(X){case"route":K=(le=Y.route)==null?void 0:le.id;break;case"service":K=(G=Y.service)==null?void 0:G.id;break;case"consumer":K=(z=Y.consumer)==null?void 0:z.id;break;case"consumer_group":K=(J=Y.consumer_group)==null?void 0:J.id;break}K&&((de=i.config)!=null&&de.getScopedEntityViewRoute)&&l.push(i.config.getScopedEntityViewRoute(X,K))},S=t.ref(!1),U=t.ref(null),B=t.computed(()=>{const X={action:"disable",id:"",name:""};if(U.value){const{enabled:Y,id:K,name:le}=U.value;X.action=Y?"disable":"enable",X.id=K,X.name=o.getDisplayName(le)||K}return X}),oe=X=>{S.value=!0,U.value=X},ie=()=>{S.value=!1,U.value=null},M=async()=>{var le,G,z,J,de,_e,Q,he;if(!await((le=i.canEdit)==null?void 0:le.call(i,U.value))||!U.value)return;let Y=`${i.config.apiBaseUrl}${(de=Xe.item[i.config.app])==null?void 0:de[(G=i.config)!=null&&G.entityType?"forEntity":"all"].replace(/{entityType}/gi,((z=i.config)==null?void 0:z.entityType)||"").replace(/{entityId}/gi,((J=i.config)==null?void 0:J.entityId)||"")}`.replace(/{id}/gi,U.value.id||"");i.config.app==="konnect"?Y=Y.replace(/{controlPlaneId}/gi,((_e=i.config)==null?void 0:_e.controlPlaneId)||""):i.config.app==="kongManager"&&(Y=Y.replace(/\/{workspace}/gi,(Q=i.config)!=null&&Q.workspace?`/${i.config.workspace}`:""));const K=!U.value.enabled;try{const Ce=(he=i.config)==null?void 0:he.app;let pe;b.value&&Ce==="konnect"&&(pe=await s.get(Y));const{data:me}=Ce==="konnect"?await s.put(Y,{...(pe==null?void 0:pe.data)||U.value,enabled:K},{timeout:12e4}):await s.patch(Y,{...U.value,enabled:K},{timeout:12e4});r("toggle-enabled",K,me),U.value.enabled=K}catch(Ce){r("error",Ce)}},L=async(X,Y)=>{const K=X.id;if(!await Y(K)){r("copy:error",{entity:X,field:"id",message:a("errors.copy")});return}r("copy:success",{entity:X,field:"id",message:a("copy.success",{val:K})})},O=async(X,Y)=>{const K=JSON.stringify(X);if(!await Y(K)){r("copy:error",{entity:X,message:a("errors.copy")});return}r("copy:success",{entity:X,message:a("copy.success_brief")})},R=async X=>{var K;await((K=i.canRetrieve)==null?void 0:K.call(i,X))&&l.push(i.config.getViewRoute(X))},H=X=>({label:a("actions.view"),to:i.config.getViewRoute(X)}),te=X=>({label:a("actions.edit"),to:i.config.getEditRoute(X)}),W=X=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(X)}),j=t.ref(void 0),se=t.ref(!1),ue=t.ref(!1),ge=t.ref(""),re=ye.useDeleteUrlBuilder(i.config,k.value),q=X=>{j.value=X,se.value=!0},ae=()=>{se.value=!1},ce=async()=>{var X,Y,K;if((X=j.value)!=null&&X.id){ue.value=!0;try{await s.delete(re(j.value.id)),ue.value=!1,se.value=!1,x.value++,r("delete:success",j.value)}catch(le){ge.value=((K=(Y=le.response)==null?void 0:Y.data)==null?void 0:K.message)||le.message||a("errors.delete"),r("error",le)}finally{ue.value=!1}}},$=()=>{l.push(i.config.createRoute)};t.watch(C,X=>{var Y,K,le;if(X.status===ye.FetcherStatus.Error){T.value={title:a("errors.general")},(le=(K=(Y=X.error)==null?void 0:Y.response)==null?void 0:K.data)!=null&&le.message&&(T.value.message=X.error.response.data.message),r("error",X.error);return}T.value=null});const P=t.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")}),V=t.ref(!1);return t.onBeforeMount(async()=>{V.value=await i.canCreate(),V.value&&(P.value.title=a("plugins.list.empty_state.title"),P.value.ctaText=a("actions.create"))}),(X,Y)=>{const K=t.resolveComponent("KButton"),le=t.resolveComponent("KEmptyState"),G=t.resolveComponent("KBadge"),z=t.resolveComponent("KTruncate"),J=t.resolveComponent("KInputSwitch"),de=t.resolveComponent("KDropdownItem"),_e=t.resolveComponent("KClipboardProvider");return t.openBlock(),t.createElementBlock("div",XM,[t.createVNode(t.unref(ye.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"disable-sorting":_.value,"empty-state-options":P.value,"enable-entity-actions":"","error-message":T.value,fetcher:t.unref(E),"fetcher-cache-key":t.unref(x),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:b.value,"table-headers":t.unref(h),title:e.title,"title-tag":e.titleTag,onClearSearchInput:A,"onClick:row":Y[4]||(Y[4]=Q=>R(Q)),onSort:v,onState:t.unref(d)},t.createSlots({"toolbar-filter":t.withCtx(()=>[t.createVNode(t.unref(ye.EntityFilter),{modelValue:b.value,"onUpdate:modelValue":Y[0]||(Y[0]=Q=>b.value=Q),config:N.value},null,8,["modelValue","config"])]),"toolbar-button":t.withCtx(()=>[(t.openBlock(),t.createBlock(t.Teleport,{disabled:!e.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[t.createElementVNode("div",ZM,[!u.value&&f.value?(t.openBlock(),t.createBlock(K,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:Y[1]||(Y[1]=Q=>X.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.BookIcon),{decorative:""})]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:t.withCtx(()=>[t.createVNode(K,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.toolbar_actions.new_plugin")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:t.withCtx(({row:Q})=>[t.createElementVNode("div",JM,[t.createVNode(t.unref($o.PluginIcon),{class:"plugin-icon",name:Q.name,size:24},null,8,["name"]),t.createElementVNode("div",QM,[Q.instance_name?(t.openBlock(),t.createElementBlock("span",e2,t.toDisplayString(Q.instance_name),1)):(t.openBlock(),t.createElementBlock("span",t2,t.toDisplayString(t.unref(o).getDisplayName(Q.name)),1)),Q.instance_name?(t.openBlock(),t.createElementBlock("span",n2,t.toDisplayString(t.unref(o).getDisplayName(Q.name)),1)):t.createCommentVNode("",!0)])])]),appliedTo:t.withCtx(({row:Q})=>[I(Q).length>0?(t.openBlock(),t.createBlock(z,{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(I(Q),he=>(t.openBlock(),t.createBlock(t.unref(ye.PermissionsWrapper),{key:he.badgeText,"auth-function":()=>w(he.type,Q),"force-show":""},{default:t.withCtx(({isAllowed:Ce})=>[t.createVNode(G,{class:t.normalizeClass(Ce||"disabled"),onClick:t.withModifiers(pe=>Ce&&he.type&&F(he.type,Q),["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(he.badgeText),1)]),_:2},1032,["class","onClick"])]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(t.openBlock(),t.createElementBlock("span",o2,"-"))]),enabled:t.withCtx(({row:Q})=>[t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":async()=>!!(await e.canEdit(Q)&&await e.canToggle(Q)),"force-show":""},{default:t.withCtx(({isAllowed:he})=>{var Ce,pe;return[t.createElementVNode("div",{onClick:Y[3]||(Y[3]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(J,{disabled:!he,"disabled-tooltip-text":!he&&((pe=(Ce=e.config).getToggleDisabledTooltip)==null?void 0:pe.call(Ce,Q))||void 0,"model-value":Q.enabled,onClick:t.withModifiers(me=>he&&oe(Q),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]}),_:2},1032,["auth-function"])]),ordering:t.withCtx(({rowValue:Q})=>[t.createVNode(G,{appearance:t.unref(ed)(Q)?"info":"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(ed)(Q)?t.unref(a)("plugins.list.table_headers.ordering_badge.static"):t.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)]),_:2},1032,["appearance"])]),tags:t.withCtx(({rowValue:Q})=>[t.createVNode(t.unref(ye.TableTags),{tags:Q},null,8,["tags"])]),actions:t.withCtx(({row:Q})=>[t.createVNode(_e,null,{default:t.withCtx(({copyToClipboard:he})=>[t.createVNode(de,{"data-testid":"action-entity-copy-id",onClick:Ce=>L(Q,he)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(_e,null,{default:t.withCtx(({copyToClipboard:he})=>[t.createVNode(de,{"data-testid":"action-entity-copy-json",onClick:Ce=>O(Q,he)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(Q)},{default:t.withCtx(()=>[t.createVNode(de,{"data-testid":"action-entity-view","has-divider":"",item:H(Q)},null,8,["item"])]),_:2},1032,["auth-function"]),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canEdit(Q)},{default:t.withCtx(()=>[t.createVNode(de,{"data-testid":"action-entity-edit",item:te(Q)},null,8,["item"])]),_:2},1032,["auth-function"]),!p.value&&!m.value&&t.unref(g)?(t.openBlock(),t.createBlock(t.unref(ye.PermissionsWrapper),{key:0,"auth-function":()=>e.canConfigureDynamicOrdering(Q)},{default:t.withCtx(()=>[W(Q)?(t.openBlock(),t.createBlock(de,{key:0,"data-testid":"action-entity-config-dyn-order",item:W(Q)},null,8,["item"])):t.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canDelete(Q)},{default:t.withCtx(()=>[t.createVNode(de,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:he=>q(Q)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!b.value&&e.config.app==="konnect"?{name:"empty-state",fn:t.withCtx(()=>{var Q;return[t.createVNode(le,{"data-testid":e.config.entityId?"nested-plugins-entity-empty-state":"plugins-entity-empty-state","icon-background":"",message:t.unref(a)("plugins.list.empty_state_v2.description"),title:t.unref(a)("plugins.list.empty_state_v2.title")},t.createSlots({icon:t.withCtx(()=>[t.createVNode(t.unref(ve.PlugIcon),{decorative:""})]),action:t.withCtx(()=>[V.value?(t.openBlock(),t.createBlock(K,{key:0,"data-testid":"entity-create-button",onClick:$},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.create_cta")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(K,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:Y[2]||(Y[2]=he=>X.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[(Q=e.config)!=null&&Q.isControlPlaneGroup?{name:"default",fn:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["data-testid","message","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"]),t.createVNode(t.unref(ye.EntityToggleModal),{action:B.value.action,"entity-id":B.value.id,"entity-name":B.value.name,"entity-type":t.unref(a)("glossary.plugin"),"on-confirm":M,visible:S.value,onCancel:ie,onProceed:ie},null,8,["action","entity-id","entity-name","entity-type","visible"]),t.createVNode(t.unref(ye.EntityDeleteModal),{"action-pending":ue.value,description:t.unref(a)("delete.description"),"entity-name":j.value&&(j.value.instance_name||j.value.name||j.value.id),"entity-type":t.unref(ye.EntityTypes).Plugin,error:ge.value,title:t.unref(a)("delete.title"),visible:se.value,onCancel:ae,onProceed:ce},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-25799614"]]),i2={class:"plugin-select-card-wrapper"},a2=["data-testid"],l2={class:"plugin-card-header"},s2={class:"plugin-card-title"},c2={key:0,class:"plugin-card-actions"},d2=["data-testid","title"],u2={key:0,class:"plugin-card-text"},f2={key:0},p2=["title"],vs=Ae(t.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:n}){const o=n,r=e,i=oo.useRouter(),{i18n:{t:a}}=Ke.useI18n(),l=t.computed(()=>r.config.app==="konnect"?r.config.controlPlaneId:""),s=t.computed(()=>!!(!r.plugin.available||r.plugin.disabledMessage)),c=t.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=t.computed(()=>r.plugin.id==="custom-plugin-create"),m=t.computed(()=>r.config.app==="konnect"&&r.plugin.group===Z.PluginGroup.CUSTOM_PLUGINS),g=()=>{r.config.app==="konnect"&&o("custom-plugin-delete")},_=(h,k)=>{const b=r.config;r.config.app==="konnect"&&typeof b.getCustomEditRoute=="function"&&b.getCustomEditRoute&&i.push(b.getCustomEditRoute(h,k))},y=()=>{if(!s.value&&r.config.app==="konnect"){const h=r.config;p.value&&h.createCustomRoute?i.push(h.createCustomRoute):m.value&&d()}};return(h,k)=>{const b=t.resolveComponent("KButton"),N=t.resolveComponent("KDropdownItem"),E=t.resolveComponent("KDropdownMenu"),C=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",i2,[t.createVNode(C,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createElementVNode("a",{class:t.normalizeClass(["plugin-select-card",{disabled:s.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:k[1]||(k[1]=x=>s.value||m.value?void 0:f())},[t.createElementVNode("div",l2,[t.createElementVNode("div",s2,[t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!m.value})},t.toDisplayString(e.plugin.name),3)]),c.value?(t.openBlock(),t.createElementBlock("div",c2,[t.createVNode(E,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:t.withCtx(()=>[t.createVNode(b,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{size:t.unref(Bu)},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[e.canDeleteCustomPlugin?(t.openBlock(),t.createBlock(N,{key:0,"data-testid":"edit-plugin-schema",onClick:k[0]||(k[0]=t.withModifiers(x=>_(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),e.canDeleteCustomPlugin?(t.openBlock(),t.createBlock(N,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":"",onClick:t.withModifiers(g,["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1})):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:t.normalizeClass(["plugin-card-body",{"custom-plugin":m.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip"),onClick:y},[t.createVNode(t.unref($o.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?(t.openBlock(),t.createElementBlock("div",u2,[m.value&&!p.value?(t.openBlock(),t.createElementBlock("p",f2,t.toDisplayString(t.unref(a)("plugins.select.custom_badge_text")),1)):t.createCommentVNode("",!0),e.plugin.description?(t.openBlock(),t.createElementBlock("p",{key:1,class:"plugin-card-text",title:e.plugin.description},t.toDisplayString(e.plugin.description),9,p2)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],10,d2),t.createElementVNode("div",{class:"plugin-card-footer",onClick:y},t.toDisplayString(p.value?t.unref(a)("actions.create_custom"):e.plugin.exists?t.unref(a)("actions.enabled"):t.unref(a)("actions.enable")),1)],10,a2)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-65d53934"]]),m2=Ae(t.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:n}){var g;const o=e,r=n,{i18nT:i,i18n:{t:a}}=Ke.useI18n(),{getMessageFromError:l}=ye.useErrors(),{axiosInstance:s}=ye.useAxios((g=o.config)==null?void 0:g.axiosRequestConfig),c=t.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=t.ref(!1),f=t.ref(""),u=t.ref(!1),p=t.computed(()=>{if(o.config.app==="konnect"){const _=o.plugin.customPluginType==="streaming"?Xe.select[o.config.app].streamingCustomPluginItem:Xe.select[o.config.app].schemaCustomPluginItem;let y=`${o.config.apiBaseUrl}${_}`;return y=y.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),y=y.replace(/{pluginId}/gi,o.plugin.id),y}return null}),m=async()=>{var _,y,h,k;if(d.value=!0,f.value="",!(!((_=o.plugin)!=null&&_.name)||((y=o.config)==null?void 0:y.app)!=="konnect"))try{p.value&&await s.delete(p.value),r("proceed")}catch(b){const{response:N}=b;(N==null?void 0:N.status)===400&&((k=(h=N.data)==null?void 0:h.message)!=null&&k.includes("plugin schema is currently in use"))?u.value=!0:f.value=l(b)}finally{d.value=!1}};return(_,y)=>{const h=t.resolveComponent("KButton"),k=t.resolveComponent("KModal");return!u.value&&e.plugin?(t.openBlock(),t.createBlock(t.unref(ye.EntityDeleteModal),{key:0,"action-pending":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:t.unref(a)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":t.unref(ye.EntityTypes).Plugin,error:f.value,"need-confirm":"",title:c.value,visible:"",onCancel:y[0]||(y[0]=b=>_.$emit("closed")),onProceed:m},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(t.openBlock(),t.createBlock(k,{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:y[2]||(y[2]=b=>_.$emit("closed"))},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(t.unref(i),{keypath:"delete.plugin_schema_in_use_message",tag:"p"},{name:t.withCtx(()=>[t.createElementVNode("strong",null,t.toDisplayString(e.plugin.name),1)]),_:1})])]),"footer-actions":t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(h,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:y[1]||(y[1]=b=>_.$emit("closed"))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):t.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9e0dee7f"]]),g2={class:"custom-plugins-grid"},h2={class:"empty-state-title"},y2={class:"empty-state-description"},As=310,_2=Ae(t.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:n}){const o=e,r=n,{i18n:{t:i}}=Ke.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:l}=Ke.usePluginHelpers(),s=t.ref(!0),c=E=>{r("plugin-clicked",E)},d=t.computed(()=>{if(o.config.app==="kongManager")return[];const E=JSON.parse(JSON.stringify(o.pluginList))[Z.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:Z.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(E):E}),f=t.ref(!1),u=t.ref(null),p=E=>{f.value=!0,u.value={id:E.id,name:E.name,customPluginType:E.customPluginType}},m=E=>{var C;E&&(r("revalidate"),r("delete:success",((C=u.value)==null?void 0:C.name)||"")),f.value=!1,u.value=null},g=t.ref(As),_=t.ref(null),y=t.ref(null),h=t.computed(()=>s.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),k=t.ref(!1),b=()=>{g.value=Math.max(a(y.value),As),N()},N=()=>{var E,C;(E=y.value)!=null&&E.length&&(k.value=l(_.value,(C=y.value)==null?void 0:C.length))};return t.onMounted(async()=>{await t.nextTick(),g.value=Math.max(a(y.value),As),N(),window==null||window.addEventListener("resize",b)}),t.onUnmounted(()=>{window==null||window.removeEventListener("resize",b)}),(E,C)=>{const x=t.resolveComponent("KEmptyState"),A=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock("div",g2,[d.value.length?(t.openBlock(),t.createBlock(A,{key:1,modelValue:s.value,"onUpdate:modelValue":C[0]||(C[0]=v=>s.value=v),class:"custom-plugins-collapse","data-testid":`${t.unref(Z.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:t.unref(Z.PluginGroup).CUSTOM_PLUGINS,"trigger-label":s.value?t.unref(i)("plugins.select.view_more"):t.unref(i)("plugins.select.view_less")},t.createSlots({"visible-content":t.withCtx(()=>[t.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:_,class:"plugin-card-container",style:t.normalizeStyle(h.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(v,T)=>(t.openBlock(),t.createBlock(vs,{key:`plugin-card-${T}`,ref_for:!0,ref_key:"pluginCardRef",ref:y,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:v,onCustomPluginDelete:I=>p(v),onPluginClicked:c},null,8,["can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[k.value?void 0:{name:"trigger",fn:t.withCtx(()=>[C[2]||(C[2]=t.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(t.openBlock(),t.createBlock(x,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",h2,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",y2,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),f.value&&u.value?(t.openBlock(),t.createBlock(m2,{key:2,config:e.config,plugin:u.value,onClosed:m,onProceed:C[1]||(C[1]=v=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-f4b90f47"]]),Is=310,gg=Ae(t.defineComponent({__name:"PluginSelectGroup",props:t.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:t.mergeModels(["plugin-clicked"],["update:modelValue"]),setup(e,{emit:n}){const o=t.useModel(e,"modelValue"),r=e,i=n,{i18n:{t:a}}=Ke.useI18n(),{getTallestPluginCardHeight:l,getToggleVisibility:s}=Ke.usePluginHelpers(),c=t.ref(Is),d=t.ref(null),f=t.ref(null),u=t.computed(()=>o.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=t.ref(!1),m=()=>{c.value=Math.max(l(f.value),Is),g()},g=()=>{var _,y;(_=f.value)!=null&&_.length&&(p.value=s(d.value,(y=f.value)==null?void 0:y.length))};return t.onMounted(async()=>{await t.nextTick(),c.value=Math.max(l(f.value),Is),g(),window==null||window.addEventListener("resize",m)}),t.onUnmounted(()=>{window==null||window.removeEventListener("resize",m)}),(_,y)=>{const h=t.resolveComponent("KCollapse");return t.openBlock(),t.createBlock(h,{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=k=>o.value=k),class:"plugins-collapse","data-testid":`${r.name}-collapse`,title:r.name,"trigger-label":o.value?t.unref(a)("plugins.select.view_more"):t.unref(a)("plugins.select.view_less")},t.createSlots({"visible-content":t.withCtx(()=>[t.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:d,class:"plugin-card-container",style:t.normalizeStyle(u.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.plugins,k=>(t.openBlock(),t.createBlock(vs,{key:`plugin-card-${k.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:f,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:k,onPluginClicked:b=>i("plugin-clicked",k)},null,8,["config","navigate-on-click","plugin","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:t.withCtx(()=>[y[1]||(y[1]=t.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])}}}),[["__scopeId","data-v-a1074120"]]),b2={class:"plugin-select-grid"},w2={class:"empty-state-title"},k2={class:"empty-state-description"},Ps=t.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:n}){const o=e,r=n,{i18n:{t:i}}=Ke.useI18n(),a=t.ref(!1),l=t.ref(Rs),s=d=>{r("plugin-clicked",d)},c=t.computed(()=>{const d=JSON.parse(JSON.stringify(o.pluginList));return o.config.app==="konnect"&&delete d[Z.PluginGroup.CUSTOM_PLUGINS],d});return(d,f)=>{const u=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",b2,[Object.keys(c.value).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(u,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",w2,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",k2,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!o.hideHighlightedPlugins&&o.highlightedPlugins.length>0?(t.openBlock(),t.createBlock(gg,{key:1,modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=p=>a.value=p),config:e.config,name:o.highlightedPluginsTitle||t.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"])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Vs),p=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[c.value[p]?(t.openBlock(),t.createElementBlock("div",{key:p},[t.createVNode(gg,{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"])])):t.createCommentVNode("",!0)],64))),256))])}}}),C2={class:"kong-ui-entities-plugin-select-form"},E2={class:"plugins-filter-input-container"},N2={key:0},x2={key:3,"aria-live":"polite",class:"plugins-results-container"},S2={"data-testid":"kong-tab"},v2={class:"tab-description"},A2={"data-testid":"custom-tab"},I2={class:"tab-description"},P2=Ae(t.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:n}){var L;const o=e,r=n,i=oo.useRoute(),a=oo.useRouter(),{i18n:{t:l}}=Ke.useI18n(),{pluginMetaData:s}=Ke.usePluginMetaData(),{getMessageFromError:c}=ye.useErrors(),{sortAlpha:d,objectsAreEqual:f}=ye.useHelpers(),u=t.ref(""),p=t.ref(!0),m=t.ref(!1),g=t.ref(""),_=t.ref([]),y=t.ref([]),h=t.ref({}),k=t.ref([]),{axiosInstance:b}=ye.useAxios((L=o.config)==null?void 0:L.axiosRequestConfig),N=t.computed(()=>h.value?Object.entries(h.value).filter(([O])=>O!==Z.PluginGroup.CUSTOM_PLUGINS).reduce((O,[,R])=>{for(const H of R)O[H.id]=H;return O},{}):{}),E=t.computed(()=>{var H;if(!h.value)return{};const O=u.value.toLowerCase(),R=JSON.parse(JSON.stringify(h.value));for(const te in h.value){const W=((H=h.value[te])==null?void 0:H.filter(j=>j.name.toLowerCase().includes(O)||j.id.toLowerCase().includes(O)||j.group.toLowerCase().includes(O)))||[];W.length?R[te]=W:delete R[te]}return R}),C=t.computed(()=>o.highlightedPluginIds.reduce((O,R)=>{const H=N.value[R];return H&&O.push(H),O},[])),x=t.computed(()=>Object.keys(E.value).length>0),A=t.computed(()=>Object.keys(h.value).length>0&&!x.value),v=t.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)}]:[]),T=t.computed(()=>{var R;let O=v.value.length&&((i==null?void 0:i.hash)||((R=v.value[0])==null?void 0:R.hash))||"";return O==="#custom"&&["none","disabled"].includes(o.customPluginSupport)&&(O="#kong"),O}),I=()=>[...new Set([...Object.keys({...o.availableOnServer?{}:s}),..._.value])].filter(O=>!o.ignoredPlugins.includes(O)).filter(O=>o.config.entityType&&(o.config.entityType==="services"&&s[O]&&!s[O].scope.includes(Z.PluginScope.SERVICE)||o.config.entityType==="routes"&&s[O]&&!s[O].scope.includes(Z.PluginScope.ROUTE)||o.config.entityType==="consumer_groups"&&s[O]&&!s[O].scope.includes(Z.PluginScope.CONSUMER_GROUP)||o.config.entityType==="consumers"&&s[O]&&!s[O].scope.includes(Z.PluginScope.CONSUMER))?!1:O).reduce((O,R)=>{var se;const H=s[R]&&s[R].name||R,te={...s[R],id:R,name:H,available:_.value.includes(R),disabledMessage:"",group:((se=s[R])==null?void 0:se.group)||Z.PluginGroup.CUSTOM_PLUGINS};te.group===Z.PluginGroup.CUSTOM_PLUGINS&&(te.customPluginType=y.value.find(ue=>ue.name===R)?"streaming":"schema"),o.disabledPlugins&&(te.disabledMessage=o.disabledPlugins[R]);const W=te.group||l("plugins.select.misc_plugins");let j=O[W];return j||(j=[]),j.push(te),j.sort(d("name")),O[W]=j,O},{}),w=t.computed(()=>{var R;let O=`${o.config.apiBaseUrl}${Xe.select[o.config.app].availablePlugins}`;return o.config.app==="konnect"?O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&(O=((R=o.config.gatewayInfo)==null?void 0:R.edition)==="community"?`${o.config.apiBaseUrl}${Xe.select[o.config.app].availablePluginsForOss}`:O.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),O}),F=t.computed(()=>{if(o.config.app==="konnect"&&o.customPluginSupport==="streaming"){let O=`${o.config.apiBaseUrl}${Xe.select[o.config.app].streamingCustomPlugins}`;return O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),O}return null}),S=t.computed(()=>{if(o.config.entityType&&o.config.entityId){let O=`${o.config.apiBaseUrl}${Xe.list[o.config.app].forEntity}`;return o.config.app==="konnect"?O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&(O=O.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),O.replace(/{entityType}/gi,o.config.entityType||"").replace(/{entityId}/gi,o.config.entityId||"")}return""}),U=O=>{a.replace({hash:O,query:i.query})};t.watch(()=>o.disabledPlugins,(O,R)=>{!f(O,R)&&!p.value&&(h.value=I())}),t.watch(()=>o.ignoredPlugins,(O,R)=>{!f(O,R)&&!p.value&&(h.value=I())}),t.watch(p,O=>{r("loading",O)});const B=t.ref(!1),oe=t.ref(!1),ie=t.ref(!1);t.onBeforeMount(async()=>{B.value=await o.canCreateCustomPlugin(),oe.value=await o.canEditCustomPlugin(),ie.value=await o.canDeleteCustomPlugin()});const M=t.useTemplateRef("filter-input");return t.onMounted(async()=>{var O,R;(R=(O=M.value)==null?void 0:O.input)==null||R.focus();try{const{data:H}=await b.get(w.value);if(o.config.app==="konnect"){const{names:te}=H;if(_.value=te||[],F.value){const{data:W}=await b.get(F.value);y.value=W.data||[]}}else if(o.config.app==="kongManager"){const{plugins:{available_on_server:te}}=H;_.value=te?Object.keys(te):[]}}catch(H){m.value=!0,g.value=c(H)}if(S.value)try{const{data:{data:H}}=await b.get(S.value);if(H!=null&&H.length){const te=H.reduce((W,j)=>(j.name&&W.push(j.name),W),[]);k.value=k.value.concat(te)}}catch{}m.value||(h.value=I()),p.value=!1}),(O,R)=>{const H=t.resolveComponent("KInput"),te=t.resolveComponent("KSkeletonBox"),W=t.resolveComponent("KSkeleton"),j=t.resolveComponent("KEmptyState"),se=t.resolveComponent("KTooltip"),ue=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",C2,[t.createElementVNode("div",E2,[t.createVNode(H,{ref:"filter-input",modelValue:u.value,"onUpdate:modelValue":R[0]||(R[0]=ge=>u.value=ge),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:t.unref(l)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(t.openBlock(),t.createElementBlock("section",N2,[t.createVNode(te,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(W,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(t.openBlock(),t.createBlock(j,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(g.value),1)]),_:1})):A.value&&u.value?(t.openBlock(),t.createBlock(j,{key:2,"action-button-visible":!1,"data-testid":"plugins-empty-state","icon-variant":"search"},{default:t.withCtx(()=>[t.createElementVNode("h5",null,t.toDisplayString(t.unref(l)("search.no_results",{filter:u.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",x2,[v.value.length&&e.customPluginSupport!=="none"?(t.openBlock(),t.createBlock(ue,{key:0,modelValue:T.value,"onUpdate:modelValue":R[5]||(R[5]=ge=>T.value=ge),"data-testid":"plugins-tabs",tabs:v.value,onChange:U},t.createSlots({kong:t.withCtx(()=>[t.createElementVNode("div",S2,[t.createElementVNode("p",v2,t.toDisplayString(t.unref(l)("plugins.select.tabs.kong.description")),1),t.createVNode(Ps,{config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":C.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,onPluginClicked:R[1]||(R[1]=ge=>O.$emit("plugin-clicked",ge))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:t.withCtx(()=>[t.createElementVNode("div",A2,[t.renderSlot(O.$slots,"before-custom-tab-content",{},void 0,!0),t.createElementVNode("p",I2,t.toDisplayString(t.unref(l)("plugins.select.tabs.custom.description")),1),t.createVNode(_2,{"can-create-custom-plugin":B.value,"can-delete-custom-plugin":ie.value,"can-edit-custom-plugin":oe.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,"onDelete:success":R[2]||(R[2]=ge=>O.$emit("delete-custom:success",ge)),onPluginClicked:R[3]||(R[3]=ge=>O.$emit("plugin-clicked",ge)),onRevalidate:R[4]||(R[4]=()=>h.value=I())},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:t.withCtx(()=>[t.createVNode(se,{"max-width":"300",text:t.unref(l)("plugins.select.tabs.custom.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(l)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(t.openBlock(),t.createBlock(Ps,{key:1,config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":C.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,onPluginClicked:R[6]||(R[6]=ge=>O.$emit("plugin-clicked",ge))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"]))]))])}}}),[["__scopeId","data-v-7b1adaaa"]]),T2={class:"datakit-config-card-canvas"},O2={class:"config-card-details-label","data-testid":"datakit-configuration-label"},$2={class:"config-card-details-value datakit-canvas-container","data-testid":"datakit-configuration-canvas"},B2={class:"canvas-wrapper"},V2=Ae(t.defineComponent({__name:"DatakitConfigCardCanvas",props:{pluginData:{}},setup(e){return Hu(e.pluginData),(n,o)=>{const r=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",T2,[t.createElementVNode("div",O2,[t.createVNode(r,null,{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",{class:"label-content"}," Nodes ",-1)])]),_:1})]),t.createElementVNode("div",$2,[t.createElementVNode("div",B2,[t.createVNode(Cs,{class:"datakit-flow-panels",mode:"view",resizable:""})])])])}}}),[["__scopeId","data-v-591ec060"]]),R2={class:"kong-ui-entity-plugin-config-card"},D2={class:"name-cell-wrapper"},M2={class:"info-name"},L2={key:0},F2={key:0},U2={key:0},K2={key:0},j2={key:0},Ts="config",G2=Ae(t.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:n}){var C;const o=n,r=e,{i18n:{t:i}}=Ke.useI18n(),a=Ke.usePluginMetaData(),{setFieldType:l}=Ke.usePluginHelpers(),{getPropValue:s}=ye.useHelpers(),c=t.computed(()=>r.config.app==="konnect"),d=t.computed(()=>c.value&&r.config.pluginType==="datakit"),f=t.computed(()=>{var A;let x=(A=Xe.item[r.config.app])==null?void 0:A[r.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,r.scopedEntityType).replace(/{entityId}/gi,r.scopedEntityId).concat(r.expandPartial?"?expand_partials=true":"");if(c.value){const v=r.expandPartial?"&":"?";x=x.concat(`${v}__ui_data=true`)}return x}),u=t.computed(()=>{var v,T;const x={},A=((v=b.value)==null?void 0:v.fields)||[];for(let I=0;I<A.length;I++){const w=b.value.fields[I],F=(T=Object.keys(w))==null?void 0:T[0];l(x,F,w[F])}return{...x,instance_name:{section:ye.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:i("plugins.fields.consumer"),section:ye.ConfigurationSchemaSection.Basic,order:6},route:{label:i("plugins.fields.route"),section:ye.ConfigurationSchemaSection.Basic,order:6},service:{label:i("plugins.fields.service"),section:ye.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:i("plugins.fields.consumer_group"),section:ye.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ye.ConfigurationSchemaType.BadgeTag,section:ye.ConfigurationSchemaSection.Basic,order:7}}}),p=t.computed(()=>{var A,v,T;if(!((A=b.value)!=null&&A.fields))return[];const x=(v=b.value.fields)==null?void 0:v.find(I=>{var F;return((F=Object.keys(I))==null?void 0:F[0])===Ts});return((T=x==null?void 0:x[Ts])==null?void 0:T.fields)||[]}),m=t.computed(()=>{var A,v;const x={};if(!p.value)return x;for(let T=0;T<((A=p.value)==null?void 0:A.length);T++){const I=p.value[T],w=(v=Object.keys(I))==null?void 0:v[0],F=I[w];F.required&&(x[w]={order:1}),l(x,w,F)}return x}),g=x=>{var v;const A=(v=a.pluginMetaData[r.config.pluginType])==null?void 0:v.scope;return A?Object.fromEntries(Object.entries(x).filter(([T,I])=>I?!0:!(T==="service"&&!A.includes(Z.PluginScope.SERVICE)||T==="route"&&!A.includes(Z.PluginScope.ROUTE)||T==="consumer"&&!A.includes(Z.PluginScope.CONSUMER)||T==="consumer_group"&&!A.includes(Z.PluginScope.CONSUMER_GROUP)))):x},_=x=>Jt(x,"__ui_data"),{getMessageFromError:y}=ye.useErrors(),{axiosInstance:h}=ye.useAxios((C=r.config)==null?void 0:C.axiosRequestConfig),k=t.computed(()=>{var A,v;let x=`${r.config.apiBaseUrl}${Xe.form[r.config.app].pluginSchema}`;return r.config.app==="konnect"?x=x.replace(/{controlPlaneId}/gi,((A=r.config)==null?void 0:A.controlPlaneId)||""):r.config.app==="kongManager"&&(x=x.replace(/\/{workspace}/gi,(v=r.config)!=null&&v.workspace?`/${r.config.workspace}`:"")),x=x.replace(/{plugin}/gi,r.config.pluginType),x}),b=t.ref({});ye.useSchemaProvider(b);const N=t.ref(!1),E=t.ref("");return t.onBeforeMount(async()=>{N.value=!0;try{const{data:x}=await h.get(k.value);b.value=x}catch(x){E.value=y(x),o("error:fetch-schema",x)}finally{N.value=!1}}),(x,A)=>{const v=t.resolveComponent("KSkeleton"),T=t.resolveComponent("KEmptyState"),I=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",R2,[N.value?(t.openBlock(),t.createBlock(v,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):E.value?(t.openBlock(),t.createBlock(T,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(E.value),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ye.EntityBaseConfigCard),{key:2,"code-block-record-formatter":_,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":u.value,"entity-type":t.unref(ye.SupportedEntityType).Plugin,"fetch-url":f.value,"hide-title":e.hideTitle,"plugin-config-key":Ts,"plugin-config-schema":m.value,"record-resolver":g,"onFetch:error":A[0]||(A[0]=w=>x.$emit("fetch:error",w)),"onFetch:success":A[1]||(A[1]=w=>x.$emit("fetch:success",w)),onLoading:A[2]||(A[2]=w=>x.$emit("loading",w))},t.createSlots({name:t.withCtx(w=>[t.createElementVNode("div",D2,[t.createVNode(t.unref($o.PluginIcon),{class:"plugin-icon",name:t.unref(s)("rowValue",w),size:24},null,8,["name"]),t.createElementVNode("span",M2,t.toDisplayString(t.unref(a).getDisplayName(t.unref(s)("rowValue",w))),1)])]),consumer:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"consumer")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"consumer-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",L2,"–"))]),route:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"route")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"route-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",F2,"–"))]),service:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"service")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"service-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",U2,"–"))]),consumer_group:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"consumer_group")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"consumer-group-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",K2,"–"))]),partials:t.withCtx(w=>{var F,S,U,B,oe,ie,M,L,O;return[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:(S=(F=t.unref(s)("rowValue",w))==null?void 0:F[0])==null?void 0:S.id,value:((B=(U=t.unref(s)("rowValue",w))==null?void 0:U[0])==null?void 0:B.id)+((ie=(oe=t.unref(s)("rowValue",w))==null?void 0:oe[0])!=null&&ie.name?"/"+((L=(M=t.unref(s)("rowValue",w))==null?void 0:M[0])==null?void 0:L.name):""),type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>{var R,H;return x.$emit("navigation-click",(H=(R=t.unref(s)("rowValue",w))==null?void 0:R[0])==null?void 0:H.id,"partial")}},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"partial-copy-uuid",text:(O=t.unref(s)("rowValue",w))==null?void 0:O[0].id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",j2,"–"))]}),_:2},[d.value?{name:"config-card-item-nodes",fn:t.withCtx(w=>[t.createVNode(V2,{"plugin-data":w.record},null,8,["plugin-data"])]),key:"0"}:void 0]),1032,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-a5302acb"]]),{usePluginMetaData:q2,useProvideExperimentalFreeForms:z2}=Ke;Object.defineProperty(Ie,"PluginGroup",{enumerable:!0,get:()=>Z.PluginGroup}),Object.defineProperty(Ie,"PluginScope",{enumerable:!0,get:()=>Z.PluginScope}),Object.defineProperty(Ie,"PluginIcon",{enumerable:!0,get:()=>$o.PluginIcon}),Object.defineProperty(Ie,"getPluginIconURL",{enumerable:!0,get:()=>$o.getPluginIconURL}),Ie.EXPERIMENTAL_FREE_FORM_PROVIDER=Ba,Ie.EntityTypeIdField=Nn,Ie.FEATURE_FLAGS=un,Ie.PLUGIN_GROUPS_COLLAPSE_STATUS=Rs,Ie.PluginConfigCard=G2,Ie.PluginForm=WM,Ie.PluginGroupArray=Vs,Ie.PluginList=r2,Ie.PluginPartialType=Sr,Ie.PluginSelect=P2,Ie.PluginSelectCard=vs,Ie.PluginSelectGrid=Ps,Ie.TOASTER_PROVIDER=id,Ie.pluginEndpoints=Xe,Ie.usePluginMetaData=q2,Ie.useProvideExperimentalFreeForms=z2,Object.defineProperty(Ie,Symbol.toStringTag,{value:"Module"})});
234
+ 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 lt extends Error{constructor(n,...o){var r;super((r=gp[n])==null?void 0:r.call(gp,...o)),this.name="VueFlowError",this.code=n,this.args=o}}function Yl(e){return"clientX"in e}function FA(e){return"sourceEvent"in e}function zt(e,n){const o=Yl(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-((n==null?void 0:n.left)??0),y:i-((n==null?void 0:n.top)??0)}}const Oi=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function UA(e){var n,o;return{width:((n=e.dimensions)==null?void 0:n.width)??e.width??0,height:((o=e.dimensions)==null?void 0:o.height)??e.height??0}}function $i(e,n=[1,1]){return{x:n[0]*Math.round(e.x/n[0]),y:n[1]*Math.round(e.y/n[1])}}const KA=()=>!0;function Wl(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function jA(e,n,o){const r=[],i={x:e.x-o,y:e.y-o,width:o*2,height:o*2};for(const a of n.values())Ii(i,Ai(a))>0&&r.push(a);return r}const GA=250;function qA(e,n,o,r){var i,a;let l=[],s=Number.POSITIVE_INFINITY;const c=jA(e,o,n+GA);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}=vo(d,u,u.position,!0),g=Math.sqrt((p-e.x)**2+(m-e.y)**2);g>n||(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 hp(e,{handle:n,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:c,isValidConnection:d=KA},f,u,p){const m=a==="target",g=n?l.querySelector(`.${s}-flow__handle[data-id="${c}-${n==null?void 0:n.nodeId}-${n==null?void 0:n.id}-${n==null?void 0:n.type}"]`):null,{x:_,y}=zt(e),h=l.elementFromPoint(_,y),k=h!=null&&h.classList.contains(`${s}-flow__handle`)?h:g,b={handleDomNode:k,isValid:!1,connection:null,toHandle:null};if(k){const N=yp(void 0,k),E=k.getAttribute("data-nodeid"),C=k.getAttribute("data-handleid"),x=k.classList.contains("connectable"),A=k.classList.contains("connectableend");if(!E||!N)return b;const v={source:m?E:r,sourceHandle:m?C:i,target:m?r:E,targetHandle:m?i:C};b.connection=v;const I=x&&A&&(o===yn.Strict?m&&N==="source"||!m&&N==="target":E!==r||C!==i);b.isValid=I&&d(v,{nodes:u,edges:f,sourceNode:p(r),targetNode:p(E)}),b.toHandle=n}return b}function yp(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function zA(e,n){let o=null;return n?o="valid":e&&!n&&(o="invalid"),o}function HA(e,n){let o=null;return n?o=!0:e&&!n&&(o=!1),o}function YA(e,n,o,r,i,a=!1){var l,s,c;const d=r.get(e);if(!d)return null;const f=i===yn.Strict?(l=d.handleBounds)==null?void 0:l[n]:[...((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,...vo(d,u,u.position,!0)}:u}const Xl={[Ne.Left]:Ne.Right,[Ne.Right]:Ne.Left,[Ne.Top]:Ne.Bottom,[Ne.Bottom]:Ne.Top},WA=["production","prod"];function Bi(e,...n){_p()&&console.warn(`[Vue Flow]: ${e}`,...n)}function _p(){return!WA.includes(process.env.NODE_ENV||"")}function bp(e,n,o,r,i){const a=n.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,...Pi(l)}}):null}function Zl(e,n,o,r,i,a=!1,l){i.value=!1,e.selected?(a||e.selected&&n)&&(r([e]),t.nextTick(()=>{l.blur()})):o([e])}function tt(e){return typeof t.unref(e)<"u"}function XA(e,n,o,r){if(!e||!e.source||!e.target)return o(new lt(et.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return _n(e)?i=e:i={...e,id:Qf(e)},i=Zf(i,void 0,r),PA(i,n)?!1:i}function ZA(e,n,o,r,i){if(!n.source||!n.target)return i(new lt(et.EDGE_INVALID,e.id)),!1;if(!o)return i(new lt(et.EDGE_NOT_FOUND,e.id)),!1;const{id:a,...l}=e;return{...l,id:r?Qf(n):a,source:n.source,target:n.target,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle}}function wp(e,n,o){const r={},i=[];for(let a=0;a<e.length;++a){const l=e[a];if(!Hn(l)){o(new lt(et.NODE_INVALID,l==null?void 0:l.id)||`[ID UNKNOWN|INDEX ${a}]`);continue}const s=vA(l,n(l.id),l.parentNode);l.parentNode&&(r[l.parentNode]=!0),i[a]=s}for(const a of i){const l=n(a.parentNode)||i.find(s=>s.id===a.parentNode);a.parentNode&&!l&&o(new lt(et.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 kp(e,n,o,r,i,a){let l=i;const s=r.get(l)||new Map;r.set(l,s.set(o,n)),l=`${i}-${e}`;const c=r.get(l)||new Map;if(r.set(l,c.set(o,n)),a){l=`${i}-${e}-${a}`;const d=r.get(l)||new Map;r.set(l,d.set(o,n))}}function Jl(e,n,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}`;kp("source",c,f,e,i,l),kp("target",c,d,e,a,s)}}function Cp(e,n){if(e.size!==n.size)return!1;for(const o of e)if(!n.has(o))return!1;return!0}function Ql(e,n,o,r,i,a,l,s){const c=[];for(const d of e){const f=_n(d)?d:XA(d,s,i,a);if(!f)continue;const u=o(f.source),p=o(f.target);if(!u||!p){i(new lt(et.EDGE_SOURCE_TARGET_MISSING,f.id,f.source,f.target));continue}if(!u){i(new lt(et.EDGE_SOURCE_MISSING,f.id,f.source));continue}if(!p){i(new lt(et.EDGE_TARGET_MISSING,f.id,f.target));continue}if(n&&!n(f,{edges:s,nodes:l,sourceNode:u,targetNode:p})){i(new lt(et.EDGE_INVALID,f.id));continue}const m=r(f.id);c.push({...Zf(f,m,a),sourceNode:u,targetNode:p})}return c}const Ep=Symbol("vueFlow"),Np=Symbol("nodeId"),xp=Symbol("nodeRef"),JA=Symbol("edgeId"),QA=Symbol("edgeRef"),Vi=Symbol("slots");function Sp(e){const{vueFlowRef:n,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:y,removeSelectedElements:h,addSelectedNodes:k,updateNodePositions:b,emits:N}=Le(),{onStart:E,onDrag:C,onStop:x,onClick:A,el:v,disabled:T,id:I,selectable:w,dragHandle:F}=e,S=t.shallowRef(!1);let U=[],B,oe=null,ie={x:void 0,y:void 0},M={x:0,y:0},L=null,O=!1,R=0,H=!1;const te=nI(),W=({x:q,y:ae})=>{ie={x:q,y:ae};let ce=!1;if(U=U.map($=>{const P={x:q-$.distance.x,y:ae-$.distance.y},{computedPosition:V}=Hl($,o.value?$i(P,r.value):P,N.error,l.value,$.parentNode?m($.parentNode):void 0);return ce=ce||$.position.x!==V.x||$.position.y!==V.y,$.position=V,$}),!!ce&&(b(U,!0,!0),S.value=!0,L)){const[$,P]=zl({id:I,dragItems:U,findNode:m});C({event:L,node:$,nodes:P})}},j=()=>{if(!oe)return;const[q,ae]=lp(M,oe,f.value);if(q!==0||ae!==0){const ce={x:(ie.x??0)-q/c.value.zoom,y:(ie.y??0)-ae/c.value.zoom};p({x:q,y:ae})&&W(ce)}R=requestAnimationFrame(j)},se=(q,ae)=>{O=!0;const ce=m(I);!y.value&&!g.value&&ce&&(ce.selected||h()),ce&&t.toValue(w)&&y.value&&Zl(ce,g.value,k,h,_,!1,ae);const $=te(q.sourceEvent);if(ie=$,U=BA(a.value,u.value,$,m,I),U.length){const[P,V]=zl({id:I,dragItems:U,findNode:m});E({event:q.sourceEvent,node:P,nodes:V})}},ue=(q,ae)=>{var ce;q.sourceEvent.type==="touchmove"&&q.sourceEvent.touches.length>1||(s.value===0&&se(q,ae),ie=te(q.sourceEvent),oe=((ce=n.value)==null?void 0:ce.getBoundingClientRect())||null,M=zt(q.sourceEvent,oe))},ge=(q,ae)=>{const ce=te(q.sourceEvent);if(!H&&O&&d.value&&(H=!0,j()),!O){const $=ce.xSnapped-(ie.x??0),P=ce.ySnapped-(ie.y??0);Math.sqrt($*$+P*P)>s.value&&se(q,ae)}(ie.x!==ce.xSnapped||ie.y!==ce.ySnapped)&&U.length&&O&&(L=q.sourceEvent,M=zt(q.sourceEvent,oe),W(ce))},re=q=>{let ae=!1;if(!O&&!S.value&&!g.value){const ce=q.sourceEvent,$=te(ce),P=$.xSnapped-(ie.x??0),V=$.ySnapped-(ie.y??0),D=Math.sqrt(P*P+V*V);D!==0&&D<=s.value&&(A==null||A(ce),ae=!0)}if(U.length&&!ae){b(U,!1,!1);const[ce,$]=zl({id:I,dragItems:U,findNode:m});x({event:q.sourceEvent,node:ce,nodes:$})}U=[],S.value=!1,H=!1,O=!1,ie={x:void 0,y:void 0},cancelAnimationFrame(R)};return t.watch([()=>t.toValue(T),v],([q,ae],ce,$)=>{if(ae){const P=Rt(ae);q||(B=SS().on("start",V=>ue(V,ae)).on("drag",V=>ge(V,ae)).on("end",V=>re(V)).filter(V=>{const D=V.target,ne=t.toValue(F);return!V.button&&(!i.value||!fp(D,`.${i.value}`,ae)&&(!ne||fp(D,ne,ae)))}),P.call(B)),$(()=>{P.on(".drag",null),B&&(B.on("start",null),B.on("drag",null),B.on("end",null))})}}),S}function eI(){return{doubleClick:Ee(),click:Ee(),mouseEnter:Ee(),mouseMove:Ee(),mouseLeave:Ee(),contextMenu:Ee(),updateStart:Ee(),update:Ee(),updateEnd:Ee()}}function tI(e,n){const o=eI();return o.doubleClick.on(r=>{var i,a;n.edgeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;n.edgeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;n.edgeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;n.edgeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;n.edgeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;n.edgeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.updateStart.on(r=>{var i,a;n.edgeUpdateStart(r),(a=(i=e.events)==null?void 0:i.updateStart)==null||a.call(i,r)}),o.update.on(r=>{var i,a;n.edgeUpdate(r),(a=(i=e.events)==null?void 0:i.update)==null||a.call(i,r)}),o.updateEnd.on(r=>{var i,a;n.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 nI(){const{viewport:e,snapGrid:n,snapToGrid:o,vueFlowRef:r}=Le();return i=>{var a;const l=((a=r.value)==null?void 0:a.getBoundingClientRect())??{left:0,top:0},s=FA(i)?i.sourceEvent:i,{x:c,y:d}=zt(s,l),f=gr({x:c,y:d},e.value),{x:u,y:p}=o.value?$i(f,n.value):f;return{xSnapped:u,ySnapped:p,...f}}}function Ri(){return!0}function vp({handleId:e,nodeId:n,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:y,panBy:h,startConnection:k,updateConnection:b,endConnection:N,emits:E,viewport:C,edges:x,nodes:A,isValidConnection:v,nodeLookup:T}=Le();let I=null,w=!1,F=null;function S(B){var oe;const ie=t.toValue(o)==="target",M=Yl(B),L=Xf(B.target);if(M&&B.button===0||!M){let O=function(le){$=zt(le,q),W=qA(gr($,C.value,!1,[1,1]),f.value,T.value,D),P||(V(),P=!0);const G=hp(le,{handle:W,connectionMode:d.value,fromNodeId:t.toValue(n),fromHandleId:t.toValue(e),fromType:ie?"target":"source",isValidConnection:te,doc:L,lib:"vue",flowId:s,nodeLookup:T.value},x.value,A.value,y);F=G.handleDomNode,I=G.connection,w=HA(!!W,G.isValid);const z={...K,isValid:w,to:G.toHandle&&w?Gl({x:G.toHandle.x,y:G.toHandle.y},C.value):$,toHandle:G.toHandle,toPosition:w&&G.toHandle?G.toHandle.position:Xl[D.position],toNode:G.toHandle?T.value.get(G.toHandle.nodeId):null};if(!(w&&W&&(K!=null&&K.toHandle)&&z.toHandle&&K.toHandle.type===z.toHandle.type&&K.toHandle.nodeId===z.toHandle.nodeId&&K.toHandle.id===z.toHandle.id&&K.to.x===z.to.x&&K.to.y===z.to.y)){if(b(W&&w?Gl({x:W.x,y:W.y},C.value):$,G.toHandle,zA(!!W,w)),K=z,!W&&!w&&!F)return Wl(ce);I&&I.source!==I.target&&F&&(Wl(ce),ce=F,F.classList.add("connecting","vue-flow__handle-connecting"),F.classList.toggle("valid",!!w),F.classList.toggle("vue-flow__handle-valid",!!w))}},R=function(le){(W||F)&&I&&w&&(a?a(le,I):E.connect(I)),E.connectEnd(le),i&&(l==null||l(le)),Wl(ce),cancelAnimationFrame(j),N(le),P=!1,w=!1,I=null,F=null,L.removeEventListener("mousemove",O),L.removeEventListener("mouseup",R),L.removeEventListener("touchmove",O),L.removeEventListener("touchend",R)};const H=y(t.toValue(n));let te=t.toValue(r)||v.value||Ri;!te&&H&&(te=(ie?H.isValidSourcePos:H.isValidTargetPos)||Ri);let W,j=0;const{x:se,y:ue}=zt(B),ge=L==null?void 0:L.elementFromPoint(se,ue),re=yp(t.toValue(i),ge),q=(oe=c.value)==null?void 0:oe.getBoundingClientRect();if(!q||!re)return;const ae=YA(t.toValue(n),re,t.toValue(e),T.value,d.value);if(!ae)return;let ce,$=zt(B,q),P=!1;const V=()=>{if(!g.value)return;const[le,G]=lp($,q,_.value);h({x:le,y:G}),j=requestAnimationFrame(V)},D={...ae,nodeId:t.toValue(n),type:re,position:ae.position},ne=T.value.get(t.toValue(n)),Y={inProgress:!0,isValid:null,from:vo(ne,D,Ne.Left,!0),fromHandle:D,fromPosition:D.position,fromNode:ne,to:$,toHandle:null,toPosition:Xl[D.position],toNode:null};k({nodeId:t.toValue(n),id:t.toValue(e),type:re,position:(ge==null?void 0:ge.getAttribute("data-handlepos"))||Ne.Top,...$},{x:se-q.left,y:ue-q.top}),E.connectStart({event:B,nodeId:t.toValue(n),handleId:t.toValue(e),handleType:re});let K=Y;L.addEventListener("mousemove",O),L.addEventListener("mouseup",R),L.addEventListener("touchmove",O),L.addEventListener("touchend",R)}}function U(B){var oe,ie;if(!u.value)return;const M=t.toValue(o)==="target";if(!p.value){E.clickConnectStart({event:B,nodeId:t.toValue(n),handleId:t.toValue(e)}),k({nodeId:t.toValue(n),type:t.toValue(o),id:t.toValue(e),position:Ne.Top,...zt(B)},void 0,!0);return}let L=t.toValue(r)||v.value||Ri;const O=y(t.toValue(n));if(!L&&O&&(L=(M?O.isValidSourcePos:O.isValidTargetPos)||Ri),O&&(typeof O.connectable>"u"?m.value:O.connectable)===!1)return;const R=Xf(B.target),H=hp(B,{handle:{nodeId:t.toValue(n),id:t.toValue(e),type:t.toValue(o),position:Ne.Top,...zt(B)},connectionMode:d.value,fromNodeId:p.value.nodeId,fromHandleId:p.value.id??null,fromType:p.value.type,isValidConnection:L,doc:R,lib:"vue",flowId:s,nodeLookup:T.value},x.value,A.value,y),te=((oe=H.connection)==null?void 0:oe.source)===((ie=H.connection)==null?void 0:ie.target);H.isValid&&H.connection&&!te&&E.connect(H.connection),E.clickConnectEnd(B),N(B,!0)}return{handlePointerDown:S,handleClick:U}}function oI(){return t.inject(Np,"")}function Ap(e){const n=e??oI()??"",o=t.inject(xp,t.ref(null)),{findNode:r,edges:i,emits:a}=Le(),l=r(n);return l||a.error(new lt(et.NODE_NOT_FOUND,n)),{id:n,nodeEl:o,node:l,parentNode:t.computed(()=>r(l.parentNode)),connectedEdges:t.computed(()=>op([l],i.value))}}function rI(){return{doubleClick:Ee(),click:Ee(),mouseEnter:Ee(),mouseMove:Ee(),mouseLeave:Ee(),contextMenu:Ee(),dragStart:Ee(),drag:Ee(),dragStop:Ee()}}function iI(e,n){const o=rI();return o.doubleClick.on(r=>{var i,a;n.nodeDoubleClick(r),(a=(i=e.events)==null?void 0:i.doubleClick)==null||a.call(i,r)}),o.click.on(r=>{var i,a;n.nodeClick(r),(a=(i=e.events)==null?void 0:i.click)==null||a.call(i,r)}),o.mouseEnter.on(r=>{var i,a;n.nodeMouseEnter(r),(a=(i=e.events)==null?void 0:i.mouseEnter)==null||a.call(i,r)}),o.mouseMove.on(r=>{var i,a;n.nodeMouseMove(r),(a=(i=e.events)==null?void 0:i.mouseMove)==null||a.call(i,r)}),o.mouseLeave.on(r=>{var i,a;n.nodeMouseLeave(r),(a=(i=e.events)==null?void 0:i.mouseLeave)==null||a.call(i,r)}),o.contextMenu.on(r=>{var i,a;n.nodeContextMenu(r),(a=(i=e.events)==null?void 0:i.contextMenu)==null||a.call(i,r)}),o.dragStart.on(r=>{var i,a;n.nodeDragStart(r),(a=(i=e.events)==null?void 0:i.dragStart)==null||a.call(i,r)}),o.drag.on(r=>{var i,a;n.nodeDrag(r),(a=(i=e.events)==null?void 0:i.drag)==null||a.call(i,r)}),o.dragStop.on(r=>{var i,a;n.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 Ip(){const{getSelectedNodes:e,nodeExtent:n,updateNodePositions:o,findNode:r,snapGrid:i,snapToGrid:a,nodesDraggable:l,emits:s}=Le();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 y of e.value)if(y.draggable||l&&typeof y.draggable>"u"){const h={x:y.computedPosition.x+m,y:y.computedPosition.y+g},{computedPosition:k}=Hl(y,h,s.error,n.value,y.parentNode?r(y.parentNode):void 0);_.push({id:y.id,position:k,from:y.position,distance:{x:c.x,y:c.y},dimensions:y.dimensions})}o(_,!0,!1)}}const es=.1,aI=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function kn(){return Bi("Viewport not initialized yet."),Promise.resolve(!1)}const lI={zoomIn:kn,zoomOut:kn,zoomTo:kn,fitView:kn,setCenter:kn,fitBounds:kn,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:kn,setTransform:kn,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function sI(e){function n(r,i){return new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((i==null?void 0:i.interpolate)==="linear"?ir:_i).scaleBy(ts(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}=Wf({x:-r,y:-i},e.translateExtent),u=xo.translate(-d,-f).scale(a);e.d3Selection&&e.d3Zoom?(c=e.d3Zoom)==null||c.interpolate((l==null?void 0:l.interpolate)==="linear"?ir:_i).transform(ts(e.d3Selection,l==null?void 0:l.duration,l==null?void 0:l.ease,()=>{s(!0)}),u):s(!1)})}return t.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>n(1.2,i),zoomOut:i=>n(1/1.2,i),zoomTo:(i,a)=>new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate((a==null?void 0:a.interpolate)==="linear"?ir:_i).scaleTo(ts(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:es,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=tp(s),{x:d,y:f,zoom:u}=rp(c,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??es,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:es})=>{const{x:l,y:s,zoom:c}=rp(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,a.padding);return o(l,s,c,a)},project:i=>gr(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 gr(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 Gl(s,e.viewport)}return{x:0,y:0}}}:lI)}function ts(e,n=0,o=aI,r=()=>{}){const i=typeof n=="number"&&n>0;return i||r(),i?e.transition().duration(n).ease(o).on("end",r):e}function cI(e,n,o){const r=t.effectScope(!0);return r.run(()=>{const i=()=>{r.run(()=>{let _,y,h=!!(o.nodes.value.length||o.edges.value.length);_=wo([e.modelValue,()=>{var k,b;return(b=(k=e.modelValue)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setElements(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.nodes,o.edges,()=>o.edges.value.length,()=>o.nodes.value.length],([k,b])=>{var N;(N=e.modelValue)!=null&&N.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...k,...b],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},a=()=>{r.run(()=>{let _,y,h=!!o.nodes.value.length;_=wo([e.nodes,()=>{var k,b;return(b=(k=e.nodes)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setNodes(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.nodes,()=>o.nodes.value.length],([k])=>{var b;(b=e.nodes)!=null&&b.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...k],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},l=()=>{r.run(()=>{let _,y,h=!!o.edges.value.length;_=wo([e.edges,()=>{var k,b;return(b=(k=e.edges)==null?void 0:k.value)==null?void 0:b.length}],([k])=>{k&&Array.isArray(k)&&(y==null||y.pause(),o.setEdges(k),!y&&!h&&k.length?h=!0:y==null||y.resume())}),y=wo([o.edges,()=>o.edges.value.length],([k])=>{var b;(b=e.edges)!=null&&b.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...k],t.nextTick(()=>{_==null||_.resume()}))},{immediate:h}),t.onScopeDispose(()=>{_==null||_.stop(),y==null||y.stop()})})},s=()=>{r.run(()=>{t.watch(()=>n.maxZoom,()=>{n.maxZoom&&tt(n.maxZoom)&&o.setMaxZoom(n.maxZoom)},{immediate:!0})})},c=()=>{r.run(()=>{t.watch(()=>n.minZoom,()=>{n.minZoom&&tt(n.minZoom)&&o.setMinZoom(n.minZoom)},{immediate:!0})})},d=()=>{r.run(()=>{t.watch(()=>n.translateExtent,()=>{n.translateExtent&&tt(n.translateExtent)&&o.setTranslateExtent(n.translateExtent)},{immediate:!0})})},f=()=>{r.run(()=>{t.watch(()=>n.nodeExtent,()=>{n.nodeExtent&&tt(n.nodeExtent)&&o.setNodeExtent(n.nodeExtent)},{immediate:!0})})},u=()=>{r.run(()=>{t.watch(()=>n.applyDefault,()=>{tt(n.applyDefault)&&(o.applyDefault.value=n.applyDefault)},{immediate:!0})})},p=()=>{r.run(()=>{const _=async y=>{let h=y;typeof n.autoConnect=="function"&&(h=await n.autoConnect(y)),h!==!1&&o.addEdges([h])};t.watch(()=>n.autoConnect,()=>{tt(n.autoConnect)&&(o.autoConnect.value=n.autoConnect)},{immediate:!0}),t.watch(o.autoConnect,(y,h,k)=>{y?o.onConnect(_):o.hooks.value.connect.off(_),k(()=>{o.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const y of Object.keys(n)){const h=y;if(!_.includes(h)){const k=t.toRef(()=>n[h]),b=o[h];t.isRef(b)&&r.run(()=>{t.watch(k,N=>{tt(N)&&(b.value=N)},{immediate:!0})})}}};(()=>{i(),a(),l(),c(),s(),d(),f(),u(),p(),m()})()}),()=>r.stop()}function dI(){return{edgesChange:Ee(),nodesChange:Ee(),nodeDoubleClick:Ee(),nodeClick:Ee(),nodeMouseEnter:Ee(),nodeMouseMove:Ee(),nodeMouseLeave:Ee(),nodeContextMenu:Ee(),nodeDragStart:Ee(),nodeDrag:Ee(),nodeDragStop:Ee(),nodesInitialized:Ee(),miniMapNodeClick:Ee(),miniMapNodeDoubleClick:Ee(),miniMapNodeMouseEnter:Ee(),miniMapNodeMouseMove:Ee(),miniMapNodeMouseLeave:Ee(),connect:Ee(),connectStart:Ee(),connectEnd:Ee(),clickConnectStart:Ee(),clickConnectEnd:Ee(),paneReady:Ee(),init:Ee(),move:Ee(),moveStart:Ee(),moveEnd:Ee(),selectionDragStart:Ee(),selectionDrag:Ee(),selectionDragStop:Ee(),selectionContextMenu:Ee(),selectionStart:Ee(),selectionEnd:Ee(),viewportChangeStart:Ee(),viewportChange:Ee(),viewportChangeEnd:Ee(),paneScroll:Ee(),paneClick:Ee(),paneContextMenu:Ee(),paneMouseEnter:Ee(),paneMouseMove:Ee(),paneMouseLeave:Ee(),edgeContextMenu:Ee(),edgeMouseEnter:Ee(),edgeMouseMove:Ee(),edgeMouseLeave:Ee(),edgeDoubleClick:Ee(),edgeClick:Ee(),edgeUpdateStart:Ee(),edgeUpdate:Ee(),edgeUpdateEnd:Ee(),updateNodeInternals:Ee(),error:Ee(e=>Bi(e.message))}}function uI(e,n){t.onBeforeMount(()=>{for(const[o,r]of Object.entries(n.value)){const i=a=>{e(o,a)};r.fns.add(i),ai(()=>{r.off(i)})}})}function Pp(){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:Kl.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:fr.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:qn.Bezier,style:{}},connectionMode:yn.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:Oi()?"Meta":"Control",zoomActivationKeyCode:Oi()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:dI(),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 fI=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function pI(e,n,o){const r=sI(e),i=$=>{const P=$??[];e.hooks.updateNodeInternals.trigger(P)},a=$=>IA($,e.nodes,e.edges),l=$=>AA($,e.nodes,e.edges),s=$=>op($,e.edges),c=({id:$,type:P,nodeId:V})=>{var D;return Array.from(((D=e.connectionLookup.get(`${V}-${P}-${$??null}`))==null?void 0:D.values())??[])},d=$=>{if($)return n.value.get($)},f=$=>{if($)return o.value.get($)},u=($,P,V)=>{var D,ne;const X=[];for(const Y of $){const K={id:Y.id,type:"position",dragging:V,from:Y.from};if(P&&(K.position=Y.position,Y.parentNode)){const le=d(Y.parentNode);K.position={x:K.position.x-(((D=le==null?void 0:le.computedPosition)==null?void 0:D.x)??0),y:K.position.y-(((ne=le==null?void 0:le.computedPosition)==null?void 0:ne.y)??0)}}X.push(K)}X!=null&&X.length&&e.hooks.nodesChange.trigger(X)},p=$=>{if(!e.vueFlowRef)return;const P=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!P)return;const V=window.getComputedStyle(P),{m22:D}=new window.DOMMatrixReadOnly(V.transform),ne=[];for(const X of $){const Y=X,K=d(Y.id);if(K){const le=Pi(Y.nodeElement);if(!!(le.width&&le.height&&(K.dimensions.width!==le.width||K.dimensions.height!==le.height||Y.forceUpdate))){const z=Y.nodeElement.getBoundingClientRect();K.dimensions=le,K.handleBounds.source=bp("source",Y.nodeElement,z,D,K.id),K.handleBounds.target=bp("target",Y.nodeElement,z,D,K.id),ne.push({id:K.id,type:"dimensions",dimensions:le})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&r.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),ne.length&&e.hooks.nodesChange.trigger(ne)},m=($,P)=>{const V=new Set,D=new Set;for(const Y of $)Hn(Y)?V.add(Y.id):_n(Y)&&D.add(Y.id);const ne=wn(n.value,V,!0),X=wn(o.value,D);if(e.multiSelectionActive){for(const Y of V)ne.push(bn(Y,P));for(const Y of D)X.push(bn(Y,P))}ne.length&&e.hooks.nodesChange.trigger(ne),X.length&&e.hooks.edgesChange.trigger(X)},g=$=>{if(e.multiSelectionActive){const P=$.map(V=>bn(V.id,!0));e.hooks.nodesChange.trigger(P);return}e.hooks.nodesChange.trigger(wn(n.value,new Set($.map(P=>P.id)),!0)),e.hooks.edgesChange.trigger(wn(o.value))},_=$=>{if(e.multiSelectionActive){const P=$.map(V=>bn(V.id,!0));e.hooks.edgesChange.trigger(P);return}e.hooks.edgesChange.trigger(wn(o.value,new Set($.map(P=>P.id)))),e.hooks.nodesChange.trigger(wn(n.value,new Set,!0))},y=$=>{m($,!0)},h=$=>{const V=($||e.nodes).map(D=>(D.selected=!1,bn(D.id,!1)));e.hooks.nodesChange.trigger(V)},k=$=>{const V=($||e.edges).map(D=>(D.selected=!1,bn(D.id,!1)));e.hooks.edgesChange.trigger(V)},b=$=>{if(!$||!$.length)return m([],!1);const P=$.reduce((V,D)=>{const ne=bn(D.id,!1);return Hn(D)?V.nodes.push(ne):V.edges.push(ne),V},{nodes:[],edges:[]});P.nodes.length&&e.hooks.nodesChange.trigger(P.nodes),P.edges.length&&e.hooks.edgesChange.trigger(P.edges)},N=$=>{var P;(P=e.d3Zoom)==null||P.scaleExtent([$,e.maxZoom]),e.minZoom=$},E=$=>{var P;(P=e.d3Zoom)==null||P.scaleExtent([e.minZoom,$]),e.maxZoom=$},C=$=>{var P;(P=e.d3Zoom)==null||P.translateExtent($),e.translateExtent=$},x=$=>{e.nodeExtent=$,i()},A=$=>{var P;(P=e.d3Zoom)==null||P.clickDistance($)},v=$=>{e.nodesDraggable=$,e.nodesConnectable=$,e.elementsSelectable=$},T=$=>{const P=$ instanceof Function?$(e.nodes):$;!e.initialized&&!P.length||(e.nodes=wp(P,d,e.hooks.error.trigger))},I=$=>{const P=$ instanceof Function?$(e.edges):$;if(!e.initialized&&!P.length)return;const V=Ql(P,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);Jl(e.connectionLookup,o.value,V),e.edges=V},w=$=>{const P=$ instanceof Function?$([...e.nodes,...e.edges]):$;!e.initialized&&!P.length||(T(P.filter(Hn)),I(P.filter(_n)))},F=$=>{let P=$ instanceof Function?$(e.nodes):$;P=Array.isArray(P)?P:[P];const V=wp(P,d,e.hooks.error.trigger),D=[];for(const ne of V)D.push(cp(ne));D.length&&e.hooks.nodesChange.trigger(D)},S=$=>{let P=$ instanceof Function?$(e.edges):$;P=Array.isArray(P)?P:[P];const V=Ql(P,e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),D=[];for(const ne of V)D.push(cp(ne));D.length&&e.hooks.edgesChange.trigger(D)},U=($,P=!0,V=!1)=>{const D=$ instanceof Function?$(e.nodes):$,ne=Array.isArray(D)?D:[D],X=[],Y=[];function K(G){const z=s(G);for(const J of z)(!tt(J.deletable)||J.deletable)&&Y.push(up(J.id,J.source,J.target,J.sourceHandle,J.targetHandle))}function le(G){const z=[];for(const J of e.nodes)J.parentNode===G&&z.push(J);if(z.length){for(const J of z)X.push(dp(J.id));P&&K(z);for(const J of z)le(J.id)}}for(const G of ne){const z=typeof G=="string"?d(G):G;z&&(tt(z.deletable)&&!z.deletable||(X.push(dp(z.id)),P&&K([z]),V&&le(z.id)))}Y.length&&e.hooks.edgesChange.trigger(Y),X.length&&e.hooks.nodesChange.trigger(X)},B=$=>{const P=$ instanceof Function?$(e.edges):$,V=Array.isArray(P)?P:[P],D=[];for(const ne of V){const X=typeof ne=="string"?f(ne):ne;X&&(tt(X.deletable)&&!X.deletable||D.push(up(typeof ne=="string"?ne:ne.id,X.source,X.target,X.sourceHandle,X.targetHandle)))}e.hooks.edgesChange.trigger(D)},oe=($,P,V=!0)=>{const D=f($.id);if(!D)return!1;const ne=e.edges.indexOf(D),X=ZA($,P,D,V,e.hooks.error.trigger);if(X){const[Y]=Ql([X],e.isValidConnection,d,f,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((K,le)=>le===ne?Y:K),Jl(e.connectionLookup,o.value,[Y]),Y}return!1},ie=($,P,V={replace:!1})=>{const D=f($);if(!D)return;const ne=typeof P=="function"?P(D):P;D.data=V.replace?ne:{...D.data,...ne}},M=$=>sp($,e.nodes),L=$=>{const P=sp($,e.edges);return Jl(e.connectionLookup,o.value,P),P},O=($,P,V={replace:!1})=>{const D=d($);if(!D)return;const ne=typeof P=="function"?P(D):P;V.replace?e.nodes.splice(e.nodes.indexOf(D),1,ne):Object.assign(D,ne)},R=($,P,V={replace:!1})=>{const D=d($);if(!D)return;const ne=typeof P=="function"?P(D):P;D.data=V.replace?ne:{...D.data,...ne}},H=($,P,V=!1)=>{V?e.connectionClickStartHandle=$:e.connectionStartHandle=$,e.connectionEndHandle=null,e.connectionStatus=null,P&&(e.connectionPosition=P)},te=($,P=null,V=null)=>{e.connectionStartHandle&&(e.connectionPosition=$,e.connectionEndHandle=P,e.connectionStatus=V)},W=($,P)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,P?e.connectionClickStartHandle=null:e.connectionStartHandle=null},j=$=>{const P=SA($),V=P?null:mr($)?$:d($.id);return!P&&!V?[null,null,P]:[P?$:Ai(V),V,P]},se=($,P=!0,V=e.nodes)=>{const[D,ne,X]=j($);if(!D)return[];const Y=[];for(const K of V||e.nodes){if(!X&&(K.id===ne.id||!K.computedPosition))continue;const le=Ai(K),G=Ii(le,D);(P&&G>0||G>=Number(D.width)*Number(D.height))&&Y.push(K)}return Y},ue=($,P,V=!0)=>{const[D]=j($);if(!D)return!1;const ne=Ii(D,P);return V&&ne>0||ne>=Number(D.width)*Number(D.height)},ge=$=>{const{viewport:P,dimensions:V,d3Zoom:D,d3Selection:ne,translateExtent:X}=e;if(!D||!ne||!$.x&&!$.y)return!1;const Y=xo.translate(P.x+$.x,P.y+$.y).scale(P.zoom),K=[[0,0],[V.width,V.height]],le=D.constrain()(Y,K,X),G=e.viewport.x!==le.x||e.viewport.y!==le.y||e.viewport.zoom!==le.k;return D.transform(ne,le),G},re=$=>{const P=$ instanceof Function?$(e):$,V=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];tt(P.defaultEdgeOptions)&&(e.defaultEdgeOptions=P.defaultEdgeOptions);const D=P.modelValue||P.nodes||P.edges?[]:void 0;D&&(P.modelValue&&D.push(...P.modelValue),P.nodes&&D.push(...P.nodes),P.edges&&D.push(...P.edges),w(D));const ne=()=>{tt(P.maxZoom)&&E(P.maxZoom),tt(P.minZoom)&&N(P.minZoom),tt(P.translateExtent)&&C(P.translateExtent)};for(const X of Object.keys(P)){const Y=X,K=P[Y];![...fI,...V].includes(Y)&&tt(K)&&(e[Y]=K)}kl(()=>e.d3Zoom).not.toBeNull().then(ne),e.initialized||(e.initialized=!0)};return{updateNodePositions:u,updateNodeDimensions:p,setElements:w,setNodes:T,setEdges:I,addNodes:F,addEdges:S,removeNodes:U,removeEdges:B,findNode:d,findEdge:f,updateEdge:oe,updateEdgeData:ie,updateNode:O,updateNodeData:R,applyEdgeChanges:L,applyNodeChanges:M,addSelectedElements:y,addSelectedNodes:g,addSelectedEdges:_,setMinZoom:N,setMaxZoom:E,setTranslateExtent:C,setNodeExtent:x,setPaneClickDistance:A,removeSelectedElements:b,removeSelectedNodes:h,removeSelectedEdges:k,startConnection:H,updateConnection:te,endConnection:W,setInteractive:v,setState:re,getIntersectingNodes:se,getIncomers:a,getOutgoers:l,getConnectedEdges:s,getHandleConnections:c,isNodeIntersecting:ue,panBy:ge,fitView:$=>r.value.fitView($),zoomIn:$=>r.value.zoomIn($),zoomOut:$=>r.value.zoomOut($),zoomTo:($,P)=>r.value.zoomTo($,P),setViewport:($,P)=>r.value.setViewport($,P),setTransform:($,P)=>r.value.setTransform($,P),getViewport:()=>r.value.getViewport(),getTransform:()=>r.value.getTransform(),setCenter:($,P,V)=>r.value.setCenter($,P,V),fitBounds:($,P)=>r.value.fitBounds($,P),project:$=>r.value.project($),screenToFlowCoordinate:$=>r.value.screenToFlowCoordinate($),flowToScreenCoordinate:$=>r.value.flowToScreenCoordinate($),toObject:()=>{const $=[],P=[];for(const V of e.nodes){const{computedPosition:D,handleBounds:ne,selected:X,dimensions:Y,isParent:K,resizing:le,dragging:G,events:z,...J}=V;$.push(J)}for(const V of e.edges){const{selected:D,sourceNode:ne,targetNode:X,events:Y,...K}=V;P.push(K)}return JSON.parse(JSON.stringify({nodes:$,edges:P,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:$=>new Promise(P=>{const{nodes:V,edges:D,position:ne,zoom:X,viewport:Y}=$;if(V&&T(V),D&&I(D),Y!=null&&Y.x&&(Y!=null&&Y.y)||ne){const K=(Y==null?void 0:Y.x)||ne[0],le=(Y==null?void 0:Y.y)||ne[1],G=(Y==null?void 0:Y.zoom)||X||e.viewport.zoom;return kl(()=>r.value.viewportInitialized).toBe(!0).then(()=>{r.value.setViewport({x:K,y:le,zoom:G}).then(()=>{P(!0)})})}else P(!0)}),updateNodeInternals:i,viewportHelper:r,$reset:()=>{const $=Pp();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const P=xo.translate($.defaultViewport.x??0,$.defaultViewport.y??0).scale(zn($.defaultViewport.zoom??1,$.minZoom,$.maxZoom)),V=e.viewportRef.getBoundingClientRect(),D=[[0,0],[V.width,V.height]],ne=e.d3Zoom.constrain()(P,D,$.translateExtent);e.d3Zoom.transform(e.d3Selection,ne)}re($)},$destroy:()=>{}}}const mI=["data-id","data-handleid","data-nodeid","data-handlepos"],gI={name:"Handle",compatConfig:{MODE:3}},Ht=t.defineComponent({...gI,props:{id:{default:null},type:{},position:{default:()=>Ne.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:n}){const o=t.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),r=t.toRef(()=>o.type??"source"),i=t.toRef(()=>o.isValidConnection??null),{id:a,connectionStartHandle:l,connectionClickStartHandle:s,connectionEndHandle:c,vueFlowRef:d,nodesConnectable:f,noDragClassName:u,noPanClassName:p}=Le(),{id:m,node:g,nodeEl:_,connectedEdges:y}=Ap(),h=t.ref(),k=t.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),b=t.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),N=t.toRef(()=>{var I,w,F,S,U,B;return((I=l.value)==null?void 0:I.nodeId)===m&&((w=l.value)==null?void 0:w.id)===e.id&&((F=l.value)==null?void 0:F.type)===r.value||((S=c.value)==null?void 0:S.nodeId)===m&&((U=c.value)==null?void 0:U.id)===e.id&&((B=c.value)==null?void 0:B.type)===r.value}),E=t.toRef(()=>{var I,w,F;return((I=s.value)==null?void 0:I.nodeId)===m&&((w=s.value)==null?void 0:w.id)===e.id&&((F=s.value)==null?void 0:F.type)===r.value}),{handlePointerDown:C,handleClick:x}=vp({nodeId:m,handleId:e.id,isValidConnection:i,type:r}),A=t.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!y.value.some(I=>{const w=I[`${r.value}Handle`];return I[r.value]!==m?!1:w?w===e.id:!0}):typeof e.connectable=="number"?y.value.filter(I=>{const w=I[`${r.value}Handle`];return I[r.value]!==m?!1:w?w===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(g,y.value):tt(e.connectable)?e.connectable:f.value);t.onMounted(()=>{var I;if(!g.dimensions.width||!g.dimensions.height)return;const w=(I=g.handleBounds[r.value])==null?void 0:I.find(M=>M.id===e.id);if(!d.value||w)return;const F=d.value.querySelector(".vue-flow__transformationpane");if(!_.value||!h.value||!F||!e.id)return;const S=_.value.getBoundingClientRect(),U=h.value.getBoundingClientRect(),B=window.getComputedStyle(F),{m22:oe}=new window.DOMMatrixReadOnly(B.transform),ie={id:e.id,position:e.position,x:(U.left-S.left)/oe,y:(U.top-S.top)/oe,type:r.value,nodeId:m,...Pi(h.value)};g.handleBounds[r.value]=[...g.handleBounds[r.value]??[],ie]});function v(I){const w=Yl(I);A.value&&k.value&&(w&&I.button===0||!w)&&C(I)}function T(I){!m||!s.value&&!k.value||A.value&&x(I)}return n({handleClick:x,handlePointerDown:C,onClick:T,onPointerDown:v}),(I,w)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"handle",ref:h,"data-id":`${t.unref(a)}-${t.unref(m)}-${e.id}-${r.value}`,"data-handleid":e.id,"data-nodeid":t.unref(m),"data-handlepos":I.position,class:t.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${I.position}`,`vue-flow__handle-${e.id}`,t.unref(u),t.unref(p),r.value,{connectable:A.value,connecting:E.value,connectablestart:k.value,connectableend:b.value,connectionindicator:A.value&&(k.value&&!N.value||b.value&&N.value)}]]),onMousedown:v,onTouchstartPassive:v,onClick:T},[t.renderSlot(I.$slots,"default",{id:I.id})],42,mI))}}),Di=function({sourcePosition:e=Ne.Bottom,targetPosition:n=Ne.Top,label:o,connectable:r=!0,isValidTargetPos:i,isValidSourcePos:a,data:l}){const s=l.label??o;return[t.h(Ht,{type:"target",position:n,connectable:r,isValidConnection:i}),typeof s!="string"&&s?t.h(s):t.h(t.Fragment,[s]),t.h(Ht,{type:"source",position:e,connectable:r,isValidConnection:a})]};Di.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],Di.inheritAttrs=!1,Di.compatConfig={MODE:3};const hI=Di,Mi=function({targetPosition:e=Ne.Top,label:n,connectable:o=!0,isValidTargetPos:r,data:i}){const a=i.label??n;return[t.h(Ht,{type:"target",position:e,connectable:o,isValidConnection:r}),typeof a!="string"&&a?t.h(a):t.h(t.Fragment,[a])]};Mi.props=["targetPosition","label","isValidTargetPos","connectable","data"],Mi.inheritAttrs=!1,Mi.compatConfig={MODE:3};const yI=Mi,Li=function({sourcePosition:e=Ne.Bottom,label:n,connectable:o=!0,isValidSourcePos:r,data:i}){const a=i.label??n;return[typeof a!="string"&&a?t.h(a):t.h(t.Fragment,[a]),t.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 _I=Li,bI=["transform"],wI=["width","height","x","y","rx","ry"],kI=["y"],CI={name:"EdgeText",compatConfig:{MODE:3}},EI=t.defineComponent({...CI,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const n=t.ref({x:0,y:0,width:0,height:0}),o=t.ref(null),r=t.computed(()=>`translate(${e.x-n.value.width/2} ${e.y-n.value.height/2})`);t.onMounted(i),t.watch([()=>e.x,()=>e.y,o,()=>e.label],i);function i(){if(!o.value)return;const a=o.value.getBBox();(a.width!==n.value.width||a.height!==n.value.height)&&(n.value=a)}return(a,l)=>(t.openBlock(),t.createElementBlock("g",{transform:r.value,class:"vue-flow__edge-textwrapper"},[a.labelShowBg?(t.openBlock(),t.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${n.value.width+2*a.labelBgPadding[0]}px`,height:`${n.value.height+2*a.labelBgPadding[1]}px`,x:-a.labelBgPadding[0],y:-a.labelBgPadding[1],style:t.normalizeStyle(a.labelBgStyle),rx:a.labelBgBorderRadius,ry:a.labelBgBorderRadius},null,12,wI)):t.createCommentVNode("",!0),t.createElementVNode("text",t.mergeProps(a.$attrs,{ref_key:"el",ref:o,class:"vue-flow__edge-text",y:n.value.height/2,dy:"0.3em",style:a.labelStyle}),[t.renderSlot(a.$slots,"default",{},()=>[typeof a.label!="string"?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(a.label),{key:0})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(a.label),1)],64))])],16,kI)],8,bI))}}),NI=["id","d","marker-end","marker-start"],xI=["d","stroke-width"],SI={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Fi=t.defineComponent({...SI,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:n}){const o=t.ref(null),r=t.ref(null),i=t.ref(null),a=t.useAttrs();return n({pathEl:o,interactionEl:r,labelEl:i}),(l,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("path",t.mergeProps(t.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,NI),l.interactionWidth?(t.openBlock(),t.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,xI)):t.createCommentVNode("",!0),l.label&&l.labelX&&l.labelY?(t.openBlock(),t.createBlock(EI,{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"])):t.createCommentVNode("",!0)],64))}});function Tp({sourceX:e,sourceY:n,targetX:o,targetY:r}){const i=Math.abs(o-e)/2,a=o<e?o+i:o-i,l=Math.abs(r-n)/2,s=r<n?r+l:r-l;return[a,s,i,l]}function Op({sourceX:e,sourceY:n,targetX:o,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:s}){const c=e*.125+i*.375+l*.375+o*.125,d=n*.125+a*.375+s*.375+r*.125,f=Math.abs(c-e),u=Math.abs(d-n);return[c,d,f,u]}function Ui(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function $p({pos:e,x1:n,y1:o,x2:r,y2:i,c:a}){let l,s;switch(e){case Ne.Left:l=n-Ui(n-r,a),s=o;break;case Ne.Right:l=n+Ui(r-n,a),s=o;break;case Ne.Top:l=n,s=o-Ui(o-i,a);break;case Ne.Bottom:l=n,s=o+Ui(i-o,a);break}return[l,s]}function Bp(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top,curvature:s=.25}=e,[c,d]=$p({pos:r,x1:n,y1:o,x2:i,y2:a,c:s}),[f,u]=$p({pos:l,x1:i,y1:a,x2:n,y2:o,c:s}),[p,m,g,_]=Op({sourceX:n,sourceY:o,targetX:i,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:f,targetControlY:u});return[`M${n},${o} C${c},${d} ${f},${u} ${i},${a}`,p,m,g,_]}function Vp({pos:e,x1:n,y1:o,x2:r,y2:i}){let a,l;switch(e){case Ne.Left:case Ne.Right:a=.5*(n+r),l=o;break;case Ne.Top:case Ne.Bottom:a=n,l=.5*(o+i);break}return[a,l]}function Rp(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top}=e,[s,c]=Vp({pos:r,x1:n,y1:o,x2:i,y2:a}),[d,f]=Vp({pos:l,x1:i,y1:a,x2:n,y2:o}),[u,p,m,g]=Op({sourceX:n,sourceY:o,targetX:i,targetY:a,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${n},${o} C${s},${c} ${d},${f} ${i},${a}`,u,p,m,g]}const Dp={[Ne.Left]:{x:-1,y:0},[Ne.Right]:{x:1,y:0},[Ne.Top]:{x:0,y:-1},[Ne.Bottom]:{x:0,y:1}};function vI({source:e,sourcePosition:n=Ne.Bottom,target:o}){return n===Ne.Left||n===Ne.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 Mp(e,n){return Math.sqrt((n.x-e.x)**2+(n.y-e.y)**2)}function AI({source:e,sourcePosition:n=Ne.Bottom,target:o,targetPosition:r=Ne.Top,center:i,offset:a}){const l=Dp[n],s=Dp[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=vI({source:c,sourcePosition:n,target:d}),u=f.x!==0?"x":"y",p=f[u];let m,g,_;const y={x:0,y:0},h={x:0,y:0},[k,b,N,E]=Tp({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(l[u]*s[u]===-1){g=i.x??k,_=i.y??b;const x=[{x:g,y:c.y},{x:g,y:d.y}],A=[{x:c.x,y:_},{x:d.x,y:_}];l[u]===p?m=u==="x"?x:A:m=u==="x"?A:x}else{const x=[{x:c.x,y:d.y}],A=[{x:d.x,y:c.y}];if(u==="x"?m=l.x===p?A:x:m=l.y===p?x:A,n===r){const F=Math.abs(e[u]-o[u]);if(F<=a){const S=Math.min(a-1,a-F);l[u]===p?y[u]=(c[u]>e[u]?-1:1)*S:h[u]=(d[u]>o[u]?-1:1)*S}}if(n!==r){const F=u==="x"?"y":"x",S=l[u]===s[F],U=c[F]>d[F],B=c[F]<d[F];(l[u]===1&&(!S&&U||S&&B)||l[u]!==1&&(!S&&B||S&&U))&&(m=u==="x"?x:A)}const v={x:c.x+y.x,y:c.y+y.y},T={x:d.x+h.x,y:d.y+h.y},I=Math.max(Math.abs(v.x-m[0].x),Math.abs(T.x-m[0].x)),w=Math.max(Math.abs(v.y-m[0].y),Math.abs(T.y-m[0].y));I>=w?(g=(v.x+T.x)/2,_=m[0].y):(g=m[0].x,_=(v.y+T.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...m,{x:d.x+h.x,y:d.y+h.y},o],g,_,N,E]}function II(e,n,o,r){const i=Math.min(Mp(e,n)/2,Mp(n,o)/2,r),{x:a,y:l}=n;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 ns(e){const{sourceX:n,sourceY:o,sourcePosition:r=Ne.Bottom,targetX:i,targetY:a,targetPosition:l=Ne.Top,borderRadius:s=5,centerX:c,centerY:d,offset:f=20}=e,[u,p,m,g,_]=AI({source:{x:n,y:o},sourcePosition:r,target:{x:i,y:a},targetPosition:l,center:{x:c,y:d},offset:f});return[u.reduce((h,k,b)=>{let N;return b>0&&b<u.length-1?N=II(u[b-1],k,u[b+1],s):N=`${b===0?"M":"L"}${k.x} ${k.y}`,h+=N,h},""),p,m,g,_]}function PI(e){const{sourceX:n,sourceY:o,targetX:r,targetY:i}=e,[a,l,s,c]=Tp({sourceX:n,sourceY:o,targetX:r,targetY:i});return[`M ${n},${o}L ${r},${i}`,a,l,s,c]}const TI=t.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:n}){return()=>{const[o,r,i]=PI(e);return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),Lp=t.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:n}){return()=>{const[o,r,i]=ns({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),OI=t.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:n}){return()=>t.h(Lp,{...e,...n,borderRadius:0})}}),$I=t.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:n}){return()=>{const[o,r,i]=Bp({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),BI=t.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:n}){return()=>{const[o,r,i]=Rp({...e,sourcePosition:e.sourcePosition??Ne.Bottom,targetPosition:e.targetPosition??Ne.Top});return t.h(Fi,{path:o,labelX:r,labelY:i,...n,...e})}}}),VI={input:_I,default:hI,output:yI},RI={default:$I,straight:TI,step:OI,smoothstep:Lp,simplebezier:BI};function DI(e,n,o){const r=t.computed(()=>_=>n.value.get(_)),i=t.computed(()=>_=>o.value.get(_)),a=t.computed(()=>{const _={...RI,...e.edgeTypes},y=Object.keys(_);for(const h of e.edges)h.type&&!y.includes(h.type)&&(_[h.type]=h.type);return _}),l=t.computed(()=>{const _={...VI,...e.nodeTypes},y=Object.keys(_);for(const h of e.nodes)h.type&&!y.includes(h.type)&&(_[h.type]=h.type);return _}),s=t.computed(()=>e.onlyRenderVisibleElements?np(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),c=t.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const y of e.edges){const h=n.value.get(y.source),k=n.value.get(y.target);MA({sourcePos:h.computedPosition||{x:0,y:0},targetPos:k.computedPosition||{x:0,y:0},sourceWidth:h.dimensions.width,sourceHeight:h.dimensions.height,targetWidth:k.dimensions.width,targetHeight:k.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(y)}return _}return e.edges}),d=t.computed(()=>[...s.value,...c.value]),f=t.computed(()=>{const _=[];for(const y of e.nodes)y.selected&&_.push(y);return _}),u=t.computed(()=>{const _=[];for(const y of e.edges)y.selected&&_.push(y);return _}),p=t.computed(()=>[...f.value,...u.value]),m=t.computed(()=>{const _=[];for(const y of e.nodes)y.dimensions.width&&y.dimensions.height&&y.handleBounds!==void 0&&_.push(y);return _}),g=t.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 Yn{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var n;const o=(n=t.getCurrentInstance())==null?void 0:n.appContext.app,r=(o==null?void 0:o.config.globalProperties.$vueFlowStorage)??Yn.instance;return Yn.instance=r??new Yn,o&&(o.config.globalProperties.$vueFlowStorage=Yn.instance),Yn.instance}set(n,o){return this.flows.set(n,o)}get(n){return this.flows.get(n)}remove(n){return this.flows.delete(n)}create(n,o){const r=Pp(),i=t.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=t.computed(()=>{const p=new Map;for(const m of i.nodes)p.set(m.id,m);return p}),c=t.computed(()=>{const p=new Map;for(const m of i.edges)p.set(m.id,m);return p}),d=DI(i,s,c),f=pI(i,s,c);f.setState({...i,...o});const u={...a,...d,...f,...V1(i),nodeLookup:s,edgeLookup:c,emits:l,id:n,vueFlowVersion:"1.45.0",$destroy:()=>{this.remove(n)}};return this.set(n,u),u}getId(){return`vue-flow-${this.currentId++}`}}function Le(e){const n=Yn.getInstance(),o=t.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=t.inject(Ep,null);typeof c<"u"&&c!==null&&(!l||c.id===l)&&(s=c)}if(s||l&&(s=n.get(l)),!s||l&&s.id!==l){const c=a??n.getId(),d=n.create(c,i);s=d,(o??t.effectScope(!0)).run(()=>{t.watch(d.applyDefault,(u,p,m)=>{const g=y=>{d.applyNodeChanges(y)},_=y=>{d.applyEdgeChanges(y)};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}),ai(()=>{if(s){const u=n.get(s.id);u?u.$destroy():Bi(`No store instance found for id ${s.id} in storage.`)}})})}else r&&s.setState(i);if(o&&(t.provide(Ep,s),o.vueFlowId=s.id),r){const c=t.getCurrentInstance();(c==null?void 0:c.type.name)!=="VueFlow"&&s.emits.error(new lt(et.USEVUEFLOW_OPTIONS))}return s}function MI(e){const{emits:n,dimensions:o}=Le();let r;t.onMounted(()=>{const i=e.value,a=()=>{if(!i)return;const l=Pi(i);(l.width===0||l.height===0)&&n.error(new lt(et.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)),t.onBeforeUnmount(()=>{window.removeEventListener("resize",a),r&&i&&r.unobserve(i)})})}const LI={name:"UserSelection",compatConfig:{MODE:3}},FI=t.defineComponent({...LI,props:{userSelectionRect:{}},setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:t.normalizeStyle({width:`${n.userSelectionRect.width}px`,height:`${n.userSelectionRect.height}px`,transform:`translate(${n.userSelectionRect.x}px, ${n.userSelectionRect.y}px)`})},null,4))}}),UI=["tabIndex"],KI={name:"NodesSelection",compatConfig:{MODE:3}},jI=t.defineComponent({...KI,setup(e){const{emits:n,viewport:o,getSelectedNodes:r,noPanClassName:i,disableKeyboardA11y:a,userSelectionActive:l}=Le(),s=Ip(),c=t.ref(null),d=Sp({el:c,onStart(g){n.selectionDragStart(g)},onDrag(g){n.selectionDrag(g)},onStop(g){n.selectionDragStop(g)}});t.onMounted(()=>{var g;a.value||(g=c.value)==null||g.focus({preventScroll:!0})});const f=t.computed(()=>tp(r.value)),u=t.computed(()=>({width:`${f.value.width}px`,height:`${f.value.height}px`,top:`${f.value.y}px`,left:`${f.value.x}px`}));function p(g){n.selectionContextMenu({event:g,nodes:r.value})}function m(g){a||So[g.key]&&(g.preventDefault(),s({x:So[g.key].x,y:So[g.key].y},g.shiftKey))}return(g,_)=>!t.unref(l)&&f.value.width&&f.value.height?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["vue-flow__nodesselection vue-flow__container",t.unref(i)]),style:t.normalizeStyle({transform:`translate(${t.unref(o).x}px,${t.unref(o).y}px) scale(${t.unref(o).zoom})`})},[t.createElementVNode("div",{ref_key:"el",ref:c,class:t.normalizeClass([{dragging:t.unref(d)},"vue-flow__nodesselection-rect"]),style:t.normalizeStyle(u.value),tabIndex:t.unref(a)?void 0:-1,onContextmenu:p,onKeydown:m},null,46,UI)],6)):t.createCommentVNode("",!0)}});function GI(e,n){return{x:e.clientX-n.left,y:e.clientY-n.top}}const qI={name:"Pane",compatConfig:{MODE:3}},zI=t.defineComponent({...qI,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:n,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:y,multiSelectionActive:h,edgeLookup:k,nodeLookup:b,connectionLookup:N,defaultEdgeOptions:E,connectionStartHandle:C}=Le(),x=t.ref(null),A=t.ref(new Set),v=t.ref(new Set),T=t.ref(),I=t.toRef(()=>c.value&&(e.isSelecting||a.value)),w=t.toRef(()=>C.value!==null);let F=!1,S=!1;const U=pr(_,{actInsideInputWithModifier:!1}),B=pr(y);t.watch(U,te=>{te&&(p(u.value),m(f.value),d.value=!1)}),t.watch(B,te=>{h.value=te});function oe(te,W){return j=>{j.target===W&&(te==null||te(j))}}function ie(te){if(F||w.value){F=!1;return}i.paneClick(te),l(),d.value=!1}function M(te){te.preventDefault(),te.stopPropagation(),i.paneContextMenu(te)}function L(te){i.paneScroll(te)}function O(te){var W,j,se;if(T.value=(W=n.value)==null?void 0:W.getBoundingClientRect(),!c.value||!e.isSelecting||te.button!==0||te.target!==x.value||!T.value)return;(se=(j=te.target)==null?void 0:j.setPointerCapture)==null||se.call(j,te.pointerId);const{x:ue,y:ge}=GI(te,T.value);S=!0,F=!1,l(),s.value={width:0,height:0,startX:ue,startY:ge,x:ue,y:ge},i.selectionStart(te)}function R(te){var W;if(!T.value||!s.value)return;F=!0;const{x:j,y:se}=zt(te,T.value),{startX:ue=0,startY:ge=0}=s.value,re={startX:ue,startY:ge,x:j<ue?j:ue,y:se<ge?se:ge,width:Math.abs(j-ue),height:Math.abs(se-ge)},q=A.value,ae=v.value;A.value=new Set(np(o.value,re,r.value,g.value===Kl.Partial,!0).map($=>$.id)),v.value=new Set;const ce=((W=E.value)==null?void 0:W.selectable)??!0;for(const $ of A.value){const P=N.value.get($);if(P)for(const{edgeId:V}of P.values()){const D=k.value.get(V);D&&(D.selectable??ce)&&v.value.add(V)}}if(!Cp(q,A.value)){const $=wn(b.value,A.value,!0);i.nodesChange($)}if(!Cp(ae,v.value)){const $=wn(k.value,v.value);i.edgesChange($)}s.value=re,a.value=!0,d.value=!1}function H(te){var W;te.button!==0||!S||((W=te.target)==null||W.releasePointerCapture(te.pointerId),!a.value&&s.value&&te.target===x.value&&ie(te),a.value=!1,s.value=null,d.value=A.value.size>0,i.selectionEnd(te),e.selectionKeyPressed&&(F=!1),S=!1)}return(te,W)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"container",ref:x,class:t.normalizeClass(["vue-flow__pane vue-flow__container",{selection:te.isSelecting}]),onClick:W[0]||(W[0]=j=>I.value?void 0:oe(ie,x.value)(j)),onContextmenu:W[1]||(W[1]=j=>oe(M,x.value)(j)),onWheelPassive:W[2]||(W[2]=j=>oe(L,x.value)(j)),onPointerenter:W[3]||(W[3]=j=>I.value?void 0:t.unref(i).paneMouseEnter(j)),onPointerdown:W[4]||(W[4]=j=>I.value?O(j):t.unref(i).paneMouseMove(j)),onPointermove:W[5]||(W[5]=j=>I.value?R(j):t.unref(i).paneMouseMove(j)),onPointerup:W[6]||(W[6]=j=>I.value?H(j):void 0),onPointerleave:W[7]||(W[7]=j=>t.unref(i).paneMouseLeave(j))},[t.renderSlot(te.$slots,"default"),t.unref(a)&&t.unref(s)?(t.openBlock(),t.createBlock(FI,{key:0,"user-selection-rect":t.unref(s)},null,8,["user-selection-rect"])):t.createCommentVNode("",!0),t.unref(d)&&t.unref(u).length?(t.openBlock(),t.createBlock(jI,{key:1})):t.createCommentVNode("",!0)],34))}}),HI={name:"Transform",compatConfig:{MODE:3}},YI=t.defineComponent({...HI,setup(e){const{viewport:n,fitViewOnInit:o,fitViewOnInitDone:r}=Le(),i=t.computed(()=>o.value?!r.value:!1),a=t.computed(()=>`translate(${n.value.x}px,${n.value.y}px) scale(${n.value.zoom})`);return(l,s)=>(t.openBlock(),t.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:t.normalizeStyle({transform:a.value,opacity:i.value?0:void 0})},[t.renderSlot(l.$slots,"default")],4))}}),WI={name:"Viewport",compatConfig:{MODE:3}},XI=t.defineComponent({...WI,setup(e){const{minZoom:n,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:y,noPanClassName:h,emits:k,connectionStartHandle:b,userSelectionActive:N,paneDragging:E,d3Zoom:C,d3Selection:x,d3ZoomHandler:A,viewport:v,viewportRef:T,paneClickDistance:I}=Le();MI(T);const w=t.shallowRef(!1),F=t.shallowRef(!1);let S=null,U=!1,B=0,oe={x:0,y:0,zoom:0};const ie=pr(s),M=pr(l),L=pr(a),O=t.toRef(()=>(!M.value||M.value&&l.value===!0)&&(ie.value||u.value)),R=t.toRef(()=>ie.value||c.value),H=t.toRef(()=>M.value||l.value===!0&&O.value!==!0);t.onMounted(()=>{if(!T.value){Bi("Viewport element is missing");return}const ge=T.value,re=ge.getBoundingClientRect(),q=bA().clickDistance(I.value).scaleExtent([n.value,o.value]).translateExtent(i.value),ae=Rt(ge).call(q),ce=ae.on("wheel.zoom"),$=xo.translate(r.value.x??0,r.value.y??0).scale(zn(r.value.zoom??1,n.value,o.value)),P=[[0,0],[re.width,re.height]],V=q.constrain()($,P,i.value);q.transform(ae,V),q.wheelDelta(W),C.value=q,x.value=ae,A.value=ce,v.value={x:V.x,y:V.y,zoom:V.k},q.on("start",D=>{var ne;if(!D.sourceEvent)return null;B=D.sourceEvent.button,w.value=!0;const X=se(D.transform);((ne=D.sourceEvent)==null?void 0:ne.type)==="mousedown"&&(E.value=!0),oe=X,k.viewportChangeStart(X),k.moveStart({event:D,flowTransform:X})}),q.on("end",D=>{if(!D.sourceEvent)return null;if(w.value=!1,E.value=!1,te(O.value,B??0)&&!U&&k.paneContextMenu(D.sourceEvent),U=!1,j(oe,D.transform)){const ne=se(D.transform);oe=ne,k.viewportChangeEnd(ne),k.moveEnd({event:D,flowTransform:ne})}}),q.filter(D=>{var ne;const X=L.value||g.value,Y=m.value&&D.ctrlKey,K=D.button;if(K===1&&D.type==="mousedown"&&(ue(D,"vue-flow__node")||ue(D,"vue-flow__edge")))return!0;if(!O.value&&!X&&!R.value&&!p.value&&!m.value||N.value||!p.value&&D.type==="dblclick"||ue(D,y.value)&&D.type==="wheel"||ue(D,h.value)&&(D.type!=="wheel"||R.value&&D.type==="wheel"&&!L.value)||!m.value&&D.ctrlKey&&D.type==="wheel"||!X&&!R.value&&!Y&&D.type==="wheel")return!1;if(!m&&D.type==="touchstart"&&((ne=D.touches)==null?void 0:ne.length)>1)return D.preventDefault(),!1;if(!O.value&&(D.type==="mousedown"||D.type==="touchstart")||l.value===!0&&Array.isArray(u.value)&&u.value.includes(0)&&K===0||Array.isArray(u.value)&&!u.value.includes(K)&&(D.type==="mousedown"||D.type==="touchstart"))return!1;const le=Array.isArray(u.value)&&u.value.includes(K)||l.value===!0&&Array.isArray(u.value)&&!u.value.includes(0)||!K||K<=1;return(!D.ctrlKey||ie.value||D.type==="wheel")&&le}),t.watch([N,O],()=>{N.value&&!w.value?q.on("zoom",null):N.value||q.on("zoom",D=>{v.value={x:D.transform.x,y:D.transform.y,zoom:D.transform.k};const ne=se(D.transform);U=te(O.value,B??0),k.viewportChange(ne),k.move({event:D,flowTransform:ne})})},{immediate:!0}),t.watch([N,R,d,L,m,_,y],()=>{R.value&&!L.value&&!N.value?ae.on("wheel.zoom",D=>{if(ue(D,y.value))return!1;const ne=L.value||g.value,X=m.value&&D.ctrlKey;if(!(!_.value||R.value||ne||X))return!1;D.preventDefault(),D.stopImmediatePropagation();const K=ae.property("__zoom").k||1,le=Oi();if(!ie.value&&D.ctrlKey&&m.value&&le){const _e=Kt(D),Q=W(D),he=K*2**Q;q.scaleTo(ae,he,_e,D);return}const G=D.deltaMode===1?20:1;let z=d.value===fr.Vertical?0:D.deltaX*G,J=d.value===fr.Horizontal?0:D.deltaY*G;!le&&D.shiftKey&&d.value!==fr.Vertical&&!z&&J&&(z=J,J=0),q.translateBy(ae,-(z/K)*f.value,-(J/K)*f.value);const de=se(ae.property("__zoom"));S&&clearTimeout(S),F.value?(k.move({event:D,flowTransform:de}),k.viewportChange(de),S=setTimeout(()=>{k.moveEnd({event:D,flowTransform:de}),k.viewportChangeEnd(de),F.value=!1},150)):(F.value=!0,k.moveStart({event:D,flowTransform:de}),k.viewportChangeStart(de))},{passive:!1}):typeof ce<"u"&&ae.on("wheel.zoom",function(D,ne){const X=!_.value&&D.type==="wheel"&&!D.ctrlKey,Y=L.value||g.value,K=m.value&&D.ctrlKey;if(!Y&&!c.value&&!K&&D.type==="wheel"||X||ue(D,y.value))return null;D.preventDefault(),ce.call(this,D,ne)},{passive:!1})},{immediate:!0})});function te(ge,re){return re===2&&Array.isArray(ge)&&ge.includes(2)}function W(ge){const re=ge.ctrlKey&&Oi()?10:1;return-ge.deltaY*(ge.deltaMode===1?.05:ge.deltaMode?1:.002)*re}function j(ge,re){return ge.x!==re.x&&!Number.isNaN(re.x)||ge.y!==re.y&&!Number.isNaN(re.y)||ge.zoom!==re.k&&!Number.isNaN(re.k)}function se(ge){return{x:ge.x,y:ge.y,zoom:ge.k}}function ue(ge,re){return ge.target.closest(`.${re}`)}return(ge,re)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"viewportRef",ref:T,class:"vue-flow__viewport vue-flow__container"},[t.createVNode(zI,{"is-selecting":H.value,"selection-key-pressed":t.unref(M),class:t.normalizeClass({connecting:!!t.unref(b),dragging:t.unref(E),draggable:t.unref(u)===!0||Array.isArray(t.unref(u))&&t.unref(u).includes(0)})},{default:t.withCtx(()=>[t.createVNode(YI,null,{default:t.withCtx(()=>[t.renderSlot(ge.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),ZI=["id"],JI=["id"],QI=["id"],eP={name:"A11yDescriptions",compatConfig:{MODE:3}},tP=t.defineComponent({...eP,setup(e){const{id:n,disableKeyboardA11y:o,ariaLiveMessage:r}=Le();return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",{id:`${t.unref(zf)}-${t.unref(n)}`,style:{display:"none"}}," Press enter or space to select a node. "+t.toDisplayString(t.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,ZI),t.createElementVNode("div",{id:`${t.unref(Hf)}-${t.unref(n)}`,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,JI),t.unref(o)?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,id:`${t.unref(xA)}-${t.unref(n)}`,"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%)"}},t.toDisplayString(t.unref(r)),9,QI))],64))}});function nP(){const e=Le();t.watch(()=>e.viewportHelper.value.viewportInitialized,n=>{n&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function oP(e,n,o){return o===Ne.Left?e-n:o===Ne.Right?e+n:e}function rP(e,n,o){return o===Ne.Top?e-n:o===Ne.Bottom?e+n:e}const os=function({radius:e=10,centerX:n=0,centerY:o=0,position:r=Ne.Top,type:i}){return t.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:oP(n,e,r),cy:rP(o,e,r),r:e,stroke:"transparent",fill:"transparent"})};os.props=["radius","centerX","centerY","position","type"],os.compatConfig={MODE:3};const Fp=os,iP=t.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:n,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:y,edgesFocusable:h,hooks:k}=Le(),b=t.computed(()=>f(e.id)),{emit:N,on:E}=tI(b.value,a),C=t.inject(Vi),x=t.getCurrentInstance(),A=t.ref(!1),v=t.ref(!1),T=t.ref(""),I=t.ref(null),w=t.ref("source"),F=t.ref(null),S=t.toRef(()=>typeof b.value.selectable>"u"?_.value:b.value.selectable),U=t.toRef(()=>typeof b.value.updatable>"u"?y.value:b.value.updatable),B=t.toRef(()=>typeof b.value.focusable>"u"?h.value:b.value.focusable);t.provide(JA,e.id),t.provide(QA,F);const oe=t.computed(()=>b.value.class instanceof Function?b.value.class(b.value):b.value.class),ie=t.computed(()=>b.value.style instanceof Function?b.value.style(b.value):b.value.style),M=t.computed(()=>{const P=b.value.type||"default",V=C==null?void 0:C[`edge-${P}`];if(V)return V;let D=b.value.template??c.value[P];if(typeof D=="string"&&x){const ne=Object.keys(x.appContext.components);ne&&ne.includes(P)&&(D=t.resolveComponent(P,!1))}return D&&typeof D!="string"?D:(a.error(new lt(et.EDGE_TYPE_MISSING,D)),!1)}),{handlePointerDown:L}=vp({nodeId:T,handleId:I,type:w,isValidConnection:p,edgeUpdaterType:w,onEdgeUpdate:H,onEdgeUpdateEnd:te});return()=>{const P=u(b.value.source),V=u(b.value.target),D="pathOptions"in b.value?b.value.pathOptions:{};if(!P&&!V)return a.error(new lt(et.EDGE_SOURCE_TARGET_MISSING,b.value.id,b.value.source,b.value.target)),null;if(!P)return a.error(new lt(et.EDGE_SOURCE_MISSING,b.value.id,b.value.source)),null;if(!V)return a.error(new lt(et.EDGE_TARGET_MISSING,b.value.id,b.value.target)),null;if(!b.value||b.value.hidden||P.hidden||V.hidden)return null;let ne;r.value===yn.Strict?ne=P.handleBounds.source:ne=[...P.handleBounds.source||[],...P.handleBounds.target||[]];const X=mp(ne,b.value.sourceHandle);let Y;r.value===yn.Strict?Y=V.handleBounds.target:Y=[...V.handleBounds.target||[],...V.handleBounds.source||[]];const K=mp(Y,b.value.targetHandle),le=(X==null?void 0:X.position)||Ne.Bottom,G=(K==null?void 0:K.position)||Ne.Top,{x:z,y:J}=vo(P,X,le),{x:de,y:_e}=vo(V,K,G);return b.value.sourceX=z,b.value.sourceY=J,b.value.targetX=de,b.value.targetY=_e,t.h("g",{ref:F,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${M.value===!1?"default":b.value.type||"default"}`,s.value,oe.value,{updating:A.value,selected:b.value.selected,animated:b.value.animated,inactive:!S.value&&!k.value.edgeClick.hasListeners()}],tabIndex:B.value?0:void 0,"aria-label":b.value.ariaLabel===null?void 0:b.value.ariaLabel??`Edge from ${b.value.source} to ${b.value.target}`,"aria-describedby":B.value?`${Hf}-${n}`:void 0,"aria-roledescription":"edge",role:B.value?"group":"img",...b.value.domAttributes,onClick:j,onContextmenu:se,onDblclick:ue,onMouseenter:ge,onMousemove:re,onMouseleave:q,onKeyDown:B.value?$:void 0},[v.value?null:t.h(M.value===!1?c.value.default:M.value,{id:e.id,sourceNode:P,targetNode:V,source:b.value.source,target:b.value.target,type:b.value.type,updatable:U.value,selected:b.value.selected,animated:b.value.animated,label:b.value.label,labelStyle:b.value.labelStyle,labelShowBg:b.value.labelShowBg,labelBgStyle:b.value.labelBgStyle,labelBgPadding:b.value.labelBgPadding,labelBgBorderRadius:b.value.labelBgBorderRadius,data:b.value.data,events:{...b.value.events,...E},style:ie.value,markerStart:`url('#${hr(b.value.markerStart,n)}')`,markerEnd:`url('#${hr(b.value.markerEnd,n)}')`,sourcePosition:le,targetPosition:G,sourceX:z,sourceY:J,targetX:de,targetY:_e,sourceHandleId:b.value.sourceHandle,targetHandleId:b.value.targetHandle,interactionWidth:b.value.interactionWidth,...D}),[U.value==="source"||U.value===!0?[t.h("g",{onMousedown:ae,onMouseenter:O,onMouseout:R},t.h(Fp,{position:le,centerX:z,centerY:J,radius:i.value,type:"source","data-type":"source"}))]:null,U.value==="target"||U.value===!0?[t.h("g",{onMousedown:ce,onMouseenter:O,onMouseout:R},t.h(Fp,{position:G,centerX:de,centerY:_e,radius:i.value,type:"target","data-type":"target"}))]:null]])};function O(){A.value=!0}function R(){A.value=!1}function H(P,V){N.update({event:P,edge:b.value,connection:V})}function te(P){N.updateEnd({event:P,edge:b.value}),v.value=!1}function W(P,V){P.button===0&&(v.value=!0,T.value=V?b.value.target:b.value.source,I.value=(V?b.value.targetHandle:b.value.sourceHandle)??null,w.value=V?"target":"source",N.updateStart({event:P,edge:b.value}),L(P))}function j(P){var V;const D={event:P,edge:b.value};S.value&&(l.value=!1,b.value.selected&&m.value?(d([b.value]),(V=F.value)==null||V.blur()):o([b.value])),N.click(D)}function se(P){N.contextMenu({event:P,edge:b.value})}function ue(P){N.doubleClick({event:P,edge:b.value})}function ge(P){N.mouseEnter({event:P,edge:b.value})}function re(P){N.mouseMove({event:P,edge:b.value})}function q(P){N.mouseLeave({event:P,edge:b.value})}function ae(P){W(P,!0)}function ce(P){W(P,!1)}function $(P){var V;!g.value&&Yf.includes(P.key)&&S.value&&(P.key==="Escape"?((V=F.value)==null||V.blur(),d([f(e.id)])):o([f(e.id)]))}}}),aP=t.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:n,connectionMode:o,connectionStartHandle:r,connectionEndHandle:i,connectionPosition:a,connectionLineType:l,connectionLineStyle:s,connectionLineOptions:c,connectionStatus:d,viewport:f,findNode:u}=Le(),p=(e=t.inject(Vi))==null?void 0:e["connection-line"],m=t.computed(()=>{var k;return u((k=r.value)==null?void 0:k.nodeId)}),g=t.computed(()=>{var k;return u((k=i.value)==null?void 0:k.nodeId)??null}),_=t.computed(()=>({x:(a.value.x-f.value.x)/f.value.zoom,y:(a.value.y-f.value.y)/f.value.zoom})),y=t.computed(()=>c.value.markerStart?`url(#${hr(c.value.markerStart,n)})`:""),h=t.computed(()=>c.value.markerEnd?`url(#${hr(c.value.markerEnd,n)})`:"");return()=>{var k,b,N;if(!m.value||!r.value)return null;const E=r.value.id,C=r.value.type,x=m.value.handleBounds;let A=(x==null?void 0:x[C])??[];if(o.value===yn.Loose){const ie=(x==null?void 0:x[C==="source"?"target":"source"])??[];A=[...A,...ie]}if(!A)return null;const v=(E?A.find(ie=>ie.id===E):A[0])??null,T=(v==null?void 0:v.position)??Ne.Top,{x:I,y:w}=vo(m.value,v,T);let F=null;g.value&&(o.value===yn.Strict?F=((k=g.value.handleBounds[C==="source"?"target":"source"])==null?void 0:k.find(ie=>{var M;return ie.id===((M=i.value)==null?void 0:M.id)}))||null:F=((b=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:b.find(ie=>{var M;return ie.id===((M=i.value)==null?void 0:M.id)}))||null);const S=((N=i.value)==null?void 0:N.position)??(T?Xl[T]:null);if(!T||!S)return null;const U=l.value??c.value.type??qn.Bezier;let B="";const oe={sourceX:I,sourceY:w,sourcePosition:T,targetX:_.value.x,targetY:_.value.y,targetPosition:S};return U===qn.Bezier?[B]=Bp(oe):U===qn.Step?[B]=ns({...oe,borderRadius:0}):U===qn.SmoothStep?[B]=ns(oe):U===qn.SimpleBezier?[B]=Rp(oe):B=`M${I},${w} ${_.value.x},${_.value.y}`,t.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},t.h("g",{class:"vue-flow__connection"},p?t.h(p,{sourceX:I,sourceY:w,sourcePosition:T,targetX:_.value.x,targetY:_.value.y,targetPosition:S,sourceNode:m.value,sourceHandle:v,targetNode:g.value,targetHandle:F,markerEnd:h.value,markerStart:y.value,connectionStatus:d.value}):t.h("path",{d:B,class:[c.value.class,d,"vue-flow__connection-path"],style:{...s.value,...c.value.style},"marker-end":h.value,"marker-start":y.value})))}}}),lP=["id","markerWidth","markerHeight","markerUnits","orient"],sP={name:"MarkerType",compatConfig:{MODE:3}},cP=t.defineComponent({...sP,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(n,o)=>(t.openBlock(),t.createElementBlock("marker",{id:n.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${n.width}`,markerHeight:`${n.height}`,markerUnits:n.markerUnits,orient:n.orient},[n.type===t.unref(ur).ArrowClosed?(t.openBlock(),t.createElementBlock("polyline",{key:0,style:t.normalizeStyle({stroke:n.color,fill:n.color,strokeWidth:n.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):t.createCommentVNode("",!0),n.type===t.unref(ur).Arrow?(t.openBlock(),t.createElementBlock("polyline",{key:1,style:t.normalizeStyle({stroke:n.color,strokeWidth:n.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):t.createCommentVNode("",!0)],8,lP))}}),dP={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},uP={name:"MarkerDefinitions",compatConfig:{MODE:3}},fP=t.defineComponent({...uP,setup(e){const{id:n,edges:o,connectionLineOptions:r,defaultMarkerColor:i}=Le(),a=t.computed(()=>{const l=new Set,s=[],c=d=>{if(d){const f=hr(d,n);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)=>(t.openBlock(),t.createElementBlock("svg",dP,[t.createElementVNode("defs",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.value,c=>(t.openBlock(),t.createBlock(cP,{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))])]))}}),pP={name:"Edges",compatConfig:{MODE:3}},mP=t.defineComponent({...pP,setup(e){const{findNode:n,getEdges:o,elevateEdgesOnSelect:r}=Le();return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(fP),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(o),l=>(t.openBlock(),t.createElementBlock("svg",{key:l.id,class:"vue-flow__edges vue-flow__container",style:t.normalizeStyle({zIndex:t.unref(LA)(l,t.unref(n),t.unref(r))})},[t.createVNode(t.unref(iP),{id:l.id},null,8,["id"])],4))),128)),t.createVNode(t.unref(aP))],64))}}),gP=t.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:n,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:y,snapGrid:h,nodeDragThreshold:k,nodesDraggable:b,elementsSelectable:N,nodesConnectable:E,nodesFocusable:C,hooks:x}=Le(),A=t.ref(null);t.provide(xp,A),t.provide(Np,e.id);const v=t.inject(Vi),T=t.getCurrentInstance(),I=Ip(),{node:w,parentNode:F}=Ap(e.id),{emit:S,on:U}=iI(w,l),B=t.toRef(()=>typeof w.draggable>"u"?b.value:w.draggable),oe=t.toRef(()=>typeof w.selectable>"u"?N.value:w.selectable),ie=t.toRef(()=>typeof w.connectable>"u"?E.value:w.connectable),M=t.toRef(()=>typeof w.focusable>"u"?C.value:w.focusable),L=t.computed(()=>oe.value||B.value||x.value.nodeClick.hasListeners()||x.value.nodeDoubleClick.hasListeners()||x.value.nodeMouseEnter.hasListeners()||x.value.nodeMouseMove.hasListeners()||x.value.nodeMouseLeave.hasListeners()),O=t.toRef(()=>!!w.dimensions.width&&!!w.dimensions.height),R=t.computed(()=>{const V=w.type||"default",D=v==null?void 0:v[`node-${V}`];if(D)return D;let ne=w.template||u.value[V];if(typeof ne=="string"&&T){const X=Object.keys(T.appContext.components);X&&X.includes(V)&&(ne=t.resolveComponent(V,!1))}return ne&&typeof ne!="string"?ne:(l.error(new lt(et.NODE_TYPE_MISSING,ne)),!1)}),H=Sp({id:e.id,el:A,disabled:()=>!B.value,selectable:oe,dragHandle:()=>w.dragHandle,onStart(V){S.dragStart(V)},onDrag(V){S.drag(V)},onStop(V){S.dragStop(V)},onClick(V){$(V)}}),te=t.computed(()=>w.class instanceof Function?w.class(w):w.class),W=t.computed(()=>{const V=(w.style instanceof Function?w.style(w):w.style)||{},D=w.width instanceof Function?w.width(w):w.width,ne=w.height instanceof Function?w.height(w):w.height;return!V.width&&D&&(V.width=typeof D=="string"?D:`${D}px`),!V.height&&ne&&(V.height=typeof ne=="string"?ne:`${ne}px`),V}),j=t.toRef(()=>Number(w.zIndex??W.value.zIndex??0));return f(V=>{(V.includes(e.id)||!V.length)&&ue()}),t.onMounted(()=>{t.watch(()=>w.hidden,(V=!1,D,ne)=>{!V&&A.value&&(e.resizeObserver.observe(A.value),ne(()=>{A.value&&e.resizeObserver.unobserve(A.value)}))},{immediate:!0,flush:"post"})}),t.watch([()=>w.type,()=>w.sourcePosition,()=>w.targetPosition],()=>{t.nextTick(()=>{d([{id:e.id,nodeElement:A.value,forceUpdate:!0}])})}),t.watch([()=>w.position.x,()=>w.position.y,()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.x},()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.y},()=>{var V;return(V=F.value)==null?void 0:V.computedPosition.z},j,()=>w.selected,()=>w.dimensions.height,()=>w.dimensions.width,()=>{var V;return(V=F.value)==null?void 0:V.dimensions.height},()=>{var V;return(V=F.value)==null?void 0:V.dimensions.width}],([V,D,ne,X,Y,K])=>{const le={x:V,y:D,z:K+(m.value&&w.selected?1e3:0)};typeof ne<"u"&&typeof X<"u"?w.computedPosition=$A({x:ne,y:X,z:Y},le):w.computedPosition=le},{flush:"post",immediate:!0}),t.watch([()=>w.extent,p],([V,D],[ne,X])=>{(V!==ne||D!==X)&&se()}),w.extent==="parent"||typeof w.extent=="object"&&"range"in w.extent&&w.extent.range==="parent"?kl(()=>O).toBe(!0).then(se):se(),()=>w.hidden?null:t.h("div",{ref:A,"data-id":w.id,class:["vue-flow__node",`vue-flow__node-${R.value===!1?"default":w.type||"default"}`,{[o.value]:B.value,dragging:H==null?void 0:H.value,draggable:B.value,selected:w.selected,selectable:oe.value,parent:w.isParent},te.value],style:{visibility:O.value?"visible":"hidden",zIndex:w.computedPosition.z??j.value,transform:`translate(${w.computedPosition.x}px,${w.computedPosition.y}px)`,pointerEvents:L.value?"all":"none",...W.value},tabIndex:M.value?0:void 0,role:M.value?"group":void 0,"aria-describedby":g.value?void 0:`${zf}-${n}`,"aria-label":w.ariaLabel,"aria-roledescription":"node",...w.domAttributes,onMouseenter:ge,onMousemove:re,onMouseleave:q,onContextmenu:ae,onClick:$,onDblclick:ce,onKeydown:P},[t.h(R.value===!1?u.value.default:R.value,{id:w.id,type:w.type,data:w.data,events:{...w.events,...U},selected:w.selected,resizing:w.resizing,dragging:H.value,connectable:ie.value,position:w.computedPosition,dimensions:w.dimensions,isValidTargetPos:w.isValidTargetPos,isValidSourcePos:w.isValidSourcePos,parent:w.parentNode,parentNodeId:w.parentNode,zIndex:w.computedPosition.z??j.value,targetPosition:w.targetPosition,sourcePosition:w.sourcePosition,label:w.label,dragHandle:w.dragHandle,onUpdateNodeInternals:ue})]);function se(){const V=w.computedPosition,{computedPosition:D,position:ne}=Hl(w,y.value?$i(V,h.value):V,l.error,p.value,F.value);(w.computedPosition.x!==D.x||w.computedPosition.y!==D.y)&&(w.computedPosition={...w.computedPosition,...D}),(w.position.x!==ne.x||w.position.y!==ne.y)&&(w.position=ne)}function ue(){A.value&&d([{id:e.id,nodeElement:A.value,forceUpdate:!0}])}function ge(V){H!=null&&H.value||S.mouseEnter({event:V,node:w})}function re(V){H!=null&&H.value||S.mouseMove({event:V,node:w})}function q(V){H!=null&&H.value||S.mouseLeave({event:V,node:w})}function ae(V){return S.contextMenu({event:V,node:w})}function ce(V){return S.doubleClick({event:V,node:w})}function $(V){oe.value&&(!r.value||!B.value||k.value>0)&&Zl(w,a.value,c,s,i,!1,A.value),S.click({event:V,node:w})}function P(V){if(!(jl(V)||g.value))if(Yf.includes(V.key)&&oe.value){const D=V.key==="Escape";Zl(w,a.value,c,s,i,D,A.value)}else B.value&&w.selected&&So[V.key]&&(V.preventDefault(),_.value=`Moved selected node ${V.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~w.position.x}, y: ${~~w.position.y}`,I({x:So[V.key].x,y:So[V.key].y},V.shiftKey))}}});function hP(e={includeHiddenNodes:!1}){const{nodes:n}=Le();return t.computed(()=>{if(n.value.length===0)return!1;for(const o of n.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 yP={class:"vue-flow__nodes vue-flow__container"},_P={name:"Nodes",compatConfig:{MODE:3}},bP=t.defineComponent({..._P,setup(e){const{getNodes:n,updateNodeDimensions:o,emits:r}=Le(),i=hP(),a=t.ref();return t.watch(i,l=>{l&&t.nextTick(()=>{r.nodesInitialized(n.value)})},{immediate:!0}),t.onMounted(()=>{a.value=new ResizeObserver(l=>{const s=l.map(c=>({id:c.target.getAttribute("data-id"),nodeElement:c.target,forceUpdate:!0}));t.nextTick(()=>o(s))})}),t.onBeforeUnmount(()=>{var l;return(l=a.value)==null?void 0:l.disconnect()}),(l,s)=>(t.openBlock(),t.createElementBlock("div",yP,[a.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(t.unref(n),(c,d,f,u)=>{const p=[c.id];if(u&&u.key===c.id&&t.isMemoSame(u,p))return u;const m=(t.openBlock(),t.createBlock(t.unref(gP),{id:c.id,key:c.id,"resize-observer":a.value},null,8,["id","resize-observer"]));return m.memo=p,m},s,0),128)):t.createCommentVNode("",!0)]))}});function wP(){const{emits:e}=Le();t.onMounted(()=>{if(_p()){const n=document.querySelector(".vue-flow__pane");n&&window.getComputedStyle(n).zIndex!=="1"&&e.error(new lt(et.MISSING_STYLES))}})}const kP=t.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),CP={name:"VueFlow",compatConfig:{MODE:3}},Up=t.defineComponent({...CP,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:n,emit:o}){const r=e,i=t.useSlots(),a=Cl(r,"modelValue",o),l=Cl(r,"nodes",o),s=Cl(r,"edges",o),c=Le(r),d=cI({modelValue:a,nodes:l,edges:s},r,c);return uI(o,c.hooks),nP(),wP(),t.provide(Vi,i),t.onUnmounted(()=>{d()}),n(c),(f,u)=>(t.openBlock(),t.createElementBlock("div",{ref:t.unref(c).vueFlowRef,class:"vue-flow"},[t.createVNode(XI,null,{default:t.withCtx(()=>[t.createVNode(mP),kP,t.createVNode(bP),t.renderSlot(f.$slots,"zoom-pane")]),_:3}),t.renderSlot(f.$slots,"default"),t.createVNode(tP)],512))}}),EP={name:"Panel",compatConfig:{MODE:3}},NP=t.defineComponent({...EP,props:{position:{}},setup(e){const n=e,{userSelectionActive:o}=Le(),r=t.computed(()=>`${n.position}`.split("-"));return(i,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["vue-flow__panel",r.value]),style:t.normalizeStyle({pointerEvents:t.unref(o)?"none":"all"})},[t.renderSlot(i.$slots,"default")],6))}});var an=(e=>(e.Lines="lines",e.Dots="dots",e))(an||{});const Kp=function({dimensions:e,size:n,color:o}){return t.h("path",{stroke:o,"stroke-width":n,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},jp=function({radius:e,color:n}){return t.h("circle",{cx:e,cy:e,r:e,fill:n})};an.Lines+"",an.Dots+"";const xP={[an.Dots]:"#81818a",[an.Lines]:"#eee"},SP=["id","x","y","width","height","patternTransform"],vP={key:2,height:"100",width:"100"},AP=["fill"],IP=["x","y","fill"],PP={name:"Background",compatConfig:{MODE:3}},TP=t.defineComponent({...PP,props:{id:{},variant:{default:()=>an.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:n,viewport:o}=Le(),r=t.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=t.toRef(()=>`pattern-${n}${e.id?`-${e.id}`:""}`),a=t.toRef(()=>e.color||e.patternColor||xP[e.variant||an.Dots]);return(l,s)=>(t.openBlock(),t.createElementBlock("svg",{class:"vue-flow__background vue-flow__container",style:t.normalizeStyle({height:`${l.height>100?100:l.height}%`,width:`${l.width>100?100:l.width}%`})},[t.renderSlot(l.$slots,"pattern-container",{id:i.value},()=>[t.createElementVNode("pattern",{id:i.value,x:t.unref(o).x%r.value.scaledGap[0],y:t.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"},[t.renderSlot(l.$slots,"pattern",{},()=>[l.variant===t.unref(an).Lines?(t.openBlock(),t.createBlock(t.unref(Kp),{key:0,size:l.lineWidth,color:a.value,dimensions:r.value.scaledGap},null,8,["size","color","dimensions"])):l.variant===t.unref(an).Dots?(t.openBlock(),t.createBlock(t.unref(jp),{key:1,color:a.value,radius:r.value.size/2},null,8,["color","radius"])):t.createCommentVNode("",!0),l.bgColor?(t.openBlock(),t.createElementBlock("svg",vP,[t.createElementVNode("rect",{width:"100%",height:"100%",fill:l.bgColor},null,8,AP)])):t.createCommentVNode("",!0)])],8,SP)]),t.createElementVNode("rect",{x:l.x,y:l.y,width:"100%",height:"100%",fill:`url(#${i.value})`},null,8,IP),t.renderSlot(l.$slots,"default",{id:i.value})],4))}}),OP={name:"ControlButton",compatConfig:{MODE:3}},$P=(e,n)=>{const o=e.__vccOpts||e;for(const[r,i]of n)o[r]=i;return o},BP={class:"vue-flow__controls-button"};function VP(e,n,o,r,i,a){return t.openBlock(),t.createElementBlock("button",BP,[t.renderSlot(e.$slots,"default")])}const yr=$P(OP,[["render",VP]]),RP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},DP=[t.createElementVNode("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1)];function MP(e,n){return t.openBlock(),t.createElementBlock("svg",RP,DP)}const LP={render:MP},FP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},UP=[t.createElementVNode("path",{d:"M0 0h32v4.2H0z"},null,-1)];function KP(e,n){return t.openBlock(),t.createElementBlock("svg",FP,UP)}const jP={render:KP},GP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},qP=[t.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 zP(e,n){return t.openBlock(),t.createElementBlock("svg",GP,qP)}const HP={render:zP},YP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},WP=[t.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 XP(e,n){return t.openBlock(),t.createElementBlock("svg",YP,WP)}const ZP={render:XP},JP={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},QP=[t.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 eT(e,n){return t.openBlock(),t.createElementBlock("svg",JP,QP)}const tT={render:eT},nT={name:"Controls",compatConfig:{MODE:3}},oT=t.defineComponent({...nT,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>Gf.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:n}){const{nodesDraggable:o,nodesConnectable:r,elementsSelectable:i,setInteractive:a,zoomIn:l,zoomOut:s,fitView:c,viewport:d,minZoom:f,maxZoom:u}=Le(),p=t.toRef(()=>o.value||r.value||i.value),m=t.toRef(()=>d.value.zoom<=f.value),g=t.toRef(()=>d.value.zoom>=u.value);function _(){l(),n("zoomIn")}function y(){s(),n("zoomOut")}function h(){c(e.fitViewParams),n("fitView")}function k(){a(!p.value),n("interactionChange",!p.value)}return(b,N)=>(t.openBlock(),t.createBlock(t.unref(NP),{class:"vue-flow__controls",position:b.position},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"top"),b.showZoom?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(b.$slots,"control-zoom-in",{},()=>[t.createVNode(yr,{class:"vue-flow__controls-zoomin",disabled:g.value,onClick:_},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-zoom-in",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(LP))))])]),_:3},8,["disabled"])]),t.renderSlot(b.$slots,"control-zoom-out",{},()=>[t.createVNode(yr,{class:"vue-flow__controls-zoomout",disabled:m.value,onClick:y},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-zoom-out",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(jP))))])]),_:3},8,["disabled"])])],64)):t.createCommentVNode("",!0),b.showFitView?t.renderSlot(b.$slots,"control-fit-view",{key:1},()=>[t.createVNode(yr,{class:"vue-flow__controls-fitview",onClick:h},{default:t.withCtx(()=>[t.renderSlot(b.$slots,"icon-fit-view",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(HP))))])]),_:3})]):t.createCommentVNode("",!0),b.showInteractive?t.renderSlot(b.$slots,"control-interactive",{key:2},()=>[b.showInteractive?(t.openBlock(),t.createBlock(yr,{key:0,class:"vue-flow__controls-interactive",onClick:k},{default:t.withCtx(()=>[p.value?t.renderSlot(b.$slots,"icon-unlock",{key:0},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(tT))))]):t.createCommentVNode("",!0),p.value?t.createCommentVNode("",!0):t.renderSlot(b.$slots,"icon-lock",{key:1},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(ZP))))])]),_:3})):t.createCommentVNode("",!0)]):t.createCommentVNode("",!0),t.renderSlot(b.$slots,"default")]),_:3},8,["position"]))}}),rT=["undo","redo","duplicate","cut","copy","paste"],Gp=()=>{};function iT(e){const n=e;return n?!!n.closest('input, textarea, [contenteditable]:not([contenteditable="false"])'):!1}function aT(e){if(!(e.metaKey||e.ctrlKey))return;switch(e.key.toLowerCase()){case"z":return e.shiftKey?"redo":"undo";case"y":return"redo";case"d":return"duplicate";case"x":return"cut";case"c":return"copy";case"v":return"paste"}}const lT=je.createSharedComposable(()=>{const e=new Set;je.useEventListener("keydown",o=>{if(iT(o.target))return;const r=aT(o);if(r)for(const i of e){if(!t.toValue(i.enabled))continue;const a=i[r];if(a){if(o.defaultPrevented){t.warn(`[useHotkeys] event for "${r}" was already defaultPrevented. Hotkey ignored.`);return}o.preventDefault(),a();return}}},{passive:!1});function n(o){if(!rT.some(i=>typeof o[i]=="function"))return Gp;const r={enabled:o.enabled??!0,...o};return e.add(r),()=>e.delete(r)}return{subscribe:n}});function qp(e={}){if(typeof window>"u")return Gp;const n=lT().subscribe(e);return t.onScopeDispose(n),n}const zp=44,sT=220,Hp=366,cT=1e3,dT=zp+parseFloat(Vu),Ki=1,uT=0,fT=1,pT=2,mT=3,Ao=parseInt(a1,10),_r="application/x-datakit+json",ji={delete:["Delete"],undo:["Mod","Z"],redo:{mac:["Mod","Shift","Z"],windows:["Mod","Y"],linux:["Mod","Shift","Z"]},copy:["Mod","C"],paste:["Mod","V"],duplicate:["Mod","D"]},Cn={padding:80,gaps:{nodes:60,edges:80,ranks:60}},gT=1600,hT=1.2,yT=0,_T=200,Yp=Symbol("confirm-modal"),Io="{key}",Wn={"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}},Gi=Object.keys(Wn).filter(e=>e.includes(Io)).map(e=>e.replace(Io,""));function rs(e){if(!e||!wr(e))return;const n=Gi.find(o=>e.startsWith(o));if(n)return e.slice(n.length).replace(Io,"")}function br(e){if(!e)return null;const n=Gi.find(o=>e.startsWith(o));return n||e}function wr(e){return e?Gi.some(n=>e.startsWith(n)):!1}function Wp(e){return e?wr(e)?br(e)+Io:e:null}function is(e){var o;if(!e)return!1;const n=Wp(e);return n?((o=Wn[n])==null?void 0:o.readable)??!1:!1}function as(e){var o;if(!e)return!1;const n=Wp(e);return n?((o=Wn[n])==null?void 0:o.writable)??!1:!1}function qi(e,n,o){const r=n?hn(e,o,n):void 0;return`${e.name}${r?`.${r.name}`:""}`}function kr(e,n){const o=n(e.source),r=n(e.target);return[qi(o,e.sourceField,"output"),qi(r,e.targetField,"input")]}function ls(e,n,o,r,i){const a=i(e),l=i(o);return[qi(a,n,"output"),qi(l,r,"input")]}function Xp(e){if(e.length===0)throw new Error("getBoundingRect requires at least one rect");let n=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const{x:a,y:l,width:s,height:c}of e){if(![a,l,s,c].every(Number.isFinite))throw new Error("Rect values must be finite numbers");if(s<0||c<0)throw new RangeError("Rect width and height must be non-negative");const d=a+s,f=l+c;if(!Number.isFinite(d)||!Number.isFinite(f))throw new RangeError("Rect boundaries must be finite numbers");a<n&&(n=a),l<o&&(o=l),d>r&&(r=d),f>i&&(i=f)}return{x:n,y:o,width:r-n,height:i-o}}function bT(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wT="\0",Xn="\0",Zp="";let kT=class{constructor(n){rt(this,"_isDirected",!0);rt(this,"_isMultigraph",!1);rt(this,"_isCompound",!1);rt(this,"_label");rt(this,"_defaultNodeLabelFn",()=>{});rt(this,"_defaultEdgeLabelFn",()=>{});rt(this,"_nodes",{});rt(this,"_in",{});rt(this,"_preds",{});rt(this,"_out",{});rt(this,"_sucs",{});rt(this,"_edgeObjs",{});rt(this,"_edgeLabels",{});rt(this,"_nodeCount",0);rt(this,"_edgeCount",0);rt(this,"_parent");rt(this,"_children");n&&(this._isDirected=Object.hasOwn(n,"directed")?n.directed:!0,this._isMultigraph=Object.hasOwn(n,"multigraph")?n.multigraph:!1,this._isCompound=Object.hasOwn(n,"compound")?n.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[Xn]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return this._defaultNodeLabelFn=n,typeof n!="function"&&(this._defaultNodeLabelFn=()=>n),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var n=this;return this.nodes().filter(o=>Object.keys(n._in[o]).length===0)}sinks(){var n=this;return this.nodes().filter(o=>Object.keys(n._out[o]).length===0)}setNodes(n,o){var r=arguments,i=this;return n.forEach(function(a){r.length>1?i.setNode(a,o):i.setNode(a)}),this}setNode(n,o){return Object.hasOwn(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=o),this):(this._nodes[n]=arguments.length>1?o:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=Xn,this._children[n]={},this._children[Xn][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return Object.hasOwn(this._nodes,n)}removeNode(n){var o=this;if(Object.hasOwn(this._nodes,n)){var r=i=>o.removeEdge(o._edgeObjs[i]);delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],this.children(n).forEach(function(i){o.setParent(i)}),delete this._children[n]),Object.keys(this._in[n]).forEach(r),delete this._in[n],delete this._preds[n],Object.keys(this._out[n]).forEach(r),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,o){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(o===void 0)o=Xn;else{o+="";for(var r=o;r!==void 0;r=this.parent(r))if(r===n)throw new Error("Setting "+o+" as parent of "+n+" would create a cycle");this.setNode(o)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=o,this._children[o][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var o=this._parent[n];if(o!==Xn)return o}}children(n=Xn){if(this._isCompound){var o=this._children[n];if(o)return Object.keys(o)}else{if(n===Xn)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var o=this._preds[n];if(o)return Object.keys(o)}successors(n){var o=this._sucs[n];if(o)return Object.keys(o)}neighbors(n){var o=this.predecessors(n);if(o){const i=new Set(o);for(var r of this.successors(n))i.add(r);return Array.from(i.values())}}isLeaf(n){var o;return this.isDirected()?o=this.successors(n):o=this.neighbors(n),o.length===0}filterNodes(n){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]){n(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(n){return this._defaultEdgeLabelFn=n,typeof n!="function"&&(this._defaultEdgeLabelFn=()=>n),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(n,o){var r=this,i=arguments;return n.reduce(function(a,l){return i.length>1?r.setEdge(a,l,o):r.setEdge(a,l),l}),this}setEdge(){var n,o,r,i,a=!1,l=arguments[0];typeof l=="object"&&l!==null&&"v"in l?(n=l.v,o=l.w,r=l.name,arguments.length===2&&(i=arguments[1],a=!0)):(n=l,o=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),n=""+n,o=""+o,r!==void 0&&(r=""+r);var s=Cr(this._isDirected,n,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(n),this.setNode(o),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(n,o,r);var c=CT(this._isDirected,n,o,r);return n=c.v,o=c.w,Object.freeze(c),this._edgeObjs[s]=c,Jp(this._preds[o],n),Jp(this._sucs[n],o),this._in[o][s]=c,this._out[n][s]=c,this._edgeCount++,this}edge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r);return this._edgeLabels[i]}edgeAsObj(){const n=this.edge(...arguments);return typeof n!="object"?{label:n}:n}hasEdge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r);return Object.hasOwn(this._edgeLabels,i)}removeEdge(n,o,r){var i=arguments.length===1?ss(this._isDirected,arguments[0]):Cr(this._isDirected,n,o,r),a=this._edgeObjs[i];return a&&(n=a.v,o=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Qp(this._preds[o],n),Qp(this._sucs[n],o),delete this._in[o][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,o){var r=this._in[n];if(r){var i=Object.values(r);return o?i.filter(a=>a.v===o):i}}outEdges(n,o){var r=this._out[n];if(r){var i=Object.values(r);return o?i.filter(a=>a.w===o):i}}nodeEdges(n,o){var r=this.inEdges(n,o);if(r)return r.concat(this.outEdges(n,o))}};function Jp(e,n){e[n]?e[n]++:e[n]=1}function Qp(e,n){--e[n]||delete e[n]}function Cr(e,n,o,r){var i=""+n,a=""+o;if(!e&&i>a){var l=i;i=a,a=l}return i+Zp+a+Zp+(r===void 0?wT:r)}function CT(e,n,o,r){var i=""+n,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 ss(e,n){return Cr(e,n.v,n.w,n.name)}var cs=kT,ET="2.2.4",NT={Graph:cs,version:ET},xT=cs,ST={write:vT,read:PT};function vT(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:AT(e),edges:IT(e)};return e.graph()!==void 0&&(n.value=structuredClone(e.graph())),n}function AT(e){return e.nodes().map(function(n){var o=e.node(n),r=e.parent(n),i={v:n};return o!==void 0&&(i.value=o),r!==void 0&&(i.parent=r),i})}function IT(e){return e.edges().map(function(n){var o=e.edge(n),r={v:n.v,w:n.w};return n.name!==void 0&&(r.name=n.name),o!==void 0&&(r.value=o),r})}function PT(e){var n=new xT(e.options).setGraph(e.value);return e.nodes.forEach(function(o){n.setNode(o.v,o.value),o.parent&&n.setParent(o.v,o.parent)}),e.edges.forEach(function(o){n.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),n}var TT=OT;function OT(e){var n={},o=[],r;function i(a){Object.hasOwn(n,a)||(n[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 em=class{constructor(){rt(this,"_arr",[]);rt(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var o=this._keyIndices[n];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(n,o){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var i=this._arr,a=i.length;return r[n]=a,i.push({key:n,priority:o}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,o){var r=this._keyIndices[n];if(o>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+o);this._arr[r].priority=o,this._decrease(r)}_heapify(n){var o=this._arr,r=2*n,i=r+1,a=n;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!==n&&(this._swap(n,a),this._heapify(a)))}_decrease(n){for(var o=this._arr,r=o[n].priority,i;n!==0&&(i=n>>1,!(o[i].priority<r));)this._swap(n,i),n=i}_swap(n,o){var r=this._arr,i=this._keyIndices,a=r[n],l=r[o];r[n]=l,r[o]=a,i[l.key]=n,i[a.key]=o}},$T=em,tm=VT,BT=()=>1;function VT(e,n,o,r){return RT(e,String(n),o||BT,r||function(i){return e.outEdges(i)})}function RT(e,n,o,r){var i={},a=new $T,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===n?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 DT=tm,MT=LT;function LT(e,n,o){return e.nodes().reduce(function(r,i){return r[i]=DT(e,i,n,o),r},{})}var nm=FT;function FT(e){var n=0,o=[],r={},i=[];function a(l){var s=r[l]={onStack:!0,lowlink:n,index:n++};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 UT=nm,KT=jT;function jT(e){return UT(e).filter(function(n){return n.length>1||n.length===1&&e.hasEdge(n[0],n[0])})}var GT=zT,qT=()=>1;function zT(e,n,o){return HT(e,n||qT,o||function(r){return e.outEdges(r)})}function HT(e,n,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=n(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 om(e){var n={},o={},r=[];function i(a){if(Object.hasOwn(o,a))throw new ds;Object.hasOwn(n,a)||(o[a]=!0,n[a]=!0,e.predecessors(a).forEach(i),delete o[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(n).length!==e.nodeCount())throw new ds;return r}class ds extends Error{constructor(){super(...arguments)}}var rm=om;om.CycleException=ds;var im=rm,YT=WT;function WT(e){try{im(e)}catch(n){if(n instanceof im.CycleException)return!1;throw n}return!0}var am=XT;function XT(e,n,o){Array.isArray(n)||(n=[n]);var r=e.isDirected()?s=>e.successors(s):s=>e.neighbors(s),i=o==="post"?ZT:JT,a=[],l={};return n.forEach(s=>{if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);i(s,r,l,a)}),a}function ZT(e,n,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]),lm(n(a[0]),l=>i.push([l,!1])))}}function JT(e,n,o,r){for(var i=[e];i.length>0;){var a=i.pop();Object.hasOwn(o,a)||(o[a]=!0,r.push(a),lm(n(a),l=>i.push(l)))}}function lm(e,n){for(var o=e.length;o--;)n(e[o],o,e);return e}var QT=am,eO=tO;function tO(e,n){return QT(e,n,"post")}var nO=am,oO=rO;function rO(e,n){return nO(e,n,"pre")}var iO=cs,aO=em,lO=sO;function sO(e,n){var o=new iO,r={},i=new aO,a;function l(c){var d=c.v===a?c.w:c.v,f=i.priority(d);if(f!==void 0){var u=n(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 cO={components:TT,dijkstra:tm,dijkstraAll:MT,findCycles:KT,floydWarshall:GT,isAcyclic:YT,postorder:eO,preorder:oO,prim:lO,tarjan:nm,topsort:rm},sm=NT,Lt={Graph:sm.Graph,json:ST,alg:cO,version:sm.version};let dO=class{constructor(){let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let n=this._sentinel,o=n._prev;if(o!==n)return cm(o),o}enqueue(n){let o=this._sentinel;n._prev&&n._next&&cm(n),n._next=o._next,o._next._prev=n,o._next=n,n._prev=o}toString(){let n=[],o=this._sentinel,r=o._prev;for(;r!==o;)n.push(JSON.stringify(r,uO)),r=r._prev;return"["+n.join(", ")+"]"}};function cm(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function uO(e,n){if(e!=="_next"&&e!=="_prev")return n}var fO=dO;let pO=Lt.Graph,mO=fO;var gO=yO;let hO=()=>1;function yO(e,n){if(e.nodeCount()<=1)return[];let o=bO(e,n||hO);return _O(o.graph,o.buckets,o.zeroIdx).flatMap(i=>e.outEdges(i.v,i.w))}function _O(e,n,o){let r=[],i=n[n.length-1],a=n[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)us(e,n,o,l);for(;l=i.dequeue();)us(e,n,o,l);if(e.nodeCount()){for(let s=n.length-2;s>0;--s)if(l=n[s].dequeue(),l){r=r.concat(us(e,n,o,l,!0));break}}}return r}function us(e,n,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,fs(n,o,c)}),e.outEdges(r.v).forEach(l=>{let s=e.edge(l),c=l.w,d=e.node(c);d.in-=s,fs(n,o,d)}),e.removeNode(r.v),a}function bO(e,n){let o=new pO,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=n(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=wO(i+r+3).map(()=>new mO),l=r+1;return o.nodes().forEach(s=>{fs(a,l,o.node(s))}),{graph:o,buckets:a,zeroIdx:l}}function fs(e,n,o){o.out?o.in?e[o.out-o.in+n].enqueue(o):e[e.length-1].enqueue(o):e[0].enqueue(o)}function wO(e){const n=[];for(let o=0;o<e;o++)n.push(o);return n}let dm=Lt.Graph;var nt={addBorderNode:IO,addDummyNode:um,applyWithChunking:zi,asNonCompoundGraph:CO,buildLayerMatrix:SO,intersectRect:xO,mapValues:RO,maxRank:pm,normalizeRanks:vO,notime:$O,partition:TO,pick:VO,predecessorWeights:NO,range:gm,removeEmptyRanks:AO,simplify:kO,successorWeights:EO,time:OO,uniqueId:mm,zipObject:ps};function um(e,n,o,r){for(var i=r;e.hasNode(i);)i=mm(r);return o.dummy=n,e.setNode(i,o),i}function kO(e){let n=new dm().setGraph(e.graph());return e.nodes().forEach(o=>n.setNode(o,e.node(o))),e.edges().forEach(o=>{let r=n.edge(o.v,o.w)||{weight:0,minlen:1},i=e.edge(o);n.setEdge(o.v,o.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),n}function CO(e){let n=new dm({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(o=>{e.children(o).length||n.setNode(o,e.node(o))}),e.edges().forEach(o=>{n.setEdge(o,e.edge(o))}),n}function EO(e){let n=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 ps(e.nodes(),n)}function NO(e){let n=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 ps(e.nodes(),n)}function xO(e,n){let o=e.x,r=e.y,i=n.x-o,a=n.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 SO(e){let n=gm(pm(e)+1).map(()=>[]);return e.nodes().forEach(o=>{let r=e.node(o),i=r.rank;i!==void 0&&(n[i][r.order]=o)}),n}function vO(e){let n=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MAX_VALUE:i}),o=zi(Math.min,n);e.nodes().forEach(r=>{let i=e.node(r);Object.hasOwn(i,"rank")&&(i.rank-=o)})}function AO(e){let n=e.nodes().map(l=>e.node(l).rank),o=zi(Math.min,n),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 IO(e,n,o,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=o,i.order=r),um(e,"border",i,n)}function PO(e,n=fm){const o=[];for(let r=0;r<e.length;r+=n){const i=e.slice(r,r+n);o.push(i)}return o}const fm=65535;function zi(e,n){if(n.length>fm){const o=PO(n);return e.apply(null,o.map(r=>e.apply(null,r)))}else return e.apply(null,n)}function pm(e){const o=e.nodes().map(r=>{let i=e.node(r).rank;return i===void 0?Number.MIN_VALUE:i});return zi(Math.max,o)}function TO(e,n){let o={lhs:[],rhs:[]};return e.forEach(r=>{n(r)?o.lhs.push(r):o.rhs.push(r)}),o}function OO(e,n){let o=Date.now();try{return n()}finally{console.log(e+" time: "+(Date.now()-o)+"ms")}}function $O(e,n){return n()}let BO=0;function mm(e){var n=++BO;return e+(""+n)}function gm(e,n,o=1){n==null&&(n=e,e=0);let r=a=>a<n;o<0&&(r=a=>n<a);const i=[];for(let a=e;r(a);a+=o)i.push(a);return i}function VO(e,n){const o={};for(const r of n)e[r]!==void 0&&(o[r]=e[r]);return o}function RO(e,n){let o=n;return typeof n=="string"&&(o=r=>r[n]),Object.entries(e).reduce((r,[i,a])=>(r[i]=o(a,i),r),{})}function ps(e,n){return e.reduce((o,r,i)=>(o[r]=n[i],o),{})}let DO=gO,MO=nt.uniqueId;var LO={run:FO,undo:KO};function FO(e){(e.graph().acyclicer==="greedy"?DO(e,o(e)):UO(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,MO("rev"))});function o(r){return i=>r.edge(i).weight}}function UO(e){let n=[],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)?n.push(l):i(l.w)}),delete o[a])}return e.nodes().forEach(i),n}function KO(e){e.edges().forEach(n=>{let o=e.edge(n);if(o.reversed){e.removeEdge(n);let r=o.forwardName;delete o.reversed,delete o.forwardName,e.setEdge(n.w,n.v,o,r)}})}let jO=nt;var GO={run:qO,undo:HO};function qO(e){e.graph().dummyChains=[],e.edges().forEach(n=>zO(e,n))}function zO(e,n){let o=n.v,r=e.node(o).rank,i=n.w,a=e.node(i).rank,l=n.name,s=e.edge(n),c=s.labelRank;if(a===r+1)return;e.removeEdge(n);let d,f,u;for(u=0,++r;r<a;++u,++r)s.points=[],f={width:0,height:0,edgeLabel:s,edgeObj:n,rank:r},d=jO.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 HO(e){e.graph().dummyChains.forEach(n=>{let o=e.node(n),r=o.edgeLabel,i;for(e.setEdge(o.edgeObj,r);o.dummy;)i=e.successors(n)[0],e.removeNode(n),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),n=i,o=e.node(n)})}const{applyWithChunking:YO}=nt;var Hi={longestPath:WO,slack:XO};function WO(e){var n={};function o(r){var i=e.node(r);if(Object.hasOwn(n,r))return i.rank;n[r]=!0;let a=e.outEdges(r).map(s=>s==null?Number.POSITIVE_INFINITY:o(s.w)-e.edge(s).minlen);var l=YO(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(o)}function XO(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}var ZO=Lt.Graph,Yi=Hi.slack,hm=JO;function JO(e){var n=new ZO({directed:!1}),o=e.nodes()[0],r=e.nodeCount();n.setNode(o,{});for(var i,a;QO(n,e)<r;)i=e$(n,e),a=n.hasNode(i.v)?Yi(e,i):-Yi(e,i),t$(n,e,a);return n}function QO(e,n){function o(r){n.nodeEdges(r).forEach(i=>{var a=i.v,l=r===a?i.w:a;!e.hasNode(l)&&!Yi(n,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),o(l))})}return e.nodes().forEach(o),e.nodeCount()}function e$(e,n){return n.edges().reduce((r,i)=>{let a=Number.POSITIVE_INFINITY;return e.hasNode(i.v)!==e.hasNode(i.w)&&(a=Yi(n,i)),a<r[0]?[a,i]:r},[Number.POSITIVE_INFINITY,null])[1]}function t$(e,n,o){e.nodes().forEach(r=>n.node(r).rank+=o)}var n$=hm,ym=Hi.slack,o$=Hi.longestPath,r$=Lt.alg.preorder,i$=Lt.alg.postorder,a$=nt.simplify,l$=Zn;Zn.initLowLimValues=gs,Zn.initCutValues=ms,Zn.calcCutValue=_m,Zn.leaveEdge=wm,Zn.enterEdge=km,Zn.exchangeEdges=Cm;function Zn(e){e=a$(e),o$(e);var n=n$(e);gs(n),ms(n,e);for(var o,r;o=wm(n);)r=km(n,e,o),Cm(n,e,o,r)}function ms(e,n){var o=i$(e,e.nodes());o=o.slice(0,o.length-1),o.forEach(r=>s$(e,n,r))}function s$(e,n,o){var r=e.node(o),i=r.parent;e.edge(o,i).cutvalue=_m(e,n,o)}function _m(e,n,o){var r=e.node(o),i=r.parent,a=!0,l=n.edge(o,i),s=0;return l||(a=!1,l=n.edge(i,o)),s=l.weight,n.nodeEdges(o).forEach(c=>{var d=c.v===o,f=d?c.w:c.v;if(f!==i){var u=d===a,p=n.edge(c).weight;if(s+=u?p:-p,d$(e,o,f)){var m=e.edge(o,f).cutvalue;s+=u?-m:m}}}),s}function gs(e,n){arguments.length<2&&(n=e.nodes()[0]),bm(e,{},1,n)}function bm(e,n,o,r,i){var a=o,l=e.node(r);return n[r]=!0,e.neighbors(r).forEach(s=>{Object.hasOwn(n,s)||(o=bm(e,n,o,s,r))}),l.low=a,l.lim=o++,i?l.parent=i:delete l.parent,o}function wm(e){return e.edges().find(n=>e.edge(n).cutvalue<0)}function km(e,n,o){var r=o.v,i=o.w;n.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=n.edges().filter(f=>c===Em(e,e.node(f.v),s)&&c!==Em(e,e.node(f.w),s));return d.reduce((f,u)=>ym(n,u)<ym(n,f)?u:f)}function Cm(e,n,o,r){var i=o.v,a=o.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),gs(e),ms(e,n),c$(e,n)}function c$(e,n){var o=e.nodes().find(i=>!n.node(i).parent),r=r$(e,o);r=r.slice(1),r.forEach(i=>{var a=e.node(i).parent,l=n.edge(i,a),s=!1;l||(l=n.edge(a,i),s=!0),n.node(i).rank=n.node(a).rank+(s?l.minlen:-l.minlen)})}function d$(e,n,o){return e.hasEdge(n,o)}function Em(e,n,o){return o.low<=n.lim&&n.lim<=o.lim}var u$=Hi,Nm=u$.longestPath,f$=hm,p$=l$,m$=g$;function g$(e){var n=e.graph().ranker;if(n instanceof Function)return n(e);switch(e.graph().ranker){case"network-simplex":xm(e);break;case"tight-tree":y$(e);break;case"longest-path":h$(e);break;case"none":break;default:xm(e)}}var h$=Nm;function y$(e){Nm(e),f$(e)}function xm(e){p$(e)}var _$=b$;function b$(e){let n=k$(e);e.graph().dummyChains.forEach(o=>{let r=e.node(o),i=r.edgeObj,a=w$(e,n,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 w$(e,n,o,r){let i=[],a=[],l=Math.min(n[o].low,n[r].low),s=Math.max(n[o].lim,n[r].lim),c,d;c=o;do c=e.parent(c),i.push(c);while(c&&(n[c].low>l||s>n[c].lim));for(d=c,c=r;(c=e.parent(c))!==d;)a.push(c);return{path:i.concat(a.reverse()),lca:d}}function k$(e){let n={},o=0;function r(i){let a=o;e.children(i).forEach(r),n[i]={low:a,lim:o++}}return e.children().forEach(r),n}let Wi=nt;var C$={run:E$,cleanup:S$};function E$(e){let n=Wi.addDummyNode(e,"root",{},"_root"),o=N$(e),r=Object.values(o),i=Wi.applyWithChunking(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=n,e.edges().forEach(s=>e.edge(s).minlen*=a);let l=x$(e)+1;e.children().forEach(s=>Sm(e,n,a,l,i,o,s)),e.graph().nodeRankFactor=a}function Sm(e,n,o,r,i,a,l){let s=e.children(l);if(!s.length){l!==n&&e.setEdge(n,l,{weight:0,minlen:o});return}let c=Wi.addBorderNode(e,"_bt"),d=Wi.addBorderNode(e,"_bb"),f=e.node(l);e.setParent(c,l),f.borderTop=c,e.setParent(d,l),f.borderBottom=d,s.forEach(u=>{Sm(e,n,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,y=m!==g?1:i-a[l]+1;e.setEdge(c,m,{weight:_,minlen:y,nestingEdge:!0}),e.setEdge(g,d,{weight:_,minlen:y,nestingEdge:!0})}),e.parent(l)||e.setEdge(n,c,{weight:0,minlen:i+a[l]})}function N$(e){var n={};function o(r,i){var a=e.children(r);a&&a.length&&a.forEach(l=>o(l,i+1)),n[r]=i}return e.children().forEach(r=>o(r,1)),n}function x$(e){return e.edges().reduce((n,o)=>n+e.edge(o).weight,0)}function S$(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,e.edges().forEach(o=>{var r=e.edge(o);r.nestingEdge&&e.removeEdge(o)})}let v$=nt;var A$=I$;function I$(e){function n(o){let r=e.children(o),i=e.node(o);if(r.length&&r.forEach(n),Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,l=i.maxRank+1;a<l;++a)vm(e,"borderLeft","_bl",o,i,a),vm(e,"borderRight","_br",o,i,a)}}e.children().forEach(n)}function vm(e,n,o,r,i,a){let l={width:0,height:0,rank:a,borderType:n},s=i[n][a-1],c=v$.addDummyNode(e,"border",l,o);i[n][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}var P$={adjust:T$,undo:O$};function T$(e){let n=e.graph().rankdir.toLowerCase();(n==="lr"||n==="rl")&&Am(e)}function O$(e){let n=e.graph().rankdir.toLowerCase();(n==="bt"||n==="rl")&&$$(e),(n==="lr"||n==="rl")&&(B$(e),Am(e))}function Am(e){e.nodes().forEach(n=>Im(e.node(n))),e.edges().forEach(n=>Im(e.edge(n)))}function Im(e){let n=e.width;e.width=e.height,e.height=n}function $$(e){e.nodes().forEach(n=>hs(e.node(n))),e.edges().forEach(n=>{let o=e.edge(n);o.points.forEach(hs),Object.hasOwn(o,"y")&&hs(o)})}function hs(e){e.y=-e.y}function B$(e){e.nodes().forEach(n=>ys(e.node(n))),e.edges().forEach(n=>{let o=e.edge(n);o.points.forEach(ys),Object.hasOwn(o,"x")&&ys(o)})}function ys(e){let n=e.x;e.x=e.y,e.y=n}let Pm=nt;var V$=R$;function R$(e){let n={},o=e.nodes().filter(c=>!e.children(c).length),r=o.map(c=>e.node(c).rank),i=Pm.applyWithChunking(Math.max,r),a=Pm.range(i+1).map(()=>[]);function l(c){if(n[c])return;n[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 D$=nt.zipObject;var M$=L$;function L$(e,n){let o=0;for(let r=1;r<n.length;++r)o+=F$(e,n[r-1],n[r]);return o}function F$(e,n,o){let r=D$(o,o.map((d,f)=>f)),i=n.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 U$=K$;function K$(e,n=[]){return n.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 j$=nt;var G$=q$;function q$(e,n){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)}),n.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 z$(r)}function z$(e){let n=[];function o(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&H$(i,a)}}function r(i){return a=>{a.in.push(i),--a.indegree===0&&e.push(a)}}for(;e.length;){let i=e.pop();n.push(i),i.in.reverse().forEach(o(i)),i.out.forEach(r(i))}return n.filter(i=>!i.merged).map(i=>j$.pick(i,["vs","i","barycenter","weight"]))}function H$(e,n){let o=0,r=0;e.weight&&(o+=e.barycenter*e.weight,r+=e.weight),n.weight&&(o+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=o/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}let Y$=nt;var W$=X$;function X$(e,n){let o=Y$.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(Z$(!!n)),c=Tm(a,i,c),r.forEach(f=>{c+=f.vs.length,a.push(f.vs),l+=f.barycenter*f.weight,s+=f.weight,c=Tm(a,i,c)});let d={vs:a.flat(!0)};return s&&(d.barycenter=l/s,d.weight=s),d}function Tm(e,n,o){let r;for(;n.length&&(r=n[n.length-1]).i<=o;)n.pop(),e.push(r.vs),o++;return o}function Z$(e){return(n,o)=>n.barycenter<o.barycenter?-1:n.barycenter>o.barycenter?1:e?o.i-n.i:n.i-o.i}let J$=U$,Q$=G$,eB=W$;var tB=Om;function Om(e,n,o,r){let i=e.children(n),a=e.node(n),l=a?a.borderLeft:void 0,s=a?a.borderRight:void 0,c={};l&&(i=i.filter(p=>p!==l&&p!==s));let d=J$(e,i);d.forEach(p=>{if(e.children(p.v).length){let m=Om(e,p.v,o,r);c[p.v]=m,Object.hasOwn(m,"barycenter")&&oB(p,m)}});let f=Q$(d,o);nB(f,c);let u=eB(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 nB(e,n){e.forEach(o=>{o.vs=o.vs.flatMap(r=>n[r]?n[r].vs:r)})}function oB(e,n){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight):(e.barycenter=n.barycenter,e.weight=n.weight)}let rB=Lt.Graph,iB=nt;var aB=lB;function lB(e,n,o){let r=sB(e),i=new rB({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===n||l.minRank<=n&&n<=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[n],borderRight:l.borderRight[n]}))}),i}function sB(e){for(var n;e.hasNode(n=iB.uniqueId("_root")););return n}var cB=dB;function dB(e,n,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){n.setEdge(c,l);return}l=s}})}let uB=V$,fB=M$,pB=tB,mB=aB,gB=cB,hB=Lt.Graph,Xi=nt;var yB=$m;function $m(e,n){if(n&&typeof n.customOrder=="function"){n.customOrder(e,$m);return}let o=Xi.maxRank(e),r=Bm(e,Xi.range(1,o+1),"inEdges"),i=Bm(e,Xi.range(o-1,-1,-1),"outEdges"),a=uB(e);if(Vm(e,a),n&&n.disableOptimalOrderHeuristic)return;let l=Number.POSITIVE_INFINITY,s;for(let c=0,d=0;d<4;++c,++d){_B(c%2?r:i,c%4>=2),a=Xi.buildLayerMatrix(e);let f=fB(e,a);f<l&&(d=0,s=Object.assign({},a),l=f)}Vm(e,s)}function Bm(e,n,o){return n.map(function(r){return mB(e,r,o)})}function _B(e,n){let o=new hB;e.forEach(function(r){let i=r.graph().root,a=pB(r,i,o,n);a.vs.forEach((l,s)=>r.node(l).order=s),gB(r,o,a.vs)})}function Vm(e,n){Object.values(n).forEach(o=>o.forEach((r,i)=>e.node(r).order=i))}let bB=Lt.Graph,ln=nt;var wB={positionX:TB};function kB(e,n){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=EB(e,f),m=p?e.node(p).order:c;(p||f===d)&&(a.slice(s,u+1).forEach(g=>{e.predecessors(g).forEach(_=>{let y=e.node(_),h=y.order;(h<l||m<h)&&!(y.dummy&&e.node(g).dummy)&&Rm(o,_,g)})}),s=u+1,l=m)}),a}return n.length&&n.reduce(r),o}function CB(e,n){let o={};function r(a,l,s,c,d){let f;ln.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)&&Rm(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 n.length&&n.reduce(i),o}function EB(e,n){if(e.node(n).dummy)return e.predecessors(n).find(o=>e.node(o).dummy)}function Rm(e,n,o){if(n>o){let i=n;n=o,o=i}let r=e[n];r||(e[n]=r={}),r[o]=!0}function NB(e,n,o){if(n>o){let r=n;n=o,o=r}return!!e[n]&&Object.hasOwn(e[n],o)}function xB(e,n,o,r){let i={},a={},l={};return n.forEach(s=>{s.forEach((c,d)=>{i[c]=c,a[c]=c,l[c]=d})}),n.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]&&!NB(o,d,g)&&(a[g]=d,a[d]=i[d]=i[g],c=l[g])}}})}),{root:i,align:a}}function SB(e,n,o,r,i){let a={},l=vB(e,n,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 vB(e,n,o,r){let i=new bB,a=e.graph(),l=OB(a.nodesep,a.edgesep,r);return n.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 AB(e,n){return Object.values(n).reduce((o,r)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([s,c])=>{let d=$B(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 IB(e,n){let o=Object.values(n),r=ln.applyWithChunking(Math.min,o),i=ln.applyWithChunking(Math.max,o);["u","d"].forEach(a=>{["l","r"].forEach(l=>{let s=a+l,c=e[s];if(c===n)return;let d=Object.values(c),f=r-ln.applyWithChunking(Math.min,d);l!=="l"&&(f=i-ln.applyWithChunking(Math.max,d)),f&&(e[s]=ln.mapValues(c,u=>u+f))})})}function PB(e,n){return ln.mapValues(e.ul,(o,r)=>{if(n)return e[n.toLowerCase()][r];{let i=Object.values(e).map(a=>a[r]).sort((a,l)=>a-l);return(i[1]+i[2])/2}})}function TB(e){let n=ln.buildLayerMatrix(e),o=Object.assign(kB(e,n),CB(e,n)),r={},i;["u","d"].forEach(l=>{i=l==="u"?n:Object.values(n).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=xB(e,i,o,c),f=SB(e,i,d.root,d.align,s==="r");s==="r"&&(f=ln.mapValues(f,u=>-u)),r[l+s]=f})});let a=AB(e,r);return IB(r,a),PB(r,e.graph().align)}function OB(e,n,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?n:e)/2,c+=(s.dummy?n: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 $B(e,n){return e.node(n).width}let Dm=nt,BB=wB.positionX;var VB=RB;function RB(e){e=Dm.asNonCompoundGraph(e),DB(e),Object.entries(BB(e)).forEach(([n,o])=>e.node(n).x=o)}function DB(e){let n=Dm.buildLayerMatrix(e),o=e.graph().ranksep,r=0;n.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 Mm=LO,Lm=GO,MB=m$,LB=nt.normalizeRanks,FB=_$,UB=nt.removeEmptyRanks,Fm=C$,KB=A$,Um=P$,jB=yB,GB=VB,Ot=nt,qB=Lt.Graph;var zB=HB;function HB(e,n){let o=n&&n.debugTiming?Ot.time:Ot.notime;o("layout",()=>{let r=o(" buildLayoutGraph",()=>oV(e));o(" runLayout",()=>YB(r,o,n)),o(" updateInputGraph",()=>WB(e,r))})}function YB(e,n,o){n(" makeSpaceForEdgeLabels",()=>rV(e)),n(" removeSelfEdges",()=>pV(e)),n(" acyclic",()=>Mm.run(e)),n(" nestingGraph.run",()=>Fm.run(e)),n(" rank",()=>MB(Ot.asNonCompoundGraph(e))),n(" injectEdgeLabelProxies",()=>iV(e)),n(" removeEmptyRanks",()=>UB(e)),n(" nestingGraph.cleanup",()=>Fm.cleanup(e)),n(" normalizeRanks",()=>LB(e)),n(" assignRankMinMax",()=>aV(e)),n(" removeEdgeLabelProxies",()=>lV(e)),n(" normalize.run",()=>Lm.run(e)),n(" parentDummyChains",()=>FB(e)),n(" addBorderSegments",()=>KB(e)),n(" order",()=>jB(e,o)),n(" insertSelfEdges",()=>mV(e)),n(" adjustCoordinateSystem",()=>Um.adjust(e)),n(" position",()=>GB(e)),n(" positionSelfEdges",()=>gV(e)),n(" removeBorderNodes",()=>fV(e)),n(" normalize.undo",()=>Lm.undo(e)),n(" fixupEdgeLabelCoords",()=>dV(e)),n(" undoCoordinateSystem",()=>Um.undo(e)),n(" translateGraph",()=>sV(e)),n(" assignNodeIntersects",()=>cV(e)),n(" reversePoints",()=>uV(e)),n(" acyclic.undo",()=>Mm.undo(e))}function WB(e,n){e.nodes().forEach(o=>{let r=e.node(o),i=n.node(o);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,n.children(o).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(o=>{let r=e.edge(o),i=n.edge(o);r.points=i.points,Object.hasOwn(i,"x")&&(r.x=i.x,r.y=i.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}let XB=["nodesep","edgesep","ranksep","marginx","marginy"],ZB={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},JB=["acyclicer","ranker","rankdir","align"],QB=["width","height","rank"],Km={width:0,height:0},eV=["minlen","weight","width","height","labeloffset"],tV={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nV=["labelpos"];function oV(e){let n=new qB({multigraph:!0,compound:!0}),o=bs(e.graph());return n.setGraph(Object.assign({},ZB,_s(o,XB),Ot.pick(o,JB))),e.nodes().forEach(r=>{let i=bs(e.node(r));const a=_s(i,QB);Object.keys(Km).forEach(l=>{a[l]===void 0&&(a[l]=Km[l])}),n.setNode(r,a),n.setParent(r,e.parent(r))}),e.edges().forEach(r=>{let i=bs(e.edge(r));n.setEdge(r,Object.assign({},tV,_s(i,eV),Ot.pick(i,nV)))}),n}function rV(e){let n=e.graph();n.ranksep/=2,e.edges().forEach(o=>{let r=e.edge(o);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function iV(e){e.edges().forEach(n=>{let o=e.edge(n);if(o.width&&o.height){let r=e.node(n.v),a={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};Ot.addDummyNode(e,"edge-proxy",a,"_ep")}})}function aV(e){let n=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,n=Math.max(n,r.maxRank))}),e.graph().maxRank=n}function lV(e){e.nodes().forEach(n=>{let o=e.node(n);o.dummy==="edge-proxy"&&(e.edge(o.e).labelRank=o.rank,e.removeNode(n))})}function sV(e){let n=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;n=Math.min(n,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)}),n-=l,r-=s,e.nodes().forEach(d=>{let f=e.node(d);f.x-=n,f.y-=r}),e.edges().forEach(d=>{let f=e.edge(d);f.points.forEach(u=>{u.x-=n,u.y-=r}),Object.hasOwn(f,"x")&&(f.x-=n),Object.hasOwn(f,"y")&&(f.y-=r)}),a.width=o-n+l,a.height=i-r+s}function cV(e){e.edges().forEach(n=>{let o=e.edge(n),r=e.node(n.v),i=e.node(n.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(Ot.intersectRect(r,a)),o.points.push(Ot.intersectRect(i,l))})}function dV(e){e.edges().forEach(n=>{let o=e.edge(n);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 uV(e){e.edges().forEach(n=>{let o=e.edge(n);o.reversed&&o.points.reverse()})}function fV(e){e.nodes().forEach(n=>{if(e.children(n).length){let o=e.node(n),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(n=>{e.node(n).dummy==="border"&&e.removeNode(n)})}function pV(e){e.edges().forEach(n=>{if(n.v===n.w){var o=e.node(n.v);o.selfEdges||(o.selfEdges=[]),o.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function mV(e){var n=Ot.buildLayerMatrix(e);n.forEach(o=>{var r=0;o.forEach((i,a)=>{var l=e.node(i);l.order=a+r,(l.selfEdges||[]).forEach(s=>{Ot.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 gV(e){e.nodes().forEach(n=>{var o=e.node(n);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(n),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 _s(e,n){return Ot.mapValues(Ot.pick(e,n),Number)}function bs(e){var n={};return e&&Object.entries(e).forEach(([o,r])=>{typeof o=="string"&&(o=o.toLowerCase()),n[o]=r}),n}let hV=nt,yV=Lt.Graph;var _V={debugOrdering:bV};function bV(e){let n=hV.buildLayerMatrix(e),o=new yV({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)),n.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 wV="1.1.5",kV={graphlib:Lt,layout:zB,debug:_V,util:{time:nt.time,notime:nt.notime},version:wV};const jm=bT(kV);function CV(e){const{branchLayout:n,phase:o,layoutOptions:r,nodes:i,edges:a}=e,{findNode:l}=Le(),{state:s,branchGroups:c,getNodeById:d,moveNode:f,commit:u}=Ye(),{getNodeDepth:p,isGroupId:m,groupsByOwner:g}=c,{isBranchEdgeId:_,updateGroupLayout:y,translateGroupTree:h,waitForLayoutFlush:k}=n,{viewport:b,padding:N=Cn.padding,gaps:E=Cn.gaps}=r,{nodes:C=Cn.gaps.nodes,edges:x=Cn.gaps.edges,ranks:A=Cn.gaps.ranks}=E;async function v(w=!0){const F=new Map(i.value.map(W=>[W.id,W.data])),S=new Map,U=new Map,B=W=>{if(!W)return;let j=U.get(W);return j||(j=l(W),j&&U.set(W,j),j)},oe=new Map,ie=W=>{let j=oe.get(W);return j!==void 0||(j=p(W),oe.set(W,j)),j},M=W=>{if(!Jo(W.data))return W.parentNode;const j=B(W.data.ownerId);if(!j)throw new Error(`Cannot find owner node '${W.data.ownerId}' for group node '${W.id}' via findNode`);return j.parentNode};for(const W of a.value){if(_(W.id))continue;const j=W.source,se=W.target;if(m(j)||m(se))continue;const ue=B(j),ge=B(se);if(ue){if(!ge)throw new Error(`Cannot find target node '${se}' for edge '${W.id}' via findNode`)}else throw new Error(`Cannot find source node '${j}' for edge '${W.id}' via findNode`);if(M(ue)===M(ge))continue;let re=ue,q=ge,ae=ie(re.id),ce=ie(q.id);for(;ae!==ce;)if(ae>ce){const $=M(re);if(!$)throw new Error(`Expected node '${re.id}' to have parent, but it does not`);const P=B($);if(!P)throw new Error(`Cannot find parent node '${$}' for node '${re.id}' via findNode`);re=P,ae--}else if(ce>ae){const $=M(q);if(!$)throw new Error(`Expected node '${q.id}' to have parent, but it does not`);const P=B($);if(!P)throw new Error(`Cannot find parent node '${$}' for node '${q.id}' via findNode`);q=P,ce--}for(;ae>=0;){const $=M(re),P=M(q);if($===P){S.has(ae)||S.set(ae,[]),S.get(ae).push({v:re.id,w:q.id});break}if($){if(!P){const ne=`Expected node '${q.id}' to have parent, but it does not`;throw console.error(ne,q),new Error(ne)}}else{const ne=`Expected node '${re.id}' to have parent, but it does not`;throw console.error(ne,re),new Error(ne)}const V=B($),D=B(P);if(V){if(!D)throw new Error(`Cannot find parent node '${P}' for node '${q.id}' via findNode`)}else throw new Error(`Cannot find parent node '${$}' for node '${re.id}' via findNode`);re=V,q=D,ae--,ce--}}const L=s.value.groups.toSorted((W,j)=>ie(j.ownerId)-ie(W.ownerId));for(const W of L)T(W.memberIds.reduce((j,se)=>{const ue=d(se);if(!ue)return console.warn(`Cannot find node '${se}' of group '${W.id}' by getNodeById`),j;if(ue.phase!==o)return j;if(ue.type==="branch"){const ge=g.value.get(ue.id);ge&&j.push(...ge)}return F.delete(ue.id),j.push(ue),j},[]),{virtualEdges:S.get(ie(W.ownerId)),cachedFindNode:B}),await t.nextTick(),y(W.id,!1),await k();const O=F.values().toArray();for(const W of O){if(Jo(W)||W.type!=="branch")continue;const j=g.value.get(W.id);j&&O.push(...j)}const{autoNodes:R,leftNode:H,rightNode:te}=I(O);T(R,{leftNode:H,rightNode:te,virtualEdges:S.get(0),cachedFindNode:B}),w&&u()}function T(w,F){var re,q,ae,ce,$;const{leftNode:S,rightNode:U,virtualEdges:B,cachedFindNode:oe}=F||{},ie=S?(oe??l)(S.id):void 0,M=U?(oe??l)(U.id):void 0;let L;if(w.length>0){L=new jm.graphlib.Graph({multigraph:!0}),L.setGraph({rankdir:o==="request"?"LR":"RL",nodesep:C,edgesep:x,ranksep:A});const P=new Set;for(const V of w){const D=(oe??l)(V.id);if(!D){console.warn(`Cannot find graph node '${V.id}' in ${o} phase`);continue}P.add(V.id),Jo(V)?L.setNode(V.id,V.dimensions??D.dimensions):L.setNode(V.id,D.dimensions)}for(const V of a.value)!P.has(V.source)||!P.has(V.target)||L.setEdge(V.source,V.target,{points:[]});B==null||B.forEach(V=>L.setEdge(V,{points:[]})),jm.layout(L)}const O=[],R=P=>({x:P.x-P.width/2,y:P.y-P.height/2,width:P.width,height:P.height});if(w.length>0){if(!L)throw new Error("Expected dagreGraph to be initialized");for(const P of w){const V=L.node(P.id),D=R(V);O.push(D),Jo(P)?h(P.id,D,D.x+Ao,D.y+Ao):f(P.id,{x:D.x,y:D.y},!1)}}const H=O.length>0?Xp(O):{x:0,y:0,width:0,height:0},te=H.width,W=H.height,j=H.x,se=H.x+H.width,ue=Math.max(0,Math.min(t.toValue(b==null?void 0:b.width)??Number.POSITIVE_INFINITY,gT)-te-2*C-(((re=ie==null?void 0:ie.dimensions)==null?void 0:re.width)??0)-(((q=M==null?void 0:M.dimensions)==null?void 0:q.width)??0)-2*N),ge=H.y+W/2;S&&f(S.id,{x:j-C-ue/2-(((ae=ie==null?void 0:ie.dimensions)==null?void 0:ae.width)??0),y:ge-(((ce=ie==null?void 0:ie.dimensions)==null?void 0:ce.height)??0)/2},!1),U&&f(U.id,{x:se+C+ue/2,y:ge-((($=M==null?void 0:M.dimensions)==null?void 0:$.height)??0)/2},!1)}function I(w){let F,S;const U=[];for(const B of w){if(Jo(B)){U.push(B);continue}switch(B.name){case"request":{if(o!=="request")throw new Error(`Unexpected request node in ${o} phase`);if(F)throw new Error("Duplicated request node in request phase");F=B;break}case"service_request":{if(o!=="request")throw new Error(`Unexpected service_request node in ${o} phase`);if(S)throw new Error("Duplicated service_request node in request phase");S=B;break}case"service_response":{if(o!=="response")throw new Error(`Unexpected service_response node in ${o} phase`);if(S)throw new Error("Duplicated service_response node in response phase");S=B;break}case"response":{if(o!=="response")throw new Error(`Unexpected response node in ${o} phase`);if(F)throw new Error("Duplicated response node in response phase");F=B;break}default:{U.push(B);break}}}return{autoNodes:U,leftNode:F,rightNode:S}}return{autoLayout:v}}function EV({phase:e,groupMapById:n,getNodeDepth:o}){const r=t.shallowRef(),i=t.shallowRef();function a(d){r.value=d,i.value=void 0}function l(){r.value&&(r.value=void 0,i.value=void 0)}function s(d){let f;return n.value.forEach(u=>{if(u.phase!==e)return;const p=u.position,m=u.dimensions;if(!p||!m||!(d.x>=p.x&&d.x<=p.x+m.width&&d.y>=p.y&&d.y<=p.y+m.height))return;const _=o(u.ownerId);(!f||_>f.depth)&&(f={depth:_,id:u.id})}),f==null?void 0:f.id}function c(d){if(!r.value){i.value=void 0;return}if(!d){i.value=void 0;return}i.value=s(d)}return{activeGroupId:i,start:a,updateActiveGroup:c,end:l}}function NV({phase:e,readonly:n,flowId:o}){const{findNode:r}=Le(o),i=Ye(),{state:a,groupMapById:l,getNodeById:s,moveNode:c,moveGroup:d,setGroupLayout:f,commit:u,branchGroups:p}=i,{memberGroupMap:m,groupsByOwner:g,getNodeDepth:_,getGroupDepth:y}=p,h=t.ref(),k=M=>!!M&&M.startsWith("branch:");function b(M){const L=[];for(const O of M.memberIds){const R=s(O);R&&L.push(R)}return L}const N=t.computed(()=>{const M=new Map;return m.value.forEach((L,O)=>{if(L.phase!==e||!L.position)return;const R=s(O);R&&(R.phase!==e||R.hidden||M.set(O,L))}),M}),E=t.computed(()=>{const M=new Map;return g.value.forEach((L,O)=>{const R=L.filter(H=>H.phase===e);R.length>0&&M.set(O,R)}),M}),C=t.computed(()=>{const M=[];for(const L of a.value.groups){const O=s(L.ownerId);if(!O||O.phase!==e)continue;const R=L.position,H=L.dimensions;if(!R||!H)continue;const te=b(L).filter(j=>j.phase===e&&!j.hidden),W=y(L.id);M.push({id:L.id,type:"group",position:R,width:H.width,height:H.height,data:{...L,memberIds:te.map(j=>j.id)},draggable:!n,selectable:!1,zIndex:W*Ki+uT})}return M}),x=t.computed(()=>{let M=0;for(const L of a.value.groups){if(L.phase!==e)continue;const O=y(L.id);O>M&&(M=O)}return M}),A=t.computed(()=>{const M=[];for(const L of a.value.groups){if(L.phase!==e||!L.position||!L.dimensions)continue;const O=s(L.ownerId);if(!O||O.phase!==e||O.hidden||!b(L).filter(W=>W.phase===e&&!W.hidden).length)continue;const H=Math.max(_(O.id),y(L.id))+x.value+1,te={id:`branch:${L.id}`,source:O.id,target:L.id,sourceHandle:`branch@${L.branch}`,targetHandle:"input",markerEnd:ur.ArrowClosed,selectable:!1,focusable:!1,updatable:!1,data:{type:"branch",ownerId:O.id,branch:L.branch,groupId:L.id},zIndex:H*Ki+pT};M.push(te)}return M}),v=new Map,T=new Map;let I;function w(M,L=!0){if(M.phase!==e)return;const O=b(M).filter(j=>j.phase===e&&!j.hidden);if(!O.length)return;const R=[];for(const j of O){const se=r(j.id),ue=se==null?void 0:se.dimensions,ge=(ue==null?void 0:ue.width)??0,re=(ue==null?void 0:ue.height)??0;if(ge<=0||re<=0)return;R.push({...j.position,width:ge,height:re});const q=g.value.get(j.id)??[];for(const ae of q){if(ae.phase!==e)continue;const ce=v.get(ae.id),$=(ce==null?void 0:ce.position)??ae.position,P=(ce==null?void 0:ce.dimensions)??ae.dimensions;!$||!P||R.push({x:$.x,y:$.y,width:P.width,height:P.height})}}const H=Xp(R),te=H.width+Ao*2,W=H.height+Ao*2;return{position:{x:Math.round(H.x-Ao),y:Math.round(H.y-Ao)},dimensions:{width:Math.round(te),height:Math.round(W)},commit:L}}function F(){if(v.size===0){I=void 0;return}const M=[];let L=!1;v.forEach((O,R)=>{const H=f(R,O,!1);M.push({id:R,changed:H,commit:O.commit}),O.commit&&H&&!L&&(L=!0)}),v.clear(),I=void 0;for(const{id:O,changed:R,commit:H}of M){if(!R)continue;const te=l.value.get(O);if(!te)continue;const W=N.value.get(te.ownerId);W&&T.set(W.id,{commit:H})}if(T.size>0){const O=Array.from(T);T.clear();for(const[R,{commit:H}]of O)U(R,H)}L&&u("*")}function S(){v.size!==0&&(I||(I=t.nextTick().then(F)))}function U(M,L=!0){const O=l.value.get(M);if(!O)return;const R=w(O,L);R&&(v.set(M,R),S())}function B(M,L,O,R){const H=l.value.get(M);if(!H)return;if(!H.position){d(M,L,!1),U(M);return}if(O===0&&R===0){d(M,L,!1);return}d(M,L,!1);const te=[M],W=new Set([M]),j=new Set;for(;te.length;){const se=te.shift(),ue=l.value.get(se);if(!ue)continue;const ge=b(ue).filter(re=>re.phase===e&&!re.hidden);for(const re of ge){j.has(re.id)||(c(re.id,{x:re.position.x+O,y:re.position.y+R},!1),j.add(re.id));const q=E.value.get(re.id)??[];for(const ae of q){if(W.has(ae.id))continue;const ce=l.value.get(ae.id);ce!=null&&ce.position&&d(ae.id,{x:ce.position.x+O,y:ce.position.y+R},!1),W.add(ae.id),te.push(ae.id)}}}}function oe(M,L){const O=h.value;if(!O)return!1;if(O===M||L.some(R=>O===R))return!0;for(const R of L){const H=E.value.get(R)??[];if(H!=null&&H.some(te=>te.id===O))return!0}return!1}const ie=new Map;return t.watch(()=>a.value.groups.filter(L=>L.phase===e).map(L=>{const O=L.memberIds.map(R=>{var j,se;const H=r(R),te=Math.round(((j=H==null?void 0:H.dimensions)==null?void 0:j.width)??0),W=Math.round(((se=H==null?void 0:H.dimensions)==null?void 0:se.height)??0);return`${R}:${te}x${W}`});return{id:L.id,memberIds:L.memberIds,signature:O.join(",")}}),M=>{const L=new Set(M.map(O=>O.id));for(const O of ie.keys())L.has(O)||ie.delete(O);for(const O of M)oe(O.id,O.memberIds)||ie.get(O.id)===O.signature||(ie.set(O.id,O.signature),U(O.id))},{deep:!0,flush:"post"}),{groupsByOwner:E,memberGroupMap:N,groupNodes:C,branchEdges:A,isBranchEdgeId:k,updateGroupLayout:U,translateGroupTree:B,updateDragging:M=>{h.value=M},getNodeDepth:_,maxGroupDepth:x,waitForLayoutFlush:()=>I??Promise.resolve()}}function xV(e){t.provide(Yp,e)}function Gm(){return t.inject(Yp,void 0)}function qm(){const e=Gm();if(!e)throw new Error("Confirm modal not provided");return e}function SV(e){const{readonly:n,flowId:o}=e,r=Le(o),{onNodesChange:i,onEdgesChange:a,onPaneClick:l,findEdge:s}=r,{disconnectEdge:c,commit:d,portalSelection:f,selectPortalEdge:u}=Ye();i(p=>{p.some(m=>m.type==="select"&&"selected"in m&&m.selected)&&u(void 0)}),a(p=>{const m=p.some(_=>_.type==="select"&&"selected"in _&&_.selected),g=f.value?p.some(_=>_.type==="remove"&&_.id===f.value):!1;(m||g)&&u(void 0)}),l(()=>u(void 0)),je.useEventListener("keydown",p=>{if(n||p.key!=="Delete"&&p.key!=="Backspace")return;const m=f.value;!m||s(m)||(p.preventDefault(),c(m,!1),u(void 0),d())})}function zm(e){const n=e.match(/^(input|output)(?:s@(.*))?$/);if(n)return{io:n[1],field:n[2]}}const vV={default:HN,hover:WN,selected:YN};let Hm,ws;function Zi(e){const n=e.id===Hm?"selected":e.id===ws?"hover":"default",o=vV[n],{markerEnd:r}=e,i=typeof r=="object"?{...r,color:o}:{type:r,color:o},a=e.zIndex??0,l=n==="selected"?a+2:n==="hover"?a+1:a;return{...e,style:{...e.style,stroke:o,strokeWidth:n==="selected"?1.5:void 0},markerEnd:i,zIndex:l}}const[AV,IV]=je.createInjectionState(function(e){const{phase:n,flowId:o,layoutOptions:r,readonly:i}=e,{viewport:a,padding:l=Cn.padding,gaps:s=Cn.gaps}=r,{nodes:c=Cn.gaps.nodes}=s,d=Le(o),f=Ye(),u=Gm(),p=qa(),{i18n:{t:m}}=De(),{findNode:g,fitView:_,deleteKeyCode:y,onNodeDrag:h,onNodeDragStop:k,onConnect:b,onNodesChange:N,onEdgesChange:E,onEdgeUpdate:C,onEdgeMouseEnter:x,onEdgeMouseLeave:A,getNodes:v,setNodes:T,setEdges:I,addSelectedNodes:w,screenToFlowCoordinate:F}=d;y.value=["Delete","Backspace"];const{state:S,commit:U,moveNode:B,selectNode:oe,removeNode:ie,getNodeById:M,connectEdge:L,disconnectEdge:O,getInEdgesByNodeId:R,branchGroups:H,commit:te,reset:W,groupMapById:j}=f,{isGroupId:se}=H;function ue(fe,Pe){const ke=M(fe.source),we=M(fe.target);return!!(ke&&we&&ke.phase===Pe&&we.phase===Pe)}const ge=NV({phase:n,readonly:i,flowId:o}),{memberGroupMap:re,groupNodes:q,branchEdges:ae,isBranchEdgeId:ce,updateGroupLayout:$,translateGroupTree:P,updateDragging:V,getNodeDepth:D,maxGroupDepth:ne}=ge,{activeGroupId:X,start:Y,updateActiveGroup:K,end:le}=EV({phase:n,groupMapById:j,getNodeDepth:D}),G=t.computed(()=>S.value.nodes.filter(fe=>fe.phase===n&&!fe.hidden).map(fe=>{const Pe=re.value.get(fe.id),ke=Pe==null?void 0:Pe.position,we=Pe==null?void 0:Pe.dimensions,be=Pe&&ke&&we?{x:fe.position.x-ke.x,y:fe.position.y-ke.y}:fe.position,Se=D(fe.id),Oe=!!(Pe&&ke&&we),xe=(Oe?Se:0)+ne.value+1;return{id:fe.id,type:"flow",position:be,data:fe,deletable:!ml(fe),parentNode:Oe?Pe.id:void 0,zIndex:xe*Ki+mT}})),z=t.computed(()=>S.value.edges.filter(fe=>ue(fe,n)).filter(fe=>!H.isEdgeEnteringGroup(fe.source,fe.target)).filter(fe=>{const Pe=M(fe.source),ke=M(fe.target);return!(Pe!=null&&Pe.hidden)&&!(ke!=null&&ke.hidden)}).map(fe=>{const Pe=M(fe.source),ke=M(fe.target);if(!Pe||!ke){const be=[];throw Pe||be.push(`source node "${fe.source}"`),ke||be.push(`target node "${fe.target}"`),new Error(`Missing ${be.join(" and ")} for edge "${fe.id}" in phase "${n}"`)}const we=Math.max(D(fe.source),D(fe.target))+ne.value+1;return Zi({id:fe.id,source:fe.source,target:fe.target,sourceHandle:fe.sourceField?`outputs@${fe.sourceField}`:"output",targetHandle:fe.targetField?`inputs@${fe.targetField}`:"input",markerEnd:ur.ArrowClosed,data:fe,updatable:!i,zIndex:we*Ki+fT})})),J=t.computed(()=>[...ae.value,...z.value]),{autoLayout:de}=CV({phase:n,layoutOptions:r,branchLayout:ge,nodes:G,edges:J});SV({readonly:i,flowId:o}),t.watch([G,q,J],([fe,Pe,ke])=>{T([...Pe,...fe]),I(ke)},{immediate:!0});const _e=t.computed(()=>({padding:l/Math.max(t.toValue(a==null?void 0:a.width)??0,t.toValue(a==null?void 0:a.height)??0)}));async function Q({source:fe,sourceHandle:Pe,target:ke,targetHandle:we}){if(!Pe||!we)return;const be=zm(Pe),Se=zm(we);if((be==null?void 0:be.io)==="input"||(Se==null?void 0:Se.io)==="output"||Pe==="output"&&we==="output")return;const Oe=R(ke);let xe=!1,Ve=!1;const $e=[],Ue=[],Re=(Se==null?void 0:Se.io)==="input"?Oe.filter(ot=>!ot.targetField):Oe.filter(ot=>!!ot.targetField);Re.length>0&&(xe=!0,Re.forEach(ot=>{Ue.push(kr(ot,M)),O(ot.id,!1)}));const We=(Se==null?void 0:Se.io)==="input"?Se!=null&&Se.field?Oe.filter(ot=>ot.targetField===Se.field):Oe.filter(ot=>!!ot.targetField):Oe.filter(ot=>!ot.targetField);if(We.length>0){if(We.some($t=>$t.source===fe&&$t.target===ke&&$t.targetField===(Se==null?void 0:Se.field)&&$t.sourceField===(be==null?void 0:be.field)))return;Ve=!0,We.forEach($t=>{Ue.push(kr($t,M)),O($t.id,!1)})}if(!L({source:fe,sourceField:be==null?void 0:be.field,target:ke,targetField:Se==null?void 0:Se.field},!1)){W(),p({message:m("plugins.free-form.datakit.flow_editor.error.invalid_connection"),appearance:"danger"});return}if($e.push(ls(fe,be==null?void 0:be.field,ke,Se==null?void 0:Se.field,M)),xe||Ve){if(!u)throw W(),new Error("Expected confirm modal to be provided here when reachable");if(!await u(m(xe?"plugins.free-form.datakit.flow_editor.confirm.message.switch":"plugins.free-form.datakit.flow_editor.confirm.message.override"),$e,Ue)){W();return}}te()}b(Q);let he=!1;const Ce=()=>{he&&(he=!1,te())};N(fe=>{fe.filter(we=>we.type==="select").filter(we=>!se(we.id)).sort((we,be)=>we.selected===be.selected?0:we.selected?1:-1).forEach(we=>{oe(we.selected?we.id:void 0)});let ke=!1;fe.forEach(we=>{if(we.type==="remove"){if(se(we.id))return;ke=!0,ie(we.id,!1)}}),ke&&!he&&(he=!0,queueMicrotask(Ce))}),h(({node:fe,event:Pe})=>{var Oe,xe,Ve;if(!fe)return;if(se(fe.id)){const $e=fe.id;V($e),K(void 0);const Ue=j.value.get($e);if(!Ue)return;const Re=Ue.position??{...fe.position},We=fe.position.x-Re.x,no=fe.position.y-Re.y;P($e,fe.position,We,no);const ot=re.value.get(Ue.ownerId);ot&&$(ot.id,!1);return}const ke=fe.id;Y("canvas"),V(ke);const we=fe.parentNode;let be={...fe.position};if(we&&se(we)){const $e=j.value.get(we);$e!=null&&$e.position&&(be={x:$e.position.x+fe.position.x,y:$e.position.y+fe.position.y})}if(B(ke,be,!1),!ml(M(ke))){const $e={x:be.x,y:be.y,width:((Oe=fe.dimensions)==null?void 0:Oe.width)??0,height:((xe=fe.dimensions)==null?void 0:xe.height)??0},Ue=Pe&&"clientX"in Pe?F({x:Pe.clientX,y:Pe.clientY}):void 0,Re={x:$e.x+$e.width/2,y:$e.y+$e.height/2};K(Ue??Re)}const Se=we&&se(we)?we:(Ve=re.value.get(ke))==null?void 0:Ve.id;Se&&$(Se,!1)}),k(({node:fe})=>{var Se;if(!fe)return;if(V(void 0),se(fe.id)){U();return}const Pe=fe.id,ke=fe.parentNode;let we={...fe.position};if(ke&&se(ke)){const Oe=j.value.get(ke);Oe!=null&&Oe.position&&(we={x:Oe.position.x+fe.position.x,y:Oe.position.y+fe.position.y})}B(Pe,we,!1);const be=ke&&se(ke)?ke:(Se=re.value.get(Pe))==null?void 0:Se.id;be&&$(be,!1),pt(Pe),le(),U()}),E(fe=>{fe.filter(we=>we.type==="select").sort((we,be)=>we.selected===be.selected?0:we.selected?1:-1).forEach(we=>{ce(we.id)||(Hm=we.selected?we.id:void 0,I(be=>be.map(Se=>Se.id!==we.id||!Se.markerEnd?Se:Zi({...Se,zIndex:we.selected?1:void 0}))))});let ke=!1;fe.forEach(we=>{if(we.type==="remove"){if(ce(we.id))return;ke=!0,O(we.id,!1)}}),ke&&!he&&(he=!0,queueMicrotask(Ce))}),x(({edge:fe})=>{ce(fe.id)||(ws=fe.id,I(Pe=>Pe.map(ke=>ke.id!==fe.id?ke:Zi(ke))))}),A(({edge:fe})=>{ce(fe.id)||(ws=void 0,I(Pe=>Pe.map(ke=>ke.id!==fe.id?ke:Zi(ke))))}),C(({edge:fe,connection:Pe})=>{ce(fe.id)||(O(fe.id,!1),Q(Pe))});function pe(fe){_({..._e.value,...fe})}async function me(fe){return oe(fe),new Promise(Pe=>setTimeout(()=>{const ke=g(fe);w(ke?[ke]:[]),Pe()},0))}function He(fe){const Pe=v.value.filter(({type:Re})=>Re!=="group"),ke=Pe.find(({id:Re})=>Re===fe);if(!ke)throw new Error(`Node ${fe} not found`);const{x:we,y:be}=ke.data.position,{width:Se,height:Oe}=ke.dimensions,xe=be,Ve=be+Oe,$e=Pe.filter(({id:Re})=>Re!==fe).filter(({data:{position:{y:Re}},dimensions:{height:We}})=>Re<Ve&&Re+We>xe).map(({data:{position:{x:Re}},dimensions:{width:We}})=>({left:Re,right:Re+We})).sort((Re,We)=>Re.left-We.left);let Ue=we+Se+c;for(const{left:Re,right:We}of $e)if(!(We<=Ue)){if(Ue+Se<=Re)return{x:Ue,y:xe};Ue=Math.max(Ue,We)+c}return{x:Ue,y:xe}}function st(fe){if(!fe)return;const Pe=g(fe);if(!Pe)throw new Error(`Node ${fe} not found`);const{position:{x:ke},dimensions:{width:we}}=Pe,be=ke+we,{viewport:Se,dimensions:Oe,setViewport:xe}=d,{x:Ve,y:$e,zoom:Ue}=Se.value,{width:Re}=Oe.value,We=ke*Ue+Ve,no=be*Ue+Ve,ot=Re-Hp-c;if(no<=ot)return;let $t=ot-no;We+$t<0&&($t=-We),$t!==0&&xe({x:Ve+$t,y:$e,zoom:Ue},{duration:_T})}function pt(fe){if(!X.value)return!1;const{nodeId:Pe,branch:ke}=d1(X.value),we=H.addMember(Pe,ke,fe,{commit:!1});return K(void 0),we}return{vueFlowStore:d,editorStore:f,readonly:i,nodes:G,edges:J,selectNode:me,autoLayout:de,placeToRight:He,scrollRightToReveal:st,fitViewParams:_e,fitView:pe,groupDrop:{activeGroupId:X,startPanelDrag:()=>Y("panel"),endPanelDrag:le,updateActiveGroup:K,attachNodeToActiveGroup:pt}}});let Po=null;function PV(){var n;if(Po)return Po;if(typeof navigator>"u")return Po="windows";const e=((n=navigator.userAgentData)==null?void 0:n.platform)||navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)?Po="mac":/Linux/i.test(e)&&!/Android/i.test(e)?Po="linux":Po="windows"}const TV={Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Meta:"⌘",Mod:"⌘",Enter:"↩",ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Tab:"⇥",Esc:"⎋",Space:"Space",Delete:"⌫"},OV={Shift:"Shift",Alt:"Alt",Ctrl:"Ctrl",Meta:"Win",Mod:"Ctrl",Enter:"Enter",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",Tab:"Tab",Esc:"Esc",Space:"Spacebar",Delete:"Delete"},$V={Shift:"Shift",Alt:"Alt",Ctrl:"Ctrl",Meta:"Super",Mod:"Ctrl",Enter:"Enter",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",Tab:"Tab",Esc:"Esc",Space:"Space",Delete:"Delete"};function BV(e,n={}){const o=n.platform??PV(),r=n.joiner??(o==="mac"?"":" + "),i=o==="mac"?TV:o==="linux"?$V:OV;return(Array.isArray(e)?e:e[o]).map(l=>l in i?i[l]:l).join(r)}const VV={key:0,class:"label"},RV={class:"keys"},Ji=Ae(t.defineComponent({__name:"HotkeyLabel",props:{label:{},keys:{},reverse:{type:Boolean}},setup(e){const n=BV(e.keys);return(o,r)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["dk-hotkey-label",{reverse:e.reverse}])},[e.label?(t.openBlock(),t.createElementBlock("span",VV,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0),t.createElementVNode("kbd",RV,t.toDisplayString(t.unref(n)),1)],2))}}),[["__scopeId","data-v-cc70d56b"]]),DV=["onClick"],MV={key:0,class:"additional-count"},Ym=24,LV=16,Qi=Ae(t.defineComponent({__name:"NodePortal",props:{expanded:{type:Boolean,default:()=>{}},reversed:{type:Boolean},targets:{}},setup(e){const n=Number.parseFloat(i1)||0,o={target:"body"},{portalSelection:r,selectPortalEdge:i}=Ye(),a=t.ref(!1),l=t.computed(()=>{const g=r.value;return g?e.targets.some(_=>_.edgeId===g):!1}),s=t.computed(()=>e.expanded!==void 0?e.expanded||l.value:a.value||l.value),c=()=>Ym*e.targets.length+n*(e.targets.length-1),d=t.computed(()=>({width:s.value?`${c()}px`:"fit-content"})),f=g=>{i(g)},u=g=>r.value===g,p=t.computed(()=>e.targets.map((g,_)=>{var h;const y=(Ym+n)*_;return{edgeId:g.edgeId,key:`${g.node.id}-${g.fieldName??"node"}-${_}`,icon:(h=wt[g.node.type])==null?void 0:h.icon,tooltip:g.fieldName?`${g.node.name}.${g.fieldName}`:g.node.name,highlighted:u(g.edgeId),tooltipEl:null,style:_===0?{width:"fit-content",zIndex:e.targets.length}:{position:"absolute",...e.reversed?{left:`${y}px`,transform:s.value?"translateX(0)":`translateX(-${y}px)`}:{right:0,transform:s.value?`translateX(-${y}px)`:"translateX(0)"},zIndex:e.targets.length-_}}})),m=t.computed(()=>Math.max(e.targets.length-1,0));return(g,_)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-node-portal",{expanded:s.value,reversed:e.reversed}]),onClick:_[0]||(_[0]=t.withModifiers(()=>{},["stop"])),onDragstart:_[1]||(_[1]=t.withModifiers(()=>{},["stop"])),onMousedown:_[2]||(_[2]=t.withModifiers(()=>{},["stop"])),onMouseenter:_[3]||(_[3]=y=>a.value=!0),onMouseleave:_[4]||(_[4]=y=>a.value=!1)},[t.createElementVNode("div",{class:"target-boxes",style:t.normalizeStyle(d.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,(y,h)=>(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:y.key,class:"target-box-wrapper","kpop-attributes":o,placement:"top",style:t.normalizeStyle(y.style),text:y.tooltip},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["target-box",{highlighted:y.highlighted}]),onClick:t.withModifiers(k=>f(y.edgeId),["stop"])},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(y.icon),{color:t.unref(Jr),size:LV},null,8,["color"])),h===0&&m.value>0?(t.openBlock(),t.createElementBlock("span",MV," +"+t.toDisplayString(m.value),1)):t.createCommentVNode("",!0)],10,DV)]),_:2},1032,["style","text"]))),128))],4)],34))}}),[["__scopeId","data-v-926821a3"]]),ea=Ae(t.defineComponent({__name:"HandleTwig",props:{color:{},position:{default:()=>Ne.Left},size:{default:()=>Number.parseFloat(Vu)},type:{}},setup(e){t.useCssVars(o=>({v753622c4:o.color}));const n=t.computed(()=>({width:`${e.size}px`,minWidth:`${e.size}px`}));return(o,r)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["handle-twig",[e.type,e.position===t.unref(Ne).Left?"left":"right"]]),style:t.normalizeStyle(n.value)},null,6))}}),[["__scopeId","data-v-eb2bc3f2"]]),Wm=Ae(t.defineComponent({__name:"NodeBadge",props:{type:{},size:{},iconOnly:{type:Boolean}},setup(e){t.useCssVars(r=>{var i,a;return{b58c4842:(i=n.value.colors)==null?void 0:i.background,v6ae9eff4:(a=n.value.colors)==null?void 0:a.foreground}});const n=t.computed(()=>wt[e.type]),o=t.computed(()=>l1(e.type));return(r,i)=>{var l;const a=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(a,{appearance:"neutral",class:t.normalizeClass(["dk-node-badge",{"icon-only":e.iconOnly,"has-colors":!!n.value.colors}]),size:e.size},t.createSlots({default:t.withCtx(()=>[t.createTextVNode(" "+t.toDisplayString(o.value),1)]),_:2},[(l=n.value)!=null&&l.icon?{name:"icon",fn:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(n.value.icon)))]),key:"0"}:void 0]),1032,["class","size"])}}}),[["__scopeId","data-v-05435e4f"]]),FV={class:"body"},UV={class:"name"},KV={class:"handle"},jV={class:"handle-label-wrapper"},GV={class:"handle-label-wrapper"},qV={class:"handle-label text"},zV={class:"handle"},HV={class:"handle-label-wrapper"},YV={class:"handle-label-wrapper"},WV={class:"handle-label text"},XV={key:2,class:"branch-handles"},ZV={class:"handle-label-wrapper"},JV={class:"handle-label text"},Xm=Ae(t.defineComponent({__name:"FlowNode",props:{data:{},error:{type:Boolean},readonly:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=IV(),{getInEdgesByNodeId:r,getOutEdgesByNodeId:i,getNodeById:a,toggleExpanded:l,duplicateNode:s,removeNode:c,propertiesPanelOpen:d,branchGroups:f}=Ye(),u=t.computed(()=>bo(e.data.type)),p=t.computed(()=>e.data.fields.input.length>0),m=t.computed(()=>e.data.fields.output.length>0),g=t.computed(()=>p.value&&r(e.data.id).every(O=>O.targetField===void 0)),_=t.computed(()=>m.value&&i(e.data.id).every(O=>O.sourceField===void 0)),y=t.computed(()=>e.data.expanded.input??!1),h=t.computed(()=>e.data.expanded.output??!1),k=t.computed(()=>{var O,R,H;return((H=(R=(O=u.value.io)==null?void 0:O.next)==null?void 0:R.branches)==null?void 0:H.map(({name:te})=>te))??[]}),b=t.computed(()=>k.value.length>0),N=t.computed(()=>f.findMembership(e.data.id)),E=t.computed(()=>{var O,R;if(e.data.type==="property"){const H=(O=e.data.config)==null?void 0:O.property;return as(H)}return(R=u.value.io)==null?void 0:R.input}),C=t.computed(()=>{var O,R;if(e.data.type==="property"){const H=(O=e.data.config)==null?void 0:O.property;return is(H)}return(R=u.value.io)==null?void 0:R.output}),x=t.computed(()=>ml(e.data)),A=t.computed(()=>e.data.phase==="response"),v=t.computed(()=>e.data.phase==="request"?Ne.Left:Ne.Right),T=t.computed(()=>e.data.phase==="request"?Ne.Right:Ne.Left),I=t.computed(()=>e.data.phase==="request"?Ne.Right:Ne.Left),w=t.computed(()=>x.value?n(`plugins.free-form.datakit.flow_editor.node_types.${e.data.type}.name`):e.data.name),F=t.computed(()=>x.value?jN:GN);function S(O){return O==="input"?A.value:!A.value}function U(O){const R=new Map,H=O==="input"?r(e.data.id):i(e.data.id);for(const te of H){const W=a(O==="input"?te.source:te.target);if(!W)continue;if(O==="input"){const re=W.type==="vault",q=W.phase!==e.data.phase,ae=f.isEdgeEnteringGroup(W.id,e.data.id);if(!(re||q||ae))continue}else{const re=W.phase!==e.data.phase,q=f.isEdgeEnteringGroup(e.data.id,W.id);if(!(re||q))continue}const j=O==="input"?te.targetField||"input":te.sourceField||"output";let se;if(O==="input"&&te.sourceField){const re=W.fields.output.find(q=>q.id===te.sourceField);se=re==null?void 0:re.name}else if(O==="output"&&te.targetField){const re=W.fields.input.find(q=>q.id===te.targetField);se=re==null?void 0:re.name}const ue={edgeId:te.id,node:W,fieldName:se},ge=R.get(j);ge?ge.push(ue):R.set(j,[ue])}return R}const B=t.computed(()=>U("input")),oe=t.computed(()=>U("output"));function ie(O){!o||o.readonly||O==="input"&&!g.value||O==="output"&&!_.value||l(e.data.id,O)}async function M(){if(!o||o.readonly)return;const O=s(e.data.id,o.placeToRight(e.data.id));await o.selectNode(O),o.scrollRightToReveal(O),d.value=!0}function L(){f.removeMember(e.data.id)}return t.watch(g,O=>{O||l(e.data.id,"input",!0,!0,"*")},{immediate:!0}),t.watch(_,O=>{O||l(e.data.id,"output",!0,!0,"*")},{immediate:!0}),t.watch(()=>e.data.fields.input,(O,R)=>{$n(O,R)||l(e.data.id,"input",O.length>0,!0,"*")},{deep:!0}),t.watch(()=>e.data.fields.output,(O,R)=>{$n(O,R)||l(e.data.id,"output",O.length>0,!0,"*")},{deep:!0}),(O,R)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-flow-node",{reversed:A.value,implicit:x.value,readonly:e.readonly}])},[t.createElementVNode("div",FV,[x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:0,class:"badge",placement:"top",text:e.data.type},{default:t.withCtx(()=>[t.createVNode(Wm,{"icon-only":"",size:"small",type:e.data.type},null,8,["type"])]),_:1},8,["text"])),t.createElementVNode("div",UV,t.toDisplayString(w.value),1),e.error?(t.openBlock(),t.createBlock(t.unref(ve.WarningIcon),{key:1,class:"error-icon",color:t.unref(cl),size:16},null,8,["color"])):t.createCommentVNode("",!0),x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Be.KDropdown),{key:2,class:"menu",disabled:e.readonly,"kpop-attributes":{offset:"4px",target:"body",popoverClasses:"dk-flow-node-menu"},width:"160",onClick:R[1]||(R[1]=t.withModifiers(()=>{},["stop"]))},{items:t.withCtx(()=>[t.createVNode(t.unref(Be.KDropdownItem),{onClick:M},{default:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).duplicate,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.duplicate")},null,8,["keys","label"])]),_:1}),N.value?(t.openBlock(),t.createBlock(t.unref(Be.KDropdownItem),{key:0,onClick:L},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(Be.KDropdownItem),{danger:"",onClick:R[0]||(R[0]=H=>t.unref(c)(e.data.id))},{default:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).delete,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.delete")},null,8,["keys","label"])]),_:1})]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",class:"menu-trigger",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:1},8,["disabled"]))]),t.createElementVNode("div",{class:t.normalizeClass(["handles",{reversed:A.value}])},[E.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["input-handles",{"has-fields":p.value}])},[t.createElementVNode("div",KV,[t.createVNode(t.unref(Ht),{id:"input",position:v.value,type:"target"},null,8,["position"]),B.value.has("input")?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"input",reversed:S("input"),targets:B.value.get("input")},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",jV,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:g.value}]),onClick:R[2]||(R[2]=t.withModifiers(H=>ie("input"),["stop"]))},[R[4]||(R[4]=t.createElementVNode("div",{class:"text"}," inputs ",-1)),p.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[y.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(ve.UnfoldMoreIcon),{key:0,size:t.unref(Qr)},null,8,["size"])),y.value?(t.openBlock(),t.createBlock(t.unref(ve.UnfoldLessIcon),{key:1,color:g.value?void 0:t.unref($u),size:t.unref(Qr)},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),p.value&&y.value?(t.openBlock(),t.createBlock(ea,{key:0,color:F.value,position:v.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)])]),p.value&&y.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.input,(H,te)=>(t.openBlock(),t.createElementBlock("div",{key:`inputs-${H.id}`,class:"handle indented"},[t.createVNode(t.unref(Ht),{id:`inputs@${H.id}`,position:v.value,type:"target"},null,8,["id","position"]),B.value.has(H.id)?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"input",reversed:S("input"),targets:B.value.get(H.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",GV,[t.createElementVNode("div",qV,t.toDisplayString(H.name),1),t.createVNode(ea,{color:F.value,position:v.value,type:te<e.data.fields.input.length-1?"trident":"corner"},null,8,["color","position","type"])])]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),C.value?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["output-handles",{"has-fields":m.value}])},[t.createElementVNode("div",zV,[t.createElementVNode("div",HV,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:_.value}]),onClick:R[3]||(R[3]=t.withModifiers(H=>ie("output"),["stop"]))},[R[5]||(R[5]=t.createElementVNode("div",{class:"text"}," outputs ",-1)),m.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[h.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(ve.UnfoldMoreIcon),{key:0,size:t.unref(Qr)},null,8,["size"])),h.value?(t.openBlock(),t.createBlock(t.unref(ve.UnfoldLessIcon),{key:1,color:_.value?void 0:t.unref($u),size:t.unref(Qr)},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),m.value&&h.value?(t.openBlock(),t.createBlock(ea,{key:0,color:F.value,position:T.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Ht),{id:"output",position:T.value,type:"source"},null,8,["position"]),oe.value.has("output")?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"output",reversed:S("output"),targets:oe.value.get("output")},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]),m.value&&h.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.output,(H,te)=>(t.openBlock(),t.createElementBlock("div",{key:`outputs-${H.id}`,class:"handle indented"},[t.createElementVNode("div",YV,[t.createElementVNode("div",WV,t.toDisplayString(H.name),1),t.createVNode(ea,{color:F.value,position:T.value,type:te<e.data.fields.output.length-1?"trident":"corner"},null,8,["color","position","type"])]),t.createVNode(t.unref(Ht),{id:`outputs@${H.id}`,position:T.value,type:"source"},null,8,["id","position"]),oe.value.has(H.id)?(t.openBlock(),t.createBlock(Qi,{key:0,mode:"output",reversed:S("output"),targets:oe.value.get(H.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),b.value?(t.openBlock(),t.createElementBlock("div",XV,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(k.value,H=>(t.openBlock(),t.createElementBlock("div",{key:`branch-${H}`,class:"handle"},[t.createElementVNode("div",ZV,[t.createElementVNode("div",JV,t.toDisplayString(H),1)]),t.createVNode(t.unref(Ht),{id:`branch@${H}`,connectable:!1,position:I.value,type:"source"},null,8,["id","position"])]))),128))])):t.createCommentVNode("",!0)],2)],2))}}),[["__scopeId","data-v-c0706d4a"]]),QV=Ae(t.defineComponent({__name:"GroupNode",props:{data:{},active:{type:Boolean}},setup(e){const n=e,o=t.computed(()=>n.data.phase==="response"),r=t.computed(()=>o.value?Ne.Right:Ne.Left);return(i,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-branch-group-node",{reversed:o.value,"drop-target":e.active}])},[t.createVNode(t.unref(Ht),{id:"input",connectable:!1,position:r.value,type:"target"},null,8,["position"])],2))}}),[["__scopeId","data-v-61116224"]]),eR={key:0,class:"dk-flow-mask"},Zm=Ae(t.defineComponent({__name:"FlowCanvas",props:{flowId:{},phase:{},mode:{}},emits:["initialized","nodes-change"],setup(e,{expose:n,emit:o}){const r=o,i=t.useTemplateRef("flowCanvas"),a=je.useElementBounding(i),{i18n:{t:l}}=De(),{vueFlowStore:s,editorStore:c,autoLayout:d,fitViewParams:f,fitView:u,selectNode:p,placeToRight:m,scrollRightToReveal:g,groupDrop:_}=AV({phase:e.phase,flowId:e.flowId,layoutOptions:{viewport:{width:a.width,height:a.height}},readonly:e.mode!=="edit"}),{addNode:y,propertiesPanelOpen:h,invalidConfigNodeIds:k,selectedNode:b,duplicateNode:N,commit:E,selectPortalEdge:C}=c,{screenToFlowCoordinate:x,zoomIn:A,zoomOut:v,viewport:T,maxZoom:I,minZoom:w}=s,{activeGroupId:F,startPanelDrag:S,endPanelDrag:U,updateActiveGroup:B,attachNodeToActiveGroup:oe}=_,ie=t.ref(!1);function M(j){var ue;const se=(ue=j.dataTransfer)==null?void 0:ue.types.find(ge=>ge.startsWith(`${_r}/`));if(se)return se.replace(`${_r}/`,"")}function L(j){var se;if(e.mode==="edit"){if(((se=j==null?void 0:j.node)==null?void 0:se.type)==="group"){p(void 0),C(void 0);return}h.value=!0}}function O(j){e.mode!=="edit"||ie.value||(j.preventDefault(),B(x({x:j.clientX,y:j.clientY})))}function R(j){var $;if(e.mode!=="edit"||ie.value)return;const se=($=j.dataTransfer)==null?void 0:$.getData(_r);if(!se)return;j.preventDefault();const ue=JSON.parse(se);if(ue.action!=="create-node")return;const ge=x({x:j.clientX,y:j.clientY}),{type:re,anchor:q}=ue.data,ae={type:re,phase:e.phase,position:{x:ge.x-q.offsetX,y:ge.y-q.offsetY}},ce=y(ae,!1);if(!ce){U();return}oe(ce),E(),p(ce),h.value=!0,U()}async function H(){await d(),setTimeout(()=>u(),0)}const te=t.computed(()=>{if(e.mode==="preview")return[];const j=[{name:"zoom_in",icon:ve.AddIcon,action:A,disabled:T.value.zoom>=I.value},{name:"zoom_out",icon:ve.RemoveIcon,action:v,disabled:T.value.zoom<=w.value},{name:"fit_view",icon:ve.FullscreenIcon,action:u}];return e.mode==="edit"&&j.push({name:"auto_layout",icon:ve.AutoLayoutIcon,action:H}),j});if(e.phase==="response"&&e.mode==="edit"){je.useEventListener("dragstart",se=>{M(se)==="call"&&(ie.value=!0)});const{start:j}=je.useTimeoutFn(()=>{ie.value=!1},80);je.useEventListener("dragover",()=>{j()}),je.useEventListener("dragend",()=>{ie.value=!1})}e.mode==="edit"&&(je.useEventListener("dragstart",j=>{M(j)&&S()}),je.useEventListener("dragend",()=>{U()}));async function W(){const j=b.value;if(e.mode!=="edit"||!j||j.phase!==e.phase)return;const se=N(j.id,m(j.id));se&&(await p(se),h.value=!0,g(se))}return qp({enabled:t.computed(()=>!!b.value&&e.mode==="edit"&&b.value.phase===e.phase),duplicate:W}),n({autoLayout:d,fitView:u}),(j,se)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowCanvas",ref:i,class:"dk-flow-canvas"},[t.createVNode(t.unref(Up),{id:e.flowId,class:t.normalizeClass(["flow",{readonly:e.mode!=="edit"}]),"connect-on-click":!1,"elements-selectable":e.mode==="edit","max-zoom":t.unref(hT),"min-zoom":t.unref(yT),"multi-selection-key-code":null,"nodes-connectable":e.mode==="edit","nodes-draggable":e.mode==="edit","pan-on-drag":e.mode==="preview"?!1:void 0,"pan-on-scroll":e.mode!=="edit"?!1:void 0,"zoom-on-double-click":e.mode!=="edit"?!1:void 0,"zoom-on-pinch":e.mode!=="edit"?!1:void 0,"zoom-on-scroll":e.mode!=="edit"?!1:void 0,onDragover:O,onDrop:R,onNodeClick:L,onNodesChange:se[0]||(se[0]=ue=>r("nodes-change")),onNodesInitialized:se[1]||(se[1]=ue=>r("initialized"))},{"node-flow":t.withCtx(({data:ue})=>[t.createVNode(Xm,{data:ue,error:t.unref(k).has(ue.id),readonly:e.mode!=="edit"},null,8,["data","error","readonly"])]),"node-group":t.withCtx(({data:ue})=>[t.createVNode(QV,{active:t.unref(F)===ue.id,data:ue},null,8,["active","data"])]),default:t.withCtx(()=>[t.createVNode(t.unref(TP)),t.createVNode(t.unref(oT),{"fit-view-params":t.unref(f),position:"bottom-left","show-fit-view":!1,"show-interactive":!1,"show-zoom":!1},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(te.value,ue=>(t.openBlock(),t.createBlock(t.unref(Be.KTooltip),{key:ue.name,placement:"right",text:t.unref(l)(`plugins.free-form.datakit.flow_editor.actions.${ue.name}`)},{default:t.withCtx(()=>[t.createVNode(t.unref(yr),{disabled:ue.disabled,onClick:t.withModifiers(ue.action,["stop"])},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(ue.icon),{size:18}))]),_:2},1032,["disabled","onClick"])]),_:2},1032,["text"]))),128))]),_:1},8,["fit-view-params"])]),_:1},8,["id","class","elements-selectable","max-zoom","min-zoom","nodes-connectable","nodes-draggable","pan-on-drag","pan-on-scroll","zoom-on-double-click","zoom-on-pinch","zoom-on-scroll"]),ie.value?(t.openBlock(),t.createElementBlock("div",eR,t.toDisplayString(t.unref(l)("plugins.free-form.datakit.flow_editor.phase_mask_help")),1)):t.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-c1890d6b"]]),tR={class:"label-content"},nR={class:"count"},oR={class:"label-content"},rR={class:"count"},Jm=.5,ks=.03,iR=30,Cs=Ae(t.defineComponent({__name:"FlowPanels",props:{inactive:{type:Boolean},mode:{},resizable:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=t.ref(!1),r=t.ref(!1),{responsePanelCollapsed:i}=ii(),{state:a,configNodeCounts:l,clearPendingLayout:s,setPendingFitView:c,commit:d,clear:f,portalSelection:u}=Ye(),p=t.useId(),m=`${p}-request`,g=`${p}-response`,_=Le(m),y=Le(g);function h(q,ae){const{onPaneClick:ce,onNodesChange:$,onEdgesChange:P,getSelectedNodes:V,getSelectedEdges:D}=q,{removeSelectedElements:ne}=ae;function X(Y){if(!Y){ne();return}Y.some(K=>K.type==="select")&&V.value.length+D.value.length>0&&ne()}$(X),P(X),ce(()=>X())}h(_,y),h(y,_),t.watch(u,q=>{q&&(_.removeSelectedElements(),y.removeSelectedElements())});const k=t.useTemplateRef("flowPanels"),b=t.useTemplateRef("requestLabel"),N=t.useTemplateRef("requestCanvasContainer"),E=t.useTemplateRef("requestFlow"),C=t.useTemplateRef("resizeHandle"),x=t.useTemplateRef("responseLabel"),A=t.useTemplateRef("responseCanvasContainer"),v=t.useTemplateRef("responseFlow"),T=je.useElementBounding(k),I=je.useElementBounding(b),w=je.useElementBounding(N),F=je.useElementBounding(C),S=je.useElementBounding(x),U=je.useElementBounding(A),B=t.computed(()=>Math.max(iR,T.height.value*ks)),oe=t.computed(()=>T.height.value-I.height.value-F.height.value-S.height.value),ie=t.computed(()=>{const q=oe.value;return q?Math.max(ks,B.value/q):ks}),M=t.ref(Jm),L=t.computed(()=>`${M.value*100}%`),O=t.computed(()=>`${(1-M.value)*100}%`),R=t.computed(()=>M.value<=ie.value),H=t.computed(()=>1-M.value<=ie.value);function te(q,{persist:ae=!0}={}){const ce=Math.min(1,Math.max(0,q));M.value=ce,ae&&e.mode==="edit"&&(i.value=H.value)}function W(q,ae=!0){te(q?1:Jm,{persist:ae})}function j(q=!0){te(0,{persist:q})}if(e.mode==="edit"){const q=l.value.response===0,ae=i.value;W(q||ae,!1)}else t.watch(()=>l.value.response,q=>{W(q===0,!1)},{immediate:!0});const se=()=>{e.resizable&&(R.value?W(!1):j())},ue=()=>{e.resizable&&W(!H.value)},{isDragging:ge}=je.useDraggable(C,{onMove(q){if(!e.resizable)return;const ae=Math.max(0,q.y-w.top.value),ce=Math.min(1,Math.max(0,ae/oe.value));te(ce,{persist:!1})},onEnd(){e.resizable&&(w.height.value<B.value?j():U.height.value<B.value?W(!0):te(M.value))}});function re(){t.nextTick(()=>{var q,ae;(q=E.value)==null||q.fitView(),(ae=v.value)==null||ae.fitView()})}return t.watch([o,r,()=>a.value.pendingLayout,()=>a.value.pendingFitView],([q,ae,ce,$])=>{e.inactive||!q||!ae||!ce&&!$||(ce&&s(),$&&c(!1),setTimeout(async()=>{var P,V;ce&&(await((P=E.value)==null?void 0:P.autoLayout(!1)),await((V=v.value)==null?void 0:V.autoLayout(!1)),d("*"),ce==="clearHistory"&&f()),$&&setTimeout(()=>re(),0)},0))}),(q,ae)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowPanels",ref:k,class:"flow-panels"},[t.createElementVNode("div",{ref_key:"requestLabel",ref:b,class:t.normalizeClass(["label request",{resizable:e.resizable}]),onClick:se},[e.resizable?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:R.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",tR,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.request"))+" ",1),t.createElementVNode("span",nR,[t.unref(l).request===1?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular"))+") ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural",{count:t.unref(l).request}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"requestCanvasContainer",ref:N,class:t.normalizeClass(["canvas",{dragging:t.unref(ge)}]),style:t.normalizeStyle({flexBasis:L.value})},[t.createVNode(Zm,{ref_key:"requestFlow",ref:E,"flow-id":m,mode:e.mode,phase:"request",onInitialized:ae[0]||(ae[0]=ce=>o.value=!0),onNodesChange:ae[1]||(ae[1]=ce=>o.value=!1)},null,8,["mode"])],6),t.createElementVNode("div",{ref_key:"resizeHandle",ref:C,class:t.normalizeClass(["resize-handle",{resizable:e.resizable}])},null,2),t.createElementVNode("div",{ref_key:"responseLabel",ref:x,class:t.normalizeClass(["label response",{dragging:t.unref(ge),resizable:e.resizable}]),onClick:ue},[e.resizable?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:H.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",oR,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.response"))+" ",1),t.createElementVNode("span",rR,[t.unref(l).response===1?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_singular"))+") ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(" ("+t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.node_count_plural",{count:t.unref(l).response}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"responseCanvasContainer",ref:A,class:t.normalizeClass(["canvas response",{dragging:t.unref(ge)}]),style:t.normalizeStyle({flexBasis:O.value})},[t.createVNode(Zm,{ref_key:"responseFlow",ref:v,"flow-id":g,mode:e.mode,phase:"response",onInitialized:ae[2]||(ae[2]=ce=>r.value=!0),onNodesChange:ae[3]||(ae[3]=ce=>r.value=!1)},null,8,["mode"])],6)],512))}}),[["__scopeId","data-v-3d68b40b"]]),aR={class:"dk-confirm-modal-body"},lR={class:"connections"},sR=Ae(t.defineComponent({__name:"ConflictModal",props:{title:{},message:{},addedConnections:{},removedConnections:{}},emits:["cancel","confirm"],setup(e,{expose:n,emit:o}){const{i18n:{t:r}}=De(),i=o,a=t.ref(!1),l=t.ref(e.message),s=t.ref(e.addedConnections??[]),c=t.ref(e.removedConnections??[]);let d=null;function f(){a.value=!1,i("cancel"),d==null||d(!1)}function u(){a.value=!1,i("confirm"),d==null||d(!0)}async function p(m,g,_){return l.value=m,s.value=g??[],c.value=_??[],a.value=!0,await new Promise(y=>{d=y})}return n({open:p}),(m,g)=>{const _=t.resolveComponent("KModal");return t.openBlock(),t.createBlock(_,{"action-button-text":t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.proceed"),"close-on-backdrop-click":"","max-width":"660px",title:e.title??t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.title"),visible:a.value,"z-index":9999,onCancel:f,onProceed:u},{default:t.withCtx(()=>[t.createElementVNode("div",aR,[t.createElementVNode("p",null,t.toDisplayString(l.value),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.confirm.message.confirm")),1),t.createElementVNode("div",lR,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value??[],([y,h])=>(t.openBlock(),t.createElementBlock("div",{key:`${y}-${h}`,class:"connection"},[t.createVNode(t.unref(ve.AddIcon),{color:t.unref(qN)},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(y)+" → "+t.toDisplayString(h),1)]))),128)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value??[],([y,h])=>(t.openBlock(),t.createElementBlock("div",{key:`${y}-${h}`,class:"connection"},[t.createVNode(t.unref(ve.RemoveIcon),{color:t.unref(cl)},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(y)+" → "+t.toDisplayString(h),1)]))),128))])])]),_:1},8,["action-button-text","title","visible"])}}}),[["__scopeId","data-v-ac52e1e6"]]),cR={class:"dk-editor-nav"},dR={class:"top"},uR={class:"bottom"},fR=Ae(t.defineComponent({__name:"EditorNav",emits:["back"],setup(e,{emit:n}){const{t:o}=Je.createI18n("en-us",it),r=n,i=[{label:o("plugins.free-form.datakit.flow_editor.return_to_config"),icon:ve.ArrowLeftIcon,onClick:()=>r("back")}],{sidePanelExpanded:a}=ii(),l=t.computed(()=>a.value?o("plugins.free-form.datakit.flow_editor.collapse_panel"):o("plugins.free-form.datakit.flow_editor.expand_panel")),s=t.ref(!1);function c(){a.value=!a.value}return(d,f)=>(t.openBlock(),t.createElementBlock("nav",cR,[t.createElementVNode("div",dR,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,({label:u,to:p,icon:m,onClick:g})=>t.createVNode(t.unref(Be.KTooltip),{key:u,"kpop-attributes":{offset:"10px"},label:u,placement:"right"},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.unref(Be.KButton),{key:u,appearance:"none",class:"nav-item",icon:"",to:p,onClick:g},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m),{decorative:"",size:t.unref(ei)},null,8,["size"]))]),_:2},1032,["to","onClick"]))]),_:2},1032,["label"])),64))]),t.createElementVNode("div",uR,[t.createElementVNode("div",{class:t.normalizeClass(["side-panel-toggle",{expanded:t.unref(a)}]),onTransitionend:f[0]||(f[0]=t.withModifiers(u=>s.value=!1,["self"])),onTransitionstart:f[1]||(f[1]=t.withModifiers(u=>s.value=!0,["self"]))},[t.createVNode(t.unref(Be.KTooltip),{label:s.value?void 0:l.value,placement:t.unref(a)?"left":"right"},{default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"none",class:"nav-item nav-item-toggle",icon:"",size:"large",onClick:c},{default:t.withCtx(()=>[t.unref(a)?(t.openBlock(),t.createBlock(t.unref(ve.ChevronDoubleLeftIcon),{key:0,decorative:"",size:t.unref(ei)},null,8,["size"])):(t.openBlock(),t.createBlock(t.unref(ve.ChevronDoubleRightIcon),{key:1,decorative:"",size:t.unref(ei)},null,8,["size"]))]),_:1})]),_:1},8,["label","placement"])],34)])]))}}),[["__scopeId","data-v-2915b6fa"]]),pR={class:"dk-editor-main"},mR={class:"header"},gR={class:"actions"},hR={class:"settings"},yR={ref:"canvasContainer",class:"body"},_R=Ae(t.defineComponent({__name:"EditorMain",setup(e){const{t:n}=Je.createI18n("en-us",it),{modalOpen:o,undo:r,redo:i,canUndo:a,canRedo:l,load:s}=Ye(),c=t.inject(un.DATAKIT_M2,!1),d=["vault","cache"],f=t.computed(()=>c?ho:Jt(ho,d));function u(g){const _=ho[g],y=mn.load(_,{schema:go,json:!0});if(typeof y!="object"||y===null)return;const h=y,k={config:{...h,nodes:h.nodes??[]}};s(k,!0)}function p(){o.value=!1}qp({enabled:o,undo:r,redo:i});const m={maxWidth:"300px",zIndex:1e4};return(g,_)=>(t.openBlock(),t.createElementBlock("div",pR,[t.createElementVNode("header",mR,[t.createElementVNode("div",gR,[t.createVNode(t.unref(Be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).undo,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.undo"),reverse:""},null,8,["keys","label"])]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",disabled:!t.unref(a),icon:"",onClick:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.UndoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),t.createVNode(t.unref(Be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Ji,{keys:t.unref(ji).redo,label:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.redo"),reverse:""},null,8,["keys","label"])]),default:t.withCtx(()=>[t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",disabled:!t.unref(l),icon:"",onClick:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.RedoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),_[0]||(_[0]=t.createElementVNode("div",{class:"divider"},null,-1)),t.createElementVNode("div",hR,[t.createVNode(Ur,{label:t.unref(n)("plugins.free-form.datakit.flow_editor.debug.label"),"label-attributes":{info:t.unref(n)("plugins.free-form.datakit.flow_editor.debug.description"),tooltipAttributes:m},name:"config.debug"},null,8,["label","label-attributes"])]),_[1]||(_[1]=t.createElementVNode("div",{class:"divider"},null,-1)),t.createVNode(t.unref(Be.KDropdown),{appearance:"tertiary","kpop-attributes":{placement:"bottom-end",target:"body"},"show-caret":"","trigger-text":t.unref(n)("plugins.free-form.datakit.flow_editor.examples"),width:240},{items:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.value,(y,h)=>(t.openBlock(),t.createBlock(t.unref(Be.KDropdownItem),{key:h,onClick:k=>u(h)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)(`plugins.free-form.datakit.examples.${h}`)),1)]),_:2},1032,["onClick"]))),128))]),_:1},8,["trigger-text"]),t.createVNode(t.unref(Be.KButton),{appearance:"tertiary",target:"_blank",to:"https://developer.konghq.com/plugins/datakit/"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.view_docs"))+" ",1),t.createVNode(t.unref(ve.ExternalLinkIcon))]),_:1}),t.createVNode(t.unref(Be.KButton),{onClick:p},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.done")),1)]),_:1})])]),t.createElementVNode("div",yR,[t.createVNode(Cs,{mode:"edit",resizable:""})],512)]))}}),[["__scopeId","data-v-e342016d"]]),bR=["draggable"],wR={class:"icon"},kR={class:"content"},CR={class:"title"},ER={class:"description"},NR=Ae(t.defineComponent({__name:"NodePanelItem",props:{type:{},unsupported:{type:Boolean}},emits:["dragstart"],setup(e,{emit:n}){t.useCssVars(c=>({f628e926:t.unref(a),v4a9b9f82:t.unref(l)}));const o=n,{summary:r,icon:i,colors:{background:a,foreground:l}={}}=ul[e.type];function s(c){o("dragstart",c,e.type)}return(c,d)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-node-panel-item",{[`node-type-${e.type}`]:!0,unsupported:e.unsupported}]),draggable:!e.unsupported,onDragstart:s},[t.createElementVNode("div",wR,[t.createVNode(t.unref(i),{size:16})]),t.createElementVNode("div",kR,[t.createElementVNode("div",CR,t.toDisplayString(e.type),1),t.createElementVNode("div",ER,t.toDisplayString(t.unref(r)),1)])],42,bR))}}),[["__scopeId","data-v-38d156c9"]]),xR={class:"dk-node-panel"},SR={key:0,class:"title"},vR={class:"node-list"},AR={"aria-hidden":"true",class:"preview",inert:""},Qm=Ae(t.defineComponent({__name:"NodePanel",props:{hideTitle:{type:Boolean}},setup(e){const{t:n}=Je.createI18n("en-us",it),{createNode:o}=Ye(),r=t.inject(un.DATAKIT_M2,!1),i=["branch","cache"],a=`dk-drag-preview-${t.useId()}`,l=t.shallowRef(),s=t.computed(()=>l.value?[{id:"preview",type:"flow",data:l.value,position:{x:0,y:0}}]:[]),c=async(d,f)=>{var T,I,w;const u=d.currentTarget,{left:p,top:m,width:g,height:_}=u.getBoundingClientRect(),y=d.clientX-p,h=d.clientY-m;l.value=o({type:f}),await t.nextTick();const k=document.querySelector(`#${a}`)||u,b=k.cloneNode(!0);b.classList.add("dk-drag-snapshot");const{offsetWidth:N,offsetHeight:E}=k;Object.assign(b.style,{position:"absolute",top:"-9999px",left:"-9999px",width:`${N}px`,height:`${E}px`}),document.body.appendChild(b);const C=y/g,x=h/_,A={ratioX:C,ratioY:x,offsetX:N*C,offsetY:E*x},v={action:"create-node",data:{type:f,anchor:A}};(T=d.dataTransfer)==null||T.setData(_r,JSON.stringify(v)),(I=d.dataTransfer)==null||I.setData(`${_r}/${f}`,f),(w=d.dataTransfer)==null||w.setDragImage(b,A.offsetX,A.offsetY),requestAnimationFrame(()=>{b.remove(),l.value=void 0})};return(d,f)=>{const u=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",xR,[e.hideTitle?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("h3",SR,[t.createVNode(u,{class:"label",info:t.unref(n)("plugins.free-form.datakit.flow_editor.node_panel.description")},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_panel.title")),1)]),_:1},8,["info"])])),t.createElementVNode("div",vR,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Object.keys(t.unref(ul)),p=>(t.openBlock(),t.createBlock(NR,{key:p,type:p,unsupported:!t.unref(r)&&i.includes(p),onDragstart:c},null,8,["type","unsupported"]))),128))]),t.createElementVNode("div",AR,[t.createVNode(t.unref(Up),{nodes:s.value},{"node-flow":t.withCtx(p=>[t.createVNode(Xm,{id:a,data:p.data},null,8,["data"])]),_:1},8,["nodes"])])])}}}),[["__scopeId","data-v-03b0fafb"]]);function IR(){const{addField:e,getNodeByName:n,removeField:o,replaceConfig:r,renameField:i,disconnectOutEdges:a,nodeMapByName:l}=Ye(),s=n("vault");if(!s)throw new Error("no vault node");const c=t.computed(()=>{var g;return((g=l.value.get("vault"))==null?void 0:g.config)||{}});return{formData:t.computed(()=>({vault:{...c.value}})),addVault:(g,_)=>{e(s.id,"output",g,!1);const y={...s.config,[g]:_};r(s.id,y)},removeVault:g=>{const _=gn(s,"output",g);if(!_)return;const y=s.fields.output.length===1;o(s.id,_.id,!0,!1);const h=Jt(s.config,g);r(s.id,h,!y),y&&a(s.id)},updateVault:(g,_,y=!0)=>{const h={...s.config,[g]:_};r(s.id,h,y)},renameVault:(g,_,y=!0)=>{var N;const h=gn(s,"output",g);if(!h)return;i(s.id,h.id,_,!1);const k=((N=s.config)==null?void 0:N[g])??"",b={...Jt(s.config,g),[_]:k};r(s.id,b,y)}}}const PR=t.defineComponent({__name:"VaultSecretPicker",props:{secretRef:{type:[String,Boolean]},secretName:{},validateName:{type:Function,default:()=>{}},isEditing:{type:Boolean,default:!1}},emits:["proceed","cancel"],setup(e,{emit:n}){const o=n,{i18n:{t:r}}=Ke.useI18n(),i=t.inject(Fe.FORMS_CONFIG),a=t.ref(e.secretName||""),l=t.ref(""),s=t.computed(()=>a.value.trim()?e.validateName(a.value.trim(),e.isEditing)===void 0:!1),c=t.computed(()=>!s.value),d=()=>{const m=a.value.trim(),g=e.validateName(m,e.isEditing);return l.value=g||"",g===void 0},f=()=>{l.value="",d()},u=m=>{d()&&o("proceed",{secretRef:m,secretName:a.value.trim()})},p=()=>{a.value="",l.value="",o("cancel")};return t.watch(()=>e.secretName,m=>{a.value=m||"",l.value=""}),(m,g)=>{const _=t.resolveComponent("KInput"),y=t.resolveComponent("KEmptyState");return t.unref(i)?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPicker),{key:0,"additional-disabled":c.value,config:t.unref(i),"proceed-button-text":t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.proceed_button_text"),setup:e.secretRef,title:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.title"),onCancel:p,onProceed:u},{"form-prefix":t.withCtx(()=>[t.createVNode(_,{"model-value":a.value,"onUpdate:modelValue":[g[0]||(g[0]=h=>a.value=h),f],"data-testid":"vault-secret-picker-secret-name-input",error:!!l.value,"error-message":l.value,label:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.label"),"label-attributes":{info:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.help")},placeholder:t.unref(r)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.placeholder"),required:""},null,8,["model-value","error","error-message","label","label-attributes","placeholder"])]),_:1},8,["additional-disabled","config","proceed-button-text","setup","title"])):(t.openBlock(),t.createBlock(y,{key:1,"icon-variant":"error",message:t.unref(r)("plugins.free-form.vault_picker.component_error")},null,8,["message"]))}}}),TR={class:"dk-vault-panel"},OR={class:"title"},$R={class:"vault-list"},BR={key:0,class:"vault-list-item"},VR={class:"vault-list-item-key"},RR={class:"vault-list-item-key-text"},DR=Ae(t.defineComponent({__name:"VaultField",props:{initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["update","add","remove","change"],setup(e,{emit:n}){const o=e,r=n,{entries:i,addEntry:a,removeEntry:l}=Kr(o,r),s=t.ref(null),c=t.ref(null),{i18n:{t:d}}=Ke.useI18n(),f=t.computed(()=>new Set(i.value.map(h=>h.key))),u=()=>{const h=a();c.value=h,s.value=h},p=()=>{s.value=null,c.value&&(l(c.value.id),c.value=null)},m=h=>{if(!s.value)throw new Error("no selected entry");const k=s.value.key,b=k!==h.secretName,N=s.value.value!==h.secretRef,E=b||N;s.value.value=h.secretRef,s.value.key=h.secretName,c.value?r("add",h.secretName,h.secretRef):E&&r("update",h.secretName,h.secretRef,b?k:void 0),c.value=null,p()},g=h=>{s.value=h},_=h=>{l(h.id),r("remove",h.key)},y=(h,k)=>{var b;if(!h)return d("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_required_error");if(f.value.has(h)&&!(k&&h===((b=s.value)==null?void 0:b.key)))return d("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_exists_error")};return(h,k)=>{var C,x;const b=t.resolveComponent("KButton"),N=t.resolveComponent("KDropdownItem"),E=t.resolveComponent("KDropdown");return t.openBlock(),t.createElementBlock("div",TR,[t.createElementVNode("h3",OR,t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.title")),1),t.createVNode(b,{appearance:"tertiary",class:"add-button",size:"small",onClick:u},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.add_button")),1)]),_:1}),t.createElementVNode("div",$R,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),A=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:A.id},[A.key?(t.openBlock(),t.createElementBlock("div",BR,[t.createElementVNode("div",VR,[t.createVNode(t.unref(ve.KeyIcon),{color:t.unref(Jr),size:16},null,8,["color"]),t.createElementVNode("div",RR,t.toDisplayString(A.key),1)]),t.createVNode(E,null,{items:t.withCtx(()=>[t.createVNode(N,{onClick:v=>g(A)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1},8,["onClick"]),t.createVNode(N,{danger:"",onClick:v=>_(A)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1},8,["onClick"])]),default:t.withCtx(()=>[t.createVNode(b,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:2},1024)])):t.createCommentVNode("",!0)],64))),128))]),t.createVNode(PR,{"is-editing":!!s.value&&!c.value,"secret-name":(C=s.value)==null?void 0:C.key,"secret-ref":(x=s.value)==null?void 0:x.value,"validate-name":y,onCancel:p,onProceed:m},null,8,["is-editing","secret-name","secret-ref"])])}}}),[["__scopeId","data-v-c9f18d61"]]);function MR(){const{getSchema:e}=Ge();return t.computed(()=>{const n=e("config.resources");if(!n)throw new Error("Failed to get resource schema");const o=en(n);return o.fields.forEach(r=>{const i=Object.keys(r)[0];if(i==="cache"){const a=r[i];r[i]={...a,fields:[...a.fields,{partial_id:{type:"string"}}]}}}),o})}const LR={class:"dk-cache-panel"},FR={class:"title"},UR={key:0,class:"cache-item"},KR={class:"cache-item-key"},jR={class:"cache-item-key-text"},GR={class:"dk-resource-cache-form"},qR={key:1},zR={key:2,class:"dk-cache-inline-redis"},HR=Ae(t.defineComponent({__name:"CacheField",props:{strategy:{}},emits:["update","remove","cancel"],setup(e,{emit:n}){const o=n,{getDefault:r,formData:i}=Ge(),a=yt("cache");if(a.error)throw new Error("No cache schema");const l=t.ref(!1),{i18n:{t:s}}=Ke.useI18n(),c=t.computed(()=>!(d.value==="redis"&&!i.cache.partial_id&&!i.cache.redis)),d=t.computed(()=>{var N;return(N=a.value.value)==null?void 0:N.strategy}),f=t.computed(()=>{var N;return(N=a.value.value)!=null&&N.redis?mn.dump(a.value.value.redis,{indent:2,noRefs:!0}):""}),u=()=>{l.value=!0},p=()=>{l.value=!1,o("cancel")},m=()=>{o("remove")},g=()=>{u(),a.value.value||(a.value.value=r("cache"),a.value.value.strategy="memory")},_=()=>{l.value=!1,o("update",i)},y=$s.createdBundledHighlighter({langs:{yaml:()=>import("@shikijs/langs/yaml")},themes:{"github-dark":()=>import("@shikijs/themes/github-dark")},engine:()=>yg.createJavaScriptRegexEngine()}),{codeToHtml:h}=$s.createSingletonShorthands(y),k=()=>{var N,E;d.value==="memory"&&((N=i.cache)!=null&&N.partial_id)&&((E=i.cache)==null||delete E.partial_id)};async function b({codeElement:N,language:E,code:C}){N.innerHTML=await h(C,{lang:E,theme:"github-dark",structure:"inline"})}return(N,E)=>{const C=t.resolveComponent("KButton"),x=t.resolveComponent("KDropdownItem"),A=t.resolveComponent("KDropdown"),v=t.resolveComponent("KLabel"),T=t.resolveComponent("KCodeBlock"),I=t.resolveComponent("KModal");return t.openBlock(),t.createElementBlock("div",LR,[t.createElementVNode("h3",FR,t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title")),1),e.strategy?(t.openBlock(),t.createElementBlock("div",UR,[t.createElementVNode("div",KR,[t.createVNode(t.unref(ve.DeployIcon),{color:t.unref(Jr),size:t.unref(Bu)},null,8,["color","size"]),t.createElementVNode("div",jR,t.toDisplayString(e.strategy),1)]),t.createVNode(A,null,{items:t.withCtx(()=>[t.createVNode(x,{onClick:u},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1}),t.createVNode(x,{danger:"",onClick:m},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1})]),default:t.withCtx(()=>[t.createVNode(C,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{color:t.unref(sl)},null,8,["color"])]),_:1})]),_:1})])):(t.openBlock(),t.createBlock(C,{key:1,appearance:"tertiary",class:"add-button",size:"small",onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.add_button")),1)]),_:1})),t.createVNode(I,{"action-button-disabled":!c.value,"action-button-text":t.unref(s)("actions.save"),"max-width":"640px",title:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title"),visible:l.value,onCancel:p,onProceed:_},{default:t.withCtx(()=>{var w,F;return[t.createElementVNode("div",GR,[t.createVNode(Cd,{items:[{label:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.memory"),value:"memory"},{label:t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.redis"),value:"redis"}],name:"strategy","onUpdate:modelValue":k},null,8,["items"]),d.value==="memory"?(t.openBlock(),t.createBlock(mt,{key:0,name:"memory.dictionary_name"})):t.createCommentVNode("",!0),d.value==="redis"?(t.openBlock(),t.createElementBlock("div",qR,[t.createVNode(v,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.select_redis_configuration")),1)]),_:1}),t.createVNode(t.unref(Os.RedisConfigurationSelector),{"model-value":(w=t.unref(i).cache)==null?void 0:w.partial_id,"redis-type":"redis-ee","onUpdate:modelValue":E[0]||(E[0]=S=>t.unref(i).cache.partial_id=S)},null,8,["model-value"])])):t.createCommentVNode("",!0),d.value==="redis"&&!((F=t.unref(i).cache)!=null&&F.partial_id)&&f.value?(t.openBlock(),t.createElementBlock("div",zR,[t.createElementVNode("div",null,t.toDisplayString(t.unref(s)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config_preview")),1),t.createVNode(T,{id:"dk-cache-redis-configuration",code:f.value,language:"yaml",theme:"dark",onCodeBlockRender:b},null,8,["code"])])):t.createCommentVNode("",!0)])]}),_:1},8,["action-button-disabled","action-button-text","title","visible"])])}}}),[["__scopeId","data-v-ad53942e"]]),YR={class:"dk-resources-panel"},WR=Ae(t.defineComponent({__name:"ResourcesPanel",setup(e){const n=MR(),o=t.ref(0),{addVault:r,removeVault:i,updateVault:a,renameVault:l,formData:s}=IR();function c(_,y,h){h&&h!==_&&l(h,_,!1),a(_,y)}const{state:d,commit:f}=Ye(),u=t.computed(()=>({cache:d.value.cacheConfig}));function p(_){d.value.cacheConfig=_.cache,f()}function m(){d.value.cacheConfig=void 0,f()}function g(){o.value++}return(_,y)=>(t.openBlock(),t.createElementBlock("div",YR,[t.createVNode(_t,{data:t.unref(s),schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(DR,{name:"vault",onAdd:t.unref(r),onRemove:t.unref(i),onUpdate:c},null,8,["onAdd","onRemove"])]),_:1},8,["data","schema"]),y[0]||(y[0]=t.createElementVNode("hr",{class:"dk-resources-divider"},null,-1)),(t.openBlock(),t.createBlock(_t,{key:`${o.value}`,data:u.value,schema:t.unref(n)},{default:t.withCtx(()=>{var h;return[t.createVNode(HR,{strategy:(h=u.value.cache)==null?void 0:h.strategy,onCancel:g,onRemove:m,onUpdate:p},null,8,["strategy"])]}),_:1},8,["data","schema"]))]))}}),[["__scopeId","data-v-3a9010b8"]]),XR={class:"header"},ZR={class:"title"},JR={class:"body"},QR={class:"panel"},eD=Ae(t.defineComponent({__name:"SidePanel",setup(e){const{t:n}=Je.createI18n("en-us",it),{sidePanelExpanded:o}=ii(),{propertiesPanelOpen:r,selectedNode:i}=Ye(),a=t.inject(un.DATAKIT_M2,!1),l=t.ref("nodes");function s(){r.value=!1}t.watch(i,d=>{d||s()});const c=t.ref(!1);return t.onMounted(()=>{c.value=!0}),(d,f)=>{const u=t.resolveComponent("KSegmentedControl");return t.openBlock(),t.createElementBlock("aside",{class:t.normalizeClass(["side-panel",{expanded:t.unref(o),inited:c.value}])},[t.createElementVNode("header",XR,[t.createElementVNode("h2",ZR,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.name")),1)]),t.createElementVNode("div",JR,[t.createElementVNode("div",QR,[t.unref(a)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(u,{modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=p=>l.value=p),options:[{label:t.unref(n)("plugins.free-form.datakit.flow_editor.panel_segments.nodes"),value:"nodes"},{label:t.unref(n)("plugins.free-form.datakit.flow_editor.panel_segments.resources.title"),value:"resources"}]},null,8,["modelValue","options"]),l.value==="nodes"?(t.openBlock(),t.createBlock(Qm,{key:0,"hide-title":""})):t.createCommentVNode("",!0),l.value==="resources"?(t.openBlock(),t.createBlock(WR,{key:1})):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createBlock(Qm,{key:1}))])])],2)}}}),[["__scopeId","data-v-ae943268"]]),tD=t.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(n,o)=>(t.openBlock(),t.createBlock(Pt,{items:t.unref(Va)([...t.unref(Ou)]),name:e.name},null,8,["items","name"]))}}),nD=t.defineComponent({__name:"InputsRecordField",props:{name:{},items:{}},emits:["change:inputs"],setup(e){const{getSchema:n}=Ge(),{i18n:o}=De(),r=t.computed(()=>{const i=n("inputs");return i?i.fields.map(a=>Object.keys(a)[0]):[]});return(i,a)=>(t.openBlock(),t.createBlock(kt,{"as-child":"",name:e.name,"reset-label-path":"isolate"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.value,l=>(t.openBlock(),t.createBlock(Pt,{key:l,clearable:"","enable-filtering":"",items:e.items,name:l,placeholder:t.unref(o).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s=>i.$emit("change:inputs",l,s?s.value:null)},t.createSlots({_:2},[i.$slots["item-label"]?{name:"item-label",fn:t.withCtx(s=>[t.renderSlot(i.$slots,"item-label",t.mergeProps({ref_for:!0},s))]),key:"0"}:void 0]),1032,["items","name","placeholder","onChange"]))),128))]),_:3},8,["name"]))}}),oD=["data-testid"],rD={class:"dk-inputs-map-field-entry-body"},iD={class:"dk-inputs-map-field-entry-content"},aD=Ae(t.defineComponent({__name:"InputsMapField",props:{items:{},fieldNameValidator:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["change:inputs","add:field","remove:field","rename:field","change"],setup(e,{emit:n}){const o=e,r=n,{entries:i,addEntry:a,removeEntry:l,field:s}=Kr(o,r),{i18n:{t:c}}=De(),d=t.useTemplateRef("root"),f=t.ref(null),u=t.ref({});let p;async function m(E,C="key"){var x;d.value&&(await t.nextTick(),(x=d.value.querySelector(`[data-${C}-input="${E}"]`))==null||x.focus())}function g(){const{id:E}=a(),C=i.value.findIndex(({key:x})=>!x);m(C===-1?i.value.length-1:C),f.value=E}function _(E){l(E.id),E.id===f.value&&(f.value=null),E.key.trim()!==""&&r("remove:field",E.key)}function y(E){p=E.key}function h(E){if(k(E)){E.key=p,delete u.value[E.id];return}if(E.id===f.value){if(E.key.trim()==="")return;r("add:field",E.key,E.value),f.value=null}else r("rename:field",p,E.key);p=E.key}function k(E){delete u.value[E.id];const C=o.fieldNameValidator("input",p,E.key);if(C)return u.value[E.id]=C,C}function b(E){k(E)}function N(E,C){E.id!==f.value&&r("change:inputs",E.key,C)}return t.watch(()=>i.value,E=>{f.value&&(E.find(({id:C})=>C===f.value)||(f.value=null))}),(E,C)=>{const x=t.resolveComponent("KAlert"),A=t.resolveComponent("KLabel"),v=t.resolveComponent("KInput"),T=t.resolveComponent("KSelect"),I=t.resolveComponent("KButton");return t.unref(s).error?(t.openBlock(),t.createBlock(x,{key:0,appearance:"danger",message:t.unref(s).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:d,class:"dk-inputs-map-field"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),(w,F)=>(t.openBlock(),t.createElementBlock("div",{key:w.id,class:"dk-inputs-map-field-entry","data-testid":`ff-kv-container-${t.unref(s).path.value}.${F}`},[t.createVNode(A,{for:`ff-kv-entry-key-${t.unref(s).path.value}.${F}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:1},8,["for"]),t.createElementVNode("div",rD,[t.createElementVNode("div",iD,[t.createVNode(v,{id:`ff-kv-entry-key-${t.unref(s).path.value}.${F}`,modelValue:w.key,"onUpdate:modelValue":[S=>w.key=S,S=>k(w)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":F,"data-testid":`ff-key-${t.unref(s).path.value}.${F}`,error:!!u.value[w.id],"error-message":u.value[w.id],placeholder:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:S=>b(w),onChange:S=>h(w),onFocus:S=>y(w)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","placeholder","onBlur","onChange","onFocus"]),t.createVNode(T,{modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${t.unref(s).path.value}.${F}`,"enable-filtering":"",items:e.items,label:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.source"),placeholder:t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:S=>N(w,(S==null?void 0:S.value)??null)},t.createSlots({_:2},[E.$slots["item-label"]?{name:"item-template",fn:t.withCtx(({item:S})=>[t.renderSlot(E.$slots,"item-label",t.mergeProps({ref_for:!0},S),void 0,!0)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","data-testid","items","label","placeholder","onChange"])]),t.createVNode(I,{appearance:"tertiary",class:"dk-inputs-map-field-remove-btn","data-testid":`ff-kv-remove-btn-${t.unref(s).path.value}.${F}`,icon:"",onClick:S=>_(w)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.CloseIcon))]),_:1},8,["data-testid","onClick"])])],8,oD))),128)),t.createVNode(I,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(s).path.value}`,disabled:!!f.value,onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(c)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-dda8b239"]]),lD={class:"dk-source-item"},ta=Ae(t.defineComponent({__name:"SourceItem",props:{item:{}},setup(e){return(n,o)=>(t.openBlock(),t.createElementBlock("span",lD,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(wt)[e.item.type].icon),{color:t.unref(Jr),size:t.unref(ei)},null,8,["color","size"])),t.createTextVNode(" "+t.toDisplayString(e.item.label),1)]))}}),[["__scopeId","data-v-78ea8dff"]]),sD={key:1,class:"dk-inputs-field-or"},En=Ae(t.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const o=n,{getSchema:r}=Ge(),{i18n:{t:i}}=De(),a=t.computed(()=>r("inputs")),l=t.computed(()=>a.value?a.value.type==="record"?nD:aD: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)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(Be.KLabel),{class:"dk-inputs-field-h1",info:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.tooltip")},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.label")),1)]),_:1},8,["info"]),t.unref(r)("input")?(t.openBlock(),t.createBlock(Pt,{key:0,class:"dk-inputs-field-h2",clearable:"","enable-filtering":"",items:e.items,label:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.input"),"label-attributes":{info:void 0},name:"input",placeholder:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:s},{"item-label":t.withCtx(g=>[t.renderSlot(p.$slots,"item-label",t.normalizeProps(t.guardReactiveProps(g)),()=>[t.createVNode(ta,{item:g},null,8,["item"])],!0)]),_:3},8,["items","label","placeholder"])):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createElementBlock("div",sD,[t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.or")),1)])):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createBlock(t.unref(Be.KLabel),{key:2,class:"dk-inputs-field-h2 dk-margin-0"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.fields")),1)]),_:1})):t.createCommentVNode("",!0),l.value?(t.openBlock(),t.createBlock(t.unref(l),{key:3,"field-name-validator":e.fieldNameValidator,items:e.items,"key-order":e.fieldNames,name:"inputs","onAdd:field":c,"onChange:inputs":d,"onRemove:field":f,"onRename:field":u},{"item-label":t.withCtx(g=>[t.createVNode(ta,{item:g},null,8,["item"])]),_:1},8,["field-name-validator","items","key-order"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-90518c04"]]),cD={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"},dD={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 uD(e){const n=Number(e);return!isNaN(n)&&isFinite(n)}function Jn(...e){return function(o){for(const r of e){const i=r(o);if(i)return i}}}function To(e){const{i18n:{t:n}}=De(),o=()=>e?typeof e=="string"?e:n("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 eg(e,n){const{i18n:{t:o}}=De();return function(i){if(i!=null)switch(e){case"identifier":{const a=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_identifier_format",n):"Invalid identifier format";return/^[A-Za-z_][A-Za-z0-9_-]*$/.test(i)?void 0:a()}case"url":{const a=()=>n?typeof n=="string"?n: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 fD(e=0,n=1/0,o){const{i18n:{t:r}}=De();return function(a){if(a!=null&&typeof a=="string"&&(a.length<e||a.length>n))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:n}):`Value must be between ${e} and ${n} characters`}}function tg(e){const{i18n:{t:n}}=De();return function(r){if(!uD(r))return e?typeof e=="string"?e:n("plugins.free-form.datakit.flow_editor.node_properties.errors.not_number",e):"Value must be a number"}}function Es(e,n){const{i18n:{t:o}}=De();return function(i){if(i==null)return;const a=tg(n)(i);if(a)return a;const l=Number(i);switch(e){case"float":{const s=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_float",n):"Invalid float format";return Number.isFinite(l)?void 0:s()}case"integer":{const s=()=>n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_integer",n):"Invalid integer format";return Number.isInteger(l)?void 0:s()}default:return}}}function Ns(e=-1/0,n=1/0,o){const{i18n:{t:r}}=De();return function(a){if(a==null)return;const l=tg(o)(a);if(l)return l;const s=Number(a);if(s<e||s>n)return o?typeof o=="string"?o:r("plugins.free-form.datakit.flow_editor.node_properties.errors.number_range",{fieldName:o.fieldName,min:e,max:n}):`Value must be between ${e} and ${n}`}}function pD(e,n){const{state:o}=Ye(),{i18n:{t:r}}=De();return function(a){if(o.value.nodes.some(l=>l.name===a&&l.id!==e))return n?typeof n=="string"?n:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",n):"Name must be unique."}}function mD(e,n,o){const{i18n:{t:r}}=De();return function(a){if(!n)return;if(o?n.fields[e].some(s=>s.name===a&&s.id!==o):n.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 gD(){const{i18n:{t:e}}=De();return function(o){if(pl(o))return e("plugins.free-form.datakit.flow_editor.node_properties.errors.reserved_node_name",{nodeName:o})}}function ng(e){const{i18n:{t:n}}=De(),o={fieldName:n("plugins.free-form.datakit.flow_editor.node_properties.name")};return Jn(To(o),eg("identifier",o),gD(),pD(e,o))}function hD(e){const{i18n:{t:n}}=De(),{getNodeById:o}=Ye();return function(i,a,l){const s={fieldName:n(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 Jn(To(s),mD(i,o(e),l))(a)}}function yD(e){const n=t.ref({}),o=t.computed(()=>Object.values(n.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 n.value[l]=m,m},d=()=>{n.value[l]=void 0},f=u=>(d(),c(u));r[l]={handleChange:f,handleBlur:f,validate:f,isValid:t.computed(()=>n.value[l]===void 0),error:t.computed(()=>n.value[l])}});function i(){n.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 n.value}return{isValid:o,errorMap:n,fields:r,clearErrors:i,validate:a}}function Er(e){const{validationConfig:n,getValidationData:o,toggleNodeValid:r}=e,{skipValidation:i}=Ye(),a=t.computed(()=>typeof n=="function"?n():n),l=t.computed(()=>yD(a.value)),s=t.computed(()=>l.value.fields),c=t.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:t.computed(()=>{const m=s.value[u];return m?!m.isValid.value:!1}),errorMessage:t.computed(()=>{const m=s.value[u];return m?m.error.value??"":""})}}return t.onMounted(()=>{i.value?i.value=!1:d()}),t.onBeforeUnmount(async()=>{try{const u=d(),p=Object.values(u).filter(Boolean).length>0;r(!p)}catch{}}),t.watch(()=>c.value,r,{immediate:!0}),{fields:s.value,isValid:c,validateAll:d,createFieldHandler:f}}function sn(e,n){const o=t.inject(un.DATAKIT_M2,!1),{state:r,renameNode:i,getNodeById:a,addField:l,renameField:s,removeField:c,replaceConfig:d,disconnectEdge:f,connectEdge:u,invalidConfigNodeIds:p,commit:m,revert:g}=Ye(),{i18n:{t:_}}=De(),y=qm(),h=t.computed(()=>{const M=a(e);if(!M)throw new Error("Node not existed");return M}),k=t.computed(()=>{const L=r.value.edges.filter(O=>O.target===e).reduce((O,R)=>{var se,ue;const H=a(R.source),te=(se=hn(H,"output",R.sourceField))==null?void 0:se.id,W=(ue=hn(h.value,"input",R.targetField))==null?void 0:ue.name,j=H.id+(te?`.${te}`:"");return W?O.inputs={...O.inputs,[W]:j}:O.input=j,O},{});return h.value.fields.input.forEach(O=>{L.inputs||(L.inputs={}),L.inputs[O.name]||(L.inputs[O.name]=null)}),{...h.value.config,...L,name:h.value.name}}),b=M=>{i(e,M??"",!0,`${e}:rename`)},N=(M,L=!0)=>{if(!n)throw new Error("getFormValue is not defined");const O=Jt(n(),["name","input","inputs"]),R=M?`update:${e}:${M}`:void 0;d(e,O,L,R)},E=(M,L)=>{const O=gn(h.value,M,L);if(!O)throw new Error(`Field with name "${L}" not found in node "${h.value.name}"`);return O},C=(M,L,O)=>{const R=!!O;l(e,M,L,!R),R&&I(L,O)},x=(M,L,O)=>{const R=E(M,L).id;s(e,R,O)},A=(M,L)=>{const O=E(M,L).id;c(e,O)},v=t.computed(()=>r.value.edges.filter(M=>M.target===e&&!M.targetField)[0]),T=t.computed(()=>r.value.edges.filter(M=>M.target===e&&M.targetField)),I=async(M,L)=>{const O=L==null,R=E("input",M).id;if(O){const q=T.value.find(ae=>ae.targetField===R);q&&f(q.id);return}const{nodeId:H,fieldId:te}=Du(L),W=E("input",M).id,j=[];v.value&&(j.push(kr(v.value,a)),f(v.value.id,!1));const se=T.value.find(q=>q.targetField===R);se&&(j.push(kr(se,a)),f(se.id,!1)),u({source:H,sourceField:te,target:e,targetField:W},!1);const ue=ls(H,te,e,W,a),ge=j[0]&&ue?j[0][1]===ue[1]:!1;if(m(),ge||j.length===0)return;await y(_("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[ue],j)||g()},w=async M=>{if(M==null){v.value&&f(v.value.id);return}const O=[];for(const j of T.value)O.push(kr(j,a)),f(j.id,!1);v.value&&f(v.value.id,!1);const{nodeId:R,fieldId:H}=Du(M);u({source:R,sourceField:H,target:e,targetField:void 0},!1);const te=ls(R,H,e,void 0,a);if(m(),O.length===0)return;await y(_("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[te],O)||g()},F=M=>{const L=[...r.value.edges,{source:M,target:e}];return _l(ri(L))},S=t.computed(()=>{var L,O;const M=[];for(const R of r.value.nodes)if(!(!o&&R.type==="vault"||!((L=bo(R.type).io)!=null&&L.output))&&R.fields.output&&R.id!==e&&!(R.type==="property"&&!is((O=R.config)==null?void 0:O.property))&&!F(R.id)&&!(h.value.phase==="request"&&R.phase==="response")&&!(R.type==="vault"&&R.fields.output.length===0)){M.push({value:R.id,label:R.name,type:R.type});for(const te of R.fields.output)M.push({value:`${R.id}.${te.id}`,label:`${R.name}.${te.name}`,type:R.type})}return M}),U=t.computed(()=>h.value.fields.input.map(M=>M.name)||[]);function B(M){p.value.delete(e),M||p.value.add(e)}const oe=hD(e);function ie(M,L,O){const R=a(e);if(!R)throw new Error("Node not found when validating field name");const H=gn(R,M,L);return oe(M,O,H==null?void 0:H.id)}return{formData:k,inputOptions:S,inputEdge:v,inputsEdges:T,inputsFieldNames:U,currentNode:h,setName:b,setConfig:N,addField:C,renameFieldByName:x,removeFieldByName:A,setInputs:I,setInput:w,nameValidator:ng(e),fieldNameValidator:ie,toggleNodeValid:B}}function cn(e){const{getSchema:n}=Ge();return t.computed(()=>{if(Nt(e))switch(e){case"response":return dD;case"service_request":return cD}try{const l=n().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 Qn=t.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:n}){const o=e,r=n,{i18n:{t:i}}=De(),a=t.ref(o.name),l=t.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 t.watch(()=>o.name,f=>{f!==a.value&&(a.value=f)}),(f,u)=>{const p=t.resolveComponent("KInput");return t.openBlock(),t.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:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.name"),required:"",onChange:c,onFocus:d},null,8,["model-value","error","error-message","label"])}}}),_D=t.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=De(),o=t.useTemplateRef("form"),r=cn("call"),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,toggleNodeValid:p,fieldNameValidator:m}=sn(e.nodeId,()=>o.value.getValue()),{createFieldHandler:g}=Er({validationConfig:{url:Jn(To({fieldName:"URL"}),eg("url",{fieldName:"URL"})),timeout:Jn(Es("integer"),Ns(0,2147483646))},getValidationData:()=>({url:i.value.url,timeout:i.value.timeout}),toggleNodeValid:p}),_=g("url",()=>l("url")),y=g("timeout",()=>l("timeout"));return(h,k)=>{const b=t.resolveComponent("KLabel");return t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(u),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(b,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(so,{error:t.unref(_).error.value,"error-message":t.unref(_).errorMessage.value,name:"url",onBlur:t.unref(_).onBlur,"onUpdate:modelValue":t.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(tD,{name:"method",onUpdate:k[0]||(k[0]=N=>t.unref(l)())}),t.createVNode(Mn,{error:t.unref(y).error.value,"error-message":t.unref(y).errorMessage.value,name:"timeout",onBlur:t.unref(y).onBlur,"onUpdate:modelValue":t.unref(y).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(so,{name:"ssl_server_name","onUpdate:modelValue":k[1]||(k[1]=N=>t.unref(l)("ssl_server_name"))}),t.createVNode(En,{"field-name-validator":t.unref(m),"field-names":t.unref(f),items:t.unref(s),"onChange:input":t.unref(d),"onChange:inputs":t.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),bD=t.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("service_request"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=sn(e.nodeId,()=>n.value.getValue());return(d,f)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(En,{"field-name-validator":t.unref(c),"field-names":t.unref(s),items:t.unref(i),"onChange:input":t.unref(l),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),wD=t.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("response"),{formData:r,inputOptions:i,setInputs:a,setInput:l,inputsFieldNames:s,fieldNameValidator:c}=sn(e.nodeId,()=>n.value.getValue());return(d,f)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(En,{"field-name-validator":t.unref(c),"field-names":t.unref(s),items:t.unref(i),"onChange:input":t.unref(l),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),og={jqlang:"https://jqlang.org/manual/"},kD=t.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t:n},i18nT:o}=De(),r=t.useTemplateRef("form"),i=cn("jq"),{formData:a,setName:l,setConfig:s,inputOptions:c,setInputs:d,setInput:f,addField:u,removeFieldByName:p,renameFieldByName:m,inputsFieldNames:g,nameValidator:_,toggleNodeValid:y,fieldNameValidator:h}=sn(e.nodeId,()=>r.value.getValue());function k(A,v){u("input",A,v)}function b(A){p("input",A)}function N(A,v){m("input",A,v)}const E=n("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:C}=Er({validationConfig:{jq:Jn(To({fieldName:E}),fD(1,10240,{fieldName:E}))},getValidationData:()=>({jq:a.value.jq}),toggleNodeValid:y}),x=C("jq",()=>s("jq"));return(A,v)=>{const T=t.resolveComponent("KLabel"),I=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(a),schema:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(a).name,validate:t.unref(_),onUpdate:t.unref(l)},null,8,["name","validate","onUpdate"]),t.createVNode(T,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(so,{autosize:"",error:t.unref(x).error.value,"error-message":t.unref(x).errorMessage.value,label:t.unref(E),"label-attributes":{},multiline:"",name:"jq",resizable:"",onBlur:t.unref(x).onBlur,"onUpdate:modelValue":t.unref(x).onUpdate},{help:t.withCtx(()=>[t.createVNode(t.unref(o),{keypath:"plugins.free-form.datakit.flow_editor.node_properties.jq.help"},{link:t.withCtx(()=>[t.createVNode(I,{"hide-icon":"",href:t.unref(og).jqlang},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(og).jqlang),1)]),_:1},8,["href"])]),_:1})]),_:1},8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createVNode(En,{"field-name-validator":t.unref(h),"field-names":t.unref(g),items:t.unref(c),"onAdd:field":k,"onChange:input":t.unref(f),"onChange:inputs":t.unref(d),"onRemove:field":b,"onRename:field":N},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),CD=Ae(t.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},initialValue:{},label:{},keyPlaceholder:{},valuePlaceholder:{},defaultKey:{},defaultValue:{},labelAttributes:{},showVaultSecretPicker:{type:Boolean},keyOrder:{},name:{}},emits:["change:value","add:field","rename:field","remove:field","change"],setup(e,{emit:n}){const o=e,r=n,i=t.ref({}),{entries:a,addEntry:l,removeEntry:s,field:c}=Kr(o,r,!1),{i18n:d}=De(),f=t.useTemplateRef("root"),u=t.ref(null);let p;async function m(E,C="key"){var x;f.value&&(await t.nextTick(),(x=f.value.querySelector(`[data-${C}-input="${E}"]`))==null||x.focus())}function g(){const E=l(),C=a.value.findIndex(({key:x})=>!x);m(C===-1?a.value.length-1:C),u.value=E}function _(E){var C;E.id===((C=u.value)==null?void 0:C.id)&&(u.value=null),s(E.id),E.key.trim()!==""&&r("remove:field",E.key)}function y(E){p=E.key}function h(E){var C;if(b(E)){E.key=p,delete i.value[E.id];return}if(E.id===((C=u.value)==null?void 0:C.id)){if(E.key.trim()==="")return;u.value=null,r("add:field",E.key,E.value)}else r("rename:field",p,E.key);p=E.key}function k(E,C){var A;if(C.id===((A=u.value)==null?void 0:A.id))return;const x=E.target.value.trim();r("change:value",C.key,x)}function b(E){delete i.value[E.id];const C=o.fieldNameValidator("output",p,E.key);if(C)return i.value[E.id]=C,C}function N(E){b(E)}return t.watchEffect(()=>{u.value&&!a.value.some(E=>E.id===u.value.id)&&a.value.push(u.value)}),(E,C)=>{const x=t.resolveComponent("KAlert"),A=t.resolveComponent("KLabel"),v=t.resolveComponent("KButton"),T=t.resolveComponent("KInput"),I=t.resolveComponent("KCard");return t.unref(c).error?(t.openBlock(),t.createBlock(x,{key:0,appearance:"danger",message:t.unref(c).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:f,class:"dk-output-value-field"},[t.createVNode(A,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(a),(w,F)=>(t.openBlock(),t.createBlock(I,{key:w.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${t.unref(c).path.value}.${F}`},{actions:t.withCtx(()=>[t.createVNode(v,{appearance:"none","data-testid":`ff-kv-remove-btn-${t.unref(c).path.value}.${F}`,icon:"",onClick:S=>_(w)},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.CloseIcon))]),_:1},8,["data-testid","onClick"])]),default:t.withCtx(()=>[t.createVNode(T,{id:`ff-kv-entry-key-${t.unref(c).path.value}.${F}`,modelValue:w.key,"onUpdate:modelValue":[S=>w.key=S,S=>b(w)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":F,"data-testid":`ff-key-${t.unref(c).path.value}.${F}`,error:!!i.value[w.id],"error-message":i.value[w.id],label:t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:S=>N(w),onChange:S=>h(w),onFocus:S=>y(w)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),t.createVNode(T,{modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${t.unref(c).path.value}.${F}`,label:t.unref(d).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:S=>k(S,w)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),t.createVNode(v,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(c).path.value}`,disabled:!!u.value,onClick:g},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.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-5e17f8cb"]]);function ED(e){const n={};for(const[o,r]of Object.entries(e))typeof r=="object"&&r!==null?n[o]=JSON.stringify(r):n[o]=String(r);return n}function na(e){const n={};for(const[o,r]of Object.entries(e))if(r!=null){n[o]=r;try{r==="null"?n[o]=null:(r==="true"||r==="false"||/^-?\d+(\.\d+)?$/.test(r)||r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))&&(n[o]=JSON.parse(r))}catch{}}return n}function ND(e,n,o){const r={};for(const i of Object.keys(e))i===n?r[o]=e[n]:r[i]=e[i];return r}const xD=t.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:n,getOutEdgesByNodeId:o,addField:r,renameField:i,removeField:a,replaceConfig:l,getNodeById:s}=Ye(),{fieldNameValidator:c}=sn(e.nodeId),d=cn("static"),f=ng(e.nodeId),u=t.computed(()=>s(e.nodeId)),p=t.computed(()=>{var b;return((b=u.value)==null?void 0:b.fields.output.map(N=>N.name))||[]});function m(b){if(!u.value)throw new Error("No current node");n(u.value.id,b??"")}const g=t.computed(()=>{var v;if(!u.value)return{};const b=((v=u.value.config)==null?void 0:v.values)??{},N={},E=o(u.value.id).map(T=>T.sourceField).filter(Boolean).map(T=>hn(u.value,"output",T)).map(T=>T==null?void 0:T.name).filter(Boolean),C=u.value.fields.output.map(T=>T.name),x=Object.keys(b);return new Set([...x,...E,...C]).forEach(T=>{if(T in b){N[T]=b[T];return}N[T]=""}),{name:u.value.name,values:ED(N)}});function _(b,N){if(!u.value)throw new Error("No selected node");const E=N!==void 0;if(r(e.nodeId,"output",b,!E),E){const C={values:na({...g.value.values,[b]:N})};l(e.nodeId,C)}}function y(b,N){if(!u.value)throw new Error("No selected node");const E=gn(u.value,"output",b);if(!E)throw new Error("No field found to rename");const C={values:na(ND(g.value.values??{},b,N))};l(e.nodeId,C,!1),i(e.nodeId,E.id,N)}function h(b){var C;if(!u.value)throw new Error("No selected node");const N=gn(u.value,"output",b);if(!N)throw new Error("No field found to delete");a((C=u.value)==null?void 0:C.id,N.id,!0,!1);const E={values:na({...g.value.values})};delete E.values[b],l(e.nodeId,E)}function k(b,N){if(!u.value)throw new Error("No selected node");const E={...g.value.values};E[b]=N;const C={values:na(E)};l(e.nodeId,C)}return(b,N)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:g.value,schema:t.unref(d)},{default:t.withCtx(()=>{var E;return[t.createVNode(Qn,{name:((E=u.value)==null?void 0:E.name)??"",validate:t.unref(f),onUpdate:m},null,8,["name","validate"]),t.createVNode(CD,{"field-name-validator":t.unref(c),"key-order":p.value,name:"values","onAdd:field":_,"onChange:value":k,"onRemove:field":h,"onRename:field":y},null,8,["field-name-validator","key-order"])]}),_:1},8,["data","schema"]))}}),SD={class:"dk-kong-property-item"},vD={class:"property-type"},AD={class:"property-badges"},ID=Ae(t.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:n}){const{i18n:{t:o}}=De(),r=e,i=n,{formData:a}=Ge(),l=t.ref(br(a.property)),s=t.computed(()=>wr(a.property)),c=t.ref(rs(a.property)),d=t.computed(()=>a.property??""),f=t.computed(()=>Object.entries(Wn).map(([m])=>{var y;const g=wr(m)?(y=a.property)==null?void 0:y.startsWith(m.replace(Io,"")):a.property===m;return{label:g&&c.value?m.replace(Io,c.value):m,value:m,selected:g}}));function u(m){const g=Gi.find(_=>{var y;return(y=a.property)==null?void 0:y.startsWith(_)});g&&(a.property=g+m,r.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){l.value!==br(m==null?void 0:m.value)&&(a.property=(m==null?void 0:m.value)||null,l.value=br(a.property),r.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return t.watch(()=>a.property,m=>{c.value=rs(m),l.value=br(m)}),(m,g)=>{const _=t.resolveComponent("KBadge"),y=t.resolveComponent("KSelect"),h=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock(t.Fragment,null,[(t.openBlock(),t.createBlock(y,{key:d.value,"enable-filtering":"",error:!e.validators.property.isValid.value,help:e.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]=k=>e.validators.property.handleBlur(()=>t.unref(a).property)),onChange:p},{"item-template":t.withCtx(({item:k})=>[t.createElementVNode("div",SD,[t.createElementVNode("div",null,[t.createElementVNode("div",null,t.toDisplayString(k.label),1),t.createElementVNode("div",vD,t.toDisplayString(t.unref(Wn)[k.value].dataType),1)]),t.createElementVNode("div",AD,[t.unref(Wn)[k.value].readable?(t.openBlock(),t.createBlock(_,{key:0,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):t.createCommentVNode("",!0),t.unref(Wn)[k.value].writable?(t.openBlock(),t.createBlock(_,{key:1,appearance:"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):t.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),s.value?(t.openBlock(),t.createBlock(h,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=k=>c.value=k),u],error:!e.validators.key.isValid.value,"error-message":e.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=k=>e.validators.key.handleBlur(()=>t.unref(a).property))},null,8,["model-value","error","error-message"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-0ab1be87"]]),PD=t.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),{selectedNode:o,disconnectInEdges:r,disconnectOutEdges:i}=Ye(),a=cn("property"),{formData:l,setName:s,setConfig:c,inputOptions:d,setInputs:f,setInput:u,inputsFieldNames:p,nameValidator:m,toggleNodeValid:g,fieldNameValidator:_}=sn(e.nodeId,()=>n.value.getValue()),y=t.computed(()=>as(l.value.property));function h(b){var E;const N=(E=o.value)==null?void 0:E.id;if(!N)throw new Error("Expected selectedNode to be defined");is(b)||i(N,!1),as(b)||r(N,!1),c()}const{fields:k}=Er({validationConfig:()=>({property:To({fieldName:"Property"}),key:wr(l.value.property)?To({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:rs(l.value.property)}),toggleNodeValid:g});return(b,N)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(l).name,validate:t.unref(m),onUpdate:t.unref(s)},null,8,["name","validate","onUpdate"]),t.createVNode(Pt,{name:"content_type",onUpdate:N[0]||(N[0]=E=>t.unref(c)())}),t.createVNode(ID,{validators:t.unref(k),"onUpdate:modelValue":h,"onUpdate:propertyKey":N[1]||(N[1]=E=>t.unref(c)("property-key"))},null,8,["validators"]),y.value?(t.openBlock(),t.createBlock(En,{key:0,"field-name-validator":t.unref(_),"field-names":t.unref(p),items:t.unref(d),"onChange:input":t.unref(u),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):t.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),TD=t.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("exit"),{formData:r,setName:i,setConfig:a,inputOptions:l,setInputs:s,setInput:c,inputsFieldNames:d,nameValidator:f,toggleNodeValid:u,fieldNameValidator:p}=sn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:m}=Er({validationConfig:{status:Jn(Es("integer",{fieldName:"Status"}),Ns(200,599,{fieldName:"Status"}))},getValidationData:()=>({status:r.value.status}),toggleNodeValid:u}),g=m("status",()=>a("status"));return(_,y)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(r),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(r).name,validate:t.unref(f),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(Mn,{error:t.unref(g).error.value,"error-message":t.unref(g).errorMessage.value,name:"status",onBlur:t.unref(g).onBlur,"onUpdate:modelValue":t.unref(g).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(Ur,{name:"warn_headers_sent","onUpdate:modelValue":y[0]||(y[0]=h=>t.unref(a)())}),t.createVNode(En,{"field-name-validator":t.unref(p),"field-names":t.unref(d),items:t.unref(l),"onChange:input":t.unref(c),"onChange:inputs":t.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}});function OD(e){const n=sn(e),{state:o,getNodeById:r,branchGroups:i,commit:a}=Ye(),{i18n:{t:l}}=De(),s=qm(),c=qa(),d=t.computed(()=>{var b;const h={...n.formData.value},k=Qo(((b=n.currentNode.value)==null?void 0:b.type)||"branch");for(const N of k)(!(N in h)||h[N]==null)&&(h[N]=[]);return h});function f(h,k,b){const N=r(h),E=r(b),C=N?`${N.name}.${k}`:`${h}.${k}`,x=E?E.name:b;return[C,x]}function u(h){return(h==null?[]:Array.isArray(h)?h:[h]).filter(k=>Ru(k))}function p(h,k){return i.wouldCreateCycle(h,k)?(c({message:l("plugins.free-form.datakit.flow_editor.error.branch_cycle"),appearance:"danger"}),!0):!1}function m(h,k,b){const N=[],E=[],C=[];for(const x of b){const A=i.findMembership(x);if(!A||A.ownerId===h&&A.branch===k)continue;const v=i.getMembers(A.ownerId,A.branch).filter(T=>T!==x);C.push({ownerId:A.ownerId,branch:A.branch,members:v}),N.push(f(h,k,x)),E.push(f(A.ownerId,A.branch,x))}return{conflictUpdates:C,addedAssignments:N,removedAssignments:E}}function g(h,k,b,N){let E=!1;for(const C of N)E=i.setMembers(C.ownerId,C.branch,C.members,{commit:!1})||E;return E=i.setMembers(h,k,b,{commit:!1})||E,E}async function _(h,k){const b=n.currentNode.value,N=u(k),E=i.prepareMembers(b.id,h,N),C=i.getMembers(b.id,h);if(gl(C,E))return!0;const x=E.filter(w=>!C.includes(w));for(const w of x)if(p(b.id,w))return!1;const{conflictUpdates:A,addedAssignments:v,removedAssignments:T}=m(b.id,h,x);return A.length>0&&!await s(l("plugins.free-form.datakit.flow_editor.confirm.message.branch_replace"),v,T)?!1:(g(b.id,h,E,A)&&a(),!0)}const y=t.computed(()=>{const h=n.currentNode.value;return!h||!i?[]:o.value.nodes.filter(k=>k.id!==e&&!Nt(k.type)&&k.phase===h.phase&&!i.wouldCreateCycle(h.id,k.id)).map(k=>({value:k.id,label:k.name,type:k.type}))});return{...n,formData:d,branchOptions:y,updateBranchMembers:_}}const $D=t.defineComponent({__name:"NodeFormBranch",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=De(),o=cn("branch"),r=t.ref(0),{formData:i,setName:a,inputOptions:l,branchOptions:s,nameValidator:c,setInput:d,setInputs:f,inputsFieldNames:u,fieldNameValidator:p,updateBranchMembers:m}=OD(e.nodeId);async function g(_,y){await m(_,y)||(r.value+=1)}return(_,y)=>(t.openBlock(),t.createBlock(_t,{key:r.value,data:t.unref(i),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(c),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(Be.KLabel),{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(Pt,{"enable-filtering":"",items:t.unref(s),multiple:"",name:"then",onUpdate:y[0]||(y[0]=h=>g("then",h))},{"item-label":t.withCtx(h=>[t.createVNode(ta,{item:h},null,8,["item"])]),_:1},8,["items"]),t.createVNode(Pt,{"enable-filtering":"",items:t.unref(s),multiple:"",name:"else",onUpdate:y[1]||(y[1]=h=>g("else",h))},{"item-label":t.withCtx(h=>[t.createVNode(ta,{item:h},null,8,["item"])]),_:1},8,["items"]),t.createVNode(En,{"field-name-validator":t.unref(p),"field-names":t.unref(u),items:t.unref(l),"onChange:input":t.unref(d),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),BD=t.defineComponent({__name:"NodeFormCache",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),o=cn("cache"),{i18n:{t:r}}=De(),{formData:i,setName:a,setConfig:l,inputOptions:s,setInputs:c,setInput:d,inputsFieldNames:f,nameValidator:u,toggleNodeValid:p,fieldNameValidator:m}=sn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Er({validationConfig:()=>({ttl:Jn(Es("integer",{fieldName:"TTL"}),Ns(1,1/0,{fieldName:"TTL"}))}),getValidationData:()=>({ttl:i.value.ttl}),toggleNodeValid:p}),_=g("ttl",()=>l("ttl"));return(y,h)=>(t.openBlock(),t.createBlock(_t,{ref:"form",data:t.unref(i),schema:t.unref(o)},{default:t.withCtx(()=>[t.createVNode(Qn,{name:t.unref(i).name,validate:t.unref(u),onUpdate:t.unref(a)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(Be.KLabel),{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(Ur,{name:"bypass_on_error","onUpdate:modelValue":h[0]||(h[0]=k=>t.unref(l)("bypass_on_error"))}),t.createVNode(Mn,{error:t.unref(_).error.value,"error-message":t.unref(_).errorMessage.value,name:"ttl",onBlur:t.unref(_).onBlur,"onUpdate:modelValue":t.unref(_).onUpdate},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(En,{"field-name-validator":t.unref(m),"field-names":t.unref(f),items:t.unref(s),"onChange:input":t.unref(d),"onChange:inputs":t.unref(c)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),VD=["innerHTML"],RD=t.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:`${Hp}px`},offsetTop:{default:`${dT}px`},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{getNodeById:n}=Ye(),o=t.computed(()=>e.nodeId&&n(e.nodeId)),r=t.computed(()=>{var i;switch((i=o.value)==null?void 0:i.type){case"call":return _D;case"service_request":return bD;case"response":return wD;case"jq":return kD;case"static":return xD;case"property":return PD;case"exit":return TD;case"branch":return $D;case"cache":return BD;default:return null}});return(i,a)=>(t.openBlock(),t.createBlock(t.unref(Be.KSlideout),{class:"dk-node-properties-panel","close-on-blur":!1,"has-overlay":!1,"max-width":e.maxWidth,"offset-top":e.offsetTop,visible:e.visible,"z-index":t.unref(cT),onClose:a[0]||(a[0]=l=>i.$emit("close"))},t.createSlots({default:t.withCtx(()=>[o.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:t.unref(Tt)(o.value.type)},null,8,VD)):t.createCommentVNode("",!0),r.value?(t.openBlock(),t.createBlock(t.unref(r),{key:e.nodeId,class:"dk-node-properties-panel-form","node-id":e.nodeId},null,8,["node-id"])):t.createCommentVNode("",!0)]),_:2},[o.value?{name:"title",fn:t.withCtx(()=>[t.createVNode(Wm,{type:o.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible","z-index"]))}}),DD=Ae(RD,[["__scopeId","data-v-bad25d77"]]),MD={class:"dk-editor-content"},LD={class:"main"},FD=Ae(t.defineComponent({__name:"EditorContent",setup(e){const{propertiesPanelOpen:n,selectedNode:o}=Ye();function r(){n.value=!1}t.watch(o,a=>{a||r()});const i=t.ref(!1);return t.onMounted(()=>{i.value=!0}),(a,l)=>{var s;return t.openBlock(),t.createElementBlock("div",MD,[t.createVNode(t.unref(eD)),t.createElementVNode("div",LD,[t.createVNode(_R)]),t.createVNode(DD,{"node-id":(s=t.unref(o))==null?void 0:s.id,visible:t.unref(n),onClose:r},null,8,["node-id","visible"])])}}}),[["__scopeId","data-v-8f04afa6"]]),UD={key:0,class:"dk-editor-modal"},KD=Ae(t.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){t.useCssVars(s=>({v8758bbfe:`${t.unref(sT)}px`,v30e03211:`${t.unref(zp)}px`}));const n=t.useModel(e,"open"),o=t.ref(!1),r=t.useTemplateRef("confirm-modal"),{clear:i}=Ye();xV(async(...s)=>{o.value=!0;const c=await r.value.open(...s);return o.value=!1,c});const a=je.useScrollLock(document);t.watch(n,s=>{a.value=!!s,s||i()},{immediate:!0});function l(){n.value=!1}return(s,c)=>n.value?(t.openBlock(),t.createElementBlock("div",UD,[t.createVNode(fR,{class:"nav",onBack:l}),t.createVNode(FD,{ref:"content",class:"content",tabindex:"0"},null,512),t.createVNode(sR,{ref:"confirm-modal"},null,512)])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-abbb8dba"]]),jD={class:"dk-flow-editor"},GD={class:"flow-panels-container"},qD={class:"overlay"},zD=Ae(t.defineComponent({__name:"FlowEditor",props:{isEditing:{type:Boolean}},emits:["change","error"],setup(e,{emit:n}){const{t:o}=Je.createI18n("en-us",it),{formData:r}=Ge(),i=n;function a(c,d,f,u){const p={...r.config,nodes:c};f!==void 0&&(p.resources=f);const m={...r.__ui_data,...d};r.config=p,r.__ui_data=m,u!=null?r.partials=[{id:u}]:r.partials&&(r.partials=null),i("change",p,m)}const{modalOpen:l,setPendingFitView:s}=Hu(r,{onChange:a,isEditing:e.isEditing});return t.watch(l,()=>{s(!0)},{flush:"post"}),S1({enabled:l}),(c,d)=>{const f=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",jD,[t.createElementVNode("div",GD,[t.createVNode(Cs,{inactive:t.unref(l),mode:"preview"},null,8,["inactive"]),t.createElementVNode("div",qD,[t.createVNode(f,{appearance:"secondary",class:"button-open-editor",onClick:d[0]||(d[0]=u=>l.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.cta"))+" ",1),t.createVNode(t.unref(ve.ExpandIcon))]),_:1})])]),t.createVNode(KD,{open:t.unref(l),"onUpdate:open":d[1]||(d[1]=u=>t.isRef(l)?l.value=u:null)},null,8,["open"])])}}}),[["__scopeId","data-v-82ca6e78"]]);function HD(e,n){const o=[],r=(i,a)=>{typeof a=="string"&&o.push({nodeName:e.name,path:["nodes",n,...i],value:a})};if("input"in e&&e.input!=null&&r(["input"],e.input),"inputs"in e&&e.inputs&&typeof e.inputs=="object")for(const[i,a]of Object.entries(e.inputs))a!=null&&r(["inputs",i],a);if("output"in e&&e.output!=null&&r(["output"],e.output),"outputs"in e&&e.outputs&&typeof e.outputs=="object")for(const[i,a]of Object.entries(e.outputs))a!=null&&r(["outputs",i],a);return o}function YD(e){const n=e.path[2];return n==="output"||n==="outputs"}function rg(e){if(!e)return!1;for(const n of Object.values(e))if(n!=null)return!0;return!1}function ig(e,n){const o=e.input!==void 0&&e.input!==null,r=rg(e.inputs);o&&r&&n.addIssue({code:"custom",message:'A node cannot use both "input" and "inputs". Use one or the other.',path:["inputs"]});const i=e.output!==void 0&&e.output!==null,a=rg(e.outputs);i&&a&&n.addIssue({code:"custom",message:'A node cannot use both "output" and "outputs". Use one or the other.',path:["outputs"]})}function ag(e,n,o){if(!e.nodes)return;const r=e.nodes.map(c=>c.name),i=new Set;r.forEach((c,d)=>{i.has(c)&&o.addIssue({code:"custom",message:`Duplicate node name: "${c}"`,path:["nodes",d,"name"]}),i.add(c)});const a=new Set([...n,...r]),l=new Map,s=new Map;e.nodes.forEach((c,d)=>{for(const f of HD(c,d)){const u=f.value.split(".",1)[0];if(a.has(u)||o.addIssue({code:"custom",message:`Unknown node "${u}" in connection "${f.value}"`,path:f.path}),YD(f)){const p=`${f.nodeName}->${u}`;s.has(p)?o.addIssue({code:"custom",message:`Connection specified on both sides: "${f.nodeName}" outputs to "${u}" and "${u}" inputs from "${f.nodeName}". Specify it on one side only.`,path:f.path}):l.set(p,l.get(p)??f.path)}else{const p=`${u}->${f.nodeName}`;l.has(p)?o.addIssue({code:"custom",message:`Connection specified on both sides: "${u}" outputs to "${f.nodeName}" and "${f.nodeName}" inputs from "${u}". Specify it on one side only.`,path:f.path}):s.set(p,s.get(p)??f.path)}}})}const WD=ee.z.enum(Pu),XD=ee.z.enum(yo),lg=e=>yo.includes(e),xs=ee.z.enum(Tu),sg=xs.options;ee.z.union([xs,WD]);const ZD=/^[A-Za-z_][A-Za-z0-9_-]{0,254}$/,cg=ee.z.string().min(1).max(255).regex(ZD,"Invalid node name (snake_case / kebab-case only)").refine(e=>!lg(e),"Name clashes with reserved implicit node").brand(),oa=ee.z.union([XD,cg]),JD=ee.z.string().min(1).brand(),QD=["then","else"];ee.z.enum(QD);const ut=ee.z.string().refine(e=>{if(oa.safeParse(e).success)return!0;const n=e.match(/^([^.]+)\.([^.]+)$/);if(!n)return!1;const[,o,r]=n;return oa.safeParse(o).success&&JD.safeParse(r).success},'Invalid connection, expected "NODE" or "NODE.FIELD"').nullish(),dg=ee.z.enum(Ou),eo=ee.z.object({type:ee.z.string(),name:cg,input:ut,inputs:ee.z.record(ee.z.string(),ut).nullish(),output:ut,outputs:ee.z.record(ee.z.string(),ut).nullish()}).loose().superRefine((e,n)=>{ig(e,n)}),eM=ee.z.object({type:ee.z.string(),name:ee.z.string()}).loose().superRefine((e,n)=>{const o=e.type,r=e.name;(typeof r!="string"||r.length===0||r.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"invalid node name",fatal:!1}),sg.includes(o)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${o}", expected one of: ${sg.join(", ")}`})}),tM=eo.safeExtend({type:ee.z.literal("call"),method:dg.nullish(),ssl_server_name:ee.z.string().min(1).nullish(),timeout:ee.z.number().int().min(0).max(2147483646).nullish(),url:ee.z.url(),inputs:ee.z.object({body:ut,headers:ut,query:ut}).partial().nullish(),outputs:ee.z.object({body:ut,headers:ut,status:ut}).partial().nullish()}).strict(),nM=eo.safeExtend({type:ee.z.literal("exit"),status:ee.z.number().int().min(200).max(599).nullish(),warn_headers_sent:ee.z.boolean().nullish(),output:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),oM=eo.safeExtend({type:ee.z.literal("jq"),jq:ee.z.string().min(1).max(10240),outputs:ee.z.never().optional()}).strict(),rM=eo.safeExtend({type:ee.z.literal("property"),content_type:ee.z.enum(["application/json","text/plain","application/octet-stream"]).nullish(),property:ee.z.string().min(1),inputs:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),iM=eo.safeExtend({type:ee.z.literal("static"),values:ee.z.record(ee.z.string(),ee.z.unknown()),input:ee.z.never().optional(),inputs:ee.z.never().optional()}).strict(),aM=eo.safeExtend({type:ee.z.literal("cache"),bypass_on_error:ee.z.boolean().nullish(),inputs:ee.z.object({data:ut,key:ut,ttl:ut}).partial().nullish(),outputs:ee.z.object({data:ut,hit:ut,miss:ut,stored:ut}).partial().nullish(),ttl:ee.z.number().int().gt(0).nullish()}).strict(),lM=eo.safeExtend({type:ee.z.literal("branch"),then:ee.z.array(oa).nullish(),else:ee.z.array(oa).nullish()}).strict(),sM=eM.pipe(ee.z.discriminatedUnion("type",[tM,nM,oM,rM,iM,aM,lM])),cM=ee.z.record(ee.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),ee.z.string().min(1).max(4095)),dM=ee.z.object({dictionary_name:ee.z.string().default("kong_db_cache")}),uM=ee.z.object({host:ee.z.string().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).default(6379)}),fM=ee.z.object({ip:ee.z.string().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).default(6379)}),pM=ee.z.object({host:ee.z.string().optional().default("127.0.0.1"),port:ee.z.number().int().min(0).max(65535).optional().default(6379),connect_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),send_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),read_timeout:ee.z.number().int().min(0).max(2147483646).default(2e3),username:ee.z.string().optional(),password:ee.z.string().optional(),sentinel_username:ee.z.string().optional(),sentinel_password:ee.z.string().optional(),database:ee.z.number().int().optional().default(0),keepalive_pool_size:ee.z.number().int().min(1).max(2147483646).default(256),keepalive_backlog:ee.z.number().int().min(0).max(2147483646).optional(),sentinel_master:ee.z.string().optional(),sentinel_role:ee.z.enum(["master","slave","any"]).optional(),sentinel_nodes:ee.z.array(uM).min(1,{message:"sentinel_nodes must contain at least 1 item"}).optional(),cluster_nodes:ee.z.array(fM).min(1,{message:"cluster_nodes must contain at least 1 item"}).optional(),ssl:ee.z.boolean().default(!1).optional(),ssl_verify:ee.z.boolean().default(!1).optional(),server_name:ee.z.string().optional(),cluster_max_redirections:ee.z.number().int().default(5).optional(),connection_is_proxied:ee.z.boolean().default(!1).optional(),timeout:ee.z.number().int().optional(),sentinel_addresses:ee.z.array(ee.z.string()).min(1).optional(),cluster_addresses:ee.z.array(ee.z.string()).min(1).optional()}).superRefine((e,n)=>{var c;const o=e.host!==void 0&&e.host!==null,r=e.port!==void 0&&e.port!==null;(o&&!r||!o&&r)&&n.addIssue({code:"custom",message:"host and port must be specified together",path:o?["port"]:["host"]});const i=!!e.sentinel_master,a=!!e.sentinel_role,l=!!((c=e.sentinel_nodes)!=null&&c.length),s=[i,a,l].filter(Boolean).length;s>0&&s<3&&n.addIssue({code:"custom",message:"sentinel_master, sentinel_role and sentinel_nodes must be provided together"}),e.connection_is_proxied===!0&&!o&&n.addIssue({code:"custom",message:"host is required when connection_is_proxied is true (host/port should point to the proxy)",path:["host"]})}),mM=ee.z.object({strategy:ee.z.enum(["memory","redis"]).optional(),memory:dM,redis:pM}),gM=ee.z.object({vault:cM.nullish(),cache:mM.nullish()});ee.z.array(ee.z.object({id:ee.z.string()})),ee.z.object({nodes:ee.z.array(sM).min(1,"At least one node is required"),debug:ee.z.boolean().nullish(),resources:gM.nullish()}).strict().superRefine((e,n)=>{ag(e,yo,n)});const ug=xs.options,Ss=ee.z.string().min(1).refine(e=>!e.includes("."),"Invalid node name").refine(e=>!lg(e),"Node name conflicts with reserved implicit node"),ft=ee.z.string().refine(e=>{if(!e||/\s/.test(e))return!1;const n=e.indexOf(".");if(n===-1)return!0;const o=e.slice(0,n),r=e.slice(n+1);return o.length>0&&r.length>0},"Invalid connection"),to=ee.z.object({type:ee.z.string(),name:Ss,input:ft.nullish(),inputs:ee.z.record(ee.z.string(),ft.nullish()).nullish(),output:ft.nullish(),outputs:ee.z.record(ee.z.string(),ft.nullish()).nullish()}).loose().superRefine((e,n)=>{ig(e,n)}),hM=ee.z.object({type:ee.z.string(),name:ee.z.string()}).loose().superRefine((e,n)=>{const o=e.type,r=e.name;(typeof r!="string"||r.length===0||r.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"Invalid node name",fatal:!1}),ug.includes(o)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${o}", expected one of: ${ug.join(", ")}`})}),yM=to.safeExtend({type:ee.z.literal("call"),method:dg.nullish(),ssl_server_name:ee.z.string().nullish(),timeout:ee.z.union([ee.z.number(),ee.z.string()]).nullish(),url:ee.z.string().nullish(),inputs:ee.z.object({body:ft.nullish(),headers:ft.nullish(),query:ft.nullish()}).partial().nullish(),outputs:ee.z.object({body:ft.nullish(),headers:ft.nullish(),status:ft.nullish()}).partial().nullish()}).strict(),_M=to.safeExtend({type:ee.z.literal("exit"),status:ee.z.union([ee.z.number(),ee.z.string()]).nullish(),warn_headers_sent:ee.z.boolean().nullish(),output:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),bM=to.safeExtend({type:ee.z.literal("jq"),jq:ee.z.string().nullish(),outputs:ee.z.never().optional()}).strict(),wM=to.safeExtend({type:ee.z.literal("property"),content_type:ee.z.string().nullish(),property:ee.z.string().nullish(),inputs:ee.z.never().optional(),outputs:ee.z.never().optional()}).strict(),kM=to.safeExtend({type:ee.z.literal("static"),values:ee.z.record(ee.z.string(),ee.z.unknown()).nullish(),input:ee.z.never().optional(),inputs:ee.z.never().optional()}).strict(),CM=to.safeExtend({type:ee.z.literal("cache"),bypass_on_error:ee.z.boolean().nullish(),inputs:ee.z.object({data:ft.nullish(),key:ft.nullish(),ttl:ft.nullish()}).partial().nullish(),outputs:ee.z.object({data:ft.nullish(),hit:ft.nullish(),miss:ft.nullish(),stored:ft.nullish()}).partial().nullish(),ttl:ee.z.union([ee.z.number(),ee.z.string()]).nullish()}).strict(),EM=to.safeExtend({type:ee.z.literal("branch"),then:ee.z.array(Ss).nullish(),else:ee.z.array(Ss).nullish()}).strict(),NM=hM.pipe(ee.z.discriminatedUnion("type",[yM,_M,bM,wM,kM,CM,EM])),xM=ee.z.record(ee.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),ee.z.string().min(1).max(4095)),SM=ee.z.object({dictionary_name:ee.z.string().default("kong_db_cache")}),vM=ee.z.object(),AM=ee.z.object({strategy:ee.z.enum(["memory","redis"]).optional(),memory:SM.optional(),redis:vM.optional()}),IM=ee.z.object({vault:xM.nullish(),cache:AM.nullish()}),PM=ee.z.object({nodes:ee.z.array(NM).nullish(),debug:ee.z.boolean().nullish(),resources:IM.nullish()}).strict().superRefine((e,n)=>{!e||!Array.isArray(e.nodes)||ag(e,yo,n)}).nullish(),TM={class:"dk-option-label"},OM={class:"dk-option-label"},$M=["innerHTML"],BM=Ae(t.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},editorMode:{},formConfig:{},renderRules:{},pluginName:{}},setup(e){const{t:n}=Je.createI18n("en-us",it),o=e,r=t.inject(un.DATAKIT_ENABLE_FLOW_EDITOR,!1),i=t.inject(un.DATAKIT_M2,!1),a=t.ref(!1);t.onMounted(()=>{a.value=!!document.querySelector("#plugin-form-page-actions")});const{editorMode:l}=ii(),s=t.computed(()=>r&&f.value?l.value:"code"),c=t.computed(()=>i?s.value==="flow"?"form":"code":"form"),d={flow:ve.DesignIcon,code:ve.CodeblockIcon},f=t.ref(!0),u=t.computed(()=>{const b=[{label:n("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:n("plugins.free-form.datakit.code_editor.mode"),value:"code"}];return b[0].disabled=!f.value,b}),p=t.computed(()=>{switch(s.value){case"code":return n("plugins.free-form.datakit.description_code");case"flow":return n("plugins.free-form.datakit.description_flow");default:return""}}),m=t.computed(()=>n(i?"plugins.free-form.datakit.plugin_config.title":"plugins.form.sections.plugin_config.title"));t.watch(s,()=>{var b;(b=o.onValidityChange)==null||b.call(o,{model:"config",valid:!0})});function g(){var b;(b=o.onValidityChange)==null||b.call(o,{model:"config",valid:!0})}function _(){g()}function y(b){g();let N=b;i&&(N=b==null?void 0:b.config);const{success:E}=PM.safeParse(N);let C=E;!i&&C&&(C=!h(b)),f.value=C}function h(b){var E,C;return!!((E=b==null?void 0:b.resources)!=null&&E.vault||((C=b==null?void 0:b.nodes)==null?void 0:C.some(x=>x.type==="branch"||x.type==="cache")))}function k(b){var N;f.value=!1,(N=o.onValidityChange)==null||N.call(o,{model:"config",valid:!1,error:b})}return(b,N)=>{const E=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.unref(i)?(t.openBlock(),t.createBlock(t.Teleport,{key:0,disabled:!a.value,to:"#plugin-form-page-actions"},[t.createVNode(t.unref(Be.KSegmentedControl),{"data-testid":"datakit-editor-mode-switcher","model-value":s.value,options:u.value,"onUpdate:modelValue":N[0]||(N[0]=C=>l.value=C)},{"option-label":t.withCtx(({option:C})=>[t.createVNode(E,{disabled:f.value||C.value!=="flow",text:t.unref(n)("plugins.free-form.datakit.flow_editor.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",TM,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[C.value]))),t.createTextVNode(" "+t.toDisplayString(C.label),1)])]),_:2},1032,["disabled","text"])]),_:1},8,["model-value","options"])],8,["disabled"])):t.createCommentVNode("",!0),t.createVNode(Nd,t.mergeProps(o,{class:"dk-form","editor-mode":c.value}),t.createSlots({"code-editor":t.withCtx(()=>[t.createVNode(Iu,{class:"code-editor",editing:o.isEditing,onChange:y,onError:k},null,8,["editing"])]),"plugin-config-title":t.withCtx(()=>[t.createTextVNode(t.toDisplayString(m.value),1)]),"plugin-config-description":t.withCtx(()=>[t.createElementVNode("span",{innerHTML:p.value},null,8,$M)]),default:t.withCtx(()=>[s.value==="flow"?(t.openBlock(),t.createBlock(zD,{key:0,"is-editing":o.isEditing,onChange:_},null,8,["is-editing"])):s.value==="code"&&!t.unref(i)?(t.openBlock(),t.createBlock(Iu,{key:1,class:"code-editor",editing:o.isEditing,onChange:y,onError:k},null,8,["editing"])):t.createCommentVNode("",!0)]),_:2},[t.unref(r)&&!t.unref(i)?{name:"plugin-config-extra",fn:t.withCtx(()=>[t.createVNode(t.unref(Be.KSegmentedControl),{"model-value":s.value,options:u.value,"onUpdate:modelValue":N[1]||(N[1]=C=>l.value=C)},{"option-label":t.withCtx(({option:C})=>[t.createVNode(E,{disabled:f.value||C.value!=="flow",text:t.unref(n)("plugins.free-form.datakit.flow_editor.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",OM,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[C.value]))),t.createTextVNode(" "+t.toDisplayString(C.label),1)])]),_:2},1032,["disabled","text"])]),_:1},8,["model-value","options"])]),key:"0"}:void 0]),1040,["editor-mode"])],64)}}}),[["__scopeId","data-v-35f07a89"]]),fg=e=>{if(!(!e||typeof e!="object"))for(const[n,o]of Object.entries(e))typeof o=="string"&&(e[n]=o.split(/\s*,\s*/).filter(Boolean))},pg=e=>{if(!(!e||typeof e!="object"))for(const[n,o]of Object.entries(e))Array.isArray(o)&&(e[n]=o.join(", "))},VM=t.defineComponent({__name:"ConfigForm",props:{schema:{},data:{},onChange:{type:Function}},emits:["change"],setup(e,{emit:n}){const o=n,{i18n:{t:r}}=Ke.useI18n(),l={prepareFormData:c=>{var f,u;const d=On(c);return(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{pg(p.headers),pg(p.query)}),d},hasValue:c=>!!(c!=null&&c.config)},s=c=>{var f,u;const d=On(c);(u=(f=d.config)==null?void 0:f.tools)!=null&&u.length&&d.config.tools.forEach(p=>{fg(p.headers),fg(p.query)}),o("change",d)};return(c,d)=>(t.openBlock(),t.createBlock(_t,{config:l,data:e.data,schema:e.schema,tag:"div",onChange:s},{default:t.withCtx(()=>[t.createVNode(kt,{"as-child":"",name:"config","reset-label-path":"reset"},{default_acl:t.withCtx(({name:f})=>[t.createVNode(Go,{appearance:"tabs","item-label":(u,p)=>t.unref(r)("plugins.free-form.ai-mcp-proxy.default_acl_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),tools:t.withCtx(({name:f})=>[t.createVNode(Go,{appearance:"tabs","item-label":(u,p)=>t.unref(r)("plugins.free-form.ai-mcp-proxy.tool_item_label",{index:p+1}),name:f,"sticky-tabs":""},null,8,["item-label","name"])]),_:1}),t.createVNode(Gr)]),_:1},8,["data","schema"]))}}),RM=t.defineComponent({__name:"AIMcpProxyForm",props:{schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function}},setup(e){const n=e,o=t.useSlots();return t.provide(Fe.AUTOFILL_SLOT,o==null?void 0:o[Fe.AUTOFILL_SLOT_NAME]),(r,i)=>(t.openBlock(),t.createBlock(ja,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(a=>[t.createVNode(VM,t.normalizeProps(t.guardReactiveProps(a)),null,16)]),_:1},16))}}),DM=Ae(t.defineComponent({__name:"ConfigForm",setup(e){const{getSchema:n,createComputedRenderRules:o}=Ge(),r=o("config"),i=t.computed(()=>{var _;const a=[],l=[],s=new Set,d=n().fields.find(y=>Object.keys(y)[0]==="config");if(!d||!("config"in d))return{defaultVisible:a,advanced:l};const f=d.config;f.entity_checks&&f.entity_checks.forEach(y=>{var k,b;let h;"at_least_one_of"in y?h=y.at_least_one_of:"conditional"in y&&((k=n(Ze("config",y.conditional.if_field)))!=null&&k.required)&&y.conditional.then_match.required?h=[y.conditional.if_field,y.conditional.then_field]:"conditional_at_least_one_of"in y&&((b=n(Ze("config",y.conditional_at_least_one_of.if_field)))!=null&&b.required)&&(h=[y.conditional_at_least_one_of.if_field,...y.conditional_at_least_one_of.then_at_least_one_of]),h==null||h.forEach(N=>s.add(N))});const u=((_=r.value)==null?void 0:_.bundles)??[],p=new Map;for(const y of u)for(let h=1;h<y.length;h++)p.set(y[h],y[h-1]);const m=y=>{const h=p.get(y);return h?m(h):y},g=new Map;for(const y of f.fields){const h=Object.keys(y)[0];g.set(h,m(h))}for(const y of f.fields){const h=Object.keys(y)[0];if(g.get(h)!==h)continue;let b;y[h].required||s.has(h)?b=a:b=l,b.push(h)}for(const y of f.fields){const h=Object.keys(y)[0],k=g.get(h);k!==h&&(a.includes(k)?a:l).push(h)}return{defaultVisible:a,advanced:l}});return(a,l)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(kt,{"as-child":"",name:"config",omit:i.value.advanced,"reset-label-path":"reset"},null,8,["omit"]),t.createVNode(Gr,{class:"ff-advanced-fields","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(kt,{"as-child":"",name:"config",omit:i.value.defaultVisible,"reset-label-path":"reset"},null,8,["omit"])]),_:1})],64))}}),[["__scopeId","data-v-f5897284"]]),mg=Object.freeze(Object.defineProperty({__proto__:null,AIMcpProxyForm:RM,CommonForm:t.defineComponent({__name:"CommonForm",props:{generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{},schema:{},formSchema:{},model:{},formModel:{},formOptions:{},isEditing:{type:Boolean},onModelUpdated:{type:Function},onFormChange:{type:Function},onValidityChange:{type:Function},editorMode:{},formConfig:{},renderRules:{},pluginName:{}},setup(e){const n=e,o=t.useSlots();return t.provide(Fe.AUTOFILL_SLOT,o==null?void 0:o[Fe.AUTOFILL_SLOT_NAME]),(r,i)=>(t.openBlock(),t.createBlock(Nd,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(()=>[t.createVNode(DM)]),_:1},16))}}),DatakitForm:BM,RequestCalloutForm:Ok,ServiceProtectionForm:uC},Symbol.toStringTag,{value:"Module"}));function MM(e,n){const o=St[e];if(!o||!o.fieldRules)return n;const r=LM(o.fieldRules),i={...n};return i.fields=i.fields.map(a=>Object.keys(a)[0]==="config"?{config:{...a.config,entity_checks:[...a.config.entity_checks||[],...r]}}:a),i}function LM(e){const n=[],o=r=>r.startsWith("config.")?r.substring(7):r;return e.atLeastOneOf&&e.atLeastOneOf.forEach(r=>{n.push({at_least_one_of:r.map(o)})}),e.onlyOneOf&&e.onlyOneOf.forEach(r=>{n.push({mutually_exclusive:r.map(o)})}),e.mutuallyRequired&&e.mutuallyRequired.forEach(r=>{n.push({mutually_required:r.map(o)})}),e.onlyOneOfMutuallyRequired&&e.onlyOneOfMutuallyRequired.forEach(r=>{if(r.forEach(i=>{n.push({mutually_required:i.map(o)})}),r.length>1)for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){const l=r[i].map(o),s=r[a].map(o);l.forEach(c=>{s.forEach(d=>{n.push({mutually_exclusive:[c,d]})})})}}),n}const FM={class:"kong-ui-entities-plugin-form"},UM={key:1,class:"entity-form"},KM={class:"plugin-config-empty-state"},jM=Ae(t.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},engine:{type:String,required:!1,default:void 0}},emits:["loading","model-updated","showNewPartialModal","globalAction","validity-change"],setup(e,{emit:n}){var ue,ge;const o=Object.keys(Fe.sharedForms),r=Object.keys(mg);if(new Set([...o,...r]).size!==o.length+r.length)throw new Error("Duplicate form component names found in `sharedForms` and `freeForm`");const i=n,a=e,{axiosInstance:l}=ye.useAxios((ue=a.config)==null?void 0:ue.axiosRequestConfig),{parseSchema:s}=Ke.useSchemas({entityId:((ge=a.entityMap.focusedEntity)==null?void 0:ge.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}=Ke.usePluginHelpers(),m=Ke.useExperimentalFreeForms(),{objectsAreEqual:g}=ye.useHelpers(),{i18n:{t:_}}=De(),y=re=>a.config.app==="konnect"?re.replace(/{controlPlaneId}/gi,a.config.controlPlaneId||""):a.config.app==="kongManager"?re.replace(/\/{workspace}/gi,a.config.workspace?`/${a.config.workspace}`:""):re,h=(re,q)=>{let ae=`${a.config.apiBaseUrl}${Xe.form[a.config.app].entityGetOne}`;return ae=y(ae),ae=ae.replace(/{entity}/gi,re),ae=ae.replace(/{id}/gi,q),ae},k=re=>{let q=`${a.config.apiBaseUrl}${Xe.form[a.config.app].entityGetAll}`;return q=y(q),q=q.replace(/{entity}/gi,re),q},b=(re,q,ae)=>{const ce=h(re,q);return l.get(ce,ae)},N=(re,q)=>{const ae=k(re);return a.config.app==="konnect"?l.get(ae).then(ce=>{const{data:{data:$}}=ce;if(delete q.size,delete q.offset,$.length&&Object.keys(q).length===1){const P=Object.keys(q)[0],V=$.filter(D=>D[P]?!!D[P].toLowerCase().includes(q[P].toLowerCase()):!1);ce.data.data=V}return ce}):l.get(ae,{params:q})},E=(re,q,ae)=>{const ce=k(re);if(a.config.app==="konnect"){const{size:$,offset:P,...V}=q;if(re==="consumer_groups")return l.get(ce,{params:{size:1e3},signal:ae}).then(ne=>{const{data:{data:X}}=ne;if(X.length&&Object.keys(V).length===1){const Y=Object.keys(V)[0],K=X.filter(le=>le[Y]?!!le[Y].toLowerCase().includes(V[Y].toLowerCase()):!1);ne.data.data=K}return ne});const D={size:$,offset:P};for(const ne of Object.keys(V))D.filter={[ne]:{contains:V[ne]}};return l.get(ce,{params:D,signal:ae})}return l.get(ce,{params:q,signal:ae})},C=(re,q=50)=>{const ae=k(re);return l.get(ae,{params:{size:q}})};t.provide(Fe.FORMS_API_KEY,{getOne:b,getAll:N,getAllV2:E,peek:C}),t.provide(Fe.FORMS_CONFIG,a.config);const x=t.ref(""),A=t.ref(""),v=t.ref(null),T=t.ref({}),I=t.reactive({}),w=t.reactive({}),F=t.computed(()=>{var re;return(re=v.value)==null?void 0:re.options}),S=t.computed(()=>MM(w.name,a.rawSchema)),U=t.ref(!1),B=t.ref(),oe=(re,q)=>{U.value=re??"",B.value=q},ie=re=>{var q;(q=B.value)==null||q.call(B,re),U.value=!1},M=()=>{var V,D;const re={...a.schema},q=w,ae=I,ce=Object.keys(q),$={};if(!u(T.value))for(let ne=0;ne<((D=(V=T.value)==null?void 0:V.fields)==null?void 0:D.length);ne++)re[T.value.fields[ne].model]=T.value.fields[ne];Fe.customFields.forEach(ne=>{re[ne]&&(re[ne].fields.forEach(X=>{X.fields&&X.fields.forEach(Y=>{re[Y.model]=Y}),X.model&&(re[X.model]=X)}),delete re[ne])}),ce.forEach(ne=>{var _e;if(!re[ne]){ne==="partials"&&($[ne]=q[ne]);return}const X=re[ne];let Y=q[ne];const K=ae[ne],le=Array.isArray(Y)?"array":typeof Y,G=X?X.valueType:null,z=X?X.valueArrayType:null,J=X?X.transform:null;if(Y==null&&K==null&&!X.submitWhenNull)return;if(X){if(G&&le!==G)switch(G){case"array":le==="string"&&Y.length&&(Y=Y.split(",").map(Q=>{if(Q=Q.trim(),z==="string")return String(Q);if(z==="number")return Number(Q);if(z==="boolean"){if(typeof Q=="string")return Q.toLowerCase()==="true"||Q==="1";if(typeof Q=="number")return Q===1}return Q})),(!Y||!Y.length)&&(Y=X.submitWhenNull?null:[]);break;case"number":X.referenceable!==!0&&(Y=Number(Y));break;case"boolean":le==="string"&&(Y=Y.toLowerCase()==="true"||Y==="1"),le==="number"&&(Y=Y===1);break;case"string":Y=Y==null?"":String(Y);break}else G==="array"&&(!Y||!Y.length?Y=X.submitWhenNull?null:[]:((_e=X.inputAttributes)==null?void 0:_e.type)==="number"&&(Y=Y.map(Q=>Number(Q))));if(X.type==="array"&&X.nestedFields){const Q=he=>{Object.keys(he).forEach(Ce=>{he[Ce]&&typeof he[Ce]=="object"&&!Array.isArray(he[Ce])&&he[Ce]!==null?Q(he[Ce]):(he[Ce]===void 0||he[Ce]===null||typeof he[Ce]=="number"&&isNaN(he[Ce])||typeof he[Ce]=="string"&&he[Ce].trim().length===0)&&delete he[Ce]})};Y&&typeof Y=="object"&&Q(Y)}X.type==="object-advanced"&&X.fields&&Y!==null&&(Object.entries(Y).length===0?Y=null:Object.keys(Y).forEach(Q=>{Array.isArray(Y[Q])||(Y[Q]=Y[Q].split(","))}))}let de=c(ne);if(X.fieldNameHasDashes){const[Q,...he]=de.split(".").reverse();de=[Q.replace(/_/g,"-"),...he].reverse().join(".")}if(G==="object-expand"){let Q;[de,Q]=de.split(".");let he={};$[de]&&(he=$[de]),he[Q]=Y,Y=he}K!==void 0&&Y===""&&Y!==K?$[de]=G==="object"?{}:null:X.type==="checklist"&&Y===""?$[de]=[]:Y!==""&&($[de]=Y),$[de]=J?J(Y):$[de],p(de,$)});const P=d($);return A.value&&Object.assign(P,te.value),P},L=(re,q={})=>{f(w,q,re,a.editing),i("model-updated",{model:w,originalModel:I,data:M()})},O=(re,q)=>{var $;const ae={[q]:re};typeof(($=a.schema[q])==null?void 0:$.modelTransformer)=="function"&&(ae[q]=a.schema[q].modelTransformer(re));const ce=Object.assign({},w,ae);Object.assign(w,ce),i("model-updated",{model:w,originalModel:I,data:M()})},R=re=>{i("validity-change",re)},H=(re,q)=>{Object.keys(re).forEach(ae=>{var D,ne;let ce=q?`${q}-${ae}`:ae,$=a.schema[ce];if(!$){const X=q?`${q}-${ae.replace(/-/g,"_")}`:ae.replace(/-/g,"_");(D=a.schema[X])!=null&&D.fieldNameHasDashes&&(ce=X,$=a.schema[ce]),q&&((ne=a.schema[q])==null?void 0:ne.keyFromObject)===ae&&(ce=q,$=a.schema[ce])}const P=re[ae],V=typeof P;if($&&$.type==="object-advanced"&&!P){w[ce]={},I[ce]={};return}if(Array.isArray(P)){w[ce]=JSON.parse(JSON.stringify(P)),I[ce]=JSON.parse(JSON.stringify(P));return}if(V==="object"&&P&&!P.length)return H(P,ce);if(V==="object"&&P&&P.length&&$.type==="input"){w[ce]=P.join(", "),I[ce]=P.join(", ");return}w[ce]=P,I[ce]=P}),i("model-updated",{model:w,originalModel:I,data:M()})},te=t.shallowRef(a.record),W=re=>{te.value=re,i("model-updated",{model:{...w,...re},originalModel:I,data:M()})},j=t.ref(!0),se=()=>{var re;if(a.record&&a.schema&&(H({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)&&H({consumer_id:a.record.consumer_id||a.record.consumer}),H(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)&&H({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&&L("redis",{partials:a.record.partials}),A.value?W(a.record):H(a.record.config,"config"))),Object.keys(a.entityMap).length&&!a.entityMap.global&&a.schema){const q={};for(const ae in a.entityMap){const ce=a.entityMap[ae].id,$=a.entityMap[ae].idField,P=$==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify($).replace("_","-"));Object.prototype.hasOwnProperty.call(w,P)&&(q[P]=ce)}H(q)}if((re=a.entityMap.consumer)!=null&&re.id&&a.schema&&a.credential){const q={};Object.prototype.hasOwnProperty.call(w,"consumer")&&(q.consumer=a.entityMap.consumer.id),H(q)}j.value=!1};return t.watch(j,re=>{i("loading",re)}),t.watch(()=>a.schema,(re,q)=>{var ce,$;if(g(re||{},q||{}))return;const ae=s(re,void 0,void 0,a.engine);Object.assign(w,ae.model),T.value={fields:($=(ce=T.value)==null?void 0:ce.fields)==null?void 0:$.map(P=>({...P,disabled:P.disabled||!1}))},Object.assign(I,JSON.parse(JSON.stringify(ae.model))),A.value=a.engine?a.engine==="vfg"?void 0:$a(ae.model.name,m)||"CommonForm":$a(ae.model.name,m),x.value=Fe.getSharedFormName(ae.model.name),se()},{immediate:!0,deep:!0}),t.onBeforeMount(()=>{var re,q;v.value=s(a.schema,void 0,void 0,a.engine),Object.assign(w,((re=v.value)==null?void 0:re.model)||{}),T.value=((q=v.value)==null?void 0:q.schema)||{},se()}),(re,q)=>{var ce,$;const ae=t.resolveComponent("KSkeleton");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",FM,[j.value?(t.openBlock(),t.createBlock(ae,{key:0,type:"form"})):w.id&&e.editing||!e.editing?(t.openBlock(),t.createElementBlock("div",UM,[A.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(mg[A.value]),{key:0,"form-model":w,"form-options":F.value,"form-schema":T.value,"is-editing":e.editing,model:e.record,"on-form-change":W,"on-model-updated":O,"on-validity-change":R,"plugin-name":w.name,"render-rules":(ce=t.unref(St)[w.name])==null?void 0:ce.freeformRenderRules,schema:S.value,onGlobalAction:q[0]||(q[0]=(P,V)=>re.$emit("globalAction",P,V))},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["form-model","form-options","form-schema","is-editing","model","plugin-name","render-rules","schema"])):x.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(Fe.sharedForms)[x.value]),{key:1,"enable-redis-partial":e.enableRedisPartial,"form-model":w,"form-options":F.value,"form-schema":T.value,"is-editing":e.editing,"on-model-updated":O,"on-partial-toggled":L,"show-new-partial-modal":P=>re.$emit("showNewPartialModal",P)},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["enable-redis-partial","form-model","form-options","form-schema","is-editing","show-new-partial-modal"])):(t.openBlock(),t.createBlock(t.unref(Fe.VueFormGenerator),{key:2,"enable-redis-partial":e.enableRedisPartial,"is-editing":e.editing,model:w,options:F.value,schema:T.value,onModelUpdated:O,onPartialToggled:L,onRefreshModel:M,onShowNewPartialModal:q[1]||(q[1]=P=>re.$emit("showNewPartialModal",P))},t.createSlots({"plugin-config-empty-state":t.withCtx(()=>[t.createElementVNode("div",KM,t.toDisplayString(t.unref(_)("plugins.form.grouping.plugin_configuration.empty")),1)]),_:2},[($=t.unref(St)[w.name])!=null&&$.fieldRules&&(a.config.isNewOtelSchema||w.name!=="opentelemetry")?{name:"plugin-config-before-content",fn:t.withCtx(()=>[t.createVNode($0,{rules:t.unref(St)[w.name].fieldRules},null,8,["rules"])]),key:"0"}:void 0,e.enableVaultSecretPicker?{name:t.unref(Fe.AUTOFILL_SLOT_NAME),fn:t.withCtx(P=>[P.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Oo.VaultSecretPickerProvider),t.mergeProps({key:0},P,{onOpen:oe}),null,16)):t.createCommentVNode("",!0)]),key:"1"}:void 0]),1032,["enable-redis-partial","is-editing","model","options","schema"]))])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Oo.VaultSecretPicker),{config:a.config,setup:U.value,onCancel:q[2]||(q[2]=()=>U.value=!1),onProceed:ie},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-00037786"]]),GM={key:1},qM=t.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(n,o)=>e.teleportTarget?(t.openBlock(),t.createBlock(t.Teleport,{key:0,to:e.teleportTarget},[t.renderSlot(n.$slots,"default")],8,["to"])):(t.openBlock(),t.createElementBlock("div",GM,[t.renderSlot(n.$slots,"default")]))}}),zM={class:"kong-ui-entities-plugin-form-container"},HM={key:0},YM={class:"plugin-form-actions"},WM=Ae(t.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},scopedEntitiesPermissions:{type:Object,default:null},engine:{type:String,required:!1}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","showNewPartialModal","globalAction"],setup(e,{emit:n}){var Y;const o=n,r=e,i=oo.useRouter(),{i18n:{t:a}}=Ke.useI18n(),{customSchemas:l,typedefs:s}=Ke.useSchemas({app:r.config.app,credential:r.credential,experimentalRenders:r.config.app==="konnect"?r.config.experimentalRenders:void 0}),{formatPluginFieldLabel:c}=Ke.usePluginHelpers(),{getMessageFromError:d}=ye.useErrors(),{capitalize:f}=ye.useStringHelpers(),{objectsAreEqual:u}=ye.useHelpers(),{axiosInstance:p}=ye.useAxios((Y=r.config)==null?void 0:Y.axiosRequestConfig),m=t.ref(!1),g=t.computed(()=>!!r.pluginId),_=t.computed(()=>r.pluginId?ye.EntityBaseFormType.Edit:ye.EntityBaseFormType.Create),y=t.ref(void 0),h=t.ref(void 0),k=t.computed(()=>!!(r.credential&&r.config.entityId)),b=t.ref(void 0),N=t.ref({}),E=t.ref(),C=t.ref();t.provide(qr,{redisType:E,redisPath:C,isEditing:g.value});const x=t.ref(!1),A=t.reactive({enabled:!0,protocols:[],tags:[]}),v=t.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),T=t.ref([{title:a("view_configuration.json"),hash:"#json"},{title:a("view_configuration.yaml"),hash:"#yaml"}]);r.config.app==="konnect"&&(T.value.splice(1,0,{title:a("view_configuration.terraform"),hash:"#terraform"}),r.config.enableDeckTab&&T.value.push({title:a("view_configuration.deck"),hash:"#deck"}));const I=t.ref(""),w=t.computed(()=>{var le;if(k.value){let G=Xe.form[r.config.app].credential[_.value];return G=G.replace(/{resourceEndpoint}/gi,B.value),G}let K;return r.config.entityType&&r.config.entityId?K=Xe.form[r.config.app].edit.forEntity.replace(/{entityType}/gi,r.config.entityType).replace(/{entityId}/gi,r.config.entityId):K=Xe.form[r.config.app].edit.all,r.config.app==="konnect"&&((le=St[r.pluginType])!=null&&le.useUIData)?`${K}?__ui_data=true`:K}),F=()=>{m.value=!m.value},S=t.computed(()=>{var de,_e,Q,he,Ce,pe,me,He;const K=r.config.entityType==="consumers"&&r.config.entityId||((_e=(de=b.value)==null?void 0:de.consumer)==null?void 0:_e.id),le=r.config.entityType==="consumer_groups"&&r.config.entityId||((he=(Q=b.value)==null?void 0:Q.consumer_group)==null?void 0:he.id),G=r.config.entityType==="services"&&r.config.entityId||((pe=(Ce=b.value)==null?void 0:Ce.service)==null?void 0:pe.id),z=r.config.entityType==="routes"&&r.config.entityId||((He=(me=b.value)==null?void 0:me.route)==null?void 0:He.id);if(!(K||le||G||z))return{global:{entity:Z.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const J={};return G&&(J.service={entity:Z.PluginScope.SERVICE,entityEndpoint:"services",id:G,idField:Nn.SERVICE}),z&&(J.route={entity:Z.PluginScope.ROUTE,entityEndpoint:"routes",id:z,idField:Nn.ROUTE}),K&&(J.consumer={entity:Z.PluginScope.CONSUMER,entityEndpoint:"consumers",id:K,idField:Nn.CONSUMER}),le&&(J.consumer_group={entity:Z.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:le,idField:Nn.CONSUMER_GROUP}),r.config.entityType&&(J.focusedEntity={entity:Z.PluginScope[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()],entityEndpoint:r.config.entityType,id:r.config.entityId,idField:Nn[r.config.entityType.substring(0,r.config.entityType.length-1).toUpperCase()]}),J}),U=t.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===ye.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}),B=t.computed(()=>{var G;const K=r.developer?"developers":"consumers",le=((G=io[r.pluginType])==null?void 0:G.endpoint)||"/plugins";return`${K}/${r.config.entityId}${r.developer?"/credentials":""}${le}`}),oe=K=>{const le=Array.from(new Set(K.map(G=>typeof G)));return le.length>1?"string":le[0]},ie=(K,le,G,z)=>{var Q,he;let J=le&&le.fields||[];const de=l[r.pluginType],_e=(he=(Q=io[r.pluginType])==null?void 0:Q.schema)==null?void 0:he.fields;return Array.isArray(J)&&(J=J.reduce((Ce,pe)=>{const me=Object.keys(pe)[0];return me.match(/-/g)?Ce[me.replace(/-/g,"_")]={...pe[me],fieldNameHasDashes:!0}:Ce[me]=pe[me],Ce},{})),Object.keys(J).sort().forEach(Ce=>{var st,pt,dn,fe,Pe,ke,we;const pe=J[Ce];pe.type==="set"&&(pe.type="array");const me=K?`${K}-${Ce}`:`${Ce}`;if((st=de==null?void 0:de.fieldsToDelete)!=null&&st.includes(me)){rd(G,me);return}if(Object.prototype.hasOwnProperty.call(pe,"overwrite")||pe.hidden)return;if(pe.type==="table")return ie(me,pe.schema,G);if(pe.fields)return z&&pe.type==="record"?(G[me]={type:"object",model:Ce,schema:{fields:Object.values(ie(me,pe,{},!0))}},G):ie(me,pe,G);if(G[me]={id:me,model:Ce},G[me].type=pe.type==="boolean"?"checkbox":"input",G[me].required=pe.required,G[me].referenceable=pe.referenceable,me.startsWith("config-"))if(!z&&pe.type==="array"&&(I.value=me),z&&I.value&&me.startsWith(I.value)){const be=me.slice(I.value.length+1);G[me].label=be.split("-").map(c).join(".")}else G[me].label=c(me);if((K==="config"||K.startsWith("config-"))&&(pt=J[Ce])!=null&&pt.description&&(G[me].help=Nr.marked.parse(J[Ce].description,{mangle:!1,headerIds:!1})),pe.type==="map"){if(G[me].type="object-advanced",G[me].values=pe.values,pe.values.type==="array"){const{type:be}=pe.values.elements||{};G[me].schema={fields:[{schema:{fields:[{...Me,model:me,valueArrayType:be==="integer"?"number":be||"string",inputAttributes:{...Me.inputAttributes,type:be==="integer"?"number":"text",inputMode:be==="integer"?"numeric":"text"}}]}}]}}else pe.values.fields&&(G[me].schema={fields:[{type:"object",model:"object",schema:{fields:pe.values.fields.map(be=>{const Se=Object.keys(be)[0];return{model:Se,type:"input",label:f(Se),placeholder:Se,inputType:be[Se].type}})}}]});return G}if(pe.enum&&pe.type==="array"&&(G[me].type="checklist",G[me].values=pe.enum,G[me].multi=!0,G[me].multiSelect=!0),pe.one_of&&pe.type!=="array"&&(G[me].type="select",G[me].values=pe.one_of,G[me].selectOptions={noneSelectedText:a("plugins.form.no_selection")}),pe.elements&&pe.type==="array"){const be=pe.elements;if(G[me].referenceable=be.referenceable,G[me].elements=be,["string","integer","number"].includes(be.type)&&!be.one_of){const{id:Se,help:Oe,label:xe,hint:Ve,values:$e,referenceable:Ue,model:Re}=G[me],{inputAttributes:We,...no}=JSON.parse(JSON.stringify(Me));We.type=be.type==="string"?"text":"number",G[me]={id:Se,help:Oe,label:xe,hint:Ve,values:$e,referenceable:Ue,model:Re,inputAttributes:We,...no}}}if(pe.hint&&(G[me].hint=pe.hint),de&&!de.overwriteDefault&&Object.keys(de).forEach(be=>{if(be===me){const{help:Se,label:Oe,hint:xe,values:Ve,referenceable:$e,elements:Ue}=G[me],{help:Re,...We}=de[be];G[me]={help:Se,label:Oe,hint:xe,values:Ve,referenceable:$e,elements:Ue,...We},typeof Re=="string"&&(G[me].help=Nr.marked.parse(Re,{mangle:!1,headerIds:!1}))}}),pe.type==="array"&&((dn=pe.elements)==null?void 0:dn.type)==="record"&&Array.isArray(pe.elements.fields)){let be={};for(const Oe of pe.elements.fields)be={...be,...Oe};const Se=(ke=(Pe=(fe=G[me])==null?void 0:fe.items)==null?void 0:Pe.schema)==null?void 0:ke.fields;if(Array.isArray(Se))for(const Oe of G[me].items.schema.fields){const xe=(we=be[Oe.model])==null?void 0:we.description;Oe.help===void 0&&typeof xe=="string"&&(Oe.help=Nr.marked.parse(xe,{mangle:!1,headerIds:!1}))}if(Se||(G[me].type="array",G[me].newElementButtonLabelClasses="kong-form-new-element-button-label",G[me].fieldClasses="array-card-container-wrapper",G[me].itemContainerComponent="FieldArrayCardContainer",G[me].items={type:"object",schema:{fields:Object.values(ie(me,pe.elements,{},!0))}},G[me].items.schema.fields.forEach(Oe=>{var xe,Ve;for(const $e of pe.elements.fields){const Ue=Object.keys($e)[0],Re=((Ve=(xe=Oe.id)==null?void 0:xe.split)==null?void 0:Ve.call(xe,"-"))??[];if(Re[Re.length-1]===Ue){Oe.model=Ue,Oe.label=c(Ue);break}}}),pe.elements.type==="record"&&(G[me].nestedFields=!0)),!G[me].nestedFields)G[me].items.default=()=>pe.elements.fields.reduce((Oe,xe)=>{const Ve=Object.keys(xe)[0];return Oe[Ve]=xe[Ve].default,Oe},{});else{const Oe=(xe,Ve)=>{if(xe.type==="object"){xe.model&&(Ve[xe.model]={});for(const $e of xe.schema.fields)Oe($e,xe.model?Ve[xe.model]:Ve)}else xe.model&&(Ve[xe.model]=xe.default)};G[me].items.default=()=>{const xe={};return Oe(G[me].items,xe),xe}}}if(k.value&&_e){for(let be=0;be<_e.length;be++)if(_e[be][me]){G[me]={...G[me],..._e[be][me]};break}}if(pe.required&&pe.type!=="boolean"&&(G[me].required=!0,G[me].selectOptions={hideNoneSelectedText:!0}),pe.required&&pe.type==="boolean"&&(G[me].default=pe.default??!1),pe.default!=null&&typeof pe.default!="object"&&pe.default!=="function"&&(G[me].default=pe.default),G[me].type==="input"){["string","number"].includes(typeof G[me].default)&&r.config.app==="konnect"&&(G[me].placeholder=`Default: ${G[me].default===""?"<empty string>":G[me].default}`);const{type:be}=pe.elements||{};be&&(G[me].valueArrayType=be==="integer"?"number":be),G[me].inputType=pe.type==="array"||pe.type==="string"?pe.encrypted?"password":"text":pe.type}let He="string";pe.enum?He=oe(pe.enum):pe.type==="boolean"?He="boolean":pe.type==="number"||pe.type==="integer"?(He="number",G[me].inputType="number"):pe.type==="array"?(He="array",G[me].default=pe.default,pe.len_min>0&&(G[me].submitWhenNull=!0)):pe.type==="foreign"?He="object":pe.default&&Array.isArray(pe.default)?(He="array",G[me].valueArrayType=oe(pe.default)):pe.default&&(He=typeof pe.default),G[me].valueType=He,pe.fieldNameHasDashes&&(G[me].fieldNameHasDashes=!0)}),G},M=()=>{var me,He,st,pt,dn,fe,Pe,ke,we,be,Se,Oe;const K=((me=St[r.pluginType])==null?void 0:me.scope.includes(Z.PluginScope.SERVICE))??!0,le=((He=St[r.pluginType])==null?void 0:He.scope.includes(Z.PluginScope.ROUTE))??!0,G=((st=St[r.pluginType])==null?void 0:st.scope.includes(Z.PluginScope.CONSUMER))??!0,z=r.config.disableConsumerGroupScope?!1:((pt=St[r.pluginType])==null?void 0:pt.scope.includes(Z.PluginScope.CONSUMER_GROUP))??!0,J=r.config.entityType==="consumers"&&!!r.config.entityId||!!((fe=(dn=b.value)==null?void 0:dn.consumer)!=null&&fe.id),de=r.config.entityType==="consumer_groups"&&!!r.config.entityId||!!((ke=(Pe=b.value)==null?void 0:Pe.consumer_group)!=null&&ke.id),_e=r.config.entityType==="services"&&!!r.config.entityId||!!((be=(we=b.value)==null?void 0:we.service)!=null&&be.id),Q=r.config.entityType==="routes"&&!!r.config.entityId||!!((Oe=(Se=b.value)==null?void 0:Se.route)!=null&&Oe.id),he=[],Ce=(xe,Ve,$e)=>xe?a("plugins.form.disable_source_scope_change",{scope:$e}):Ve?a("plugins.form.disable_data_retrieving",{scope:$e}):"",pe=xe=>{var Ve,$e;return(($e=(Ve=r.scopedEntitiesPermissions)==null?void 0:Ve[xe])==null?void 0:$e.canRetrieve)===!1};if(K){const xe=pe("service"),Ve="services",$e=_e&&r.disableScopeSelection;he.push({id:"service-id",model:"service-id",label:a("plugins.form.scoping.gateway_service.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",labelField:"name",entity:Ve,inputValues:{fields:["name","id"]},help:a("plugins.form.scoping.gateway_service.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(le){const xe=pe("route"),Ve="routes",$e=Q&&r.disableScopeSelection;he.push({id:"route-id",model:"route-id",label:a("plugins.form.scoping.route.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,labelField:"name",inputValues:{fields:["name","id"],primaryField:"id"},help:a("plugins.form.scoping.route.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(G){const xe=pe("consumer"),Ve="consumers",$e=J&&r.disableScopeSelection;he.push({model:"consumer-id",label:a("plugins.form.scoping.consumer.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,labelField:"username",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:a("plugins.form.scoping.consumer.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(z){const xe=pe("consumer_group"),Ve="consumer_groups",$e=de&&r.disableScopeSelection;he.push({model:"consumer_group-id",label:a("plugins.form.scoping.consumer_group.label"),placeholder:a("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:Ve,entityDataKey:"consumer_group",labelField:"name",inputValues:{fields:["name","id"],primaryField:"name"},help:a("plugins.form.scoping.consumer_group.help"),disabled:$e||xe,disabledTooltip:Ce($e,xe,Ve)})}if(he.length){const xe=[...K?["service"]:[],...le?["route"]:[],...G?["consumer"]:[],...z?["consumer_group"]:[]],$e=xe.splice(xe.length-2,2).map(Re=>a(Re==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${Re}.plural`)).join(`${xe.length>0?",":""} and/or `),Ue=["Specific",[...xe.length>0?[xe.map(Re=>a(Re==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${Re}.plural`)).join(", ")]:[],$e].join(", ")].join(" ");U.selectionGroup.fields.push({label:a("plugins.form.scoping.label"),description:Ue,fields:[]}),U.selectionGroup.fields[1].fields=he}l[r.pluginType]&&l[r.pluginType].overwriteDefault&&Object.hasOwnProperty.call(l[r.pluginType],"formSchema")&&Object.assign(U,l[r.pluginType].formSchema)},L=t.computed(()=>!u(v.fields,A,!0)),O=t.computed(()=>!ne.value&&!x.value&&(_.value===ye.EntityBaseFormType.Create||L.value)),R=t.ref(!1),H=t.ref(),te=K=>{r.credential&&K.password&&(K.password=""),v.fields.id=(K==null?void 0:K.id)||void 0,H.value=K==null?void 0:K.ordering,Object.assign(A,v.fields),b.value=K,R.value=!0},W=t.ref({}),j=K=>{var le;v.fields=K.model,v.fields.id=((le=b.value)==null?void 0:le.id)||void 0,Object.assign(A,K.originalModel),W.value=K.data,r.isWizardStep&&o("model-updated",{model:v.fields,data:K.data,resourceEndpoint:B.value})},se=t.ref(new Map),ue=t.computed(()=>[v.clientErrorMessage,v.serverErrorMessage].filter(Boolean).join("; ")),ge=K=>{K.valid?se.value.delete(K.model):se.value.set(K.model,K.error),v.clientErrorMessage=[...se.value.entries()].map(([le,G])=>`${le}: ${typeof G=="string"?G:d(G)}`).join("; "),v.clientErrorMessage&&(v.serverErrorMessage="")};t.watch([S,R],(K,le)=>{const G=K[0]!==le[0],z=K[1],J=le[1];if(!k.value&&_.value===ye.EntityBaseFormType.Edit&&(G||z&&z!==J)){const de=ie("config",N.value,U);ae.value&&(de._isCustomPlugin=!0),E.value&&(de._supported_redis_partial_type=E.value),h.value=de}},{deep:!0});const re=()=>{r.config.cancelRoute?i.push(r.config.cancelRoute):o("cancel")},q=t.computed(()=>{const K=r.config.entityType&&r.config.entityId&&!r.developer,le=k.value?Xe.form[r.config.app].credential[_.value]:Xe.form[r.config.app][_.value][K?"forEntity":"all"];let G=`${r.config.apiBaseUrl}${le}`;return r.config.app==="konnect"?G=G.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(G=G.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),G=G.replace(/{resourceEndpoint}/gi,B.value),G=G.replace(/{id}/gi,r.pluginId),G=G.replace(/{entityType}/gi,r.config.entityType||""),G=G.replace(/{entityId}/gi,r.config.entityId||""),G}),ae=t.computed(()=>!Object.keys(St).includes(r.pluginType)),ce=t.computed(()=>{const K=W.value;if(k.value){for(const le in Z.PluginScope){const G=Z.PluginScope[le];K[G]&&!K[G].id&&(K[G]={id:r.config.entityId})}delete K.created_at}return W.value.partials&&C.value&&rd(K,C.value),K}),$=t.computed(()=>{const{__ui_data:K,...le}={...ce.value};return le}),P=async()=>{if(!v.clientErrorMessage&&!r.isWizardStep)try{v.isReadonly=!0;let K;const le=JSON.parse(JSON.stringify(ce.value)),G=l[r.pluginType];typeof(G==null?void 0:G.shamefullyTransformPayload)=="function"&&G.shamefullyTransformPayload({originalModel:A,model:v.fields,payload:le,schema:h.value}),_.value==="create"?K=await p.post(q.value,le):_.value==="edit"&&(K=r.config.app==="konnect"||E.value&&le.partials?await p.put(q.value,Object.assign({ordering:H.value},le)):await p.patch(q.value,le)),Object.assign(A,v.fields),o("update",K==null?void 0:K.data)}catch(K){v.serverErrorMessage=d(K),o("error",K)}finally{v.isReadonly=!1}},V=t.computed(()=>{var z;const K=k.value?(z=io[r.pluginType])==null?void 0:z.schemaEndpoint:r.pluginType,le=k.value?Xe.form[r.config.app].credentialSchema:Xe.form[r.config.app].pluginSchema;let G=`${r.config.apiBaseUrl}${le}`;return r.config.app==="konnect"?G=G.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):r.config.app==="kongManager"&&(G=G.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")),G=G.replace(/{plugin}/gi,K),G}),D=t.ref(""),ne=t.ref(!1),X=t.ref("");return t.onBeforeMount(async()=>{var K,le,G,z;ne.value=!0;try{if(k.value&&r.config.app==="konnect"){const J=(K=io[r.pluginType])==null?void 0:K.schemaEndpoint,de=Og[J];D.value=J,h.value=ie("",de,{}),ne.value=!1}else{const J=r.schema??(await p.get(V.value)).data;if(y.value=J,J)if(k.value)h.value=ie("",J,{}),ne.value=!1;else{const de=J.fields.find(Q=>Q.config);N.value=de?de.config:J,J.supported_partials&&(E.value=Object.keys(J.supported_partials).find(Q=>[Sr.REDIS_CE,Sr.REDIS_EE].includes(Q)),C.value=(le=J.supported_partials[E.value])==null?void 0:le[0]),M();const _e=(G=J.fields.find(Q=>Q.protocols))==null?void 0:G.protocols;if(_e){const{default:Q=[],elements:he={}}=_e;U.protocols.default=Q,U.protocols.placeholder=r.config.app==="konnect"?a("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:Q.join(", ")}):a("plugins.form.fields.protocols.placeholder"),(z=he.one_of)!=null&&z.length&&(U.protocols.values=he.one_of.map(Ce=>({label:Ce,value:Ce})))}if(R.value||_.value===ye.EntityBaseFormType.Create){const Q=ie("config",N.value,U);E.value&&(Q._supported_redis_partial_type=E.value),ae.value&&(Q._isCustomPlugin=!0),h.value=Q}}}}catch(J){console.error(J),X.value=d(J),o("error:fetch-schema",J)}finally{ne.value=!1}}),(K,le)=>{const G=t.resolveComponent("KSkeleton"),z=t.resolveComponent("KEmptyState"),J=t.resolveComponent("KButton"),de=t.resolveComponent("KTabs"),_e=t.resolveComponent("KSlideout");return t.openBlock(),t.createElementBlock("div",zM,[ne.value?(t.openBlock(),t.createBlock(G,{key:0,type:"form"})):X.value?(t.openBlock(),t.createBlock(z,{key:1,"action-button-visible":!1,"data-testid":"plugin-form-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(t.unref(a)("errors.load_schema")),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ye.EntityBaseForm),{key:2,"can-submit":O.value,config:e.config,"edit-id":e.pluginId,"entity-type":t.unref(ye.SupportedEntityType).Plugin,"error-message":ue.value,"fetch-url":w.value,"form-fields":ce.value,"is-readonly":v.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:re,"onFetch:error":le[4]||(le[4]=Q=>K.$emit("error",Q)),"onFetch:success":te,onLoading:le[5]||(le[5]=Q=>K.$emit("loading",Q))},{"form-actions":t.withCtx(()=>[e.isWizardStep?(t.openBlock(),t.createElementBlock("div",HM)):(t.openBlock(),t.createBlock(qM,{key:1,"teleport-target":e.actionsTeleportTarget},{default:t.withCtx(()=>[t.createElementVNode("div",YM,[e.hideViewConfigAction?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(J,{key:0,appearance:"tertiary","data-testid":`plugin-${g.value?"edit":"create"}-form-view-configuration`,onClick:le[3]||(le[3]=Q=>F())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),t.createVNode(J,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${g.value?"edit":"create"}-form-cancel`,disabled:v.isReadonly,onClick:re},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),t.createVNode(J,{appearance:"primary","data-testid":`plugin-${g.value?"edit":"create"}-form-submit`,disabled:!O.value||v.isReadonly,type:"submit",onClick:P},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:t.withCtx(()=>[t.createElementVNode("form",{hidden:"",onSubmit:P},null,32),t.createVNode(jM,{config:e.config,credential:k.value,editing:_.value===t.unref(ye.EntityBaseFormType).Edit,"enable-redis-partial":e.enableRedisPartial,"enable-vault-secret-picker":r.enableVaultSecretPicker,engine:e.engine,"entity-map":S.value,"raw-schema":y.value,record:b.value,schema:h.value,onGlobalAction:le[0]||(le[0]=(Q,he)=>K.$emit("globalAction",Q,he)),onLoading:le[1]||(le[1]=Q=>x.value=Q),onModelUpdated:j,onShowNewPartialModal:le[2]||(le[2]=Q=>K.$emit("showNewPartialModal",Q)),onValidityChange:ge},null,8,["config","credential","editing","enable-redis-partial","enable-vault-secret-picker","engine","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"])),t.createVNode(_e,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:t.unref(a)("view_configuration.title"),visible:m.value,onClose:F},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(a)("view_configuration.message")),1),t.createVNode(de,{"data-testid":"form-view-configuration-slideout-tabs",tabs:T.value},{json:t.withCtx(()=>[t.createVNode(t.unref(ye.JsonCodeBlock),{config:e.config,"entity-record":$.value,"fetcher-url":q.value,"request-method":r.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:t.withCtx(()=>[t.createVNode(t.unref(ye.YamlCodeBlock),{"entity-record":$.value},null,8,["entity-record"])]),terraform:t.withCtx(()=>[t.createVNode(t.unref(ye.TerraformCodeBlock),{"credential-type":D.value,"entity-record":$.value,"entity-type":t.unref(ye.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),deck:t.withCtx(()=>[t.createVNode(t.unref(ye.DeckCodeBlock),{"control-plane-name":e.config.app==="konnect"?e.config.controlPlaneName:void 0,"entity-record":$.value,"entity-type":t.unref(ye.SupportedEntityType).Plugin,"geo-api-server-url":e.config.app==="konnect"?e.config.geoApiServerUrl:void 0},null,8,["control-plane-name","entity-record","entity-type","geo-api-server-url"])]),_:1},8,["tabs"])]),_:1},8,["title","visible"])])}}}),[["__scopeId","data-v-a2b6d845"]]),XM={class:"kong-ui-entities-plugins-list"},ZM={class:"button-row"},JM={class:"name-cell-wrapper"},QM={class:"info-wrapper"},e2={key:0,class:"info-name"},t2={key:1,class:"info-name"},n2={key:2,class:"info-type"},o2={key:1},r2=Ae(t.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:n}){var D,ne;const o=Ke.usePluginMetaData(),r=n,i=e,{i18n:{t:a}}=Ke.useI18n(),l=oo.useRouter(),{axiosInstance:s}=ye.useAxios((D=i.config)==null?void 0:D.axiosRequestConfig),{hasRecords:c,handleStateChange:d}=ye.useTableState(()=>b.value),f=t.computed(()=>c.value&&i.config.app==="konnect"),u=t.computed(()=>!!i.config.entityId),p=t.computed(()=>{var X;return((X=i.config)==null?void 0:X.entityType)==="consumers"}),m=t.computed(()=>{var X;return((X=i.config)==null?void 0:X.entityType)==="consumer_groups"}),g=i.config.app==="konnect"||ye.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),_=t.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),y={name:{label:a("plugins.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1}};(ne=i.config)!=null&&ne.entityId||(y.appliedTo={label:a("plugins.list.table_headers.applied_to"),sortable:!1}),y.enabled={label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},g&&(y.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),y.tags={label:a("plugins.list.table_headers.tags"),sortable:!1};const h=y,k=t.computed(()=>{var Y,K,le,G;let X=i.config.entityType?`${i.config.apiBaseUrl}${Xe.list[i.config.app].forEntity}`:`${i.config.apiBaseUrl}${Xe.list[i.config.app].all}`;return i.config.app==="konnect"?X=X.replace(/{controlPlaneId}/gi,((Y=i.config)==null?void 0:Y.controlPlaneId)||""):i.config.app==="kongManager"&&(X=X.replace(/\/{workspace}/gi,(K=i.config)!=null&&K.workspace?`/${i.config.workspace}`:"")),X.replace(/{entityType}/gi,((le=i.config)==null?void 0:le.entityType)||"").replace(/{entityId}/gi,((G=i.config)==null?void 0:G.entityId)||"")}),b=t.ref(""),N=t.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:y.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:{...y.enabled,label:a("search.filter.field.enabled")},name:y.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),{fetcher:E,fetcherState:C,fetcherCacheKey:x}=ye.useFetcher(t.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier})),k),A=()=>{b.value=""},v=()=>{x.value++},T=t.ref(null),I=X=>{var K,le,G,z;const Y=[];return((K=X.route)!=null&&K.id||X.route_id)&&Y.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),((le=X.service)!=null&&le.id||X.service_id)&&Y.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),((G=X.consumer)!=null&&G.id||X.consumer_id)&&Y.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),((z=X.consumer_group)!=null&&z.id||X.consumer_group_id)&&Y.push({type:"consumer_group",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer_group")}),Y.length?Y:[{type:null,badgeText:a("plugins.list.table_headers.applied_to_badges.global")}]},w=async(X,Y)=>{var K;return X===null?!1:await((K=i.canRetrieveScopedEntity)==null?void 0:K.call(i,X,Y.id))},F=(X,Y)=>{var le,G,z,J,de;let K=null;switch(X){case"route":K=(le=Y.route)==null?void 0:le.id;break;case"service":K=(G=Y.service)==null?void 0:G.id;break;case"consumer":K=(z=Y.consumer)==null?void 0:z.id;break;case"consumer_group":K=(J=Y.consumer_group)==null?void 0:J.id;break}K&&((de=i.config)!=null&&de.getScopedEntityViewRoute)&&l.push(i.config.getScopedEntityViewRoute(X,K))},S=t.ref(!1),U=t.ref(null),B=t.computed(()=>{const X={action:"disable",id:"",name:""};if(U.value){const{enabled:Y,id:K,name:le}=U.value;X.action=Y?"disable":"enable",X.id=K,X.name=o.getDisplayName(le)||K}return X}),oe=X=>{S.value=!0,U.value=X},ie=()=>{S.value=!1,U.value=null},M=async()=>{var le,G,z,J,de,_e,Q,he;if(!await((le=i.canEdit)==null?void 0:le.call(i,U.value))||!U.value)return;let Y=`${i.config.apiBaseUrl}${(de=Xe.item[i.config.app])==null?void 0:de[(G=i.config)!=null&&G.entityType?"forEntity":"all"].replace(/{entityType}/gi,((z=i.config)==null?void 0:z.entityType)||"").replace(/{entityId}/gi,((J=i.config)==null?void 0:J.entityId)||"")}`.replace(/{id}/gi,U.value.id||"");i.config.app==="konnect"?Y=Y.replace(/{controlPlaneId}/gi,((_e=i.config)==null?void 0:_e.controlPlaneId)||""):i.config.app==="kongManager"&&(Y=Y.replace(/\/{workspace}/gi,(Q=i.config)!=null&&Q.workspace?`/${i.config.workspace}`:""));const K=!U.value.enabled;try{const Ce=(he=i.config)==null?void 0:he.app;let pe;b.value&&Ce==="konnect"&&(pe=await s.get(Y));const{data:me}=Ce==="konnect"?await s.put(Y,{...(pe==null?void 0:pe.data)||U.value,enabled:K},{timeout:12e4}):await s.patch(Y,{...U.value,enabled:K},{timeout:12e4});r("toggle-enabled",K,me),U.value.enabled=K}catch(Ce){r("error",Ce)}},L=async(X,Y)=>{const K=X.id;if(!await Y(K)){r("copy:error",{entity:X,field:"id",message:a("errors.copy")});return}r("copy:success",{entity:X,field:"id",message:a("copy.success",{val:K})})},O=async(X,Y)=>{const K=JSON.stringify(X);if(!await Y(K)){r("copy:error",{entity:X,message:a("errors.copy")});return}r("copy:success",{entity:X,message:a("copy.success_brief")})},R=async X=>{var K;await((K=i.canRetrieve)==null?void 0:K.call(i,X))&&l.push(i.config.getViewRoute(X))},H=X=>({label:a("actions.view"),to:i.config.getViewRoute(X)}),te=X=>({label:a("actions.edit"),to:i.config.getEditRoute(X)}),W=X=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(X)}),j=t.ref(void 0),se=t.ref(!1),ue=t.ref(!1),ge=t.ref(""),re=ye.useDeleteUrlBuilder(i.config,k.value),q=X=>{j.value=X,se.value=!0},ae=()=>{se.value=!1},ce=async()=>{var X,Y,K;if((X=j.value)!=null&&X.id){ue.value=!0;try{await s.delete(re(j.value.id)),ue.value=!1,se.value=!1,x.value++,r("delete:success",j.value)}catch(le){ge.value=((K=(Y=le.response)==null?void 0:Y.data)==null?void 0:K.message)||le.message||a("errors.delete"),r("error",le)}finally{ue.value=!1}}},$=()=>{l.push(i.config.createRoute)};t.watch(C,X=>{var Y,K,le;if(X.status===ye.FetcherStatus.Error){T.value={title:a("errors.general")},(le=(K=(Y=X.error)==null?void 0:Y.response)==null?void 0:K.data)!=null&&le.message&&(T.value.message=X.error.response.data.message),r("error",X.error);return}T.value=null});const P=t.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")}),V=t.ref(!1);return t.onBeforeMount(async()=>{V.value=await i.canCreate(),V.value&&(P.value.title=a("plugins.list.empty_state.title"),P.value.ctaText=a("actions.create"))}),(X,Y)=>{const K=t.resolveComponent("KButton"),le=t.resolveComponent("KEmptyState"),G=t.resolveComponent("KBadge"),z=t.resolveComponent("KTruncate"),J=t.resolveComponent("KInputSwitch"),de=t.resolveComponent("KDropdownItem"),_e=t.resolveComponent("KClipboardProvider");return t.openBlock(),t.createElementBlock("div",XM,[t.createVNode(t.unref(ye.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"disable-sorting":_.value,"empty-state-options":P.value,"enable-entity-actions":"","error-message":T.value,fetcher:t.unref(E),"fetcher-cache-key":t.unref(x),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:b.value,"table-headers":t.unref(h),title:e.title,"title-tag":e.titleTag,onClearSearchInput:A,"onClick:row":Y[4]||(Y[4]=Q=>R(Q)),onSort:v,onState:t.unref(d)},t.createSlots({"toolbar-filter":t.withCtx(()=>[t.createVNode(t.unref(ye.EntityFilter),{modelValue:b.value,"onUpdate:modelValue":Y[0]||(Y[0]=Q=>b.value=Q),config:N.value},null,8,["modelValue","config"])]),"toolbar-button":t.withCtx(()=>[(t.openBlock(),t.createBlock(t.Teleport,{disabled:!e.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[t.createElementVNode("div",ZM,[!u.value&&f.value?(t.openBlock(),t.createBlock(K,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:Y[1]||(Y[1]=Q=>X.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.BookIcon),{decorative:""})]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:t.withCtx(()=>[t.createVNode(K,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.toolbar_actions.new_plugin")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:t.withCtx(({row:Q})=>[t.createElementVNode("div",JM,[t.createVNode(t.unref($o.PluginIcon),{class:"plugin-icon",name:Q.name,size:24},null,8,["name"]),t.createElementVNode("div",QM,[Q.instance_name?(t.openBlock(),t.createElementBlock("span",e2,t.toDisplayString(Q.instance_name),1)):(t.openBlock(),t.createElementBlock("span",t2,t.toDisplayString(t.unref(o).getDisplayName(Q.name)),1)),Q.instance_name?(t.openBlock(),t.createElementBlock("span",n2,t.toDisplayString(t.unref(o).getDisplayName(Q.name)),1)):t.createCommentVNode("",!0)])])]),appliedTo:t.withCtx(({row:Q})=>[I(Q).length>0?(t.openBlock(),t.createBlock(z,{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(I(Q),he=>(t.openBlock(),t.createBlock(t.unref(ye.PermissionsWrapper),{key:he.badgeText,"auth-function":()=>w(he.type,Q),"force-show":""},{default:t.withCtx(({isAllowed:Ce})=>[t.createVNode(G,{class:t.normalizeClass(Ce||"disabled"),onClick:t.withModifiers(pe=>Ce&&he.type&&F(he.type,Q),["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(he.badgeText),1)]),_:2},1032,["class","onClick"])]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(t.openBlock(),t.createElementBlock("span",o2,"-"))]),enabled:t.withCtx(({row:Q})=>[t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":async()=>!!(await e.canEdit(Q)&&await e.canToggle(Q)),"force-show":""},{default:t.withCtx(({isAllowed:he})=>{var Ce,pe;return[t.createElementVNode("div",{onClick:Y[3]||(Y[3]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(J,{disabled:!he,"disabled-tooltip-text":!he&&((pe=(Ce=e.config).getToggleDisabledTooltip)==null?void 0:pe.call(Ce,Q))||void 0,"model-value":Q.enabled,onClick:t.withModifiers(me=>he&&oe(Q),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]}),_:2},1032,["auth-function"])]),ordering:t.withCtx(({rowValue:Q})=>[t.createVNode(G,{appearance:t.unref(ed)(Q)?"info":"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(ed)(Q)?t.unref(a)("plugins.list.table_headers.ordering_badge.static"):t.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)]),_:2},1032,["appearance"])]),tags:t.withCtx(({rowValue:Q})=>[t.createVNode(t.unref(ye.TableTags),{tags:Q},null,8,["tags"])]),actions:t.withCtx(({row:Q})=>[t.createVNode(_e,null,{default:t.withCtx(({copyToClipboard:he})=>[t.createVNode(de,{"data-testid":"action-entity-copy-id",onClick:Ce=>L(Q,he)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(_e,null,{default:t.withCtx(({copyToClipboard:he})=>[t.createVNode(de,{"data-testid":"action-entity-copy-json",onClick:Ce=>O(Q,he)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(Q)},{default:t.withCtx(()=>[t.createVNode(de,{"data-testid":"action-entity-view","has-divider":"",item:H(Q)},null,8,["item"])]),_:2},1032,["auth-function"]),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canEdit(Q)},{default:t.withCtx(()=>[t.createVNode(de,{"data-testid":"action-entity-edit",item:te(Q)},null,8,["item"])]),_:2},1032,["auth-function"]),!p.value&&!m.value&&t.unref(g)?(t.openBlock(),t.createBlock(t.unref(ye.PermissionsWrapper),{key:0,"auth-function":()=>e.canConfigureDynamicOrdering(Q)},{default:t.withCtx(()=>[W(Q)?(t.openBlock(),t.createBlock(de,{key:0,"data-testid":"action-entity-config-dyn-order",item:W(Q)},null,8,["item"])):t.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),t.createVNode(t.unref(ye.PermissionsWrapper),{"auth-function":()=>e.canDelete(Q)},{default:t.withCtx(()=>[t.createVNode(de,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:he=>q(Q)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!b.value&&e.config.app==="konnect"?{name:"empty-state",fn:t.withCtx(()=>{var Q;return[t.createVNode(le,{"data-testid":e.config.entityId?"nested-plugins-entity-empty-state":"plugins-entity-empty-state","icon-background":"",message:t.unref(a)("plugins.list.empty_state_v2.description"),title:t.unref(a)("plugins.list.empty_state_v2.title")},t.createSlots({icon:t.withCtx(()=>[t.createVNode(t.unref(ve.PlugIcon),{decorative:""})]),action:t.withCtx(()=>[V.value?(t.openBlock(),t.createBlock(K,{key:0,"data-testid":"entity-create-button",onClick:$},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.create_cta")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(K,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:Y[2]||(Y[2]=he=>X.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[(Q=e.config)!=null&&Q.isControlPlaneGroup?{name:"default",fn:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["data-testid","message","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"]),t.createVNode(t.unref(ye.EntityToggleModal),{action:B.value.action,"entity-id":B.value.id,"entity-name":B.value.name,"entity-type":t.unref(a)("glossary.plugin"),"on-confirm":M,visible:S.value,onCancel:ie,onProceed:ie},null,8,["action","entity-id","entity-name","entity-type","visible"]),t.createVNode(t.unref(ye.EntityDeleteModal),{"action-pending":ue.value,description:t.unref(a)("delete.description"),"entity-name":j.value&&(j.value.instance_name||j.value.name||j.value.id),"entity-type":t.unref(ye.EntityTypes).Plugin,error:ge.value,title:t.unref(a)("delete.title"),visible:se.value,onCancel:ae,onProceed:ce},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-25799614"]]),i2={class:"plugin-select-card-wrapper"},a2=["data-testid"],l2={class:"plugin-card-header"},s2={class:"plugin-card-title"},c2={key:0,class:"plugin-card-actions"},d2=["data-testid","title"],u2={key:0,class:"plugin-card-text"},f2={key:0},p2=["title"],vs=Ae(t.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:n}){const o=n,r=e,i=oo.useRouter(),{i18n:{t:a}}=Ke.useI18n(),l=t.computed(()=>r.config.app==="konnect"?r.config.controlPlaneId:""),s=t.computed(()=>!!(!r.plugin.available||r.plugin.disabledMessage)),c=t.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=t.computed(()=>r.plugin.id==="custom-plugin-create"),m=t.computed(()=>r.config.app==="konnect"&&r.plugin.group===Z.PluginGroup.CUSTOM_PLUGINS),g=()=>{r.config.app==="konnect"&&o("custom-plugin-delete")},_=(h,k)=>{const b=r.config;r.config.app==="konnect"&&typeof b.getCustomEditRoute=="function"&&b.getCustomEditRoute&&i.push(b.getCustomEditRoute(h,k))},y=()=>{if(!s.value&&r.config.app==="konnect"){const h=r.config;p.value&&h.createCustomRoute?i.push(h.createCustomRoute):m.value&&d()}};return(h,k)=>{const b=t.resolveComponent("KButton"),N=t.resolveComponent("KDropdownItem"),E=t.resolveComponent("KDropdownMenu"),C=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",i2,[t.createVNode(C,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createElementVNode("a",{class:t.normalizeClass(["plugin-select-card",{disabled:s.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:k[1]||(k[1]=x=>s.value||m.value?void 0:f())},[t.createElementVNode("div",l2,[t.createElementVNode("div",s2,[t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!m.value})},t.toDisplayString(e.plugin.name),3)]),c.value?(t.openBlock(),t.createElementBlock("div",c2,[t.createVNode(E,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:t.withCtx(()=>[t.createVNode(b,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(ve.MoreIcon),{size:t.unref(Bu)},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[e.canDeleteCustomPlugin?(t.openBlock(),t.createBlock(N,{key:0,"data-testid":"edit-plugin-schema",onClick:k[0]||(k[0]=t.withModifiers(x=>_(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),e.canDeleteCustomPlugin?(t.openBlock(),t.createBlock(N,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":"",onClick:t.withModifiers(g,["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1})):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:t.normalizeClass(["plugin-card-body",{"custom-plugin":m.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip"),onClick:y},[t.createVNode(t.unref($o.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?(t.openBlock(),t.createElementBlock("div",u2,[m.value&&!p.value?(t.openBlock(),t.createElementBlock("p",f2,t.toDisplayString(t.unref(a)("plugins.select.custom_badge_text")),1)):t.createCommentVNode("",!0),e.plugin.description?(t.openBlock(),t.createElementBlock("p",{key:1,class:"plugin-card-text",title:e.plugin.description},t.toDisplayString(e.plugin.description),9,p2)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],10,d2),t.createElementVNode("div",{class:"plugin-card-footer",onClick:y},t.toDisplayString(p.value?t.unref(a)("actions.create_custom"):e.plugin.exists?t.unref(a)("actions.enabled"):t.unref(a)("actions.enable")),1)],10,a2)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-65d53934"]]),m2=Ae(t.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:n}){var g;const o=e,r=n,{i18nT:i,i18n:{t:a}}=Ke.useI18n(),{getMessageFromError:l}=ye.useErrors(),{axiosInstance:s}=ye.useAxios((g=o.config)==null?void 0:g.axiosRequestConfig),c=t.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=t.ref(!1),f=t.ref(""),u=t.ref(!1),p=t.computed(()=>{if(o.config.app==="konnect"){const _=o.plugin.customPluginType==="streaming"?Xe.select[o.config.app].streamingCustomPluginItem:Xe.select[o.config.app].schemaCustomPluginItem;let y=`${o.config.apiBaseUrl}${_}`;return y=y.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),y=y.replace(/{pluginId}/gi,o.plugin.id),y}return null}),m=async()=>{var _,y,h,k;if(d.value=!0,f.value="",!(!((_=o.plugin)!=null&&_.name)||((y=o.config)==null?void 0:y.app)!=="konnect"))try{p.value&&await s.delete(p.value),r("proceed")}catch(b){const{response:N}=b;(N==null?void 0:N.status)===400&&((k=(h=N.data)==null?void 0:h.message)!=null&&k.includes("plugin schema is currently in use"))?u.value=!0:f.value=l(b)}finally{d.value=!1}};return(_,y)=>{const h=t.resolveComponent("KButton"),k=t.resolveComponent("KModal");return!u.value&&e.plugin?(t.openBlock(),t.createBlock(t.unref(ye.EntityDeleteModal),{key:0,"action-pending":d.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:t.unref(a)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":t.unref(ye.EntityTypes).Plugin,error:f.value,"need-confirm":"",title:c.value,visible:"",onCancel:y[0]||(y[0]=b=>_.$emit("closed")),onProceed:m},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(t.openBlock(),t.createBlock(k,{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:y[2]||(y[2]=b=>_.$emit("closed"))},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(t.unref(i),{keypath:"delete.plugin_schema_in_use_message",tag:"p"},{name:t.withCtx(()=>[t.createElementVNode("strong",null,t.toDisplayString(e.plugin.name),1)]),_:1})])]),"footer-actions":t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(h,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:y[1]||(y[1]=b=>_.$emit("closed"))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):t.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9e0dee7f"]]),g2={class:"custom-plugins-grid"},h2={class:"empty-state-title"},y2={class:"empty-state-description"},As=310,_2=Ae(t.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:n}){const o=e,r=n,{i18n:{t:i}}=Ke.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:l}=Ke.usePluginHelpers(),s=t.ref(!0),c=E=>{r("plugin-clicked",E)},d=t.computed(()=>{if(o.config.app==="kongManager")return[];const E=JSON.parse(JSON.stringify(o.pluginList))[Z.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:Z.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(E):E}),f=t.ref(!1),u=t.ref(null),p=E=>{f.value=!0,u.value={id:E.id,name:E.name,customPluginType:E.customPluginType}},m=E=>{var C;E&&(r("revalidate"),r("delete:success",((C=u.value)==null?void 0:C.name)||"")),f.value=!1,u.value=null},g=t.ref(As),_=t.ref(null),y=t.ref(null),h=t.computed(()=>s.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),k=t.ref(!1),b=()=>{g.value=Math.max(a(y.value),As),N()},N=()=>{var E,C;(E=y.value)!=null&&E.length&&(k.value=l(_.value,(C=y.value)==null?void 0:C.length))};return t.onMounted(async()=>{await t.nextTick(),g.value=Math.max(a(y.value),As),N(),window==null||window.addEventListener("resize",b)}),t.onUnmounted(()=>{window==null||window.removeEventListener("resize",b)}),(E,C)=>{const x=t.resolveComponent("KEmptyState"),A=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock("div",g2,[d.value.length?(t.openBlock(),t.createBlock(A,{key:1,modelValue:s.value,"onUpdate:modelValue":C[0]||(C[0]=v=>s.value=v),class:"custom-plugins-collapse","data-testid":`${t.unref(Z.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:t.unref(Z.PluginGroup).CUSTOM_PLUGINS,"trigger-label":s.value?t.unref(i)("plugins.select.view_more"):t.unref(i)("plugins.select.view_less")},t.createSlots({"visible-content":t.withCtx(()=>[t.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:_,class:"plugin-card-container",style:t.normalizeStyle(h.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(v,T)=>(t.openBlock(),t.createBlock(vs,{key:`plugin-card-${T}`,ref_for:!0,ref_key:"pluginCardRef",ref:y,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:v,onCustomPluginDelete:I=>p(v),onPluginClicked:c},null,8,["can-delete-custom-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[k.value?void 0:{name:"trigger",fn:t.withCtx(()=>[C[2]||(C[2]=t.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(t.openBlock(),t.createBlock(x,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",h2,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",y2,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),f.value&&u.value?(t.openBlock(),t.createBlock(m2,{key:2,config:e.config,plugin:u.value,onClosed:m,onProceed:C[1]||(C[1]=v=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-f4b90f47"]]),Is=310,gg=Ae(t.defineComponent({__name:"PluginSelectGroup",props:t.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:t.mergeModels(["plugin-clicked"],["update:modelValue"]),setup(e,{emit:n}){const o=t.useModel(e,"modelValue"),r=e,i=n,{i18n:{t:a}}=Ke.useI18n(),{getTallestPluginCardHeight:l,getToggleVisibility:s}=Ke.usePluginHelpers(),c=t.ref(Is),d=t.ref(null),f=t.ref(null),u=t.computed(()=>o.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=t.ref(!1),m=()=>{c.value=Math.max(l(f.value),Is),g()},g=()=>{var _,y;(_=f.value)!=null&&_.length&&(p.value=s(d.value,(y=f.value)==null?void 0:y.length))};return t.onMounted(async()=>{await t.nextTick(),c.value=Math.max(l(f.value),Is),g(),window==null||window.addEventListener("resize",m)}),t.onUnmounted(()=>{window==null||window.removeEventListener("resize",m)}),(_,y)=>{const h=t.resolveComponent("KCollapse");return t.openBlock(),t.createBlock(h,{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=k=>o.value=k),class:"plugins-collapse","data-testid":`${r.name}-collapse`,title:r.name,"trigger-label":o.value?t.unref(a)("plugins.select.view_more"):t.unref(a)("plugins.select.view_less")},t.createSlots({"visible-content":t.withCtx(()=>[t.createElementVNode("div",{ref_key:"pluginCardContainerRef",ref:d,class:"plugin-card-container",style:t.normalizeStyle(u.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.plugins,k=>(t.openBlock(),t.createBlock(vs,{key:`plugin-card-${k.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:f,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:k,onPluginClicked:b=>i("plugin-clicked",k)},null,8,["config","navigate-on-click","plugin","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:t.withCtx(()=>[y[1]||(y[1]=t.createTextVNode("   ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])}}}),[["__scopeId","data-v-a1074120"]]),b2={class:"plugin-select-grid"},w2={class:"empty-state-title"},k2={class:"empty-state-description"},Ps=t.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:n}){const o=e,r=n,{i18n:{t:i}}=Ke.useI18n(),a=t.ref(!1),l=t.ref(Rs),s=d=>{r("plugin-clicked",d)},c=t.computed(()=>{const d=JSON.parse(JSON.stringify(o.pluginList));return o.config.app==="konnect"&&delete d[Z.PluginGroup.CUSTOM_PLUGINS],d});return(d,f)=>{const u=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",b2,[Object.keys(c.value).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(u,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",w2,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",k2,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!o.hideHighlightedPlugins&&o.highlightedPlugins.length>0?(t.openBlock(),t.createBlock(gg,{key:1,modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=p=>a.value=p),config:e.config,name:o.highlightedPluginsTitle||t.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"])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Vs),p=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[c.value[p]?(t.openBlock(),t.createElementBlock("div",{key:p},[t.createVNode(gg,{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"])])):t.createCommentVNode("",!0)],64))),256))])}}}),C2={class:"kong-ui-entities-plugin-select-form"},E2={class:"plugins-filter-input-container"},N2={key:0},x2={key:3,"aria-live":"polite",class:"plugins-results-container"},S2={"data-testid":"kong-tab"},v2={class:"tab-description"},A2={"data-testid":"custom-tab"},I2={class:"tab-description"},P2=Ae(t.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:n}){var L;const o=e,r=n,i=oo.useRoute(),a=oo.useRouter(),{i18n:{t:l}}=Ke.useI18n(),{pluginMetaData:s}=Ke.usePluginMetaData(),{getMessageFromError:c}=ye.useErrors(),{sortAlpha:d,objectsAreEqual:f}=ye.useHelpers(),u=t.ref(""),p=t.ref(!0),m=t.ref(!1),g=t.ref(""),_=t.ref([]),y=t.ref([]),h=t.ref({}),k=t.ref([]),{axiosInstance:b}=ye.useAxios((L=o.config)==null?void 0:L.axiosRequestConfig),N=t.computed(()=>h.value?Object.entries(h.value).filter(([O])=>O!==Z.PluginGroup.CUSTOM_PLUGINS).reduce((O,[,R])=>{for(const H of R)O[H.id]=H;return O},{}):{}),E=t.computed(()=>{var H;if(!h.value)return{};const O=u.value.toLowerCase(),R=JSON.parse(JSON.stringify(h.value));for(const te in h.value){const W=((H=h.value[te])==null?void 0:H.filter(j=>j.name.toLowerCase().includes(O)||j.id.toLowerCase().includes(O)||j.group.toLowerCase().includes(O)))||[];W.length?R[te]=W:delete R[te]}return R}),C=t.computed(()=>o.highlightedPluginIds.reduce((O,R)=>{const H=N.value[R];return H&&O.push(H),O},[])),x=t.computed(()=>Object.keys(E.value).length>0),A=t.computed(()=>Object.keys(h.value).length>0&&!x.value),v=t.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)}]:[]),T=t.computed(()=>{var R;let O=v.value.length&&((i==null?void 0:i.hash)||((R=v.value[0])==null?void 0:R.hash))||"";return O==="#custom"&&["none","disabled"].includes(o.customPluginSupport)&&(O="#kong"),O}),I=()=>[...new Set([...Object.keys({...o.availableOnServer?{}:s}),..._.value])].filter(O=>!o.ignoredPlugins.includes(O)).filter(O=>o.config.entityType&&(o.config.entityType==="services"&&s[O]&&!s[O].scope.includes(Z.PluginScope.SERVICE)||o.config.entityType==="routes"&&s[O]&&!s[O].scope.includes(Z.PluginScope.ROUTE)||o.config.entityType==="consumer_groups"&&s[O]&&!s[O].scope.includes(Z.PluginScope.CONSUMER_GROUP)||o.config.entityType==="consumers"&&s[O]&&!s[O].scope.includes(Z.PluginScope.CONSUMER))?!1:O).reduce((O,R)=>{var se;const H=s[R]&&s[R].name||R,te={...s[R],id:R,name:H,available:_.value.includes(R),disabledMessage:"",group:((se=s[R])==null?void 0:se.group)||Z.PluginGroup.CUSTOM_PLUGINS};te.group===Z.PluginGroup.CUSTOM_PLUGINS&&(te.customPluginType=y.value.find(ue=>ue.name===R)?"streaming":"schema"),o.disabledPlugins&&(te.disabledMessage=o.disabledPlugins[R]);const W=te.group||l("plugins.select.misc_plugins");let j=O[W];return j||(j=[]),j.push(te),j.sort(d("name")),O[W]=j,O},{}),w=t.computed(()=>{var R;let O=`${o.config.apiBaseUrl}${Xe.select[o.config.app].availablePlugins}`;return o.config.app==="konnect"?O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&(O=((R=o.config.gatewayInfo)==null?void 0:R.edition)==="community"?`${o.config.apiBaseUrl}${Xe.select[o.config.app].availablePluginsForOss}`:O.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),O}),F=t.computed(()=>{if(o.config.app==="konnect"&&o.customPluginSupport==="streaming"){let O=`${o.config.apiBaseUrl}${Xe.select[o.config.app].streamingCustomPlugins}`;return O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""),O}return null}),S=t.computed(()=>{if(o.config.entityType&&o.config.entityId){let O=`${o.config.apiBaseUrl}${Xe.list[o.config.app].forEntity}`;return o.config.app==="konnect"?O=O.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||""):o.config.app==="kongManager"&&(O=O.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")),O.replace(/{entityType}/gi,o.config.entityType||"").replace(/{entityId}/gi,o.config.entityId||"")}return""}),U=O=>{a.replace({hash:O,query:i.query})};t.watch(()=>o.disabledPlugins,(O,R)=>{!f(O,R)&&!p.value&&(h.value=I())}),t.watch(()=>o.ignoredPlugins,(O,R)=>{!f(O,R)&&!p.value&&(h.value=I())}),t.watch(p,O=>{r("loading",O)});const B=t.ref(!1),oe=t.ref(!1),ie=t.ref(!1);t.onBeforeMount(async()=>{B.value=await o.canCreateCustomPlugin(),oe.value=await o.canEditCustomPlugin(),ie.value=await o.canDeleteCustomPlugin()});const M=t.useTemplateRef("filter-input");return t.onMounted(async()=>{var O,R;(R=(O=M.value)==null?void 0:O.input)==null||R.focus();try{const{data:H}=await b.get(w.value);if(o.config.app==="konnect"){const{names:te}=H;if(_.value=te||[],F.value){const{data:W}=await b.get(F.value);y.value=W.data||[]}}else if(o.config.app==="kongManager"){const{plugins:{available_on_server:te}}=H;_.value=te?Object.keys(te):[]}}catch(H){m.value=!0,g.value=c(H)}if(S.value)try{const{data:{data:H}}=await b.get(S.value);if(H!=null&&H.length){const te=H.reduce((W,j)=>(j.name&&W.push(j.name),W),[]);k.value=k.value.concat(te)}}catch{}m.value||(h.value=I()),p.value=!1}),(O,R)=>{const H=t.resolveComponent("KInput"),te=t.resolveComponent("KSkeletonBox"),W=t.resolveComponent("KSkeleton"),j=t.resolveComponent("KEmptyState"),se=t.resolveComponent("KTooltip"),ue=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",C2,[t.createElementVNode("div",E2,[t.createVNode(H,{ref:"filter-input",modelValue:u.value,"onUpdate:modelValue":R[0]||(R[0]=ge=>u.value=ge),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:t.unref(l)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(t.openBlock(),t.createElementBlock("section",N2,[t.createVNode(te,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(W,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(t.openBlock(),t.createBlock(j,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(g.value),1)]),_:1})):A.value&&u.value?(t.openBlock(),t.createBlock(j,{key:2,"action-button-visible":!1,"data-testid":"plugins-empty-state","icon-variant":"search"},{default:t.withCtx(()=>[t.createElementVNode("h5",null,t.toDisplayString(t.unref(l)("search.no_results",{filter:u.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",x2,[v.value.length&&e.customPluginSupport!=="none"?(t.openBlock(),t.createBlock(ue,{key:0,modelValue:T.value,"onUpdate:modelValue":R[5]||(R[5]=ge=>T.value=ge),"data-testid":"plugins-tabs",tabs:v.value,onChange:U},t.createSlots({kong:t.withCtx(()=>[t.createElementVNode("div",S2,[t.createElementVNode("p",v2,t.toDisplayString(t.unref(l)("plugins.select.tabs.kong.description")),1),t.createVNode(Ps,{config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":C.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,onPluginClicked:R[1]||(R[1]=ge=>O.$emit("plugin-clicked",ge))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:t.withCtx(()=>[t.createElementVNode("div",A2,[t.renderSlot(O.$slots,"before-custom-tab-content",{},void 0,!0),t.createElementVNode("p",I2,t.toDisplayString(t.unref(l)("plugins.select.tabs.custom.description")),1),t.createVNode(_2,{"can-create-custom-plugin":B.value,"can-delete-custom-plugin":ie.value,"can-edit-custom-plugin":oe.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,"onDelete:success":R[2]||(R[2]=ge=>O.$emit("delete-custom:success",ge)),onPluginClicked:R[3]||(R[3]=ge=>O.$emit("plugin-clicked",ge)),onRevalidate:R[4]||(R[4]=()=>h.value=I())},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:t.withCtx(()=>[t.createVNode(se,{"max-width":"300",text:t.unref(l)("plugins.select.tabs.custom.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(l)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(t.openBlock(),t.createBlock(Ps,{key:1,config:e.config,"hide-highlighted-plugins":u.value.length>0,"highlighted-plugins":C.value,"highlighted-plugins-title":o.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":E.value,onPluginClicked:R[6]||(R[6]=ge=>O.$emit("plugin-clicked",ge))},null,8,["config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"]))]))])}}}),[["__scopeId","data-v-7b1adaaa"]]),T2={class:"datakit-config-card-canvas"},O2={class:"config-card-details-label","data-testid":"datakit-configuration-label"},$2={class:"config-card-details-value datakit-canvas-container","data-testid":"datakit-configuration-canvas"},B2={class:"canvas-wrapper"},V2=Ae(t.defineComponent({__name:"DatakitConfigCardCanvas",props:{pluginData:{}},setup(e){return Hu(e.pluginData),(n,o)=>{const r=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",T2,[t.createElementVNode("div",O2,[t.createVNode(r,null,{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",{class:"label-content"}," Nodes ",-1)])]),_:1})]),t.createElementVNode("div",$2,[t.createElementVNode("div",B2,[t.createVNode(Cs,{class:"datakit-flow-panels",mode:"view",resizable:""})])])])}}}),[["__scopeId","data-v-591ec060"]]),R2={class:"kong-ui-entity-plugin-config-card"},D2={class:"name-cell-wrapper"},M2={class:"info-name"},L2={key:0},F2={key:0},U2={key:0},K2={key:0},j2={key:0},Ts="config",G2=Ae(t.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:n}){var C;const o=n,r=e,{i18n:{t:i}}=Ke.useI18n(),a=Ke.usePluginMetaData(),{setFieldType:l}=Ke.usePluginHelpers(),{getPropValue:s}=ye.useHelpers(),c=t.computed(()=>r.config.app==="konnect"),d=t.computed(()=>c.value&&r.config.pluginType==="datakit"),f=t.computed(()=>{var A;let x=(A=Xe.item[r.config.app])==null?void 0:A[r.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,r.scopedEntityType).replace(/{entityId}/gi,r.scopedEntityId).concat(r.expandPartial?"?expand_partials=true":"");if(c.value){const v=r.expandPartial?"&":"?";x=x.concat(`${v}__ui_data=true`)}return x}),u=t.computed(()=>{var v,T;const x={},A=((v=b.value)==null?void 0:v.fields)||[];for(let I=0;I<A.length;I++){const w=b.value.fields[I],F=(T=Object.keys(w))==null?void 0:T[0];l(x,F,w[F])}return{...x,instance_name:{section:ye.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:i("plugins.fields.consumer"),section:ye.ConfigurationSchemaSection.Basic,order:6},route:{label:i("plugins.fields.route"),section:ye.ConfigurationSchemaSection.Basic,order:6},service:{label:i("plugins.fields.service"),section:ye.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:i("plugins.fields.consumer_group"),section:ye.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ye.ConfigurationSchemaType.BadgeTag,section:ye.ConfigurationSchemaSection.Basic,order:7}}}),p=t.computed(()=>{var A,v,T;if(!((A=b.value)!=null&&A.fields))return[];const x=(v=b.value.fields)==null?void 0:v.find(I=>{var F;return((F=Object.keys(I))==null?void 0:F[0])===Ts});return((T=x==null?void 0:x[Ts])==null?void 0:T.fields)||[]}),m=t.computed(()=>{var A,v;const x={};if(!p.value)return x;for(let T=0;T<((A=p.value)==null?void 0:A.length);T++){const I=p.value[T],w=(v=Object.keys(I))==null?void 0:v[0],F=I[w];F.required&&(x[w]={order:1}),l(x,w,F)}return x}),g=x=>{var v;const A=(v=a.pluginMetaData[r.config.pluginType])==null?void 0:v.scope;return A?Object.fromEntries(Object.entries(x).filter(([T,I])=>I?!0:!(T==="service"&&!A.includes(Z.PluginScope.SERVICE)||T==="route"&&!A.includes(Z.PluginScope.ROUTE)||T==="consumer"&&!A.includes(Z.PluginScope.CONSUMER)||T==="consumer_group"&&!A.includes(Z.PluginScope.CONSUMER_GROUP)))):x},_=x=>Jt(x,"__ui_data"),{getMessageFromError:y}=ye.useErrors(),{axiosInstance:h}=ye.useAxios((C=r.config)==null?void 0:C.axiosRequestConfig),k=t.computed(()=>{var A,v;let x=`${r.config.apiBaseUrl}${Xe.form[r.config.app].pluginSchema}`;return r.config.app==="konnect"?x=x.replace(/{controlPlaneId}/gi,((A=r.config)==null?void 0:A.controlPlaneId)||""):r.config.app==="kongManager"&&(x=x.replace(/\/{workspace}/gi,(v=r.config)!=null&&v.workspace?`/${r.config.workspace}`:"")),x=x.replace(/{plugin}/gi,r.config.pluginType),x}),b=t.ref({});ye.useSchemaProvider(b);const N=t.ref(!1),E=t.ref("");return t.onBeforeMount(async()=>{N.value=!0;try{const{data:x}=await h.get(k.value);b.value=x}catch(x){E.value=y(x),o("error:fetch-schema",x)}finally{N.value=!1}}),(x,A)=>{const v=t.resolveComponent("KSkeleton"),T=t.resolveComponent("KEmptyState"),I=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",R2,[N.value?(t.openBlock(),t.createBlock(v,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):E.value?(t.openBlock(),t.createBlock(T,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(E.value),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ye.EntityBaseConfigCard),{key:2,"code-block-record-formatter":_,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":u.value,"entity-type":t.unref(ye.SupportedEntityType).Plugin,"fetch-url":f.value,"hide-title":e.hideTitle,"plugin-config-key":Ts,"plugin-config-schema":m.value,"record-resolver":g,"onFetch:error":A[0]||(A[0]=w=>x.$emit("fetch:error",w)),"onFetch:success":A[1]||(A[1]=w=>x.$emit("fetch:success",w)),onLoading:A[2]||(A[2]=w=>x.$emit("loading",w))},t.createSlots({name:t.withCtx(w=>[t.createElementVNode("div",D2,[t.createVNode(t.unref($o.PluginIcon),{class:"plugin-icon",name:t.unref(s)("rowValue",w),size:24},null,8,["name"]),t.createElementVNode("span",M2,t.toDisplayString(t.unref(a).getDisplayName(t.unref(s)("rowValue",w))),1)])]),consumer:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"consumer")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"consumer-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",L2,"–"))]),route:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"route")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"route-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",F2,"–"))]),service:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"service")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"service-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",U2,"–"))]),consumer_group:t.withCtx(w=>[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:t.unref(s)("rowValue",w).id,value:t.unref(s)("rowValue",w).id,type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>x.$emit("navigation-click",t.unref(s)("rowValue",w).id,"consumer_group")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"consumer-group-copy-uuid",text:t.unref(s)("rowValue",w).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",K2,"–"))]),partials:t.withCtx(w=>{var F,S,U,B,oe,ie,M,L,O;return[t.unref(s)("rowValue",w)?e.showIdAsLink?(t.openBlock(),t.createBlock(t.unref(ye.InternalLinkItem),{key:1,item:{key:(S=(F=t.unref(s)("rowValue",w))==null?void 0:F[0])==null?void 0:S.id,value:((B=(U=t.unref(s)("rowValue",w))==null?void 0:U[0])==null?void 0:B.id)+((ie=(oe=t.unref(s)("rowValue",w))==null?void 0:oe[0])!=null&&ie.name?"/"+((L=(M=t.unref(s)("rowValue",w))==null?void 0:M[0])==null?void 0:L.name):""),type:t.unref(ye.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>{var R,H;return x.$emit("navigation-click",(H=(R=t.unref(s)("rowValue",w))==null?void 0:R[0])==null?void 0:H.id,"partial")}},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(I,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(s)("row",w).label}),"data-testid":"partial-copy-uuid",text:(O=t.unref(s)("rowValue",w))==null?void 0:O[0].id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",j2,"–"))]}),_:2},[d.value?{name:"config-card-item-nodes",fn:t.withCtx(w=>[t.createVNode(V2,{"plugin-data":w.record},null,8,["plugin-data"])]),key:"0"}:void 0]),1032,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-a5302acb"]]),{usePluginMetaData:q2,useProvideExperimentalFreeForms:z2}=Ke;Object.defineProperty(Ie,"PluginGroup",{enumerable:!0,get:()=>Z.PluginGroup}),Object.defineProperty(Ie,"PluginScope",{enumerable:!0,get:()=>Z.PluginScope}),Object.defineProperty(Ie,"PluginIcon",{enumerable:!0,get:()=>$o.PluginIcon}),Object.defineProperty(Ie,"getPluginIconURL",{enumerable:!0,get:()=>$o.getPluginIconURL}),Ie.EXPERIMENTAL_FREE_FORM_PROVIDER=Ba,Ie.EntityTypeIdField=Nn,Ie.FEATURE_FLAGS=un,Ie.PLUGIN_GROUPS_COLLAPSE_STATUS=Rs,Ie.PluginConfigCard=G2,Ie.PluginForm=WM,Ie.PluginGroupArray=Vs,Ie.PluginList=r2,Ie.PluginPartialType=Sr,Ie.PluginSelect=P2,Ie.PluginSelectCard=vs,Ie.PluginSelectGrid=Ps,Ie.TOASTER_PROVIDER=id,Ie.pluginEndpoints=Xe,Ie.usePluginMetaData=q2,Ie.useProvideExperimentalFreeForms=z2,Object.defineProperty(Ie,Symbol.toStringTag,{value:"Module"})});