@kong-ui-public/entities-plugins 11.0.4 → 11.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(Oe,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("@kong/icons"),require("@kong/kongponents"),require("@vue-flow/background"),require("@vue-flow/controls"),require("@vue-flow/core"),require("@vueuse/core"),require("@kong-ui-public/i18n"),require("@kong-ui-public/freeform"),require("@vue-flow/controls/dist/style.css"),require("@vue-flow/core/dist/style.css"),require("@vue-flow/core/dist/theme-default.css"),require("@kong-ui-public/entities-shared"),require("@kong-ui-public/entities-plugins-icon"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("axios"),require("vue-router"),require("dompurify"),require("marked"),require("@kong-ui-public/freeform/style.css"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@kong-ui-public/forms/dist/style.css"),require("@kong-ui-public/monaco-editor"),require("monaco-editor"),require("@kong-ui-public/monaco-editor/dist/runtime/style.css"),require("shiki"),require("zod"),require("@kong-ui-public/misc-widgets"),require("@kong-ui-public/misc-widgets/dist/style.css")):typeof define=="function"&&define.amd?define(["exports","vue","@kong/icons","@kong/kongponents","@vue-flow/background","@vue-flow/controls","@vue-flow/core","@vueuse/core","@kong-ui-public/i18n","@kong-ui-public/freeform","@vue-flow/controls/dist/style.css","@vue-flow/core/dist/style.css","@vue-flow/core/dist/theme-default.css","@kong-ui-public/entities-shared","@kong-ui-public/entities-plugins-icon","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","axios","vue-router","dompurify","marked","@kong-ui-public/freeform/style.css","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@kong-ui-public/forms/dist/style.css","@kong-ui-public/monaco-editor","monaco-editor","@kong-ui-public/monaco-editor/dist/runtime/style.css","shiki","zod","@kong-ui-public/misc-widgets","@kong-ui-public/misc-widgets/dist/style.css"],t):(Oe=typeof globalThis<"u"?globalThis:Oe||self,t(Oe["kong-ui-public-entities-plugins"]={},Oe.Vue,Oe.KongIcons,Oe.Kongponents,Oe.background,Oe.controls,Oe.core$1,Oe.core,Oe["kong-ui-public-i18n"],Oe.utils,null,null,null,Oe["kong-ui-public-entities-shared"],Oe.entitiesPluginsIcon,Oe.entitiesPluginsMetadata,Oe.forms,Oe.axios,Oe.VueRouter,Oe.DOMPurify,Oe.marked,null,Oe.entitiesRedisConfigurations,null,Oe.entitiesVaults,null,null,Oe.monacoEditor,Oe.monaco,null,Oe.shiki,Oe.zod,Oe["kong-ui-public-misc-widgets"]))})(this,(function(Oe,t,Ne,be,rS,Kh,yt,Et,It,S,J9,X9,Z9,ge,mr,W,Ze,Yo,gr,Au,qh,Q9,xu,eW,Iu,tW,nW,ya,ao,rW,oS,P,Gh){"use strict";function zh(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}function iS(e,n){for(var r=0;r<n.length;r++){const o=n[r];if(typeof o!="string"&&!Array.isArray(o)){for(const i in o)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(o,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>o[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const Hh=zh(S),tl=zh(ao),Bt={actions:{cancel:"Cancel",view_configuration:"View configuration",create:"New plugin",create_custom:"Create",configure:"Configure",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",disable:"Disable",delete:"Delete",disabled:"Disabled",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}",loading_spinner:"Loading..."},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:"This custom plugin is currently in use in this control plane. Please delete any existing instances before removing 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",search_plugins:"Search plugins",search:"Search",tags_filter:"Type part of a tag and press Enter",scope_filter:"Select scopes"},filter:{field:{enabled:"Enabled"},tags_invalid:"Tags can't contain commas, slashes, or leading/trailing spaces"},no_results:'No results found for "{filter}"'},labels:{new:"New"},onboarding:{steps:{consumer:{step:"Consumer",title:"Create a consumer",description:"Consumers represent the users or applications calling your API. Add a name or tags to help you identify and manage this consumer later.",note:"A consumer can have both unique username and unique custom ID or one of them."},credential:{step:"Credential",title:"Add a credential"}},consumer_fields:{username_label:"Username",username_placeholder:"Enter a unique username",custom_id_label:"Custom ID",custom_id_placeholder:"Enter a unique custom ID"},choose_consumer:{title:"Choose a consumer",description:"Choose a consumer to add a credential",select_label:"Select an existing consumer",select_placeholder:"Search consumers"},create_consumer:{title:"Create a consumer"},add_credential:{title:"Add a credential"},create_principal:{title:"Create a principal",description:"Create a principal with authentication to test your plugin configuration."},add_principal_credential:{title:"Add authentication to a principal",description:"Add authentication credentials to an existing principal."},actions:{save_and_next:"Save and next",skip:"Skip",exit_setup:"Exit setup"},errors:{create_consumer:"The consumer could not be created at this time.",create_credential:"The credential could not be created at this time.",load_consumers:"Consumers could not be retrieved"},"basic-auth":{title:"Next steps for basic authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign username and password for authentication.",create_consumer:{description:"Create a new consumer with a basic auth credential to test your plugin configuration."},add_credential:{title:"Add a basic authentication credential",description:"Add a basic auth credential to an existing consumer."},credential_action:"Create credential"},"key-auth":{title:"Next steps for key authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign API keys for authentication.",create_consumer:{description:"Create a new consumer with a key auth credential to test your plugin configuration."},add_credential:{title:"Add a key authentication credential",description:"Add key authentication credentials to an existing consumer."},credential_action:"Create key"},"key-auth-enc":{title:"Next steps for key authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign API keys for authentication.",create_consumer:{description:"Create a new consumer with a key auth credential to test your plugin configuration."},add_credential:{title:"Add a key authentication credential",description:"Add key authentication credentials to an existing consumer."},credential_action:"Create key"},oauth2:{title:"Next steps for OAuth 2.0 authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to register an OAuth 2.0 application for authentication.",create_consumer:{description:"Create a new consumer with an OAuth 2.0 credential to test your plugin configuration."},add_credential:{title:"Add an OAuth 2.0 credential",description:"Add an OAuth 2.0 credential to an existing consumer."},credential_action:"Create credential"},"hmac-auth":{title:"Next steps for HMAC authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to add usernames and secrets for authentication.",create_consumer:{description:"Create a new consumer with a HMAC auth credential to test your plugin configuration."},add_credential:{title:"Add a HMAC authentication credential",description:"Add a HMAC auth credential to an existing consumer."},credential_action:"Create credential"},jwt:{title:"Next steps for JWT plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign JWT credentials (public and secret keys) for authentication.",create_consumer:{description:"Create a new consumer with a JWT credential to test your plugin configuration."},add_credential:{title:"Add a JWT credential",description:"Add a JWT credential to an existing consumer."},credential_action:"Create credential"},acl:{title:"Next steps for ACL plugins",subtitle:"Consumers represent the users or applications calling your API. You do this by configuring either an allow list or a deny list with certain consumers or consumer groups.",create_consumer:{description:"Create a new consumer with an ACL credential to test your plugin configuration."},add_credential:{title:"Add an ACL credential",description:"Add an ACL credential to an existing consumer to test your new plugin configuration."},credential_action:"Add group to consumer"}},plugins:JSON.parse(`{"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","plugin":"Plugin","name":"Name","instance_name":"Instance name","scope":"Scope","status":"Status","ordering":"Ordering","ordering_badge":{"dynamic":"Dynamic","static":"Static"},"enabled":"Enabled","tags":"Tags","updated_at":"Last modified"},"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."},"ai-a2a-proxy":{"name":"AI A2A Proxy","description":"Securely proxy A2A agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{"name":"AI Custom Guardrail","description":"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-and-billing":{"name":"Metering & Billing","description":"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."},"entitlement-enforcement":{"name":"Entitlement Enforcement","description":"Allow or deny API requests based on customer entitlements. Checks feature access, usage limits, and credit balance against Metering & Billing before routing traffic."}},"fields":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","service_id":"Service ID","route_id":"Route ID","consumer_id":"Consumer ID","consumer_group_id":"Consumer group ID"},"select":{"custom_badge_text":"This plugin is data plane node specific","cloned_from_badge":"Cloned from {link}","installed_custom_badge":"Installed custom","streamed_custom_badge":"Streamed custom","unavailable_tooltip":"This plugin is not available","already_exists":"This plugin is already applied to this resource","misc_plugins":"Other plugins","show_all":"Show all","view_more":"View more","view_less":"View less","filter":{"title":"Filter plugins","featured":"Featured","type":"Type","clear":"Clear"},"list":{"table_headers":{"name":"Plugin","description":"Description"}},"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.","fetch_error":"Unable to load some custom plugins. Bundled plugins are still available.","license_required":"Plugin cloning requires a license to be used.","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":{"button_deck_customize":"Customize before copying to CLI","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"},"plugin_status":{"label":"Plugin status","text_on":"Enabled","text_off":"Disabled"},"instance_name":{"label":"Name","placeholder":"Enter a unique name","help":"A custom name for this plugin instance to help with identifying from the list view."},"condition":{"label":"Execution condition","placeholder":"Enter an expression","tooltip":"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped.","help":{"learn":"Learn more","about":"{link} about plugin conditions."}},"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":{"label":"Tags","help":"An optional set of strings for grouping and filtering, separated by commas.","placeholder":"Tag1, Tag2, Tag3"},"secret":{"generateLabel":"Generate secret"}},"scoping":{"label":"Scoped","placeholder":"Search by name or UUID","disable_global_radio":"The plugin is set to 'scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.","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":{"advanced_parameters":{"view":"Show additional settings","hide":"Hide additional settings"}},"sections":{"plugin_scope":{"title":"Plugin scope","description":"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},"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."},"plugin_general_info":{"description":"Add a name or tags to help you identify and manage this plugin later."},"code_mode":{"title":"Code editor","description":"Configure this plugin by using YAML configuration."}}},"free-form":{"editor_mode":{"visual":"Visual editor","code":"Code editor"},"code-lens":{"entity":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","certificate":"Certificate"},"field":{"name":"{entity} \\"{value}\\"","username":"Username \\"{value}\\"","custom_id":"Custom ID \\"{value}\\"","subject":"Subject \\"{value}\\"","expires_after":"Expires after \\"{value}\\""},"action":{"view_entity":"View {title}","copy_certificate":"Copy certificate","copy_uuid":"Copy UUID","retry_fetch":"Retry fetch (Hover for details)"},"unknown_error":"Unknown error"},"acl":{"mode":{"title":{"label":"Access policy","description":"Select how requests are authorized. Choose one access policy: allow or deny by ACL group, or define a CEL expression. Only one policy type can be configured at a time."},"allow":{"label":"Allow list","description":"Allow requests from the specified ACL groups."},"deny":{"label":"Deny list","description":"Deny requests from the specified ACL groups."},"allow_when":{"label":"Allow expression","description":"Allow requests when the CEL expression evaluates to true."},"deny_when":{"label":"Deny expression","description":"Deny requests when the CEL expression evaluates to true."}},"field":{"allow":{"label":"Allowed list","placeholder":"Enter group names","add":"Add allow"},"deny":{"label":"Denied list","placeholder":"Enter group names","add":"Add deny"},"allow_when":{"label":"Kong plug-in conditional expression","description":"A Kong plug-in conditional expression is a CEL expression that determines whether the plugin runs for a request. If the expression evaluates to true, the plugin executes. If it evaluates to false, the plugin is skipped.","placeholder":"eg: 'consumer.username == \\"alice\\"'","add":"Add expression","help":{"learn":"Learn more","text":"Define a Kong plug-in conditional expression to evaluate each request. The expression must return a boolean value (true or false). {link}"}},"deny_when":{"label":"Kong plug-in conditional expression","description":"A Kong plug-in conditional expression is a CEL expression that determines whether the plugin runs for a request. If the expression evaluates to true, the plugin executes. If it evaluates to false, the plugin is skipped.","placeholder":"eg: 'consumer.username == \\"alice\\"'","add":"Add expression","help":{"learn":"Learn more","text":"Define a Kong plug-in conditional expression to evaluate each request. The expression must return a boolean value (true or false). {link}"}}}},"ai-mcp-proxy":{"default_acl_item_label":"Default ACL #{index}","tool_item_label":"Tool #{index}"},"openid-connect":{"tabs":{"common":{"title":"Common Configuration Settings","description":"Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details."},"authorization":{"title":"Authorization Configuration Settings","description":"Parameters for setting up claims-based authorization."},"advanced":{"title":"Advanced Configuration Settings","description":"Advanced parameters for manually configuring the OpenID Connect plugin."}},"auth_methods":{"label":"Authentication methods","placeholder":"Select authentication methods","hint":"Configure which OAuth and OpenID Connect features are supported.","km_label":"Auth methods","methods":{"authorization_code":"Authorization code flow","bearer":"Bearer access token","client_credentials":"Client credentials grant","password":"Passwords grant","introspection":"Introspection","userinfo":"UserInfo","kong_oauth2":"Kong OAuth","refresh_token":"Refresh token"},"session":{"label":"Session management","switch_label":"Enable Session Management","use_label":"Use sessions","use_description":"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.","no_use_label":"Do not use sessions","no_use_description":"Authenticate each request using the configured authentication flow."}},"principals":{"header":"Who should manage authentication and credentials?","description":"Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management.","learn_more":"Learn more.","kong_identity_label":"Kong Identity","kong_identity_description":"Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","kong_identity_description_ai_manager":"Use Kong Identity to authenticate OpenID Connect tokens. If all AI Gateway nodes are running version 2.0 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","external_label":"External auth server","external_description":"Connect to your existing identity provider to manage authentication outside of Kong.","guide":{"title":"Add principals","description":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products.","description_external":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later.","create":"Create principal","learn_more":"Learn more"},"auth_server":{"label":"Authorization Server","info":"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.","placeholder":"Select an Authorization Server","create":"Create authorization server","create_hint":"You'll need to return here after creating an authorization server. Your progress won't be saved.","no_access_help":"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.","issuer_placeholder":"e.g., https://your-auth-server.identity.konghq.com"},"client":{"label":"Client","id_label":"Client id","secret_label":"Client secret","placeholder":"Select a client","id_placeholder":"e.g., kong-gateway-client","secret_placeholder":"e.g., your-client-secret","create":"Create client","create_hint":"You'll need to return here after creating a client. Your progress won't be saved.","add":"Add client","remove":"Remove client"},"leave_prompt":{"title":"Leave this page?","message":"Your unsaved changes will be lost if you continue.","action":"Leave page"},"dp_version_alert":"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail."},"lookup":{"collapse_label":"Show additional settings","toggle_label":"Use principal lookup","toggle_info":"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn't contain all of the identity data required for authorization or activity logging.","method":{"label":"Principal lookup method","placeholder":"Select a lookup method","help":"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.","kong_identity_label":"Kong Identity client","kong_identity_description":"Match principals using a token claim, defaulting to the subject (sub) claim.","custom_identity_label":"Custom claim","custom_identity_description":"Match principals using a custom JWT claim."},"custom_identity_name":{"label":"Custom identity name","help":"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.","placeholder":"e.g., Customer_ID"},"token_claim":{"label":"Token claim","placeholder":"e.g., user.employee_id","help":"Defaults to the subject (sub) claim, but you can specify a different token claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id).","help_custom":"The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id)."},"error_on_miss":{"label":"If principal lookup fails","reject_label":"Reject the request","reject_description":"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.","continue_label":"Continue without a principal","continue_description":"Allow the request to continue without resolving a principal."},"match_consumer":{"label":"Use linked consumers","description":"Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work.","link":"Learn how to link a consumer."},"match_consumer_groups":{"label":"Use linked consumer groups","description":"Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata.","link":"Learn how to link a consumer group."}},"jit":{"toggle_label":"Just-in-time principal provisioning","toggle_info":"Create or update the Kong Identity principal from token claims as requests arrive, so identities don't need to be provisioned in advance.","all_claims":{"label":"Share all token claims","description":"Share every claim from the token when creating or updating a principal."},"claims":{"label":"Claims to share","placeholder":"e.g., email, department","help":"The token claims Kong writes onto the principal when creating or updating it just in time. Separate multiple claims with commas."}},"advanced_fields":{"client_jwk_link_label":"Client JWK","verify_signature_description":"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this."}},"request-callout":{"entity_name":"Request callout","by_lua_placeholder":"Enter Lua script here..."},"jwt-signer":{"keyset_url_required":"Provide a valid HTTP/HTTPS URL to ensure signing works correctly when \\"{signingField}\\" is enabled and \\"{headerField}\\" is set."},"metering-and-billing":{"sections":{"plugin_config":{"title":"Plugin configuration","description":"Configure the Metering & Billing plugin."},"metering":{"title":"What to meter"},"subject":{"title":"Who to bill (subject)","description":"Define how billing subjects are identified."},"ingestion":{"title":"Connection","description":"Configure how metered data is delivered to the billing service."},"queue":{"title":"Queue","description":"Configure internal event queue settings."}},"fields":{"meter_api_requests":{"label":"Meter API requests","description":"Emit a usage event for each API Gateway request."},"meter_ai_token_usage":{"label":"Meter AI token usage","description":"Emit events for LLM input and output tokens on AI Gateway requests. Each request produces separate input/output events so they can be priced independently."},"ingest_endpoint":{"description":"The URL of the metering data ingest endpoint.","help":"For Konnect Metering & Billing, use the regional endpoint from your Metering & Billing settings. For self-hosted OpenMeter, use your ingest URL."},"api_token":{"description":"Bearer token for authenticating requests to the ingest endpoint."},"look_up_value_in":{"label":"Look up subject in","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"e.g. x-customer-id, x-api-key, x-tenant"},"queue":{"max_coalescing_delay":{"label":"Max coalescing delay (s)"},"initial_retry_delay":{"label":"Initial retry delay (s)"},"max_retry_delay":{"label":"Max retry delay (s)"},"max_retry_time":{"label":"Max retry time (s)"}},"attributes":{"title":"Event attributes","description":"Attach custom dimensions to metered events.","look_up_value_in":{"placeholder":"e.g., x-priority-id"},"event_property_name":{"placeholder":"e.g., priority"}},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"}}},"governance":{"unavailable_kong_manager":"The Entitlement Enforcement plugin can't be configured in Kong Manager yet.","sections":{"configuration":{"title":"Plugin configuration","description":"Configure the Entitlement Enforcement plugin subject, feature, and connection settings."},"governance":{"title":"Entitlement Enforcement settings","description":"Configure access control behavior and response codes."},"subject":{"title":"Whose access to enforce (subject)"},"feature":{"title":"Feature"},"connection":{"title":"Connection","description":"Configure how the plugin connects to the entitlement access endpoint."},"redis":{"title":"Redis"},"cache_sync":{"title":"Cache and sync"}},"fields":{"look_up_value_in":{"label":"Whose access to enforce (Look up subject in)","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"Name of the header or query parameter that carries the customer identifier."},"feature_key":{"label":"Feature to enforce access","help":"Feature that will control access to the scope where the plugin is applied.","create_feature":"+ Create new feature","unavailable":"You don't have access to metering features. Enable Metering & Billing in your Konnect organization to configure the feature to enforce.","load_error":"Could not load features from the entitlement enforcement service."},"governance_endpoint":{"help":"For Konnect Metering & Billing, use the regional endpoint for Metering & Billing entitlement access. For self-hosted OpenMeter, use the entitlement access endpoint of your self-hosted instance."},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"},"sync_rate":{"label":"Sync rate (s)"},"refresh_interval":{"label":"Refresh interval (s)"},"max_stale_seconds":{"label":"Max stale seconds"},"l1_ttl":{"label":"L1 TTL (s)"},"l2_ttl":{"label":"L2 TTL (s)"},"credit_balance_required":{"label":"Credit balance lookup","yes_label":"Yes","yes_description":"Customers must have a positive credit balance to access this feature.","no_label":"No","no_description":"Customers can access this feature regardless of their credit balance."},"fail_policy":{"label":"Plugin failure mode","allow_label":"Allow access","allow_description":"If the plugin fails, customers can still access this feature.","block_label":"Block access","block_description":"If the plugin fails, customers cannot access this feature."},"deny_unknown_customers":{"label":"Unknown customer access","allow_label":"Allow access","allow_description":"The gateway will allow access for unknown customers.","deny_label":"Deny access","deny_description":"The gateway will deny access for unknown customers."},"response":{"label":"Response mapping","columns":{"code":"Response code","status":"Status code","message":"Message"},"defaults":{"NO_CREDIT_AVAILABLE":"Customer has no credit available.","USAGE_LIMIT_REACHED":"Customer has reached usage limit for feature.","FEATURE_UNAVAILABLE":"Feature is not available for the customer.","FEATURE_NOT_FOUND":"Feature not found.","CUSTOMER_NOT_FOUND":"Customer is not found by subject."}}}},"datakit":{"plugin_config":{"title":"Flow editor"},"advanced_configuration":{"title":"Advanced configuration","show_label":"Show advanced configuration","hide_label":"Hide advanced configuration"},"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":{"authenticateThirdPartyWithDynamicUrl":"Authenticate Kong to a third-party service resolved at runtime","authenticateThirdParty":"Authenticate Kong to a third-party service","authenticateWithVaultSecret":"Authenticate to a third-party service using Vault secrets","clearHeaders":"Clear request headers","combineTwoApisIntoOneResponse":"Combine multiple API responses","conditionallyStoreCachedItems":"Conditionally fetch or store cache data","convertJsonIntoXml":"Transform JSON into XML","convertJsonToXmlAndBack":"Transform JSON into XML and back","convertXmlIntoJson":"Transform XML into JSON","manipulateRequestHeaders":"Manipulate request headers"},"flow_editor":{"mode":"Flow editor","name":"Datakit flow editor","cta":"Go to flow editor","disabled_tooltip":"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>","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.","groups":{"external_interaction":"External interaction","control_flow":"Control flow","data_transformation":"Data transformation","data_value":"Data value","authentication":"Authentication"}},"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":{"summary":"Call a third-party API","description":"Send an HTTP request and retrieve the response."},"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":{"summary":"Return directly to the client","description":"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},"property":{"summary":"Get and set Kong Gateway-specific data","description":"Get and set Kong Gateway host and request properties."},"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":{"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":{"summary":"Store and fetch cached data","description":"Store data into cache and fetch cached data from cache."},"xml_to_json":{"summary":"Transform XML to JSON","description":"Transform XML to JSON."},"json_to_xml":{"summary":"Transform JSON to XML","description":"Transform JSON to XML."},"jwt_decode":{"summary":"Decode JWT headers and claims","description":"Parse a JWT without verifying its signature."},"jwt_sign":{"summary":"Create and sign JWTs","description":"Generate a signed JWT from configured claims and a signing key."},"jwt_verify":{"summary":"Verify JWT signature and claims","description":"Verify a JWT signature and validate claims such as exp, nbf, iss, and aud."},"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"},"xml_to_json":{"force_array_paths":{"placeholder":"e.g. store/product"}},"jwt":{"static_claims":{"label":"Static claims","help":"Enter a JSON object. It will be stored as the node's static claims map.","errors":{"invalid_json_object":"Static claims must be a valid JSON object"}}},"error_handling":{"label":"Error handling","error_output_hint":"The error output is only set when Continue on error is enabled. Without it, connected nodes always receive an empty value.","failure_hint":"To handle a failed call, add a jq node to define the failure condition, then connect it to a Branch node.","failure_example":"For example, to treat non-2xx responses or call errors as failures:","retry":"Retry failed calls","retry_count":"Number of retries","retry_interval":"Retry interval","seconds":"seconds","retry_status_codes":"Retry status codes","status_codes_help":"Enter the status codes that trigger a retry, separated by commas. Use an exact code such as 429, or a range such as 5xx.","retry_warning":"Retrying may repeat this operation. The upstream may have already processed the request."},"errors":{"invalid_status_codes":"{fieldName} must be exact codes such as 429, or ranges such as 5xx","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 {minLength} and {maxLength} characters","reserved_node_name":"\\"{nodeName}\\" is a reserved node name","attributes_required":"Provide at least one of attributes_block_name or attributes_name_prefix","invalid_force_array_path":"Must be a plain '/'-separated element path, for example 'store/product'"}},"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."},"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",managed_ui:{title:"Redis",shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",badge:"Recommended"},dedicated_configuration:{label:"Use locally-scoped configuration",description:"Create and use a Redis configuration specifically for this plugin."},selector:{placeholder:"Filter Redis configurations...",create_new:"New Redis"}},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)"},kong_identity:{title:"Who should manage authentication and credentials?",description_with_realms:"Use Consumers or centrally managed consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.",description_without_realms:"Use Consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.",learn_more:"Learn more.",incompatible_data_plane_alert:"We detected that one or more data plane nodes are running a version earlier than 3.15. Requests handled by those data plane nodes will use consumers instead of Kong Identity principals.",kong_identity_label:"Kong Identity",kong_identity_description_key_auth:"Use Kong Identity to authenticate API keys and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.",kong_identity_description_basic_auth:"Use Kong Identity to authenticate Basic Auth credentials and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.",consumers_label:"Consumers",consumers_description_key_auth:"Use consumer-managed API keys. Consumers provide their API key in a request header, query parameter, or request body to authenticate requests.",consumers_description_basic_auth:"Use consumer-managed Basic Auth credentials. Consumers authenticate requests using a username and password.",centrally_managed_label:"Centrally managed consumers",centrally_managed_description:"Authenticate centrally managed consumers in Konnect using identity realms. Identity realms are scoped to the control plane by default.",identity_realms_required:"To use centrally managed consumers, you must select at least one Centrally managed consumer realm.",error_on_miss_label:"If principal lookup fails",error_on_miss_reject_label:"Reject the request",error_on_miss_reject_description:"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.",error_on_miss_continue_label:"Continue without a principal",error_on_miss_continue_description:"Allow the request to continue without resolving a principal.",configure_title:"Configure Kong Identity",configure_description:"Kong Identity uses principals to represent authenticated services or applications. Create your first principal in Kong Identity to start using principal-based authentication. On data plane nodes running versions earlier than 3.15, authentication continues using consumers.",create_principal:"Create principal",configure_learn_more:"Learn more",leave_prompt_title:"Leave this page?",leave_prompt_message:"Your unsaved changes will be lost if you continue.",leave_prompt_action:"Leave page"}},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's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"},descriptions:{fixed:"Each request counts against one static time bucket, and only that bucket's counter.",sliding:"Each request counts against a rolling window, weighted by the rate of the window before it."}},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",custom:"Custom",add_limit:"Add limit",remove_limit:"Remove limit {index}",expression_placeholder:"Define an expression for the limit. eg: ‘principal.metadata.limit * 2’"},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(Oe,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("@kong/icons"),require("@kong/kongponents"),require("@vue-flow/background"),require("@vue-flow/controls"),require("@vue-flow/core"),require("@vueuse/core"),require("@kong-ui-public/i18n"),require("@kong-ui-public/freeform"),require("@vue-flow/controls/dist/style.css"),require("@vue-flow/core/dist/style.css"),require("@vue-flow/core/dist/theme-default.css"),require("@kong-ui-public/entities-shared"),require("@kong-ui-public/entities-plugins-icon"),require("@kong-ui-public/entities-plugins-metadata"),require("@kong-ui-public/forms"),require("axios"),require("vue-router"),require("dompurify"),require("marked"),require("@kong-ui-public/freeform/style.css"),require("@kong-ui-public/entities-redis-configurations"),require("@kong-ui-public/entities-redis-configurations/dist/style.css"),require("@kong-ui-public/entities-vaults"),require("@kong-ui-public/entities-vaults/dist/style.css"),require("@kong-ui-public/forms/dist/style.css"),require("@kong-ui-public/monaco-editor"),require("monaco-editor"),require("@kong-ui-public/monaco-editor/dist/runtime/style.css"),require("shiki"),require("zod"),require("@kong-ui-public/misc-widgets"),require("@kong-ui-public/misc-widgets/dist/style.css")):typeof define=="function"&&define.amd?define(["exports","vue","@kong/icons","@kong/kongponents","@vue-flow/background","@vue-flow/controls","@vue-flow/core","@vueuse/core","@kong-ui-public/i18n","@kong-ui-public/freeform","@vue-flow/controls/dist/style.css","@vue-flow/core/dist/style.css","@vue-flow/core/dist/theme-default.css","@kong-ui-public/entities-shared","@kong-ui-public/entities-plugins-icon","@kong-ui-public/entities-plugins-metadata","@kong-ui-public/forms","axios","vue-router","dompurify","marked","@kong-ui-public/freeform/style.css","@kong-ui-public/entities-redis-configurations","@kong-ui-public/entities-redis-configurations/dist/style.css","@kong-ui-public/entities-vaults","@kong-ui-public/entities-vaults/dist/style.css","@kong-ui-public/forms/dist/style.css","@kong-ui-public/monaco-editor","monaco-editor","@kong-ui-public/monaco-editor/dist/runtime/style.css","shiki","zod","@kong-ui-public/misc-widgets","@kong-ui-public/misc-widgets/dist/style.css"],t):(Oe=typeof globalThis<"u"?globalThis:Oe||self,t(Oe["kong-ui-public-entities-plugins"]={},Oe.Vue,Oe.KongIcons,Oe.Kongponents,Oe.background,Oe.controls,Oe.core$1,Oe.core,Oe["kong-ui-public-i18n"],Oe.utils,null,null,null,Oe["kong-ui-public-entities-shared"],Oe.entitiesPluginsIcon,Oe.entitiesPluginsMetadata,Oe.forms,Oe.axios,Oe.VueRouter,Oe.DOMPurify,Oe.marked,null,Oe.entitiesRedisConfigurations,null,Oe.entitiesVaults,null,null,Oe.monacoEditor,Oe.monaco,null,Oe.shiki,Oe.zod,Oe["kong-ui-public-misc-widgets"]))})(this,(function(Oe,t,Ne,be,rS,Kh,yt,Et,It,S,J9,X9,Z9,ge,mr,W,Ze,Yo,gr,Au,qh,Q9,xu,eW,Iu,tW,nW,ya,ao,rW,oS,P,Gh){"use strict";function zh(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return n.default=e,Object.freeze(n)}function iS(e,n){for(var r=0;r<n.length;r++){const o=n[r];if(typeof o!="string"&&!Array.isArray(o)){for(const i in o)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(o,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>o[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const Hh=zh(S),tl=zh(ao),Bt={actions:{cancel:"Cancel",view_configuration:"View configuration",create:"New plugin",create_custom:"Create",configure:"Configure",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",enable:"Enable",enabled:"Enabled",disable:"Disable",delete:"Delete",disabled:"Disabled",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}",loading_spinner:"Loading..."},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:"This custom plugin is currently in use in this control plane. Please delete any existing instances before removing 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",search_plugins:"Search plugins",search:"Search",tags_filter:"Type part of a tag and press Enter",scope_filter:"Select scopes"},filter:{field:{enabled:"Enabled"},tags_invalid:"Tags can't contain commas, slashes, or leading/trailing spaces"},no_results:'No results found for "{filter}"'},labels:{new:"New"},onboarding:{steps:{consumer:{step:"Consumer",title:"Create a consumer",description:"Consumers represent the users or applications calling your API. Add a name or tags to help you identify and manage this consumer later.",note:"A consumer can have both unique username and unique custom ID or one of them."},credential:{step:"Credential",title:"Add a credential"}},consumer_fields:{username_label:"Username",username_placeholder:"Enter a unique username",custom_id_label:"Custom ID",custom_id_placeholder:"Enter a unique custom ID"},choose_consumer:{title:"Choose a consumer",description:"Choose a consumer to add a credential",select_label:"Select an existing consumer",select_placeholder:"Search consumers"},create_consumer:{title:"Create a consumer"},add_credential:{title:"Add a credential"},create_principal:{title:"Create a principal",description:"Create a principal with authentication to test your plugin configuration."},add_principal_credential:{title:"Add authentication to a principal",description:"Add authentication credentials to an existing principal."},actions:{save_and_next:"Save and next",skip:"Skip",exit_setup:"Exit setup"},errors:{create_consumer:"The consumer could not be created at this time.",create_credential:"The credential could not be created at this time.",load_consumers:"Consumers could not be retrieved"},"basic-auth":{title:"Next steps for basic authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign username and password for authentication.",create_consumer:{description:"Create a new consumer with a basic auth credential to test your plugin configuration."},add_credential:{title:"Add a basic authentication credential",description:"Add a basic auth credential to an existing consumer."},credential_action:"Create credential"},"key-auth":{title:"Next steps for key authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign API keys for authentication.",create_consumer:{description:"Create a new consumer with a key auth credential to test your plugin configuration."},add_credential:{title:"Add a key authentication credential",description:"Add key authentication credentials to an existing consumer."},credential_action:"Create key"},"key-auth-enc":{title:"Next steps for key authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign API keys for authentication.",create_consumer:{description:"Create a new consumer with a key auth credential to test your plugin configuration."},add_credential:{title:"Add a key authentication credential",description:"Add key authentication credentials to an existing consumer."},credential_action:"Create key"},oauth2:{title:"Next steps for OAuth 2.0 authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to register an OAuth 2.0 application for authentication.",create_consumer:{description:"Create a new consumer with an OAuth 2.0 credential to test your plugin configuration."},add_credential:{title:"Add an OAuth 2.0 credential",description:"Add an OAuth 2.0 credential to an existing consumer."},credential_action:"Create credential"},"hmac-auth":{title:"Next steps for HMAC authentication plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to add usernames and secrets for authentication.",create_consumer:{description:"Create a new consumer with a HMAC auth credential to test your plugin configuration."},add_credential:{title:"Add a HMAC authentication credential",description:"Add a HMAC auth credential to an existing consumer."},credential_action:"Create credential"},jwt:{title:"Next steps for JWT plugins",subtitle:"Consumers represent the users or applications calling your API. Create a consumer to assign JWT credentials (public and secret keys) for authentication.",create_consumer:{description:"Create a new consumer with a JWT credential to test your plugin configuration."},add_credential:{title:"Add a JWT credential",description:"Add a JWT credential to an existing consumer."},credential_action:"Create credential"},acl:{title:"Next steps for ACL plugins",subtitle:"Consumers represent the users or applications calling your API. You do this by configuring either an allow list or a deny list with certain consumers or consumer groups.",create_consumer:{description:"Create a new consumer with an ACL credential to test your plugin configuration."},add_credential:{title:"Add an ACL credential",description:"Add an ACL credential to an existing consumer to test your new plugin configuration."},credential_action:"Add group to consumer"}},plugins:JSON.parse(`{"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","plugin":"Plugin","name":"Name","instance_name":"Instance name","scope":"Scope","status":"Status","ordering":"Ordering","ordering_badge":{"dynamic":"Dynamic","static":"Static"},"enabled":"Enabled","tags":"Tags","updated_at":"Last modified"},"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."},"ai-a2a-proxy":{"name":"AI A2A Proxy","description":"Securely proxy A2A agents, with real-time RPC tracing and monitoring."},"ai-custom-guardrail":{"name":"AI Custom Guardrail","description":"Integrate with any 3rd-party Guardrail service, with customizable enforcement modes — choose whether violations block, log, or allow traffic to proceed."},"metering-and-billing":{"name":"Metering & Billing","description":"Meter API requests and AI token usage for usage-based billing. Supports flexible customer identification, custom pricing dimensions, and fine-grained traffic filtering. Integrates natively with Konnect Metering & Billing."},"entitlement-enforcement":{"name":"Entitlement Enforcement","description":"Allow or deny API requests based on customer entitlements. Checks feature access, usage limits, and credit balance against Metering & Billing before routing traffic."}},"fields":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","service_id":"Service ID","route_id":"Route ID","consumer_id":"Consumer ID","consumer_group_id":"Consumer group ID"},"select":{"custom_badge_text":"This plugin is data plane node specific","cloned_from_badge":"Cloned from {link}","installed_custom_badge":"Installed custom","streamed_custom_badge":"Streamed custom","unavailable_tooltip":"This plugin is not available","already_exists":"This plugin is already applied to this resource","misc_plugins":"Other plugins","show_all":"Show all","view_more":"View more","view_less":"View less","filter":{"title":"Filter plugins","featured":"Featured","type":"Type","clear":"Clear"},"list":{"table_headers":{"name":"Plugin","description":"Description"}},"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.","fetch_error":"Unable to load some custom plugins. Bundled plugins are still available.","license_required":"Plugin cloning requires a license to be used.","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":{"button_deck_customize":"Customize before copying to CLI","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"},"plugin_status":{"label":"Plugin status","text_on":"Enabled","text_off":"Disabled"},"instance_name":{"label":"Name","placeholder":"Enter a unique name","help":"A custom name for this plugin instance to help with identifying from the list view."},"condition":{"label":"Execution condition","placeholder":"Enter an expression","tooltip":"An expression used for conditional control over plugin execution. If the expression evaluates to true during the request flow, the plugin is executed; otherwise, it is skipped.","help":{"learn":"Learn more","about":"{link} about plugin conditions."}},"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":{"label":"Tags","help":"An optional set of strings for grouping and filtering, separated by commas.","placeholder":"Tag1, Tag2, Tag3"},"secret":{"generateLabel":"Generate secret"}},"scoping":{"label":"Scoped","placeholder":"Search by name or UUID","disable_global_radio":"The plugin is set to 'scoped' by default. To apply a plugin globally, please navigate to the global plugin list page.","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":{"advanced_parameters":{"view":"Show additional settings","hide":"Hide additional settings"}},"sections":{"plugin_scope":{"title":"Plugin scope","description":"Choose whether this plugin applies to all traffic (global) or is scoped to a specific service, route, or consumer."},"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."},"plugin_general_info":{"description":"Add a name or tags to help you identify and manage this plugin later."},"code_mode":{"title":"Code editor","description":"Configure this plugin by using YAML configuration."}}},"free-form":{"editor_mode":{"visual":"Visual editor","code":"Code editor"},"code-lens":{"entity":{"service":"Service","route":"Route","consumer":"Consumer","consumer_group":"Consumer group","certificate":"Certificate"},"field":{"name":"{entity} \\"{value}\\"","username":"Username \\"{value}\\"","custom_id":"Custom ID \\"{value}\\"","subject":"Subject \\"{value}\\"","expires_after":"Expires after \\"{value}\\""},"action":{"view_entity":"View {title}","copy_certificate":"Copy certificate","copy_uuid":"Copy UUID","retry_fetch":"Retry fetch (Hover for details)"},"unknown_error":"Unknown error"},"acl":{"mode":{"title":{"label":"Access policy","description":"Select how requests are authorized. Choose one access policy: allow or deny by ACL group, or define a CEL expression. Only one policy type can be configured at a time."},"allow":{"label":"Allow list","description":"Allow requests from the specified ACL groups."},"deny":{"label":"Deny list","description":"Deny requests from the specified ACL groups."},"allow_when":{"label":"Allow expression","description":"Allow requests when the CEL expression evaluates to true."},"deny_when":{"label":"Deny expression","description":"Deny requests when the CEL expression evaluates to true."}},"field":{"allow":{"label":"Allowed list","placeholder":"Enter group names","add":"Add allow"},"deny":{"label":"Denied list","placeholder":"Enter group names","add":"Add deny"},"allow_when":{"label":"Kong plug-in conditional expression","description":"A Kong plug-in conditional expression is a CEL expression that determines whether the plugin runs for a request. If the expression evaluates to true, the plugin executes. If it evaluates to false, the plugin is skipped.","placeholder":"eg: 'consumer.username == \\"alice\\"'","add":"Add expression","help":{"learn":"Learn more","text":"Define a Kong plug-in conditional expression to evaluate each request. The expression must return a boolean value (true or false). {link}"}},"deny_when":{"label":"Kong plug-in conditional expression","description":"A Kong plug-in conditional expression is a CEL expression that determines whether the plugin runs for a request. If the expression evaluates to true, the plugin executes. If it evaluates to false, the plugin is skipped.","placeholder":"eg: 'consumer.username == \\"alice\\"'","add":"Add expression","help":{"learn":"Learn more","text":"Define a Kong plug-in conditional expression to evaluate each request. The expression must return a boolean value (true or false). {link}"}}}},"ai-mcp-proxy":{"default_acl_item_label":"Default ACL #{index}","tool_item_label":"Tool #{index}"},"openid-connect":{"tabs":{"common":{"title":"Common Configuration Settings","description":"Parameters for enabling the OpenID Connect plugin. Set these parameters before adding authorization, authentication, or other advanced configuration details."},"authorization":{"title":"Authorization Configuration Settings","description":"Parameters for setting up claims-based authorization."},"advanced":{"title":"Advanced Configuration Settings","description":"Advanced parameters for manually configuring the OpenID Connect plugin."}},"auth_methods":{"label":"Authentication methods","placeholder":"Select authentication methods","hint":"Configure which OAuth and OpenID Connect features are supported.","km_label":"Auth methods","methods":{"authorization_code":"Authorization code flow","bearer":"Bearer access token","client_credentials":"Client credentials grant","password":"Passwords grant","introspection":"Introspection","userinfo":"UserInfo","kong_oauth2":"Kong OAuth","refresh_token":"Refresh token"},"session":{"label":"Session management","switch_label":"Enable Session Management","use_label":"Use sessions","use_description":"Issue a session cookie after successful authentication. Subsequent requests use the session instead of re-authenticating with the identity provider.","no_use_label":"Do not use sessions","no_use_description":"Authenticate each request using the configured authentication flow."}},"principals":{"header":"Who should manage authentication and credentials?","description":"Use External auth server to continue using your existing OAuth provider and authentication workflows. Use Kong Identity to adopt a newer principal-based model that centralizes and simplifies identity and authentication management.","learn_more":"Learn more.","kong_identity_label":"Kong Identity","kong_identity_description":"Use Kong Identity to authenticate OpenID Connect tokens. If all data plane nodes are running version 3.15 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","kong_identity_description_ai_manager":"Use Kong Identity to authenticate OpenID Connect tokens. If all AI Gateway nodes are running version 2.0 or later, you can also map requests to Kong Identity principals for advanced policies and integrations.","external_label":"External auth server","external_description":"Connect to your existing identity provider to manage authentication outside of Kong.","guide":{"title":"Add principals","description":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products.","description_external":"Get more value from OAuth 2.0 integration by creating principals in Kong Identity. Associate principals with this authorization server and its clients to enable principal-based authentication across Kong products. Requires data plane nodes to be running version 3.15 or later.","create":"Create principal","learn_more":"Learn more"},"auth_server":{"label":"Authorization Server","info":"The Kong Identity auth server that will act as the OpenID Connect provider for this plugin.","placeholder":"Select an Authorization Server","create":"Create authorization server","create_hint":"You'll need to return here after creating an authorization server. Your progress won't be saved.","no_access_help":"You don't have access to browse authorization servers. Enter the issuer URL of your Kong Identity authorization server directly.","issuer_placeholder":"e.g., https://your-auth-server.identity.konghq.com"},"client":{"label":"Client","id_label":"Client id","secret_label":"Client secret","placeholder":"Select a client","id_placeholder":"e.g., kong-gateway-client","secret_placeholder":"e.g., your-client-secret","create":"Create client","create_hint":"You'll need to return here after creating a client. Your progress won't be saved.","add":"Add client","remove":"Remove client"},"leave_prompt":{"title":"Leave this page?","message":"Your unsaved changes will be lost if you continue.","action":"Leave page"},"dp_version_alert":"We detected that one or more data plane nodes are running a version earlier than 3.15. If principal lookup is enabled, requests handled by those data plane nodes will fail."},"lookup":{"collapse_label":"Show additional settings","toggle_label":"Use principal lookup","toggle_info":"Look up the authenticated principal in Kong Identity after token validation. Enable this when the validated token doesn't contain all of the identity data required for authorization or activity logging.","method":{"label":"Principal lookup method","placeholder":"Select a lookup method","help":"Principal lookup queries Kong Identity for the principal that matches the identity in a verified access token. This enables principal-aware policies and integrations. Requires all data plane nodes to be running version 3.15 or later.","kong_identity_label":"Kong Identity client","kong_identity_description":"Match principals using a token claim, defaulting to the subject (sub) claim.","custom_identity_label":"Custom claim","custom_identity_description":"Match principals using a custom JWT claim."},"custom_identity_name":{"label":"Custom identity name","help":"Enter the custom identity name used to look up the principal. Kong matches the value from the token claim to a principal with the same custom identity name and value.","placeholder":"e.g., Customer_ID"},"token_claim":{"label":"Token claim","placeholder":"e.g., user.employee_id","help":"Defaults to the subject (sub) claim, but you can specify a different token claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id).","help_custom":"The token claim whose value is matched against the Custom identity name. Defaults to the subject (sub) claim, but you can specify a different claim if needed. Use dot notation for nested claims (for example, workload.id); escape literal periods with \\\\ (for example, workload\\\\.id)."},"error_on_miss":{"label":"If principal lookup fails","reject_label":"Reject the request","reject_description":"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.","continue_label":"Continue without a principal","continue_description":"Allow the request to continue without resolving a principal."},"match_consumer":{"label":"Use linked consumers","description":"Use the consumer linked to the authenticated principal so existing consumer-based plugins and policies continue to work.","link":"Learn how to link a consumer."},"match_consumer_groups":{"label":"Use linked consumer groups","description":"Use consumer groups linked to the authenticated principal so existing consumer group policies and plugins continue to work. Consumer groups can be linked through principal metadata.","link":"Learn how to link a consumer group."}},"jit":{"toggle_label":"Just-in-time principal provisioning","toggle_info":"Create or update the Kong Identity principal from token claims as requests arrive, so identities don't need to be provisioned in advance.","all_claims":{"label":"Share all token claims","description":"Share every claim from the token when creating or updating a principal."},"claims":{"label":"Claims to share","placeholder":"e.g., email, department","help":"The token claims Kong writes onto the principal when creating or updating it just in time. Separate multiple claims with commas."}},"advanced_fields":{"client_jwk_link_label":"Client JWK","verify_signature_description":"JSON Web Keys are automatically fetched from the issuer's well-known endpoint. Enter a JWKS URI below to override this."}},"request-callout":{"entity_name":"Request callout","by_lua_placeholder":"Enter Lua script here..."},"jwt-signer":{"keyset_url_required":"Provide a valid HTTP/HTTPS URL to ensure signing works correctly when \\"{signingField}\\" is enabled and \\"{headerField}\\" is set."},"metering-and-billing":{"sections":{"plugin_config":{"title":"Plugin configuration","description":"Configure the Metering & Billing plugin."},"metering":{"title":"What to meter"},"subject":{"title":"Who to bill (subject)","description":"Define how billing subjects are identified."},"ingestion":{"title":"Connection","description":"Configure how metered data is delivered to the billing service."},"queue":{"title":"Queue","description":"Configure internal event queue settings."}},"fields":{"meter_api_requests":{"label":"Meter API requests","description":"Emit a usage event for each API Gateway request."},"meter_ai_token_usage":{"label":"Meter AI token usage","description":"Emit events for LLM input and output tokens on AI Gateway requests. Each request produces separate input/output events so they can be priced independently."},"allow_status_codes":{"label":"Allowed status codes","info":"Only meter responses whose status code falls within these ranges. Leave empty to meter all responses.","placeholder":"e.g., 200-299","add":"Add status code range"},"ingest_endpoint":{"description":"The URL of the metering data ingest endpoint.","help":"For Konnect Metering & Billing, use the regional endpoint from your Metering & Billing settings. For self-hosted OpenMeter, use your ingest URL."},"api_token":{"description":"Bearer token for authenticating requests to the ingest endpoint."},"look_up_value_in":{"label":"Look up subject in","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"e.g. x-customer-id, x-api-key, x-tenant"},"queue":{"max_coalescing_delay":{"label":"Max coalescing delay (s)"},"initial_retry_delay":{"label":"Initial retry delay (s)"},"max_retry_delay":{"label":"Max retry delay (s)"},"max_retry_time":{"label":"Max retry time (s)"}},"attributes":{"title":"Event attributes","description":"Attach custom dimensions to metered events.","look_up_value_in":{"placeholder":"e.g., x-priority-id"},"event_property_name":{"placeholder":"e.g., priority"}},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"}}},"governance":{"unavailable_kong_manager":"The Entitlement Enforcement plugin can't be configured in Kong Manager yet.","sections":{"configuration":{"title":"Plugin configuration","description":"Configure the Entitlement Enforcement plugin subject, feature, and connection settings."},"governance":{"title":"Entitlement Enforcement settings","description":"Configure access control behavior and response codes."},"subject":{"title":"Whose access to enforce (subject)"},"feature":{"title":"Feature"},"connection":{"title":"Connection","description":"Configure how the plugin connects to the entitlement access endpoint."},"redis":{"title":"Redis"},"cache_sync":{"title":"Cache and sync"}},"fields":{"look_up_value_in":{"label":"Whose access to enforce (Look up subject in)","help":"Where to find the customer identifier in the request."},"subject_field":{"label":"Subject field name","placeholder":"e.g., x-customer-id","help":"Name of the header or query parameter that carries the customer identifier."},"feature_key":{"label":"Feature to enforce access","help":"Feature that will control access to the scope where the plugin is applied.","create_feature":"+ Create new feature","unavailable":"You don't have access to metering features. Enable Metering & Billing in your Konnect organization to configure the feature to enforce.","load_error":"Could not load features from the entitlement enforcement service."},"governance_endpoint":{"help":"For Konnect Metering & Billing, use the regional endpoint for Metering & Billing entitlement access. For self-hosted OpenMeter, use the entitlement access endpoint of your self-hosted instance."},"ssl_verify":{"label":"Verify TLS certificate","description":"Disable only for local development with self-signed certificates."},"timeout":{"label":"Request timeout (ms)"},"keepalive":{"label":"Connection keep-alive (ms)"},"sync_rate":{"label":"Sync rate (s)"},"refresh_interval":{"label":"Refresh interval (s)"},"max_stale_seconds":{"label":"Max stale seconds"},"l1_ttl":{"label":"L1 TTL (s)"},"l2_ttl":{"label":"L2 TTL (s)"},"credit_balance_required":{"label":"Credit balance lookup","yes_label":"Yes","yes_description":"Customers must have a positive credit balance to access this feature.","no_label":"No","no_description":"Customers can access this feature regardless of their credit balance."},"fail_policy":{"label":"Plugin failure mode","allow_label":"Allow access","allow_description":"If the plugin fails, customers can still access this feature.","block_label":"Block access","block_description":"If the plugin fails, customers cannot access this feature."},"deny_unknown_customers":{"label":"Unknown customer access","allow_label":"Allow access","allow_description":"The gateway will allow access for unknown customers.","deny_label":"Deny access","deny_description":"The gateway will deny access for unknown customers."},"response":{"label":"Response mapping","columns":{"code":"Response code","status":"Status code","message":"Message"},"defaults":{"NO_CREDIT_AVAILABLE":"Customer has no credit available.","USAGE_LIMIT_REACHED":"Customer has reached usage limit for feature.","FEATURE_UNAVAILABLE":"Feature is not available for the customer.","FEATURE_NOT_FOUND":"Feature not found.","CUSTOMER_NOT_FOUND":"Customer is not found by subject."}}}},"datakit":{"plugin_config":{"title":"Flow editor"},"advanced_configuration":{"title":"Advanced configuration","show_label":"Show advanced configuration","hide_label":"Hide advanced configuration"},"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":{"authenticateThirdPartyWithDynamicUrl":"Authenticate Kong to a third-party service resolved at runtime","authenticateThirdParty":"Authenticate Kong to a third-party service","authenticateWithVaultSecret":"Authenticate to a third-party service using Vault secrets","clearHeaders":"Clear request headers","combineTwoApisIntoOneResponse":"Combine multiple API responses","conditionallyStoreCachedItems":"Conditionally fetch or store cache data","convertJsonIntoXml":"Transform JSON into XML","convertJsonToXmlAndBack":"Transform JSON into XML and back","convertXmlIntoJson":"Transform XML into JSON","manipulateRequestHeaders":"Manipulate request headers"},"flow_editor":{"mode":"Flow editor","name":"Datakit flow editor","cta":"Go to flow editor","disabled_tooltip":"The flow editor is unavailable due to critical configuration errors or features not supported in the flow editor:<br/><code>{reason}</code>","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.","groups":{"external_interaction":"External interaction","control_flow":"Control flow","data_transformation":"Data transformation","data_value":"Data value","authentication":"Authentication"}},"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":{"summary":"Call a third-party API","description":"Send an HTTP request and retrieve the response."},"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":{"summary":"Return directly to the client","description":"Trigger an early exit that produces a direct response, rather than forwarding a proxied response."},"property":{"summary":"Get and set Kong Gateway-specific data","description":"Get and set Kong Gateway host and request properties."},"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":{"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":{"summary":"Store and fetch cached data","description":"Store data into cache and fetch cached data from cache."},"xml_to_json":{"summary":"Transform XML to JSON","description":"Transform XML to JSON."},"json_to_xml":{"summary":"Transform JSON to XML","description":"Transform JSON to XML."},"jwt_decode":{"summary":"Decode JWT headers and claims","description":"Parse a JWT without verifying its signature."},"jwt_sign":{"summary":"Create and sign JWTs","description":"Generate a signed JWT from configured claims and a signing key."},"jwt_verify":{"summary":"Verify JWT signature and claims","description":"Verify a JWT signature and validate claims such as exp, nbf, iss, and aud."},"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"},"xml_to_json":{"force_array_paths":{"placeholder":"e.g. store/product"}},"jwt":{"static_claims":{"label":"Static claims","help":"Enter a JSON object. It will be stored as the node's static claims map.","errors":{"invalid_json_object":"Static claims must be a valid JSON object"}}},"error_handling":{"label":"Error handling","error_output_hint":"The error output is only set when Continue on error is enabled. Without it, connected nodes always receive an empty value.","failure_hint":"To handle a failed call, add a jq node to define the failure condition, then connect it to a Branch node.","failure_example":"For example, to treat non-2xx responses or call errors as failures:","retry":"Retry failed calls","retry_count":"Number of retries","retry_interval":"Retry interval","seconds":"seconds","retry_status_codes":"Retry status codes","status_codes_help":"Enter the status codes that trigger a retry, separated by commas. Use an exact code such as 429, or a range such as 5xx.","retry_warning":"Retrying may repeat this operation. The upstream may have already processed the request."},"errors":{"invalid_status_codes":"{fieldName} must be exact codes such as 429, or ranges such as 5xx","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 {minLength} and {maxLength} characters","reserved_node_name":"\\"{nodeName}\\" is a reserved node name","attributes_required":"Provide at least one of attributes_block_name or attributes_name_prefix","invalid_force_array_path":"Must be a plain '/'-separated element path, for example 'store/product'"}},"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."},"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",managed_ui:{title:"Redis",shared_configuration:{label:"Use shared configuration",description:"Select an existing shared Redis configuration or create a new one. Any updates to this configuration will automatically apply to all associated plugins.",badge:"Recommended"},dedicated_configuration:{label:"Use locally-scoped configuration",description:"Create and use a Redis configuration specifically for this plugin."},selector:{placeholder:"Filter Redis configurations...",create_new:"New Redis"}},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)"},kong_identity:{title:"Who should manage authentication and credentials?",description_with_realms:"Use Consumers or centrally managed consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.",description_without_realms:"Use Consumers for Consumer-based authentication. Use Kong Identity for principal-based authentication and advanced integrations.",learn_more:"Learn more.",incompatible_data_plane_alert:"We detected that one or more data plane nodes are running a version earlier than 3.15. Requests handled by those data plane nodes will use consumers instead of Kong Identity principals.",kong_identity_label:"Kong Identity",kong_identity_description_key_auth:"Use Kong Identity to authenticate API keys and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.",kong_identity_description_basic_auth:"Use Kong Identity to authenticate Basic Auth credentials and map requests to Kong Identity principals for advanced integrations. Data plane nodes running versions earlier than 3.15 continue using consumers.",consumers_label:"Consumers",consumers_description_key_auth:"Use consumer-managed API keys. Consumers provide their API key in a request header, query parameter, or request body to authenticate requests.",consumers_description_basic_auth:"Use consumer-managed Basic Auth credentials. Consumers authenticate requests using a username and password.",centrally_managed_label:"Centrally managed consumers",centrally_managed_description:"Authenticate centrally managed consumers in Konnect using identity realms. Identity realms are scoped to the control plane by default.",identity_realms_required:"To use centrally managed consumers, you must select at least one Centrally managed consumer realm.",error_on_miss_label:"If principal lookup fails",error_on_miss_reject_label:"Reject the request",error_on_miss_reject_description:"Treat the request as unauthenticated if Kong Identity cannot resolve the principal.",error_on_miss_continue_label:"Continue without a principal",error_on_miss_continue_description:"Allow the request to continue without resolving a principal.",configure_title:"Configure Kong Identity",configure_description:"Kong Identity uses principals to represent authenticated services or applications. Create your first principal in Kong Identity to start using principal-based authentication. On data plane nodes running versions earlier than 3.15, authentication continues using consumers.",create_principal:"Create principal",configure_learn_more:"Learn more",leave_prompt_title:"Leave this page?",leave_prompt_message:"Your unsaved changes will be lost if you continue.",leave_prompt_action:"Leave page"}},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's counters.</li></ul>",options:{fixed:"Fixed",sliding:"Sliding"},descriptions:{fixed:"Each request counts against one static time bucket, and only that bucket's counter.",sliding:"Each request counts against a rolling window, weighted by the rate of the window before it."}},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",custom:"Custom",add_limit:"Add limit",remove_limit:"Remove limit {index}",expression_placeholder:"Define an expression for the limit. eg: ‘principal.metadata.limit * 2’"},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.`}}},custom_key:{expression_placeholder:"e.g. principal.metadata.ff_id ? principal.metadata.ff_id : principal.id",expression_help:{text:"Define a Kong plug-in dynamic expression to determine the counter key for each request. The expression must return a string. {link}",learn:"Learn more"}}},custom_plugin_form:{step1:{title:"Custom plugin type",types:{installed:{label:"Installed custom plugin",description:"Install and manage plugins with full control over deployment and runtime. Requires restarting data planes."},streamed:{label:"Streamed custom plugin",description:"Deploy and update plugins on running data planes without requiring gateway access."},cloned:{label:"Cloned plugin",description:"Duplicate an existing plugin to run multiple instances within a single request."}},compare_trigger:"Compare deployment options",compare_table:{columns:{installed:"Installed custom plugin",streamed:"Streamed custom plugin",cloned:"Cloned plugin"},rows:{main_use_case:{header:"Main use case",installed:"Extend Kong functionality with custom plugins and control who can modify and roll out changes.",streamed:"Extend Kong functionality with plugins without requiring sysadmin access to data plane instances.",cloned:"Modify an existing plugin to run multiple instances with different names or priorities."},file_supplied:{header:"File supplied",installed:{handler:"handler.lua",schema:"schema.lua",additional:"Any additional files or libraries needed"},streamed:{handler:"handler.lua",schema:"schema.lua"}},how_installed:{header:"How it's installed",installed:"Install directly on the data plane",streamed:"Through gateway configuration changes",cloned:"Through gateway configuration changes"},sandboxing:{header:"Sandboxing",streamed:"Follows the standard sandboxing settings. {link}",streamed_link:"Link to docs",cloned:"Inherit the same sandboxing as the original plugins"},data_plane_reload:{header:"Data plane reload"}}}},step2_files:{title:"Custom plugin files",schema_file:{label:"Upload schema file",placeholder:"No file selected",placeholder_edit:"File not changed",button_text:"Select File",help:{text:"Only Lua based schemas are supported by Konnect. Other plugin modules can be in any language as desired. {link}",link:"Learn more"}},handler_file:{label:"Upload handler file",placeholder:"No file selected",placeholder_edit:"File not changed",button_text:"Select File",help:"Upload plugin handler to the data plane."},plugin_modules:{label:"Plugin modules",alert:"Upload all plugin modules to the data plane: schema.lua, handler.lua"},streaming_enabled:{alert:"Each data plane node must run with KONG_CUSTOM_PLUGIN_STREAMING_ENABLED=true. Otherwise, Kong Gateway removes this plugin from the node's configuration. {link}",alert_link:"Learn more"}},step2_clone:{title:"Clone plugin",select_plugin:{label:"Select a plugin",placeholder:"Type to search"}},step3:{title:"General information",description:"Enter a custom name for this custom plugin",name:{label:"Name",placeholder:"Enter a unique name",help:"The name must be identical to the name of the plugin in the schema file."},alias_name:{label:"Alias name",placeholder:"Enter a unique name",help:"Format: ^[a-z][a-z0-9-]*[a-z0-9]$. The name must be unique enough to avoid future conflicts with bundled plugins."},priority:{label:"Priority",tooltip:"Set the execution priority for this cloned plugin",help:{text:"Optional. Use a number to set the absolute execution priority. If priority isn't set, plugins run in alphabetical order. {link} in the docs.",link:"Learn more"}}},errors:{file_read_error:"Failed to read file content. Please try again.",file_too_large:"File size exceeds the maximum limit of 1 MB.",plugin_not_found:"The selected plugin could not be found. Please refresh the list and try again.",no_supported_types:"No supported custom plugin types are available in this context.",unsupported_plugin_type:"Unsupported plugin type {type}."}}};function Ye(){const e=It.createI18n("en-us",Bt);return{i18n:e,i18nT:It.i18nTComponent(e)}}const aS=["undo","redo","duplicate","cut","copy","paste"],Wh=()=>{};function sS(e){const n=e;return n?!!n.closest('input, textarea, [contenteditable]:not([contenteditable="false"])'):!1}function lS(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 cS=Et.createSharedComposable(()=>{const e=new Set;Et.useEventListener("keydown",r=>{if(sS(r.target))return;const o=lS(r);if(o)for(const i of e){if(!t.toValue(i.enabled))continue;const a=i[o];if(a){if(r.defaultPrevented){t.warn(`[useHotkeys] event for "${o}" was already defaultPrevented. Hotkey ignored.`);return}r.preventDefault(),a();return}}},{passive:!1});function n(r){if(!aS.some(i=>typeof r[i]=="function"))return Wh;const o={enabled:r.enabled??!0,...r};return e.add(o),()=>e.delete(o)}return{subscribe:n}});function Yh(e={}){if(typeof window>"u")return Wh;const n=cS().subscribe(e);return t.onScopeDispose(n),n}const dS="#ecfcff",uS="#f1f0ff",fS="#52596e",pS="#e0e4ea",mS="#007d60",gS="#fffce0",hS="#6c7489",yS="#0044f4",_S="#5f9aff",vu="#0d0e14",Jh="#d60027",bS="#00abd2",Xh="#6f28ff",Zh="#afb7c5",zn="#6c7489",wS="#0044f4",kS="#eefaff",Qh="#007d60",CS="#ecfffb",ES="#995c00",NS="#306fff",Jo="12px",_n="16px",so="20px",Tu="24px",SS="2px",ey="8px",AS="32px",ty=44,xS=220,ny=366,IS=1e3,vS=ty+parseFloat(ey),nl=1,TS=0,OS=1,BS=2,PS=3,Xo=parseInt(AS,10),_a="application/x-datakit+json",rl={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"]},jr={padding:80,gaps:{nodes:60,edges:80,ranks:60}},VS=1600,$S=1.2,RS=0,LS=200,ry=Symbol("confirm-modal");var oy=typeof global=="object"&&global&&global.Object===Object&&global,FS=typeof self=="object"&&self&&self.Object===Object&&self,Hn=oy||FS||Function("return this")(),bn=Hn.Symbol,iy=Object.prototype,DS=iy.hasOwnProperty,MS=iy.toString,ba=bn?bn.toStringTag:void 0;function US(e){var n=DS.call(e,ba),r=e[ba];try{e[ba]=void 0;var o=!0}catch{}var i=MS.call(e);return o&&(n?e[ba]=r:delete e[ba]),i}var jS=Object.prototype,KS=jS.toString;function qS(e){return KS.call(e)}var GS="[object Null]",zS="[object Undefined]",ay=bn?bn.toStringTag:void 0;function lo(e){return e==null?e===void 0?zS:GS:ay&&ay in Object(e)?US(e):qS(e)}function Wn(e){return e!=null&&typeof e=="object"}var HS="[object Symbol]";function Ou(e){return typeof e=="symbol"||Wn(e)&&lo(e)==HS}function Bu(e,n){for(var r=-1,o=e==null?0:e.length,i=Array(o);++r<o;)i[r]=n(e[r],r,e);return i}var $n=Array.isArray,sy=bn?bn.prototype:void 0,ly=sy?sy.toString:void 0;function cy(e){if(typeof e=="string")return e;if($n(e))return Bu(e,cy)+"";if(Ou(e))return ly?ly.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function co(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}function dy(e){return e}var WS="[object AsyncFunction]",YS="[object Function]",JS="[object GeneratorFunction]",XS="[object Proxy]";function uy(e){if(!co(e))return!1;var n=lo(e);return n==YS||n==JS||n==WS||n==XS}var Pu=Hn["__core-js_shared__"],fy=(function(){var e=/[^.]+$/.exec(Pu&&Pu.keys&&Pu.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function ZS(e){return!!fy&&fy in e}var QS=Function.prototype,eA=QS.toString;function uo(e){if(e!=null){try{return eA.call(e)}catch{}try{return e+""}catch{}}return""}var tA=/[\\^$.*+?()[\]{}|]/g,nA=/^\[object .+?Constructor\]$/,rA=Function.prototype,oA=Object.prototype,iA=rA.toString,aA=oA.hasOwnProperty,sA=RegExp("^"+iA.call(aA).replace(tA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lA(e){if(!co(e)||ZS(e))return!1;var n=uy(e)?sA:nA;return n.test(uo(e))}function cA(e,n){return e?.[n]}function fo(e,n){var r=cA(e,n);return lA(r)?r:void 0}var Vu=fo(Hn,"WeakMap"),py=Object.create,dA=(function(){function e(){}return function(n){if(!co(n))return{};if(py)return py(n);e.prototype=n;var r=new e;return e.prototype=void 0,r}})();function uA(e,n,r){switch(r.length){case 0:return e.call(n);case 1:return e.call(n,r[0]);case 2:return e.call(n,r[0],r[1]);case 3:return e.call(n,r[0],r[1],r[2])}return e.apply(n,r)}function fA(e,n){var r=-1,o=e.length;for(n||(n=Array(o));++r<o;)n[r]=e[r];return n}var pA=800,mA=16,gA=Date.now;function hA(e){var n=0,r=0;return function(){var o=gA(),i=mA-(o-r);if(r=o,i>0){if(++n>=pA)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}function yA(e){return function(){return e}}var ol=(function(){try{var e=fo(Object,"defineProperty");return e({},"",{}),e}catch{}})(),_A=ol?function(e,n){return ol(e,"toString",{configurable:!0,enumerable:!1,value:yA(n),writable:!0})}:dy,my=hA(_A);function bA(e,n){for(var r=-1,o=e==null?0:e.length;++r<o&&n(e[r],r,e)!==!1;);return e}function wA(e,n,r,o){for(var i=e.length,a=r+-1;++a<i;)if(n(e[a],a,e))return a;return-1}function kA(e){return e!==e}function CA(e,n,r){for(var o=r-1,i=e.length;++o<i;)if(e[o]===n)return o;return-1}function EA(e,n,r){return n===n?CA(e,n,r):wA(e,kA,r)}function NA(e,n){var r=e==null?0:e.length;return!!r&&EA(e,n,0)>-1}var SA=9007199254740991,AA=/^(?:0|[1-9]\d*)$/;function $u(e,n){var r=typeof e;return n=n??SA,!!n&&(r=="number"||r!="symbol"&&AA.test(e))&&e>-1&&e%1==0&&e<n}function gy(e,n,r){n=="__proto__"&&ol?ol(e,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[n]=r}function Ru(e,n){return e===n||e!==e&&n!==n}var xA=Object.prototype,IA=xA.hasOwnProperty;function Lu(e,n,r){var o=e[n];(!(IA.call(e,n)&&Ru(o,r))||r===void 0&&!(n in e))&&gy(e,n,r)}function wa(e,n,r,o){var i=!r;r||(r={});for(var a=-1,s=n.length;++a<s;){var l=n[a],c=void 0;c===void 0&&(c=e[l]),i?gy(r,l,c):Lu(r,l,c)}return r}var hy=Math.max;function yy(e,n,r){return n=hy(n===void 0?e.length-1:n,0),function(){for(var o=arguments,i=-1,a=hy(o.length-n,0),s=Array(a);++i<a;)s[i]=o[n+i];i=-1;for(var l=Array(n+1);++i<n;)l[i]=o[i];return l[n]=r(s),uA(e,this,l)}}function vA(e,n){return my(yy(e,n,dy),e+"")}var TA=9007199254740991;function Fu(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=TA}function il(e){return e!=null&&Fu(e.length)&&!uy(e)}var OA=Object.prototype;function al(e){var n=e&&e.constructor,r=typeof n=="function"&&n.prototype||OA;return e===r}function BA(e,n){for(var r=-1,o=Array(e);++r<e;)o[r]=n(r);return o}var PA="[object Arguments]";function _y(e){return Wn(e)&&lo(e)==PA}var by=Object.prototype,VA=by.hasOwnProperty,$A=by.propertyIsEnumerable,sl=_y((function(){return arguments})())?_y:function(e){return Wn(e)&&VA.call(e,"callee")&&!$A.call(e,"callee")};function RA(){return!1}var wy=typeof Oe=="object"&&Oe&&!Oe.nodeType&&Oe,ky=wy&&typeof module=="object"&&module&&!module.nodeType&&module,LA=ky&&ky.exports===wy,Cy=LA?Hn.Buffer:void 0,FA=Cy?Cy.isBuffer:void 0,ka=FA||RA,DA="[object Arguments]",MA="[object Array]",UA="[object Boolean]",jA="[object Date]",KA="[object Error]",qA="[object Function]",GA="[object Map]",zA="[object Number]",HA="[object Object]",WA="[object RegExp]",YA="[object Set]",JA="[object String]",XA="[object WeakMap]",ZA="[object ArrayBuffer]",QA="[object DataView]",ex="[object Float32Array]",tx="[object Float64Array]",nx="[object Int8Array]",rx="[object Int16Array]",ox="[object Int32Array]",ix="[object Uint8Array]",ax="[object Uint8ClampedArray]",sx="[object Uint16Array]",lx="[object Uint32Array]",wt={};wt[ex]=wt[tx]=wt[nx]=wt[rx]=wt[ox]=wt[ix]=wt[ax]=wt[sx]=wt[lx]=!0,wt[DA]=wt[MA]=wt[ZA]=wt[UA]=wt[QA]=wt[jA]=wt[KA]=wt[qA]=wt[GA]=wt[zA]=wt[HA]=wt[WA]=wt[YA]=wt[JA]=wt[XA]=!1;function cx(e){return Wn(e)&&Fu(e.length)&&!!wt[lo(e)]}function Du(e){return function(n){return e(n)}}var Ey=typeof Oe=="object"&&Oe&&!Oe.nodeType&&Oe,Ca=Ey&&typeof module=="object"&&module&&!module.nodeType&&module,dx=Ca&&Ca.exports===Ey,Mu=dx&&oy.process,Zo=(function(){try{var e=Ca&&Ca.require&&Ca.require("util").types;return e||Mu&&Mu.binding&&Mu.binding("util")}catch{}})(),Ny=Zo&&Zo.isTypedArray,Uu=Ny?Du(Ny):cx,ux=Object.prototype,fx=ux.hasOwnProperty;function Sy(e,n){var r=$n(e),o=!r&&sl(e),i=!r&&!o&&ka(e),a=!r&&!o&&!i&&Uu(e),s=r||o||i||a,l=s?BA(e.length,String):[],c=l.length;for(var d in e)(n||fx.call(e,d))&&!(s&&(d=="length"||i&&(d=="offset"||d=="parent")||a&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||$u(d,c)))&&l.push(d);return l}function Ay(e,n){return function(r){return e(n(r))}}var px=Ay(Object.keys,Object),mx=Object.prototype,gx=mx.hasOwnProperty;function xy(e){if(!al(e))return px(e);var n=[];for(var r in Object(e))gx.call(e,r)&&r!="constructor"&&n.push(r);return n}function ju(e){return il(e)?Sy(e):xy(e)}function hx(e){var n=[];if(e!=null)for(var r in Object(e))n.push(r);return n}var yx=Object.prototype,_x=yx.hasOwnProperty;function bx(e){if(!co(e))return hx(e);var n=al(e),r=[];for(var o in e)o=="constructor"&&(n||!_x.call(e,o))||r.push(o);return r}function Ku(e){return il(e)?Sy(e,!0):bx(e)}var wx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kx=/^\w*$/;function Cx(e,n){if($n(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ou(e)?!0:kx.test(e)||!wx.test(e)||n!=null&&e in Object(n)}var Ea=fo(Object,"create");function Ex(){this.__data__=Ea?Ea(null):{},this.size=0}function Nx(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var Sx="__lodash_hash_undefined__",Ax=Object.prototype,xx=Ax.hasOwnProperty;function Ix(e){var n=this.__data__;if(Ea){var r=n[e];return r===Sx?void 0:r}return xx.call(n,e)?n[e]:void 0}var vx=Object.prototype,Tx=vx.hasOwnProperty;function Ox(e){var n=this.__data__;return Ea?n[e]!==void 0:Tx.call(n,e)}var Bx="__lodash_hash_undefined__";function Px(e,n){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ea&&n===void 0?Bx:n,this}function po(e){var n=-1,r=e==null?0:e.length;for(this.clear();++n<r;){var o=e[n];this.set(o[0],o[1])}}po.prototype.clear=Ex,po.prototype.delete=Nx,po.prototype.get=Ix,po.prototype.has=Ox,po.prototype.set=Px;function Vx(){this.__data__=[],this.size=0}function ll(e,n){for(var r=e.length;r--;)if(Ru(e[r][0],n))return r;return-1}var $x=Array.prototype,Rx=$x.splice;function Lx(e){var n=this.__data__,r=ll(n,e);if(r<0)return!1;var o=n.length-1;return r==o?n.pop():Rx.call(n,r,1),--this.size,!0}function Fx(e){var n=this.__data__,r=ll(n,e);return r<0?void 0:n[r][1]}function Dx(e){return ll(this.__data__,e)>-1}function Mx(e,n){var r=this.__data__,o=ll(r,e);return o<0?(++this.size,r.push([e,n])):r[o][1]=n,this}function hr(e){var n=-1,r=e==null?0:e.length;for(this.clear();++n<r;){var o=e[n];this.set(o[0],o[1])}}hr.prototype.clear=Vx,hr.prototype.delete=Lx,hr.prototype.get=Fx,hr.prototype.has=Dx,hr.prototype.set=Mx;var Na=fo(Hn,"Map");function Ux(){this.size=0,this.__data__={hash:new po,map:new(Na||hr),string:new po}}function jx(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function cl(e,n){var r=e.__data__;return jx(n)?r[typeof n=="string"?"string":"hash"]:r.map}function Kx(e){var n=cl(this,e).delete(e);return this.size-=n?1:0,n}function qx(e){return cl(this,e).get(e)}function Gx(e){return cl(this,e).has(e)}function zx(e,n){var r=cl(this,e),o=r.size;return r.set(e,n),this.size+=r.size==o?0:1,this}function yr(e){var n=-1,r=e==null?0:e.length;for(this.clear();++n<r;){var o=e[n];this.set(o[0],o[1])}}yr.prototype.clear=Ux,yr.prototype.delete=Kx,yr.prototype.get=qx,yr.prototype.has=Gx,yr.prototype.set=zx;var Hx="Expected a function";function qu(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(Hx);var r=function(){var o=arguments,i=n?n.apply(this,o):o[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,o);return r.cache=a.set(i,s)||a,s};return r.cache=new(qu.Cache||yr),r}qu.Cache=yr;var Wx=500;function Yx(e){var n=qu(e,function(o){return r.size===Wx&&r.clear(),o}),r=n.cache;return n}var Jx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Xx=/\\(\\)?/g,Zx=Yx(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(Jx,function(r,o,i,a){n.push(i?a.replace(Xx,"$1"):o||r)}),n});function mo(e){return e==null?"":cy(e)}function Qo(e,n){return $n(e)?e:Cx(e,n)?[e]:Zx(mo(e))}function Sa(e){if(typeof e=="string"||Ou(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Gu(e,n){n=Qo(n,e);for(var r=0,o=n.length;e!=null&&r<o;)e=e[Sa(n[r++])];return r&&r==o?e:void 0}function Aa(e,n,r){var o=e==null?void 0:Gu(e,n);return o===void 0?r:o}function zu(e,n){for(var r=-1,o=n.length,i=e.length;++r<o;)e[i+r]=n[r];return e}var Iy=bn?bn.isConcatSpreadable:void 0;function Qx(e){return $n(e)||sl(e)||!!(Iy&&e&&e[Iy])}function eI(e,n,r,o,i){var a=-1,s=e.length;for(r||(r=Qx),i||(i=[]);++a<s;){var l=e[a];r(l)?zu(i,l):i[i.length]=l}return i}function tI(e){var n=e==null?0:e.length;return n?eI(e):[]}function vy(e){return my(yy(e,void 0,tI),e+"")}var Hu=Ay(Object.getPrototypeOf,Object),nI="[object Object]",rI=Function.prototype,oI=Object.prototype,Ty=rI.toString,iI=oI.hasOwnProperty,aI=Ty.call(Object);function sI(e){if(!Wn(e)||lo(e)!=nI)return!1;var n=Hu(e);if(n===null)return!0;var r=iI.call(n,"constructor")&&n.constructor;return typeof r=="function"&&r instanceof r&&Ty.call(r)==aI}function Oy(e,n,r){var o=-1,i=e.length;n<0&&(n=-n>i?0:i+n),r=r>i?i:r,r<0&&(r+=i),i=n>r?0:r-n>>>0,n>>>=0;for(var a=Array(i);++o<i;)a[o]=e[o+n];return a}function lI(e,n,r){var o=e.length;return r=r===void 0?o:r,!n&&r>=o?e:Oy(e,n,r)}var cI="\\ud800-\\udfff",dI="\\u0300-\\u036f",uI="\\ufe20-\\ufe2f",fI="\\u20d0-\\u20ff",pI=dI+uI+fI,mI="\\ufe0e\\ufe0f",gI="\\u200d",hI=RegExp("["+gI+cI+pI+mI+"]");function By(e){return hI.test(e)}function yI(e){return e.split("")}var Py="\\ud800-\\udfff",_I="\\u0300-\\u036f",bI="\\ufe20-\\ufe2f",wI="\\u20d0-\\u20ff",kI=_I+bI+wI,CI="\\ufe0e\\ufe0f",EI="["+Py+"]",Wu="["+kI+"]",Yu="\\ud83c[\\udffb-\\udfff]",NI="(?:"+Wu+"|"+Yu+")",Vy="[^"+Py+"]",$y="(?:\\ud83c[\\udde6-\\uddff]){2}",Ry="[\\ud800-\\udbff][\\udc00-\\udfff]",SI="\\u200d",Ly=NI+"?",Fy="["+CI+"]?",AI="(?:"+SI+"(?:"+[Vy,$y,Ry].join("|")+")"+Fy+Ly+")*",xI=Fy+Ly+AI,II="(?:"+[Vy+Wu+"?",Wu,$y,Ry,EI].join("|")+")",vI=RegExp(Yu+"(?="+Yu+")|"+II+xI,"g");function TI(e){return e.match(vI)||[]}function OI(e){return By(e)?TI(e):yI(e)}function BI(e){return function(n){n=mo(n);var r=By(n)?OI(n):void 0,o=r?r[0]:n.charAt(0),i=r?lI(r,1).join(""):n.slice(1);return o[e]()+i}}var PI=BI("toUpperCase");function VI(e){return PI(mo(e).toLowerCase())}function $I(e,n,r,o){for(var i=-1,a=e==null?0:e.length;++i<a;)r=n(r,e[i],i,e);return r}function Dy(e){return function(n){return e?.[n]}}var RI={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},LI=Dy(RI),FI=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,DI="\\u0300-\\u036f",MI="\\ufe20-\\ufe2f",UI="\\u20d0-\\u20ff",jI=DI+MI+UI,KI="["+jI+"]",qI=RegExp(KI,"g");function GI(e){return e=mo(e),e&&e.replace(FI,LI).replace(qI,"")}var zI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function HI(e){return e.match(zI)||[]}var WI=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function YI(e){return WI.test(e)}var My="\\ud800-\\udfff",JI="\\u0300-\\u036f",XI="\\ufe20-\\ufe2f",ZI="\\u20d0-\\u20ff",QI=JI+XI+ZI,Uy="\\u2700-\\u27bf",jy="a-z\\xdf-\\xf6\\xf8-\\xff",ev="\\xac\\xb1\\xd7\\xf7",tv="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",nv="\\u2000-\\u206f",rv=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ky="A-Z\\xc0-\\xd6\\xd8-\\xde",ov="\\ufe0e\\ufe0f",qy=ev+tv+nv+rv,Gy="['’]",zy="["+qy+"]",iv="["+QI+"]",Hy="\\d+",av="["+Uy+"]",Wy="["+jy+"]",Yy="[^"+My+qy+Hy+Uy+jy+Ky+"]",sv="\\ud83c[\\udffb-\\udfff]",lv="(?:"+iv+"|"+sv+")",cv="[^"+My+"]",Jy="(?:\\ud83c[\\udde6-\\uddff]){2}",Xy="[\\ud800-\\udbff][\\udc00-\\udfff]",ei="["+Ky+"]",dv="\\u200d",Zy="(?:"+Wy+"|"+Yy+")",uv="(?:"+ei+"|"+Yy+")",Qy="(?:"+Gy+"(?:d|ll|m|re|s|t|ve))?",e_="(?:"+Gy+"(?:D|LL|M|RE|S|T|VE))?",t_=lv+"?",n_="["+ov+"]?",fv="(?:"+dv+"(?:"+[cv,Jy,Xy].join("|")+")"+n_+t_+")*",pv="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",mv="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",gv=n_+t_+fv,hv="(?:"+[av,Jy,Xy].join("|")+")"+gv,yv=RegExp([ei+"?"+Wy+"+"+Qy+"(?="+[zy,ei,"$"].join("|")+")",uv+"+"+e_+"(?="+[zy,ei+Zy,"$"].join("|")+")",ei+"?"+Zy+"+"+Qy,ei+"+"+e_,mv,pv,Hy,hv].join("|"),"g");function _v(e){return e.match(yv)||[]}function bv(e,n,r){return e=mo(e),n=n,n===void 0?YI(e)?_v(e):HI(e):e.match(n)||[]}var wv="['’]",kv=RegExp(wv,"g");function Cv(e){return function(n){return $I(bv(GI(n).replace(kv,"")),e,"")}}var Ev=Cv(function(e,n,r){return n=n.toLowerCase(),e+(r?VI(n):n)});function Nv(){this.__data__=new hr,this.size=0}function Sv(e){var n=this.__data__,r=n.delete(e);return this.size=n.size,r}function Av(e){return this.__data__.get(e)}function xv(e){return this.__data__.has(e)}var Iv=200;function vv(e,n){var r=this.__data__;if(r instanceof hr){var o=r.__data__;if(!Na||o.length<Iv-1)return o.push([e,n]),this.size=++r.size,this;r=this.__data__=new yr(o)}return r.set(e,n),this.size=r.size,this}function _r(e){var n=this.__data__=new hr(e);this.size=n.size}_r.prototype.clear=Nv,_r.prototype.delete=Sv,_r.prototype.get=Av,_r.prototype.has=xv,_r.prototype.set=vv;function Tv(e,n){return e&&wa(n,ju(n),e)}function Ov(e,n){return e&&wa(n,Ku(n),e)}var r_=typeof Oe=="object"&&Oe&&!Oe.nodeType&&Oe,o_=r_&&typeof module=="object"&&module&&!module.nodeType&&module,Bv=o_&&o_.exports===r_,i_=Bv?Hn.Buffer:void 0,a_=i_?i_.allocUnsafe:void 0;function Pv(e,n){if(n)return e.slice();var r=e.length,o=a_?a_(r):new e.constructor(r);return e.copy(o),o}function Vv(e,n){for(var r=-1,o=e==null?0:e.length,i=0,a=[];++r<o;){var s=e[r];n(s,r,e)&&(a[i++]=s)}return a}function s_(){return[]}var $v=Object.prototype,Rv=$v.propertyIsEnumerable,l_=Object.getOwnPropertySymbols,Ju=l_?function(e){return e==null?[]:(e=Object(e),Vv(l_(e),function(n){return Rv.call(e,n)}))}:s_;function Lv(e,n){return wa(e,Ju(e),n)}var Fv=Object.getOwnPropertySymbols,c_=Fv?function(e){for(var n=[];e;)zu(n,Ju(e)),e=Hu(e);return n}:s_;function Dv(e,n){return wa(e,c_(e),n)}function d_(e,n,r){var o=n(e);return $n(e)?o:zu(o,r(e))}function Xu(e){return d_(e,ju,Ju)}function u_(e){return d_(e,Ku,c_)}var Zu=fo(Hn,"DataView"),Qu=fo(Hn,"Promise"),ef=fo(Hn,"Set"),f_="[object Map]",Mv="[object Object]",p_="[object Promise]",m_="[object Set]",g_="[object WeakMap]",h_="[object DataView]",Uv=uo(Zu),jv=uo(Na),Kv=uo(Qu),qv=uo(ef),Gv=uo(Vu),wn=lo;(Zu&&wn(new Zu(new ArrayBuffer(1)))!=h_||Na&&wn(new Na)!=f_||Qu&&wn(Qu.resolve())!=p_||ef&&wn(new ef)!=m_||Vu&&wn(new Vu)!=g_)&&(wn=function(e){var n=lo(e),r=n==Mv?e.constructor:void 0,o=r?uo(r):"";if(o)switch(o){case Uv:return h_;case jv:return f_;case Kv:return p_;case qv:return m_;case Gv:return g_}return n});var zv=Object.prototype,Hv=zv.hasOwnProperty;function Wv(e){var n=e.length,r=new e.constructor(n);return n&&typeof e[0]=="string"&&Hv.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var dl=Hn.Uint8Array;function tf(e){var n=new e.constructor(e.byteLength);return new dl(n).set(new dl(e)),n}function Yv(e,n){var r=n?tf(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Jv=/\w*$/;function Xv(e){var n=new e.constructor(e.source,Jv.exec(e));return n.lastIndex=e.lastIndex,n}var y_=bn?bn.prototype:void 0,__=y_?y_.valueOf:void 0;function Zv(e){return __?Object(__.call(e)):{}}function Qv(e,n){var r=n?tf(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var eT="[object Boolean]",tT="[object Date]",nT="[object Map]",rT="[object Number]",oT="[object RegExp]",iT="[object Set]",aT="[object String]",sT="[object Symbol]",lT="[object ArrayBuffer]",cT="[object DataView]",dT="[object Float32Array]",uT="[object Float64Array]",fT="[object Int8Array]",pT="[object Int16Array]",mT="[object Int32Array]",gT="[object Uint8Array]",hT="[object Uint8ClampedArray]",yT="[object Uint16Array]",_T="[object Uint32Array]";function bT(e,n,r){var o=e.constructor;switch(n){case lT:return tf(e);case eT:case tT:return new o(+e);case cT:return Yv(e,r);case dT:case uT:case fT:case pT:case mT:case gT:case hT:case yT:case _T:return Qv(e,r);case nT:return new o;case rT:case aT:return new o(e);case oT:return Xv(e);case iT:return new o;case sT:return Zv(e)}}function wT(e){return typeof e.constructor=="function"&&!al(e)?dA(Hu(e)):{}}var kT="[object Map]";function CT(e){return Wn(e)&&wn(e)==kT}var b_=Zo&&Zo.isMap,ET=b_?Du(b_):CT,NT="[object Set]";function ST(e){return Wn(e)&&wn(e)==NT}var w_=Zo&&Zo.isSet,AT=w_?Du(w_):ST,xT=1,IT=2,vT=4,k_="[object Arguments]",TT="[object Array]",OT="[object Boolean]",BT="[object Date]",PT="[object Error]",C_="[object Function]",VT="[object GeneratorFunction]",$T="[object Map]",RT="[object Number]",E_="[object Object]",LT="[object RegExp]",FT="[object Set]",DT="[object String]",MT="[object Symbol]",UT="[object WeakMap]",jT="[object ArrayBuffer]",KT="[object DataView]",qT="[object Float32Array]",GT="[object Float64Array]",zT="[object Int8Array]",HT="[object Int16Array]",WT="[object Int32Array]",YT="[object Uint8Array]",JT="[object Uint8ClampedArray]",XT="[object Uint16Array]",ZT="[object Uint32Array]",_t={};_t[k_]=_t[TT]=_t[jT]=_t[KT]=_t[OT]=_t[BT]=_t[qT]=_t[GT]=_t[zT]=_t[HT]=_t[WT]=_t[$T]=_t[RT]=_t[E_]=_t[LT]=_t[FT]=_t[DT]=_t[MT]=_t[YT]=_t[JT]=_t[XT]=_t[ZT]=!0,_t[PT]=_t[C_]=_t[UT]=!1;function xa(e,n,r,o,i,a){var s,l=n&xT,c=n&IT,d=n&vT;if(r&&(s=i?r(e,o,i,a):r(e)),s!==void 0)return s;if(!co(e))return e;var u=$n(e);if(u){if(s=Wv(e),!l)return fA(e,s)}else{var f=wn(e),p=f==C_||f==VT;if(ka(e))return Pv(e,l);if(f==E_||f==k_||p&&!i){if(s=c||p?{}:wT(e),!l)return c?Dv(e,Ov(s,e)):Lv(e,Tv(s,e))}else{if(!_t[f])return i?e:{};s=bT(e,f,l)}}a||(a=new _r);var m=a.get(e);if(m)return m;a.set(e,s),AT(e)?e.forEach(function(h){s.add(xa(h,n,r,h,e,a))}):ET(e)&&e.forEach(function(h,y){s.set(y,xa(h,n,r,y,e,a))});var g=d?c?u_:Xu:c?Ku:ju,_=u?void 0:g(e);return bA(_||e,function(h,y){_&&(y=h,h=e[y]),Lu(s,y,xa(h,n,r,y,e,a))}),s}var QT=1,eO=4;function nf(e){return xa(e,QT|eO)}var tO="__lodash_hash_undefined__";function nO(e){return this.__data__.set(e,tO),this}function rO(e){return this.__data__.has(e)}function Ia(e){var n=-1,r=e==null?0:e.length;for(this.__data__=new yr;++n<r;)this.add(e[n])}Ia.prototype.add=Ia.prototype.push=nO,Ia.prototype.has=rO;function oO(e,n){for(var r=-1,o=e==null?0:e.length;++r<o;)if(n(e[r],r,e))return!0;return!1}function rf(e,n){return e.has(n)}var iO=1,aO=2;function N_(e,n,r,o,i,a){var s=r&iO,l=e.length,c=n.length;if(l!=c&&!(s&&c>l))return!1;var d=a.get(e),u=a.get(n);if(d&&u)return d==n&&u==e;var f=-1,p=!0,m=r&aO?new Ia:void 0;for(a.set(e,n),a.set(n,e);++f<l;){var g=e[f],_=n[f];if(o)var h=s?o(_,g,f,n,e,a):o(g,_,f,e,n,a);if(h!==void 0){if(h)continue;p=!1;break}if(m){if(!oO(n,function(y,w){if(!rf(m,w)&&(g===y||i(g,y,r,o,a)))return m.push(w)})){p=!1;break}}else if(!(g===_||i(g,_,r,o,a))){p=!1;break}}return a.delete(e),a.delete(n),p}function sO(e){var n=-1,r=Array(e.size);return e.forEach(function(o,i){r[++n]=[i,o]}),r}function lO(e){var n=-1,r=Array(e.size);return e.forEach(function(o){r[++n]=o}),r}var cO=1,dO=2,uO="[object Boolean]",fO="[object Date]",pO="[object Error]",mO="[object Map]",gO="[object Number]",hO="[object RegExp]",yO="[object Set]",_O="[object String]",bO="[object Symbol]",wO="[object ArrayBuffer]",kO="[object DataView]",S_=bn?bn.prototype:void 0,of=S_?S_.valueOf:void 0;function CO(e,n,r,o,i,a,s){switch(r){case kO:if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case wO:return!(e.byteLength!=n.byteLength||!a(new dl(e),new dl(n)));case uO:case fO:case gO:return Ru(+e,+n);case pO:return e.name==n.name&&e.message==n.message;case hO:case _O:return e==n+"";case mO:var l=sO;case yO:var c=o&cO;if(l||(l=lO),e.size!=n.size&&!c)return!1;var d=s.get(e);if(d)return d==n;o|=dO,s.set(e,n);var u=N_(l(e),l(n),o,i,a,s);return s.delete(e),u;case bO:if(of)return of.call(e)==of.call(n)}return!1}var EO=1,NO=Object.prototype,SO=NO.hasOwnProperty;function AO(e,n,r,o,i,a){var s=r&EO,l=Xu(e),c=l.length,d=Xu(n),u=d.length;if(c!=u&&!s)return!1;for(var f=c;f--;){var p=l[f];if(!(s?p in n:SO.call(n,p)))return!1}var m=a.get(e),g=a.get(n);if(m&&g)return m==n&&g==e;var _=!0;a.set(e,n),a.set(n,e);for(var h=s;++f<c;){p=l[f];var y=e[p],w=n[p];if(o)var b=s?o(w,y,p,n,e,a):o(y,w,p,e,n,a);if(!(b===void 0?y===w||i(y,w,r,o,a):b)){_=!1;break}h||(h=p=="constructor")}if(_&&!h){var E=e.constructor,k=n.constructor;E!=k&&"constructor"in e&&"constructor"in n&&!(typeof E=="function"&&E instanceof E&&typeof k=="function"&&k instanceof k)&&(_=!1)}return a.delete(e),a.delete(n),_}var xO=1,A_="[object Arguments]",x_="[object Array]",ul="[object Object]",IO=Object.prototype,I_=IO.hasOwnProperty;function vO(e,n,r,o,i,a){var s=$n(e),l=$n(n),c=s?x_:wn(e),d=l?x_:wn(n);c=c==A_?ul:c,d=d==A_?ul:d;var u=c==ul,f=d==ul,p=c==d;if(p&&ka(e)){if(!ka(n))return!1;s=!0,u=!1}if(p&&!u)return a||(a=new _r),s||Uu(e)?N_(e,n,r,o,i,a):CO(e,n,c,r,o,i,a);if(!(r&xO)){var m=u&&I_.call(e,"__wrapped__"),g=f&&I_.call(n,"__wrapped__");if(m||g){var _=m?e.value():e,h=g?n.value():n;return a||(a=new _r),i(_,h,r,o,a)}}return p?(a||(a=new _r),AO(e,n,r,o,i,a)):!1}function v_(e,n,r,o,i){return e===n?!0:e==null||n==null||!Wn(e)&&!Wn(n)?e!==e&&n!==n:vO(e,n,r,o,v_,i)}function TO(e,n){return e!=null&&n in Object(e)}function T_(e,n,r){n=Qo(n,e);for(var o=-1,i=n.length,a=!1;++o<i;){var s=Sa(n[o]);if(!(a=e!=null&&r(e,s)))break;e=e[s]}return a||++o!=i?a:(i=e==null?0:e.length,!!i&&Fu(i)&&$u(s,i)&&($n(e)||sl(e)))}function OO(e,n){return e!=null&&T_(e,n,TO)}function BO(e){return Wn(e)&&il(e)}function PO(e){var n=e==null?0:e.length;return n?e[n-1]:void 0}var VO={"&":"&","<":"<",">":">",'"':""","'":"'"},$O=Dy(VO),O_=/[&<>"']/g,RO=RegExp(O_.source);function LO(e){return e=mo(e),e&&RO.test(e)?e.replace(O_,$O):e}var FO=Object.prototype,DO=FO.hasOwnProperty;function MO(e,n){return e!=null&&DO.call(e,n)}function fl(e,n){return e!=null&&T_(e,n,MO)}var UO=Math.min;function jO(e,n,r){for(var o=NA,i=e[0].length,a=e.length,s=a,l=Array(a),c=1/0,d=[];s--;){var u=e[s];c=UO(u.length,c),l[s]=i>=120&&u.length>=120?new Ia(s&&u):void 0}u=e[0];var f=-1,p=l[0];e:for(;++f<i&&d.length<c;){var m=u[f],g=m;if(m=m!==0?m:0,!(p?rf(p,g):o(d,g))){for(s=a;--s;){var _=l[s];if(!(_?rf(_,g):o(e[s],g)))continue e}p&&p.push(g),d.push(m)}}return d}function KO(e){return BO(e)?e:[]}var qO=vA(function(e){var n=Bu(e,KO);return n.length&&n[0]===e[0]?jO(n):[]});function GO(e,n){return n.length<2?e:Gu(e,Oy(n,0,-1))}var zO="[object Map]",HO="[object Set]",WO=Object.prototype,YO=WO.hasOwnProperty;function af(e){if(e==null)return!0;if(il(e)&&($n(e)||typeof e=="string"||typeof e.splice=="function"||ka(e)||Uu(e)||sl(e)))return!e.length;var n=wn(e);if(n==zO||n==HO)return!e.size;if(al(e))return!xy(e).length;for(var r in e)if(YO.call(e,r))return!1;return!0}function ti(e,n){return v_(e,n)}var JO=Object.prototype,XO=JO.hasOwnProperty;function B_(e,n){n=Qo(n,e);var r=-1,o=n.length;if(!o)return!0;for(;++r<o;){var i=Sa(n[r]);if(i==="__proto__"&&!XO.call(e,"__proto__")||(i==="constructor"||i==="prototype")&&r<o-1)return!1}var a=GO(e,n);return a==null||delete a[Sa(PO(n))]}function ZO(e){return sI(e)?void 0:e}var QO=1,eB=2,tB=4,go=vy(function(e,n){var r={};if(e==null)return r;var o=!1;n=Bu(n,function(a){return a=Qo(a,e),o||(o=a.length>1),a}),wa(e,u_(e),r),o&&(r=xa(r,QO|eB|tB,ZO));for(var i=n.length;i--;)B_(r,n[i]);return r});function P_(e,n,r,o){if(!co(e))return e;n=Qo(n,e);for(var i=-1,a=n.length,s=a-1,l=e;l!=null&&++i<a;){var c=Sa(n[i]),d=r;if(c==="__proto__"||c==="constructor"||c==="prototype")return e;if(i!=s){var u=l[c];d=void 0,d===void 0&&(d=co(u)?u:$u(n[i+1])?[]:{})}Lu(l,c,d),l=l[c]}return e}function nB(e,n,r){for(var o=-1,i=n.length,a={};++o<i;){var s=n[o],l=Gu(e,s);r(l,s)&&P_(a,Qo(s,e),l)}return a}function rB(e,n){return nB(e,n,function(r,o){return OO(e,o)})}var pl=vy(function(e,n){return e==null?{}:rB(e,n)});function V_(e,n,r){return e==null?e:P_(e,n,r)}var oB=0;function sf(e){var n=++oB;return mo(e)+n}function iB(e,n){return e==null?!0:B_(e,n)}const ni="{key}",ho={"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.client.principal":{dataType:"object",writable:!1,readable:!0},"kong.client.principal.{key}":{dataType:"any",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}},ml=Object.keys(ho).filter(e=>e.includes(ni)).map(e=>e.replace(ni,""));function lf(e){if(!e||!Ta(e))return;const n=ml.find(r=>e.startsWith(r));if(n)return e.slice(n.length).replace(ni,"")}function va(e){if(!e)return null;const n=ml.find(r=>e.startsWith(r));return n||e}function Ta(e){return e?ml.some(n=>e.startsWith(n)):!1}function $_(e){return e?Ta(e)?va(e)+ni:e:null}function cf(e){if(!e)return!1;const n=$_(e);return n?ho[n]?.readable??!1:!1}function df(e){if(!e)return!1;const n=$_(e);return n?ho[n]?.writable??!1:!1}const kn={KM_2262_CODE_MODE:"KM-2262-code-mode",KM_2306_CONDITION_FIELD_314:"KM-2306-condition-field-314",KM_2446_DATAKIT_JWT_NODES:"KM-2446-Datakit-JWT-nodes",KM_2503_CUSTOM_PLUGIN_FREEFORM:"KM-2503-custom-plugin-freeform",KM_2485_CLONED_PLUGINS:"KM-2485-cloned-plugins",KHCP_20393_IDENTITY_PRINCIPALS_UI:"khcp-20393-identity-principals-ui",KM_3444_GATEWAY_317:"KM-3444-gateway-317"},R_=Symbol("TOASTER_PROVIDER");function gl(){const e=(...r)=>{console.warn("TOASTER_PROVIDER is not provided",...r)},n=t.inject(R_,e);return r=>n(r)}const L_=["request","service_request","service_response","response","vault"],ri=L_,F_=["call","jq","exit","property","static","branch","cache","xml_to_json","json_to_xml","jwt_decode","jwt_sign","jwt_verify"],D_=["GET","HEAD","POST","PUT","PATCH","DELETE","OPTIONS","TRACE","CONNECT"],uf=["EdDSA","ES256","ES384","ES512","HS256","HS384","HS512","PS256","PS384","PS512","RS256","RS384","RS512"],ve=(e,n)=>{const r=e.__vccOpts||e;for(const[o,i]of n)r[o]=i;return r},aB={},sB={height:"16",viewBox:"0 -960 960 960",width:"16",xmlns:"http://www.w3.org/2000/svg"};function lB(e,n){return t.openBlock(),t.createElementBlock("svg",sB,[...n[0]||(n[0]=[t.createElementVNode("path",{d:"M240-160h480v-400H240v400Zm296.5-143.5Q560-327 560-360t-23.5-56.5Q513-440 480-440t-56.5 23.5Q400-393 400-360t23.5 56.5Q447-280 480-280t56.5-23.5ZM240-160v-400 400Zm0 80q-33 0-56.5-23.5T160-160v-400q0-33 23.5-56.5T240-640h280v-80q0-83 58.5-141.5T720-920q83 0 141.5 58.5T920-720h-80q0-50-35-85t-85-35q-50 0-85 35t-35 85v80h120q33 0 56.5 23.5T800-560v400q0 33-23.5 56.5T720-80H240Z",fill:"currentColor"},null,-1)])])}const cB=ve(aB,[["render",lB]]),dB={},uB={height:"16",viewBox:"0 -960 960 960",width:"16",xmlns:"http://www.w3.org/2000/svg"};function fB(e,n){return t.openBlock(),t.createElementBlock("svg",uB,[...n[0]||(n[0]=[t.createElementVNode("path",{d:"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q65 0 123 19t107 53l-58 59q-38-24-81-37.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160q133 0 226.5-93.5T800-480q0-18-2-36t-6-35l65-65q11 32 17 66t6 70q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-56-216L254-466l56-56 114 114 400-401 56 56-456 457Z",fill:"currentColor"},null,-1)])])}const pB=ve(dB,[["render",fB]]),Oa=[{id:"external_interaction",colors:{foreground:ES,background:gS},nodes:[{type:"call",icon:Ne.NetworkIcon},{type:"cache",icon:Ne.CachedIcon}]},{id:"control_flow",colors:{foreground:bS,background:dS},nodes:[{type:"branch",icon:Ne.ArrowSplitIcon},{type:"exit",icon:Ne.GatewayIcon}]},{id:"data_transformation",colors:{foreground:Xh,background:uS},nodes:[{type:"jq",icon:Ne.CodeblockIcon},{type:"xml_to_json",icon:Ne.DataObjectIcon},{type:"json_to_xml",icon:Ne.CodeIcon}]},{id:"data_value",colors:{foreground:Qh,background:CS},nodes:[{type:"property",icon:Ne.StackIcon},{type:"static",icon:Ne.DeployIcon}]},{id:"authentication",colors:{foreground:wS,background:kS},nodes:[{type:"jwt_sign",icon:Ne.EditSquareIcon},{type:"jwt_decode",icon:cB},{type:"jwt_verify",icon:pB}]}],mB=Oa.reduce((e,n)=>{for(const r of n.nodes)e[r.type]={icon:r.icon,colors:n.colors};return e},{}),oi={vault:{icon:Ne.KeyIcon},request:{icon:Ne.CloudIcon},service_request:{icon:Ne.CloudIcon},service_response:{icon:Ne.CloudIcon},response:{icon:Ne.CloudIcon}};function gB(e){return Oa.find(({id:n})=>n===e).colors}function ff(e){return mB[e]??oi[e]}const{t:pf}=It.createI18n("en-us",Bt);function ii(e){return pf(`plugins.free-form.datakit.flow_editor.node_types.${e}.description`)}function hB(e){return pf(`plugins.free-form.datakit.flow_editor.node_types.${e}.summary`)}function yB(e){return pf(`plugins.free-form.datakit.flow_editor.node_panel.groups.${e}`)}const _B={call:{io:{input:{fields:[{name:"headers"},{name:"body"},{name:"query"}]},output:{fields:[{name:"headers"},{name:"body"},{name:"status"},{name:"error"}]}}},jq:{io:{input:{fields:[],configurable:!0},output:{fields:[]}}},exit:{io:{input:{fields:[{name:"headers"},{name:"body"}]}}},property:{io:{input:{fields:[],configurable:!0},output:{fields:[]}}},static:{io:{output:{fields:[],configurable:!0}}},branch:{io:{input:{fields:[]},next:{branches:[{name:"then"},{name:"else"}]}}},cache:{io:{input:{fields:[{name:"data"},{name:"key"},{name:"ttl"}]},output:{fields:[{name:"data"},{name:"hit"},{name:"miss"},{name:"stored"}]}}},xml_to_json:{io:{input:{fields:[]},output:{fields:[]}}},json_to_xml:{io:{input:{fields:[],configurable:!0},output:{fields:[]}}},jwt_decode:{io:{input:{fields:[]},output:{fields:[{name:"header"},{name:"payload"},{name:"signature"}]}}},jwt_sign:{io:{input:{fields:[{name:"claims"},{name:"key"}]},output:{fields:[{name:"claims"},{name:"header"},{name:"token"}]}}},jwt_verify:{io:{input:{fields:[{name:"key"},{name:"token"}]},output:{fields:[{name:"claims"},{name:"header"}]}}}};function bB(e){return{id:e.id,title:yB(e.id),colors:gB(e.id),nodeTypes:e.nodes.map(({type:n})=>n)}}function wB(e,n){return{..._B[n.type],type:n.type,icon:n.icon,group:e.id,summary:hB(n.type),description:ii(n.type)}}const M_=Oa.reduce((e,n)=>(e[n.id]=bB(n),e),{}),hl=Oa.reduce((e,n)=>{for(const r of n.nodes)e[r.type]=wB(n,r);return e},{}),U_=Oa.map(e=>({...M_[e.id],nodes:e.nodes.map(({type:n})=>hl[n])}));function kB(e){return M_[e]}const yl={request:{type:"request",description:ii("request"),io:{output:{fields:[{name:"headers"},{name:"body"},{name:"query"}]}},...oi.request},service_request:{type:"service_request",description:ii("service_request"),io:{input:{fields:[{name:"headers"},{name:"body"},{name:"query"}]}},...oi.service_request},service_response:{type:"service_response",description:ii("service_response"),io:{output:{fields:[{name:"headers"},{name:"body"}]}},...oi.service_response},response:{type:"response",description:ii("response"),io:{input:{fields:[{name:"headers"},{name:"body"}]}},...oi.response},vault:{type:"vault",io:{output:{fields:[],configurable:!0}},...oi.vault,hidden:!0}},mf=Object.keys(yl),gf=e=>mf.includes(e),CB=e=>[...mf,...F_].includes(e),tn=e=>mf.includes(e),_l=e=>tn(e.type),hf=e=>!!e?.startsWith("node:"),Ba=e=>Object.prototype.hasOwnProperty.call(e,"ownerId");function br(e){return nf(e)}function yf(e,n){if(e.length!==n.length)return!1;if(e.length===0)return!0;const r=new Set(n);return e.every(o=>r.has(o))}function ai(e){return`${e}:${sf()}`}function bl(e){const[n,r]=e.split(".");return{nodeName:n,fieldName:r}}function j_(e){const[n,r]=e.split(".");return{nodeId:n,fieldId:r}}function si(e){return tn(e)?yl[e]:hl[e]}function K_(e,n={}){const r=si(e),o=r.io?.input?.fields.map(({name:a})=>a)??[];let i=r.io?.output?.fields.map(({name:a})=>a)??[];return e==="call"&&!n.enableCallErrorHandling&&(i=i.filter(a=>a!=="error")),{input:o,output:i}}function Pa(e){return si(e).io?.next?.branches?.map(({name:r})=>r)??[]}function _f(e){return(e??[]).map(n=>({id:ai("field"),name:n}))}function wr(e,n,r){if(r)return e.fields[n].find(o=>o.name===r)}function Kr(e,n,r){if(r)return e.fields[n].find(o=>o.id===r)}function bf(e,n){return n?e.fields.output.some(r=>r.id===n):!0}function q_(e,n){return n?e.fields.input.some(r=>r.id===n):!0}function EB(e){const n=["request","service_request","vault"].includes(e)?"request":"response",r=yl[e];return{name:e,phase:n,position:{x:0,y:0},fields:K_(r.type),expanded:{},hidden:r.hidden}}function G_(e,n){const o=(typeof e=="string"&&CB(e)?e.toUpperCase():e).replace(/_\d+$/,"");for(let i=1;;i++){const a=`${o}_${i}`;if(!n.has(a))return a}}function wf(e,n){return`${e}:${n}`}function NB(e){const n=e.lastIndexOf(":");if(n===-1)throw new Error(`Invalid group ID format: ${e}`);const r=e.slice(0,n),o=e.slice(n+1);return{nodeId:r,branch:o}}function wl(e,n){return`${e}:${n}`}function z_(e,n,r,o,i){return{id:wf(e,n),ownerId:e,branch:n,phase:r,memberIds:[...o],position:i?.position?{...i.position}:void 0,dimensions:i?.dimensions?{...i.dimensions}:void 0}}function SB(e,n,r,o,i){const a={...e.config,nodes:n};o!==void 0&&(a.resources=o);const s={...e.__ui_data,...r},l={...e,config:a,__ui_data:s};return i!=null?l.partials=[{id:i}]:l.partials&&(l.partials=null),l}function kl(e,n,r){const o=n?Kr(e,r,n):void 0;return`${e.name}${o?`.${o.name}`:""}`}function Va(e,n){const r=n(e.source),o=n(e.target);return[kl(r,e.sourceField,"output"),kl(o,e.targetField,"input")]}function kf(e,n,r,o,i){const a=i(e),s=i(r);return[kl(a,n,"output"),kl(s,o,"input")]}function H_(e){if(e.length===0)throw new Error("getBoundingRect requires at least one rect");let n=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const{x:a,y:s,width:l,height:c}of e){if(![a,s,l,c].every(Number.isFinite))throw new Error("Rect values must be finite numbers");if(l<0||c<0)throw new RangeError("Rect width and height must be non-negative");const d=a+l,u=s+c;if(!Number.isFinite(d)||!Number.isFinite(u))throw new RangeError("Rect boundaries must be finite numbers");a<n&&(n=a),s<r&&(r=s),d>o&&(o=d),u>i&&(i=u)}return{x:n,y:r,width:o-n,height:i-r}}var W_=Object.defineProperty,AB=(e,n,r)=>n in e?W_(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,xB=(e,n)=>{for(var r in n)W_(e,r,{get:n[r],enumerable:!0})},IB=(e,n,r)=>AB(e,n+"",r),Y_={};xB(Y_,{Graph:()=>Yn,alg:()=>Nf});var vB=Object.defineProperty,J_=(e,n)=>{for(var r in n)vB(e,r,{get:n[r],enumerable:!0})},Cf=class{constructor(n){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},n&&(this._isDirected="directed"in n?n.directed:!0,this._isMultigraph="multigraph"in n?n.multigraph:!1,this._isCompound="compound"in n?n.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}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 typeof n!="function"?this._defaultNodeLabelFn=()=>n:this._defaultNodeLabelFn=n,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(n=>Object.keys(this._in[n]).length===0)}sinks(){return this.nodes().filter(n=>Object.keys(this._out[n]).length===0)}setNodes(n,r){return n.forEach(o=>{r!==void 0?this.setNode(o,r):this.setNode(o)}),this}setNode(n,r){return n in this._nodes?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]="\0",this._children[n]={},this._children["\0"][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 n in this._nodes}removeNode(n){if(n in this._nodes){let r=o=>this.removeEdge(this._edgeObjs[o]);delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],this.children(n).forEach(o=>{this.setParent(o)}),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,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r===void 0)r="\0";else{r+="";for(let o=r;o!==void 0;o=this.parent(o))if(o===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}parent(n){if(this._isCompound){let r=this._parent[n];if(r!=="\0")return r}}children(n="\0"){if(this._isCompound){let r=this._children[n];if(r)return Object.keys(r)}else{if(n==="\0")return this.nodes();if(this.hasNode(n))return[]}return[]}predecessors(n){let r=this._preds[n];if(r)return Object.keys(r)}successors(n){let r=this._sucs[n];if(r)return Object.keys(r)}neighbors(n){let r=this.predecessors(n);if(r){let o=new Set(r),i=this.successors(n);if(i)for(let a of i)o.add(a);return Array.from(o.values())}}isLeaf(n){var r;let o;return this.isDirected()?o=this.successors(n):o=this.neighbors(n),((r=o?.length)!=null?r:0)===0}filterNodes(n){let r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph()),Object.entries(this._nodes).forEach(([a,s])=>{n(a)&&r.setNode(a,s)}),Object.values(this._edgeObjs).forEach(a=>{r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,this.edge(a))});let o={},i=a=>{let s=this.parent(a);return!s||r.hasNode(s)?(o[a]=s,s):s in o?o[s]:i(s)};return this._isCompound&&r.nodes().forEach(a=>r.setParent(a,i(a))),r}setDefaultEdgeLabel(n){return typeof n!="function"?this._defaultEdgeLabelFn=()=>n:this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(n,r){return n.reduce((o,i)=>(r!==void 0?this.setEdge(o,i,r):this.setEdge(o,i),i)),this}setEdge(n,r,o,i){let a,s,l,c,d=!1;typeof n=="object"&&n!==null&&"v"in n?(a=n.v,s=n.w,l=n.name,arguments.length===2&&(c=r,d=!0)):(a=n,s=r,l=i,arguments.length>2&&(c=o,d=!0)),a=""+a,s=""+s,l!==void 0&&(l=""+l);let u=$a(this._isDirected,a,s,l);if(u in this._edgeLabels)return d&&(this._edgeLabels[u]=c),this;if(l!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(s),this._edgeLabels[u]=d?c:this._defaultEdgeLabelFn(a,s,l);let f=TB(this._isDirected,a,s,l);return a=f.v,s=f.w,Object.freeze(f),this._edgeObjs[u]=f,X_(this._preds[s],a),X_(this._sucs[a],s),this._in[s][u]=f,this._out[a][u]=f,this._edgeCount++,this}edge(n,r,o){let i=arguments.length===1?Ef(this._isDirected,n):$a(this._isDirected,n,r,o);return this._edgeLabels[i]}edgeAsObj(n,r,o){let i=arguments.length===1?this.edge(n):this.edge(n,r,o);return typeof i!="object"||i===null?{label:i}:i}hasEdge(n,r,o){return(arguments.length===1?Ef(this._isDirected,n):$a(this._isDirected,n,r,o))in this._edgeLabels}removeEdge(n,r,o){let i=arguments.length===1?Ef(this._isDirected,n):$a(this._isDirected,n,r,o),a=this._edgeObjs[i];if(a){let s=a.v,l=a.w;delete this._edgeLabels[i],delete this._edgeObjs[i],Z_(this._preds[l],s),Z_(this._sucs[s],l),delete this._in[l][i],delete this._out[s][i],this._edgeCount--}return this}inEdges(n,r){return this.isDirected()?this.filterEdges(this._in[n],n,r):this.nodeEdges(n,r)}outEdges(n,r){return this.isDirected()?this.filterEdges(this._out[n],n,r):this.nodeEdges(n,r)}nodeEdges(n,r){if(n in this._nodes)return this.filterEdges({...this._in[n],...this._out[n]},n,r)}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}filterEdges(n,r,o){if(!n)return;let i=Object.values(n);return o?i.filter(a=>a.v===r&&a.w===o||a.v===o&&a.w===r):i}};function X_(e,n){e[n]?e[n]++:e[n]=1}function Z_(e,n){e[n]!==void 0&&!--e[n]&&delete e[n]}function $a(e,n,r,o){let i=""+n,a=""+r;if(!e&&i>a){let s=i;i=a,a=s}return i+""+a+""+(o===void 0?"\0":o)}function TB(e,n,r,o){let i=""+n,a=""+r;if(!e&&i>a){let l=i;i=a,a=l}let s={v:i,w:a};return o&&(s.name=o),s}function Ef(e,n){return $a(e,n.v,n.w,n.name)}var OB={};J_(OB,{read:()=>$B,write:()=>BB});function BB(e){let n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:PB(e),edges:VB(e)},r=e.graph();return r!==void 0&&(n.value=structuredClone(r)),n}function PB(e){return e.nodes().map(n=>{let r=e.node(n),o=e.parent(n),i={v:n};return r!==void 0&&(i.value=r),o!==void 0&&(i.parent=o),i})}function VB(e){return e.edges().map(n=>{let r=e.edge(n),o={v:n.v,w:n.w};return n.name!==void 0&&(o.name=n.name),r!==void 0&&(o.value=r),o})}function $B(e){let n=new Cf(e.options);return e.value!==void 0&&n.setGraph(e.value),e.nodes.forEach(r=>{n.setNode(r.v,r.value),r.parent&&n.setParent(r.v,r.parent)}),e.edges.forEach(r=>{n.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),n}var Nf={};J_(Nf,{CycleException:()=>El,bellmanFord:()=>Q_,components:()=>FB,dijkstra:()=>Cl,dijkstraAll:()=>UB,findCycles:()=>jB,floydWarshall:()=>qB,isAcyclic:()=>zB,postorder:()=>WB,preorder:()=>YB,prim:()=>JB,shortestPaths:()=>XB,tarjan:()=>tb,topsort:()=>nb});var RB=()=>1;function Q_(e,n,r,o){return LB(e,String(n),r||RB,o||function(i){var a;return(a=e.outEdges(i))!=null?a:[]})}function LB(e,n,r,o){let i={},a,s=0,l=e.nodes(),c=function(f){let p=i[f.v],m=i[f.w];if(!p||!m)return;let g=r(f);p.distance+g<m.distance&&(i[f.w]={distance:p.distance+g,predecessor:f.v},a=!0)},d=function(){l.forEach(function(f){o(f).forEach(function(p){let m=p.v===f?p.v:p.w,g=m===p.v?p.w:p.v;c({v:m,w:g})})})};l.forEach(function(f){let p=f===n?0:Number.POSITIVE_INFINITY;i[f]={distance:p,predecessor:""}});let u=l.length;for(let f=1;f<u&&(a=!1,s++,d(),!!a);f++);if(s===u-1&&(a=!1,d(),a))throw new Error("The graph contains a negative weight cycle");return i}function FB(e){let n={},r=[],o;function i(a){var s,l;a in n||(n[a]=!0,o.push(a),(s=e.successors(a))==null||s.forEach(i),(l=e.predecessors(a))==null||l.forEach(i))}return e.nodes().forEach(function(a){o=[],i(a),o.length&&r.push(o)}),r}var eb=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(n=>n.key)}has(n){return n in this._keyIndices}priority(n){let r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){let o=this._keyIndices,i=String(n);if(!(i in o)){let a=this._arr,s=a.length;return o[i]=s,a.push({key:i,priority:r}),this._decrease(s),!0}return!1}removeMin(){if(this.size()===0)throw new Error("Queue underflow");this._swap(0,this._arr.length-1);let n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){let o=this._keyIndices[n];if(o===void 0)throw new Error(`Key not found: ${n}`);let i=this._arr[o].priority;if(r>i)throw new Error(`New priority is greater than current priority. Key: ${n} Old: ${i} New: ${r}`);this._arr[o].priority=r,this._decrease(o)}_heapify(n){let r=this._arr,o=2*n,i=o+1,a=n;o<r.length&&(a=r[o].priority<r[a].priority?o:a,i<r.length&&(a=r[i].priority<r[a].priority?i:a),a!==n&&(this._swap(n,a),this._heapify(a)))}_decrease(n){let r=this._arr,o=r[n].priority,i;for(;n!==0&&(i=n>>1,!(r[i].priority<o));)this._swap(n,i),n=i}_swap(n,r){let o=this._arr,i=this._keyIndices,a=o[n],s=o[r];o[n]=s,o[r]=a,i[s.key]=n,i[a.key]=r}},DB=()=>1;function Cl(e,n,r,o){let i=function(a){var s;return(s=e.outEdges(a))!=null?s:[]};return MB(e,String(n),r||DB,o||i)}function MB(e,n,r,o){let i={},a=new eb,s,l,c=function(d){let u=d.v!==s?d.v:d.w,f=i[u];if(!f)return;let p=r(d),m=l.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+d+" Weight: "+p);m<f.distance&&(f.distance=m,f.predecessor=s,a.decrease(u,m))};for(e.nodes().forEach(function(d){let u=d===n?0:Number.POSITIVE_INFINITY;i[d]={distance:u,predecessor:""},a.add(d,u)});a.size()>0;){s=a.removeMin();let d=i[s];if(!d||d.distance===Number.POSITIVE_INFINITY)break;l=d,o(s).forEach(c)}return i}function UB(e,n,r){return e.nodes().reduce(function(o,i){return o[i]=Cl(e,i,n,r),o},{})}function tb(e){let n=0,r=[],o={},i=[];function a(s){var l;let c=o[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),(l=e.successors(s))==null||l.forEach(function(d){if(d in o){let u=o[d];u!=null&&u.onStack&&(c.lowlink=Math.min(c.lowlink,u.index))}else{a(d);let u=o[d];u&&(c.lowlink=Math.min(c.lowlink,u.lowlink))}}),c.lowlink===c.index){let d=[],u;do{u=r.pop();let f=o[u];f&&(f.onStack=!1),d.push(u)}while(s!==u);i.push(d)}}return e.nodes().forEach(function(s){s in o||a(s)}),i}function jB(e){return tb(e).filter(function(n){var r;let o=n[0];return o?n.length>1||n.length===1&&((r=e.outEdges(o,o))!=null?r:[]).length>0:!1})}var KB=()=>1;function qB(e,n,r){return GB(e,n||KB,r||function(o){var i;return(i=e.outEdges(o))!=null?i:[]})}function GB(e,n,r){let o={},i=e.nodes();return i.forEach(function(a){let s={};o[a]=s,s[a]={distance:0,predecessor:""},i.forEach(function(l){a!==l&&(s[l]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),r(a).forEach(function(l){let c=l.v===a?l.w:l.v,d=n(l);s[c]={distance:d,predecessor:a}})}),i.forEach(function(a){let s=o[a];s&&i.forEach(function(l){let c=o[l];c&&i.forEach(function(d){let u=c[a],f=s[d],p=c[d];if(u&&f&&p){let m=u.distance+f.distance;m<p.distance&&(p.distance=m,p.predecessor=f.predecessor)}})})}),o}var El=class extends Error{constructor(n){super(n),this.name="CycleException"}};function nb(e){let n={},r={},o=[];function i(a){var s;if(a in r)throw new El;a in n||(r[a]=!0,n[a]=!0,(s=e.predecessors(a))==null||s.forEach(i),delete r[a],o.push(a))}if(e.sinks().forEach(i),Object.keys(n).length!==e.nodeCount())throw new El;return o}function zB(e){try{nb(e)}catch(n){if(n instanceof El)return!1;throw n}return!0}function HB(e,n,r,o,i){Array.isArray(n)||(n=[n]);let a=(l=>{var c;return(c=e.isDirected()?e.successors(l):e.neighbors(l))!=null?c:[]}),s={};return n.forEach(function(l){if(!e.hasNode(l))throw new Error("Graph does not have node: "+l);i=rb(e,l,r==="post",s,a,o,i)}),i}function rb(e,n,r,o,i,a,s){return n in o||(o[n]=!0,r||(s=a(s,n)),i(n).forEach(function(l){s=rb(e,l,r,o,i,a,s)}),r&&(s=a(s,n))),s}function ob(e,n,r){return HB(e,n,r,function(o,i){return o.push(i),o},[])}function WB(e,n){return ob(e,n,"post")}function YB(e,n){return ob(e,n,"pre")}function JB(e,n){var r;let o=new Cf,i={},a=new eb,s;function l(u){let f=u.v===s?u.w:u.v,p=a.priority(f);if(p!==void 0){let m=n(u);m<p&&(i[f]=s,a.decrease(f,m))}}if(e.nodeCount()===0)return o;e.nodes().forEach(function(u){a.add(u,Number.POSITIVE_INFINITY),o.setNode(u)});let c=e.nodes()[0];c!==void 0&&a.decrease(c,0);let d=!1;for(;a.size()>0;){if(s=a.removeMin(),s in i)o.setEdge(s,i[s]);else{if(d)throw new Error("Input graph is not connected: "+e);d=!0}(r=e.nodeEdges(s))==null||r.forEach(l)}return o}function XB(e,n,r,o){return ZB(e,n,r,o??(i=>{var a;return(a=e.outEdges(i))!=null?a:[]}))}function ZB(e,n,r,o){if(r===void 0)return Cl(e,n,r,o);let i=!1,a=e.nodes();for(let s=0;s<a.length;s++){let l=a[s];if(l===void 0)continue;let c=o(l);for(let d=0;d<c.length;d++){let u=c[d];if(!u)continue;let f=u.v===l?u.v:u.w,p=f===u.v?u.w:u.v;r({v:f,w:p})<0&&(i=!0)}if(i)return Q_(e,n,r,o)}return Cl(e,n,r,o)}var Yn=Cf;function li(e,n,r,o){let i=o;for(;e.hasNode(i);)i=Sf(o);return r.dummy=n,e.setNode(i,r),i}function QB(e){let n=new Yn().setGraph(e.graph());return e.nodes().forEach(r=>n.setNode(r,e.node(r))),e.edges().forEach(r=>{let o=n.edge(r.v,r.w)||{weight:0,minlen:1},i=e.edge(r);n.setEdge(r.v,r.w,{weight:o.weight+i.weight,minlen:Math.max(o.minlen,i.minlen)})}),n}function ib(e){let n=new Yn({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(r=>{e.children(r).length||n.setNode(r,e.node(r))}),e.edges().forEach(r=>{n.setEdge(r,e.edge(r))}),n}function ab(e,n){let r=e.x,o=e.y,i=n.x-r,a=n.y-o,s=e.width/2,l=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)*s>Math.abs(i)*l?(a<0&&(l=-l),c=l*i/a,d=l):(i<0&&(s=-s),c=s,d=s*a/i),{x:r+c,y:o+d}}function Nl(e){let n=Ra(cb(e)+1).map(()=>[]);return e.nodes().forEach(r=>{let o=e.node(r),i=o.rank;i!==void 0&&(n[i]||(n[i]=[]),n[i][o.order]=r)}),n}function eP(e){let n=e.nodes().map(o=>{let i=e.node(o).rank;return i===void 0?Number.MAX_VALUE:i}),r=Jn(Math.min,n);e.nodes().forEach(o=>{let i=e.node(o);Object.hasOwn(i,"rank")&&(i.rank-=r)})}function tP(e){let n=e.nodes().map(s=>e.node(s).rank).filter(s=>s!==void 0),r=Jn(Math.min,n),o=[];e.nodes().forEach(s=>{let l=e.node(s).rank-r;o[l]||(o[l]=[]),o[l].push(s)});let i=0,a=e.graph().nodeRankFactor;Array.from(o).forEach((s,l)=>{s===void 0&&l%a!==0?--i:s!==void 0&&i&&s.forEach(c=>e.node(c).rank+=i)})}function sb(e,n,r,o){let i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=o),li(e,"border",i,n)}function nP(e,n=lb){let r=[];for(let o=0;o<e.length;o+=n){let i=e.slice(o,o+n);r.push(i)}return r}var lb=65535;function Jn(e,n){if(n.length>lb){let r=nP(n);return e(...r.map(o=>e(...o)))}else return e(...n)}function cb(e){let n=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MIN_VALUE:o});return Jn(Math.max,n)}function rP(e,n){let r={lhs:[],rhs:[]};return e.forEach(o=>{n(o)?r.lhs.push(o):r.rhs.push(o)}),r}function oP(e,n){return n()}var iP=0;function Sf(e){let n=++iP;return e+(""+n)}function Ra(e,n,r=1){n==null&&(n=e,e=0);let o=a=>a<n;r<0&&(o=a=>n<a);let i=[];for(let a=e;o(a);a+=r)i.push(a);return i}function Sl(e,n){let r={};for(let o of n)e[o]!==void 0&&(r[o]=e[o]);return r}function Al(e,n){let r;return typeof n=="string"?r=o=>o[n]:r=n,Object.entries(e).reduce((o,[i,a])=>(o[i]=r(a,i),o),{})}function aP(e,n){return e.reduce((r,o,i)=>(r[o]=n[i],r),{})}var xl="\0";function db(e,n,r){var o,i,a,s,l,c;if(!(e&&n&&r&&n.dummy==="edge"&&r.dummy==="edge"&&n.edgeObj&&r.edgeObj&&e[n.edgeObj.v]&&e[r.edgeObj.v]&&e[n.edgeObj.w]&&e[r.edgeObj.w]))return 0;let d=!0;n.edgeObj.w===r.edgeObj.w&&(d=!1);let u=d?(i=(o=e[n.edgeObj.v])==null?void 0:o.rank)!=null?i:NaN+1:(s=(a=e[n.edgeObj.w])==null?void 0:a.rank)!=null?s:NaN-1,f=Object.entries(e).find(_=>{var h,y;return((h=_[1].edgeObj)==null?void 0:h.v)===n.edgeObj.v&&((y=_[1].edgeObj)==null?void 0:y.w)===n.edgeObj.w&&_[1].rank===u}),p=Object.entries(e).find(_=>{var h,y;return((h=_[1].edgeObj)==null?void 0:h.v)===r.edgeObj.v&&((y=_[1].edgeObj)==null?void 0:y.w)===r.edgeObj.w&&_[1].rank===u});if(!f||!p)return 0;let m=(l=f[1].order)!=null?l:NaN,g=(c=p[1].order)!=null?c:NaN;return isNaN(m-g)?0:m-g}var sP=class{constructor(){IB(this,"_sentinel");let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let n=this._sentinel,r=n._prev;if(r!==n)return ub(r),r}enqueue(n){let r=this._sentinel;n._prev&&n._next&&ub(n),n._next=r._next,r._next._prev=n,r._next=n,n._prev=r}toString(){let n=[],r=this._sentinel,o=r._prev;for(;o!==r;)n.push(JSON.stringify(o,lP)),o=o._prev;return"["+n.join(", ")+"]"}};function ub(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function lP(e,n){if(e!=="_next"&&e!=="_prev")return n}var cP=sP,dP=()=>1;function uP(e,n){if(e.nodeCount()<=1)return[];let r=pP(e,n||dP);return fP(r.graph,r.buckets,r.zeroIdx).flatMap(o=>e.outEdges(o.v,o.w)||[])}function fP(e,n,r){var o;let i=[],a=n[n.length-1],s=n[0],l;for(;e.nodeCount();){for(;l=s.dequeue();)Af(e,n,r,l);for(;l=a.dequeue();)Af(e,n,r,l);if(e.nodeCount()){for(let c=n.length-2;c>0;--c)if(l=(o=n[c])==null?void 0:o.dequeue(),l){i=i.concat(Af(e,n,r,l,!0)||[]);break}}}return i}function Af(e,n,r,o,i){let a=[],s=i?a:void 0;return(e.inEdges(o.v)||[]).forEach(l=>{let c=e.edge(l),d=e.node(l.v);i&&a.push({v:l.v,w:l.w}),d.out-=c,xf(n,r,d)}),(e.outEdges(o.v)||[]).forEach(l=>{let c=e.edge(l),d=l.w,u=e.node(d);u.in-=c,xf(n,r,u)}),e.removeNode(o.v),s}function pP(e,n){let r=new Yn,o=0,i=0;e.nodes().forEach(l=>{r.setNode(l,{v:l,in:0,out:0})}),e.edges().forEach(l=>{let c=r.edge(l.v,l.w)||0,d=n(l),u=c+d;r.setEdge(l.v,l.w,u);let f=r.node(l.v),p=r.node(l.w);i=Math.max(i,f.out+=d),o=Math.max(o,p.in+=d)});let a=mP(i+o+3).map(()=>new cP),s=o+1;return r.nodes().forEach(l=>{xf(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function xf(e,n,r){var o,i,a;r.out?r.in?(a=e[r.out-r.in+n])==null||a.enqueue(r):(i=e[e.length-1])==null||i.enqueue(r):(o=e[0])==null||o.enqueue(r)}function mP(e){let n=[];for(let r=0;r<e;r++)n.push(r);return n}function gP(e,n){(e.graph().acyclicer==="greedy"?uP(e,r(e)):hP(e,n??null)).forEach(o=>{let i=e.edge(o);e.removeEdge(o),i.forwardName=o.name,i.reversed=!0,e.setEdge(o.w,o.v,i,Sf("rev"))});function r(o){return i=>o.edge(i).weight}}function hP(e,n){let r=[],o={},i={};function a(c){Object.hasOwn(i,c)||(i[c]=!0,o[c]=!0,e.outEdges(c).forEach(d=>{Object.hasOwn(o,d.w)?r.push(d):a(d.w)}),delete o[c])}function s(c){var d;Object.hasOwn(i,c)||(i[c]=!0,o[c]=!0,(d=e.outEdges(c))==null||d.forEach(u=>{var f,p;Object.hasOwn(o,u.w)||((f=n.node(c))==null?void 0:f.rank)>((p=n.node(u.w))==null?void 0:p.rank)&&_P(e,u.w,u)?r.push(u):s(u.w)}),delete o[c])}let l=a;return n&&typeof n.node=="function"&&(l=s),e.sources().forEach(l),e.nodes().forEach(l),r}function yP(e){e.edges().forEach(n=>{let r=e.edge(n);if(r.reversed){e.removeEdge(n);let o=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(n.w,n.v,r,o)}})}function _P(e,n,r){let o=new Set;function i(a){var s;if(e.sources().includes(a))return!0;o.add(a);for(let l of(s=e.inEdges(a))!=null?s:[])if(!(l.v===r.v&&l.w===r.w)&&!o.has(l.v)&&i(l.v))return!0;return!1}return i(n)}function bP(e){e.graph().dummyChains=[],e.edges().forEach(n=>wP(e,n))}function wP(e,n){let r=n.v,o=e.node(r).rank,i=n.w,a=e.node(i).rank,s=n.name,l=e.edge(n),c=l.labelRank;if(a===o+1)return;e.removeEdge(n);let d,u,f;for(f=0,++o;o<a;++f,++o)l.points=[],u={width:0,height:0,edgeLabel:l,edgeObj:n,rank:o},d=li(e,"edge",u,"_d"),o===c&&(u.width=l.width,u.height=l.height,u.dummy="edge-label",u.labelpos=l.labelpos),e.setEdge(r,d,{weight:l.weight},s),f===0&&e.graph().dummyChains.push(d),r=d;e.setEdge(r,i,{weight:l.weight},s)}function kP(e){e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeLabel,i;for(e.setEdge(r.edgeObj,o);r.dummy;)i=e.successors(n)[0],e.removeNode(n),o.points.push({x:r.x,y:r.y}),r.dummy==="edge-label"&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),n=i,r=e.node(n)})}function If(e){let n={};function r(o){let i=e.node(o);if(Object.hasOwn(n,o))return i.rank;n[o]=!0;let a=e.outEdges(o),s=a?a.map(c=>c==null?Number.POSITIVE_INFINITY:r(c.w)-e.edge(c).minlen):[],l=Jn(Math.min,s);return l===Number.POSITIVE_INFINITY&&(l=0),i.rank=l}e.sources().forEach(r)}function ci(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}var fb=CP;function CP(e){let n=new Yn({directed:!1}),r=e.nodes();if(r.length===0)throw new Error("Graph must have at least one node");let o=r[0],i=e.nodeCount();n.setNode(o,{});let a,s;for(;EP(n,e)<i&&(a=NP(n,e),!!a);)s=n.hasNode(a.v)?ci(e,a):-ci(e,a),SP(n,e,s);return n}function EP(e,n){function r(o){let i=n.nodeEdges(o);i&&i.forEach(a=>{let s=a.v,l=o===s?a.w:s;!e.hasNode(l)&&!ci(n,a)&&(e.setNode(l,{}),e.setEdge(o,l,{}),r(l))})}return e.nodes().forEach(r),e.nodeCount()}function NP(e,n){return n.edges().reduce((r,o)=>{let i=Number.POSITIVE_INFINITY;return e.hasNode(o.v)!==e.hasNode(o.w)&&(i=ci(n,o)),i<r[0]?[i,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function SP(e,n,r){e.nodes().forEach(o=>n.node(o).rank+=r)}var{preorder:AP,postorder:xP}=Nf,IP=yo;yo.initLowLimValues=Tf,yo.initCutValues=vf,yo.calcCutValue=pb,yo.leaveEdge=gb,yo.enterEdge=hb,yo.exchangeEdges=yb;function yo(e){e=QB(e),If(e);let n=fb(e);Tf(n),vf(n,e);let r,o;for(;r=gb(n);)o=hb(n,e,r),yb(n,e,r,o)}function vf(e,n){let r=xP(e,e.nodes());r=r.slice(0,r.length-1),r.forEach(o=>vP(e,n,o))}function vP(e,n,r){let o=e.node(r).parent,i=e.edge(r,o);i.cutvalue=pb(e,n,r)}function pb(e,n,r){let o=e.node(r).parent,i=!0,a=n.edge(r,o),s=0;a||(i=!1,a=n.edge(o,r)),s=a.weight;let l=n.nodeEdges(r);return l&&l.forEach(c=>{let d=c.v===r,u=d?c.w:c.v;if(u!==o){let f=d===i,p=n.edge(c).weight;if(s+=f?p:-p,OP(e,r,u)){let m=e.edge(r,u).cutvalue;s+=f?-m:m}}}),s}function Tf(e,n){arguments.length<2&&(n=e.nodes()[0]),mb(e,{},1,n)}function mb(e,n,r,o,i){let a=r,s=e.node(o);n[o]=!0;let l=e.neighbors(o);return l&&l.forEach(c=>{Object.hasOwn(n,c)||(r=mb(e,n,r,c,o))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function gb(e){return e.edges().find(n=>e.edge(n).cutvalue<0)}function hb(e,n,r){let o=r.v,i=r.w;n.hasEdge(o,i)||(o=r.w,i=r.v);let a=e.node(o),s=e.node(i),l=a,c=!1;return a.lim>s.lim&&(l=s,c=!0),n.edges().filter(d=>c===_b(e,e.node(d.v),l)&&c!==_b(e,e.node(d.w),l)).reduce((d,u)=>ci(n,u)<ci(n,d)?u:d)}function yb(e,n,r,o){let i=r.v,a=r.w;e.removeEdge(i,a),e.setEdge(o.v,o.w,{}),Tf(e),vf(e,n),TP(e,n)}function TP(e,n){let r=e.nodes().find(i=>!e.node(i).parent);if(!r)return;let o=AP(e,[r]);o=o.slice(1),o.forEach(i=>{let a=e.node(i).parent,s=n.edge(i,a),l=!1;s||(s=n.edge(a,i),l=!0),n.node(i).rank=n.node(a).rank+(l?s.minlen:-s.minlen)})}function OP(e,n,r){return e.hasEdge(n,r)}function _b(e,n,r){return r.low<=n.lim&&n.lim<=r.lim}var BP=PP;function PP(e){let n=e.graph().ranker;if(typeof n=="function")return n(e);switch(n){case"network-simplex":bb(e);break;case"tight-tree":$P(e);break;case"longest-path":VP(e);break;case"none":break;default:bb(e)}}var VP=If;function $P(e){If(e),fb(e)}function bb(e){IP(e)}var RP=LP;function LP(e){let n=DP(e),r=e.graph();Array.isArray(r.dummyChains)&&r.dummyChains.forEach(o=>{let i=e.node(o),a=i.edgeObj,s=FP(e,n,a.v,a.w),l=s.path,c=s.lca,d=0,u=l[d],f=!0;for(;o!==a.w;){if(i=e.node(o),f){for(;(u=l[d])!==c&&e.node(u).maxRank<i.rank;)d++;u===c&&(f=!1)}if(!f){for(;d<l.length-1&&e.node(l[d+1]).minRank<=i.rank;)d++;u=l[d]}u!==void 0&&e.setParent(o,u),o=e.successors(o)[0]}})}function FP(e,n,r,o){let i=[],a=[],s=Math.min(n[r].low,n[o].low),l=Math.max(n[r].lim,n[o].lim),c;c=r;do c=e.parent(c),i.push(c);while(c&&(n[c].low>s||l>n[c].lim));let d=c,u=o;for(;(u=e.parent(u))!==d;)a.push(u);return{path:i.concat(a.reverse()),lca:d}}function DP(e){let n={},r=0;function o(i){let a=r;e.children(i).forEach(o),n[i]={low:a,lim:r++}}return e.children(xl).forEach(o),n}function MP(e){let n=li(e,"root",{},"_root"),r=UP(e),o=Object.values(r),i=Jn(Math.max,o)-1,a=2*i+1;e.graph().nestingRoot=n,e.edges().forEach(l=>e.edge(l).minlen*=a);let s=jP(e)+1;e.children(xl).forEach(l=>{wb(e,n,a,s,i,r,l)}),e.graph().nodeRankFactor=a}function wb(e,n,r,o,i,a,s){var l;let c=e.children(s);if(!c.length){s!==n&&e.setEdge(n,s,{weight:0,minlen:r});return}let d=sb(e,"_bt"),u=sb(e,"_bb"),f=e.node(s);e.setParent(d,s),f.borderTop=d,e.setParent(u,s),f.borderBottom=u,c.forEach(p=>{var m;wb(e,n,r,o,i,a,p);let g=e.node(p),_=g.borderTop?g.borderTop:p,h=g.borderBottom?g.borderBottom:p,y=g.borderTop?o:2*o,w=_!==h?1:i-((m=a[s])!=null?m:0)+1;e.setEdge(d,_,{weight:y,minlen:w,nestingEdge:!0}),e.setEdge(h,u,{weight:y,minlen:w,nestingEdge:!0})}),e.parent(s)||e.setEdge(n,d,{weight:0,minlen:i+((l=a[s])!=null?l:0)})}function UP(e){let n={};function r(o,i){let a=e.children(o);a&&a.length&&a.forEach(s=>r(s,i+1)),n[o]=i}return e.children(xl).forEach(o=>r(o,1)),n}function jP(e){return e.edges().reduce((n,r)=>n+e.edge(r).weight,0)}function KP(e){let n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,e.edges().forEach(r=>{e.edge(r).nestingEdge&&e.removeEdge(r)})}var qP=GP;function GP(e){function n(r){let o=e.children(r),i=e.node(r);if(o.length&&o.forEach(n),i&&Object.hasOwn(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(let a=i.minRank,s=i.maxRank+1;a<s;++a)kb(e,"borderLeft","_bl",r,i,a),kb(e,"borderRight","_br",r,i,a)}}e.children(xl).forEach(n)}function kb(e,n,r,o,i,a){let s={width:0,height:0,rank:a,borderType:n},l=i[n][a-1],c=li(e,"border",s,r);i[n][a]=c,e.setParent(c,o),l&&e.setEdge(l,c,{weight:1})}function zP(e){var n;let r=(n=e.graph().rankdir)==null?void 0:n.toLowerCase();(r==="lr"||r==="rl")&&Cb(e)}function HP(e){var n;let r=(n=e.graph().rankdir)==null?void 0:n.toLowerCase();(r==="bt"||r==="rl")&&WP(e),(r==="lr"||r==="rl")&&(YP(e),Cb(e))}function Cb(e){e.nodes().forEach(n=>Eb(e.node(n))),e.edges().forEach(n=>Eb(e.edge(n)))}function Eb(e){let n=e.width;e.width=e.height,e.height=n}function WP(e){e.nodes().forEach(n=>Of(e.node(n))),e.edges().forEach(n=>{var r;let o=e.edge(n);(r=o.points)==null||r.forEach(Of),Object.hasOwn(o,"y")&&Of(o)})}function Of(e){e.y=-e.y}function YP(e){e.nodes().forEach(n=>Bf(e.node(n))),e.edges().forEach(n=>{var r;let o=e.edge(n);(r=o.points)==null||r.forEach(Bf),Object.hasOwn(o,"x")&&Bf(o)})}function Bf(e){let n=e.x;e.x=e.y,e.y=n}function JP(e,n=null){let r={},o=e.nodes().filter(d=>!e.children(d).length),i=o.map(d=>e.node(d).rank),a=Jn(Math.max,i),s=Ra(a+1).map(()=>[]);function l(d){if(r[d])return;r[d]=!0;let u=e.node(d);s[u.rank].push(d);let f=e.successors(d);f&&[...f].sort((p,m)=>c(p,m)).forEach(l)}o.sort((d,u)=>e.node(d).rank-e.node(u).rank).forEach(l);function c(d,u){let f=e.node(d),p=e.node(u);return db(n,f,p)}return s}function XP(e,n){let r=0;for(let o=1;o<n.length;++o)r+=ZP(e,n[o-1],n[o]);return r}function ZP(e,n,r){let o=aP(r,r.map((d,u)=>u)),i=n.flatMap(d=>{let u=e.outEdges(d);return u?u.map(f=>({pos:o[f.w],weight:e.edge(f).weight})).sort((f,p)=>f.pos-p.pos):[]}),a=1;for(;a<r.length;)a<<=1;let s=2*a-1;a-=1;let l=new Array(s).fill(0),c=0;return i.forEach(d=>{let u=d.pos+a;l[u]+=d.weight;let f=0;for(;u>0;)u%2&&(f+=l[u+1]),u=u-1>>1,l[u]+=d.weight;c+=d.weight*f}),c}function QP(e,n=[]){return n.map(r=>{let o=e.inEdges(r);if(!o||!o.length)return{v:r};{let i=o.reduce((a,s)=>{let l=e.edge(s),c=e.node(s.v);return{sum:a.sum+l.weight*c.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}})}function eV(e,n){let r={};e.forEach((i,a)=>{let s={indegree:0,in:[],out:[],vs:[i.v],i:a};i.barycenter!==void 0&&(s.barycenter=i.barycenter,s.weight=i.weight),r[i.v]=s}),n.edges().forEach(i=>{let a=r[i.v],s=r[i.w];a!==void 0&&s!==void 0&&(s.indegree++,a.out.push(s))});let o=Object.values(r).filter(i=>!i.indegree);return tV(o)}function tV(e){let n=[];function r(i){return a=>{a.merged||(a.barycenter===void 0||i.barycenter===void 0||a.barycenter>=i.barycenter)&&nV(i,a)}}function o(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(r(i)),i.out.forEach(o(i))}return n.filter(i=>!i.merged).map(i=>Sl(i,["vs","i","barycenter","weight"]))}function nV(e,n){let r=0,o=0;e.weight&&(r+=e.barycenter*e.weight,o+=e.weight),n.weight&&(r+=n.barycenter*n.weight,o+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/o,e.weight=o,e.i=Math.min(n.i,e.i),n.merged=!0}function rV(e,n,r,o,i){let a={},s=null,l=null,c=i;typeof n=="boolean"?(c=n,a={}):n&&(a=n,s=r??null,l=o??null);let d=rP(e,y=>Object.hasOwn(y,"barycenter")),u=d.lhs,f=d.rhs.sort((y,w)=>w.i-y.i),p=[],m=0,g=0,_=0;u.sort(oV(l,s,!!c));for(let[y,w]of Object.entries(a)){let b=u.findIndex(E=>E.vs[0]===y);u.splice(b+1,0,w)}_=Nb(p,f,_),u.forEach(y=>{_+=y.vs.length,p.push(y.vs),m+=y.barycenter*y.weight,g+=y.weight,_=Nb(p,f,_)});let h={vs:p.flat(1)};return g&&(h.barycenter=m/g,h.weight=g),h}function Nb(e,n,r){let o;for(;n.length&&(o=n[n.length-1]).i<=r;)n.pop(),e.push(o.vs),r++;return r}function oV(e,n,r){return(o,i)=>{if(o.barycenter<i.barycenter)return-1;if(o.barycenter>i.barycenter)return 1;if(e&&(typeof o.vs[0]=="string"||typeof i.vs[0]=="string")){let a=e.node(o.vs[0]),s=e.node(i.vs[0]),l=db(n,a,s);if(l!==0)return l}return r?i.i-o.i:o.i-i.i}}function Sb(e,n,r,o,i){var a,s,l,c,d,u,f,p,m,g,_;let h=null,y=i;typeof o=="boolean"?(y=o,h=null):o!==void 0&&(h=o);let w=e.children(n),b=e.node(n),E=b?b.borderLeft:void 0,k=b?b.borderRight:void 0,N={};E&&(w=w.filter(I=>I!==E&&I!==k));let T=QP(e,w);T.forEach(I=>{if(e.children(I.v).length){let{result:V}=Sb(e,I.v,r,h,y);N[I.v]=V,Object.hasOwn(V,"barycenter")&&aV(I,V)}});let x=eV(T,r);iV(x,N);let B={},O=!1;for(let I=0;I<x.length;I++)for(let V=I+1;V<x.length;V++)if(!(!x[I]||!x[V]||!((a=x[I])!=null&&a.barycenter)||!((s=x[V])!=null&&s.barycenter))&&((l=x[I])==null?void 0:l.barycenter)===x[V].barycenter){let L=(d=(c=x[I])==null?void 0:c.vs[0])!=null?d:"",R=(f=(u=x[V])==null?void 0:u.vs[0])!=null?f:"",Z=e.node(L),ee=e.node(R);if(Z.dummy==="edge"&&ee.dummy==="edge"&&((p=Z.edgeObj)==null?void 0:p.v)===((m=ee.edgeObj)==null?void 0:m.v)&&((g=Z.edgeObj)==null?void 0:g.w)===((_=ee.edgeObj)==null?void 0:_.w))if(Z.edgeLabel.reversed){B[R]=x[I],x.splice(I,1),I--;break}else B[L]=x[V],x.splice(V,1),V--;else O=!0}let A=rV(x,B,h,e,y);if(E&&k){A.vs=[E,A.vs,k].flat(1);let I=e.predecessors(E);if(I&&I.length){let V=e.node(I[0]),L=e.predecessors(k),R=e.node(L[0]);Object.hasOwn(A,"barycenter")||(A.barycenter=0,A.weight=0),A.barycenter=(A.barycenter*A.weight+V.order+R.order)/(A.weight+2),A.weight+=2}}return Object.defineProperty(A,"result",{value:A,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(A,"usedBias",{value:O,enumerable:!1,configurable:!0,writable:!0}),A}function iV(e,n){e.forEach(r=>{r.vs=r.vs.flatMap(o=>n[o]?n[o].vs:o)})}function aV(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)}function sV(e,n,r,o){o||(o=e.nodes());let i=lV(e),a=new Yn({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(s=>e.node(s));return o.forEach(s=>{let l=e.node(s),c=e.parent(s);if(l.rank===n||l.minRank<=n&&n<=l.maxRank){a.setNode(s),a.setParent(s,c||i);let d=e[r](s);d&&d.forEach(u=>{let f=u.v===s?u.w:u.v,p=a.edge(f,s),m=p!==void 0?p.weight:0;a.setEdge(f,s,{weight:e.edge(u).weight+m})}),Object.hasOwn(l,"minRank")&&a.setNode(s,{borderLeft:l.borderLeft[n],borderRight:l.borderRight[n]})}}),a}function lV(e){let n;for(;e.hasNode(n=Sf("_root")););return n}function cV(e,n,r){let o={},i;r.forEach(a=>{let s=e.parent(a),l,c;for(;s;){if(l=e.parent(s),l?(c=o[l],o[l]=s):(c=i,i=s),c&&c!==s){n.setEdge(c,s);return}s=l}})}function Ab(e,n={},r=null){if(typeof n.customOrder=="function"){n.customOrder(e,Ab);return}let o=cb(e),i=xb(e,Ra(1,o+1),"inEdges"),a=xb(e,Ra(o-1,-1,-1),"outEdges"),s=JP(e,r);if(Ib(e,s),n.disableOptimalOrderHeuristic)return;let l=Number.POSITIVE_INFINITY,c,d=n.constraints||[];for(let u=0,f=0;f<4;++u,++f){dV(u%2?i:a,u%4>=2,d,r),s=Nl(e);let p=XP(e,s);p<l?(f=0,c=Object.assign({},s),l=p):p===l&&(c=structuredClone(s))}Ib(e,c)}function xb(e,n,r){let o=new Map,i=(a,s)=>{o.has(a)||o.set(a,[]),o.get(a).push(s)};for(let a of e.nodes()){let s=e.node(a);if(typeof s.rank=="number"&&i(s.rank,a),typeof s.minRank=="number"&&typeof s.maxRank=="number")for(let l=s.minRank;l<=s.maxRank;l++)l!==s.rank&&i(l,a)}return n.map(function(a){return sV(e,a,r,o.get(a)||[])})}function dV(e,n,r,o){let i=!0,a=new Yn;e.forEach(function(s){r.forEach(u=>a.setEdge(u.left,u.right));let l=s.graph().root,{result:c,usedBias:d}=Sb(s,l,a,o,i);n&&d&&(i=!i),c.vs.forEach((u,f)=>s.node(u).order=f),cV(s,a,c.vs)})}function Ib(e,n){Object.values(n).forEach(r=>r.forEach((o,i)=>e.node(o).order=i))}function uV(e,n){let r={};function o(i,a){let s=0,l=0,c=i.length,d=a[a.length-1];return a.forEach((u,f)=>{let p=pV(e,u),m=p?e.node(p).order:c;(p||u===d)&&(a.slice(l,f+1).forEach(g=>{let _=e.predecessors(g);_&&_.forEach(h=>{let y=e.node(h),w=y.order;(w<s||m<w)&&!(y.dummy&&e.node(g).dummy)&&vb(r,h,g)})}),l=f+1,s=m)}),a}return n.length&&n.reduce(o),r}function fV(e,n){let r={};function o(a,s,l,c,d){Ra(s,l).forEach(u=>{let f=a[u];if(f!==void 0&&e.node(f).dummy){let p=e.predecessors(f);p&&p.forEach(m=>{if(m===void 0)return;let g=e.node(m);g.dummy&&(g.order<c||g.order>d)&&vb(r,m,f)})}})}function i(a,s){let l=-1,c=-1,d=0;return s.forEach((u,f)=>{if(e.node(u).dummy==="border"){let p=e.predecessors(u);if(p&&p.length){let m=p[0];if(m===void 0)return;c=e.node(m).order,o(s,d,f,l,c),d=f,l=c}}o(s,d,s.length,c,a.length)}),s}return n.length&&n.reduce(i),r}function pV(e,n){if(e.node(n).dummy){let r=e.predecessors(n);if(r)return r.find(o=>e.node(o).dummy)}}function vb(e,n,r){if(n>r){let i=n;n=r,r=i}let o=e[n];o||(e[n]=o={}),o[r]=!0}function mV(e,n,r){if(n>r){let i=n;n=r,r=i}let o=e[n];return o!==void 0&&Object.hasOwn(o,r)}function gV(e,n,r,o,i){let a={},s={},l={};return n.forEach(c=>{c.forEach((d,u)=>{a[d]=d,s[d]=d,l[d]=u})}),n.forEach(c=>{let d=-1,u=-1,f=!1,p=c,m=c.findIndex(g=>i?.includes(g)||Tb(g,e,i));m>0&&(p=[c[m],...c.slice(0,m),...c.slice(m+1)],f=!0),p.forEach(g=>{var _;let h=o(g);if(h&&h.length){i!=null&&i.includes(g)&&(h=h.filter(b=>Tb(b,e,i)));let y=h.sort((b,E)=>{let k=l[b],N=l[E];return(k!==void 0?k:0)-(N!==void 0?N:0)}),w=(y.length-1)/2;for(let b=Math.floor(w),E=Math.ceil(w);b<=E;++b){let k=y[b];if(k===void 0)continue;let N=l[k];if(N!==void 0&&s[g]===g&&d<N&&l[k]!==u&&!mV(r,g,k)){let T=a[k];T!==void 0&&(s[k]=g,s[g]=a[g]=T,d=N,f&&(d=-1,u=(_=l[k])!=null?_:-1,f=!1))}}}})}),{root:a,align:s}}function hV(e,n,r,o,i=!1){let a={},s=yV(e,n,r,i),l=i?"borderLeft":"borderRight";function c(m,g){let _=s.nodes().slice(),h={},y=_.pop();for(;y;){if(h[y])m(y);else{h[y]=!0,_.push(y);for(let w of g(y))_.push(w)}y=_.pop()}}function d(m){let g=s.inEdges(m);g?a[m]=g.reduce((_,h)=>{var y;let w=(y=a[h.v])!=null?y:0,b=s.edge(h);return Math.max(_,w+(b!==void 0?b:0))},0):a[m]=0}function u(m){let g=s.outEdges(m),_=Number.POSITIVE_INFINITY;g&&(_=g.reduce((y,w)=>{let b=a[w.w],E=s.edge(w);return Math.min(y,(b!==void 0?b:0)-(E!==void 0?E:0))},Number.POSITIVE_INFINITY));let h=e.node(m);_!==Number.POSITIVE_INFINITY&&h.borderType!==l&&(a[m]=Math.max(a[m]!==void 0?a[m]:0,_))}function f(m){return s.predecessors(m)||[]}function p(m){return s.successors(m)||[]}return c(d,f),c(u,p),Object.keys(o).forEach(m=>{var g;let _=r[m];_!==void 0&&(a[m]=(g=a[_])!=null?g:0)}),a}function yV(e,n,r,o){let i=new Yn,a=e.graph(),s=CV(a.nodesep,a.edgesep,o);return n.forEach(l=>{let c;l.forEach(d=>{let u=r[d];if(u!==void 0){if(i.setNode(u),c!==void 0){let f=r[c];if(f!==void 0){let p=i.edge(f,u);i.setEdge(f,u,Math.max(s(e,d,c),p||0))}}c=d}})}),i}function _V(e,n){return Object.values(n).reduce((r,o)=>{let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;Object.entries(o).forEach(([l,c])=>{let d=EV(e,l)/2;i=Math.max(c+d,i),a=Math.min(c-d,a)});let s=i-a;return s<r[0]&&(r=[s,o]),r},[Number.POSITIVE_INFINITY,null])[1]}function bV(e,n){let r=Object.values(n),o=Jn(Math.min,r),i=Jn(Math.max,r);["u","d"].forEach(a=>{["l","r"].forEach(s=>{let l=a+s,c=e[l];if(!c||c===n)return;let d=Object.values(c),u=o-Jn(Math.min,d);s!=="l"&&(u=i-Jn(Math.max,d)),u&&(e[l]=Al(c,f=>f+u))})})}function wV(e,n=void 0){let r=e.ul;return r?Al(r,(o,i)=>{var a,s;if(n){let c=n.toLowerCase(),d=e[c];if(d&&d[i]!==void 0)return d[i]}let l=Object.values(e).map(c=>{let d=c[i];return d!==void 0?d:0}).sort((c,d)=>c-d);return(((a=l[1])!=null?a:0)+((s=l[2])!=null?s:0))/2}):{}}function kV(e,n){let r=Nl(e),o=Object.assign(uV(e,r),fV(e,r)),i={},a;["u","d"].forEach(l=>{a=l==="u"?r:Object.values(r).reverse(),["l","r"].forEach(c=>{c==="r"&&(a=a.map(f=>Object.values(f).reverse()));let d=gV(e,a,o,f=>(l==="u"?e.predecessors(f):e.successors(f))||[],n),u=hV(e,a,d.root,d.align,c==="r");c==="r"&&(u=Al(u,f=>-f)),i[l+c]=u})});let s=_V(e,i);return bV(i,s),wV(i,e.graph().align)}function CV(e,n,r){return(o,i,a)=>{let s=o.node(i),l=o.node(a),c=0,d;if(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}if(d&&(c+=r?d:-d),d=void 0,c+=(s.dummy?n:e)/2,c+=(l.dummy?n:e)/2,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}return d&&(c+=r?d:-d),c}}function EV(e,n){return e.node(n).width}function Tb(e,n,r){var o;if(!r)return!1;let i=(o=n.node(e))==null?void 0:o.edgeObj;if(!i||n.node(e).edgeLabel.reversed)return!1;let a=r.indexOf(i?.v),s=r.indexOf(i?.w);return a!==-1&&s!==-1&&a===(s+1)%r.length||a===(s-1)%r.length}function NV(e,n){e=ib(e),SV(e),Object.entries(kV(e,n)).forEach(([r,o])=>e.node(r).x=o)}function SV(e){let n=Nl(e),r=e.graph(),o=r.ranksep,i=r.rankalign,a=0;n.forEach(s=>{let l=s.reduce((c,d)=>{var u;let f=(u=e.node(d).height)!=null?u:0;return c>f?c:f},0);s.forEach(c=>{let d=e.node(c);i==="top"?d.y=a+d.height/2:i==="bottom"?d.y=a+l-d.height/2:d.y=a+l/2}),a+=l+o})}var Ob=new WeakMap;function AV(e,n={}){return Pb(e,oP,n),e}function Bb(e,n,r){let o=n;for(;o!==void 0;){let i=e.parent(o);if(i===r)return o;o=i}}function Pb(e,n,r){var o;let i=e.nodes().filter(w=>e.children(w).length),a={};i.forEach(w=>{let b=e.node(w);if(b&&b.rankdir){let E=new Yn({multigraph:!0,compound:!0});E.setGraph({rankdir:b.rankdir});let k=e.children(w);k.forEach(L=>{let R={...e.node(L)};E.setNode(L,R);let Z=e.parent(L);Z&&Z!==w&&k.includes(Z)&&E.setParent(L,Z)});let N=new Set;e.edges().forEach(L=>{let R=Bb(e,L.v,w),Z=Bb(e,L.w,w);if(R&&Z&&R!==Z){let ee=`${R}\0${Z}`;N.has(ee)||(N.add(ee),E.setEdge(R,Z,{...e.edge(L)}))}}),Pb(E,n,r);let T=Lb(E);Vb(T,n,r,null),$b(E,T);let x=1/0,B=1/0,O=-1/0,A=-1/0;E.nodes().forEach(L=>{if(L===w)return;let R=E.node(L);R&&typeof R.x=="number"&&typeof R.y=="number"&&typeof R.width=="number"&&typeof R.height=="number"&&(x=Math.min(x,R.x-R.width/2),O=Math.max(O,R.x+R.width/2),B=Math.min(B,R.y-R.height/2),A=Math.max(A,R.y+R.height/2))}),(!isFinite(x)||!isFinite(B)||!isFinite(O)||!isFinite(A))&&(x=B=0,O=A=0);let I=O-x,V=A-B;a[w]={minX:x,minY:B,maxX:O,maxY:A,width:I,height:V,offsetX:x,offsetY:B},b._dagreClusterSubgraph=E}});let s=[],l=w=>{let b=[],E=(e.children(w)||[]).filter(k=>k!==w);for(;E.length>0;){let k=E.shift();b.push(k),(e.children(k)||[]).filter(N=>N!==k).forEach(N=>E.push(N))}return b},c=new Map;i.forEach(w=>{let b=e.node(w);b&&b.rankdir&&a[w]&&c.set(w,(e.children(w)||[]).filter(E=>E!==w))});let d=new Set([...c.values()].flat()),u=new Map;c.forEach((w,b)=>{d.has(b)||u.set(b,l(b))});let f=new Set([...u.values()].flat()),p=w=>{for(let[b,E]of u)if(E.includes(w))return b;return w},m=[];e.edges().forEach(w=>{(f.has(w.v)||f.has(w.w))&&m.push({edge:w,label:e.edge(w)})});let g=new Map;f.forEach(w=>{let b=e.parent(w);g.set(w,typeof b=="string"?b:void 0)}),u.forEach((w,b)=>{let E=e.node(b),k=[];w.forEach(x=>{let B=e.node(x);B&&(k.push({id:x,node:B,parent:g.get(x)}),e.removeNode(x))});let N=m.filter(({edge:x})=>w.includes(x.v)||w.includes(x.w)),T=a[b];E&&(s.push({clusterId:b,subgraph:E._dagreClusterSubgraph,bounds:T,children:w,removedNodes:k,removedEdges:N}),E.width=T.width,E.height=T.height)});let _=new Set;m.forEach(({edge:w,label:b})=>{let E=p(w.v),k=p(w.w);if(E!==k&&e.hasNode(E)&&e.hasNode(k)){let N=`${E}\0${k}`;_.has(N)||(_.add(N),e.setEdge(E,k,{...b,width:0,height:0}))}});let h=Lb(e),y=Vb(h,n,r,(o=Ob.get(e))!=null?o:null);Ob.set(e,y),$b(e,h),_.forEach(w=>{let b=w.indexOf("\0"),E=w.slice(0,b),k=w.slice(b+1);e.hasEdge(E,k)&&e.removeEdge(E,k)}),s.forEach(({clusterId:w,subgraph:b,bounds:E,removedNodes:k,removedEdges:N})=>{var T,x;let B=e.node(w),O=(T=B?.x)!=null?T:0,A=(x=B?.y)!=null?x:0,I=(E.minX+E.maxX)/2,V=(E.minY+E.maxY)/2;k.forEach(({id:L,node:R,parent:Z})=>{e.setNode(L,R),Z!==void 0&&e.setParent(L,Z)}),N.forEach(({edge:L,label:R})=>{e.setEdge(L,R)}),b.nodes().forEach(L=>{if(L===w)return;let R=b.node(L),Z=e.node(L);Z&&R&&typeof R.x=="number"&&typeof R.y=="number"&&(Z.x=O+(R.x-I),Z.y=A+(R.y-V))}),delete B._dagreClusterSubgraph}),i.forEach(w=>{var b,E;let k=e.node(w),N=a[w];if(k&&k.rankdir&&k._dagreClusterSubgraph&&N){let T=k._dagreClusterSubgraph,x=(b=k.x)!=null?b:0,B=(E=k.y)!=null?E:0,O=(N.minX+N.maxX)/2,A=(N.minY+N.maxY)/2;T.nodes().forEach(I=>{if(I===w)return;let V=T.node(I),L=e.node(I);if(L&&V&&typeof V.x=="number"&&typeof V.y=="number"){let R=V.x-O,Z=V.y-A;L.x=x+R,L.y=B+Z}}),delete k._dagreClusterSubgraph}})}function Vb(e,n,r,o=null){var i,a;let s=r?.useDynamic!==!1,l=s&&(i=o?.graph)!=null?i:null,c=s&&(a=o?.rawNodes)!=null?a:null;n(" makeSpaceForEdgeLabels",()=>VV(e)),n(" removeSelfEdges",()=>KV(e)),n(" acyclic",()=>gP(e,l)),n(" nestingGraph.run",()=>MP(e)),n(" rank",()=>BP(ib(e))),n(" injectEdgeLabelProxies",()=>$V(e)),n(" removeEmptyRanks",()=>tP(e)),n(" nestingGraph.cleanup",()=>KP(e)),n(" normalizeRanks",()=>eP(e)),n(" assignRankMinMax",()=>RV(e)),n(" removeEdgeLabelProxies",()=>LV(e)),n(" normalize.run",()=>bP(e)),n(" parentDummyChains",()=>RP(e)),n(" addBorderSegments",()=>qP(e)),n(" order",()=>Ab(e,r,c)),n(" insertSelfEdges",()=>qV(e)),n(" adjustCoordinateSystem",()=>zP(e)),n(" position",()=>NV(e,r.corePath)),n(" positionSelfEdges",()=>GV(e));let d=JSON.parse(JSON.stringify(e._nodes));return n(" removeBorderNodes",()=>jV(e)),n(" normalize.undo",()=>kP(e)),n(" fixupEdgeLabelCoords",()=>MV(e)),n(" undoCoordinateSystem",()=>HP(e)),n(" translateGraph",()=>FV(e)),n(" assignNodeIntersects",()=>DV(e)),n(" reversePoints",()=>UV(e)),n(" acyclic.undo",()=>yP(e)),{graph:e,rawNodes:d}}function $b(e,n){e.nodes().forEach(r=>{let o=e.node(r),i=n.node(r);o&&(o.x=i.x,o.y=i.y,o.order=i.order,o.rank=i.rank,n.children(r).length&&(o.width=i.width,o.height=i.height))}),e.edges().forEach(r=>{let o=e.edge(r),i=n.edge(r);o.points=i.points,Object.hasOwn(i,"x")&&(o.x=i.x,o.y=i.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var xV=["nodesep","edgesep","ranksep","marginx","marginy"],IV={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},vV=["acyclicer","ranker","rankdir","align","rankalign"],TV=["width","height","rank"],Rb={width:0,height:0},OV=["minlen","weight","width","height","labeloffset"],BV={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},PV=["labelpos"];function Lb(e){let n=new Yn({multigraph:!0,compound:!0}),r=Vf(e.graph());return n.setGraph(Object.assign({},IV,Pf(r,xV),Sl(r,vV))),e.nodes().forEach(o=>{let i=Vf(e.node(o)),a=Pf(i,TV);Object.keys(Rb).forEach(l=>{a[l]===void 0&&(a[l]=Rb[l])}),n.setNode(o,a);let s=e.parent(o);s!==void 0&&n.setParent(o,s)}),e.edges().forEach(o=>{let i=Vf(e.edge(o));n.setEdge(o,Object.assign({},BV,Pf(i,OV),Sl(i,PV)))}),n}function VV(e){let n=e.graph();n.ranksep/=2,e.edges().forEach(r=>{var o;let i=e.edge(r);i.minlen*=2,((o=i.labelpos)!=null?o:"r").toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?i.width+=i.labeloffset:i.height+=i.labeloffset)})}function $V(e){e.edges().forEach(n=>{let r=e.edge(n);if(r.width&&r.height){let o=e.node(n.v),i={rank:(e.node(n.w).rank-o.rank)/2+o.rank,e:n};li(e,"edge-proxy",i,"_ep")}})}function RV(e){let n=0;e.nodes().forEach(r=>{let o=e.node(r);o.borderTop&&(o.minRank=e.node(o.borderTop).rank,o.maxRank=e.node(o.borderBottom).rank,n=Math.max(n,o.maxRank))}),e.graph().maxRank=n}function LV(e){e.nodes().forEach(n=>{let r=e.node(n);if(r.dummy==="edge-proxy"){let o=r;e.edge(o.e).labelRank=r.rank,e.removeNode(n)}})}function FV(e){let n=Number.POSITIVE_INFINITY,r=0,o=Number.POSITIVE_INFINITY,i=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function c(d){let u=d.x,f=d.y,p=d.width,m=d.height;n=Math.min(n,u-p/2),r=Math.max(r,u+p/2),o=Math.min(o,f-m/2),i=Math.max(i,f+m/2)}e.nodes().forEach(d=>c(e.node(d))),e.edges().forEach(d=>{let u=e.edge(d);Object.hasOwn(u,"x")&&c(u)}),n-=s,o-=l,e.nodes().forEach(d=>{let u=e.node(d);u.x-=n,u.y-=o}),e.edges().forEach(d=>{let u=e.edge(d);u.points.forEach(f=>{f.x-=n,f.y-=o}),Object.hasOwn(u,"x")&&(u.x-=n),Object.hasOwn(u,"y")&&(u.y-=o)}),a.width=r-n+s,a.height=i-o+l}function DV(e){e.edges().forEach(n=>{if(n.v===n.w)return;let r=e.edge(n),o=e.node(n.v),i=e.node(n.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=o),r.points.unshift(ab(o,a)),r.points.push(ab(i,s))})}function MV(e){e.edges().forEach(n=>{let r=e.edge(n);if(Object.hasOwn(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function UV(e){e.edges().forEach(n=>{let r=e.edge(n);r.reversed&&r.points.reverse()})}function jV(e){e.nodes().forEach(n=>{if(e.children(n).length){let r=e.node(n),o=e.node(r.borderTop),i=e.node(r.borderBottom),a=e.node(r.borderLeft[r.borderLeft.length-1]),s=e.node(r.borderRight[r.borderRight.length-1]);r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-o.y),r.x=a.x+r.width/2,r.y=o.y+r.height/2}}),e.nodes().forEach(n=>{e.node(n).dummy==="border"&&e.removeNode(n)})}function KV(e){e.edges().forEach(n=>{if(n.v===n.w){let r=e.node(n.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function qV(e){Nl(e).forEach(n=>{let r=0;n.forEach((o,i)=>{let a=e.node(o);typeof a.rank!="number"&&(a.rank=0),a.order=i+r,(a.selfEdges||[]).forEach(s=>{li(e,"selfedge",{width:s.label.width,height:s.label.height,rank:a.rank,order:i+ ++r,e:s.e,edgeLabel:s.label},"_se"),(!Array.isArray(s.label.points)||s.label.points.length!==7)&&(s.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete a.selfEdges})})}function GV(e){e.nodes().forEach(n=>{let r=e.node(n),o=i=>typeof i=="number"&&isFinite(i);if(r.dummy==="selfedge"){let i=r,a=e.node(i.e.v),s=o(a?.x)?a.x:0,l=o(a?.y)?a.y:0,c=o(a?.width)?a.width:0,d=o(a?.height)?a.height:0,u=o(r.x)?r.x:s,f=o(r.y)?r.y:l,p=c/2,m=d/2;i.edgeLabel.points=[{x:u+p,y:f-m},{x:u+p,y:f-m},{x:u,y:f},{x:u-p,y:f+m},{x:u-p,y:f+m},{x:u,y:f},{x:u,y:f}],i.edgeLabel.x=u,i.edgeLabel.y=f,e.setEdge(i.e,i.edgeLabel),e.removeNode(n)}else r&&Array.isArray(r.selfEdges)&&r.selfEdges.forEach(i=>{if(!Array.isArray(i.label.points)||i.label.points.length!==7){let a=o(r.x)?r.x:0,s=o(r.y)?r.y:0,l=o(r.width)?r.width:0,c=o(r.height)?r.height:0,d=l/2,u=c/2;i.label.points=[{x:a+d,y:s-u},{x:a+d,y:s-u},{x:a,y:s},{x:a-d,y:s+u},{x:a-d,y:s+u},{x:a,y:s},{x:a,y:s}]}})})}function Pf(e,n){return Al(Sl(e,n),Number)}function Vf(e){let n={};return e&&Object.entries(e).forEach(([r,o])=>{typeof r=="string"&&(r=r.toLowerCase()),n[r]=o}),n}function zV(e){return e.map(({source:n,target:r})=>({source:n,target:r}))}function HV(e){const n=[];for(const r of e)for(const o of r.memberIds)n.push({source:r.ownerId,target:o});return n}function Fb(e,n){return[...zV(e),...HV(n)]}function Il(e,n){const r=new Map;for(const{source:o,target:i}of e)r.has(o)||r.set(o,[]),r.get(o).push(i),r.has(i)||r.set(i,[]);return n&&(r.has(n.source)||r.set(n.source,[]),r.get(n.source).push(n.target),r.has(n.target)||r.set(n.target,[])),r}function $f(e){const n=new Set,r=new Set;function o(i){if(r.has(i))return!0;if(n.has(i))return!1;n.add(i),r.add(i);for(const a of e.get(i)??[])if(o(a))return!0;return r.delete(i),!1}for(const i of e.keys())if(o(i))return!0;return!1}function Rf(e,n){const r=e.config;if(!r)return[];const o=r[n];return Array.isArray(o)?o.filter(i=>typeof i=="string"&&hf(i)):[]}function WV({state:e,groupMapById:n,getNodeById:r,history:o}){const i=t.computed(()=>{const A=new Map;for(const I of e.value.groups)for(const V of I.memberIds)A.set(V,{ownerId:I.ownerId,branch:I.branch});return A}),a=t.computed(()=>{const A=new Map;for(const I of e.value.groups)for(const V of I.memberIds)A.set(V,I);return A}),s=t.computed(()=>{const A=new Map;for(const I of e.value.groups)A.has(I.ownerId)||A.set(I.ownerId,[]),A.get(I.ownerId).push(I);return A}),l=t.computed(()=>Fb(e.value.edges,e.value.groups)),c=t.computed(()=>Il(l.value));function d(A,I){return A?Pa(A.type).includes(I):!1}function u(A,I){if(I===A.id)return!1;const V=r(I);return!(!V||tn(V.type)||V.phase!==A.phase)}function f(A,I){const V=[],L=new Set;for(const R of I)L.has(R)||(L.add(R),u(A,R)&&V.push(R));return V}function p(A,I,V){const L=r(A);return d(L,I)?f(L,V):[]}function m(A,I,V){const L=wf(A.id,I),R=n.value.get(L);V.length>0?R?(R.phase!==A.phase&&(R.phase=A.phase),yf(R.memberIds,V)||(R.position=void 0,R.dimensions=void 0,R.memberIds=[...V])):e.value.groups.push(z_(A.id,I,A.phase,V)):R&&(e.value.groups=e.value.groups.filter(Z=>Z.id!==L))}function g(A,I,V,L={}){const R=r(A);if(!d(R,I))return!1;const Z=f(R,V),ee=Rf(R,I);if(yf(ee,Z))return!1;const j=R.config??={};return Z.length>0?j[I]=[...Z]:(delete j[I],Object.keys(j).length===0&&delete R.config),m(R,I,Z),(L.commit??!0)&&o.commit(L.tag),!0}function _(A,I={}){const V=e.value.groups.filter(L=>L.ownerId!==A);return V.length===e.value.groups.length?!1:(e.value.groups=V,(I.commit??!0)&&o.commit(I.tag),!0)}function h(A,I){const V=n.value.get(wf(A,I));if(V)return[...V.memberIds];const L=r(A);return L?Rf(L,I):[]}function y(A){return i.value.get(A)}function w(A){const I=[];let V=a.value.get(A);for(;V;)I.push(V.id),V=a.value.get(V.ownerId);return I}function b(A,I){const V=w(I);if(V.length===0)return!1;const L=new Set(w(A));return L.size===0?!0:V.some(R=>!L.has(R))}function E(A,I){if(A===I)return!0;const V=new Set,L=[I];for(;L.length>0;){const R=L.pop();if(V.has(R))continue;if(V.add(R),R===A)return!0;const Z=c.value.get(R);if(Z)for(const ee of Z)V.has(ee)||L.push(ee)}return!1}function k(A,I,V){const L=r(A);return!(!d(L,I)||!u(L,V)||E(A,V))}function N(A,I,V,L={}){const R=r(A);if(!R||!k(A,I,V))return!1;const Z=Rf(R,I);if(Z.includes(V))return!1;T(V,{commit:!1});const ee=[...Z,V];return g(A,I,ee,{commit:!1})?((L.commit??!0)&&o.commit(L.tag),!0):!1}function T(A,I={}){const V=y(A);if(!V)return!1;const L=h(V.ownerId,V.branch),R=L.filter(Z=>Z!==A);return R.length===L.length?!1:g(V.ownerId,V.branch,R,I)}function x(A){let I=0;const V=new Set;let L=a.value.get(A);for(;L&&!V.has(L.id);)I+=1,V.add(L.id),L=a.value.get(L.ownerId);return I}function B(A){const I=n.value.get(A);return I?x(I.ownerId):0}function O(A){return A?n.value.has(A):!1}return{memberGroupMap:a,groupsByOwner:s,findMembership:y,getMembers:h,wouldCreateCycle:E,setMembers:g,prepareMembers:p,addMember:N,removeMember:T,clear:_,getNodeDepth:x,getGroupDepth:B,isGroupId:O,isEdgeEnteringGroup:b,canAddMember:k}}function YV(e,n){const{commit:r,undo:o,redo:i,canUndo:a,canRedo:s,clear:l,reset:c,undoStack:d,redoStack:u}=Et.useManualRefHistory(e,{capacity:n?.capacity,clone:n?.clone});let f;function p(b){n?.onHistoryChange?.(b,e.value)}function m(b){if(!b){f=void 0,r(),p("commit");return}if(b!=="*"&&f!==b){f=b,r(),p("commit");return}r(),d.value.shift(),p("commit")}function g(){o(),f=void 0,p("undo")}function _(){i(),f=void 0,p("redo")}function h(){l(),f=void 0,p("clear")}function y(){c(),f=void 0,p("reset")}function w(){o(),u.value.shift(),f=void 0,p("revert")}return{canUndo:a,canRedo:s,commit:m,undo:g,redo:_,clear:h,reset:y,revert:w}}function JV(e){return e.config?.resources?.vault||{}}function XV(e){const{resources:n}=e.config||{};return n?.vault?Object.keys(n.vault):[]}function ZV(e){const n=Object.entries(e);if(n.length===0)return;const r={};for(const[o,i]of n)r[o]=i;return r}function Db(e,n,r={}){const o=e.config?.nodes??[],i=e.__ui_data?.nodes??[],a=e.__ui_data?.groups??[],s=new Map(i.map(y=>[y.name,y])),l=new Map(a.map(y=>[y.name,y])),c=[],d=[],u=new Map,f=[],p=[],m=new Map,g=y=>{const w=new Set,b=[...y];for(;b.length>0;){const E=b.shift();if(!w.has(E)&&(w.add(E),gf(E)||(u.get(E).phase="request"),!!m.has(E)))for(const k of m.get(E))w.has(k)||b.push(k)}};let _=!1;for(const y of o){const w=s.get(y.name);!w&&!_&&(_=!0);const b=Ub({type:y.type,configNode:y,uiNode:w,pluginData:e,options:r});c.push(b),u.set(b.name,b)}for(const y of c){const w=Pa(y.type);if(!w.length)continue;const b=y.config;if(b)for(const E of w){const k=b[E];if(!Array.isArray(k)){l.has(wl(y.name,E))&&(_=!0);continue}const N=[];for(const T of k){if(typeof T!="string")continue;const x=u.get(T);x&&!tn(x.type)&&N.push(x.id)}if(N.length){b[E]=N;const T=wl(y.name,E),x=l.get(T),B=x?{position:br(x.position)}:void 0,O=z_(y.id,E,y.phase,N,B);f.push(O),!x&&!_&&(_=!0)}else delete b[E],l.has(wl(y.name,E))&&(_=!0)}}for(const y of ri)if(!u.has(y)){let w=s.get(y);w||(_||(_=!0),w=EB(y));const b=Ub({type:y,uiNode:w,pluginData:e});c.push(b),u.set(b.name,b)}for(const y of o)t$(y,p);for(const y of p){const w=u.get(y.source),b=u.get(y.target);if(!w||!b){w||console.warn(`[initEditorState] skip: source "${y.source}" not found`),b||console.warn(`[initEditorState] skip: target "${y.target}" not found`);continue}m.has(y.source)||m.set(y.source,new Set),m.get(y.source).add(y.target),m.has(y.target)||m.set(y.target,new Set),m.get(y.target).add(y.source),w.type==="call"&&y.sourceField==="error"&&!wr(w,"output",y.sourceField)&&w.fields.output.push(..._f([y.sourceField])),d.push({id:ai("edge"),source:w.id,sourceField:wr(w,"output",y.sourceField)?.id,target:b.id,targetField:wr(b,"input",y.targetField)?.id})}g(["request","service_request"]);let h=null;return e.config?.resources?.cache&&(h={...e.config.resources.cache},e.partials&&(h.partial_id=e.partials[0].id)),{nodes:c,edges:d,groups:f,pendingLayout:_?n?"keepHistory":"clearHistory":!1,pendingFitView:!0,...h?{cacheConfig:h}:{}}}function Mb(e,n={}){const{type:r,name:o,phase:i,position:a,fields:s,config:l}=e,c=K_(r,n),d=si(r);return{id:ai("node"),type:r,name:o??r,phase:i??"request",position:a??{x:0,y:0},expanded:{},fields:{input:_f(s?.input??c.input),output:_f(s?.output??c.output)},hidden:e.hidden||d.hidden,config:l?br(l):{}}}function QV(e){return tn(e)?e==="request"||e==="service_request"?"request":"response":"request"}function Ub({type:e,configNode:n,uiNode:r,pluginData:o,options:i}){return Mb({type:e,name:n?.name,phase:r?.phase??QV(e),position:r?.position,fields:n$({type:e,uiNode:r,configNode:n,pluginData:o}),hidden:r?.hidden,config:r$({type:e,configNode:n,pluginData:o})},i)}function e$(e){const{type:n,name:r,input:o,inputs:i,output:a,outputs:s,...l}=e;return br(l)}function t$(e,n){const r=e.name;if(e.input){const{nodeName:o,fieldName:i}=bl(e.input);o&&n.push({source:o,sourceField:i,target:r})}if(e.inputs)for(const[o,i]of Object.entries(e.inputs)){if(!i)continue;const{nodeName:a,fieldName:s}=bl(i);a&&n.push({source:a,sourceField:s,target:r,targetField:o})}if(e.output){const{nodeName:o,fieldName:i}=bl(e.output);o&&n.push({source:r,target:o,targetField:i})}if(e.outputs)for(const[o,i]of Object.entries(e.outputs)){if(!i)continue;const{nodeName:a,fieldName:s}=bl(i);a&&n.push({source:r,sourceField:o,target:a,targetField:s})}}function n$({type:e,uiNode:n,configNode:r,pluginData:o}){const a=si(e)?.io;if(!a)return;const s={};if(a.input?.configurable&&(n?s.input=n.fields?.input??[]:r?.inputs&&(s.input=Object.keys(r.inputs))),a.output?.configurable){if(n)s.output=n.fields?.output??[];else{const l=new Set;r?.outputs&&Object.keys(r.outputs).forEach(c=>l.add(c)),r?.type==="static"&&r.values&&Object.keys(r.values).forEach(c=>l.add(c)),l.size&&(s.output=Array.from(l))}e==="vault"&&(s.output=XV(o))}return Object.keys(s).length?s:void 0}function r$({type:e,configNode:n,pluginData:r}){return e==="vault"?JV(r):n?e$(n):void 0}function o$(e){const n=t.computed(()=>{const f=new Map;return e.value.nodes.forEach(p=>f.set(p.id,p)),f}),r=t.computed(()=>e.value.edges),o=t.computed(()=>e.value.groups),i=t.computed(()=>Fb(r.value,o.value));function a(f){return Il(i.value,f?{source:f.source,target:f.target}:void 0)}function s(f){const p=n.value.get(f.source),m=n.value.get(f.target);if(!p||!m)return f;const g=q_(p,f.sourceField)&&!bf(p,f.sourceField),_=bf(m,f.targetField);return g&&_?{source:f.target,sourceField:f.targetField,target:f.source,targetField:f.sourceField}:f}function l(f){const p=s(f),m=[],g=n.value.get(p.source),_=n.value.get(p.target);if(g||m.push("source node not found"),_||m.push("target node not found"),!g||!_)return{ok:!1,errors:m};bf(g,p.sourceField)||m.push("source handle is not an output field"),q_(_,p.targetField)||m.push("target handle is not an input field"),_.name==="request"&&m.push('cannot target "request"'),g.name==="response"&&m.push('cannot source from "response"');const h=r.value.some(b=>b.target===p.target&&!b.targetField),y=r.value.some(b=>b.target===p.target&&!!b.targetField);(h&&p.targetField||y&&!p.targetField)&&m.push("cannot mix whole-node and field-level inputs on same target"),p.targetField&&r.value.some(b=>b.target===p.target&&b.targetField===p.targetField)&&m.push("target field already connected"),!p.targetField&&r.value.some(b=>b.target===p.target&&!b.targetField)&&m.push("target input already taken"),p.source===p.target&&m.push("self-loop not allowed");const w=a({source:p.source,target:p.target});return $f(w)&&m.push("connection introduces a cycle"),m.length?{ok:!1,errors:m}:{ok:!0}}function c(){const f=[];for(const p of ri)[...n.value.values()].some(m=>m.name===p)||f.push(`missing implicit node "${p}"`);for(const p of r.value){const m=n.value.get(p.source);n.value.get(p.target).name==="request"&&f.push(`edge "${p.id}" targets "request"`),m.name==="response"&&f.push(`edge "${p.id}" sources from "response"`)}return $f(a())&&f.push("graph contains cycle"),f.length?{ok:!1,errors:f}:{ok:!0}}function d(f){return l(f).ok}function u(f){return!f.source||!f.target?!1:d({source:f.source,sourceField:f.sourceHandle,target:f.target,targetField:f.targetHandle})}return{canonicalizeConnection:s,validateConnection:l,validateGraph:c,isValidConnection:d,isValidVueFlowConnection:u,buildAdjacency:Il}}const[Lf,i$]=Et.createInjectionState(function(n,r={}){const o=t.ref(Db(n,!1,r)),i=t.ref(),a=t.ref(),s=t.ref(!1),l=t.ref(!1),c=YV(o,{capacity:200,clone:br,onHistoryChange:Q=>{Q!=="clear"&&r.onChange?.(ke(),ie(),Ce(),o.value.cacheConfig?.partial_id)}}),d=t.ref(!1),u=t.ref(new Set);function f(){o.value.pendingLayout=!1,c.commit("*")}function p(Q=!0){o.value.pendingFitView!==Q&&(o.value.pendingFitView=Q,c.commit("*"))}const m=t.computed(()=>{const Q={request:0,response:0};return o.value.nodes.forEach(z=>{tn(z.type)||Q[z.phase]++}),Q}),g=t.computed(()=>new Map(o.value.nodes.map(Q=>[Q.id,Q]))),_=t.computed(()=>new Map(o.value.nodes.map(Q=>[Q.name,Q]))),h=t.computed(()=>{const Q=new Map,z=new Map;for(const Y of o.value.edges)Q.set(Y.id,Y),z.has(Y.source)||z.set(Y.source,new Set),z.get(Y.source).add(Y.id),z.has(Y.target)||z.set(Y.target,new Set),z.get(Y.target).add(Y.id);return{edgeMapById:Q,edgeIdMapByNodeId:z}}),y=t.computed(()=>h.value.edgeMapById),w=t.computed(()=>h.value.edgeIdMapByNodeId),b=t.computed(()=>new Map(o.value.groups.map(Q=>[Q.id,Q]))),E=t.computed(()=>new Set(o.value.nodes.map(Q=>Q.name))),k=WV({state:o,groupMapById:b,getNodeById:A,history:c}),{canonicalizeConnection:N,validateConnection:T,validateGraph:x,isValidConnection:B,isValidVueFlowConnection:O}=o$(o);function A(Q){return g.value.get(Q)}function I(Q){return _.value.get(Q)}function V(Q){return y.value.get(Q)}function L(Q){if(!w.value.has(Q))return[];const z=[];return w.value.get(Q).forEach(Y=>{const me=V(Y);me&&z.push(me)}),z}function R(Q){return L(Q).filter((z=>z.target===Q))}function Z(Q){return L(Q).filter((z=>z.source===Q))}const ee=t.computed(()=>i.value?A(i.value):void 0);function j(Q){i.value=Q}function G(Q){a.value=Q}function $(Q){if(tn(Q.type))throw new Error("[createNode] implicit nodes are fixed.");return Mb({type:Q.type,name:Q.name||(tn(Q.type)?void 0:G_(Q.type,E.value)),phase:Q.phase,position:Q.position,fields:Q.fields,config:Q.config},r)}function pe(Q,z=!0){const Y=$(Q);if(Y)return o.value.nodes.push(Y),z&&c.commit(),d.value=!0,Y.id}function de(Q,z,Y=!0){const me=A(Q);if(!me||tn(me.type))return;const _e={...br(me),id:ai("node"),name:G_(me.name,E.value),position:z??{x:me.position.x+20,y:me.position.y+20}},Le=Pa(_e.type);if(Le.length&&_e.config){for(const De of Le)delete _e.config[De];Object.keys(_e.config).length===0&&delete _e.config}return o.value.nodes.push(_e),Y&&c.commit(),d.value=!0,_e.id}function M(Q,z=!0){if(!A(Q))return;o.value.edges=o.value.edges.filter(_e=>_e.source!==Q&&_e.target!==Q),k.clear(Q,{commit:!1}),k.removeMember(Q,{commit:!1}),o.value.nodes=o.value.nodes.filter(_e=>_e.id!==Q),i.value===Q&&(i.value=void 0);const me=x();me.ok||console.warn("[removeNode] topology invalid:",me.errors.join("; ")),z&&c.commit()}function ue(Q,z,Y=!0,me){const _e=A(Q);if(!_e)return;if(gf(_e.name)){console.warn("[renameNode] implicit node name is reserved.");return}_e.name!==z&&(_e.name=z,Y&&c.commit(me))}function ne(Q,z,Y=!0){const me=A(Q);me&&(me.position={...z},Y&&c.commit())}function ae(Q,z,Y=!0){const me=b.value.get(Q);if(!me)return;const _e=me.position;_e&&_e.x===z.x&&_e.y===z.y||(me.position={...z},Y&&c.commit())}function ze(Q,z,Y=!0){const me=b.value.get(Q);if(!me)return!1;const _e={...z.position},Le={...z.dimensions},De=me.position&&me.position.x===_e.x&&me.position.y===_e.y,it=me.dimensions&&me.dimensions.width===Le.width&&me.dimensions.height===Le.height;return De&&it?!1:(me.position=_e,me.dimensions=Le,Y&&c.commit(),!0)}function Ie(Q,z,Y,me=!0,_e){const Le=A(Q);if(!Le)return;const De=Y??!Le.expanded[z];De!==!!Le.expanded[z]&&(Le.expanded[z]=De,me&&c.commit(_e??`toggle:${Q}:${z}`))}function je(Q,z,Y=!0,me){const _e=A(Q);_e&&(_e.config=br(z),Y&&c.commit(me))}function le(Q,z,Y,me=!0){const _e=A(Q);if(!_e)return;const Le=_e.fields[z];if(Le.some(De=>De.name===Y)){console.warn(`[addField] field "${Y}" already exists on ${z}.`);return}Le.push({id:ai("field"),name:Y}),z==="input"?_e.fields.input=Le:_e.fields.output=Le,me&&c.commit()}function re(Q,z,Y,me=!0){const _e=A(Q);if(!_e)return;const Le=_e.fields.input,De=_e.fields.output,it=Le.find(q=>q.id===z)??De.find(q=>q.id===z);it&&(it.name=Y,me&&c.commit())}function D(Q,z,Y=!0,me=!0){const _e=A(Q);if(!_e)return;const Le=_e.fields.input,De=_e.fields.output,it=Le.findIndex(K=>K.id===z);it>=0&&Le.splice(it,1);const q=De.findIndex(K=>K.id===z);q>=0&&De.splice(q,1),_e.fields.input=Le,_e.fields.output=De,Y&&(o.value.edges=o.value.edges.filter(K=>K.sourceField!==z&&K.targetField!==z));const se=x();se.ok||console.warn("[removeField] topology invalid:",se.errors.join("; ")),me&&c.commit()}function te(Q,z=!0){const Y=N(Q),me=T(Y);if(!me.ok){console.warn("[connectEdge] invalid connection:",me.errors.join("; "));return}const _e={id:ai("edge"),...Y};o.value.edges.push(_e);const Le=x();if(!Le.ok){o.value.edges.pop(),console.warn("[connectEdge] topology invalid:",Le.errors.join("; "));return}return z&&c.commit(),_e.id}function fe(Q,z,Y=!0){Ee(Q,!1),te(z,!1),Y&&c.commit()}function Ee(Q,z=!0){const Y=o.value.edges.findIndex(Le=>Le.id===Q);if(Y<0)return;const me=o.value.edges[Y];o.value.edges.splice(Y,1);const _e=x();if(!_e.ok){o.value.edges.splice(Y,0,me),console.warn("[disconnectEdge] topology invalid:",_e.errors.join("; "));return}z&&c.commit()}function Re(Q,z=!0){const Y=R(Q);for(const me of Y)Ee(me.id,!1);z&&c.commit()}function Pe(Q,z=!0){const Y=Z(Q);for(const me of Y)Ee(me.id,!1);z&&c.commit()}function ke(){const Q=[];for(const z of o.value.nodes){if(tn(z.type))continue;let Y;const me={};let _e;const Le={};for(const K of o.value.edges.filter(U=>U.target===z.id)){const U=A(K.source);if(!U)continue;const J=Kr(U,"output",K.sourceField)?.name,Ge=J?`${U.name}.${J}`:U.name,qe=Kr(z,"input",K.targetField)?.name;qe?me[qe]=Ge:Y===void 0&&(Y=Ge)}for(const K of o.value.edges.filter(U=>U.source===z.id)){const U=A(K.target);if(!U)continue;const J=U.type;if(!tn(J)||!yl[J].io?.input)continue;const Ge=Kr(U,"input",K.targetField)?.name,qe=Ge?`${U.name}.${Ge}`:U.name,Ve=Kr(z,"output",K.sourceField)?.name;Ve?Le[Ve]=qe:_e===void 0&&(_e=qe)}const De={...br(z.config),name:z.name,type:z.type},it=Pa(z.type);if(it.length)for(const K of it){const U=De[K];if(!Array.isArray(U))continue;const J=[];for(const Ge of U){const qe=A(Ge);qe&&J.push(qe.name)}J.length?De[K]=Array.from(new Set(J)):delete De[K]}Object.keys(me).length>0?De.inputs=me:Y!==void 0&&(De.input=Y),Object.keys(Le).length>0?De.outputs=Le:_e!==void 0&&(De.output=_e),Q.push(De)}return Q}function Ae(){return o.value.nodes.map(Q=>br({name:Q.name,phase:Q.phase,position:{...Q.position},expanded:{...Q.expanded},fields:{input:Q.fields.input.map(z=>z.name),output:Q.fields.output.map(z=>z.name)}}))}function Ce(){const Q={},z=I("vault");if(z){const Y=ZV(z.config);Y&&Object.keys(Y).length>0&&(Q.vault=Y)}if(o.value.cacheConfig){const{strategy:Y,redis:me,memory:_e}=o.value.cacheConfig;Q.cache={strategy:Y,redis:me,memory:_e}}if(Object.keys(Q).length!==0)return Q}function oe(){const Q=[];for(const z of o.value.groups){const Y=A(z.ownerId);if(!Y)continue;const me=z.position;me&&Q.push({name:wl(Y.name,z.branch),position:{...me}})}return Q}function ie(){return{nodes:Ae(),groups:oe()}}function ye(Q,z){z&&c.commit(),o.value=Db(Q,z,r),z||c.clear()}return{state:o,selection:i,portalSelection:a,modalOpen:s,skipValidation:d,invalidConfigNodeIds:u,propertiesPanelOpen:l,configNodeCounts:m,nodeMapById:g,nodeMapByName:_,edgeMapById:y,edgeIdMapByNodeId:w,groupMapById:b,getNodeById:A,getNodeByName:I,getEdgeById:V,getEdgesByNodeId:L,getInEdgesByNodeId:R,getOutEdgesByNodeId:Z,selectedNode:ee,selectNode:j,selectPortalEdge:G,createNode:$,addNode:pe,duplicateNode:de,removeNode:M,renameNode:ue,moveNode:ne,moveGroup:ae,setGroupLayout:ze,toggleExpanded:Ie,replaceConfig:je,branchGroups:k,addField:le,renameField:re,removeField:D,connectEdge:te,replaceConnection:fe,disconnectEdge:Ee,disconnectInEdges:Re,disconnectOutEdges:Pe,toConfigNodes:ke,toUINodes:Ae,toUIGroups:oe,toUIData:ie,toResources:Ce,load:ye,commit:c.commit,undo:c.undo,redo:c.redo,canUndo:c.canUndo,canRedo:c.canRedo,clear:c.clear,reset:c.reset,revert:c.revert,isValidConnection:B,isValidVueFlowConnection:O,validateGraph:()=>x(),clearPendingLayout:f,setPendingFitView:p}});function Ct(){const e=i$();if(!e)throw new Error("Editor state is not provided. Ensure you are using provideEditorStore in a parent component.");return e}function a$(e){const{branchLayout:n,phase:r,layoutOptions:o,nodes:i,edges:a}=e,{findNode:s}=yt.useVueFlow(),{state:l,branchGroups:c,getNodeById:d,moveNode:u,commit:f}=Ct(),{getNodeDepth:p,isGroupId:m,groupsByOwner:g}=c,{isBranchEdgeId:_,updateGroupLayout:h,translateGroupTree:y,waitForLayoutFlush:w}=n,{viewport:b,padding:E=jr.padding,gaps:k=jr.gaps}=o,{nodes:N=jr.gaps.nodes,edges:T=jr.gaps.edges,ranks:x=jr.gaps.ranks}=k;async function B(I=!0){const V=new Map(i.value.map(ne=>[ne.id,ne.data])),L=new Map,R=new Map,Z=ne=>{if(!ne)return;let ae=R.get(ne);return ae||(ae=s(ne),ae&&R.set(ne,ae),ae)},ee=new Map,j=ne=>{let ae=ee.get(ne);return ae!==void 0||(ae=p(ne),ee.set(ne,ae)),ae},G=ne=>{if(!Ba(ne.data))return ne.parentNode;const ae=Z(ne.data.ownerId);if(!ae)throw new Error(`Cannot find owner node '${ne.data.ownerId}' for group node '${ne.id}' via findNode`);return ae.parentNode};for(const ne of a.value){if(_(ne.id))continue;const ae=ne.source,ze=ne.target;if(m(ae)||m(ze))continue;const Ie=Z(ae),je=Z(ze);if(Ie){if(!je)throw new Error(`Cannot find target node '${ze}' for edge '${ne.id}' via findNode`)}else throw new Error(`Cannot find source node '${ae}' for edge '${ne.id}' via findNode`);if(G(Ie)===G(je))continue;let le=Ie,re=je,D=j(le.id),te=j(re.id);for(;D!==te;)if(D>te){const fe=G(le);if(!fe)throw new Error(`Expected node '${le.id}' to have parent, but it does not`);const Ee=Z(fe);if(!Ee)throw new Error(`Cannot find parent node '${fe}' for node '${le.id}' via findNode`);le=Ee,D--}else if(te>D){const fe=G(re);if(!fe)throw new Error(`Expected node '${re.id}' to have parent, but it does not`);const Ee=Z(fe);if(!Ee)throw new Error(`Cannot find parent node '${fe}' for node '${re.id}' via findNode`);re=Ee,te--}for(;D>=0;){const fe=G(le),Ee=G(re);if(fe===Ee){L.has(D)||L.set(D,[]),L.get(D).push({v:le.id,w:re.id});break}if(fe){if(!Ee){const ke=`Expected node '${re.id}' to have parent, but it does not`;throw console.error(ke,re),new Error(ke)}}else{const ke=`Expected node '${le.id}' to have parent, but it does not`;throw console.error(ke,le),new Error(ke)}const Re=Z(fe),Pe=Z(Ee);if(Re){if(!Pe)throw new Error(`Cannot find parent node '${Ee}' for node '${re.id}' via findNode`)}else throw new Error(`Cannot find parent node '${fe}' for node '${le.id}' via findNode`);le=Re,re=Pe,D--,te--}}const $=l.value.groups.toSorted((ne,ae)=>j(ae.ownerId)-j(ne.ownerId));for(const ne of $)O(ne.memberIds.reduce((ae,ze)=>{const Ie=d(ze);if(!Ie)return console.warn(`Cannot find node '${ze}' of group '${ne.id}' by getNodeById`),ae;if(Ie.phase!==r)return ae;if(Ie.type==="branch"){const je=g.value.get(Ie.id);je&&ae.push(...je)}return V.delete(Ie.id),ae.push(Ie),ae},[]),{virtualEdges:L.get(j(ne.ownerId)),cachedFindNode:Z}),await t.nextTick(),h(ne.id,!1),await w();const pe=V.values().toArray();for(const ne of pe){if(Ba(ne)||ne.type!=="branch")continue;const ae=g.value.get(ne.id);ae&&pe.push(...ae)}const{autoNodes:de,leftNode:M,rightNode:ue}=A(pe);O(de,{leftNode:M,rightNode:ue,virtualEdges:L.get(0),cachedFindNode:Z}),I&&f()}function O(I,V){const{leftNode:L,rightNode:R,virtualEdges:Z,cachedFindNode:ee}=V||{},j=L?(ee??s)(L.id):void 0,G=R?(ee??s)(R.id):void 0;let $;if(I.length>0){$=new Y_.Graph({multigraph:!0}),$.setGraph({rankdir:r==="request"?"LR":"RL",nodesep:N,edgesep:T,ranksep:x});const le=new Set;for(const re of I){const D=(ee??s)(re.id);if(!D){console.warn(`Cannot find graph node '${re.id}' in ${r} phase`);continue}le.add(re.id),Ba(re)?$.setNode(re.id,{...re.dimensions??D.dimensions}):$.setNode(re.id,{...D.dimensions})}for(const re of a.value)!le.has(re.source)||!le.has(re.target)||$.setEdge(re.source,re.target,{points:[]});Z?.forEach(re=>$.setEdge(re,{points:[]})),AV($)}const pe=[],de=le=>({x:le.x-le.width/2,y:le.y-le.height/2,width:le.width,height:le.height});if(I.length>0){if(!$)throw new Error("Expected dagreGraph to be initialized");for(const le of I){const re=$.node(le.id),D=de(re);pe.push(D),Ba(le)?y(le.id,D,D.x+Xo,D.y+Xo):u(le.id,{x:D.x,y:D.y},!1)}}const M=pe.length>0?H_(pe):{x:0,y:0,width:0,height:0},ue=M.width,ne=M.height,ae=M.x,ze=M.x+M.width,Ie=Math.max(0,Math.min(t.toValue(b?.width)??Number.POSITIVE_INFINITY,VS)-ue-2*N-(j?.dimensions?.width??0)-(G?.dimensions?.width??0)-2*E),je=M.y+ne/2;L&&u(L.id,{x:ae-N-Ie/2-(j?.dimensions?.width??0),y:je-(j?.dimensions?.height??0)/2},!1),R&&u(R.id,{x:ze+N+Ie/2,y:je-(G?.dimensions?.height??0)/2},!1)}function A(I){let V,L;const R=[];for(const Z of I){if(Ba(Z)){R.push(Z);continue}switch(Z.name){case"request":{if(r!=="request")throw new Error(`Unexpected request node in ${r} phase`);if(V)throw new Error("Duplicated request node in request phase");V=Z;break}case"service_request":{if(r!=="request")throw new Error(`Unexpected service_request node in ${r} phase`);if(L)throw new Error("Duplicated service_request node in request phase");L=Z;break}case"service_response":{if(r!=="response")throw new Error(`Unexpected service_response node in ${r} phase`);if(L)throw new Error("Duplicated service_response node in response phase");L=Z;break}case"response":{if(r!=="response")throw new Error(`Unexpected response node in ${r} phase`);if(V)throw new Error("Duplicated response node in response phase");V=Z;break}default:{R.push(Z);break}}}return{autoNodes:R,leftNode:V,rightNode:L}}return{autoLayout:B}}function s$({phase:e,groupMapById:n,getNodeDepth:r,canAddMember:o,draggingId:i}){const a=t.shallowRef(),s=t.shallowRef();function l(f){a.value=f,s.value=void 0}function c(){a.value&&(a.value=void 0,s.value=void 0)}function d(f){let p;const m=i?.value;return n.value.forEach(g=>{if(g.phase!==e||m&&hf(m)&&!o(g.ownerId,g.branch,m))return;const _=g.position,h=g.dimensions;if(!_||!h||!(f.x>=_.x&&f.x<=_.x+h.width&&f.y>=_.y&&f.y<=_.y+h.height))return;const w=r(g.ownerId);(!p||w>p.depth)&&(p={depth:w,id:g.id})}),p?.id}function u(f){if(!a.value){s.value=void 0;return}if(!f){s.value=void 0;return}s.value=d(f)}return{activeGroupId:s,start:l,updateActiveGroup:u,end:c}}function l$({phase:e,readonly:n,flowId:r,draggingId:o}){const{findNode:i}=yt.useVueFlow(r),a=Ct(),{state:s,groupMapById:l,getNodeById:c,moveNode:d,moveGroup:u,setGroupLayout:f,commit:p,branchGroups:m}=a,{memberGroupMap:g,groupsByOwner:_,getNodeDepth:h,getGroupDepth:y}=m,w=G=>!!G&&G.startsWith("branch:");function b(G){const $=[];for(const pe of G.memberIds){const de=c(pe);de&&$.push(de)}return $}const E=t.computed(()=>{const G=new Map;return g.value.forEach(($,pe)=>{if($.phase!==e||!$.position)return;const de=c(pe);de&&(de.phase!==e||de.hidden||G.set(pe,$))}),G}),k=t.computed(()=>{const G=new Map;return _.value.forEach(($,pe)=>{const de=$.filter(M=>M.phase===e);de.length>0&&G.set(pe,de)}),G}),N=t.computed(()=>{const G=[];for(const $ of s.value.groups){const pe=c($.ownerId);if(!pe||pe.phase!==e)continue;const de=$.position,M=$.dimensions;if(!de||!M)continue;const ue=b($).filter(ae=>ae.phase===e&&!ae.hidden),ne=y($.id);G.push({id:$.id,type:"group",position:de,width:M.width,height:M.height,data:{...$,memberIds:ue.map(ae=>ae.id)},draggable:!n,selectable:!1,zIndex:ne*nl+TS})}return G}),T=t.computed(()=>{let G=0;for(const $ of s.value.groups){if($.phase!==e)continue;const pe=y($.id);pe>G&&(G=pe)}return G}),x=t.computed(()=>{const G=[];for(const $ of s.value.groups){if($.phase!==e||!$.position||!$.dimensions)continue;const pe=c($.ownerId);if(!pe||pe.phase!==e||pe.hidden||!b($).filter(ne=>ne.phase===e&&!ne.hidden).length)continue;const M=Math.max(h(pe.id),y($.id))+T.value+1,ue={id:`branch:${$.id}`,source:pe.id,target:$.id,sourceHandle:`branch@${$.branch}`,targetHandle:"input",markerEnd:yt.MarkerType.ArrowClosed,selectable:!1,focusable:!1,updatable:!1,data:{type:"branch",ownerId:pe.id,branch:$.branch,groupId:$.id},zIndex:M*nl+BS};G.push(ue)}return G}),B=new Map,O=new Map;let A;function I(G,$=!0){if(G.phase!==e)return;const pe=b(G).filter(ae=>ae.phase===e&&!ae.hidden);if(!pe.length)return;const de=[];for(const ae of pe){const Ie=i(ae.id)?.dimensions,je=Ie?.width??0,le=Ie?.height??0;if(je<=0||le<=0)return;de.push({...ae.position,width:je,height:le});const re=_.value.get(ae.id)??[];for(const D of re){if(D.phase!==e)continue;const te=B.get(D.id),fe=te?.position??D.position,Ee=te?.dimensions??D.dimensions;!fe||!Ee||de.push({x:fe.x,y:fe.y,width:Ee.width,height:Ee.height})}}const M=H_(de),ue=M.width+Xo*2,ne=M.height+Xo*2;return{position:{x:Math.round(M.x-Xo),y:Math.round(M.y-Xo)},dimensions:{width:Math.round(ue),height:Math.round(ne)},commit:$}}function V(){if(B.size===0){A=void 0;return}const G=[];let $=!1;B.forEach((pe,de)=>{const M=f(de,pe,!1);G.push({id:de,changed:M,commit:pe.commit}),pe.commit&&M&&!$&&($=!0)}),B.clear(),A=void 0;for(const{id:pe,changed:de,commit:M}of G){if(!de)continue;const ue=l.value.get(pe);if(!ue)continue;const ne=E.value.get(ue.ownerId);ne&&O.set(ne.id,{commit:M})}if(O.size>0){const pe=Array.from(O);O.clear();for(const[de,{commit:M}]of pe)R(de,M)}$&&p("*")}function L(){B.size!==0&&(A||(A=t.nextTick().then(V)))}function R(G,$=!0){const pe=l.value.get(G);if(!pe)return;const de=I(pe,$);de&&(B.set(G,de),L())}function Z(G,$,pe,de){const M=l.value.get(G);if(!M)return;if(!M.position){u(G,$,!1),R(G);return}if(pe===0&&de===0){u(G,$,!1);return}u(G,$,!1);const ue=[G],ne=new Set([G]),ae=new Set;for(;ue.length;){const ze=ue.shift(),Ie=l.value.get(ze);if(!Ie)continue;const je=b(Ie).filter(le=>le.phase===e&&!le.hidden);for(const le of je){ae.has(le.id)||(d(le.id,{x:le.position.x+pe,y:le.position.y+de},!1),ae.add(le.id));const re=k.value.get(le.id)??[];for(const D of re){if(ne.has(D.id))continue;const te=l.value.get(D.id);te?.position&&u(D.id,{x:te.position.x+pe,y:te.position.y+de},!1),ne.add(D.id),ue.push(D.id)}}}}function ee(G,$){const pe=o?.value;if(!pe)return!1;if(pe===G||$.some(de=>pe===de))return!0;for(const de of $)if((k.value.get(de)??[])?.some(ue=>ue.id===pe))return!0;return!1}const j=new Map;return t.watch(()=>s.value.groups.filter($=>$.phase===e).map($=>{const pe=$.memberIds.map(de=>{const M=i(de),ue=Math.round(M?.dimensions?.width??0),ne=Math.round(M?.dimensions?.height??0);return`${de}:${ue}x${ne}`});return{id:$.id,memberIds:$.memberIds,signature:pe.join(",")}}),G=>{const $=new Set(G.map(pe=>pe.id));for(const pe of j.keys())$.has(pe)||j.delete(pe);for(const pe of G)ee(pe.id,pe.memberIds)||j.get(pe.id)===pe.signature||(j.set(pe.id,pe.signature),R(pe.id))},{deep:!0,flush:"post"}),{groupsByOwner:k,memberGroupMap:E,groupNodes:N,branchEdges:x,isBranchEdgeId:w,updateGroupLayout:R,translateGroupTree:Z,getNodeDepth:h,maxGroupDepth:T,waitForLayoutFlush:()=>A??Promise.resolve()}}function c$(e){t.provide(ry,e)}function jb(){return t.inject(ry,void 0)}function Kb(){const e=jb();if(!e)throw new Error("Confirm modal not provided");return e}function d$(e){const{readonly:n,flowId:r}=e,o=yt.useVueFlow(r),{onNodesChange:i,onEdgesChange:a,onPaneClick:s,findEdge:l}=o,{disconnectEdge:c,commit:d,portalSelection:u,selectPortalEdge:f}=Ct();i(p=>{p.some(m=>m.type==="select"&&"selected"in m&&m.selected)&&f(void 0)}),a(p=>{const m=p.some(_=>_.type==="select"&&"selected"in _&&_.selected),g=u.value?p.some(_=>_.type==="remove"&&_.id===u.value):!1;(m||g)&&f(void 0)}),s(()=>f(void 0)),Et.useEventListener("keydown",p=>{if(n||p.key!=="Delete"&&p.key!=="Backspace")return;const m=u.value;!m||l(m)||(p.preventDefault(),c(m,!1),f(void 0),d())})}function qb(e){const n=e.match(/^(input|output)(?:s@(.*))?$/);if(n)return{io:n[1],field:n[2]}}const u$={default:hS,hover:_S,selected:yS};let Gb,Ff;function vl(e){const n=e.id===Gb?"selected":e.id===Ff?"hover":"default",r=u$[n],{markerEnd:o}=e,i=typeof o=="object"?{...o,color:r}:{type:o,color:r},a=e.zIndex??0,s=n==="selected"?a+2:n==="hover"?a+1:a;return{...e,style:{...e.style,stroke:r,strokeWidth:n==="selected"?1.5:void 0},markerEnd:i,zIndex:s}}const[f$,p$]=Et.createInjectionState(function(e){const{phase:n,flowId:r,layoutOptions:o,readonly:i}=e,{viewport:a,padding:s=jr.padding,gaps:l=jr.gaps}=o,{nodes:c=jr.gaps.nodes}=l,d=yt.useVueFlow(r),u=Ct(),f=jb(),p=gl(),{i18n:{t:m}}=Ye(),{findNode:g,fitView:_,deleteKeyCode:h,onNodeDrag:y,onNodeDragStop:w,onConnect:b,onNodesChange:E,onEdgesChange:k,onEdgeUpdate:N,onEdgeMouseEnter:T,onEdgeMouseLeave:x,getNodes:B,setNodes:O,setEdges:A,addSelectedNodes:I,screenToFlowCoordinate:V}=d;h.value=["Delete","Backspace"];const{state:L,commit:R,moveNode:Z,selectNode:ee,removeNode:j,getNodeById:G,connectEdge:$,disconnectEdge:pe,getInEdgesByNodeId:de,branchGroups:M,commit:ue,reset:ne,groupMapById:ae}=u,{isGroupId:ze,canAddMember:Ie}=M,je=t.shallowRef(),le=F=>{je.value=F},re=t.readonly(je);function D(F,H){const he=G(F.source),ce=G(F.target);return!!(he&&ce&&he.phase===H&&ce.phase===H)}const te=l$({phase:n,readonly:i,flowId:r,draggingId:re}),{memberGroupMap:fe,groupNodes:Ee,branchEdges:Re,isBranchEdgeId:Pe,updateGroupLayout:ke,translateGroupTree:Ae,getNodeDepth:Ce,maxGroupDepth:oe}=te,{activeGroupId:ie,start:ye,updateActiveGroup:Q,end:z}=s$({phase:n,groupMapById:ae,getNodeDepth:Ce,canAddMember:Ie,draggingId:re}),Y=t.computed(()=>L.value.nodes.filter(F=>F.phase===n&&!F.hidden).map(F=>{const H=fe.value.get(F.id),he=H?.position,ce=H?.dimensions,Te=H&&he&&ce?{x:F.position.x-he.x,y:F.position.y-he.y}:F.position,Be=Ce(F.id),xe=!!(H&&he&&ce),He=(xe?Be:0)+oe.value+1;return{id:F.id,type:"flow",position:Te,data:F,deletable:!i&&!_l(F),parentNode:xe?H.id:void 0,zIndex:He*nl+PS}})),me=t.computed(()=>L.value.edges.filter(F=>D(F,n)).filter(F=>!M.isEdgeEnteringGroup(F.source,F.target)).filter(F=>{const H=G(F.source),he=G(F.target);return!H?.hidden&&!he?.hidden}).map(F=>{const H=G(F.source),he=G(F.target);if(!H||!he){const Te=[];throw H||Te.push(`source node "${F.source}"`),he||Te.push(`target node "${F.target}"`),new Error(`Missing ${Te.join(" and ")} for edge "${F.id}" in phase "${n}"`)}const ce=Math.max(Ce(F.source),Ce(F.target))+oe.value+1;return vl({id:F.id,source:F.source,target:F.target,sourceHandle:F.sourceField?`outputs@${F.sourceField}`:"output",targetHandle:F.targetField?`inputs@${F.targetField}`:"input",markerEnd:yt.MarkerType.ArrowClosed,data:F,updatable:!i,zIndex:ce*nl+OS})})),_e=t.computed(()=>[...Re.value,...me.value]),{autoLayout:Le}=a$({phase:n,layoutOptions:o,branchLayout:te,nodes:Y,edges:_e});d$({readonly:i,flowId:r}),t.watch([Y,Ee,_e],([F,H,he])=>{O([...H,...F]),A(he)},{immediate:!0});const De=t.computed(()=>({padding:s/Math.max(t.toValue(a?.width)??0,t.toValue(a?.height)??0)}));async function it({source:F,sourceHandle:H,target:he,targetHandle:ce}){if(!H||!ce)return;const Te=qb(H),Be=qb(ce);if(Te?.io==="input"||Be?.io==="output"||H==="output"&&ce==="output")return;const xe=de(he);let He=!1,tt=!1;const $t=[],pt=[],gt=Be?.io==="input"?xe.filter(jt=>!jt.targetField):xe.filter(jt=>!!jt.targetField);gt.length>0&&(He=!0,gt.forEach(jt=>{pt.push(Va(jt,G)),pe(jt.id,!1)}));const Ot=Be?.io==="input"?Be?.field?xe.filter(jt=>jt.targetField===Be.field):xe.filter(jt=>!!jt.targetField):xe.filter(jt=>!jt.targetField);if(Ot.length>0){if(Ot.some(Vn=>Vn.source===F&&Vn.target===he&&Vn.targetField===Be?.field&&Vn.sourceField===Te?.field))return;tt=!0,Ot.forEach(Vn=>{pt.push(Va(Vn,G)),pe(Vn.id,!1)})}if(!$({source:F,sourceField:Te?.field,target:he,targetField:Be?.field},!1)){ne(),p({message:m("plugins.free-form.datakit.flow_editor.error.invalid_connection"),appearance:"danger"});return}if($t.push(kf(F,Te?.field,he,Be?.field,G)),He||tt){if(!f)throw ne(),new Error("Expected confirm modal to be provided here when reachable");if(!await f(m(He?"plugins.free-form.datakit.flow_editor.confirm.message.switch":"plugins.free-form.datakit.flow_editor.confirm.message.override"),$t,pt)){ne();return}}ue()}b(it);let q=!1;const se=()=>{q&&(q=!1,ue())};E(F=>{F.filter(ce=>ce.type==="select").filter(ce=>!ze(ce.id)).sort((ce,Te)=>ce.selected===Te.selected?0:ce.selected?1:-1).forEach(ce=>{ee(ce.selected?ce.id:void 0)});let he=!1;F.forEach(ce=>{if(ce.type==="remove"){if(ze(ce.id))return;he=!0,j(ce.id,!1)}}),he&&!q&&(q=!0,queueMicrotask(se))}),y(({node:F,event:H})=>{if(!F)return;if(ze(F.id)){const xe=F.id;le(xe),Q(void 0);const He=ae.value.get(xe);if(!He)return;const tt=He.position??{...F.position},$t=F.position.x-tt.x,pt=F.position.y-tt.y;Ae(xe,F.position,$t,pt);const gt=fe.value.get(He.ownerId);gt&&ke(gt.id,!1);return}const he=F.id;ye("canvas"),le(he);const ce=F.parentNode;let Te={...F.position};if(ce&&ze(ce)){const xe=ae.value.get(ce);xe?.position&&(Te={x:xe.position.x+F.position.x,y:xe.position.y+F.position.y})}if(Z(he,Te,!1),!_l(G(he))){const xe={x:Te.x,y:Te.y,width:F.dimensions?.width??0,height:F.dimensions?.height??0},He=H&&"clientX"in H?V({x:H.clientX,y:H.clientY}):void 0,tt={x:xe.x+xe.width/2,y:xe.y+xe.height/2};Q(He??tt)}const Be=ce&&ze(ce)?ce:fe.value.get(he)?.id;Be&&ke(Be,!1)}),w(({node:F})=>{if(!F)return;if(le(void 0),ze(F.id)){R();return}const H=F.id,he=F.parentNode;let ce={...F.position};if(he&&ze(he)){const Be=ae.value.get(he);Be?.position&&(ce={x:Be.position.x+F.position.x,y:Be.position.y+F.position.y})}Z(H,ce,!1);const Te=he&&ze(he)?he:fe.value.get(H)?.id;Te&&ke(Te,!1),qe(H),z(),R()}),k(F=>{F.filter(ce=>ce.type==="select").sort((ce,Te)=>ce.selected===Te.selected?0:ce.selected?1:-1).forEach(ce=>{Pe(ce.id)||(Gb=ce.selected?ce.id:void 0,A(Te=>Te.map(Be=>Be.id!==ce.id||!Be.markerEnd?Be:vl({...Be,zIndex:ce.selected?1:void 0}))))});let he=!1;F.forEach(ce=>{if(ce.type==="remove"){if(Pe(ce.id))return;he=!0,pe(ce.id,!1)}}),he&&!q&&(q=!0,queueMicrotask(se))}),T(({edge:F})=>{Pe(F.id)||(Ff=F.id,A(H=>H.map(he=>he.id!==F.id?he:vl(he))))}),x(({edge:F})=>{Pe(F.id)||(Ff=void 0,A(H=>H.map(he=>he.id!==F.id?he:vl(he))))}),N(({edge:F,connection:H})=>{Pe(F.id)||(pe(F.id,!1),it(H))});function K(F){_({...De.value,...F})}async function U(F){return ee(F),new Promise(H=>setTimeout(()=>{const he=g(F);I(he?[he]:[]),H()},0))}function J(F){const H=B.value.filter(({type:gt})=>gt!=="group"),he=H.find(({id:gt})=>gt===F);if(!he)throw new Error(`Node ${F} not found`);const{x:ce,y:Te}=he.data.position,{width:Be,height:xe}=he.dimensions,He=Te,tt=Te+xe,$t=H.filter(({id:gt})=>gt!==F).filter(({data:{position:{y:gt}},dimensions:{height:Ot}})=>gt<tt&>+Ot>He).map(({data:{position:{x:gt}},dimensions:{width:Ot}})=>({left:gt,right:gt+Ot})).sort((gt,Ot)=>gt.left-Ot.left);let pt=ce+Be+c;for(const{left:gt,right:Ot}of $t)if(!(Ot<=pt)){if(pt+Be<=gt)return{x:pt,y:He};pt=Math.max(pt,Ot)+c}return{x:pt,y:He}}function Ge(F){if(!F)return;const H=g(F);if(!H)throw new Error(`Node ${F} not found`);const{position:{x:he},dimensions:{width:ce}}=H,Te=he+ce,{viewport:Be,dimensions:xe,setViewport:He}=d,{x:tt,y:$t,zoom:pt}=Be.value,{width:gt}=xe.value,Ot=he*pt+tt,el=Te*pt+tt,jt=gt-ny-c;if(el<=jt)return;let Vn=jt-el;Ot+Vn<0&&(Vn=-Ot),Vn!==0&&He({x:tt+Vn,y:$t,zoom:pt},{duration:LS})}function qe(F){if(!ie.value)return!1;const{nodeId:H,branch:he}=NB(ie.value),ce=M.addMember(H,he,F,{commit:!1});return Q(void 0),ce}return{vueFlowStore:d,editorStore:u,readonly:i,nodes:Y,edges:_e,selectNode:U,autoLayout:Le,placeToRight:J,scrollRightToReveal:Ge,fitViewParams:De,fitView:K,groupDrop:{activeGroupId:ie,startPanelDrag:()=>ye("panel"),endPanelDrag:z,updateActiveGroup:Q,attachNodeToActiveGroup:qe}}});let di=null;function m$(){if(di)return di;if(typeof navigator>"u")return di="windows";const e=navigator.userAgentData?.platform||navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)?di="mac":/Linux/i.test(e)&&!/Android/i.test(e)?di="linux":di="windows"}const g$={Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Meta:"⌘",Mod:"⌘",Enter:"↩",ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Tab:"⇥",Esc:"⎋",Space:"Space",Delete:"⌫"},h$={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"},y$={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 _$(e,n={}){const r=n.platform??m$(),o=n.joiner??(r==="mac"?"":" + "),i=r==="mac"?g$:r==="linux"?y$:h$;return(Array.isArray(e)?e:e[r]).map(s=>s in i?i[s]:s).join(o)}const b$={key:0,class:"label"},w$={class:"keys"},Tl=ve(t.defineComponent({__name:"HotkeyLabel",props:{label:{},keys:{},reverse:{type:Boolean}},setup(e){const n=_$(e.keys);return(r,o)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["dk-hotkey-label",{reverse:e.reverse}])},[e.label?(t.openBlock(),t.createElementBlock("span",b$,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0),t.createElementVNode("kbd",w$,t.toDisplayString(t.unref(n)),1)],2))}}),[["__scopeId","data-v-7ca86b0d"]]),k$=["onClick"],C$={key:0,class:"additional-count"},zb=24,E$=16,Ol=ve(t.defineComponent({__name:"NodePortal",props:{expanded:{type:Boolean,default:()=>{}},reversed:{type:Boolean},targets:{}},setup(e){const n=Number.parseFloat(SS)||0,r={target:"body"},{portalSelection:o,selectPortalEdge:i}=Ct(),a=t.ref(!1),s=t.computed(()=>{const g=o.value;return g?e.targets.some(_=>_.edgeId===g):!1}),l=t.computed(()=>e.expanded!==void 0?e.expanded||s.value:a.value||s.value),c=()=>zb*e.targets.length+n*(e.targets.length-1),d=t.computed(()=>({width:l.value?`${c()}px`:"fit-content"})),u=g=>{i(g)},f=g=>o.value===g,p=t.computed(()=>e.targets.map((g,_)=>{const h=(zb+n)*_;return{edgeId:g.edgeId,key:`${g.node.id}-${g.fieldName??"node"}-${_}`,icon:ff(g.node.type).icon,tooltip:g.fieldName?`${g.node.name}.${g.fieldName}`:g.node.name,highlighted:f(g.edgeId),tooltipEl:null,style:_===0?{width:"fit-content",zIndex:e.targets.length}:{position:"absolute",...e.reversed?{left:`${h}px`,transform:l.value?"translateX(0)":`translateX(-${h}px)`}:{right:0,transform:l.value?`translateX(-${h}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:l.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]=h=>a.value=!0),onMouseleave:_[4]||(_[4]=h=>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,(h,y)=>(t.openBlock(),t.createBlock(t.unref(be.KTooltip),{key:h.key,class:"target-box-wrapper","kpop-attributes":r,placement:"top",style:t.normalizeStyle(h.style),text:h.tooltip},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["target-box",{highlighted:h.highlighted}]),onClick:t.withModifiers(w=>u(h.edgeId),["stop"])},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(h.icon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:E$},null,8,["color"])),y===0&&m.value>0?(t.openBlock(),t.createElementBlock("span",C$," +"+t.toDisplayString(m.value),1)):t.createCommentVNode("",!0)],10,k$)]),_:2},1032,["style","text"]))),128))],4)],34))}}),[["__scopeId","data-v-45ce7484"]]),Bl=ve(t.defineComponent({__name:"HandleTwig",props:{color:{},position:{default:()=>yt.Position.Left},size:{default:()=>Number.parseFloat(ey)},type:{}},setup(e){t.useCssVars(r=>({v64bbaf90:r.color}));const n=t.computed(()=>({width:`${e.size}px`,minWidth:`${e.size}px`}));return(r,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["handle-twig",[e.type,e.position===t.unref(yt.Position).Left?"left":"right"]]),style:t.normalizeStyle(n.value)},null,6))}}),[["__scopeId","data-v-74b600f2"]]),Df=ve(t.defineComponent({__name:"NodeBadge",props:{type:{},size:{},iconOnly:{type:Boolean}},setup(e){t.useCssVars(r=>({v3b4ea967:n.value.colors?.background,v00febd7c:n.value.colors?.foreground}));const n=t.computed(()=>ff(e.type));return(r,o)=>{const i=t.resolveComponent("KBadge");return t.openBlock(),t.createBlock(i,{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(e.type),1)]),_:2},[n.value?.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-409d29e5"]]),N$={class:"body"},S$={class:"name"},A$={class:"handle"},x$={class:"handle-label-wrapper"},I$={class:"handle-label-wrapper"},v$={class:"handle-label text"},T$={class:"handle"},O$={class:"handle-label-wrapper"},B$={class:"handle-label-wrapper"},P$={class:"handle-label text"},V$={key:2,class:"branch-handles"},$$={class:"handle-label-wrapper"},R$={class:"handle-label text"},Hb=ve(t.defineComponent({__name:"FlowNode",props:{data:{},error:{type:Boolean},readonly:{type:Boolean}},setup(e){const n=t.useSlots(),{t:r}=It.createI18n("en-us",Bt),o=p$(),{getInEdgesByNodeId:i,getOutEdgesByNodeId:a,getNodeById:s,toggleExpanded:l,duplicateNode:c,removeNode:d,propertiesPanelOpen:u,branchGroups:f}=Ct(),p=t.computed(()=>si(e.data.type)),m=t.computed(()=>e.data.fields.input.length>0),g=t.computed(()=>e.data.fields.output.length>0),_=t.computed(()=>m.value&&i(e.data.id).every(de=>de.targetField===void 0)),h=t.computed(()=>g.value&&a(e.data.id).every(de=>de.sourceField===void 0)),y=t.computed(()=>e.data.expanded.input??!1),w=t.computed(()=>e.data.expanded.output??!1),b=t.computed(()=>p.value.io?.next?.branches?.map(({name:de})=>de)??[]),E=t.computed(()=>b.value.length>0),k=t.computed(()=>f.findMembership(e.data.id)),N=t.computed(()=>{if(e.data.type==="property"){const de=e.data.config?.property;return df(de)}return p.value.io?.input}),T=t.computed(()=>{if(e.data.type==="property"){const de=e.data.config?.property;return cf(de)}return p.value.io?.output}),x=t.computed(()=>_l(e.data)),B=t.computed(()=>e.data.phase==="response"),O=t.computed(()=>e.data.phase==="request"?yt.Position.Left:yt.Position.Right),A=t.computed(()=>e.data.phase==="request"?yt.Position.Right:yt.Position.Left),I=t.computed(()=>e.data.phase==="request"?yt.Position.Right:yt.Position.Left),V=t.computed(()=>_l(e.data)?r(`plugins.free-form.datakit.flow_editor.node_types.${e.data.type}.name`):e.data.name),L=t.computed(()=>x.value?fS:pS);function R(de){return de==="input"?B.value:!B.value}function Z(de){const M=new Map,ue=de==="input"?i(e.data.id):a(e.data.id);for(const ne of ue){const ae=s(de==="input"?ne.source:ne.target);if(!ae)continue;if(de==="input"){const re=ae.type==="vault",D=ae.phase!==e.data.phase,te=f.isEdgeEnteringGroup(ae.id,e.data.id);if(!(re||D||te))continue}else{const re=ae.phase!==e.data.phase,D=f.isEdgeEnteringGroup(e.data.id,ae.id);if(!(re||D))continue}const ze=de==="input"?ne.targetField||"input":ne.sourceField||"output";let Ie;de==="input"&&ne.sourceField?Ie=ae.fields.output.find(D=>D.id===ne.sourceField)?.name:de==="output"&&ne.targetField&&(Ie=ae.fields.input.find(D=>D.id===ne.targetField)?.name);const je={edgeId:ne.id,node:ae,fieldName:Ie},le=M.get(ze);le?le.push(je):M.set(ze,[je])}return M}const ee=t.computed(()=>Z("input")),j=t.computed(()=>Z("output"));function G(de){!o||o.readonly||de==="input"&&!_.value||de==="output"&&!h.value||l(e.data.id,de)}async function $(){if(!o||o.readonly)return;const de=c(e.data.id,o.placeToRight(e.data.id));await o.selectNode(de),o.scrollRightToReveal(de),u.value=!0}function pe(){f.removeMember(e.data.id)}return t.watch(_,de=>{de||l(e.data.id,"input",!0,!0,"*")},{immediate:!0}),t.watch(h,de=>{de||l(e.data.id,"output",!0,!0,"*")},{immediate:!0}),t.watch(()=>e.data.fields.input,(de,M)=>{ti(de,M)||l(e.data.id,"input",de.length>0,!0,"*")},{deep:!0}),t.watch(()=>e.data.fields.output,(de,M)=>{ti(de,M)||l(e.data.id,"output",de.length>0,!0,"*")},{deep:!0}),(de,M)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-flow-node",{reversed:B.value,implicit:x.value,readonly:e.readonly}])},[t.createElementVNode("div",N$,[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(Df,{"icon-only":"",size:"small",type:e.data.type},null,8,["type"])]),_:1},8,["text"])),t.createElementVNode("div",S$,t.toDisplayString(V.value),1),e.error?(t.openBlock(),t.createBlock(t.unref(Ne.WarningIcon),{key:1,class:"error-icon",color:`var(--kui-color-text-danger, ${t.unref(Jh)})`,size:16},null,8,["color"])):t.createCommentVNode("",!0),n.actions?t.renderSlot(de.$slots,"actions",{data:e.data},void 0,!0,2):x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(be.KDropdown),{key:3,class:"menu",disabled:e.readonly,"kpop-attributes":{offset:"4px",target:"body",popoverClasses:"dk-flow-node-menu"},width:"160",onClick:M[1]||(M[1]=t.withModifiers(()=>{},["stop"]))},{items:t.withCtx(()=>[t.createVNode(t.unref(be.KDropdownItem),{onClick:$},{default:t.withCtx(()=>[t.createVNode(Tl,{keys:t.unref(rl).duplicate,label:t.unref(r)("plugins.free-form.datakit.flow_editor.actions.duplicate")},null,8,["keys","label"])]),_:1}),k.value?(t.openBlock(),t.createBlock(t.unref(be.KDropdownItem),{key:0,onClick:pe},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(be.KDropdownItem),{danger:"",onClick:M[0]||(M[0]=ue=>t.unref(d)(e.data.id))},{default:t.withCtx(()=>[t.createVNode(Tl,{keys:t.unref(rl).delete,label:t.unref(r)("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(Ne.MoreIcon),{color:`var(--kui-color-text, ${t.unref(vu)})`},null,8,["color"])]),_:1})]),_:1},8,["disabled"]))]),n["before-handles"]?t.renderSlot(de.$slots,"before-handles",{data:e.data},void 0,!0,0):t.createCommentVNode("",!0),t.createElementVNode("div",{class:t.normalizeClass(["handles",{reversed:B.value}])},[N.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["input-handles",{"has-fields":m.value}])},[t.createElementVNode("div",A$,[t.createVNode(t.unref(yt.Handle),{id:"input",position:O.value,type:"target"},null,8,["position"]),ee.value.has("input")?(t.openBlock(),t.createBlock(Ol,{key:0,mode:"input",reversed:R("input"),targets:ee.value.get("input")},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",x$,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:_.value}]),onClick:M[2]||(M[2]=t.withModifiers(ue=>G("input"),["stop"]))},[M[4]||(M[4]=t.createElementVNode("div",{class:"text"}," inputs ",-1)),m.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[y.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Ne.UnfoldMoreIcon),{key:0,size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"])),y.value?(t.openBlock(),t.createBlock(t.unref(Ne.UnfoldLessIcon),{key:1,color:_.value?void 0:`var(--kui-color-text-disabled, ${t.unref(Zh)})`,size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),m.value&&y.value?(t.openBlock(),t.createBlock(Bl,{key:0,color:L.value,position:O.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)])]),m.value&&y.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.input,(ue,ne)=>(t.openBlock(),t.createElementBlock("div",{key:`inputs-${ue.id}`,class:"handle indented"},[t.createVNode(t.unref(yt.Handle),{id:`inputs@${ue.id}`,position:O.value,type:"target"},null,8,["id","position"]),ee.value.has(ue.id)?(t.openBlock(),t.createBlock(Ol,{key:0,mode:"input",reversed:R("input"),targets:ee.value.get(ue.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0),t.createElementVNode("div",I$,[t.createElementVNode("div",v$,t.toDisplayString(ue.name),1),t.createVNode(Bl,{color:L.value,position:O.value,type:ne<e.data.fields.input.length-1?"trident":"corner"},null,8,["color","position","type"])])]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),T.value?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["output-handles",{"has-fields":g.value}])},[t.createElementVNode("div",T$,[t.createElementVNode("div",O$,[t.createElementVNode("div",{class:t.normalizeClass(["handle-label trigger",{collapsible:h.value}]),onClick:M[3]||(M[3]=t.withModifiers(ue=>G("output"),["stop"]))},[M[5]||(M[5]=t.createElementVNode("div",{class:"text"}," outputs ",-1)),g.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[w.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(Ne.UnfoldMoreIcon),{key:0,size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"])),w.value?(t.openBlock(),t.createBlock(t.unref(Ne.UnfoldLessIcon),{key:1,color:h.value?void 0:`var(--kui-color-text-disabled, ${t.unref(Zh)})`,size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["color","size"])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2),g.value&&w.value?(t.openBlock(),t.createBlock(Bl,{key:0,color:L.value,position:A.value,type:"bar"},null,8,["color","position"])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(yt.Handle),{id:"output",position:A.value,type:"source"},null,8,["position"]),j.value.has("output")?(t.openBlock(),t.createBlock(Ol,{key:0,mode:"output",reversed:R("output"),targets:j.value.get("output")},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]),g.value&&w.value?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.data.fields.output,(ue,ne)=>(t.openBlock(),t.createElementBlock("div",{key:`outputs-${ue.id}`,class:"handle indented"},[t.createElementVNode("div",B$,[t.createElementVNode("div",P$,t.toDisplayString(ue.name),1),t.createVNode(Bl,{color:L.value,position:A.value,type:ne<e.data.fields.output.length-1?"trident":"corner"},null,8,["color","position","type"])]),t.createVNode(t.unref(yt.Handle),{id:`outputs@${ue.id}`,position:A.value,type:"source"},null,8,["id","position"]),j.value.has(ue.id)?(t.openBlock(),t.createBlock(Ol,{key:0,mode:"output",reversed:R("output"),targets:j.value.get(ue.id)},null,8,["reversed","targets"])):t.createCommentVNode("",!0)]))),128)):t.createCommentVNode("",!0)],2)):t.createCommentVNode("",!0),E.value?(t.openBlock(),t.createElementBlock("div",V$,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b.value,ue=>(t.openBlock(),t.createElementBlock("div",{key:`branch-${ue}`,class:"handle"},[t.createElementVNode("div",$$,[t.createElementVNode("div",R$,t.toDisplayString(ue),1)]),t.createVNode(t.unref(yt.Handle),{id:`branch@${ue}`,connectable:!1,position:I.value,type:"source"},null,8,["id","position"])]))),128))])):t.createCommentVNode("",!0)],2),n["after-handles"]?t.renderSlot(de.$slots,"after-handles",{data:e.data},void 0,!0,1):t.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-1de3b7cb"]]),L$=ve(t.defineComponent({__name:"GroupNode",props:{data:{},active:{type:Boolean}},setup(e){const n=e,r=t.computed(()=>n.data.phase==="response"),o=t.computed(()=>r.value?yt.Position.Right:yt.Position.Left);return(i,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["dk-branch-group-node",{reversed:r.value,"drop-target":e.active}])},[t.createVNode(t.unref(yt.Handle),{id:"input",connectable:!1,position:o.value,type:"target"},null,8,["position"])],2))}}),[["__scopeId","data-v-cf30ffea"]]),Mf=ve(t.defineComponent({__name:"FlowCanvas",props:{flowId:{},phase:{},mode:{}},emits:["initialized","nodes-change","node-click"],setup(e,{expose:n,emit:r}){const o=t.useSlots(),i=r,a=t.useTemplateRef("flowCanvas"),s=Et.useElementBounding(a),{i18n:{t:l}}=Ye(),c=t.computed(()=>{const Ie=e.mode==="edit"||e.mode==="inspect";return{panOnDrag:Ie?void 0:!1,panOnScroll:Ie?void 0:!1,zoomOnDoubleClick:Ie?void 0:!1,zoomOnPinch:Ie?void 0:!1,zoomOnScroll:Ie?void 0:!1}}),{vueFlowStore:d,editorStore:u,autoLayout:f,fitViewParams:p,fitView:m,selectNode:g,placeToRight:_,scrollRightToReveal:h,groupDrop:y}=f$({phase:e.phase,flowId:e.flowId,layoutOptions:{viewport:{width:s.width,height:s.height}},readonly:e.mode!=="edit"}),{addNode:w,propertiesPanelOpen:b,invalidConfigNodeIds:E,selectedNode:k,duplicateNode:N,commit:T,selectPortalEdge:x}=u,{screenToFlowCoordinate:B,zoomIn:O,zoomOut:A,viewport:I,maxZoom:V,minZoom:L}=d,{activeGroupId:R,startPanelDrag:Z,endPanelDrag:ee,updateActiveGroup:j,attachNodeToActiveGroup:G}=y;function $(Ie){const je=Ie.dataTransfer?.types.find(le=>le.startsWith(`${_a}/`));if(je)return je.replace(`${_a}/`,"")}function pe(Ie){if(e.mode==="inspect"){if(Ie?.node?.type==="group")return;i("node-click",Ie.node.data);return}if(e.mode==="edit"){if(Ie?.node?.type==="group"){g(void 0),x(void 0);return}b.value=!0}}function de(Ie){e.mode==="edit"&&(Ie.preventDefault(),j(B({x:Ie.clientX,y:Ie.clientY})))}function M(Ie){if(e.mode!=="edit")return;const je=Ie.dataTransfer?.getData(_a);if(!je)return;Ie.preventDefault();const le=JSON.parse(je);if(le.action!=="create-node")return;const re=B({x:Ie.clientX,y:Ie.clientY}),{type:D,anchor:te}=le.data,fe={type:D,phase:e.phase,position:{x:re.x-te.offsetX,y:re.y-te.offsetY}},Ee=w(fe,!1);if(!Ee){ee();return}G(Ee),T(),g(Ee),b.value=!0,ee()}async function ue(){i("initialized"),e.mode==="inspect"&&setTimeout(async()=>{await f(!1),setTimeout(()=>m(),0)},0)}async function ne(){await f(),setTimeout(()=>m(),0)}const ae=t.computed(()=>{if(e.mode==="preview")return[];const Ie=[{name:"zoom_in",icon:Ne.AddIcon,action:O,disabled:I.value.zoom>=V.value},{name:"zoom_out",icon:Ne.RemoveIcon,action:A,disabled:I.value.zoom<=L.value},{name:"fit_view",icon:Ne.FullscreenIcon,action:m}];return e.mode==="edit"&&Ie.push({name:"auto_layout",icon:Ne.AutoLayoutIcon,action:ne}),Ie});e.mode==="edit"&&(Et.useEventListener("dragstart",Ie=>{$(Ie)&&Z()}),Et.useEventListener("dragend",()=>{ee()}));async function ze(){const Ie=k.value;if(e.mode!=="edit"||!Ie||Ie.phase!==e.phase)return;const je=N(Ie.id,_(Ie.id));je&&(await g(je),b.value=!0,h(je))}return Yh({enabled:t.computed(()=>!!k.value&&e.mode==="edit"&&k.value.phase===e.phase),duplicate:ze}),n({autoLayout:f,fitView:m}),(Ie,je)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowCanvas",ref:a,class:"dk-flow-canvas"},[t.createVNode(t.unref(yt.VueFlow),t.mergeProps({id:e.flowId,class:["flow",{readonly:e.mode!=="edit",inspect:e.mode==="inspect"}]},c.value,{"connect-on-click":!1,"elements-selectable":e.mode==="edit"||e.mode==="inspect","max-zoom":t.unref($S),"min-zoom":t.unref(RS),"multi-selection-key-code":null,"nodes-connectable":e.mode==="edit","nodes-draggable":e.mode==="edit",onDragover:de,onDrop:M,onNodeClick:pe,onNodesChange:je[0]||(je[0]=le=>i("nodes-change")),onNodesInitialized:ue}),{"node-flow":t.withCtx(({data:le})=>[t.createVNode(Hb,{data:le,error:t.unref(E).has(le.id),readonly:e.mode!=="edit"},t.createSlots({_:2},[o["node-before-handles"]?{name:"before-handles",fn:t.withCtx(()=>[t.renderSlot(Ie.$slots,"node-before-handles",{data:le},void 0,!0)]),key:"0"}:void 0,o["node-actions"]?{name:"actions",fn:t.withCtx(()=>[t.renderSlot(Ie.$slots,"node-actions",{data:le},void 0,!0)]),key:"1"}:void 0,o["node-after-handles"]?{name:"after-handles",fn:t.withCtx(()=>[t.renderSlot(Ie.$slots,"node-after-handles",{data:le},void 0,!0)]),key:"2"}:void 0]),1032,["data","error","readonly"])]),"node-group":t.withCtx(({data:le})=>[t.createVNode(L$,{active:t.unref(R)===le.id,data:le},null,8,["active","data"])]),default:t.withCtx(()=>[t.createVNode(t.unref(rS.Background)),t.createVNode(t.unref(Kh.Controls),{"fit-view-params":t.unref(p),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(ae.value,le=>(t.openBlock(),t.createBlock(t.unref(be.KTooltip),{key:le.name,placement:"right",text:t.unref(l)(`plugins.free-form.datakit.flow_editor.actions.${le.name}`)},{default:t.withCtx(()=>[t.createVNode(t.unref(Kh.ControlButton),{disabled:le.disabled,onClick:t.withModifiers(le.action,["stop"])},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(le.icon),{size:18}))]),_:2},1032,["disabled","onClick"])]),_:2},1032,["text"]))),128))]),_:1},8,["fit-view-params"])]),_:3},16,["id","class","elements-selectable","max-zoom","min-zoom","nodes-connectable","nodes-draggable"])],512))}}),[["__scopeId","data-v-11561a7e"]]);function Wb(){const e=["methods","logout_methods"];return{setFieldType:(u,f,p)=>{if(!(!u||!f||!p))switch(p.type){case"boolean":u[f]={type:ge.ConfigurationSchemaType.BadgeStatus,...u[f]};break;case"string":p.encrypted?u[f]={type:ge.ConfigurationSchemaType.Redacted,...u[f]}:u[f]={type:ge.ConfigurationSchemaType.Text,...u[f]};break;case"set":p.elements?.type==="string"&&(u[f]={type:ge.ConfigurationSchemaType.BadgeTag,...u[f]});break;case"array":e.includes(f)?u[f]={type:ge.ConfigurationSchemaType.BadgeMethod,...u[f]}:p.elements?.type==="string"?p.encrypted?u[f]={type:ge.ConfigurationSchemaType.RedactedArray,...u[f]}:u[f]={type:ge.ConfigurationSchemaType.BadgeTag,...u[f]}:p.elements?.type==="record"&&(u[f]={type:ge.ConfigurationSchemaType.Json,...u[f]});break;case"record":u[f]={type:ge.ConfigurationSchemaType.Json,...u[f]};break;default:u[f]={type:ge.ConfigurationSchemaType.Text,...u[f]};break}},convertToDotNotation:u=>u.replace(/-/g,"."),unFlattenObject:u=>{const f={};for(const p in u){const m=p.split(".");m.reduce((g,_,h)=>g[_]||(g[_]=isNaN(m[h+1])?m.length-1===h?u[p]:{}:[]),f)}return f},dismissField:(u,f,p="redis",m=!1)=>{const g=new RegExp("(?<=-redis-).*");if(typeof u!="object"||u===null)return u;p==="redis"?Object.keys(u).forEach(_=>{_.match(g)&&delete u[_]}):m?u[p]=null:delete u[p],Object.assign(u,f)},isObjectEmpty:u=>Object.keys(u).length===0,unsetNullForeignKey:(u,f)=>{["service.id","route.id","consumer.id","consumer_group.id"].indexOf(u)>-1&&f[u]===null&&(delete f[u],f[u.replace(".id","")]=null)},formatPluginFieldLabel:u=>u.replace(/_/g," ").split("-").map(f=>f.charAt(0).toUpperCase()+f.slice(1)).join("-"),getTallestPluginCardHeight:u=>{let f=0;if(u.length)for(let p=0;p<u.length;p++){const m=u[p].$el;f=m.offsetHeight>f?m.offsetHeight:f}return f},getToggleVisibility:(u,f)=>{if(u&&f){const p=window?.getComputedStyle(u)?.getPropertyValue("grid-template-columns")?.split(" ").length;return f>p}return!0}}}const F$=["basic-auth","key-auth","key-auth-enc","oauth2","hmac-auth","jwt","acl"];var Pl=(e=>(e.REDIS_CE="redis-ce",e.REDIS_EE="redis-ee",e))(Pl||{});const Vl=["Featured"],Uf=[W.PluginGroup.AUTHENTICATION,W.PluginGroup.AI,W.PluginGroup.SECURITY,W.PluginGroup.TRAFFIC_CONTROL,W.PluginGroup.SERVERLESS,W.PluginGroup.ANALYTICS_AND_MONITORING,W.PluginGroup.TRANSFORMATIONS,W.PluginGroup.LOGGING,W.PluginGroup.DEPLOYMENT,W.PluginGroup.WEBSOCKET,W.PluginGroup.MONETIZATION,W.PluginGroup.CUSTOM_PLUGINS],$l=[W.PluginGroup.AI,W.PluginGroup.ANALYTICS_AND_MONITORING,W.PluginGroup.AUTHENTICATION,W.PluginGroup.LOGGING,W.PluginGroup.MONETIZATION,W.PluginGroup.SECURITY,W.PluginGroup.SERVERLESS,W.PluginGroup.TRAFFIC_CONTROL,W.PluginGroup.TRANSFORMATIONS,W.PluginGroup.CUSTOM_PLUGINS];var _o=(e=>(e.SERVICE="service_id",e.ROUTE="route_id",e.CONSUMER="consumer_id",e.CONSUMER_GROUP="consumer_group_id",e))(_o||{});const bo=e=>{const n=Object.fromEntries(e.fields.map(r=>Object.entries(r)[0]));return"id"in n||(n.id={}),n},wo={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"},jf={getColumnFields:bo,tags:wo,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}}}},Yb={fields:[{group:{hint:"The arbitrary group name to associate to the consumer."}},{tags:wo}]},D$={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"}}]},Jb={fields:[{username:{}},{password:{inputType:"password"}},{tags:wo}]},M$={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"}}]},Xb={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:wo},{ttl:{help:"Time-to-live (in seconds) value for data"}}]},U$={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"}}]},Zb={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
|
|
@@ -449,7 +449,7 @@ nodes:
|
|
|
449
449
|
status: 200
|
|
450
450
|
`})).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>{const r=e.replace(/^\.\//,"").replace(/\.yaml$/,"");return{id:r,i18nKey:Ev(r),code:n}});function Ja(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null}const UU=[{name:"decK",extract(e){try{const n=zr(e);return Ja(n)&&Array.isArray(n.plugins)&&n.plugins.find(o=>Ja(o)&&o.name==="datakit")||null}catch{return null}}},{name:"KIC",extract(e){let n=e;const r=e.match(/echo\s+(?:"([\s\S]*?)"|'([\s\S]*?)')\s*\|\s*kubectl/);r&&(n=r[1]||r[2]);try{const o=zr(n);if(!Ja(o))return null;const i=Ja(o.metadata)?o.metadata:{},a=o.plugin||i.name;return(o.kind==="KongPlugin"||o.kind==="KongClusterPlugin")&&a==="datakit"&&o||null}catch{return null}}},{name:"cURL",extract(e){if(!e.trim().startsWith("curl"))return null;const n=e.match(/(?:--data|-d)\s+(?:'((?:[^'\\]|\\[\s\S])*)'|"((?:[^"\\]|\\[\s\S])*)")/);if(!n)return null;let r=n[1]||n[2];n[2]&&(r=r.replace(/\\(["\\])/g,"$1"));try{const o=JSON.parse(r);return Ja(o)&&o.name==="datakit"&&o||null}catch{return null}}}];function Xp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function jU(e){return!Xp(e)||!Xp(e.config)||!Array.isArray(e.config.nodes)?e:{...e,config:{...e.config,nodes:e.config.nodes.map(n=>Xp(n)?Object.fromEntries([...["name","type"].filter(r=>Object.hasOwn(n,r)).map(r=>[r,n[r]]),...Object.entries(n).filter(([r])=>r!=="name"&&r!=="type")]):n)}}}const KU={class:"dk-code-editor"},qU={class:"examples-content"},Zp="YAML Syntax",GU=ve(t.defineComponent({__name:"CodeEditor",props:{editing:{type:Boolean}},emits:["change","error"],setup(e,{expose:n,emit:r}){const o=t.inject("app:konnectColorMode",t.computed(()=>"light")),{t:i}=It.createI18n("en-us",Bt),{getValue:a,setValue:s}=S.useFormShared(),l=r,{getMessageFromError:c}=ge.useErrors(),d=t.shallowRef(null);function u(T){return Jl(jU(t.toRaw(T)),{schema:ko,seqNoIndent:!0})}function f(){return u(go(a(),["__ui_data"]))}const p=t.shallowRef(f()),m={scrollbar:{alwaysConsumeMouseWheel:!1},autoIndent:"keep",editContext:!1,guides:{indentation:!0,highlightActiveIndentation:!0}};function g(T){const x=T.getModel();x&&(d.value=T,T.onDidChangeModelContent(()=>{try{const B=zr(T.getValue()||"",{schema:ko,json:!0});if(typeof B!="object"||B===null)return;tl.editor.setModelMarkers(x,Zp,[]),s(B),l("change",B)}catch(B){const{message:O,mark:A}=B,{line:I,column:V}=A||{line:0,column:0},L=O.split(`
|
|
451
451
|
`)[0],R=[{startLineNumber:I+1,startColumn:V+1,endLineNumber:I+1,endColumn:V+2,message:L,severity:tl.MarkerSeverity.Error,source:Zp}];tl.editor.setModelMarkers(x,Zp,R),l("error",L)}}),T.onDidPaste(B=>{const O=T.getModel();if(!O)return;const A=O.getValueInRange(B.range);for(const I of UU){const V=I.extract(A);if(V){h.value=V,y.value=I.name,_.value=!0;return}}}),N())}const _=t.shallowRef(!1),h=t.shallowRef(null),y=t.shallowRef("");function w(){_.value=!1,h.value=null,y.value=""}function b(){h.value&&(p.value=u(h.value),w())}function E(T){return i(`plugins.free-form.datakit.examples.${T}`)}function k(T){const x=T.code;try{const B=zr(p.value,{schema:ko,json:!0}),O=zr(x,{schema:ko,json:!0});if(typeof B=="object"&&B!==null&&ti(B.config,O))return;const A=go({...a(),config:{...O}},["__ui_data"]);p.value=u(A)}catch(B){l("error",c(B))}N()}function N(){const T=d.value,x=T?.getModel();!T||!x||(T.setPosition(x.getFullModelRange().getEndPosition()),T.focus())}return n({setExampleCode:k}),(T,x)=>(t.openBlock(),t.createElementBlock("div",KU,[t.createVNode(t.unref(be.KAlert),{class:"examples"},{icon:t.withCtx(()=>[t.createVNode(t.unref(Ne.SparklesIcon))]),default:t.withCtx(()=>[t.createElementVNode("div",qU,[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.description_example"))+" ",1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(u0),B=>(t.openBlock(),t.createBlock(t.unref(be.KButton),{key:B.id,appearance:"secondary",size:"small",onClick:O=>k(B)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(E(B.i18nKey)),1)]),_:2},1032,["onClick"]))),128))])]),_:1}),(t.openBlock(),t.createBlock(t.unref(ya.MonacoEditor),{key:t.unref(o),ref:"editor",modelValue:p.value,"onUpdate:modelValue":x[0]||(x[0]=B=>p.value=B),appearance:"standalone",class:"editor",language:"yaml",options:m,theme:t.unref(o),onReady:g},null,8,["modelValue","theme"])),t.createVNode(t.unref(be.KModal),{"action-button-text":t.unref(i)("plugins.free-form.datakit.detected_config_format_confirm"),title:t.unref(i)("plugins.free-form.datakit.detected_config_format_title"),visible:_.value,onCancel:w,onProceed:b},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("plugins.free-form.datakit.detected_config_format",{format:y.value})),1)]),_:1},8,["action-button-text","title","visible"])]))}}),[["__scopeId","data-v-23491753"]]),{t:zU}=It.createI18n("en-us",Bt),Cc=Et.createGlobalState(()=>{const e=Et.useLocalStorage("datakit-editor-mode","flow"),n=Et.useLocalStorage("datakit-editor-sidebar-expanded",!0),r=Et.useLocalStorage("datakit-editor-response-panel-collapsed",!1);return{editorMode:e,sidePanelExpanded:n,responsePanelCollapsed:r}});function HU({enabled:e,confirm:n}){gr.onBeforeRouteLeave(()=>t.toValue(e)?n?n():window.confirm(zU("plugins.free-form.datakit.flow_editor.leave_confirm")):!0);const r=o=>{t.toValue(e)&&o.preventDefault()};Et.useEventListener("beforeunload",r)}const WU={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"},YU={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 JU(e){const n=Number(e);return!isNaN(n)&&isFinite(n)}function Xt(...e){return function(r){for(const o of e){const i=o(r);if(i)return i}}}function Io(e){const{i18n:{t:n}}=Ye(),r=()=>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 r()}}function f0(e,n){const{i18n:{t:r}}=Ye();return function(i){if(i!=null)switch(e){case"identifier":{const a=()=>n?typeof n=="string"?n:r("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:r("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 xr(e=0,n=1/0,r){const{i18n:{t:o}}=Ye();return function(a){if(a!=null&&typeof a=="string"&&(a.length<e||a.length>n))return r?typeof r=="string"?r:o("plugins.free-form.datakit.flow_editor.node_properties.errors.string_len_range",{fieldName:r.fieldName,minLength:e,maxLength:n}):`Value must be between ${e} and ${n} characters`}}function p0(e){const{i18n:{t:n}}=Ye();return function(o){if(!JU(o))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 vo(e,n){const{i18n:{t:r}}=Ye();return function(i){if(i==null)return;const a=p0(n)(i);if(a)return a;const s=Number(i);switch(e){case"float":{const l=()=>n?typeof n=="string"?n:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_float",n):"Invalid float format";return Number.isFinite(s)?void 0:l()}case"integer":{const l=()=>n?typeof n=="string"?n:r("plugins.free-form.datakit.flow_editor.node_properties.errors.not_integer",n):"Invalid integer format";return Number.isInteger(s)?void 0:l()}default:return}}}function Jr(e=-1/0,n=1/0,r){const{i18n:{t:o}}=Ye();return function(a){if(a==null)return;const s=p0(r)(a);if(s)return s;const l=Number(a);if(l<e||l>n)return r?typeof r=="string"?r:o("plugins.free-form.datakit.flow_editor.node_properties.errors.number_range",{fieldName:r.fieldName,min:e,max:n}):`Value must be between ${e} and ${n}`}}function XU(e,n){const{state:r}=Ct(),{i18n:{t:o}}=Ye();return function(a){if(r.value.nodes.some(s=>s.name===a&&s.id!==e))return n?typeof n=="string"?n:o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",n):"Name must be unique."}}function ZU(e,n,r){const{i18n:{t:o}}=Ye();return function(a){if(!n)return;if(r?n.fields[e].some(l=>l.name===a&&l.id!==r):n.fields[e].some(l=>l.name===a)){const l=o(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 o("plugins.free-form.datakit.flow_editor.node_properties.errors.not_unique",{fieldName:l})}}}function QU(){const{i18n:{t:e}}=Ye();return function(r){if(gf(r))return e("plugins.free-form.datakit.flow_editor.node_properties.errors.reserved_node_name",{nodeName:r})}}function m0(e){const{i18n:{t:n}}=Ye(),r={fieldName:n("plugins.free-form.datakit.flow_editor.node_properties.name")};return Xt(Io(r),f0("identifier",r),QU(),XU(e,r))}function ej(e){const{i18n:{t:n}}=Ye(),{getNodeById:r}=Ct();return function(i,a,s){const l={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 Xt(Io(l),ZU(i,r(e),s))(a)}}function tj(e){const n=t.ref({}),r=t.computed(()=>Object.values(n.value).every(s=>!s)),o={};Object.keys(e).forEach(s=>{const l=e[s],c=f=>{const p=typeof f=="function"?f():f,m=l(p);return n.value[s]=m,m},d=()=>{n.value[s]=void 0},u=f=>(d(),c(f));o[s]={handleChange:u,handleBlur:u,validate:u,isValid:t.computed(()=>n.value[s]===void 0),error:t.computed(()=>n.value[s])}});function i(){n.value={}}function a(s){for(const l of Object.keys(e)){const c=s[l],d=typeof c=="function"?c():c;o[l]?.validate(d)}return n.value}return{isValid:r,errorMap:n,fields:o,clearErrors:i,validate:a}}function Ir(e){const{validationConfig:n,getValidationData:r,toggleNodeValid:o}=e,{skipValidation:i}=Ct(),a=t.computed(()=>typeof n=="function"?n():n),s=t.computed(()=>tj(a.value)),l=t.computed(()=>s.value.fields),c=t.computed(()=>s.value.isValid.value);function d(){const f=r(),p=s.value.validate(f),m={};for(const g in a.value)m[g]=p[g];return m}function u(f,p){const m=()=>{const _=r(),h=l.value[f];h&&h.handleBlur(_[f])},g=()=>{p?.();const _=r(),h=l.value[f];h&&h.handleChange(_[f])};return t.computed(()=>{const _=l.value[f];return{validate:m,update:g,error:_?!_.isValid.value:!1,errorMessage:_?_.error.value??"":""}})}return t.onMounted(()=>{i.value?i.value=!1:d()}),t.onBeforeUnmount(async()=>{try{const f=d(),p=Object.values(f).filter(Boolean).length>0;o(!p)}catch{}}),t.watch(()=>c.value,o,{immediate:!0}),{fields:l.value,isValid:c,validateAll:d,createFieldHandler:u}}function rn(e,n){const{state:r,renameNode:o,getNodeById:i,addField:a,renameField:s,removeField:l,replaceConfig:c,disconnectEdge:d,connectEdge:u,invalidConfigNodeIds:f,commit:p,revert:m}=Ct(),{i18n:{t:g}}=Ye(),_=Kb(),h=t.computed(()=>{const j=i(e);if(!j)throw new Error("Node not existed");return j}),y=t.computed(()=>{const G=r.value.edges.filter($=>$.target===e).reduce(($,pe)=>{const de=i(pe.source),M=Kr(de,"output",pe.sourceField)?.id,ue=Kr(h.value,"input",pe.targetField)?.name,ne=de.id+(M?`.${M}`:"");return ue?$.inputs={...$.inputs,[ue]:ne}:$.input=ne,$},{});return h.value.fields.input.forEach($=>{G.inputs||(G.inputs={}),G.inputs[$.name]||(G.inputs[$.name]=null)}),{...h.value.config,...G,name:h.value.name}}),w=j=>{o(e,j??"",!0,`${e}:rename`)},b=(j,G=!0)=>{if(!n)throw new Error("getFormValue is not defined");const $=go(n(),["name","input","inputs"]),pe=j?`update:${e}:${j}`:void 0;c(e,$,G,pe)},E=(j,G)=>{const $=wr(h.value,j,G);if(!$)throw new Error(`Field with name "${G}" not found in node "${h.value.name}"`);return $},k=(j,G,$)=>{const pe=!!$;a(e,j,G,!pe),pe&&O(G,$)},N=(j,G,$)=>{const pe=E(j,G).id;s(e,pe,$)},T=(j,G)=>{const $=E(j,G).id;l(e,$)},x=t.computed(()=>r.value.edges.filter(j=>j.target===e&&!j.targetField)[0]),B=t.computed(()=>r.value.edges.filter(j=>j.target===e&&j.targetField)),O=async(j,G)=>{const $=G==null,pe=E("input",j).id;if($){const le=B.value.find(re=>re.targetField===pe);le&&d(le.id);return}const{nodeId:de,fieldId:M}=j_(G),ue=E("input",j).id,ne=[];x.value&&(ne.push(Va(x.value,i)),d(x.value.id,!1));const ae=B.value.find(le=>le.targetField===pe);ae&&(ne.push(Va(ae,i)),d(ae.id,!1)),u({source:de,sourceField:M,target:e,targetField:ue},!1);const ze=kf(de,M,e,ue,i),Ie=ne[0]&&ze?ne[0][1]===ze[1]:!1;if(p(),Ie||ne.length===0)return;await _(g("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[ze],ne)||m()},A=async j=>{if(j==null){x.value&&d(x.value.id);return}const $=[];for(const ne of B.value)$.push(Va(ne,i)),d(ne.id,!1);x.value&&d(x.value.id,!1);const{nodeId:pe,fieldId:de}=j_(j);u({source:pe,sourceField:de,target:e,targetField:void 0},!1);const M=kf(pe,de,e,void 0,i);if(p(),$.length===0)return;await _(g("plugins.free-form.datakit.flow_editor.confirm.message.switch"),[M],$)||m()},I=j=>{const G=[...r.value.edges,{source:j,target:e}];return $f(Il(G))},V=t.computed(()=>{const j=[];for(const G of r.value.nodes)if(si(G.type).io?.output&&G.fields.output&&G.id!==e&&!(G.type==="property"&&!cf(G.config?.property))&&!I(G.id)&&!(h.value.phase==="request"&&G.phase==="response")&&!(G.type==="vault"&&G.fields.output.length===0)){j.push({value:G.id,label:G.name,type:G.type});for(const pe of G.fields.output)j.push({value:`${G.id}.${pe.id}`,label:`${G.name}.${pe.name}`,type:G.type})}return j}),L=t.computed(()=>h.value.fields.input.map(j=>j.name)||[]);function R(j){f.value.delete(e),j||f.value.add(e)}const Z=ej(e);function ee(j,G,$){const pe=i(e);if(!pe)throw new Error("Node not found when validating field name");const de=wr(pe,j,G);return Z(j,$,de?.id)}return{formData:y,inputOptions:V,inputEdge:x,inputsEdges:B,inputsFieldNames:L,currentNode:h,setName:w,setConfig:b,addField:k,renameFieldByName:N,removeFieldByName:T,setInputs:O,setInput:A,nameValidator:m0(e),fieldNameValidator:ee,toggleNodeValid:R}}function on(e){const{getSchema:n}=S.useFormShared();return t.computed(()=>{if(tn(e))switch(e){case"response":return YU;case"service_request":return WU}try{const o=n().fields.find(d=>fl(d,"config"));if(!o)throw new Error("Config field not found in schema.");const a=o.config.fields.find(d=>fl(d,"nodes"));if(!a)throw new Error("Nodes field not found in config schema.");const c=a.nodes.elements.subschema_definitions[e];if(!c)throw new Error(`Subschema "${e}" not found in the schema.`);return c}catch(r){throw new Error(`Failed to get subschema "${e}": ${r.message}`)}})}function g0(e){return!!e?.fields?.find(i=>"config"in i)?.config?.fields?.find(i=>"nodes"in i)?.nodes?.elements?.subschema_definitions?.call?.fields?.some(i=>"continue_on_error"in i)}function h0(){const{getSchema:e}=S.useFormShared();return t.computed(()=>g0(e()))}const nj={class:"label-content"},rj={class:"count"},oj={class:"label-content"},ij={class:"count"},y0=.5,Qp=.03,aj=30,em=ve(t.defineComponent({__name:"FlowPanels",props:{inactive:{type:Boolean},mode:{},resizable:{type:Boolean}},setup(e){const{t:n}=It.createI18n("en-us",Bt),r=t.ref(!1),o=t.ref(!1),{responsePanelCollapsed:i}=Cc(),{state:a,configNodeCounts:s,clearPendingLayout:l,setPendingFitView:c,commit:d,clear:u,portalSelection:f}=Ct(),p=t.useId(),m=`${p}-request`,g=`${p}-response`,_=yt.useVueFlow(m),h=yt.useVueFlow(g);function y(re,D){const{onPaneClick:te,onNodesChange:fe,onEdgesChange:Ee,getSelectedNodes:Re,getSelectedEdges:Pe}=re,{removeSelectedElements:ke}=D;function Ae(Ce){if(!Ce){ke();return}Ce.some(oe=>oe.type==="select")&&Re.value.length+Pe.value.length>0&&ke()}fe(Ae),Ee(Ae),te(()=>Ae())}y(_,h),y(h,_),t.watch(f,re=>{re&&(_.removeSelectedElements(),h.removeSelectedElements())});const w=t.useTemplateRef("flowPanels"),b=t.useTemplateRef("requestLabel"),E=t.useTemplateRef("requestCanvasContainer"),k=t.useTemplateRef("requestFlow"),N=t.useTemplateRef("resizeHandle"),T=t.useTemplateRef("responseLabel"),x=t.useTemplateRef("responseCanvasContainer"),B=t.useTemplateRef("responseFlow"),O=Et.useElementBounding(w),A=Et.useElementBounding(b),I=Et.useElementBounding(E),V=Et.useElementBounding(N),L=Et.useElementBounding(T),R=Et.useElementBounding(x),Z=t.computed(()=>Math.max(aj,O.height.value*Qp)),ee=t.computed(()=>O.height.value-A.height.value-V.height.value-L.height.value),j=t.computed(()=>{const re=ee.value;return re?Math.max(Qp,Z.value/re):Qp}),G=t.ref(y0),$=t.computed(()=>`${G.value*100}%`),pe=t.computed(()=>`${(1-G.value)*100}%`),de=t.computed(()=>G.value<=j.value),M=t.computed(()=>1-G.value<=j.value);function ue(re,{persist:D=!0}={}){const te=Math.min(1,Math.max(0,re));G.value=te,D&&e.mode==="edit"&&(i.value=M.value)}function ne(re,D=!0){ue(re?1:y0,{persist:D})}function ae(re=!0){ue(0,{persist:re})}if(e.mode==="edit"){const re=s.value.response===0,D=i.value;ne(re||D,!1)}else t.watch(()=>s.value.response,re=>{ne(re===0,!1)},{immediate:!0});const ze=()=>{e.resizable&&(de.value?ne(!1):ae())},Ie=()=>{e.resizable&&ne(!M.value)},{isDragging:je}=Et.useDraggable(N,{onMove(re){if(!e.resizable)return;const D=Math.max(0,re.y-I.top.value),te=Math.min(1,Math.max(0,D/ee.value));ue(te,{persist:!1})},onEnd(){e.resizable&&(I.height.value<Z.value?ae():R.height.value<Z.value?ne(!0):ue(G.value))}});function le(){t.nextTick(()=>{k.value?.fitView(),B.value?.fitView()})}return t.watch([r,o,()=>a.value.pendingLayout,()=>a.value.pendingFitView],([re,D,te,fe])=>{e.inactive||!re||!D||!te&&!fe||(te&&l(),fe&&c(!1),setTimeout(async()=>{te&&(await k.value?.autoLayout(!1),await B.value?.autoLayout(!1),d("*"),te==="clearHistory"&&u()),fe&&setTimeout(()=>le(),0)},0))}),(re,D)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"flowPanels",ref:w,class:"flow-panels"},[t.createElementVNode("div",{ref_key:"requestLabel",ref:b,class:t.normalizeClass(["label request",{resizable:e.resizable}]),onClick:ze},[e.resizable?(t.openBlock(),t.createBlock(t.unref(Ne.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:de.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",nj,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.request"))+" ",1),t.createElementVNode("span",rj,[t.unref(s).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(s).request}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"requestCanvasContainer",ref:E,class:t.normalizeClass(["canvas",{dragging:t.unref(je)}]),style:t.normalizeStyle({flexBasis:$.value})},[t.createVNode(Mf,{ref_key:"requestFlow",ref:k,"flow-id":m,mode:e.mode,phase:"request",onInitialized:D[0]||(D[0]=te=>r.value=!0),onNodesChange:D[1]||(D[1]=te=>r.value=!1)},null,8,["mode"])],6),t.createElementVNode("div",{ref_key:"resizeHandle",ref:N,class:t.normalizeClass(["resize-handle",{resizable:e.resizable}])},null,2),t.createElementVNode("div",{ref_key:"responseLabel",ref:T,class:t.normalizeClass(["label response",{dragging:t.unref(je),resizable:e.resizable}]),onClick:Ie},[e.resizable?(t.openBlock(),t.createBlock(t.unref(Ne.ChevronDownIcon),{key:0,class:t.normalizeClass(["icon",{collapsed:M.value}])},null,8,["class"])):t.createCommentVNode("",!0),t.createElementVNode("div",oj,[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.canvas_panel.response"))+" ",1),t.createElementVNode("span",ij,[t.unref(s).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(s).response}))+") ",1)],64))])])],2),t.createElementVNode("div",{ref_key:"responseCanvasContainer",ref:x,class:t.normalizeClass(["canvas response",{dragging:t.unref(je)}]),style:t.normalizeStyle({flexBasis:pe.value})},[t.createVNode(Mf,{ref_key:"responseFlow",ref:B,"flow-id":g,mode:e.mode,phase:"response",onInitialized:D[2]||(D[2]=te=>o.value=!0),onNodesChange:D[3]||(D[3]=te=>o.value=!1)},null,8,["mode"])],6)],512))}}),[["__scopeId","data-v-5a4fec80"]]),sj={class:"dk-confirm-modal-body"},lj={class:"connections"},cj=ve(t.defineComponent({__name:"ConflictModal",props:{title:{},message:{},addedConnections:{},removedConnections:{}},emits:["cancel","confirm"],setup(e,{expose:n,emit:r}){const{i18n:{t:o}}=Ye(),i=r,a=t.ref(!1),s=t.ref(e.message),l=t.ref(e.addedConnections??[]),c=t.ref(e.removedConnections??[]);let d=null;function u(){a.value=!1,i("cancel"),d?.(!1)}function f(){a.value=!1,i("confirm"),d?.(!0)}async function p(m,g,_){return s.value=m,l.value=g??[],c.value=_??[],a.value=!0,await new Promise(h=>{d=h})}return n({open:p}),(m,g)=>{const _=t.resolveComponent("KModal");return t.openBlock(),t.createBlock(_,{"action-button-text":t.unref(o)("plugins.free-form.datakit.flow_editor.confirm.proceed"),"close-on-backdrop-click":"","max-width":"660px",title:e.title??t.unref(o)("plugins.free-form.datakit.flow_editor.confirm.title"),visible:a.value,"z-index":9999,onCancel:u,onProceed:f},{default:t.withCtx(()=>[t.createElementVNode("div",sj,[t.createElementVNode("p",null,t.toDisplayString(s.value),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("plugins.free-form.datakit.flow_editor.confirm.message.confirm")),1),t.createElementVNode("div",lj,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value??[],([h,y])=>(t.openBlock(),t.createElementBlock("div",{key:`${h}-${y}`,class:"connection"},[t.createVNode(t.unref(Ne.AddIcon),{color:`var(--kui-color-background-success, ${t.unref(mS)})`},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(h)+" → "+t.toDisplayString(y),1)]))),128)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value??[],([h,y])=>(t.openBlock(),t.createElementBlock("div",{key:`${h}-${y}`,class:"connection"},[t.createVNode(t.unref(Ne.RemoveIcon),{color:`var(--kui-color-text-danger, ${t.unref(Jh)})`},null,8,["color"]),t.createTextVNode(" "+t.toDisplayString(h)+" → "+t.toDisplayString(y),1)]))),128))])])]),_:1},8,["action-button-text","title","visible"])}}}),[["__scopeId","data-v-e6df03c2"]]),dj={class:"dk-editor-nav"},uj={class:"top"},fj={class:"bottom"},pj=ve(t.defineComponent({__name:"EditorNav",emits:["back"],setup(e,{emit:n}){const{t:r}=It.createI18n("en-us",Bt),o=n,i=[{label:r("plugins.free-form.datakit.flow_editor.return_to_config"),icon:Ne.ArrowLeftIcon,onClick:()=>o("back")}],{sidePanelExpanded:a}=Cc(),s=t.computed(()=>a.value?r("plugins.free-form.datakit.flow_editor.collapse_panel"):r("plugins.free-form.datakit.flow_editor.expand_panel")),l=t.ref(!1);function c(){a.value=!a.value}return(d,u)=>(t.openBlock(),t.createElementBlock("nav",dj,[t.createElementVNode("div",uj,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,({label:f,to:p,icon:m,onClick:g})=>t.createVNode(t.unref(be.KTooltip),{key:f,"kpop-attributes":{offset:"10px"},label:f,placement:"right"},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.unref(be.KButton),{key:f,appearance:"none",class:"nav-item",icon:"",to:p,onClick:g},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m),{decorative:"",size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]))]),_:2},1032,["to","onClick"]))]),_:2},1032,["label"])),64))]),t.createElementVNode("div",fj,[t.createElementVNode("div",{class:t.normalizeClass(["side-panel-toggle",{expanded:t.unref(a)}]),onTransitionend:u[0]||(u[0]=t.withModifiers(f=>l.value=!1,["self"])),onTransitionstart:u[1]||(u[1]=t.withModifiers(f=>l.value=!0,["self"]))},[t.createVNode(t.unref(be.KTooltip),{label:l.value?void 0:s.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(Ne.ChevronDoubleLeftIcon),{key:0,decorative:"",size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"])):(t.openBlock(),t.createBlock(t.unref(Ne.ChevronDoubleRightIcon),{key:1,decorative:"",size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]))]),_:1})]),_:1},8,["label","placement"])],34)])]))}}),[["__scopeId","data-v-07aa3288"]]),mj={class:"dk-editor-main"},gj={class:"header"},hj={class:"actions"},yj={class:"settings"},_j={ref:"canvasContainer",class:"body"},bj=ve(t.defineComponent({__name:"EditorMain",setup(e){const{t:n}=It.createI18n("en-us",Bt),{modalOpen:r,undo:o,redo:i,canUndo:a,canRedo:s,load:l}=Ct();function c(p){return n(`plugins.free-form.datakit.examples.${p}`)}function d(p){const m=zr(p.code,{schema:ko,json:!0});if(typeof m!="object"||m===null)return;const g=m,_={config:{...g,nodes:g.nodes??[]}};l(_,!0)}function u(){r.value=!1}Yh({enabled:r,undo:o,redo:i});const f={maxWidth:"300px",zIndex:1e4};return(p,m)=>(t.openBlock(),t.createElementBlock("div",mj,[t.createElementVNode("header",gj,[t.createElementVNode("div",hj,[t.createVNode(t.unref(be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Tl,{keys:t.unref(rl).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(o)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.UndoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),t.createVNode(t.unref(be.KTooltip),{"z-index":1e4},{content:t.withCtx(()=>[t.createVNode(Tl,{keys:t.unref(rl).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(s),icon:"",onClick:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.RedoIcon))]),_:1},8,["disabled","onClick"])]),_:1}),m[0]||(m[0]=t.createElementVNode("div",{class:"divider"},null,-1)),t.createElementVNode("div",yj,[t.createVNode(t.unref(S.BooleanField),{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:f},name:"config.debug"},null,8,["label","label-attributes"])]),m[1]||(m[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(t.unref(u0),g=>(t.openBlock(),t.createBlock(t.unref(be.KDropdownItem),{key:g.id,onClick:_=>d(g)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(c(g.i18nKey)),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(Ne.ExternalLinkIcon))]),_:1}),t.createVNode(t.unref(be.KButton),{onClick:u},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.actions.done")),1)]),_:1})])]),t.createElementVNode("div",_j,[t.createVNode(em,{mode:"edit",resizable:""})],512)]))}}),[["__scopeId","data-v-73f13ca0"]]),wj=["draggable"],kj={class:"icon"},Cj={class:"content"},Ej={class:"title"},Nj={class:"description"},Sj=ve(t.defineComponent({__name:"NodePanelItem",props:{type:{},unsupported:{type:Boolean}},emits:["dragstart"],setup(e,{emit:n}){t.useCssVars(c=>({f502bd0e:t.unref(a),v4b2eb58e:t.unref(s)}));const r=n,{summary:o,icon:i}=hl[e.type],{colors:{background:a,foreground:s}}=kB(hl[e.type].group);function l(c){r("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:l},[t.createElementVNode("div",kj,[t.createVNode(t.unref(i),{size:16})]),t.createElementVNode("div",Cj,[t.createElementVNode("div",Ej,t.toDisplayString(e.type),1),t.createElementVNode("div",Nj,t.toDisplayString(t.unref(o)),1)])],42,wj))}}),[["__scopeId","data-v-829422ff"]]),Aj={class:"dk-node-panel"},xj={key:0,class:"title"},Ij={class:"node-list"},vj={class:"group-title"},Tj={class:"group-items"},Oj={"aria-hidden":"true",class:"preview",inert:""},Bj=ve(t.defineComponent({__name:"NodePanel",props:{hideTitle:{type:Boolean}},setup(e){const{t:n}=It.createI18n("en-us",Bt),{createNode:r}=Ct(),o=t.inject(kn.KM_2446_DATAKIT_JWT_NODES,!1),i=t.computed(()=>o?U_:U_.filter(({id:d})=>d!=="authentication")),a=`dk-drag-preview-${t.useId()}`,s=t.shallowRef(),l=t.computed(()=>s.value?[{id:"preview",type:"flow",data:s.value,position:{x:0,y:0}}]:[]),c=async(d,u)=>{const f=d.currentTarget,{left:p,top:m,width:g,height:_}=f.getBoundingClientRect(),h=d.clientX-p,y=d.clientY-m;s.value=r({type:u}),await t.nextTick();const w=document.querySelector(`#${a}`)||f,b=w.cloneNode(!0);b.classList.add("dk-drag-snapshot");const{offsetWidth:E,offsetHeight:k}=w;Object.assign(b.style,{position:"absolute",top:"-9999px",left:"-9999px",width:`${E}px`,height:`${k}px`}),document.body.appendChild(b);const N=h/g,T=y/_,x={ratioX:N,ratioY:T,offsetX:E*N,offsetY:k*T},B={action:"create-node",data:{type:u,anchor:x}};d.dataTransfer?.setData(_a,JSON.stringify(B)),d.dataTransfer?.setData(`${_a}/${u}`,u),d.dataTransfer?.setDragImage(b,x.offsetX,x.offsetY),requestAnimationFrame(()=>{b.remove(),s.value=void 0})};return(d,u)=>{const f=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",Aj,[e.hideTitle?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("h3",xj,[t.createVNode(f,{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",Ij,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.value,p=>(t.openBlock(),t.createElementBlock("section",{key:p.id,class:"node-group"},[t.createElementVNode("h4",vj,t.toDisplayString(p.title),1),t.createElementVNode("div",Tj,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.nodes,m=>(t.openBlock(),t.createBlock(Sj,{key:m.type,type:m.type,onDragstart:c},null,8,["type"]))),128))])]))),128))]),t.createElementVNode("div",Oj,[t.createVNode(t.unref(yt.VueFlow),{nodes:l.value},{"node-flow":t.withCtx(p=>[t.createVNode(Hb,{id:a,data:p.data},null,8,["data"])]),_:1},8,["nodes"])])])}}}),[["__scopeId","data-v-f2040974"]]);function Pj(){const{addField:e,getNodeByName:n,removeField:r,replaceConfig:o,renameField:i,disconnectOutEdges:a,nodeMapByName:s}=Ct(),l=n("vault");if(!l)throw new Error("no vault node");const c=t.computed(()=>s.value.get("vault")?.config||{});return{formData:t.computed(()=>({vault:{...c.value}})),addVault:(g,_)=>{e(l.id,"output",g,!1);const h={...l.config,[g]:_};o(l.id,h)},removeVault:g=>{const _=wr(l,"output",g);if(!_)return;const h=l.fields.output.length===1;r(l.id,_.id,!0,!1);const y=go(l.config,g);o(l.id,y,!h),h&&a(l.id)},updateVault:(g,_,h=!0)=>{const y={...l.config,[g]:_};o(l.id,y,h)},renameVault:(g,_,h=!0)=>{const y=wr(l,"output",g);if(!y)return;i(l.id,y.id,_,!1);const w=l.config?.[g]??"",b={...go(l.config,g),[_]:w};o(l.id,b,h)}}}const Vj=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 r=n,{i18n:{t:o}}=nt.useI18n(),i=t.inject(Ze.FORMS_CONFIG),a=t.ref(e.secretName||""),s=t.ref(""),l=t.computed(()=>a.value.trim()?e.validateName(a.value.trim(),e.isEditing)===void 0:!1),c=t.computed(()=>!l.value),d=()=>{const m=a.value.trim(),g=e.validateName(m,e.isEditing);return s.value=g||"",g===void 0},u=()=>{s.value="",d()},f=m=>{d()&&r("proceed",{secretRef:m,secretName:a.value.trim()})},p=()=>{a.value="",s.value="",r("cancel")};return t.watch(()=>e.secretName,m=>{a.value=m||"",s.value=""}),(m,g)=>{const _=t.resolveComponent("KInput"),h=t.resolveComponent("KEmptyState");return t.unref(i)?(t.openBlock(),t.createBlock(t.unref(Iu.VaultSecretPicker),{key:0,"additional-disabled":c.value,config:t.unref(i),"proceed-button-text":t.unref(o)("plugins.free-form.datakit.flow_editor.vault_secret_picker.proceed_button_text"),setup:e.secretRef,title:t.unref(o)("plugins.free-form.datakit.flow_editor.vault_secret_picker.title"),onCancel:p,onProceed:f},{"form-prefix":t.withCtx(()=>[t.createVNode(_,{"model-value":a.value,"onUpdate:modelValue":[g[0]||(g[0]=y=>a.value=y),u],"data-testid":"vault-secret-picker-secret-name-input",error:!!s.value,"error-message":s.value,label:t.unref(o)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.label"),"label-attributes":{info:t.unref(o)("plugins.free-form.datakit.flow_editor.vault_secret_picker.secret_name.help")},placeholder:t.unref(o)("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(h,{key:1,"icon-variant":"error",message:t.unref(o)("plugins.free-form.vault_picker.component_error")},null,8,["message"]))}}}),$j={class:"dk-vault-panel"},Rj={class:"title"},Lj={class:"vault-list"},Fj={key:0,class:"vault-list-item"},Dj={class:"vault-list-item-key"},Mj={class:"vault-list-item-key-text"},Uj=ve(t.defineComponent({__name:"VaultField",props:{autofocus:{type:Boolean},name:{},labelAttributes:{}},emits:["update","add","remove"],setup(e,{emit:n}){const r=e,o=n,{keys:i,addKey:a,removeKey:s,updateKey:l,getKeyName:c}=S.useMapField(t.toRef(r,"name")),d=S.useField(t.toRef(r,"name")),u=t.ref(null),f=t.ref(null),p=t.computed(()=>{if(!u.value)return null;const k=c(u.value),N=d.value?d.value.value[u.value]:void 0;return k===void 0||N===void 0?null:{id:u.value,key:k,value:N}}),{i18n:{t:m}}=nt.useI18n(),g=t.computed(()=>new Set(i.value.map(([,k])=>k))),_=()=>{if(!d.value)return;const N=a();f.value=N,u.value=N},h=()=>{u.value=null,f.value&&(s(f.value),f.value=null)},y=k=>{if(!p.value)throw new Error("no selected entry");const N=p.value.key,T=N!==k.secretName,x=p.value.value!==k.secretRef,B=T||x;p.value.value=k.secretRef,p.value.key=k.secretName,x&&(d.value.value[p.value.id]=k.secretRef),T&&l(p.value.id,k.secretName),f.value?o("add",k.secretName,k.secretRef):B&&o("update",k.secretName,k.secretRef,T?N:void 0),f.value=null,h()},w=k=>{u.value=k},b=k=>{const N=c(k);s(k),o("remove",N)},E=(k,N)=>{if(!k)return m("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_required_error");if(g.value.has(k)&&!(N&&k===p.value?.key))return m("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.name_exists_error")};return(k,N)=>{const T=t.resolveComponent("KButton"),x=t.resolveComponent("KDropdownItem"),B=t.resolveComponent("KDropdown");return t.openBlock(),t.createElementBlock("div",$j,[t.createElementVNode("h3",Rj,t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.title")),1),t.createVNode(T,{appearance:"tertiary",class:"add-button",size:"small",onClick:_},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.add_button")),1)]),_:1}),t.createElementVNode("div",Lj,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i),([O,A])=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:O},[A?(t.openBlock(),t.createElementBlock("div",Fj,[t.createElementVNode("div",Dj,[t.createVNode(t.unref(Ne.KeyIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:16},null,8,["color"]),t.createElementVNode("div",Mj,t.toDisplayString(A),1)]),t.createVNode(B,null,{items:t.withCtx(()=>[t.createVNode(x,{onClick:I=>w(O)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1},8,["onClick"]),t.createVNode(x,{danger:"",onClick:I=>b(O)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1},8,["onClick"])]),default:t.withCtx(()=>[t.createVNode(T,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{color:`var(--kui-color-text, ${t.unref(vu)})`},null,8,["color"])]),_:1})]),_:2},1024)])):t.createCommentVNode("",!0)],64))),128))]),t.createVNode(Vj,{"is-editing":!!u.value&&!f.value,"secret-name":p.value?.key,"secret-ref":p.value?.value,"validate-name":E,onCancel:h,onProceed:y},null,8,["is-editing","secret-name","secret-ref"])])}}}),[["__scopeId","data-v-b9115855"]]);function jj(){const{getSchema:e}=S.useFormShared();return t.computed(()=>{const n=e("config.resources");if(!n)throw new Error("Failed to get resource schema");const r=br(n);return r.fields.forEach(o=>{const i=Object.keys(o)[0];if(i==="cache"){const a=o[i];o[i]={...a,fields:[...a.fields,{partial_id:{type:"string"}}]},a.fields.forEach(s=>{const l=Object.keys(s)[0];if(l==="redis"){const c=s[l];s[l]={...c},delete s[l].required}})}}),r})}const Kj={key:1},qj=["innerHTML"],tm=ve(t.defineComponent({__name:"RadioField",props:{labelAttributes:{},multiple:{type:Boolean},items:{},label:{},card:{type:Boolean},autofocus:{type:Boolean},name:{}},emits:["update:modelValue"],setup(e,{emit:n}){const r=n,o=t.createPropsRestProxy(e,["name","items","card"]),{getSelectItems:i}=S.useFormShared(),a=S.useField(t.toRef(()=>e.name)),s=S.useFieldAttrs(a.path,o),l=t.computed(()=>e.items?e.items:a.path?i(a.path.value):[]),c=d=>{a.value&&(a.value.value=d),r("update:modelValue",d)};return(d,u)=>{const f=t.resolveComponent("KAlert"),p=t.resolveComponent("KLabel");return t.unref(a).error?(t.openBlock(),t.createBlock(f,{key:0,appearance:"danger",message:t.unref(a).error.message},null,8,["message"])):t.withDirectives((t.openBlock(),t.createElementBlock("div",Kj,[t.createVNode(p,t.normalizeProps(t.guardReactiveProps(t.unref(s).labelAttributes)),t.createSlots({default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s).label)+" ",1)]),_:2},[t.unref(s).labelAttributes?.info?{name:"tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:t.unref(s).labelAttributes.info},null,8,qj)]),key:"0"}:void 0]),1040),t.createElementVNode("div",{class:t.normalizeClass(["horizontal-container",{"ff-radio-field-cards":e.card}])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,m=>(t.openBlock(),t.createBlock(t.unref(be.KRadio),{key:m.value,"model-value":t.unref(a).value.value,"onUpdate:modelValue":[u[0]||(u[0]=g=>t.unref(a).value.value=g),c],card:e.card,"card-orientation":"horizontal","data-testid":`ff-radio-${t.unref(a).path.value}-${m.value}`,description:m.description,label:m.label,"selected-value":m.value},null,8,["model-value","card","data-testid","description","label","selected-value"]))),128))],2)],512)),[[t.vShow,!t.unref(a).hide.value]])}}}),[["__scopeId","data-v-cabfc90b"]]),Gj={class:"dk-cache-panel"},zj={class:"title"},Hj={key:0,class:"cache-item"},Wj={class:"cache-item-key"},Yj={class:"cache-item-key-text"},Jj={class:"dk-resource-cache-form"},Xj={key:1},Zj={key:2,class:"dk-cache-inline-redis"},Qj={key:3,class:"dk-cache-redis-editor"},eK={key:0,class:"redis-editor-error"},tK=ve(t.defineComponent({__name:"CacheField",props:{strategy:{}},emits:["update","remove","cancel"],setup(e,{emit:n}){const r=t.inject("app:konnectColorMode",t.computed(()=>"light")),o=Jl({host:"127.0.0.1",port:6379},{indent:2}),i=n,{getDefault:a,formData:s}=S.useFormShared(),l=S.useField("cache");if(l.error)throw new Error("No cache schema");const c=t.inject(Fl),d=t.computed(()=>!!c),u=t.shallowRef(""),f=t.ref(""),p=t.ref(!1),{i18n:{t:m}}=nt.useI18n(),g=t.computed(()=>_.value==="redis"?d.value?!!(s.cache?.partial_id||s.cache?.redis):!!s.cache?.redis&&!f.value:!0),_=t.computed(()=>l.value.value?.strategy),h=t.computed(()=>l.value.value?.redis?Jl(l.value.value.redis,{indent:2,noRefs:!0}):"");t.watch([p,_],([x,B])=>{x&&B==="redis"&&!d.value&&(u.value=h.value||o,f.value="")}),t.watch(u,x=>{if(!d.value&&_.value==="redis")try{const B=zr(x,{json:!0});B&&typeof B=="object"&&(s.cache.redis=B,f.value="")}catch(B){f.value=B.message?.split(`
|
|
452
|
-
`)[0]||"Invalid YAML"}});const y=()=>{p.value=!0},w=()=>{p.value=!1,i("cancel")},b=()=>{i("remove")},E=()=>{y(),l.value.value||(l.value.value=a("cache"),l.value.value.strategy="memory")},k=()=>{p.value=!1,i("update",s)},N=()=>{_.value==="memory"&&s.cache?.partial_id&&delete s.cache?.partial_id};async function T({codeElement:x,language:B,code:O}){x.innerHTML=await oS.codeToHtml(O,{lang:B,theme:"material-theme-darker",structure:"inline"})}return(x,B)=>{const O=t.resolveComponent("KButton"),A=t.resolveComponent("KDropdownItem"),I=t.resolveComponent("KDropdown"),V=t.resolveComponent("KLabel"),L=t.resolveComponent("KCodeBlock"),R=t.resolveComponent("KModal");return t.openBlock(),t.createElementBlock("div",Gj,[t.createElementVNode("h3",zj,t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title")),1),e.strategy?(t.openBlock(),t.createElementBlock("div",Hj,[t.createElementVNode("div",Wj,[t.createVNode(t.unref(Ne.DatabaseIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["color","size"]),t.createElementVNode("div",Yj,t.toDisplayString(e.strategy),1)]),t.createVNode(I,null,{items:t.withCtx(()=>[t.createVNode(A,{onClick:y},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1}),t.createVNode(A,{danger:"",onClick:b},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1})]),default:t.withCtx(()=>[t.createVNode(O,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{color:`var(--kui-color-text, ${t.unref(vu)})`},null,8,["color"])]),_:1})]),_:1})])):(t.openBlock(),t.createBlock(O,{key:1,appearance:"tertiary",class:"add-button",size:"small",onClick:E},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.add_button")),1)]),_:1})),t.createVNode(R,{"action-button-disabled":!g.value,"action-button-text":t.unref(m)("actions.save"),"max-width":"640px",title:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title"),visible:p.value,onCancel:w,onProceed:k},{default:t.withCtx(()=>[t.createElementVNode("div",Jj,[t.createVNode(tm,{items:[{label:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.memory"),value:"memory"},{label:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.redis"),value:"redis"}],name:"strategy","onUpdate:modelValue":N},null,8,["items"]),_.value==="memory"?(t.openBlock(),t.createBlock(t.unref(S.Field),{key:0,name:"memory.dictionary_name"})):t.createCommentVNode("",!0),_.value==="redis"&&d.value?(t.openBlock(),t.createElementBlock("div",Xj,[t.createVNode(V,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.select_redis_configuration")),1)]),_:1}),t.createVNode(t.unref(xu.RedisConfigurationSelector),{"model-value":t.unref(s).cache?.partial_id,"redis-type":"redis-ee","onUpdate:modelValue":B[0]||(B[0]=Z=>t.unref(s).cache.partial_id=Z)},null,8,["model-value"])])):t.createCommentVNode("",!0),_.value==="redis"&&d.value&&!t.unref(s).cache?.partial_id&&h.value?(t.openBlock(),t.createElementBlock("div",Zj,[t.createElementVNode("div",null,t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config_preview")),1),t.createVNode(L,{id:"dk-cache-redis-configuration",code:h.value,language:"yaml",theme:"dark",onCodeBlockRender:T},null,8,["code"])])):t.createCommentVNode("",!0),_.value==="redis"&&!d.value?(t.openBlock(),t.createElementBlock("div",Qj,[t.createVNode(V,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config")),1)]),_:1}),(t.openBlock(),t.createBlock(t.unref(ya.MonacoEditor),{key:t.unref(r),modelValue:u.value,"onUpdate:modelValue":B[1]||(B[1]=Z=>u.value=Z),appearance:"standalone",class:"redis-editor",language:"yaml",theme:t.unref(r)},null,8,["modelValue","theme"])),f.value?(t.openBlock(),t.createElementBlock("p",eK,t.toDisplayString(f.value),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)])]),_:1},8,["action-button-disabled","action-button-text","title","visible"])])}}}),[["__scopeId","data-v-97fb5e37"]]),nK={class:"dk-resources-panel"},rK=ve(t.defineComponent({__name:"ResourcesPanel",setup(e){const n=jj(),r=t.ref(0),{addVault:o,removeVault:i,updateVault:a,renameVault:s,formData:l}=Pj();function c(_,h,y){y&&y!==_&&s(y,_,!1),a(_,h)}const{state:d,commit:u}=Ct(),f=t.computed(()=>({cache:d.value.cacheConfig}));function p(_){d.value.cacheConfig=_.cache,u()}function m(){d.value.cacheConfig=void 0,u()}function g(){r.value++}return(_,h)=>(t.openBlock(),t.createElementBlock("div",nK,[t.createVNode(t.unref(S.Form),{data:t.unref(l),schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(Uj,{name:"vault",onAdd:t.unref(o),onRemove:t.unref(i),onUpdate:c},null,8,["onAdd","onRemove"])]),_:1},8,["data","schema"]),h[0]||(h[0]=t.createElementVNode("hr",{class:"dk-resources-divider"},null,-1)),(t.openBlock(),t.createBlock(t.unref(S.Form),{key:`${r.value}`,data:f.value,schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(tK,{strategy:f.value.cache?.strategy,onCancel:g,onRemove:m,onUpdate:p},null,8,["strategy"])]),_:1},8,["data","schema"]))]))}}),[["__scopeId","data-v-860ad9ac"]]),oK={class:"header"},iK={class:"title"},aK={class:"body"},sK={class:"panel"},lK=ve(t.defineComponent({__name:"SidePanel",setup(e){const{t:n}=It.createI18n("en-us",Bt),{sidePanelExpanded:r}=Cc(),{propertiesPanelOpen:o,selectedNode:i}=Ct(),a=t.ref("nodes");function s(){o.value=!1}t.watch(i,c=>{c||s()});const l=t.ref(!1);return t.onMounted(()=>{l.value=!0}),(c,d)=>{const u=t.resolveComponent("KSegmentedControl");return t.openBlock(),t.createElementBlock("aside",{class:t.normalizeClass(["side-panel",{expanded:t.unref(r),inited:l.value}])},[t.createElementVNode("header",oK,[t.createElementVNode("h2",iK,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.name")),1)]),t.createElementVNode("div",aK,[t.createElementVNode("div",sK,[t.createVNode(u,{modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=f=>a.value=f),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"]),a.value==="nodes"?(t.openBlock(),t.createBlock(Bj,{key:0,class:"node-panel","hide-title":""})):t.createCommentVNode("",!0),a.value==="resources"?(t.openBlock(),t.createBlock(rK,{key:1})):t.createCommentVNode("",!0)])])],2)}}}),[["__scopeId","data-v-9e854e60"]]),cK=t.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.unref(S.EnumField),{items:t.unref(S.toSelectItems)([...t.unref(D_)]),name:e.name},null,8,["items","name"]))}});function dK(e,n){const r=[],o=(i,a)=>{typeof a=="string"&&r.push({nodeName:e.name,path:["nodes",n,...i],value:a})};if("input"in e&&e.input!=null&&o(["input"],e.input),"inputs"in e&&e.inputs&&typeof e.inputs=="object")for(const[i,a]of Object.entries(e.inputs))a!=null&&o(["inputs",i],a);if("output"in e&&e.output!=null&&o(["output"],e.output),"outputs"in e&&e.outputs&&typeof e.outputs=="object")for(const[i,a]of Object.entries(e.outputs))a!=null&&o(["outputs",i],a);return r}function uK(e){const n=e.path[2];return n==="output"||n==="outputs"}function _0(e){if(!e)return!1;for(const n of Object.values(e))if(n!=null)return!0;return!1}function b0(e,n){const r=e.input!==void 0&&e.input!==null,o=_0(e.inputs);r&&o&&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=_0(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 w0(e,n,r){if(!e.nodes)return;const o=e.nodes.map(c=>c.name),i=new Set;o.forEach((c,d)=>{i.has(c)&&r.addIssue({code:"custom",message:`Duplicate node name: "${c}"`,path:["nodes",d,"name"]}),i.add(c)});const a=new Set([...n,...o]),s=new Map,l=new Map;e.nodes.forEach((c,d)=>{for(const u of dK(c,d)){const f=u.value.split(".",1)[0];if(a.has(f)||r.addIssue({code:"custom",message:`Unknown node "${f}" in connection "${u.value}"`,path:u.path}),uK(u)){const p=`${u.nodeName}->${f}`;l.has(p)?r.addIssue({code:"custom",message:`Connection specified on both sides: "${u.nodeName}" outputs to "${f}" and "${f}" inputs from "${u.nodeName}". Specify it on one side only.`,path:u.path}):s.set(p,s.get(p)??u.path)}else{const p=`${f}->${u.nodeName}`;s.has(p)?r.addIssue({code:"custom",message:`Connection specified on both sides: "${f}" outputs to "${u.nodeName}" and "${u.nodeName}" inputs from "${f}". Specify it on one side only.`,path:u.path}):l.set(p,l.get(p)??u.path)}}})}const fK=P.z.enum(L_),pK=P.z.enum(ri),k0=e=>ri.includes(e),nm=P.z.enum(F_),C0=nm.options;P.z.union([nm,fK]);const mK=/^[A-Za-z_][A-Za-z0-9_-]{0,254}$/,Ec=P.z.string().min(1).max(255).regex(mK,"Invalid node name (snake_case / kebab-case only)").refine(e=>!k0(e),"Name clashes with reserved implicit node").brand(),E0=P.z.union([pK,Ec]),gK=P.z.string().min(1).brand(),hK=["then","else"];P.z.enum(hK);const at=P.z.string().min(1).max(255).refine(e=>{if(E0.safeParse(e).success)return!0;const n=e.match(/^([^.]+)\.(.+)$/);if(!n)return!1;const[,r,o]=n;return E0.safeParse(r).success&&gK.safeParse(o).success},'Invalid connection, expected "NODE" or "NODE.FIELD"').nullish(),yK=P.z.object({body:at,headers:at,http_proxy:at,https_proxy:at,proxy_auth_password:at,proxy_auth_username:at,query:at,url:at}).partial().strict(),_K=P.z.object({headers:at,body:at}).partial().strict(),bK=P.z.object({data:at,key:at,ttl:at}).partial().strict(),wK=P.z.object({claims:at,key:at}).partial().strict(),kK=P.z.object({key:at,token:at}).partial().strict(),CK=P.z.enum(D_),N0=P.z.enum(uf),An=P.z.object({type:P.z.string(),name:Ec,input:at,inputs:P.z.record(P.z.string().min(1).max(255),at).nullish(),output:at,outputs:P.z.record(P.z.string().min(1).max(255),at).nullish()}).loose().superRefine((e,n)=>{b0(e,n)}),EK=P.z.object({type:P.z.string(),name:P.z.string()}).loose().superRefine((e,n)=>{const r=e.type,o=e.name;(typeof o!="string"||o.length===0||o.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"invalid node name",fatal:!1}),C0.includes(r)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${r}", expected one of: ${C0.join(", ")}`})}),NK=P.z.string().regex(/^[1-5](\d{2}|xx)$/,{message:"must be an exact status code (e.g. '404') or a status class (e.g. '5xx')"}),SK=P.z.object({count:P.z.number().int().min(0).max(10).default(0).nullish(),interval:P.z.number().min(0).max(30).default(0).nullish(),status_codes:P.z.array(NK).min(1).max(32).nullish()}).strict(),AK=An.safeExtend({type:P.z.literal("call"),method:P.z.string().min(1).max(32).regex(/^[A-Z]+$/).default("GET").nullish(),ssl_server_name:P.z.string().nullish(),ssl_verify:P.z.boolean().default(!0).nullish(),timeout:P.z.number().int().min(0).max(2147483646).nullish(),url:P.z.url().nullish(),continue_on_error:P.z.boolean().default(!1).nullish(),retry:SK.nullish(),inputs:yK.nullish(),outputs:P.z.object({body:at,error:at,headers:at,raw_body:at,status:at}).partial().nullish()}).strict(),xK=An.safeExtend({type:P.z.literal("exit"),status:P.z.number().int().min(200).max(599).default(200).nullish(),warn_headers_sent:P.z.boolean().nullish(),inputs:_K.nullish(),output:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),IK=An.safeExtend({type:P.z.literal("jq"),jq:P.z.string().min(1).max(10240),outputs:P.z.never().nullish()}).strict(),vK=/^[a-zA-Z_][a-zA-Z0-9._:-]*$/;function S0(e){return e.length<=256&&e.split("/").every(n=>vK.test(n))}const TK=An.safeExtend({type:P.z.literal("xml_to_json"),recognize_type:P.z.boolean().nullish().default(!0),attributes_block_name:P.z.string().min(1).max(32).nullish(),attributes_name_prefix:P.z.string().min(1).max(32).nullish(),text_block_name:P.z.string().min(1).max(32).nullish().default("#text"),text_as_property:P.z.boolean().nullish().default(!1),xpath:P.z.string().min(1).max(256).nullish(),force_array_paths:P.z.array(P.z.string().min(1).max(256).refine(S0,"Must be a plain '/'-separated element path, for example 'store/product'")).nullish().default([]),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict().superRefine((e,n)=>{!e.attributes_block_name&&!e.attributes_name_prefix&&(n.addIssue({code:"custom",path:["attributes_block_name"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}),n.addIssue({code:"custom",path:["attributes_name_prefix"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}))}),OK=An.safeExtend({type:P.z.literal("json_to_xml"),attributes_block_name:P.z.string().min(1).max(32).nullish(),attributes_name_prefix:P.z.string().min(1).max(32).nullish(),root_element_name:P.z.string().min(1).max(64).nullish(),text_block_name:P.z.string().min(1).max(32).nullish().default("#text"),inputs:P.z.record(P.z.string().min(1).max(255),at).nullish(),outputs:P.z.never().nullish()}).strict().superRefine((e,n)=>{!e.attributes_block_name&&!e.attributes_name_prefix&&(n.addIssue({code:"custom",path:["attributes_block_name"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}),n.addIssue({code:"custom",path:["attributes_name_prefix"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}))}),BK=An.safeExtend({type:P.z.literal("jwt_decode"),inputs:P.z.never().nullish(),outputs:P.z.object({header:at,payload:at,signature:at}).partial().nullish()}).strict(),PK=An.safeExtend({type:P.z.literal("jwt_sign"),algorithm:N0,expires_in:P.z.number().int().min(1).default(300).nullish(),inputs:wK.nullish(),kid:P.z.string().nullish(),not_before:P.z.number().int().min(0).default(0).nullish(),outputs:P.z.object({claims:at,header:at,token:at}).partial().nullish(),static_claims:P.z.record(P.z.string(),P.z.string()).default({}).nullish(),typ:P.z.string().default("JWT").nullish()}).strict(),VK=An.safeExtend({type:P.z.literal("jwt_verify"),allowed_algorithms:P.z.array(N0).default([]).nullish(),audiences:P.z.array(P.z.string()).default([]).nullish(),inputs:kK.nullish(),issuers:P.z.array(P.z.string()).default([]).nullish(),leeway:P.z.number().int().min(0).default(0).nullish(),outputs:P.z.object({claims:at,header:at}).partial().nullish(),required_claims:P.z.array(P.z.string()).default([]).nullish(),validate_exp:P.z.boolean().default(!0).nullish(),validate_nbf:P.z.boolean().default(!0).nullish()}).strict(),$K=An.safeExtend({type:P.z.literal("property"),content_type:P.z.enum(["application/json","text/plain","application/octet-stream"]).nullish(),property:P.z.string().min(1).max(255),non_nil:P.z.boolean().default(!1).nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),RK=An.safeExtend({type:P.z.literal("static"),values:P.z.record(P.z.string(),P.z.unknown()),input:P.z.never().nullish(),inputs:P.z.never().nullish()}).strict(),LK=An.safeExtend({type:P.z.literal("cache"),bypass_on_error:P.z.boolean().nullish(),inputs:bK.nullish(),outputs:P.z.object({data:at,hit:at,miss:at,stored:at}).partial().nullish(),ttl:P.z.number().int().gt(0).nullish()}).strict(),FK=An.safeExtend({type:P.z.literal("branch"),then:P.z.array(Ec).min(1).max(64).nullish(),else:P.z.array(Ec).min(1).max(64).nullish()}).strict(),DK=EK.pipe(P.z.discriminatedUnion("type",[AK,xK,IK,TK,OK,BK,PK,VK,$K,RK,LK,FK])),MK=P.z.record(P.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),P.z.string().min(1).max(4095)),UK=P.z.object({dictionary_name:P.z.string().nullish().default("kong_db_cache")}),jK=P.z.object({host:P.z.string().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).default(6379)}),KK=P.z.object({ip:P.z.string().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).default(6379)}),qK=P.z.object({host:P.z.string().nullish().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).nullish().default(6379),connect_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),send_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),read_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),username:P.z.string().nullish(),password:P.z.string().nullish(),sentinel_username:P.z.string().nullish(),sentinel_password:P.z.string().nullish(),database:P.z.number().int().nullish().default(0),keepalive_pool_size:P.z.number().int().min(1).max(2147483646).nullish().default(256),keepalive_backlog:P.z.number().int().min(0).max(2147483646).nullish(),sentinel_master:P.z.string().nullish(),sentinel_role:P.z.enum(["master","slave","any"]).nullish(),sentinel_nodes:P.z.array(jK).min(1,{message:"sentinel_nodes must contain at least 1 item"}).nullish(),cluster_nodes:P.z.array(KK).min(1,{message:"cluster_nodes must contain at least 1 item"}).nullish(),ssl:P.z.boolean().default(!1).nullish(),ssl_verify:P.z.boolean().default(!0).nullish(),server_name:P.z.string().nullish(),cluster_max_redirections:P.z.number().int().default(5).nullish(),connection_is_proxied:P.z.boolean().default(!1).nullish(),cloud_authentication:P.z.object({auth_provider:P.z.enum(["aws","azure","gcp"]).nullish(),aws_access_key_id:P.z.string().nullish(),aws_assume_role_arn:P.z.string().nullish(),aws_cache_name:P.z.string().nullish(),aws_is_serverless:P.z.boolean().default(!0).nullish(),aws_region:P.z.string().nullish(),aws_role_session_name:P.z.string().nullish(),aws_secret_access_key:P.z.string().nullish(),azure_client_id:P.z.string().nullish(),azure_client_secret:P.z.string().nullish(),azure_tenant_id:P.z.string().nullish(),gcp_service_account_json:P.z.string().nullish()}).nullish(),timeout:P.z.number().int().nullish(),sentinel_addresses:P.z.array(P.z.string()).min(1).nullish(),cluster_addresses:P.z.array(P.z.string()).min(1).nullish()}).superRefine((e,n)=>{const r=e.host!==void 0&&e.host!==null,o=e.port!==void 0&&e.port!==null;(r&&!o||!r&&o)&&n.addIssue({code:"custom",message:"host and port must be specified together",path:r?["port"]:["host"]});const i=!!e.sentinel_master,a=!!e.sentinel_role,s=!!e.sentinel_nodes?.length,l=[i,a,s].filter(Boolean).length;l>0&&l<3&&n.addIssue({code:"custom",message:"sentinel_master, sentinel_role and sentinel_nodes must be provided together"}),e.connection_is_proxied===!0&&!r&&n.addIssue({code:"custom",message:"host is required when connection_is_proxied is true (host/port should point to the proxy)",path:["host"]})}),GK=P.z.object({strategy:P.z.enum(["memory","redis"]).nullish(),memory:UK.nullish(),redis:qK.nullish()}),zK=P.z.object({vault:MK.nullish(),cache:GK.nullish()});P.z.array(P.z.object({id:P.z.string()})),P.z.object({nodes:P.z.array(DK).min(1,"At least one node is required").max(64),debug:P.z.boolean().default(!1).nullish(),resources:zK.nullish(),ca_certificates:P.z.array(P.z.string()).nullish()}).strict().superRefine((e,n)=>{w0(e,ri,n)});const A0=nm.options,rm=P.z.string().min(1).refine(e=>!e.includes("."),"Invalid node name").refine(e=>!k0(e),"Node name conflicts with reserved implicit node"),ut=P.z.string().refine(e=>{if(!e||/\s/.test(e))return!1;const n=e.indexOf(".");if(n===-1)return!0;const r=e.slice(0,n),o=e.slice(n+1);return r.length>0&&o.length>0&&!o.includes(".")},"Invalid connection"),x0=P.z.object({body:ut.nullish(),headers:ut.nullish(),query:ut.nullish()}).partial().strict(),I0=P.z.object({headers:ut.nullish(),body:ut.nullish()}).partial().strict(),v0=P.z.object({data:ut.nullish(),key:ut.nullish(),ttl:ut.nullish()}).partial().strict(),T0=P.z.object({claims:ut.nullish(),key:ut.nullish()}).partial().strict(),O0=P.z.object({key:ut.nullish(),token:ut.nullish()}).partial().strict(),HK={call:x0,exit:I0,cache:v0,jwt_sign:T0,jwt_verify:O0};function WK(e){const n=HK[e];return n?Object.keys(n.shape):null}const xn=P.z.object({type:P.z.string(),name:rm,input:ut.nullish(),inputs:P.z.record(P.z.string(),ut.nullish()).nullish(),output:ut.nullish(),outputs:P.z.record(P.z.string(),ut.nullish()).nullish()}).loose().superRefine((e,n)=>{b0(e,n)}),YK=P.z.object({type:P.z.string(),name:P.z.string()}).loose().superRefine((e,n)=>{const r=e.type,o=e.name;(typeof o!="string"||o.length===0||o.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"Invalid node name",fatal:!1}),A0.includes(r)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${r}", expected one of: ${A0.join(", ")}`})}),JK=xn.safeExtend({type:P.z.literal("call"),method:CK.nullish(),ssl_server_name:P.z.string().nullish(),ssl_verify:P.z.boolean().nullish(),timeout:P.z.union([P.z.number(),P.z.string()]).nullish(),url:P.z.string().nullish(),continue_on_error:P.z.boolean().nullish(),retry:P.z.object({count:P.z.union([P.z.number(),P.z.string()]).nullish(),interval:P.z.union([P.z.number(),P.z.string()]).nullish(),status_codes:P.z.array(P.z.string()).nullish()}).nullish(),inputs:x0.nullish(),outputs:P.z.object({body:ut.nullish(),error:ut.nullish(),headers:ut.nullish(),status:ut.nullish()}).partial().nullish()}).strict(),XK=xn.safeExtend({type:P.z.literal("exit"),status:P.z.union([P.z.number(),P.z.string()]).nullish(),warn_headers_sent:P.z.boolean().nullish(),inputs:I0.nullish(),output:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),ZK=xn.safeExtend({type:P.z.literal("jq"),jq:P.z.string().nullish(),outputs:P.z.never().nullish()}).strict(),QK=xn.safeExtend({type:P.z.literal("xml_to_json"),recognize_type:P.z.boolean().nullish(),attributes_block_name:P.z.string().nullish(),attributes_name_prefix:P.z.string().nullish(),text_block_name:P.z.string().nullish(),text_as_property:P.z.boolean().nullish(),xpath:P.z.string().nullish(),force_array_paths:P.z.array(P.z.string()).nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),e8=xn.safeExtend({type:P.z.literal("json_to_xml"),attributes_block_name:P.z.string().nullish(),attributes_name_prefix:P.z.string().nullish(),root_element_name:P.z.string().nullish(),text_block_name:P.z.string().nullish(),inputs:P.z.record(P.z.string(),ut.nullish()).nullish(),outputs:P.z.never().nullish()}).strict(),t8=xn.safeExtend({type:P.z.literal("property"),content_type:P.z.string().nullish(),non_nil:P.z.boolean().nullish(),property:P.z.string().nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),n8=xn.safeExtend({type:P.z.literal("static"),values:P.z.record(P.z.string(),P.z.unknown()).nullish(),input:P.z.never().nullish(),inputs:P.z.never().nullish()}).strict(),r8=xn.safeExtend({type:P.z.literal("cache"),bypass_on_error:P.z.boolean().nullish(),inputs:v0.nullish(),outputs:P.z.object({data:ut.nullish(),hit:ut.nullish(),miss:ut.nullish(),stored:ut.nullish()}).partial().nullish(),ttl:P.z.union([P.z.number(),P.z.string()]).nullish()}).strict(),o8=xn.safeExtend({type:P.z.literal("jwt_decode"),inputs:P.z.never().nullish(),outputs:P.z.object({header:ut.nullish(),payload:ut.nullish(),signature:ut.nullish()}).partial().nullish()}).strict(),i8=xn.safeExtend({type:P.z.literal("jwt_sign"),algorithm:P.z.enum(uf).nullish(),expires_in:P.z.union([P.z.number(),P.z.string()]).nullish(),inputs:T0.nullish(),kid:P.z.string().nullish(),not_before:P.z.union([P.z.number(),P.z.string()]).nullish(),outputs:P.z.object({claims:ut.nullish(),header:ut.nullish(),token:ut.nullish()}).partial().nullish(),static_claims:P.z.record(P.z.string(),P.z.string()).nullish(),typ:P.z.string().nullish()}).strict(),a8=xn.safeExtend({type:P.z.literal("jwt_verify"),allowed_algorithms:P.z.array(P.z.enum(uf)).nullish(),audiences:P.z.array(P.z.string()).nullish(),inputs:O0.nullish(),issuers:P.z.array(P.z.string()).nullish(),leeway:P.z.union([P.z.number(),P.z.string()]).nullish(),outputs:P.z.object({claims:ut.nullish(),header:ut.nullish()}).partial().nullish(),required_claims:P.z.array(P.z.string()).nullish(),validate_exp:P.z.boolean().nullish(),validate_nbf:P.z.boolean().nullish()}).strict(),s8=xn.safeExtend({type:P.z.literal("branch"),then:P.z.array(rm).nullish(),else:P.z.array(rm).nullish()}).strict(),l8=YK.pipe(P.z.discriminatedUnion("type",[JK,XK,ZK,QK,e8,o8,i8,a8,t8,n8,r8,s8])),c8=P.z.record(P.z.string(),P.z.string()),d8=P.z.object({dictionary_name:P.z.string().nullish()}),u8=P.z.object(),f8=P.z.object({strategy:P.z.enum(["memory","redis"]).nullish(),memory:d8.nullish(),redis:u8.nullish()}),p8=P.z.object({vault:c8.nullish(),cache:f8.nullish()}),B0=P.z.object({nodes:P.z.array(l8).nullish(),debug:P.z.boolean().nullish(),resources:p8.nullish(),ca_certificates:P.z.array(P.z.string()).nullish()}).strict().superRefine((e,n)=>{!e||!Array.isArray(e.nodes)||w0(e,ri,n)}).nullish(),P0=t.defineComponent({__name:"InputsRecordField",props:{name:{},items:{},nodeType:{}},emits:["change:inputs"],setup(e){const{getSchema:n}=S.useFormShared(),{i18n:r}=Ye(),o=t.computed(()=>{const i=n("inputs");if(!i)return[];const a=i.fields.map(l=>Object.keys(l)[0]);if(tn(e.nodeType))return a;const s=WK(e.nodeType);return s===null?a:s.length===0?[]:qO(a,s)});return(i,a)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{"as-child":"",name:e.name,"reset-label-path":"isolate"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.value,s=>(t.openBlock(),t.createBlock(t.unref(S.EnumField),{key:s,clearable:"","enable-filtering":"",items:e.items,name:s,placeholder:t.unref(r).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:l=>i.$emit("change:inputs",s,l?l.value:null)},t.createSlots({_:2},[i.$slots["item-label"]?{name:"item-label",fn:t.withCtx(l=>[t.renderSlot(i.$slots,"item-label",t.mergeProps({ref_for:!0},l))]),key:"0"}:void 0]),1032,["items","name","placeholder","onChange"]))),128))]),_:3},8,["name"]))}}),m8=["data-testid"],g8={class:"dk-inputs-map-field-entry-body"},h8={class:"dk-inputs-map-field-entry-content"},y8=ve(t.defineComponent({__name:"InputsMapField",props:{name:{},items:{},fieldNameValidator:{},keyOrder:{}},emits:["change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const r=e,o=n,{keys:i,addKey:a,removeKey:s,updateKey:l,getKeyName:c,field:d}=S.useMapField(t.toRef(r,"name")),{value:u}=S.useField(t.toRef(r,"name")),{i18n:{t:f}}=Ye(),p=t.useTemplateRef("root"),m=t.ref(null),g=t.ref({}),_=t.ref({});let h;const y=t.computed(()=>r.keyOrder?.length?[...i.value].sort((A,I)=>{const V=r.keyOrder.indexOf(A[1]),L=r.keyOrder.indexOf(I[1]);return(V===-1?1/0:V)-(L===-1?1/0:L)}):i.value);async function w(A,I="key"){p.value&&(await t.nextTick(),p.value.querySelector(`[data-${I}-input="${A}"]`)?.focus())}function b(){const A=a();if(!A)return;_.value[A]="";const I=y.value.findIndex(([,V])=>!V);w(I===-1?y.value.length-1:I),m.value=A}function E(A,I){s(A),delete _.value[A],delete g.value[A],A===m.value&&(m.value=null),I.trim()!==""&&o("remove:field",I)}function k(A){h=_.value[A]??c(A)??""}function N(A,I){const V=I.trim();_.value[A]=V,x(A,V)}function T(A){const I=_.value[A]??c(A)??"";if(x(A,I)){_.value[A]=h,l(A,h),delete g.value[A];return}if(A===m.value){if(I.trim()==="")return;l(A,I),o("add:field",I,u?.value?.[A]??null),m.value=null}else l(A,I),o("rename:field",h,I);delete g.value[A],h=I}function x(A,I){delete g.value[A];const V=r.fieldNameValidator("input",h,I);if(V)return g.value[A]=V,V}function B(A){x(A,_.value[A]??c(A)??"")}function O(A,I){if(u?.value&&(u.value[A]=I),A===m.value)return;const V=c(A);V&&o("change:inputs",V,I)}return t.watch(i,A=>{const I=new Set(A.map(([V])=>V));Object.keys(_.value).forEach(V=>{I.has(V)?_.value[V]=_.value[V]??c(V)??"":(delete _.value[V],delete g.value[V])}),A.forEach(([V,L])=>{_.value[V]=_.value[V]??L}),m.value&&!I.has(m.value)&&(m.value=null)},{immediate:!0}),t.watch(()=>r.keyOrder,()=>{if(!m.value)return;const A=y.value.findIndex(([I])=>I===m.value);A!==-1&&w(A)}),(A,I)=>{const V=t.resolveComponent("KAlert"),L=t.resolveComponent("KLabel"),R=t.resolveComponent("KInput"),Z=t.resolveComponent("KSelect"),ee=t.resolveComponent("KButton");return t.unref(d).error?(t.openBlock(),t.createBlock(V,{key:0,appearance:"danger",message:t.unref(d).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:p,class:"dk-inputs-map-field"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(y.value,([j,G],$)=>(t.openBlock(),t.createElementBlock("div",{key:j,class:"dk-inputs-map-field-entry","data-testid":`ff-kv-container-${t.unref(d).path.value}.${$}`},[t.createVNode(L,{for:`ff-kv-entry-key-${t.unref(d).path.value}.${$}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:1},8,["for"]),t.createElementVNode("div",g8,[t.createElementVNode("div",h8,[t.createVNode(R,{id:`ff-kv-entry-key-${t.unref(d).path.value}.${$}`,class:"ff-kv-field-entry-key","data-key-input":$,"data-testid":`ff-key-${t.unref(d).path.value}.${$}`,error:!!g.value[j],"error-message":g.value[j],"model-value":_.value[j]??G,placeholder:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:pe=>B(j),onChange:pe=>T(j),onFocus:pe=>k(j),"onUpdate:modelValue":pe=>N(j,pe)},null,8,["id","data-key-input","data-testid","error","error-message","model-value","placeholder","onBlur","onChange","onFocus","onUpdate:modelValue"]),t.createVNode(Z,{class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${t.unref(d).path.value}.${$}`,"enable-filtering":"",items:e.items,label:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.source"),"model-value":t.unref(u)?.[j],placeholder:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:pe=>O(j,pe?.value??null)},t.createSlots({_:2},[A.$slots["item-label"]?{name:"item-template",fn:t.withCtx(({item:pe})=>[t.renderSlot(A.$slots,"item-label",t.mergeProps({ref_for:!0},pe),void 0,!0)]),key:"0"}:void 0]),1032,["data-testid","items","label","model-value","placeholder","onChange"])]),t.createVNode(ee,{appearance:"tertiary",class:"dk-inputs-map-field-remove-btn","data-testid":`ff-kv-remove-btn-${t.unref(d).path.value}.${$}`,icon:"",onClick:pe=>E(j,G)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["data-testid","onClick"])])],8,m8))),128)),t.createVNode(ee,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(d).path.value}`,disabled:!!m.value,onClick:b},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-e8da92e0"]]),_8={class:"dk-source-item"},Nc=ve(t.defineComponent({__name:"SourceItem",props:{item:{}},setup(e){return(n,r)=>(t.openBlock(),t.createElementBlock("span",_8,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(ff)(e.item.type).icon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["color","size"])),t.createTextVNode(" "+t.toDisplayString(e.item.label),1)]))}}),[["__scopeId","data-v-d9aa16eb"]]),b8={key:1,class:"dk-inputs-field-or"},mn=ve(t.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{},nodeType:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const r=n,{getSchema:o}=S.useFormShared(),{i18n:{t:i}}=Ye(),a=t.computed(()=>o("inputs")),s=t.computed(()=>a.value?a.value.type==="record"?P0:y8:null);function l(p){r("change:input",p?p.value:null)}function c(p,m){r("add:field",p,m)}function d(p,m){r("change:inputs",p,m)}function u(p){r("remove:field",p)}function f(p,m){r("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(o)("input")?(t.openBlock(),t.createBlock(t.unref(S.EnumField),{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:l},{"item-label":t.withCtx(g=>[t.renderSlot(p.$slots,"item-label",t.normalizeProps(t.guardReactiveProps(g)),()=>[t.createVNode(Nc,{item:g},null,8,["item"])],!0)]),_:3},8,["items","label","placeholder"])):t.createCommentVNode("",!0),s.value?(t.openBlock(),t.createElementBlock("div",b8,[t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.or")),1)])):t.createCommentVNode("",!0),s.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),s.value?(t.openBlock(),t.createBlock(t.unref(s),t.mergeProps({key:3,items:e.items,"key-order":e.fieldNames,name:"inputs"},s.value===P0?{nodeType:e.nodeType}:{fieldNameValidator:e.fieldNameValidator},{"onAdd:field":c,"onChange:inputs":d,"onRemove:field":u,"onRename:field":f}),{"item-label":t.withCtx(g=>[t.createVNode(Nc,{item:g},null,8,["item"])]),_:1},16,["items","key-order"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-26436033"]]),w8={},k8={class:"dk-node-form-divider"};function C8(e,n){return t.openBlock(),t.createElementBlock("hr",k8)}const In=ve(w8,[["render",C8],["__scopeId","data-v-35ed58be"]]),vn=t.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=Ye(),a=t.ref(r.name),s=t.computed(()=>{const u=r.validate(a.value.trim());return u===void 0?"":u});let l=a.value.trim();function c(){if(s.value){a.value=l;return}o("update",a.value.trim())}function d(){l=a.value.trim()}return t.watch(()=>r.name,u=>{u!==a.value&&(a.value=u)}),(u,f)=>{const p=t.resolveComponent("KInput");return t.openBlock(),t.createBlock(p,{"model-value":a.value,"onUpdate:modelValue":f[0]||(f[0]=m=>a.value=m),"data-1p-ignore":"",error:!!s.value,"error-message":s.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"])}}}),E8={class:"dk-call-failure-example"},N8={class:"dk-call-retry-interval"},S8={class:"dk-call-retry-interval-unit"},A8=".error != null or (.status // 0) < 200 or (.status // 0) > 299",x8=ve(t.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=Ye(),r=["GET","HEAD","PUT","DELETE","OPTIONS"],o=/^[1-5](\d{2}|xx)$/,i=t.useTemplateRef("form"),a=on("call"),s=h0(),{formData:l,setName:c,setConfig:d,inputOptions:u,setInputs:f,setInput:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h,currentNode:y}=rn(e.nodeId,()=>i.value.getValue()),{getOutEdgesByNodeId:w}=Ct(),b=t.computed(()=>{const L=y.value.fields.output.find(({name:R})=>R==="error");return!!L&&w(e.nodeId).some(({sourceField:R})=>R===L.id)}),E=t.computed(()=>l.value.retry!=null),k=t.computed(()=>r.includes(l.value.method??"GET"));function N(L){const R={...i.value.getValue()};L?R.retry={count:0,interval:0}:delete R.retry,i.value.setValue(R),d()}function T(L){return R=>{if(R?.length)return R.every(Z=>o.test(Z))?void 0:n("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_status_codes",{fieldName:L})}}const{createFieldHandler:x}=Ir({validationConfig:{url:Xt(Io({fieldName:"URL"}),f0("url",{fieldName:"URL"})),timeout:Xt(vo("integer"),Jr(0,2147483646)),retry_count:Xt(vo("integer",{fieldName:"Number of retries"}),Jr(0,10,{fieldName:"Number of retries"})),retry_interval:Jr(0,30,{fieldName:"Retry interval"}),retry_status_codes:T("Retry status codes")},getValidationData:()=>({url:l.value.url,timeout:l.value.timeout,retry_count:l.value.retry?.count,retry_interval:l.value.retry?.interval,retry_status_codes:l.value.retry?.status_codes}),toggleNodeValid:_}),B=x("url",()=>d("url")),O=x("timeout",()=>d("timeout")),A=x("retry_count",()=>d("retry.count")),I=x("retry_interval",()=>d("retry.interval")),V=x("retry_status_codes",()=>d("retry.status_codes"));return t.watch(E,L=>{L||(A.value.validate(),I.value.validate(),V.value.validate())}),(L,R)=>{const Z=t.resolveComponent("KLabel"),ee=t.resolveComponent("KAlert"),j=t.resolveComponent("KCopy"),G=t.resolveComponent("KCheckbox");return t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(l).name,validate:t.unref(g),onUpdate:t.unref(c)},null,8,["name","validate","onUpdate"]),t.createVNode(Z,{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(t.unref(S.StringField),{error:t.unref(B).error,"error-message":t.unref(B).errorMessage,name:"url",onBlur:t.unref(B).validate,"onUpdate:modelValue":t.unref(B).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(cK,{name:"method",onUpdate:R[0]||(R[0]=$=>t.unref(d)())}),t.createVNode(t.unref(S.NumberField),{error:t.unref(O).error,"error-message":t.unref(O).errorMessage,name:"timeout",onBlur:t.unref(O).validate,"onUpdate:modelValue":t.unref(O).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{name:"ssl_server_name","onUpdate:modelValue":R[1]||(R[1]=$=>t.unref(d)("ssl_server_name"))}),t.createVNode(t.unref(S.BooleanField),{name:"ssl_verify","onUpdate:modelValue":R[2]||(R[2]=$=>t.unref(d)("ssl_verify"))}),t.unref(s)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(In),t.createVNode(Z,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.label")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"continue_on_error","onUpdate:modelValue":R[3]||(R[3]=$=>t.unref(d)("continue_on_error"))}),!t.unref(l).continue_on_error&&b.value?(t.openBlock(),t.createBlock(ee,{key:0,appearance:"warning","data-testid":"dk-call-error-output-hint",message:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.error_output_hint")},null,8,["message"])):t.createCommentVNode("",!0),t.unref(l).continue_on_error?(t.openBlock(),t.createBlock(ee,{key:1,class:"dk-call-failure-hint","data-testid":"dk-call-failure-hint"},{default:t.withCtx(()=>[t.createElementVNode("p",null,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.failure_hint")),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.failure_example")),1),t.createElementVNode("div",E8,[t.createVNode(j,{text:A8})])]),_:1})):t.createCommentVNode("",!0),t.createVNode(G,{"data-testid":"dk-call-retry-toggle",label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry"),"model-value":E.value,"onUpdate:modelValue":N},null,8,["label","model-value"]),E.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createVNode(t.unref(S.NumberField),{error:t.unref(A).error,"error-message":t.unref(A).errorMessage,label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_count"),name:"retry.count",onBlur:t.unref(A).validate,"onUpdate:modelValue":t.unref(A).update},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createElementVNode("div",N8,[t.createVNode(t.unref(S.NumberField),{error:t.unref(I).error,"error-message":t.unref(I).errorMessage,label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_interval"),name:"retry.interval",onBlur:t.unref(I).validate,"onUpdate:modelValue":t.unref(I).update},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createElementVNode("span",S8,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.seconds")),1)]),t.createVNode(t.unref(S.StringArrayField),{error:t.unref(V).error,"error-message":t.unref(V).errorMessage,help:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.status_codes_help"),label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_status_codes"),name:"retry.status_codes",placeholder:"429, 5xx",onBlur:t.unref(V).validate,"onUpdate:modelValue":t.unref(V).update},null,8,["error","error-message","help","label","onBlur","onUpdate:modelValue"]),k.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(ee,{key:0,appearance:"warning","data-testid":"dk-call-retry-warning",message:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_warning")},null,8,["message"]))],64)):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(u),"node-type":"call","onChange:input":t.unref(p),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),[["__scopeId","data-v-e14ce871"]]),I8=t.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("service_request"),{formData:o,inputOptions:i,setInputs:a,setInput:s,inputsFieldNames:l,fieldNameValidator:c}=rn(e.nodeId,()=>n.value.getValue());return(d,u)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(mn,{"field-name-validator":t.unref(c),"field-names":t.unref(l),items:t.unref(i),"node-type":"service_request","onChange:input":t.unref(s),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),v8=t.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("response"),{formData:o,inputOptions:i,setInputs:a,setInput:s,inputsFieldNames:l,fieldNameValidator:c}=rn(e.nodeId,()=>n.value.getValue());return(d,u)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(mn,{"field-name-validator":t.unref(c),"field-names":t.unref(l),items:t.unref(i),"node-type":"response","onChange:input":t.unref(s),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),T8=t.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t:n},i18nT:r}=Ye(),o=t.useTemplateRef("form"),i=on("jq"),{formData:a,setName:s,setConfig:l,inputOptions:c,setInputs:d,setInput:u,addField:f,removeFieldByName:p,renameFieldByName:m,inputsFieldNames:g,nameValidator:_,toggleNodeValid:h,fieldNameValidator:y}=rn(e.nodeId,()=>o.value.getValue());function w(x,B){f("input",x,B)}function b(x){p("input",x)}function E(x,B){m("input",x,B)}const k=n("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:N}=Ir({validationConfig:{jq:Xt(Io({fieldName:k}),xr(1,10240,{fieldName:k}))},getValidationData:()=>({jq:a.value.jq}),toggleNodeValid:h}),T=N("jq",()=>l("jq"));return(x,B)=>{const O=t.resolveComponent("KLabel"),A=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(a),schema:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(a).name,validate:t.unref(_),onUpdate:t.unref(s)},null,8,["name","validate","onUpdate"]),t.createVNode(O,{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(t.unref(S.StringField),{autosize:"",error:t.unref(T).error,"error-message":t.unref(T).errorMessage,label:t.unref(k),"label-attributes":{},multiline:"",name:"jq",resizable:"",onBlur:t.unref(T).validate,"onUpdate:modelValue":t.unref(T).update},{help:t.withCtx(()=>[t.createVNode(t.unref(r),{keypath:"plugins.free-form.datakit.flow_editor.node_properties.jq.help"},{link:t.withCtx(()=>[t.createVNode(A,{"hide-icon":"",href:t.unref(Zn).jqlang},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(Zn).jqlang),1)]),_:1},8,["href"])]),_:1})]),_:1},8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(y),"field-names":t.unref(g),items:t.unref(c),"node-type":"jq","onAdd:field":w,"onChange:input":t.unref(u),"onChange:inputs":t.unref(d),"onRemove:field":b,"onRename:field":E},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),O8=ve(t.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},keyOrder:{}},emits:["change:value","add:field","rename:field","remove:field"],setup(e,{emit:n}){const r=e,o=n,i=t.ref({}),{value:a,...s}=S.useField("values"),{i18n:l}=Ye(),c=t.useTemplateRef("root"),d=t.ref([]),u=t.ref(null);let f="",p=a?.value;function m(){return sf("ff-kv-field-")}function g(O,A,I){const V=I.indexOf(O),L=I.indexOf(A);return V===-1&&L===-1?0:V===-1?1:L===-1?-1:V-L}function _(O,A){if(!O)return[];const I=Object.entries(O).map(([V,L])=>({id:m(),key:V,value:L}));return A?.length&&I.sort((V,L)=>g(V.key,L.key,A)),I}function h(){const O={id:m(),key:"",value:""};return d.value.push(O),O}function y(O){const A=d.value.findIndex(I=>I.id===O);A!==-1&&d.value.splice(A,1)}d.value=_(a?.value,r.keyOrder);async function w(O,A="key"){c.value&&(await t.nextTick(),c.value.querySelector(`[data-${A}-input="${O}"]`)?.focus())}function b(){const O=h(),A=d.value.findIndex(({key:I})=>!I);w(A===-1?d.value.length-1:A),u.value=O}function E(O){O.id===u.value?.id&&(u.value=null),y(O.id),O.key.trim()!==""&&o("remove:field",O.key)}function k(O){f=O.key}function N(O){if(x(O)){O.key=f,delete i.value[O.id];return}if(O.id===u.value?.id){if(O.key.trim()==="")return;u.value=null,o("add:field",O.key,O.value)}else o("rename:field",f,O.key);f=O.key}function T(O,A){if(A.id===u.value?.id)return;const I=O.target.value.trim();o("change:value",A.key,I)}function x(O){delete i.value[O.id];const A=r.fieldNameValidator("output",f,O.key);if(A)return i.value[O.id]=A,A}function B(O){x(O)}return t.watch(()=>a?.value,O=>{if(ti(O,p))return;p=O;const A=u.value,I=new Map(d.value.filter(Z=>Z.key).map(Z=>[Z.key,Z])),V=[],L=O??{};(r.keyOrder?.length?Object.keys(L).sort((Z,ee)=>g(Z,ee,r.keyOrder)):Object.keys(L)).forEach(Z=>{const ee=I.get(Z);if(ee){ee.value=L[Z],V.push(ee);return}V.push({id:m(),key:Z,value:L[Z]})}),A&&!V.some(Z=>Z.id===A.id)&&V.push(A),d.value=V},{deep:!0}),(O,A)=>{const I=t.resolveComponent("KAlert"),V=t.resolveComponent("KLabel"),L=t.resolveComponent("KButton"),R=t.resolveComponent("KInput"),Z=t.resolveComponent("KCard");return s.error?(t.openBlock(),t.createBlock(I,{key:0,appearance:"danger",message:s.error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:c,class:"dk-output-value-field"},[t.createVNode(V,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(ee,j)=>(t.openBlock(),t.createBlock(Z,{key:ee.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${s.path.value}.${j}`},{actions:t.withCtx(()=>[t.createVNode(L,{appearance:"none","data-testid":`ff-kv-remove-btn-${s.path.value}.${j}`,icon:"",onClick:G=>E(ee)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["data-testid","onClick"])]),default:t.withCtx(()=>[t.createVNode(R,{id:`ff-kv-entry-key-${s.path.value}.${j}`,modelValue:ee.key,"onUpdate:modelValue":[G=>ee.key=G,G=>x(ee)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":j,"data-testid":`ff-key-${s.path.value}.${j}`,error:!!i.value[ee.id],"error-message":i.value[ee.id],label:t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:G=>B(ee),onChange:G=>N(ee),onFocus:G=>k(ee)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),t.createVNode(R,{modelValue:ee.value,"onUpdate:modelValue":G=>ee.value=G,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${s.path.value}.${j}`,label:t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:G=>T(G,ee)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),t.createVNode(L,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${s.path.value}`,disabled:!!u.value,onClick:b},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-fe50fc7f"]]);function B8(e){const n={};for(const[r,o]of Object.entries(e))typeof o=="object"&&o!==null?n[r]=JSON.stringify(o):n[r]=String(o);return n}function Sc(e){const n={};for(const[r,o]of Object.entries(e))if(o!=null){n[r]=o;try{o==="null"?n[r]=null:(o==="true"||o==="false"||/^-?\d+(\.\d+)?$/.test(o)||o.startsWith("{")&&o.endsWith("}")||o.startsWith("[")&&o.endsWith("]"))&&(n[r]=JSON.parse(o))}catch{}}return n}function P8(e,n,r){const o={};for(const i of Object.keys(e))i===n?o[r]=e[n]:o[i]=e[i];return o}const V8=t.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:n,getOutEdgesByNodeId:r,addField:o,renameField:i,removeField:a,replaceConfig:s,getNodeById:l}=Ct(),{fieldNameValidator:c}=rn(e.nodeId),d=on("static"),u=m0(e.nodeId),f=t.computed(()=>l(e.nodeId)),p=t.computed(()=>f.value?.fields.output.map(b=>b.name)||[]);function m(b){if(!f.value)throw new Error("No current node");n(f.value.id,b??"")}const g=t.computed(()=>{if(!f.value)return{};const b=f.value.config?.values??{},E={},k=r(f.value.id).map(B=>B.sourceField).filter(Boolean).map(B=>Kr(f.value,"output",B)).map(B=>B?.name).filter(Boolean),N=f.value.fields.output.map(B=>B.name),T=Object.keys(b);return new Set([...T,...k,...N]).forEach(B=>{if(B in b){E[B]=b[B];return}E[B]=""}),{name:f.value.name,values:B8(E)}});function _(b,E){if(!f.value)throw new Error("No selected node");const k=E!==void 0;if(o(e.nodeId,"output",b,!k),k){const N={values:Sc({...g.value.values,[b]:E})};s(e.nodeId,N)}}function h(b,E){if(!f.value)throw new Error("No selected node");const k=wr(f.value,"output",b);if(!k)throw new Error("No field found to rename");const N={values:Sc(P8(g.value.values??{},b,E))};s(e.nodeId,N,!1),i(e.nodeId,k.id,E)}function y(b){if(!f.value)throw new Error("No selected node");const E=wr(f.value,"output",b);if(!E)throw new Error("No field found to delete");a(f.value?.id,E.id,!0,!1);const k={values:Sc({...g.value.values})};delete k.values[b],s(e.nodeId,k)}function w(b,E){if(!f.value)throw new Error("No selected node");const k={...g.value.values};k[b]=E;const N={values:Sc(k)};s(e.nodeId,N)}return(b,E)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:g.value,schema:t.unref(d)},{default:t.withCtx(()=>[t.createVNode(vn,{name:f.value?.name??"",validate:t.unref(u),onUpdate:m},null,8,["name","validate"]),t.createVNode(O8,{"field-name-validator":t.unref(c),"key-order":p.value,"onAdd:field":_,"onChange:value":w,"onRemove:field":y,"onRename:field":h},null,8,["field-name-validator","key-order"])]),_:1},8,["data","schema"]))}}),$8={class:"dk-kong-property-item"},R8={class:"property-type"},L8={class:"property-badges"},F8=ve(t.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:n}){const{i18n:{t:r}}=Ye(),o=e,i=n,{formData:a}=S.useFormShared(),s=t.ref(va(a.property)),l=t.computed(()=>Ta(a.property)),c=t.ref(lf(a.property)),d=t.computed(()=>a.property??""),u=t.computed(()=>Object.entries(ho).map(([m])=>{const g=Ta(m)?a.property?.startsWith(m.replace(ni,"")):a.property===m;return{label:g&&c.value?m.replace(ni,c.value):m,value:m,selected:g}}));function f(m){const g=ml.find(_=>a.property?.startsWith(_));g&&(a.property=g+m,o.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){s.value!==va(m?.value)&&(a.property=m?.value||null,s.value=va(a.property),o.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return t.watch(()=>a.property,m=>{c.value=lf(m),s.value=va(m)}),(m,g)=>{const _=t.resolveComponent("KBadge"),h=t.resolveComponent("KSelect"),y=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock(t.Fragment,null,[(t.openBlock(),t.createBlock(h,{key:d.value,"enable-filtering":"",error:!e.validators.property.isValid.value,help:e.validators.property.error.value,items:u.value,label:"Property","label-attributes":{maxWidth:"300px",placement:"top",info:"The property name to get/set"},required:"",onBlur:g[0]||(g[0]=w=>e.validators.property.handleBlur(()=>t.unref(a).property)),onChange:p},{"item-template":t.withCtx(({item:w})=>[t.createElementVNode("div",$8,[t.createElementVNode("div",null,[t.createElementVNode("div",null,t.toDisplayString(w.label),1),t.createElementVNode("div",R8,t.toDisplayString(t.unref(ho)[w.value].dataType),1)]),t.createElementVNode("div",L8,[t.unref(ho)[w.value].readable?(t.openBlock(),t.createBlock(_,{key:0,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):t.createCommentVNode("",!0),t.unref(ho)[w.value].writable?(t.openBlock(),t.createBlock(_,{key:1,appearance:"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):t.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),l.value?(t.openBlock(),t.createBlock(y,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=w=>c.value=w),f],error:!e.validators.key.isValid.value,"error-message":e.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=w=>e.validators.key.handleBlur(()=>t.unref(a).property))},null,8,["model-value","error","error-message"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-59891163"]]),D8=t.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),{selectedNode:r,disconnectInEdges:o,disconnectOutEdges:i}=Ct(),a=on("property"),s=t.computed(()=>a.value.fields.some(E=>"non_nil"in E)),{formData:l,setName:c,setConfig:d,inputOptions:u,setInputs:f,setInput:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h}=rn(e.nodeId,()=>n.value.getValue()),y=t.computed(()=>df(l.value.property));function w(E){const k=r.value?.id;if(!k)throw new Error("Expected selectedNode to be defined");cf(E)||i(k,!1),df(E)||o(k,!1),d()}const{fields:b}=Ir({validationConfig:()=>({property:Io({fieldName:"Property"}),key:Ta(l.value.property)?Io({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:lf(l.value.property)}),toggleNodeValid:_});return(E,k)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(l).name,validate:t.unref(g),onUpdate:t.unref(c)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(S.EnumField),{name:"content_type",onUpdate:k[0]||(k[0]=N=>t.unref(d)())}),t.createVNode(F8,{validators:t.unref(b),"onUpdate:modelValue":w,"onUpdate:propertyKey":k[1]||(k[1]=N=>t.unref(d)("property-key"))},null,8,["validators"]),s.value?(t.openBlock(),t.createBlock(t.unref(S.BooleanField),{key:0,name:"non_nil","onUpdate:modelValue":k[2]||(k[2]=N=>t.unref(d)("non_nil"))})):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createBlock(In,{key:1})):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createBlock(mn,{key:2,"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(u),"node-type":"property","onChange:input":t.unref(p),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):t.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),M8=t.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("exit"),{formData:o,setName:i,setConfig:a,inputOptions:s,setInputs:l,setInput:c,inputsFieldNames:d,nameValidator:u,toggleNodeValid:f,fieldNameValidator:p}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:m}=Ir({validationConfig:{status:Xt(vo("integer",{fieldName:"Status"}),Jr(200,599,{fieldName:"Status"}))},getValidationData:()=>({status:o.value.status}),toggleNodeValid:f}),g=m("status",()=>a("status"));return(_,h)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(o).name,validate:t.unref(u),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(g).error,"error-message":t.unref(g).errorMessage,name:"status",onBlur:t.unref(g).validate,"onUpdate:modelValue":t.unref(g).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"warn_headers_sent","onUpdate:modelValue":h[0]||(h[0]=y=>t.unref(a)())}),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(p),"field-names":t.unref(d),items:t.unref(s),"node-type":"exit","onChange:input":t.unref(c),"onChange:inputs":t.unref(l)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}});function U8(e){const n=rn(e),{state:r,getNodeById:o,branchGroups:i,commit:a}=Ct(),{i18n:{t:s}}=Ye(),l=Kb(),c=gl(),d=t.computed(()=>{const y={...n.formData.value},w=Pa(n.currentNode.value?.type||"branch");for(const b of w)(!(b in y)||y[b]==null)&&(y[b]=[]);return y});function u(y,w,b){const E=o(y),k=o(b),N=E?`${E.name}.${w}`:`${y}.${w}`,T=k?k.name:b;return[N,T]}function f(y){return(y==null?[]:Array.isArray(y)?y:[y]).filter(w=>hf(w))}function p(y,w){return i.wouldCreateCycle(y,w)?(c({message:s("plugins.free-form.datakit.flow_editor.error.branch_cycle"),appearance:"danger"}),!0):!1}function m(y,w,b){const E=[],k=[],N=[];for(const T of b){const x=i.findMembership(T);if(!x||x.ownerId===y&&x.branch===w)continue;const B=i.getMembers(x.ownerId,x.branch).filter(O=>O!==T);N.push({ownerId:x.ownerId,branch:x.branch,members:B}),E.push(u(y,w,T)),k.push(u(x.ownerId,x.branch,T))}return{conflictUpdates:N,addedAssignments:E,removedAssignments:k}}function g(y,w,b,E){let k=!1;for(const N of E)k=i.setMembers(N.ownerId,N.branch,N.members,{commit:!1})||k;return k=i.setMembers(y,w,b,{commit:!1})||k,k}async function _(y,w){const b=n.currentNode.value,E=f(w),k=i.prepareMembers(b.id,y,E),N=i.getMembers(b.id,y);if(yf(N,k))return!0;const T=k.filter(I=>!N.includes(I));for(const I of T)if(p(b.id,I))return!1;const{conflictUpdates:x,addedAssignments:B,removedAssignments:O}=m(b.id,y,T);return x.length>0&&!await l(s("plugins.free-form.datakit.flow_editor.confirm.message.branch_replace"),B,O)?!1:(g(b.id,y,k,x)&&a(),!0)}const h=t.computed(()=>{const y=n.currentNode.value;return!y||!i?[]:r.value.nodes.filter(w=>w.id!==e&&!tn(w.type)&&w.phase===y.phase&&!i.wouldCreateCycle(y.id,w.id)).map(w=>({value:w.id,label:w.name,type:w.type}))});return{...n,formData:d,branchOptions:h,updateBranchMembers:_}}const j8=t.defineComponent({__name:"NodeFormBranch",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=Ye(),r=on("branch"),o=t.ref(0),{formData:i,setName:a,inputOptions:s,branchOptions:l,nameValidator:c,setInput:d,setInputs:u,inputsFieldNames:f,fieldNameValidator:p,updateBranchMembers:m}=U8(e.nodeId);async function g(_,h){await m(_,h)||(o.value+=1)}return(_,h)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{key:o.value,data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{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(t.unref(S.EnumField),{"enable-filtering":"",items:t.unref(l),multiple:"",name:"then",onUpdate:h[0]||(h[0]=y=>g("then",y))},{"item-label":t.withCtx(y=>[t.createVNode(Nc,{item:y},null,8,["item"])]),_:1},8,["items"]),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",items:t.unref(l),multiple:"",name:"else",onUpdate:h[1]||(h[1]=y=>g("else",y))},{"item-label":t.withCtx(y=>[t.createVNode(Nc,{item:y},null,8,["item"])]),_:1},8,["items"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(p),"field-names":t.unref(f),items:t.unref(s),"node-type":"branch","onChange:input":t.unref(d),"onChange:inputs":t.unref(u)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),K8=t.defineComponent({__name:"NodeFormCache",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("cache"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Ir({validationConfig:()=>({ttl:Xt(vo("integer",{fieldName:"TTL"}),Jr(1,1/0,{fieldName:"TTL"}))}),getValidationData:()=>({ttl:i.value.ttl}),toggleNodeValid:p}),_=g("ttl",()=>s("ttl"));return(h,y)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"bypass_on_error","onUpdate:modelValue":y[0]||(y[0]=w=>t.unref(s)("bypass_on_error"))}),t.createVNode(t.unref(S.NumberField),{error:t.unref(_).error,"error-message":t.unref(_).errorMessage,name:"ttl",onBlur:t.unref(_).validate,"onUpdate:modelValue":t.unref(_).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"cache","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"]))}}),q8=t.defineComponent({__name:"NodeFormXmlToJson",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("xml_to_json"),o=t.computed(()=>r.value.fields.some(ee=>"force_array_paths"in ee)),{i18n:{t:i}}=Ye(),{formData:a,setName:s,setConfig:l,inputOptions:c,setInputs:d,setInput:u,inputsFieldNames:f,nameValidator:p,toggleNodeValid:m,fieldNameValidator:g}=rn(e.nodeId,()=>n.value.getValue()),_=i("plugins.free-form.datakit.flow_editor.node_properties.errors.attributes_required"),h=ee=>ee&&S0(ee)?"":i("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_force_array_path"),y=()=>!!(a.value.attributes_block_name||a.value.attributes_name_prefix),{createFieldHandler:w}=Ir({validationConfig:()=>({attributes_block_name:Xt(()=>y()?void 0:_,ee=>{if(ee)return xr(1,32,{fieldName:"Attributes block name"})(ee)}),attributes_name_prefix:Xt(()=>y()?void 0:_,ee=>{if(ee)return xr(1,32,{fieldName:"Attributes name prefix"})(ee)}),text_block_name:xr(1,32,{fieldName:"Text block name"}),xpath:xr(1,256,{fieldName:"XPath"}),force_array_paths:ee=>ee?.map(h).find(Boolean)}),getValidationData:()=>({attributes_block_name:a.value.attributes_block_name,attributes_name_prefix:a.value.attributes_name_prefix,text_block_name:a.value.text_block_name,xpath:a.value.xpath,force_array_paths:a.value.force_array_paths}),toggleNodeValid:m}),b=w("attributes_block_name",()=>l("attributes_block_name")),E=w("attributes_name_prefix",()=>l("attributes_name_prefix")),k=w("text_block_name",()=>l("text_block_name")),N=w("xpath",()=>l("xpath")),T=w("force_array_paths",()=>l("force_array_paths")),x=t.ref({}),B=()=>{T.value.error&&a.value.force_array_paths?.forEach((ee,j)=>O(j))},O=ee=>{x.value[ee]=h(a.value.force_array_paths?.[ee])},A=ee=>{T.value.validate(),O(ee)},I=ee=>{T.value.update(),O(ee)},V=ee=>{x.value=Object.fromEntries(Object.entries(x.value).filter(([j])=>Number(j)!==ee).map(([j,G])=>[Number(j)>ee?Number(j)-1:Number(j),G])),T.value.update(),B()};t.onMounted(B);const L=()=>{b.value.validate(),E.value.validate()},R=()=>{b.value.update(),E.value.validate()},Z=()=>{E.value.update(),b.value.validate()};return(ee,j)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(a),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(a).name,validate:t.unref(p),onUpdate:t.unref(s)},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(i)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"recognize_type","onUpdate:modelValue":j[0]||(j[0]=G=>t.unref(l)("recognize_type"))}),t.createVNode(t.unref(S.StringField),{error:t.unref(b).error,"error-message":t.unref(b).errorMessage,name:"attributes_block_name",onBlur:L,"onUpdate:modelValue":R},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(E).error,"error-message":t.unref(E).errorMessage,name:"attributes_name_prefix",onBlur:L,"onUpdate:modelValue":Z},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(k).error,"error-message":t.unref(k).errorMessage,name:"text_block_name",onBlur:t.unref(k).validate,"onUpdate:modelValue":t.unref(k).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"text_as_property","onUpdate:modelValue":j[1]||(j[1]=G=>t.unref(l)("text_as_property"))}),t.createVNode(t.unref(S.StringField),{error:t.unref(N).error,"error-message":t.unref(N).errorMessage,name:"xpath",onBlur:t.unref(N).validate,"onUpdate:modelValue":t.unref(N).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),o.value?(t.openBlock(),t.createBlock(t.unref(S.ArrayField),{key:0,name:"force_array_paths",onAdd:j[2]||(j[2]=G=>t.unref(l)("force_array_paths")),onRemove:V},{item:t.withCtx(({fieldName:G,index:$,autofocus:pe})=>[t.createVNode(t.unref(S.StringField),{autofocus:pe,error:!!x.value[$],"error-message":x.value[$],name:G,placeholder:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.xml_to_json.force_array_paths.placeholder"),onBlur:de=>A($),"onUpdate:modelValue":de=>I($)},null,8,["autofocus","error","error-message","name","placeholder","onBlur","onUpdate:modelValue"])]),_:1})):t.createCommentVNode("",!0),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(g),"field-names":t.unref(f),items:t.unref(c),"node-type":"xml_to_json","onChange:input":t.unref(u),"onChange:inputs":t.unref(d)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),G8=t.defineComponent({__name:"NodeFormJsonToXml",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("json_to_xml"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,addField:u,removeFieldByName:f,renameFieldByName:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h}=rn(e.nodeId,()=>n.value.getValue()),y=o("plugins.free-form.datakit.flow_editor.node_properties.errors.attributes_required"),w=()=>!!(i.value.attributes_block_name||i.value.attributes_name_prefix),{createFieldHandler:b}=Ir({validationConfig:{attributes_block_name:Xt(()=>w()?void 0:y,xr(1,32,{fieldName:"Attributes block name"})),attributes_name_prefix:Xt(()=>w()?void 0:y,xr(1,32,{fieldName:"Attributes name prefix"})),root_element_name:xr(1,64,{fieldName:"Root element name"}),text_block_name:xr(1,32,{fieldName:"Text block name"})},getValidationData:()=>({attributes_block_name:i.value.attributes_block_name,attributes_name_prefix:i.value.attributes_name_prefix,root_element_name:i.value.root_element_name,text_block_name:i.value.text_block_name}),toggleNodeValid:_}),E=b("attributes_block_name",()=>s("attributes_block_name")),k=b("attributes_name_prefix",()=>s("attributes_name_prefix")),N=b("root_element_name",()=>s("root_element_name")),T=b("text_block_name",()=>s("text_block_name"));function x(){E.value.validate(),k.value.validate()}function B(){E.value.update(),k.value.validate()}function O(){k.value.update(),E.value.validate()}function A(L,R){u("input",L,R)}function I(L){f("input",L)}function V(L,R){p("input",L,R)}return(L,R)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(g),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.StringField),{error:t.unref(E).error,"error-message":t.unref(E).errorMessage,name:"attributes_block_name",onBlur:x,"onUpdate:modelValue":B},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(k).error,"error-message":t.unref(k).errorMessage,name:"attributes_name_prefix",onBlur:x,"onUpdate:modelValue":O},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(N).error,"error-message":t.unref(N).errorMessage,name:"root_element_name",onBlur:t.unref(N).validate,"onUpdate:modelValue":t.unref(N).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{error:t.unref(T).error,"error-message":t.unref(T).errorMessage,name:"text_block_name",onBlur:t.unref(T).validate,"onUpdate:modelValue":t.unref(T).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(l),"node-type":"json_to_xml","onAdd:field":A,"onChange:input":t.unref(d),"onChange:inputs":t.unref(c),"onRemove:field":I,"onRename:field":V},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),z8=t.defineComponent({__name:"NodeFormJwtDecode",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_decode"),{formData:o,setName:i,inputOptions:a,setInputs:s,setInput:l,inputsFieldNames:c,nameValidator:d,fieldNameValidator:u}=rn(e.nodeId,()=>n.value.getValue());return(f,p)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(o).name,validate:t.unref(d),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(u),"field-names":t.unref(c),items:t.unref(a),"node-type":"jwt_decode","onChange:input":t.unref(l),"onChange:inputs":t.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),H8=t.defineComponent({__name:"NodeFormJwtSign",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_sign"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>{const w={...n.value.getValue()};return(!w.static_claims||Object.keys(w.static_claims).length===0)&&delete w.static_claims,w}),{createFieldHandler:g}=Ir({validationConfig:{algorithm:Io({fieldName:"Algorithm"}),expires_in:Xt(vo("integer",{fieldName:"Expires in"}),Jr(1,1/0,{fieldName:"Expires in"})),not_before:Xt(vo("integer",{fieldName:"Not before"}),Jr(0,1/0,{fieldName:"Not before"}))},getValidationData:()=>({algorithm:i.value.algorithm,expires_in:i.value.expires_in,not_before:i.value.not_before}),toggleNodeValid:p}),_=g("algorithm",()=>s("algorithm")),h=g("expires_in",()=>s("expires_in")),y=g("not_before",()=>s("not_before"));return(w,b)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",name:"algorithm",onUpdate:t.unref(_).update},null,8,["onUpdate"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(h).error,"error-message":t.unref(h).errorMessage,name:"expires_in",onBlur:t.unref(h).validate,"onUpdate:modelValue":t.unref(h).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(y).error,"error-message":t.unref(y).errorMessage,name:"not_before",onBlur:t.unref(y).validate,"onUpdate:modelValue":t.unref(y).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{name:"kid","onUpdate:modelValue":b[0]||(b[0]=E=>t.unref(s)("kid"))}),t.createVNode(t.unref(S.StringField),{name:"typ","onUpdate:modelValue":b[1]||(b[1]=E=>t.unref(s)("typ"))}),t.createVNode(t.unref(S.MapField),{label:t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.jwt.static_claims.label"),name:"static_claims",onLegacyValueChange:b[2]||(b[2]=E=>t.unref(s)("static_claims"))},null,8,["label"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"jwt_sign","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"]))}}),W8=t.defineComponent({__name:"NodeFormJwtVerify",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_verify"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Ir({validationConfig:{leeway:Xt(vo("integer",{fieldName:"Leeway"}),Jr(0,1/0,{fieldName:"Leeway"}))},getValidationData:()=>({leeway:i.value.leeway}),toggleNodeValid:p}),_=g("leeway",()=>s("leeway"));return(h,y)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",multiple:"",name:"allowed_algorithms",onUpdate:y[0]||(y[0]=w=>t.unref(s)("allowed_algorithms"))}),t.createVNode(t.unref(S.ArrayField),{name:"issuers",onAdd:y[2]||(y[2]=w=>t.unref(s)("issuers")),onRemove:y[3]||(y[3]=w=>t.unref(s)("issuers"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[1]||(y[1]=E=>t.unref(s)("issuers"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.ArrayField),{name:"audiences",onAdd:y[5]||(y[5]=w=>t.unref(s)("audiences")),onRemove:y[6]||(y[6]=w=>t.unref(s)("audiences"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[4]||(y[4]=E=>t.unref(s)("audiences"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.ArrayField),{name:"required_claims",onAdd:y[8]||(y[8]=w=>t.unref(s)("required_claims")),onRemove:y[9]||(y[9]=w=>t.unref(s)("required_claims"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[7]||(y[7]=E=>t.unref(s)("required_claims"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.NumberField),{error:t.unref(_).error,"error-message":t.unref(_).errorMessage,name:"leeway",onBlur:t.unref(_).validate,"onUpdate:modelValue":t.unref(_).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"validate_exp","onUpdate:modelValue":y[10]||(y[10]=w=>t.unref(s)("validate_exp"))}),t.createVNode(t.unref(S.BooleanField),{name:"validate_nbf","onUpdate:modelValue":y[11]||(y[11]=w=>t.unref(s)("validate_nbf"))}),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"jwt_verify","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"]))}}),Y8=["innerHTML"],J8={key:1,class:"branch-note"},X8={class:"branch-label"},Z8={class:"branch-text"},Q8=t.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:`${ny}px`},offsetTop:{default:`${vS}px`},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{t:n}=It.createI18n("en-us",Bt),{getNodeById:r,branchGroups:o}=Ct(),i=t.computed(()=>e.nodeId&&r(e.nodeId)),a=t.computed(()=>{if(e.nodeId)return o.findMembership(e.nodeId)}),s=t.computed(()=>{if(!a.value)return"";const d=r(a.value.ownerId);return d?`${d.name}.${a.value.branch}`:""});function l(){e.nodeId&&o.removeMember(e.nodeId)}const c=t.computed(()=>{switch(i.value?.type){case"call":return x8;case"service_request":return I8;case"response":return v8;case"jq":return T8;case"static":return V8;case"property":return D8;case"exit":return M8;case"branch":return j8;case"cache":return K8;case"xml_to_json":return q8;case"json_to_xml":return G8;case"jwt_decode":return z8;case"jwt_sign":return H8;case"jwt_verify":return W8;default:return null}});return(d,u)=>(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(IS),onClose:u[0]||(u[0]=f=>d.$emit("close"))},t.createSlots({default:t.withCtx(()=>[i.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:t.unref(ii)(i.value.type)},null,8,Y8)):t.createCommentVNode("",!0),a.value?(t.openBlock(),t.createElementBlock("div",J8,[t.createElementVNode("span",X8,[t.createVNode(t.unref(Ne.ArrowSplitIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["color","size"]),t.createElementVNode("span",Z8,t.toDisplayString(s.value),1)]),t.createVNode(t.unref(be.KTooltip),{placement:"top",text:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch")},{default:t.withCtx(()=>[t.createVNode(t.unref(be.KButton),{appearance:"none","aria-label":t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch"),class:"remove-branch",icon:"",size:"small",onClick:l},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.TrashIcon))]),_:1},8,["aria-label"])]),_:1},8,["text"])])):t.createCommentVNode("",!0),c.value?(t.openBlock(),t.createBlock(t.unref(c),{key:e.nodeId,class:"dk-node-properties-panel-form","node-id":e.nodeId},null,8,["node-id"])):t.createCommentVNode("",!0)]),_:2},[i.value?{name:"title",fn:t.withCtx(()=>[t.createVNode(Df,{type:i.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible","z-index"]))}}),eq=ve(Q8,[["__scopeId","data-v-32602117"]]),tq={class:"dk-editor-content"},nq={class:"main"},rq=ve(t.defineComponent({__name:"EditorContent",setup(e){const{propertiesPanelOpen:n,selectedNode:r}=Ct();function o(){n.value=!1}t.watch(r,a=>{a||o()});const i=t.ref(!1);return t.onMounted(()=>{i.value=!0}),(a,s)=>(t.openBlock(),t.createElementBlock("div",tq,[t.createVNode(t.unref(lK)),t.createElementVNode("div",nq,[t.createVNode(bj)]),t.createVNode(eq,{"node-id":t.unref(r)?.id,visible:t.unref(n),onClose:o},null,8,["node-id","visible"])]))}}),[["__scopeId","data-v-66331c5c"]]),oq={key:0,class:"dk-editor-modal"},iq=ve(t.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){t.useCssVars(l=>({v38ec900c:`${t.unref(xS)}px`,v620586b8:`${t.unref(ty)}px`}));const n=t.useModel(e,"open"),r=t.ref(!1),o=t.useTemplateRef("confirm-modal"),{clear:i}=Ct();c$(async(...l)=>{r.value=!0;const c=await o.value.open(...l);return r.value=!1,c});const a=Et.useScrollLock(document);t.watch(n,l=>{a.value=!!l,l||i()},{immediate:!0});function s(){n.value=!1}return(l,c)=>n.value?(t.openBlock(),t.createElementBlock("div",oq,[t.createVNode(pj,{class:"nav",onBack:s}),t.createVNode(rq,{ref:"content",class:"content",tabindex:"0"},null,512),t.createVNode(cj,{ref:"confirm-modal"},null,512)])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-c3604472"]]),aq={class:"dk-flow-editor"},sq={class:"flow-panels-container"},lq={class:"overlay"},cq=ve(t.defineComponent({__name:"FlowEditor",props:{isEditing:{type:Boolean}},emits:["change","error"],setup(e,{emit:n}){const{t:r}=It.createI18n("en-us",Bt),{setValue:o,getValue:i}=S.useFormShared(),a=n;function s(d,u,f,p){const m=SB(i(),d,u,f,p);o(m),a("change",m.config,m.__ui_data)}const{modalOpen:l,setPendingFitView:c}=Lf(i(),{onChange:s,isEditing:e.isEditing,enableCallErrorHandling:h0().value});return t.watch(l,()=>{c(!0)},{flush:"post"}),HU({enabled:l}),(d,u)=>{const f=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",aq,[t.createElementVNode("div",sq,[t.createVNode(em,{inactive:t.unref(l),mode:"preview"},null,8,["inactive"]),t.createElementVNode("div",lq,[t.createVNode(f,{appearance:"secondary",class:"button-open-editor",onClick:u[0]||(u[0]=p=>l.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.cta"))+" ",1),t.createVNode(t.unref(Ne.ExpandIcon))]),_:1})])]),t.createVNode(iq,{open:t.unref(l),"onUpdate:open":u[1]||(u[1]=p=>t.isRef(l)?l.value=p:null)},null,8,["open"])])}}}),[["__scopeId","data-v-e179d0f4"]]),dq=["innerHTML"],uq={class:"dk-option-label"},fq=Me({component:ve(t.defineComponent({inheritAttrs:!1,__name:"DatakitForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const{t:n}=It.createI18n("en-us",Bt),r=e,o=t.useAttrs(),i=t.inject(Ze.FORMS_CONFIG),a=t.ref(!1);t.onMounted(()=>{a.value=!!document.querySelector("#plugin-form-page-actions")});const{editorMode:s}=Cc(),l=t.computed(()=>i.app!=="konnect"||u.value===!1?"code":s.value),c=t.computed(()=>i.app==="kongManager"?"code":l.value==="flow"?"form":"code"),d={flow:Ne.DesignIcon,code:Ne.CodeblockIcon},u=t.ref(!0),f=t.ref("");function p(x){const{success:B,error:O}=B0.safeParse(x);f.value=B||!O?"":k(O),u.value=B}i.app==="konnect"&&p(r.model?.config);const m=t.computed(()=>{const x=[{label:n("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:n("plugins.free-form.datakit.code_editor.mode"),value:"code"}];return x[0].disabled=!u.value,x}),g=t.ref(!(r.isEditing&&r.model?.config?.ca_certificates?.length)),_=t.computed(()=>!!r.schema?.fields?.find(B=>"config"in B)?.config?.fields?.some(B=>"ca_certificates"in B)),h=t.computed(()=>{const x=[{name:"plugin-config",title:n("plugins.free-form.datakit.flow_editor.mode"),description:n("plugins.free-form.datakit.description_flow")}];return _.value&&x.push({name:"advanced",title:n("plugins.free-form.datakit.advanced_configuration.title")}),x}),y=t.computed(()=>u.value?"":n("plugins.free-form.datakit.flow_editor.disabled_tooltip",{reason:f.value,code:x=>`<code>${LO(x)}</code>`}));t.watch(l,()=>{r.onValidityChange?.({model:"config",valid:!0})});function w(){r.onValidityChange?.({model:"config",valid:!0})}function b(){w()}function E(x){return x.map(B=>typeof B=="number"?`[${B}]`:x.length&&typeof B=="string"&&B.includes(".")?`["${B}"]`:`.${B}`).join("").replace(/^\./,"")}function k(x){return x.issues.map(B=>`${E(B.path)} - ${B.message}`).join("; ")}function N(x){if(w(),i.app!=="konnect")return;const B=x?.config;p(B)}function T(x){f.value=x,u.value=!1,r.onValidityChange?.({model:"config",valid:!1,error:x})}return(x,B)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.unref(i).app==="konnect"?(t.openBlock(),t.createBlock(t.Teleport,{key:0,defer:"",disabled:!a.value,to:"#plugin-form-page-actions"},[t.createVNode(t.unref(be.KSegmentedControl),{"data-testid":"datakit-editor-mode-switcher","model-value":l.value,options:m.value,"onUpdate:modelValue":B[0]||(B[0]=O=>s.value=O)},{"option-label":t.withCtx(({option:O})=>[t.createVNode(t.unref(be.KTooltip),{disabled:u.value||O.value!=="flow"},{content:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:y.value},null,8,dq)]),default:t.withCtx(()=>[t.createElementVNode("div",uq,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[O.value]))),t.createTextVNode(" "+t.toDisplayString(O.label),1)])]),_:2},1032,["disabled"])]),_:1},8,["model-value","options"])],8,["disabled"])):t.createCommentVNode("",!0),t.createVNode(nn,t.mergeProps({...t.unref(o),...r},{class:"dk-form","config-sections":h.value,"editor-mode":c.value,"hide-editor-mode-switcher":""}),{"section-plugin-config":t.withCtx(()=>[l.value==="flow"?(t.openBlock(),t.createBlock(cq,{key:0,"is-editing":r.isEditing,onChange:b},null,8,["is-editing"])):t.createCommentVNode("",!0)]),"section-advanced":t.withCtx(()=>[t.createVNode(t.unref(be.KCollapse),{modelValue:g.value,"onUpdate:modelValue":B[1]||(B[1]=O=>g.value=O),"data-testid":"dk-advanced-configuration-collapse","trigger-label":g.value?t.unref(n)("plugins.free-form.datakit.advanced_configuration.show_label"):t.unref(n)("plugins.free-form.datakit.advanced_configuration.hide_label")},{default:t.withCtx(()=>[t.createVNode(MU,{name:"$.config.ca_certificates"})]),_:1},8,["modelValue","trigger-label"])]),"code-editor":t.withCtx(()=>[t.createVNode(GU,{class:"code-editor",editing:r.isEditing,onChange:N,onError:T},null,8,["editing"])]),_:1},16,["config-sections","editor-mode"])],64))}}),[["__scopeId","data-v-2a94f26a"]])}),pq={class:"ff-response-mapping"},mq={class:"ff-response-mapping-header"},gq={class:"ff-response-mapping-col ff-response-mapping-col--code"},hq={class:"ff-response-mapping-col ff-response-mapping-col--status"},yq={class:"ff-response-mapping-col ff-response-mapping-col--message"},_q={class:"ff-response-mapping-col ff-response-mapping-col--code"},bq={class:"ff-response-mapping-col ff-response-mapping-col--status"},wq={class:"ff-response-mapping-col ff-response-mapping-col--message"},kq=ve(t.defineComponent({__name:"ResponseMappingField",setup(e){const{i18n:{t:n}}=Ye(),r=["NO_CREDIT_AVAILABLE","USAGE_LIMIT_REACHED","FEATURE_UNAVAILABLE","FEATURE_NOT_FOUND","CUSTOMER_NOT_FOUND"],{formData:o,getDefault:i}=S.useFormShared();for(const a of r)for(const s of["http_status","message"]){const l=["config","response_codes",a,s];Aa(o,l)==null&&V_(o,l,i(`config.response_codes.${a}.${s}`))}return(a,s)=>(t.openBlock(),t.createElementBlock("div",pq,[t.createElementVNode("div",mq,[t.createElementVNode("span",gq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.code")),1),t.createElementVNode("span",hq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.status")),1),t.createElementVNode("span",yq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.message")),1)]),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(r,l=>t.createElementVNode("div",{key:l,class:"ff-response-mapping-row"},[t.createElementVNode("div",_q,[t.createVNode(t.unref(be.KInput),{"data-testid":`ff-response-mapping-code-${l}`,"model-value":l,readonly:""},null,8,["data-testid","model-value"])]),t.createElementVNode("div",bq,[t.createVNode(t.unref(S.NumberField),{label:"",name:`config.response_codes.${l}.http_status`},null,8,["name"])]),t.createElementVNode("div",wq,[t.createVNode(t.unref(S.StringField),{label:"",name:`config.response_codes.${l}.message`},null,8,["name"])])])),64))]))}}),[["__scopeId","data-v-7303bff5"]]),Cq={class:"ff-card-radio-field"},Eq={class:"ff-card-radio-field-cards"},om=ve(t.defineComponent({__name:"CardRadioField",props:{name:{},label:{},options:{}},setup(e){const n=e,{formData:r}=S.useFormShared(),o=t.computed({get:()=>{const i=n.name.split(".");return Aa(r,i)},set:i=>{const a=n.name.split(".");V_(r,a,i)}});return(i,a)=>(t.openBlock(),t.createElementBlock("div",Cq,[e.label?(t.openBlock(),t.createBlock(t.unref(be.KLabel),{key:0},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),_:1})):t.createCommentVNode("",!0),t.createElementVNode("div",Eq,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.options,s=>(t.openBlock(),t.createBlock(t.unref(be.KRadio),{key:String(s.value),modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),card:"","card-orientation":"horizontal",description:s.description,label:s.label,"selected-value":s.value},null,8,["modelValue","description","label","selected-value"]))),128))])]))}}),[["__scopeId","data-v-16fa5598"]]),Nq={class:"ff-feature-option"},Sq={class:"ff-feature-option-key"},Aq={key:0,class:"ff-feature-option-name"},xq=ve(t.defineComponent({__name:"FeatureSelectField",emits:["click:create-entity"],setup(e,{emit:n}){const r=n,{i18n:{t:o}}=Ye(),i=t.inject(Ze.FORMS_CONFIG),{axiosInstance:a}=ge.useAxios(i?.axiosRequestConfig),{formData:s}=S.useFormShared(),l=t.computed(()=>i?.metering?.canListFeatures!==!1),c=t.computed(()=>i?.metering?.canCreateFeature!==!1),d=t.ref([]),u=t.ref(!1),f=t.computed(()=>i?.metering?.featuresEndpoint??""),p=t.computed(()=>Aa(s,["config","feature","key"])),m=t.computed(()=>{const _=[...d.value];return p.value&&!_.some(h=>h.value===p.value)&&_.unshift({label:p.value,value:p.value}),_});async function g(){if(!(!l.value||!f.value)){u.value=!0;try{const h=(await a.get(f.value)).data?.data??[];d.value=h.map(y=>({label:y.key,value:y.key,name:y.name}))}catch(_){console.warn("[governance]",o("plugins.free-form.governance.fields.feature_key.load_error"),_)}finally{u.value=!1}}}return t.onMounted(g),(_,h)=>{const y=t.resolveComponent("KAlert");return t.openBlock(),t.createElementBlock(t.Fragment,null,[l.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(y,{key:0,appearance:"warning",class:"ff-feature-unavailable","data-testid":"ff-feature-unavailable",message:t.unref(o)("plugins.free-form.governance.fields.feature_key.unavailable"),"show-icon":""},null,8,["message"])),t.createVNode(t.unref(S.EnumField),{disabled:!l.value,"enable-filtering":"",help:t.unref(o)("plugins.free-form.governance.fields.feature_key.help"),items:m.value,label:t.unref(o)("plugins.free-form.governance.fields.feature_key.label"),loading:u.value,name:"config.feature.key"},t.createSlots({"item-label":t.withCtx(w=>[t.createElementVNode("div",Nq,[t.createElementVNode("span",Sq,t.toDisplayString(w.value),1),w.name?(t.openBlock(),t.createElementBlock("span",Aq,t.toDisplayString(w.name),1)):t.createCommentVNode("",!0)])]),_:2},[c.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"ff-feature-create","data-testid":"ff-feature-create-action",onClick:h[0]||(h[0]=w=>r("click:create-entity",{type:"feature"}))},[t.createElementVNode("span",null,t.toDisplayString(t.unref(o)("plugins.free-form.governance.fields.feature_key.create_feature")),1)])]),key:"0"}:void 0]),1032,["disabled","help","items","label","loading"])],64)}}}),[["__scopeId","data-v-57fec0bf"]]),Iq={class:"ff-entitlement-enforcement-subject"},vq={class:"ff-entitlement-enforcement-connection-heading"},Tq={class:"ff-entitlement-enforcement-inline-row"},Oq={class:"ff-entitlement-enforcement-cache-sync-heading"},Bq={class:"ff-entitlement-enforcement-cache-sync"},Pq={class:"ff-entitlement-enforcement-response-mapping-heading"},Vq={class:"ff-entitlement-enforcement-deny-unknown-customers-heading"},$q=Me({component:ve(t.defineComponent({__name:"EntitlementEnforcementForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},emits:["click:create-entity"],setup(e,{emit:n}){const r=e,o=n,i=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,i?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:a}}=Ye(),s=t.inject(Ze.FORMS_CONFIG),l=t.computed(()=>s?.app==="kongManager"),d=t.inject(Jp)?.(()=>!l.value);t.onUnmounted(()=>d?.());const u=t.computed(()=>{const h=s?.geoApiServerUrl,y=h?new URL(h).hostname.split(".")[0]:null;return y?`https://${y}.api.konghq.com/v3/openmeter/entitlement-access/query`:"https://us.api.konghq.com/v3/openmeter/entitlement-access/query"}),f={prepareFormData:h=>r.isEditing?h:s?.app==="konnect"&&!h?.config?.entitlement_access_endpoint?{...h,config:{...h?.config,entitlement_access_endpoint:u.value}}:h},p=[{name:"configuration",title:a("plugins.free-form.governance.sections.configuration.title"),description:a("plugins.free-form.governance.sections.configuration.description")},{name:"entitlement-enforcement",title:a("plugins.free-form.governance.sections.governance.title"),description:a("plugins.free-form.governance.sections.governance.description")}],m=t.computed(()=>[{value:!0,label:a("plugins.free-form.governance.fields.credit_balance_required.yes_label"),description:a("plugins.free-form.governance.fields.credit_balance_required.yes_description")},{value:!1,label:a("plugins.free-form.governance.fields.credit_balance_required.no_label"),description:a("plugins.free-form.governance.fields.credit_balance_required.no_description")}]),g=t.computed(()=>[{value:"allow",label:a("plugins.free-form.governance.fields.fail_policy.allow_label"),description:a("plugins.free-form.governance.fields.fail_policy.allow_description")},{value:"block",label:a("plugins.free-form.governance.fields.fail_policy.block_label"),description:a("plugins.free-form.governance.fields.fail_policy.block_description")}]),_=t.computed(()=>[{value:!1,label:a("plugins.free-form.governance.fields.deny_unknown_customers.allow_label"),description:a("plugins.free-form.governance.fields.deny_unknown_customers.allow_description")},{value:!0,label:a("plugins.free-form.governance.fields.deny_unknown_customers.deny_label"),description:a("plugins.free-form.governance.fields.deny_unknown_customers.deny_description")}]);return(h,y)=>{const w=t.resolveComponent("KAlert");return l.value?(t.openBlock(),t.createBlock(w,{key:0,appearance:"info",class:"ff-entitlement-enforcement-unavailable","data-testid":"ff-entitlement-enforcement-unavailable",message:t.unref(a)("plugins.free-form.governance.unavailable_kong_manager")},null,8,["message"])):(t.openBlock(),t.createBlock(nn,t.mergeProps({key:1},r,{"config-sections":p,"form-config":f}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.customer.look_up_value_in"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(b,{help:t.unref(a)("plugins.free-form.governance.fields.look_up_value_in.help"),label:t.unref(a)("plugins.free-form.governance.fields.look_up_value_in.label")}),null,16,["help","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.customer.field"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.StringField),t.mergeProps(b,{help:t.unref(a)("plugins.free-form.governance.fields.subject_field.help"),label:t.unref(a)("plugins.free-form.governance.fields.subject_field.label"),placeholder:t.unref(a)("plugins.free-form.governance.fields.subject_field.placeholder")}),null,16,["help","label","placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.ssl_verify"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(b,{description:t.unref(a)("plugins.free-form.governance.fields.ssl_verify.description"),label:t.unref(a)("plugins.free-form.governance.fields.ssl_verify.label")}),null,16,["description","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.timeout"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(b,{label:t.unref(a)("plugins.free-form.governance.fields.timeout.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.keepalive"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(b,{label:t.unref(a)("plugins.free-form.governance.fields.keepalive.label")}),null,16,["label"])]),_:1},8,["match"])]),"section-configuration":t.withCtx(()=>[t.createElementVNode("div",Iq,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config.customer","render-rules":{dependencies:{field:["look_up_value_in",["header","query"]]}},"reset-label-path":"reset"})]),t.createVNode(xq,{"onClick:createEntity":y[0]||(y[0]=b=>o("click:create-entity",b))}),t.createElementVNode("h3",vq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.sections.connection.title")),1),t.createVNode(t.unref(S.StringField),{help:t.unref(a)("plugins.free-form.governance.fields.governance_endpoint.help"),name:"config.entitlement_access_endpoint"},null,8,["help"]),t.createVNode(t.unref(S.Field),{name:"config.api_token"}),t.createVNode(t.unref(S.Field),{name:"config.ssl_verify"}),t.createElementVNode("div",Tq,[t.createVNode(t.unref(S.Field),{name:"config.timeout"}),t.createVNode(t.unref(S.Field),{name:"config.keepalive"})]),t.createVNode(lw,{borderless:"","is-konnect-managed-redis-enabled":r.isKonnectManagedRedisEnabled??!1},null,8,["is-konnect-managed-redis-enabled"]),t.createVNode(Yr,{class:"ff-entitlement-enforcement-advanced-fields-container","data-testid":"ff-entitlement-enforcement-config-advanced-fields","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createElementVNode("h3",Oq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.sections.cache_sync.title")),1),t.createElementVNode("div",Bq,[t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.sync_rate.label"),name:"config.sync_rate"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.refresh_interval.label"),name:"config.refresh_interval"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.max_stale_seconds.label"),name:"config.max_stale_seconds"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.l1_ttl.label"),name:"config.l1_cache_ttl_seconds"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.l2_ttl.label"),name:"config.l2_cache_ttl_seconds"},null,8,["label"])])])]),_:1})]),"section-entitlement-enforcement":t.withCtx(()=>[t.createVNode(om,{label:t.unref(a)("plugins.free-form.governance.fields.credit_balance_required.label"),name:"config.credit_balance_required",options:m.value},null,8,["label","options"]),t.createVNode(om,{label:t.unref(a)("plugins.free-form.governance.fields.fail_policy.label"),name:"config.fail_policy",options:g.value},null,8,["label","options"]),t.createVNode(Yr,{class:"ff-entitlement-enforcement-advanced-fields-container","data-testid":"ff-entitlement-enforcement-advanced-settings","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createElementVNode("h3",Pq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.fields.response.label")),1),t.createVNode(kq)]),t.createElementVNode("div",null,[t.createElementVNode("h3",Vq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.fields.deny_unknown_customers.label")),1),t.createVNode(om,{name:"config.deny_unknown_customers",options:_.value},null,8,["options"])])]),_:1})]),_:1},16))}}}),[["__scopeId","data-v-e4aad1a9"]])}),Rq=Me({fieldRenderers:[{match:({genericPath:e})=>e==="config.functions.*",component:S.StringField,propsOverrides:e=>({...e,multiline:!0,rows:3})}]}),Lq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Fq=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}}}),Dq=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}}}),Mq=Me({fieldRenderers:[{match:"config.proto",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),Uq=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),jq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Kq=Me({fieldRenderers:[{match:"config.injection_types",component:S.EnumField,propsOverrides:{multiple:!0}},{match:"config.locations",component:S.EnumField,propsOverrides:{multiple:!0}},{match:"config.custom_injections",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Injection`}}]}),qq=Me({fieldRenderers:[{match:({path:e})=>e==="config.request_jq_program"||e==="config.response_jq_program",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),V0=ve(t.defineComponent({__name:"ConfigForm",setup(e){const{getSchema:n,createComputedRenderRules:r}=S.useFormShared(),o=r("config"),i=t.computed(()=>{const s=[],l=[],c=new Set,u=n().fields.find(h=>Object.keys(h)[0]==="config");if(!u||!("config"in u))return{defaultVisible:s,advanced:l};const f=u.config;f.entity_checks&&f.entity_checks.forEach(h=>{let y;"at_least_one_of"in h?y=h.at_least_one_of:"conditional"in h&&n(S.resolve("config",h.conditional.if_field))?.required&&h.conditional.then_match.required?y=[h.conditional.if_field,h.conditional.then_field]:"conditional_at_least_one_of"in h&&n(S.resolve("config",h.conditional_at_least_one_of.if_field))?.required&&(y=[h.conditional_at_least_one_of.if_field,...h.conditional_at_least_one_of.then_at_least_one_of]),y?.forEach(w=>c.add(w.split(".")[0]))});const p=o.value?.bundles??[],m=new Map;for(const h of p)for(let y=1;y<h.length;y++)m.set(h[y],h[y-1]);const g=h=>{const y=m.get(h);return y?g(y):h},_=new Map;for(const h of f.fields){const y=Object.keys(h)[0];_.set(y,g(y))}for(const h of f.fields){const y=Object.keys(h)[0];if(_.get(y)!==y)continue;let b;h[y].required||c.has(y)?b=s:b=l,b.push(y)}for(const h of f.fields){const y=Object.keys(h)[0],w=_.get(y);w!==y&&(s.includes(w)?s:l).push(y)}return{defaultVisible:s,advanced:l}}),a=t.computed(()=>i.value.defaultVisible.length===0);return(s,l)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",class:"ff-default-visible-fields",name:"config",omit:a.value?[]:i.value.advanced,"reset-label-path":"reset"},null,8,["omit"]),a.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(Yr,{key:0,class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:i.value.defaultVisible,"reset-label-path":"reset"},null,8,["omit"])]),_:1}))],64))}}),[["__scopeId","data-v-4f13e3ac"]]),$0=t.defineComponent({inheritAttrs:!1,__name:"KeysetField",props:{name:{},scope:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=t.inject(Ze.FORMS_CONFIG),i=t.computed(()=>o?.app==="konnect"),{formData:a,config:s}=S.useFormShared();function l(p){const m=`config.${p}`,g=S.defaultLabelFormatter(p);return s.value.transformLabel?s.value.transformLabel(g,m):g}function c(p){if(typeof p!="string"||!p)return!1;try{const m=new URL(p);return(m.protocol==="http:"||m.protocol==="https:")&&!!m.host}catch{return!1}}const d=t.computed(()=>{if(!i.value)return{hasError:!1,message:""};const p=a.config,m=p?.[`${n.scope}_token_signing`],g=p?.[`${n.scope}_token_upstream_header`];if(!m)return{hasError:!1,message:""};if(typeof g!="string"||g==="")return{hasError:!1,message:""};const _=p?.[`${n.scope}_token_keyset`];return c(_)?{hasError:!1,message:""}:{hasError:!0,message:r("plugins.free-form.jwt-signer.keyset_url_required",{signingField:l(`${n.scope}_token_signing`),headerField:l(`${n.scope}_token_upstream_header`)})}}),u=t.computed(()=>d.value.hasError),f=t.computed(()=>d.value.message);return(p,m)=>(t.openBlock(),t.createBlock(t.unref(S.StringField),t.mergeProps(p.$attrs,{error:u.value,"error-message":f.value,name:e.name}),null,16,["error","error-message","name"]))}}),Gq=Me({component:t.defineComponent({__name:"JwtSignerForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.access_token_signing","config.access_token_upstream_header","config.access_token_keyset"],["config.channel_token_signing","config.channel_token_upstream_header","config.channel_token_keyset"]]},o=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]),(i,a)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"render-rules":r}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:s})=>s==="config.access_token_keyset"},{default:t.withCtx(s=>[t.createVNode($0,t.mergeProps(s,{scope:"access"}),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:s})=>s==="config.channel_token_keyset"},{default:t.withCtx(s=>[t.createVNode($0,t.mergeProps(s,{scope:"channel"}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(V0)]),_:1},16))}})}),zq=Me({fieldRenderers:[{match:"config.message_by_lua_functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}},{match:"config.topics",component:S.ArrayField,propsOverrides:{appearance:"tabs",stickyTabs:!0,itemLabel:(e,n)=>`#${n+1} Topic`}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Hq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Wq=Me({fieldRenderers:[{match:"config.message_by_lua_functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Yq=Me({component:d0}),Jq=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),Xq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Zq={class:"ff-collapsible-section"},Qq={class:"ff-collapsible-section-header"},e3={class:"ff-collapsible-section-header-toggle"},t3={key:0,class:"ff-collapsible-section-content"},n3={key:0,class:"ff-collapsible-section-indent-guide"},im=ve(t.defineComponent({__name:"CollapsibleSection",props:t.mergeModels({label:{}},{expanded:{type:Boolean,default:!0},expandedModifiers:{}}),emits:["update:expanded"],setup(e){const n=t.useModel(e,"expanded");return(r,o)=>(t.openBlock(),t.createElementBlock("div",Zq,[t.createElementVNode("header",Qq,[t.createElementVNode("div",e3,[t.createElementVNode("button",{class:"ff-collapsible-section-toggle-btn",type:"button",onClick:o[0]||(o[0]=t.withModifiers(i=>n.value=!n.value,["prevent","stop"]))},[t.createVNode(t.unref(Ne.ChevronRightIcon),{class:t.normalizeClass(["ff-collapsible-section-toggle-btn-trigger-icon",{"collapse-expanded":n.value}]),decorative:"",size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["class","size"])]),t.createVNode(t.unref(be.KLabel),{class:"ff-collapsible-section-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),_:1})])]),t.createVNode(t.unref(S.SlideTransition),null,{default:t.withCtx(()=>[n.value?(t.openBlock(),t.createElementBlock("div",t3,[t.renderSlot(r.$slots,"default",{},void 0,!0)])):t.createCommentVNode("",!0)]),_:3}),n.value?(t.openBlock(),t.createElementBlock("div",n3)):t.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-14f2e076"]]),r3={class:"ff-mb-subject"},o3={class:"ff-mb-attributes"},i3={class:"ff-metering-billing-inline-row"},a3={class:"ff-mb-queue"},s3=Me({component:ve(t.defineComponent({__name:"MeteringAndBillingForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:o}}=Ye(),i=t.inject(Ze.FORMS_CONFIG),a=t.computed(()=>{const u=i?.geoApiServerUrl,f=u?new URL(u).hostname.split(".")[0]:null;return f?`https://${f}.api.konghq.com/v3/openmeter/events`:"https://{{region}}.api.konghq.com/v3/openmeter/events"}),s={prepareFormData:u=>n.isEditing?u:i?.app==="konnect"&&!u?.config?.ingest_endpoint?{...u,config:{...u?.config,ingest_endpoint:a.value}}:u},l=t.ref(!0),c=t.ref(!0),d=t.ref(!0);return(u,f)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"form-config":s,"plugin-config-description":t.unref(o)("plugins.free-form.metering-and-billing.sections.plugin_config.description")}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.meter_api_requests"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.meter_api_requests.description")}),null,16,["description"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.meter_ai_token_usage"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.meter_ai_token_usage.description")}),null,16,["description"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.ssl_verify"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.ssl_verify.description"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.ssl_verify.label")}),null,16,["description","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.subject.look_up_value_in"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(p,{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.look_up_value_in.help"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.look_up_value_in.label")}),null,16,["help","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.subject.field"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.help"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.label"),placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.placeholder")}),null,16,["help","label","placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.timeout"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.timeout.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.keepalive"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.keepalive.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_coalescing_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_coalescing_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.initial_retry_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.initial_retry_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_retry_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_retry_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_retry_time"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_retry_time.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p.startsWith("config.attributes.")&&p.endsWith(".look_up_value_in")},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.look_up_value_in.placeholder")}),null,16,["placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p.startsWith("config.attributes.")&&p.endsWith(".event_property_name")},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.event_property_name.placeholder")}),null,16,["placeholder"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(im,{expanded:l.value,"onUpdate:expanded":f[0]||(f[0]=p=>l.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.sections.metering.title")},{default:t.withCtx(()=>[t.createVNode(t.unref(S.Field),{name:"config.meter_api_requests"}),t.createVNode(t.unref(S.Field),{name:"config.meter_ai_token_usage"})]),_:1},8,["expanded","label"]),t.createElementVNode("div",r3,[t.createVNode(t.unref(S.ObjectField),{label:t.unref(o)("plugins.free-form.metering-and-billing.sections.subject.title"),name:"config.subject","render-rules":{dependencies:{field:["look_up_value_in",["query","header"]]}},"reset-label-path":"reset"},null,8,["label"])]),t.createVNode(im,{expanded:c.value,"onUpdate:expanded":f[1]||(f[1]=p=>c.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.title")},{default:t.withCtx(()=>[t.createElementVNode("div",o3,[t.createVNode(t.unref(S.ArrayField),{"hide-label":"",name:"config.attributes"})])]),_:1},8,["expanded","label"]),t.createVNode(im,{expanded:d.value,"onUpdate:expanded":f[2]||(f[2]=p=>d.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.sections.ingestion.title")},{default:t.withCtx(()=>[t.createVNode(t.unref(S.StringField),{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.ingest_endpoint.help"),name:"config.ingest_endpoint"},null,8,["help"]),t.createVNode(t.unref(S.Field),{name:"config.api_token"}),t.createVNode(t.unref(S.Field),{name:"config.ssl_verify"}),t.createElementVNode("div",i3,[t.createVNode(t.unref(S.Field),{name:"config.timeout"}),t.createVNode(t.unref(S.Field),{name:"config.keepalive"})])]),_:1},8,["expanded","label"]),t.createVNode(Yr,{class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",a3,[t.createVNode(t.unref(be.KLabel),{class:"ff-mb-queue-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.metering-and-billing.sections.queue.title")),1)]),_:1}),t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config.queue","reset-label-path":"reset"})])]),_:1})]),_:1},16,["plugin-config-description"]))}}),[["__scopeId","data-v-59e8b5d5"]])}),l3=Me({fieldRenderers:[{match:"config.api_specification",component:S.StringField,propsOverrides:{multiline:!0,rows:15}}]}),c3=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),d3=Me({fieldRenderers:[{match:"config.api_spec",component:S.StringField,propsOverrides:{multiline:!0,rows:15}}]}),R0=Symbol("free-form-plugin-context"),L0=new WeakMap;function u3(e,n){const r=t.getCurrentInstance();if(!r)throw new Error("providePluginContext() must be called inside setup().");let o=L0.get(r);o||(o=t.reactive({}),L0.set(r,o),t.provide(R0,o));const i=o;i[e]=n}function Ac(e){const n=t.inject(R0,null),r=n?.[e];return n&&r===void 0&&console.warn(`usePluginContext(): no context registered for plugin "${String(e)}". Call providePluginContext('${String(e)}', ...) in an ancestor component first.`),r}const f3="2.3",p3=e=>!!e&&!S.isVersionSupported(e,f3);function m3(e,n){if(!n||!e)return e;const r={...e};if(!Array.isArray(r.fields))return e;r.fields=[...r.fields];const o=r.fields.findIndex(i=>"credential_claims"in i);if(o!==-1&&r.fields.splice(o,1),!r.fields.some(i=>"credential_claim"in i)){const i=r.shorthand_fields?.find(a=>"credential_claim"in a)?.credential_claim;if(i){const{deprecation:a,...s}=i,l={credential_claim:{...s,required:!1,default:a?.old_default??["sub"]}};r.fields.splice(o!==-1?o:r.fields.length,0,l)}}return r}function g3(e,n){if(!n)return e;const r=[...e.fields],o=r.findIndex(a=>"config"in a);if(o===-1)return e;const i={...r[o]};return i.config=m3(i.config,n),r[o]=i,{...e,fields:r}}function h3(e){const{claim:n,claims:r}=e;return Array.isArray(r)&&r.length>0||n==null||n===""||Array.isArray(n)&&n.length===0?null:[Array.isArray(n)?n:[n]]}function y3(e,n,r){return!!e?.find(i=>n in i)?.[n]?.deprecation?.replaced_with?.some(i=>i?.path?.includes(r))}const _3={key:0,class:"oidc-auth-methods"},b3={class:"auth-methods-hint"},w3={class:"session-management-section"},k3={class:"session-radio-group"},C3={key:1,class:"oidc-auth-methods"},E3={class:"auth-method-container"},am=["authorization_code","bearer","client_credentials","password","introspection","userinfo","kong_oauth2","refresh_token"],F0=["bearer","client_credentials","introspection","userinfo"],N3="identity.konghq",D0=e=>typeof e=="string"&&e.includes(N3),M0=ve(t.defineComponent({__name:"AuthMethodsField",props:{principalsMode:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=t.inject(Ze.FORMS_CONFIG),i=t.computed(()=>o?.app==="konnect"),{formData:a}=S.useFormShared(),s=t.computed(()=>a.config?.auth_methods??null),l=t.computed(()=>({authorization_code:r("plugins.free-form.openid-connect.auth_methods.methods.authorization_code"),bearer:r("plugins.free-form.openid-connect.auth_methods.methods.bearer"),client_credentials:r("plugins.free-form.openid-connect.auth_methods.methods.client_credentials"),password:r("plugins.free-form.openid-connect.auth_methods.methods.password"),introspection:r("plugins.free-form.openid-connect.auth_methods.methods.introspection"),userinfo:r("plugins.free-form.openid-connect.auth_methods.methods.userinfo"),kong_oauth2:r("plugins.free-form.openid-connect.auth_methods.methods.kong_oauth2"),refresh_token:r("plugins.free-form.openid-connect.auth_methods.methods.refresh_token")})),c=t.computed(()=>n.principalsMode!==null&&n.principalsMode!==void 0?n.principalsMode==="kong-identity":D0(a.config?.issuer)),d=t.computed(()=>(i.value&&c.value?am.filter(y=>F0.includes(y)):am).map(y=>({value:y,label:l.value[y]}))),u=t.computed(()=>(s.value??[]).filter(h=>h!=="session")),f=t.computed(()=>(s.value??[]).includes("session"));function p(h,y){a.config&&(a.config.auth_methods=y?[...h,"session"]:[...h])}function m(h){p(h,f.value)}function g(h,y){const w=y?[...new Set([...u.value,h])]:u.value.filter(b=>b!==h);p(w,f.value)}function _(h){p(u.value,h)}return(h,y)=>i.value?(t.openBlock(),t.createElementBlock("div",_3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.label")),1)]),_:1}),(t.openBlock(),t.createBlock(t.unref(be.KMultiselect),{key:e.principalsMode??"initial",class:"auth-methods-multiselect","data-testid":"auth-methods-multiselect",items:d.value,"model-value":u.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.auth_methods.placeholder"),"onUpdate:modelValue":m},null,8,["items","model-value","placeholder"])),t.createElementVNode("p",b3,t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.hint")),1),t.createElementVNode("div",w3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.label")),1)]),_:1}),t.createElementVNode("div",k3,[t.createVNode(t.unref(be.KRadio),{"data-testid":"session-radio-use",description:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.use_description"),label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.use_label"),"model-value":f.value,"selected-value":!0,onChange:y[0]||(y[0]=w=>_(!0))},null,8,["description","label","model-value"]),t.createVNode(t.unref(be.KRadio),{"data-testid":"session-radio-no-use",description:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.no_use_description"),label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.no_use_label"),"model-value":f.value,"selected-value":!1,onChange:y[1]||(y[1]=w=>_(!1))},null,8,["description","label","model-value"])])])])):(t.openBlock(),t.createElementBlock("div",C3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.km_label")),1)]),_:1}),t.createElementVNode("div",E3,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createElementBlock("div",{key:w.value,class:"auth-method"},[t.createVNode(t.unref(be.KCheckbox),{"data-testid":`auth-method-checkbox-${w.value}`,"model-value":u.value.includes(w.value),"onUpdate:modelValue":b=>g(w.value,b)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(w.label),1)]),_:2},1032,["data-testid","model-value","onUpdate:modelValue"])]))),128))]),t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"session-management-switch",label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.switch_label"),"model-value":f.value,"onUpdate:modelValue":_},null,8,["label","model-value"])]))}}),[["__scopeId","data-v-099c7b95"]]),S3={class:"oidc-client-jwk-field"},A3=ve(t.defineComponent({__name:"ClientJwkField",props:{name:{}},setup(e){const{i18n:{t:n}}=Ye();return(r,o)=>(t.openBlock(),t.createElementBlock("div",S3,[t.createVNode(t.unref(S.ArrayField),{appearance:"tabs","item-label":(i,a)=>`#${a+1} Client JWK`,name:e.name,"sticky-tabs":""},{label:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.openid-connect.advanced_fields.client_jwk_link_label"))+" ",1),t.createVNode(t.unref(be.KExternalLink),{class:"oidc-client-jwk-link",href:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-client-jwk"},{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createTextVNode(" More info ",-1)])]),_:1})]),_:1},8,["item-label","name"])]))}}),[["__scopeId","data-v-ea29d095"]]),x3={class:"principals-field-group"},I3={class:"principals-field-group"},v3={class:"lookup-method-item"},T3={class:"lookup-method-item-label"},O3={class:"lookup-method-item-description"},B3={class:"principals-field-group"},P3={class:"principals-field-group"},V3={class:"principals-field-group"},$3={key:1,class:"principals-field-group"},R3={key:2,class:"principals-field-group"},U0=ve(t.defineComponent({__name:"PrincipalLookupSettings",props:{disabled:{type:Boolean},dataPlaneIncompatible:{type:Boolean},showPrincipalsFields:{type:Boolean,default:!0},onEnabledChange:{type:Function}},setup(e){const n=t.createPropsRestProxy(e,["showPrincipalsFields"]),{i18n:{t:r}}=Ye(),o=t.inject(La,void 0),{formData:i,getEmptyValue:a,getSchema:s,getDefault:l,getFieldVersionInfo:c}=S.useFormShared();function d(le){return t.computed({get:()=>i.config?.principals?.[le],set:re=>{i.config?.principals&&(i.config.principals[le]=re)}})}const u=d("enabled"),f=d("principal_by"),p=d("principal_claim"),m=d("error_on_miss"),g=d("match_consumer"),_=d("match_consumer_groups"),h=Ac("openid-connect"),y=t.computed(()=>h?.source==="ai-manager"),w=t.computed(()=>s("$.config.principals.jit")),b=t.computed(()=>y.value&&!!w.value),E=t.computed(()=>c("$.config.principals.jit")),k=t.computed(()=>n.disabled||!!E.value),N=t.computed(()=>E.value?{info:E.value.tooltip,tooltipAttributes:{maxWidth:"300"}}:void 0),T=t.computed(()=>!!i.config?.principals?.jit);function x(le){const re=i.config?.principals;re&&(re.jit=le?l("$.config.principals.jit"):null)}function B(le){return t.computed({get:()=>i.config?.principals?.jit?.[le],set:re=>{const D=i.config?.principals?.jit;D&&(D[le]=re)}})}const O=B("all_claims"),A=B("claims");let I=null;function V(le){O.value=le,le?(I=Array.isArray(A.value)&&A.value.length>0?[...A.value]:null,A.value=a()):I&&(A.value=I,Z.value=L(I),I=null)}const L=le=>Array.isArray(le)?le.filter(Boolean).join(", "):"";function R(le){const re=le.split(",").map(D=>D.trim()).filter(Boolean);return re.length>0?re:a()}const Z=t.ref(L(A.value));function ee(le){Z.value=le,A.value=R(le)}t.watch(A,le=>{ti(le??null,R(Z.value)??null)||(Z.value=L(le))});const j=[{label:r("plugins.free-form.openid-connect.lookup.method.kong_identity_label"),value:"kong-identity",description:r("plugins.free-form.openid-connect.lookup.method.kong_identity_description")},{label:r("plugins.free-form.openid-connect.lookup.method.custom_identity_label"),value:"custom-identity",description:r("plugins.free-form.openid-connect.lookup.method.custom_identity_description")}],G=le=>le==null||le===""?!1:Array.isArray(le)?le.length>0:!0,$=t.ref(G(f.value)?"custom-identity":"kong-identity"),pe=t.computed(()=>u.value===!0),de=t.computed(()=>n.disabled||!pe.value),M=t.computed(()=>$.value==="custom-identity"?r("plugins.free-form.openid-connect.lookup.token_claim.help_custom"):r("plugins.free-form.openid-connect.lookup.token_claim.help"));function ue(le){return Array.isArray(le)&&le.length>0?le.map(re=>re.replace(/[\\.]/g,D=>`\\${D}`)).join("."):typeof le=="string"&&le?le:""}function ne(le){if(!le)return a();const re=[];let D="";for(let fe=0;fe<le.length;fe++){const Ee=le[fe];Ee==="\\"&&(le[fe+1]==="."||le[fe+1]==="\\")?(D+=le[fe+1],fe++):Ee==="."?(re.push(D),D=""):D+=Ee}re.push(D);const te=re.map(fe=>fe.trim()).filter(Boolean);return te.length>0?te:a()}!o?.value&&!G(p.value)&&(p.value=["sub"]);const ae=t.ref(ue(p.value));function ze(le){ae.value=le,p.value=ne(le.trim())}t.watch(p,le=>{const re=ne(ae.value.trim());ti(le??null,re??null)||(ae.value=ue(le))});function Ie(le){$.value=le??"kong-identity",le!=="custom-identity"&&(f.value=a(),p.value=a())}function je(le){n.onEnabledChange?n.onEnabledChange(le):u.value=le}return(le,re)=>{const D=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(t.unref(be.KCollapse),{class:"principals-advanced-settings","data-testid":"principals-advanced-settings","trigger-label":t.unref(r)("plugins.free-form.openid-connect.lookup.collapse_label")},{default:t.withCtx(()=>[e.showPrincipalsFields?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(le.$slots,"banner",{},void 0,!0),e.dataPlaneIncompatible?(t.openBlock(),t.createBlock(t.unref(be.KAlert),{key:0,appearance:"warning",class:"principals-dp-version-alert","data-testid":"oidc-principals-dp-version-alert",message:t.unref(r)("plugins.free-form.openid-connect.principals.dp_version_alert"),"show-icon":""},null,8,["message"])):t.createCommentVNode("",!0),t.createElementVNode("div",x3,[t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"use-principal-lookup",disabled:e.disabled,"model-value":pe.value,"onUpdate:modelValue":je},{label:t.withCtx(()=>[t.createVNode(t.unref(be.KLabel),{info:t.unref(r)("plugins.free-form.openid-connect.lookup.toggle_info"),"tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.toggle_label")),1)]),_:1},8,["info"])]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",I3,[t.createVNode(t.unref(be.KSelect),{class:"principals-lookup-method-select","data-testid":"principals-lookup-method",disabled:de.value,help:t.unref(r)("plugins.free-form.openid-connect.lookup.method.help"),items:j,label:t.unref(r)("plugins.free-form.openid-connect.lookup.method.label"),"model-value":$.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.method.placeholder"),"onUpdate:modelValue":Ie},{"item-template":t.withCtx(({item:te})=>[t.createElementVNode("div",v3,[t.createElementVNode("div",T3,t.toDisplayString(te.label),1),t.createElementVNode("div",O3,t.toDisplayString(te.description),1)])]),_:1},8,["disabled","help","label","model-value","placeholder"]),$.value==="custom-identity"?(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,class:"principals-custom-identity-name-input","data-testid":"principals-custom-identity-name",disabled:de.value,help:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.help"),label:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.label"),"model-value":t.unref(f)??void 0,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.placeholder"),"onUpdate:modelValue":re[0]||(re[0]=te=>f.value=te)},null,8,["disabled","help","label","model-value","placeholder"])):t.createCommentVNode("",!0),t.createVNode(t.unref(be.KInput),{class:"principals-token-claim-input","data-testid":"principals-token-claim",disabled:de.value,help:M.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.token_claim.label"),"model-value":ae.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.token_claim.placeholder"),"onUpdate:modelValue":ze},null,8,["disabled","help","label","model-value","placeholder"])]),t.createElementVNode("div",B3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.label")),1)]),_:1}),t.createVNode(t.unref(be.KRadio),{"data-testid":"principals-error-on-miss-true",description:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.reject_description"),disabled:de.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.reject_label"),"model-value":t.unref(m)??null,"selected-value":!0,onChange:re[1]||(re[1]=te=>m.value=!0)},null,8,["description","disabled","label","model-value"]),t.createVNode(t.unref(be.KRadio),{"data-testid":"principals-error-on-miss-false",description:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.continue_description"),disabled:de.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.continue_label"),"model-value":t.unref(m)??null,"selected-value":!1,onChange:re[2]||(re[2]=te=>m.value=!1)},null,8,["description","disabled","label","model-value"])]),t.createElementVNode("div",P3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-match-consumer",disabled:de.value,"model-value":t.unref(g)??!1,"onUpdate:modelValue":re[3]||(re[3]=te=>g.value=te)},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.description"))+" ",1),t.createVNode(D,{class:"principals-learn-more-link","hide-icon":"",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.link")),1)]),_:1})]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.label"))+" ",1)]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",V3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-match-consumer-groups",disabled:de.value,"model-value":t.unref(_)??!1,"onUpdate:modelValue":re[4]||(re[4]=te=>_.value=te)},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.description"))+" ",1),t.createVNode(D,{class:"principals-learn-more-link","hide-icon":"",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.link")),1)]),_:1})]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.label"))+" ",1)]),_:1},8,["disabled","model-value"])]),b.value?(t.openBlock(),t.createElementBlock("div",$3,[t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"principals-jit-toggle",disabled:k.value,"disabled-tooltip-text":E.value?.tooltip,"model-value":T.value,"tooltip-attributes":{maxWidth:"300"},"onUpdate:modelValue":x},{label:t.withCtx(()=>[t.createVNode(t.unref(be.KLabel),{info:t.unref(r)("plugins.free-form.openid-connect.jit.toggle_info"),"tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.toggle_label")),1)]),_:1},8,["info"])]),_:1},8,["disabled","disabled-tooltip-text","model-value"])])):t.createCommentVNode("",!0),b.value&&T.value?(t.openBlock(),t.createElementBlock("div",R3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-jit-all-claims",disabled:k.value,"label-attributes":N.value,"model-value":t.unref(O)??!1,"onUpdate:modelValue":V},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.all_claims.description")),1)]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.all_claims.label"))+" ",1)]),_:1},8,["disabled","label-attributes","model-value"]),t.unref(O)?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,class:"principals-jit-claims-input","data-testid":"principals-jit-claims",disabled:k.value,help:t.unref(r)("plugins.free-form.openid-connect.jit.claims.help"),label:t.unref(r)("plugins.free-form.openid-connect.jit.claims.label"),"label-attributes":N.value,"model-value":Z.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.jit.claims.placeholder"),"onUpdate:modelValue":ee},null,8,["disabled","help","label","label-attributes","model-value","placeholder"]))])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0),t.renderSlot(le.$slots,"default",{},void 0,!0)]),_:3},8,["trigger-label"])}}}),[["__scopeId","data-v-75b33020"]]),L3={class:"oidc-principals-section","data-testid":"oidc-principals-section"},F3={class:"principals-header"},D3={class:"principals-description"},M3={class:"oidc-auth-mode-radio-group","data-testid":"oidc-auth-mode-radio-group"},U3={class:"auth-mode-card-content"},j3={class:"auth-mode-card-label"},K3={class:"auth-mode-card-description"},q3={class:"auth-mode-card-content"},G3={class:"auth-mode-card-label"},z3={class:"auth-mode-card-description"},H3={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},W3={class:"principals-create-guide-title"},Y3={class:"principals-create-guide-description"},J3={class:"principals-create-guide-actions"},X3={class:"create-action-content"},Z3={class:"create-action-hint"},Q3={class:"create-action-content"},e4={class:"create-action-hint"},t4={class:"principals-client-secret-wrapper"},n4=["aria-label","disabled","onClick"],r4={class:"external-client-field"},o4=["innerHTML"],i4={class:"external-client-field"},a4=["innerHTML"],s4=["aria-label","disabled","onClick"],l4={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},c4={class:"principals-create-guide-title"},d4={class:"principals-create-guide-description"},u4={class:"principals-create-guide-actions"},Dn="kong-identity",sm="external",f4="/v1/auth-servers/_computed",p4=ve(t.defineComponent({__name:"PrincipalsSection",emits:["mode-change","click:learn-more","click:create-entity"],setup(e,{emit:n}){const r=t.inject(S.USE_SECRET_INPUT_KEY,t.computed(()=>!1)),o={major:3,minor:15},i=ke=>{const[Ae,Ce]=ke.split(".").map(Number);return Number.isNaN(Ae)||Number.isNaN(Ce)?!1:Ae!==o.major?Ae<o.major:Ce<o.minor},a=n,{i18n:{t:s}}=Ye(),l=t.inject(Ze.FORMS_CONFIG),c=t.inject(Ze.AUTOFILL_SLOT,void 0),d=t.inject(La,void 0),u=t.computed(()=>d?.value??!1),{formData:f,getLabelAttributes:p,getEmptyOrDefault:m,getEmptyValue:g}=S.useFormShared(),_=t.computed({get:()=>f.config?.issuer??null,set:ke=>{f.config&&(f.config.issuer=ke)}}),h=t.computed({get:()=>{const ke=f.config?.client_id;return Array.isArray(ke)&&ke.length>0?ke:[null]},set:ke=>{f.config&&(f.config.client_id=ke&&(ke.length>1||ke[0])?ke:g())}}),y=t.computed({get:()=>{const ke=f.config?.client_secret;return Array.isArray(ke)&&ke.length>0?ke:[null]},set:ke=>{f.config&&(f.config.client_secret=ke&&(ke.length>1||ke[0])?ke:g())}}),w=t.ref(u.value?D0(_.value)?Dn:sm:Dn),b=t.ref([]),E=t.ref(!1),k=t.ref([]),N=t.ref(!1),T=t.ref(null),x=t.ref(null);let B=!1;const O=t.ref(null),A=t.ref(null),I=Ac("openid-connect"),V=t.computed(()=>I?.source==="ai-manager"?s("plugins.free-form.openid-connect.principals.kong_identity_description_ai_manager"):s("plugins.free-form.openid-connect.principals.kong_identity_description")),L=t.computed(()=>p("config.client_id").info),R=t.computed(()=>p("config.client_secret").info),Z=t.computed(()=>b.value.map(ke=>({label:ke.name,value:ke.id}))),ee=t.computed(()=>k.value.map(ke=>({label:ke.name,value:ke.client_id||ke.id}))),j=t.computed(()=>G.value&&!T.value||h.value.length<=1),G=t.computed(()=>l?.isKongIdentityAuthServersAvailable!==!1),$=t.computed(()=>l?.canCreateAuthServer!==!1),pe=t.computed(()=>l?.canCreateAuthServerClient!==!1),de=t.computed(()=>l?.principalsCreationGuideVisible),M=t.computed(()=>de.value===!0),ue=t.computed(()=>de.value===void 0),ne=t.computed(()=>!M.value&&(l?.dataPlaneVersions??[]).some(i));t.watch(()=>l?.principalsDirectoryName,ke=>{u.value||w.value!==Dn||ke==null||f.config?.principals&&(f.config.principals.directory=ke)},{immediate:!0}),t.onMounted(()=>{u.value||t.nextTick(()=>{Pe(w.value),a("mode-change",w.value)}),ae()});async function ae(){if(l?.isKongIdentityAuthServersAvailable!==!1)try{E.value=!0;const{axiosInstance:ke}=ge.useAxios(l?.axiosRequestConfig),Ae=`${l?.apiBaseUrl}${f4}`,Ce=await ke.get(Ae);if(b.value=Ce.data?.data??[],_.value&&!T.value){const oe=b.value.find(ie=>ie.issuer===_.value)||null;oe&&(B=!0,T.value=oe,ze(oe.id))}}catch{b.value=[]}finally{E.value=!1}}async function ze(ke){try{N.value=!0;const{axiosInstance:Ae}=ge.useAxios(l?.axiosRequestConfig),Ce=`${l?.apiBaseUrl}/v1/auth-servers/${ke}/clients`,oe=await Ae.get(Ce);k.value=oe.data?.data??[]}catch{k.value=[]}finally{N.value=!1}}function Ie(ke){if(B){B=!1;return}T.value=b.value.find(Ae=>Ae.id===ke)||null,T.value?.issuer&&(_.value=T.value.issuer),h.value=null,y.value=null,k.value=[],N.value=!!ke,ke&&ze(ke)}function je(ke,Ae){const Ce=[...h.value];Ce[ke]=Ae,h.value=Ce}function le(ke,Ae){const Ce=[...y.value];Ce[ke]=Ae,y.value=Ce}function re(){h.value=[...h.value,null],y.value=[...y.value,null]}function D(ke){if(h.value.length<=1)return;const Ae=[...h.value];Ae.splice(ke,1),h.value=Ae;const Ce=[...y.value];Ce.splice(ke,1),y.value=Ce}function te(ke){const Ae=h.value;return ee.value.map(Ce=>({...Ce,disabled:Ae.some((oe,ie)=>ie!==ke&&oe===Ce.value)}))}function fe(){return f.config?.principals??m("config.principals")??{}}function Ee(ke){f.config&&(f.config.principals={...fe(),enabled:ke})}function Re(){const ke=x.value;x.value=null,ke==="authServer"?a("click:create-entity",{type:"auth-server"}):ke==="client"?a("click:create-entity",{type:"client",authServerId:T.value?.id}):ke==="principal"&&a("click:create-entity",{type:"principal"})}function Pe(ke){const Ae=(f.config?.auth_methods??[]).includes("session"),Ce=ke===sm||!u.value?!0:Ae,oe=ke===Dn?[...F0]:[...am];Ce&&oe.push("session"),f.config&&(f.config.auth_methods=oe)}return t.watch(w,(ke,Ae)=>{if(Ae===Dn?O.value={issuer:_.value,clientId:h.value,clientSecret:y.value,selectedServer:T.value,clients:k.value}:A.value={issuer:_.value,clientId:h.value,clientSecret:y.value},ke===Dn){const Ce=O.value;f.config&&(f.config.issuer=Ce?.issuer??g(),f.config.client_id=Ce?.clientId??g(),f.config.client_secret=Ce?.clientSecret??g()),Ce?.selectedServer&&(B=!0),T.value=Ce?.selectedServer??null,k.value=Ce?.clients??[]}else{const Ce=A.value;f.config&&(f.config.issuer=Ce?.issuer??g(),f.config.client_id=Ce?.clientId??g(),f.config.client_secret=Ce?.clientSecret??g()),T.value=null,k.value=[]}if(f.config){const Ce=fe(),oe=ke===Dn?l?.principalsDirectoryName??Ce.directory:"default";f.config.principals={...Ce,enabled:!1,error_on_miss:!0,match_consumer:!0,match_consumer_groups:!0,directory:oe}}Pe(ke),a("mode-change",ke)}),(ke,Ae)=>(t.openBlock(),t.createElementBlock("div",L3,[t.createElementVNode("div",F3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.header")),1),t.createElementVNode("div",D3,[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.description"))+" ",1),t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.learn_more")),1)]),_:1})]),t.createElementVNode("div",M3,[t.createVNode(t.unref(be.KRadio),{modelValue:w.value,"onUpdate:modelValue":Ae[0]||(Ae[0]=Ce=>w.value=Ce),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-kong-identity","selected-value":Dn},{default:t.withCtx(()=>[t.createElementVNode("div",U3,[t.createVNode(t.unref(Ne.KeyIcon),{size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]),t.createElementVNode("div",j3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.kong_identity_label")),1),t.createElementVNode("div",K3,t.toDisplayString(V.value),1)])]),_:1},8,["modelValue"]),t.createVNode(t.unref(be.KRadio),{modelValue:w.value,"onUpdate:modelValue":Ae[1]||(Ae[1]=Ce=>w.value=Ce),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-external","selected-value":sm},{default:t.withCtx(()=>[t.createElementVNode("div",q3,[t.createVNode(t.unref(Ne.WorldIcon),{size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]),t.createElementVNode("div",G3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.external_label")),1),t.createElementVNode("div",z3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.external_description")),1)])]),_:1},8,["modelValue"])]),ue.value&&w.value===Dn?(t.openBlock(),t.createBlock(t.unref(be.KSkeleton),{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):M.value&&w.value===Dn?(t.openBlock(),t.createElementBlock("div",H3,[t.createElementVNode("div",W3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.title")),1),t.createElementVNode("div",Y3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.description")),1),t.createElementVNode("div",J3,[t.createVNode(t.unref(be.KButton),{appearance:"primary","data-testid":"principals-create-principal",onClick:Ae[2]||(Ae[2]=Ce=>x.value="principal")},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.create")),1)]),_:1}),t.createVNode(t.unref(be.KButton),{appearance:"secondary","data-testid":"principals-learn-more",onClick:Ae[3]||(Ae[3]=Ce=>ke.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.learn_more")),1)]),_:1})])])):t.createCommentVNode("",!0),w.value===Dn?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[G.value?(t.openBlock(),t.createBlock(t.unref(be.KSelect),{key:0,class:"principals-directory-select","data-testid":"principals-directory-select","enable-filtering":"",items:Z.value,label:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.label"),"label-attributes":{info:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.info"),tooltipAttributes:{maxWidth:"300"}},loading:E.value,"model-value":T.value?.id,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.placeholder"),required:"","onUpdate:modelValue":Ie},t.createSlots({_:2},[$.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("button",{class:"create-action","data-testid":"create-auth-server-action",type:"button",onClick:Ae[4]||(Ae[4]=t.withModifiers(Ce=>x.value="authServer",["stop"]))},[t.createVNode(t.unref(Ne.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"]),t.createElementVNode("div",X3,[t.createElementVNode("span",null,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.create")),1),t.createElementVNode("div",Z3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.create_hint")),1)])])]),key:"0"}:void 0]),1032,["items","label","label-attributes","loading","model-value","placeholder"])):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:1,"data-testid":"kong-identity-issuer-input",help:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.no_access_help"),label:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.label"),"label-attributes":{info:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.info"),tooltipAttributes:{maxWidth:"300"}},"model-value":_.value??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.issuer_placeholder"),required:"","onUpdate:modelValue":Ae[5]||(Ae[5]=Ce=>_.value=Ce)},null,8,["help","label","label-attributes","model-value","placeholder"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(Ce,oe)=>(t.openBlock(),t.createElementBlock("div",{key:oe,class:t.normalizeClass(["client-row",{"client-row-with-label":oe===0}])},[G.value?(t.openBlock(),t.createBlock(t.unref(be.KSelect),{key:1,class:"principals-client-select","data-testid":"principals-client-select",disabled:!T.value,"enable-filtering":"",items:te(oe),label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.label"):void 0,loading:N.value,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},t.createSlots({_:2},[pe.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("button",{class:"create-action","data-testid":"create-client-action",type:"button",onClick:Ae[6]||(Ae[6]=t.withModifiers(ie=>x.value="client",["stop"]))},[t.createVNode(t.unref(Ne.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"]),t.createElementVNode("div",Q3,[t.createElementVNode("span",null,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.create")),1),t.createElementVNode("div",e4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.create_hint")),1)])])]),key:"0"}:void 0]),1032,["disabled","items","label","loading","model-value","placeholder","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,autocomplete:"new-password",class:"principals-client-select","data-testid":"principals-client-id-input",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.label"):void 0,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.id_placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},null,8,["label","model-value","placeholder","onUpdate:modelValue"])),t.createElementVNode("div",t4,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(r)?t.unref(Gh.SecretInput):t.unref(be.KInput)),t.mergeProps({autocomplete:"new-password",class:"principals-client-secret","data-testid":"principals-client-secret",disabled:G.value&&!T.value,label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_label"):void 0,"model-value":y.value[oe]??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_placeholder")},{ref_for:!0},t.unref(r)?{}:{showPasswordMaskToggle:!0,type:"password"},{"onUpdate:modelValue":ie=>le(oe,ie)}),null,16,["disabled","label","model-value","placeholder","onUpdate:modelValue"])),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:ie=>le(oe,ie),value:y.value[oe]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":t.unref(s)("plugins.free-form.openid-connect.principals.client.remove"),class:"remove-client-btn","data-testid":"remove-client-action",disabled:j.value,type:"button",onClick:ie=>D(oe)},[t.createVNode(t.unref(Ne.CloseIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])],8,n4)],2))),128)),t.createVNode(t.unref(be.KButton),{appearance:"tertiary",class:"add-client-inline","data-testid":"add-client-action",disabled:G.value&&!T.value,icon:"",type:"button",onClick:Ae[7]||(Ae[7]=Ce=>re())},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.add")),1)]),_:1},8,["disabled"]),t.createVNode(U0,{"data-plane-incompatible":ne.value,"on-enabled-change":Ee},{default:t.withCtx(()=>[t.renderSlot(ke.$slots,"default",{},void 0,!0)]),_:3},8,["data-plane-incompatible"])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(Ce,oe)=>(t.openBlock(),t.createElementBlock("div",{key:oe,class:t.normalizeClass(["client-row",{"client-row-with-label":oe===0}])},[t.createElementVNode("div",r4,[t.createVNode(t.unref(be.KInput),{autocomplete:"new-password",class:"external-client-input","data-testid":"external-client-id",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.id_label"):void 0,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.id_placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},t.createSlots({_:2},[oe===0&&L.value?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:L.value},null,8,o4)]),key:"0"}:void 0]),1032,["label","model-value","placeholder","onUpdate:modelValue"]),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_id",referenceable:!0},update:ie=>je(oe,ie),value:Ce},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",i4,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(r)?t.unref(Gh.SecretInput):t.unref(be.KInput)),t.mergeProps({autocomplete:"new-password",class:"external-client-input","data-testid":"external-client-secret",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_label"):void 0,"model-value":y.value[oe]??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_placeholder")},{ref_for:!0},t.unref(r)?{}:{showPasswordMaskToggle:!0,type:"password"},{"onUpdate:modelValue":ie=>le(oe,ie)}),t.createSlots({_:2},[oe===0&&R.value?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:R.value},null,8,a4)]),key:"0"}:void 0]),1040,["label","model-value","placeholder","onUpdate:modelValue"])),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:ie=>le(oe,ie),value:y.value[oe]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":t.unref(s)("plugins.free-form.openid-connect.principals.client.remove"),class:"remove-client-btn","data-testid":"remove-external-client-action",disabled:h.value.length<=1,type:"button",onClick:ie=>D(oe)},[t.createVNode(t.unref(Ne.CloseIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])],8,s4)],2))),128)),t.createVNode(t.unref(be.KButton),{appearance:"tertiary",class:"add-client-inline","data-testid":"add-external-client-action",icon:"",type:"button",onClick:Ae[8]||(Ae[8]=Ce=>re())},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.add")),1)]),_:1}),t.createVNode(t.unref(S.Field),{name:"config.issuer"}),t.createVNode(U0,{"data-plane-incompatible":ne.value,"on-enabled-change":Ee},{banner:t.withCtx(()=>[de.value===void 0?(t.openBlock(),t.createBlock(t.unref(be.KSkeleton),{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):de.value?(t.openBlock(),t.createElementBlock("div",l4,[t.createElementVNode("div",c4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.title")),1),t.createElementVNode("div",d4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.description_external")),1),t.createElementVNode("div",u4,[t.createVNode(t.unref(be.KButton),{appearance:"primary","data-testid":"principals-create-principal",onClick:Ae[9]||(Ae[9]=Ce=>x.value="principal")},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.create")),1)]),_:1}),t.createVNode(t.unref(be.KButton),{appearance:"secondary","data-testid":"principals-learn-more",onClick:Ae[10]||(Ae[10]=Ce=>ke.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.learn_more")),1)]),_:1})])])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.renderSlot(ke.$slots,"default",{},void 0,!0)]),_:3},8,["data-plane-incompatible"])],64)),t.createVNode(t.unref(be.KPrompt),{"action-button-text":t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.action"),message:t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.message"),title:t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.title"),visible:!!x.value,onCancel:Ae[11]||(Ae[11]=Ce=>x.value=null),onProceed:Re},null,8,["action-button-text","message","title","visible"])]))}}),[["__scopeId","data-v-980bba8b"]]),m4=t.defineComponent({__name:"VerifySignatureField",props:{name:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),{value:o}=S.useFormData(()=>n.name),i=t.computed(()=>o.value===!0?r("plugins.free-form.openid-connect.advanced_fields.verify_signature_description"):void 0);return(a,s)=>(t.openBlock(),t.createBlock(t.unref(S.BooleanField),{description:i.value,name:e.name},null,8,["description","name"]))}}),g4={class:"oidc-tab-fields"},h4={class:"oidc-tab-header"},y4={class:"oidc-tab-header-title"},_4={class:"oidc-tab-header-description"},b4={class:"oidc-tab-fields"},w4={class:"oidc-tab-header"},k4={class:"oidc-tab-header-title"},C4={class:"oidc-tab-header-description"},E4={class:"oidc-tab-fields"},N4={class:"oidc-tab-header"},S4={class:"oidc-tab-header-title"},A4={class:"oidc-tab-header-description"},x4=Me({component:ve(t.defineComponent({__name:"OpenidConnectForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},emits:["click:learn-more","click:create-entity"],setup(e,{emit:n}){const r=[{hash:"#common",title:"Common"},{hash:"#authorization",title:"Authorization"},{hash:"#advanced",title:"Advanced"}],o=["client_id","client_secret","issuer","auth_methods","scopes_claim","scopes_required","audience_claim","audience_required","roles_claim","roles_required","groups_claim","groups_required","authenticated_groups_claim","consumer_claim","principals"],i={dependencies:{"config.token_exchange.subject_token_issuers.*.jwks_uri":["config.token_exchange.subject_token_issuers.*.verify_signature",!0],"config.cluster_cache_redis.cloud_authentication.aws_cache_name":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_region":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_is_serverless":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_access_key_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_secret_access_key":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_assume_role_arn":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_role_session_name":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.gcp_service_account_json":["config.cluster_cache_redis.cloud_authentication.auth_provider","gcp"],"config.cluster_cache_redis.cloud_authentication.azure_client_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.azure_client_secret":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.azure_tenant_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.oauth":["config.cluster_cache_redis.cloud_authentication.auth_provider","oauth"],"config.cluster_cache_redis.cloud_authentication.oauth.username":["config.cluster_cache_redis.cloud_authentication.oauth.grant_type","password"],"config.cluster_cache_redis.cloud_authentication.oauth.password":["config.cluster_cache_redis.cloud_authentication.oauth.grant_type","password"],"config.redis":["config.session_storage","redis"]},bundles:[["config.token_exchange.subject_token_issuers.*.verify_signature","config.token_exchange.subject_token_issuers.*.jwks_uri"],["config.session_storage","config.redis"]]},{i18n:{t:a}}=Ye(),s=e,l=n,c=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,c?.[Ze.AUTOFILL_SLOT_NAME]),t.provide(La,t.computed(()=>s.isEditing));const d=t.inject(Ze.FORMS_CONFIG),u=t.computed(()=>d?.app==="konnect"),f=Ac("openid-connect"),p=t.computed(()=>f?.source==="ai-manager"),m=t.inject(kn.KHCP_20393_IDENTITY_PRINCIPALS_UI,!1),g=t.computed(()=>s.schema.fields.find(Z=>"config"in Z)?.config),_=t.computed(()=>g.value?.fields),h=t.computed(()=>!!_.value?.some(Z=>"principals"in Z)),y=t.computed(()=>u.value&&m&&h.value),w=t.ref(null),b=/^(?:\$\.)?config\.client_jwk\.\d+\.([^.]+)$/,E=t.computed(()=>({...s.formConfig,transformLabel:(Z,ee)=>b.exec(ee)?.[1]??Z})),k=t.computed(()=>E.value.minRuntimeVersion),N=t.computed(()=>p3(k.value)),T=t.computed(()=>g3(s.schema,N.value)),x=t.computed(()=>T.value.fields.find(Z=>"config"in Z)?.config);let B;const O=t.ref(s.model),A=(Z,ee)=>{if(B=Z,O.value=Z,!N.value)return s.onFormChange(Z,ee);const j={...Z?.config??{}};delete j.credential_claims,s.onFormChange({...Z,config:j},ee)},I=Z=>{const ee=B?.config??s.model?.config??{};A({...O.value,config:{...ee,...Z}})},V={"config.upstream_headers":"Upstream header","config.downstream_headers":"Downstream header","config.redis.sentinel_nodes":"Sentinel node","config.redis.cluster_nodes":"Cluster node","config.cluster_cache_redis.sentinel_nodes":"Sentinel node","config.cluster_cache_redis.cluster_nodes":"Cluster node"};function L(Z,ee){const j=Z.startsWith("$.")?Z.slice(2):Z;return`#${ee+1} ${V[j]}`}const R=new Set(["config.unauthorized_error_message","config.forbidden_error_message","config.client_jwk.*.x5c.*"]);return t.onMounted(()=>{const Z=s.model?.config;for(const[ee,j]of[["credential_claim","credential_claims"],["consumer_claim","consumer_claims"]]){if(!y3(x.value?.shorthand_fields,ee,j)||!x.value?.fields?.some($=>j in $))continue;const G=h3({claim:Z?.[ee],claims:Z?.[j]});G!==null&&I({[j]:G})}if(N.value&&!Z?.credential_claim){const ee=Z?.credential_claims,j=Array.isArray(ee)&&ee.length>0?ee[0]:null;j&&I({credential_claim:Array.isArray(j)?j:[j]})}if(N.value&&!s.isEditing&&!Z?.credential_claim&&!Z?.credential_claims){const ee=x.value?.fields?.find(j=>"credential_claim"in j)?.credential_claim?.default;ee&&I({credential_claim:ee})}p.value&&!s.isEditing&&!Z?.cache_tokens_salt&&I({cache_tokens_salt:S.generateCredentialSecret(32)})}),(Z,ee)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(s,{"form-config":E.value,model:O.value,"on-form-change":A,"render-rules":i,schema:T.value}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:j})=>j==="config.client_jwk"},{default:t.withCtx(j=>[t.createVNode(A3,t.normalizeProps(t.guardReactiveProps(j)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j==="config.token_exchange.subject_token_issuers.*.verify_signature"},{default:t.withCtx(j=>[t.createVNode(m4,t.normalizeProps(t.guardReactiveProps(j)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j in V},{default:t.withCtx(j=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(j,{appearance:"tabs","item-label":(G,$)=>L(j.name,$)}),null,16,["item-label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>t.unref(R).has(j)},{default:t.withCtx(j=>[t.createVNode(t.unref(S.StringField),t.mergeProps(j,{multiline:""}),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:j})=>j==="config.cache_tokens_salt"},{default:t.withCtx(j=>[t.createVNode(t.unref(S.StringField),t.mergeProps(j,{required:p.value}),null,16,["required"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j==="config.token_exchange.subject_token_issuers"},{default:t.withCtx(j=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(j,{appearance:"tabs","item-label":(G,$)=>`#${$+1} Issuer`}),null,16,["item-label"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(t.unref(be.KTabs),{tabs:r},{"common-anchor":t.withCtx(()=>[...ee[3]||(ee[3]=[t.createElementVNode("span",{"data-testid":"oidc-tab-common"},"Common",-1)])]),"authorization-anchor":t.withCtx(()=>[...ee[4]||(ee[4]=[t.createElementVNode("span",{"data-testid":"oidc-tab-authorization"},"Authorization",-1)])]),"advanced-anchor":t.withCtx(()=>[...ee[5]||(ee[5]=[t.createElementVNode("span",{"data-testid":"oidc-tab-advanced"},"Advanced",-1)])]),common:t.withCtx(()=>[t.createElementVNode("div",g4,[t.createElementVNode("div",h4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/reference/"},{default:t.withCtx(()=>[t.createElementVNode("span",y4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.common.title")),1)]),_:1}),t.createElementVNode("p",_4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.common.description")),1)]),y.value?(t.openBlock(),t.createBlock(p4,{key:0,"onClick:createEntity":ee[0]||(ee[0]=j=>l("click:create-entity",j)),"onClick:learnMore":ee[1]||(ee[1]=j=>l("click:learn-more",j)),onModeChange:ee[2]||(ee[2]=j=>w.value=j)},{default:t.withCtx(()=>[t.createVNode(M0,{"principals-mode":w.value},null,8,["principals-mode"])]),_:1})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(t.unref(S.Field),{name:"config.client_id"}),t.createVNode(t.unref(S.Field),{name:"config.client_secret"}),t.createVNode(t.unref(S.Field),{name:"config.issuer"}),t.createVNode(M0,{"principals-mode":w.value},null,8,["principals-mode"])],64))])]),authorization:t.withCtx(()=>[t.createElementVNode("div",b4,[t.createElementVNode("div",w4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/#authorization"},{default:t.withCtx(()=>[t.createElementVNode("span",k4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.authorization.title")),1)]),_:1}),t.createElementVNode("p",C4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.authorization.description")),1)]),t.createVNode(t.unref(S.Field),{name:"config.scopes_claim"}),t.createVNode(t.unref(S.Field),{name:"config.scopes_required"}),t.createVNode(t.unref(S.Field),{name:"config.audience_claim"}),t.createVNode(t.unref(S.Field),{name:"config.audience_required"}),t.createVNode(t.unref(S.Field),{name:"config.roles_claim"}),t.createVNode(t.unref(S.Field),{name:"config.roles_required"}),t.createVNode(t.unref(S.Field),{name:"config.groups_claim"}),t.createVNode(t.unref(S.Field),{name:"config.groups_required"}),t.createVNode(t.unref(S.Field),{name:"config.authenticated_groups_claim"})])]),advanced:t.withCtx(()=>[t.createElementVNode("div",E4,[t.createElementVNode("div",N4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[t.createElementVNode("span",S4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.advanced.title")),1)]),_:1}),t.createElementVNode("p",A4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.advanced.description")),1)]),t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:o})])]),_:1})]),_:1},16,["form-config","model","schema"]))}}),[["__scopeId","data-v-f933da0a"]])}),I4=Me({fieldRenderers:[{match:"config.access_logs.custom_attributes_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),v4=Me({fieldRenderers:[{match:({genericPath:e})=>["config.access.*","config.body_filter.*","config.header_filter.*","config.certificate.*","config.functions.*","config.log.*","config.rewrite.*","config.ws_handshake.*","config.ws_client_frame.*","config.ws_upstream_frame.*","config.ws_close.*"].includes(e),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),T4=Me({fieldRenderers:[{match:({genericPath:e})=>["config.access.*","config.body_filter.*","config.header_filter.*","config.certificate.*","config.functions.*","config.log.*","config.rewrite.*","config.ws_handshake.*","config.ws_client_frame.*","config.ws_upstream_frame.*","config.ws_close.*"].includes(e),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),O4=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},fieldRenderers:[{match:({path:e})=>e==="config.methods"||e==="config.request_method",component:S.EnumField,propsOverrides:{multiple:!0}}]}),B4=Me({fieldRenderers:[{match:({path:e})=>e==="config.methods"||e==="config.request_method",component:S.EnumField,propsOverrides:{multiple:!0}}]}),P4={class:"rla-form-request-limits-subtitle"},V4={class:"rla-form-request-limits-content"},$4={class:"rla-form-window-type"},R4={class:"rla-form-request-limits-items"},L4={class:"rla-form-request-limits-row"},F4=["id"],D4={key:0,class:"rla-form-request-limits-examples"},M4={class:"rla-form-request-limits-examples-badges"},U4={class:"rla-form-request-limits-add"},lm="config.window_type",j4=ve(t.defineComponent({__name:"RequestLimitsForm",setup(e){const{i18n:{t:n}}=Ye(),{formData:r,getSchema:o,getEmptyOrDefault:i,getEmptyValue:a}=S.useFormShared(),s=t.computed(()=>{const k=r.config?.limit?.map((N,T)=>({limit:N,windowSize:r.config?.window_size?.[T]}));return!Array.isArray(k)||k.length===0?[{limit:null,windowSize:null}]:k}),{getKey:l}=S.useItemKeys("request-limits",s),c=k=>{const N=r.expressions?.limit;Array.isArray(N)&&k(N)};t.watch(()=>r.expressions?.limit,k=>{Array.isArray(k)&&(k.some(Boolean)||(r.expressions.limit=a()))},{deep:!0});const d=()=>{if(h.value=void 0,!r.config)return;const k=i("config.limit.0"),N=i("config.window_size.0");r.config.limit?.length||(r.config.limit=[k]),r.config.window_size?.length||(r.config.window_size=[N]),r.config.limit.push(k),r.config.window_size.push(N),c(T=>T.push(S.EXPRESSION_ARRAY_EMPTY))},u=k=>{r.config&&(r.config.limit.splice(k,1),r.config.window_size.splice(k,1),c(N=>N.splice(k,1)))},f=o(lm)?.default,p=t.computed(()=>Aa(r,lm)),m={fixed:"sp.window_type.options.fixed",sliding:"sp.window_type.options.sliding"},g={fixed:"sp.window_type.descriptions.fixed",sliding:"sp.window_type.descriptions.sliding"},_=t.computed(()=>(o(lm)?.one_of??[]).filter(N=>N in m).sort((N,T)=>N===f?-1:T===f?1:0).map(N=>({value:N,label:n(m[N]),description:n(g[N])}))),h=t.ref(),y=t.ref(0),w={fixed:[{label:n("sp.use_cases.fixed.hourly_500.label"),description:n("sp.use_cases.fixed.hourly_500.description"),config:{limit:500,window_size:3600}},{label:n("sp.use_cases.fixed.half_hourly_200.label"),description:n("sp.use_cases.fixed.half_hourly_200.description"),config:{limit:200,window_size:1800}},{label:n("sp.use_cases.fixed.daily_500.label"),description:n("sp.use_cases.fixed.daily_500.description"),config:{limit:500,window_size:86400}}],sliding:[{label:n("sp.use_cases.sliding.hourly_100.label"),description:n("sp.use_cases.sliding.hourly_100.description"),config:{limit:100,window_size:3600}},{label:n("sp.use_cases.sliding.half_hourly_300.label"),description:n("sp.use_cases.sliding.half_hourly_300.description"),config:{limit:300,window_size:1800}},{label:n("sp.use_cases.sliding.hourly_500.label"),description:n("sp.use_cases.sliding.hourly_500.description"),config:{limit:500,window_size:3600}}]},b=t.computed(()=>Object.prototype.hasOwnProperty.call(w,p.value)?w[p.value]:[]),E=(k,N)=>{const T=()=>{r.expressions&&(r.expressions.limit=null)};if(y.value++,N===h.value){t.nextTick(()=>{h.value=void 0}),r.config.limit=[],r.config.window_size=[],T();return}t.nextTick(()=>{h.value=N}),r.config.limit=[k.config.limit],r.config.window_size=[k.config.window_size],T()};return(k,N)=>{const T=t.resolveComponent("KLabel"),x=t.resolveComponent("KButton"),B=t.resolveComponent("KBadge"),O=t.resolveComponent("KTooltip"),A=t.resolveComponent("KCard");return t.openBlock(),t.createBlock(A,{class:"rla-form-request-limits"},{title:t.withCtx(()=>[t.createVNode(T,{class:"rla-form-request-limits-title",for:"rla-form-request-limits-legend",required:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.title")),1)]),_:1}),t.createElementVNode("div",P4,t.toDisplayString(t.unref(n)("sp.request_limits.subtitle")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",V4,[t.createElementVNode("div",$4,[t.createVNode(tm,{card:"",items:_.value,label:t.unref(n)("sp.window_type.label"),name:"window_type","onUpdate:modelValue":N[0]||(N[0]=I=>h.value=void 0)},null,8,["items","label"])]),t.createElementVNode("div",R4,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,(I,V)=>(t.openBlock(),t.createElementBlock("div",{key:`${t.unref(l)(I,V)}-${y.value}`},[t.createVNode(T,{for:`rla-form-request-limits-item-${V}-legend`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.label_index",{index:V+1})),1)]),_:2},1032,["for"]),t.createElementVNode("div",L4,[t.createElementVNode("legend",{id:`rla-form-request-limits-item-${V}-legend`,class:"rla-form-request-limits-inputs"},[t.createVNode(t.unref(S.NumberField),{"expression-editor":!1,name:`$.config.limit.${V}`,placeholder:t.unref(n)("sp.request_limits.custom")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.interval_determiner")),1),t.createVNode(t.unref(S.NumberField),{name:`$.config.window_size.${V}`,placeholder:t.unref(n)("sp.request_limits.custom")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.seconds")),1)],8,F4),s.value.length>1?(t.openBlock(),t.createBlock(x,{key:0,appearance:"tertiary","aria-label":t.unref(n)("sp.request_limits.remove_limit",{index:V+1}),class:"rla-form-request-limits-remove","data-testid":`rla-form-remove-limit-${V}`,icon:"",onClick:()=>u(V)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["aria-label","data-testid","onClick"])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(S.ExpressionEditor),{class:"rla-form-request-limits-expression",name:`$.config.limit.${V}`,placeholder:t.unref(n)("sp.request_limits.expression_placeholder")},null,8,["name","placeholder"])]))),128))]),b.value.length>0?(t.openBlock(),t.createElementBlock("div",D4,[t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.start_with_a_use_case")),1),t.createElementVNode("div",M4,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b.value,(I,V)=>(t.openBlock(),t.createBlock(O,{key:`use-case-${V}`,"max-width":"300"},{content:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(I.description),1),N[1]||(N[1]=t.createElementVNode("br",null,null,-1)),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.label"))+": "+t.toDisplayString(I.config.limit),1),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.time_interval"))+": "+t.toDisplayString(I.config.window_size),1)]),default:t.withCtx(()=>[t.createVNode(B,{appearance:h.value===`${p.value}-${V}`?"info":"decorative",class:"rla-form-request-limits-examples-badge",onClick:()=>E(I,`${p.value}-${V}`)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(I.label),1)]),_:2},1032,["appearance","onClick"])]),_:2},1024))),128))])])):t.createCommentVNode("",!0),t.createElementVNode("div",U4,[t.createVNode(x,{appearance:"tertiary","data-testid":"rla-form-add-limit",onClick:d},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(n)("sp.request_limits.add_limit")),1)]),_:1})])])]),_:1})}}}),[["__scopeId","data-v-c0335c13"]]),K4={id:"rla-form-error-legend",class:"rla-form-error-inputs"},q4=ve(t.defineComponent({__name:"ErrorMessageForm",setup(e){const{i18n:{t:n}}=Ye();return(r,o)=>{const i=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(i,{for:"rla-form-error-legend",info:t.unref(n)("sp.error_message.help"),required:"","tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.error_message.label")),1)]),_:1},8,["info"]),t.createElementVNode("legend",K4,[t.createVNode(t.unref(S.NumberField),{class:"input-error-code",label:"",name:"error_code",placeholder:t.unref(n)("sp.error_message.code_placeholder")},null,8,["placeholder"]),o[0]||(o[0]=t.createElementVNode("div",null,":",-1)),t.createVNode(t.unref(S.StringField),{class:"input-error-message",label:"",name:"error_message",placeholder:t.unref(n)("sp.error_message.message_placeholder")},null,8,["placeholder"])])])}}}),[["__scopeId","data-v-af7abc91"]]),G4=t.defineComponent({__name:"ConfigForm",setup(e){const n=["custom_key","identifier","limit","window_size","window_type","error_code","error_message"],{getSchema:r}=S.useFormShared();return(o,i)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.unref(r)("config.custom_key")?(t.openBlock(),t.createBlock(t.unref(S.Field),{key:0,name:"custom_key"})):t.createCommentVNode("",!0),t.createVNode(t.unref(S.Field),{name:"identifier"}),t.createVNode(j4),t.createVNode(q4)]),_:1}),t.createVNode(Yr,{"hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),j0=t.defineComponent({__name:"CustomKeyField",props:{autofocus:{type:Boolean},name:{},labelAttributes:{}},setup(e){const n=e,{i18n:{t:r},i18nT:o}=Ye();return(i,a)=>(t.openBlock(),t.createBlock(t.unref(S.StringField),t.mergeProps(n,{"expression-editor":{placeholder:t.unref(r)("sp.custom_key.expression_placeholder")}}),{"expression-help":t.withCtx(()=>[t.createVNode(t.unref(o),{keypath:"sp.custom_key.expression_help.text"},{link:t.withCtx(()=>[t.createVNode(t.unref(be.KExternalLink),{"hide-icon":"",href:t.unref(Zn).condition},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("sp.custom_key.expression_help.learn")),1)]),_:1},8,["href"])]),_:1})]),_:1},16,["expression-editor"]))}}),z4=Me({component:t.defineComponent({__name:"RateLimitingAdvancedForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},o=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]);function i(a,s){a.config?.namespace===null&&delete a.config.namespace,n.onFormChange(a,s)}return(a,s)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"on-form-change":i,"render-rules":r}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:l})=>l==="config.custom_key"},{default:t.withCtx(l=>[t.createVNode(j0,t.normalizeProps(t.guardReactiveProps(l)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:l})=>l==="config.compound_identifier"},{default:t.withCtx(l=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(l,{multiple:""}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(G4)]),_:1},16))}})}),H4=ve(t.defineComponent({__name:"ConfigForm",setup(e){const n=["limit_by","custom_key","second","minute","hour","day","month","year","fault_tolerant","hide_client_headers","sync_rate"],{getSchema:r}=S.useFormShared(),o=t.computed(()=>(r("config")?.fields??[]).map(a=>Object.keys(a)[0]).filter(a=>!n.includes(a)));return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",class:"ff-default-visible-fields","fields-order":n,name:"config",omit:o.value,"reset-label-path":"reset"},null,8,["omit"]),t.createVNode(Yr,{class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),[["__scopeId","data-v-7f078683"]]),W4=Me({component:t.defineComponent({__name:"RateLimitingForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=new Set(["config.second","config.minute","config.hour","config.day","config.month","config.year"]),i={bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}},a=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,a?.[Ze.AUTOFILL_SLOT_NAME]),(s,l)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"render-rules":i}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:c})=>c==="config.custom_key"},{default:t.withCtx(c=>[t.createVNode(j0,t.normalizeProps(t.guardReactiveProps(c)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:c})=>t.unref(o).has(c)},{default:t.withCtx(c=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(c,{"expression-editor":{placeholder:t.unref(r)("sp.request_limits.expression_placeholder")}}),null,16,["expression-editor"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(H4)]),_:1},16))}})}),Y4="__request_callout_";function K0(){return sf(Y4)}const Xa="_callout_id",J4=t.defineComponent({__name:"CalloutForm",props:{index:{},fieldName:{}},setup(e){const n=e,{formData:r}=S.useFormShared(),o=t.computed(()=>{const{callouts:s}=r.config;return s==null?[]:s.filter(({name:l})=>l&&l!==s[n.index]?.name)}),i=t.computed(()=>o.value.map(({[Xa]:s,name:l})=>({value:s,label:l}))),a=t.computed(()=>r.config.callouts[n.index]);return t.watch(i,()=>{a.value.depends_on=a.value.depends_on.filter(s=>i.value.some(l=>l.value===s))}),(s,l)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{name:e.fieldName},{depends_on:t.withCtx(c=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(c,{items:i.value,multiple:"",required:!1}),null,16,["items"])]),request:t.withCtx(c=>[t.createVNode(t.unref(S.ObjectField),t.mergeProps(c,{"fields-order":["url","method","headers","query","body","http_opts","error","by_lua"]}),{method:t.withCtx(d=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(d,{items:t.unref(S.toSelectItems)(["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"])}),null,16,["items"])]),_:1},16)]),_:1},8,["name"]))}}),X4=t.defineComponent({__name:"CalloutsForm",setup(e){const{formData:n}=S.useFormShared();function r(){const o=n.config.callouts[n.config.callouts.length-1];o&&(o[Xa]=K0())}return(o,i)=>(t.openBlock(),t.createBlock(t.unref(S.ArrayField),{appearance:"tabs","item-label":a=>a.name||"New callout",name:"callouts",required:"","sticky-tabs":"",onAdd:r},{item:t.withCtx(({index:a,fieldName:s})=>[t.createVNode(J4,{"field-name":s,index:a},null,8,["field-name","index"])]),_:1},8,["item-label"]))}}),Z4=t.defineComponent({__name:"ConfigForm",setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.createVNode(X4),t.createVNode(t.unref(S.ObjectField),{appearance:"card","fields-order":["headers","query","body","by_lua"],name:"upstream"}),t.createVNode(t.unref(S.ObjectField),{appearance:"card",name:"cache"},{redis:t.withCtx(o=>[t.createVNode(t.unref(S.ObjectField),t.mergeProps(o,{"fields-order":["host","port","connection_is_proxied","database","username","password","sentinel_master","sentinel_role","sentinel_nodes","sentinel_username","sentinel_password","cluster_nodes","cluster_max_redirections","ssl","ssl_verify","server_name","keepalive_backlog","keepalive_pool_size","read_timeout","send_timeout","connect_timeout"]}),null,16)]),_:2},1024)]),_:1}))}}),Q4=Me({component:ve(t.defineComponent({__name:"RequestCalloutForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:o}}=Ye();function i(c,d=!1){return c.reduce((u,{[Xa]:f,name:p})=>(d?u[p]=f:u[f]=p,u),{})}function a(c){const d=nf(c);if(d.config?.callouts){const{callouts:u}=d.config;u.forEach(p=>{p.request.body.custom=p.request.body.custom??{},p[Xa]=K0()});const f=i(u,!0);u.forEach(p=>{p.depends_on=p.depends_on.map(m=>f[m])})}return d}const s={prepareFormData:a};function l(c,d){if(!c)return;const u=nf(c);if(!u.config?.callouts){n.onFormChange(u,d);return}const f=i(u.config.callouts);u.config.callouts=u.config.callouts.map(p=>{const{[Xa]:m,depends_on:g,..._}=p;return{depends_on:g.map(h=>f[h]).filter(h=>h!=null),..._}}),n.onFormChange(u,d)}return(c,d)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"form-config":s,"on-form-change":l}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:u})=>u.endsWith("by_lua")},{default:t.withCtx(u=>[t.createVNode(t.unref(S.StringField),t.mergeProps(u,{autosize:"",class:"rc-code",multiline:"",placeholder:t.unref(o)("plugins.free-form.request-callout.by_lua_placeholder")}),null,16,["placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:u})=>["cluster_nodes","sentinel_nodes"].some(f=>u.endsWith(f))},{default:t.withCtx(u=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(u,{appearance:"card"}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(Z4)]),_:1},16))}}),[["__scopeId","data-v-3c31c410"]])}),eG=Me({fieldRenderers:[{match:"config.parameter_schema",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Parameter schema`}},{match:"config.body_schema",component:S.StringField,propsOverrides:{multiline:!0,rows:4}},{match:"config.parameter_schema.*.schema",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),tG=Me({renderRules:{bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}}}),nG=Me({fieldRenderers:[{match:({path:e,genericPath:n})=>e==="config.replace.body"||n==="config.transform.functions.*"||n.endsWith(".json.*"),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),rG=Me({fieldRenderers:[{match:({genericPath:e})=>e.endsWith(".json.*"),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),oG=Me({fieldRenderers:[{match:"config.rules",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Rule`}}]}),iG={class:"sp-form-request-limits-subtitle"},aG={class:"sp-form-request-limits-content"},sG={class:"sp-form-window-type"},lG={class:"sp-form-request-limits-items"},cG={class:"sp-form-request-limits-row"},dG=["id"],uG={class:"sp-form-request-limits-actions"},fG={key:0,class:"sp-form-request-limits-examples"},pG={class:"sp-form-request-limits-examples-badges"},cm="config.window_type",mG=ve(t.defineComponent({__name:"RequestLimitsForm",setup(e){const{t:n}=It.createI18n("en-us",Bt),{formData:r,getSelectItems:o,getSchema:i,getEmptyOrDefault:a}=S.useFormShared(),s=t.computed(()=>{const y=r.config?.limit?.map((w,b)=>({limit:w,windowSize:r.config?.window_size?.[b]}));return!Array.isArray(y)||y.length===0?[{limit:null,windowSize:null}]:y}),{getKey:l}=S.useItemKeys("request-limits",s),c=y=>{if(m.value=void 0,!r.config)return;const w=a("config.limit.0"),b=a("config.window_size.0");r.config.limit?.length||(r.config.limit=[w]),r.config.window_size?.length||(r.config.window_size=[b]),r.config.limit.splice(y+1,0,w),r.config.window_size.splice(y+1,0,b)},d=y=>{r.config&&(r.config.limit.splice(y,1),r.config.window_size.splice(y,1))},u=i(cm)?.default,f=t.computed(()=>Aa(r,cm)),p=t.computed(()=>o(cm).sort((y,w)=>y.value===u?-1:w.value===u?1:0)),m=t.ref(),g={fixed:[{label:n("sp.use_cases.fixed.hourly_500.label"),description:n("sp.use_cases.fixed.hourly_500.description"),config:{limit:500,window_size:3600}},{label:n("sp.use_cases.fixed.half_hourly_200.label"),description:n("sp.use_cases.fixed.half_hourly_200.description"),config:{limit:200,window_size:1800}},{label:n("sp.use_cases.fixed.daily_500.label"),description:n("sp.use_cases.fixed.daily_500.description"),config:{limit:500,window_size:86400}}],sliding:[{label:n("sp.use_cases.sliding.hourly_100.label"),description:n("sp.use_cases.sliding.hourly_100.description"),config:{limit:100,window_size:3600}},{label:n("sp.use_cases.sliding.half_hourly_300.label"),description:n("sp.use_cases.sliding.half_hourly_300.description"),config:{limit:300,window_size:1800}},{label:n("sp.use_cases.sliding.hourly_500.label"),description:n("sp.use_cases.sliding.hourly_500.description"),config:{limit:500,window_size:3600}}]},_=t.computed(()=>Object.prototype.hasOwnProperty.call(g,f.value)?g[f.value]:[]),h=(y,w)=>{if(w===m.value){t.nextTick(()=>{m.value=void 0}),r.config.limit=[],r.config.window_size=[];return}t.nextTick(()=>{m.value=w}),r.config.limit=[y.config.limit],r.config.window_size=[y.config.window_size]};return(y,w)=>{const b=t.resolveComponent("KLabel"),E=t.resolveComponent("KButton"),k=t.resolveComponent("KBadge"),N=t.resolveComponent("KTooltip"),T=t.resolveComponent("KCard");return t.openBlock(),t.createBlock(T,{class:"sp-form-request-limits"},{title:t.withCtx(()=>[t.createVNode(b,{class:"sp-form-request-limits-title",for:"sp-form-request-limits-legend",required:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.title")),1)]),_:1}),t.createElementVNode("div",iG,t.toDisplayString(t.unref(n)("sp.request_limits.subtitle")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",aG,[t.createElementVNode("div",sG,[t.createVNode(tm,{items:p.value,label:t.unref(n)("sp.window_type.label"),name:"window_type","onUpdate:modelValue":w[0]||(w[0]=x=>m.value=void 0)},null,8,["items","label"])]),t.createElementVNode("div",lG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,(x,B)=>(t.openBlock(),t.createElementBlock("div",{key:t.unref(l)(x,B)},[t.createVNode(b,{for:`sp-form-request-limits-item-${B}-legend`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.label_index",{index:B+1})),1)]),_:2},1032,["for"]),t.createElementVNode("div",cG,[t.createElementVNode("legend",{id:`sp-form-request-limits-item-${B}-legend`,class:"sp-form-request-limits-inputs"},[t.createVNode(t.unref(S.NumberField),{name:`$.config.limit.${B}`,placeholder:t.unref(n)("sp.request_limits.request_number")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.interval_determiner")),1),t.createVNode(t.unref(S.NumberField),{name:`$.config.window_size.${B}`,placeholder:t.unref(n)("sp.request_limits.time_interval")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.seconds")),1)],8,dG),t.createElementVNode("div",uG,[t.createVNode(E,{appearance:"tertiary",disabled:s.value.length<=1,onClick:()=>d(B)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.RemoveIcon))]),_:1},8,["disabled","onClick"]),t.createVNode(E,{appearance:"tertiary",onClick:()=>c(B)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon))]),_:1},8,["onClick"])])])]))),128))]),_.value.length>0?(t.openBlock(),t.createElementBlock("div",fG,[t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.start_with_a_use_case")),1),t.createElementVNode("div",pG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(_.value,(x,B)=>(t.openBlock(),t.createBlock(N,{key:`use-case-${B}`,"max-width":"300"},{content:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(x.description),1),w[1]||(w[1]=t.createElementVNode("br",null,null,-1)),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.label"))+": "+t.toDisplayString(x.config.limit),1),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.time_interval"))+": "+t.toDisplayString(x.config.window_size),1)]),default:t.withCtx(()=>[t.createVNode(k,{appearance:m.value===`${f.value}-${B}`?"info":"decorative",class:"sp-form-request-limits-examples-badge",onClick:()=>h(x,`${f.value}-${B}`)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(x.label),1)]),_:2},1032,["appearance","onClick"])]),_:2},1024))),128))])])):t.createCommentVNode("",!0)])]),_:1})}}}),[["__scopeId","data-v-3df218a2"]]),gG={id:"sp-form-error-legend",class:"sp-form-error-inputs"},hG=ve(t.defineComponent({__name:"ErrorMessageForm",setup(e){const{t:n}=It.createI18n("en-us",Bt);return(r,o)=>{const i=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(i,{for:"sp-form-error-legend",info:t.unref(n)("sp.error_message.help"),required:"","tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.error_message.label")),1)]),_:1},8,["info"]),t.createElementVNode("legend",gG,[t.createVNode(t.unref(S.NumberField),{class:"input-error-code",label:"",name:"error_code",placeholder:t.unref(n)("sp.error_message.code_placeholder")},null,8,["placeholder"]),o[0]||(o[0]=t.createElementVNode("div",null,":",-1)),t.createVNode(t.unref(S.StringField),{class:"input-error-message",label:"",name:"error_message",placeholder:t.unref(n)("sp.error_message.message_placeholder")},null,8,["placeholder"])])])}}}),[["__scopeId","data-v-9c5e4456"]]),yG=t.defineComponent({__name:"ConfigForm",setup(e){const n=["limit","window_size","window_type","error_code","error_message"];return(r,o)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.createVNode(mG),t.createVNode(hG)]),_:1}),t.createVNode(Yr,{"hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),_G=Me({component:t.defineComponent({__name:"ServiceProtectionForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},o=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]);function i(a,s){a.config?.namespace===null&&delete a.config.namespace,n.onFormChange(a,s)}return(a,s)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"on-form-change":i,"render-rules":r}),{default:t.withCtx(()=>[t.createVNode(yG)]),_:1},16))}})}),bG=Me({fieldRenderers:[{match:({genericPath:e})=>e==="config.flow.functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),wG=Me({fieldRenderers:[{match:"config.message.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),kG=Me({fieldRenderers:[{match:"config.message.functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),CG=Me({fieldRenderers:[{match:"config.metrics",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Metric`}}]}),EG=Me({fieldRenderers:[{match:"config.metrics",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Metric`}}]}),NG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),SG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),AG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),xG=Me({renderRules:{bundles:[["config.cache.strategy","config.cache.redis"]],dependencies:{"config.cache.redis":["config.cache.strategy","redis"]}},fieldRenderers:[{match:"config.behavior.idp_error_response_body_template",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),IG=Me({fieldRenderers:[{match:({path:e})=>/^config\.(client|upstream)\.(text|binary)\.schema$/.test(e),component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),vG=Me({fieldRenderers:[{match:"config.static_tags",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Tag`}}]}),dm=t.defineComponent({__name:"CommonForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]),(o,i)=>(t.openBlock(),t.createBlock(nn,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(()=>[t.createVNode(V0)]),_:1},16))}}),TG=Object.assign({"./plugins/acl/index.ts":XM,"./plugins/ai-azure-content-safety.ts":ZM,"./plugins/ai-custom-guardrail.ts":QM,"./plugins/ai-gcp-model-armor.ts":eU,"./plugins/ai-llm-as-judge.ts":tU,"./plugins/ai-mcp-proxy/index.ts":nU,"./plugins/ai-prompt-compressor.ts":rU,"./plugins/ai-prompt-decorator.ts":oU,"./plugins/ai-prompt-template.ts":iU,"./plugins/ai-proxy-advanced.ts":aU,"./plugins/ai-rag-injector.ts":sU,"./plugins/ai-rate-limiting-advanced.ts":lU,"./plugins/ai-request-transformer.ts":cU,"./plugins/ai-response-transformer.ts":dU,"./plugins/ai-sanitizer.ts":uU,"./plugins/ai-semantic-cache.ts":fU,"./plugins/ai-semantic-prompt-guard.ts":pU,"./plugins/ai-semantic-response-guard.ts":mU,"./plugins/application-registration.ts":gU,"./plugins/basic-auth/index.ts":vU,"./plugins/confluent-consume.ts":TU,"./plugins/confluent.ts":OU,"./plugins/cors.ts":BU,"./plugins/datadog.ts":PU,"./plugins/datakit/index.ts":fq,"./plugins/entitlement-enforcement/index.ts":$q,"./plugins/exit-transformer.ts":Rq,"./plugins/file-log.ts":Lq,"./plugins/graphql-proxy-cache-advanced.ts":Fq,"./plugins/graphql-rate-limiting-advanced.ts":Dq,"./plugins/grpc-gateway.ts":Mq,"./plugins/header-cert-auth.ts":Uq,"./plugins/http-log.ts":jq,"./plugins/injection-protection.ts":Kq,"./plugins/jq.ts":qq,"./plugins/jwt-signer/index.ts":Gq,"./plugins/kafka-consume.ts":zq,"./plugins/kafka-log.ts":Hq,"./plugins/kafka-upstream.ts":Wq,"./plugins/key-auth/index.ts":Yq,"./plugins/ldap-auth-advanced.ts":Jq,"./plugins/loggly.ts":Xq,"./plugins/metering-and-billing/index.ts":s3,"./plugins/mocking.ts":l3,"./plugins/mtls-auth.ts":c3,"./plugins/oas-validation.ts":d3,"./plugins/openid-connect/index.ts":x4,"./plugins/opentelemetry.ts":I4,"./plugins/post-function.ts":v4,"./plugins/pre-function.ts":T4,"./plugins/proxy-cache-advanced.ts":O4,"./plugins/proxy-cache.ts":B4,"./plugins/rate-limiting-advanced/index.ts":z4,"./plugins/rate-limiting/index.ts":W4,"./plugins/request-callout/index.ts":Q4,"./plugins/request-validator.ts":eG,"./plugins/response-ratelimiting.ts":tG,"./plugins/response-transformer-advanced.ts":nG,"./plugins/response-transformer.ts":rG,"./plugins/route-by-header.ts":oG,"./plugins/service-protection/index.ts":_G,"./plugins/solace-consume.ts":bG,"./plugins/solace-log.ts":wG,"./plugins/solace-upstream.ts":kG,"./plugins/statsd-advanced.ts":CG,"./plugins/statsd.ts":EG,"./plugins/syslog.ts":NG,"./plugins/tcp-log.ts":SG,"./plugins/udp-log.ts":AG,"./plugins/upstream-oauth.ts":xG,"./plugins/websocket-validator.ts":IG,"./plugins/zipkin.ts":vG});function OG(e){const n=e.match(/\.\/plugins\/(.+?)(?:\/index)?\.ts$/);if(!n)throw new Error(`Unable to derive plugin name from path: ${e}`);const[,r]=n;return r}function BG(e){const n={},r=new Map;for(const[o,i]of Object.entries(e)){const a=OG(o);if(r.has(a))throw new Error(`Duplicate plugin config for "${a}": ${r.get(a)} and ${o}`);r.set(a,o),n[a]={component:i.component??dm,renderRules:i.renderRules,fieldRenderers:i.fieldRenderers??[]}}return n}const q0=BG(TG);function G0(e){return q0[e]}function PG(e){return G0(e)?.component??dm}const VG={class:"kong-ui-entities-plugin-form"},$G={key:1,class:"entity-form"},RG=ve(t.defineComponent({__name:"PluginEntityForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(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},enableVaultSecretPicker:{type:Boolean,default:!1},developer:{type:Boolean,default:!1}},emits:["loading","model-updated","globalAction","click:learn-more","click:create-entity","validity-change"],setup(e,{emit:n}){const r=n,o=e,i=t.computed(()=>o.config.app!=="konnect"?!1:o.config.isCloudGateway===!0),a=t.inject(kn.KM_2306_CONDITION_FIELD_314,!1),{axiosInstance:s}=ge.useAxios(o.config?.axiosRequestConfig),{parseSchema:l}=nt.useSchemas({entityId:o.entityMap.focusedEntity?.id||void 0}),{convertToDotNotation:c,unFlattenObject:d,dismissField:u,isObjectEmpty:f,unsetNullForeignKey:p}=nt.usePluginHelpers(),m=t.inject(ge.PLUGIN_FORM_LAYOUT_STATE),g=D=>{m&&(m.value=D)},{objectsAreEqual:_}=ge.useHelpers(),h=D=>{let te=D;return o.config.app==="konnect"&&(te=te.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||"")),te.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")},y=(D,te)=>{let fe=`${o.config.apiBaseUrl}${Xe.form[o.config.app].entityGetOne}`;return fe=h(fe),fe=fe.replace(/{entity}/gi,D),fe=fe.replace(/{id}/gi,te),fe},w=D=>{let te=`${o.config.apiBaseUrl}${Xe.form[o.config.app].entityGetAll}`;return te=h(te),te=te.replace(/{entity}/gi,D),te},b=(D,te,fe)=>{const Ee=y(D,te);return s.get(Ee,fe)},E=(D,te)=>{const fe=w(D);return o.config.app==="konnect"?s.get(fe).then(Ee=>{const{data:{data:Re}}=Ee;if(delete te.size,delete te.offset,Re.length&&Object.keys(te).length===1){const Pe=Object.keys(te)[0],ke=Re.filter(Ae=>Ae[Pe]?!!Ae[Pe].toLowerCase().includes(te[Pe].toLowerCase()):!1);Ee.data.data=ke}return Ee}):s.get(fe,{params:te})},k=(D,te,fe)=>{const Ee=w(D);if(o.config.app==="konnect"){const{size:Re,offset:Pe,...ke}=te;if(D==="consumer_groups")return s.get(Ee,{params:{size:1e3},signal:fe}).then(Ce=>{const{data:{data:oe}}=Ce;if(oe.length&&Object.keys(ke).length===1){const ie=Object.keys(ke)[0],ye=oe.filter(Q=>Q[ie]?!!Q[ie].toLowerCase().includes(ke[ie].toLowerCase()):!1);Ce.data.data=ye}return Ce});const Ae={size:Re,offset:Pe};for(const Ce of Object.keys(ke))Ae.filter={[Ce]:{contains:ke[Ce]}};return s.get(Ee,{params:Ae,signal:fe})}return s.get(Ee,{params:te,signal:fe})},N=(D,te=50)=>{const fe=w(D);return s.get(fe,{params:{size:te}})};t.provide(Ze.FORMS_API_KEY,{getOne:b,getAll:E,getAllV2:k,peek:N});const T=t.shallowReactive({...o.config});t.watch(()=>o.config,D=>{Object.assign(T,D)}),t.provide(Ze.FORMS_CONFIG,T);const x=gl();t.provide(Ze.REDIS_CREATE_SLIDEOUT,{component:t.markRaw(xu.RedisConfigurationFormSlideout),toast:D=>x(D)});const B=t.ref(),O=t.shallowRef(),A=t.ref({}),I=t.reactive({}),V=t.reactive({}),L=t.computed(()=>{const D=a2(V.name,o.rawSchema);return i2(D)}),R=t.ref(!1),Z=t.ref(),ee=(D,te)=>{R.value=D??"",Z.value=te},j=D=>{Z.value?.(D),R.value=!1},G=D=>{if(!D){B.value=void 0,O.value=void 0,g(!1);return}const te=o.schema?._sourcePlugin||D;B.value=G0(te),O.value=PG(te),g(!!O.value)},$=D=>{const te={...o.schema},fe=V,Ee=I,Re=Object.keys(fe),Pe={};if(!f(A.value))for(let Ae=0;Ae<A.value?.fields?.length;Ae++)te[A.value.fields[Ae].model]=A.value.fields[Ae];Ze.customFields.forEach(Ae=>{te[Ae]&&(te[Ae].fields.forEach(Ce=>{Ce.fields&&Ce.fields.forEach(oe=>{te[oe.model]=oe}),Ce.model&&(te[Ce.model]=Ce)}),delete te[Ae])}),Re.forEach(Ae=>{if(!te[Ae]){Ae==="partials"&&(Pe[Ae]=fe[Ae]);return}const Ce=te[Ae];let oe=fe[Ae];const ie=Ee[Ae],ye=Array.isArray(oe)?"array":typeof oe,Q=Ce?Ce.valueType:null,z=Ce?Ce.valueArrayType:null,Y=Ce?Ce.transform:null;if(oe==null&&ie==null&&!Ce.submitWhenNull)return;if(Ce){if(Q&&ye!==Q)switch(Q){case"array":ye==="string"&&oe.length&&(oe=oe.split(",").map(_e=>{if(_e=_e.trim(),z==="string")return String(_e);if(z==="number")return Number(_e);if(z==="boolean"){if(typeof _e=="string")return _e.toLowerCase()==="true"||_e==="1";if(typeof _e=="number")return _e===1}return _e})),(!oe||!oe.length)&&(oe=Ce.submitWhenNull?null:[]);break;case"number":Ce.referenceable!==!0&&(oe=Number(oe));break;case"boolean":ye==="string"&&(oe=oe.toLowerCase()==="true"||oe==="1"),ye==="number"&&(oe=oe===1);break;case"string":oe=oe==null?"":String(oe);break}else Q==="array"&&(!oe||!oe.length?oe=Ce.submitWhenNull?null:[]:Ce.inputAttributes?.type==="number"&&(oe=oe.map(_e=>Number(_e))));if(Ce.type==="array"&&Ce.nestedFields){const _e=Le=>{Object.keys(Le).forEach(De=>{Le[De]&&typeof Le[De]=="object"&&!Array.isArray(Le[De])&&Le[De]!==null?_e(Le[De]):(Le[De]===void 0||Le[De]===null||typeof Le[De]=="number"&&isNaN(Le[De])||typeof Le[De]=="string"&&Le[De].trim().length===0)&&delete Le[De]})};oe&&typeof oe=="object"&&_e(oe)}Ce.type==="object-advanced"&&Ce.fields&&oe!==null&&(Object.entries(oe).length===0?oe=null:Object.keys(oe).forEach(_e=>{Array.isArray(oe[_e])||(oe[_e]=oe[_e].split(","))}))}let me=c(Ae);if(Ce.fieldNameHasDashes){const[_e,...Le]=me.split(".").reverse();me=[_e.replace(/_/g,"-"),...Le].reverse().join(".")}if(Q==="object-expand"){let _e;[me,_e]=me.split(".");let Le={};Pe[me]&&(Le=Pe[me]),Le[_e]=oe,oe=Le}ie!==void 0&&oe===""&&oe!==ie?Pe[me]=Q==="object"?{}:null:Ce.type==="checklist"&&oe===""?Pe[me]=[]:oe!==""&&(Pe[me]=oe),Pe[me]=Y?Y(oe):Pe[me],p(me,Pe)});const ke=d(Pe);if(O.value){if(D&&D.length)for(const Ae of D)delete ke[Ae];Object.assign(ke,Ie.value)}return ke},pe=(D,te={})=>{u(V,te,D,o.editing),r("model-updated",{model:V,originalModel:I,data:$()})},de=D=>{r("validity-change",D)},M=(D,te)=>{Object.keys(D).forEach(fe=>{let Ee=te?`${te}-${fe}`:fe,Re=o.schema[Ee];if(!Re){const Ae=te?`${te}-${fe.replace(/-/g,"_")}`:fe.replace(/-/g,"_");o.schema[Ae]?.fieldNameHasDashes&&(Ee=Ae,Re=o.schema[Ee]),te&&o.schema[te]?.keyFromObject===fe&&(Ee=te,Re=o.schema[Ee])}const Pe=D[fe],ke=typeof Pe;if(Re&&Re.type==="object-advanced"&&!Pe){V[Ee]={},I[Ee]={};return}if(Array.isArray(Pe)){V[Ee]=JSON.parse(JSON.stringify(Pe)),I[Ee]=JSON.parse(JSON.stringify(Pe));return}if(ke==="object"&&Pe&&!Pe.length)return M(Pe,Ee);if(ke==="object"&&Pe&&Pe.length&&Re.type==="input"){V[Ee]=Pe.join(", "),I[Ee]=Pe.join(", ");return}V[Ee]=Pe,I[Ee]=Pe}),r("model-updated",{model:V,originalModel:I,data:$()})},ue=(D,te)=>{if(!te)return D;if(Array.isArray(D)){const Re=te.elements;return Re?D.map(Pe=>ue(Pe,Re)):D}if(!D||typeof D!="object")return D;if(te.type==="map"&&te.values){const Re=te.values,Pe={};for(const ke of Object.keys(D))Pe[ke]=ue(D[ke],Re);return Pe}if(!Array.isArray(te.fields))return D;const fe=new Map;for(const Re of te.fields){const Pe=Re&&Object.keys(Re)[0];Pe&&fe.set(Pe,Re[Pe])}const Ee={};for(const Re of Object.keys(D)){const Pe=fe.get(Re);Pe&&(Ee[Re]=ue(D[Re],Pe))}return Ee},ne=()=>{const D=o.rawSchema?.fields;return Array.isArray(D)?D.find(fe=>fe?.config)?.config:void 0},ae=new Set(["datakit"]),ze=t.computed(()=>o.schema?._sourcePlugin||V.name),Ie=t.shallowRef(o.record),je=(D,te)=>{const fe=ae.has(ze.value)?D:{...D,config:ue(D.config,ne())};Ie.value=fe;const Ee={...V};for(const Re of te||[])delete Ee[Re];r("model-updated",{model:{...Ee,...fe},originalModel:I,data:$(te)})},le=t.ref(!0),re=()=>{if(o.record&&o.schema&&(M({enabled:o.record.enabled??!0,...o.record.instance_name&&{instance_name:o.record.instance_name||""},...a&&o.record.condition!=null&&{condition:o.record.condition},...o.record.protocols&&{protocols:o.record.protocols},...o.record.tags&&{tags:o.record.tags}}),o.record.config&&((o.record.consumer_id||o.record.consumer||o.record.service_id||o.record.service||o.record.route_id||o.record.route||o.record.consumer_group_id||o.record.consumer_group)&&M({service_id:o.record.service_id||o.record.service,route_id:o.record.route_id||o.record.route,consumer_id:o.record.consumer_id||o.record.consumer,consumer_group_id:o.record.consumer_group_id||o.record.consumer_group}),o.record.partials&&pe("redis",{partials:o.record.partials}),O.value?je(o.record):M(o.record.config,"config"))),Object.keys(o.entityMap).length&&!o.entityMap.global&&o.schema){const D={};for(const te in o.entityMap){const fe=o.entityMap[te].id,Ee=o.entityMap[te].idField,Re=Ee==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify(Ee).replace("_","-"));Object.prototype.hasOwnProperty.call(V,Re)&&(D[Re]=fe)}M(D)}le.value=!1};return t.watch(le,D=>{r("loading",D)}),t.watch(()=>o.schema,(D,te)=>{if(_(D||{},te||{}))return;const fe=l(D);Object.assign(V,fe.model),A.value={fields:A.value?.fields?.map(Ee=>({...Ee,disabled:Ee.disabled||!1}))},Object.assign(I,JSON.parse(JSON.stringify(fe.model))),G(fe.model.name),re()},{immediate:!0,deep:!0}),t.onBeforeMount(()=>{const D=l(o.schema);Object.assign(V,D.model),A.value=D.schema,G(D.model.name),re()}),t.onBeforeUnmount(()=>{g(!1)}),(D,te)=>{const fe=t.resolveComponent("KSkeleton");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",VG,[le.value?(t.openBlock(),t.createBlock(fe,{key:0,type:"form"})):V.id&&e.editing||!e.editing?(t.openBlock(),t.createElementBlock("div",$G,[O.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(O.value),{key:0,developer:e.developer,"field-renderers":B.value?.fieldRenderers,"form-model":V,"form-schema":A.value,"is-editing":e.editing,"is-konnect-managed-redis-enabled":i.value,model:e.record,"on-form-change":je,"on-validity-change":de,"plugin-name":V.name,"render-rules":B.value?.renderRules,schema:L.value,"onClick:createEntity":te[0]||(te[0]=Ee=>D.$emit("click:create-entity",Ee)),"onClick:learnMore":te[1]||(te[1]=Ee=>D.$emit("click:learn-more",Ee)),onGlobalAction:te[2]||(te[2]=(Ee,Re)=>D.$emit("globalAction",Ee,Re))},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Ze.AUTOFILL_SLOT_NAME),fn:t.withCtx(Ee=>[Ee.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Iu.VaultSecretPickerProvider),t.mergeProps({key:0},Ee,{onOpen:ee}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["developer","field-renderers","form-model","form-schema","is-editing","is-konnect-managed-redis-enabled","model","plugin-name","render-rules","schema"])):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Iu.VaultSecretPicker),{config:o.config,setup:R.value,onCancel:te[3]||(te[3]=()=>R.value=!1),onProceed:j},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-e35798b7"]]),LG={key:1},FG=t.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(n,r)=>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",LG,[t.renderSlot(n.$slots,"default")]))}}),DG={key:0},MG={class:"plugin-form-actions"},UG={key:0,class:"button-customize-deck-wrapper"},jG=ve(t.defineComponent({__name:"PluginForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},pluginType:{type:String,required:!0},pluginId:{type:String,default:null},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},useSecretInput:{type:Boolean,default:!1},schema:{type:Object,default:null},scopedEntitiesPermissions:{type:Object,default:null}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","globalAction","click:create-entity","click:learn-more"],setup(e,{emit:n}){const r=t.inject(kn.KM_2306_CONDITION_FIELD_314,!1),o=t.inject(kn.KM_2485_CLONED_PLUGINS,!1),i=t.ref(!1);t.provide(ge.PLUGIN_FORM_LAYOUT_STATE,i);const a=n,s=e,l=gr.useRouter(),{i18n:{t:c}}=nt.useI18n(),{typedefs:d}=nt.useSchemas(),{formatPluginFieldLabel:u}=nt.usePluginHelpers(),{getMessageFromError:f}=ge.useErrors(),{capitalize:p}=ge.useStringHelpers(),{objectsAreEqual:m}=ge.useHelpers(),{axiosInstance:g}=ge.useAxios(s.config?.axiosRequestConfig),{getClonedPlugin:_}=nt.useCustomPluginApi({axiosInstance:ge.useAxios({...s.config?.axiosRequestConfig??{},konnect:{bypassGlobal404Handler:!0}}).axiosInstance,apiBaseUrl:s.config.apiBaseUrl,app:s.config.app,workspace:s.config.workspace,controlPlaneId:s.config.controlPlaneId}),h=t.ref(!1),y=t.computed(()=>!!s.pluginId),w=t.computed(()=>s.pluginId?ge.EntityBaseFormType.Edit:ge.EntityBaseFormType.Create),b=t.ref(void 0),E=t.ref(void 0),k=t.computed(()=>!!(s.credential&&s.config.entityId)),N=t.ref(void 0),T=t.ref({}),x=t.ref(),B=t.ref(),O=t.ref(null),A=t.computed(()=>O.value!==null);t.provide(S.USE_SECRET_INPUT_KEY,t.toRef(s,"useSecretInput")),t.provide(Fl,{redisType:x,redisPath:B,isEditing:y.value});const I=[];t.provide(Jp,K=>(I.push(K),()=>{const U=I.indexOf(K);U!==-1&&I.splice(U,1)}));const V=t.ref(!1),{isDeckEnabled:L,deckCustomizationOptions:R,deckCalloutPreferenceKey:Z}=ge.useBaseFormDeckOptions(()=>s.config,ge.SupportedEntityType.Plugin),ee=t.ref(!1),j=t.reactive({enabled:!0,protocols:[],tags:[]}),G=t.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),$=t.ref([{title:c("view_configuration.json"),hash:"#json"},{title:c("view_configuration.yaml"),hash:"#yaml"}]);s.config.app==="konnect"&&$.value.splice(1,0,{title:c("view_configuration.terraform"),hash:"#terraform"}),L.value&&$.value.push({title:c("view_configuration.deck"),hash:"#deck"});const pe=t.ref($.value[0].hash),de=t.ref(""),M=t.computed(()=>{if(k.value){let U=Xe.form[s.config.app].credential[w.value];return U=U.replace(/{resourceEndpoint}/gi,ze.value),U}let K;return s.config.entityType&&s.config.entityId?K=Xe.form[s.config.app].edit.forEntity.replace(/{entityType}/gi,s.config.entityType).replace(/{entityId}/gi,s.config.entityId):K=Xe.form[s.config.app].edit.all,s.config.app==="konnect"&&kr[s.pluginType]?.useUIData?`${K}?__ui_data=true`:K}),ue=()=>{h.value=!h.value},ne=t.computed(()=>{const K=s.config.entityType==="consumers"&&s.config.entityId||N.value?.consumer?.id,U=s.config.entityType==="consumer_groups"&&s.config.entityId||N.value?.consumer_group?.id,J=s.config.entityType==="services"&&s.config.entityId||N.value?.service?.id,Ge=s.config.entityType==="routes"&&s.config.entityId||N.value?.route?.id;if(!(K||U||J||Ge))return{global:{entity:W.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const qe={};return J&&(qe.service={entity:W.PluginScope.SERVICE,entityEndpoint:"services",id:J,idField:_o.SERVICE}),Ge&&(qe.route={entity:W.PluginScope.ROUTE,entityEndpoint:"routes",id:Ge,idField:_o.ROUTE}),K&&(qe.consumer={entity:W.PluginScope.CONSUMER,entityEndpoint:"consumers",id:K,idField:_o.CONSUMER}),U&&(qe.consumer_group={entity:W.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:U,idField:_o.CONSUMER_GROUP}),s.config.entityType&&(qe.focusedEntity={entity:W.PluginScope[s.config.entityType.substring(0,s.config.entityType.length-1).toUpperCase()],entityEndpoint:s.config.entityType,id:s.config.entityId,idField:_o[s.config.entityType.substring(0,s.config.entityType.length-1).toUpperCase()]}),qe}),ae=t.reactive({name:{default:s.pluginType,type:"input",inputType:"hidden",styleClasses:"d-none hidden-field",pinned:!0},enabled:{type:"switch",model:"enabled",label:c("plugins.form.fields.enabled.label"),textOn:c("plugins.form.fields.enabled.on_text"),textOff:c("plugins.form.fields.enabled.off_text"),styleClasses:"field-switch hide-label",default:!0,pinned:!0},selectionGroup:{type:"selectionGroup",disabled:s.disableScopeSelection,inputType:"hidden",styleClasses:"hide-label",fields:[{label:c("plugins.form.scoping.global.label"),description:c("plugins.form.scoping.global.help")}],pinned:!0},protocols:{id:"protocols",default:[],help:c("plugins.form.fields.protocols.help"),label:c("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:c("plugins.form.fields.instance_name.label"),inputType:"text",help:c("plugins.form.fields.instance_name.help")},tags:d.tags,...r?{condition:{default:"",type:"input",label:c("plugins.form.fields.condition.label"),inputType:"text",help:c("plugins.form.fields.condition.tooltip"),placeholder:c("plugins.form.fields.condition.placeholder")}}:{}}),ze=t.computed(()=>{const K=s.developer?"developers":"consumers",U=qr[s.pluginType]?.endpoint||"/plugins";return`${K}/${s.config.entityId}${s.developer?"/credentials":""}${U}`}),Ie=K=>{const U=Array.from(new Set(K.map(J=>typeof J)));return U.length>1?"string":U[0]},je=(K,U,J,Ge)=>{let qe=U&&U.fields||[];return Array.isArray(qe)&&(qe=qe.reduce((Ve,F)=>{const H=Object.keys(F)[0];return H.match(/-/g)?Ve[H.replace(/-/g,"_")]={...F[H],fieldNameHasDashes:!0}:Ve[H]=F[H],Ve},{})),Object.keys(qe).sort().forEach(Ve=>{if(!K&&Ve===S.EXPRESSIONS_FIELD)return;const F=qe[Ve];F.type==="set"&&!F.elements.one_of&&(F.type="array");const H=K?`${K}-${Ve}`:`${Ve}`;if(Object.prototype.hasOwnProperty.call(F,"overwrite")||F.hidden)return;if(F.type==="table")return je(H,F.schema,J);if(F.fields)return Ge&&F.type==="record"?(J[H]={type:"object",model:Ve,schema:{fields:Object.values(je(H,F,{},!0))}},J):je(H,F,J);if(J[H]={id:H,model:Ve},J[H].type=F.type==="boolean"?"checkbox":"input",J[H].required=F.required,J[H].referenceable=F.referenceable,H.startsWith("config-"))if(!Ge&&F.type==="array"&&(de.value=H),Ge&&de.value&&H.startsWith(de.value)){const ce=H.slice(de.value.length+1);J[H].label=ce.split("-").map(u).join(".")}else J[H].label=u(H);if((K==="config"||K.startsWith("config-"))&&qe[Ve]?.description&&(J[H].help=Au.sanitize(qh.marked.parse(qe[Ve].description,{mangle:!1,headerIds:!1}))),F.type==="map"){if(J[H].type="object-advanced",J[H].values=F.values,F.values.type==="array"){const{type:ce}=F.values.elements||{};J[H].schema={fields:[{schema:{fields:[{...ui,model:H,valueArrayType:ce==="integer"?"number":ce||"string",inputAttributes:{...ui.inputAttributes,type:ce==="integer"?"number":"text",inputMode:ce==="integer"?"numeric":"text"}}]}}]}}else F.values.fields&&(J[H].schema={fields:[{type:"object",model:"object",schema:{fields:F.values.fields.map(ce=>{const Te=Object.keys(ce)[0];return{model:Te,type:"input",label:p(Te),placeholder:Te,inputType:ce[Te].type}})}}]});return J}if(F.enum&&F.type==="array"&&(J[H].type="checklist",J[H].values=F.enum,J[H].multi=!0,J[H].multiSelect=!0),F.one_of&&F.type!=="array"&&(J[H].type="select",J[H].values=F.one_of,J[H].selectOptions={noneSelectedText:c("plugins.form.no_selection")}),F.elements&&F.type==="array"){const ce=F.elements;if(J[H].referenceable=ce.referenceable,J[H].elements=ce,["string","integer","number"].includes(ce.type)&&!ce.one_of){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt}=J[H],{inputAttributes:gt,...Ot}=JSON.parse(JSON.stringify(ui));gt.type=ce.type==="string"?"text":"number",J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,inputAttributes:gt,...Ot}}else if(["string","integer","number"].includes(ce.type)&&ce.one_of){if(Ge){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt}=J[H];J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,...RR(ce.one_of,F.default)}}}else if(ce.type==="array"){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,elements:gt}=J[H],{inputAttributes:Ot,...el}=JSON.parse(JSON.stringify(ui));J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,elements:gt,inputAttributes:Ot,...el}}}if(F.hint&&(J[H].hint=Au.sanitize(F.hint)),F.type==="array"&&F.elements?.type==="record"&&Array.isArray(F.elements.fields)){let ce={};for(const Be of F.elements.fields)ce={...ce,...Be};const Te=J[H]?.items?.schema?.fields;if(Array.isArray(Te))for(const Be of J[H].items.schema.fields){const xe=ce[Be.model]?.description;Be.help===void 0&&typeof xe=="string"&&(Be.help=Au.sanitize(qh.marked.parse(xe,{mangle:!1,headerIds:!1})))}if(Te||(J[H].type="array",J[H].newElementButtonLabelClasses="kong-form-new-element-button-label",J[H].fieldClasses="array-card-container-wrapper",J[H].itemContainerComponent="FieldArrayCardContainer",J[H].items={type:"object",schema:{fields:Object.values(je(H,F.elements,{},!0))}},J[H].items.schema.fields.forEach(Be=>{for(const xe of F.elements.fields){const He=Object.keys(xe)[0],tt=Be.id?.split?.("-")??[];if(tt[tt.length-1]===He){Be.model=He,Be.label=u(He);break}}}),F.elements.type==="record"&&(J[H].nestedFields=!0)),!J[H].nestedFields)J[H].items.default=()=>F.elements.fields.reduce((Be,xe)=>{const He=Object.keys(xe)[0];return Be[He]=xe[He].default,Be},{});else{const Be=(xe,He)=>{if(xe.type==="object"){xe.model&&(He[xe.model]={});for(const tt of xe.schema.fields)Be(tt,xe.model?He[xe.model]:He)}else xe.model&&(He[xe.model]=xe.default)};J[H].items.default=()=>{const xe={};return Be(J[H].items,xe),xe}}}if(F.required&&F.type!=="boolean"&&(J[H].required=!0,J[H].selectOptions={hideNoneSelectedText:!0}),F.required&&F.type==="boolean"&&(J[H].default=F.default??!1),F.default!=null&&typeof F.default!="object"&&F.default!=="function"&&(J[H].default=F.default),J[H].type==="input"){["string","number"].includes(typeof J[H].default)&&s.config.app==="konnect"&&(J[H].placeholder=`Default: ${J[H].default===""?"<empty string>":J[H].default}`);const{type:ce}=F.elements||{};ce&&(J[H].valueArrayType=ce==="integer"?"number":ce),J[H].inputType=F.type==="array"||F.type==="string"?F.encrypted?"password":"text":F.type}let he="string";F.enum?he=Ie(F.enum):F.type==="boolean"?he="boolean":F.type==="number"||F.type==="integer"?(he="number",J[H].inputType="number"):F.type==="array"?(he="array",J[H].default=F.default,F.len_min>0&&(J[H].submitWhenNull=!0)):F.type==="foreign"?he="object":F.default&&Array.isArray(F.default)?(he="array",J[H].valueArrayType=Ie(F.default)):F.default&&(he=typeof F.default),J[H].valueType=he,F.fieldNameHasDashes&&(J[H].fieldNameHasDashes=!0)}),J},le=()=>{const K=A.value&&O.value?O.value:s.pluginType,U=kr[K]?.scope.includes(W.PluginScope.SERVICE)??!0,J=kr[K]?.scope.includes(W.PluginScope.ROUTE)??!0,Ge=kr[K]?.scope.includes(W.PluginScope.CONSUMER)??!0,qe=s.config.disableConsumerGroupScope?!1:kr[K]?.scope.includes(W.PluginScope.CONSUMER_GROUP)??!0,Ve=s.config.entityType==="consumers"&&!!s.config.entityId||!!N.value?.consumer?.id,F=s.config.entityType==="consumer_groups"&&!!s.config.entityId||!!N.value?.consumer_group?.id,H=s.config.entityType==="services"&&!!s.config.entityId||!!N.value?.service?.id,he=s.config.entityType==="routes"&&!!s.config.entityId||!!N.value?.route?.id,ce=[],Te=(xe,He,tt)=>xe?c("plugins.form.disable_source_scope_change",{scope:tt}):He?c("plugins.form.disable_data_retrieving",{scope:tt}):"",Be=xe=>s.scopedEntitiesPermissions?.[xe]?.canRetrieve===!1;if(U){const xe=Be("service"),He="services",tt=H&&s.disableScopeSelection;ce.push({id:"service-id",model:"service-id",label:c("plugins.form.scoping.gateway_service.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",labelField:"name",entity:He,inputValues:{fields:["name","id"]},help:c("plugins.form.scoping.gateway_service.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(J){const xe=Be("route"),He="routes",tt=he&&s.disableScopeSelection;ce.push({id:"route-id",model:"route-id",label:c("plugins.form.scoping.route.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,labelField:"name",inputValues:{fields:["name","id"],primaryField:"id"},help:c("plugins.form.scoping.route.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(Ge){const xe=Be("consumer"),He="consumers",tt=Ve&&s.disableScopeSelection;ce.push({model:"consumer-id",label:c("plugins.form.scoping.consumer.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,labelField:"username",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:c("plugins.form.scoping.consumer.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(qe){const xe=Be("consumer_group"),He="consumer_groups",tt=F&&s.disableScopeSelection;ce.push({model:"consumer_group-id",label:c("plugins.form.scoping.consumer_group.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,entityDataKey:"consumer_group",labelField:"name",inputValues:{fields:["name","id"],primaryField:"name"},help:c("plugins.form.scoping.consumer_group.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(ce.length){const xe=[...U?["service"]:[],...J?["route"]:[],...Ge?["consumer"]:[],...qe?["consumer_group"]:[]],tt=xe.splice(xe.length-2,2).map(pt=>c(pt==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${pt}.plural`)).join(`${xe.length>0?",":""} and/or `),$t=["Specific",[...xe.length>0?[xe.map(pt=>c(pt==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${pt}.plural`)).join(", ")]:[],tt].join(", ")].join(" ");ae.selectionGroup.fields.push({label:c("plugins.form.scoping.label"),description:$t,fields:[]}),ae.selectionGroup.fields[1].fields=ce}},re=t.computed(()=>!m(G.fields,j,!0)),D=t.computed(()=>!it.value&&!ee.value&&(w.value===ge.EntityBaseFormType.Create||re.value)),te=t.ref(!1),fe=t.ref(),Ee=K=>{s.credential&&K.password&&(K.password=""),G.fields.id=K?.id||void 0,fe.value=K?.ordering,Object.assign(j,G.fields),N.value=K,te.value=!0},Re=t.ref({}),Pe=t.ref(!1),ke=K=>{G.fields=K.model,G.fields.id=N.value?.id||void 0,Object.assign(j,K.originalModel),Re.value=K.data,s.isWizardStep&&a("model-updated",{model:G.fields,data:K.data,resourceEndpoint:ze.value})},Ae=K=>{G.fields={...G.fields,...K,id:N.value?.id||void 0},Pe.value||(Pe.value=!0,Object.keys(j).forEach(Ge=>delete j[Ge]),Object.assign(j,G.fields));const U=j,J=Ge=>Ge==null||Ge==="";Re.value=Object.fromEntries(Object.entries(K).filter(([Ge,qe])=>!J(qe)||!J(U[Ge])).map(([Ge,qe])=>[Ge,J(qe)?null:qe])),s.isWizardStep&&a("model-updated",{model:G.fields,data:Re.value,resourceEndpoint:ze.value})},Ce=t.ref(new Map),oe=t.computed(()=>[G.clientErrorMessage,G.serverErrorMessage].filter(Boolean).join("; ")),ie=K=>{K.valid?Ce.value.delete(K.model):Ce.value.set(K.model,K.error),G.clientErrorMessage=[...Ce.value.entries()].map(([U,J])=>`${U}: ${typeof J=="string"?J:f(J)}`).join("; "),G.clientErrorMessage&&(G.serverErrorMessage="")};t.watch([ne,te],(K,U)=>{const J=K[0]!==U[0],Ge=K[1],qe=U[1];if(!k.value&&w.value===ge.EntityBaseFormType.Edit&&(J||Ge&&Ge!==qe)){const Ve=je("config",T.value,ae);z.value&&(Ve._isCustomPlugin=!0),A.value&&O.value&&(Ve._sourcePlugin=O.value),x.value&&(Ve._supported_redis_partial_type=x.value),E.value=Ve}},{deep:!0});const ye=()=>{s.config.cancelRoute?l.push(s.config.cancelRoute):a("cancel")},Q=t.computed(()=>{const K=s.config.entityType&&s.config.entityId&&!s.developer,U=k.value?Xe.form[s.config.app].credential[w.value]:Xe.form[s.config.app][w.value][K?"forEntity":"all"];let J=`${s.config.apiBaseUrl}${U}`;return s.config.app==="konnect"&&(J=J.replace(/{controlPlaneId}/gi,s.config.controlPlaneId||"")),J=J.replace(/\/{workspace}/gi,s.config.workspace?`/${s.config.workspace}`:""),J=J.replace(/{resourceEndpoint}/gi,ze.value),J=J.replace(/{id}/gi,s.pluginId??""),J=J.replace(/{entityType}/gi,s.config.entityType||""),J=J.replace(/{entityId}/gi,s.config.entityId||""),J}),z=t.computed(()=>!Object.keys(kr).includes(s.pluginType)),Y=t.computed(()=>{const K=k.value?{...Re.value}:Re.value;if(k.value){const U=ne.value.consumer?.id;U&&(K.consumer={id:U})}return Re.value.partials&&B.value&&iB(K,B.value),K}),me=t.computed(()=>{const{__ui_data:K,...U}={...Y.value};return U}),_e=async()=>{if(I.every(K=>K())&&!G.clientErrorMessage&&!s.isWizardStep)try{G.isReadonly=!0;let K;const U=JSON.parse(JSON.stringify(Y.value));k.value&&s.config.app==="kongManager"&&["key-auth","key-auth-enc"].includes(s.pluginType)&&typeof U.ttl!="number"&&(U.ttl=0),w.value==="create"?K=await g.post(Q.value,U):w.value==="edit"&&(K=s.config.app==="konnect"||x.value&&U.partials?await g.put(Q.value,Object.assign({ordering:fe.value},U)):await g.patch(Q.value,U)),Object.assign(j,G.fields),a("update",K?.data)}catch(K){G.serverErrorMessage=f(K),a("error",K)}finally{G.isReadonly=!1}},Le=t.computed(()=>{const K=k.value?qr[s.pluginType]?.schemaEndpoint:s.pluginType,U=k.value?Xe.form[s.config.app].credentialSchema:Xe.form[s.config.app].pluginSchema;let J=`${s.config.apiBaseUrl}${U}`;return s.config.app==="konnect"&&(J=J.replace(/{controlPlaneId}/gi,s.config.controlPlaneId||"")),J.replace(/\/{workspace}/gi,s.config.workspace?`/${s.config.workspace}`:"").replace(/{plugin}/gi,K)}),De=t.ref(""),it=t.ref(!1),q=t.ref("");t.onBeforeMount(async()=>{it.value=!0;try{if(k.value){const K=qr[s.pluginType]?.schemaEndpoint;s.config.app==="konnect"?(De.value=K,b.value=tw[K]):b.value=s.schema??(await g.get(Le.value)).data}else{const K=o&&z.value,U=s.schema?Promise.resolve(s.schema):g.get(Le.value).then(Ge=>Ge.data),[J]=await Promise.all([U,K?se(s.pluginType):Promise.resolve()]);if(b.value=J,J){const Ge=J.fields.find(Ve=>Ve.config);T.value=Ge?Ge.config:J,J.supported_partials&&(x.value=Object.keys(J.supported_partials).find(Ve=>[Pl.REDIS_CE,Pl.REDIS_EE].includes(Ve)),B.value=J.supported_partials[x.value]?.[0]),le();const qe=J.fields.find(Ve=>Ve.protocols)?.protocols;if(qe){const{default:Ve=[],elements:F={}}=qe;ae.protocols.default=Ve,ae.protocols.placeholder=s.config.app==="konnect"?c("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:Ve.join(", ")}):c("plugins.form.fields.protocols.placeholder"),F.one_of?.length&&(ae.protocols.values=F.one_of.map(H=>({label:H,value:H})))}if(te.value||w.value===ge.EntityBaseFormType.Create){const Ve=je("config",T.value,ae);x.value&&(Ve._supported_redis_partial_type=x.value),z.value&&(Ve._isCustomPlugin=!0),A.value&&O.value&&(Ve._sourcePlugin=O.value),E.value=Ve}}}}catch(K){console.error(K),q.value=f(K),a("error:fetch-schema",K)}finally{it.value=!1}});async function se(K){try{const U=await _(K);O.value=U?.ref??null}catch(U){if(Yo.isAxiosError(U)&&U.response?.status===404)return;console.warn(`Failed to resolve cloned plugin "${K}"`,U)}}return(K,U)=>{const J=t.resolveComponent("KSkeleton"),Ge=t.resolveComponent("KEmptyState"),qe=t.resolveComponent("KButton"),Ve=t.resolveComponent("KTabs"),F=t.resolveComponent("KSlideout");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["kong-ui-entities-plugin-form-container",{"new-form-layout":i.value}])},[it.value?(t.openBlock(),t.createBlock(J,{key:0,type:"form"})):q.value?(t.openBlock(),t.createBlock(Ge,{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(c)("errors.load_schema")),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ge.EntityBaseForm),{key:2,"can-submit":D.value,config:e.config,"edit-id":e.pluginId,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"error-message":oe.value,"fetch-url":M.value,"form-fields":Y.value,"is-readonly":G.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:ye,"onFetch:error":U[6]||(U[6]=H=>K.$emit("error",H)),"onFetch:success":Ee,onLoading:U[7]||(U[7]=H=>K.$emit("loading",H))},{"form-actions":t.withCtx(()=>[e.isWizardStep?(t.openBlock(),t.createElementBlock("div",DG)):(t.openBlock(),t.createBlock(FG,{key:1,"teleport-target":e.actionsTeleportTarget},{default:t.withCtx(()=>[t.createElementVNode("div",MG,[e.hideViewConfigAction?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(qe,{key:0,appearance:"tertiary","data-testid":`plugin-${y.value?"edit":"create"}-form-view-configuration`,onClick:U[5]||(U[5]=H=>ue())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),t.createVNode(qe,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${y.value?"edit":"create"}-form-cancel`,disabled:G.isReadonly,onClick:ye},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),t.createVNode(qe,{appearance:"primary","data-testid":`plugin-${y.value?"edit":"create"}-form-submit`,disabled:!D.value||G.isReadonly,type:"submit",onClick:_e},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:t.withCtx(()=>[t.createElementVNode("form",{hidden:"",onSubmit:_e},null,32),k.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[b.value&&(w.value===t.unref(ge.EntityBaseFormType).Create||N.value)?(t.openBlock(),t.createBlock(qf,{key:0,config:e.config,"credential-type":e.pluginType,editing:w.value===t.unref(ge.EntityBaseFormType).Edit,record:N.value,schema:b.value,"onUpdate:loading":U[0]||(U[0]=H=>ee.value=H),"onUpdate:modelValue":Ae},null,8,["config","credential-type","editing","record","schema"])):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createBlock(RG,{key:1,config:e.config,developer:e.developer,editing:w.value===t.unref(ge.EntityBaseFormType).Edit,"enable-vault-secret-picker":s.enableVaultSecretPicker,"entity-map":ne.value,"raw-schema":b.value,record:N.value,schema:E.value,"onClick:createEntity":U[1]||(U[1]=H=>K.$emit("click:create-entity",H)),"onClick:learnMore":U[2]||(U[2]=H=>K.$emit("click:learn-more",H)),onGlobalAction:U[3]||(U[3]=(H,he)=>K.$emit("globalAction",H,he)),onLoading:U[4]||(U[4]=H=>ee.value=H),onModelUpdated:ke,onValidityChange:ie},null,8,["config","developer","editing","enable-vault-secret-picker","entity-map","raw-schema","record","schema"]))]),_:1},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly","wrapper-component"])),t.createVNode(F,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:t.unref(c)("view_configuration.title"),visible:h.value,onClose:ue},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(c)("view_configuration.message")),1),t.createVNode(Ve,{modelValue:pe.value,"onUpdate:modelValue":U[11]||(U[11]=H=>pe.value=H),"data-testid":"form-view-configuration-slideout-tabs",tabs:$.value},{json:t.withCtx(()=>[t.createVNode(t.unref(ge.JsonCodeBlock),{config:e.config,"entity-record":me.value,"fetcher-url":Q.value,"request-method":s.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:t.withCtx(()=>[t.createVNode(t.unref(ge.YamlCodeBlock),{"deck-callout-preference-key":t.unref(L)?t.unref(Z):void 0,"entity-record":me.value,"onDeckCallout:clickCta":U[8]||(U[8]=H=>pe.value="#deck")},null,8,["deck-callout-preference-key","entity-record"])]),terraform:t.withCtx(()=>[t.createVNode(t.unref(ge.TerraformCodeBlock),{"credential-type":De.value,"entity-record":me.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),deck:t.withCtx(()=>[t.unref(R)?(t.openBlock(),t.createElementBlock("div",UG,[t.createVNode(qe,{appearance:"secondary",class:"button-customize-deck",onClick:U[9]||(U[9]=H=>V.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("plugins.form.button_deck_customize")),1)]),_:1})])):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.DeckCodeBlock),{app:e.config.app,"control-plane-name":e.config.app==="konnect"?e.config.controlPlaneName:void 0,"customization-options":t.unref(R),"entity-record":me.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"geo-api-server-url":e.config.app==="konnect"?e.config.geoApiServerUrl:void 0,"is-customization-modal-visible":V.value,"kong-admin-api-url":e.config.app==="kongManager"?e.config.apiBaseUrl:void 0,workspace:e.config.workspace||void 0,onCustomizationClose:U[10]||(U[10]=H=>V.value=!1)},null,8,["app","control-plane-name","customization-options","entity-record","entity-type","geo-api-server-url","is-customization-modal-visible","kong-admin-api-url","workspace"])]),_:1},8,["modelValue","tabs"])]),_:1},8,["title","visible"])],2)}}}),[["__scopeId","data-v-7ba138f7"]]),KG={class:"plugin-filter"},qG={class:"plugin-tags-filter"},GG={class:"plugin-tags-filter-badges"},zG={class:"plugin-status-filter"},HG=ve(t.defineComponent({__name:"PluginFilter",props:t.mergeModels({entityType:{},entityId:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{i18n:{t:n}}=nt.useI18n(),r={routes:W.PluginScope.ROUTE,services:W.PluginScope.SERVICE,consumers:W.PluginScope.CONSUMER,consumer_groups:W.PluginScope.CONSUMER_GROUP},o=t.computed(()=>e.entityType&&e.entityId?r[e.entityType]:void 0),i=t.useModel(e,"modelValue"),a=t.ref(""),s=t.ref({}),l=t.useTemplateRef("search-input"),c=t.useTemplateRef("tags-input"),d=(k,N)=>k.map(T=>N.find(x=>x.value===T).label).join(", "),u=t.ref(""),f=/^(?:[\x21-\x2B\x2D\x2E\x30-\x7E\p{N}\p{L}]+(?: *[\x21-\x2B\x2D\x2E\x30-\x7E\p{N}\p{L}])*)?$/u,p=t.computed(()=>u.value&&!f.test(u.value)?n("search.filter.tags_invalid"):""),m=()=>{l.value?.input?.focus()},g=()=>{c.value?.input?.focus()},_=()=>{a.value="",m()},h=(k,N)=>{const T=u.value;if(!T||!f.test(T)){g();return}k||(k=[]),k.includes(T)||k.push(T),u.value="",g(),N(k,k.join(", "))},y=(k,N,T)=>{const x=N.filter(B=>B!==k);T(x,x.join(", "))},w=t.computed(()=>({...o.value?{}:{scope:{label:n("plugins.list.table_headers.scope"),operators:["eq"],pinned:!0,multiple:!0,options:[{label:n("plugins.list.table_headers.applied_to_badges.route"),value:W.PluginScope.ROUTE},{label:n("plugins.list.table_headers.applied_to_badges.service"),value:W.PluginScope.SERVICE},{label:n("plugins.list.table_headers.applied_to_badges.consumer"),value:W.PluginScope.CONSUMER},{label:n("plugins.list.table_headers.applied_to_badges.consumer_group"),value:W.PluginScope.CONSUMER_GROUP},{label:n("plugins.list.table_headers.applied_to_badges.global"),value:W.PluginScope.GLOBAL}]}},status:{label:n("plugins.list.table_headers.status"),operators:["eq"],pinned:!0,maxWidth:350,options:[{value:"true",label:n("actions.enabled")},{value:"false",label:n("actions.disabled")}]},tags:{label:n("plugins.list.table_headers.tags"),operators:["eq"],pinned:!0,multiple:!0}})),b=t.computed(()=>{const k=new URLSearchParams;if(a.value&&k.set("filter[name][contains]",a.value),!o.value){const B=s.value.scope,O=Array.isArray(B?.value)?B.value:typeof B?.value=="string"&&B.value?[B.value]:[];O.length&&k.set("filter[scope][oeq]",O.join(","))}const N=s.value.status;N?.value&&k.set("filter[enabled]",N.value==="true"?"true":"false");const T=s.value.tags,x=Array.isArray(T?.value)?T.value:[];return x.length&&k.set("tags",x.join("/")),o.value&&e.entityId&&k.toString()&&k.set(`filter[${o.value}][eq]`,e.entityId),k.toString()});t.watch(b,k=>{i.value=k}),t.watch(i,k=>{k||(a.value="",s.value={},u.value="")});const E=(k,N)=>{const T=N[k];T&&(T.operatorDelimiter=": ")};return(k,N)=>{const T=t.resolveComponent("KInput"),x=t.resolveComponent("KBadge"),B=t.resolveComponent("KMultiselect"),O=t.resolveComponent("KRadio"),A=t.resolveComponent("KFilterGroup");return t.openBlock(),t.createElementBlock("div",KG,[t.createVNode(T,{ref:"search-input",modelValue:a.value,"onUpdate:modelValue":N[0]||(N[0]=I=>a.value=I),autocomplete:"off",class:"plugin-search-input","data-testid":"search-input",placeholder:t.unref(n)("search.placeholder.search")},{before:t.withCtx(()=>[t.createVNode(t.unref(Ne.SearchIcon),{decorative:""})]),after:t.withCtx(()=>[t.withDirectives(t.createVNode(t.unref(Ne.CloseIcon),{class:"plugin-search-clear",role:"button",tabindex:"0",onClick:_,onKeydown:[t.withKeys(t.withModifiers(_,["prevent"]),["enter"]),t.withKeys(t.withModifiers(_,["prevent"]),["space"])]},null,8,["onKeydown"]),[[t.vShow,a.value!==""]])]),_:1},8,["modelValue","placeholder"]),t.createVNode(A,{modelValue:s.value,"onUpdate:modelValue":N[2]||(N[2]=I=>s.value=I),filters:w.value,onApply:E},{"filter-tags":t.withCtx(({value:I,setValue:V})=>[t.createElementVNode("div",qG,[t.createVNode(T,{ref:"tags-input",modelValue:u.value,"onUpdate:modelValue":N[1]||(N[1]=L=>u.value=L),autocomplete:"off","data-testid":"tags-filter-input",error:!!p.value,"error-message":p.value,placeholder:t.unref(n)("search.placeholder.tags_filter"),onKeydown:t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["enter"])},{after:t.withCtx(()=>[t.createVNode(t.unref(Ne.ArrowTopLeftIcon),{class:"plugin-tags-filter-add","data-testid":"tags-filter-add",role:"button",tabindex:"0",onClick:L=>h(I,V),onKeydown:[t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["enter"]),t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["space"])]},null,8,["onClick","onKeydown"])]),_:2},1032,["modelValue","error","error-message","placeholder","onKeydown"]),t.createElementVNode("div",GG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(I,L=>(t.openBlock(),t.createBlock(x,{key:L,"icon-before":!1},{icon:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon),{"data-testid":"tags-filter-remove-tag",role:"button",tabindex:"0",onClick:R=>y(L,I,V),onKeydown:[t.withKeys(t.withModifiers(R=>y(L,I,V),["prevent"]),["enter"]),t.withKeys(t.withModifiers(R=>y(L,I,V),["prevent"]),["space"])]},null,8,["onClick","onKeydown"])]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(L)+" ",1)]),_:2},1024))),128))])])]),"filter-scope":t.withCtx(({value:I,setValue:V,options:L})=>[t.createVNode(B,{"data-testid":"scope-filter-select",items:L,"model-value":I,placeholder:t.unref(n)("search.placeholder.scope_filter"),"onUpdate:modelValue":R=>V(R,d(R,L))},null,8,["items","model-value","placeholder","onUpdate:modelValue"])]),"filter-status":t.withCtx(({value:I,setValue:V,options:L})=>[t.createElementVNode("div",zG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(L,R=>(t.openBlock(),t.createBlock(O,{key:R.value,"data-testid":"status-filter-radio",label:R.label,"model-value":I,"selected-value":R.value,"onUpdate:modelValue":Z=>V(Z,R.label)},null,8,["label","model-value","selected-value","onUpdate:modelValue"]))),128))])]),_:1},8,["modelValue","filters"])])}}}),[["__scopeId","data-v-c4f55d0a"]]),WG={class:"kong-ui-entities-plugins-list"},YG={class:"button-row"},JG={class:"name-cell-wrapper"},XG={key:0,class:"info-wrapper"},ZG={class:"info-name"},QG={key:1,class:"info-wrapper"},e6={key:0,class:"info-name"},t6={key:1,class:"info-name"},n6={key:2,class:"info-type"},r6={key:0},o6={key:1},i6={key:2},a6={key:1},s6={key:0},l6=ve(t.defineComponent({__name:"PluginList",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(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}){const r=nt.usePluginMetaData(),o=n,i=e,{i18n:{t:a,formatUnixTimeStamp:s}}=nt.useI18n(),l=gr.useRouter(),{axiosInstance:c}=ge.useAxios(i.config?.axiosRequestConfig),{hasRecords:d,handleStateChange:u}=ge.useTableState(()=>T.value),f=t.computed(()=>d.value&&i.config.app==="konnect"),p=t.computed(()=>!!i.config.entityId),m=t.computed(()=>i.config?.entityType==="consumers"),g=t.computed(()=>i.config?.entityType==="consumer_groups"),_=i.config.app==="konnect"||ge.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),h=t.computed(()=>i.config.app==="konnect"),y=t.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),w={name:{label:h.value?a("plugins.list.table_headers.plugin"):a("plugins.list.table_headers.name"),searchable:!0,sortable:!h.value,hidable:!1}};h.value&&(w.instanceName={label:a("plugins.list.table_headers.name"),sortable:!1}),i.config?.entityId||(w.appliedTo=h.value?{label:a("plugins.list.table_headers.scope"),sortable:!1}:{label:a("plugins.list.table_headers.applied_to"),sortable:!1}),w.enabled=h.value?{label:a("plugins.list.table_headers.status"),sortable:!1}:{label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},_&&(w.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),w.tags={label:a("plugins.list.table_headers.tags"),sortable:!1},w.updated_at={label:a("plugins.list.table_headers.updated_at"),sortable:!0};const{defaultTablePreferences:b,tableHeaders:E}=ge.useManagedByColumn(w),k=z=>{let Y=`${i.config.apiBaseUrl}${z}`;return i.config.app==="konnect"&&(Y=Y.replace(/{controlPlaneId}/gi,i.config?.controlPlaneId||"")),Y.replace(/\/{workspace}/gi,i.config?.workspace?`/${i.config.workspace}`:"").replace(/{entityType}/gi,i.config?.entityType||"").replace(/{entityId}/gi,i.config?.entityId||"")},N=t.computed(()=>k(i.config.entityType?Xe.list[i.config.app].forEntity:Xe.list[i.config.app].all)),T=t.ref(""),x=t.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:w.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:{...w.enabled,label:a("search.filter.field.enabled")},name:w.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),B=t.computed(()=>h.value&&!!T.value),O=t.computed(()=>B.value?k(Xe.list.konnect.search):N.value),{fetcher:A,fetcherState:I,fetcherCacheKey:V}=ge.useFetcher(t.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier,...B.value?{isExactMatch:!1}:{}})),O),L=()=>{T.value=""},R=()=>{V.value++},Z=t.ref(null),ee=z=>{const Y=[];return(z.route?.id||z.route_id)&&Y.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),(z.service?.id||z.service_id)&&Y.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),(z.consumer?.id||z.consumer_id)&&Y.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),(z.consumer_group?.id||z.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")}]},j=async(z,Y)=>z===null?!1:await i.canRetrieveScopedEntity?.(z,Y.id),G=(z,Y)=>Y[z]?.id,$=(z,Y)=>{const me=G(z,Y);return me&&i.config?.getScopedEntityViewRoute?i.config.getScopedEntityViewRoute(z,me):null},pe=(z,Y)=>{const me=$(z,Y);me&&l.push(me)},de=t.ref(!1),M=t.ref(null),ue=t.computed(()=>{const z={action:"disable",id:"",name:""};if(M.value){const{enabled:Y,id:me,name:_e}=M.value;z.action=Y?"disable":"enable",z.id=me,z.name=r.getDisplayName(_e)||me}return z}),ne=z=>{de.value=!0,M.value=z},ae=()=>{de.value=!1,M.value=null},ze=async()=>{if(!await i.canEdit?.(M.value)||!M.value)return;let Y=`${i.config.apiBaseUrl}${Xe.item[i.config.app]?.[i.config?.entityType?"forEntity":"all"].replace(/{entityType}/gi,i.config?.entityType||"").replace(/{entityId}/gi,i.config?.entityId||"")}`.replace(/{id}/gi,M.value.id||"");i.config.app==="konnect"&&(Y=Y.replace(/{controlPlaneId}/gi,i.config?.controlPlaneId||"")),Y=Y.replace(/\/{workspace}/gi,i.config?.workspace?`/${i.config.workspace}`:"");const me=!M.value.enabled;try{const _e=i.config?.app;let Le;T.value&&_e==="konnect"&&(Le=await c.get(Y));const{data:De}=_e==="konnect"?await c.put(Y,{...Le?.data||M.value,enabled:me},{timeout:12e4}):await c.patch(Y,{...M.value,enabled:me},{timeout:12e4});o("toggle-enabled",me,De),M.value.enabled=me}catch(_e){o("error",_e)}},Ie=async(z,Y)=>{const me=z.id;if(!await Y(me)){o("copy:error",{entity:z,field:"id",message:a("errors.copy")});return}o("copy:success",{entity:z,field:"id",message:a("copy.success",{val:me})})},je=async(z,Y)=>{const me=JSON.stringify(z);if(!await Y(me)){o("copy:error",{entity:z,message:a("errors.copy")});return}o("copy:success",{entity:z,message:a("copy.success_brief")})},le=async z=>{await i.canRetrieve?.(z)&&l.push(i.config.getViewRoute(z))},re=z=>({label:a("actions.view"),to:i.config.getViewRoute(z)}),D=z=>({label:a("actions.edit"),to:i.config.getEditRoute(z)}),te=z=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(z)}),fe=t.ref(void 0),Ee=t.ref(!1),Re=t.ref(!1),Pe=t.ref(""),ke=ge.useDeleteUrlBuilder(i.config,N.value),Ae=z=>{fe.value=z,Ee.value=!0},Ce=()=>{Ee.value=!1},oe=async()=>{if(fe.value?.id){Re.value=!0;try{await c.delete(ke(fe.value.id)),Re.value=!1,Ee.value=!1,V.value++,o("delete:success",fe.value)}catch(z){Pe.value=z.response?.data?.message||z.message||a("errors.delete"),o("error",z)}finally{Re.value=!1}}},ie=()=>{l.push(i.config.createRoute)};t.watch(I,z=>{if(z.status===ge.FetcherStatus.Error){Z.value={title:a("errors.general")},z.error?.response?.data?.message&&(Z.value.message=z.error.response.data.message),o("error",z.error);return}Z.value=null});const ye=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")}),Q=t.ref(!1);return t.onBeforeMount(async()=>{Q.value=await i.canCreate(),Q.value&&(ye.value.title=a("plugins.list.empty_state.title"),ye.value.ctaText=a("actions.create"))}),(z,Y)=>{const me=t.resolveComponent("KButton"),_e=t.resolveComponent("KEmptyState"),Le=t.resolveComponent("RouterLink"),De=t.resolveComponent("KBadge"),it=t.resolveComponent("KTruncate"),q=t.resolveComponent("KInputSwitch"),se=t.resolveComponent("KDropdownItem"),K=t.resolveComponent("KClipboardProvider");return t.openBlock(),t.createElementBlock("div",WG,[t.createVNode(t.unref(ge.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"default-table-preferences":t.unref(b),"disable-sorting":y.value,"empty-state-options":ye.value,"enable-entity-actions":"","error-message":Z.value,fetcher:t.unref(A),"fetcher-cache-key":t.unref(V),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:T.value,"table-headers":t.unref(E),title:e.title,"title-tag":e.titleTag,onClearSearchInput:L,"onClick:row":Y[5]||(Y[5]=U=>le(U)),onSort:R,onState:t.unref(u)},t.createSlots({"toolbar-filter":t.withCtx(()=>[h.value?(t.openBlock(),t.createBlock(HG,{key:0,modelValue:T.value,"onUpdate:modelValue":Y[0]||(Y[0]=U=>T.value=U),"entity-id":i.config?.entityId,"entity-type":i.config?.entityType},null,8,["modelValue","entity-id","entity-type"])):(t.openBlock(),t.createBlock(t.unref(ge.EntityFilter),{key:1,modelValue:T.value,"onUpdate:modelValue":Y[1]||(Y[1]=U=>T.value=U),config:x.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",YG,[!p.value&&f.value?(t.openBlock(),t.createBlock(me,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:Y[2]||(Y[2]=U=>z.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""})]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:t.withCtx(()=>[t.createVNode(me,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.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:U})=>[t.createElementVNode("div",JG,[t.createVNode(t.unref(mr.PluginIcon),{class:"plugin-icon",name:U.name,size:24},null,8,["name"]),h.value?(t.openBlock(),t.createElementBlock("div",XG,[t.createElementVNode("span",ZG,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)])):(t.openBlock(),t.createElementBlock("div",QG,[U.instance_name?(t.openBlock(),t.createElementBlock("span",e6,t.toDisplayString(U.instance_name),1)):(t.openBlock(),t.createElementBlock("span",t6,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)),U.instance_name?(t.openBlock(),t.createElementBlock("span",n6,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)):t.createCommentVNode("",!0)]))])]),instanceName:t.withCtx(({row:U})=>[t.createTextVNode(t.toDisplayString(U.instance_name||"-"),1)]),appliedTo:t.withCtx(({row:U})=>[ee(U).length>0?(t.openBlock(),t.createBlock(it,{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(ee(U),(J,Ge)=>(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:J.badgeText,"auth-function":()=>j(J.type,U),"force-show":""},{default:t.withCtx(({isAllowed:qe})=>[h.value?(t.openBlock(),t.createElementBlock("div",r6,[qe&&J.type&&$(J.type,U)?(t.openBlock(),t.createBlock(Le,{key:0,class:"scope-link",to:$(J.type,U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(J.badgeText),1)]),_:2},1032,["to"])):(t.openBlock(),t.createElementBlock("span",o6,t.toDisplayString(J.badgeText),1)),Ge<ee(U).length-1?(t.openBlock(),t.createElementBlock("span",i6,", ")):t.createCommentVNode("",!0)])):(t.openBlock(),t.createBlock(De,{key:1,class:t.normalizeClass(qe||"disabled"),onClick:t.withModifiers(Ve=>qe&&J.type&&pe(J.type,U),["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(J.badgeText),1)]),_:2},1032,["class","onClick"]))]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(t.openBlock(),t.createElementBlock("span",a6,"-"))]),enabled:t.withCtx(({row:U})=>[h.value?(t.openBlock(),t.createBlock(De,{key:0,appearance:U.enabled?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(U.enabled?t.unref(a)("actions.enabled"):t.unref(a)("actions.disabled")),1)]),_:2},1032,["appearance"])):(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:1,"auth-function":async()=>!!(await e.canEdit(U)&&await e.canToggle(U)),"force-show":""},{default:t.withCtx(({isAllowed:J})=>[t.createElementVNode("div",{onClick:Y[4]||(Y[4]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(q,{disabled:!J,"disabled-tooltip-text":!J&&e.config.getToggleDisabledTooltip?.(U)||void 0,"model-value":U.enabled,onClick:t.withModifiers(Ge=>J&&ne(U),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]),_:2},1032,["auth-function"]))]),ordering:t.withCtx(({rowValue:U})=>[h.value?(t.openBlock(),t.createElementBlock("span",s6,t.toDisplayString(t.unref(af)(U)?t.unref(a)("plugins.list.table_headers.ordering_badge.static"):t.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)):(t.openBlock(),t.createBlock(De,{key:1,appearance:t.unref(af)(U)?"info":"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(af)(U)?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:U})=>[t.createVNode(t.unref(ge.TableTags),{tags:U},null,8,["tags"])]),updated_at:t.withCtx(({row:U,rowValue:J})=>[t.createTextVNode(t.toDisplayString(t.unref(s)(J??U.created_at)),1)]),managed_by:t.withCtx(({rowValue:U})=>[t.createTextVNode(t.toDisplayString(t.unref(ge.getManagedByLabel)(U)??"-"),1)]),actions:t.withCtx(({row:U})=>[t.createVNode(K,null,{default:t.withCtx(({copyToClipboard:J})=>[t.createVNode(se,{"data-testid":"action-entity-copy-id",onClick:Ge=>Ie(U,J)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(K,null,{default:t.withCtx(({copyToClipboard:J})=>[t.createVNode(se,{"data-testid":"action-entity-copy-json",onClick:Ge=>je(U,J)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(U)},{default:t.withCtx(()=>[t.createVNode(se,{"data-testid":"action-entity-view","has-divider":"",item:re(U)},null,8,["item"])]),_:2},1032,["auth-function"]),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canEdit(U)},{default:t.withCtx(()=>[t.createVNode(se,{"data-testid":"action-entity-edit",item:D(U)},null,8,["item"])]),_:2},1032,["auth-function"]),h.value?(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:0,"auth-function":async()=>!!(await e.canEdit(U)&&await e.canToggle(U)),"force-show":""},{default:t.withCtx(({isAllowed:J})=>[t.createVNode(se,{"data-testid":"action-entity-toggle-enabled",disabled:!J,onClick:Ge=>J&&ne(U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(U.enabled?t.unref(a)("actions.disable"):t.unref(a)("actions.enable")),1)]),_:2},1032,["disabled","onClick"])]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),!m.value&&!g.value&&t.unref(_)?(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:1,"auth-function":()=>e.canConfigureDynamicOrdering(U)},{default:t.withCtx(()=>[te(U)?(t.openBlock(),t.createBlock(se,{key:0,"data-testid":"action-entity-config-dyn-order",item:te(U)},null,8,["item"])):t.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canDelete(U)},{default:t.withCtx(()=>[t.createVNode(se,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:J=>Ae(U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!T.value&&e.config.app==="konnect"?{name:"empty-state",fn:t.withCtx(()=>[t.createVNode(_e,{"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(Ne.PlugIcon),{decorative:""})]),action:t.withCtx(()=>[Q.value?(t.openBlock(),t.createBlock(me,{key:0,"data-testid":"entity-create-button",onClick:ie},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.create_cta")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(me,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:Y[3]||(Y[3]=U=>z.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[e.config?.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","default-table-preferences","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","title","title-tag","onState"]),t.createVNode(t.unref(ge.EntityToggleModal),{action:ue.value.action,"entity-id":ue.value.id,"entity-name":ue.value.name,"entity-type":t.unref(a)("glossary.plugin"),"on-confirm":ze,visible:de.value,onCancel:ae,onProceed:ae},null,8,["action","entity-id","entity-name","entity-type","visible"]),t.createVNode(t.unref(ge.EntityDeleteModal),{"action-pending":Re.value,description:t.unref(a)("delete.description"),"entity-name":fe.value&&(fe.value.instance_name||fe.value.name||fe.value.id),"entity-type":t.unref(ge.EntityTypes).Plugin,error:Pe.value,title:t.unref(a)("delete.title"),visible:Ee.value,onCancel:Ce,onProceed:oe},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-64d883ad"]]),c6={class:"plugin-select-card-wrapper"},d6=["data-testid"],u6={class:"plugin-card-header"},f6={class:"plugin-card-title"},p6={key:0,class:"plugin-card-actions"},m6=["data-testid","title"],g6={key:0,class:"plugin-card-text"},h6={key:0,class:"custom-plugin-badges"},y6=["title"],um=ve(t.defineComponent({__name:"PluginSelectCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{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 r=n,o=e,i=gr.useRouter(),{i18n:{t:a}}=nt.useI18n(),s=t.computed(()=>o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?o.plugin.clonedFromRef:o.plugin.id),l=t.computed(()=>!k.value||E.value?[]:o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?[a("plugins.select.cloned_from_badge",{link:o.plugin.clonedFromRef})]:o.plugin.customPluginType==="streaming"?[a("plugins.select.streamed_custom_badge")]:[a("plugins.select.installed_custom_badge")]),c=t.computed(()=>!!(!o.plugin.available||o.plugin.disabledMessage)),d=t.computed(()=>typeof o.config.getCustomEditRoute=="function"),u=t.computed(()=>o.plugin.customPluginType==="cloned"),f=t.computed(()=>u.value?o.canDeleteClonedPlugin:o.canDeleteCustomPlugin),p=t.computed(()=>u.value?o.canEditClonedPlugin:o.canEditCustomPlugin),m=t.computed(()=>!(o.config.app==="kongManager"&&o.plugin.customPluginType==="schema")),g=t.computed(()=>p.value&&d.value),_=t.computed(()=>f.value),h=t.computed(()=>!!(k.value&&!E.value&&m.value&&o.navigateOnClick&&(_.value||g.value))),y=()=>{i.push(o.config.getCreateRoute(o.plugin.id))},w=()=>{o.navigateOnClick?y():b()},b=()=>{r("plugin-clicked",o.plugin)},E=t.computed(()=>o.plugin.id==="custom-plugin-create"),k=t.computed(()=>o.plugin.group===W.PluginGroup.CUSTOM_PLUGINS),N=()=>{k.value&&r("custom-plugin-delete")},T=(B,O)=>{const A=o.config;typeof A.getCustomEditRoute=="function"&&i.push(A.getCustomEditRoute(B,O))},x=()=>{if(!c.value&&k.value){const B=o.config;E.value&&B.createCustomRoute?i.push(B.createCustomRoute):k.value&&y()}};return(B,O)=>{const A=t.resolveComponent("KButton"),I=t.resolveComponent("KDropdownItem"),V=t.resolveComponent("KDropdownMenu"),L=t.resolveComponent("KBadge"),R=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",c6,[t.createVNode(R,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createElementVNode("a",{class:t.normalizeClass(["plugin-select-card",{disabled:c.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:O[1]||(O[1]=Z=>c.value||k.value?void 0:w())},[t.createElementVNode("div",u6,[t.createElementVNode("div",f6,[t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!k.value})},t.toDisplayString(e.plugin.name),3)]),h.value?(t.openBlock(),t.createElementBlock("div",p6,[t.createVNode(V,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:t.withCtx(()=>[t.createVNode(A,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[g.value?(t.openBlock(),t.createBlock(I,{key:0,"data-testid":"edit-plugin-schema",onClick:O[0]||(O[0]=t.withModifiers(Z=>T(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),_.value?(t.openBlock(),t.createBlock(I,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":g.value,onClick:t.withModifiers(N,["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["has-divider"])):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:t.normalizeClass(["plugin-card-body",{"custom-plugin":k.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip"),onClick:x},[t.createVNode(t.unref(mr.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:s.value,size:55},null,8,["alt","name"]),e.plugin.description||l.value.length?(t.openBlock(),t.createElementBlock("div",g6,[l.value.length?(t.openBlock(),t.createElementBlock("div",h6,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,Z=>(t.openBlock(),t.createBlock(L,{key:Z,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(Z),1)]),_:2},1024))),128))])):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,y6)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],10,m6),t.createElementVNode("div",{class:"plugin-card-footer",onClick:x},t.toDisplayString(E.value?t.unref(a)("actions.create_custom"):e.plugin.exists?t.unref(a)("actions.enabled"):t.unref(a)("actions.enable")),1)],10,d6)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-eb0977c9"]]),xc=ve(t.defineComponent({__name:"DeleteCustomPluginSchemaModal",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app))},plugin:{type:Object,required:!0}},emits:["closed","proceed"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),{getMessageFromError:a}=ge.useErrors(),{axiosInstance:s}=ge.useAxios(r.config?.axiosRequestConfig),l=t.computed(()=>u.value?i("delete.plugin_schema_in_use_title"):i("delete.title",{name:r.plugin?.name||i("delete.custom_plugin")})),c=t.ref(!1),d=t.ref(""),u=t.ref(!1),f=t.computed(()=>{const m=r.plugin.customPluginType;if(r.config.app==="konnect"){const g=m==="streaming"?Xe.select[r.config.app].streamingCustomPluginItem:m==="cloned"?Xe.customPlugin[r.config.app].cloned.edit:Xe.select[r.config.app].schemaCustomPluginItem;return`${r.config.apiBaseUrl}${g}`.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"").replace(/{pluginId}/gi,r.plugin.id)}if(r.config.app==="kongManager"&&m&&m!=="schema"){const g=m==="cloned"?Xe.customPlugin[r.config.app].cloned.edit:Xe.customPlugin[r.config.app].streamed.edit;return`${r.config.apiBaseUrl}${g}`.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"").replace(/{pluginId}/gi,r.plugin.id)}return null}),p=async()=>{if(c.value=!0,d.value="",!r.plugin?.name){c.value=!1;return}try{f.value&&await s.delete(f.value),o("proceed")}catch(m){aw(m)?u.value=!0:d.value=a(m)}finally{c.value=!1}};return(m,g)=>{const _=t.resolveComponent("KAlert"),h=t.resolveComponent("KButton"),y=t.resolveComponent("KModal");return!u.value&&e.plugin?(t.openBlock(),t.createBlock(t.unref(ge.EntityDeleteModal),{key:0,"action-pending":c.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:t.unref(i)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":t.unref(ge.EntityTypes).Plugin,error:d.value,"need-confirm":"",title:l.value,visible:"",onCancel:g[0]||(g[0]=w=>m.$emit("closed")),onProceed:p},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(t.openBlock(),t.createBlock(y,{key:1,"action-button-disabled":c.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",title:l.value,visible:"",onCancel:g[2]||(g[2]=w=>m.$emit("closed"))},{default:t.withCtx(()=>[t.createVNode(_,{appearance:"danger",message:t.unref(i)("delete.plugin_schema_in_use_message")},null,8,["message"])]),"footer-actions":t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(h,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:g[1]||(g[1]=w=>m.$emit("closed"))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):t.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9514182c"]]),_6={class:"custom-plugins-grid"},b6={class:"empty-state-title"},w6={class:"empty-state-description"},fm=310,k6=ve(t.defineComponent({__name:"PluginCustomGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},canCreateCustomPlugin:{type:Boolean,default:!1},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:s}=nt.usePluginHelpers(),l=t.ref(!0),c=k=>{o("plugin-clicked",k)},d=t.computed(()=>{const k=JSON.parse(JSON.stringify(r.pluginList))[W.PluginGroup.CUSTOM_PLUGINS]||[];return r.canCreateCustomPlugin&&r.navigateOnClick&&r.config.createCustomRoute?[{id:"custom-plugin-create",name:i("plugins.select.tabs.custom.create.name"),available:!0,group:W.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(k):k}),u=t.ref(!1),f=t.ref(null),p=k=>{u.value=!0,f.value={id:k.id,name:k.name,customPluginType:k.customPluginType}},m=k=>{k&&(o("revalidate"),o("delete:success",f.value?.name||"")),u.value=!1,f.value=null},g=t.ref(fm),_=t.ref(null),h=t.ref(null),y=t.computed(()=>l.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),w=t.ref(!1),b=()=>{g.value=Math.max(a(h.value),fm),E()},E=()=>{h.value?.length&&(w.value=s(_.value,h.value?.length))};return t.onMounted(async()=>{await t.nextTick(),g.value=Math.max(a(h.value),fm),E(),window?.addEventListener("resize",b)}),t.onUnmounted(()=>{window?.removeEventListener("resize",b)}),(k,N)=>{const T=t.resolveComponent("KEmptyState"),x=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock("div",_6,[d.value.length?(t.openBlock(),t.createBlock(x,{key:1,modelValue:l.value,"onUpdate:modelValue":N[0]||(N[0]=B=>l.value=B),class:"custom-plugins-collapse","data-testid":`${t.unref(W.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:t.unref(W.PluginGroup).CUSTOM_PLUGINS,"trigger-label":l.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(y.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(B,O)=>(t.openBlock(),t.createBlock(um,{key:`plugin-card-${O}`,ref_for:!0,ref_key:"pluginCardRef",ref:h,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:B,onCustomPluginDelete:A=>p(B),onPluginClicked:c},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[w.value?void 0:{name:"trigger",fn:t.withCtx(()=>[N[2]||(N[2]=t.createTextVNode(" ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(t.openBlock(),t.createBlock(T,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",b6,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",w6,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),u.value&&f.value?(t.openBlock(),t.createBlock(xc,{key:2,config:e.config,plugin:f.value,onClosed:m,onProceed:N[1]||(N[1]=B=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-909f4d5f"]]),pm=310,z0=ve(t.defineComponent({__name:"PluginSelectGroup",props:t.mergeModels({config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},name:{type:String,required:!0},plugins:{type:Array,required:!0},navigateOnClick:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:t.mergeModels(["plugin-clicked","delete:success"],["update:modelValue"]),setup(e,{emit:n}){const r=t.useModel(e,"modelValue"),o=e,i=n,{i18n:{t:a}}=nt.useI18n(),{getTallestPluginCardHeight:s,getToggleVisibility:l}=nt.usePluginHelpers(),c=t.ref(pm),d=t.ref(null),u=t.ref(null),f=t.computed(()=>r.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=t.ref(!1),m=t.ref(!1),g=t.ref(null),_=b=>{m.value=!0,g.value={id:b.id,name:b.name,customPluginType:b.customPluginType}},h=b=>{b&&i("delete:success",g.value?.name||""),m.value=!1,g.value=null},y=()=>{c.value=Math.max(s(u.value),pm),w()},w=()=>{u.value?.length&&(p.value=l(d.value,u.value?.length))};return t.onMounted(async()=>{await t.nextTick(),c.value=Math.max(s(u.value),pm),w(),window?.addEventListener("resize",y)}),t.onUnmounted(()=>{window?.removeEventListener("resize",y)}),(b,E)=>{const k=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(k,{modelValue:r.value,"onUpdate:modelValue":E[0]||(E[0]=N=>r.value=N),class:"plugins-collapse","data-testid":`${o.name}-collapse`,title:o.name,"trigger-label":r.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(f.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.plugins,N=>(t.openBlock(),t.createBlock(um,{key:`plugin-card-${N.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:u,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:N,onCustomPluginDelete:T=>_(N),onPluginClicked:T=>i("plugin-clicked",N)},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:t.withCtx(()=>[E[2]||(E[2]=t.createTextVNode(" ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"]),m.value&&g.value?(t.openBlock(),t.createBlock(xc,{key:0,config:e.config,plugin:g.value,onClosed:h,onProceed:E[1]||(E[1]=N=>h(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-7f683497"]]),C6={class:"plugin-select-grid"},E6={class:"empty-state-title"},N6={class:"empty-state-description"},mm=t.defineComponent({__name:"PluginSelectGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1},highlightedPlugins:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""},hideHighlightedPlugins:{type:Boolean,default:!1}},emits:["plugin-clicked","delete:success"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),a=t.ref(!1),s=t.ref(Uf.reduce((d,u)=>(d[u]=!1,d),{})),l=d=>{o("plugin-clicked",d)},c=t.computed(()=>{const d=JSON.parse(JSON.stringify(r.pluginList));return r.config.app==="konnect"&&delete d[W.PluginGroup.CUSTOM_PLUGINS],d});return(d,u)=>{const f=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",C6,[Object.keys(c.value).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(f,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",E6,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",N6,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!r.hideHighlightedPlugins&&r.highlightedPlugins.length>0?(t.openBlock(),t.createBlock(z0,{key:1,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=p=>a.value=p),"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:r.highlightedPluginsTitle||t.unref(i)("plugins.select.highlighted_plugins.title"),"navigate-on-click":e.navigateOnClick,plugins:r.highlightedPlugins,"onDelete:success":u[1]||(u[1]=p=>o("delete:success",p)),onPluginClicked:u[2]||(u[2]=p=>l(p))},null,8,["modelValue","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","navigate-on-click","plugins"])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Uf),p=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[c.value[p]?(t.openBlock(),t.createElementBlock("div",{key:p},[t.createVNode(z0,{modelValue:s.value[p],"onUpdate:modelValue":m=>s.value[p]=m,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:p,"navigate-on-click":e.navigateOnClick,plugins:c.value[p]||[],"onDelete:success":u[3]||(u[3]=m=>o("delete:success",m)),onPluginClicked:u[4]||(u[4]=m=>l(m))},null,8,["modelValue","onUpdate:modelValue","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","navigate-on-click","plugins"])])):t.createCommentVNode("",!0)],64))),256))])}}}),S6={class:"kong-ui-entities-plugin-select-form"},A6={class:"plugins-filter-input-container"},x6={key:0},I6={key:3,"aria-live":"polite",class:"plugins-results-container"},v6={"data-testid":"kong-tab"},T6={class:"tab-description"},O6={"data-testid":"custom-tab"},B6={class:"tab-description"},P6={key:1},V6=ve(t.defineComponent({__name:"PluginSelect",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="kongManager"&&!e.workspace||e.app==="konnect"&&(!e.controlPlaneId||e.workspace)||!e.getCreateRoute)},customPluginSupport:{type:[String,Array],default:"none"},canCreateCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteCustomPlugin:{type:Function,required:!1,default:async()=>!0},canReadCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteClonedPlugin:{type:Function,required:!1},canReadClonedPlugin:{type:Function,required:!1,default:async()=>!0},canEditCustomPlugin:{type:Function,required:!1,default:async()=>!0},canEditClonedPlugin:{type:Function,required:!1},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}){const r=e,o=n,i=gr.useRoute(),a=gr.useRouter(),{i18n:{t:s}}=nt.useI18n(),{pluginMetaData:l}=nt.usePluginMetaData(),{getMessageFromError:c}=ge.useErrors(),{sortAlpha:d,objectsAreEqual:u}=ge.useHelpers(),f=t.ref(""),p=t.ref(!0),m=t.ref(!1),g=t.ref(""),_=t.ref(""),h=t.ref([]),y=t.ref([]),w=t.ref([]),b=t.ref({}),E=t.ref([]),k=t.ref(null),N=t.ref(!1),{axiosInstance:T}=ge.useAxios(r.config?.axiosRequestConfig),x=ie=>ie==="none"||ie==="disabled"?new Set:new Set(Array.isArray(ie)?ie:[ie]),B=t.computed(()=>x(r.customPluginSupport)),O=t.computed(()=>[...B.value].sort().join("|")),A=t.computed(()=>r.customPluginSupport==="disabled"),I=t.computed(()=>A.value||B.value.size>0),V=t.computed(()=>B.value.has("streaming")),L=t.computed(()=>B.value.has("cloned")),R=ie=>Yo.isAxiosError(ie)&&ie.code==="ERR_CANCELED",Z=ie=>c(ie).toLowerCase().includes("requires a license"),ee=t.computed(()=>b.value?Object.entries(b.value).filter(([ie])=>ie!==W.PluginGroup.CUSTOM_PLUGINS).reduce((ie,[,ye])=>{for(const Q of ye??[])ie[Q.id]=Q;return ie},{}):{}),j=t.computed(()=>{if(!b.value)return{};const ie=f.value.toLowerCase(),ye=JSON.parse(JSON.stringify(b.value));for(const Q in b.value){const z=b.value[Q]?.filter(Y=>Y.name.toLowerCase().includes(ie)||Y.id.toLowerCase().includes(ie)||Y.group.toLowerCase().includes(ie)||Y.clonedFromRef?.toLowerCase().includes(ie)||Y.customPluginType?.toLowerCase().includes(ie))||[];z.length?ye[Q]=z:delete ye[Q]}return ye}),G=t.computed(()=>r.highlightedPluginIds.reduce((ie,ye)=>{const Q=ee.value[ye];return Q&&ie.push(Q),ie},[])),$=t.computed(()=>Object.keys(j.value).length>0),pe=t.computed(()=>Object.keys(b.value).length>0&&!$.value),de=t.computed(()=>r.config.app!=="konnect"||!I.value?[]:[{hash:"#kong",title:s("plugins.select.tabs.kong.title")},{hash:"#custom",title:s("plugins.select.tabs.custom.title"),disabled:A.value}]),M=t.computed(()=>{let ie=de.value.length&&(i?.hash||de.value[0]?.hash)||"";return ie==="#custom"&&A.value&&(ie="#kong"),ie}),ue=()=>{const ie=new Map(w.value.map(z=>[z.name,z])),ye=new Set(y.value.map(z=>z.name)),Q=new Set([...ye,...ie.keys()]);return[...new Set([...Object.keys({...r.availableOnServer?{}:l}),...h.value,...Q])].filter(z=>!r.ignoredPlugins.includes(z)).filter(z=>{if(!r.config.entityType)return z;const Y=ie.has(z)?ie.get(z).ref:z;return r.config.entityType==="services"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.SERVICE)||r.config.entityType==="routes"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.ROUTE)||r.config.entityType==="consumer_groups"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.CONSUMER_GROUP)||r.config.entityType==="consumers"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.CONSUMER)?!1:z}).reduce((z,Y)=>{const me=l[Y]&&l[Y].name||Y,_e=ie.get(Y),Le=ye.has(Y),De={...l[Y],id:Y,name:me,available:h.value.includes(Y)||!!_e||Le,disabledMessage:"",group:l[Y]?.group||W.PluginGroup.CUSTOM_PLUGINS};De.group===W.PluginGroup.CUSTOM_PLUGINS&&(_e?(De.customPluginType="cloned",De.clonedFromRef=_e.ref):Le?De.customPluginType="streaming":De.customPluginType="schema"),r.disabledPlugins&&(De.disabledMessage=r.disabledPlugins[Y]);const it=De.group||s("plugins.select.misc_plugins");let q=z[it];return q||(q=[]),q.push(De),q.sort(d("name")),z[it]=q,z},{})},ne=t.computed(()=>{let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].availablePlugins}`;if(r.config.app==="konnect")ie=ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"");else if(r.config.app==="kongManager"&&r.config.gatewayInfo?.edition==="community")return`${r.config.apiBaseUrl}${Xe.select[r.config.app].availablePluginsForOss}`;return ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}),ae=t.computed(()=>{if(V.value){let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].streamingCustomPlugins}`;return r.config.app==="konnect"?ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}return null}),ze=t.computed(()=>{if(L.value){let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].clonedPlugins}`;return r.config.app==="konnect"?ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}return null}),Ie=t.computed(()=>{if(r.config.entityType&&r.config.entityId){let ie=`${r.config.apiBaseUrl}${Xe.list[r.config.app].forEntity}`;return r.config.app==="konnect"&&(ie=ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"")),ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"").replace(/{entityType}/gi,r.config.entityType||"").replace(/{entityId}/gi,r.config.entityId||"")}return""}),je=ie=>{a.replace({hash:ie,query:i.query})};t.watch(()=>r.disabledPlugins,(ie,ye)=>{!u(ie,ye)&&!p.value&&(b.value=ue())}),t.watch(()=>r.ignoredPlugins,(ie,ye)=>{!u(ie,ye)&&!p.value&&(b.value=ue())}),t.watch(p,ie=>{o("loading",ie)});const le=async ie=>{if(!Ie.value){E.value=[];return}try{const{data:{data:ye}}=await T.get(Ie.value,{signal:ie});ye?.length&&(E.value=ye.reduce((Q,z)=>(z.name&&Q.push(z.name),Q),[]))}catch(ye){R(ye)||(E.value=[])}},re=async ie=>{const ye=[];ae.value&&Re.value&&ye.push(Ll(T,ae.value,ie).then(Q=>{y.value=Q}).catch(Q=>{R(Q)||_.value||(_.value=c(Q)??s("plugins.select.tabs.custom.fetch_error"))})),ze.value&&Ae.value&&ye.push(Ll(T,ze.value,ie).then(Q=>{w.value=Q}).catch(Q=>{if(R(Q))return;const z=Z(Q);(z||!_.value)&&(_.value=z?s("plugins.select.tabs.custom.license_required"):c(Q)??s("plugins.select.tabs.custom.fetch_error"))})),ye.push(le(ie)),await Promise.allSettled(ye)},D=async()=>{k.value?.abort(),k.value=new AbortController,p.value=!0,m.value=!1,g.value="",_.value="",h.value=[],y.value=[],w.value=[],E.value=[];try{const{data:ie}=await T.get(ne.value,{signal:k.value.signal});if(r.config.app==="konnect"){const{names:ye}=ie;h.value=ye||[]}else if(r.config.app==="kongManager"){const{plugins:{available_on_server:ye}}=ie;h.value=ye?Object.keys(ye):[]}await re(k.value.signal),b.value=ue()}catch(ie){R(ie)||(m.value=!0,g.value=c(ie))}finally{k.value?.signal.aborted||(p.value=!1)}},te=t.ref(!1),fe=t.ref(!1),Ee=t.ref(!1),Re=t.ref(!1),Pe=t.ref(!1),ke=t.ref(!1),Ae=t.ref(!1),Ce=ie=>{y.value=y.value.filter(ye=>ye.name!==ie),w.value=w.value.filter(ye=>ye.name!==ie),b.value=ue(),o("delete-custom:success",ie)};t.onBeforeMount(async()=>{const[ie,ye,Q,z,Y,me,_e]=await Promise.all([r.canCreateCustomPlugin(),r.canEditCustomPlugin(),r.canDeleteCustomPlugin(),r.canReadCustomPlugin(),r.canEditClonedPlugin?r.canEditClonedPlugin():Promise.resolve(null),r.canDeleteClonedPlugin?r.canDeleteClonedPlugin():Promise.resolve(null),r.canReadClonedPlugin()]);te.value=ie,fe.value=ye,Ee.value=Q,Re.value=z,Pe.value=Y??ye,ke.value=me??Q,Ae.value=_e});const oe=t.useTemplateRef("filter-input");return t.onMounted(async()=>{N.value=!0,oe.value?.input?.focus(),await D()}),t.watch(()=>[r.config.app==="konnect"?r.config.controlPlaneId:void 0,r.config.workspace,r.config.entityType,r.config.entityId,r.config.app==="kongManager"?r.config.gatewayInfo?.edition:void 0,O.value,A.value],async()=>{N.value&&await D()}),t.onBeforeUnmount(()=>{k.value?.abort()}),(ie,ye)=>{const Q=t.resolveComponent("KInput"),z=t.resolveComponent("KSkeletonBox"),Y=t.resolveComponent("KSkeleton"),me=t.resolveComponent("KEmptyState"),_e=t.resolveComponent("KTooltip"),Le=t.resolveComponent("KAlert"),De=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",S6,[t.createElementVNode("div",A6,[t.createVNode(Q,{ref:"filter-input",modelValue:f.value,"onUpdate:modelValue":ye[0]||(ye[0]=it=>f.value=it),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:t.unref(s)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(t.openBlock(),t.createElementBlock("section",x6,[t.createVNode(z,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(Y,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(t.openBlock(),t.createBlock(me,{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})):pe.value&&f.value?(t.openBlock(),t.createBlock(me,{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(s)("search.no_results",{filter:f.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",I6,[de.value.length?(t.openBlock(),t.createBlock(De,{key:0,modelValue:M.value,"onUpdate:modelValue":ye[3]||(ye[3]=it=>M.value=it),"data-testid":"plugins-tabs",tabs:de.value,onChange:je},t.createSlots({kong:t.withCtx(()=>[t.createElementVNode("div",v6,[t.createElementVNode("p",T6,t.toDisplayString(t.unref(s)("plugins.select.tabs.kong.description")),1),t.createVNode(mm,{"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"hide-highlighted-plugins":f.value.length>0,"highlighted-plugins":G.value,"highlighted-plugins-title":r.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[1]||(ye[1]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:t.withCtx(()=>[t.createElementVNode("div",O6,[t.renderSlot(ie.$slots,"before-custom-tab-content",{},void 0,!0),t.createElementVNode("p",B6,t.toDisplayString(t.unref(s)("plugins.select.tabs.custom.description")),1),_.value?(t.openBlock(),t.createBlock(Le,{key:0,appearance:"warning",class:"custom-plugins-warning",message:_.value},null,8,["message"])):t.createCommentVNode("",!0),t.createVNode(k6,{"can-create-custom-plugin":te.value,"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[2]||(ye[2]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-create-custom-plugin","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin-list"])])]),_:2},[A.value?{name:"custom-anchor",fn:t.withCtx(()=>[t.createVNode(_e,{"max-width":"300",text:t.unref(s)("plugins.select.tabs.custom.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(s)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(t.openBlock(),t.createElementBlock("div",P6,[_.value?(t.openBlock(),t.createBlock(Le,{key:0,appearance:"warning",class:"custom-plugins-warning",message:_.value},null,8,["message"])):t.createCommentVNode("",!0),t.createVNode(mm,{"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"hide-highlighted-plugins":f.value.length>0,"highlighted-plugins":G.value,"highlighted-plugins-title":r.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[4]||(ye[4]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])]))]))])}}}),[["__scopeId","data-v-40b228cd"]]),$6=0,R6=1e3,L6=2e3,F6=3e3,D6=4e3,H0=e=>/[a-z0-9]/i.test(e);function M6(e){const n=[];for(let r=0;r<e.length;r++)H0(e[r])&&(r===0||!H0(e[r-1]))&&n.push({char:e[r],index:r});return n}function W0(e,n){const r=[];let o=0;for(const i of e){for(;o<n.length&&n[o]!==i;)o++;if(o>=n.length)return null;r.push(o),o++}return r}function U6(e,n,r){const o=e.toLowerCase();if(!o)return{matched:!0,indices:[],score:0};const i=n.toLowerCase(),a=(u,f)=>Array.from({length:f},(p,m)=>u+m);if(i.startsWith(o))return{matched:!0,indices:a(0,o.length),score:$6};const s=M6(i),l=W0(o,s.map(u=>u.char));if(l){const u=l.map(f=>s[f].index);return{matched:!0,indices:u,score:R6+u[0]}}const c=i.indexOf(o);if(c>=0)return{matched:!0,indices:a(c,o.length),score:L6+c};const d=W0(o,i.split(""));return d?{matched:!0,indices:d,score:F6+d[0]}:r&&r.toLowerCase().startsWith(o)?{matched:!0,indices:[],score:D6}:{matched:!1,indices:[],score:1/0}}function j6(e,n=[]){if(!n.length)return e?[{text:e,highlighted:!1}]:[];const r=new Set(n),o=[];let i="",a=r.has(0);for(let s=0;s<e.length;s++){const l=r.has(s);l!==a&&i&&(o.push({text:i,highlighted:a}),i=""),a=l,i+=e[s]}return i&&o.push({text:i,highlighted:a}),o}function K6(e){const n=Date.now(),r=2688*60*60*1e3;return Math.abs(n-e)<=r}const q6={key:0,class:"highlighted-match"},Y0=ve(t.defineComponent({__name:"HighlightedText",props:{text:{},indices:{}},setup(e){const n=e,r=t.computed(()=>j6(n.text,n.indices));return(o,i)=>(t.openBlock(),t.createElementBlock("span",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.value,(a,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:s},[a.highlighted?(t.openBlock(),t.createElementBlock("span",q6,t.toDisplayString(a.text),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(a.text),1)],64))],64))),128))]))}}),[["__scopeId","data-v-91ae2f75"]]),G6={class:"plugin-select-card-wrapper","data-testid":"plugin-catalog-card-wrapper"},z6={class:"plugin-card-header"},H6={class:"plugin-card-title"},W6={key:0,class:"plugin-card-actions"},Y6=["data-testid","title"],J6={key:0},X6=["title"],Z6={class:"plugin-card-footer"},Q6={class:"plugin-card-footer-extra"},e5={key:0,class:"custom-plugin-badges"},t5=ve(t.defineComponent({__name:"PluginCatalogCard",props:{config:{},plugin:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["plugin-clicked","custom-plugin-delete"],setup(e,{emit:n}){const r=n,o=e,i=gr.useRouter(),{i18n:{t:a}}=nt.useI18n(),s=t.computed(()=>o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?o.plugin.clonedFromRef:o.plugin.id),l=t.computed(()=>!b.value||w.value?[]:o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?[a("plugins.select.cloned_from_badge",{link:o.plugin.clonedFromRef})]:o.plugin.customPluginType==="streaming"?[a("plugins.select.streamed_custom_badge")]:[a("plugins.select.installed_custom_badge")]),c=t.computed(()=>!!(!o.plugin.available||o.plugin.disabledMessage)),d=t.computed(()=>typeof o.config.getCustomEditRoute=="function"),u=t.computed(()=>o.plugin.customPluginType==="cloned"),f=t.computed(()=>u.value?!!o.canDeleteClonedPlugin:!!o.canDeleteCustomPlugin),p=t.computed(()=>u.value?!!o.canEditClonedPlugin:!!o.canEditCustomPlugin),m=t.computed(()=>!(o.config.app==="kongManager"&&o.plugin.customPluginType==="schema")),g=t.computed(()=>p.value&&d.value),_=t.computed(()=>f.value),h=t.computed(()=>!!(b.value&&!w.value&&m.value&&(_.value||g.value))),y=t.computed(()=>c.value?{}:b.value&&w.value&&o.config.createCustomRoute?o.config.createCustomRoute:o.config.getCreateRoute(o.plugin.id)),w=t.computed(()=>o.plugin.id==="custom-plugin-create"),b=t.computed(()=>o.plugin.group===W.PluginGroup.CUSTOM_PLUGINS),E=()=>{b.value&&r("custom-plugin-delete")},k=(N,T)=>{typeof o.config.getCustomEditRoute=="function"&&i.push(o.config.getCustomEditRoute(N,T))};return(N,T)=>{const x=t.resolveComponent("KButton"),B=t.resolveComponent("KDropdownItem"),O=t.resolveComponent("KDropdownMenu"),A=t.resolveComponent("KBadge"),I=t.resolveComponent("RouterLink"),V=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",G6,[t.createVNode(V,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createVNode(I,{class:t.normalizeClass(["plugin-select-card",{disabled:c.value}]),"data-testid":`${e.plugin.id}-card`,to:y.value},{default:t.withCtx(()=>[t.createElementVNode("div",z6,[t.createElementVNode("div",H6,[t.createVNode(t.unref(mr.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:s.value,size:55},null,8,["alt","name"]),t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!b.value})},[t.createVNode(Y0,{indices:e.plugin.matchedIndices,text:e.plugin.name},null,8,["indices","text"])],2)]),h.value?(t.openBlock(),t.createElementBlock("div",W6,[t.createVNode(O,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150",onClick:T[1]||(T[1]=t.withModifiers(()=>{},["stop","prevent"]))},{default:t.withCtx(()=>[t.createVNode(x,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[g.value?(t.openBlock(),t.createBlock(B,{key:0,"data-testid":"edit-plugin-schema",onClick:T[0]||(T[0]=t.withModifiers(L=>k(e.plugin.name,e.plugin.customPluginType),["stop","prevent"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),_.value?(t.openBlock(),t.createBlock(B,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":g.value,onClick:t.withModifiers(E,["stop","prevent"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["has-divider"])):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:"plugin-card-body","data-testid":`${e.plugin.id}-card-body`,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip")},[e.plugin.description?(t.openBlock(),t.createElementBlock("div",J6,[t.createElementVNode("div",{title:e.plugin.description},t.toDisplayString(e.plugin.description),9,X6)])):t.createCommentVNode("",!0)],8,Y6),t.createElementVNode("div",Z6,[t.createElementVNode("div",null,t.toDisplayString(w.value?t.unref(a)("actions.create_custom"):t.unref(a)("actions.configure")),1),t.createElementVNode("div",Q6,[l.value.length?(t.openBlock(),t.createElementBlock("div",e5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,L=>(t.openBlock(),t.createBlock(A,{key:L,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(L),1)]),_:2},1024))),128))])):t.createCommentVNode("",!0),t.renderSlot(N.$slots,"footer-extra",{},void 0,!0)])])]),_:3},8,["class","data-testid","to"])]),_:3},8,["text"])])}}}),[["__scopeId","data-v-9025e247"]]),n5=["data-testid"],r5={class:"group-icon-wrapper"},o5={class:"group-title-text"},i5=["data-testid"],a5=["data-testid"],J0=ve(t.defineComponent({__name:"PluginCatalogGroup",props:{config:{},name:{},plugins:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean},showAllCard:{type:Boolean}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:n}){const r=e,o=t.computed(()=>{switch(r.name){case W.PluginGroup.FEATURED:return Ne.PopularIcon;case W.PluginGroup.AI:return Ne.BotIcon;case W.PluginGroup.ANALYTICS_AND_MONITORING:return Ne.AnalyticsIcon;case W.PluginGroup.AUTHENTICATION:return Ne.LockIcon;case W.PluginGroup.LOGGING:return Ne.ServiceDocumentIcon;case W.PluginGroup.MONETIZATION:return Ne.MoneyIcon;case W.PluginGroup.SECURITY:return Ne.SecurityIcon;case W.PluginGroup.SERVERLESS:return Ne.RuntimeServerlessIcon;case W.PluginGroup.TRAFFIC_CONTROL:return Ne.TrafficIcon;case W.PluginGroup.TRANSFORMATIONS:return Ne.TransformationIcon;case W.PluginGroup.DEPLOYMENT:return Ne.DeployIcon;case W.PluginGroup.CUSTOM_PLUGINS:return Ne.CodeblockIcon;default:return null}}),i=n,{i18n:{t:a}}=nt.useI18n(),s=t.ref(!1),l=t.computed(()=>r.showAllCard?r.plugins:!s.value&&r.plugins.length>9?r.plugins.slice(0,8):r.plugins),c=t.computed(()=>!r.showAllCard&&!s.value&&r.plugins.length>9);function d(){s.value=!0}const u=t.ref(!1),f=t.ref(null),p=g=>{u.value=!0,f.value={id:g.id,name:g.name,group:g.group,customPluginType:g.customPluginType}},m=g=>{g&&(i("revalidate"),i("delete:success",{name:f.value?.name||"",group:f.value?.group,customPluginType:f.value?.customPluginType})),u.value=!1,f.value=null};return(g,_)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[e.name?(t.openBlock(),t.createElementBlock("div",{key:0,class:"group-title","data-testid":`plugin-group-${e.name}-title`},[t.createElementVNode("div",r5,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.value),{color:`var(--kui-color-text-decorative-purple, ${t.unref(Xh)})`},null,8,["color"]))]),t.createElementVNode("span",o5,t.toDisplayString(e.name),1)],8,n5)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"plugin-card-container","data-testid":`plugin-group-${e.name}`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,h=>(t.openBlock(),t.createBlock(t5,{key:`plugin-card-${h.id}`,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,plugin:h,onCustomPluginDelete:y=>p(h),onPluginClicked:y=>i("plugin-clicked",h)},t.createSlots({_:2},[h.gatewayVersion&&t.unref(K6)(t.unref(W.GATEWAY_VERSION_TIMESTAMP_MAP)[h.gatewayVersion])?{name:"footer-extra",fn:t.withCtx(()=>[t.createElementVNode("span",{class:"plugin-card-new-badge","data-testid":`plugin-card-${h.id}-new-badge`},t.toDisplayString(t.unref(a)("labels.new")),9,a5)]),key:"0"}:void 0]),1032,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin","onCustomPluginDelete","onPluginClicked"]))),128)),c.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"show-all-plugin-card",onClick:d},t.toDisplayString(t.unref(a)("plugins.select.show_all")),1)):t.createCommentVNode("",!0)],8,i5),u.value&&f.value?(t.openBlock(),t.createBlock(xc,{key:1,config:e.config,plugin:f.value,onClosed:m,onProceed:_[0]||(_[0]=h=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-f9a9a47c"]]),s5={class:"plugin-select-grid"},l5={class:"empty-state-title"},c5={class:"empty-state-description"},d5={key:1},u5=ve(t.defineComponent({__name:"PluginCatalogGrid",props:{config:{},pluginList:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["plugin-clicked","delete:success"],setup(e,{emit:n}){const r=Vl.concat($l),o=n,{i18n:{t:i}}=nt.useI18n(),a=s=>{o("plugin-clicked",s)};return(s,l)=>{const c=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",s5,[Object.keys(e.pluginList||[]).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(c,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",l5,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",c5,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(r),d=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[e.pluginList?.[d]?(t.openBlock(),t.createElementBlock("div",{key:d},[t.createVNode(J0,{"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:d,plugins:e.pluginList[d]||[],"onDelete:success":l[0]||(l[0]=u=>o("delete:success",u)),onPluginClicked:l[1]||(l[1]=u=>a(u))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","plugins"])])):t.createCommentVNode("",!0)],64))),256)),e.pluginList?.["Query Result"]?(t.openBlock(),t.createElementBlock("div",d5,[t.createVNode(J0,{"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,plugins:e.pluginList["Query Result"]||[],"show-all-card":"","onDelete:success":l[2]||(l[2]=d=>o("delete:success",d)),onPluginClicked:l[3]||(l[3]=d=>a(d))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugins"])])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-e3bf3819"]]),f5={class:"plugin-name-cell","data-testid":"plugin-catalog-list-view-name"},p5=["title"],m5=["title"],g5={class:"plugin-action-cell","data-testid":"plugin-catalog-list-view-action"},h5={key:0,class:"plugin-more-action-cell","data-testid":"plugin-catalog-list-view-more-actions"},y5=ve(t.defineComponent({__name:"PluginCatalogListView",props:{config:{},pluginList:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["revalidate","delete:success"],setup(e,{emit:n}){const r=n,o=e,{i18n:{t:i}}=nt.useI18n(),a=O=>O.customPluginType==="cloned"&&O.clonedFromRef?i("plugins.select.cloned_from_badge",{link:O.clonedFromRef}):O.customPluginType==="streaming"?i("plugins.select.streamed_custom_badge"):O.customPluginType?i("plugins.select.installed_custom_badge"):"",s=t.computed(()=>N.value.some(O=>b(O.plugin))),l=t.computed(()=>{const O=[{key:"name",label:i("plugins.select.list.table_headers.name"),sortable:!0},{key:"description",label:i("plugins.select.list.table_headers.description")},{key:"action",hideLabel:!0}];return s.value&&O.push({key:"more-actions",hideLabel:!0}),O}),c=t.computed(()=>{if(!o.pluginList)return[];const O=Object.values(o.pluginList).flat();return Array.from(new Map(O.map(I=>[I.id,I])).values()).map(I=>({id:I.id,name:I.name,description:I.description,badge:a(I),plugin:I}))}),d=t.ref(0),u=t.ref(10),f=t.ref(1),p=t.ref(c.value),m=t.ref(!1),g=t.ref(null),_=O=>O.customPluginType==="cloned"&&O.clonedFromRef?O.clonedFromRef:O.id,h=O=>O?.customPluginType==="cloned",y=O=>!O?.customPluginType||o.config.app==="kongManager"&&O.customPluginType==="schema"?!1:h(O)?!!o.canDeleteClonedPlugin:!!o.canDeleteCustomPlugin,w=O=>!O?.customPluginType||typeof o.config.getCustomEditRoute!="function"||o.config.app==="kongManager"&&O.customPluginType==="schema"?!1:h(O)?!!o.canEditClonedPlugin:!!o.canEditCustomPlugin,b=O=>y(O)||w(O),E=O=>{m.value=!0,g.value={id:O.id,name:O.name,group:O.group,customPluginType:O.customPluginType}},k=O=>{O&&(r("revalidate"),r("delete:success",{name:g.value?.name||"",group:g.value?.group,customPluginType:g.value?.customPluginType})),m.value=!1,g.value=null},N=t.computed(()=>{const O=p.value.length,A=Math.max(1,Math.ceil(O/u.value)),V=(Math.min(f.value,A)-1)*u.value;return p.value.slice(V,V+u.value)});t.watch(c,()=>{p.value=[...c.value],f.value=1,d.value++});const T=({page:O})=>{f.value=O},x=({pageSize:O})=>{u.value=O},B=O=>{const{sortColumnKey:A,sortColumnOrder:I}=O;A==="name"&&(p.value=[...p.value].sort((V,L)=>{const R=(V[A]||"").toLowerCase(),Z=(L[A]||"").toLowerCase();return R<Z?I==="asc"?-1:1:R>Z?I==="asc"?1:-1:0}))};return(O,A)=>{const I=t.resolveComponent("KBadge"),V=t.resolveComponent("KButton"),L=t.resolveComponent("KDropdownItem"),R=t.resolveComponent("KDropdown"),Z=t.resolveComponent("KTableView"),ee=t.resolveComponent("KCard");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(ee,{"data-testid":"plugin-catalog-list-view-card"},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(Z,{key:d.value,class:"plugin-catalog-table","client-sort":"",data:N.value,"data-testid":"plugin-catalog-list-view-table",headers:l.value,"pagination-attributes":{totalCount:c.value.length,currentPage:f.value,initialPageSize:u.value,pageSizes:[10,25,50]},"resize-columns":"","row-key":"id",onPageChange:T,onPageSizeChange:x,onSort:B},{name:t.withCtx(({row:j})=>[t.createElementVNode("span",f5,[t.createVNode(t.unref(mr.PluginIcon),{"data-testid":`plugin-catalog-list-view-${j.plugin.id}-icon`,name:_(j.plugin),size:20},null,8,["data-testid","name"]),t.createElementVNode("span",{class:"plugin-name-text","data-testid":"plugin-catalog-list-view-name-text",title:j.name},[t.createVNode(Y0,{indices:j.plugin?.matchedIndices,text:j.name},null,8,["indices","text"])],8,p5),j.badge?(t.openBlock(),t.createBlock(I,{key:0,appearance:"info",class:"plugin-name-badge","data-testid":"plugin-catalog-list-view-custom-badge"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(j.badge),1)]),_:2},1024)):t.createCommentVNode("",!0)])]),description:t.withCtx(({row:j})=>[t.createElementVNode("span",{class:"plugin-description-cell","data-testid":"plugin-catalog-list-view-description",title:j.description},t.toDisplayString(j.description),9,m5)]),action:t.withCtx(({row:j})=>[t.createElementVNode("div",g5,[t.createVNode(V,{appearance:"tertiary","data-testid":"plugin-catalog-list-view-configure-btn",size:"small",to:o.config.getCreateRoute(j.id)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.configure")),1)]),_:1},8,["to"])])]),"more-actions":t.withCtx(({row:j})=>[b(j.plugin)?(t.openBlock(),t.createElementBlock("div",h5,[t.createVNode(R,{appearance:"tertiary",class:"actions-trigger","data-testid":"plugin-catalog-list-view-more-actions-button",icon:"",size:"small"},{items:t.withCtx(()=>[w(j.plugin)?(t.openBlock(),t.createBlock(L,{key:0,"data-testid":"edit-plugin-schema",item:{label:t.unref(i)("actions.edit"),to:e.config.getCustomEditRoute?.(j.plugin.name,j.plugin.customPluginType)}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.edit")),1)]),_:1},8,["item"])):t.createCommentVNode("",!0),y(j.plugin)?(t.openBlock(),t.createBlock(L,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":w(j.plugin),onClick:()=>E(j.plugin)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.delete")),1)]),_:1},8,["has-divider","onClick"])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["color","size"])]),_:2},1024)])):t.createCommentVNode("",!0)]),_:1},8,["data","headers","pagination-attributes"]))]),_:1}),m.value&&g.value?(t.openBlock(),t.createBlock(xc,{key:0,config:e.config,plugin:g.value,onClosed:k,onProceed:A[0]||(A[0]=j=>k(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-49cad2d2"]]),_5={class:"plugin-catalog","data-testid":"plugin-catalog"},b5={class:"plugin-filter","data-testid":"plugin-filter"},w5={class:"plugin-filter-title"},k5={class:"featured-title"},C5={class:"plugin-featured-filter"},E5=["data-testid"],N5={class:"group-title"},S5={class:"plugin-type-filter"},A5=["data-testid"],x5={class:"plugins-container"},I5={class:"plugins-filter-input-container"},v5={class:"icon-container"},T5={key:0},O5={key:3,"aria-live":"polite",class:"plugins-results-container"},B5=ve(t.defineComponent({__name:"PluginCatalog",props:{config:{},ignoredPlugins:{default:()=>[]},disabledPlugins:{},highlightedPluginIds:{},customPluginSupport:{default:"none"},availableOnServer:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Function,default:async()=>!0},canReadCustomPlugin:{type:Function,default:async()=>!0},canEditCustomPlugin:{type:Function,default:async()=>!0},canDeleteClonedPlugin:{},canReadClonedPlugin:{type:Function,default:async()=>!0},canEditClonedPlugin:{}},emits:["loading","plugin-clicked","delete-custom:success"],setup(e,{emit:n}){const r=n,{i18n:{t:o}}=nt.useI18n(),{pluginMetaData:i}=nt.usePluginMetaData(),{getMessageFromError:a}=ge.useErrors(),{sortAlpha:s,objectsAreEqual:l}=ge.useHelpers(),c=e,{axiosInstance:d}=ge.useAxios(c.config?.axiosRequestConfig),u=t.useTemplateRef("filter-input"),f=t.ref(""),p=t.ref(!1),m=t.ref(!1),g=t.ref(Object.fromEntries(Vl.concat($l).map(oe=>[oe,!1]))),_=t.ref(!0),h=t.ref(!1),y=t.ref(""),w=t.ref(""),b=t.ref([]),E=t.ref([]),k=t.ref([]),N=t.ref({}),T=t.ref([]),x=t.ref(!1),B=t.ref(null),O=t.ref(!1),A=t.computed(()=>x.value?Ne.GridIcon:Ne.ListIcon),I=t.inject(kn.KM_2485_CLONED_PLUGINS,!1),V=t.computed(()=>t.unref(I)),L=oe=>oe==="none"||oe==="disabled"?new Set:new Set(Array.isArray(oe)?oe:[oe]),R=t.computed(()=>L(c.customPluginSupport)),Z=t.computed(()=>[...R.value].sort().join("|")),ee=t.computed(()=>R.value.has("streaming")),j=t.computed(()=>V.value&&R.value.has("cloned")),G=oe=>Yo.isAxiosError(oe)&&oe.code==="ERR_CANCELED",$=oe=>a(oe).toLowerCase().includes("requires a license"),pe=t.computed(()=>{let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].availablePlugins}`;if(c.config.app==="konnect")oe=oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||"");else if(c.config.app==="kongManager"&&c.config.gatewayInfo?.edition==="community")return`${c.config.apiBaseUrl}${Xe.select[c.config.app].availablePluginsForOss}`;return oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}),de=t.computed(()=>{if(ee.value){let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].streamingCustomPlugins}`;return c.config.app==="konnect"?oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||""):oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}return null}),M=t.computed(()=>{if(j.value){let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].clonedPlugins}`;return c.config.app==="konnect"?oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||""):oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}return null}),ue=t.computed(()=>{if(c.config.entityType&&c.config.entityId){let oe=`${c.config.apiBaseUrl}${Xe.list[c.config.app].forEntity}`;return c.config.app==="konnect"&&(oe=oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||"")),oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"").replace(/{entityType}/gi,c.config.entityType||"").replace(/{entityId}/gi,c.config.entityId||"")}return""}),ne=t.computed(()=>{if(!N.value)return{};const oe=Object.entries(g.value).filter(([,Y])=>Y).map(([Y])=>Y);let ie={};oe.length===0&&(ie=N.value),oe.forEach(Y=>{N.value[Y]&&(ie[Y]=N.value[Y])});const ye=f.value.toLowerCase();if(!ye)return ie;const Q=new Map;for(const Y of Object.values(ie))for(const me of Y??[]){if(Q.has(me.id))continue;const _e=U6(ye,me.name,me.id);_e.matched&&Q.set(me.id,{plugin:{...me,matchedIndices:_e.indices},score:_e.score})}const z=Array.from(Q.values()).sort((Y,me)=>Y.score-me.score||Y.plugin.name.localeCompare(me.plugin.name)).map(Y=>Y.plugin);return z.length?{"Query Result":z}:{}}),ae=t.computed(()=>Object.keys(ne.value).length>0),ze=t.computed(()=>Object.keys(N.value).length>0&&!ae.value),Ie=()=>{Object.keys(g.value).forEach(oe=>{g.value[oe]=!1})},je=()=>{const oe=new Map(k.value.map(z=>[z.name,z])),ie=new Set(E.value.map(z=>z.name)),ye=new Set([...ie,...oe.keys()]),Q=[...new Set([...Object.keys({...c.availableOnServer?{}:i}),...b.value,...ye])].filter(z=>!c.ignoredPlugins.includes(z)).filter(z=>{if(!c.config.entityType)return z;const Y=oe.has(z)?oe.get(z).ref:z;return c.config.entityType==="services"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.SERVICE)||c.config.entityType==="routes"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.ROUTE)||c.config.entityType==="consumer_groups"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.CONSUMER_GROUP)||c.config.entityType==="consumers"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.CONSUMER)?!1:z}).reduce((z,Y)=>{const me=i[Y]&&i[Y].name||Y,_e=oe.get(Y),Le=ie.has(Y),De={...i[Y],id:Y,name:me,available:b.value.includes(Y)||!!_e||Le,disabledMessage:"",group:i[Y]?.group||W.PluginGroup.CUSTOM_PLUGINS};De.group===W.PluginGroup.CUSTOM_PLUGINS&&(_e?(De.customPluginType="cloned",De.clonedFromRef=_e.ref):Le?De.customPluginType="streaming":De.customPluginType="schema"),c.disabledPlugins&&(De.disabledMessage=c.disabledPlugins[Y]);const it=De.group||o("plugins.select.misc_plugins");let q=z[it];return q||(q=[]),q.push(De),q.sort(s("name")),z[it]=q,z},{});if(c.highlightedPluginIds&&c.highlightedPluginIds.length>0){const z=new Set(Object.values(Q).flat().map(me=>me?.id)),Y=c.highlightedPluginIds.flatMap(me=>{const _e=i[me];return!_e||!z.has(me)?[]:{..._e,id:me,name:_e.name||me,available:b.value.includes(me),disabledMessage:c.disabledPlugins?.[me]||"",group:_e.group||W.PluginGroup.CUSTOM_PLUGINS}}).filter(Boolean);Y.length>0&&(Q[W.PluginGroup.FEATURED]=Y)}return Q};t.watch(()=>c.disabledPlugins,(oe,ie)=>{!l(oe||{},ie||{})&&!_.value&&(N.value=je())}),t.watch(()=>c.ignoredPlugins,(oe,ie)=>{!l(oe,ie)&&!_.value&&(N.value=je())}),t.watch(_,oe=>{r("loading",oe)});const le=t.ref(!1),re=t.ref(!1),D=t.ref(!1),te=t.ref(!1),fe=t.ref(!1),Ee=t.ref(!1),Re=async()=>{try{const[oe,ie,ye,Q,z,Y]=await Promise.all([c.canEditCustomPlugin(),c.canDeleteCustomPlugin(),c.canReadCustomPlugin(),c.canEditClonedPlugin?c.canEditClonedPlugin():Promise.resolve(null),c.canDeleteClonedPlugin?c.canDeleteClonedPlugin():Promise.resolve(null),c.canReadClonedPlugin()]);le.value=oe,re.value=ie,D.value=ye,te.value=Q??oe,fe.value=z??ie,Ee.value=Y}catch{le.value=!1,re.value=!1,D.value=!1,te.value=!1,fe.value=!1,Ee.value=!1}},Pe=async oe=>{if(!ue.value){T.value=[];return}try{const{data:{data:ie}}=await d.get(ue.value,{signal:oe});ie?.length&&(T.value=ie.reduce((ye,Q)=>(Q.name&&ye.push(Q.name),ye),[]))}catch(ie){G(ie)||(T.value=[])}},ke=async oe=>{const ie=[];de.value&&D.value&&ie.push(Ll(d,de.value,oe).then(ye=>{E.value=ye}).catch(ye=>{G(ye)||w.value||(w.value=a(ye)??o("plugins.select.tabs.custom.fetch_error"))})),M.value&&Ee.value&&ie.push(Ll(d,M.value,oe).then(ye=>{k.value=ye}).catch(ye=>{if(G(ye))return;const Q=$(ye);(Q||!w.value)&&(w.value=Q?o("plugins.select.tabs.custom.license_required"):a(ye)??o("plugins.select.tabs.custom.fetch_error"))})),ie.push(Pe(oe)),await Promise.allSettled(ie)},Ae=async()=>{B.value?.abort();const oe=new AbortController;B.value=oe,_.value=!0,h.value=!1,y.value="",w.value="",b.value=[],E.value=[],k.value=[],T.value=[];try{const{data:ie}=await d.get(pe.value,{signal:oe.signal});if(c.config.app==="konnect"){const{names:ye}=ie;b.value=ye||[]}else if(c.config.app==="kongManager"){const{plugins:{available_on_server:ye}}=ie;b.value=ye?Object.keys(ye):[]}await ke(oe.signal),N.value=je()}catch(ie){G(ie)||(h.value=!0,y.value=a(ie))}finally{B.value===oe&&!oe.signal.aborted&&(_.value=!1)}},Ce=async({name:oe})=>{oe&&(r("delete-custom:success",oe),await Ae())};return t.onMounted(async()=>{O.value=!0,u.value?.input?.focus(),await Re(),await Ae()}),t.watch(()=>[c.config.app==="konnect"?c.config.controlPlaneId:void 0,c.config.workspace,c.config.entityType,c.config.entityId,c.config.app==="kongManager"?c.config.gatewayInfo?.edition:void 0,Z.value,V.value],async()=>{O.value&&(await Re(),await Ae())}),t.onBeforeUnmount(()=>{B.value?.abort()}),(oe,ie)=>{const ye=t.resolveComponent("KButton"),Q=t.resolveComponent("KCheckbox"),z=t.resolveComponent("KBadge"),Y=t.resolveComponent("KCollapse"),me=t.resolveComponent("KInput"),_e=t.resolveComponent("KSkeletonBox"),Le=t.resolveComponent("KSkeleton"),De=t.resolveComponent("KEmptyState"),it=t.resolveComponent("KAlert");return t.openBlock(),t.createElementBlock("div",_5,[t.createElementVNode("div",b5,[t.createElementVNode("div",w5,[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.select.filter.title"))+" ",1),t.createVNode(ye,{appearance:"tertiary",class:"clear-selection","data-testid":"clear-filter-selection",disabled:!Object.values(g.value).some(q=>q),onClick:Ie},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.select.filter.clear")),1)]),_:1},8,["disabled"])]),t.createVNode(Y,{modelValue:p.value,"onUpdate:modelValue":ie[0]||(ie[0]=q=>p.value=q)},{title:t.withCtx(()=>[t.createElementVNode("div",k5,t.toDisplayString(t.unref(o)("plugins.select.filter.featured")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",C5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Vl),q=>(t.openBlock(),t.createElementBlock("div",{key:q,class:"plugin-filter-item","data-testid":`plugin-filter-item-${q}`},[t.createVNode(Q,{modelValue:g.value[q],"onUpdate:modelValue":se=>g.value[q]=se,label:q},null,8,["modelValue","onUpdate:modelValue","label"]),t.createVNode(z,{appearance:"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(N.value?.[q]?.length||0),1)]),_:2},1024)],8,E5))),128))])]),_:1},8,["modelValue"]),t.createVNode(Y,{modelValue:m.value,"onUpdate:modelValue":ie[1]||(ie[1]=q=>m.value=q)},{title:t.withCtx(()=>[t.createElementVNode("div",N5,t.toDisplayString(t.unref(o)("plugins.select.filter.type")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",S5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref($l),q=>(t.openBlock(),t.createElementBlock("div",{key:q,class:"plugin-filter-item","data-testid":`plugin-filter-item-${q}`},[t.createVNode(Q,{modelValue:g.value[q],"onUpdate:modelValue":se=>g.value[q]=se,"data-testid":`plugin-filter-checkbox-${q}`,label:q},null,8,["modelValue","onUpdate:modelValue","data-testid","label"]),t.createVNode(z,{appearance:"neutral","data-testid":`plugin-filter-count-${q}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(N.value?.[q]?.length||0),1)]),_:2},1032,["data-testid"])],8,A5))),128))])]),_:1},8,["modelValue"])]),t.createElementVNode("div",x5,[t.createElementVNode("div",I5,[t.createVNode(me,{ref:"filter-input",modelValue:f.value,"onUpdate:modelValue":ie[2]||(ie[2]=q=>f.value=q),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter-input",placeholder:t.unref(o)("search.placeholder.search_plugins"),type:"search"},null,8,["modelValue","placeholder"]),t.createElementVNode("div",v5,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(A.value),{class:"plugins-filter-icon",color:`var(--kui-icon-color-primary, ${t.unref(NS)})`,onClick:ie[3]||(ie[3]=q=>x.value=!x.value)},null,8,["color"]))])]),_.value?(t.openBlock(),t.createElementBlock("section",T5,[t.createVNode(_e,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(Le,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):h.value?(t.openBlock(),t.createBlock(De,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(y.value),1)]),_:1})):ze.value&&f.value?(t.openBlock(),t.createBlock(De,{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(o)("search.no_results",{filter:f.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",O5,[w.value?(t.openBlock(),t.createBlock(it,{key:0,appearance:"warning",class:"custom-plugins-warning",message:w.value},null,8,["message"])):t.createCommentVNode("",!0),x.value?(t.openBlock(),t.createBlock(y5,{key:1,"can-delete-cloned-plugin":fe.value,"can-delete-custom-plugin":re.value,"can-edit-cloned-plugin":te.value,"can-edit-custom-plugin":le.value,config:e.config,"plugin-list":ne.value,"onDelete:success":Ce},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin-list"])):(t.openBlock(),t.createBlock(u5,{key:2,"can-delete-cloned-plugin":fe.value,"can-delete-custom-plugin":re.value,"can-edit-cloned-plugin":te.value,"can-edit-custom-plugin":le.value,config:e.config,"plugin-list":ne.value,"onDelete:success":Ce,onPluginClicked:ie[4]||(ie[4]=q=>oe.$emit("plugin-clicked",q))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin-list"]))]))])])}}}),[["__scopeId","data-v-a7e2cc9c"]]),P5={key:1,class:"datakit-config-card-canvas"},V5={class:"config-card-details-label","data-testid":"datakit-configuration-label"},$5={class:"config-card-details-value datakit-canvas-container","data-testid":"datakit-configuration-canvas"},R5={class:"canvas-wrapper"},L5=ve(t.defineComponent({__name:"DatakitConfigCardCanvas",props:{pluginData:{},item:{},schema:{}},setup(e){const n=t.computed(()=>B0.safeParse(e.pluginData?.config).success);return Lf(e.pluginData,{enableCallErrorHandling:g0(e.schema)}),(r,o)=>{const i=t.resolveComponent("KLabel");return n.value?(t.openBlock(),t.createElementBlock("div",P5,[t.createElementVNode("div",V5,[t.createVNode(i,null,{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",{class:"label-content"}," Nodes ",-1)])]),_:1})]),t.createElementVNode("div",$5,[t.createElementVNode("div",R5,[t.createVNode(em,{class:"datakit-flow-panels",mode:"view",resizable:""})])])])):(t.openBlock(),t.createBlock(t.unref(ge.ConfigCardItem),{key:0,item:e.item},null,8,["item"]))}}}),[["__scopeId","data-v-676edc6d"]]),F5={class:"kong-ui-entity-plugin-config-card"},D5={class:"name-cell-wrapper"},M5={class:"info-name"},U5={key:0},j5={key:0},K5={key:0},q5={key:0},G5={key:0},gm="config",z5=ve(t.defineComponent({__name:"PluginConfigCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string"||!e.entityId||!e.pluginType)},configCardDoc:{type:String,default:"",required:!1},showNameAsLink:{type:Boolean,default:!1},hideTitle:{type:Boolean,default:!1},scopedEntityType:{type:String,required:!1,default:""},scopedEntityId:{type:String,required:!1,default:null},expandPartial:{type:Boolean,default:!0}},emits:["loading","fetch:error","error:fetch-schema","fetch:success","navigation-click"],setup(e,{emit:n}){const r=n,o=e,{i18n:{t:i}}=nt.useI18n(),a=nt.usePluginMetaData(),{setFieldType:s}=nt.usePluginHelpers(),{getPropValue:l}=ge.useHelpers(),c=t.computed(()=>{let O=Xe.item[o.config.app]?.[o.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,o.scopedEntityType).replace(/{entityId}/gi,o.scopedEntityId??"").concat(o.expandPartial?"?expand_partials=true":"");if(o.config.app==="konnect"){const A=o.expandPartial?"&":"?";O=O.concat(`${A}__ui_data=true`)}return O}),d=t.computed(()=>!!o.config.showScopeName),u=t.computed(()=>{const O={},A=T.value?.fields||[];for(let I=0;I<A.length;I++){const V=T.value.fields[I],L=Object.keys(V)?.[0];s(O,L,V[L])}return{...O,instance_name:{section:ge.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:d.value?i("plugins.fields.consumer"):i("plugins.fields.consumer_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},route:{label:d.value?i("plugins.fields.route"):i("plugins.fields.route_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},service:{label:d.value?i("plugins.fields.service"):i("plugins.fields.service_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:d.value?i("plugins.fields.consumer_group"):i("plugins.fields.consumer_group_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ge.ConfigurationSchemaType.BadgeTag,section:ge.ConfigurationSchemaSection.Basic,order:7}}}),f=t.computed(()=>T.value?.fields?T.value.fields?.find(A=>Object.keys(A)?.[0]===gm)?.[gm]?.fields||[]:[]),p=t.computed(()=>{const O={};if(!f.value)return O;for(let A=0;A<f.value?.length;A++){const I=f.value[A],V=Object.keys(I)?.[0],L=I[V];L.required&&(O[V]={order:1}),s(O,V,L)}return O}),m=O=>{const A=a.pluginMetaData[o.config.pluginType]?.scope;return A?Object.fromEntries(Object.entries(O).filter(([I,V])=>V?!0:!(I==="service"&&!A.includes(W.PluginScope.SERVICE)||I==="route"&&!A.includes(W.PluginScope.ROUTE)||I==="consumer"&&!A.includes(W.PluginScope.CONSUMER)||I==="consumer_group"&&!A.includes(W.PluginScope.CONSUMER_GROUP)))):O},g=O=>go(O,"__ui_data"),{getMessageFromError:_}=ge.useErrors(),{axiosInstance:h}=ge.useAxios(o.config?.axiosRequestConfig),{resolveReferenceNames:y,getReferenceName:w,isReferenceNameLoading:b}=nt.useReferenceEntityNames({config:o.config,axiosInstance:h,onError:O=>r("fetch:error",O)}),E=(O,A,I)=>({key:A,value:d.value&&w(O)||A,to:d.value?I?.(A):void 0,subtitle:d.value&&w(O)?A:void 0,subtitleLoading:d.value&&b(O),type:ge.ConfigurationSchemaType.LinkInternal}),k=O=>{r("fetch:success",O),d.value&&o.showNameAsLink&&y(O)},N=t.computed(()=>{let O=`${o.config.apiBaseUrl}${Xe.form[o.config.app].pluginSchema}`;return o.config.app==="konnect"&&(O=O.replace(/{controlPlaneId}/gi,o.config?.controlPlaneId||"")),O.replace(/\/{workspace}/gi,o.config?.workspace?`/${o.config.workspace}`:"").replace(/{plugin}/gi,o.config.pluginType)}),T=t.ref({});ge.useSchemaProvider(T);const x=t.ref(!1),B=t.ref("");return t.onBeforeMount(async()=>{x.value=!0;try{const{data:O}=await h.get(N.value);T.value=O}catch(O){B.value=_(O),r("error:fetch-schema",O)}finally{x.value=!1}}),(O,A)=>{const I=t.resolveComponent("KSkeleton"),V=t.resolveComponent("KEmptyState"),L=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",F5,[x.value?(t.openBlock(),t.createBlock(I,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):B.value?(t.openBlock(),t.createBlock(V,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(B.value),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ge.EntityBaseConfigCard),{key:2,"code-block-record-formatter":g,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":u.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"fetch-url":c.value,"hide-title":e.hideTitle,"plugin-config-key":gm,"plugin-config-schema":p.value,"record-resolver":m,"onFetch:error":A[0]||(A[0]=R=>O.$emit("fetch:error",R)),"onFetch:success":k,onLoading:A[1]||(A[1]=R=>O.$emit("loading",R))},t.createSlots({name:t.withCtx(R=>[t.createElementVNode("div",D5,[t.createVNode(t.unref(mr.PluginIcon),{class:"plugin-icon",name:t.unref(l)("rowValue",R),size:24},null,8,["name"]),t.createElementVNode("span",M5,t.toDisplayString(t.unref(a).getDisplayName(t.unref(l)("rowValue",R))),1)])]),consumer:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("consumer",t.unref(l)("rowValue",R).id,e.config.getConsumerViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"consumer")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"consumer-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",U5,"–"))]),route:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("route",t.unref(l)("rowValue",R).id,e.config.getRouteViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"route")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"route-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",j5,"–"))]),service:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("service",t.unref(l)("rowValue",R).id,e.config.getServiceViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"service")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"service-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",K5,"–"))]),consumer_group:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("consumer_group",t.unref(l)("rowValue",R).id,e.config.getConsumerGroupViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"consumer_group")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"consumer-group-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",q5,"–"))]),partials:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:{key:t.unref(l)("rowValue",R)?.[0]?.id,value:t.unref(l)("rowValue",R)?.[0]?.id+(t.unref(l)("rowValue",R)?.[0]?.name?"/"+t.unref(l)("rowValue",R)?.[0]?.name:""),type:t.unref(ge.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R)?.[0]?.id,"partial")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"partial-copy-uuid",text:t.unref(l)("rowValue",R)?.[0].id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",G5,"–"))]),_:2},[e.config.pluginType==="datakit"&&e.config.app==="konnect"?{name:"config-card-item-nodes",fn:t.withCtx(R=>[t.createVNode(L5,{item:R.row,"plugin-data":R.record,schema:T.value},null,8,["item","plugin-data","schema"])]),key:"0"}:void 0]),1032,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-4bb6d593"]]),H5=t.defineComponent({__name:"AuthPluginOnboardingCard",props:{pluginType:{},authMode:{},hasExistingEntity:{type:Boolean},createEntityTo:{},onCreateEntityClick:{type:Function},addCredentialTo:{},onAddCredentialClick:{type:Function}},emits:["dismiss"],setup(e){const{i18n:{t:n}}=nt.useI18n(),r=t.computed(()=>{const o=e.authMode==="kong-identity",i=[{icon:Ne.GroupsIcon,appearance:"decorative-aqua",title:n(o?"onboarding.create_principal.title":"onboarding.create_consumer.title"),description:n(o?"onboarding.create_principal.description":`onboarding.${e.pluginType}.create_consumer.description`),to:e.createEntityTo,onClick:e.onCreateEntityClick}];return e.hasExistingEntity&&(e.addCredentialTo||e.onAddCredentialClick)&&i.push({icon:Ne.PasskeyIcon,appearance:"decorative-purple",title:n(o?"onboarding.add_principal_credential.title":`onboarding.${e.pluginType}.add_credential.title`),description:n(o?"onboarding.add_principal_credential.description":`onboarding.${e.pluginType}.add_credential.description`),to:e.addCredentialTo,onClick:e.onAddCredentialClick}),i});return(o,i)=>(t.openBlock(),t.createBlock(t.unref(ge.OnboardingCard),{items:r.value,subtitle:t.unref(n)(`onboarding.${e.pluginType}.subtitle`),title:t.unref(n)(`onboarding.${e.pluginType}.title`),onDismiss:i[0]||(i[0]=a=>o.$emit("dismiss"))},null,8,["items","subtitle","title"]))}}),W5={class:"kong-ui-entities-create-consumer-credential-form"},Y5={class:"onboarding-wizard-header"},J5={class:"onboarding-wizard-body"},X5={class:"consumer-note"},Z5={class:"onboarding-wizard-footer"},Q5=ve(t.defineComponent({__name:"CreateConsumerCredentialForm",props:{config:{},credentialType:{}},emits:["cancel","success"],setup(e,{emit:n}){const{i18n:{t:r}}=nt.useI18n(),{getMessageFromError:o}=ge.useErrors(),i=n,{axiosInstance:a}=ge.useAxios(e.config?.axiosRequestConfig),s=t.ref(1),l=t.ref(!1),c=t.ref(""),d=t.ref(null),u=t.ref({}),f=t.reactive({username:"",customId:"",tags:""}),p=t.computed(()=>!!f.username||!!f.customId),m=t.computed(()=>[{label:r("onboarding.steps.consumer.step"),state:s.value===1?"active":"completed"},{label:r("onboarding.steps.credential.step"),state:s.value===2?"active":"default"}]),g=t.computed(()=>({username:f.username||null,custom_id:f.customId||null,tags:f.tags.split(",").map(k=>k.trim()).filter(k=>k!=="")})),_=k=>{c.value=o(k)},h=async()=>{c.value="",l.value=!0;try{const{data:k}=await a.post(Dl(e.config,Xe.consumers[e.config.app]),g.value);d.value={id:k?.id,username:k?.username,custom_id:k?.custom_id},s.value=2}catch(k){c.value=o(k)}finally{l.value=!1}},y=t.computed(()=>{const k=qr[e.credentialType]?.endpoint||"/plugins";return`consumers/${d.value?.id}${k}`}),w=t.computed(()=>Dl(e.config,Xe.form[e.config.app].credential.create).replace(/{resourceEndpoint}/gi,y.value)),b=async()=>{if(d.value){l.value=!0,c.value="";try{const{data:k}=await a.post(w.value,u.value);i("success",{consumer:d.value,credential:k})}catch(k){c.value=o(k)}finally{l.value=!1}}},E=()=>{s.value===1?i("cancel"):d.value&&i("success",{consumer:d.value,credential:null})};return(k,N)=>{const T=t.resolveComponent("KStepper"),x=t.resolveComponent("KInput"),B=t.resolveComponent("KAlert"),O=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",W5,[t.createElementVNode("div",Y5,[t.createVNode(T,{"data-testid":"wizard-stepper",steps:m.value},null,8,["steps"])]),t.createElementVNode("div",J5,[s.value===1?(t.openBlock(),t.createBlock(t.unref(ge.EntityFormBlock),{key:0,description:t.unref(r)("onboarding.steps.consumer.description"),title:t.unref(r)("onboarding.steps.consumer.title")},{default:t.withCtx(()=>[t.createElementVNode("div",X5,t.toDisplayString(t.unref(r)("onboarding.steps.consumer.note")),1),t.createVNode(x,{modelValue:f.username,"onUpdate:modelValue":N[0]||(N[0]=A=>f.username=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-username",label:t.unref(r)("onboarding.consumer_fields.username_label"),placeholder:t.unref(r)("onboarding.consumer_fields.username_placeholder"),type:"text"},null,8,["modelValue","label","placeholder"]),t.createVNode(x,{modelValue:f.customId,"onUpdate:modelValue":N[1]||(N[1]=A=>f.customId=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-custom-id",label:t.unref(r)("onboarding.consumer_fields.custom_id_label"),placeholder:t.unref(r)("onboarding.consumer_fields.custom_id_placeholder"),type:"text"},null,8,["modelValue","label","placeholder"]),t.createVNode(x,{modelValue:f.tags,"onUpdate:modelValue":N[2]||(N[2]=A=>f.tags=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-tags",help:t.unref(r)("plugins.form.fields.tags.help"),label:t.unref(r)("plugins.form.fields.tags.label"),placeholder:t.unref(r)("plugins.form.fields.tags.placeholder"),type:"text"},null,8,["modelValue","help","label","placeholder"])]),_:1},8,["description","title"])):(t.openBlock(),t.createBlock(t.unref(ge.EntityFormBlock),{key:1,title:t.unref(r)("onboarding.steps.credential.title")},{default:t.withCtx(()=>[t.createVNode(qf,{config:e.config,"credential-type":e.credentialType,"onError:fetchSchema":_,"onUpdate:loading":N[3]||(N[3]=A=>l.value=A),"onUpdate:modelValue":N[4]||(N[4]=A=>u.value=A)},null,8,["config","credential-type"])]),_:1},8,["title"])),c.value?(t.openBlock(),t.createBlock(B,{key:2,appearance:"danger",class:"onboarding-wizard-error","data-testid":"wizard-error",message:c.value},null,8,["message"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",Z5,[t.createVNode(O,{appearance:"tertiary","data-testid":"wizard-secondary-action",onClick:E},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.value===1?t.unref(r)("onboarding.actions.exit_setup"):t.unref(r)("onboarding.actions.skip")),1)]),_:1}),t.createVNode(O,{appearance:"primary","data-testid":"wizard-primary-action",disabled:l.value||s.value===1&&!p.value,onClick:N[5]||(N[5]=A=>s.value===1?h():b())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.value===1?t.unref(r)("onboarding.actions.save_and_next"):t.unref(r)(`onboarding.${e.credentialType}.credential_action`)),1)]),_:1},8,["disabled"])])])}}}),[["__scopeId","data-v-f4c3baf8"]]),ez=ve(t.defineComponent({__name:"AddCredentialToConsumerForm",props:{config:{},credentialType:{}},emits:["cancel","success"],setup(e,{emit:n}){const{i18n:{t:r}}=nt.useI18n(),{getMessageFromError:o}=ge.useErrors(),i=n,{axiosInstance:a}=ge.useAxios(e.config?.axiosRequestConfig),{debouncedQueryChange:s,loading:l,results:c,loadItems:d}=ge.useDebouncedFilter(e.config,Xe.consumers[e.config.app],"",{fetchedItemsKey:"data",searchKeys:["username","id"]}),u=t.computed(()=>c.value.map(E=>({label:E.username||E.custom_id,value:E.id}))),f=t.ref(""),p=t.ref(!1),m=t.ref(""),g=t.ref(!1),_=t.ref({}),h=t.computed(()=>!!f.value&&!g.value&&!p.value),y=t.computed(()=>{const E=qr[e.credentialType].endpoint;return`consumers/${f.value}${E}`}),w=t.computed(()=>Dl(e.config,Xe.form[e.config.app].credential.create).replace(/{resourceEndpoint}/gi,y.value)),b=async()=>{if(h.value){p.value=!0,m.value="";try{const{data:E}=await a.post(w.value,_.value);i("success",E)}catch(E){m.value=o(E)}finally{p.value=!1}}};return d(),(E,k)=>{const N=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(t.unref(ge.EntityBaseForm),{"align-action-button-to-left":"","can-submit":h.value,config:e.config,"entity-type":t.unref(ge.SupportedEntityType).Other,"error-message":m.value,"form-fields":_.value,"is-readonly":p.value,"no-validate":"","wrapper-component":"div",onCancel:k[4]||(k[4]=T=>E.$emit("cancel")),onSubmit:b},{default:t.withCtx(()=>[t.createVNode(t.unref(ge.EntityFormBlock),{description:t.unref(r)("onboarding.choose_consumer.description"),step:1,title:t.unref(r)("onboarding.choose_consumer.title")},{default:t.withCtx(()=>[t.createVNode(N,{modelValue:f.value,"onUpdate:modelValue":k[0]||(k[0]=T=>f.value=T),"data-testid":"choose-consumer-select","enable-filtering":"",items:u.value,label:t.unref(r)("onboarding.choose_consumer.select_label"),loading:t.unref(l),placeholder:t.unref(r)("onboarding.choose_consumer.select_placeholder"),width:"100%",onQueryChange:t.unref(s)},null,8,["modelValue","items","label","loading","placeholder","onQueryChange"])]),_:1},8,["description","title"]),t.createVNode(t.unref(ge.EntityFormBlock),{step:2,title:t.unref(r)("onboarding.add_credential.title")},{default:t.withCtx(()=>[t.createVNode(qf,{config:e.config,"credential-type":e.credentialType,"onError:fetchSchema":k[1]||(k[1]=T=>m.value=t.unref(o)(T)),"onUpdate:loading":k[2]||(k[2]=T=>g.value=T),"onUpdate:modelValue":k[3]||(k[3]=T=>_.value=T)},null,8,["config","credential-type"])]),_:1},8,["title"])]),_:1},8,["can-submit","config","entity-type","error-message","form-fields","is-readonly"])}}}),[["__scopeId","data-v-c6ff0a51"]]),{usePluginMetaData:tz}=nt;function nz(e,n=!1){const r=e.length;let o=0,i="",a=0,s=16,l=0,c=0,d=0,u=0,f=0;function p(b,E){let k=0,N=0;for(;k<b;){let T=e.charCodeAt(o);if(T>=48&&T<=57)N=N*16+T-48;else if(T>=65&&T<=70)N=N*16+T-65+10;else if(T>=97&&T<=102)N=N*16+T-97+10;else break;o++,k++}return k<b&&(N=-1),N}function m(b){o=b,i="",a=0,s=16,f=0}function g(){let b=o;if(e.charCodeAt(o)===48)o++;else for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;if(o<e.length&&e.charCodeAt(o)===46)if(o++,o<e.length&&Ri(e.charCodeAt(o)))for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;else return f=3,e.substring(b,o);let E=o;if(o<e.length&&(e.charCodeAt(o)===69||e.charCodeAt(o)===101))if(o++,(o<e.length&&e.charCodeAt(o)===43||e.charCodeAt(o)===45)&&o++,o<e.length&&Ri(e.charCodeAt(o))){for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;E=o}else f=3;return e.substring(b,E)}function _(){let b="",E=o;for(;;){if(o>=r){b+=e.substring(E,o),f=2;break}const k=e.charCodeAt(o);if(k===34){b+=e.substring(E,o),o++;break}if(k===92){if(b+=e.substring(E,o),o++,o>=r){f=2;break}switch(e.charCodeAt(o++)){case 34:b+='"';break;case 92:b+="\\";break;case 47:b+="/";break;case 98:b+="\b";break;case 102:b+="\f";break;case 110:b+=`
|
|
452
|
+
`)[0]||"Invalid YAML"}});const y=()=>{p.value=!0},w=()=>{p.value=!1,i("cancel")},b=()=>{i("remove")},E=()=>{y(),l.value.value||(l.value.value=a("cache"),l.value.value.strategy="memory")},k=()=>{p.value=!1,i("update",s)},N=()=>{_.value==="memory"&&s.cache?.partial_id&&delete s.cache?.partial_id};async function T({codeElement:x,language:B,code:O}){x.innerHTML=await oS.codeToHtml(O,{lang:B,theme:"material-theme-darker",structure:"inline"})}return(x,B)=>{const O=t.resolveComponent("KButton"),A=t.resolveComponent("KDropdownItem"),I=t.resolveComponent("KDropdown"),V=t.resolveComponent("KLabel"),L=t.resolveComponent("KCodeBlock"),R=t.resolveComponent("KModal");return t.openBlock(),t.createElementBlock("div",Gj,[t.createElementVNode("h3",zj,t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title")),1),e.strategy?(t.openBlock(),t.createElementBlock("div",Hj,[t.createElementVNode("div",Wj,[t.createVNode(t.unref(Ne.DatabaseIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["color","size"]),t.createElementVNode("div",Yj,t.toDisplayString(e.strategy),1)]),t.createVNode(I,null,{items:t.withCtx(()=>[t.createVNode(A,{onClick:y},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.edit")),1)]),_:1}),t.createVNode(A,{danger:"",onClick:b},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.vault.delete")),1)]),_:1})]),default:t.withCtx(()=>[t.createVNode(O,{appearance:"tertiary",icon:""},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{color:`var(--kui-color-text, ${t.unref(vu)})`},null,8,["color"])]),_:1})]),_:1})])):(t.openBlock(),t.createBlock(O,{key:1,appearance:"tertiary",class:"add-button",size:"small",onClick:E},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.add_button")),1)]),_:1})),t.createVNode(R,{"action-button-disabled":!g.value,"action-button-text":t.unref(m)("actions.save"),"max-width":"640px",title:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.title"),visible:p.value,onCancel:w,onProceed:k},{default:t.withCtx(()=>[t.createElementVNode("div",Jj,[t.createVNode(tm,{items:[{label:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.memory"),value:"memory"},{label:t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.strategy_options.redis"),value:"redis"}],name:"strategy","onUpdate:modelValue":N},null,8,["items"]),_.value==="memory"?(t.openBlock(),t.createBlock(t.unref(S.Field),{key:0,name:"memory.dictionary_name"})):t.createCommentVNode("",!0),_.value==="redis"&&d.value?(t.openBlock(),t.createElementBlock("div",Xj,[t.createVNode(V,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.select_redis_configuration")),1)]),_:1}),t.createVNode(t.unref(xu.RedisConfigurationSelector),{"model-value":t.unref(s).cache?.partial_id,"redis-type":"redis-ee","onUpdate:modelValue":B[0]||(B[0]=Z=>t.unref(s).cache.partial_id=Z)},null,8,["model-value"])])):t.createCommentVNode("",!0),_.value==="redis"&&d.value&&!t.unref(s).cache?.partial_id&&h.value?(t.openBlock(),t.createElementBlock("div",Zj,[t.createElementVNode("div",null,t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config_preview")),1),t.createVNode(L,{id:"dk-cache-redis-configuration",code:h.value,language:"yaml",theme:"dark",onCodeBlockRender:T},null,8,["code"])])):t.createCommentVNode("",!0),_.value==="redis"&&!d.value?(t.openBlock(),t.createElementBlock("div",Qj,[t.createVNode(V,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(m)("plugins.free-form.datakit.flow_editor.panel_segments.resources.cache.inline_config")),1)]),_:1}),(t.openBlock(),t.createBlock(t.unref(ya.MonacoEditor),{key:t.unref(r),modelValue:u.value,"onUpdate:modelValue":B[1]||(B[1]=Z=>u.value=Z),appearance:"standalone",class:"redis-editor",language:"yaml",theme:t.unref(r)},null,8,["modelValue","theme"])),f.value?(t.openBlock(),t.createElementBlock("p",eK,t.toDisplayString(f.value),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)])]),_:1},8,["action-button-disabled","action-button-text","title","visible"])])}}}),[["__scopeId","data-v-97fb5e37"]]),nK={class:"dk-resources-panel"},rK=ve(t.defineComponent({__name:"ResourcesPanel",setup(e){const n=jj(),r=t.ref(0),{addVault:o,removeVault:i,updateVault:a,renameVault:s,formData:l}=Pj();function c(_,h,y){y&&y!==_&&s(y,_,!1),a(_,h)}const{state:d,commit:u}=Ct(),f=t.computed(()=>({cache:d.value.cacheConfig}));function p(_){d.value.cacheConfig=_.cache,u()}function m(){d.value.cacheConfig=void 0,u()}function g(){r.value++}return(_,h)=>(t.openBlock(),t.createElementBlock("div",nK,[t.createVNode(t.unref(S.Form),{data:t.unref(l),schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(Uj,{name:"vault",onAdd:t.unref(o),onRemove:t.unref(i),onUpdate:c},null,8,["onAdd","onRemove"])]),_:1},8,["data","schema"]),h[0]||(h[0]=t.createElementVNode("hr",{class:"dk-resources-divider"},null,-1)),(t.openBlock(),t.createBlock(t.unref(S.Form),{key:`${r.value}`,data:f.value,schema:t.unref(n)},{default:t.withCtx(()=>[t.createVNode(tK,{strategy:f.value.cache?.strategy,onCancel:g,onRemove:m,onUpdate:p},null,8,["strategy"])]),_:1},8,["data","schema"]))]))}}),[["__scopeId","data-v-860ad9ac"]]),oK={class:"header"},iK={class:"title"},aK={class:"body"},sK={class:"panel"},lK=ve(t.defineComponent({__name:"SidePanel",setup(e){const{t:n}=It.createI18n("en-us",Bt),{sidePanelExpanded:r}=Cc(),{propertiesPanelOpen:o,selectedNode:i}=Ct(),a=t.ref("nodes");function s(){o.value=!1}t.watch(i,c=>{c||s()});const l=t.ref(!1);return t.onMounted(()=>{l.value=!0}),(c,d)=>{const u=t.resolveComponent("KSegmentedControl");return t.openBlock(),t.createElementBlock("aside",{class:t.normalizeClass(["side-panel",{expanded:t.unref(r),inited:l.value}])},[t.createElementVNode("header",oK,[t.createElementVNode("h2",iK,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.name")),1)]),t.createElementVNode("div",aK,[t.createElementVNode("div",sK,[t.createVNode(u,{modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=f=>a.value=f),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"]),a.value==="nodes"?(t.openBlock(),t.createBlock(Bj,{key:0,class:"node-panel","hide-title":""})):t.createCommentVNode("",!0),a.value==="resources"?(t.openBlock(),t.createBlock(rK,{key:1})):t.createCommentVNode("",!0)])])],2)}}}),[["__scopeId","data-v-9e854e60"]]),cK=t.defineComponent({__name:"HttpMethodField",props:{name:{}},setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.unref(S.EnumField),{items:t.unref(S.toSelectItems)([...t.unref(D_)]),name:e.name},null,8,["items","name"]))}});function dK(e,n){const r=[],o=(i,a)=>{typeof a=="string"&&r.push({nodeName:e.name,path:["nodes",n,...i],value:a})};if("input"in e&&e.input!=null&&o(["input"],e.input),"inputs"in e&&e.inputs&&typeof e.inputs=="object")for(const[i,a]of Object.entries(e.inputs))a!=null&&o(["inputs",i],a);if("output"in e&&e.output!=null&&o(["output"],e.output),"outputs"in e&&e.outputs&&typeof e.outputs=="object")for(const[i,a]of Object.entries(e.outputs))a!=null&&o(["outputs",i],a);return r}function uK(e){const n=e.path[2];return n==="output"||n==="outputs"}function _0(e){if(!e)return!1;for(const n of Object.values(e))if(n!=null)return!0;return!1}function b0(e,n){const r=e.input!==void 0&&e.input!==null,o=_0(e.inputs);r&&o&&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=_0(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 w0(e,n,r){if(!e.nodes)return;const o=e.nodes.map(c=>c.name),i=new Set;o.forEach((c,d)=>{i.has(c)&&r.addIssue({code:"custom",message:`Duplicate node name: "${c}"`,path:["nodes",d,"name"]}),i.add(c)});const a=new Set([...n,...o]),s=new Map,l=new Map;e.nodes.forEach((c,d)=>{for(const u of dK(c,d)){const f=u.value.split(".",1)[0];if(a.has(f)||r.addIssue({code:"custom",message:`Unknown node "${f}" in connection "${u.value}"`,path:u.path}),uK(u)){const p=`${u.nodeName}->${f}`;l.has(p)?r.addIssue({code:"custom",message:`Connection specified on both sides: "${u.nodeName}" outputs to "${f}" and "${f}" inputs from "${u.nodeName}". Specify it on one side only.`,path:u.path}):s.set(p,s.get(p)??u.path)}else{const p=`${f}->${u.nodeName}`;s.has(p)?r.addIssue({code:"custom",message:`Connection specified on both sides: "${f}" outputs to "${u.nodeName}" and "${u.nodeName}" inputs from "${f}". Specify it on one side only.`,path:u.path}):l.set(p,l.get(p)??u.path)}}})}const fK=P.z.enum(L_),pK=P.z.enum(ri),k0=e=>ri.includes(e),nm=P.z.enum(F_),C0=nm.options;P.z.union([nm,fK]);const mK=/^[A-Za-z_][A-Za-z0-9_-]{0,254}$/,Ec=P.z.string().min(1).max(255).regex(mK,"Invalid node name (snake_case / kebab-case only)").refine(e=>!k0(e),"Name clashes with reserved implicit node").brand(),E0=P.z.union([pK,Ec]),gK=P.z.string().min(1).brand(),hK=["then","else"];P.z.enum(hK);const at=P.z.string().min(1).max(255).refine(e=>{if(E0.safeParse(e).success)return!0;const n=e.match(/^([^.]+)\.(.+)$/);if(!n)return!1;const[,r,o]=n;return E0.safeParse(r).success&&gK.safeParse(o).success},'Invalid connection, expected "NODE" or "NODE.FIELD"').nullish(),yK=P.z.object({body:at,headers:at,http_proxy:at,https_proxy:at,proxy_auth_password:at,proxy_auth_username:at,query:at,url:at}).partial().strict(),_K=P.z.object({headers:at,body:at}).partial().strict(),bK=P.z.object({data:at,key:at,ttl:at}).partial().strict(),wK=P.z.object({claims:at,key:at}).partial().strict(),kK=P.z.object({key:at,token:at}).partial().strict(),CK=P.z.enum(D_),N0=P.z.enum(uf),An=P.z.object({type:P.z.string(),name:Ec,input:at,inputs:P.z.record(P.z.string().min(1).max(255),at).nullish(),output:at,outputs:P.z.record(P.z.string().min(1).max(255),at).nullish()}).loose().superRefine((e,n)=>{b0(e,n)}),EK=P.z.object({type:P.z.string(),name:P.z.string()}).loose().superRefine((e,n)=>{const r=e.type,o=e.name;(typeof o!="string"||o.length===0||o.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"invalid node name",fatal:!1}),C0.includes(r)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${r}", expected one of: ${C0.join(", ")}`})}),NK=P.z.string().regex(/^[1-5](\d{2}|xx)$/,{message:"must be an exact status code (e.g. '404') or a status class (e.g. '5xx')"}),SK=P.z.object({count:P.z.number().int().min(0).max(10).default(0).nullish(),interval:P.z.number().min(0).max(30).default(0).nullish(),status_codes:P.z.array(NK).min(1).max(32).nullish()}).strict(),AK=An.safeExtend({type:P.z.literal("call"),method:P.z.string().min(1).max(32).regex(/^[A-Z]+$/).default("GET").nullish(),ssl_server_name:P.z.string().nullish(),ssl_verify:P.z.boolean().default(!0).nullish(),timeout:P.z.number().int().min(0).max(2147483646).nullish(),url:P.z.url().nullish(),continue_on_error:P.z.boolean().default(!1).nullish(),retry:SK.nullish(),inputs:yK.nullish(),outputs:P.z.object({body:at,error:at,headers:at,raw_body:at,status:at}).partial().nullish()}).strict(),xK=An.safeExtend({type:P.z.literal("exit"),status:P.z.number().int().min(200).max(599).default(200).nullish(),warn_headers_sent:P.z.boolean().nullish(),inputs:_K.nullish(),output:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),IK=An.safeExtend({type:P.z.literal("jq"),jq:P.z.string().min(1).max(10240),outputs:P.z.never().nullish()}).strict(),vK=/^[a-zA-Z_][a-zA-Z0-9._:-]*$/;function S0(e){return e.length<=256&&e.split("/").every(n=>vK.test(n))}const TK=An.safeExtend({type:P.z.literal("xml_to_json"),recognize_type:P.z.boolean().nullish().default(!0),attributes_block_name:P.z.string().min(1).max(32).nullish(),attributes_name_prefix:P.z.string().min(1).max(32).nullish(),text_block_name:P.z.string().min(1).max(32).nullish().default("#text"),text_as_property:P.z.boolean().nullish().default(!1),xpath:P.z.string().min(1).max(256).nullish(),force_array_paths:P.z.array(P.z.string().min(1).max(256).refine(S0,"Must be a plain '/'-separated element path, for example 'store/product'")).nullish().default([]),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict().superRefine((e,n)=>{!e.attributes_block_name&&!e.attributes_name_prefix&&(n.addIssue({code:"custom",path:["attributes_block_name"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}),n.addIssue({code:"custom",path:["attributes_name_prefix"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}))}),OK=An.safeExtend({type:P.z.literal("json_to_xml"),attributes_block_name:P.z.string().min(1).max(32).nullish(),attributes_name_prefix:P.z.string().min(1).max(32).nullish(),root_element_name:P.z.string().min(1).max(64).nullish(),text_block_name:P.z.string().min(1).max(32).nullish().default("#text"),inputs:P.z.record(P.z.string().min(1).max(255),at).nullish(),outputs:P.z.never().nullish()}).strict().superRefine((e,n)=>{!e.attributes_block_name&&!e.attributes_name_prefix&&(n.addIssue({code:"custom",path:["attributes_block_name"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}),n.addIssue({code:"custom",path:["attributes_name_prefix"],message:"At least one of attributes_block_name or attributes_name_prefix is required"}))}),BK=An.safeExtend({type:P.z.literal("jwt_decode"),inputs:P.z.never().nullish(),outputs:P.z.object({header:at,payload:at,signature:at}).partial().nullish()}).strict(),PK=An.safeExtend({type:P.z.literal("jwt_sign"),algorithm:N0,expires_in:P.z.number().int().min(1).default(300).nullish(),inputs:wK.nullish(),kid:P.z.string().nullish(),not_before:P.z.number().int().min(0).default(0).nullish(),outputs:P.z.object({claims:at,header:at,token:at}).partial().nullish(),static_claims:P.z.record(P.z.string(),P.z.string()).default({}).nullish(),typ:P.z.string().default("JWT").nullish()}).strict(),VK=An.safeExtend({type:P.z.literal("jwt_verify"),allowed_algorithms:P.z.array(N0).default([]).nullish(),audiences:P.z.array(P.z.string()).default([]).nullish(),inputs:kK.nullish(),issuers:P.z.array(P.z.string()).default([]).nullish(),leeway:P.z.number().int().min(0).default(0).nullish(),outputs:P.z.object({claims:at,header:at}).partial().nullish(),required_claims:P.z.array(P.z.string()).default([]).nullish(),validate_exp:P.z.boolean().default(!0).nullish(),validate_nbf:P.z.boolean().default(!0).nullish()}).strict(),$K=An.safeExtend({type:P.z.literal("property"),content_type:P.z.enum(["application/json","text/plain","application/octet-stream"]).nullish(),property:P.z.string().min(1).max(255),non_nil:P.z.boolean().default(!1).nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),RK=An.safeExtend({type:P.z.literal("static"),values:P.z.record(P.z.string(),P.z.unknown()),input:P.z.never().nullish(),inputs:P.z.never().nullish()}).strict(),LK=An.safeExtend({type:P.z.literal("cache"),bypass_on_error:P.z.boolean().nullish(),inputs:bK.nullish(),outputs:P.z.object({data:at,hit:at,miss:at,stored:at}).partial().nullish(),ttl:P.z.number().int().gt(0).nullish()}).strict(),FK=An.safeExtend({type:P.z.literal("branch"),then:P.z.array(Ec).min(1).max(64).nullish(),else:P.z.array(Ec).min(1).max(64).nullish()}).strict(),DK=EK.pipe(P.z.discriminatedUnion("type",[AK,xK,IK,TK,OK,BK,PK,VK,$K,RK,LK,FK])),MK=P.z.record(P.z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]*$/).min(1).max(255),P.z.string().min(1).max(4095)),UK=P.z.object({dictionary_name:P.z.string().nullish().default("kong_db_cache")}),jK=P.z.object({host:P.z.string().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).default(6379)}),KK=P.z.object({ip:P.z.string().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).default(6379)}),qK=P.z.object({host:P.z.string().nullish().default("127.0.0.1"),port:P.z.number().int().min(0).max(65535).nullish().default(6379),connect_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),send_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),read_timeout:P.z.number().int().min(0).max(2147483646).nullish().default(2e3),username:P.z.string().nullish(),password:P.z.string().nullish(),sentinel_username:P.z.string().nullish(),sentinel_password:P.z.string().nullish(),database:P.z.number().int().nullish().default(0),keepalive_pool_size:P.z.number().int().min(1).max(2147483646).nullish().default(256),keepalive_backlog:P.z.number().int().min(0).max(2147483646).nullish(),sentinel_master:P.z.string().nullish(),sentinel_role:P.z.enum(["master","slave","any"]).nullish(),sentinel_nodes:P.z.array(jK).min(1,{message:"sentinel_nodes must contain at least 1 item"}).nullish(),cluster_nodes:P.z.array(KK).min(1,{message:"cluster_nodes must contain at least 1 item"}).nullish(),ssl:P.z.boolean().default(!1).nullish(),ssl_verify:P.z.boolean().default(!0).nullish(),server_name:P.z.string().nullish(),cluster_max_redirections:P.z.number().int().default(5).nullish(),connection_is_proxied:P.z.boolean().default(!1).nullish(),cloud_authentication:P.z.object({auth_provider:P.z.enum(["aws","azure","gcp"]).nullish(),aws_access_key_id:P.z.string().nullish(),aws_assume_role_arn:P.z.string().nullish(),aws_cache_name:P.z.string().nullish(),aws_is_serverless:P.z.boolean().default(!0).nullish(),aws_region:P.z.string().nullish(),aws_role_session_name:P.z.string().nullish(),aws_secret_access_key:P.z.string().nullish(),azure_client_id:P.z.string().nullish(),azure_client_secret:P.z.string().nullish(),azure_tenant_id:P.z.string().nullish(),gcp_service_account_json:P.z.string().nullish()}).nullish(),timeout:P.z.number().int().nullish(),sentinel_addresses:P.z.array(P.z.string()).min(1).nullish(),cluster_addresses:P.z.array(P.z.string()).min(1).nullish()}).superRefine((e,n)=>{const r=e.host!==void 0&&e.host!==null,o=e.port!==void 0&&e.port!==null;(r&&!o||!r&&o)&&n.addIssue({code:"custom",message:"host and port must be specified together",path:r?["port"]:["host"]});const i=!!e.sentinel_master,a=!!e.sentinel_role,s=!!e.sentinel_nodes?.length,l=[i,a,s].filter(Boolean).length;l>0&&l<3&&n.addIssue({code:"custom",message:"sentinel_master, sentinel_role and sentinel_nodes must be provided together"}),e.connection_is_proxied===!0&&!r&&n.addIssue({code:"custom",message:"host is required when connection_is_proxied is true (host/port should point to the proxy)",path:["host"]})}),GK=P.z.object({strategy:P.z.enum(["memory","redis"]).nullish(),memory:UK.nullish(),redis:qK.nullish()}),zK=P.z.object({vault:MK.nullish(),cache:GK.nullish()});P.z.array(P.z.object({id:P.z.string()})),P.z.object({nodes:P.z.array(DK).min(1,"At least one node is required").max(64),debug:P.z.boolean().default(!1).nullish(),resources:zK.nullish(),ca_certificates:P.z.array(P.z.string()).nullish()}).strict().superRefine((e,n)=>{w0(e,ri,n)});const A0=nm.options,rm=P.z.string().min(1).refine(e=>!e.includes("."),"Invalid node name").refine(e=>!k0(e),"Node name conflicts with reserved implicit node"),ut=P.z.string().refine(e=>{if(!e||/\s/.test(e))return!1;const n=e.indexOf(".");if(n===-1)return!0;const r=e.slice(0,n),o=e.slice(n+1);return r.length>0&&o.length>0&&!o.includes(".")},"Invalid connection"),x0=P.z.object({body:ut.nullish(),headers:ut.nullish(),query:ut.nullish()}).partial().strict(),I0=P.z.object({headers:ut.nullish(),body:ut.nullish()}).partial().strict(),v0=P.z.object({data:ut.nullish(),key:ut.nullish(),ttl:ut.nullish()}).partial().strict(),T0=P.z.object({claims:ut.nullish(),key:ut.nullish()}).partial().strict(),O0=P.z.object({key:ut.nullish(),token:ut.nullish()}).partial().strict(),HK={call:x0,exit:I0,cache:v0,jwt_sign:T0,jwt_verify:O0};function WK(e){const n=HK[e];return n?Object.keys(n.shape):null}const xn=P.z.object({type:P.z.string(),name:rm,input:ut.nullish(),inputs:P.z.record(P.z.string(),ut.nullish()).nullish(),output:ut.nullish(),outputs:P.z.record(P.z.string(),ut.nullish()).nullish()}).loose().superRefine((e,n)=>{b0(e,n)}),YK=P.z.object({type:P.z.string(),name:P.z.string()}).loose().superRefine((e,n)=>{const r=e.type,o=e.name;(typeof o!="string"||o.length===0||o.includes("."))&&n.addIssue({code:"custom",path:["name"],message:"Invalid node name",fatal:!1}),A0.includes(r)||n.addIssue({code:"custom",path:["type"],message:`unknown node type "${r}", expected one of: ${A0.join(", ")}`})}),JK=xn.safeExtend({type:P.z.literal("call"),method:CK.nullish(),ssl_server_name:P.z.string().nullish(),ssl_verify:P.z.boolean().nullish(),timeout:P.z.union([P.z.number(),P.z.string()]).nullish(),url:P.z.string().nullish(),continue_on_error:P.z.boolean().nullish(),retry:P.z.object({count:P.z.union([P.z.number(),P.z.string()]).nullish(),interval:P.z.union([P.z.number(),P.z.string()]).nullish(),status_codes:P.z.array(P.z.string()).nullish()}).nullish(),inputs:x0.nullish(),outputs:P.z.object({body:ut.nullish(),error:ut.nullish(),headers:ut.nullish(),status:ut.nullish()}).partial().nullish()}).strict(),XK=xn.safeExtend({type:P.z.literal("exit"),status:P.z.union([P.z.number(),P.z.string()]).nullish(),warn_headers_sent:P.z.boolean().nullish(),inputs:I0.nullish(),output:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),ZK=xn.safeExtend({type:P.z.literal("jq"),jq:P.z.string().nullish(),outputs:P.z.never().nullish()}).strict(),QK=xn.safeExtend({type:P.z.literal("xml_to_json"),recognize_type:P.z.boolean().nullish(),attributes_block_name:P.z.string().nullish(),attributes_name_prefix:P.z.string().nullish(),text_block_name:P.z.string().nullish(),text_as_property:P.z.boolean().nullish(),xpath:P.z.string().nullish(),force_array_paths:P.z.array(P.z.string()).nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),e8=xn.safeExtend({type:P.z.literal("json_to_xml"),attributes_block_name:P.z.string().nullish(),attributes_name_prefix:P.z.string().nullish(),root_element_name:P.z.string().nullish(),text_block_name:P.z.string().nullish(),inputs:P.z.record(P.z.string(),ut.nullish()).nullish(),outputs:P.z.never().nullish()}).strict(),t8=xn.safeExtend({type:P.z.literal("property"),content_type:P.z.string().nullish(),non_nil:P.z.boolean().nullish(),property:P.z.string().nullish(),inputs:P.z.never().nullish(),outputs:P.z.never().nullish()}).strict(),n8=xn.safeExtend({type:P.z.literal("static"),values:P.z.record(P.z.string(),P.z.unknown()).nullish(),input:P.z.never().nullish(),inputs:P.z.never().nullish()}).strict(),r8=xn.safeExtend({type:P.z.literal("cache"),bypass_on_error:P.z.boolean().nullish(),inputs:v0.nullish(),outputs:P.z.object({data:ut.nullish(),hit:ut.nullish(),miss:ut.nullish(),stored:ut.nullish()}).partial().nullish(),ttl:P.z.union([P.z.number(),P.z.string()]).nullish()}).strict(),o8=xn.safeExtend({type:P.z.literal("jwt_decode"),inputs:P.z.never().nullish(),outputs:P.z.object({header:ut.nullish(),payload:ut.nullish(),signature:ut.nullish()}).partial().nullish()}).strict(),i8=xn.safeExtend({type:P.z.literal("jwt_sign"),algorithm:P.z.enum(uf).nullish(),expires_in:P.z.union([P.z.number(),P.z.string()]).nullish(),inputs:T0.nullish(),kid:P.z.string().nullish(),not_before:P.z.union([P.z.number(),P.z.string()]).nullish(),outputs:P.z.object({claims:ut.nullish(),header:ut.nullish(),token:ut.nullish()}).partial().nullish(),static_claims:P.z.record(P.z.string(),P.z.string()).nullish(),typ:P.z.string().nullish()}).strict(),a8=xn.safeExtend({type:P.z.literal("jwt_verify"),allowed_algorithms:P.z.array(P.z.enum(uf)).nullish(),audiences:P.z.array(P.z.string()).nullish(),inputs:O0.nullish(),issuers:P.z.array(P.z.string()).nullish(),leeway:P.z.union([P.z.number(),P.z.string()]).nullish(),outputs:P.z.object({claims:ut.nullish(),header:ut.nullish()}).partial().nullish(),required_claims:P.z.array(P.z.string()).nullish(),validate_exp:P.z.boolean().nullish(),validate_nbf:P.z.boolean().nullish()}).strict(),s8=xn.safeExtend({type:P.z.literal("branch"),then:P.z.array(rm).nullish(),else:P.z.array(rm).nullish()}).strict(),l8=YK.pipe(P.z.discriminatedUnion("type",[JK,XK,ZK,QK,e8,o8,i8,a8,t8,n8,r8,s8])),c8=P.z.record(P.z.string(),P.z.string()),d8=P.z.object({dictionary_name:P.z.string().nullish()}),u8=P.z.object(),f8=P.z.object({strategy:P.z.enum(["memory","redis"]).nullish(),memory:d8.nullish(),redis:u8.nullish()}),p8=P.z.object({vault:c8.nullish(),cache:f8.nullish()}),B0=P.z.object({nodes:P.z.array(l8).nullish(),debug:P.z.boolean().nullish(),resources:p8.nullish(),ca_certificates:P.z.array(P.z.string()).nullish()}).strict().superRefine((e,n)=>{!e||!Array.isArray(e.nodes)||w0(e,ri,n)}).nullish(),P0=t.defineComponent({__name:"InputsRecordField",props:{name:{},items:{},nodeType:{}},emits:["change:inputs"],setup(e){const{getSchema:n}=S.useFormShared(),{i18n:r}=Ye(),o=t.computed(()=>{const i=n("inputs");if(!i)return[];const a=i.fields.map(l=>Object.keys(l)[0]);if(tn(e.nodeType))return a;const s=WK(e.nodeType);return s===null?a:s.length===0?[]:qO(a,s)});return(i,a)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{"as-child":"",name:e.name,"reset-label-path":"isolate"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.value,s=>(t.openBlock(),t.createBlock(t.unref(S.EnumField),{key:s,clearable:"","enable-filtering":"",items:e.items,name:s,placeholder:t.unref(r).t("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:l=>i.$emit("change:inputs",s,l?l.value:null)},t.createSlots({_:2},[i.$slots["item-label"]?{name:"item-label",fn:t.withCtx(l=>[t.renderSlot(i.$slots,"item-label",t.mergeProps({ref_for:!0},l))]),key:"0"}:void 0]),1032,["items","name","placeholder","onChange"]))),128))]),_:3},8,["name"]))}}),m8=["data-testid"],g8={class:"dk-inputs-map-field-entry-body"},h8={class:"dk-inputs-map-field-entry-content"},y8=ve(t.defineComponent({__name:"InputsMapField",props:{name:{},items:{},fieldNameValidator:{},keyOrder:{}},emits:["change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const r=e,o=n,{keys:i,addKey:a,removeKey:s,updateKey:l,getKeyName:c,field:d}=S.useMapField(t.toRef(r,"name")),{value:u}=S.useField(t.toRef(r,"name")),{i18n:{t:f}}=Ye(),p=t.useTemplateRef("root"),m=t.ref(null),g=t.ref({}),_=t.ref({});let h;const y=t.computed(()=>r.keyOrder?.length?[...i.value].sort((A,I)=>{const V=r.keyOrder.indexOf(A[1]),L=r.keyOrder.indexOf(I[1]);return(V===-1?1/0:V)-(L===-1?1/0:L)}):i.value);async function w(A,I="key"){p.value&&(await t.nextTick(),p.value.querySelector(`[data-${I}-input="${A}"]`)?.focus())}function b(){const A=a();if(!A)return;_.value[A]="";const I=y.value.findIndex(([,V])=>!V);w(I===-1?y.value.length-1:I),m.value=A}function E(A,I){s(A),delete _.value[A],delete g.value[A],A===m.value&&(m.value=null),I.trim()!==""&&o("remove:field",I)}function k(A){h=_.value[A]??c(A)??""}function N(A,I){const V=I.trim();_.value[A]=V,x(A,V)}function T(A){const I=_.value[A]??c(A)??"";if(x(A,I)){_.value[A]=h,l(A,h),delete g.value[A];return}if(A===m.value){if(I.trim()==="")return;l(A,I),o("add:field",I,u?.value?.[A]??null),m.value=null}else l(A,I),o("rename:field",h,I);delete g.value[A],h=I}function x(A,I){delete g.value[A];const V=r.fieldNameValidator("input",h,I);if(V)return g.value[A]=V,V}function B(A){x(A,_.value[A]??c(A)??"")}function O(A,I){if(u?.value&&(u.value[A]=I),A===m.value)return;const V=c(A);V&&o("change:inputs",V,I)}return t.watch(i,A=>{const I=new Set(A.map(([V])=>V));Object.keys(_.value).forEach(V=>{I.has(V)?_.value[V]=_.value[V]??c(V)??"":(delete _.value[V],delete g.value[V])}),A.forEach(([V,L])=>{_.value[V]=_.value[V]??L}),m.value&&!I.has(m.value)&&(m.value=null)},{immediate:!0}),t.watch(()=>r.keyOrder,()=>{if(!m.value)return;const A=y.value.findIndex(([I])=>I===m.value);A!==-1&&w(A)}),(A,I)=>{const V=t.resolveComponent("KAlert"),L=t.resolveComponent("KLabel"),R=t.resolveComponent("KInput"),Z=t.resolveComponent("KSelect"),ee=t.resolveComponent("KButton");return t.unref(d).error?(t.openBlock(),t.createBlock(V,{key:0,appearance:"danger",message:t.unref(d).error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:p,class:"dk-inputs-map-field"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(y.value,([j,G],$)=>(t.openBlock(),t.createElementBlock("div",{key:j,class:"dk-inputs-map-field-entry","data-testid":`ff-kv-container-${t.unref(d).path.value}.${$}`},[t.createVNode(L,{for:`ff-kv-entry-key-${t.unref(d).path.value}.${$}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input_name.label")),1)]),_:1},8,["for"]),t.createElementVNode("div",g8,[t.createElementVNode("div",h8,[t.createVNode(R,{id:`ff-kv-entry-key-${t.unref(d).path.value}.${$}`,class:"ff-kv-field-entry-key","data-key-input":$,"data-testid":`ff-key-${t.unref(d).path.value}.${$}`,error:!!g.value[j],"error-message":g.value[j],"model-value":_.value[j]??G,placeholder:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input_name.placeholder"),onBlur:pe=>B(j),onChange:pe=>T(j),onFocus:pe=>k(j),"onUpdate:modelValue":pe=>N(j,pe)},null,8,["id","data-key-input","data-testid","error","error-message","model-value","placeholder","onBlur","onChange","onFocus","onUpdate:modelValue"]),t.createVNode(Z,{class:"ff-kv-field-entry-value",clearable:"","data-testid":`ff-value-${t.unref(d).path.value}.${$}`,"enable-filtering":"",items:e.items,label:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.source"),"model-value":t.unref(u)?.[j],placeholder:t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.placeholder"),onChange:pe=>O(j,pe?.value??null)},t.createSlots({_:2},[A.$slots["item-label"]?{name:"item-template",fn:t.withCtx(({item:pe})=>[t.renderSlot(A.$slots,"item-label",t.mergeProps({ref_for:!0},pe),void 0,!0)]),key:"0"}:void 0]),1032,["data-testid","items","label","model-value","placeholder","onChange"])]),t.createVNode(ee,{appearance:"tertiary",class:"dk-inputs-map-field-remove-btn","data-testid":`ff-kv-remove-btn-${t.unref(d).path.value}.${$}`,icon:"",onClick:pe=>E(j,G)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["data-testid","onClick"])])],8,m8))),128)),t.createVNode(ee,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${t.unref(d).path.value}`,disabled:!!m.value,onClick:b},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(f)("plugins.free-form.datakit.flow_editor.node_properties.input.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-e8da92e0"]]),_8={class:"dk-source-item"},Nc=ve(t.defineComponent({__name:"SourceItem",props:{item:{}},setup(e){return(n,r)=>(t.openBlock(),t.createElementBlock("span",_8,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(ff)(e.item.type).icon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["color","size"])),t.createTextVNode(" "+t.toDisplayString(e.item.label),1)]))}}),[["__scopeId","data-v-d9aa16eb"]]),b8={key:1,class:"dk-inputs-field-or"},mn=ve(t.defineComponent({__name:"InputsField",props:{items:{},fieldNames:{},fieldNameValidator:{},nodeType:{}},emits:["change:input","change:inputs","add:field","remove:field","rename:field"],setup(e,{emit:n}){const r=n,{getSchema:o}=S.useFormShared(),{i18n:{t:i}}=Ye(),a=t.computed(()=>o("inputs")),s=t.computed(()=>a.value?a.value.type==="record"?P0:y8:null);function l(p){r("change:input",p?p.value:null)}function c(p,m){r("add:field",p,m)}function d(p,m){r("change:inputs",p,m)}function u(p){r("remove:field",p)}function f(p,m){r("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(o)("input")?(t.openBlock(),t.createBlock(t.unref(S.EnumField),{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:l},{"item-label":t.withCtx(g=>[t.renderSlot(p.$slots,"item-label",t.normalizeProps(t.guardReactiveProps(g)),()=>[t.createVNode(Nc,{item:g},null,8,["item"])],!0)]),_:3},8,["items","label","placeholder"])):t.createCommentVNode("",!0),s.value?(t.openBlock(),t.createElementBlock("div",b8,[t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.input.or")),1)])):t.createCommentVNode("",!0),s.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),s.value?(t.openBlock(),t.createBlock(t.unref(s),t.mergeProps({key:3,items:e.items,"key-order":e.fieldNames,name:"inputs"},s.value===P0?{nodeType:e.nodeType}:{fieldNameValidator:e.fieldNameValidator},{"onAdd:field":c,"onChange:inputs":d,"onRemove:field":u,"onRename:field":f}),{"item-label":t.withCtx(g=>[t.createVNode(Nc,{item:g},null,8,["item"])]),_:1},16,["items","key-order"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-26436033"]]),w8={},k8={class:"dk-node-form-divider"};function C8(e,n){return t.openBlock(),t.createElementBlock("hr",k8)}const In=ve(w8,[["render",C8],["__scopeId","data-v-35ed58be"]]),vn=t.defineComponent({__name:"NameField",props:{name:{},validate:{type:Function}},emits:["update"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=Ye(),a=t.ref(r.name),s=t.computed(()=>{const u=r.validate(a.value.trim());return u===void 0?"":u});let l=a.value.trim();function c(){if(s.value){a.value=l;return}o("update",a.value.trim())}function d(){l=a.value.trim()}return t.watch(()=>r.name,u=>{u!==a.value&&(a.value=u)}),(u,f)=>{const p=t.resolveComponent("KInput");return t.openBlock(),t.createBlock(p,{"model-value":a.value,"onUpdate:modelValue":f[0]||(f[0]=m=>a.value=m),"data-1p-ignore":"",error:!!s.value,"error-message":s.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"])}}}),E8={class:"dk-call-failure-example"},N8={class:"dk-call-retry-interval"},S8={class:"dk-call-retry-interval-unit"},A8=".error != null or (.status // 0) < 200 or (.status // 0) > 299",x8=ve(t.defineComponent({__name:"NodeFormCall",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=Ye(),r=["GET","HEAD","PUT","DELETE","OPTIONS"],o=/^[1-5](\d{2}|xx)$/,i=t.useTemplateRef("form"),a=on("call"),s=h0(),{formData:l,setName:c,setConfig:d,inputOptions:u,setInputs:f,setInput:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h,currentNode:y}=rn(e.nodeId,()=>i.value.getValue()),{getOutEdgesByNodeId:w}=Ct(),b=t.computed(()=>{const L=y.value.fields.output.find(({name:R})=>R==="error");return!!L&&w(e.nodeId).some(({sourceField:R})=>R===L.id)}),E=t.computed(()=>l.value.retry!=null),k=t.computed(()=>r.includes(l.value.method??"GET"));function N(L){const R={...i.value.getValue()};L?R.retry={count:0,interval:0}:delete R.retry,i.value.setValue(R),d()}function T(L){return R=>{if(R?.length)return R.every(Z=>o.test(Z))?void 0:n("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_status_codes",{fieldName:L})}}const{createFieldHandler:x}=Ir({validationConfig:{url:Xt(Io({fieldName:"URL"}),f0("url",{fieldName:"URL"})),timeout:Xt(vo("integer"),Jr(0,2147483646)),retry_count:Xt(vo("integer",{fieldName:"Number of retries"}),Jr(0,10,{fieldName:"Number of retries"})),retry_interval:Jr(0,30,{fieldName:"Retry interval"}),retry_status_codes:T("Retry status codes")},getValidationData:()=>({url:l.value.url,timeout:l.value.timeout,retry_count:l.value.retry?.count,retry_interval:l.value.retry?.interval,retry_status_codes:l.value.retry?.status_codes}),toggleNodeValid:_}),B=x("url",()=>d("url")),O=x("timeout",()=>d("timeout")),A=x("retry_count",()=>d("retry.count")),I=x("retry_interval",()=>d("retry.interval")),V=x("retry_status_codes",()=>d("retry.status_codes"));return t.watch(E,L=>{L||(A.value.validate(),I.value.validate(),V.value.validate())}),(L,R)=>{const Z=t.resolveComponent("KLabel"),ee=t.resolveComponent("KAlert"),j=t.resolveComponent("KCopy"),G=t.resolveComponent("KCheckbox");return t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(l).name,validate:t.unref(g),onUpdate:t.unref(c)},null,8,["name","validate","onUpdate"]),t.createVNode(Z,{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(t.unref(S.StringField),{error:t.unref(B).error,"error-message":t.unref(B).errorMessage,name:"url",onBlur:t.unref(B).validate,"onUpdate:modelValue":t.unref(B).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(cK,{name:"method",onUpdate:R[0]||(R[0]=$=>t.unref(d)())}),t.createVNode(t.unref(S.NumberField),{error:t.unref(O).error,"error-message":t.unref(O).errorMessage,name:"timeout",onBlur:t.unref(O).validate,"onUpdate:modelValue":t.unref(O).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{name:"ssl_server_name","onUpdate:modelValue":R[1]||(R[1]=$=>t.unref(d)("ssl_server_name"))}),t.createVNode(t.unref(S.BooleanField),{name:"ssl_verify","onUpdate:modelValue":R[2]||(R[2]=$=>t.unref(d)("ssl_verify"))}),t.unref(s)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(In),t.createVNode(Z,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.label")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"continue_on_error","onUpdate:modelValue":R[3]||(R[3]=$=>t.unref(d)("continue_on_error"))}),!t.unref(l).continue_on_error&&b.value?(t.openBlock(),t.createBlock(ee,{key:0,appearance:"warning","data-testid":"dk-call-error-output-hint",message:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.error_output_hint")},null,8,["message"])):t.createCommentVNode("",!0),t.unref(l).continue_on_error?(t.openBlock(),t.createBlock(ee,{key:1,class:"dk-call-failure-hint","data-testid":"dk-call-failure-hint"},{default:t.withCtx(()=>[t.createElementVNode("p",null,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.failure_hint")),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.failure_example")),1),t.createElementVNode("div",E8,[t.createVNode(j,{text:A8})])]),_:1})):t.createCommentVNode("",!0),t.createVNode(G,{"data-testid":"dk-call-retry-toggle",label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry"),"model-value":E.value,"onUpdate:modelValue":N},null,8,["label","model-value"]),E.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createVNode(t.unref(S.NumberField),{error:t.unref(A).error,"error-message":t.unref(A).errorMessage,label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_count"),name:"retry.count",onBlur:t.unref(A).validate,"onUpdate:modelValue":t.unref(A).update},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createElementVNode("div",N8,[t.createVNode(t.unref(S.NumberField),{error:t.unref(I).error,"error-message":t.unref(I).errorMessage,label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_interval"),name:"retry.interval",onBlur:t.unref(I).validate,"onUpdate:modelValue":t.unref(I).update},null,8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createElementVNode("span",S8,t.toDisplayString(t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.seconds")),1)]),t.createVNode(t.unref(S.StringArrayField),{error:t.unref(V).error,"error-message":t.unref(V).errorMessage,help:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.status_codes_help"),label:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_status_codes"),name:"retry.status_codes",placeholder:"429, 5xx",onBlur:t.unref(V).validate,"onUpdate:modelValue":t.unref(V).update},null,8,["error","error-message","help","label","onBlur","onUpdate:modelValue"]),k.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(ee,{key:0,appearance:"warning","data-testid":"dk-call-retry-warning",message:t.unref(n)("plugins.free-form.datakit.flow_editor.node_properties.error_handling.retry_warning")},null,8,["message"]))],64)):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(u),"node-type":"call","onChange:input":t.unref(p),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),[["__scopeId","data-v-e14ce871"]]),I8=t.defineComponent({__name:"NodeFormServiceRequest",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("service_request"),{formData:o,inputOptions:i,setInputs:a,setInput:s,inputsFieldNames:l,fieldNameValidator:c}=rn(e.nodeId,()=>n.value.getValue());return(d,u)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(mn,{"field-name-validator":t.unref(c),"field-names":t.unref(l),items:t.unref(i),"node-type":"service_request","onChange:input":t.unref(s),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),v8=t.defineComponent({__name:"NodeFormResponse",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("response"),{formData:o,inputOptions:i,setInputs:a,setInput:s,inputsFieldNames:l,fieldNameValidator:c}=rn(e.nodeId,()=>n.value.getValue());return(d,u)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(mn,{"field-name-validator":t.unref(c),"field-names":t.unref(l),items:t.unref(i),"node-type":"response","onChange:input":t.unref(s),"onChange:inputs":t.unref(a)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),T8=t.defineComponent({__name:"NodeFormJq",props:{nodeId:{}},setup(e){const{i18n:{t:n},i18nT:r}=Ye(),o=t.useTemplateRef("form"),i=on("jq"),{formData:a,setName:s,setConfig:l,inputOptions:c,setInputs:d,setInput:u,addField:f,removeFieldByName:p,renameFieldByName:m,inputsFieldNames:g,nameValidator:_,toggleNodeValid:h,fieldNameValidator:y}=rn(e.nodeId,()=>o.value.getValue());function w(x,B){f("input",x,B)}function b(x){p("input",x)}function E(x,B){m("input",x,B)}const k=n("plugins.free-form.datakit.flow_editor.node_properties.jq.label"),{createFieldHandler:N}=Ir({validationConfig:{jq:Xt(Io({fieldName:k}),xr(1,10240,{fieldName:k}))},getValidationData:()=>({jq:a.value.jq}),toggleNodeValid:h}),T=N("jq",()=>l("jq"));return(x,B)=>{const O=t.resolveComponent("KLabel"),A=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(a),schema:t.unref(i)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(a).name,validate:t.unref(_),onUpdate:t.unref(s)},null,8,["name","validate","onUpdate"]),t.createVNode(O,{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(t.unref(S.StringField),{autosize:"",error:t.unref(T).error,"error-message":t.unref(T).errorMessage,label:t.unref(k),"label-attributes":{},multiline:"",name:"jq",resizable:"",onBlur:t.unref(T).validate,"onUpdate:modelValue":t.unref(T).update},{help:t.withCtx(()=>[t.createVNode(t.unref(r),{keypath:"plugins.free-form.datakit.flow_editor.node_properties.jq.help"},{link:t.withCtx(()=>[t.createVNode(A,{"hide-icon":"",href:t.unref(Zn).jqlang},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(Zn).jqlang),1)]),_:1},8,["href"])]),_:1})]),_:1},8,["error","error-message","label","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(y),"field-names":t.unref(g),items:t.unref(c),"node-type":"jq","onAdd:field":w,"onChange:input":t.unref(u),"onChange:inputs":t.unref(d),"onRemove:field":b,"onRename:field":E},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"])}}}),O8=ve(t.defineComponent({__name:"OutputValueField",props:{fieldNameValidator:{},keyOrder:{}},emits:["change:value","add:field","rename:field","remove:field"],setup(e,{emit:n}){const r=e,o=n,i=t.ref({}),{value:a,...s}=S.useField("values"),{i18n:l}=Ye(),c=t.useTemplateRef("root"),d=t.ref([]),u=t.ref(null);let f="",p=a?.value;function m(){return sf("ff-kv-field-")}function g(O,A,I){const V=I.indexOf(O),L=I.indexOf(A);return V===-1&&L===-1?0:V===-1?1:L===-1?-1:V-L}function _(O,A){if(!O)return[];const I=Object.entries(O).map(([V,L])=>({id:m(),key:V,value:L}));return A?.length&&I.sort((V,L)=>g(V.key,L.key,A)),I}function h(){const O={id:m(),key:"",value:""};return d.value.push(O),O}function y(O){const A=d.value.findIndex(I=>I.id===O);A!==-1&&d.value.splice(A,1)}d.value=_(a?.value,r.keyOrder);async function w(O,A="key"){c.value&&(await t.nextTick(),c.value.querySelector(`[data-${A}-input="${O}"]`)?.focus())}function b(){const O=h(),A=d.value.findIndex(({key:I})=>!I);w(A===-1?d.value.length-1:A),u.value=O}function E(O){O.id===u.value?.id&&(u.value=null),y(O.id),O.key.trim()!==""&&o("remove:field",O.key)}function k(O){f=O.key}function N(O){if(x(O)){O.key=f,delete i.value[O.id];return}if(O.id===u.value?.id){if(O.key.trim()==="")return;u.value=null,o("add:field",O.key,O.value)}else o("rename:field",f,O.key);f=O.key}function T(O,A){if(A.id===u.value?.id)return;const I=O.target.value.trim();o("change:value",A.key,I)}function x(O){delete i.value[O.id];const A=r.fieldNameValidator("output",f,O.key);if(A)return i.value[O.id]=A,A}function B(O){x(O)}return t.watch(()=>a?.value,O=>{if(ti(O,p))return;p=O;const A=u.value,I=new Map(d.value.filter(Z=>Z.key).map(Z=>[Z.key,Z])),V=[],L=O??{};(r.keyOrder?.length?Object.keys(L).sort((Z,ee)=>g(Z,ee,r.keyOrder)):Object.keys(L)).forEach(Z=>{const ee=I.get(Z);if(ee){ee.value=L[Z],V.push(ee);return}V.push({id:m(),key:Z,value:L[Z]})}),A&&!V.some(Z=>Z.id===A.id)&&V.push(A),d.value=V},{deep:!0}),(O,A)=>{const I=t.resolveComponent("KAlert"),V=t.resolveComponent("KLabel"),L=t.resolveComponent("KButton"),R=t.resolveComponent("KInput"),Z=t.resolveComponent("KCard");return s.error?(t.openBlock(),t.createBlock(I,{key:0,appearance:"danger",message:s.error.message},null,8,["message"])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"root",ref:c,class:"dk-output-value-field"},[t.createVNode(V,{class:"dk-node-configuration-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.label")),1)]),_:1}),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(ee,j)=>(t.openBlock(),t.createBlock(Z,{key:ee.id,class:"dk-output-value-field-entry","data-testid":`ff-kv-container-${s.path.value}.${j}`},{actions:t.withCtx(()=>[t.createVNode(L,{appearance:"none","data-testid":`ff-kv-remove-btn-${s.path.value}.${j}`,icon:"",onClick:G=>E(ee)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["data-testid","onClick"])]),default:t.withCtx(()=>[t.createVNode(R,{id:`ff-kv-entry-key-${s.path.value}.${j}`,modelValue:ee.key,"onUpdate:modelValue":[G=>ee.key=G,G=>x(ee)],modelModifiers:{trim:!0},class:"ff-kv-field-entry-key","data-key-input":j,"data-testid":`ff-key-${s.path.value}.${j}`,error:!!i.value[ee.id],"error-message":i.value[ee.id],label:t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value_name"),required:"",onBlur:G=>B(ee),onChange:G=>N(ee),onFocus:G=>k(ee)},null,8,["id","modelValue","onUpdate:modelValue","data-key-input","data-testid","error","error-message","label","onBlur","onChange","onFocus"]),t.createVNode(R,{modelValue:ee.value,"onUpdate:modelValue":G=>ee.value=G,modelModifiers:{trim:!0},class:"ff-kv-field-entry-value","data-testid":`ff-value-${s.path.value}.${j}`,label:t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.value"),onChange:G=>T(G,ee)},null,8,["modelValue","onUpdate:modelValue","data-testid","label","onChange"])]),_:2},1032,["data-testid"]))),128)),t.createVNode(L,{appearance:"tertiary","data-testid":`ff-kv-add-btn-${s.path.value}`,disabled:!!u.value,onClick:b},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(l).t("plugins.free-form.datakit.flow_editor.node_properties.output_value.add_button")),1)]),_:1},8,["data-testid","disabled"])],512))}}}),[["__scopeId","data-v-fe50fc7f"]]);function B8(e){const n={};for(const[r,o]of Object.entries(e))typeof o=="object"&&o!==null?n[r]=JSON.stringify(o):n[r]=String(o);return n}function Sc(e){const n={};for(const[r,o]of Object.entries(e))if(o!=null){n[r]=o;try{o==="null"?n[r]=null:(o==="true"||o==="false"||/^-?\d+(\.\d+)?$/.test(o)||o.startsWith("{")&&o.endsWith("}")||o.startsWith("[")&&o.endsWith("]"))&&(n[r]=JSON.parse(o))}catch{}}return n}function P8(e,n,r){const o={};for(const i of Object.keys(e))i===n?o[r]=e[n]:o[i]=e[i];return o}const V8=t.defineComponent({__name:"NodeFormStatic",props:{nodeId:{}},setup(e){const{renameNode:n,getOutEdgesByNodeId:r,addField:o,renameField:i,removeField:a,replaceConfig:s,getNodeById:l}=Ct(),{fieldNameValidator:c}=rn(e.nodeId),d=on("static"),u=m0(e.nodeId),f=t.computed(()=>l(e.nodeId)),p=t.computed(()=>f.value?.fields.output.map(b=>b.name)||[]);function m(b){if(!f.value)throw new Error("No current node");n(f.value.id,b??"")}const g=t.computed(()=>{if(!f.value)return{};const b=f.value.config?.values??{},E={},k=r(f.value.id).map(B=>B.sourceField).filter(Boolean).map(B=>Kr(f.value,"output",B)).map(B=>B?.name).filter(Boolean),N=f.value.fields.output.map(B=>B.name),T=Object.keys(b);return new Set([...T,...k,...N]).forEach(B=>{if(B in b){E[B]=b[B];return}E[B]=""}),{name:f.value.name,values:B8(E)}});function _(b,E){if(!f.value)throw new Error("No selected node");const k=E!==void 0;if(o(e.nodeId,"output",b,!k),k){const N={values:Sc({...g.value.values,[b]:E})};s(e.nodeId,N)}}function h(b,E){if(!f.value)throw new Error("No selected node");const k=wr(f.value,"output",b);if(!k)throw new Error("No field found to rename");const N={values:Sc(P8(g.value.values??{},b,E))};s(e.nodeId,N,!1),i(e.nodeId,k.id,E)}function y(b){if(!f.value)throw new Error("No selected node");const E=wr(f.value,"output",b);if(!E)throw new Error("No field found to delete");a(f.value?.id,E.id,!0,!1);const k={values:Sc({...g.value.values})};delete k.values[b],s(e.nodeId,k)}function w(b,E){if(!f.value)throw new Error("No selected node");const k={...g.value.values};k[b]=E;const N={values:Sc(k)};s(e.nodeId,N)}return(b,E)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:g.value,schema:t.unref(d)},{default:t.withCtx(()=>[t.createVNode(vn,{name:f.value?.name??"",validate:t.unref(u),onUpdate:m},null,8,["name","validate"]),t.createVNode(O8,{"field-name-validator":t.unref(c),"key-order":p.value,"onAdd:field":_,"onChange:value":w,"onRemove:field":y,"onRename:field":h},null,8,["field-name-validator","key-order"])]),_:1},8,["data","schema"]))}}),$8={class:"dk-kong-property-item"},R8={class:"property-type"},L8={class:"property-badges"},F8=ve(t.defineComponent({__name:"PropertiesField",props:{validators:{}},emits:["update:model-value","update:property-key"],setup(e,{emit:n}){const{i18n:{t:r}}=Ye(),o=e,i=n,{formData:a}=S.useFormShared(),s=t.ref(va(a.property)),l=t.computed(()=>Ta(a.property)),c=t.ref(lf(a.property)),d=t.computed(()=>a.property??""),u=t.computed(()=>Object.entries(ho).map(([m])=>{const g=Ta(m)?a.property?.startsWith(m.replace(ni,"")):a.property===m;return{label:g&&c.value?m.replace(ni,c.value):m,value:m,selected:g}}));function f(m){const g=ml.find(_=>a.property?.startsWith(_));g&&(a.property=g+m,o.validators.key.handleChange(a.property),i("update:property-key",a.property))}function p(m){s.value!==va(m?.value)&&(a.property=m?.value||null,s.value=va(a.property),o.validators.property.handleBlur(()=>a.property),i("update:model-value",a.property))}return t.watch(()=>a.property,m=>{c.value=lf(m),s.value=va(m)}),(m,g)=>{const _=t.resolveComponent("KBadge"),h=t.resolveComponent("KSelect"),y=t.resolveComponent("KInput");return t.openBlock(),t.createElementBlock(t.Fragment,null,[(t.openBlock(),t.createBlock(h,{key:d.value,"enable-filtering":"",error:!e.validators.property.isValid.value,help:e.validators.property.error.value,items:u.value,label:"Property","label-attributes":{maxWidth:"300px",placement:"top",info:"The property name to get/set"},required:"",onBlur:g[0]||(g[0]=w=>e.validators.property.handleBlur(()=>t.unref(a).property)),onChange:p},{"item-template":t.withCtx(({item:w})=>[t.createElementVNode("div",$8,[t.createElementVNode("div",null,[t.createElementVNode("div",null,t.toDisplayString(w.label),1),t.createElementVNode("div",R8,t.toDisplayString(t.unref(ho)[w.value].dataType),1)]),t.createElementVNode("div",L8,[t.unref(ho)[w.value].readable?(t.openBlock(),t.createBlock(_,{key:0,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.property.get")),1)]),_:1})):t.createCommentVNode("",!0),t.unref(ho)[w.value].writable?(t.openBlock(),t.createBlock(_,{key:1,appearance:"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.node_properties.property.set")),1)]),_:1})):t.createCommentVNode("",!0)])])]),_:1},8,["error","help","items"])),l.value?(t.openBlock(),t.createBlock(y,{key:0,"model-value":c.value,"onUpdate:modelValue":[g[1]||(g[1]=w=>c.value=w),f],error:!e.validators.key.isValid.value,"error-message":e.validators.key.error.value,label:"key",required:"",onBlur:g[2]||(g[2]=w=>e.validators.key.handleBlur(()=>t.unref(a).property))},null,8,["model-value","error","error-message"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-59891163"]]),D8=t.defineComponent({__name:"NodeFormProperty",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),{selectedNode:r,disconnectInEdges:o,disconnectOutEdges:i}=Ct(),a=on("property"),s=t.computed(()=>a.value.fields.some(E=>"non_nil"in E)),{formData:l,setName:c,setConfig:d,inputOptions:u,setInputs:f,setInput:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h}=rn(e.nodeId,()=>n.value.getValue()),y=t.computed(()=>df(l.value.property));function w(E){const k=r.value?.id;if(!k)throw new Error("Expected selectedNode to be defined");cf(E)||i(k,!1),df(E)||o(k,!1),d()}const{fields:b}=Ir({validationConfig:()=>({property:Io({fieldName:"Property"}),key:Ta(l.value.property)?Io({fieldName:"Key"}):()=>{}}),getValidationData:()=>({property:l.value.property,key:lf(l.value.property)}),toggleNodeValid:_});return(E,k)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(l),schema:t.unref(a)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(l).name,validate:t.unref(g),onUpdate:t.unref(c)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(S.EnumField),{name:"content_type",onUpdate:k[0]||(k[0]=N=>t.unref(d)())}),t.createVNode(F8,{validators:t.unref(b),"onUpdate:modelValue":w,"onUpdate:propertyKey":k[1]||(k[1]=N=>t.unref(d)("property-key"))},null,8,["validators"]),s.value?(t.openBlock(),t.createBlock(t.unref(S.BooleanField),{key:0,name:"non_nil","onUpdate:modelValue":k[2]||(k[2]=N=>t.unref(d)("non_nil"))})):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createBlock(In,{key:1})):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createBlock(mn,{key:2,"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(u),"node-type":"property","onChange:input":t.unref(p),"onChange:inputs":t.unref(f)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])):t.createCommentVNode("",!0)]),_:1},8,["data","schema"]))}}),M8=t.defineComponent({__name:"NodeFormExit",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("exit"),{formData:o,setName:i,setConfig:a,inputOptions:s,setInputs:l,setInput:c,inputsFieldNames:d,nameValidator:u,toggleNodeValid:f,fieldNameValidator:p}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:m}=Ir({validationConfig:{status:Xt(vo("integer",{fieldName:"Status"}),Jr(200,599,{fieldName:"Status"}))},getValidationData:()=>({status:o.value.status}),toggleNodeValid:f}),g=m("status",()=>a("status"));return(_,h)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(o).name,validate:t.unref(u),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(g).error,"error-message":t.unref(g).errorMessage,name:"status",onBlur:t.unref(g).validate,"onUpdate:modelValue":t.unref(g).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"warn_headers_sent","onUpdate:modelValue":h[0]||(h[0]=y=>t.unref(a)())}),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(p),"field-names":t.unref(d),items:t.unref(s),"node-type":"exit","onChange:input":t.unref(c),"onChange:inputs":t.unref(l)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}});function U8(e){const n=rn(e),{state:r,getNodeById:o,branchGroups:i,commit:a}=Ct(),{i18n:{t:s}}=Ye(),l=Kb(),c=gl(),d=t.computed(()=>{const y={...n.formData.value},w=Pa(n.currentNode.value?.type||"branch");for(const b of w)(!(b in y)||y[b]==null)&&(y[b]=[]);return y});function u(y,w,b){const E=o(y),k=o(b),N=E?`${E.name}.${w}`:`${y}.${w}`,T=k?k.name:b;return[N,T]}function f(y){return(y==null?[]:Array.isArray(y)?y:[y]).filter(w=>hf(w))}function p(y,w){return i.wouldCreateCycle(y,w)?(c({message:s("plugins.free-form.datakit.flow_editor.error.branch_cycle"),appearance:"danger"}),!0):!1}function m(y,w,b){const E=[],k=[],N=[];for(const T of b){const x=i.findMembership(T);if(!x||x.ownerId===y&&x.branch===w)continue;const B=i.getMembers(x.ownerId,x.branch).filter(O=>O!==T);N.push({ownerId:x.ownerId,branch:x.branch,members:B}),E.push(u(y,w,T)),k.push(u(x.ownerId,x.branch,T))}return{conflictUpdates:N,addedAssignments:E,removedAssignments:k}}function g(y,w,b,E){let k=!1;for(const N of E)k=i.setMembers(N.ownerId,N.branch,N.members,{commit:!1})||k;return k=i.setMembers(y,w,b,{commit:!1})||k,k}async function _(y,w){const b=n.currentNode.value,E=f(w),k=i.prepareMembers(b.id,y,E),N=i.getMembers(b.id,y);if(yf(N,k))return!0;const T=k.filter(I=>!N.includes(I));for(const I of T)if(p(b.id,I))return!1;const{conflictUpdates:x,addedAssignments:B,removedAssignments:O}=m(b.id,y,T);return x.length>0&&!await l(s("plugins.free-form.datakit.flow_editor.confirm.message.branch_replace"),B,O)?!1:(g(b.id,y,k,x)&&a(),!0)}const h=t.computed(()=>{const y=n.currentNode.value;return!y||!i?[]:r.value.nodes.filter(w=>w.id!==e&&!tn(w.type)&&w.phase===y.phase&&!i.wouldCreateCycle(y.id,w.id)).map(w=>({value:w.id,label:w.name,type:w.type}))});return{...n,formData:d,branchOptions:h,updateBranchMembers:_}}const j8=t.defineComponent({__name:"NodeFormBranch",props:{nodeId:{}},setup(e){const{i18n:{t:n}}=Ye(),r=on("branch"),o=t.ref(0),{formData:i,setName:a,inputOptions:s,branchOptions:l,nameValidator:c,setInput:d,setInputs:u,inputsFieldNames:f,fieldNameValidator:p,updateBranchMembers:m}=U8(e.nodeId);async function g(_,h){await m(_,h)||(o.value+=1)}return(_,h)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{key:o.value,data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{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(t.unref(S.EnumField),{"enable-filtering":"",items:t.unref(l),multiple:"",name:"then",onUpdate:h[0]||(h[0]=y=>g("then",y))},{"item-label":t.withCtx(y=>[t.createVNode(Nc,{item:y},null,8,["item"])]),_:1},8,["items"]),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",items:t.unref(l),multiple:"",name:"else",onUpdate:h[1]||(h[1]=y=>g("else",y))},{"item-label":t.withCtx(y=>[t.createVNode(Nc,{item:y},null,8,["item"])]),_:1},8,["items"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(p),"field-names":t.unref(f),items:t.unref(s),"node-type":"branch","onChange:input":t.unref(d),"onChange:inputs":t.unref(u)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),K8=t.defineComponent({__name:"NodeFormCache",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("cache"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Ir({validationConfig:()=>({ttl:Xt(vo("integer",{fieldName:"TTL"}),Jr(1,1/0,{fieldName:"TTL"}))}),getValidationData:()=>({ttl:i.value.ttl}),toggleNodeValid:p}),_=g("ttl",()=>s("ttl"));return(h,y)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"bypass_on_error","onUpdate:modelValue":y[0]||(y[0]=w=>t.unref(s)("bypass_on_error"))}),t.createVNode(t.unref(S.NumberField),{error:t.unref(_).error,"error-message":t.unref(_).errorMessage,name:"ttl",onBlur:t.unref(_).validate,"onUpdate:modelValue":t.unref(_).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"cache","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"]))}}),q8=t.defineComponent({__name:"NodeFormXmlToJson",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("xml_to_json"),o=t.computed(()=>r.value.fields.some(ee=>"force_array_paths"in ee)),{i18n:{t:i}}=Ye(),{formData:a,setName:s,setConfig:l,inputOptions:c,setInputs:d,setInput:u,inputsFieldNames:f,nameValidator:p,toggleNodeValid:m,fieldNameValidator:g}=rn(e.nodeId,()=>n.value.getValue()),_=i("plugins.free-form.datakit.flow_editor.node_properties.errors.attributes_required"),h=ee=>ee&&S0(ee)?"":i("plugins.free-form.datakit.flow_editor.node_properties.errors.invalid_force_array_path"),y=()=>!!(a.value.attributes_block_name||a.value.attributes_name_prefix),{createFieldHandler:w}=Ir({validationConfig:()=>({attributes_block_name:Xt(()=>y()?void 0:_,ee=>{if(ee)return xr(1,32,{fieldName:"Attributes block name"})(ee)}),attributes_name_prefix:Xt(()=>y()?void 0:_,ee=>{if(ee)return xr(1,32,{fieldName:"Attributes name prefix"})(ee)}),text_block_name:xr(1,32,{fieldName:"Text block name"}),xpath:xr(1,256,{fieldName:"XPath"}),force_array_paths:ee=>ee?.map(h).find(Boolean)}),getValidationData:()=>({attributes_block_name:a.value.attributes_block_name,attributes_name_prefix:a.value.attributes_name_prefix,text_block_name:a.value.text_block_name,xpath:a.value.xpath,force_array_paths:a.value.force_array_paths}),toggleNodeValid:m}),b=w("attributes_block_name",()=>l("attributes_block_name")),E=w("attributes_name_prefix",()=>l("attributes_name_prefix")),k=w("text_block_name",()=>l("text_block_name")),N=w("xpath",()=>l("xpath")),T=w("force_array_paths",()=>l("force_array_paths")),x=t.ref({}),B=()=>{T.value.error&&a.value.force_array_paths?.forEach((ee,j)=>O(j))},O=ee=>{x.value[ee]=h(a.value.force_array_paths?.[ee])},A=ee=>{T.value.validate(),O(ee)},I=ee=>{T.value.update(),O(ee)},V=ee=>{x.value=Object.fromEntries(Object.entries(x.value).filter(([j])=>Number(j)!==ee).map(([j,G])=>[Number(j)>ee?Number(j)-1:Number(j),G])),T.value.update(),B()};t.onMounted(B);const L=()=>{b.value.validate(),E.value.validate()},R=()=>{b.value.update(),E.value.validate()},Z=()=>{E.value.update(),b.value.validate()};return(ee,j)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(a),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(a).name,validate:t.unref(p),onUpdate:t.unref(s)},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(i)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.BooleanField),{name:"recognize_type","onUpdate:modelValue":j[0]||(j[0]=G=>t.unref(l)("recognize_type"))}),t.createVNode(t.unref(S.StringField),{error:t.unref(b).error,"error-message":t.unref(b).errorMessage,name:"attributes_block_name",onBlur:L,"onUpdate:modelValue":R},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(E).error,"error-message":t.unref(E).errorMessage,name:"attributes_name_prefix",onBlur:L,"onUpdate:modelValue":Z},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(k).error,"error-message":t.unref(k).errorMessage,name:"text_block_name",onBlur:t.unref(k).validate,"onUpdate:modelValue":t.unref(k).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"text_as_property","onUpdate:modelValue":j[1]||(j[1]=G=>t.unref(l)("text_as_property"))}),t.createVNode(t.unref(S.StringField),{error:t.unref(N).error,"error-message":t.unref(N).errorMessage,name:"xpath",onBlur:t.unref(N).validate,"onUpdate:modelValue":t.unref(N).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),o.value?(t.openBlock(),t.createBlock(t.unref(S.ArrayField),{key:0,name:"force_array_paths",onAdd:j[2]||(j[2]=G=>t.unref(l)("force_array_paths")),onRemove:V},{item:t.withCtx(({fieldName:G,index:$,autofocus:pe})=>[t.createVNode(t.unref(S.StringField),{autofocus:pe,error:!!x.value[$],"error-message":x.value[$],name:G,placeholder:t.unref(i)("plugins.free-form.datakit.flow_editor.node_properties.xml_to_json.force_array_paths.placeholder"),onBlur:de=>A($),"onUpdate:modelValue":de=>I($)},null,8,["autofocus","error","error-message","name","placeholder","onBlur","onUpdate:modelValue"])]),_:1})):t.createCommentVNode("",!0),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(g),"field-names":t.unref(f),items:t.unref(c),"node-type":"xml_to_json","onChange:input":t.unref(u),"onChange:inputs":t.unref(d)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),G8=t.defineComponent({__name:"NodeFormJsonToXml",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("json_to_xml"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,addField:u,removeFieldByName:f,renameFieldByName:p,inputsFieldNames:m,nameValidator:g,toggleNodeValid:_,fieldNameValidator:h}=rn(e.nodeId,()=>n.value.getValue()),y=o("plugins.free-form.datakit.flow_editor.node_properties.errors.attributes_required"),w=()=>!!(i.value.attributes_block_name||i.value.attributes_name_prefix),{createFieldHandler:b}=Ir({validationConfig:{attributes_block_name:Xt(()=>w()?void 0:y,xr(1,32,{fieldName:"Attributes block name"})),attributes_name_prefix:Xt(()=>w()?void 0:y,xr(1,32,{fieldName:"Attributes name prefix"})),root_element_name:xr(1,64,{fieldName:"Root element name"}),text_block_name:xr(1,32,{fieldName:"Text block name"})},getValidationData:()=>({attributes_block_name:i.value.attributes_block_name,attributes_name_prefix:i.value.attributes_name_prefix,root_element_name:i.value.root_element_name,text_block_name:i.value.text_block_name}),toggleNodeValid:_}),E=b("attributes_block_name",()=>s("attributes_block_name")),k=b("attributes_name_prefix",()=>s("attributes_name_prefix")),N=b("root_element_name",()=>s("root_element_name")),T=b("text_block_name",()=>s("text_block_name"));function x(){E.value.validate(),k.value.validate()}function B(){E.value.update(),k.value.validate()}function O(){k.value.update(),E.value.validate()}function A(L,R){u("input",L,R)}function I(L){f("input",L)}function V(L,R){p("input",L,R)}return(L,R)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(g),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.StringField),{error:t.unref(E).error,"error-message":t.unref(E).errorMessage,name:"attributes_block_name",onBlur:x,"onUpdate:modelValue":B},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(k).error,"error-message":t.unref(k).errorMessage,name:"attributes_name_prefix",onBlur:x,"onUpdate:modelValue":O},null,8,["error","error-message"]),t.createVNode(t.unref(S.StringField),{error:t.unref(N).error,"error-message":t.unref(N).errorMessage,name:"root_element_name",onBlur:t.unref(N).validate,"onUpdate:modelValue":t.unref(N).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{error:t.unref(T).error,"error-message":t.unref(T).errorMessage,name:"text_block_name",onBlur:t.unref(T).validate,"onUpdate:modelValue":t.unref(T).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(h),"field-names":t.unref(m),items:t.unref(l),"node-type":"json_to_xml","onAdd:field":A,"onChange:input":t.unref(d),"onChange:inputs":t.unref(c),"onRemove:field":I,"onRename:field":V},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),z8=t.defineComponent({__name:"NodeFormJwtDecode",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_decode"),{formData:o,setName:i,inputOptions:a,setInputs:s,setInput:l,inputsFieldNames:c,nameValidator:d,fieldNameValidator:u}=rn(e.nodeId,()=>n.value.getValue());return(f,p)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(o),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(o).name,validate:t.unref(d),onUpdate:t.unref(i)},null,8,["name","validate","onUpdate"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(u),"field-names":t.unref(c),items:t.unref(a),"node-type":"jwt_decode","onChange:input":t.unref(l),"onChange:inputs":t.unref(s)},null,8,["field-name-validator","field-names","items","onChange:input","onChange:inputs"])]),_:1},8,["data","schema"]))}}),H8=t.defineComponent({__name:"NodeFormJwtSign",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_sign"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>{const w={...n.value.getValue()};return(!w.static_claims||Object.keys(w.static_claims).length===0)&&delete w.static_claims,w}),{createFieldHandler:g}=Ir({validationConfig:{algorithm:Io({fieldName:"Algorithm"}),expires_in:Xt(vo("integer",{fieldName:"Expires in"}),Jr(1,1/0,{fieldName:"Expires in"})),not_before:Xt(vo("integer",{fieldName:"Not before"}),Jr(0,1/0,{fieldName:"Not before"}))},getValidationData:()=>({algorithm:i.value.algorithm,expires_in:i.value.expires_in,not_before:i.value.not_before}),toggleNodeValid:p}),_=g("algorithm",()=>s("algorithm")),h=g("expires_in",()=>s("expires_in")),y=g("not_before",()=>s("not_before"));return(w,b)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",name:"algorithm",onUpdate:t.unref(_).update},null,8,["onUpdate"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(h).error,"error-message":t.unref(h).errorMessage,name:"expires_in",onBlur:t.unref(h).validate,"onUpdate:modelValue":t.unref(h).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.NumberField),{error:t.unref(y).error,"error-message":t.unref(y).errorMessage,name:"not_before",onBlur:t.unref(y).validate,"onUpdate:modelValue":t.unref(y).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.StringField),{name:"kid","onUpdate:modelValue":b[0]||(b[0]=E=>t.unref(s)("kid"))}),t.createVNode(t.unref(S.StringField),{name:"typ","onUpdate:modelValue":b[1]||(b[1]=E=>t.unref(s)("typ"))}),t.createVNode(t.unref(S.MapField),{label:t.unref(o)("plugins.free-form.datakit.flow_editor.node_properties.jwt.static_claims.label"),name:"static_claims",onLegacyValueChange:b[2]||(b[2]=E=>t.unref(s)("static_claims"))},null,8,["label"]),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"jwt_sign","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"]))}}),W8=t.defineComponent({__name:"NodeFormJwtVerify",props:{nodeId:{}},setup(e){const n=t.useTemplateRef("form"),r=on("jwt_verify"),{i18n:{t:o}}=Ye(),{formData:i,setName:a,setConfig:s,inputOptions:l,setInputs:c,setInput:d,inputsFieldNames:u,nameValidator:f,toggleNodeValid:p,fieldNameValidator:m}=rn(e.nodeId,()=>n.value.getValue()),{createFieldHandler:g}=Ir({validationConfig:{leeway:Xt(vo("integer",{fieldName:"Leeway"}),Jr(0,1/0,{fieldName:"Leeway"}))},getValidationData:()=>({leeway:i.value.leeway}),toggleNodeValid:p}),_=g("leeway",()=>s("leeway"));return(h,y)=>(t.openBlock(),t.createBlock(t.unref(S.Form),{ref:"form",data:t.unref(i),schema:t.unref(r)},{default:t.withCtx(()=>[t.createVNode(vn,{name:t.unref(i).name,validate:t.unref(f),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(o)("plugins.free-form.datakit.flow_editor.node_properties.configuration")),1)]),_:1}),t.createVNode(t.unref(S.EnumField),{"enable-filtering":"",multiple:"",name:"allowed_algorithms",onUpdate:y[0]||(y[0]=w=>t.unref(s)("allowed_algorithms"))}),t.createVNode(t.unref(S.ArrayField),{name:"issuers",onAdd:y[2]||(y[2]=w=>t.unref(s)("issuers")),onRemove:y[3]||(y[3]=w=>t.unref(s)("issuers"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[1]||(y[1]=E=>t.unref(s)("issuers"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.ArrayField),{name:"audiences",onAdd:y[5]||(y[5]=w=>t.unref(s)("audiences")),onRemove:y[6]||(y[6]=w=>t.unref(s)("audiences"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[4]||(y[4]=E=>t.unref(s)("audiences"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.ArrayField),{name:"required_claims",onAdd:y[8]||(y[8]=w=>t.unref(s)("required_claims")),onRemove:y[9]||(y[9]=w=>t.unref(s)("required_claims"))},{item:t.withCtx(({fieldName:w,autofocus:b})=>[t.createVNode(t.unref(S.StringField),{autofocus:b,name:w,"onUpdate:modelValue":y[7]||(y[7]=E=>t.unref(s)("required_claims"))},null,8,["autofocus","name"])]),_:1}),t.createVNode(t.unref(S.NumberField),{error:t.unref(_).error,"error-message":t.unref(_).errorMessage,name:"leeway",onBlur:t.unref(_).validate,"onUpdate:modelValue":t.unref(_).update},null,8,["error","error-message","onBlur","onUpdate:modelValue"]),t.createVNode(t.unref(S.BooleanField),{name:"validate_exp","onUpdate:modelValue":y[10]||(y[10]=w=>t.unref(s)("validate_exp"))}),t.createVNode(t.unref(S.BooleanField),{name:"validate_nbf","onUpdate:modelValue":y[11]||(y[11]=w=>t.unref(s)("validate_nbf"))}),t.createVNode(In),t.createVNode(mn,{"field-name-validator":t.unref(m),"field-names":t.unref(u),items:t.unref(l),"node-type":"jwt_verify","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"]))}}),Y8=["innerHTML"],J8={key:1,class:"branch-note"},X8={class:"branch-label"},Z8={class:"branch-text"},Q8=t.defineComponent({__name:"NodePropertiesPanel",props:{maxWidth:{default:`${ny}px`},offsetTop:{default:`${vS}px`},visible:{type:Boolean},nodeId:{}},emits:["close"],setup(e){const{t:n}=It.createI18n("en-us",Bt),{getNodeById:r,branchGroups:o}=Ct(),i=t.computed(()=>e.nodeId&&r(e.nodeId)),a=t.computed(()=>{if(e.nodeId)return o.findMembership(e.nodeId)}),s=t.computed(()=>{if(!a.value)return"";const d=r(a.value.ownerId);return d?`${d.name}.${a.value.branch}`:""});function l(){e.nodeId&&o.removeMember(e.nodeId)}const c=t.computed(()=>{switch(i.value?.type){case"call":return x8;case"service_request":return I8;case"response":return v8;case"jq":return T8;case"static":return V8;case"property":return D8;case"exit":return M8;case"branch":return j8;case"cache":return K8;case"xml_to_json":return q8;case"json_to_xml":return G8;case"jwt_decode":return z8;case"jwt_sign":return H8;case"jwt_verify":return W8;default:return null}});return(d,u)=>(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(IS),onClose:u[0]||(u[0]=f=>d.$emit("close"))},t.createSlots({default:t.withCtx(()=>[i.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"dk-node-properties-panel-desc",innerHTML:t.unref(ii)(i.value.type)},null,8,Y8)):t.createCommentVNode("",!0),a.value?(t.openBlock(),t.createElementBlock("div",J8,[t.createElementVNode("span",X8,[t.createVNode(t.unref(Ne.ArrowSplitIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["color","size"]),t.createElementVNode("span",Z8,t.toDisplayString(s.value),1)]),t.createVNode(t.unref(be.KTooltip),{placement:"top",text:t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch")},{default:t.withCtx(()=>[t.createVNode(t.unref(be.KButton),{appearance:"none","aria-label":t.unref(n)("plugins.free-form.datakit.flow_editor.actions.remove_from_branch"),class:"remove-branch",icon:"",size:"small",onClick:l},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.TrashIcon))]),_:1},8,["aria-label"])]),_:1},8,["text"])])):t.createCommentVNode("",!0),c.value?(t.openBlock(),t.createBlock(t.unref(c),{key:e.nodeId,class:"dk-node-properties-panel-form","node-id":e.nodeId},null,8,["node-id"])):t.createCommentVNode("",!0)]),_:2},[i.value?{name:"title",fn:t.withCtx(()=>[t.createVNode(Df,{type:i.value.type},null,8,["type"])]),key:"0"}:void 0]),1032,["max-width","offset-top","visible","z-index"]))}}),eq=ve(Q8,[["__scopeId","data-v-32602117"]]),tq={class:"dk-editor-content"},nq={class:"main"},rq=ve(t.defineComponent({__name:"EditorContent",setup(e){const{propertiesPanelOpen:n,selectedNode:r}=Ct();function o(){n.value=!1}t.watch(r,a=>{a||o()});const i=t.ref(!1);return t.onMounted(()=>{i.value=!0}),(a,s)=>(t.openBlock(),t.createElementBlock("div",tq,[t.createVNode(t.unref(lK)),t.createElementVNode("div",nq,[t.createVNode(bj)]),t.createVNode(eq,{"node-id":t.unref(r)?.id,visible:t.unref(n),onClose:o},null,8,["node-id","visible"])]))}}),[["__scopeId","data-v-66331c5c"]]),oq={key:0,class:"dk-editor-modal"},iq=ve(t.defineComponent({__name:"EditorModal",props:{open:{type:Boolean},openModifiers:{}},emits:["update:open"],setup(e){t.useCssVars(l=>({v38ec900c:`${t.unref(xS)}px`,v620586b8:`${t.unref(ty)}px`}));const n=t.useModel(e,"open"),r=t.ref(!1),o=t.useTemplateRef("confirm-modal"),{clear:i}=Ct();c$(async(...l)=>{r.value=!0;const c=await o.value.open(...l);return r.value=!1,c});const a=Et.useScrollLock(document);t.watch(n,l=>{a.value=!!l,l||i()},{immediate:!0});function s(){n.value=!1}return(l,c)=>n.value?(t.openBlock(),t.createElementBlock("div",oq,[t.createVNode(pj,{class:"nav",onBack:s}),t.createVNode(rq,{ref:"content",class:"content",tabindex:"0"},null,512),t.createVNode(cj,{ref:"confirm-modal"},null,512)])):t.createCommentVNode("",!0)}}),[["__scopeId","data-v-c3604472"]]),aq={class:"dk-flow-editor"},sq={class:"flow-panels-container"},lq={class:"overlay"},cq=ve(t.defineComponent({__name:"FlowEditor",props:{isEditing:{type:Boolean}},emits:["change","error"],setup(e,{emit:n}){const{t:r}=It.createI18n("en-us",Bt),{setValue:o,getValue:i}=S.useFormShared(),a=n;function s(d,u,f,p){const m=SB(i(),d,u,f,p);o(m),a("change",m.config,m.__ui_data)}const{modalOpen:l,setPendingFitView:c}=Lf(i(),{onChange:s,isEditing:e.isEditing,enableCallErrorHandling:h0().value});return t.watch(l,()=>{c(!0)},{flush:"post"}),HU({enabled:l}),(d,u)=>{const f=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",aq,[t.createElementVNode("div",sq,[t.createVNode(em,{inactive:t.unref(l),mode:"preview"},null,8,["inactive"]),t.createElementVNode("div",lq,[t.createVNode(f,{appearance:"secondary",class:"button-open-editor",onClick:u[0]||(u[0]=p=>l.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.datakit.flow_editor.cta"))+" ",1),t.createVNode(t.unref(Ne.ExpandIcon))]),_:1})])]),t.createVNode(iq,{open:t.unref(l),"onUpdate:open":u[1]||(u[1]=p=>t.isRef(l)?l.value=p:null)},null,8,["open"])])}}}),[["__scopeId","data-v-e179d0f4"]]),dq=["innerHTML"],uq={class:"dk-option-label"},fq=Me({component:ve(t.defineComponent({inheritAttrs:!1,__name:"DatakitForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const{t:n}=It.createI18n("en-us",Bt),r=e,o=t.useAttrs(),i=t.inject(Ze.FORMS_CONFIG),a=t.ref(!1);t.onMounted(()=>{a.value=!!document.querySelector("#plugin-form-page-actions")});const{editorMode:s}=Cc(),l=t.computed(()=>i.app!=="konnect"||u.value===!1?"code":s.value),c=t.computed(()=>i.app==="kongManager"?"code":l.value==="flow"?"form":"code"),d={flow:Ne.DesignIcon,code:Ne.CodeblockIcon},u=t.ref(!0),f=t.ref("");function p(x){const{success:B,error:O}=B0.safeParse(x);f.value=B||!O?"":k(O),u.value=B}i.app==="konnect"&&p(r.model?.config);const m=t.computed(()=>{const x=[{label:n("plugins.free-form.datakit.flow_editor.mode"),value:"flow"},{label:n("plugins.free-form.datakit.code_editor.mode"),value:"code"}];return x[0].disabled=!u.value,x}),g=t.ref(!(r.isEditing&&r.model?.config?.ca_certificates?.length)),_=t.computed(()=>!!r.schema?.fields?.find(B=>"config"in B)?.config?.fields?.some(B=>"ca_certificates"in B)),h=t.computed(()=>{const x=[{name:"plugin-config",title:n("plugins.free-form.datakit.flow_editor.mode"),description:n("plugins.free-form.datakit.description_flow")}];return _.value&&x.push({name:"advanced",title:n("plugins.free-form.datakit.advanced_configuration.title")}),x}),y=t.computed(()=>u.value?"":n("plugins.free-form.datakit.flow_editor.disabled_tooltip",{reason:f.value,code:x=>`<code>${LO(x)}</code>`}));t.watch(l,()=>{r.onValidityChange?.({model:"config",valid:!0})});function w(){r.onValidityChange?.({model:"config",valid:!0})}function b(){w()}function E(x){return x.map(B=>typeof B=="number"?`[${B}]`:x.length&&typeof B=="string"&&B.includes(".")?`["${B}"]`:`.${B}`).join("").replace(/^\./,"")}function k(x){return x.issues.map(B=>`${E(B.path)} - ${B.message}`).join("; ")}function N(x){if(w(),i.app!=="konnect")return;const B=x?.config;p(B)}function T(x){f.value=x,u.value=!1,r.onValidityChange?.({model:"config",valid:!1,error:x})}return(x,B)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.unref(i).app==="konnect"?(t.openBlock(),t.createBlock(t.Teleport,{key:0,defer:"",disabled:!a.value,to:"#plugin-form-page-actions"},[t.createVNode(t.unref(be.KSegmentedControl),{"data-testid":"datakit-editor-mode-switcher","model-value":l.value,options:m.value,"onUpdate:modelValue":B[0]||(B[0]=O=>s.value=O)},{"option-label":t.withCtx(({option:O})=>[t.createVNode(t.unref(be.KTooltip),{disabled:u.value||O.value!=="flow"},{content:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:y.value},null,8,dq)]),default:t.withCtx(()=>[t.createElementVNode("div",uq,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(d[O.value]))),t.createTextVNode(" "+t.toDisplayString(O.label),1)])]),_:2},1032,["disabled"])]),_:1},8,["model-value","options"])],8,["disabled"])):t.createCommentVNode("",!0),t.createVNode(nn,t.mergeProps({...t.unref(o),...r},{class:"dk-form","config-sections":h.value,"editor-mode":c.value,"hide-editor-mode-switcher":""}),{"section-plugin-config":t.withCtx(()=>[l.value==="flow"?(t.openBlock(),t.createBlock(cq,{key:0,"is-editing":r.isEditing,onChange:b},null,8,["is-editing"])):t.createCommentVNode("",!0)]),"section-advanced":t.withCtx(()=>[t.createVNode(t.unref(be.KCollapse),{modelValue:g.value,"onUpdate:modelValue":B[1]||(B[1]=O=>g.value=O),"data-testid":"dk-advanced-configuration-collapse","trigger-label":g.value?t.unref(n)("plugins.free-form.datakit.advanced_configuration.show_label"):t.unref(n)("plugins.free-form.datakit.advanced_configuration.hide_label")},{default:t.withCtx(()=>[t.createVNode(MU,{name:"$.config.ca_certificates"})]),_:1},8,["modelValue","trigger-label"])]),"code-editor":t.withCtx(()=>[t.createVNode(GU,{class:"code-editor",editing:r.isEditing,onChange:N,onError:T},null,8,["editing"])]),_:1},16,["config-sections","editor-mode"])],64))}}),[["__scopeId","data-v-2a94f26a"]])}),pq={class:"ff-response-mapping"},mq={class:"ff-response-mapping-header"},gq={class:"ff-response-mapping-col ff-response-mapping-col--code"},hq={class:"ff-response-mapping-col ff-response-mapping-col--status"},yq={class:"ff-response-mapping-col ff-response-mapping-col--message"},_q={class:"ff-response-mapping-col ff-response-mapping-col--code"},bq={class:"ff-response-mapping-col ff-response-mapping-col--status"},wq={class:"ff-response-mapping-col ff-response-mapping-col--message"},kq=ve(t.defineComponent({__name:"ResponseMappingField",setup(e){const{i18n:{t:n}}=Ye(),r=["NO_CREDIT_AVAILABLE","USAGE_LIMIT_REACHED","FEATURE_UNAVAILABLE","FEATURE_NOT_FOUND","CUSTOMER_NOT_FOUND"],{formData:o,getDefault:i}=S.useFormShared();for(const a of r)for(const s of["http_status","message"]){const l=["config","response_codes",a,s];Aa(o,l)==null&&V_(o,l,i(`config.response_codes.${a}.${s}`))}return(a,s)=>(t.openBlock(),t.createElementBlock("div",pq,[t.createElementVNode("div",mq,[t.createElementVNode("span",gq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.code")),1),t.createElementVNode("span",hq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.status")),1),t.createElementVNode("span",yq,t.toDisplayString(t.unref(n)("plugins.free-form.governance.fields.response.columns.message")),1)]),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(r,l=>t.createElementVNode("div",{key:l,class:"ff-response-mapping-row"},[t.createElementVNode("div",_q,[t.createVNode(t.unref(be.KInput),{"data-testid":`ff-response-mapping-code-${l}`,"model-value":l,readonly:""},null,8,["data-testid","model-value"])]),t.createElementVNode("div",bq,[t.createVNode(t.unref(S.NumberField),{label:"",name:`config.response_codes.${l}.http_status`},null,8,["name"])]),t.createElementVNode("div",wq,[t.createVNode(t.unref(S.StringField),{label:"",name:`config.response_codes.${l}.message`},null,8,["name"])])])),64))]))}}),[["__scopeId","data-v-7303bff5"]]),Cq={class:"ff-card-radio-field"},Eq={class:"ff-card-radio-field-cards"},om=ve(t.defineComponent({__name:"CardRadioField",props:{name:{},label:{},options:{}},setup(e){const n=e,{formData:r}=S.useFormShared(),o=t.computed({get:()=>{const i=n.name.split(".");return Aa(r,i)},set:i=>{const a=n.name.split(".");V_(r,a,i)}});return(i,a)=>(t.openBlock(),t.createElementBlock("div",Cq,[e.label?(t.openBlock(),t.createBlock(t.unref(be.KLabel),{key:0},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),_:1})):t.createCommentVNode("",!0),t.createElementVNode("div",Eq,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.options,s=>(t.openBlock(),t.createBlock(t.unref(be.KRadio),{key:String(s.value),modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),card:"","card-orientation":"horizontal",description:s.description,label:s.label,"selected-value":s.value},null,8,["modelValue","description","label","selected-value"]))),128))])]))}}),[["__scopeId","data-v-16fa5598"]]),Nq={class:"ff-feature-option"},Sq={class:"ff-feature-option-key"},Aq={key:0,class:"ff-feature-option-name"},xq=ve(t.defineComponent({__name:"FeatureSelectField",emits:["click:create-entity"],setup(e,{emit:n}){const r=n,{i18n:{t:o}}=Ye(),i=t.inject(Ze.FORMS_CONFIG),{axiosInstance:a}=ge.useAxios(i?.axiosRequestConfig),{formData:s}=S.useFormShared(),l=t.computed(()=>i?.metering?.canListFeatures!==!1),c=t.computed(()=>i?.metering?.canCreateFeature!==!1),d=t.ref([]),u=t.ref(!1),f=t.computed(()=>i?.metering?.featuresEndpoint??""),p=t.computed(()=>Aa(s,["config","feature","key"])),m=t.computed(()=>{const _=[...d.value];return p.value&&!_.some(h=>h.value===p.value)&&_.unshift({label:p.value,value:p.value}),_});async function g(){if(!(!l.value||!f.value)){u.value=!0;try{const h=(await a.get(f.value)).data?.data??[];d.value=h.map(y=>({label:y.key,value:y.key,name:y.name}))}catch(_){console.warn("[governance]",o("plugins.free-form.governance.fields.feature_key.load_error"),_)}finally{u.value=!1}}}return t.onMounted(g),(_,h)=>{const y=t.resolveComponent("KAlert");return t.openBlock(),t.createElementBlock(t.Fragment,null,[l.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(y,{key:0,appearance:"warning",class:"ff-feature-unavailable","data-testid":"ff-feature-unavailable",message:t.unref(o)("plugins.free-form.governance.fields.feature_key.unavailable"),"show-icon":""},null,8,["message"])),t.createVNode(t.unref(S.EnumField),{disabled:!l.value,"enable-filtering":"",help:t.unref(o)("plugins.free-form.governance.fields.feature_key.help"),items:m.value,label:t.unref(o)("plugins.free-form.governance.fields.feature_key.label"),loading:u.value,name:"config.feature.key"},t.createSlots({"item-label":t.withCtx(w=>[t.createElementVNode("div",Nq,[t.createElementVNode("span",Sq,t.toDisplayString(w.value),1),w.name?(t.openBlock(),t.createElementBlock("span",Aq,t.toDisplayString(w.name),1)):t.createCommentVNode("",!0)])]),_:2},[c.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("div",{class:"ff-feature-create","data-testid":"ff-feature-create-action",onClick:h[0]||(h[0]=w=>r("click:create-entity",{type:"feature"}))},[t.createElementVNode("span",null,t.toDisplayString(t.unref(o)("plugins.free-form.governance.fields.feature_key.create_feature")),1)])]),key:"0"}:void 0]),1032,["disabled","help","items","label","loading"])],64)}}}),[["__scopeId","data-v-57fec0bf"]]),Iq={class:"ff-entitlement-enforcement-subject"},vq={class:"ff-entitlement-enforcement-connection-heading"},Tq={class:"ff-entitlement-enforcement-inline-row"},Oq={class:"ff-entitlement-enforcement-cache-sync-heading"},Bq={class:"ff-entitlement-enforcement-cache-sync"},Pq={class:"ff-entitlement-enforcement-response-mapping-heading"},Vq={class:"ff-entitlement-enforcement-deny-unknown-customers-heading"},$q=Me({component:ve(t.defineComponent({__name:"EntitlementEnforcementForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},emits:["click:create-entity"],setup(e,{emit:n}){const r=e,o=n,i=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,i?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:a}}=Ye(),s=t.inject(Ze.FORMS_CONFIG),l=t.computed(()=>s?.app==="kongManager"),d=t.inject(Jp)?.(()=>!l.value);t.onUnmounted(()=>d?.());const u=t.computed(()=>{const h=s?.geoApiServerUrl,y=h?new URL(h).hostname.split(".")[0]:null;return y?`https://${y}.api.konghq.com/v3/openmeter/entitlement-access/query`:"https://us.api.konghq.com/v3/openmeter/entitlement-access/query"}),f={prepareFormData:h=>r.isEditing?h:s?.app==="konnect"&&!h?.config?.entitlement_access_endpoint?{...h,config:{...h?.config,entitlement_access_endpoint:u.value}}:h},p=[{name:"configuration",title:a("plugins.free-form.governance.sections.configuration.title"),description:a("plugins.free-form.governance.sections.configuration.description")},{name:"entitlement-enforcement",title:a("plugins.free-form.governance.sections.governance.title"),description:a("plugins.free-form.governance.sections.governance.description")}],m=t.computed(()=>[{value:!0,label:a("plugins.free-form.governance.fields.credit_balance_required.yes_label"),description:a("plugins.free-form.governance.fields.credit_balance_required.yes_description")},{value:!1,label:a("plugins.free-form.governance.fields.credit_balance_required.no_label"),description:a("plugins.free-form.governance.fields.credit_balance_required.no_description")}]),g=t.computed(()=>[{value:"allow",label:a("plugins.free-form.governance.fields.fail_policy.allow_label"),description:a("plugins.free-form.governance.fields.fail_policy.allow_description")},{value:"block",label:a("plugins.free-form.governance.fields.fail_policy.block_label"),description:a("plugins.free-form.governance.fields.fail_policy.block_description")}]),_=t.computed(()=>[{value:!1,label:a("plugins.free-form.governance.fields.deny_unknown_customers.allow_label"),description:a("plugins.free-form.governance.fields.deny_unknown_customers.allow_description")},{value:!0,label:a("plugins.free-form.governance.fields.deny_unknown_customers.deny_label"),description:a("plugins.free-form.governance.fields.deny_unknown_customers.deny_description")}]);return(h,y)=>{const w=t.resolveComponent("KAlert");return l.value?(t.openBlock(),t.createBlock(w,{key:0,appearance:"info",class:"ff-entitlement-enforcement-unavailable","data-testid":"ff-entitlement-enforcement-unavailable",message:t.unref(a)("plugins.free-form.governance.unavailable_kong_manager")},null,8,["message"])):(t.openBlock(),t.createBlock(nn,t.mergeProps({key:1},r,{"config-sections":p,"form-config":f}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.customer.look_up_value_in"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(b,{help:t.unref(a)("plugins.free-form.governance.fields.look_up_value_in.help"),label:t.unref(a)("plugins.free-form.governance.fields.look_up_value_in.label")}),null,16,["help","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.customer.field"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.StringField),t.mergeProps(b,{help:t.unref(a)("plugins.free-form.governance.fields.subject_field.help"),label:t.unref(a)("plugins.free-form.governance.fields.subject_field.label"),placeholder:t.unref(a)("plugins.free-form.governance.fields.subject_field.placeholder")}),null,16,["help","label","placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.ssl_verify"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(b,{description:t.unref(a)("plugins.free-form.governance.fields.ssl_verify.description"),label:t.unref(a)("plugins.free-form.governance.fields.ssl_verify.label")}),null,16,["description","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.timeout"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(b,{label:t.unref(a)("plugins.free-form.governance.fields.timeout.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:b})=>b==="config.keepalive"},{default:t.withCtx(b=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(b,{label:t.unref(a)("plugins.free-form.governance.fields.keepalive.label")}),null,16,["label"])]),_:1},8,["match"])]),"section-configuration":t.withCtx(()=>[t.createElementVNode("div",Iq,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config.customer","render-rules":{dependencies:{field:["look_up_value_in",["header","query"]]}},"reset-label-path":"reset"})]),t.createVNode(xq,{"onClick:createEntity":y[0]||(y[0]=b=>o("click:create-entity",b))}),t.createElementVNode("h3",vq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.sections.connection.title")),1),t.createVNode(t.unref(S.StringField),{help:t.unref(a)("plugins.free-form.governance.fields.governance_endpoint.help"),name:"config.entitlement_access_endpoint"},null,8,["help"]),t.createVNode(t.unref(S.Field),{name:"config.api_token"}),t.createVNode(t.unref(S.Field),{name:"config.ssl_verify"}),t.createElementVNode("div",Tq,[t.createVNode(t.unref(S.Field),{name:"config.timeout"}),t.createVNode(t.unref(S.Field),{name:"config.keepalive"})]),t.createVNode(lw,{borderless:"","is-konnect-managed-redis-enabled":r.isKonnectManagedRedisEnabled??!1},null,8,["is-konnect-managed-redis-enabled"]),t.createVNode(Yr,{class:"ff-entitlement-enforcement-advanced-fields-container","data-testid":"ff-entitlement-enforcement-config-advanced-fields","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createElementVNode("h3",Oq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.sections.cache_sync.title")),1),t.createElementVNode("div",Bq,[t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.sync_rate.label"),name:"config.sync_rate"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.refresh_interval.label"),name:"config.refresh_interval"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.max_stale_seconds.label"),name:"config.max_stale_seconds"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.l1_ttl.label"),name:"config.l1_cache_ttl_seconds"},null,8,["label"]),t.createVNode(t.unref(S.NumberField),{label:t.unref(a)("plugins.free-form.governance.fields.l2_ttl.label"),name:"config.l2_cache_ttl_seconds"},null,8,["label"])])])]),_:1})]),"section-entitlement-enforcement":t.withCtx(()=>[t.createVNode(om,{label:t.unref(a)("plugins.free-form.governance.fields.credit_balance_required.label"),name:"config.credit_balance_required",options:m.value},null,8,["label","options"]),t.createVNode(om,{label:t.unref(a)("plugins.free-form.governance.fields.fail_policy.label"),name:"config.fail_policy",options:g.value},null,8,["label","options"]),t.createVNode(Yr,{class:"ff-entitlement-enforcement-advanced-fields-container","data-testid":"ff-entitlement-enforcement-advanced-settings","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",null,[t.createElementVNode("h3",Pq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.fields.response.label")),1),t.createVNode(kq)]),t.createElementVNode("div",null,[t.createElementVNode("h3",Vq,t.toDisplayString(t.unref(a)("plugins.free-form.governance.fields.deny_unknown_customers.label")),1),t.createVNode(om,{name:"config.deny_unknown_customers",options:_.value},null,8,["options"])])]),_:1})]),_:1},16))}}}),[["__scopeId","data-v-e4aad1a9"]])}),Rq=Me({fieldRenderers:[{match:({genericPath:e})=>e==="config.functions.*",component:S.StringField,propsOverrides:e=>({...e,multiline:!0,rows:3})}]}),Lq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Fq=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}}}),Dq=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}}}),Mq=Me({fieldRenderers:[{match:"config.proto",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),Uq=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),jq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Kq=Me({fieldRenderers:[{match:"config.injection_types",component:S.EnumField,propsOverrides:{multiple:!0}},{match:"config.locations",component:S.EnumField,propsOverrides:{multiple:!0}},{match:"config.custom_injections",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Injection`}}]}),qq=Me({fieldRenderers:[{match:({path:e})=>e==="config.request_jq_program"||e==="config.response_jq_program",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),V0=ve(t.defineComponent({__name:"ConfigForm",setup(e){const{getSchema:n,createComputedRenderRules:r}=S.useFormShared(),o=r("config"),i=t.computed(()=>{const s=[],l=[],c=new Set,u=n().fields.find(h=>Object.keys(h)[0]==="config");if(!u||!("config"in u))return{defaultVisible:s,advanced:l};const f=u.config;f.entity_checks&&f.entity_checks.forEach(h=>{let y;"at_least_one_of"in h?y=h.at_least_one_of:"conditional"in h&&n(S.resolve("config",h.conditional.if_field))?.required&&h.conditional.then_match.required?y=[h.conditional.if_field,h.conditional.then_field]:"conditional_at_least_one_of"in h&&n(S.resolve("config",h.conditional_at_least_one_of.if_field))?.required&&(y=[h.conditional_at_least_one_of.if_field,...h.conditional_at_least_one_of.then_at_least_one_of]),y?.forEach(w=>c.add(w.split(".")[0]))});const p=o.value?.bundles??[],m=new Map;for(const h of p)for(let y=1;y<h.length;y++)m.set(h[y],h[y-1]);const g=h=>{const y=m.get(h);return y?g(y):h},_=new Map;for(const h of f.fields){const y=Object.keys(h)[0];_.set(y,g(y))}for(const h of f.fields){const y=Object.keys(h)[0];if(_.get(y)!==y)continue;let b;h[y].required||c.has(y)?b=s:b=l,b.push(y)}for(const h of f.fields){const y=Object.keys(h)[0],w=_.get(y);w!==y&&(s.includes(w)?s:l).push(y)}return{defaultVisible:s,advanced:l}}),a=t.computed(()=>i.value.defaultVisible.length===0);return(s,l)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",class:"ff-default-visible-fields",name:"config",omit:a.value?[]:i.value.advanced,"reset-label-path":"reset"},null,8,["omit"]),a.value?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(Yr,{key:0,class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:i.value.defaultVisible,"reset-label-path":"reset"},null,8,["omit"])]),_:1}))],64))}}),[["__scopeId","data-v-4f13e3ac"]]),$0=t.defineComponent({inheritAttrs:!1,__name:"KeysetField",props:{name:{},scope:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=t.inject(Ze.FORMS_CONFIG),i=t.computed(()=>o?.app==="konnect"),{formData:a,config:s}=S.useFormShared();function l(p){const m=`config.${p}`,g=S.defaultLabelFormatter(p);return s.value.transformLabel?s.value.transformLabel(g,m):g}function c(p){if(typeof p!="string"||!p)return!1;try{const m=new URL(p);return(m.protocol==="http:"||m.protocol==="https:")&&!!m.host}catch{return!1}}const d=t.computed(()=>{if(!i.value)return{hasError:!1,message:""};const p=a.config,m=p?.[`${n.scope}_token_signing`],g=p?.[`${n.scope}_token_upstream_header`];if(!m)return{hasError:!1,message:""};if(typeof g!="string"||g==="")return{hasError:!1,message:""};const _=p?.[`${n.scope}_token_keyset`];return c(_)?{hasError:!1,message:""}:{hasError:!0,message:r("plugins.free-form.jwt-signer.keyset_url_required",{signingField:l(`${n.scope}_token_signing`),headerField:l(`${n.scope}_token_upstream_header`)})}}),u=t.computed(()=>d.value.hasError),f=t.computed(()=>d.value.message);return(p,m)=>(t.openBlock(),t.createBlock(t.unref(S.StringField),t.mergeProps(p.$attrs,{error:u.value,"error-message":f.value,name:e.name}),null,16,["error","error-message","name"]))}}),Gq=Me({component:t.defineComponent({__name:"JwtSignerForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.access_token_signing","config.access_token_upstream_header","config.access_token_keyset"],["config.channel_token_signing","config.channel_token_upstream_header","config.channel_token_keyset"]]},o=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]),(i,a)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"render-rules":r}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:s})=>s==="config.access_token_keyset"},{default:t.withCtx(s=>[t.createVNode($0,t.mergeProps(s,{scope:"access"}),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:s})=>s==="config.channel_token_keyset"},{default:t.withCtx(s=>[t.createVNode($0,t.mergeProps(s,{scope:"channel"}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(V0)]),_:1},16))}})}),zq=Me({fieldRenderers:[{match:"config.message_by_lua_functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}},{match:"config.topics",component:S.ArrayField,propsOverrides:{appearance:"tabs",stickyTabs:!0,itemLabel:(e,n)=>`#${n+1} Topic`}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Hq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Wq=Me({fieldRenderers:[{match:"config.message_by_lua_functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}},{match:"config.bootstrap_servers",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Server`}}]}),Yq=Me({component:d0}),Jq=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),Xq=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),Zq={class:"ff-collapsible-section"},Qq={class:"ff-collapsible-section-header"},e3={class:"ff-collapsible-section-header-toggle"},t3={key:0,class:"ff-collapsible-section-content"},n3={key:0,class:"ff-collapsible-section-indent-guide"},im=ve(t.defineComponent({__name:"CollapsibleSection",props:t.mergeModels({label:{}},{expanded:{type:Boolean,default:!0},expandedModifiers:{}}),emits:["update:expanded"],setup(e){const n=t.useModel(e,"expanded");return(r,o)=>(t.openBlock(),t.createElementBlock("div",Zq,[t.createElementVNode("header",Qq,[t.createElementVNode("div",e3,[t.createElementVNode("button",{class:"ff-collapsible-section-toggle-btn",type:"button",onClick:o[0]||(o[0]=t.withModifiers(i=>n.value=!n.value,["prevent","stop"]))},[t.createVNode(t.unref(Ne.ChevronRightIcon),{class:t.normalizeClass(["ff-collapsible-section-toggle-btn-trigger-icon",{"collapse-expanded":n.value}]),decorative:"",size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["class","size"])]),t.createVNode(t.unref(be.KLabel),{class:"ff-collapsible-section-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),_:1})])]),t.createVNode(t.unref(S.SlideTransition),null,{default:t.withCtx(()=>[n.value?(t.openBlock(),t.createElementBlock("div",t3,[t.renderSlot(r.$slots,"default",{},void 0,!0)])):t.createCommentVNode("",!0)]),_:3}),n.value?(t.openBlock(),t.createElementBlock("div",n3)):t.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-14f2e076"]]),r3={class:"ff-mb-subject"},o3={class:"ff-mb-attributes"},i3={class:"ff-metering-billing-inline-row"},a3={class:"ff-mb-queue"},s3=Me({component:ve(t.defineComponent({__name:"MeteringAndBillingForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:o}}=Ye(),i=t.inject(Ze.FORMS_CONFIG),a=t.computed(()=>{const u=i?.geoApiServerUrl,f=u?new URL(u).hostname.split(".")[0]:null;return f?`https://${f}.api.konghq.com/v3/openmeter/events`:"https://{{region}}.api.konghq.com/v3/openmeter/events"}),s={prepareFormData:u=>n.isEditing?u:i?.app==="konnect"&&!u?.config?.ingest_endpoint?{...u,config:{...u?.config,ingest_endpoint:a.value}}:u},l=t.ref(!0),c=t.ref(!0),d=t.ref(!0);return(u,f)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"form-config":s,"plugin-config-description":t.unref(o)("plugins.free-form.metering-and-billing.sections.plugin_config.description")}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.meter_api_requests"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.meter_api_requests.description")}),null,16,["description"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.meter_ai_token_usage"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.meter_ai_token_usage.description")}),null,16,["description"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.ssl_verify"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.BooleanField),t.mergeProps(p,{description:t.unref(o)("plugins.free-form.metering-and-billing.fields.ssl_verify.description"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.ssl_verify.label")}),null,16,["description","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.subject.look_up_value_in"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(p,{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.look_up_value_in.help"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.look_up_value_in.label")}),null,16,["help","label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.subject.field"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.help"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.label"),placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.subject_field.placeholder")}),null,16,["help","label","placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.timeout"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.timeout.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.keepalive"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.keepalive.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_coalescing_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_coalescing_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.initial_retry_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.initial_retry_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_retry_delay"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_retry_delay.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p==="config.queue.max_retry_time"},{default:t.withCtx(p=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(p,{label:t.unref(o)("plugins.free-form.metering-and-billing.fields.queue.max_retry_time.label")}),null,16,["label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p.startsWith("config.attributes.")&&p.endsWith(".look_up_value_in")},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.look_up_value_in.placeholder")}),null,16,["placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:p})=>p.startsWith("config.attributes.")&&p.endsWith(".event_property_name")},{default:t.withCtx(p=>[t.createVNode(t.unref(S.StringField),t.mergeProps(p,{placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.event_property_name.placeholder")}),null,16,["placeholder"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(im,{expanded:l.value,"onUpdate:expanded":f[0]||(f[0]=p=>l.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.sections.metering.title")},{default:t.withCtx(()=>[t.createVNode(t.unref(S.Field),{name:"config.meter_api_requests"}),t.createVNode(t.unref(S.Field),{name:"config.meter_ai_token_usage"}),t.createVNode(t.unref(S.ArrayField),{"add-item-label":t.unref(o)("plugins.free-form.metering-and-billing.fields.allow_status_codes.add"),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.allow_status_codes.label"),"label-attributes":{info:t.unref(o)("plugins.free-form.metering-and-billing.fields.allow_status_codes.info")},name:"config.allow_status_codes"},{item:t.withCtx(({autofocus:p,fieldName:m})=>[t.createVNode(t.unref(S.StringField),{autofocus:p,name:m,placeholder:t.unref(o)("plugins.free-form.metering-and-billing.fields.allow_status_codes.placeholder")},null,8,["autofocus","name","placeholder"])]),_:1},8,["add-item-label","label","label-attributes"])]),_:1},8,["expanded","label"]),t.createElementVNode("div",r3,[t.createVNode(t.unref(S.ObjectField),{label:t.unref(o)("plugins.free-form.metering-and-billing.sections.subject.title"),name:"config.subject","render-rules":{dependencies:{field:["look_up_value_in",["query","header"]]}},"reset-label-path":"reset"},null,8,["label"])]),t.createVNode(im,{expanded:c.value,"onUpdate:expanded":f[1]||(f[1]=p=>c.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.fields.attributes.title")},{default:t.withCtx(()=>[t.createElementVNode("div",o3,[t.createVNode(t.unref(S.ArrayField),{"hide-label":"",name:"config.attributes"})])]),_:1},8,["expanded","label"]),t.createVNode(im,{expanded:d.value,"onUpdate:expanded":f[2]||(f[2]=p=>d.value=p),label:t.unref(o)("plugins.free-form.metering-and-billing.sections.ingestion.title")},{default:t.withCtx(()=>[t.createVNode(t.unref(S.StringField),{help:t.unref(o)("plugins.free-form.metering-and-billing.fields.ingest_endpoint.help"),name:"config.ingest_endpoint"},null,8,["help"]),t.createVNode(t.unref(S.Field),{name:"config.api_token"}),t.createVNode(t.unref(S.Field),{name:"config.ssl_verify"}),t.createElementVNode("div",i3,[t.createVNode(t.unref(S.Field),{name:"config.timeout"}),t.createVNode(t.unref(S.Field),{name:"config.keepalive"})])]),_:1},8,["expanded","label"]),t.createVNode(Yr,{class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createElementVNode("div",a3,[t.createVNode(t.unref(be.KLabel),{class:"ff-mb-queue-label"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.free-form.metering-and-billing.sections.queue.title")),1)]),_:1}),t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config.queue","reset-label-path":"reset"})])]),_:1})]),_:1},16,["plugin-config-description"]))}}),[["__scopeId","data-v-748ca047"]])}),l3=Me({fieldRenderers:[{match:"config.api_specification",component:S.StringField,propsOverrides:{multiline:!0,rows:15}}]}),c3=Me({fieldRenderers:[{match:"config.consumer_by",component:S.EnumField,propsOverrides:{multiple:!0}}]}),d3=Me({fieldRenderers:[{match:"config.api_spec",component:S.StringField,propsOverrides:{multiline:!0,rows:15}}]}),R0=Symbol("free-form-plugin-context"),L0=new WeakMap;function u3(e,n){const r=t.getCurrentInstance();if(!r)throw new Error("providePluginContext() must be called inside setup().");let o=L0.get(r);o||(o=t.reactive({}),L0.set(r,o),t.provide(R0,o));const i=o;i[e]=n}function Ac(e){const n=t.inject(R0,null),r=n?.[e];return n&&r===void 0&&console.warn(`usePluginContext(): no context registered for plugin "${String(e)}". Call providePluginContext('${String(e)}', ...) in an ancestor component first.`),r}const f3="2.3",p3=e=>!!e&&!S.isVersionSupported(e,f3);function m3(e,n){if(!n||!e)return e;const r={...e};if(!Array.isArray(r.fields))return e;r.fields=[...r.fields];const o=r.fields.findIndex(i=>"credential_claims"in i);if(o!==-1&&r.fields.splice(o,1),!r.fields.some(i=>"credential_claim"in i)){const i=r.shorthand_fields?.find(a=>"credential_claim"in a)?.credential_claim;if(i){const{deprecation:a,...s}=i,l={credential_claim:{...s,required:!1,default:a?.old_default??["sub"]}};r.fields.splice(o!==-1?o:r.fields.length,0,l)}}return r}function g3(e,n){if(!n)return e;const r=[...e.fields],o=r.findIndex(a=>"config"in a);if(o===-1)return e;const i={...r[o]};return i.config=m3(i.config,n),r[o]=i,{...e,fields:r}}function h3(e){const{claim:n,claims:r}=e;return Array.isArray(r)&&r.length>0||n==null||n===""||Array.isArray(n)&&n.length===0?null:[Array.isArray(n)?n:[n]]}function y3(e,n,r){return!!e?.find(i=>n in i)?.[n]?.deprecation?.replaced_with?.some(i=>i?.path?.includes(r))}const _3={key:0,class:"oidc-auth-methods"},b3={class:"auth-methods-hint"},w3={class:"session-management-section"},k3={class:"session-radio-group"},C3={key:1,class:"oidc-auth-methods"},E3={class:"auth-method-container"},am=["authorization_code","bearer","client_credentials","password","introspection","userinfo","kong_oauth2","refresh_token"],F0=["bearer","client_credentials","introspection","userinfo"],N3="identity.konghq",D0=e=>typeof e=="string"&&e.includes(N3),M0=ve(t.defineComponent({__name:"AuthMethodsField",props:{principalsMode:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=t.inject(Ze.FORMS_CONFIG),i=t.computed(()=>o?.app==="konnect"),{formData:a}=S.useFormShared(),s=t.computed(()=>a.config?.auth_methods??null),l=t.computed(()=>({authorization_code:r("plugins.free-form.openid-connect.auth_methods.methods.authorization_code"),bearer:r("plugins.free-form.openid-connect.auth_methods.methods.bearer"),client_credentials:r("plugins.free-form.openid-connect.auth_methods.methods.client_credentials"),password:r("plugins.free-form.openid-connect.auth_methods.methods.password"),introspection:r("plugins.free-form.openid-connect.auth_methods.methods.introspection"),userinfo:r("plugins.free-form.openid-connect.auth_methods.methods.userinfo"),kong_oauth2:r("plugins.free-form.openid-connect.auth_methods.methods.kong_oauth2"),refresh_token:r("plugins.free-form.openid-connect.auth_methods.methods.refresh_token")})),c=t.computed(()=>n.principalsMode!==null&&n.principalsMode!==void 0?n.principalsMode==="kong-identity":D0(a.config?.issuer)),d=t.computed(()=>(i.value&&c.value?am.filter(y=>F0.includes(y)):am).map(y=>({value:y,label:l.value[y]}))),u=t.computed(()=>(s.value??[]).filter(h=>h!=="session")),f=t.computed(()=>(s.value??[]).includes("session"));function p(h,y){a.config&&(a.config.auth_methods=y?[...h,"session"]:[...h])}function m(h){p(h,f.value)}function g(h,y){const w=y?[...new Set([...u.value,h])]:u.value.filter(b=>b!==h);p(w,f.value)}function _(h){p(u.value,h)}return(h,y)=>i.value?(t.openBlock(),t.createElementBlock("div",_3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.label")),1)]),_:1}),(t.openBlock(),t.createBlock(t.unref(be.KMultiselect),{key:e.principalsMode??"initial",class:"auth-methods-multiselect","data-testid":"auth-methods-multiselect",items:d.value,"model-value":u.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.auth_methods.placeholder"),"onUpdate:modelValue":m},null,8,["items","model-value","placeholder"])),t.createElementVNode("p",b3,t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.hint")),1),t.createElementVNode("div",w3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.label")),1)]),_:1}),t.createElementVNode("div",k3,[t.createVNode(t.unref(be.KRadio),{"data-testid":"session-radio-use",description:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.use_description"),label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.use_label"),"model-value":f.value,"selected-value":!0,onChange:y[0]||(y[0]=w=>_(!0))},null,8,["description","label","model-value"]),t.createVNode(t.unref(be.KRadio),{"data-testid":"session-radio-no-use",description:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.no_use_description"),label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.no_use_label"),"model-value":f.value,"selected-value":!1,onChange:y[1]||(y[1]=w=>_(!1))},null,8,["description","label","model-value"])])])])):(t.openBlock(),t.createElementBlock("div",C3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.auth_methods.km_label")),1)]),_:1}),t.createElementVNode("div",E3,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,w=>(t.openBlock(),t.createElementBlock("div",{key:w.value,class:"auth-method"},[t.createVNode(t.unref(be.KCheckbox),{"data-testid":`auth-method-checkbox-${w.value}`,"model-value":u.value.includes(w.value),"onUpdate:modelValue":b=>g(w.value,b)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(w.label),1)]),_:2},1032,["data-testid","model-value","onUpdate:modelValue"])]))),128))]),t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"session-management-switch",label:t.unref(r)("plugins.free-form.openid-connect.auth_methods.session.switch_label"),"model-value":f.value,"onUpdate:modelValue":_},null,8,["label","model-value"])]))}}),[["__scopeId","data-v-099c7b95"]]),S3={class:"oidc-client-jwk-field"},A3=ve(t.defineComponent({__name:"ClientJwkField",props:{name:{}},setup(e){const{i18n:{t:n}}=Ye();return(r,o)=>(t.openBlock(),t.createElementBlock("div",S3,[t.createVNode(t.unref(S.ArrayField),{appearance:"tabs","item-label":(i,a)=>`#${a+1} Client JWK`,name:e.name,"sticky-tabs":""},{label:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("plugins.free-form.openid-connect.advanced_fields.client_jwk_link_label"))+" ",1),t.createVNode(t.unref(be.KExternalLink),{class:"oidc-client-jwk-link",href:"https://developer.konghq.com/plugins/openid-connect/reference/#schema--config-client-jwk"},{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createTextVNode(" More info ",-1)])]),_:1})]),_:1},8,["item-label","name"])]))}}),[["__scopeId","data-v-ea29d095"]]),x3={class:"principals-field-group"},I3={class:"principals-field-group"},v3={class:"lookup-method-item"},T3={class:"lookup-method-item-label"},O3={class:"lookup-method-item-description"},B3={class:"principals-field-group"},P3={class:"principals-field-group"},V3={class:"principals-field-group"},$3={key:1,class:"principals-field-group"},R3={key:2,class:"principals-field-group"},U0=ve(t.defineComponent({__name:"PrincipalLookupSettings",props:{disabled:{type:Boolean},dataPlaneIncompatible:{type:Boolean},showPrincipalsFields:{type:Boolean,default:!0},onEnabledChange:{type:Function}},setup(e){const n=t.createPropsRestProxy(e,["showPrincipalsFields"]),{i18n:{t:r}}=Ye(),o=t.inject(La,void 0),{formData:i,getEmptyValue:a,getSchema:s,getDefault:l,getFieldVersionInfo:c}=S.useFormShared();function d(le){return t.computed({get:()=>i.config?.principals?.[le],set:re=>{i.config?.principals&&(i.config.principals[le]=re)}})}const u=d("enabled"),f=d("principal_by"),p=d("principal_claim"),m=d("error_on_miss"),g=d("match_consumer"),_=d("match_consumer_groups"),h=Ac("openid-connect"),y=t.computed(()=>h?.source==="ai-manager"),w=t.computed(()=>s("$.config.principals.jit")),b=t.computed(()=>y.value&&!!w.value),E=t.computed(()=>c("$.config.principals.jit")),k=t.computed(()=>n.disabled||!!E.value),N=t.computed(()=>E.value?{info:E.value.tooltip,tooltipAttributes:{maxWidth:"300"}}:void 0),T=t.computed(()=>!!i.config?.principals?.jit);function x(le){const re=i.config?.principals;re&&(re.jit=le?l("$.config.principals.jit"):null)}function B(le){return t.computed({get:()=>i.config?.principals?.jit?.[le],set:re=>{const D=i.config?.principals?.jit;D&&(D[le]=re)}})}const O=B("all_claims"),A=B("claims");let I=null;function V(le){O.value=le,le?(I=Array.isArray(A.value)&&A.value.length>0?[...A.value]:null,A.value=a()):I&&(A.value=I,Z.value=L(I),I=null)}const L=le=>Array.isArray(le)?le.filter(Boolean).join(", "):"";function R(le){const re=le.split(",").map(D=>D.trim()).filter(Boolean);return re.length>0?re:a()}const Z=t.ref(L(A.value));function ee(le){Z.value=le,A.value=R(le)}t.watch(A,le=>{ti(le??null,R(Z.value)??null)||(Z.value=L(le))});const j=[{label:r("plugins.free-form.openid-connect.lookup.method.kong_identity_label"),value:"kong-identity",description:r("plugins.free-form.openid-connect.lookup.method.kong_identity_description")},{label:r("plugins.free-form.openid-connect.lookup.method.custom_identity_label"),value:"custom-identity",description:r("plugins.free-form.openid-connect.lookup.method.custom_identity_description")}],G=le=>le==null||le===""?!1:Array.isArray(le)?le.length>0:!0,$=t.ref(G(f.value)?"custom-identity":"kong-identity"),pe=t.computed(()=>u.value===!0),de=t.computed(()=>n.disabled||!pe.value),M=t.computed(()=>$.value==="custom-identity"?r("plugins.free-form.openid-connect.lookup.token_claim.help_custom"):r("plugins.free-form.openid-connect.lookup.token_claim.help"));function ue(le){return Array.isArray(le)&&le.length>0?le.map(re=>re.replace(/[\\.]/g,D=>`\\${D}`)).join("."):typeof le=="string"&&le?le:""}function ne(le){if(!le)return a();const re=[];let D="";for(let fe=0;fe<le.length;fe++){const Ee=le[fe];Ee==="\\"&&(le[fe+1]==="."||le[fe+1]==="\\")?(D+=le[fe+1],fe++):Ee==="."?(re.push(D),D=""):D+=Ee}re.push(D);const te=re.map(fe=>fe.trim()).filter(Boolean);return te.length>0?te:a()}!o?.value&&!G(p.value)&&(p.value=["sub"]);const ae=t.ref(ue(p.value));function ze(le){ae.value=le,p.value=ne(le.trim())}t.watch(p,le=>{const re=ne(ae.value.trim());ti(le??null,re??null)||(ae.value=ue(le))});function Ie(le){$.value=le??"kong-identity",le!=="custom-identity"&&(f.value=a(),p.value=a())}function je(le){n.onEnabledChange?n.onEnabledChange(le):u.value=le}return(le,re)=>{const D=t.resolveComponent("KExternalLink");return t.openBlock(),t.createBlock(t.unref(be.KCollapse),{class:"principals-advanced-settings","data-testid":"principals-advanced-settings","trigger-label":t.unref(r)("plugins.free-form.openid-connect.lookup.collapse_label")},{default:t.withCtx(()=>[e.showPrincipalsFields?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.renderSlot(le.$slots,"banner",{},void 0,!0),e.dataPlaneIncompatible?(t.openBlock(),t.createBlock(t.unref(be.KAlert),{key:0,appearance:"warning",class:"principals-dp-version-alert","data-testid":"oidc-principals-dp-version-alert",message:t.unref(r)("plugins.free-form.openid-connect.principals.dp_version_alert"),"show-icon":""},null,8,["message"])):t.createCommentVNode("",!0),t.createElementVNode("div",x3,[t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"use-principal-lookup",disabled:e.disabled,"model-value":pe.value,"onUpdate:modelValue":je},{label:t.withCtx(()=>[t.createVNode(t.unref(be.KLabel),{info:t.unref(r)("plugins.free-form.openid-connect.lookup.toggle_info"),"tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.toggle_label")),1)]),_:1},8,["info"])]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",I3,[t.createVNode(t.unref(be.KSelect),{class:"principals-lookup-method-select","data-testid":"principals-lookup-method",disabled:de.value,help:t.unref(r)("plugins.free-form.openid-connect.lookup.method.help"),items:j,label:t.unref(r)("plugins.free-form.openid-connect.lookup.method.label"),"model-value":$.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.method.placeholder"),"onUpdate:modelValue":Ie},{"item-template":t.withCtx(({item:te})=>[t.createElementVNode("div",v3,[t.createElementVNode("div",T3,t.toDisplayString(te.label),1),t.createElementVNode("div",O3,t.toDisplayString(te.description),1)])]),_:1},8,["disabled","help","label","model-value","placeholder"]),$.value==="custom-identity"?(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,class:"principals-custom-identity-name-input","data-testid":"principals-custom-identity-name",disabled:de.value,help:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.help"),label:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.label"),"model-value":t.unref(f)??void 0,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.custom_identity_name.placeholder"),"onUpdate:modelValue":re[0]||(re[0]=te=>f.value=te)},null,8,["disabled","help","label","model-value","placeholder"])):t.createCommentVNode("",!0),t.createVNode(t.unref(be.KInput),{class:"principals-token-claim-input","data-testid":"principals-token-claim",disabled:de.value,help:M.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.token_claim.label"),"model-value":ae.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.lookup.token_claim.placeholder"),"onUpdate:modelValue":ze},null,8,["disabled","help","label","model-value","placeholder"])]),t.createElementVNode("div",B3,[t.createVNode(t.unref(be.KLabel),null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.label")),1)]),_:1}),t.createVNode(t.unref(be.KRadio),{"data-testid":"principals-error-on-miss-true",description:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.reject_description"),disabled:de.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.reject_label"),"model-value":t.unref(m)??null,"selected-value":!0,onChange:re[1]||(re[1]=te=>m.value=!0)},null,8,["description","disabled","label","model-value"]),t.createVNode(t.unref(be.KRadio),{"data-testid":"principals-error-on-miss-false",description:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.continue_description"),disabled:de.value,label:t.unref(r)("plugins.free-form.openid-connect.lookup.error_on_miss.continue_label"),"model-value":t.unref(m)??null,"selected-value":!1,onChange:re[2]||(re[2]=te=>m.value=!1)},null,8,["description","disabled","label","model-value"])]),t.createElementVNode("div",P3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-match-consumer",disabled:de.value,"model-value":t.unref(g)??!1,"onUpdate:modelValue":re[3]||(re[3]=te=>g.value=te)},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.description"))+" ",1),t.createVNode(D,{class:"principals-learn-more-link","hide-icon":"",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.link")),1)]),_:1})]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer.label"))+" ",1)]),_:1},8,["disabled","model-value"])]),t.createElementVNode("div",V3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-match-consumer-groups",disabled:de.value,"model-value":t.unref(_)??!1,"onUpdate:modelValue":re[4]||(re[4]=te=>_.value=te)},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.description"))+" ",1),t.createVNode(D,{class:"principals-learn-more-link","hide-icon":"",href:"https://developer.konghq.com/identity/principals/",rel:"noopener noreferrer",target:"_blank"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.link")),1)]),_:1})]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.lookup.match_consumer_groups.label"))+" ",1)]),_:1},8,["disabled","model-value"])]),b.value?(t.openBlock(),t.createElementBlock("div",$3,[t.createVNode(t.unref(be.KInputSwitch),{"data-testid":"principals-jit-toggle",disabled:k.value,"disabled-tooltip-text":E.value?.tooltip,"model-value":T.value,"tooltip-attributes":{maxWidth:"300"},"onUpdate:modelValue":x},{label:t.withCtx(()=>[t.createVNode(t.unref(be.KLabel),{info:t.unref(r)("plugins.free-form.openid-connect.jit.toggle_info"),"tooltip-attributes":{maxWidth:"300"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.toggle_label")),1)]),_:1},8,["info"])]),_:1},8,["disabled","disabled-tooltip-text","model-value"])])):t.createCommentVNode("",!0),b.value&&T.value?(t.openBlock(),t.createElementBlock("div",R3,[t.createVNode(t.unref(be.KCheckbox),{"data-testid":"principals-jit-all-claims",disabled:k.value,"label-attributes":N.value,"model-value":t.unref(O)??!1,"onUpdate:modelValue":V},{description:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.all_claims.description")),1)]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("plugins.free-form.openid-connect.jit.all_claims.label"))+" ",1)]),_:1},8,["disabled","label-attributes","model-value"]),t.unref(O)?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,class:"principals-jit-claims-input","data-testid":"principals-jit-claims",disabled:k.value,help:t.unref(r)("plugins.free-form.openid-connect.jit.claims.help"),label:t.unref(r)("plugins.free-form.openid-connect.jit.claims.label"),"label-attributes":N.value,"model-value":Z.value,placeholder:t.unref(r)("plugins.free-form.openid-connect.jit.claims.placeholder"),"onUpdate:modelValue":ee},null,8,["disabled","help","label","label-attributes","model-value","placeholder"]))])):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0),t.renderSlot(le.$slots,"default",{},void 0,!0)]),_:3},8,["trigger-label"])}}}),[["__scopeId","data-v-75b33020"]]),L3={class:"oidc-principals-section","data-testid":"oidc-principals-section"},F3={class:"principals-header"},D3={class:"principals-description"},M3={class:"oidc-auth-mode-radio-group","data-testid":"oidc-auth-mode-radio-group"},U3={class:"auth-mode-card-content"},j3={class:"auth-mode-card-label"},K3={class:"auth-mode-card-description"},q3={class:"auth-mode-card-content"},G3={class:"auth-mode-card-label"},z3={class:"auth-mode-card-description"},H3={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},W3={class:"principals-create-guide-title"},Y3={class:"principals-create-guide-description"},J3={class:"principals-create-guide-actions"},X3={class:"create-action-content"},Z3={class:"create-action-hint"},Q3={class:"create-action-content"},e4={class:"create-action-hint"},t4={class:"principals-client-secret-wrapper"},n4=["aria-label","disabled","onClick"],r4={class:"external-client-field"},o4=["innerHTML"],i4={class:"external-client-field"},a4=["innerHTML"],s4=["aria-label","disabled","onClick"],l4={key:1,class:"principals-create-guide","data-testid":"principals-create-guide"},c4={class:"principals-create-guide-title"},d4={class:"principals-create-guide-description"},u4={class:"principals-create-guide-actions"},Dn="kong-identity",sm="external",f4="/v1/auth-servers/_computed",p4=ve(t.defineComponent({__name:"PrincipalsSection",emits:["mode-change","click:learn-more","click:create-entity"],setup(e,{emit:n}){const r=t.inject(S.USE_SECRET_INPUT_KEY,t.computed(()=>!1)),o={major:3,minor:15},i=ke=>{const[Ae,Ce]=ke.split(".").map(Number);return Number.isNaN(Ae)||Number.isNaN(Ce)?!1:Ae!==o.major?Ae<o.major:Ce<o.minor},a=n,{i18n:{t:s}}=Ye(),l=t.inject(Ze.FORMS_CONFIG),c=t.inject(Ze.AUTOFILL_SLOT,void 0),d=t.inject(La,void 0),u=t.computed(()=>d?.value??!1),{formData:f,getLabelAttributes:p,getEmptyOrDefault:m,getEmptyValue:g}=S.useFormShared(),_=t.computed({get:()=>f.config?.issuer??null,set:ke=>{f.config&&(f.config.issuer=ke)}}),h=t.computed({get:()=>{const ke=f.config?.client_id;return Array.isArray(ke)&&ke.length>0?ke:[null]},set:ke=>{f.config&&(f.config.client_id=ke&&(ke.length>1||ke[0])?ke:g())}}),y=t.computed({get:()=>{const ke=f.config?.client_secret;return Array.isArray(ke)&&ke.length>0?ke:[null]},set:ke=>{f.config&&(f.config.client_secret=ke&&(ke.length>1||ke[0])?ke:g())}}),w=t.ref(u.value?D0(_.value)?Dn:sm:Dn),b=t.ref([]),E=t.ref(!1),k=t.ref([]),N=t.ref(!1),T=t.ref(null),x=t.ref(null);let B=!1;const O=t.ref(null),A=t.ref(null),I=Ac("openid-connect"),V=t.computed(()=>I?.source==="ai-manager"?s("plugins.free-form.openid-connect.principals.kong_identity_description_ai_manager"):s("plugins.free-form.openid-connect.principals.kong_identity_description")),L=t.computed(()=>p("config.client_id").info),R=t.computed(()=>p("config.client_secret").info),Z=t.computed(()=>b.value.map(ke=>({label:ke.name,value:ke.id}))),ee=t.computed(()=>k.value.map(ke=>({label:ke.name,value:ke.client_id||ke.id}))),j=t.computed(()=>G.value&&!T.value||h.value.length<=1),G=t.computed(()=>l?.isKongIdentityAuthServersAvailable!==!1),$=t.computed(()=>l?.canCreateAuthServer!==!1),pe=t.computed(()=>l?.canCreateAuthServerClient!==!1),de=t.computed(()=>l?.principalsCreationGuideVisible),M=t.computed(()=>de.value===!0),ue=t.computed(()=>de.value===void 0),ne=t.computed(()=>!M.value&&(l?.dataPlaneVersions??[]).some(i));t.watch(()=>l?.principalsDirectoryName,ke=>{u.value||w.value!==Dn||ke==null||f.config?.principals&&(f.config.principals.directory=ke)},{immediate:!0}),t.onMounted(()=>{u.value||t.nextTick(()=>{Pe(w.value),a("mode-change",w.value)}),ae()});async function ae(){if(l?.isKongIdentityAuthServersAvailable!==!1)try{E.value=!0;const{axiosInstance:ke}=ge.useAxios(l?.axiosRequestConfig),Ae=`${l?.apiBaseUrl}${f4}`,Ce=await ke.get(Ae);if(b.value=Ce.data?.data??[],_.value&&!T.value){const oe=b.value.find(ie=>ie.issuer===_.value)||null;oe&&(B=!0,T.value=oe,ze(oe.id))}}catch{b.value=[]}finally{E.value=!1}}async function ze(ke){try{N.value=!0;const{axiosInstance:Ae}=ge.useAxios(l?.axiosRequestConfig),Ce=`${l?.apiBaseUrl}/v1/auth-servers/${ke}/clients`,oe=await Ae.get(Ce);k.value=oe.data?.data??[]}catch{k.value=[]}finally{N.value=!1}}function Ie(ke){if(B){B=!1;return}T.value=b.value.find(Ae=>Ae.id===ke)||null,T.value?.issuer&&(_.value=T.value.issuer),h.value=null,y.value=null,k.value=[],N.value=!!ke,ke&&ze(ke)}function je(ke,Ae){const Ce=[...h.value];Ce[ke]=Ae,h.value=Ce}function le(ke,Ae){const Ce=[...y.value];Ce[ke]=Ae,y.value=Ce}function re(){h.value=[...h.value,null],y.value=[...y.value,null]}function D(ke){if(h.value.length<=1)return;const Ae=[...h.value];Ae.splice(ke,1),h.value=Ae;const Ce=[...y.value];Ce.splice(ke,1),y.value=Ce}function te(ke){const Ae=h.value;return ee.value.map(Ce=>({...Ce,disabled:Ae.some((oe,ie)=>ie!==ke&&oe===Ce.value)}))}function fe(){return f.config?.principals??m("config.principals")??{}}function Ee(ke){f.config&&(f.config.principals={...fe(),enabled:ke})}function Re(){const ke=x.value;x.value=null,ke==="authServer"?a("click:create-entity",{type:"auth-server"}):ke==="client"?a("click:create-entity",{type:"client",authServerId:T.value?.id}):ke==="principal"&&a("click:create-entity",{type:"principal"})}function Pe(ke){const Ae=(f.config?.auth_methods??[]).includes("session"),Ce=ke===sm||!u.value?!0:Ae,oe=ke===Dn?[...F0]:[...am];Ce&&oe.push("session"),f.config&&(f.config.auth_methods=oe)}return t.watch(w,(ke,Ae)=>{if(Ae===Dn?O.value={issuer:_.value,clientId:h.value,clientSecret:y.value,selectedServer:T.value,clients:k.value}:A.value={issuer:_.value,clientId:h.value,clientSecret:y.value},ke===Dn){const Ce=O.value;f.config&&(f.config.issuer=Ce?.issuer??g(),f.config.client_id=Ce?.clientId??g(),f.config.client_secret=Ce?.clientSecret??g()),Ce?.selectedServer&&(B=!0),T.value=Ce?.selectedServer??null,k.value=Ce?.clients??[]}else{const Ce=A.value;f.config&&(f.config.issuer=Ce?.issuer??g(),f.config.client_id=Ce?.clientId??g(),f.config.client_secret=Ce?.clientSecret??g()),T.value=null,k.value=[]}if(f.config){const Ce=fe(),oe=ke===Dn?l?.principalsDirectoryName??Ce.directory:"default";f.config.principals={...Ce,enabled:!1,error_on_miss:!0,match_consumer:!0,match_consumer_groups:!0,directory:oe}}Pe(ke),a("mode-change",ke)}),(ke,Ae)=>(t.openBlock(),t.createElementBlock("div",L3,[t.createElementVNode("div",F3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.header")),1),t.createElementVNode("div",D3,[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.description"))+" ",1),t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.learn_more")),1)]),_:1})]),t.createElementVNode("div",M3,[t.createVNode(t.unref(be.KRadio),{modelValue:w.value,"onUpdate:modelValue":Ae[0]||(Ae[0]=Ce=>w.value=Ce),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-kong-identity","selected-value":Dn},{default:t.withCtx(()=>[t.createElementVNode("div",U3,[t.createVNode(t.unref(Ne.KeyIcon),{size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]),t.createElementVNode("div",j3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.kong_identity_label")),1),t.createElementVNode("div",K3,t.toDisplayString(V.value),1)])]),_:1},8,["modelValue"]),t.createVNode(t.unref(be.KRadio),{modelValue:w.value,"onUpdate:modelValue":Ae[1]||(Ae[1]=Ce=>w.value=Ce),card:"","card-orientation":"horizontal","data-testid":"oidc-auth-mode-external","selected-value":sm},{default:t.withCtx(()=>[t.createElementVNode("div",q3,[t.createVNode(t.unref(Ne.WorldIcon),{size:`var(--kui-icon-size-40, ${t.unref(so)})`},null,8,["size"]),t.createElementVNode("div",G3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.external_label")),1),t.createElementVNode("div",z3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.external_description")),1)])]),_:1},8,["modelValue"])]),ue.value&&w.value===Dn?(t.openBlock(),t.createBlock(t.unref(be.KSkeleton),{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):M.value&&w.value===Dn?(t.openBlock(),t.createElementBlock("div",H3,[t.createElementVNode("div",W3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.title")),1),t.createElementVNode("div",Y3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.description")),1),t.createElementVNode("div",J3,[t.createVNode(t.unref(be.KButton),{appearance:"primary","data-testid":"principals-create-principal",onClick:Ae[2]||(Ae[2]=Ce=>x.value="principal")},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.create")),1)]),_:1}),t.createVNode(t.unref(be.KButton),{appearance:"secondary","data-testid":"principals-learn-more",onClick:Ae[3]||(Ae[3]=Ce=>ke.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.learn_more")),1)]),_:1})])])):t.createCommentVNode("",!0),w.value===Dn?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[G.value?(t.openBlock(),t.createBlock(t.unref(be.KSelect),{key:0,class:"principals-directory-select","data-testid":"principals-directory-select","enable-filtering":"",items:Z.value,label:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.label"),"label-attributes":{info:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.info"),tooltipAttributes:{maxWidth:"300"}},loading:E.value,"model-value":T.value?.id,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.placeholder"),required:"","onUpdate:modelValue":Ie},t.createSlots({_:2},[$.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("button",{class:"create-action","data-testid":"create-auth-server-action",type:"button",onClick:Ae[4]||(Ae[4]=t.withModifiers(Ce=>x.value="authServer",["stop"]))},[t.createVNode(t.unref(Ne.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"]),t.createElementVNode("div",X3,[t.createElementVNode("span",null,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.create")),1),t.createElementVNode("div",Z3,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.create_hint")),1)])])]),key:"0"}:void 0]),1032,["items","label","label-attributes","loading","model-value","placeholder"])):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:1,"data-testid":"kong-identity-issuer-input",help:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.no_access_help"),label:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.label"),"label-attributes":{info:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.info"),tooltipAttributes:{maxWidth:"300"}},"model-value":_.value??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.auth_server.issuer_placeholder"),required:"","onUpdate:modelValue":Ae[5]||(Ae[5]=Ce=>_.value=Ce)},null,8,["help","label","label-attributes","model-value","placeholder"])),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(Ce,oe)=>(t.openBlock(),t.createElementBlock("div",{key:oe,class:t.normalizeClass(["client-row",{"client-row-with-label":oe===0}])},[G.value?(t.openBlock(),t.createBlock(t.unref(be.KSelect),{key:1,class:"principals-client-select","data-testid":"principals-client-select",disabled:!T.value,"enable-filtering":"",items:te(oe),label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.label"):void 0,loading:N.value,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},t.createSlots({_:2},[pe.value?{name:"dropdown-footer-text",fn:t.withCtx(()=>[t.createElementVNode("button",{class:"create-action","data-testid":"create-client-action",type:"button",onClick:Ae[6]||(Ae[6]=t.withModifiers(ie=>x.value="client",["stop"]))},[t.createVNode(t.unref(Ne.AddIcon),{size:`var(--kui-icon-size-20, ${t.unref(Jo)})`},null,8,["size"]),t.createElementVNode("div",Q3,[t.createElementVNode("span",null,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.create")),1),t.createElementVNode("div",e4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.create_hint")),1)])])]),key:"0"}:void 0]),1032,["disabled","items","label","loading","model-value","placeholder","onUpdate:modelValue"])):(t.openBlock(),t.createBlock(t.unref(be.KInput),{key:0,autocomplete:"new-password",class:"principals-client-select","data-testid":"principals-client-id-input",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.label"):void 0,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.id_placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},null,8,["label","model-value","placeholder","onUpdate:modelValue"])),t.createElementVNode("div",t4,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(r)?t.unref(Gh.SecretInput):t.unref(be.KInput)),t.mergeProps({autocomplete:"new-password",class:"principals-client-secret","data-testid":"principals-client-secret",disabled:G.value&&!T.value,label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_label"):void 0,"model-value":y.value[oe]??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_placeholder")},{ref_for:!0},t.unref(r)?{}:{showPasswordMaskToggle:!0,type:"password"},{"onUpdate:modelValue":ie=>le(oe,ie)}),null,16,["disabled","label","model-value","placeholder","onUpdate:modelValue"])),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:ie=>le(oe,ie),value:y.value[oe]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":t.unref(s)("plugins.free-form.openid-connect.principals.client.remove"),class:"remove-client-btn","data-testid":"remove-client-action",disabled:j.value,type:"button",onClick:ie=>D(oe)},[t.createVNode(t.unref(Ne.CloseIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])],8,n4)],2))),128)),t.createVNode(t.unref(be.KButton),{appearance:"tertiary",class:"add-client-inline","data-testid":"add-client-action",disabled:G.value&&!T.value,icon:"",type:"button",onClick:Ae[7]||(Ae[7]=Ce=>re())},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.add")),1)]),_:1},8,["disabled"]),t.createVNode(U0,{"data-plane-incompatible":ne.value,"on-enabled-change":Ee},{default:t.withCtx(()=>[t.renderSlot(ke.$slots,"default",{},void 0,!0)]),_:3},8,["data-plane-incompatible"])],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(Ce,oe)=>(t.openBlock(),t.createElementBlock("div",{key:oe,class:t.normalizeClass(["client-row",{"client-row-with-label":oe===0}])},[t.createElementVNode("div",r4,[t.createVNode(t.unref(be.KInput),{autocomplete:"new-password",class:"external-client-input","data-testid":"external-client-id",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.id_label"):void 0,"model-value":Ce??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.id_placeholder"),"onUpdate:modelValue":ie=>je(oe,ie)},t.createSlots({_:2},[oe===0&&L.value?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:L.value},null,8,o4)]),key:"0"}:void 0]),1032,["label","model-value","placeholder","onUpdate:modelValue"]),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_id",referenceable:!0},update:ie=>je(oe,ie),value:Ce},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",i4,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(r)?t.unref(Gh.SecretInput):t.unref(be.KInput)),t.mergeProps({autocomplete:"new-password",class:"external-client-input","data-testid":"external-client-secret",label:oe===0?t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_label"):void 0,"model-value":y.value[oe]??void 0,placeholder:t.unref(s)("plugins.free-form.openid-connect.principals.client.secret_placeholder")},{ref_for:!0},t.unref(r)?{}:{showPasswordMaskToggle:!0,type:"password"},{"onUpdate:modelValue":ie=>le(oe,ie)}),t.createSlots({_:2},[oe===0&&R.value?{name:"label-tooltip",fn:t.withCtx(()=>[t.createElementVNode("div",{innerHTML:R.value},null,8,a4)]),key:"0"}:void 0]),1040,["label","model-value","placeholder","onUpdate:modelValue"])),t.unref(c)?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(c)),{key:0,schema:{model:"config-client_secret",referenceable:!0},update:ie=>le(oe,ie),value:y.value[oe]},null,8,["update","value"])):t.createCommentVNode("",!0)]),t.createElementVNode("button",{"aria-label":t.unref(s)("plugins.free-form.openid-connect.principals.client.remove"),class:"remove-client-btn","data-testid":"remove-external-client-action",disabled:h.value.length<=1,type:"button",onClick:ie=>D(oe)},[t.createVNode(t.unref(Ne.CloseIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])],8,s4)],2))),128)),t.createVNode(t.unref(be.KButton),{appearance:"tertiary",class:"add-client-inline","data-testid":"add-external-client-action",icon:"",type:"button",onClick:Ae[8]||(Ae[8]=Ce=>re())},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.client.add")),1)]),_:1}),t.createVNode(t.unref(S.Field),{name:"config.issuer"}),t.createVNode(U0,{"data-plane-incompatible":ne.value,"on-enabled-change":Ee},{banner:t.withCtx(()=>[de.value===void 0?(t.openBlock(),t.createBlock(t.unref(be.KSkeleton),{key:0,class:"principals-create-guide-skeleton","data-testid":"principals-create-guide-loading"})):de.value?(t.openBlock(),t.createElementBlock("div",l4,[t.createElementVNode("div",c4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.title")),1),t.createElementVNode("div",d4,t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.description_external")),1),t.createElementVNode("div",u4,[t.createVNode(t.unref(be.KButton),{appearance:"primary","data-testid":"principals-create-principal",onClick:Ae[9]||(Ae[9]=Ce=>x.value="principal")},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.create")),1)]),_:1}),t.createVNode(t.unref(be.KButton),{appearance:"secondary","data-testid":"principals-learn-more",onClick:Ae[10]||(Ae[10]=Ce=>ke.$emit("click:learn-more","kong-identity"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(s)("plugins.free-form.openid-connect.principals.guide.learn_more")),1)]),_:1})])])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.renderSlot(ke.$slots,"default",{},void 0,!0)]),_:3},8,["data-plane-incompatible"])],64)),t.createVNode(t.unref(be.KPrompt),{"action-button-text":t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.action"),message:t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.message"),title:t.unref(s)("plugins.free-form.openid-connect.principals.leave_prompt.title"),visible:!!x.value,onCancel:Ae[11]||(Ae[11]=Ce=>x.value=null),onProceed:Re},null,8,["action-button-text","message","title","visible"])]))}}),[["__scopeId","data-v-980bba8b"]]),m4=t.defineComponent({__name:"VerifySignatureField",props:{name:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),{value:o}=S.useFormData(()=>n.name),i=t.computed(()=>o.value===!0?r("plugins.free-form.openid-connect.advanced_fields.verify_signature_description"):void 0);return(a,s)=>(t.openBlock(),t.createBlock(t.unref(S.BooleanField),{description:i.value,name:e.name},null,8,["description","name"]))}}),g4={class:"oidc-tab-fields"},h4={class:"oidc-tab-header"},y4={class:"oidc-tab-header-title"},_4={class:"oidc-tab-header-description"},b4={class:"oidc-tab-fields"},w4={class:"oidc-tab-header"},k4={class:"oidc-tab-header-title"},C4={class:"oidc-tab-header-description"},E4={class:"oidc-tab-fields"},N4={class:"oidc-tab-header"},S4={class:"oidc-tab-header-title"},A4={class:"oidc-tab-header-description"},x4=Me({component:ve(t.defineComponent({__name:"OpenidConnectForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},emits:["click:learn-more","click:create-entity"],setup(e,{emit:n}){const r=[{hash:"#common",title:"Common"},{hash:"#authorization",title:"Authorization"},{hash:"#advanced",title:"Advanced"}],o=["client_id","client_secret","issuer","auth_methods","scopes_claim","scopes_required","audience_claim","audience_required","roles_claim","roles_required","groups_claim","groups_required","authenticated_groups_claim","consumer_claim","principals"],i={dependencies:{"config.token_exchange.subject_token_issuers.*.jwks_uri":["config.token_exchange.subject_token_issuers.*.verify_signature",!0],"config.cluster_cache_redis.cloud_authentication.aws_cache_name":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_region":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_is_serverless":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_access_key_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_secret_access_key":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_assume_role_arn":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.aws_role_session_name":["config.cluster_cache_redis.cloud_authentication.auth_provider","aws"],"config.cluster_cache_redis.cloud_authentication.gcp_service_account_json":["config.cluster_cache_redis.cloud_authentication.auth_provider","gcp"],"config.cluster_cache_redis.cloud_authentication.azure_client_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.azure_client_secret":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.azure_tenant_id":["config.cluster_cache_redis.cloud_authentication.auth_provider","azure"],"config.cluster_cache_redis.cloud_authentication.oauth":["config.cluster_cache_redis.cloud_authentication.auth_provider","oauth"],"config.cluster_cache_redis.cloud_authentication.oauth.username":["config.cluster_cache_redis.cloud_authentication.oauth.grant_type","password"],"config.cluster_cache_redis.cloud_authentication.oauth.password":["config.cluster_cache_redis.cloud_authentication.oauth.grant_type","password"],"config.redis":["config.session_storage","redis"]},bundles:[["config.token_exchange.subject_token_issuers.*.verify_signature","config.token_exchange.subject_token_issuers.*.jwks_uri"],["config.session_storage","config.redis"]]},{i18n:{t:a}}=Ye(),s=e,l=n,c=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,c?.[Ze.AUTOFILL_SLOT_NAME]),t.provide(La,t.computed(()=>s.isEditing));const d=t.inject(Ze.FORMS_CONFIG),u=t.computed(()=>d?.app==="konnect"),f=Ac("openid-connect"),p=t.computed(()=>f?.source==="ai-manager"),m=t.inject(kn.KHCP_20393_IDENTITY_PRINCIPALS_UI,!1),g=t.computed(()=>s.schema.fields.find(Z=>"config"in Z)?.config),_=t.computed(()=>g.value?.fields),h=t.computed(()=>!!_.value?.some(Z=>"principals"in Z)),y=t.computed(()=>u.value&&m&&h.value),w=t.ref(null),b=/^(?:\$\.)?config\.client_jwk\.\d+\.([^.]+)$/,E=t.computed(()=>({...s.formConfig,transformLabel:(Z,ee)=>b.exec(ee)?.[1]??Z})),k=t.computed(()=>E.value.minRuntimeVersion),N=t.computed(()=>p3(k.value)),T=t.computed(()=>g3(s.schema,N.value)),x=t.computed(()=>T.value.fields.find(Z=>"config"in Z)?.config);let B;const O=t.ref(s.model),A=(Z,ee)=>{if(B=Z,O.value=Z,!N.value)return s.onFormChange(Z,ee);const j={...Z?.config??{}};delete j.credential_claims,s.onFormChange({...Z,config:j},ee)},I=Z=>{const ee=B?.config??s.model?.config??{};A({...O.value,config:{...ee,...Z}})},V={"config.upstream_headers":"Upstream header","config.downstream_headers":"Downstream header","config.redis.sentinel_nodes":"Sentinel node","config.redis.cluster_nodes":"Cluster node","config.cluster_cache_redis.sentinel_nodes":"Sentinel node","config.cluster_cache_redis.cluster_nodes":"Cluster node"};function L(Z,ee){const j=Z.startsWith("$.")?Z.slice(2):Z;return`#${ee+1} ${V[j]}`}const R=new Set(["config.unauthorized_error_message","config.forbidden_error_message","config.client_jwk.*.x5c.*"]);return t.onMounted(()=>{const Z=s.model?.config;for(const[ee,j]of[["credential_claim","credential_claims"],["consumer_claim","consumer_claims"]]){if(!y3(x.value?.shorthand_fields,ee,j)||!x.value?.fields?.some($=>j in $))continue;const G=h3({claim:Z?.[ee],claims:Z?.[j]});G!==null&&I({[j]:G})}if(N.value&&!Z?.credential_claim){const ee=Z?.credential_claims,j=Array.isArray(ee)&&ee.length>0?ee[0]:null;j&&I({credential_claim:Array.isArray(j)?j:[j]})}if(N.value&&!s.isEditing&&!Z?.credential_claim&&!Z?.credential_claims){const ee=x.value?.fields?.find(j=>"credential_claim"in j)?.credential_claim?.default;ee&&I({credential_claim:ee})}p.value&&!s.isEditing&&!Z?.cache_tokens_salt&&I({cache_tokens_salt:S.generateCredentialSecret(32)})}),(Z,ee)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(s,{"form-config":E.value,model:O.value,"on-form-change":A,"render-rules":i,schema:T.value}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:j})=>j==="config.client_jwk"},{default:t.withCtx(j=>[t.createVNode(A3,t.normalizeProps(t.guardReactiveProps(j)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j==="config.token_exchange.subject_token_issuers.*.verify_signature"},{default:t.withCtx(j=>[t.createVNode(m4,t.normalizeProps(t.guardReactiveProps(j)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j in V},{default:t.withCtx(j=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(j,{appearance:"tabs","item-label":(G,$)=>L(j.name,$)}),null,16,["item-label"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>t.unref(R).has(j)},{default:t.withCtx(j=>[t.createVNode(t.unref(S.StringField),t.mergeProps(j,{multiline:""}),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:j})=>j==="config.cache_tokens_salt"},{default:t.withCtx(j=>[t.createVNode(t.unref(S.StringField),t.mergeProps(j,{required:p.value}),null,16,["required"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({genericPath:j})=>j==="config.token_exchange.subject_token_issuers"},{default:t.withCtx(j=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(j,{appearance:"tabs","item-label":(G,$)=>`#${$+1} Issuer`}),null,16,["item-label"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(t.unref(be.KTabs),{tabs:r},{"common-anchor":t.withCtx(()=>[...ee[3]||(ee[3]=[t.createElementVNode("span",{"data-testid":"oidc-tab-common"},"Common",-1)])]),"authorization-anchor":t.withCtx(()=>[...ee[4]||(ee[4]=[t.createElementVNode("span",{"data-testid":"oidc-tab-authorization"},"Authorization",-1)])]),"advanced-anchor":t.withCtx(()=>[...ee[5]||(ee[5]=[t.createElementVNode("span",{"data-testid":"oidc-tab-advanced"},"Advanced",-1)])]),common:t.withCtx(()=>[t.createElementVNode("div",g4,[t.createElementVNode("div",h4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/reference/"},{default:t.withCtx(()=>[t.createElementVNode("span",y4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.common.title")),1)]),_:1}),t.createElementVNode("p",_4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.common.description")),1)]),y.value?(t.openBlock(),t.createBlock(p4,{key:0,"onClick:createEntity":ee[0]||(ee[0]=j=>l("click:create-entity",j)),"onClick:learnMore":ee[1]||(ee[1]=j=>l("click:learn-more",j)),onModeChange:ee[2]||(ee[2]=j=>w.value=j)},{default:t.withCtx(()=>[t.createVNode(M0,{"principals-mode":w.value},null,8,["principals-mode"])]),_:1})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(t.unref(S.Field),{name:"config.client_id"}),t.createVNode(t.unref(S.Field),{name:"config.client_secret"}),t.createVNode(t.unref(S.Field),{name:"config.issuer"}),t.createVNode(M0,{"principals-mode":w.value},null,8,["principals-mode"])],64))])]),authorization:t.withCtx(()=>[t.createElementVNode("div",b4,[t.createElementVNode("div",w4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/#authorization"},{default:t.withCtx(()=>[t.createElementVNode("span",k4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.authorization.title")),1)]),_:1}),t.createElementVNode("p",C4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.authorization.description")),1)]),t.createVNode(t.unref(S.Field),{name:"config.scopes_claim"}),t.createVNode(t.unref(S.Field),{name:"config.scopes_required"}),t.createVNode(t.unref(S.Field),{name:"config.audience_claim"}),t.createVNode(t.unref(S.Field),{name:"config.audience_required"}),t.createVNode(t.unref(S.Field),{name:"config.roles_claim"}),t.createVNode(t.unref(S.Field),{name:"config.roles_required"}),t.createVNode(t.unref(S.Field),{name:"config.groups_claim"}),t.createVNode(t.unref(S.Field),{name:"config.groups_required"}),t.createVNode(t.unref(S.Field),{name:"config.authenticated_groups_claim"})])]),advanced:t.withCtx(()=>[t.createElementVNode("div",E4,[t.createElementVNode("div",N4,[t.createVNode(t.unref(be.KExternalLink),{href:"https://developer.konghq.com/plugins/openid-connect/"},{default:t.withCtx(()=>[t.createElementVNode("span",S4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.advanced.title")),1)]),_:1}),t.createElementVNode("p",A4,t.toDisplayString(t.unref(a)("plugins.free-form.openid-connect.tabs.advanced.description")),1)]),t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:o})])]),_:1})]),_:1},16,["form-config","model","schema"]))}}),[["__scopeId","data-v-f933da0a"]])}),I4=Me({fieldRenderers:[{match:"config.access_logs.custom_attributes_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),v4=Me({fieldRenderers:[{match:({genericPath:e})=>["config.access.*","config.body_filter.*","config.header_filter.*","config.certificate.*","config.functions.*","config.log.*","config.rewrite.*","config.ws_handshake.*","config.ws_client_frame.*","config.ws_upstream_frame.*","config.ws_close.*"].includes(e),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),T4=Me({fieldRenderers:[{match:({genericPath:e})=>["config.access.*","config.body_filter.*","config.header_filter.*","config.certificate.*","config.functions.*","config.log.*","config.rewrite.*","config.ws_handshake.*","config.ws_client_frame.*","config.ws_upstream_frame.*","config.ws_close.*"].includes(e),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),O4=Me({renderRules:{bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},fieldRenderers:[{match:({path:e})=>e==="config.methods"||e==="config.request_method",component:S.EnumField,propsOverrides:{multiple:!0}}]}),B4=Me({fieldRenderers:[{match:({path:e})=>e==="config.methods"||e==="config.request_method",component:S.EnumField,propsOverrides:{multiple:!0}}]}),P4={class:"rla-form-request-limits-subtitle"},V4={class:"rla-form-request-limits-content"},$4={class:"rla-form-window-type"},R4={class:"rla-form-request-limits-items"},L4={class:"rla-form-request-limits-row"},F4=["id"],D4={key:0,class:"rla-form-request-limits-examples"},M4={class:"rla-form-request-limits-examples-badges"},U4={class:"rla-form-request-limits-add"},lm="config.window_type",j4=ve(t.defineComponent({__name:"RequestLimitsForm",setup(e){const{i18n:{t:n}}=Ye(),{formData:r,getSchema:o,getEmptyOrDefault:i,getEmptyValue:a}=S.useFormShared(),s=t.computed(()=>{const k=r.config?.limit?.map((N,T)=>({limit:N,windowSize:r.config?.window_size?.[T]}));return!Array.isArray(k)||k.length===0?[{limit:null,windowSize:null}]:k}),{getKey:l}=S.useItemKeys("request-limits",s),c=k=>{const N=r.expressions?.limit;Array.isArray(N)&&k(N)};t.watch(()=>r.expressions?.limit,k=>{Array.isArray(k)&&(k.some(Boolean)||(r.expressions.limit=a()))},{deep:!0});const d=()=>{if(h.value=void 0,!r.config)return;const k=i("config.limit.0"),N=i("config.window_size.0");r.config.limit?.length||(r.config.limit=[k]),r.config.window_size?.length||(r.config.window_size=[N]),r.config.limit.push(k),r.config.window_size.push(N),c(T=>T.push(S.EXPRESSION_ARRAY_EMPTY))},u=k=>{r.config&&(r.config.limit.splice(k,1),r.config.window_size.splice(k,1),c(N=>N.splice(k,1)))},f=o(lm)?.default,p=t.computed(()=>Aa(r,lm)),m={fixed:"sp.window_type.options.fixed",sliding:"sp.window_type.options.sliding"},g={fixed:"sp.window_type.descriptions.fixed",sliding:"sp.window_type.descriptions.sliding"},_=t.computed(()=>(o(lm)?.one_of??[]).filter(N=>N in m).sort((N,T)=>N===f?-1:T===f?1:0).map(N=>({value:N,label:n(m[N]),description:n(g[N])}))),h=t.ref(),y=t.ref(0),w={fixed:[{label:n("sp.use_cases.fixed.hourly_500.label"),description:n("sp.use_cases.fixed.hourly_500.description"),config:{limit:500,window_size:3600}},{label:n("sp.use_cases.fixed.half_hourly_200.label"),description:n("sp.use_cases.fixed.half_hourly_200.description"),config:{limit:200,window_size:1800}},{label:n("sp.use_cases.fixed.daily_500.label"),description:n("sp.use_cases.fixed.daily_500.description"),config:{limit:500,window_size:86400}}],sliding:[{label:n("sp.use_cases.sliding.hourly_100.label"),description:n("sp.use_cases.sliding.hourly_100.description"),config:{limit:100,window_size:3600}},{label:n("sp.use_cases.sliding.half_hourly_300.label"),description:n("sp.use_cases.sliding.half_hourly_300.description"),config:{limit:300,window_size:1800}},{label:n("sp.use_cases.sliding.hourly_500.label"),description:n("sp.use_cases.sliding.hourly_500.description"),config:{limit:500,window_size:3600}}]},b=t.computed(()=>Object.prototype.hasOwnProperty.call(w,p.value)?w[p.value]:[]),E=(k,N)=>{const T=()=>{r.expressions&&(r.expressions.limit=null)};if(y.value++,N===h.value){t.nextTick(()=>{h.value=void 0}),r.config.limit=[],r.config.window_size=[],T();return}t.nextTick(()=>{h.value=N}),r.config.limit=[k.config.limit],r.config.window_size=[k.config.window_size],T()};return(k,N)=>{const T=t.resolveComponent("KLabel"),x=t.resolveComponent("KButton"),B=t.resolveComponent("KBadge"),O=t.resolveComponent("KTooltip"),A=t.resolveComponent("KCard");return t.openBlock(),t.createBlock(A,{class:"rla-form-request-limits"},{title:t.withCtx(()=>[t.createVNode(T,{class:"rla-form-request-limits-title",for:"rla-form-request-limits-legend",required:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.title")),1)]),_:1}),t.createElementVNode("div",P4,t.toDisplayString(t.unref(n)("sp.request_limits.subtitle")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",V4,[t.createElementVNode("div",$4,[t.createVNode(tm,{card:"",items:_.value,label:t.unref(n)("sp.window_type.label"),name:"window_type","onUpdate:modelValue":N[0]||(N[0]=I=>h.value=void 0)},null,8,["items","label"])]),t.createElementVNode("div",R4,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,(I,V)=>(t.openBlock(),t.createElementBlock("div",{key:`${t.unref(l)(I,V)}-${y.value}`},[t.createVNode(T,{for:`rla-form-request-limits-item-${V}-legend`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.label_index",{index:V+1})),1)]),_:2},1032,["for"]),t.createElementVNode("div",L4,[t.createElementVNode("legend",{id:`rla-form-request-limits-item-${V}-legend`,class:"rla-form-request-limits-inputs"},[t.createVNode(t.unref(S.NumberField),{"expression-editor":!1,name:`$.config.limit.${V}`,placeholder:t.unref(n)("sp.request_limits.custom")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.interval_determiner")),1),t.createVNode(t.unref(S.NumberField),{name:`$.config.window_size.${V}`,placeholder:t.unref(n)("sp.request_limits.custom")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.seconds")),1)],8,F4),s.value.length>1?(t.openBlock(),t.createBlock(x,{key:0,appearance:"tertiary","aria-label":t.unref(n)("sp.request_limits.remove_limit",{index:V+1}),class:"rla-form-request-limits-remove","data-testid":`rla-form-remove-limit-${V}`,icon:"",onClick:()=>u(V)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon))]),_:1},8,["aria-label","data-testid","onClick"])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(S.ExpressionEditor),{class:"rla-form-request-limits-expression",name:`$.config.limit.${V}`,placeholder:t.unref(n)("sp.request_limits.expression_placeholder")},null,8,["name","placeholder"])]))),128))]),b.value.length>0?(t.openBlock(),t.createElementBlock("div",D4,[t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.start_with_a_use_case")),1),t.createElementVNode("div",M4,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b.value,(I,V)=>(t.openBlock(),t.createBlock(O,{key:`use-case-${V}`,"max-width":"300"},{content:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(I.description),1),N[1]||(N[1]=t.createElementVNode("br",null,null,-1)),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.label"))+": "+t.toDisplayString(I.config.limit),1),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.time_interval"))+": "+t.toDisplayString(I.config.window_size),1)]),default:t.withCtx(()=>[t.createVNode(B,{appearance:h.value===`${p.value}-${V}`?"info":"decorative",class:"rla-form-request-limits-examples-badge",onClick:()=>E(I,`${p.value}-${V}`)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(I.label),1)]),_:2},1032,["appearance","onClick"])]),_:2},1024))),128))])])):t.createCommentVNode("",!0),t.createElementVNode("div",U4,[t.createVNode(x,{appearance:"tertiary","data-testid":"rla-form-add-limit",onClick:d},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon)),t.createTextVNode(" "+t.toDisplayString(t.unref(n)("sp.request_limits.add_limit")),1)]),_:1})])])]),_:1})}}}),[["__scopeId","data-v-c0335c13"]]),K4={id:"rla-form-error-legend",class:"rla-form-error-inputs"},q4=ve(t.defineComponent({__name:"ErrorMessageForm",setup(e){const{i18n:{t:n}}=Ye();return(r,o)=>{const i=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(i,{for:"rla-form-error-legend",info:t.unref(n)("sp.error_message.help"),required:"","tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.error_message.label")),1)]),_:1},8,["info"]),t.createElementVNode("legend",K4,[t.createVNode(t.unref(S.NumberField),{class:"input-error-code",label:"",name:"error_code",placeholder:t.unref(n)("sp.error_message.code_placeholder")},null,8,["placeholder"]),o[0]||(o[0]=t.createElementVNode("div",null,":",-1)),t.createVNode(t.unref(S.StringField),{class:"input-error-message",label:"",name:"error_message",placeholder:t.unref(n)("sp.error_message.message_placeholder")},null,8,["placeholder"])])])}}}),[["__scopeId","data-v-af7abc91"]]),G4=t.defineComponent({__name:"ConfigForm",setup(e){const n=["custom_key","identifier","limit","window_size","window_type","error_code","error_message"],{getSchema:r}=S.useFormShared();return(o,i)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.unref(r)("config.custom_key")?(t.openBlock(),t.createBlock(t.unref(S.Field),{key:0,name:"custom_key"})):t.createCommentVNode("",!0),t.createVNode(t.unref(S.Field),{name:"identifier"}),t.createVNode(j4),t.createVNode(q4)]),_:1}),t.createVNode(Yr,{"hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),j0=t.defineComponent({__name:"CustomKeyField",props:{autofocus:{type:Boolean},name:{},labelAttributes:{}},setup(e){const n=e,{i18n:{t:r},i18nT:o}=Ye();return(i,a)=>(t.openBlock(),t.createBlock(t.unref(S.StringField),t.mergeProps(n,{"expression-editor":{placeholder:t.unref(r)("sp.custom_key.expression_placeholder")}}),{"expression-help":t.withCtx(()=>[t.createVNode(t.unref(o),{keypath:"sp.custom_key.expression_help.text"},{link:t.withCtx(()=>[t.createVNode(t.unref(be.KExternalLink),{"hide-icon":"",href:t.unref(Zn).condition},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(r)("sp.custom_key.expression_help.learn")),1)]),_:1},8,["href"])]),_:1})]),_:1},16,["expression-editor"]))}}),z4=Me({component:t.defineComponent({__name:"RateLimitingAdvancedForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},o=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]);function i(a,s){a.config?.namespace===null&&delete a.config.namespace,n.onFormChange(a,s)}return(a,s)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"on-form-change":i,"render-rules":r}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:l})=>l==="config.custom_key"},{default:t.withCtx(l=>[t.createVNode(j0,t.normalizeProps(t.guardReactiveProps(l)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:l})=>l==="config.compound_identifier"},{default:t.withCtx(l=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(l,{multiple:""}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(G4)]),_:1},16))}})}),H4=ve(t.defineComponent({__name:"ConfigForm",setup(e){const n=["limit_by","custom_key","second","minute","hour","day","month","year","fault_tolerant","hide_client_headers","sync_rate"],{getSchema:r}=S.useFormShared(),o=t.computed(()=>(r("config")?.fields??[]).map(a=>Object.keys(a)[0]).filter(a=>!n.includes(a)));return(i,a)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",class:"ff-default-visible-fields","fields-order":n,name:"config",omit:o.value,"reset-label-path":"reset"},null,8,["omit"]),t.createVNode(Yr,{class:"ff-advanced-fields-container","data-testid":"ff-advanced-fields-container","hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),[["__scopeId","data-v-7f078683"]]),W4=Me({component:t.defineComponent({__name:"RateLimitingForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,{i18n:{t:r}}=Ye(),o=new Set(["config.second","config.minute","config.hour","config.day","config.month","config.year"]),i={bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}},a=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,a?.[Ze.AUTOFILL_SLOT_NAME]),(s,l)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"render-rules":i}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:c})=>c==="config.custom_key"},{default:t.withCtx(c=>[t.createVNode(j0,t.normalizeProps(t.guardReactiveProps(c)),null,16)]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:c})=>t.unref(o).has(c)},{default:t.withCtx(c=>[t.createVNode(t.unref(S.NumberField),t.mergeProps(c,{"expression-editor":{placeholder:t.unref(r)("sp.request_limits.expression_placeholder")}}),null,16,["expression-editor"])]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(H4)]),_:1},16))}})}),Y4="__request_callout_";function K0(){return sf(Y4)}const Xa="_callout_id",J4=t.defineComponent({__name:"CalloutForm",props:{index:{},fieldName:{}},setup(e){const n=e,{formData:r}=S.useFormShared(),o=t.computed(()=>{const{callouts:s}=r.config;return s==null?[]:s.filter(({name:l})=>l&&l!==s[n.index]?.name)}),i=t.computed(()=>o.value.map(({[Xa]:s,name:l})=>({value:s,label:l}))),a=t.computed(()=>r.config.callouts[n.index]);return t.watch(i,()=>{a.value.depends_on=a.value.depends_on.filter(s=>i.value.some(l=>l.value===s))}),(s,l)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{name:e.fieldName},{depends_on:t.withCtx(c=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(c,{items:i.value,multiple:"",required:!1}),null,16,["items"])]),request:t.withCtx(c=>[t.createVNode(t.unref(S.ObjectField),t.mergeProps(c,{"fields-order":["url","method","headers","query","body","http_opts","error","by_lua"]}),{method:t.withCtx(d=>[t.createVNode(t.unref(S.EnumField),t.mergeProps(d,{items:t.unref(S.toSelectItems)(["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"])}),null,16,["items"])]),_:1},16)]),_:1},8,["name"]))}}),X4=t.defineComponent({__name:"CalloutsForm",setup(e){const{formData:n}=S.useFormShared();function r(){const o=n.config.callouts[n.config.callouts.length-1];o&&(o[Xa]=K0())}return(o,i)=>(t.openBlock(),t.createBlock(t.unref(S.ArrayField),{appearance:"tabs","item-label":a=>a.name||"New callout",name:"callouts",required:"","sticky-tabs":"",onAdd:r},{item:t.withCtx(({index:a,fieldName:s})=>[t.createVNode(J4,{"field-name":s,index:a},null,8,["field-name","index"])]),_:1},8,["item-label"]))}}),Z4=t.defineComponent({__name:"ConfigForm",setup(e){return(n,r)=>(t.openBlock(),t.createBlock(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.createVNode(X4),t.createVNode(t.unref(S.ObjectField),{appearance:"card","fields-order":["headers","query","body","by_lua"],name:"upstream"}),t.createVNode(t.unref(S.ObjectField),{appearance:"card",name:"cache"},{redis:t.withCtx(o=>[t.createVNode(t.unref(S.ObjectField),t.mergeProps(o,{"fields-order":["host","port","connection_is_proxied","database","username","password","sentinel_master","sentinel_role","sentinel_nodes","sentinel_username","sentinel_password","cluster_nodes","cluster_max_redirections","ssl","ssl_verify","server_name","keepalive_backlog","keepalive_pool_size","read_timeout","send_timeout","connect_timeout"]}),null,16)]),_:2},1024)]),_:1}))}}),Q4=Me({component:ve(t.defineComponent({__name:"RequestCalloutForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]);const{i18n:{t:o}}=Ye();function i(c,d=!1){return c.reduce((u,{[Xa]:f,name:p})=>(d?u[p]=f:u[f]=p,u),{})}function a(c){const d=nf(c);if(d.config?.callouts){const{callouts:u}=d.config;u.forEach(p=>{p.request.body.custom=p.request.body.custom??{},p[Xa]=K0()});const f=i(u,!0);u.forEach(p=>{p.depends_on=p.depends_on.map(m=>f[m])})}return d}const s={prepareFormData:a};function l(c,d){if(!c)return;const u=nf(c);if(!u.config?.callouts){n.onFormChange(u,d);return}const f=i(u.config.callouts);u.config.callouts=u.config.callouts.map(p=>{const{[Xa]:m,depends_on:g,..._}=p;return{depends_on:g.map(h=>f[h]).filter(h=>h!=null),..._}}),n.onFormChange(u,d)}return(c,d)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"form-config":s,"on-form-change":l}),{"field-renderers":t.withCtx(()=>[t.createVNode(t.unref(S.FieldRenderer),{match:({path:u})=>u.endsWith("by_lua")},{default:t.withCtx(u=>[t.createVNode(t.unref(S.StringField),t.mergeProps(u,{autosize:"",class:"rc-code",multiline:"",placeholder:t.unref(o)("plugins.free-form.request-callout.by_lua_placeholder")}),null,16,["placeholder"])]),_:1},8,["match"]),t.createVNode(t.unref(S.FieldRenderer),{match:({path:u})=>["cluster_nodes","sentinel_nodes"].some(f=>u.endsWith(f))},{default:t.withCtx(u=>[t.createVNode(t.unref(S.ArrayField),t.mergeProps(u,{appearance:"card"}),null,16)]),_:1},8,["match"])]),default:t.withCtx(()=>[t.createVNode(Z4)]),_:1},16))}}),[["__scopeId","data-v-3c31c410"]])}),eG=Me({fieldRenderers:[{match:"config.parameter_schema",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Parameter schema`}},{match:"config.body_schema",component:S.StringField,propsOverrides:{multiline:!0,rows:4}},{match:"config.parameter_schema.*.schema",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),tG=Me({renderRules:{bundles:[["config.policy","config.redis"]],dependencies:{"config.redis":["config.policy","redis"]}}}),nG=Me({fieldRenderers:[{match:({path:e,genericPath:n})=>e==="config.replace.body"||n==="config.transform.functions.*"||n.endsWith(".json.*"),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),rG=Me({fieldRenderers:[{match:({genericPath:e})=>e.endsWith(".json.*"),component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),oG=Me({fieldRenderers:[{match:"config.rules",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Rule`}}]}),iG={class:"sp-form-request-limits-subtitle"},aG={class:"sp-form-request-limits-content"},sG={class:"sp-form-window-type"},lG={class:"sp-form-request-limits-items"},cG={class:"sp-form-request-limits-row"},dG=["id"],uG={class:"sp-form-request-limits-actions"},fG={key:0,class:"sp-form-request-limits-examples"},pG={class:"sp-form-request-limits-examples-badges"},cm="config.window_type",mG=ve(t.defineComponent({__name:"RequestLimitsForm",setup(e){const{t:n}=It.createI18n("en-us",Bt),{formData:r,getSelectItems:o,getSchema:i,getEmptyOrDefault:a}=S.useFormShared(),s=t.computed(()=>{const y=r.config?.limit?.map((w,b)=>({limit:w,windowSize:r.config?.window_size?.[b]}));return!Array.isArray(y)||y.length===0?[{limit:null,windowSize:null}]:y}),{getKey:l}=S.useItemKeys("request-limits",s),c=y=>{if(m.value=void 0,!r.config)return;const w=a("config.limit.0"),b=a("config.window_size.0");r.config.limit?.length||(r.config.limit=[w]),r.config.window_size?.length||(r.config.window_size=[b]),r.config.limit.splice(y+1,0,w),r.config.window_size.splice(y+1,0,b)},d=y=>{r.config&&(r.config.limit.splice(y,1),r.config.window_size.splice(y,1))},u=i(cm)?.default,f=t.computed(()=>Aa(r,cm)),p=t.computed(()=>o(cm).sort((y,w)=>y.value===u?-1:w.value===u?1:0)),m=t.ref(),g={fixed:[{label:n("sp.use_cases.fixed.hourly_500.label"),description:n("sp.use_cases.fixed.hourly_500.description"),config:{limit:500,window_size:3600}},{label:n("sp.use_cases.fixed.half_hourly_200.label"),description:n("sp.use_cases.fixed.half_hourly_200.description"),config:{limit:200,window_size:1800}},{label:n("sp.use_cases.fixed.daily_500.label"),description:n("sp.use_cases.fixed.daily_500.description"),config:{limit:500,window_size:86400}}],sliding:[{label:n("sp.use_cases.sliding.hourly_100.label"),description:n("sp.use_cases.sliding.hourly_100.description"),config:{limit:100,window_size:3600}},{label:n("sp.use_cases.sliding.half_hourly_300.label"),description:n("sp.use_cases.sliding.half_hourly_300.description"),config:{limit:300,window_size:1800}},{label:n("sp.use_cases.sliding.hourly_500.label"),description:n("sp.use_cases.sliding.hourly_500.description"),config:{limit:500,window_size:3600}}]},_=t.computed(()=>Object.prototype.hasOwnProperty.call(g,f.value)?g[f.value]:[]),h=(y,w)=>{if(w===m.value){t.nextTick(()=>{m.value=void 0}),r.config.limit=[],r.config.window_size=[];return}t.nextTick(()=>{m.value=w}),r.config.limit=[y.config.limit],r.config.window_size=[y.config.window_size]};return(y,w)=>{const b=t.resolveComponent("KLabel"),E=t.resolveComponent("KButton"),k=t.resolveComponent("KBadge"),N=t.resolveComponent("KTooltip"),T=t.resolveComponent("KCard");return t.openBlock(),t.createBlock(T,{class:"sp-form-request-limits"},{title:t.withCtx(()=>[t.createVNode(b,{class:"sp-form-request-limits-title",for:"sp-form-request-limits-legend",required:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.title")),1)]),_:1}),t.createElementVNode("div",iG,t.toDisplayString(t.unref(n)("sp.request_limits.subtitle")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",aG,[t.createElementVNode("div",sG,[t.createVNode(tm,{items:p.value,label:t.unref(n)("sp.window_type.label"),name:"window_type","onUpdate:modelValue":w[0]||(w[0]=x=>m.value=void 0)},null,8,["items","label"])]),t.createElementVNode("div",lG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,(x,B)=>(t.openBlock(),t.createElementBlock("div",{key:t.unref(l)(x,B)},[t.createVNode(b,{for:`sp-form-request-limits-item-${B}-legend`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.request_limits.label_index",{index:B+1})),1)]),_:2},1032,["for"]),t.createElementVNode("div",cG,[t.createElementVNode("legend",{id:`sp-form-request-limits-item-${B}-legend`,class:"sp-form-request-limits-inputs"},[t.createVNode(t.unref(S.NumberField),{name:`$.config.limit.${B}`,placeholder:t.unref(n)("sp.request_limits.request_number")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.interval_determiner")),1),t.createVNode(t.unref(S.NumberField),{name:`$.config.window_size.${B}`,placeholder:t.unref(n)("sp.request_limits.time_interval")},null,8,["name","placeholder"]),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.seconds")),1)],8,dG),t.createElementVNode("div",uG,[t.createVNode(E,{appearance:"tertiary",disabled:s.value.length<=1,onClick:()=>d(B)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.RemoveIcon))]),_:1},8,["disabled","onClick"]),t.createVNode(E,{appearance:"tertiary",onClick:()=>c(B)},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon))]),_:1},8,["onClick"])])])]))),128))]),_.value.length>0?(t.openBlock(),t.createElementBlock("div",fG,[t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.start_with_a_use_case")),1),t.createElementVNode("div",pG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(_.value,(x,B)=>(t.openBlock(),t.createBlock(N,{key:`use-case-${B}`,"max-width":"300"},{content:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(x.description),1),w[1]||(w[1]=t.createElementVNode("br",null,null,-1)),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.label"))+": "+t.toDisplayString(x.config.limit),1),t.createElementVNode("div",null,t.toDisplayString(t.unref(n)("sp.request_limits.time_interval"))+": "+t.toDisplayString(x.config.window_size),1)]),default:t.withCtx(()=>[t.createVNode(k,{appearance:m.value===`${f.value}-${B}`?"info":"decorative",class:"sp-form-request-limits-examples-badge",onClick:()=>h(x,`${f.value}-${B}`)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(x.label),1)]),_:2},1032,["appearance","onClick"])]),_:2},1024))),128))])])):t.createCommentVNode("",!0)])]),_:1})}}}),[["__scopeId","data-v-3df218a2"]]),gG={id:"sp-form-error-legend",class:"sp-form-error-inputs"},hG=ve(t.defineComponent({__name:"ErrorMessageForm",setup(e){const{t:n}=It.createI18n("en-us",Bt);return(r,o)=>{const i=t.resolveComponent("KLabel");return t.openBlock(),t.createElementBlock("div",null,[t.createVNode(i,{for:"sp-form-error-legend",info:t.unref(n)("sp.error_message.help"),required:"","tooltip-attributes":{maxWidth:"300",placement:"top"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(n)("sp.error_message.label")),1)]),_:1},8,["info"]),t.createElementVNode("legend",gG,[t.createVNode(t.unref(S.NumberField),{class:"input-error-code",label:"",name:"error_code",placeholder:t.unref(n)("sp.error_message.code_placeholder")},null,8,["placeholder"]),o[0]||(o[0]=t.createElementVNode("div",null,":",-1)),t.createVNode(t.unref(S.StringField),{class:"input-error-message",label:"",name:"error_message",placeholder:t.unref(n)("sp.error_message.message_placeholder")},null,8,["placeholder"])])])}}}),[["__scopeId","data-v-9c5e4456"]]),yG=t.defineComponent({__name:"ConfigForm",setup(e){const n=["limit","window_size","window_type","error_code","error_message"];return(r,o)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config","reset-label-path":"reset"},{default:t.withCtx(()=>[t.createVNode(mG),t.createVNode(hG)]),_:1}),t.createVNode(Yr,{"hide-general-fields":""},{default:t.withCtx(()=>[t.createVNode(t.unref(S.ObjectField),{"as-child":"",name:"config",omit:n,"reset-label-path":"reset"})]),_:1})],64))}}),_G=Me({component:t.defineComponent({__name:"ServiceProtectionForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r={bundles:[["config.strategy","config.redis"]],dependencies:{"config.redis":["config.strategy","redis"]}},o=t.useSlots();t.provide(Ze.AUTOFILL_SLOT,o?.[Ze.AUTOFILL_SLOT_NAME]);function i(a,s){a.config?.namespace===null&&delete a.config.namespace,n.onFormChange(a,s)}return(a,s)=>(t.openBlock(),t.createBlock(nn,t.mergeProps(n,{"on-form-change":i,"render-rules":r}),{default:t.withCtx(()=>[t.createVNode(yG)]),_:1},16))}})}),bG=Me({fieldRenderers:[{match:({genericPath:e})=>e==="config.flow.functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),wG=Me({fieldRenderers:[{match:"config.message.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),kG=Me({fieldRenderers:[{match:"config.message.functions.*",component:S.StringField,propsOverrides:{multiline:!0,rows:3}}]}),CG=Me({fieldRenderers:[{match:"config.metrics",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Metric`}}]}),EG=Me({fieldRenderers:[{match:"config.metrics",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Metric`}}]}),NG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),SG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),AG=Me({fieldRenderers:[{match:"config.custom_fields_by_lua",component:S.MapField,propsOverrides:{appearance:{string:{multiline:!0}}}}]}),xG=Me({renderRules:{bundles:[["config.cache.strategy","config.cache.redis"]],dependencies:{"config.cache.redis":["config.cache.strategy","redis"]}},fieldRenderers:[{match:"config.behavior.idp_error_response_body_template",component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),IG=Me({fieldRenderers:[{match:({path:e})=>/^config\.(client|upstream)\.(text|binary)\.schema$/.test(e),component:S.StringField,propsOverrides:{multiline:!0,rows:4}}]}),vG=Me({fieldRenderers:[{match:"config.static_tags",component:S.ArrayField,propsOverrides:{appearance:"tabs",itemLabel:(e,n)=>`#${n+1} Tag`}}]}),dm=t.defineComponent({__name:"CommonForm",props:{schema:{},model:{},onFormChange:{type:Function},formConfig:{},renderRules:{},fieldRenderers:{},pluginName:{},isKonnectManagedRedisEnabled:{type:Boolean},onValidityChange:{type:Function},isEditing:{type:Boolean},configSections:{},hideEditorModeSwitcher:{type:Boolean},developer:{type:Boolean},generalInfoTitle:{},generalInfoDescription:{},pluginConfigTitle:{},pluginConfigDescription:{}},setup(e){const n=e,r=t.useSlots();return t.provide(Ze.AUTOFILL_SLOT,r?.[Ze.AUTOFILL_SLOT_NAME]),(o,i)=>(t.openBlock(),t.createBlock(nn,t.normalizeProps(t.guardReactiveProps(n)),{default:t.withCtx(()=>[t.createVNode(V0)]),_:1},16))}}),TG=Object.assign({"./plugins/acl/index.ts":XM,"./plugins/ai-azure-content-safety.ts":ZM,"./plugins/ai-custom-guardrail.ts":QM,"./plugins/ai-gcp-model-armor.ts":eU,"./plugins/ai-llm-as-judge.ts":tU,"./plugins/ai-mcp-proxy/index.ts":nU,"./plugins/ai-prompt-compressor.ts":rU,"./plugins/ai-prompt-decorator.ts":oU,"./plugins/ai-prompt-template.ts":iU,"./plugins/ai-proxy-advanced.ts":aU,"./plugins/ai-rag-injector.ts":sU,"./plugins/ai-rate-limiting-advanced.ts":lU,"./plugins/ai-request-transformer.ts":cU,"./plugins/ai-response-transformer.ts":dU,"./plugins/ai-sanitizer.ts":uU,"./plugins/ai-semantic-cache.ts":fU,"./plugins/ai-semantic-prompt-guard.ts":pU,"./plugins/ai-semantic-response-guard.ts":mU,"./plugins/application-registration.ts":gU,"./plugins/basic-auth/index.ts":vU,"./plugins/confluent-consume.ts":TU,"./plugins/confluent.ts":OU,"./plugins/cors.ts":BU,"./plugins/datadog.ts":PU,"./plugins/datakit/index.ts":fq,"./plugins/entitlement-enforcement/index.ts":$q,"./plugins/exit-transformer.ts":Rq,"./plugins/file-log.ts":Lq,"./plugins/graphql-proxy-cache-advanced.ts":Fq,"./plugins/graphql-rate-limiting-advanced.ts":Dq,"./plugins/grpc-gateway.ts":Mq,"./plugins/header-cert-auth.ts":Uq,"./plugins/http-log.ts":jq,"./plugins/injection-protection.ts":Kq,"./plugins/jq.ts":qq,"./plugins/jwt-signer/index.ts":Gq,"./plugins/kafka-consume.ts":zq,"./plugins/kafka-log.ts":Hq,"./plugins/kafka-upstream.ts":Wq,"./plugins/key-auth/index.ts":Yq,"./plugins/ldap-auth-advanced.ts":Jq,"./plugins/loggly.ts":Xq,"./plugins/metering-and-billing/index.ts":s3,"./plugins/mocking.ts":l3,"./plugins/mtls-auth.ts":c3,"./plugins/oas-validation.ts":d3,"./plugins/openid-connect/index.ts":x4,"./plugins/opentelemetry.ts":I4,"./plugins/post-function.ts":v4,"./plugins/pre-function.ts":T4,"./plugins/proxy-cache-advanced.ts":O4,"./plugins/proxy-cache.ts":B4,"./plugins/rate-limiting-advanced/index.ts":z4,"./plugins/rate-limiting/index.ts":W4,"./plugins/request-callout/index.ts":Q4,"./plugins/request-validator.ts":eG,"./plugins/response-ratelimiting.ts":tG,"./plugins/response-transformer-advanced.ts":nG,"./plugins/response-transformer.ts":rG,"./plugins/route-by-header.ts":oG,"./plugins/service-protection/index.ts":_G,"./plugins/solace-consume.ts":bG,"./plugins/solace-log.ts":wG,"./plugins/solace-upstream.ts":kG,"./plugins/statsd-advanced.ts":CG,"./plugins/statsd.ts":EG,"./plugins/syslog.ts":NG,"./plugins/tcp-log.ts":SG,"./plugins/udp-log.ts":AG,"./plugins/upstream-oauth.ts":xG,"./plugins/websocket-validator.ts":IG,"./plugins/zipkin.ts":vG});function OG(e){const n=e.match(/\.\/plugins\/(.+?)(?:\/index)?\.ts$/);if(!n)throw new Error(`Unable to derive plugin name from path: ${e}`);const[,r]=n;return r}function BG(e){const n={},r=new Map;for(const[o,i]of Object.entries(e)){const a=OG(o);if(r.has(a))throw new Error(`Duplicate plugin config for "${a}": ${r.get(a)} and ${o}`);r.set(a,o),n[a]={component:i.component??dm,renderRules:i.renderRules,fieldRenderers:i.fieldRenderers??[]}}return n}const q0=BG(TG);function G0(e){return q0[e]}function PG(e){return G0(e)?.component??dm}const VG={class:"kong-ui-entities-plugin-form"},$G={key:1,class:"entity-form"},RG=ve(t.defineComponent({__name:"PluginEntityForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(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},enableVaultSecretPicker:{type:Boolean,default:!1},developer:{type:Boolean,default:!1}},emits:["loading","model-updated","globalAction","click:learn-more","click:create-entity","validity-change"],setup(e,{emit:n}){const r=n,o=e,i=t.computed(()=>o.config.app!=="konnect"?!1:o.config.isCloudGateway===!0),a=t.inject(kn.KM_2306_CONDITION_FIELD_314,!1),{axiosInstance:s}=ge.useAxios(o.config?.axiosRequestConfig),{parseSchema:l}=nt.useSchemas({entityId:o.entityMap.focusedEntity?.id||void 0}),{convertToDotNotation:c,unFlattenObject:d,dismissField:u,isObjectEmpty:f,unsetNullForeignKey:p}=nt.usePluginHelpers(),m=t.inject(ge.PLUGIN_FORM_LAYOUT_STATE),g=D=>{m&&(m.value=D)},{objectsAreEqual:_}=ge.useHelpers(),h=D=>{let te=D;return o.config.app==="konnect"&&(te=te.replace(/{controlPlaneId}/gi,o.config.controlPlaneId||"")),te.replace(/\/{workspace}/gi,o.config.workspace?`/${o.config.workspace}`:"")},y=(D,te)=>{let fe=`${o.config.apiBaseUrl}${Xe.form[o.config.app].entityGetOne}`;return fe=h(fe),fe=fe.replace(/{entity}/gi,D),fe=fe.replace(/{id}/gi,te),fe},w=D=>{let te=`${o.config.apiBaseUrl}${Xe.form[o.config.app].entityGetAll}`;return te=h(te),te=te.replace(/{entity}/gi,D),te},b=(D,te,fe)=>{const Ee=y(D,te);return s.get(Ee,fe)},E=(D,te)=>{const fe=w(D);return o.config.app==="konnect"?s.get(fe).then(Ee=>{const{data:{data:Re}}=Ee;if(delete te.size,delete te.offset,Re.length&&Object.keys(te).length===1){const Pe=Object.keys(te)[0],ke=Re.filter(Ae=>Ae[Pe]?!!Ae[Pe].toLowerCase().includes(te[Pe].toLowerCase()):!1);Ee.data.data=ke}return Ee}):s.get(fe,{params:te})},k=(D,te,fe)=>{const Ee=w(D);if(o.config.app==="konnect"){const{size:Re,offset:Pe,...ke}=te;if(D==="consumer_groups")return s.get(Ee,{params:{size:1e3},signal:fe}).then(Ce=>{const{data:{data:oe}}=Ce;if(oe.length&&Object.keys(ke).length===1){const ie=Object.keys(ke)[0],ye=oe.filter(Q=>Q[ie]?!!Q[ie].toLowerCase().includes(ke[ie].toLowerCase()):!1);Ce.data.data=ye}return Ce});const Ae={size:Re,offset:Pe};for(const Ce of Object.keys(ke))Ae.filter={[Ce]:{contains:ke[Ce]}};return s.get(Ee,{params:Ae,signal:fe})}return s.get(Ee,{params:te,signal:fe})},N=(D,te=50)=>{const fe=w(D);return s.get(fe,{params:{size:te}})};t.provide(Ze.FORMS_API_KEY,{getOne:b,getAll:E,getAllV2:k,peek:N});const T=t.shallowReactive({...o.config});t.watch(()=>o.config,D=>{Object.assign(T,D)}),t.provide(Ze.FORMS_CONFIG,T);const x=gl();t.provide(Ze.REDIS_CREATE_SLIDEOUT,{component:t.markRaw(xu.RedisConfigurationFormSlideout),toast:D=>x(D)});const B=t.ref(),O=t.shallowRef(),A=t.ref({}),I=t.reactive({}),V=t.reactive({}),L=t.computed(()=>{const D=a2(V.name,o.rawSchema);return i2(D)}),R=t.ref(!1),Z=t.ref(),ee=(D,te)=>{R.value=D??"",Z.value=te},j=D=>{Z.value?.(D),R.value=!1},G=D=>{if(!D){B.value=void 0,O.value=void 0,g(!1);return}const te=o.schema?._sourcePlugin||D;B.value=G0(te),O.value=PG(te),g(!!O.value)},$=D=>{const te={...o.schema},fe=V,Ee=I,Re=Object.keys(fe),Pe={};if(!f(A.value))for(let Ae=0;Ae<A.value?.fields?.length;Ae++)te[A.value.fields[Ae].model]=A.value.fields[Ae];Ze.customFields.forEach(Ae=>{te[Ae]&&(te[Ae].fields.forEach(Ce=>{Ce.fields&&Ce.fields.forEach(oe=>{te[oe.model]=oe}),Ce.model&&(te[Ce.model]=Ce)}),delete te[Ae])}),Re.forEach(Ae=>{if(!te[Ae]){Ae==="partials"&&(Pe[Ae]=fe[Ae]);return}const Ce=te[Ae];let oe=fe[Ae];const ie=Ee[Ae],ye=Array.isArray(oe)?"array":typeof oe,Q=Ce?Ce.valueType:null,z=Ce?Ce.valueArrayType:null,Y=Ce?Ce.transform:null;if(oe==null&&ie==null&&!Ce.submitWhenNull)return;if(Ce){if(Q&&ye!==Q)switch(Q){case"array":ye==="string"&&oe.length&&(oe=oe.split(",").map(_e=>{if(_e=_e.trim(),z==="string")return String(_e);if(z==="number")return Number(_e);if(z==="boolean"){if(typeof _e=="string")return _e.toLowerCase()==="true"||_e==="1";if(typeof _e=="number")return _e===1}return _e})),(!oe||!oe.length)&&(oe=Ce.submitWhenNull?null:[]);break;case"number":Ce.referenceable!==!0&&(oe=Number(oe));break;case"boolean":ye==="string"&&(oe=oe.toLowerCase()==="true"||oe==="1"),ye==="number"&&(oe=oe===1);break;case"string":oe=oe==null?"":String(oe);break}else Q==="array"&&(!oe||!oe.length?oe=Ce.submitWhenNull?null:[]:Ce.inputAttributes?.type==="number"&&(oe=oe.map(_e=>Number(_e))));if(Ce.type==="array"&&Ce.nestedFields){const _e=Le=>{Object.keys(Le).forEach(De=>{Le[De]&&typeof Le[De]=="object"&&!Array.isArray(Le[De])&&Le[De]!==null?_e(Le[De]):(Le[De]===void 0||Le[De]===null||typeof Le[De]=="number"&&isNaN(Le[De])||typeof Le[De]=="string"&&Le[De].trim().length===0)&&delete Le[De]})};oe&&typeof oe=="object"&&_e(oe)}Ce.type==="object-advanced"&&Ce.fields&&oe!==null&&(Object.entries(oe).length===0?oe=null:Object.keys(oe).forEach(_e=>{Array.isArray(oe[_e])||(oe[_e]=oe[_e].split(","))}))}let me=c(Ae);if(Ce.fieldNameHasDashes){const[_e,...Le]=me.split(".").reverse();me=[_e.replace(/_/g,"-"),...Le].reverse().join(".")}if(Q==="object-expand"){let _e;[me,_e]=me.split(".");let Le={};Pe[me]&&(Le=Pe[me]),Le[_e]=oe,oe=Le}ie!==void 0&&oe===""&&oe!==ie?Pe[me]=Q==="object"?{}:null:Ce.type==="checklist"&&oe===""?Pe[me]=[]:oe!==""&&(Pe[me]=oe),Pe[me]=Y?Y(oe):Pe[me],p(me,Pe)});const ke=d(Pe);if(O.value){if(D&&D.length)for(const Ae of D)delete ke[Ae];Object.assign(ke,Ie.value)}return ke},pe=(D,te={})=>{u(V,te,D,o.editing),r("model-updated",{model:V,originalModel:I,data:$()})},de=D=>{r("validity-change",D)},M=(D,te)=>{Object.keys(D).forEach(fe=>{let Ee=te?`${te}-${fe}`:fe,Re=o.schema[Ee];if(!Re){const Ae=te?`${te}-${fe.replace(/-/g,"_")}`:fe.replace(/-/g,"_");o.schema[Ae]?.fieldNameHasDashes&&(Ee=Ae,Re=o.schema[Ee]),te&&o.schema[te]?.keyFromObject===fe&&(Ee=te,Re=o.schema[Ee])}const Pe=D[fe],ke=typeof Pe;if(Re&&Re.type==="object-advanced"&&!Pe){V[Ee]={},I[Ee]={};return}if(Array.isArray(Pe)){V[Ee]=JSON.parse(JSON.stringify(Pe)),I[Ee]=JSON.parse(JSON.stringify(Pe));return}if(ke==="object"&&Pe&&!Pe.length)return M(Pe,Ee);if(ke==="object"&&Pe&&Pe.length&&Re.type==="input"){V[Ee]=Pe.join(", "),I[Ee]=Pe.join(", ");return}V[Ee]=Pe,I[Ee]=Pe}),r("model-updated",{model:V,originalModel:I,data:$()})},ue=(D,te)=>{if(!te)return D;if(Array.isArray(D)){const Re=te.elements;return Re?D.map(Pe=>ue(Pe,Re)):D}if(!D||typeof D!="object")return D;if(te.type==="map"&&te.values){const Re=te.values,Pe={};for(const ke of Object.keys(D))Pe[ke]=ue(D[ke],Re);return Pe}if(!Array.isArray(te.fields))return D;const fe=new Map;for(const Re of te.fields){const Pe=Re&&Object.keys(Re)[0];Pe&&fe.set(Pe,Re[Pe])}const Ee={};for(const Re of Object.keys(D)){const Pe=fe.get(Re);Pe&&(Ee[Re]=ue(D[Re],Pe))}return Ee},ne=()=>{const D=o.rawSchema?.fields;return Array.isArray(D)?D.find(fe=>fe?.config)?.config:void 0},ae=new Set(["datakit"]),ze=t.computed(()=>o.schema?._sourcePlugin||V.name),Ie=t.shallowRef(o.record),je=(D,te)=>{const fe=ae.has(ze.value)?D:{...D,config:ue(D.config,ne())};Ie.value=fe;const Ee={...V};for(const Re of te||[])delete Ee[Re];r("model-updated",{model:{...Ee,...fe},originalModel:I,data:$(te)})},le=t.ref(!0),re=()=>{if(o.record&&o.schema&&(M({enabled:o.record.enabled??!0,...o.record.instance_name&&{instance_name:o.record.instance_name||""},...a&&o.record.condition!=null&&{condition:o.record.condition},...o.record.protocols&&{protocols:o.record.protocols},...o.record.tags&&{tags:o.record.tags}}),o.record.config&&((o.record.consumer_id||o.record.consumer||o.record.service_id||o.record.service||o.record.route_id||o.record.route||o.record.consumer_group_id||o.record.consumer_group)&&M({service_id:o.record.service_id||o.record.service,route_id:o.record.route_id||o.record.route,consumer_id:o.record.consumer_id||o.record.consumer,consumer_group_id:o.record.consumer_group_id||o.record.consumer_group}),o.record.partials&&pe("redis",{partials:o.record.partials}),O.value?je(o.record):M(o.record.config,"config"))),Object.keys(o.entityMap).length&&!o.entityMap.global&&o.schema){const D={};for(const te in o.entityMap){const fe=o.entityMap[te].id,Ee=o.entityMap[te].idField,Re=Ee==="consumer_group_id"?"consumer_group-id":JSON.parse(JSON.stringify(Ee).replace("_","-"));Object.prototype.hasOwnProperty.call(V,Re)&&(D[Re]=fe)}M(D)}le.value=!1};return t.watch(le,D=>{r("loading",D)}),t.watch(()=>o.schema,(D,te)=>{if(_(D||{},te||{}))return;const fe=l(D);Object.assign(V,fe.model),A.value={fields:A.value?.fields?.map(Ee=>({...Ee,disabled:Ee.disabled||!1}))},Object.assign(I,JSON.parse(JSON.stringify(fe.model))),G(fe.model.name),re()},{immediate:!0,deep:!0}),t.onBeforeMount(()=>{const D=l(o.schema);Object.assign(V,D.model),A.value=D.schema,G(D.model.name),re()}),t.onBeforeUnmount(()=>{g(!1)}),(D,te)=>{const fe=t.resolveComponent("KSkeleton");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createElementVNode("div",VG,[le.value?(t.openBlock(),t.createBlock(fe,{key:0,type:"form"})):V.id&&e.editing||!e.editing?(t.openBlock(),t.createElementBlock("div",$G,[O.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(O.value),{key:0,developer:e.developer,"field-renderers":B.value?.fieldRenderers,"form-model":V,"form-schema":A.value,"is-editing":e.editing,"is-konnect-managed-redis-enabled":i.value,model:e.record,"on-form-change":je,"on-validity-change":de,"plugin-name":V.name,"render-rules":B.value?.renderRules,schema:L.value,"onClick:createEntity":te[0]||(te[0]=Ee=>D.$emit("click:create-entity",Ee)),"onClick:learnMore":te[1]||(te[1]=Ee=>D.$emit("click:learn-more",Ee)),onGlobalAction:te[2]||(te[2]=(Ee,Re)=>D.$emit("globalAction",Ee,Re))},t.createSlots({_:2},[e.enableVaultSecretPicker?{name:t.unref(Ze.AUTOFILL_SLOT_NAME),fn:t.withCtx(Ee=>[Ee.schema.referenceable?(t.openBlock(),t.createBlock(t.unref(Iu.VaultSecretPickerProvider),t.mergeProps({key:0},Ee,{onOpen:ee}),null,16)):t.createCommentVNode("",!0)]),key:"0"}:void 0]),1064,["developer","field-renderers","form-model","form-schema","is-editing","is-konnect-managed-redis-enabled","model","plugin-name","render-rules","schema"])):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)]),t.createVNode(t.unref(Iu.VaultSecretPicker),{config:o.config,setup:R.value,onCancel:te[3]||(te[3]=()=>R.value=!1),onProceed:j},null,8,["config","setup"])],64)}}}),[["__scopeId","data-v-e35798b7"]]),LG={key:1},FG=t.defineComponent({__name:"PluginFormActionsWrapper",props:{teleportTarget:{type:String,default:""}},setup(e){return(n,r)=>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",LG,[t.renderSlot(n.$slots,"default")]))}}),DG={key:0},MG={class:"plugin-form-actions"},UG={key:0,class:"button-customize-deck-wrapper"},jG=ve(t.defineComponent({__name:"PluginForm",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string")},pluginType:{type:String,required:!0},pluginId:{type:String,default:null},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},useSecretInput:{type:Boolean,default:!1},schema:{type:Object,default:null},scopedEntitiesPermissions:{type:Object,default:null}},emits:["cancel","error:fetch-schema","error","loading","update","model-updated","globalAction","click:create-entity","click:learn-more"],setup(e,{emit:n}){const r=t.inject(kn.KM_2306_CONDITION_FIELD_314,!1),o=t.inject(kn.KM_2485_CLONED_PLUGINS,!1),i=t.ref(!1);t.provide(ge.PLUGIN_FORM_LAYOUT_STATE,i);const a=n,s=e,l=gr.useRouter(),{i18n:{t:c}}=nt.useI18n(),{typedefs:d}=nt.useSchemas(),{formatPluginFieldLabel:u}=nt.usePluginHelpers(),{getMessageFromError:f}=ge.useErrors(),{capitalize:p}=ge.useStringHelpers(),{objectsAreEqual:m}=ge.useHelpers(),{axiosInstance:g}=ge.useAxios(s.config?.axiosRequestConfig),{getClonedPlugin:_}=nt.useCustomPluginApi({axiosInstance:ge.useAxios({...s.config?.axiosRequestConfig??{},konnect:{bypassGlobal404Handler:!0}}).axiosInstance,apiBaseUrl:s.config.apiBaseUrl,app:s.config.app,workspace:s.config.workspace,controlPlaneId:s.config.controlPlaneId}),h=t.ref(!1),y=t.computed(()=>!!s.pluginId),w=t.computed(()=>s.pluginId?ge.EntityBaseFormType.Edit:ge.EntityBaseFormType.Create),b=t.ref(void 0),E=t.ref(void 0),k=t.computed(()=>!!(s.credential&&s.config.entityId)),N=t.ref(void 0),T=t.ref({}),x=t.ref(),B=t.ref(),O=t.ref(null),A=t.computed(()=>O.value!==null);t.provide(S.USE_SECRET_INPUT_KEY,t.toRef(s,"useSecretInput")),t.provide(Fl,{redisType:x,redisPath:B,isEditing:y.value});const I=[];t.provide(Jp,K=>(I.push(K),()=>{const U=I.indexOf(K);U!==-1&&I.splice(U,1)}));const V=t.ref(!1),{isDeckEnabled:L,deckCustomizationOptions:R,deckCalloutPreferenceKey:Z}=ge.useBaseFormDeckOptions(()=>s.config,ge.SupportedEntityType.Plugin),ee=t.ref(!1),j=t.reactive({enabled:!0,protocols:[],tags:[]}),G=t.reactive({fields:{enabled:!0,protocols:[],tags:[]},isReadonly:!1,clientErrorMessage:"",serverErrorMessage:""}),$=t.ref([{title:c("view_configuration.json"),hash:"#json"},{title:c("view_configuration.yaml"),hash:"#yaml"}]);s.config.app==="konnect"&&$.value.splice(1,0,{title:c("view_configuration.terraform"),hash:"#terraform"}),L.value&&$.value.push({title:c("view_configuration.deck"),hash:"#deck"});const pe=t.ref($.value[0].hash),de=t.ref(""),M=t.computed(()=>{if(k.value){let U=Xe.form[s.config.app].credential[w.value];return U=U.replace(/{resourceEndpoint}/gi,ze.value),U}let K;return s.config.entityType&&s.config.entityId?K=Xe.form[s.config.app].edit.forEntity.replace(/{entityType}/gi,s.config.entityType).replace(/{entityId}/gi,s.config.entityId):K=Xe.form[s.config.app].edit.all,s.config.app==="konnect"&&kr[s.pluginType]?.useUIData?`${K}?__ui_data=true`:K}),ue=()=>{h.value=!h.value},ne=t.computed(()=>{const K=s.config.entityType==="consumers"&&s.config.entityId||N.value?.consumer?.id,U=s.config.entityType==="consumer_groups"&&s.config.entityId||N.value?.consumer_group?.id,J=s.config.entityType==="services"&&s.config.entityId||N.value?.service?.id,Ge=s.config.entityType==="routes"&&s.config.entityId||N.value?.route?.id;if(!(K||U||J||Ge))return{global:{entity:W.PluginScope.GLOBAL,entityEndpoint:"plugins"}};const qe={};return J&&(qe.service={entity:W.PluginScope.SERVICE,entityEndpoint:"services",id:J,idField:_o.SERVICE}),Ge&&(qe.route={entity:W.PluginScope.ROUTE,entityEndpoint:"routes",id:Ge,idField:_o.ROUTE}),K&&(qe.consumer={entity:W.PluginScope.CONSUMER,entityEndpoint:"consumers",id:K,idField:_o.CONSUMER}),U&&(qe.consumer_group={entity:W.PluginScope.CONSUMER_GROUP,entityEndpoint:"consumer_groups",id:U,idField:_o.CONSUMER_GROUP}),s.config.entityType&&(qe.focusedEntity={entity:W.PluginScope[s.config.entityType.substring(0,s.config.entityType.length-1).toUpperCase()],entityEndpoint:s.config.entityType,id:s.config.entityId,idField:_o[s.config.entityType.substring(0,s.config.entityType.length-1).toUpperCase()]}),qe}),ae=t.reactive({name:{default:s.pluginType,type:"input",inputType:"hidden",styleClasses:"d-none hidden-field",pinned:!0},enabled:{type:"switch",model:"enabled",label:c("plugins.form.fields.enabled.label"),textOn:c("plugins.form.fields.enabled.on_text"),textOff:c("plugins.form.fields.enabled.off_text"),styleClasses:"field-switch hide-label",default:!0,pinned:!0},selectionGroup:{type:"selectionGroup",disabled:s.disableScopeSelection,inputType:"hidden",styleClasses:"hide-label",fields:[{label:c("plugins.form.scoping.global.label"),description:c("plugins.form.scoping.global.help")}],pinned:!0},protocols:{id:"protocols",default:[],help:c("plugins.form.fields.protocols.help"),label:c("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:c("plugins.form.fields.instance_name.label"),inputType:"text",help:c("plugins.form.fields.instance_name.help")},tags:d.tags,...r?{condition:{default:"",type:"input",label:c("plugins.form.fields.condition.label"),inputType:"text",help:c("plugins.form.fields.condition.tooltip"),placeholder:c("plugins.form.fields.condition.placeholder")}}:{}}),ze=t.computed(()=>{const K=s.developer?"developers":"consumers",U=qr[s.pluginType]?.endpoint||"/plugins";return`${K}/${s.config.entityId}${s.developer?"/credentials":""}${U}`}),Ie=K=>{const U=Array.from(new Set(K.map(J=>typeof J)));return U.length>1?"string":U[0]},je=(K,U,J,Ge)=>{let qe=U&&U.fields||[];return Array.isArray(qe)&&(qe=qe.reduce((Ve,F)=>{const H=Object.keys(F)[0];return H.match(/-/g)?Ve[H.replace(/-/g,"_")]={...F[H],fieldNameHasDashes:!0}:Ve[H]=F[H],Ve},{})),Object.keys(qe).sort().forEach(Ve=>{if(!K&&Ve===S.EXPRESSIONS_FIELD)return;const F=qe[Ve];F.type==="set"&&!F.elements.one_of&&(F.type="array");const H=K?`${K}-${Ve}`:`${Ve}`;if(Object.prototype.hasOwnProperty.call(F,"overwrite")||F.hidden)return;if(F.type==="table")return je(H,F.schema,J);if(F.fields)return Ge&&F.type==="record"?(J[H]={type:"object",model:Ve,schema:{fields:Object.values(je(H,F,{},!0))}},J):je(H,F,J);if(J[H]={id:H,model:Ve},J[H].type=F.type==="boolean"?"checkbox":"input",J[H].required=F.required,J[H].referenceable=F.referenceable,H.startsWith("config-"))if(!Ge&&F.type==="array"&&(de.value=H),Ge&&de.value&&H.startsWith(de.value)){const ce=H.slice(de.value.length+1);J[H].label=ce.split("-").map(u).join(".")}else J[H].label=u(H);if((K==="config"||K.startsWith("config-"))&&qe[Ve]?.description&&(J[H].help=Au.sanitize(qh.marked.parse(qe[Ve].description,{mangle:!1,headerIds:!1}))),F.type==="map"){if(J[H].type="object-advanced",J[H].values=F.values,F.values.type==="array"){const{type:ce}=F.values.elements||{};J[H].schema={fields:[{schema:{fields:[{...ui,model:H,valueArrayType:ce==="integer"?"number":ce||"string",inputAttributes:{...ui.inputAttributes,type:ce==="integer"?"number":"text",inputMode:ce==="integer"?"numeric":"text"}}]}}]}}else F.values.fields&&(J[H].schema={fields:[{type:"object",model:"object",schema:{fields:F.values.fields.map(ce=>{const Te=Object.keys(ce)[0];return{model:Te,type:"input",label:p(Te),placeholder:Te,inputType:ce[Te].type}})}}]});return J}if(F.enum&&F.type==="array"&&(J[H].type="checklist",J[H].values=F.enum,J[H].multi=!0,J[H].multiSelect=!0),F.one_of&&F.type!=="array"&&(J[H].type="select",J[H].values=F.one_of,J[H].selectOptions={noneSelectedText:c("plugins.form.no_selection")}),F.elements&&F.type==="array"){const ce=F.elements;if(J[H].referenceable=ce.referenceable,J[H].elements=ce,["string","integer","number"].includes(ce.type)&&!ce.one_of){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt}=J[H],{inputAttributes:gt,...Ot}=JSON.parse(JSON.stringify(ui));gt.type=ce.type==="string"?"text":"number",J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,inputAttributes:gt,...Ot}}else if(["string","integer","number"].includes(ce.type)&&ce.one_of){if(Ge){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt}=J[H];J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,...RR(ce.one_of,F.default)}}}else if(ce.type==="array"){const{id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,elements:gt}=J[H],{inputAttributes:Ot,...el}=JSON.parse(JSON.stringify(ui));J[H]={id:Te,help:Be,label:xe,hint:He,values:tt,referenceable:$t,model:pt,elements:gt,inputAttributes:Ot,...el}}}if(F.hint&&(J[H].hint=Au.sanitize(F.hint)),F.type==="array"&&F.elements?.type==="record"&&Array.isArray(F.elements.fields)){let ce={};for(const Be of F.elements.fields)ce={...ce,...Be};const Te=J[H]?.items?.schema?.fields;if(Array.isArray(Te))for(const Be of J[H].items.schema.fields){const xe=ce[Be.model]?.description;Be.help===void 0&&typeof xe=="string"&&(Be.help=Au.sanitize(qh.marked.parse(xe,{mangle:!1,headerIds:!1})))}if(Te||(J[H].type="array",J[H].newElementButtonLabelClasses="kong-form-new-element-button-label",J[H].fieldClasses="array-card-container-wrapper",J[H].itemContainerComponent="FieldArrayCardContainer",J[H].items={type:"object",schema:{fields:Object.values(je(H,F.elements,{},!0))}},J[H].items.schema.fields.forEach(Be=>{for(const xe of F.elements.fields){const He=Object.keys(xe)[0],tt=Be.id?.split?.("-")??[];if(tt[tt.length-1]===He){Be.model=He,Be.label=u(He);break}}}),F.elements.type==="record"&&(J[H].nestedFields=!0)),!J[H].nestedFields)J[H].items.default=()=>F.elements.fields.reduce((Be,xe)=>{const He=Object.keys(xe)[0];return Be[He]=xe[He].default,Be},{});else{const Be=(xe,He)=>{if(xe.type==="object"){xe.model&&(He[xe.model]={});for(const tt of xe.schema.fields)Be(tt,xe.model?He[xe.model]:He)}else xe.model&&(He[xe.model]=xe.default)};J[H].items.default=()=>{const xe={};return Be(J[H].items,xe),xe}}}if(F.required&&F.type!=="boolean"&&(J[H].required=!0,J[H].selectOptions={hideNoneSelectedText:!0}),F.required&&F.type==="boolean"&&(J[H].default=F.default??!1),F.default!=null&&typeof F.default!="object"&&F.default!=="function"&&(J[H].default=F.default),J[H].type==="input"){["string","number"].includes(typeof J[H].default)&&s.config.app==="konnect"&&(J[H].placeholder=`Default: ${J[H].default===""?"<empty string>":J[H].default}`);const{type:ce}=F.elements||{};ce&&(J[H].valueArrayType=ce==="integer"?"number":ce),J[H].inputType=F.type==="array"||F.type==="string"?F.encrypted?"password":"text":F.type}let he="string";F.enum?he=Ie(F.enum):F.type==="boolean"?he="boolean":F.type==="number"||F.type==="integer"?(he="number",J[H].inputType="number"):F.type==="array"?(he="array",J[H].default=F.default,F.len_min>0&&(J[H].submitWhenNull=!0)):F.type==="foreign"?he="object":F.default&&Array.isArray(F.default)?(he="array",J[H].valueArrayType=Ie(F.default)):F.default&&(he=typeof F.default),J[H].valueType=he,F.fieldNameHasDashes&&(J[H].fieldNameHasDashes=!0)}),J},le=()=>{const K=A.value&&O.value?O.value:s.pluginType,U=kr[K]?.scope.includes(W.PluginScope.SERVICE)??!0,J=kr[K]?.scope.includes(W.PluginScope.ROUTE)??!0,Ge=kr[K]?.scope.includes(W.PluginScope.CONSUMER)??!0,qe=s.config.disableConsumerGroupScope?!1:kr[K]?.scope.includes(W.PluginScope.CONSUMER_GROUP)??!0,Ve=s.config.entityType==="consumers"&&!!s.config.entityId||!!N.value?.consumer?.id,F=s.config.entityType==="consumer_groups"&&!!s.config.entityId||!!N.value?.consumer_group?.id,H=s.config.entityType==="services"&&!!s.config.entityId||!!N.value?.service?.id,he=s.config.entityType==="routes"&&!!s.config.entityId||!!N.value?.route?.id,ce=[],Te=(xe,He,tt)=>xe?c("plugins.form.disable_source_scope_change",{scope:tt}):He?c("plugins.form.disable_data_retrieving",{scope:tt}):"",Be=xe=>s.scopedEntitiesPermissions?.[xe]?.canRetrieve===!1;if(U){const xe=Be("service"),He="services",tt=H&&s.disableScopeSelection;ce.push({id:"service-id",model:"service-id",label:c("plugins.form.scoping.gateway_service.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",labelField:"name",entity:He,inputValues:{fields:["name","id"]},help:c("plugins.form.scoping.gateway_service.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(J){const xe=Be("route"),He="routes",tt=he&&s.disableScopeSelection;ce.push({id:"route-id",model:"route-id",label:c("plugins.form.scoping.route.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,labelField:"name",inputValues:{fields:["name","id"],primaryField:"id"},help:c("plugins.form.scoping.route.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(Ge){const xe=Be("consumer"),He="consumers",tt=Ve&&s.disableScopeSelection;ce.push({model:"consumer-id",label:c("plugins.form.scoping.consumer.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,labelField:"username",inputValues:{fields:["username","custom_id","id"],primaryField:"username"},help:c("plugins.form.scoping.consumer.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(qe){const xe=Be("consumer_group"),He="consumer_groups",tt=F&&s.disableScopeSelection;ce.push({model:"consumer_group-id",label:c("plugins.form.scoping.consumer_group.label"),placeholder:c("plugins.form.scoping.placeholder"),type:"AutoSuggest",entity:He,entityDataKey:"consumer_group",labelField:"name",inputValues:{fields:["name","id"],primaryField:"name"},help:c("plugins.form.scoping.consumer_group.help"),disabled:tt||xe,disabledTooltip:Te(tt,xe,He)})}if(ce.length){const xe=[...U?["service"]:[],...J?["route"]:[],...Ge?["consumer"]:[],...qe?["consumer_group"]:[]],tt=xe.splice(xe.length-2,2).map(pt=>c(pt==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${pt}.plural`)).join(`${xe.length>0?",":""} and/or `),$t=["Specific",[...xe.length>0?[xe.map(pt=>c(pt==="service"?"plugins.form.scoping.gateway_service.plural":`plugins.form.scoping.${pt}.plural`)).join(", ")]:[],tt].join(", ")].join(" ");ae.selectionGroup.fields.push({label:c("plugins.form.scoping.label"),description:$t,fields:[]}),ae.selectionGroup.fields[1].fields=ce}},re=t.computed(()=>!m(G.fields,j,!0)),D=t.computed(()=>!it.value&&!ee.value&&(w.value===ge.EntityBaseFormType.Create||re.value)),te=t.ref(!1),fe=t.ref(),Ee=K=>{s.credential&&K.password&&(K.password=""),G.fields.id=K?.id||void 0,fe.value=K?.ordering,Object.assign(j,G.fields),N.value=K,te.value=!0},Re=t.ref({}),Pe=t.ref(!1),ke=K=>{G.fields=K.model,G.fields.id=N.value?.id||void 0,Object.assign(j,K.originalModel),Re.value=K.data,s.isWizardStep&&a("model-updated",{model:G.fields,data:K.data,resourceEndpoint:ze.value})},Ae=K=>{G.fields={...G.fields,...K,id:N.value?.id||void 0},Pe.value||(Pe.value=!0,Object.keys(j).forEach(Ge=>delete j[Ge]),Object.assign(j,G.fields));const U=j,J=Ge=>Ge==null||Ge==="";Re.value=Object.fromEntries(Object.entries(K).filter(([Ge,qe])=>!J(qe)||!J(U[Ge])).map(([Ge,qe])=>[Ge,J(qe)?null:qe])),s.isWizardStep&&a("model-updated",{model:G.fields,data:Re.value,resourceEndpoint:ze.value})},Ce=t.ref(new Map),oe=t.computed(()=>[G.clientErrorMessage,G.serverErrorMessage].filter(Boolean).join("; ")),ie=K=>{K.valid?Ce.value.delete(K.model):Ce.value.set(K.model,K.error),G.clientErrorMessage=[...Ce.value.entries()].map(([U,J])=>`${U}: ${typeof J=="string"?J:f(J)}`).join("; "),G.clientErrorMessage&&(G.serverErrorMessage="")};t.watch([ne,te],(K,U)=>{const J=K[0]!==U[0],Ge=K[1],qe=U[1];if(!k.value&&w.value===ge.EntityBaseFormType.Edit&&(J||Ge&&Ge!==qe)){const Ve=je("config",T.value,ae);z.value&&(Ve._isCustomPlugin=!0),A.value&&O.value&&(Ve._sourcePlugin=O.value),x.value&&(Ve._supported_redis_partial_type=x.value),E.value=Ve}},{deep:!0});const ye=()=>{s.config.cancelRoute?l.push(s.config.cancelRoute):a("cancel")},Q=t.computed(()=>{const K=s.config.entityType&&s.config.entityId&&!s.developer,U=k.value?Xe.form[s.config.app].credential[w.value]:Xe.form[s.config.app][w.value][K?"forEntity":"all"];let J=`${s.config.apiBaseUrl}${U}`;return s.config.app==="konnect"&&(J=J.replace(/{controlPlaneId}/gi,s.config.controlPlaneId||"")),J=J.replace(/\/{workspace}/gi,s.config.workspace?`/${s.config.workspace}`:""),J=J.replace(/{resourceEndpoint}/gi,ze.value),J=J.replace(/{id}/gi,s.pluginId??""),J=J.replace(/{entityType}/gi,s.config.entityType||""),J=J.replace(/{entityId}/gi,s.config.entityId||""),J}),z=t.computed(()=>!Object.keys(kr).includes(s.pluginType)),Y=t.computed(()=>{const K=k.value?{...Re.value}:Re.value;if(k.value){const U=ne.value.consumer?.id;U&&(K.consumer={id:U})}return Re.value.partials&&B.value&&iB(K,B.value),K}),me=t.computed(()=>{const{__ui_data:K,...U}={...Y.value};return U}),_e=async()=>{if(I.every(K=>K())&&!G.clientErrorMessage&&!s.isWizardStep)try{G.isReadonly=!0;let K;const U=JSON.parse(JSON.stringify(Y.value));k.value&&s.config.app==="kongManager"&&["key-auth","key-auth-enc"].includes(s.pluginType)&&typeof U.ttl!="number"&&(U.ttl=0),w.value==="create"?K=await g.post(Q.value,U):w.value==="edit"&&(K=s.config.app==="konnect"||x.value&&U.partials?await g.put(Q.value,Object.assign({ordering:fe.value},U)):await g.patch(Q.value,U)),Object.assign(j,G.fields),a("update",K?.data)}catch(K){G.serverErrorMessage=f(K),a("error",K)}finally{G.isReadonly=!1}},Le=t.computed(()=>{const K=k.value?qr[s.pluginType]?.schemaEndpoint:s.pluginType,U=k.value?Xe.form[s.config.app].credentialSchema:Xe.form[s.config.app].pluginSchema;let J=`${s.config.apiBaseUrl}${U}`;return s.config.app==="konnect"&&(J=J.replace(/{controlPlaneId}/gi,s.config.controlPlaneId||"")),J.replace(/\/{workspace}/gi,s.config.workspace?`/${s.config.workspace}`:"").replace(/{plugin}/gi,K)}),De=t.ref(""),it=t.ref(!1),q=t.ref("");t.onBeforeMount(async()=>{it.value=!0;try{if(k.value){const K=qr[s.pluginType]?.schemaEndpoint;s.config.app==="konnect"?(De.value=K,b.value=tw[K]):b.value=s.schema??(await g.get(Le.value)).data}else{const K=o&&z.value,U=s.schema?Promise.resolve(s.schema):g.get(Le.value).then(Ge=>Ge.data),[J]=await Promise.all([U,K?se(s.pluginType):Promise.resolve()]);if(b.value=J,J){const Ge=J.fields.find(Ve=>Ve.config);T.value=Ge?Ge.config:J,J.supported_partials&&(x.value=Object.keys(J.supported_partials).find(Ve=>[Pl.REDIS_CE,Pl.REDIS_EE].includes(Ve)),B.value=J.supported_partials[x.value]?.[0]),le();const qe=J.fields.find(Ve=>Ve.protocols)?.protocols;if(qe){const{default:Ve=[],elements:F={}}=qe;ae.protocols.default=Ve,ae.protocols.placeholder=s.config.app==="konnect"?c("plugins.form.fields.protocols.placeholderWithDefaultValues",{protocols:Ve.join(", ")}):c("plugins.form.fields.protocols.placeholder"),F.one_of?.length&&(ae.protocols.values=F.one_of.map(H=>({label:H,value:H})))}if(te.value||w.value===ge.EntityBaseFormType.Create){const Ve=je("config",T.value,ae);x.value&&(Ve._supported_redis_partial_type=x.value),z.value&&(Ve._isCustomPlugin=!0),A.value&&O.value&&(Ve._sourcePlugin=O.value),E.value=Ve}}}}catch(K){console.error(K),q.value=f(K),a("error:fetch-schema",K)}finally{it.value=!1}});async function se(K){try{const U=await _(K);O.value=U?.ref??null}catch(U){if(Yo.isAxiosError(U)&&U.response?.status===404)return;console.warn(`Failed to resolve cloned plugin "${K}"`,U)}}return(K,U)=>{const J=t.resolveComponent("KSkeleton"),Ge=t.resolveComponent("KEmptyState"),qe=t.resolveComponent("KButton"),Ve=t.resolveComponent("KTabs"),F=t.resolveComponent("KSlideout");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["kong-ui-entities-plugin-form-container",{"new-form-layout":i.value}])},[it.value?(t.openBlock(),t.createBlock(J,{key:0,type:"form"})):q.value?(t.openBlock(),t.createBlock(Ge,{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(c)("errors.load_schema")),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ge.EntityBaseForm),{key:2,"can-submit":D.value,config:e.config,"edit-id":e.pluginId,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"error-message":oe.value,"fetch-url":M.value,"form-fields":Y.value,"is-readonly":G.isReadonly,"no-validate":"","wrapper-component":e.noCardWrapper?"div":void 0,onCancel:ye,"onFetch:error":U[6]||(U[6]=H=>K.$emit("error",H)),"onFetch:success":Ee,onLoading:U[7]||(U[7]=H=>K.$emit("loading",H))},{"form-actions":t.withCtx(()=>[e.isWizardStep?(t.openBlock(),t.createElementBlock("div",DG)):(t.openBlock(),t.createBlock(FG,{key:1,"teleport-target":e.actionsTeleportTarget},{default:t.withCtx(()=>[t.createElementVNode("div",MG,[e.hideViewConfigAction?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(qe,{key:0,appearance:"tertiary","data-testid":`plugin-${y.value?"edit":"create"}-form-view-configuration`,onClick:U[5]||(U[5]=H=>ue())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.view_configuration")),1)]),_:1},8,["data-testid"])),t.createVNode(qe,{appearance:"secondary",class:"form-action-button","data-testid":`plugin-${y.value?"edit":"create"}-form-cancel`,disabled:G.isReadonly,onClick:ye},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.cancel")),1)]),_:1},8,["data-testid","disabled"]),t.createVNode(qe,{appearance:"primary","data-testid":`plugin-${y.value?"edit":"create"}-form-submit`,disabled:!D.value||G.isReadonly,type:"submit",onClick:_e},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("actions.save")),1)]),_:1},8,["data-testid","disabled"])])]),_:1},8,["teleport-target"]))]),default:t.withCtx(()=>[t.createElementVNode("form",{hidden:"",onSubmit:_e},null,32),k.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[b.value&&(w.value===t.unref(ge.EntityBaseFormType).Create||N.value)?(t.openBlock(),t.createBlock(qf,{key:0,config:e.config,"credential-type":e.pluginType,editing:w.value===t.unref(ge.EntityBaseFormType).Edit,record:N.value,schema:b.value,"onUpdate:loading":U[0]||(U[0]=H=>ee.value=H),"onUpdate:modelValue":Ae},null,8,["config","credential-type","editing","record","schema"])):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createBlock(RG,{key:1,config:e.config,developer:e.developer,editing:w.value===t.unref(ge.EntityBaseFormType).Edit,"enable-vault-secret-picker":s.enableVaultSecretPicker,"entity-map":ne.value,"raw-schema":b.value,record:N.value,schema:E.value,"onClick:createEntity":U[1]||(U[1]=H=>K.$emit("click:create-entity",H)),"onClick:learnMore":U[2]||(U[2]=H=>K.$emit("click:learn-more",H)),onGlobalAction:U[3]||(U[3]=(H,he)=>K.$emit("globalAction",H,he)),onLoading:U[4]||(U[4]=H=>ee.value=H),onModelUpdated:ke,onValidityChange:ie},null,8,["config","developer","editing","enable-vault-secret-picker","entity-map","raw-schema","record","schema"]))]),_:1},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly","wrapper-component"])),t.createVNode(F,{"close-on-blur":!1,"data-testid":"form-view-configuration-slideout","has-overlay":!1,"offset-top":60,title:t.unref(c)("view_configuration.title"),visible:h.value,onClose:ue},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(c)("view_configuration.message")),1),t.createVNode(Ve,{modelValue:pe.value,"onUpdate:modelValue":U[11]||(U[11]=H=>pe.value=H),"data-testid":"form-view-configuration-slideout-tabs",tabs:$.value},{json:t.withCtx(()=>[t.createVNode(t.unref(ge.JsonCodeBlock),{config:e.config,"entity-record":me.value,"fetcher-url":Q.value,"request-method":s.pluginId?"put":"post"},null,8,["config","entity-record","fetcher-url","request-method"])]),yaml:t.withCtx(()=>[t.createVNode(t.unref(ge.YamlCodeBlock),{"deck-callout-preference-key":t.unref(L)?t.unref(Z):void 0,"entity-record":me.value,"onDeckCallout:clickCta":U[8]||(U[8]=H=>pe.value="#deck")},null,8,["deck-callout-preference-key","entity-record"])]),terraform:t.withCtx(()=>[t.createVNode(t.unref(ge.TerraformCodeBlock),{"credential-type":De.value,"entity-record":me.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin},null,8,["credential-type","entity-record","entity-type"])]),deck:t.withCtx(()=>[t.unref(R)?(t.openBlock(),t.createElementBlock("div",UG,[t.createVNode(qe,{appearance:"secondary",class:"button-customize-deck",onClick:U[9]||(U[9]=H=>V.value=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(c)("plugins.form.button_deck_customize")),1)]),_:1})])):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.DeckCodeBlock),{app:e.config.app,"control-plane-name":e.config.app==="konnect"?e.config.controlPlaneName:void 0,"customization-options":t.unref(R),"entity-record":me.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"geo-api-server-url":e.config.app==="konnect"?e.config.geoApiServerUrl:void 0,"is-customization-modal-visible":V.value,"kong-admin-api-url":e.config.app==="kongManager"?e.config.apiBaseUrl:void 0,workspace:e.config.workspace||void 0,onCustomizationClose:U[10]||(U[10]=H=>V.value=!1)},null,8,["app","control-plane-name","customization-options","entity-record","entity-type","geo-api-server-url","is-customization-modal-visible","kong-admin-api-url","workspace"])]),_:1},8,["modelValue","tabs"])]),_:1},8,["title","visible"])],2)}}}),[["__scopeId","data-v-7ba138f7"]]),KG={class:"plugin-filter"},qG={class:"plugin-tags-filter"},GG={class:"plugin-tags-filter-badges"},zG={class:"plugin-status-filter"},HG=ve(t.defineComponent({__name:"PluginFilter",props:t.mergeModels({entityType:{},entityId:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const{i18n:{t:n}}=nt.useI18n(),r={routes:W.PluginScope.ROUTE,services:W.PluginScope.SERVICE,consumers:W.PluginScope.CONSUMER,consumer_groups:W.PluginScope.CONSUMER_GROUP},o=t.computed(()=>e.entityType&&e.entityId?r[e.entityType]:void 0),i=t.useModel(e,"modelValue"),a=t.ref(""),s=t.ref({}),l=t.useTemplateRef("search-input"),c=t.useTemplateRef("tags-input"),d=(k,N)=>k.map(T=>N.find(x=>x.value===T).label).join(", "),u=t.ref(""),f=/^(?:[\x21-\x2B\x2D\x2E\x30-\x7E\p{N}\p{L}]+(?: *[\x21-\x2B\x2D\x2E\x30-\x7E\p{N}\p{L}])*)?$/u,p=t.computed(()=>u.value&&!f.test(u.value)?n("search.filter.tags_invalid"):""),m=()=>{l.value?.input?.focus()},g=()=>{c.value?.input?.focus()},_=()=>{a.value="",m()},h=(k,N)=>{const T=u.value;if(!T||!f.test(T)){g();return}k||(k=[]),k.includes(T)||k.push(T),u.value="",g(),N(k,k.join(", "))},y=(k,N,T)=>{const x=N.filter(B=>B!==k);T(x,x.join(", "))},w=t.computed(()=>({...o.value?{}:{scope:{label:n("plugins.list.table_headers.scope"),operators:["eq"],pinned:!0,multiple:!0,options:[{label:n("plugins.list.table_headers.applied_to_badges.route"),value:W.PluginScope.ROUTE},{label:n("plugins.list.table_headers.applied_to_badges.service"),value:W.PluginScope.SERVICE},{label:n("plugins.list.table_headers.applied_to_badges.consumer"),value:W.PluginScope.CONSUMER},{label:n("plugins.list.table_headers.applied_to_badges.consumer_group"),value:W.PluginScope.CONSUMER_GROUP},{label:n("plugins.list.table_headers.applied_to_badges.global"),value:W.PluginScope.GLOBAL}]}},status:{label:n("plugins.list.table_headers.status"),operators:["eq"],pinned:!0,maxWidth:350,options:[{value:"true",label:n("actions.enabled")},{value:"false",label:n("actions.disabled")}]},tags:{label:n("plugins.list.table_headers.tags"),operators:["eq"],pinned:!0,multiple:!0}})),b=t.computed(()=>{const k=new URLSearchParams;if(a.value&&k.set("filter[name][contains]",a.value),!o.value){const B=s.value.scope,O=Array.isArray(B?.value)?B.value:typeof B?.value=="string"&&B.value?[B.value]:[];O.length&&k.set("filter[scope][oeq]",O.join(","))}const N=s.value.status;N?.value&&k.set("filter[enabled]",N.value==="true"?"true":"false");const T=s.value.tags,x=Array.isArray(T?.value)?T.value:[];return x.length&&k.set("tags",x.join("/")),o.value&&e.entityId&&k.toString()&&k.set(`filter[${o.value}][eq]`,e.entityId),k.toString()});t.watch(b,k=>{i.value=k}),t.watch(i,k=>{k||(a.value="",s.value={},u.value="")});const E=(k,N)=>{const T=N[k];T&&(T.operatorDelimiter=": ")};return(k,N)=>{const T=t.resolveComponent("KInput"),x=t.resolveComponent("KBadge"),B=t.resolveComponent("KMultiselect"),O=t.resolveComponent("KRadio"),A=t.resolveComponent("KFilterGroup");return t.openBlock(),t.createElementBlock("div",KG,[t.createVNode(T,{ref:"search-input",modelValue:a.value,"onUpdate:modelValue":N[0]||(N[0]=I=>a.value=I),autocomplete:"off",class:"plugin-search-input","data-testid":"search-input",placeholder:t.unref(n)("search.placeholder.search")},{before:t.withCtx(()=>[t.createVNode(t.unref(Ne.SearchIcon),{decorative:""})]),after:t.withCtx(()=>[t.withDirectives(t.createVNode(t.unref(Ne.CloseIcon),{class:"plugin-search-clear",role:"button",tabindex:"0",onClick:_,onKeydown:[t.withKeys(t.withModifiers(_,["prevent"]),["enter"]),t.withKeys(t.withModifiers(_,["prevent"]),["space"])]},null,8,["onKeydown"]),[[t.vShow,a.value!==""]])]),_:1},8,["modelValue","placeholder"]),t.createVNode(A,{modelValue:s.value,"onUpdate:modelValue":N[2]||(N[2]=I=>s.value=I),filters:w.value,onApply:E},{"filter-tags":t.withCtx(({value:I,setValue:V})=>[t.createElementVNode("div",qG,[t.createVNode(T,{ref:"tags-input",modelValue:u.value,"onUpdate:modelValue":N[1]||(N[1]=L=>u.value=L),autocomplete:"off","data-testid":"tags-filter-input",error:!!p.value,"error-message":p.value,placeholder:t.unref(n)("search.placeholder.tags_filter"),onKeydown:t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["enter"])},{after:t.withCtx(()=>[t.createVNode(t.unref(Ne.ArrowTopLeftIcon),{class:"plugin-tags-filter-add","data-testid":"tags-filter-add",role:"button",tabindex:"0",onClick:L=>h(I,V),onKeydown:[t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["enter"]),t.withKeys(t.withModifiers(L=>h(I,V),["prevent"]),["space"])]},null,8,["onClick","onKeydown"])]),_:2},1032,["modelValue","error","error-message","placeholder","onKeydown"]),t.createElementVNode("div",GG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(I,L=>(t.openBlock(),t.createBlock(x,{key:L,"icon-before":!1},{icon:t.withCtx(()=>[t.createVNode(t.unref(Ne.CloseIcon),{"data-testid":"tags-filter-remove-tag",role:"button",tabindex:"0",onClick:R=>y(L,I,V),onKeydown:[t.withKeys(t.withModifiers(R=>y(L,I,V),["prevent"]),["enter"]),t.withKeys(t.withModifiers(R=>y(L,I,V),["prevent"]),["space"])]},null,8,["onClick","onKeydown"])]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(L)+" ",1)]),_:2},1024))),128))])])]),"filter-scope":t.withCtx(({value:I,setValue:V,options:L})=>[t.createVNode(B,{"data-testid":"scope-filter-select",items:L,"model-value":I,placeholder:t.unref(n)("search.placeholder.scope_filter"),"onUpdate:modelValue":R=>V(R,d(R,L))},null,8,["items","model-value","placeholder","onUpdate:modelValue"])]),"filter-status":t.withCtx(({value:I,setValue:V,options:L})=>[t.createElementVNode("div",zG,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(L,R=>(t.openBlock(),t.createBlock(O,{key:R.value,"data-testid":"status-filter-radio",label:R.label,"model-value":I,"selected-value":R.value,"onUpdate:modelValue":Z=>V(Z,R.label)},null,8,["label","model-value","selected-value","onUpdate:modelValue"]))),128))])]),_:1},8,["modelValue","filters"])])}}}),[["__scopeId","data-v-c4f55d0a"]]),WG={class:"kong-ui-entities-plugins-list"},YG={class:"button-row"},JG={class:"name-cell-wrapper"},XG={key:0,class:"info-wrapper"},ZG={class:"info-name"},QG={key:1,class:"info-wrapper"},e6={key:0,class:"info-name"},t6={key:1,class:"info-name"},n6={key:2,class:"info-type"},r6={key:0},o6={key:1},i6={key:2},a6={key:1},s6={key:0},l6=ve(t.defineComponent({__name:"PluginList",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(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}){const r=nt.usePluginMetaData(),o=n,i=e,{i18n:{t:a,formatUnixTimeStamp:s}}=nt.useI18n(),l=gr.useRouter(),{axiosInstance:c}=ge.useAxios(i.config?.axiosRequestConfig),{hasRecords:d,handleStateChange:u}=ge.useTableState(()=>T.value),f=t.computed(()=>d.value&&i.config.app==="konnect"),p=t.computed(()=>!!i.config.entityId),m=t.computed(()=>i.config?.entityType==="consumers"),g=t.computed(()=>i.config?.entityType==="consumer_groups"),_=i.config.app==="konnect"||ge.useGatewayFeatureSupported({gatewayInfo:i.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),h=t.computed(()=>i.config.app==="konnect"),y=t.computed(()=>i.config.app!=="kongManager"||!!i.config.disableSorting),w={name:{label:h.value?a("plugins.list.table_headers.plugin"):a("plugins.list.table_headers.name"),searchable:!0,sortable:!h.value,hidable:!1}};h.value&&(w.instanceName={label:a("plugins.list.table_headers.name"),sortable:!1}),i.config?.entityId||(w.appliedTo=h.value?{label:a("plugins.list.table_headers.scope"),sortable:!1}:{label:a("plugins.list.table_headers.applied_to"),sortable:!1}),w.enabled=h.value?{label:a("plugins.list.table_headers.status"),sortable:!1}:{label:a("plugins.list.table_headers.enabled"),searchable:!0,sortable:!0},_&&(w.ordering={label:a("plugins.list.table_headers.ordering"),sortable:!0}),w.tags={label:a("plugins.list.table_headers.tags"),sortable:!1},w.updated_at={label:a("plugins.list.table_headers.updated_at"),sortable:!0};const{defaultTablePreferences:b,tableHeaders:E}=ge.useManagedByColumn(w),k=z=>{let Y=`${i.config.apiBaseUrl}${z}`;return i.config.app==="konnect"&&(Y=Y.replace(/{controlPlaneId}/gi,i.config?.controlPlaneId||"")),Y.replace(/\/{workspace}/gi,i.config?.workspace?`/${i.config.workspace}`:"").replace(/{entityType}/gi,i.config?.entityType||"").replace(/{entityId}/gi,i.config?.entityId||"")},N=t.computed(()=>k(i.config.entityType?Xe.list[i.config.app].forEntity:Xe.list[i.config.app].all)),T=t.ref(""),x=t.computed(()=>i.config.app==="konnect"||i.config.isExactMatch?{isExactMatch:!0,fields:{name:w.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:{...w.enabled,label:a("search.filter.field.enabled")},name:w.name,instance_name:{label:a("plugins.list.table_headers.instance_name"),searchable:!0}},schema:i.config.filterSchema}),B=t.computed(()=>h.value&&!!T.value),O=t.computed(()=>B.value?k(Xe.list.konnect.search):N.value),{fetcher:A,fetcherState:I,fetcherCacheKey:V}=ge.useFetcher(t.computed(()=>({...i.config,cacheIdentifier:i.cacheIdentifier,...B.value?{isExactMatch:!1}:{}})),O),L=()=>{T.value=""},R=()=>{V.value++},Z=t.ref(null),ee=z=>{const Y=[];return(z.route?.id||z.route_id)&&Y.push({type:"route",badgeText:a("plugins.list.table_headers.applied_to_badges.route")}),(z.service?.id||z.service_id)&&Y.push({type:"service",badgeText:a("plugins.list.table_headers.applied_to_badges.service")}),(z.consumer?.id||z.consumer_id)&&Y.push({type:"consumer",badgeText:a("plugins.list.table_headers.applied_to_badges.consumer")}),(z.consumer_group?.id||z.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")}]},j=async(z,Y)=>z===null?!1:await i.canRetrieveScopedEntity?.(z,Y.id),G=(z,Y)=>Y[z]?.id,$=(z,Y)=>{const me=G(z,Y);return me&&i.config?.getScopedEntityViewRoute?i.config.getScopedEntityViewRoute(z,me):null},pe=(z,Y)=>{const me=$(z,Y);me&&l.push(me)},de=t.ref(!1),M=t.ref(null),ue=t.computed(()=>{const z={action:"disable",id:"",name:""};if(M.value){const{enabled:Y,id:me,name:_e}=M.value;z.action=Y?"disable":"enable",z.id=me,z.name=r.getDisplayName(_e)||me}return z}),ne=z=>{de.value=!0,M.value=z},ae=()=>{de.value=!1,M.value=null},ze=async()=>{if(!await i.canEdit?.(M.value)||!M.value)return;let Y=`${i.config.apiBaseUrl}${Xe.item[i.config.app]?.[i.config?.entityType?"forEntity":"all"].replace(/{entityType}/gi,i.config?.entityType||"").replace(/{entityId}/gi,i.config?.entityId||"")}`.replace(/{id}/gi,M.value.id||"");i.config.app==="konnect"&&(Y=Y.replace(/{controlPlaneId}/gi,i.config?.controlPlaneId||"")),Y=Y.replace(/\/{workspace}/gi,i.config?.workspace?`/${i.config.workspace}`:"");const me=!M.value.enabled;try{const _e=i.config?.app;let Le;T.value&&_e==="konnect"&&(Le=await c.get(Y));const{data:De}=_e==="konnect"?await c.put(Y,{...Le?.data||M.value,enabled:me},{timeout:12e4}):await c.patch(Y,{...M.value,enabled:me},{timeout:12e4});o("toggle-enabled",me,De),M.value.enabled=me}catch(_e){o("error",_e)}},Ie=async(z,Y)=>{const me=z.id;if(!await Y(me)){o("copy:error",{entity:z,field:"id",message:a("errors.copy")});return}o("copy:success",{entity:z,field:"id",message:a("copy.success",{val:me})})},je=async(z,Y)=>{const me=JSON.stringify(z);if(!await Y(me)){o("copy:error",{entity:z,message:a("errors.copy")});return}o("copy:success",{entity:z,message:a("copy.success_brief")})},le=async z=>{await i.canRetrieve?.(z)&&l.push(i.config.getViewRoute(z))},re=z=>({label:a("actions.view"),to:i.config.getViewRoute(z)}),D=z=>({label:a("actions.edit"),to:i.config.getEditRoute(z)}),te=z=>({label:a("actions.configure_dynamic_ordering"),to:i.config.getConfigureDynamicOrderingRoute(z)}),fe=t.ref(void 0),Ee=t.ref(!1),Re=t.ref(!1),Pe=t.ref(""),ke=ge.useDeleteUrlBuilder(i.config,N.value),Ae=z=>{fe.value=z,Ee.value=!0},Ce=()=>{Ee.value=!1},oe=async()=>{if(fe.value?.id){Re.value=!0;try{await c.delete(ke(fe.value.id)),Re.value=!1,Ee.value=!1,V.value++,o("delete:success",fe.value)}catch(z){Pe.value=z.response?.data?.message||z.message||a("errors.delete"),o("error",z)}finally{Re.value=!1}}},ie=()=>{l.push(i.config.createRoute)};t.watch(I,z=>{if(z.status===ge.FetcherStatus.Error){Z.value={title:a("errors.general")},z.error?.response?.data?.message&&(Z.value.message=z.error.response.data.message),o("error",z.error);return}Z.value=null});const ye=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")}),Q=t.ref(!1);return t.onBeforeMount(async()=>{Q.value=await i.canCreate(),Q.value&&(ye.value.title=a("plugins.list.empty_state.title"),ye.value.ctaText=a("actions.create"))}),(z,Y)=>{const me=t.resolveComponent("KButton"),_e=t.resolveComponent("KEmptyState"),Le=t.resolveComponent("RouterLink"),De=t.resolveComponent("KBadge"),it=t.resolveComponent("KTruncate"),q=t.resolveComponent("KInputSwitch"),se=t.resolveComponent("KDropdownItem"),K=t.resolveComponent("KClipboardProvider");return t.openBlock(),t.createElementBlock("div",WG,[t.createVNode(t.unref(ge.EntityBaseTable),{"cache-identifier":e.cacheIdentifier,"default-table-preferences":t.unref(b),"disable-sorting":y.value,"empty-state-options":ye.value,"enable-entity-actions":"","error-message":Z.value,fetcher:t.unref(A),"fetcher-cache-key":t.unref(V),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-plugins-list",query:T.value,"table-headers":t.unref(E),title:e.title,"title-tag":e.titleTag,onClearSearchInput:L,"onClick:row":Y[5]||(Y[5]=U=>le(U)),onSort:R,onState:t.unref(u)},t.createSlots({"toolbar-filter":t.withCtx(()=>[h.value?(t.openBlock(),t.createBlock(HG,{key:0,modelValue:T.value,"onUpdate:modelValue":Y[0]||(Y[0]=U=>T.value=U),"entity-id":i.config?.entityId,"entity-type":i.config?.entityType},null,8,["modelValue","entity-id","entity-type"])):(t.openBlock(),t.createBlock(t.unref(ge.EntityFilter),{key:1,modelValue:T.value,"onUpdate:modelValue":Y[1]||(Y[1]=U=>T.value=U),config:x.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",YG,[!p.value&&f.value?(t.openBlock(),t.createBlock(me,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"plugins-learn-more-button",icon:"",onClick:Y[2]||(Y[2]=U=>z.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""})]),_:1})):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canCreate()},{default:t.withCtx(()=>[t.createVNode(me,{appearance:"primary","data-testid":"toolbar-add-plugin",size:e.useActionOutside?"medium":"large",to:e.config.createRoute},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.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:U})=>[t.createElementVNode("div",JG,[t.createVNode(t.unref(mr.PluginIcon),{class:"plugin-icon",name:U.name,size:24},null,8,["name"]),h.value?(t.openBlock(),t.createElementBlock("div",XG,[t.createElementVNode("span",ZG,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)])):(t.openBlock(),t.createElementBlock("div",QG,[U.instance_name?(t.openBlock(),t.createElementBlock("span",e6,t.toDisplayString(U.instance_name),1)):(t.openBlock(),t.createElementBlock("span",t6,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)),U.instance_name?(t.openBlock(),t.createElementBlock("span",n6,t.toDisplayString(t.unref(r).getDisplayName(U.name)),1)):t.createCommentVNode("",!0)]))])]),instanceName:t.withCtx(({row:U})=>[t.createTextVNode(t.toDisplayString(U.instance_name||"-"),1)]),appliedTo:t.withCtx(({row:U})=>[ee(U).length>0?(t.openBlock(),t.createBlock(it,{key:0},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(ee(U),(J,Ge)=>(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:J.badgeText,"auth-function":()=>j(J.type,U),"force-show":""},{default:t.withCtx(({isAllowed:qe})=>[h.value?(t.openBlock(),t.createElementBlock("div",r6,[qe&&J.type&&$(J.type,U)?(t.openBlock(),t.createBlock(Le,{key:0,class:"scope-link",to:$(J.type,U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(J.badgeText),1)]),_:2},1032,["to"])):(t.openBlock(),t.createElementBlock("span",o6,t.toDisplayString(J.badgeText),1)),Ge<ee(U).length-1?(t.openBlock(),t.createElementBlock("span",i6,", ")):t.createCommentVNode("",!0)])):(t.openBlock(),t.createBlock(De,{key:1,class:t.normalizeClass(qe||"disabled"),onClick:t.withModifiers(Ve=>qe&&J.type&&pe(J.type,U),["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(J.badgeText),1)]),_:2},1032,["class","onClick"]))]),_:2},1032,["auth-function"]))),128))]),_:2},1024)):(t.openBlock(),t.createElementBlock("span",a6,"-"))]),enabled:t.withCtx(({row:U})=>[h.value?(t.openBlock(),t.createBlock(De,{key:0,appearance:U.enabled?"success":"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(U.enabled?t.unref(a)("actions.enabled"):t.unref(a)("actions.disabled")),1)]),_:2},1032,["appearance"])):(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:1,"auth-function":async()=>!!(await e.canEdit(U)&&await e.canToggle(U)),"force-show":""},{default:t.withCtx(({isAllowed:J})=>[t.createElementVNode("div",{onClick:Y[4]||(Y[4]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(q,{disabled:!J,"disabled-tooltip-text":!J&&e.config.getToggleDisabledTooltip?.(U)||void 0,"model-value":U.enabled,onClick:t.withModifiers(Ge=>J&&ne(U),["stop","prevent"])},null,8,["disabled","disabled-tooltip-text","model-value","onClick"])])]),_:2},1032,["auth-function"]))]),ordering:t.withCtx(({rowValue:U})=>[h.value?(t.openBlock(),t.createElementBlock("span",s6,t.toDisplayString(t.unref(af)(U)?t.unref(a)("plugins.list.table_headers.ordering_badge.static"):t.unref(a)("plugins.list.table_headers.ordering_badge.dynamic")),1)):(t.openBlock(),t.createBlock(De,{key:1,appearance:t.unref(af)(U)?"info":"warning"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(af)(U)?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:U})=>[t.createVNode(t.unref(ge.TableTags),{tags:U},null,8,["tags"])]),updated_at:t.withCtx(({row:U,rowValue:J})=>[t.createTextVNode(t.toDisplayString(t.unref(s)(J??U.created_at)),1)]),managed_by:t.withCtx(({rowValue:U})=>[t.createTextVNode(t.toDisplayString(t.unref(ge.getManagedByLabel)(U)??"-"),1)]),actions:t.withCtx(({row:U})=>[t.createVNode(K,null,{default:t.withCtx(({copyToClipboard:J})=>[t.createVNode(se,{"data-testid":"action-entity-copy-id",onClick:Ge=>Ie(U,J)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(K,null,{default:t.withCtx(({copyToClipboard:J})=>[t.createVNode(se,{"data-testid":"action-entity-copy-json",onClick:Ge=>je(U,J)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canRetrieve(U)},{default:t.withCtx(()=>[t.createVNode(se,{"data-testid":"action-entity-view","has-divider":"",item:re(U)},null,8,["item"])]),_:2},1032,["auth-function"]),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canEdit(U)},{default:t.withCtx(()=>[t.createVNode(se,{"data-testid":"action-entity-edit",item:D(U)},null,8,["item"])]),_:2},1032,["auth-function"]),h.value?(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:0,"auth-function":async()=>!!(await e.canEdit(U)&&await e.canToggle(U)),"force-show":""},{default:t.withCtx(({isAllowed:J})=>[t.createVNode(se,{"data-testid":"action-entity-toggle-enabled",disabled:!J,onClick:Ge=>J&&ne(U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(U.enabled?t.unref(a)("actions.disable"):t.unref(a)("actions.enable")),1)]),_:2},1032,["disabled","onClick"])]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),!m.value&&!g.value&&t.unref(_)?(t.openBlock(),t.createBlock(t.unref(ge.PermissionsWrapper),{key:1,"auth-function":()=>e.canConfigureDynamicOrdering(U)},{default:t.withCtx(()=>[te(U)?(t.openBlock(),t.createBlock(se,{key:0,"data-testid":"action-entity-config-dyn-order",item:te(U)},null,8,["item"])):t.createCommentVNode("",!0)]),_:2},1032,["auth-function"])):t.createCommentVNode("",!0),t.createVNode(t.unref(ge.PermissionsWrapper),{"auth-function":()=>e.canDelete(U)},{default:t.withCtx(()=>[t.createVNode(se,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:J=>Ae(U)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!T.value&&e.config.app==="konnect"?{name:"empty-state",fn:t.withCtx(()=>[t.createVNode(_e,{"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(Ne.PlugIcon),{decorative:""})]),action:t.withCtx(()=>[Q.value?(t.openBlock(),t.createBlock(me,{key:0,"data-testid":"entity-create-button",onClick:ie},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.AddIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.create_cta")),1)]),_:1})):t.createCommentVNode("",!0),t.createVNode(me,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:Y[3]||(Y[3]=U=>z.$emit("click:learn-more"))},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.BookIcon),{decorative:""}),t.createTextVNode(" "+t.toDisplayString(t.unref(a)("plugins.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[e.config?.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","default-table-preferences","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","title","title-tag","onState"]),t.createVNode(t.unref(ge.EntityToggleModal),{action:ue.value.action,"entity-id":ue.value.id,"entity-name":ue.value.name,"entity-type":t.unref(a)("glossary.plugin"),"on-confirm":ze,visible:de.value,onCancel:ae,onProceed:ae},null,8,["action","entity-id","entity-name","entity-type","visible"]),t.createVNode(t.unref(ge.EntityDeleteModal),{"action-pending":Re.value,description:t.unref(a)("delete.description"),"entity-name":fe.value&&(fe.value.instance_name||fe.value.name||fe.value.id),"entity-type":t.unref(ge.EntityTypes).Plugin,error:Pe.value,title:t.unref(a)("delete.title"),visible:Ee.value,onCancel:Ce,onProceed:oe},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-64d883ad"]]),c6={class:"plugin-select-card-wrapper"},d6=["data-testid"],u6={class:"plugin-card-header"},f6={class:"plugin-card-title"},p6={key:0,class:"plugin-card-actions"},m6=["data-testid","title"],g6={key:0,class:"plugin-card-text"},h6={key:0,class:"custom-plugin-badges"},y6=["title"],um=ve(t.defineComponent({__name:"PluginSelectCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{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 r=n,o=e,i=gr.useRouter(),{i18n:{t:a}}=nt.useI18n(),s=t.computed(()=>o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?o.plugin.clonedFromRef:o.plugin.id),l=t.computed(()=>!k.value||E.value?[]:o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?[a("plugins.select.cloned_from_badge",{link:o.plugin.clonedFromRef})]:o.plugin.customPluginType==="streaming"?[a("plugins.select.streamed_custom_badge")]:[a("plugins.select.installed_custom_badge")]),c=t.computed(()=>!!(!o.plugin.available||o.plugin.disabledMessage)),d=t.computed(()=>typeof o.config.getCustomEditRoute=="function"),u=t.computed(()=>o.plugin.customPluginType==="cloned"),f=t.computed(()=>u.value?o.canDeleteClonedPlugin:o.canDeleteCustomPlugin),p=t.computed(()=>u.value?o.canEditClonedPlugin:o.canEditCustomPlugin),m=t.computed(()=>!(o.config.app==="kongManager"&&o.plugin.customPluginType==="schema")),g=t.computed(()=>p.value&&d.value),_=t.computed(()=>f.value),h=t.computed(()=>!!(k.value&&!E.value&&m.value&&o.navigateOnClick&&(_.value||g.value))),y=()=>{i.push(o.config.getCreateRoute(o.plugin.id))},w=()=>{o.navigateOnClick?y():b()},b=()=>{r("plugin-clicked",o.plugin)},E=t.computed(()=>o.plugin.id==="custom-plugin-create"),k=t.computed(()=>o.plugin.group===W.PluginGroup.CUSTOM_PLUGINS),N=()=>{k.value&&r("custom-plugin-delete")},T=(B,O)=>{const A=o.config;typeof A.getCustomEditRoute=="function"&&i.push(A.getCustomEditRoute(B,O))},x=()=>{if(!c.value&&k.value){const B=o.config;E.value&&B.createCustomRoute?i.push(B.createCustomRoute):k.value&&y()}};return(B,O)=>{const A=t.resolveComponent("KButton"),I=t.resolveComponent("KDropdownItem"),V=t.resolveComponent("KDropdownMenu"),L=t.resolveComponent("KBadge"),R=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",c6,[t.createVNode(R,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createElementVNode("a",{class:t.normalizeClass(["plugin-select-card",{disabled:c.value}]),"data-testid":`${e.plugin.id}-card`,role:"button",onClick:O[1]||(O[1]=Z=>c.value||k.value?void 0:w())},[t.createElementVNode("div",u6,[t.createElementVNode("div",f6,[t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!k.value})},t.toDisplayString(e.plugin.name),3)]),h.value?(t.openBlock(),t.createElementBlock("div",p6,[t.createVNode(V,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150"},{default:t.withCtx(()=>[t.createVNode(A,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[g.value?(t.openBlock(),t.createBlock(I,{key:0,"data-testid":"edit-plugin-schema",onClick:O[0]||(O[0]=t.withModifiers(Z=>T(e.plugin.name,e.plugin.customPluginType),["stop"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),_.value?(t.openBlock(),t.createBlock(I,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":g.value,onClick:t.withModifiers(N,["stop"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["has-divider"])):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:t.normalizeClass(["plugin-card-body",{"custom-plugin":k.value}]),"data-testid":e.plugin.name,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip"),onClick:x},[t.createVNode(t.unref(mr.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:s.value,size:55},null,8,["alt","name"]),e.plugin.description||l.value.length?(t.openBlock(),t.createElementBlock("div",g6,[l.value.length?(t.openBlock(),t.createElementBlock("div",h6,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,Z=>(t.openBlock(),t.createBlock(L,{key:Z,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(Z),1)]),_:2},1024))),128))])):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,y6)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],10,m6),t.createElementVNode("div",{class:"plugin-card-footer",onClick:x},t.toDisplayString(E.value?t.unref(a)("actions.create_custom"):e.plugin.exists?t.unref(a)("actions.enabled"):t.unref(a)("actions.enable")),1)],10,d6)]),_:1},8,["text"])])}}}),[["__scopeId","data-v-eb0977c9"]]),xc=ve(t.defineComponent({__name:"DeleteCustomPluginSchemaModal",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app))},plugin:{type:Object,required:!0}},emits:["closed","proceed"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),{getMessageFromError:a}=ge.useErrors(),{axiosInstance:s}=ge.useAxios(r.config?.axiosRequestConfig),l=t.computed(()=>u.value?i("delete.plugin_schema_in_use_title"):i("delete.title",{name:r.plugin?.name||i("delete.custom_plugin")})),c=t.ref(!1),d=t.ref(""),u=t.ref(!1),f=t.computed(()=>{const m=r.plugin.customPluginType;if(r.config.app==="konnect"){const g=m==="streaming"?Xe.select[r.config.app].streamingCustomPluginItem:m==="cloned"?Xe.customPlugin[r.config.app].cloned.edit:Xe.select[r.config.app].schemaCustomPluginItem;return`${r.config.apiBaseUrl}${g}`.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"").replace(/{pluginId}/gi,r.plugin.id)}if(r.config.app==="kongManager"&&m&&m!=="schema"){const g=m==="cloned"?Xe.customPlugin[r.config.app].cloned.edit:Xe.customPlugin[r.config.app].streamed.edit;return`${r.config.apiBaseUrl}${g}`.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"").replace(/{pluginId}/gi,r.plugin.id)}return null}),p=async()=>{if(c.value=!0,d.value="",!r.plugin?.name){c.value=!1;return}try{f.value&&await s.delete(f.value),o("proceed")}catch(m){aw(m)?u.value=!0:d.value=a(m)}finally{c.value=!1}};return(m,g)=>{const _=t.resolveComponent("KAlert"),h=t.resolveComponent("KButton"),y=t.resolveComponent("KModal");return!u.value&&e.plugin?(t.openBlock(),t.createBlock(t.unref(ge.EntityDeleteModal),{key:0,"action-pending":c.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",description:t.unref(i)("delete.description_custom"),"entity-name":e.plugin.name,"entity-type":t.unref(ge.EntityTypes).Plugin,error:d.value,"need-confirm":"",title:l.value,visible:"",onCancel:g[0]||(g[0]=w=>m.$emit("closed")),onProceed:p},null,8,["action-pending","description","entity-name","entity-type","error","title"])):e.plugin?(t.openBlock(),t.createBlock(y,{key:1,"action-button-disabled":c.value,class:"delete-custom-plugin-schema-modal","data-testid":"delete-custom-plugin-schema-modal",title:l.value,visible:"",onCancel:g[2]||(g[2]=w=>m.$emit("closed"))},{default:t.withCtx(()=>[t.createVNode(_,{appearance:"danger",message:t.unref(i)("delete.plugin_schema_in_use_message")},null,8,["message"])]),"footer-actions":t.withCtx(()=>[t.createElementVNode("div",null,[t.createVNode(h,{appearance:"tertiary",class:"cancel-button","data-testid":"delete-custom-plugin-form-cancel",onClick:g[1]||(g[1]=w=>m.$emit("closed"))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.cancel")),1)]),_:1})])]),_:1},8,["action-button-disabled","title"])):t.createCommentVNode("",!0)}}}),[["__scopeId","data-v-9514182c"]]),_6={class:"custom-plugins-grid"},b6={class:"empty-state-title"},w6={class:"empty-state-description"},fm=310,k6=ve(t.defineComponent({__name:"PluginCustomGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},canCreateCustomPlugin:{type:Boolean,default:!1},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),{getTallestPluginCardHeight:a,getToggleVisibility:s}=nt.usePluginHelpers(),l=t.ref(!0),c=k=>{o("plugin-clicked",k)},d=t.computed(()=>{const k=JSON.parse(JSON.stringify(r.pluginList))[W.PluginGroup.CUSTOM_PLUGINS]||[];return r.canCreateCustomPlugin&&r.navigateOnClick&&r.config.createCustomRoute?[{id:"custom-plugin-create",name:i("plugins.select.tabs.custom.create.name"),available:!0,group:W.PluginGroup.CUSTOM_PLUGINS,description:i("plugins.select.tabs.custom.create.description")}].concat(k):k}),u=t.ref(!1),f=t.ref(null),p=k=>{u.value=!0,f.value={id:k.id,name:k.name,customPluginType:k.customPluginType}},m=k=>{k&&(o("revalidate"),o("delete:success",f.value?.name||"")),u.value=!1,f.value=null},g=t.ref(fm),_=t.ref(null),h=t.ref(null),y=t.computed(()=>l.value?{overflowY:"hidden",maxHeight:`${g.value}px`}:{}),w=t.ref(!1),b=()=>{g.value=Math.max(a(h.value),fm),E()},E=()=>{h.value?.length&&(w.value=s(_.value,h.value?.length))};return t.onMounted(async()=>{await t.nextTick(),g.value=Math.max(a(h.value),fm),E(),window?.addEventListener("resize",b)}),t.onUnmounted(()=>{window?.removeEventListener("resize",b)}),(k,N)=>{const T=t.resolveComponent("KEmptyState"),x=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock("div",_6,[d.value.length?(t.openBlock(),t.createBlock(x,{key:1,modelValue:l.value,"onUpdate:modelValue":N[0]||(N[0]=B=>l.value=B),class:"custom-plugins-collapse","data-testid":`${t.unref(W.PluginGroup).CUSTOM_PLUGINS}-collapse`,title:t.unref(W.PluginGroup).CUSTOM_PLUGINS,"trigger-label":l.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(y.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(B,O)=>(t.openBlock(),t.createBlock(um,{key:`plugin-card-${O}`,ref_for:!0,ref_key:"pluginCardRef",ref:h,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:B,onCustomPluginDelete:A=>p(B),onPluginClicked:c},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete"]))),128))],4)]),_:2},[w.value?void 0:{name:"trigger",fn:t.withCtx(()=>[N[2]||(N[2]=t.createTextVNode(" ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"])):(t.openBlock(),t.createBlock(T,{key:0,"action-button-visible":!1,class:"custom-plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",b6,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",w6,t.toDisplayString(t.unref(i)("plugins.select.tabs.custom.empty_description")),1)]),_:1})),u.value&&f.value?(t.openBlock(),t.createBlock(xc,{key:2,config:e.config,plugin:f.value,onClosed:m,onProceed:N[1]||(N[1]=B=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-909f4d5f"]]),pm=310,z0=ve(t.defineComponent({__name:"PluginSelectGroup",props:t.mergeModels({config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},name:{type:String,required:!0},plugins:{type:Array,required:!0},navigateOnClick:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:t.mergeModels(["plugin-clicked","delete:success"],["update:modelValue"]),setup(e,{emit:n}){const r=t.useModel(e,"modelValue"),o=e,i=n,{i18n:{t:a}}=nt.useI18n(),{getTallestPluginCardHeight:s,getToggleVisibility:l}=nt.usePluginHelpers(),c=t.ref(pm),d=t.ref(null),u=t.ref(null),f=t.computed(()=>r.value?{overflowY:"hidden",maxHeight:`${c.value}px`}:{}),p=t.ref(!1),m=t.ref(!1),g=t.ref(null),_=b=>{m.value=!0,g.value={id:b.id,name:b.name,customPluginType:b.customPluginType}},h=b=>{b&&i("delete:success",g.value?.name||""),m.value=!1,g.value=null},y=()=>{c.value=Math.max(s(u.value),pm),w()},w=()=>{u.value?.length&&(p.value=l(d.value,u.value?.length))};return t.onMounted(async()=>{await t.nextTick(),c.value=Math.max(s(u.value),pm),w(),window?.addEventListener("resize",y)}),t.onUnmounted(()=>{window?.removeEventListener("resize",y)}),(b,E)=>{const k=t.resolveComponent("KCollapse");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(k,{modelValue:r.value,"onUpdate:modelValue":E[0]||(E[0]=N=>r.value=N),class:"plugins-collapse","data-testid":`${o.name}-collapse`,title:o.name,"trigger-label":r.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(f.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.plugins,N=>(t.openBlock(),t.createBlock(um,{key:`plugin-card-${N.id}`,ref_for:!0,ref_key:"pluginCardRef",ref:u,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,"navigate-on-click":e.navigateOnClick,plugin:N,onCustomPluginDelete:T=>_(N),onPluginClicked:T=>i("plugin-clicked",N)},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin","onCustomPluginDelete","onPluginClicked"]))),128))],4)]),_:2},[p.value?void 0:{name:"trigger",fn:t.withCtx(()=>[E[2]||(E[2]=t.createTextVNode(" ",-1))]),key:"0"}]),1032,["modelValue","data-testid","title","trigger-label"]),m.value&&g.value?(t.openBlock(),t.createBlock(xc,{key:0,config:e.config,plugin:g.value,onClosed:h,onProceed:E[1]||(E[1]=N=>h(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-7f683497"]]),C6={class:"plugin-select-grid"},E6={class:"empty-state-title"},N6={class:"empty-state-description"},mm=t.defineComponent({__name:"PluginSelectGrid",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||!e.getCreateRoute)},pluginList:{type:Object,default:()=>({})},navigateOnClick:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Boolean,default:!1},canDeleteClonedPlugin:{type:Boolean,default:!1},canEditCustomPlugin:{type:Boolean,default:!1},canEditClonedPlugin:{type:Boolean,default:!1},highlightedPlugins:{type:Array,default:()=>[]},highlightedPluginsTitle:{type:String,default:""},hideHighlightedPlugins:{type:Boolean,default:!1}},emits:["plugin-clicked","delete:success"],setup(e,{emit:n}){const r=e,o=n,{i18n:{t:i}}=nt.useI18n(),a=t.ref(!1),s=t.ref(Uf.reduce((d,u)=>(d[u]=!1,d),{})),l=d=>{o("plugin-clicked",d)},c=t.computed(()=>{const d=JSON.parse(JSON.stringify(r.pluginList));return r.config.app==="konnect"&&delete d[W.PluginGroup.CUSTOM_PLUGINS],d});return(d,u)=>{const f=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",C6,[Object.keys(c.value).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(f,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",E6,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",N6,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),!r.hideHighlightedPlugins&&r.highlightedPlugins.length>0?(t.openBlock(),t.createBlock(z0,{key:1,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=p=>a.value=p),"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:r.highlightedPluginsTitle||t.unref(i)("plugins.select.highlighted_plugins.title"),"navigate-on-click":e.navigateOnClick,plugins:r.highlightedPlugins,"onDelete:success":u[1]||(u[1]=p=>o("delete:success",p)),onPluginClicked:u[2]||(u[2]=p=>l(p))},null,8,["modelValue","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","navigate-on-click","plugins"])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Uf),p=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[c.value[p]?(t.openBlock(),t.createElementBlock("div",{key:p},[t.createVNode(z0,{modelValue:s.value[p],"onUpdate:modelValue":m=>s.value[p]=m,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:p,"navigate-on-click":e.navigateOnClick,plugins:c.value[p]||[],"onDelete:success":u[3]||(u[3]=m=>o("delete:success",m)),onPluginClicked:u[4]||(u[4]=m=>l(m))},null,8,["modelValue","onUpdate:modelValue","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","navigate-on-click","plugins"])])):t.createCommentVNode("",!0)],64))),256))])}}}),S6={class:"kong-ui-entities-plugin-select-form"},A6={class:"plugins-filter-input-container"},x6={key:0},I6={key:3,"aria-live":"polite",class:"plugins-results-container"},v6={"data-testid":"kong-tab"},T6={class:"tab-description"},O6={"data-testid":"custom-tab"},B6={class:"tab-description"},P6={key:1},V6=ve(t.defineComponent({__name:"PluginSelect",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="kongManager"&&!e.workspace||e.app==="konnect"&&(!e.controlPlaneId||e.workspace)||!e.getCreateRoute)},customPluginSupport:{type:[String,Array],default:"none"},canCreateCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteCustomPlugin:{type:Function,required:!1,default:async()=>!0},canReadCustomPlugin:{type:Function,required:!1,default:async()=>!0},canDeleteClonedPlugin:{type:Function,required:!1},canReadClonedPlugin:{type:Function,required:!1,default:async()=>!0},canEditCustomPlugin:{type:Function,required:!1,default:async()=>!0},canEditClonedPlugin:{type:Function,required:!1},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}){const r=e,o=n,i=gr.useRoute(),a=gr.useRouter(),{i18n:{t:s}}=nt.useI18n(),{pluginMetaData:l}=nt.usePluginMetaData(),{getMessageFromError:c}=ge.useErrors(),{sortAlpha:d,objectsAreEqual:u}=ge.useHelpers(),f=t.ref(""),p=t.ref(!0),m=t.ref(!1),g=t.ref(""),_=t.ref(""),h=t.ref([]),y=t.ref([]),w=t.ref([]),b=t.ref({}),E=t.ref([]),k=t.ref(null),N=t.ref(!1),{axiosInstance:T}=ge.useAxios(r.config?.axiosRequestConfig),x=ie=>ie==="none"||ie==="disabled"?new Set:new Set(Array.isArray(ie)?ie:[ie]),B=t.computed(()=>x(r.customPluginSupport)),O=t.computed(()=>[...B.value].sort().join("|")),A=t.computed(()=>r.customPluginSupport==="disabled"),I=t.computed(()=>A.value||B.value.size>0),V=t.computed(()=>B.value.has("streaming")),L=t.computed(()=>B.value.has("cloned")),R=ie=>Yo.isAxiosError(ie)&&ie.code==="ERR_CANCELED",Z=ie=>c(ie).toLowerCase().includes("requires a license"),ee=t.computed(()=>b.value?Object.entries(b.value).filter(([ie])=>ie!==W.PluginGroup.CUSTOM_PLUGINS).reduce((ie,[,ye])=>{for(const Q of ye??[])ie[Q.id]=Q;return ie},{}):{}),j=t.computed(()=>{if(!b.value)return{};const ie=f.value.toLowerCase(),ye=JSON.parse(JSON.stringify(b.value));for(const Q in b.value){const z=b.value[Q]?.filter(Y=>Y.name.toLowerCase().includes(ie)||Y.id.toLowerCase().includes(ie)||Y.group.toLowerCase().includes(ie)||Y.clonedFromRef?.toLowerCase().includes(ie)||Y.customPluginType?.toLowerCase().includes(ie))||[];z.length?ye[Q]=z:delete ye[Q]}return ye}),G=t.computed(()=>r.highlightedPluginIds.reduce((ie,ye)=>{const Q=ee.value[ye];return Q&&ie.push(Q),ie},[])),$=t.computed(()=>Object.keys(j.value).length>0),pe=t.computed(()=>Object.keys(b.value).length>0&&!$.value),de=t.computed(()=>r.config.app!=="konnect"||!I.value?[]:[{hash:"#kong",title:s("plugins.select.tabs.kong.title")},{hash:"#custom",title:s("plugins.select.tabs.custom.title"),disabled:A.value}]),M=t.computed(()=>{let ie=de.value.length&&(i?.hash||de.value[0]?.hash)||"";return ie==="#custom"&&A.value&&(ie="#kong"),ie}),ue=()=>{const ie=new Map(w.value.map(z=>[z.name,z])),ye=new Set(y.value.map(z=>z.name)),Q=new Set([...ye,...ie.keys()]);return[...new Set([...Object.keys({...r.availableOnServer?{}:l}),...h.value,...Q])].filter(z=>!r.ignoredPlugins.includes(z)).filter(z=>{if(!r.config.entityType)return z;const Y=ie.has(z)?ie.get(z).ref:z;return r.config.entityType==="services"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.SERVICE)||r.config.entityType==="routes"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.ROUTE)||r.config.entityType==="consumer_groups"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.CONSUMER_GROUP)||r.config.entityType==="consumers"&&l[Y]&&!l[Y].scope.includes(W.PluginScope.CONSUMER)?!1:z}).reduce((z,Y)=>{const me=l[Y]&&l[Y].name||Y,_e=ie.get(Y),Le=ye.has(Y),De={...l[Y],id:Y,name:me,available:h.value.includes(Y)||!!_e||Le,disabledMessage:"",group:l[Y]?.group||W.PluginGroup.CUSTOM_PLUGINS};De.group===W.PluginGroup.CUSTOM_PLUGINS&&(_e?(De.customPluginType="cloned",De.clonedFromRef=_e.ref):Le?De.customPluginType="streaming":De.customPluginType="schema"),r.disabledPlugins&&(De.disabledMessage=r.disabledPlugins[Y]);const it=De.group||s("plugins.select.misc_plugins");let q=z[it];return q||(q=[]),q.push(De),q.sort(d("name")),z[it]=q,z},{})},ne=t.computed(()=>{let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].availablePlugins}`;if(r.config.app==="konnect")ie=ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"");else if(r.config.app==="kongManager"&&r.config.gatewayInfo?.edition==="community")return`${r.config.apiBaseUrl}${Xe.select[r.config.app].availablePluginsForOss}`;return ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}),ae=t.computed(()=>{if(V.value){let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].streamingCustomPlugins}`;return r.config.app==="konnect"?ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}return null}),ze=t.computed(()=>{if(L.value){let ie=`${r.config.apiBaseUrl}${Xe.select[r.config.app].clonedPlugins}`;return r.config.app==="konnect"?ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||""):ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"")}return null}),Ie=t.computed(()=>{if(r.config.entityType&&r.config.entityId){let ie=`${r.config.apiBaseUrl}${Xe.list[r.config.app].forEntity}`;return r.config.app==="konnect"&&(ie=ie.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"")),ie.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"").replace(/{entityType}/gi,r.config.entityType||"").replace(/{entityId}/gi,r.config.entityId||"")}return""}),je=ie=>{a.replace({hash:ie,query:i.query})};t.watch(()=>r.disabledPlugins,(ie,ye)=>{!u(ie,ye)&&!p.value&&(b.value=ue())}),t.watch(()=>r.ignoredPlugins,(ie,ye)=>{!u(ie,ye)&&!p.value&&(b.value=ue())}),t.watch(p,ie=>{o("loading",ie)});const le=async ie=>{if(!Ie.value){E.value=[];return}try{const{data:{data:ye}}=await T.get(Ie.value,{signal:ie});ye?.length&&(E.value=ye.reduce((Q,z)=>(z.name&&Q.push(z.name),Q),[]))}catch(ye){R(ye)||(E.value=[])}},re=async ie=>{const ye=[];ae.value&&Re.value&&ye.push(Ll(T,ae.value,ie).then(Q=>{y.value=Q}).catch(Q=>{R(Q)||_.value||(_.value=c(Q)??s("plugins.select.tabs.custom.fetch_error"))})),ze.value&&Ae.value&&ye.push(Ll(T,ze.value,ie).then(Q=>{w.value=Q}).catch(Q=>{if(R(Q))return;const z=Z(Q);(z||!_.value)&&(_.value=z?s("plugins.select.tabs.custom.license_required"):c(Q)??s("plugins.select.tabs.custom.fetch_error"))})),ye.push(le(ie)),await Promise.allSettled(ye)},D=async()=>{k.value?.abort(),k.value=new AbortController,p.value=!0,m.value=!1,g.value="",_.value="",h.value=[],y.value=[],w.value=[],E.value=[];try{const{data:ie}=await T.get(ne.value,{signal:k.value.signal});if(r.config.app==="konnect"){const{names:ye}=ie;h.value=ye||[]}else if(r.config.app==="kongManager"){const{plugins:{available_on_server:ye}}=ie;h.value=ye?Object.keys(ye):[]}await re(k.value.signal),b.value=ue()}catch(ie){R(ie)||(m.value=!0,g.value=c(ie))}finally{k.value?.signal.aborted||(p.value=!1)}},te=t.ref(!1),fe=t.ref(!1),Ee=t.ref(!1),Re=t.ref(!1),Pe=t.ref(!1),ke=t.ref(!1),Ae=t.ref(!1),Ce=ie=>{y.value=y.value.filter(ye=>ye.name!==ie),w.value=w.value.filter(ye=>ye.name!==ie),b.value=ue(),o("delete-custom:success",ie)};t.onBeforeMount(async()=>{const[ie,ye,Q,z,Y,me,_e]=await Promise.all([r.canCreateCustomPlugin(),r.canEditCustomPlugin(),r.canDeleteCustomPlugin(),r.canReadCustomPlugin(),r.canEditClonedPlugin?r.canEditClonedPlugin():Promise.resolve(null),r.canDeleteClonedPlugin?r.canDeleteClonedPlugin():Promise.resolve(null),r.canReadClonedPlugin()]);te.value=ie,fe.value=ye,Ee.value=Q,Re.value=z,Pe.value=Y??ye,ke.value=me??Q,Ae.value=_e});const oe=t.useTemplateRef("filter-input");return t.onMounted(async()=>{N.value=!0,oe.value?.input?.focus(),await D()}),t.watch(()=>[r.config.app==="konnect"?r.config.controlPlaneId:void 0,r.config.workspace,r.config.entityType,r.config.entityId,r.config.app==="kongManager"?r.config.gatewayInfo?.edition:void 0,O.value,A.value],async()=>{N.value&&await D()}),t.onBeforeUnmount(()=>{k.value?.abort()}),(ie,ye)=>{const Q=t.resolveComponent("KInput"),z=t.resolveComponent("KSkeletonBox"),Y=t.resolveComponent("KSkeleton"),me=t.resolveComponent("KEmptyState"),_e=t.resolveComponent("KTooltip"),Le=t.resolveComponent("KAlert"),De=t.resolveComponent("KTabs");return t.openBlock(),t.createElementBlock("div",S6,[t.createElementVNode("div",A6,[t.createVNode(Q,{ref:"filter-input",modelValue:f.value,"onUpdate:modelValue":ye[0]||(ye[0]=it=>f.value=it),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter",placeholder:t.unref(s)("search.placeholder.select"),type:"search"},null,8,["modelValue","placeholder"])]),p.value?(t.openBlock(),t.createElementBlock("section",x6,[t.createVNode(z,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(Y,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):m.value?(t.openBlock(),t.createBlock(me,{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})):pe.value&&f.value?(t.openBlock(),t.createBlock(me,{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(s)("search.no_results",{filter:f.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",I6,[de.value.length?(t.openBlock(),t.createBlock(De,{key:0,modelValue:M.value,"onUpdate:modelValue":ye[3]||(ye[3]=it=>M.value=it),"data-testid":"plugins-tabs",tabs:de.value,onChange:je},t.createSlots({kong:t.withCtx(()=>[t.createElementVNode("div",v6,[t.createElementVNode("p",T6,t.toDisplayString(t.unref(s)("plugins.select.tabs.kong.description")),1),t.createVNode(mm,{"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"hide-highlighted-plugins":f.value.length>0,"highlighted-plugins":G.value,"highlighted-plugins-title":r.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[1]||(ye[1]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])])]),custom:t.withCtx(()=>[t.createElementVNode("div",O6,[t.renderSlot(ie.$slots,"before-custom-tab-content",{},void 0,!0),t.createElementVNode("p",B6,t.toDisplayString(t.unref(s)("plugins.select.tabs.custom.description")),1),_.value?(t.openBlock(),t.createBlock(Le,{key:0,appearance:"warning",class:"custom-plugins-warning",message:_.value},null,8,["message"])):t.createCommentVNode("",!0),t.createVNode(k6,{"can-create-custom-plugin":te.value,"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[2]||(ye[2]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-create-custom-plugin","can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","navigate-on-click","plugin-list"])])]),_:2},[A.value?{name:"custom-anchor",fn:t.withCtx(()=>[t.createVNode(_e,{"max-width":"300",text:t.unref(s)("plugins.select.tabs.custom.disabled_tooltip")},{default:t.withCtx(()=>[t.createElementVNode("div",null,t.toDisplayString(t.unref(s)("plugins.select.tabs.custom.title")),1)]),_:1},8,["text"])]),key:"0"}:void 0]),1032,["modelValue","tabs"])):(t.openBlock(),t.createElementBlock("div",P6,[_.value?(t.openBlock(),t.createBlock(Le,{key:0,appearance:"warning",class:"custom-plugins-warning",message:_.value},null,8,["message"])):t.createCommentVNode("",!0),t.createVNode(mm,{"can-delete-cloned-plugin":ke.value,"can-delete-custom-plugin":Ee.value,"can-edit-cloned-plugin":Pe.value,"can-edit-custom-plugin":fe.value,config:e.config,"hide-highlighted-plugins":f.value.length>0,"highlighted-plugins":G.value,"highlighted-plugins-title":r.highlightedPluginsTitle,"navigate-on-click":e.navigateOnClick,"plugin-list":j.value,"onDelete:success":Ce,onPluginClicked:ye[4]||(ye[4]=it=>ie.$emit("plugin-clicked",it))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","hide-highlighted-plugins","highlighted-plugins","highlighted-plugins-title","navigate-on-click","plugin-list"])]))]))])}}}),[["__scopeId","data-v-40b228cd"]]),$6=0,R6=1e3,L6=2e3,F6=3e3,D6=4e3,H0=e=>/[a-z0-9]/i.test(e);function M6(e){const n=[];for(let r=0;r<e.length;r++)H0(e[r])&&(r===0||!H0(e[r-1]))&&n.push({char:e[r],index:r});return n}function W0(e,n){const r=[];let o=0;for(const i of e){for(;o<n.length&&n[o]!==i;)o++;if(o>=n.length)return null;r.push(o),o++}return r}function U6(e,n,r){const o=e.toLowerCase();if(!o)return{matched:!0,indices:[],score:0};const i=n.toLowerCase(),a=(u,f)=>Array.from({length:f},(p,m)=>u+m);if(i.startsWith(o))return{matched:!0,indices:a(0,o.length),score:$6};const s=M6(i),l=W0(o,s.map(u=>u.char));if(l){const u=l.map(f=>s[f].index);return{matched:!0,indices:u,score:R6+u[0]}}const c=i.indexOf(o);if(c>=0)return{matched:!0,indices:a(c,o.length),score:L6+c};const d=W0(o,i.split(""));return d?{matched:!0,indices:d,score:F6+d[0]}:r&&r.toLowerCase().startsWith(o)?{matched:!0,indices:[],score:D6}:{matched:!1,indices:[],score:1/0}}function j6(e,n=[]){if(!n.length)return e?[{text:e,highlighted:!1}]:[];const r=new Set(n),o=[];let i="",a=r.has(0);for(let s=0;s<e.length;s++){const l=r.has(s);l!==a&&i&&(o.push({text:i,highlighted:a}),i=""),a=l,i+=e[s]}return i&&o.push({text:i,highlighted:a}),o}function K6(e){const n=Date.now(),r=2688*60*60*1e3;return Math.abs(n-e)<=r}const q6={key:0,class:"highlighted-match"},Y0=ve(t.defineComponent({__name:"HighlightedText",props:{text:{},indices:{}},setup(e){const n=e,r=t.computed(()=>j6(n.text,n.indices));return(o,i)=>(t.openBlock(),t.createElementBlock("span",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.value,(a,s)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:s},[a.highlighted?(t.openBlock(),t.createElementBlock("span",q6,t.toDisplayString(a.text),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(a.text),1)],64))],64))),128))]))}}),[["__scopeId","data-v-91ae2f75"]]),G6={class:"plugin-select-card-wrapper","data-testid":"plugin-catalog-card-wrapper"},z6={class:"plugin-card-header"},H6={class:"plugin-card-title"},W6={key:0,class:"plugin-card-actions"},Y6=["data-testid","title"],J6={key:0},X6=["title"],Z6={class:"plugin-card-footer"},Q6={class:"plugin-card-footer-extra"},e5={key:0,class:"custom-plugin-badges"},t5=ve(t.defineComponent({__name:"PluginCatalogCard",props:{config:{},plugin:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["plugin-clicked","custom-plugin-delete"],setup(e,{emit:n}){const r=n,o=e,i=gr.useRouter(),{i18n:{t:a}}=nt.useI18n(),s=t.computed(()=>o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?o.plugin.clonedFromRef:o.plugin.id),l=t.computed(()=>!b.value||w.value?[]:o.plugin.customPluginType==="cloned"&&o.plugin.clonedFromRef?[a("plugins.select.cloned_from_badge",{link:o.plugin.clonedFromRef})]:o.plugin.customPluginType==="streaming"?[a("plugins.select.streamed_custom_badge")]:[a("plugins.select.installed_custom_badge")]),c=t.computed(()=>!!(!o.plugin.available||o.plugin.disabledMessage)),d=t.computed(()=>typeof o.config.getCustomEditRoute=="function"),u=t.computed(()=>o.plugin.customPluginType==="cloned"),f=t.computed(()=>u.value?!!o.canDeleteClonedPlugin:!!o.canDeleteCustomPlugin),p=t.computed(()=>u.value?!!o.canEditClonedPlugin:!!o.canEditCustomPlugin),m=t.computed(()=>!(o.config.app==="kongManager"&&o.plugin.customPluginType==="schema")),g=t.computed(()=>p.value&&d.value),_=t.computed(()=>f.value),h=t.computed(()=>!!(b.value&&!w.value&&m.value&&(_.value||g.value))),y=t.computed(()=>c.value?{}:b.value&&w.value&&o.config.createCustomRoute?o.config.createCustomRoute:o.config.getCreateRoute(o.plugin.id)),w=t.computed(()=>o.plugin.id==="custom-plugin-create"),b=t.computed(()=>o.plugin.group===W.PluginGroup.CUSTOM_PLUGINS),E=()=>{b.value&&r("custom-plugin-delete")},k=(N,T)=>{typeof o.config.getCustomEditRoute=="function"&&i.push(o.config.getCustomEditRoute(N,T))};return(N,T)=>{const x=t.resolveComponent("KButton"),B=t.resolveComponent("KDropdownItem"),O=t.resolveComponent("KDropdownMenu"),A=t.resolveComponent("KBadge"),I=t.resolveComponent("RouterLink"),V=t.resolveComponent("KTooltip");return t.openBlock(),t.createElementBlock("div",G6,[t.createVNode(V,{text:e.plugin.disabledMessage},{default:t.withCtx(()=>[t.createVNode(I,{class:t.normalizeClass(["plugin-select-card",{disabled:c.value}]),"data-testid":`${e.plugin.id}-card`,to:y.value},{default:t.withCtx(()=>[t.createElementVNode("div",z6,[t.createElementVNode("div",H6,[t.createVNode(t.unref(mr.PluginIcon),{alt:e.plugin.name,class:"plugin-card-icon",name:s.value,size:55},null,8,["alt","name"]),t.createElementVNode("span",{class:t.normalizeClass({"non-custom-title":!b.value})},[t.createVNode(Y0,{indices:e.plugin.matchedIndices,text:e.plugin.name},null,8,["indices","text"])],2)]),h.value?(t.openBlock(),t.createElementBlock("div",W6,[t.createVNode(O,{"data-testid":"custom-plugin-actions","kpop-attributes":{placement:"bottom-end"},width:"150",onClick:T[1]||(T[1]=t.withModifiers(()=>{},["stop","prevent"]))},{default:t.withCtx(()=>[t.createVNode(x,{appearance:"tertiary",class:"actions-trigger","data-testid":"overflow-actions-button",icon:"",size:"small"},{default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["size"])]),_:1})]),items:t.withCtx(()=>[g.value?(t.openBlock(),t.createBlock(B,{key:0,"data-testid":"edit-plugin-schema",onClick:T[0]||(T[0]=t.withModifiers(L=>k(e.plugin.name,e.plugin.customPluginType),["stop","prevent"]))},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.edit")),1)]),_:1})):t.createCommentVNode("",!0),_.value?(t.openBlock(),t.createBlock(B,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":g.value,onClick:t.withModifiers(E,["stop","prevent"])},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(a)("actions.delete")),1)]),_:1},8,["has-divider"])):t.createCommentVNode("",!0)]),_:1})])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:"plugin-card-body","data-testid":`${e.plugin.id}-card-body`,title:e.plugin.available?e.plugin.name:t.unref(a)("plugins.select.unavailable_tooltip")},[e.plugin.description?(t.openBlock(),t.createElementBlock("div",J6,[t.createElementVNode("div",{title:e.plugin.description},t.toDisplayString(e.plugin.description),9,X6)])):t.createCommentVNode("",!0)],8,Y6),t.createElementVNode("div",Z6,[t.createElementVNode("div",null,t.toDisplayString(w.value?t.unref(a)("actions.create_custom"):t.unref(a)("actions.configure")),1),t.createElementVNode("div",Q6,[l.value.length?(t.openBlock(),t.createElementBlock("div",e5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,L=>(t.openBlock(),t.createBlock(A,{key:L,appearance:"info"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(L),1)]),_:2},1024))),128))])):t.createCommentVNode("",!0),t.renderSlot(N.$slots,"footer-extra",{},void 0,!0)])])]),_:3},8,["class","data-testid","to"])]),_:3},8,["text"])])}}}),[["__scopeId","data-v-9025e247"]]),n5=["data-testid"],r5={class:"group-icon-wrapper"},o5={class:"group-title-text"},i5=["data-testid"],a5=["data-testid"],J0=ve(t.defineComponent({__name:"PluginCatalogGroup",props:{config:{},name:{},plugins:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean},showAllCard:{type:Boolean}},emits:["plugin-clicked","revalidate","delete:success"],setup(e,{emit:n}){const r=e,o=t.computed(()=>{switch(r.name){case W.PluginGroup.FEATURED:return Ne.PopularIcon;case W.PluginGroup.AI:return Ne.BotIcon;case W.PluginGroup.ANALYTICS_AND_MONITORING:return Ne.AnalyticsIcon;case W.PluginGroup.AUTHENTICATION:return Ne.LockIcon;case W.PluginGroup.LOGGING:return Ne.ServiceDocumentIcon;case W.PluginGroup.MONETIZATION:return Ne.MoneyIcon;case W.PluginGroup.SECURITY:return Ne.SecurityIcon;case W.PluginGroup.SERVERLESS:return Ne.RuntimeServerlessIcon;case W.PluginGroup.TRAFFIC_CONTROL:return Ne.TrafficIcon;case W.PluginGroup.TRANSFORMATIONS:return Ne.TransformationIcon;case W.PluginGroup.DEPLOYMENT:return Ne.DeployIcon;case W.PluginGroup.CUSTOM_PLUGINS:return Ne.CodeblockIcon;default:return null}}),i=n,{i18n:{t:a}}=nt.useI18n(),s=t.ref(!1),l=t.computed(()=>r.showAllCard?r.plugins:!s.value&&r.plugins.length>9?r.plugins.slice(0,8):r.plugins),c=t.computed(()=>!r.showAllCard&&!s.value&&r.plugins.length>9);function d(){s.value=!0}const u=t.ref(!1),f=t.ref(null),p=g=>{u.value=!0,f.value={id:g.id,name:g.name,group:g.group,customPluginType:g.customPluginType}},m=g=>{g&&(i("revalidate"),i("delete:success",{name:f.value?.name||"",group:f.value?.group,customPluginType:f.value?.customPluginType})),u.value=!1,f.value=null};return(g,_)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[e.name?(t.openBlock(),t.createElementBlock("div",{key:0,class:"group-title","data-testid":`plugin-group-${e.name}-title`},[t.createElementVNode("div",r5,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.value),{color:`var(--kui-color-text-decorative-purple, ${t.unref(Xh)})`},null,8,["color"]))]),t.createElementVNode("span",o5,t.toDisplayString(e.name),1)],8,n5)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"plugin-card-container","data-testid":`plugin-group-${e.name}`},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,h=>(t.openBlock(),t.createBlock(t5,{key:`plugin-card-${h.id}`,"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,plugin:h,onCustomPluginDelete:y=>p(h),onPluginClicked:y=>i("plugin-clicked",h)},t.createSlots({_:2},[h.gatewayVersion&&t.unref(K6)(t.unref(W.GATEWAY_VERSION_TIMESTAMP_MAP)[h.gatewayVersion])?{name:"footer-extra",fn:t.withCtx(()=>[t.createElementVNode("span",{class:"plugin-card-new-badge","data-testid":`plugin-card-${h.id}-new-badge`},t.toDisplayString(t.unref(a)("labels.new")),9,a5)]),key:"0"}:void 0]),1032,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin","onCustomPluginDelete","onPluginClicked"]))),128)),c.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"show-all-plugin-card",onClick:d},t.toDisplayString(t.unref(a)("plugins.select.show_all")),1)):t.createCommentVNode("",!0)],8,i5),u.value&&f.value?(t.openBlock(),t.createBlock(xc,{key:1,config:e.config,plugin:f.value,onClosed:m,onProceed:_[0]||(_[0]=h=>m(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-f9a9a47c"]]),s5={class:"plugin-select-grid"},l5={class:"empty-state-title"},c5={class:"empty-state-description"},d5={key:1},u5=ve(t.defineComponent({__name:"PluginCatalogGrid",props:{config:{},pluginList:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["plugin-clicked","delete:success"],setup(e,{emit:n}){const r=Vl.concat($l),o=n,{i18n:{t:i}}=nt.useI18n(),a=s=>{o("plugin-clicked",s)};return(s,l)=>{const c=t.resolveComponent("KEmptyState");return t.openBlock(),t.createElementBlock("div",s5,[Object.keys(e.pluginList||[]).length?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(c,{key:0,"action-button-visible":!1,class:"plugins-empty-state","data-testid":"plugins-empty-state","icon-variant":"kong"},{title:t.withCtx(()=>[t.createElementVNode("span",l5,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_title")),1)]),default:t.withCtx(()=>[t.createElementVNode("span",c5,t.toDisplayString(t.unref(i)("plugins.select.tabs.kong.empty_description")),1)]),_:1})),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(r),d=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[e.pluginList?.[d]?(t.openBlock(),t.createElementBlock("div",{key:d},[t.createVNode(J0,{"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,name:d,plugins:e.pluginList[d]||[],"onDelete:success":l[0]||(l[0]=u=>o("delete:success",u)),onPluginClicked:l[1]||(l[1]=u=>a(u))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","name","plugins"])])):t.createCommentVNode("",!0)],64))),256)),e.pluginList?.["Query Result"]?(t.openBlock(),t.createElementBlock("div",d5,[t.createVNode(J0,{"can-delete-cloned-plugin":e.canDeleteClonedPlugin,"can-delete-custom-plugin":e.canDeleteCustomPlugin,"can-edit-cloned-plugin":e.canEditClonedPlugin,"can-edit-custom-plugin":e.canEditCustomPlugin,config:e.config,plugins:e.pluginList["Query Result"]||[],"show-all-card":"","onDelete:success":l[2]||(l[2]=d=>o("delete:success",d)),onPluginClicked:l[3]||(l[3]=d=>a(d))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugins"])])):t.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-e3bf3819"]]),f5={class:"plugin-name-cell","data-testid":"plugin-catalog-list-view-name"},p5=["title"],m5=["title"],g5={class:"plugin-action-cell","data-testid":"plugin-catalog-list-view-action"},h5={key:0,class:"plugin-more-action-cell","data-testid":"plugin-catalog-list-view-more-actions"},y5=ve(t.defineComponent({__name:"PluginCatalogListView",props:{config:{},pluginList:{},canDeleteCustomPlugin:{type:Boolean},canDeleteClonedPlugin:{type:Boolean},canEditCustomPlugin:{type:Boolean},canEditClonedPlugin:{type:Boolean}},emits:["revalidate","delete:success"],setup(e,{emit:n}){const r=n,o=e,{i18n:{t:i}}=nt.useI18n(),a=O=>O.customPluginType==="cloned"&&O.clonedFromRef?i("plugins.select.cloned_from_badge",{link:O.clonedFromRef}):O.customPluginType==="streaming"?i("plugins.select.streamed_custom_badge"):O.customPluginType?i("plugins.select.installed_custom_badge"):"",s=t.computed(()=>N.value.some(O=>b(O.plugin))),l=t.computed(()=>{const O=[{key:"name",label:i("plugins.select.list.table_headers.name"),sortable:!0},{key:"description",label:i("plugins.select.list.table_headers.description")},{key:"action",hideLabel:!0}];return s.value&&O.push({key:"more-actions",hideLabel:!0}),O}),c=t.computed(()=>{if(!o.pluginList)return[];const O=Object.values(o.pluginList).flat();return Array.from(new Map(O.map(I=>[I.id,I])).values()).map(I=>({id:I.id,name:I.name,description:I.description,badge:a(I),plugin:I}))}),d=t.ref(0),u=t.ref(10),f=t.ref(1),p=t.ref(c.value),m=t.ref(!1),g=t.ref(null),_=O=>O.customPluginType==="cloned"&&O.clonedFromRef?O.clonedFromRef:O.id,h=O=>O?.customPluginType==="cloned",y=O=>!O?.customPluginType||o.config.app==="kongManager"&&O.customPluginType==="schema"?!1:h(O)?!!o.canDeleteClonedPlugin:!!o.canDeleteCustomPlugin,w=O=>!O?.customPluginType||typeof o.config.getCustomEditRoute!="function"||o.config.app==="kongManager"&&O.customPluginType==="schema"?!1:h(O)?!!o.canEditClonedPlugin:!!o.canEditCustomPlugin,b=O=>y(O)||w(O),E=O=>{m.value=!0,g.value={id:O.id,name:O.name,group:O.group,customPluginType:O.customPluginType}},k=O=>{O&&(r("revalidate"),r("delete:success",{name:g.value?.name||"",group:g.value?.group,customPluginType:g.value?.customPluginType})),m.value=!1,g.value=null},N=t.computed(()=>{const O=p.value.length,A=Math.max(1,Math.ceil(O/u.value)),V=(Math.min(f.value,A)-1)*u.value;return p.value.slice(V,V+u.value)});t.watch(c,()=>{p.value=[...c.value],f.value=1,d.value++});const T=({page:O})=>{f.value=O},x=({pageSize:O})=>{u.value=O},B=O=>{const{sortColumnKey:A,sortColumnOrder:I}=O;A==="name"&&(p.value=[...p.value].sort((V,L)=>{const R=(V[A]||"").toLowerCase(),Z=(L[A]||"").toLowerCase();return R<Z?I==="asc"?-1:1:R>Z?I==="asc"?1:-1:0}))};return(O,A)=>{const I=t.resolveComponent("KBadge"),V=t.resolveComponent("KButton"),L=t.resolveComponent("KDropdownItem"),R=t.resolveComponent("KDropdown"),Z=t.resolveComponent("KTableView"),ee=t.resolveComponent("KCard");return t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(ee,{"data-testid":"plugin-catalog-list-view-card"},{default:t.withCtx(()=>[(t.openBlock(),t.createBlock(Z,{key:d.value,class:"plugin-catalog-table","client-sort":"",data:N.value,"data-testid":"plugin-catalog-list-view-table",headers:l.value,"pagination-attributes":{totalCount:c.value.length,currentPage:f.value,initialPageSize:u.value,pageSizes:[10,25,50]},"resize-columns":"","row-key":"id",onPageChange:T,onPageSizeChange:x,onSort:B},{name:t.withCtx(({row:j})=>[t.createElementVNode("span",f5,[t.createVNode(t.unref(mr.PluginIcon),{"data-testid":`plugin-catalog-list-view-${j.plugin.id}-icon`,name:_(j.plugin),size:20},null,8,["data-testid","name"]),t.createElementVNode("span",{class:"plugin-name-text","data-testid":"plugin-catalog-list-view-name-text",title:j.name},[t.createVNode(Y0,{indices:j.plugin?.matchedIndices,text:j.name},null,8,["indices","text"])],8,p5),j.badge?(t.openBlock(),t.createBlock(I,{key:0,appearance:"info",class:"plugin-name-badge","data-testid":"plugin-catalog-list-view-custom-badge"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(j.badge),1)]),_:2},1024)):t.createCommentVNode("",!0)])]),description:t.withCtx(({row:j})=>[t.createElementVNode("span",{class:"plugin-description-cell","data-testid":"plugin-catalog-list-view-description",title:j.description},t.toDisplayString(j.description),9,m5)]),action:t.withCtx(({row:j})=>[t.createElementVNode("div",g5,[t.createVNode(V,{appearance:"tertiary","data-testid":"plugin-catalog-list-view-configure-btn",size:"small",to:o.config.getCreateRoute(j.id)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.configure")),1)]),_:1},8,["to"])])]),"more-actions":t.withCtx(({row:j})=>[b(j.plugin)?(t.openBlock(),t.createElementBlock("div",h5,[t.createVNode(R,{appearance:"tertiary",class:"actions-trigger","data-testid":"plugin-catalog-list-view-more-actions-button",icon:"",size:"small"},{items:t.withCtx(()=>[w(j.plugin)?(t.openBlock(),t.createBlock(L,{key:0,"data-testid":"edit-plugin-schema",item:{label:t.unref(i)("actions.edit"),to:e.config.getCustomEditRoute?.(j.plugin.name,j.plugin.customPluginType)}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.edit")),1)]),_:1},8,["item"])):t.createCommentVNode("",!0),y(j.plugin)?(t.openBlock(),t.createBlock(L,{key:1,danger:"","data-testid":"delete-plugin-schema","has-divider":w(j.plugin),onClick:()=>E(j.plugin)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(i)("actions.delete")),1)]),_:1},8,["has-divider","onClick"])):t.createCommentVNode("",!0)]),default:t.withCtx(()=>[t.createVNode(t.unref(Ne.MoreIcon),{color:`var(--kui-color-text-neutral, ${t.unref(zn)})`,size:`var(--kui-icon-size-30, ${t.unref(_n)})`},null,8,["color","size"])]),_:2},1024)])):t.createCommentVNode("",!0)]),_:1},8,["data","headers","pagination-attributes"]))]),_:1}),m.value&&g.value?(t.openBlock(),t.createBlock(xc,{key:0,config:e.config,plugin:g.value,onClosed:k,onProceed:A[0]||(A[0]=j=>k(!0))},null,8,["config","plugin"])):t.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-49cad2d2"]]),_5={class:"plugin-catalog","data-testid":"plugin-catalog"},b5={class:"plugin-filter","data-testid":"plugin-filter"},w5={class:"plugin-filter-title"},k5={class:"featured-title"},C5={class:"plugin-featured-filter"},E5=["data-testid"],N5={class:"group-title"},S5={class:"plugin-type-filter"},A5=["data-testid"],x5={class:"plugins-container"},I5={class:"plugins-filter-input-container"},v5={class:"icon-container"},T5={key:0},O5={key:3,"aria-live":"polite",class:"plugins-results-container"},B5=ve(t.defineComponent({__name:"PluginCatalog",props:{config:{},ignoredPlugins:{default:()=>[]},disabledPlugins:{},highlightedPluginIds:{},customPluginSupport:{default:"none"},availableOnServer:{type:Boolean,default:!0},canDeleteCustomPlugin:{type:Function,default:async()=>!0},canReadCustomPlugin:{type:Function,default:async()=>!0},canEditCustomPlugin:{type:Function,default:async()=>!0},canDeleteClonedPlugin:{},canReadClonedPlugin:{type:Function,default:async()=>!0},canEditClonedPlugin:{}},emits:["loading","plugin-clicked","delete-custom:success"],setup(e,{emit:n}){const r=n,{i18n:{t:o}}=nt.useI18n(),{pluginMetaData:i}=nt.usePluginMetaData(),{getMessageFromError:a}=ge.useErrors(),{sortAlpha:s,objectsAreEqual:l}=ge.useHelpers(),c=e,{axiosInstance:d}=ge.useAxios(c.config?.axiosRequestConfig),u=t.useTemplateRef("filter-input"),f=t.ref(""),p=t.ref(!1),m=t.ref(!1),g=t.ref(Object.fromEntries(Vl.concat($l).map(oe=>[oe,!1]))),_=t.ref(!0),h=t.ref(!1),y=t.ref(""),w=t.ref(""),b=t.ref([]),E=t.ref([]),k=t.ref([]),N=t.ref({}),T=t.ref([]),x=t.ref(!1),B=t.ref(null),O=t.ref(!1),A=t.computed(()=>x.value?Ne.GridIcon:Ne.ListIcon),I=t.inject(kn.KM_2485_CLONED_PLUGINS,!1),V=t.computed(()=>t.unref(I)),L=oe=>oe==="none"||oe==="disabled"?new Set:new Set(Array.isArray(oe)?oe:[oe]),R=t.computed(()=>L(c.customPluginSupport)),Z=t.computed(()=>[...R.value].sort().join("|")),ee=t.computed(()=>R.value.has("streaming")),j=t.computed(()=>V.value&&R.value.has("cloned")),G=oe=>Yo.isAxiosError(oe)&&oe.code==="ERR_CANCELED",$=oe=>a(oe).toLowerCase().includes("requires a license"),pe=t.computed(()=>{let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].availablePlugins}`;if(c.config.app==="konnect")oe=oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||"");else if(c.config.app==="kongManager"&&c.config.gatewayInfo?.edition==="community")return`${c.config.apiBaseUrl}${Xe.select[c.config.app].availablePluginsForOss}`;return oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}),de=t.computed(()=>{if(ee.value){let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].streamingCustomPlugins}`;return c.config.app==="konnect"?oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||""):oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}return null}),M=t.computed(()=>{if(j.value){let oe=`${c.config.apiBaseUrl}${Xe.select[c.config.app].clonedPlugins}`;return c.config.app==="konnect"?oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||""):oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"")}return null}),ue=t.computed(()=>{if(c.config.entityType&&c.config.entityId){let oe=`${c.config.apiBaseUrl}${Xe.list[c.config.app].forEntity}`;return c.config.app==="konnect"&&(oe=oe.replace(/{controlPlaneId}/gi,c.config.controlPlaneId||"")),oe.replace(/\/{workspace}/gi,c.config.workspace?`/${c.config.workspace}`:"").replace(/{entityType}/gi,c.config.entityType||"").replace(/{entityId}/gi,c.config.entityId||"")}return""}),ne=t.computed(()=>{if(!N.value)return{};const oe=Object.entries(g.value).filter(([,Y])=>Y).map(([Y])=>Y);let ie={};oe.length===0&&(ie=N.value),oe.forEach(Y=>{N.value[Y]&&(ie[Y]=N.value[Y])});const ye=f.value.toLowerCase();if(!ye)return ie;const Q=new Map;for(const Y of Object.values(ie))for(const me of Y??[]){if(Q.has(me.id))continue;const _e=U6(ye,me.name,me.id);_e.matched&&Q.set(me.id,{plugin:{...me,matchedIndices:_e.indices},score:_e.score})}const z=Array.from(Q.values()).sort((Y,me)=>Y.score-me.score||Y.plugin.name.localeCompare(me.plugin.name)).map(Y=>Y.plugin);return z.length?{"Query Result":z}:{}}),ae=t.computed(()=>Object.keys(ne.value).length>0),ze=t.computed(()=>Object.keys(N.value).length>0&&!ae.value),Ie=()=>{Object.keys(g.value).forEach(oe=>{g.value[oe]=!1})},je=()=>{const oe=new Map(k.value.map(z=>[z.name,z])),ie=new Set(E.value.map(z=>z.name)),ye=new Set([...ie,...oe.keys()]),Q=[...new Set([...Object.keys({...c.availableOnServer?{}:i}),...b.value,...ye])].filter(z=>!c.ignoredPlugins.includes(z)).filter(z=>{if(!c.config.entityType)return z;const Y=oe.has(z)?oe.get(z).ref:z;return c.config.entityType==="services"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.SERVICE)||c.config.entityType==="routes"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.ROUTE)||c.config.entityType==="consumer_groups"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.CONSUMER_GROUP)||c.config.entityType==="consumers"&&i[Y]&&!i[Y].scope.includes(W.PluginScope.CONSUMER)?!1:z}).reduce((z,Y)=>{const me=i[Y]&&i[Y].name||Y,_e=oe.get(Y),Le=ie.has(Y),De={...i[Y],id:Y,name:me,available:b.value.includes(Y)||!!_e||Le,disabledMessage:"",group:i[Y]?.group||W.PluginGroup.CUSTOM_PLUGINS};De.group===W.PluginGroup.CUSTOM_PLUGINS&&(_e?(De.customPluginType="cloned",De.clonedFromRef=_e.ref):Le?De.customPluginType="streaming":De.customPluginType="schema"),c.disabledPlugins&&(De.disabledMessage=c.disabledPlugins[Y]);const it=De.group||o("plugins.select.misc_plugins");let q=z[it];return q||(q=[]),q.push(De),q.sort(s("name")),z[it]=q,z},{});if(c.highlightedPluginIds&&c.highlightedPluginIds.length>0){const z=new Set(Object.values(Q).flat().map(me=>me?.id)),Y=c.highlightedPluginIds.flatMap(me=>{const _e=i[me];return!_e||!z.has(me)?[]:{..._e,id:me,name:_e.name||me,available:b.value.includes(me),disabledMessage:c.disabledPlugins?.[me]||"",group:_e.group||W.PluginGroup.CUSTOM_PLUGINS}}).filter(Boolean);Y.length>0&&(Q[W.PluginGroup.FEATURED]=Y)}return Q};t.watch(()=>c.disabledPlugins,(oe,ie)=>{!l(oe||{},ie||{})&&!_.value&&(N.value=je())}),t.watch(()=>c.ignoredPlugins,(oe,ie)=>{!l(oe,ie)&&!_.value&&(N.value=je())}),t.watch(_,oe=>{r("loading",oe)});const le=t.ref(!1),re=t.ref(!1),D=t.ref(!1),te=t.ref(!1),fe=t.ref(!1),Ee=t.ref(!1),Re=async()=>{try{const[oe,ie,ye,Q,z,Y]=await Promise.all([c.canEditCustomPlugin(),c.canDeleteCustomPlugin(),c.canReadCustomPlugin(),c.canEditClonedPlugin?c.canEditClonedPlugin():Promise.resolve(null),c.canDeleteClonedPlugin?c.canDeleteClonedPlugin():Promise.resolve(null),c.canReadClonedPlugin()]);le.value=oe,re.value=ie,D.value=ye,te.value=Q??oe,fe.value=z??ie,Ee.value=Y}catch{le.value=!1,re.value=!1,D.value=!1,te.value=!1,fe.value=!1,Ee.value=!1}},Pe=async oe=>{if(!ue.value){T.value=[];return}try{const{data:{data:ie}}=await d.get(ue.value,{signal:oe});ie?.length&&(T.value=ie.reduce((ye,Q)=>(Q.name&&ye.push(Q.name),ye),[]))}catch(ie){G(ie)||(T.value=[])}},ke=async oe=>{const ie=[];de.value&&D.value&&ie.push(Ll(d,de.value,oe).then(ye=>{E.value=ye}).catch(ye=>{G(ye)||w.value||(w.value=a(ye)??o("plugins.select.tabs.custom.fetch_error"))})),M.value&&Ee.value&&ie.push(Ll(d,M.value,oe).then(ye=>{k.value=ye}).catch(ye=>{if(G(ye))return;const Q=$(ye);(Q||!w.value)&&(w.value=Q?o("plugins.select.tabs.custom.license_required"):a(ye)??o("plugins.select.tabs.custom.fetch_error"))})),ie.push(Pe(oe)),await Promise.allSettled(ie)},Ae=async()=>{B.value?.abort();const oe=new AbortController;B.value=oe,_.value=!0,h.value=!1,y.value="",w.value="",b.value=[],E.value=[],k.value=[],T.value=[];try{const{data:ie}=await d.get(pe.value,{signal:oe.signal});if(c.config.app==="konnect"){const{names:ye}=ie;b.value=ye||[]}else if(c.config.app==="kongManager"){const{plugins:{available_on_server:ye}}=ie;b.value=ye?Object.keys(ye):[]}await ke(oe.signal),N.value=je()}catch(ie){G(ie)||(h.value=!0,y.value=a(ie))}finally{B.value===oe&&!oe.signal.aborted&&(_.value=!1)}},Ce=async({name:oe})=>{oe&&(r("delete-custom:success",oe),await Ae())};return t.onMounted(async()=>{O.value=!0,u.value?.input?.focus(),await Re(),await Ae()}),t.watch(()=>[c.config.app==="konnect"?c.config.controlPlaneId:void 0,c.config.workspace,c.config.entityType,c.config.entityId,c.config.app==="kongManager"?c.config.gatewayInfo?.edition:void 0,Z.value,V.value],async()=>{O.value&&(await Re(),await Ae())}),t.onBeforeUnmount(()=>{B.value?.abort()}),(oe,ie)=>{const ye=t.resolveComponent("KButton"),Q=t.resolveComponent("KCheckbox"),z=t.resolveComponent("KBadge"),Y=t.resolveComponent("KCollapse"),me=t.resolveComponent("KInput"),_e=t.resolveComponent("KSkeletonBox"),Le=t.resolveComponent("KSkeleton"),De=t.resolveComponent("KEmptyState"),it=t.resolveComponent("KAlert");return t.openBlock(),t.createElementBlock("div",_5,[t.createElementVNode("div",b5,[t.createElementVNode("div",w5,[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.select.filter.title"))+" ",1),t.createVNode(ye,{appearance:"tertiary",class:"clear-selection","data-testid":"clear-filter-selection",disabled:!Object.values(g.value).some(q=>q),onClick:Ie},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(t.unref(o)("plugins.select.filter.clear")),1)]),_:1},8,["disabled"])]),t.createVNode(Y,{modelValue:p.value,"onUpdate:modelValue":ie[0]||(ie[0]=q=>p.value=q)},{title:t.withCtx(()=>[t.createElementVNode("div",k5,t.toDisplayString(t.unref(o)("plugins.select.filter.featured")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",C5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Vl),q=>(t.openBlock(),t.createElementBlock("div",{key:q,class:"plugin-filter-item","data-testid":`plugin-filter-item-${q}`},[t.createVNode(Q,{modelValue:g.value[q],"onUpdate:modelValue":se=>g.value[q]=se,label:q},null,8,["modelValue","onUpdate:modelValue","label"]),t.createVNode(z,{appearance:"neutral"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(N.value?.[q]?.length||0),1)]),_:2},1024)],8,E5))),128))])]),_:1},8,["modelValue"]),t.createVNode(Y,{modelValue:m.value,"onUpdate:modelValue":ie[1]||(ie[1]=q=>m.value=q)},{title:t.withCtx(()=>[t.createElementVNode("div",N5,t.toDisplayString(t.unref(o)("plugins.select.filter.type")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",S5,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref($l),q=>(t.openBlock(),t.createElementBlock("div",{key:q,class:"plugin-filter-item","data-testid":`plugin-filter-item-${q}`},[t.createVNode(Q,{modelValue:g.value[q],"onUpdate:modelValue":se=>g.value[q]=se,"data-testid":`plugin-filter-checkbox-${q}`,label:q},null,8,["modelValue","onUpdate:modelValue","data-testid","label"]),t.createVNode(z,{appearance:"neutral","data-testid":`plugin-filter-count-${q}`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(N.value?.[q]?.length||0),1)]),_:2},1032,["data-testid"])],8,A5))),128))])]),_:1},8,["modelValue"])]),t.createElementVNode("div",x5,[t.createElementVNode("div",I5,[t.createVNode(me,{ref:"filter-input",modelValue:f.value,"onUpdate:modelValue":ie[2]||(ie[2]=q=>f.value=q),modelModifiers:{trim:!0},class:"plugins-filter-input","data-testid":"plugins-filter-input",placeholder:t.unref(o)("search.placeholder.search_plugins"),type:"search"},null,8,["modelValue","placeholder"]),t.createElementVNode("div",v5,[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(A.value),{class:"plugins-filter-icon",color:`var(--kui-icon-color-primary, ${t.unref(NS)})`,onClick:ie[3]||(ie[3]=q=>x.value=!x.value)},null,8,["color"]))])]),_.value?(t.openBlock(),t.createElementBlock("section",T5,[t.createVNode(_e,{class:"plugins-skeleton-title",width:"10"}),t.createVNode(Le,{"card-count":8,class:"plugins-skeleton-cards",type:"card"})])):h.value?(t.openBlock(),t.createBlock(De,{key:1,"action-button-visible":!1,"data-testid":"plugins-fetch-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(y.value),1)]),_:1})):ze.value&&f.value?(t.openBlock(),t.createBlock(De,{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(o)("search.no_results",{filter:f.value})),1)]),_:1})):(t.openBlock(),t.createElementBlock("section",O5,[w.value?(t.openBlock(),t.createBlock(it,{key:0,appearance:"warning",class:"custom-plugins-warning",message:w.value},null,8,["message"])):t.createCommentVNode("",!0),x.value?(t.openBlock(),t.createBlock(y5,{key:1,"can-delete-cloned-plugin":fe.value,"can-delete-custom-plugin":re.value,"can-edit-cloned-plugin":te.value,"can-edit-custom-plugin":le.value,config:e.config,"plugin-list":ne.value,"onDelete:success":Ce},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin-list"])):(t.openBlock(),t.createBlock(u5,{key:2,"can-delete-cloned-plugin":fe.value,"can-delete-custom-plugin":re.value,"can-edit-cloned-plugin":te.value,"can-edit-custom-plugin":le.value,config:e.config,"plugin-list":ne.value,"onDelete:success":Ce,onPluginClicked:ie[4]||(ie[4]=q=>oe.$emit("plugin-clicked",q))},null,8,["can-delete-cloned-plugin","can-delete-custom-plugin","can-edit-cloned-plugin","can-edit-custom-plugin","config","plugin-list"]))]))])])}}}),[["__scopeId","data-v-a7e2cc9c"]]),P5={key:1,class:"datakit-config-card-canvas"},V5={class:"config-card-details-label","data-testid":"datakit-configuration-label"},$5={class:"config-card-details-value datakit-canvas-container","data-testid":"datakit-configuration-canvas"},R5={class:"canvas-wrapper"},L5=ve(t.defineComponent({__name:"DatakitConfigCardCanvas",props:{pluginData:{},item:{},schema:{}},setup(e){const n=t.computed(()=>B0.safeParse(e.pluginData?.config).success);return Lf(e.pluginData,{enableCallErrorHandling:g0(e.schema)}),(r,o)=>{const i=t.resolveComponent("KLabel");return n.value?(t.openBlock(),t.createElementBlock("div",P5,[t.createElementVNode("div",V5,[t.createVNode(i,null,{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createElementVNode("span",{class:"label-content"}," Nodes ",-1)])]),_:1})]),t.createElementVNode("div",$5,[t.createElementVNode("div",R5,[t.createVNode(em,{class:"datakit-flow-panels",mode:"view",resizable:""})])])])):(t.openBlock(),t.createBlock(t.unref(ge.ConfigCardItem),{key:0,item:e.item},null,8,["item"]))}}}),[["__scopeId","data-v-676edc6d"]]),F5={class:"kong-ui-entity-plugin-config-card"},D5={class:"name-cell-wrapper"},M5={class:"info-name"},U5={key:0},j5={key:0},K5={key:0},q5={key:0},G5={key:0},gm="config",z5=ve(t.defineComponent({__name:"PluginConfigCard",props:{config:{type:Object,required:!0,validator:e=>!(!e||!["konnect","kongManager"].includes(e?.app)||e.app==="konnect"&&!e.controlPlaneId||e.app==="kongManager"&&typeof e.workspace!="string"||!e.entityId||!e.pluginType)},configCardDoc:{type:String,default:"",required:!1},showNameAsLink:{type:Boolean,default:!1},hideTitle:{type:Boolean,default:!1},scopedEntityType:{type:String,required:!1,default:""},scopedEntityId:{type:String,required:!1,default:null},expandPartial:{type:Boolean,default:!0}},emits:["loading","fetch:error","error:fetch-schema","fetch:success","navigation-click"],setup(e,{emit:n}){const r=n,o=e,{i18n:{t:i}}=nt.useI18n(),a=nt.usePluginMetaData(),{setFieldType:s}=nt.usePluginHelpers(),{getPropValue:l}=ge.useHelpers(),c=t.computed(()=>{let O=Xe.item[o.config.app]?.[o.scopedEntityType?"forEntity":"all"].replace(/{entityType}/gi,o.scopedEntityType).replace(/{entityId}/gi,o.scopedEntityId??"").concat(o.expandPartial?"?expand_partials=true":"");if(o.config.app==="konnect"){const A=o.expandPartial?"&":"?";O=O.concat(`${A}__ui_data=true`)}return O}),d=t.computed(()=>!!o.config.showScopeName),u=t.computed(()=>{const O={},A=T.value?.fields||[];for(let I=0;I<A.length;I++){const V=T.value.fields[I],L=Object.keys(V)?.[0];s(O,L,V[L])}return{...O,instance_name:{section:ge.ConfigurationSchemaSection.Basic,order:1.5},consumer:{label:d.value?i("plugins.fields.consumer"):i("plugins.fields.consumer_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},route:{label:d.value?i("plugins.fields.route"):i("plugins.fields.route_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},service:{label:d.value?i("plugins.fields.service"):i("plugins.fields.service_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},consumer_group:{label:d.value?i("plugins.fields.consumer_group"):i("plugins.fields.consumer_group_id"),section:ge.ConfigurationSchemaSection.Basic,order:6},protocols:{type:ge.ConfigurationSchemaType.BadgeTag,section:ge.ConfigurationSchemaSection.Basic,order:7}}}),f=t.computed(()=>T.value?.fields?T.value.fields?.find(A=>Object.keys(A)?.[0]===gm)?.[gm]?.fields||[]:[]),p=t.computed(()=>{const O={};if(!f.value)return O;for(let A=0;A<f.value?.length;A++){const I=f.value[A],V=Object.keys(I)?.[0],L=I[V];L.required&&(O[V]={order:1}),s(O,V,L)}return O}),m=O=>{const A=a.pluginMetaData[o.config.pluginType]?.scope;return A?Object.fromEntries(Object.entries(O).filter(([I,V])=>V?!0:!(I==="service"&&!A.includes(W.PluginScope.SERVICE)||I==="route"&&!A.includes(W.PluginScope.ROUTE)||I==="consumer"&&!A.includes(W.PluginScope.CONSUMER)||I==="consumer_group"&&!A.includes(W.PluginScope.CONSUMER_GROUP)))):O},g=O=>go(O,"__ui_data"),{getMessageFromError:_}=ge.useErrors(),{axiosInstance:h}=ge.useAxios(o.config?.axiosRequestConfig),{resolveReferenceNames:y,getReferenceName:w,isReferenceNameLoading:b}=nt.useReferenceEntityNames({config:o.config,axiosInstance:h,onError:O=>r("fetch:error",O)}),E=(O,A,I)=>({key:A,value:d.value&&w(O)||A,to:d.value?I?.(A):void 0,subtitle:d.value&&w(O)?A:void 0,subtitleLoading:d.value&&b(O),type:ge.ConfigurationSchemaType.LinkInternal}),k=O=>{r("fetch:success",O),d.value&&o.showNameAsLink&&y(O)},N=t.computed(()=>{let O=`${o.config.apiBaseUrl}${Xe.form[o.config.app].pluginSchema}`;return o.config.app==="konnect"&&(O=O.replace(/{controlPlaneId}/gi,o.config?.controlPlaneId||"")),O.replace(/\/{workspace}/gi,o.config?.workspace?`/${o.config.workspace}`:"").replace(/{plugin}/gi,o.config.pluginType)}),T=t.ref({});ge.useSchemaProvider(T);const x=t.ref(!1),B=t.ref("");return t.onBeforeMount(async()=>{x.value=!0;try{const{data:O}=await h.get(N.value);T.value=O}catch(O){B.value=_(O),r("error:fetch-schema",O)}finally{x.value=!1}}),(O,A)=>{const I=t.resolveComponent("KSkeleton"),V=t.resolveComponent("KEmptyState"),L=t.resolveComponent("KCopy");return t.openBlock(),t.createElementBlock("div",F5,[x.value?(t.openBlock(),t.createBlock(I,{key:0,"data-testid":"plugin-config-card-loader","table-columns":2,type:"table"})):B.value?(t.openBlock(),t.createBlock(V,{key:1,"data-testid":"plugin-config-card-schema-error","icon-variant":"error"},{default:t.withCtx(()=>[t.createElementVNode("h3",null,t.toDisplayString(B.value),1)]),_:1})):(t.openBlock(),t.createBlock(t.unref(ge.EntityBaseConfigCard),{key:2,"code-block-record-formatter":g,config:e.config,"config-card-doc":e.configCardDoc,"config-schema":u.value,"entity-type":t.unref(ge.SupportedEntityType).Plugin,"fetch-url":c.value,"hide-title":e.hideTitle,"plugin-config-key":gm,"plugin-config-schema":p.value,"record-resolver":m,"onFetch:error":A[0]||(A[0]=R=>O.$emit("fetch:error",R)),"onFetch:success":k,onLoading:A[1]||(A[1]=R=>O.$emit("loading",R))},t.createSlots({name:t.withCtx(R=>[t.createElementVNode("div",D5,[t.createVNode(t.unref(mr.PluginIcon),{class:"plugin-icon",name:t.unref(l)("rowValue",R),size:24},null,8,["name"]),t.createElementVNode("span",M5,t.toDisplayString(t.unref(a).getDisplayName(t.unref(l)("rowValue",R))),1)])]),consumer:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("consumer",t.unref(l)("rowValue",R).id,e.config.getConsumerViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"consumer")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"consumer-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",U5,"–"))]),route:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("route",t.unref(l)("rowValue",R).id,e.config.getRouteViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"route")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"route-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",j5,"–"))]),service:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("service",t.unref(l)("rowValue",R).id,e.config.getServiceViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"service")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"service-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",K5,"–"))]),consumer_group:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:E("consumer_group",t.unref(l)("rowValue",R).id,e.config.getConsumerGroupViewRoute),onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R).id,"consumer_group")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"consumer-group-copy-uuid",text:t.unref(l)("rowValue",R).id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",q5,"–"))]),partials:t.withCtx(R=>[t.unref(l)("rowValue",R)?e.showNameAsLink?(t.openBlock(),t.createBlock(t.unref(ge.InternalLinkItem),{key:1,item:{key:t.unref(l)("rowValue",R)?.[0]?.id,value:t.unref(l)("rowValue",R)?.[0]?.id+(t.unref(l)("rowValue",R)?.[0]?.name?"/"+t.unref(l)("rowValue",R)?.[0]?.name:""),type:t.unref(ge.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>O.$emit("navigation-click",t.unref(l)("rowValue",R)?.[0]?.id,"partial")},null,8,["item","onNavigationClick"])):(t.openBlock(),t.createBlock(L,{key:2,"copy-tooltip":t.unref(i)("copy.tooltip",{label:t.unref(l)("row",R).label}),"data-testid":"partial-copy-uuid",text:t.unref(l)("rowValue",R)?.[0].id},null,8,["copy-tooltip","text"])):(t.openBlock(),t.createElementBlock("span",G5,"–"))]),_:2},[e.config.pluginType==="datakit"&&e.config.app==="konnect"?{name:"config-card-item-nodes",fn:t.withCtx(R=>[t.createVNode(L5,{item:R.row,"plugin-data":R.record,schema:T.value},null,8,["item","plugin-data","schema"])]),key:"0"}:void 0]),1032,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title","plugin-config-schema"]))])}}}),[["__scopeId","data-v-4bb6d593"]]),H5=t.defineComponent({__name:"AuthPluginOnboardingCard",props:{pluginType:{},authMode:{},hasExistingEntity:{type:Boolean},createEntityTo:{},onCreateEntityClick:{type:Function},addCredentialTo:{},onAddCredentialClick:{type:Function}},emits:["dismiss"],setup(e){const{i18n:{t:n}}=nt.useI18n(),r=t.computed(()=>{const o=e.authMode==="kong-identity",i=[{icon:Ne.GroupsIcon,appearance:"decorative-aqua",title:n(o?"onboarding.create_principal.title":"onboarding.create_consumer.title"),description:n(o?"onboarding.create_principal.description":`onboarding.${e.pluginType}.create_consumer.description`),to:e.createEntityTo,onClick:e.onCreateEntityClick}];return e.hasExistingEntity&&(e.addCredentialTo||e.onAddCredentialClick)&&i.push({icon:Ne.PasskeyIcon,appearance:"decorative-purple",title:n(o?"onboarding.add_principal_credential.title":`onboarding.${e.pluginType}.add_credential.title`),description:n(o?"onboarding.add_principal_credential.description":`onboarding.${e.pluginType}.add_credential.description`),to:e.addCredentialTo,onClick:e.onAddCredentialClick}),i});return(o,i)=>(t.openBlock(),t.createBlock(t.unref(ge.OnboardingCard),{items:r.value,subtitle:t.unref(n)(`onboarding.${e.pluginType}.subtitle`),title:t.unref(n)(`onboarding.${e.pluginType}.title`),onDismiss:i[0]||(i[0]=a=>o.$emit("dismiss"))},null,8,["items","subtitle","title"]))}}),W5={class:"kong-ui-entities-create-consumer-credential-form"},Y5={class:"onboarding-wizard-header"},J5={class:"onboarding-wizard-body"},X5={class:"consumer-note"},Z5={class:"onboarding-wizard-footer"},Q5=ve(t.defineComponent({__name:"CreateConsumerCredentialForm",props:{config:{},credentialType:{}},emits:["cancel","success"],setup(e,{emit:n}){const{i18n:{t:r}}=nt.useI18n(),{getMessageFromError:o}=ge.useErrors(),i=n,{axiosInstance:a}=ge.useAxios(e.config?.axiosRequestConfig),s=t.ref(1),l=t.ref(!1),c=t.ref(""),d=t.ref(null),u=t.ref({}),f=t.reactive({username:"",customId:"",tags:""}),p=t.computed(()=>!!f.username||!!f.customId),m=t.computed(()=>[{label:r("onboarding.steps.consumer.step"),state:s.value===1?"active":"completed"},{label:r("onboarding.steps.credential.step"),state:s.value===2?"active":"default"}]),g=t.computed(()=>({username:f.username||null,custom_id:f.customId||null,tags:f.tags.split(",").map(k=>k.trim()).filter(k=>k!=="")})),_=k=>{c.value=o(k)},h=async()=>{c.value="",l.value=!0;try{const{data:k}=await a.post(Dl(e.config,Xe.consumers[e.config.app]),g.value);d.value={id:k?.id,username:k?.username,custom_id:k?.custom_id},s.value=2}catch(k){c.value=o(k)}finally{l.value=!1}},y=t.computed(()=>{const k=qr[e.credentialType]?.endpoint||"/plugins";return`consumers/${d.value?.id}${k}`}),w=t.computed(()=>Dl(e.config,Xe.form[e.config.app].credential.create).replace(/{resourceEndpoint}/gi,y.value)),b=async()=>{if(d.value){l.value=!0,c.value="";try{const{data:k}=await a.post(w.value,u.value);i("success",{consumer:d.value,credential:k})}catch(k){c.value=o(k)}finally{l.value=!1}}},E=()=>{s.value===1?i("cancel"):d.value&&i("success",{consumer:d.value,credential:null})};return(k,N)=>{const T=t.resolveComponent("KStepper"),x=t.resolveComponent("KInput"),B=t.resolveComponent("KAlert"),O=t.resolveComponent("KButton");return t.openBlock(),t.createElementBlock("div",W5,[t.createElementVNode("div",Y5,[t.createVNode(T,{"data-testid":"wizard-stepper",steps:m.value},null,8,["steps"])]),t.createElementVNode("div",J5,[s.value===1?(t.openBlock(),t.createBlock(t.unref(ge.EntityFormBlock),{key:0,description:t.unref(r)("onboarding.steps.consumer.description"),title:t.unref(r)("onboarding.steps.consumer.title")},{default:t.withCtx(()=>[t.createElementVNode("div",X5,t.toDisplayString(t.unref(r)("onboarding.steps.consumer.note")),1),t.createVNode(x,{modelValue:f.username,"onUpdate:modelValue":N[0]||(N[0]=A=>f.username=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-username",label:t.unref(r)("onboarding.consumer_fields.username_label"),placeholder:t.unref(r)("onboarding.consumer_fields.username_placeholder"),type:"text"},null,8,["modelValue","label","placeholder"]),t.createVNode(x,{modelValue:f.customId,"onUpdate:modelValue":N[1]||(N[1]=A=>f.customId=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-custom-id",label:t.unref(r)("onboarding.consumer_fields.custom_id_label"),placeholder:t.unref(r)("onboarding.consumer_fields.custom_id_placeholder"),type:"text"},null,8,["modelValue","label","placeholder"]),t.createVNode(x,{modelValue:f.tags,"onUpdate:modelValue":N[2]||(N[2]=A=>f.tags=A),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"consumer-form-tags",help:t.unref(r)("plugins.form.fields.tags.help"),label:t.unref(r)("plugins.form.fields.tags.label"),placeholder:t.unref(r)("plugins.form.fields.tags.placeholder"),type:"text"},null,8,["modelValue","help","label","placeholder"])]),_:1},8,["description","title"])):(t.openBlock(),t.createBlock(t.unref(ge.EntityFormBlock),{key:1,title:t.unref(r)("onboarding.steps.credential.title")},{default:t.withCtx(()=>[t.createVNode(qf,{config:e.config,"credential-type":e.credentialType,"onError:fetchSchema":_,"onUpdate:loading":N[3]||(N[3]=A=>l.value=A),"onUpdate:modelValue":N[4]||(N[4]=A=>u.value=A)},null,8,["config","credential-type"])]),_:1},8,["title"])),c.value?(t.openBlock(),t.createBlock(B,{key:2,appearance:"danger",class:"onboarding-wizard-error","data-testid":"wizard-error",message:c.value},null,8,["message"])):t.createCommentVNode("",!0)]),t.createElementVNode("div",Z5,[t.createVNode(O,{appearance:"tertiary","data-testid":"wizard-secondary-action",onClick:E},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.value===1?t.unref(r)("onboarding.actions.exit_setup"):t.unref(r)("onboarding.actions.skip")),1)]),_:1}),t.createVNode(O,{appearance:"primary","data-testid":"wizard-primary-action",disabled:l.value||s.value===1&&!p.value,onClick:N[5]||(N[5]=A=>s.value===1?h():b())},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.value===1?t.unref(r)("onboarding.actions.save_and_next"):t.unref(r)(`onboarding.${e.credentialType}.credential_action`)),1)]),_:1},8,["disabled"])])])}}}),[["__scopeId","data-v-f4c3baf8"]]),ez=ve(t.defineComponent({__name:"AddCredentialToConsumerForm",props:{config:{},credentialType:{}},emits:["cancel","success"],setup(e,{emit:n}){const{i18n:{t:r}}=nt.useI18n(),{getMessageFromError:o}=ge.useErrors(),i=n,{axiosInstance:a}=ge.useAxios(e.config?.axiosRequestConfig),{debouncedQueryChange:s,loading:l,results:c,loadItems:d}=ge.useDebouncedFilter(e.config,Xe.consumers[e.config.app],"",{fetchedItemsKey:"data",searchKeys:["username","id"]}),u=t.computed(()=>c.value.map(E=>({label:E.username||E.custom_id,value:E.id}))),f=t.ref(""),p=t.ref(!1),m=t.ref(""),g=t.ref(!1),_=t.ref({}),h=t.computed(()=>!!f.value&&!g.value&&!p.value),y=t.computed(()=>{const E=qr[e.credentialType].endpoint;return`consumers/${f.value}${E}`}),w=t.computed(()=>Dl(e.config,Xe.form[e.config.app].credential.create).replace(/{resourceEndpoint}/gi,y.value)),b=async()=>{if(h.value){p.value=!0,m.value="";try{const{data:E}=await a.post(w.value,_.value);i("success",E)}catch(E){m.value=o(E)}finally{p.value=!1}}};return d(),(E,k)=>{const N=t.resolveComponent("KSelect");return t.openBlock(),t.createBlock(t.unref(ge.EntityBaseForm),{"align-action-button-to-left":"","can-submit":h.value,config:e.config,"entity-type":t.unref(ge.SupportedEntityType).Other,"error-message":m.value,"form-fields":_.value,"is-readonly":p.value,"no-validate":"","wrapper-component":"div",onCancel:k[4]||(k[4]=T=>E.$emit("cancel")),onSubmit:b},{default:t.withCtx(()=>[t.createVNode(t.unref(ge.EntityFormBlock),{description:t.unref(r)("onboarding.choose_consumer.description"),step:1,title:t.unref(r)("onboarding.choose_consumer.title")},{default:t.withCtx(()=>[t.createVNode(N,{modelValue:f.value,"onUpdate:modelValue":k[0]||(k[0]=T=>f.value=T),"data-testid":"choose-consumer-select","enable-filtering":"",items:u.value,label:t.unref(r)("onboarding.choose_consumer.select_label"),loading:t.unref(l),placeholder:t.unref(r)("onboarding.choose_consumer.select_placeholder"),width:"100%",onQueryChange:t.unref(s)},null,8,["modelValue","items","label","loading","placeholder","onQueryChange"])]),_:1},8,["description","title"]),t.createVNode(t.unref(ge.EntityFormBlock),{step:2,title:t.unref(r)("onboarding.add_credential.title")},{default:t.withCtx(()=>[t.createVNode(qf,{config:e.config,"credential-type":e.credentialType,"onError:fetchSchema":k[1]||(k[1]=T=>m.value=t.unref(o)(T)),"onUpdate:loading":k[2]||(k[2]=T=>g.value=T),"onUpdate:modelValue":k[3]||(k[3]=T=>_.value=T)},null,8,["config","credential-type"])]),_:1},8,["title"])]),_:1},8,["can-submit","config","entity-type","error-message","form-fields","is-readonly"])}}}),[["__scopeId","data-v-c6ff0a51"]]),{usePluginMetaData:tz}=nt;function nz(e,n=!1){const r=e.length;let o=0,i="",a=0,s=16,l=0,c=0,d=0,u=0,f=0;function p(b,E){let k=0,N=0;for(;k<b;){let T=e.charCodeAt(o);if(T>=48&&T<=57)N=N*16+T-48;else if(T>=65&&T<=70)N=N*16+T-65+10;else if(T>=97&&T<=102)N=N*16+T-97+10;else break;o++,k++}return k<b&&(N=-1),N}function m(b){o=b,i="",a=0,s=16,f=0}function g(){let b=o;if(e.charCodeAt(o)===48)o++;else for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;if(o<e.length&&e.charCodeAt(o)===46)if(o++,o<e.length&&Ri(e.charCodeAt(o)))for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;else return f=3,e.substring(b,o);let E=o;if(o<e.length&&(e.charCodeAt(o)===69||e.charCodeAt(o)===101))if(o++,(o<e.length&&e.charCodeAt(o)===43||e.charCodeAt(o)===45)&&o++,o<e.length&&Ri(e.charCodeAt(o))){for(o++;o<e.length&&Ri(e.charCodeAt(o));)o++;E=o}else f=3;return e.substring(b,E)}function _(){let b="",E=o;for(;;){if(o>=r){b+=e.substring(E,o),f=2;break}const k=e.charCodeAt(o);if(k===34){b+=e.substring(E,o),o++;break}if(k===92){if(b+=e.substring(E,o),o++,o>=r){f=2;break}switch(e.charCodeAt(o++)){case 34:b+='"';break;case 92:b+="\\";break;case 47:b+="/";break;case 98:b+="\b";break;case 102:b+="\f";break;case 110:b+=`
|
|
453
453
|
`;break;case 114:b+="\r";break;case 116:b+=" ";break;case 117:const N=p(4);N>=0?b+=String.fromCharCode(N):f=4;break;default:f=5}E=o;continue}if(k>=0&&k<=31)if(Za(k)){b+=e.substring(E,o),f=2;break}else f=6;o++}return b}function h(){if(i="",f=0,a=o,c=l,u=d,o>=r)return a=r,s=17;let b=e.charCodeAt(o);if(hm(b)){do o++,i+=String.fromCharCode(b),b=e.charCodeAt(o);while(hm(b));return s=15}if(Za(b))return o++,i+=String.fromCharCode(b),b===13&&e.charCodeAt(o)===10&&(o++,i+=`
|
|
454
454
|
`),l++,d=o,s=14;switch(b){case 123:return o++,s=1;case 125:return o++,s=2;case 91:return o++,s=3;case 93:return o++,s=4;case 58:return o++,s=6;case 44:return o++,s=5;case 34:return o++,i=_(),s=10;case 47:const E=o-1;if(e.charCodeAt(o+1)===47){for(o+=2;o<r&&!Za(e.charCodeAt(o));)o++;return i=e.substring(E,o),s=12}if(e.charCodeAt(o+1)===42){o+=2;const k=r-1;let N=!1;for(;o<k;){const T=e.charCodeAt(o);if(T===42&&e.charCodeAt(o+1)===47){o+=2,N=!0;break}o++,Za(T)&&(T===13&&e.charCodeAt(o)===10&&o++,l++,d=o)}return N||(o++,f=1),i=e.substring(E,o),s=13}return i+=String.fromCharCode(b),o++,s=16;case 45:if(i+=String.fromCharCode(b),o++,o===r||!Ri(e.charCodeAt(o)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=g(),s=11;default:for(;o<r&&y(b);)o++,b=e.charCodeAt(o);if(a!==o){switch(i=e.substring(a,o),i){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return i+=String.fromCharCode(b),o++,s=16}}function y(b){if(hm(b)||Za(b))return!1;switch(b){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function w(){let b;do b=h();while(b>=12&&b<=15);return b}return{setPosition:m,getPosition:()=>o,scan:n?w:h,getToken:()=>s,getTokenValue:()=>i,getTokenOffset:()=>a,getTokenLength:()=>o-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-u,getTokenError:()=>f}}function hm(e){return e===32||e===9}function Za(e){return e===10||e===13}function Ri(e){return e>=48&&e<=57}var X0;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"})(X0||(X0={})),new Array(20).fill(0).map((e,n)=>" ".repeat(n));const Li=200;new Array(Li).fill(0).map((e,n)=>`
|
|
455
455
|
`+" ".repeat(n)),new Array(Li).fill(0).map((e,n)=>"\r"+" ".repeat(n)),new Array(Li).fill(0).map((e,n)=>`\r
|