@kong-ui-public/entities-routes 3.17.13-pr.2782.db07c11a2.0 → 3.17.14-pr.2781.b1238e65f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/dist/RouteFormExpressionsEditor-BmRiH3GR.js +0 -64
- package/dist/entities-routes.es.js +0 -20
- package/dist/entities-routes.umd.js +0 -1
- package/dist/index-DKwH5iba.js +0 -2640
- package/dist/style.css +0 -1
- package/dist/types/components/RouteConfigCard.vue.d.ts +0 -78
- package/dist/types/components/RouteConfigCard.vue.d.ts.map +0 -1
- package/dist/types/components/RouteForm.vue.d.ts +0 -176
- package/dist/types/components/RouteForm.vue.d.ts.map +0 -1
- package/dist/types/components/RouteFormExpressionsEditor.vue.d.ts +0 -36
- package/dist/types/components/RouteFormExpressionsEditor.vue.d.ts.map +0 -1
- package/dist/types/components/RouteFormExpressionsEditorLoader.vue.d.ts +0 -42
- package/dist/types/components/RouteFormExpressionsEditorLoader.vue.d.ts.map +0 -1
- package/dist/types/components/RouteFormRulesComposer.vue.d.ts +0 -57
- package/dist/types/components/RouteFormRulesComposer.vue.d.ts.map +0 -1
- package/dist/types/components/RouteList.vue.d.ts +0 -157
- package/dist/types/components/RouteList.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/ExpressionsRules.vue.d.ts +0 -44
- package/dist/types/components/rules-composer/ExpressionsRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/RulesComposer.vue.d.ts +0 -42
- package/dist/types/components/rules-composer/RulesComposer.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/TraditionalRules.vue.d.ts +0 -32
- package/dist/types/components/rules-composer/TraditionalRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/DestinationRules.vue.d.ts +0 -16
- package/dist/types/components/rules-composer/rules/DestinationRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/HeaderRules.vue.d.ts +0 -16
- package/dist/types/components/rules-composer/rules/HeaderRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/HostRules.vue.d.ts +0 -15
- package/dist/types/components/rules-composer/rules/HostRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/MethodRules.vue.d.ts +0 -24
- package/dist/types/components/rules-composer/rules/MethodRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/PathRules.vue.d.ts +0 -15
- package/dist/types/components/rules-composer/rules/PathRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/RuleControlsAdd.vue.d.ts +0 -11
- package/dist/types/components/rules-composer/rules/RuleControlsAdd.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/RuleControlsRemove.vue.d.ts +0 -12
- package/dist/types/components/rules-composer/rules/RuleControlsRemove.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/SniRules.vue.d.ts +0 -15
- package/dist/types/components/rules-composer/rules/SniRules.vue.d.ts.map +0 -1
- package/dist/types/components/rules-composer/rules/SourceRules.vue.d.ts +0 -16
- package/dist/types/components/rules-composer/rules/SourceRules.vue.d.ts.map +0 -1
- package/dist/types/composables/index.d.ts +0 -6
- package/dist/types/composables/index.d.ts.map +0 -1
- package/dist/types/composables/useI18n.d.ts +0 -9
- package/dist/types/composables/useI18n.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -65
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -9
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/routes-endpoints.d.ts +0 -58
- package/dist/types/routes-endpoints.d.ts.map +0 -1
- package/dist/types/types/index.d.ts +0 -4
- package/dist/types/types/index.d.ts.map +0 -1
- package/dist/types/types/route-config-card.d.ts +0 -31
- package/dist/types/types/route-config-card.d.ts.map +0 -1
- package/dist/types/types/route-form.d.ts +0 -148
- package/dist/types/types/route-form.d.ts.map +0 -1
- package/dist/types/types/route-list.d.ts +0 -36
- package/dist/types/types/route-list.d.ts.map +0 -1
- package/dist/types/utilities/helpers.d.ts +0 -2
- package/dist/types/utilities/helpers.d.ts.map +0 -1
- package/dist/types/utilities/index.d.ts +0 -2
- package/dist/types/utilities/index.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-routes",
|
|
3
|
-
"version": "3.17.
|
|
3
|
+
"version": "3.17.14-pr.2781.b1238e65f.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/entities-routes.umd.js",
|
|
6
6
|
"module": "./dist/entities-routes.es.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"axios": "^1.13.2",
|
|
27
27
|
"vue": ">= 3.3.13 < 4",
|
|
28
28
|
"vue-router": "^4.6.4",
|
|
29
|
-
"@kong-ui-public/entities-shared": "^3.36.
|
|
29
|
+
"@kong-ui-public/entities-shared": "^3.36.12-pr.2781.b1238e65f.0",
|
|
30
30
|
"@kong-ui-public/i18n": "^2.4.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"vite-plugin-monaco-editor": "^1.1.0",
|
|
39
39
|
"vue": "^3.5.26",
|
|
40
40
|
"vue-router": "^4.6.4",
|
|
41
|
-
"@kong-ui-public/
|
|
42
|
-
"@kong-ui-public/
|
|
41
|
+
"@kong-ui-public/entities-shared": "^3.36.12-pr.2781.b1238e65f.0",
|
|
42
|
+
"@kong-ui-public/i18n": "^2.4.5"
|
|
43
43
|
},
|
|
44
44
|
"repository": {
|
|
45
45
|
"type": "git",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"lodash.isequal": "^4.5.0",
|
|
60
|
-
"@kong-ui-public/expressions": "^1.3.
|
|
60
|
+
"@kong-ui-public/expressions": "^1.3.44-pr.2781.b1238e65f.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"dev": "cross-env USE_SANDBOX=true vite",
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { defineComponent as T, mergeModels as p, useModel as k, ref as P, computed as i, resolveComponent as b, createElementBlock as c, openBlock as r, Fragment as B, createBlock as f, createCommentVNode as u, createVNode as w, unref as v, withCtx as _, normalizeClass as N, renderSlot as R } from "vue";
|
|
2
|
-
import { PROTOCOL_TO_SCHEMA as S, HTTP_BASED_PROTOCOLS as y, ExpressionsEditor as H, RouterPlaygroundModal as A } from "@kong-ui-public/expressions";
|
|
3
|
-
import { c as F } from "./index-DKwH5iba.js";
|
|
4
|
-
const j = /* @__PURE__ */ T({
|
|
5
|
-
__name: "RouteFormExpressionsEditor",
|
|
6
|
-
props: /* @__PURE__ */ p({
|
|
7
|
-
protocol: {},
|
|
8
|
-
showExpressionsModalEntry: { type: Boolean }
|
|
9
|
-
}, {
|
|
10
|
-
modelValue: { required: !0 },
|
|
11
|
-
modelModifiers: {}
|
|
12
|
-
}),
|
|
13
|
-
emits: /* @__PURE__ */ p(["notify"], ["update:modelValue"]),
|
|
14
|
-
setup(o, { emit: x }) {
|
|
15
|
-
const { i18n: { t: E } } = F.useI18n(), a = o, t = k(o, "modelValue"), C = x, l = P(!1), d = i(() => S[a.protocol]), n = i(() => y.includes(a.protocol ?? "")), h = i(() => {
|
|
16
|
-
if (!(!a.showExpressionsModalEntry || n.value))
|
|
17
|
-
return E("form.expression_playground.supported_protocols_hint", { protocols: y.join(", ") });
|
|
18
|
-
}), M = (e) => {
|
|
19
|
-
t.value = e, l.value = !1;
|
|
20
|
-
}, V = (e) => {
|
|
21
|
-
C("notify", e);
|
|
22
|
-
}, g = () => {
|
|
23
|
-
n.value && (l.value = !0);
|
|
24
|
-
};
|
|
25
|
-
return (e, s) => {
|
|
26
|
-
const O = b("KTooltip");
|
|
27
|
-
return r(), c(B, null, [
|
|
28
|
-
d.value !== void 0 ? (r(), f(v(H), {
|
|
29
|
-
key: 0,
|
|
30
|
-
modelValue: t.value,
|
|
31
|
-
"onUpdate:modelValue": s[0] || (s[0] = (m) => t.value = m),
|
|
32
|
-
schema: d.value
|
|
33
|
-
}, null, 8, ["modelValue", "schema"])) : u("", !0),
|
|
34
|
-
w(O, {
|
|
35
|
-
placement: "bottom-start",
|
|
36
|
-
text: h.value
|
|
37
|
-
}, {
|
|
38
|
-
default: _(() => [
|
|
39
|
-
o.showExpressionsModalEntry ? (r(), c("div", {
|
|
40
|
-
key: 0,
|
|
41
|
-
class: N({ disabled: !n.value, "route-form-open-in-playground": !0 }),
|
|
42
|
-
"data-testid": "open-router-playground",
|
|
43
|
-
onClick: g
|
|
44
|
-
}, [
|
|
45
|
-
R(e.$slots, "default")
|
|
46
|
-
], 2)) : u("", !0)
|
|
47
|
-
]),
|
|
48
|
-
_: 3
|
|
49
|
-
}, 8, ["text"]),
|
|
50
|
-
o.showExpressionsModalEntry && n.value ? (r(), f(v(A), {
|
|
51
|
-
key: 1,
|
|
52
|
-
"initial-expression": t.value,
|
|
53
|
-
"is-visible": l.value,
|
|
54
|
-
onCancel: s[1] || (s[1] = (m) => l.value = !1),
|
|
55
|
-
onCommit: M,
|
|
56
|
-
onNotify: V
|
|
57
|
-
}, null, 8, ["initial-expression", "is-visible"])) : u("", !0)
|
|
58
|
-
], 64);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
export {
|
|
63
|
-
j as default
|
|
64
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { E as R, H as o, f as E, e as _, I as e, M as t, d as T, P as I, _ as i, g as L, R as S, a as r, b as O, h as A, j as U, i as u, s as D } from "./index-DKwH5iba.js";
|
|
2
|
-
export {
|
|
3
|
-
R as ExpressionsEditorState,
|
|
4
|
-
o as HTTP_REDIRECT_STATUS_CODES,
|
|
5
|
-
E as INITIAL_ROUTE_RULES_FIELDS,
|
|
6
|
-
_ as INITIAL_SHARED_ROUTE_RULES_FIELDS,
|
|
7
|
-
e as INITIAL_TRADITIONAL_ROUTE_RULES_VALUES,
|
|
8
|
-
t as Methods,
|
|
9
|
-
T as PATH_HANDLING_OPTIONS,
|
|
10
|
-
I as PROTOCOLS_TO_ROUTE_RULES,
|
|
11
|
-
i as RouteConfigCard,
|
|
12
|
-
L as RouteFlavor,
|
|
13
|
-
S as RouteForm,
|
|
14
|
-
r as RouteFormRulesComposer,
|
|
15
|
-
O as RouteList,
|
|
16
|
-
A as RoutingRulesEntities,
|
|
17
|
-
U as isDefinedByBasic,
|
|
18
|
-
u as stateHasExpressionsFlavor,
|
|
19
|
-
D as stateHasTraditionalFlavor
|
|
20
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(function(x,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@kong-ui-public/entities-shared"),require("lodash.isequal"),require("vue-router"),require("@kong/icons"),require("@kong/kongponents"),require("@kong-ui-public/expressions"),require("@kong-ui-public/i18n")):typeof define=="function"&&define.amd?define(["exports","vue","@kong-ui-public/entities-shared","lodash.isequal","vue-router","@kong/icons","@kong/kongponents","@kong-ui-public/expressions","@kong-ui-public/i18n"],e):(x=typeof globalThis<"u"?globalThis:x||self,e(x["kong-ui-public-entities-routes"]={},x.Vue,x["kong-ui-public-entities-shared"],x.isEqual,x.VueRouter,x.KongIcons,x.Kongponents,x["kong-ui-public-expressions"],x["kong-ui-public-i18n"]))})(this,function(x,e,N,_e,Ee,j,Re,ie,Ce){"use strict";const F="/v2/control-planes/{controlPlaneId}/core-entities",L="/{workspace}",oe={list:{konnect:{all:`${F}/routes`,forGatewayService:`${F}/services/{serviceId}/routes`},kongManager:{all:`${L}/routes`,forGatewayService:`${L}/services/{serviceId}/routes`}},form:{konnect:{services:`${F}/services`,create:{all:`${F}/routes`,forGatewayService:`${F}/services/{serviceId}/routes`},fetch:{all:`${F}/routes/{id}`,forGatewayService:`${F}/services/{serviceId}/routes/{id}`},edit:{all:`${F}/routes/{id}`,forGatewayService:`${F}/services/{serviceId}/routes/{id}`}},kongManager:{services:`${L}/services`,create:{all:`${L}/routes`,forGatewayService:`${L}/services/{serviceId}/routes`},fetch:{all:`${L}/routes/{id}`,forGatewayService:`${L}/services/{serviceId}/routes/{id}`},edit:{all:`${L}/routes/{id}`,forGatewayService:`${L}/services/{serviceId}/routes/{id}`}}},item:{konnect:{getService:`${F}/services/{serviceId}`,all:`${F}/routes/{id}`,forGatewayService:`${F}/services/{serviceId}/routes/{id}`},kongManager:{getService:`${L}/services/{serviceId}`,all:`${L}/routes/{id}`,forGatewayService:`${L}/services/{serviceId}/routes/{id}`}}},we={actions:{create:"New route",debugger:"Start debugging",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",delete:"Delete",clear:"Clear",view:"View Details",loading:"Loading..."},search:{placeholder:{konnect:"Filter by name",exact:"Filter by exact name or ID",kongManager:"Filter by exact name or ID"},no_results:"No results found"},routes:{title:"Routes",list:{toolbar_actions:{new_route:"New route"},table_headers:{name:"Name",protocols:"Protocols",hosts:"Hosts",methods:"Methods",paths:"Paths",expression:"Expression",id:"ID",tags:"Tags",created_at:"Created At",updated_at:"Last Modified"},empty_state:{title:"Configure a New Route",description:"Routes proxy requests to an associated Service."},empty_state_v2:{title:"Configure your first route",group:"Routes created in gateways within this group will automatically appear here.",description:"Routes direct incoming API requests to the appropriate gateway service based on paths, methods, and headers, ensuring efficient traffic flow.",learn_more:"Learn more"}}},delete:{title:"Delete a Route",description:"Deleting this route will also remove any associated plugins. This action cannot be reversed."},errors:{general:"Routes could not be retrieved",delete:"The route could not be deleted at this time.",copy:"Failed to copy to clipboard",services:{fetch:"Could not fetch available services"}},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},form:{config_flavor:{label:"Define by"},config_types:{basic:{description:"Quickly set up a route with HTTP & HTTPS protocol with the essentials: path, method, and host.",label:"Basic"},advanced:{description:"Define complex route logic with other protocols or additional paths or attributes such as headers.",label:"Advanced"}},protocols:{grpc:"GRPC",grpcs:"GRPCS","grpc,grpcs":"GRPC, GRPCS",http:"HTTP",https:"HTTPS","http,https":"HTTP, HTTPS",tls:"TLS",tcp:"TCP",udp:"UDP","tls,udp":"TLS, UDP","tcp,udp":"TCP, UDP","tcp,tls":"TCP, TLS","tcp,tls,udp":"TCP, TLS, UDP",ws:"WS",wss:"WSS","ws,wss":"WS, WSS",tls_passthrough:"TLS_PASSTHROUGH"},sections:{general:{title:"General Information",description:"General information will help you identify and manage this route"},config:{title:"Route Configuration",description:"Route configuration determines how this route will handle incoming requests"},routingRules:{title:"Routing Rules"},routingExpression:{title:"Routing Expression"}},fields:{service_id:{label:"Service",placeholder:"Select a service"},name:{label:"Name",placeholder:"Enter a unique name",tooltip:"The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named 'test' and 'Test'."},service:{label:"Gateway Service",tooltip:"The Service this Route is associated to. This is where the Route proxies traffic to."},tags:{label:"Tags",tooltip:"An optional set of strings associated with the Route for grouping and filtering.",placeholder:"Enter a list of tags separated by commas",help:"e.g. tag1, tag2, tag3"},protocols:{label:"Protocols",tooltip:"The protocols this route supports."},path_handling:{label:"Path Handling",tooltip:"Controls how Kong modifies the request path before proxying to the upstream service. Use v1 for standardized, predictable path behavior. Use v0 for legacy compatibility."},https_redirect_status_code:{label:"HTTPS Redirect Status Code",tooltip:"Specifies the HTTP status code for redirecting requests from HTTP to HTTPS. Use <code>301</code> or <code>308</code> for permanent redirects, <code>302</code> or <code>307</code> for temporary redirects."},regex_priority:{label:"Regex Priority",tooltip:"Regex priority is determined by length first (longer patterns win), and when lengths are the same, more specific regexes are preferred. When two routes match the path and have the same <code>regex_priority</code>, the older one (lowest <code>created_at</code>) is used."},strip_path:{label:"Strip Path",tooltip:"When enabled, Kong removes the portion of the request path that matches the route's path before forwarding the request to the upstream. If the request exactly matches the route, the result is <code>/</code>. Disable if that's not desired."},preserve_host:{label:"Preserve Host",tooltip:"Keeps the original <code>Host</code> header when proxying requests. Enable this if the upstream service requires the client's <code>Host</code> value. Disable if the service expects its own hostname."},paths:{add:"Add a path",label:"Paths",label_singular:"Path",placeholder:"e.g. /api/v1",singular:"path",tooltip:"Match specific URL paths, such as <code>/api/v1</code>. Prefix with <code>~</code> to enable regex-based matching."},snis:{add:"Add an SNI",label:"SNIs",placeholder:"e.g. api.example.com",singular:"SNI",tooltip:"SNIs (Server Name Indications) that match the route when using stream routing."},hosts:{add:"Add a host",label:"Hosts",label_singular:"Host",placeholder:"e.g. example.com",singular:"host",tooltip:"Match specific domain names, such as <code>api.example.com</code>."},methods:{label:"Methods",placeholder:"Select methods",search_placeholder:"Search for a method or enter a custom method",singular:"method",tooltip:"Match specific HTTP methods, such as GET or POST. If no method is selected, all methods are included.",custom:{label:"Custom",placeholder:"Enter a custom method",tooltip:"Custom methods can be used with default selections. Uppercase characters are required."}},headers:{add:"Add a header",label:"Headers",singular:"header",tooltip:"Match specific headers, such as <code>x-api-version</code> or <code>x-region</code>. Doesn't accept the <code>Host</code> header. Provide only one entry and prefix with <code>~</code> to enable regex-based matching.",name:{placeholder:"e.g. x-api-version"},values:{placeholder:"e.g. v1"}},sources:{add:"Add a source",label:"Sources",singular:"source",tooltip:"A list of IP sources of incoming connections that match this Route when using stream routing.",ip:{placeholder:"Enter a source IP"},port:{placeholder:"Enter a source port"}},destinations:{add:"Add a destination",label:"Destinations",singular:"destination",tooltip:"A list of IP destinations of incoming connections that match this Route when using stream routing.",ip:{placeholder:"Enter a destination IP"},port:{placeholder:"Enter a destination port"}},response_buffering:{label:"Response buffering",tooltip:"Reads and buffers the full response from the upstream service before sending it to the client. Enable buffering if the client expects the complete response at once. Disable for faster streaming of large or chunked responses."},request_buffering:{label:"Request buffering",tooltip:"Reads and buffers the full request body before proxying. Enable buffering if the upstream service requires the complete request before processing. Disable for faster streaming of large or chunked requests."},expression:{label:"Expression",tooltip:"The route expression."},priority:{label:"Priority",tooltip:"A number used to choose which route resolves a given request when several routes match it using expression simultaneously."}},flavors:{traditional:"Traditional Form",expressions:"Expressions Editor"},show_more:"Show more",hint:{rules_message:"Choose at least one {routingRules} option.",single_rule:"{routingRules}",multiple_rules:"{routingRules} or {lastRoutingRule}",advanced:"To add more than one, use the Advanced options."},warning:{cannotChangeFlavor:{create:"The format of the route cannot be changed once created.",edit:"This route was configured in the {format} format, and cannot be changed after creation. You can switch to the {format} tab to edit, or create a new route in a different format instead."}},expressions_editor:{loading:"Loading the Expressions editor…",error:"Error occurred while loading the Expressions editor. Please view the console for more details."},expression_playground:{test_link:"Test with Router Playground",supported_protocols_hint:"Currently only supports the following protocols: {protocols}"}}};function Be(){const t=Ce.createI18n("en-us",we);return{i18n:t,i18nT:Ce.i18nTComponent(t)}}const H={useI18n:Be},Ae={class:"kong-ui-entities-route-entity-config-card"},De={key:2},Oe=e.defineComponent({__name:"RouteConfigCard",props:{config:{type:Object,required:!0,validator:t=>!(!t||!["konnect","kongManager"].includes(t==null?void 0:t.app)||t.app==="konnect"&&!t.controlPlaneId||t.app==="kongManager"&&typeof t.workspace!="string"||!t.entityId)},configCardDoc:{type:String,default:"",required:!1},hideTitle:{type:Boolean,default:!1},serviceId:{type:String,required:!1,default:""}},emits:["loading","fetch:error","fetch:success","navigation-click"],setup(t,{emit:V}){var R;const p=V,o=t,{axiosInstance:a}=N.useAxios((R=o.config)==null?void 0:R.axiosRequestConfig),{i18n:{t:f}}=H.useI18n(),n=e.ref(""),_=e.ref(""),u=e.ref(!1),m=e.computed(()=>{var s,d;return(d=oe.item[(s=o.config)==null?void 0:s.app])==null?void 0:d[o.serviceId?"forGatewayService":"all"].replace(/{serviceId}/gi,o.serviceId)}),c=e.computed(()=>{var s;return(s=oe.item[o.config.app])==null?void 0:s.getService}),h=async s=>{var g,w,G;if(n.value=o.serviceId||((g=s==null?void 0:s.service)==null?void 0:g.id),p("fetch:success",s),!n.value)return;let d=`${o.config.apiBaseUrl}${c.value}`;o.config.app==="konnect"?d=d.replace(/{controlPlaneId}/gi,((w=o.config)==null?void 0:w.controlPlaneId)||"").replace(/{serviceId}/gi,n.value||""):o.config.app==="kongManager"&&(d=d.replace(/\/{workspace}/gi,(G=o.config)!=null&&G.workspace?`/${o.config.workspace}`:"").replace(/{serviceId}/gi,n.value||""));try{u.value=!0;const{data:$}=await a.get(d);_.value=($==null?void 0:$.name)||($==null?void 0:$.id)}catch($){p("fetch:error",$)}finally{u.value=!1}},I=e.ref({id:{},name:{tooltip:f("form.fields.name.tooltip")},created_at:{},updated_at:{},service:{label:f("form.fields.service.label"),section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.service.tooltip"),order:5},tags:{tooltip:f("form.fields.tags.tooltip"),order:6},protocols:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.protocols.tooltip"),type:N.ConfigurationSchemaType.BadgeTag,order:7},paths:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.paths.tooltip"),type:N.ConfigurationSchemaType.CopyBadge,order:8},hosts:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.hosts.tooltip"),type:N.ConfigurationSchemaType.CopyBadge,order:9},snis:{label:f("form.fields.snis.label"),tooltip:f("form.fields.snis.tooltip"),order:10},headers:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.headers.tooltip"),order:11},methods:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.methods.tooltip"),type:N.ConfigurationSchemaType.BadgeMethod,order:12},sources:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.sources.tooltip"),type:N.ConfigurationSchemaType.JsonArray,order:13},destinations:{section:N.ConfigurationSchemaSection.Basic,tooltip:f("form.fields.destinations.tooltip"),type:N.ConfigurationSchemaType.JsonArray,order:14},https_redirect_status_code:{tooltip:f("form.fields.https_redirect_status_code.tooltip"),order:1},regex_priority:{tooltip:f("form.fields.regex_priority.tooltip"),order:2},strip_path:{tooltip:f("form.fields.strip_path.tooltip"),order:3},preserve_host:{tooltip:f("form.fields.preserve_host.tooltip"),order:4},request_buffering:{tooltip:f("form.fields.request_buffering.tooltip"),order:5},response_buffering:{tooltip:f("form.fields.response_buffering.tooltip"),order:6},path_handling:{tooltip:f("form.fields.path_handling.tooltip"),order:7}});return(s,d)=>{const g=e.resolveComponent("KSkeleton");return e.openBlock(),e.createElementBlock("div",Ae,[e.createVNode(e.unref(N.EntityBaseConfigCard),{config:t.config,"config-card-doc":t.configCardDoc,"config-schema":I.value,"entity-type":e.unref(N.SupportedEntityType).Route,"fetch-url":m.value,"hide-title":t.hideTitle,"onFetch:error":d[0]||(d[0]=w=>s.$emit("fetch:error",w)),"onFetch:success":h,onLoading:d[1]||(d[1]=w=>s.$emit("loading",w))},{service:e.withCtx(({row:w})=>[u.value?(e.openBlock(),e.createBlock(g,{key:0,"data-testid":"service-name-loader",type:"spinner"})):w.value&&w.value.id===n.value&&_.value?(e.openBlock(),e.createBlock(e.unref(N.InternalLinkItem),{key:1,item:{key:w.value.id,value:_.value,type:e.unref(N.ConfigurationSchemaType).LinkInternal},onNavigationClick:()=>s.$emit("navigation-click",w.value.id,"services")},null,8,["item","onNavigationClick"])):(e.openBlock(),e.createElementBlock("div",De,e.toDisplayString("-")))]),_:1},8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title"])])}}});var D=(t=>(t.TRADITIONAL="traditional",t.EXPRESSIONS="expressions",t))(D||{}),r=(t=>(t.PATHS="paths",t.SNIS="snis",t.HOSTS="hosts",t.METHODS="methods",t.HEADERS="headers",t.SOURCES="sources",t.DESTINATIONS="destinations",t))(r||{}),Z=(t=>(t.LOADING="loading",t.ERROR="error",t.READY="ready",t))(Z||{}),v=(t=>(t.GET="GET",t.PUT="PUT",t.POST="POST",t.PATCH="PATCH",t.DELETE="DELETE",t.OPTIONS="OPTIONS",t.HEAD="HEAD",t.CONNECT="CONNECT",t.TRACE="TRACE",t))(v||{});const me=t=>t.routeFlavors.traditional===!0,he=t=>t.routeFlavors.expressions===!0,M={[r.PATHS]:[""],[r.SNIS]:[""],[r.HOSTS]:[""],[r.METHODS]:[],[r.HEADERS]:[{header:"",values:""}],[r.SOURCES]:[{ip:"",port:null}],[r.DESTINATIONS]:[{ip:"",port:null}]},ue={http:[r.PATHS,r.METHODS,r.HOSTS,r.HEADERS],https:[r.PATHS,r.METHODS,r.HOSTS,r.HEADERS,r.SNIS],"http,https":[r.PATHS,r.METHODS,r.HOSTS,r.HEADERS,r.SNIS],"https,http":[r.PATHS,r.METHODS,r.HOSTS,r.HEADERS,r.SNIS],grpc:[r.PATHS,r.HOSTS,r.HEADERS],grpcs:[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS],"grpc,grpcs":[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS],"grpcs,grpc":[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS],udp:[r.SOURCES,r.DESTINATIONS],tls:[r.SOURCES,r.DESTINATIONS,r.SNIS],tcp:[r.SOURCES,r.DESTINATIONS],"tls,udp":[r.SOURCES,r.DESTINATIONS,r.SNIS],"udp,tls":[r.SOURCES,r.DESTINATIONS,r.SNIS],"tcp,udp":[r.SOURCES,r.DESTINATIONS],"udp,tcp":[r.SOURCES,r.DESTINATIONS],"tcp,tls":[r.SOURCES,r.DESTINATIONS,r.SNIS],"tls,tcp":[r.SOURCES,r.DESTINATIONS,r.SNIS],"tcp,tls,udp":[r.SOURCES,r.DESTINATIONS,r.SNIS],"tls,udp,tcp":[r.SOURCES,r.DESTINATIONS,r.SNIS],"udp,tcp,tls":[r.SOURCES,r.DESTINATIONS,r.SNIS],tls_passthrough:[r.SNIS],ws:[r.PATHS,r.HOSTS,r.HEADERS],wss:[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS],"ws,wss":[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS],"wss,ws":[r.PATHS,r.HOSTS,r.HEADERS,r.SNIS]},ge=[{label:"426",value:426},{label:"301",value:301},{label:"302",value:302},{label:"307",value:307},{label:"308",value:308}],ke=[{label:"v0",value:"v0"},{label:"v1",value:"v1"}],de={https_redirect_status_code:426,strip_path:!0,preserve_host:!1,request_buffering:!0,response_buffering:!0},Ne={...de,paths:[""],regex_priority:0,path_handling:"v0",expression:"",priority:0},Me=e.defineComponent({__name:"RuleControlsAdd",props:{routingRulesEntity:{}},emits:["add"],setup(t,{emit:V}){const p=t,o=V,a=e.inject("configType","basic"),{i18n:{t:f}}=H.useI18n(),n=e.computed(()=>f(`form.fields.${p.routingRulesEntity}.add`));return(_,u)=>{const m=e.resolveComponent("KButton");return e.unref(a)!=="basic"?(e.openBlock(),e.createBlock(m,{key:0,appearance:"tertiary",class:"routing-rule-add-item-button","data-testid":`add-${t.routingRulesEntity}`,onClick:u[0]||(u[0]=c=>o("add"))},{default:e.withCtx(()=>[e.createVNode(e.unref(j.AddIcon)),e.createElementVNode("span",null,e.toDisplayString(n.value),1)]),_:1},8,["data-testid"])):e.createCommentVNode("",!0)}}}),U=(t,V)=>{const p=t.__vccOpts||t;for(const[o,a]of V)p[o]=a;return p},re=U(Me,[["__scopeId","data-v-f1f4cfc9"]]),He="#afb7c5",$e="#0044f4",Pe="16px",le=e.defineComponent({__name:"RuleControlsRemove",props:{disabled:{type:Boolean},routingRulesEntity:{}},emits:["remove"],setup(t,{emit:V}){const p=V,o=e.inject("configType","basic");return(a,f)=>{const n=e.resolveComponent("KButton");return e.unref(o)!=="basic"?(e.openBlock(),e.createBlock(n,{key:0,appearance:"tertiary","data-testid":`remove-${t.routingRulesEntity}`,disabled:t.disabled,icon:"",onClick:f[0]||(f[0]=_=>p("remove"))},{default:e.withCtx(()=>[e.createVNode(e.unref(j.CloseIcon),{color:t.disabled?e.unref(He):e.unref($e)},null,8,["color"])]),_:1},8,["data-testid","disabled"])):e.createCommentVNode("",!0)}}}),Ue={class:"routing-rule-container"},Fe=["innerHTML"],Le=U(e.defineComponent({__name:"DestinationRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V;return(f,n)=>{const _=e.resolveComponent("KLabel"),u=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(_,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.destinations.tooltip")},null,8,Fe)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(p)("form.fields.destinations.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(m,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"routing-rule-input"},[e.createVNode(u,{modelValue:o.value[c].ip,"onUpdate:modelValue":h=>o.value[c].ip=h,modelModifiers:{trim:!0},"data-testid":`route-form-destinations-ip-input-${c+1}`,placeholder:e.unref(p)("form.fields.destinations.ip.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(u,{modelValue:o.value[c].port,"onUpdate:modelValue":h=>o.value[c].port=h,modelModifiers:{number:!0},"data-testid":`route-form-destinations-port-input-${c+1}`,max:"65535",min:"0",placeholder:e.unref(p)("form.fields.destinations.port.placeholder"),type:"number"},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).DESTINATIONS,onRemove:h=>a("remove",c)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).DESTINATIONS,onAdd:n[0]||(n[0]=m=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-3eb40a37"]]),Ke={class:"routing-rule-container"},qe=["innerHTML"],Ge=U(e.defineComponent({__name:"HeaderRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V;return(f,n)=>{const _=e.resolveComponent("KLabel"),u=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",Ke,[e.createVNode(_,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.headers.tooltip")},null,8,qe)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(p)("form.fields.headers.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(m,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"routing-rule-input"},[e.createVNode(u,{modelValue:o.value[c].header,"onUpdate:modelValue":h=>o.value[c].header=h,modelModifiers:{trim:!0},"data-testid":`route-form-headers-name-input-${c+1}`,placeholder:e.unref(p)("form.fields.headers.name.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(u,{modelValue:o.value[c].values,"onUpdate:modelValue":h=>o.value[c].values=h,modelModifiers:{trim:!0},"data-testid":`route-form-headers-values-input-${c+1}`,placeholder:e.unref(p)("form.fields.headers.values.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).HEADERS,onRemove:h=>a("remove",c)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).HEADERS,onAdd:n[0]||(n[0]=m=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-d3bede0b"]]),je={class:"routing-rule-container"},We=["innerHTML"],Xe=U(e.defineComponent({__name:"HostRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V,f=e.inject("configType","basic");return(n,_)=>{const u=e.resolveComponent("KLabel"),m=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",je,[e.createVNode(u,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.hosts.tooltip")},null,8,We)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(f)==="basic"?e.unref(p)("form.fields.hosts.label_singular"):e.unref(p)("form.fields.hosts.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f)==="basic"?o.value.slice(0,1):o.value,(c,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"routing-rule-input"},[e.createVNode(m,{modelValue:o.value[h],"onUpdate:modelValue":I=>o.value[h]=I,modelModifiers:{trim:!0},"data-testid":`route-form-hosts-input-${h+1}`,placeholder:e.unref(p)("form.fields.hosts.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).HOSTS,onRemove:I=>a("remove",h)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).HOSTS,onAdd:_[0]||(_[0]=c=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-dccd9082"]]),ze={class:"routing-rule-container","data-testid":"route-form-methods"},Je=["innerHTML"],Qe={class:"routing-rule-input"},Ye=U(e.defineComponent({__name:"MethodRules",props:{methods:{required:!0},methodsModifiers:{},customMethods:{required:!0},customMethodsModifiers:{}},emits:["update:methods","update:customMethods"],setup(t){const{i18n:{t:V}}=H.useI18n(),p=e.useModel(t,"methods"),o=e.useModel(t,"customMethods"),a=e.computed(()=>p.value.filter(m=>Object.keys(v).includes(m)).concat(o.value.map(m=>m.value))),f=e.computed(()=>Object.keys(v).map(m=>({label:m,value:m})).concat(o.value.map(m=>({label:m.label,value:m.value,custom:!0})))),n=m=>!f.value.map(c=>c.value.toLowerCase()).includes(m.toLowerCase()),_=(m,c)=>{c?o.value.push(m):o.value=o.value.filter(h=>h.value!==m.value)},u=m=>{p.value=m};return(m,c)=>{const h=e.resolveComponent("KLabel"),I=e.resolveComponent("KMultiselect");return e.openBlock(),e.createElementBlock("div",ze,[e.createVNode(h,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(V)("form.fields.methods.tooltip")},null,8,Je)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(V)("form.fields.methods.label")),1)]),_:1}),e.createElementVNode("div",Qe,[e.createVNode(I,{"enable-item-creation":"","item-creation-validator":n,items:f.value,"model-value":a.value,placeholder:e.unref(V)("form.fields.methods.placeholder"),"search-placeholder":e.unref(V)("form.fields.methods.search_placeholder"),onItemAdded:c[0]||(c[0]=R=>_(R,!0)),onItemRemoved:c[1]||(c[1]=R=>_(R,!1)),"onUpdate:modelValue":u},null,8,["items","model-value","placeholder","search-placeholder"])])])}}}),[["__scopeId","data-v-6c94d6d2"]]),Ze={class:"routing-rule-container"},ve=["innerHTML"],et=U(e.defineComponent({__name:"PathRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V,f=e.inject("configType","basic");return(n,_)=>{const u=e.resolveComponent("KLabel"),m=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",Ze,[e.createVNode(u,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.paths.tooltip")},null,8,ve)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(f)==="basic"?e.unref(p)("form.fields.paths.label_singular"):e.unref(p)("form.fields.paths.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f)==="basic"?o.value.slice(0,1):o.value,(c,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"routing-rule-input"},[e.createVNode(m,{modelValue:o.value[h],"onUpdate:modelValue":I=>o.value[h]=I,modelModifiers:{trim:!0},"data-testid":`route-form-paths-input-${h+1}`,placeholder:e.unref(p)("form.fields.paths.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).PATHS,onRemove:I=>a("remove",h)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).PATHS,onAdd:_[0]||(_[0]=c=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-eb440a9e"]]),tt={class:"routing-rule-container"},ot=["innerHTML"],rt=U(e.defineComponent({__name:"SniRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V;return(f,n)=>{const _=e.resolveComponent("KLabel"),u=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",tt,[e.createVNode(_,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.snis.tooltip")},null,8,ot)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(p)("form.fields.snis.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(m,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"routing-rule-input"},[e.createVNode(u,{modelValue:o.value[c],"onUpdate:modelValue":h=>o.value[c]=h,modelModifiers:{trim:!0},"data-testid":`route-form-snis-input-${c+1}`,placeholder:e.unref(p)("form.fields.snis.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).SNIS,onRemove:h=>a("remove",c)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).SNIS,onAdd:n[0]||(n[0]=m=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-e6782e08"]]),lt={class:"routing-rule-container"},st=["innerHTML"],nt=U(e.defineComponent({__name:"SourceRules",props:{modelValue:{required:!0},modelModifiers:{}},emits:e.mergeModels(["add","remove"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=e.useModel(t,"modelValue"),a=V;return(f,n)=>{const _=e.resolveComponent("KLabel"),u=e.resolveComponent("KInput");return e.openBlock(),e.createElementBlock("div",lt,[e.createVNode(_,{"tooltip-attributes":{maxWidth:"320"}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(p)("form.fields.sources.tooltip")},null,8,st)]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(e.unref(p)("form.fields.sources.label")),1)]),_:1}),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(m,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"routing-rule-input"},[e.createVNode(u,{modelValue:o.value[c].ip,"onUpdate:modelValue":h=>o.value[c].ip=h,modelModifiers:{trim:!0},"data-testid":`route-form-sources-ip-input-${c+1}`,placeholder:e.unref(p)("form.fields.sources.ip.placeholder")},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(u,{modelValue:o.value[c].port,"onUpdate:modelValue":h=>o.value[c].port=h,modelModifiers:{number:!0},"data-testid":`route-form-sources-port-input-${c+1}`,max:"65535",min:"0",placeholder:e.unref(p)("form.fields.sources.port.placeholder"),type:"number"},null,8,["modelValue","onUpdate:modelValue","data-testid","placeholder"]),e.createVNode(le,{disabled:o.value.length===1,"routing-rules-entity":e.unref(r).SOURCES,onRemove:h=>a("remove",c)},null,8,["disabled","routing-rules-entity","onRemove"])]))),128))]),_:1}),e.createVNode(re,{"routing-rules-entity":e.unref(r).SOURCES,onAdd:n[0]||(n[0]=m=>a("add"))},null,8,["routing-rules-entity"])])}}}),[["__scopeId","data-v-448078c1"]]),at={class:"traditional-rules-hint"},it={key:0},dt=["innerHTML"],ct={key:0,class:"route-form-fields-container route-form-advanced-fields-container"},pt=["innerHTML"],ut=["innerHTML"],ft=["innerHTML"],mt=["innerHTML"],ht=["innerHTML"],gt=["innerHTML"],Ve=U(e.defineComponent({__name:"TraditionalRules",props:e.mergeModels({protocols:{},hideAdvanced:{type:Boolean},readonly:{type:Boolean},configType:{}},{fields:{required:!0},fieldsModifiers:{},customMethods:{required:!0},customMethodsModifiers:{}}),emits:["update:fields","update:customMethods"],setup(t){const{i18nT:V,i18n:p,i18n:{t:o}}=H.useI18n(),a=p.source.form.protocols,f=t,n=e.useModel(t,"fields"),_=e.useModel(t,"customMethods"),u=s=>{switch(s){case r.PATHS:Array.isArray(n.value.paths)?n.value.paths.push([...M[r.PATHS]][0]):n.value.paths=[...M[r.PATHS]];break;case r.SNIS:Array.isArray(n.value.snis)?n.value.snis.push([...M[r.SNIS]][0]):n.value.snis=[...M[r.SNIS]];break;case r.HOSTS:Array.isArray(n.value.hosts)?n.value.hosts.push([...M[r.HOSTS]][0]):n.value.hosts=[...M[r.HOSTS]];break;case r.METHODS:n.value.methods||(n.value.methods={...M[r.METHODS]});break;case r.HEADERS:Array.isArray(n.value.headers)?n.value.headers.push({...M[r.HEADERS][0]}):n.value.headers=[{...M[r.HEADERS][0]}];break;case r.SOURCES:Array.isArray(n.value.sources)?n.value.sources.push({...M[r.SOURCES][0]}):n.value.sources=[{...M[r.SOURCES][0]}];break;case r.DESTINATIONS:Array.isArray(n.value.destinations)?n.value.destinations.push({...M[r.DESTINATIONS][0]}):n.value.destinations=[{...M[r.DESTINATIONS][0]}];break}},m=async(s,d)=>{if(typeof d<"u"){const g=n.value[s];if(Array.isArray(g)&&(g.splice(d,1),g.length>0))return}await e.nextTick(()=>{delete n.value[s]})},c=s=>s.some(d=>f.protocols.includes(d)),h=e.computed(()=>new Set(ue[f.protocols])),I=e.computed(()=>{if(c(["tls_passthrough"]))return[R(r.SNIS)];const s=(f.configType==="basic"?[r.PATHS,r.METHODS,r.HOSTS]:ue[f.protocols]).map(d=>R(d));return[[...s].splice(0,s.length-1).join(", "),s[s.length-1]]}),R=s=>{var g;return((g=p.source.form.fields[s])==null?void 0:g.singular)||""};return(s,d)=>{const g=e.resolveComponent("KCheckbox"),w=e.resolveComponent("KSelect"),G=e.resolveComponent("KInput"),$=e.resolveComponent("KCard");return e.openBlock(),e.createBlock($,null,{default:e.withCtx(()=>{var E;return[e.createElementVNode("span",at,[e.createVNode(e.unref(V),{keypath:"form.hint.rules_message"},{protocol:e.withCtx(()=>[e.createElementVNode("b",null,e.toDisplayString(e.unref(a)[t.protocols]),1)]),routingRules:e.withCtx(()=>[e.createVNode(e.unref(V),{keypath:I.value[1]?"form.hint.multiple_rules":"form.hint.single_rule"},{routingRules:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(I.value[0]),1)]),lastRoutingRule:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(I.value[1]),1)]),_:1},8,["keypath"])]),_:1}),t.configType==="basic"?(e.openBlock(),e.createElementBlock("span",it,e.toDisplayString(e.unref(o)("form.hint.advanced")),1)):e.createCommentVNode("",!0)]),e.createVNode(e.TransitionGroup,{name:"appear"},{default:e.withCtx(()=>{var S;return[n.value.paths&&h.value.has(e.unref(r).PATHS)?(e.openBlock(),e.createBlock(et,{key:"paths-container",modelValue:n.value.paths,"onUpdate:modelValue":d[0]||(d[0]=b=>n.value.paths=b),onAdd:d[1]||(d[1]=b=>u(e.unref(r).PATHS)),onRemove:d[2]||(d[2]=b=>m(e.unref(r).PATHS,b))},null,8,["modelValue"])):e.createCommentVNode("",!0),c(["http","https","ws","wss"])?(e.openBlock(),e.createBlock(g,{key:1,modelValue:n.value.strip_path,"onUpdate:modelValue":d[3]||(d[3]=b=>n.value.strip_path=b),class:"route-form-strip-path","data-testid":"route-form-strip-path",disabled:!((S=n.value.paths)!=null&&S.some(Boolean)),label:e.unref(o)("form.fields.strip_path.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.strip_path.tooltip")},null,8,dt)]),_:1},8,["modelValue","disabled","label"])):e.createCommentVNode("",!0),n.value.methods&&h.value.has(e.unref(r).METHODS)?(e.openBlock(),e.createBlock(Ye,{key:"methods-container","custom-methods":_.value,"onUpdate:customMethods":d[4]||(d[4]=b=>_.value=b),methods:n.value.methods,"onUpdate:methods":d[5]||(d[5]=b=>n.value.methods=b)},null,8,["custom-methods","methods"])):e.createCommentVNode("",!0),n.value.hosts&&h.value.has(e.unref(r).HOSTS)?(e.openBlock(),e.createBlock(Xe,{key:"hosts-container",modelValue:n.value.hosts,"onUpdate:modelValue":d[6]||(d[6]=b=>n.value.hosts=b),onAdd:d[7]||(d[7]=b=>u(e.unref(r).HOSTS)),onRemove:d[8]||(d[8]=b=>m(e.unref(r).HOSTS,b))},null,8,["modelValue"])):e.createCommentVNode("",!0),n.value.headers&&t.configType==="advanced"&&h.value.has(e.unref(r).HEADERS)?(e.openBlock(),e.createBlock(Ge,{key:"headers-container",modelValue:n.value.headers,"onUpdate:modelValue":d[9]||(d[9]=b=>n.value.headers=b),onAdd:d[10]||(d[10]=b=>u(e.unref(r).HEADERS)),onRemove:d[11]||(d[11]=b=>m(e.unref(r).HEADERS,b))},null,8,["modelValue"])):e.createCommentVNode("",!0),n.value.sources&&h.value.has(e.unref(r).SOURCES)?(e.openBlock(),e.createBlock(nt,{key:"sources-container",modelValue:n.value.sources,"onUpdate:modelValue":d[12]||(d[12]=b=>n.value.sources=b),onAdd:d[13]||(d[13]=b=>u(e.unref(r).SOURCES)),onRemove:d[14]||(d[14]=b=>m(e.unref(r).SOURCES,b))},null,8,["modelValue"])):e.createCommentVNode("",!0),n.value.destinations&&h.value.has(e.unref(r).DESTINATIONS)?(e.openBlock(),e.createBlock(Le,{key:"destinations-container",modelValue:n.value.destinations,"onUpdate:modelValue":d[15]||(d[15]=b=>n.value.destinations=b),onAdd:d[16]||(d[16]=b=>u(e.unref(r).DESTINATIONS)),onRemove:d[17]||(d[17]=b=>m(e.unref(r).DESTINATIONS,b))},null,8,["modelValue"])):e.createCommentVNode("",!0),n.value.snis&&t.configType==="advanced"&&h.value.has(e.unref(r).SNIS)?(e.openBlock(),e.createBlock(rt,{key:"snis-container",modelValue:n.value.snis,"onUpdate:modelValue":d[18]||(d[18]=b=>n.value.snis=b),onAdd:d[19]||(d[19]=b=>u(e.unref(r).SNIS)),onRemove:d[20]||(d[20]=b=>m(e.unref(r).SNIS,b))},null,8,["modelValue"])):e.createCommentVNode("",!0)]}),_:1}),t.hideAdvanced?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ct,[(E=n.value.paths)!=null&&E.some(Boolean)?(e.openBlock(),e.createBlock(w,{key:0,modelValue:n.value.path_handling,"onUpdate:modelValue":d[21]||(d[21]=S=>n.value.path_handling=S),"data-testid":"route-form-path-handling",items:e.unref(ke),label:e.unref(o)("form.fields.path_handling.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}},readonly:t.readonly,width:"100%"},{"label-tooltip":e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.path_handling.tooltip")},null,8,pt)]),_:1},8,["modelValue","items","label","readonly"])):e.createCommentVNode("",!0),e.createVNode(w,{modelValue:n.value.https_redirect_status_code,"onUpdate:modelValue":d[22]||(d[22]=S=>n.value.https_redirect_status_code=S),"data-testid":"route-form-http-redirect-status-code",items:e.unref(ge),label:e.unref(o)("form.fields.https_redirect_status_code.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}},readonly:t.readonly,width:"100%"},{"label-tooltip":e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.https_redirect_status_code.tooltip")},null,8,ut)]),_:1},8,["modelValue","items","label","readonly"]),e.createVNode(G,{modelValue:n.value.regex_priority,"onUpdate:modelValue":d[23]||(d[23]=S=>n.value.regex_priority=S),autocomplete:"off","data-testid":"route-form-regex-priority",label:e.unref(o)("form.fields.regex_priority.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}},readonly:t.readonly,type:"number"},{"label-tooltip":e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.regex_priority.tooltip")},null,8,ft)]),_:1},8,["modelValue","label","readonly"]),e.createVNode(g,{modelValue:n.value.preserve_host,"onUpdate:modelValue":d[24]||(d[24]=S=>n.value.preserve_host=S),"data-testid":"route-form-preserve-host",label:e.unref(o)("form.fields.preserve_host.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.preserve_host.tooltip")},null,8,mt)]),_:1},8,["modelValue","label"]),e.createVNode(g,{modelValue:n.value.request_buffering,"onUpdate:modelValue":d[25]||(d[25]=S=>n.value.request_buffering=S),"data-testid":"route-form-request-buffering",label:e.unref(o)("form.fields.request_buffering.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.request_buffering.tooltip")},null,8,ht)]),_:1},8,["modelValue","label"]),e.createVNode(g,{modelValue:n.value.response_buffering,"onUpdate:modelValue":d[26]||(d[26]=S=>n.value.response_buffering=S),"data-testid":"route-form-response-buffering",label:e.unref(o)("form.fields.response_buffering.label"),"label-attributes":{tooltipAttributes:{maxWidth:"320"}}},{tooltip:e.withCtx(()=>[e.createElementVNode("span",{innerHTML:e.unref(o)("form.fields.response_buffering.tooltip")},null,8,gt)]),_:1},8,["modelValue","label"])]))]}),_:1})}}}),[["__scopeId","data-v-f3fa9614"]]),yt=e.defineComponent({__name:"RouteFormExpressionsEditorLoader",props:e.mergeModels({protocol:{},showExpressionsModalEntry:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["notify"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o={render:()=>e.h("div",p("form.expressions_editor.loading"))},a={render:()=>e.h("div",p("form.expressions_editor.error"))},f=e.defineAsyncComponent({loader:async()=>Promise.resolve().then(()=>Pt),loadingComponent:o,errorComponent:a}),n=t,_=V,u=e.ref(Z.LOADING),m=e.useModel(t,"modelValue"),c=h=>{m.value=h};return e.onMounted(async()=>{try{await(await import("@kong-ui-public/expressions")).asyncInit,u.value=Z.READY}catch(h){u.value=Z.ERROR,console.error(h)}}),(h,I)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[u.value===e.unref(Z).ERROR?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a),{key:0,"data-testid":"route-form-expressions-editor-loader-error"})):u.value===e.unref(Z).LOADING?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o),{key:1,"data-testid":"route-form-expressions-editor-loader-loading"})):(e.openBlock(),e.createBlock(e.unref(f),{key:2,modelValue:m.value,"onUpdate:modelValue":I[0]||(I[0]=R=>m.value=R),protocol:n.protocol,"show-expressions-modal-entry":t.showExpressionsModalEntry,onNotify:I[1]||(I[1]=R=>_("notify",R))},{default:e.withCtx(()=>[e.createVNode(e.unref(j.RocketIcon),{size:e.unref(Pe)},null,8,["size"]),e.createElementVNode("span",null,e.toDisplayString(e.unref(p)("form.expression_playground.test_link")),1)]),_:1},8,["modelValue","protocol","show-expressions-modal-entry"])),e.renderSlot(h.$slots,"after-editor",{expression:{value:m.value,update:c},state:u.value})],64))}}),St={class:"route-form-routing-rules-title-container"},bt={class:"routing-rules-title"},Tt={class:"route-form-fields-container route-form-advanced-fields-container"},_t=U(e.defineComponent({__name:"ExpressionsRules",props:e.mergeModels({protocols:{},hideAdvanced:{type:Boolean},readonly:{type:Boolean},showExpressionsModalEntry:{type:Boolean}},{fields:{required:!0},fieldsModifiers:{}}),emits:e.mergeModels(["notify"],["update:fields"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=t,a=e.useModel(t,"fields"),f=V,n=e.ref(!0),_=e.computed(()=>o.protocols.split(",")||[]),u=m=>m.some(c=>o.protocols.includes(c));return(m,c)=>{const h=e.resolveComponent("KCard"),I=e.resolveComponent("KSelect"),R=e.resolveComponent("KInput"),s=e.resolveComponent("KCheckbox"),d=e.resolveComponent("KCollapse");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(h,null,{title:e.withCtx(()=>[e.createElementVNode("div",St,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,g=>(e.openBlock(),e.createElementBlock("span",{key:g,class:"protocol-title"},e.toDisplayString(g.toUpperCase()),1))),128)),e.createElementVNode("span",bt,e.toDisplayString(e.unref(p)("form.sections.routingExpression.title")),1)])]),default:e.withCtx(()=>[e.createVNode(yt,{modelValue:a.value.expression,"onUpdate:modelValue":c[0]||(c[0]=g=>a.value.expression=g),protocol:_.value[0],"show-expressions-modal-entry":t.showExpressionsModalEntry,onNotify:c[1]||(c[1]=g=>f("notify",g))},{"after-editor":e.withCtx(g=>[e.renderSlot(m.$slots,"after-expressions-editor",{expression:g.expression,state:g.state},void 0,!0)]),_:3},8,["modelValue","protocol","show-expressions-modal-entry"])]),_:3}),e.createVNode(d,{modelValue:n.value,"onUpdate:modelValue":c[8]||(c[8]=g=>n.value=g),class:"route-form-advanced-fields-collapse","trigger-alignment":"leading","trigger-label":e.unref(p)("form.show_more")},{default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[e.createElementVNode("div",Tt,[e.createVNode(I,{modelValue:a.value.https_redirect_status_code,"onUpdate:modelValue":c[2]||(c[2]=g=>a.value.https_redirect_status_code=g),"data-testid":"route-form-http-redirect-status-code",items:e.unref(ge),label:e.unref(p)("form.fields.https_redirect_status_code.label"),readonly:t.readonly,width:"100%"},null,8,["modelValue","items","label","readonly"]),e.createVNode(R,{modelValue:a.value.priority,"onUpdate:modelValue":c[3]||(c[3]=g=>a.value.priority=g),autocomplete:"off","data-testid":"route-form-priority",label:e.unref(p)("form.fields.priority.label"),"label-attributes":{info:e.unref(p)("form.fields.priority.tooltip"),tooltipAttributes:{maxWidth:"400"}},readonly:t.readonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"]),u(["http","https","ws","wss","tls","tcp","udp","tls_passthrough"])?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value.strip_path,"onUpdate:modelValue":c[4]||(c[4]=g=>a.value.strip_path=g),"data-testid":"route-form-strip-path",label:e.unref(p)("form.fields.strip_path.label")},null,8,["modelValue","label"])):e.createCommentVNode("",!0),e.createVNode(s,{modelValue:a.value.preserve_host,"onUpdate:modelValue":c[5]||(c[5]=g=>a.value.preserve_host=g),"data-testid":"route-form-preserve-host",label:e.unref(p)("form.fields.preserve_host.label")},null,8,["modelValue","label"]),e.createVNode(s,{modelValue:a.value.request_buffering,"onUpdate:modelValue":c[6]||(c[6]=g=>a.value.request_buffering=g),"data-testid":"route-form-request-buffering",label:e.unref(p)("form.fields.request_buffering.label")},null,8,["modelValue","label"]),e.createVNode(s,{modelValue:a.value.response_buffering,"onUpdate:modelValue":c[7]||(c[7]=g=>a.value.response_buffering=g),"data-testid":"route-form-response-buffering",label:e.unref(p)("form.fields.response_buffering.label")},null,8,["modelValue","label"])])]),_:1})]),_:1},8,["modelValue","trigger-label"])],64)}}}),[["__scopeId","data-v-e7571a47"]]),Et={class:"config-type-container"},Ct={key:0,class:"config-flavor"},Ie=U(e.defineComponent({__name:"RouteFormRulesComposer",props:e.mergeModels({protocols:{},routeFlavors:{},readonly:{type:Boolean},recordFlavor:{},showExpressionsModalEntry:{type:Boolean},tooltips:{},isWsSupported:{type:Boolean},hideProtocols:{type:Boolean}},{configType:{required:!0},configTypeModifiers:{},configFlavor:{required:!0},configFlavorModifiers:{},fields:{default:()=>e.reactive({...de,paths:[""],regex_priority:0,path_handling:"v0",expression:"",priority:0})},fieldsModifiers:{},customMethods:{default:()=>e.reactive([])},customMethodsModifiers:{}}),emits:e.mergeModels(["notify","update:payload","update:protocols"],["update:configType","update:configFlavor","update:fields","update:customMethods"]),setup(t,{emit:V}){const p=t,o=e.useModel(t,"configType"),a=e.useModel(t,"configFlavor"),f=e.useModel(t,"fields"),n=e.useModel(t,"customMethods"),_=V,{i18n:{t:u}}=H.useI18n(),m=[{value:D.TRADITIONAL,label:u("form.flavors.traditional")},{value:D.EXPRESSIONS,label:u("form.flavors.expressions")}],c=e.computed(()=>[{label:u("form.protocols.grpc"),value:"grpc"},{label:u("form.protocols.grpcs"),value:"grpcs"},{label:u("form.protocols.grpc,grpcs"),value:"grpc,grpcs"},{label:u("form.protocols.http"),value:"http"},{label:u("form.protocols.https"),value:"https"},{label:u("form.protocols.http,https"),value:"http,https"},{label:u("form.protocols.tcp"),value:"tcp"},{label:u("form.protocols.tls"),value:"tls"},{label:u("form.protocols.tls,udp"),value:"tls,udp"},{label:u("form.protocols.tcp,udp"),value:"tcp,udp"},{label:u("form.protocols.tcp,tls"),value:"tcp,tls"},{label:u("form.protocols.tcp,tls,udp"),value:"tcp,tls,udp"},{label:u("form.protocols.tls_passthrough"),value:"tls_passthrough"},{label:u("form.protocols.udp"),value:"udp"},...p.isWsSupported?[{label:u("form.protocols.ws"),value:"ws"},{label:u("form.protocols.wss"),value:"wss"},{label:u("form.protocols.ws,wss"),value:"ws,wss"}]:[]]),h=e.computed(()=>p.recordFlavor?p.recordFlavor:a.value),I=(E,S)=>{if(!new Set(ue[p.protocols]).has(E))return[];if([r.PATHS,r.HOSTS,r.METHODS,r.SNIS].includes(E))return[...S].filter(O=>!!O);if(E===r.SOURCES||E===r.DESTINATIONS)return[...S].filter(O=>!!O.ip||!!O.port).map(O=>({ip:O.ip||void 0,port:!O.port&&O.port!==0?void 0:O.port}));if(E===r.HEADERS)return[...S].filter(O=>!!O.header)},R=E=>E.some(S=>p.protocols.includes(S)),s=()=>{if(h.value!==D.TRADITIONAL)return null;const E=f.value,S=I(r.HEADERS,E.headers||[])||M[r.HEADERS];return S.length===0?null:S.reduce((b,O)=>(b[O.header]=O.values.split(","),b),{})},d=e.computed(()=>(f.value.methods||[]).filter(b=>Object.keys(v).includes(b)).concat(n.value.map(b=>b.label.toUpperCase()))),g=E=>E!=null&&E.length?E:null,w=e.computed(()=>({https_redirect_status_code:f.value.https_redirect_status_code,strip_path:R(["http","https","ws","wss"])?f.value.strip_path:!1,preserve_host:f.value.preserve_host,request_buffering:f.value.request_buffering,response_buffering:f.value.response_buffering})),G=e.computed(()=>{switch(h.value){case D.TRADITIONAL:{const E=f.value,S=g(I(r.PATHS,E.paths||[])),b=g(I(r.HOSTS,E.hosts||[])),O={...w.value,methods:g(I(r.METHODS,d.value)),hosts:o.value==="basic"&&b?b.slice(0,1):b,paths:o.value==="basic"&&S?S.slice(0,1):S,headers:o.value==="basic"?null:s(),regex_priority:Number(E.regex_priority),path_handling:E.path_handling,sources:g(I(r.SOURCES,E.sources||[])),destinations:g(I(r.DESTINATIONS,E.destinations||[])),snis:o.value==="basic"?null:g(I(r.SNIS,E.snis||[]))};return{type:h.value,payload:O}}case D.EXPRESSIONS:{const E=f.value;return{type:h.value,payload:{...w.value,expression:E.expression,priority:Number(E.priority)}}}default:return}}),$=E=>{E&&_("update:protocols",E)};return e.watch([()=>p.recordFlavor,()=>p.routeFlavors],([E,S])=>{if(E){a.value=E;return}a.value=!S.traditional&&S.expressions?D.EXPRESSIONS:D.TRADITIONAL},{immediate:!0,deep:!0}),e.watch(o,E=>{E==="basic"&&(a.value=D.TRADITIONAL,_("update:protocols","http,https"))}),e.watch(G,E=>{_("update:payload",E)},{deep:!0,immediate:!0}),(E,S)=>{const b=e.resolveComponent("KRadio"),O=e.resolveComponent("KLabel"),ce=e.resolveComponent("KTooltip"),z=e.resolveComponent("KSegmentedControl"),K=e.resolveComponent("KAlert"),se=e.resolveComponent("KSelect");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Et,[e.createVNode(b,{modelValue:o.value,"onUpdate:modelValue":S[0]||(S[0]=B=>o.value=B),card:"","card-orientation":"horizontal","data-testid":"route-form-config-type-basic",description:e.unref(u)("form.config_types.basic.description"),disabled:!t.routeFlavors.traditional||t.recordFlavor===e.unref(D).EXPRESSIONS,label:e.unref(u)("form.config_types.basic.label"),"selected-value":"basic"},null,8,["modelValue","description","disabled","label"]),e.createVNode(b,{modelValue:o.value,"onUpdate:modelValue":S[1]||(S[1]=B=>o.value=B),card:"","card-orientation":"horizontal","data-testid":"route-form-config-type-advanced",description:e.unref(u)("form.config_types.advanced.description"),label:e.unref(u)("form.config_types.advanced.label"),"selected-value":"advanced"},null,8,["modelValue","description","label"])]),o.value==="basic"?(e.openBlock(),e.createBlock(Ve,{key:0,"custom-methods":n.value,"onUpdate:customMethods":S[2]||(S[2]=B=>n.value=B),fields:f.value,"onUpdate:fields":S[3]||(S[3]=B=>f.value=B),"config-type":"basic","hide-advanced":"",protocols:t.protocols,readonly:t.readonly},null,8,["custom-methods","fields","protocols","readonly"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.routeFlavors.traditional&&t.routeFlavors.expressions?(e.openBlock(),e.createElementBlock("div",Ct,[e.createVNode(O,{class:"config-flavor-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(u)("form.config_flavor.label")),1)]),_:1}),e.createVNode(z,{modelValue:a.value,"onUpdate:modelValue":S[4]||(S[4]=B=>a.value=B),class:"config-flavor-control","data-testid":"route-form-config-flavor",options:m},{"option-label":e.withCtx(({option:B})=>{var ee,J;return[e.createElementVNode("span",null,e.toDisplayString(B.label),1),(ee=t.tooltips)!=null&&ee[B.value]?(e.openBlock(),e.createBlock(ce,{key:0,class:"route-form-config-tabs-tooltip",text:(J=t.tooltips)==null?void 0:J[B.value],"tooltip-id":`route-form-config-tabs-tooltip-${B.value}`},{default:e.withCtx(()=>[e.createVNode(e.unref(j.InfoIcon))]),_:1},8,["text","tooltip-id"])):e.createCommentVNode("",!0)]}),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),t.routeFlavors.traditional&&t.routeFlavors.expressions&&(!t.recordFlavor||t.recordFlavor!==a.value)?(e.openBlock(),e.createBlock(K,{key:1,appearance:t.recordFlavor?"warning":"info",class:"route-form-config-type-immutable-alert","data-testid":"route-config-type-immutable-alert"},{default:e.withCtx(()=>[t.recordFlavor?t.recordFlavor!==a.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(u)("form.warning.cannotChangeFlavor.edit",{format:e.unref(u)(`form.flavors.${t.recordFlavor}`)})),1)],64)):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(u)("form.warning.cannotChangeFlavor.create")),1)],64))]),_:1},8,["appearance"])):e.createCommentVNode("",!0),!t.recordFlavor||!(t.routeFlavors.traditional&&t.routeFlavors.expressions&&t.recordFlavor!==a.value)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.hideProtocols?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(se,{key:0,"data-testid":"route-form-protocols",items:c.value,label:e.unref(u)("form.fields.protocols.label"),"label-attributes":{info:e.unref(u)("form.fields.protocols.tooltip"),tooltipAttributes:{maxWidth:"400"}},"model-value":t.protocols,readonly:t.readonly,required:"",width:"100%","onUpdate:modelValue":$},null,8,["items","label","label-attributes","model-value","readonly"])),a.value===e.unref(D).TRADITIONAL?(e.openBlock(),e.createBlock(Ve,{key:1,"custom-methods":n.value,"onUpdate:customMethods":S[5]||(S[5]=B=>n.value=B),fields:f.value,"onUpdate:fields":S[6]||(S[6]=B=>f.value=B),"config-type":"advanced",protocols:t.protocols,readonly:t.readonly},null,8,["custom-methods","fields","protocols","readonly"])):(e.openBlock(),e.createBlock(_t,{key:2,fields:f.value,"onUpdate:fields":S[7]||(S[7]=B=>f.value=B),protocols:t.protocols,readonly:t.readonly,"show-expressions-modal-entry":t.showExpressionsModalEntry,onNotify:S[8]||(S[8]=B=>_("notify",B))},null,8,["fields","protocols","readonly","show-expressions-modal-entry"]))],64)):e.createCommentVNode("",!0)],64))],64)}}}),[["__scopeId","data-v-cbda4882"]]),xe=t=>{var p,o,a,f,n;return!(typeof t.expression=="string"&&t.expression.length>0||(t.protocols||[]).sort().join(",")!=="http,https"||((p=t[r.PATHS])==null?void 0:p.length)>1||((o=t[r.HOSTS])==null?void 0:o.length)>1||t[r.HEADERS]&&typeof t[r.HEADERS]=="object"||((a=t[r.SNIS])==null?void 0:a.length)>0||((f=t[r.SOURCES])==null?void 0:f.length)>0||((n=t[r.DESTINATIONS])==null?void 0:n.length)>0||["path_handling","regex_priority","https_redirect_status_code","preserve_host","request_buffering","response_buffering"].some(_=>t[_]!==Ne[_]))},kt={class:"kong-ui-entities-route-form"},Nt={key:1},Vt={"data-testid":"no-search-results"},It={class:"route-form-service-dropdown-item"},xt={class:"select-item-label"},Rt={class:"select-item-description"},wt=U(e.defineComponent({__name:"RouteForm",props:{config:{type:Object,required:!0,validator:t=>!(!t||!["konnect","kongManager"].includes(t==null?void 0:t.app)||(t==null?void 0:t.app)==="konnect"&&!(t!=null&&t.controlPlaneId)||(t==null?void 0:t.app)==="kongManager"&&typeof(t==null?void 0:t.workspace)!="string"||!(t!=null&&t.cancelRoute))},routeId:{type:String,required:!1,default:""},serviceId:{type:String,required:!1,default:""},hideSectionsInfo:{type:Boolean,required:!1,default:!1},hideNameField:{type:Boolean,required:!1,default:!1},hideServiceField:{type:Boolean,required:!1,default:!1},routeFlavors:{type:Object,required:!1,default:()=>({traditional:!0})},configTabTooltips:{type:Object,required:!1,default:()=>{}},showExpressionsModalEntry:{type:Boolean,required:!1,default:!1}},emits:["update","error","loading","model-updated","notify"],setup(t,{expose:V,emit:p}){var ae;const o=t,a=p,f=e.ref("basic"),n=e.ref(!o.routeFlavors.traditional&&o.routeFlavors.expressions?D.EXPRESSIONS:D.TRADITIONAL),_=e.ref(void 0),u=e.computed(()=>{if(_.value)return _.value;if(n.value)return n.value;if(o.routeFlavors.traditional)return D.TRADITIONAL;if(o.routeFlavors.expressions)return D.EXPRESSIONS}),{i18n:{t:m}}=H.useI18n(),c=Ee.useRouter(),{axiosInstance:h}=N.useAxios((ae=o.config)==null?void 0:ae.axiosRequestConfig),{getMessageFromError:I}=N.useErrors(),R=l=>l.name?`${l.name} - ${l.value}`:l.value,s=e.reactive({routeFlavors:o.routeFlavors,fields:{name:"",protocols:"http,https",tags:"",service_id:"",...de,paths:[""],snis:[""],hosts:[""],methods:[],headers:[{...M[r.HEADERS][0]}],sources:[{...M[r.SOURCES][0]}],destinations:[{...M[r.DESTINATIONS][0]}],regex_priority:0,path_handling:"v0",expression:"",priority:0},isReadonly:!1,errorMessage:""});e.watch(()=>o.routeFlavors,l=>{s.routeFlavors=l,l.traditional||(f.value="advanced")},{immediate:!0,deep:!0});const d=e.ref(),g=e.ref([]),w=e.ref([]),G=e.reactive({name:"",protocols:"http,https",tags:"",service_id:"",...de,path_handling:"v0",regex_priority:0,expression:"",priority:0}),$=o.config.app==="konnect"||N.useGatewayFeatureSupported({gatewayInfo:o.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),E=e.computed(()=>o.routeId?N.EntityBaseFormType.Edit:N.EntityBaseFormType.Create),S=e.computed(()=>{var l,i,y;return(y=(i=oe.form[(l=o.config)==null?void 0:l.app])==null?void 0:i.fetch)==null?void 0:y[o.serviceId?"forGatewayService":"all"].replace(/{serviceId}/gi,o.serviceId||"")}),b=()=>{var l;c.push((l=o.config)==null?void 0:l.cancelRoute)},O=l=>{a("loading",l)},ce=l=>{a("error",l)},z=l=>Object.entries(l).map(i=>{var y;return{header:i[0],values:(y=i[1])==null?void 0:y.join()}}),K=l=>l.some(i=>s.fields.protocols.includes(i)),se=l=>{var y,C;if(o.routeId){const T=typeof l.expression=="string"&&l.expression.length>0?D.EXPRESSIONS:D.TRADITIONAL;_.value=T,xe(l)||(f.value="advanced")}(y=l==null?void 0:l.service)!=null&&y.id&&(s.fields.service_id=l.service.id),s.fields.name=(l==null?void 0:l.name)||"";const i=(l==null?void 0:l.tags)||[];s.fields.tags=(i==null?void 0:i.join(", "))||"",s.fields.preserve_host=typeof(l==null?void 0:l.preserve_host)>"u"?!1:l==null?void 0:l.preserve_host,s.fields.https_redirect_status_code=(l==null?void 0:l.https_redirect_status_code)||426,(C=l==null?void 0:l.protocols)!=null&&C.length&&(l.protocols.length>1?s.fields.protocols=l.protocols.join():s.fields.protocols=l.protocols[0]),s.fields.request_buffering=typeof(l==null?void 0:l.request_buffering)>"u"?!0:l==null?void 0:l.request_buffering,s.fields.response_buffering=typeof(l==null?void 0:l.response_buffering)>"u"?!0:l==null?void 0:l.response_buffering,s.fields.strip_path=typeof(l==null?void 0:l.strip_path)>"u"?!0:l==null?void 0:l.strip_path,me(s)&&(s.fields.regex_priority=(l==null?void 0:l.regex_priority)||0,s.fields.path_handling=(l==null?void 0:l.path_handling)||"v0",l!=null&&l.paths&&(s.fields.paths=l.paths),l!=null&&l.snis&&(s.fields.snis=l.snis),l!=null&&l.hosts&&(s.fields.hosts=l.hosts),l!=null&&l.methods&&(s.fields.methods=l.methods.filter(T=>Object.keys(v).includes(T)),g.value=l.methods.filter(T=>!Object.keys(v).includes(T)).map(T=>({label:T,value:T})),w.value=[...g.value]),l!=null&&l.headers&&(s.fields.headers=z(l.headers)),l!=null&&l.sources&&(s.fields.sources=l.sources),l!=null&&l.destinations&&(s.fields.destinations=l.destinations)),he(s)&&(s.fields.expression=(l==null?void 0:l.expression)||"",s.fields.priority=(l==null?void 0:l.priority)||0),Object.assign(G,JSON.parse(JSON.stringify(s.fields)))},B=e.computed(()=>{switch(u.value){case D.TRADITIONAL:{if(me(s)){const l=s.fields.hosts?!!s.fields.hosts.filter(Boolean).length:null,i=s.fields.paths?!!s.fields.paths.filter(Boolean).length:null,y=s.fields.headers?s.fields.headers.some(({header:P})=>!!P):null,C=s.fields.snis?!!s.fields.snis.filter(Boolean).length:null,T=s.fields.destinations?s.fields.destinations.some(({ip:P,port:Y})=>!!P||!!Y):null,q=s.fields.sources?s.fields.sources.some(({ip:P,port:Y})=>!!P||!!Y):null,X=s.fields.methods?!!s.fields.methods.filter(Boolean).length:null;return!!s.fields.protocols&&(K(["http"])&&!!(l||X||i||y)||K(["https"])&&!!(l||X||i||y||C)||K(["grpc"])&&!!(l||i||y)||K(["grpcs","wss"])&&!!(l||i||y||C)||K(["udp","tls"])&&!!(T||q||C)||K(["tcp"])&&!!(T||q)||K(["tls_passthrough"])&&!!C||K(["ws"])&&!!(l||i||y))}break}case D.EXPRESSIONS:{if(he(s))return s.fields.expression.length>0;break}}return!0}),ee=e.computed(()=>!_e(s.fields,G)||!_e(g.value,w.value)),J=e.computed(()=>{var i,y;let l=`${o.config.apiBaseUrl}${oe.form[o.config.app][E.value][o.serviceId?"forGatewayService":"all"]}`;return o.config.app==="konnect"?l=l.replace(/{controlPlaneId}/gi,((i=o.config)==null?void 0:i.controlPlaneId)||"").replace(/{serviceId}/gi,o.serviceId||""):o.config.app==="kongManager"&&(l=l.replace(/\/{workspace}/gi,(y=o.config)!=null&&y.workspace?`/${o.config.workspace}`:"").replace(/{serviceId}/gi,o.serviceId||"")),l=l.replace(/{id}/gi,o.routeId),l});e.watch(()=>s.fields,()=>{a("model-updated",te.value)},{deep:!0});const te=e.computed(()=>{var l,i,y;return{...!o.hideNameField&&{name:s.fields.name||null},protocols:s.fields.protocols.split(","),tags:(i=(l=s.fields.tags.split(","))==null?void 0:l.map(C=>String(C||"").trim()))==null?void 0:i.filter(C=>C!==""),service:s.fields.service_id?{id:s.fields.service_id}:null,...(y=d.value)==null?void 0:y.payload}}),W=l=>{switch(u.value){case D.TRADITIONAL:{if(!("regex_priority"in l&&"path_handling"in l))return!1;break}case D.EXPRESSIONS:{if(!("priority"in l))return!1;break}}return"service"in l&&"tags"in l&&"protocols"in l},Q=async l=>{var y;const i=l&&W(l)?l:te.value;try{s.isReadonly=!0;let C;E.value==="create"?C=await h.post(J.value,i):E.value==="edit"&&(C=((y=o.config)==null?void 0:y.app)==="konnect"?await h.put(J.value,i):await h.patch(J.value,i)),se(C==null?void 0:C.data),a("update",C==null?void 0:C.data)}catch(C){s.errorMessage=I(C),a("error",C)}finally{s.isReadonly=!1}},{debouncedQueryChange:ne,loading:fe,error:ye,loadItems:Se,results:be}=N.useDebouncedFilter(o.config,oe.form[o.config.app].services,void 0,{fetchedItemsKey:"data",searchKeys:["id","name"]}),Te=e.computed(()=>ye.value?m("errors.services.fetch"):""),pe=e.computed(()=>{var l;return(l=be.value)==null?void 0:l.map(i=>({label:i.id,name:i.name,value:i.id}))});return e.onBeforeMount(async()=>{!o.hideServiceField&&!o.serviceId?await Se():s.fields.service_id=o.serviceId}),e.onMounted(()=>{a("model-updated",te.value)}),V({saveFormData:Q,payload:te}),e.provide("configType",f),(l,i)=>{const y=e.resolveComponent("KInput"),C=e.resolveComponent("KSelect");return e.openBlock(),e.createElementBlock("div",kt,[e.createVNode(e.unref(N.EntityBaseForm),{"can-submit":B.value&&ee.value,config:t.config,"edit-id":t.routeId,"entity-type":e.unref(N.SupportedEntityType).Route,"error-message":s.errorMessage||Te.value,"fetch-url":S.value,"form-fields":te.value,"is-readonly":s.isReadonly,onCancel:b,"onFetch:error":ce,"onFetch:success":se,onLoading:O,onSubmit:Q},{"form-actions":e.withCtx(()=>[e.renderSlot(l.$slots,"form-actions",{canSubmit:B.value&&ee.value,cancel:b,submit:Q},void 0,!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(N.EntityFormSection),{description:e.unref(m)("form.sections.general.description"),"hide-info-header":t.hideSectionsInfo,title:e.unref(m)("form.sections.general.title")},{default:e.withCtx(()=>[t.hideNameField?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(y,{key:0,modelValue:s.fields.name,"onUpdate:modelValue":i[0]||(i[0]=T=>s.fields.name=T),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"route-form-name",label:e.unref(m)("form.fields.name.label"),placeholder:e.unref(m)("form.fields.name.placeholder"),readonly:s.isReadonly,type:"text"},null,8,["modelValue","label","placeholder","readonly"])),!t.hideServiceField&&!t.serviceId?(e.openBlock(),e.createElementBlock("div",Nt,[e.createVNode(C,{modelValue:s.fields.service_id,"onUpdate:modelValue":i[1]||(i[1]=T=>s.fields.service_id=T),clearable:"","data-testid":"route-form-service-id","enable-filtering":"","filter-function":()=>!0,items:pe.value,label:e.unref(m)("form.fields.service_id.label"),loading:e.unref(fe),placeholder:e.unref(m)("form.fields.service_id.placeholder"),readonly:s.isReadonly,"reuse-item-template":"",width:"100%",onQueryChange:e.unref(ne)},{loading:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(e.unref(m)("actions.loading")),1)]),empty:e.withCtx(()=>[e.createElementVNode("div",Vt,e.toDisplayString(e.unref(m)("search.no_results")),1)]),"selected-item-template":e.withCtx(({item:T})=>[e.createTextVNode(e.toDisplayString(R(T)),1)]),"item-template":e.withCtx(({item:T})=>[e.createElementVNode("div",It,[e.createElementVNode("span",xt,e.toDisplayString(T.name),1),e.createElementVNode("span",Rt,e.toDisplayString(T.value),1)])]),_:1},8,["modelValue","items","label","loading","placeholder","readonly","onQueryChange"])])):e.createCommentVNode("",!0),e.createVNode(y,{modelValue:s.fields.tags,"onUpdate:modelValue":i[2]||(i[2]=T=>s.fields.tags=T),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"route-form-tags",help:e.unref(m)("form.fields.tags.help"),label:e.unref(m)("form.fields.tags.label"),placeholder:e.unref(m)("form.fields.tags.placeholder"),readonly:s.isReadonly,type:"text"},null,8,["modelValue","help","label","placeholder","readonly"])]),_:1},8,["description","hide-info-header","title"]),e.createVNode(e.unref(N.EntityFormSection),{description:e.unref(m)("form.sections.config.description"),"hide-info-header":t.hideSectionsInfo,title:e.unref(m)("form.sections.config.title")},{default:e.withCtx(()=>[e.createVNode(Ie,{"config-flavor":n.value,"onUpdate:configFlavor":i[3]||(i[3]=T=>n.value=T),"config-type":f.value,"onUpdate:configType":i[4]||(i[4]=T=>f.value=T),"custom-methods":g.value,"onUpdate:customMethods":i[5]||(i[5]=T=>g.value=T),fields:s.fields,"onUpdate:fields":i[6]||(i[6]=T=>s.fields=T),"is-ws-supported":e.unref($),protocols:s.fields.protocols,readonly:s.isReadonly,"record-flavor":_.value,"route-flavors":t.routeFlavors,"show-expressions-modal-entry":t.showExpressionsModalEntry,tooltips:t.configTabTooltips,onNotify:i[7]||(i[7]=T=>a("notify",T)),"onUpdate:payload":i[8]||(i[8]=T=>d.value=T),"onUpdate:protocols":i[9]||(i[9]=T=>s.fields.protocols=T)},null,8,["config-flavor","config-type","custom-methods","fields","is-ws-supported","protocols","readonly","record-flavor","route-flavors","show-expressions-modal-entry","tooltips"])]),_:1},8,["description","hide-info-header","title"])]),_:3},8,["can-submit","config","edit-id","entity-type","error-message","fetch-url","form-fields","is-readonly"])])}}}),[["__scopeId","data-v-5be17e8c"]]),Bt={class:"kong-ui-entities-routes-list"},At={class:"button-row"},Dt={key:1},Ot={key:1},Mt={key:1},Ht={class:"route-list-cell-expression"},$t=U(e.defineComponent({__name:"RouteList",props:{config:{type:Object,required:!0,validator:t=>!(!t||!["konnect","kongManager"].includes(t==null?void 0:t.app)||!t.createRoute||!t.getViewRoute||!t.getEditRoute||t.app==="kongManager"&&!t.isExactMatch&&!t.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},canRetrieve:{type:Function,required:!1,default:async()=>!0},canDebug:{type:Function,required:!1,default:async()=>!1},title:{type:String,default:""},titleTag:{type:String,default:"h2"},useActionOutside:{type:Boolean,default:!1},hideTraditionalColumns:{type:Boolean,default:!1},hasExpressionColumn:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success"],setup(t,{emit:V}){var l;const p=V,o=t,{i18n:{t:a,formatUnixTimeStamp:f}}=H.useI18n(),n=Ee.useRouter(),{axiosInstance:_}=N.useAxios((l=o.config)==null?void 0:l.axiosRequestConfig),{handleStateChange:u,hasRecords:m}=N.useTableState(()=>w.value),c=e.computed(()=>m.value&&o.config.app==="konnect"),h=e.computed(()=>!!o.config.serviceId),I=e.computed(()=>o.config.app!=="kongManager"||!!o.config.disableSorting),R={name:{label:a("routes.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1},protocols:{label:a("routes.list.table_headers.protocols"),searchable:!0},...!o.hideTraditionalColumns&&{hosts:{label:a("routes.list.table_headers.hosts"),searchable:!0},methods:{label:a("routes.list.table_headers.methods"),searchable:!0},paths:{label:a("routes.list.table_headers.paths"),searchable:!0}},...o.hasExpressionColumn&&{expression:{label:a("routes.list.table_headers.expression"),tooltip:!0}},tags:{label:a("routes.list.table_headers.tags"),sortable:!1},updated_at:{label:a("routes.list.table_headers.updated_at"),sortable:!0},created_at:{label:a("routes.list.table_headers.created_at"),sortable:!0}},s={columnVisibility:{created_at:!1}},d=R,g=e.computed(()=>{var y,C,T,q;let i=`${o.config.apiBaseUrl}${oe.list[o.config.app][o.config.serviceId?"forGatewayService":"all"]}`;return o.config.app==="konnect"?i=i.replace(/{controlPlaneId}/gi,((y=o.config)==null?void 0:y.controlPlaneId)||"").replace(/{serviceId}/gi,((C=o.config)==null?void 0:C.serviceId)||""):o.config.app==="kongManager"&&(i=i.replace(/\/{workspace}/gi,(T=o.config)!=null&&T.workspace?`/${o.config.workspace}`:"").replace(/{serviceId}/gi,((q=o.config)==null?void 0:q.serviceId)||"")),i}),w=e.ref(""),G=e.computed(()=>{const i=o.config.app==="konnect"||o.config.isExactMatch;if(i)return{isExactMatch:i,placeholder:a(`search.placeholder.${o.config.isExactMatch?"exact":o.config.app}`)};const{name:y,protocols:C,hosts:T,methods:q,paths:X,expression:P}=R,Y={name:y,protocols:C,hosts:T,methods:q,paths:X,...o.hasExpressionColumn&&{expression:P}};return{isExactMatch:i,fields:Y,schema:o.config.filterSchema}}),{fetcher:$,fetcherState:E,fetcherCacheKey:S}=N.useFetcher(e.computed(()=>({...o.config,cacheIdentifier:o.cacheIdentifier})),g),b=i=>i.headerKey==="expression"?{style:{maxWidth:"250px",overflowX:"hidden",textOverflow:"ellipsis"}}:{},O=()=>{w.value=""},ce=()=>{S.value++},z=e.ref(null),K=async(i,y)=>{if(!await y(i.id)){p("copy:error",{entity:i,field:"id",message:a("errors.copy")});return}p("copy:success",{entity:i,field:"id",message:a("copy.success",{val:i.id})})},se=async(i,y)=>{const C=JSON.stringify(i);if(!await y(C)){p("copy:error",{entity:i,message:a("errors.copy")});return}p("copy:success",{entity:i,message:a("copy.success_brief")})},B=async i=>{var C;await((C=o.canRetrieve)==null?void 0:C.call(o,i))&&n.push(o.config.getViewRoute(i.id))},ee=i=>({label:a("actions.view"),to:o.config.getViewRoute(i)}),J=i=>({label:a("actions.edit"),to:o.config.getEditRoute(i)}),te=i=>{if(o.config.getDebugRoute)return{label:a("actions.debugger"),to:o.config.getDebugRoute(i)}},W=e.ref(void 0),Q=e.ref(!1),ne=e.ref(!1),fe=e.ref(""),ye=N.useDeleteUrlBuilder(o.config,g.value),Se=i=>{W.value=i,Q.value=!0},be=()=>{Q.value=!1},Te=async()=>{var i,y,C;if((i=W.value)!=null&&i.id){ne.value=!0;try{await _.delete(ye(W.value.id)),ne.value=!1,Q.value=!1,S.value++,p("delete:success",W.value)}catch(T){fe.value=((C=(y=T.response)==null?void 0:y.data)==null?void 0:C.message)||T.message||a("errors.delete"),p("error",T)}finally{ne.value=!1}}};e.watch(E,i=>{var y,C,T;if(i.status===N.FetcherStatus.Error){z.value={title:a("errors.general")},(T=(C=(y=i.error)==null?void 0:y.response)==null?void 0:C.data)!=null&&T.message&&(z.value.message=i.error.response.data.message),p("error",i.error);return}z.value=null});const pe=e.ref({ctaPath:o.config.createRoute,ctaText:void 0,message:`${a("routes.list.empty_state.description")}${o.config.additionMessageForEmptyState?` ${o.config.additionMessageForEmptyState}`:""}`,title:a("routes.title")}),ae=e.ref(!1);return e.onBeforeMount(async()=>{ae.value=await o.canCreate(),ae.value&&(pe.value.title=a("routes.list.empty_state.title"),pe.value.ctaText=a("actions.create"))}),(i,y)=>{const C=e.resolveComponent("KButton"),T=e.resolveComponent("KEmptyState"),q=e.resolveComponent("KBadge"),X=e.resolveComponent("KTruncate"),P=e.resolveComponent("KDropdownItem"),Y=e.resolveComponent("KClipboardProvider");return e.openBlock(),e.createElementBlock("div",Bt,[e.createVNode(e.unref(N.EntityBaseTable),{"cache-identifier":t.cacheIdentifier,"cell-attributes":b,"default-table-preferences":s,"disable-sorting":I.value,"empty-state-options":pe.value,"enable-entity-actions":"","error-message":z.value,fetcher:e.unref($),"fetcher-cache-key":e.unref(S),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-routes-list",query:w.value,"table-headers":e.unref(d),title:t.title,"title-tag":t.titleTag,onClearSearchInput:O,"onClick:row":y[7]||(y[7]=k=>B(k)),onSort:ce,onState:e.unref(u)},e.createSlots({"toolbar-filter":e.withCtx(()=>[e.createVNode(e.unref(N.EntityFilter),{modelValue:w.value,"onUpdate:modelValue":y[0]||(y[0]=k=>w.value=k),config:G.value},null,8,["modelValue","config"])]),"toolbar-button":e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!t.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createElementVNode("div",At,[!h.value&&c.value?(e.openBlock(),e.createBlock(C,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"routes-learn-more-button",icon:"",onClick:y[1]||(y[1]=k=>i.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(j.BookIcon),{decorative:""})]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(N.PermissionsWrapper),{"auth-function":()=>t.canCreate()},{default:e.withCtx(()=>[e.createVNode(C,{appearance:"primary","data-testid":"toolbar-add-route",size:t.useActionOutside?"medium":"large",to:t.config.createRoute},{default:e.withCtx(()=>[e.createVNode(e.unref(j.AddIcon)),e.createTextVNode(" "+e.toDisplayString(e.unref(a)("routes.list.toolbar_actions.new_route")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:e.withCtx(({rowValue:k})=>[e.createElementVNode("b",null,e.toDisplayString(k??"-"),1)]),protocols:e.withCtx(({rowValue:k})=>[e.createVNode(X,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k,A=>(e.openBlock(),e.createBlock(q,{key:A,appearance:"neutral",onClick:y[3]||(y[3]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A),1)]),_:2},1024))),128))]),_:2},1024)]),hosts:e.withCtx(({rowValue:k})=>[(k==null?void 0:k.length)>0?(e.openBlock(),e.createBlock(X,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k,A=>(e.openBlock(),e.createBlock(q,{key:A,appearance:"neutral",tooltip:A,"truncation-tooltip":"",onClick:y[4]||(y[4]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A),1)]),_:2},1032,["tooltip"]))),128))]),_:2},1024)):(e.openBlock(),e.createElementBlock("span",Dt,"-"))]),methods:e.withCtx(({rowValue:k})=>[(k==null?void 0:k.length)>0?(e.openBlock(),e.createBlock(X,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k,A=>(e.openBlock(),e.createBlock(q,{key:A,appearance:Object.values(e.unref(Re.BadgeMethodAppearances)).includes(A.toLowerCase())?A.toLowerCase():"custom",onClick:y[5]||(y[5]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A),1)]),_:2},1032,["appearance"]))),128))]),_:2},1024)):(e.openBlock(),e.createElementBlock("span",Ot,"-"))]),paths:e.withCtx(({rowValue:k})=>[(k==null?void 0:k.length)>0?(e.openBlock(),e.createBlock(X,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k,A=>(e.openBlock(),e.createBlock(q,{key:A,appearance:"neutral",tooltip:A,"truncation-tooltip":"",onClick:y[6]||(y[6]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A),1)]),_:2},1032,["tooltip"]))),128))]),_:2},1024)):(e.openBlock(),e.createElementBlock("span",Mt,"-"))]),tags:e.withCtx(({rowValue:k})=>[e.createVNode(e.unref(N.TableTags),{tags:k},null,8,["tags"])]),expression:e.withCtx(({rowValue:k})=>[e.createElementVNode("span",Ht,e.toDisplayString(k||"-"),1)]),created_at:e.withCtx(({rowValue:k})=>[e.createTextVNode(e.toDisplayString(e.unref(f)(k)),1)]),updated_at:e.withCtx(({row:k,rowValue:A})=>[e.createTextVNode(e.toDisplayString(e.unref(f)(A??k.created_at)),1)]),actions:e.withCtx(({row:k})=>[e.createVNode(Y,null,{default:e.withCtx(({copyToClipboard:A})=>[e.createVNode(P,{"data-testid":"action-entity-copy-id",onClick:Ut=>K(k,A)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),e.createVNode(Y,null,{default:e.withCtx(({copyToClipboard:A})=>[e.createVNode(P,{"data-testid":"action-entity-copy-json",onClick:Ut=>se(k,A)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),e.createVNode(e.unref(N.PermissionsWrapper),{"auth-function":()=>t.canRetrieve(k)},{default:e.withCtx(()=>[e.createVNode(P,{"data-testid":"action-entity-view","has-divider":"",item:ee(k.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(N.PermissionsWrapper),{"auth-function":()=>t.canDebug(k)},{default:e.withCtx(()=>[t.config.getDebugRoute?(e.openBlock(),e.createBlock(P,{key:0,"data-testid":"action-entity-debug",item:te(k.id)},null,8,["item"])):e.createCommentVNode("",!0)]),_:2},1032,["auth-function"]),e.createVNode(e.unref(N.PermissionsWrapper),{"auth-function":()=>t.canEdit(k)},{default:e.withCtx(()=>[e.createVNode(P,{"data-testid":"action-entity-edit",item:J(k.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(N.PermissionsWrapper),{"auth-function":()=>t.canDelete(k)},{default:e.withCtx(()=>[e.createVNode(P,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:A=>Se(k)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!w.value&&t.config.app==="konnect"?{name:"empty-state",fn:e.withCtx(()=>{var k;return[e.createVNode(T,{"data-testid":t.config.serviceId?"nested-routes-entity-empty-state":"routes-entity-empty-state","icon-background":"",message:e.unref(a)("routes.list.empty_state_v2.description"),title:e.unref(a)("routes.list.empty_state_v2.title")},e.createSlots({icon:e.withCtx(()=>[e.createVNode(e.unref(j.ForwardIcon),{decorative:""})]),action:e.withCtx(()=>[ae.value?(e.openBlock(),e.createBlock(C,{key:0,"data-testid":"entity-create-button",to:t.config.createRoute},{default:e.withCtx(()=>[e.createVNode(e.unref(j.AddIcon),{decorative:""}),e.createTextVNode(" "+e.toDisplayString(e.unref(a)("routes.list.toolbar_actions.new_route")),1)]),_:1},8,["to"])):e.createCommentVNode("",!0),e.createVNode(C,{appearance:"secondary","data-testid":"entity-learn-more-button",onClick:y[2]||(y[2]=A=>i.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(j.BookIcon),{decorative:""}),e.createTextVNode(" "+e.toDisplayString(e.unref(a)("routes.list.empty_state_v2.learn_more")),1)]),_:1})]),_:2},[(k=t.config)!=null&&k.isControlPlaneGroup?{name:"default",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("routes.list.empty_state_v2.group")),1)]),key:"0"}:void 0]),1032,["data-testid","message","title"])]}),key:"0"}:void 0]),1032,["cache-identifier","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","title","title-tag","onState"]),e.createVNode(e.unref(N.EntityDeleteModal),{"action-pending":ne.value,description:e.unref(a)("delete.description"),"entity-name":W.value&&(W.value.name||W.value.id),"entity-type":e.unref(N.EntityTypes).Route,error:fe.value,title:e.unref(a)("delete.title"),visible:Q.value,onCancel:be,onProceed:Te},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-a438ef1a"]]),Pt=Object.freeze(Object.defineProperty({__proto__:null,default:e.defineComponent({__name:"RouteFormExpressionsEditor",props:e.mergeModels({protocol:{},showExpressionsModalEntry:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["notify"],["update:modelValue"]),setup(t,{emit:V}){const{i18n:{t:p}}=H.useI18n(),o=t,a=e.useModel(t,"modelValue"),f=V,n=e.ref(!1),_=e.computed(()=>ie.PROTOCOL_TO_SCHEMA[o.protocol]),u=e.computed(()=>ie.HTTP_BASED_PROTOCOLS.includes(o.protocol??"")),m=e.computed(()=>{if(!(!o.showExpressionsModalEntry||u.value))return p("form.expression_playground.supported_protocols_hint",{protocols:ie.HTTP_BASED_PROTOCOLS.join(", ")})}),c=R=>{a.value=R,n.value=!1},h=R=>{f("notify",R)},I=()=>{u.value&&(n.value=!0)};return(R,s)=>{const d=e.resolveComponent("KTooltip");return e.openBlock(),e.createElementBlock(e.Fragment,null,[_.value!==void 0?(e.openBlock(),e.createBlock(e.unref(ie.ExpressionsEditor),{key:0,modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=g=>a.value=g),schema:_.value},null,8,["modelValue","schema"])):e.createCommentVNode("",!0),e.createVNode(d,{placement:"bottom-start",text:m.value},{default:e.withCtx(()=>[t.showExpressionsModalEntry?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass({disabled:!u.value,"route-form-open-in-playground":!0}),"data-testid":"open-router-playground",onClick:I},[e.renderSlot(R.$slots,"default")],2)):e.createCommentVNode("",!0)]),_:3},8,["text"]),t.showExpressionsModalEntry&&u.value?(e.openBlock(),e.createBlock(e.unref(ie.RouterPlaygroundModal),{key:1,"initial-expression":a.value,"is-visible":n.value,onCancel:s[1]||(s[1]=g=>n.value=!1),onCommit:c,onNotify:h},null,8,["initial-expression","is-visible"])):e.createCommentVNode("",!0)],64)}}})},Symbol.toStringTag,{value:"Module"}));x.ExpressionsEditorState=Z,x.HTTP_REDIRECT_STATUS_CODES=ge,x.INITIAL_ROUTE_RULES_FIELDS=Ne,x.INITIAL_SHARED_ROUTE_RULES_FIELDS=de,x.INITIAL_TRADITIONAL_ROUTE_RULES_VALUES=M,x.Methods=v,x.PATH_HANDLING_OPTIONS=ke,x.PROTOCOLS_TO_ROUTE_RULES=ue,x.RouteConfigCard=Oe,x.RouteFlavor=D,x.RouteForm=wt,x.RouteFormRulesComposer=Ie,x.RouteList=$t,x.RoutingRulesEntities=r,x.isDefinedByBasic=xe,x.stateHasExpressionsFlavor=he,x.stateHasTraditionalFlavor=me,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
|