@kong-ui-public/entities-gateway-services 3.9.4 → 3.9.5-pr.1964.1be07a93c.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as Te, computed as _, ref as E, watch as Ie, onBeforeMount as Be, resolveComponent as F, openBlock as S, createElementBlock as U, createVNode as d, unref as l, createSlots as Le, withCtx as f, createBlock as ue, Teleport as Ee, createElementVNode as k, createCommentVNode as L, createTextVNode as M, toDisplayString as b, withModifiers as Se, reactive as Pe, onMounted as De, renderSlot as
|
|
1
|
+
import { defineComponent as Te, computed as _, ref as E, watch as Ie, onBeforeMount as Be, resolveComponent as F, openBlock as S, createElementBlock as U, createVNode as d, unref as l, createSlots as Le, withCtx as f, createBlock as ue, Teleport as Ee, createElementVNode as k, createCommentVNode as L, createTextVNode as M, toDisplayString as b, withModifiers as Se, reactive as Pe, onMounted as De, renderSlot as Ke } from "vue";
|
|
2
2
|
import { useRouter as $e } from "vue-router";
|
|
3
|
-
import { BookIcon as Ue, AddIcon as
|
|
3
|
+
import { BookIcon as Ue, AddIcon as Ge, ServicesIcon as qe } from "@kong/icons";
|
|
4
4
|
import { createI18n as Oe, i18nTComponent as Ne } from "@kong-ui-public/i18n";
|
|
5
5
|
import { useAxios as xe, useTableState as We, useFetcher as je, useDeleteUrlBuilder as He, FetcherStatus as ze, EntityBaseTable as Je, EntityFilter as Qe, PermissionsWrapper as ie, TableTags as Xe, EntityEmptyState as Ze, EntityToggleModal as Ye, EntityDeleteModal as et, EntityTypes as tt, useErrors as lt, useValidators as ot, EntityBaseFormType as Re, useGatewayFeatureSupported as it, EntityBaseForm as st, SupportedEntityType as Ae, EntityFormSection as Me, useHelpers as rt, ConfigurationSchemaSection as fe, ConfigurationSchemaType as at, EntityBaseConfigCard as nt } from "@kong-ui-public/entities-shared";
|
|
6
6
|
const ct = {
|
|
7
|
-
create: "New
|
|
7
|
+
create: "New gateway service",
|
|
8
8
|
serverless_create: "Add a Service",
|
|
9
9
|
copy_id: "Copy ID",
|
|
10
10
|
copy_json: "Copy JSON",
|
|
@@ -25,7 +25,7 @@ const ct = {
|
|
|
25
25
|
title: "Gateway Services",
|
|
26
26
|
list: {
|
|
27
27
|
toolbar_actions: {
|
|
28
|
-
new_gateway_service: "New
|
|
28
|
+
new_gateway_service: "New gateway service"
|
|
29
29
|
},
|
|
30
30
|
table_headers: {
|
|
31
31
|
name: "Name",
|
|
@@ -301,7 +301,7 @@ const ve = {
|
|
|
301
301
|
emits: ["error", "click:learn-more", "copy:success", "copy:error", "delete:success", "toggle:success"],
|
|
302
302
|
setup(n, { emit: D }) {
|
|
303
303
|
var o;
|
|
304
|
-
const p = D, c = n, { i18n: { t: r, formatUnixTimeStamp: $ } } = ve.useI18n(), N = $e(), { axiosInstance: q } = xe((o = c.config) == null ? void 0 : o.axiosRequestConfig), { hasRecords: a, handleStateChange: P } = We(() =>
|
|
304
|
+
const p = D, c = n, { i18n: { t: r, formatUnixTimeStamp: $ } } = ve.useI18n(), N = $e(), { axiosInstance: q } = xe((o = c.config) == null ? void 0 : o.axiosRequestConfig), { hasRecords: a, handleStateChange: P } = We(() => K.value), C = _(() => a.value && c.config.app === "konnect"), ge = _(() => !c.enableV2EmptyStates && c.config.app === "konnect"), ye = _(() => c.config.app !== "kongManager" || !!c.config.disableSorting), O = {
|
|
305
305
|
// the Name column is non-hidable
|
|
306
306
|
name: { label: r("gateway_services.list.table_headers.name"), searchable: !0, sortable: !0, hidable: !1 },
|
|
307
307
|
...c.config.showControlPlaneColumn ? { control_plane: { label: r("gateway_services.list.table_headers.control_plane") } } : {},
|
|
@@ -321,7 +321,7 @@ const ve = {
|
|
|
321
321
|
var s, g;
|
|
322
322
|
let u = `${c.config.apiBaseUrl}${se.list[c.config.app].all}`;
|
|
323
323
|
return c.config.app === "konnect" ? u = u.replace(/{controlPlaneId}/gi, ((s = c.config) == null ? void 0 : s.controlPlaneId) || "") : c.config.app === "kongManager" && (u = u.replace(/\/{workspace}/gi, (g = c.config) != null && g.workspace ? `/${c.config.workspace}` : "")), u;
|
|
324
|
-
}), Y = _(() => c.config.apiBaseUrl.startsWith("/") ? new URL(`${window.location.origin}${y.value}`) : new URL(y.value)),
|
|
324
|
+
}), Y = _(() => c.config.apiBaseUrl.startsWith("/") ? new URL(`${window.location.origin}${y.value}`) : new URL(y.value)), K = E(""), be = _(() => {
|
|
325
325
|
const u = c.config.app === "konnect" || c.config.isExactMatch;
|
|
326
326
|
if (u)
|
|
327
327
|
return {
|
|
@@ -339,7 +339,7 @@ const ve = {
|
|
|
339
339
|
fetcherState: w,
|
|
340
340
|
fetcherCacheKey: ee
|
|
341
341
|
} = je({ ...c.config, cacheIdentifier: c.cacheIdentifier }, y.value), he = () => {
|
|
342
|
-
|
|
342
|
+
K.value = "";
|
|
343
343
|
}, re = () => {
|
|
344
344
|
ee.value++;
|
|
345
345
|
}, z = E(null), W = _(() => ({
|
|
@@ -412,10 +412,10 @@ const ve = {
|
|
|
412
412
|
}), le = (u) => ({
|
|
413
413
|
label: r("actions.edit"),
|
|
414
414
|
to: c.config.getEditRoute(u)
|
|
415
|
-
}), B = E(void 0),
|
|
416
|
-
B.value = u,
|
|
415
|
+
}), B = E(void 0), G = E(!1), j = E(!1), X = E(""), t = He(c.config, y.value), i = (u) => {
|
|
416
|
+
B.value = u, G.value = !0, X.value = "";
|
|
417
417
|
}, v = () => {
|
|
418
|
-
|
|
418
|
+
G.value = !1, B.value = void 0;
|
|
419
419
|
}, R = async () => {
|
|
420
420
|
var u, s, g;
|
|
421
421
|
if ((u = B.value) != null && u.id) {
|
|
@@ -458,7 +458,7 @@ const ve = {
|
|
|
458
458
|
"fetcher-cache-key": l(ee),
|
|
459
459
|
"pagination-type": "offset",
|
|
460
460
|
"preferences-storage-key": "kong-ui-entities-gateway-services-list",
|
|
461
|
-
query:
|
|
461
|
+
query: K.value,
|
|
462
462
|
"table-headers": l(H),
|
|
463
463
|
onClearSearchInput: he,
|
|
464
464
|
"onClick:row": s[5] || (s[5] = (m) => ce(m)),
|
|
@@ -467,8 +467,8 @@ const ve = {
|
|
|
467
467
|
}, Le({
|
|
468
468
|
"toolbar-filter": f(() => [
|
|
469
469
|
d(l(Qe), {
|
|
470
|
-
modelValue:
|
|
471
|
-
"onUpdate:modelValue": s[0] || (s[0] = (m) =>
|
|
470
|
+
modelValue: K.value,
|
|
471
|
+
"onUpdate:modelValue": s[0] || (s[0] = (m) => K.value = m),
|
|
472
472
|
config: be.value
|
|
473
473
|
}, null, 8, ["modelValue", "config"])
|
|
474
474
|
]),
|
|
@@ -502,7 +502,7 @@ const ve = {
|
|
|
502
502
|
to: n.config.createRoute
|
|
503
503
|
}, {
|
|
504
504
|
default: f(() => [
|
|
505
|
-
d(l(
|
|
505
|
+
d(l(Ge)),
|
|
506
506
|
M(" " + b(l(r)("gateway_services.list.toolbar_actions.new_gateway_service")), 1)
|
|
507
507
|
]),
|
|
508
508
|
_: 1
|
|
@@ -703,7 +703,7 @@ const ve = {
|
|
|
703
703
|
"entity-type": l(tt).GatewayService,
|
|
704
704
|
error: X.value,
|
|
705
705
|
title: l(r)("actions.delete.title"),
|
|
706
|
-
visible:
|
|
706
|
+
visible: G.value,
|
|
707
707
|
onCancel: v,
|
|
708
708
|
onProceed: R
|
|
709
709
|
}, null, 8, ["action-pending", "description", "entity-name", "entity-type", "error", "title", "visible"])
|
|
@@ -730,10 +730,10 @@ const ve = {
|
|
|
730
730
|
}, Dt = {
|
|
731
731
|
key: 2,
|
|
732
732
|
class: "gateway-service-form-margin-bottom"
|
|
733
|
-
},
|
|
733
|
+
}, Kt = {
|
|
734
734
|
key: 0,
|
|
735
735
|
class: "checkbox-aligned-radio"
|
|
736
|
-
},
|
|
736
|
+
}, Gt = {
|
|
737
737
|
key: 1,
|
|
738
738
|
class: "checkbox-aligned-radio"
|
|
739
739
|
}, qt = /* @__PURE__ */ Te({
|
|
@@ -761,7 +761,7 @@ const ve = {
|
|
|
761
761
|
emits: ["update", "error", "url-valid:success", "url-valid:error", "loading", "model-updated"],
|
|
762
762
|
setup(n, { expose: D, emit: p }) {
|
|
763
763
|
var X;
|
|
764
|
-
const c = p, r = n, $ = E(!0), N = $e(), { i18nT: q, i18n: { t: a } } = ve.useI18n(), { getMessageFromError: P } = lt(), { axiosInstance: C } = xe((X = r.config) == null ? void 0 : X.axiosRequestConfig), ge = ot(), ye = _(() => se.form[r.config.app].edit), O = _(() => r.gatewayServiceId ? Re.Edit : Re.Create), _e = E(!1), H = _(() => !!r.gatewayServiceId), y = E(H.value ? "protocol" : "url"), Y = ve.usePortFromProtocol(),
|
|
764
|
+
const c = p, r = n, $ = E(!0), N = $e(), { i18nT: q, i18n: { t: a } } = ve.useI18n(), { getMessageFromError: P } = lt(), { axiosInstance: C } = xe((X = r.config) == null ? void 0 : X.axiosRequestConfig), ge = ot(), ye = _(() => se.form[r.config.app].edit), O = _(() => r.gatewayServiceId ? Re.Edit : Re.Create), _e = E(!1), H = _(() => !!r.gatewayServiceId), y = E(H.value ? "protocol" : "url"), Y = ve.usePortFromProtocol(), K = E(""), be = _(() => !!K.value), e = Pe({
|
|
765
765
|
fields: {
|
|
766
766
|
name: "",
|
|
767
767
|
protocol: "http",
|
|
@@ -888,7 +888,7 @@ const ve = {
|
|
|
888
888
|
const t = ["https", "wss", "tls"].includes(e.fields.protocol);
|
|
889
889
|
return y.value === "protocol" && t;
|
|
890
890
|
}), Ce = (t) => {
|
|
891
|
-
|
|
891
|
+
K.value = ge.utf8Name(t);
|
|
892
892
|
}, te = _(() => H.value && JSON.stringify(e.fields) !== JSON.stringify(w) || y.value === "url" && !!e.fields.url || y.value === "protocol" && !!e.fields.host), ne = (t) => {
|
|
893
893
|
var i, v, R;
|
|
894
894
|
e.fields.name = (t == null ? void 0 : t.name) || "", e.fields.tags = ((i = t == null ? void 0 : t.tags) == null ? void 0 : i.join(", ")) || "", e.fields.protocol = (t == null ? void 0 : t.protocol) || "http", e.fields.path = (t == null ? void 0 : t.path) || "", e.fields.read_timeout = t != null && t.read_timeout || (t == null ? void 0 : t.read_timeout) === 0 ? t == null ? void 0 : t.read_timeout : 6e4, e.fields.retries = t != null && t.retries || (t == null ? void 0 : t.retries) === 0 ? t == null ? void 0 : t.retries : 5, e.fields.host = (t == null ? void 0 : t.host) || "", e.fields.connect_timeout = t != null && t.connect_timeout || (t == null ? void 0 : t.connect_timeout) === 0 ? t == null ? void 0 : t.connect_timeout : 6e4, e.fields.tls_verify_enabled = (t == null ? void 0 : t.tls_verify) !== "" && (t == null ? void 0 : t.tls_verify) !== null && (t == null ? void 0 : t.tls_verify) !== void 0, e.fields.tls_verify_value = t != null && t.tls_verify ? t == null ? void 0 : t.tls_verify : !1, e.fields.ca_certificates = ((v = t == null ? void 0 : t.ca_certificates) == null ? void 0 : v.join(",")) || "", e.fields.client_certificate = ((R = t == null ? void 0 : t.client_certificate) == null ? void 0 : R.id) || "", e.fields.write_timeout = t != null && t.write_timeout || (t == null ? void 0 : t.write_timeout) === 0 ? t == null ? void 0 : t.write_timeout : 6e4, e.fields.port = t != null && t.port || (t == null ? void 0 : t.port) === 0 ? t == null ? void 0 : t.port : 80, Object.assign(w, e.fields);
|
|
@@ -905,7 +905,7 @@ const ve = {
|
|
|
905
905
|
}), B = (t) => {
|
|
906
906
|
let i = "";
|
|
907
907
|
t.url && (i = new URL(t.url).protocol), (["https", "wss", "tls"].includes(t.protocol) || ["https", "wss", "tls"].includes(i)) && (t.tls_verify = t.tls_verify_enabled ? t.tls_verify_value : null), delete t.tls_verify_enabled, delete t.tls_verify_value;
|
|
908
|
-
},
|
|
908
|
+
}, G = _(() => {
|
|
909
909
|
var i, v, R, V;
|
|
910
910
|
const t = {
|
|
911
911
|
name: e.fields.name || null,
|
|
@@ -929,7 +929,7 @@ const ve = {
|
|
|
929
929
|
var t, i, v, R;
|
|
930
930
|
try {
|
|
931
931
|
e.isReadonly = !0, T();
|
|
932
|
-
const V =
|
|
932
|
+
const V = G.value;
|
|
933
933
|
B(V);
|
|
934
934
|
let h;
|
|
935
935
|
if (await C.post(Ve.value, V), O.value === "create" ? h = await C.post(le.value, V) : O.value === "edit" && (h = ((t = r.config) == null ? void 0 : t.app) === "konnect" ? await C.put(le.value, V) : await C.patch(le.value, V)), h) {
|
|
@@ -946,12 +946,12 @@ const ve = {
|
|
|
946
946
|
return Ie(() => r.gatewayServiceId, () => {
|
|
947
947
|
Object.assign(e.fields, w);
|
|
948
948
|
}), Ie(e.fields, (t) => {
|
|
949
|
-
e.fields.port = Y.getPortFromProtocol(t.protocol, String(t.port)), c("model-updated",
|
|
949
|
+
e.fields.port = Y.getPortFromProtocol(t.protocol, String(t.port)), c("model-updated", G.value);
|
|
950
950
|
}), De(() => {
|
|
951
|
-
c("model-updated",
|
|
951
|
+
c("model-updated", G.value);
|
|
952
952
|
}), D({
|
|
953
953
|
validateUrl: T,
|
|
954
|
-
getPayload:
|
|
954
|
+
getPayload: G,
|
|
955
955
|
saveFormData: j,
|
|
956
956
|
canSubmit: te,
|
|
957
957
|
initForm: ne
|
|
@@ -965,7 +965,7 @@ const ve = {
|
|
|
965
965
|
"entity-type": l(Ae).GatewayService,
|
|
966
966
|
"error-message": e.errorMessage,
|
|
967
967
|
"fetch-url": ye.value,
|
|
968
|
-
"form-fields":
|
|
968
|
+
"form-fields": G.value,
|
|
969
969
|
"is-readonly": e.isReadonly,
|
|
970
970
|
onCancel: ce,
|
|
971
971
|
"onFetch:error": i[25] || (i[25] = (s) => t.$emit("error", s)),
|
|
@@ -974,7 +974,7 @@ const ve = {
|
|
|
974
974
|
onSubmit: j
|
|
975
975
|
}, {
|
|
976
976
|
"form-actions": f(() => [
|
|
977
|
-
|
|
977
|
+
Ke(t.$slots, "form-actions", {
|
|
978
978
|
canSubmit: te.value,
|
|
979
979
|
cancel: ce,
|
|
980
980
|
submit: j
|
|
@@ -994,7 +994,7 @@ const ve = {
|
|
|
994
994
|
autocomplete: "off",
|
|
995
995
|
"data-testid": "gateway-service-name-input",
|
|
996
996
|
error: be.value,
|
|
997
|
-
"error-message":
|
|
997
|
+
"error-message": K.value,
|
|
998
998
|
label: l(a)("gateway_services.form.fields.name.label"),
|
|
999
999
|
"label-attributes": {
|
|
1000
1000
|
info: l(a)("gateway_services.form.fields.name.tooltip"),
|
|
@@ -1315,7 +1315,7 @@ const ve = {
|
|
|
1315
1315
|
]),
|
|
1316
1316
|
_: 1
|
|
1317
1317
|
}, 8, ["modelValue", "description", "label"]),
|
|
1318
|
-
e.fields.tls_verify_enabled ? (S(), U("div",
|
|
1318
|
+
e.fields.tls_verify_enabled ? (S(), U("div", Kt, [
|
|
1319
1319
|
d(V, {
|
|
1320
1320
|
modelValue: e.fields.tls_verify_value,
|
|
1321
1321
|
"onUpdate:modelValue": i[22] || (i[22] = (s) => e.fields.tls_verify_value = s),
|
|
@@ -1324,7 +1324,7 @@ const ve = {
|
|
|
1324
1324
|
"selected-value": !0
|
|
1325
1325
|
}, null, 8, ["modelValue", "label"])
|
|
1326
1326
|
])) : L("", !0),
|
|
1327
|
-
e.fields.tls_verify_enabled ? (S(), U("div",
|
|
1327
|
+
e.fields.tls_verify_enabled ? (S(), U("div", Gt, [
|
|
1328
1328
|
d(V, {
|
|
1329
1329
|
modelValue: e.fields.tls_verify_value,
|
|
1330
1330
|
"onUpdate:modelValue": i[23] || (i[23] = (s) => e.fields.tls_verify_value = s),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("@kong/icons"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-shared")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@kong/icons","@kong-ui-public/i18n","@kong-ui-public/entities-shared"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k["kong-ui-public-entities-gateway-services"]={},k.Vue,k.VueRouter,k.KongIcons,k["kong-ui-public-i18n"],k["kong-ui-public-entities-shared"]))})(this,function(k,e,me,Q,ye,p){"use strict";const _e={actions:{create:"New Gateway Service",serverless_create:"Add a Service",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",clear:"Clear",view:"View Details",delete:{title:"Delete a Gateway Service",description:"Deleting this Gateway Service will also remove any associated plugins. This action cannot be reversed.",menu_label:"Delete"}},search:{placeholder:{konnect:"Filter by name",kongManager:"Filter by exact name or ID"}},gateway_services:{title:"Gateway Services",list:{toolbar_actions:{new_gateway_service:"New Gateway Service"},table_headers:{name:"Name",control_plane:"Control Plane",protocol:"Protocol",host:"Host",port:"Port",path:"Path",enabled:"Enabled",tags:"Tags",id:"ID",created_at:"Created At",updated_at:"Last Modified"},empty_state:{title:"Configure a New Gateway Service",description:"Gateway services are used to proxy traffic.",serverless_title:"Configure your first Gateway Service"}},empty_state_v2:{create:"New gateway service",title:"Configure your first gateway service",description:"Services represent your upstream APIs, allowing for centralized configuration and streamlined management of backend endpoints."},form:{sections:{general:{title:"General Information",description:"General information will help identify and manage this Gateway Service."},keys:{title:"Service Endpoint",description:"Define the endpoint for this service by specifying the full URL or by its separate elements.",checkedGroupLabel:"Choose how and where to send traffic",urlLabel:"Full URL",checkedGroupAltLabel:"Protocol, Host, Port and Path",viewAdvancedFields:"View Advanced Fields"}},fields:{upstream_url:{label:"Upstream URL",placeholder:"Enter a URL",tooltip_for_konnect:"This is the URL of the API you will manage in Konnect.",tooltip_for_km:"This is the URL of the API you will manage in Kong Gateway."},name:{label:"Name",placeholder:"Enter a unique name",tooltip:"The Service name."},protocol:{label:"Protocol",tooltip:"The protocol used to communicate with the upstream.",options:{http:"http",https:"https",tcp:"tcp",tls:"tls",tls_passthrough:"tls_passthrough",grpc:"grpc",grpcs:"grpcs",ws:"ws",wss:"wss",udp:"udp"}},host:{label:"Host",placeholder:"Enter a host",tooltip:"The host of the upstream server. Note that the host value is case sensitive."},path:{label:"Path",placeholder:"Enter a path",tooltip:"The path to be used in request to the upstream server."},port:{label:"Port",tooltip:"The upstream server port."},retries:{label:"Retries",tooltip:"The number of retries to execute upon failure to proxy."},connect_timeout:{label:"Connection Timeout",tooltip:"The timeout in milliseconds for establishing a connection to the upstream server."},write_timeout:{label:"Write Timeout",tooltip:"The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server."},read_timeout:{label:"Read Timeout",tooltip:"The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server."},client_certificate:{label:"Client Certificate",placeholder:"Enter a Certificate ID",tooltip:"Certificate to be used as client certificate while TLS handshaking to the upstream server."},ca_certificates:{label:"CA Certificates",placeholder:"Enter a comma separated list of CA Certificate IDs",tooltip:"Array of {code1} object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to {code2} when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).",code1:"CA Certificate",code2:"null"},tls_verify_enabled:{label:"TLS Verify",help:"If unchecked, use default system setting",tooltip:"Whether to enable verification of upstream server TLS certificate. If set to {code1}, then the Nginx default is respected.",code1:"null"},tls_verify_option:{unset:{display:"Use default system setting"},true:{label:"True",display:"On"},false:{label:"False",display:"Off"}},tags:{label:"Tags",tooltip:"An optional set of strings associated with the Service for grouping and filtering.",placeholder:"Enter a list of tags separated by comma",help:"e.g. tag1, tag2, tag3"},enabled:{label:"Enabled",tooltip:"Whether the Service is active. If set to {false}, the proxy behavior will be as if any routes attached to it do not exist (404). Default: {true}.",false:"false",true:"true"}}}},errors:{general:"Gateway Services could not be retrieved",delete:"The gateway service could not be deleted at this time.",copy:"Failed to copy to clipboard",urlErrorMessage:"Error: invalid URL"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},glossary:{gateway_services:"gateway services"}};function be(){const n=ye.createI18n("en-us",_e);return{i18n:n,i18nT:ye.i18nTComponent(n)}}function we(){return{getPortFromProtocol:(I,f)=>{const c=[80,443],s=Number(f);if((s||s===0)&&!c.includes(s))return s;switch(I){case"grpcs":case"tls":case"https":case"wss":return 443;case"grpc":case"tcp":case"http":case"ws":default:return 80}}}}const X={useI18n:be,usePortFromProtocol:we},Z="/v2/control-planes/{controlPlaneId}/core-entities",Y="/{workspace}",O={list:{konnect:{all:`${Z}/services`},kongManager:{all:`${Y}/services`}},form:{konnect:{create:`${Z}/services`,validate:`${Z}/v1/schemas/json/service/validate`,edit:`${Z}/services/{id}`},kongManager:{create:`${Y}/services`,validate:`${Y}/schemas/services/validate`,edit:`${Y}/services/{id}`}}},he="#00abd2",Ve="24px",ve={class:"kong-ui-entities-gateway-services-list"},ke={class:"button-row"},Ce={class:"empty-state-icon-gateway"},Ne={key:1},xe=e.defineComponent({__name:"GatewayServiceList",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||!n.createRoute||!n.getViewRoute||!n.getEditRoute||n.app==="kongManager"&&!n.isExactMatch&&!n.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},useActionOutside:{type:Boolean,default:!1},isServerless:{type:Boolean,default:!1},enableV2EmptyStates:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success","toggle:success"],setup(n,{emit:I}){var l;const f=I,c=n,{i18n:{t:s,formatUnixTimeStamp:x}}=X.useI18n(),R=me.useRouter(),{axiosInstance:U}=p.useAxios((l=c.config)==null?void 0:l.axiosRequestConfig),{hasRecords:a,handleStateChange:C}=p.useTableState(()=>B.value),w=e.computed(()=>a.value&&c.config.app==="konnect"),re=e.computed(()=>!c.enableV2EmptyStates&&c.config.app==="konnect"),se=e.computed(()=>c.config.app!=="kongManager"||!!c.config.disableSorting),M={name:{label:s("gateway_services.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1},...c.config.showControlPlaneColumn?{control_plane:{label:s("gateway_services.list.table_headers.control_plane")}}:{},protocol:{label:s("gateway_services.list.table_headers.protocol"),searchable:!0,sortable:!0},host:{label:s("gateway_services.list.table_headers.host"),searchable:!0,sortable:!0},port:{label:s("gateway_services.list.table_headers.port"),searchable:!0,sortable:!0},path:{label:s("gateway_services.list.table_headers.path"),searchable:!0,sortable:!0},enabled:{label:s("gateway_services.list.table_headers.enabled"),searchable:!0,sortable:!0},tags:{label:s("gateway_services.list.table_headers.tags"),sortable:!1},updated_at:{label:s("gateway_services.list.table_headers.updated_at"),sortable:!0},created_at:{label:s("gateway_services.list.table_headers.created_at"),sortable:!0}},ae={columnVisibility:{created_at:!1}},A=M,g=e.computed(()=>{var r,y;let d=`${c.config.apiBaseUrl}${O.list[c.config.app].all}`;return c.config.app==="konnect"?d=d.replace(/{controlPlaneId}/gi,((r=c.config)==null?void 0:r.controlPlaneId)||""):c.config.app==="kongManager"&&(d=d.replace(/\/{workspace}/gi,(y=c.config)!=null&&y.workspace?`/${c.config.workspace}`:"")),d}),W=e.computed(()=>c.config.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${g.value}`):new URL(g.value)),B=e.ref(""),ne=e.computed(()=>{const d=c.config.app==="konnect"||c.config.isExactMatch;if(d)return{isExactMatch:d,placeholder:s(`search.placeholder.${c.config.app}`)};const{name:r,enabled:y,protocol:V,host:K,port:E,path:ie}=M;return{isExactMatch:d,fields:{name:r,enabled:y,protocol:V,host:K,port:E,path:ie},schema:c.config.filterSchema}}),{fetcher:t,fetcherState:b,fetcherCacheKey:j}=p.useFetcher({...c.config,cacheIdentifier:c.cacheIdentifier},g.value),ce=()=>{B.value=""},ee=()=>{j.value++},F=e.ref(null),$=e.computed(()=>({ctaPath:c.config.createRoute,ctaText:_.value?c.isServerless?s("actions.serverless_create"):s("actions.create"):void 0,message:`${s("gateway_services.list.empty_state.description")}${c.config.additionMessageForEmptyState?` ${c.config.additionMessageForEmptyState}`:""}`,title:_.value?c.isServerless?s("gateway_services.list.empty_state.serverless_title"):s("gateway_services.list.empty_state.title"):s("gateway_services.title")})),L=e.ref(!1),v=e.ref(null),G=e.computed(()=>{const d={action:"disable",id:"",name:""};if(v.value){const{enabled:r,id:y,name:V}=v.value;d.action=r?"disable":"enable",d.id=y,d.name=V||y}return d}),de=d=>{L.value=!0,v.value=d},te=()=>{L.value=!1,v.value=null},fe=async()=>{var V,K;if(!await((V=c.canEdit)==null?void 0:V.call(c,v.value))||!v.value)return;const r=`${W.value.href}/${v.value.id}`,y=!v.value.enabled;try{const{data:E}=((K=c.config)==null?void 0:K.app)==="konnect"?await U.put(r,{...v.value,enabled:y}):await U.patch(r,{...v.value,enabled:y});f("toggle:success",E),v.value.enabled=y}catch(E){f("error",E)}},pe=d=>{c.config.getControlPlaneRoute&&R.push(c.config.getControlPlaneRoute(d))},H=(d,r)=>{const y=d.id;if(!r(y)){f("copy:error",{entity:d,field:"id",message:s("errors.copy")});return}f("copy:success",{entity:d,field:"id",message:s("copy.success",{val:y})})},oe=(d,r)=>{const y=JSON.stringify(d);if(!r(y)){f("copy:error",{entity:d,message:s("errors.copy")});return}f("copy:success",{entity:d,message:s("copy.success_brief")})},le=async d=>{var y;await((y=c.canRetrieve)==null?void 0:y.call(c,d))&&R.push(c.config.getViewRoute(d.id))},ue=d=>({label:s("actions.view"),to:c.config.getViewRoute(d)}),z=d=>({label:s("actions.edit"),to:c.config.getEditRoute(d)}),T=e.ref(void 0),P=e.ref(!1),D=e.ref(!1),q=e.ref(""),o=p.useDeleteUrlBuilder(c.config,g.value),i=d=>{T.value=d,P.value=!0,q.value=""},m=()=>{P.value=!1,T.value=void 0},N=async()=>{var d,r,y;if((d=T.value)!=null&&d.id){D.value=!0;try{await U.delete(o(T.value.id)),f("delete:success",T.value),m(),j.value++}catch(V){q.value=((y=(r=V.response)==null?void 0:r.data)==null?void 0:y.message)||V.message||s("errors.delete"),f("error",V)}finally{D.value=!1}}},h=()=>{R.push(c.config.createRoute)};e.watch(b,d=>{var r,y,V;if(d.status===p.FetcherStatus.Error){F.value={title:s("errors.general")},(V=(y=(r=d.error)==null?void 0:r.response)==null?void 0:y.data)!=null&&V.message&&(F.value.message=d.error.response.data.message),f("error",d.error);return}F.value=null});const _=e.ref(!1);return e.onBeforeMount(async()=>{_.value=await c.canCreate()}),(d,r)=>{const y=e.resolveComponent("KButton"),V=e.resolveComponent("KBadge"),K=e.resolveComponent("KInputSwitch"),E=e.resolveComponent("KDropdownItem"),ie=e.resolveComponent("KClipboardProvider");return e.openBlock(),e.createElementBlock("div",ve,[e.createVNode(e.unref(p.EntityBaseTable),{"cache-identifier":n.cacheIdentifier,"default-table-preferences":ae,"disable-sorting":se.value,"empty-state-options":$.value,"enable-entity-actions":"","error-message":F.value,fetcher:e.unref(t),"fetcher-cache-key":e.unref(j),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-gateway-services-list",query:B.value,"table-headers":e.unref(A),onClearSearchInput:ce,"onClick:row":r[5]||(r[5]=u=>le(u)),onSort:ee,onState:e.unref(C)},e.createSlots({"toolbar-filter":e.withCtx(()=>[e.createVNode(e.unref(p.EntityFilter),{modelValue:B.value,"onUpdate:modelValue":r[0]||(r[0]=u=>B.value=u),config:ne.value},null,8,["modelValue","config"])]),"toolbar-button":e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!n.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createElementVNode("div",ke,[w.value?(e.openBlock(),e.createBlock(y,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"gateway-services-learn-more-button",icon:"",onClick:r[1]||(r[1]=u=>d.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.BookIcon),{decorative:""})]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canCreate()},{default:e.withCtx(()=>[e.createVNode(y,{appearance:"primary","data-testid":"toolbar-add-gateway-service",size:n.useActionOutside?"medium":"large",to:n.config.createRoute},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.AddIcon)),e.createTextVNode(" "+e.toDisplayString(e.unref(s)("gateway_services.list.toolbar_actions.new_gateway_service")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:e.withCtx(({rowValue:u})=>[e.createElementVNode("b",null,e.toDisplayString(u??"-"),1)]),control_plane:e.withCtx(({row:u})=>{var S;return[(S=u.x_meta)!=null&&S.cluster_id?(e.openBlock(),e.createBlock(V,{key:0,tooltip:u.x_meta.cluster_id,"truncation-tooltip":"",onClick:e.withModifiers(J=>pe(u.x_meta.cluster_id),["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.x_meta.cluster_id),1)]),_:2},1032,["tooltip","onClick"])):(e.openBlock(),e.createElementBlock("b",Ne,"-"))]}),enabled:e.withCtx(({row:u})=>[e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canEdit(u),"force-show":""},{default:e.withCtx(({isAllowed:S})=>[e.createElementVNode("div",{onClick:r[4]||(r[4]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(K,{modelValue:u.enabled,"onUpdate:modelValue":J=>u.enabled=J,"data-testid":`row-${u.id}-toggle-input`,disabled:!S,onClick:e.withModifiers(J=>de(u),["prevent"])},null,8,["modelValue","onUpdate:modelValue","data-testid","disabled","onClick"])])]),_:2},1032,["auth-function"])]),tags:e.withCtx(({rowValue:u})=>[e.createVNode(e.unref(p.TableTags),{tags:u},null,8,["tags"])]),created_at:e.withCtx(({rowValue:u})=>[e.createTextVNode(e.toDisplayString(e.unref(x)(u)),1)]),updated_at:e.withCtx(({row:u,rowValue:S})=>[e.createTextVNode(e.toDisplayString(e.unref(x)(S??u.created_at)),1)]),actions:e.withCtx(({row:u})=>[e.createVNode(ie,null,{default:e.withCtx(({copyToClipboard:S})=>[e.createVNode(E,{"data-testid":"action-entity-copy-id",onClick:J=>H(u,S)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.copy_id")),1)]),_:2},1032,["onClick"])]),_:2},1024),e.createVNode(ie,null,{default:e.withCtx(({copyToClipboard:S})=>[e.createVNode(E,{"data-testid":"action-entity-copy-json",onClick:J=>oe(u,S)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.copy_json")),1)]),_:2},1032,["onClick"])]),_:2},1024),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canRetrieve(u)},{default:e.withCtx(()=>[e.createVNode(E,{"data-testid":"action-entity-view","has-divider":"",item:ue(u.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canEdit(u)},{default:e.withCtx(()=>[e.createVNode(E,{"data-testid":"action-entity-edit",item:z(u.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canDelete(u)},{default:e.withCtx(()=>[e.createVNode(E,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:S=>i(u)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.delete.menu_label")),1)]),_:2},1032,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!e.unref(a)&&re.value?{name:"outside-actions",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!n.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createVNode(y,{appearance:"secondary",class:"open-learning-hub","data-testid":"gateway-services-more-button",icon:"",onClick:r[2]||(r[2]=u=>d.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.BookIcon),{decorative:""})]),_:1})],8,["disabled"]))]),key:"0"}:void 0,n.enableV2EmptyStates&&n.config.app==="konnect"?{name:"empty-state",fn:e.withCtx(()=>[e.createVNode(e.unref(p.EntityEmptyState),{"action-button-text":e.unref(s)("gateway_services.empty_state_v2.create"),appearance:"secondary","can-create":()=>n.canCreate(),description:e.unref(s)("gateway_services.empty_state_v2.description"),"learn-more":n.config.app==="konnect",title:e.unref(s)("gateway_services.empty_state_v2.title"),"onClick:create":h,"onClick:learnMore":r[3]||(r[3]=u=>d.$emit("click:learn-more"))},{image:e.withCtx(()=>[e.createElementVNode("div",Ce,[e.createVNode(e.unref(Q.ServicesIcon),{color:e.unref(he),size:e.unref(Ve)},null,8,["color","size"])])]),_:1},8,["action-button-text","can-create","description","learn-more","title"])]),key:"1"}:void 0]),1032,["cache-identifier","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","onState"]),e.createVNode(e.unref(p.EntityToggleModal),{action:G.value.action,"entity-id":G.value.id,"entity-name":G.value.name,"entity-type":e.unref(s)("glossary.gateway_services"),"on-confirm":fe,visible:L.value,onCancel:te,onProceed:te},null,8,["action","entity-id","entity-name","entity-type","visible"]),e.createVNode(e.unref(p.EntityDeleteModal),{"action-pending":D.value,description:e.unref(s)("actions.delete.description"),"entity-name":T.value&&(T.value.name||T.value.id),"entity-type":e.unref(p.EntityTypes).GatewayService,error:q.value,title:e.unref(s)("actions.delete.title"),visible:P.value,onCancel:m,onProceed:N},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),ge=(n,I)=>{const f=n.__vccOpts||n;for(const[c,s]of I)f[c]=s;return f},Ee=ge(xe,[["__scopeId","data-v-185e7c4c"]]),Se={class:"kong-ui-entities-gateway-service-form"},Te={key:0},Ie={class:"gateway-service-form-traffic-label"},Be={class:"gateway-service-form-margin-bottom"},Pe={key:0,class:"gateway-service-form-group-fields"},Ue={key:1,class:"gateway-service-form-group-fields"},Me={key:0},Re={class:"gateway-service-form-margin-top"},$e={class:"gateway-service-form-margin-bottom"},De={class:"gateway-service-form-margin-bottom"},Ae={class:"gateway-service-form-margin-bottom"},Fe={class:"gateway-service-form-margin-bottom"},Le={key:0,class:"gateway-service-form-margin-bottom"},Ge={key:1,class:"gateway-service-form-margin-bottom"},qe={key:2,class:"gateway-service-form-margin-bottom"},Ke={key:0,class:"checkbox-aligned-radio"},Oe={key:1,class:"checkbox-aligned-radio"},We=ge(e.defineComponent({__name:"GatewayServiceForm",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||n.app==="konnect"&&!n.controlPlaneId||n.app==="kongManager"&&typeof n.workspace!="string"||!n.cancelRoute)},gatewayServiceId:{type:String,required:!1,default:""},hideSectionsInfo:{type:Boolean,required:!1,default:!1}},emits:["update","error","url-valid:success","url-valid:error","loading","model-updated"],setup(n,{expose:I,emit:f}){var q;const c=f,s=n,x=e.ref(!0),R=me.useRouter(),{i18nT:U,i18n:{t:a}}=X.useI18n(),{getMessageFromError:C}=p.useErrors(),{axiosInstance:w}=p.useAxios((q=s.config)==null?void 0:q.axiosRequestConfig),re=p.useValidators(),se=e.computed(()=>O.form[s.config.app].edit),M=e.computed(()=>s.gatewayServiceId?p.EntityBaseFormType.Edit:p.EntityBaseFormType.Create),ae=e.ref(!1),A=e.computed(()=>!!s.gatewayServiceId),g=e.ref(A.value?"protocol":"url"),W=X.usePortFromProtocol(),B=e.ref(""),ne=e.computed(()=>!!B.value),t=e.reactive({fields:{name:"",protocol:"http",host:"",path:"",port:80,url:"",retries:5,connect_timeout:6e4,write_timeout:6e4,read_timeout:6e4,client_certificate:"",ca_certificates:"",tls_verify_enabled:!1,tls_verify_value:!1,tags:""},isReadonly:!1,errorMessage:""}),b=e.reactive({name:"",protocol:"http",host:"",path:"",port:80,url:"",retries:5,connect_timeout:6e4,write_timeout:6e4,read_timeout:6e4,client_certificate:"",ca_certificates:"",tls_verify_enabled:!1,tls_verify_value:!1,tags:""}),j=s.config.app==="konnect"||p.useGatewayFeatureSupported({gatewayInfo:s.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),ce=[{label:a("gateway_services.form.fields.protocol.options.http"),value:"http",group:"http"},{label:a("gateway_services.form.fields.protocol.options.https"),value:"https",group:"http"},{label:a("gateway_services.form.fields.protocol.options.tcp"),value:"tcp",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.tls"),value:"tls",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.tls_passthrough"),value:"tls_passthrough",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.grpc"),value:"grpc",group:"grpc"},{label:a("gateway_services.form.fields.protocol.options.grpcs"),value:"grpcs",group:"grpc"},...j?[{label:a("gateway_services.form.fields.protocol.options.ws"),value:"ws",group:"websocket"},{label:a("gateway_services.form.fields.protocol.options.wss"),value:"wss",group:"websocket"}]:[],{label:a("gateway_services.form.fields.protocol.options.udp"),value:"udp",group:"udp"}],ee={url:"url",protocol:"protocol"},F=(o,i)=>{i.value},$=o=>o?parseFloat(o):0,L=()=>{x.value=!0,t.errorMessage="",t.fields.host=b.host,t.fields.path=b.path,t.fields.port=b.port,t.fields.protocol=b.protocol,t.fields.url=b.url,t.fields.retries=b.retries,t.fields.connect_timeout=b.connect_timeout,t.fields.write_timeout=b.write_timeout,t.fields.read_timeout=b.read_timeout,t.fields.client_certificate=b.client_certificate,t.fields.ca_certificates=b.ca_certificates,t.fields.tls_verify_enabled=b.tls_verify_enabled,t.fields.tls_verify_value=b.tls_verify_value},v=()=>{if(t.fields.url&&g.value==="url")try{const o=new URL(t.fields.url);t.errorMessage="",t.fields.protocol=o.protocol.slice(0,-1),t.fields.host=o.hostname,t.fields.path=o.pathname;const i=Number(o.port);ae.value=!!i,t.fields.port=i||W.getPortFromProtocol(t.fields.protocol),t.errorMessage="",c("url-valid:success")}catch(o){t.errorMessage=a("errors.urlErrorMessage"),c("url-valid:error",C(o))}else c("url-valid:success"),t.errorMessage=""},G=e.computed(()=>!["tcp","tls","tls_passthrough","grpc","grpcs","udp"].includes(t.fields.protocol)),de=e.computed(()=>{if(g.value==="url")return!0;const o=["https","wss","tls"].includes(t.fields.protocol);return g.value==="protocol"&&o}),te=e.computed(()=>{if(g.value==="url")return!0;const o=["https","tls"].includes(t.fields.protocol);return g.value==="protocol"&&o}),fe=e.computed(()=>{if(g.value==="url")return!0;const o=["https","wss","tls"].includes(t.fields.protocol);return g.value==="protocol"&&o}),pe=o=>{B.value=re.utf8Name(o)},H=e.computed(()=>A.value&&JSON.stringify(t.fields)!==JSON.stringify(b)||g.value==="url"&&!!t.fields.url||g.value==="protocol"&&!!t.fields.host),oe=o=>{var i,m,N;t.fields.name=(o==null?void 0:o.name)||"",t.fields.tags=((i=o==null?void 0:o.tags)==null?void 0:i.join(", "))||"",t.fields.protocol=(o==null?void 0:o.protocol)||"http",t.fields.path=(o==null?void 0:o.path)||"",t.fields.read_timeout=o!=null&&o.read_timeout||(o==null?void 0:o.read_timeout)===0?o==null?void 0:o.read_timeout:6e4,t.fields.retries=o!=null&&o.retries||(o==null?void 0:o.retries)===0?o==null?void 0:o.retries:5,t.fields.host=(o==null?void 0:o.host)||"",t.fields.connect_timeout=o!=null&&o.connect_timeout||(o==null?void 0:o.connect_timeout)===0?o==null?void 0:o.connect_timeout:6e4,t.fields.tls_verify_enabled=(o==null?void 0:o.tls_verify)!==""&&(o==null?void 0:o.tls_verify)!==null&&(o==null?void 0:o.tls_verify)!==void 0,t.fields.tls_verify_value=o!=null&&o.tls_verify?o==null?void 0:o.tls_verify:!1,t.fields.ca_certificates=((m=o==null?void 0:o.ca_certificates)==null?void 0:m.join(","))||"",t.fields.client_certificate=((N=o==null?void 0:o.client_certificate)==null?void 0:N.id)||"",t.fields.write_timeout=o!=null&&o.write_timeout||(o==null?void 0:o.write_timeout)===0?o==null?void 0:o.write_timeout:6e4,t.fields.port=o!=null&&o.port||(o==null?void 0:o.port)===0?o==null?void 0:o.port:80,Object.assign(b,t.fields)},le=()=>{R.push(s.config.cancelRoute)},ue=e.computed(()=>{var i,m;let o=`${s.config.apiBaseUrl}${O.form[s.config.app].validate}`;return s.config.app==="konnect"?o=o.replace(/{controlPlaneId}/gi,((i=s.config)==null?void 0:i.controlPlaneId)||""):s.config.app==="kongManager"&&(o=o.replace(/\/{workspace}/gi,(m=s.config)!=null&&m.workspace?`/${s.config.workspace}`:"")),o=o.replace(/{id}/gi,s.gatewayServiceId),o}),z=e.computed(()=>{var i,m;let o=`${s.config.apiBaseUrl}${O.form[s.config.app][M.value]}`;return s.config.app==="konnect"?o=o.replace(/{controlPlaneId}/gi,((i=s.config)==null?void 0:i.controlPlaneId)||""):s.config.app==="kongManager"&&(o=o.replace(/\/{workspace}/gi,(m=s.config)!=null&&m.workspace?`/${s.config.workspace}`:"")),o=o.replace(/{id}/gi,s.gatewayServiceId),o}),T=o=>{let i="";o.url&&(i=new URL(o.url).protocol),(["https","wss","tls"].includes(o.protocol)||["https","wss","tls"].includes(i))&&(o.tls_verify=o.tls_verify_enabled?o.tls_verify_value:null),delete o.tls_verify_enabled,delete o.tls_verify_value},P=e.computed(()=>{var i,m,N,h;const o={name:t.fields.name||null,tags:t.fields.tags?(N=(m=(i=t.fields.tags)==null?void 0:i.split(","))==null?void 0:m.map(_=>String(_||"").trim()))==null?void 0:N.filter(_=>_!==""):null,protocol:t.fields.protocol,path:t.fields.path||null,read_timeout:t.fields.read_timeout,retries:t.fields.retries,host:t.fields.host,connect_timeout:t.fields.connect_timeout,tls_verify_value:t.fields.tls_verify_value,tls_verify_enabled:t.fields.tls_verify_enabled,ca_certificates:t.fields.ca_certificates?(h=t.fields.ca_certificates)==null?void 0:h.split(",").filter(_=>_!==""):null,client_certificate:t.fields.client_certificate?{id:t.fields.client_certificate}:null,write_timeout:t.fields.write_timeout,port:t.fields.port,url:t.fields.url};return t.fields.client_certificate&&["https","wss","tls"].includes(t.fields.protocol)&&(o.client_certificate={id:t.fields.client_certificate}),t.fields.tls_verify_enabled&&["https","wss","tls"].includes(t.fields.protocol)&&(o.tls_verify=t.fields.tls_verify_value),G.value||(o.path=null),M.value==="create"?g.value==="url"?(delete o.protocol,delete o.host,delete o.path,s.config.app==="konnect"&&delete o.port):delete o.url:M.value==="edit"&&delete o.url,o}),D=async()=>{var o,i,m,N;try{t.isReadonly=!0,v();const h=P.value;T(h);let _;if(await w.post(ue.value,h),M.value==="create"?_=await w.post(z.value,h):M.value==="edit"&&(_=((o=s.config)==null?void 0:o.app)==="konnect"?await w.put(z.value,h):await w.patch(z.value,h)),_){const{data:l}=_;t.fields.name=(l==null?void 0:l.name)||"",t.fields.port=l.port||W.getPortFromProtocol(l.protocol),t.fields.protocol=(l==null?void 0:l.protocol)||"http",t.fields.host=(l==null?void 0:l.host)||"",t.fields.path=(l==null?void 0:l.path)||"",t.fields.url=(l==null?void 0:l.url)||"",t.fields.retries=l!=null&&l.retries||(l==null?void 0:l.retries)===0?l==null?void 0:l.retries:5,t.fields.connect_timeout=l!=null&&l.connect_timeout||(l==null?void 0:l.connect_timeout)===0?l==null?void 0:l.connect_timeout:6e4,t.fields.write_timeout=l!=null&&l.write_timeout||(l==null?void 0:l.write_timeout)===0?l==null?void 0:l.write_timeout:6e4,t.fields.read_timeout=l!=null&&l.read_timeout||(l==null?void 0:l.read_timeout)===0?l==null?void 0:l.read_timeout:6e4,t.fields.client_certificate=((i=l==null?void 0:l.client_certificate)==null?void 0:i.id)||"",t.fields.ca_certificates=(m=l==null?void 0:l.ca_certificates)!=null&&m.length?l==null?void 0:l.ca_certificates.join(","):"",t.fields.tls_verify_enabled=(l==null?void 0:l.tls_verify)!==""&&(l==null?void 0:l.tls_verify)!==null&&(l==null?void 0:l.tls_verify)!==void 0,t.fields.tls_verify_value=t.fields.tls_verify_enabled&&(l==null?void 0:l.tls_verify),t.fields.tags=(N=l==null?void 0:l.tags)!=null&&N.length?l.tags.join(", "):"",Object.assign(b,t.fields),c("update",_==null?void 0:_.data)}return _}catch(h){t.errorMessage=C(h),c("error",h)}finally{t.isReadonly=!1}};return e.watch(()=>s.gatewayServiceId,()=>{Object.assign(t.fields,b)}),e.watch(t.fields,o=>{t.fields.port=W.getPortFromProtocol(o.protocol,String(o.port)),c("model-updated",P.value)}),e.onMounted(()=>{c("model-updated",P.value)}),I({validateUrl:v,getPayload:P,saveFormData:D,canSubmit:H,initForm:oe}),(o,i)=>{const m=e.resolveComponent("KInput"),N=e.resolveComponent("KLabel"),h=e.resolveComponent("KRadio"),_=e.resolveComponent("KSelect"),l=e.resolveComponent("KCheckbox"),d=e.resolveComponent("KCollapse");return e.openBlock(),e.createElementBlock("div",Se,[e.createVNode(e.unref(p.EntityBaseForm),{"can-submit":H.value,config:n.config,"edit-id":n.gatewayServiceId,"entity-type":e.unref(p.SupportedEntityType).GatewayService,"error-message":t.errorMessage,"fetch-url":se.value,"form-fields":P.value,"is-readonly":t.isReadonly,onCancel:le,"onFetch:error":i[25]||(i[25]=r=>o.$emit("error",r)),"onFetch:success":oe,onLoading:i[26]||(i[26]=r=>o.$emit("loading",r)),onSubmit:D},{"form-actions":e.withCtx(()=>[e.renderSlot(o.$slots,"form-actions",{canSubmit:H.value,cancel:le,submit:D},void 0,!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(p.EntityFormSection),{description:e.unref(a)("gateway_services.form.sections.general.description"),"hide-info-header":n.hideSectionsInfo,title:e.unref(a)("gateway_services.form.sections.general.title")},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:t.fields.name,"onUpdate:modelValue":i[0]||(i[0]=r=>t.fields.name=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-name-input",error:ne.value,"error-message":B.value,label:e.unref(a)("gateway_services.form.fields.name.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.name.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"name",placeholder:e.unref(a)("gateway_services.form.fields.name.placeholder"),readonly:t.isReadonly,type:"text",onInput:pe},null,8,["modelValue","error","error-message","label","label-attributes","placeholder","readonly"]),e.createVNode(m,{modelValue:t.fields.tags,"onUpdate:modelValue":i[1]||(i[1]=r=>t.fields.tags=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-tags-input",help:e.unref(a)("gateway_services.form.fields.tags.help"),label:e.unref(a)("gateway_services.form.fields.tags.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.tags.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"tags",placeholder:e.unref(a)("gateway_services.form.fields.tags.placeholder"),readonly:t.isReadonly,type:"text"},null,8,["modelValue","help","label","label-attributes","placeholder","readonly"])]),_:1},8,["description","hide-info-header","title"]),e.createVNode(e.unref(p.EntityFormSection),{description:e.unref(a)("gateway_services.form.sections.keys.description"),"hide-info-header":n.hideSectionsInfo,title:e.unref(a)("gateway_services.form.sections.keys.title")},{default:e.withCtx(()=>[A.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",Ie,[e.createVNode(N,{required:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.checkedGroupLabel")),1)]),_:1})]),e.createElementVNode("div",Be,[e.createVNode(h,{modelValue:g.value,"onUpdate:modelValue":i[2]||(i[2]=r=>g.value=r),"data-testid":"gateway-service-url-radio","selected-value":ee.url,onChange:L},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.urlLabel")),1)]),_:1},8,["modelValue","selected-value"])]),g.value==="url"?(e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(m,{modelValue:t.fields.url,"onUpdate:modelValue":i[3]||(i[3]=r=>t.fields.url=r),modelModifiers:{trim:!0},class:"gateway-service-url-input gateway-service-form-margin-bottom","data-testid":"gateway-service-url-input",label:e.unref(a)("gateway_services.form.fields.upstream_url.label"),"label-attributes":{info:n.config.app==="konnect"?e.unref(a)("gateway_services.form.fields.upstream_url.tooltip_for_konnect"):e.unref(a)("gateway_services.form.fields.upstream_url.tooltip_for_km"),tooltipAttributes:{maxWidth:"400"}},name:"url",placeholder:e.unref(a)("gateway_services.form.fields.upstream_url.placeholder"),required:""},null,8,["modelValue","label","label-attributes","placeholder"])])):e.createCommentVNode("",!0),e.createVNode(h,{modelValue:g.value,"onUpdate:modelValue":i[4]||(i[4]=r=>g.value=r),"checked-group":"protocol","data-testid":"gateway-service-protocol-radio","selected-value":ee.protocol,onChange:L},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.checkedGroupAltLabel")),1)]),_:1},8,["modelValue","selected-value"])])),g.value==="protocol"||A.value?(e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(_,{modelValue:t.fields.protocol,"onUpdate:modelValue":i[5]||(i[5]=r=>t.fields.protocol=r),"data-testid":"gateway-service-protocol-select",items:ce,label:e.unref(a)("gateway_services.form.fields.protocol.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.protocol.tooltip"),tooltipAttributes:{maxWidth:"400"}},readonly:t.isReadonly,required:"",width:"100%",onSelected:i[6]||(i[6]=r=>F(t.fields.protocol,r))},null,8,["modelValue","label","label-attributes","readonly"]),e.createVNode(m,{modelValue:t.fields.host,"onUpdate:modelValue":i[7]||(i[7]=r=>t.fields.host=r),modelModifiers:{trim:!0},class:"gateway-service-form-margin-top","data-testid":"gateway-service-host-input",label:e.unref(a)("gateway_services.form.fields.host.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.host.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"host",placeholder:e.unref(a)("gateway_services.form.fields.host.placeholder"),required:""},null,8,["modelValue","label","label-attributes","placeholder"]),G.value?(e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(m,{modelValue:t.fields.path,"onUpdate:modelValue":i[8]||(i[8]=r=>t.fields.path=r),modelModifiers:{trim:!0},class:"gateway-service-form-margin-top","data-testid":"gateway-service-path-input",label:e.unref(a)("gateway_services.form.fields.path.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.path.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"path",placeholder:e.unref(a)("gateway_services.form.fields.path.placeholder")},null,8,["modelValue","label","label-attributes","placeholder"])])):e.createCommentVNode("",!0),e.createVNode(m,{modelValue:t.fields.port,"onUpdate:modelValue":[i[9]||(i[9]=r=>t.fields.port=r),i[10]||(i[10]=()=>{t.fields.port=$(t.fields.port+"")})],class:"gateway-service-form-margin-top","data-testid":"gateway-service-port-input",label:e.unref(a)("gateway_services.form.fields.port.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.port.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"port",type:"number"},null,8,["modelValue","label","label-attributes"])])):e.createCommentVNode("",!0),e.createVNode(d,{modelValue:x.value,"onUpdate:modelValue":i[24]||(i[24]=r=>x.value=r),"data-testid":"advanced-fields-collapse","trigger-alignment":"leading","trigger-label":e.unref(a)("gateway_services.form.sections.keys.viewAdvancedFields")},{default:e.withCtx(()=>[e.createElementVNode("div",Re,[e.createElementVNode("div",$e,[e.createVNode(m,{modelValue:t.fields.retries,"onUpdate:modelValue":[i[11]||(i[11]=r=>t.fields.retries=r),i[12]||(i[12]=()=>{t.fields.retries=$(t.fields.retries+"")})],autocomplete:"off","data-testid":"gateway-service-retries-input",label:e.unref(a)("gateway_services.form.fields.retries.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.retries.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"retries",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",De,[e.createVNode(m,{modelValue:t.fields.connect_timeout,"onUpdate:modelValue":[i[13]||(i[13]=r=>t.fields.connect_timeout=r),i[14]||(i[14]=()=>{t.fields.connect_timeout=$(t.fields.connect_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-connTimeout-input",label:e.unref(a)("gateway_services.form.fields.connect_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.connect_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"connTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",Ae,[e.createVNode(m,{modelValue:t.fields.write_timeout,"onUpdate:modelValue":[i[15]||(i[15]=r=>t.fields.write_timeout=r),i[16]||(i[16]=()=>{t.fields.write_timeout=$(t.fields.write_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-writeTimeout-input",label:e.unref(a)("gateway_services.form.fields.write_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.write_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"writeTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",Fe,[e.createVNode(m,{modelValue:t.fields.read_timeout,"onUpdate:modelValue":[i[17]||(i[17]=r=>t.fields.read_timeout=r),i[18]||(i[18]=()=>{t.fields.read_timeout=$(t.fields.read_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-readTimeout-input",label:e.unref(a)("gateway_services.form.fields.read_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.read_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"readTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),de.value?(e.openBlock(),e.createElementBlock("div",Le,[e.createVNode(m,{modelValue:t.fields.client_certificate,"onUpdate:modelValue":i[19]||(i[19]=r=>t.fields.client_certificate=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-clientCert-input",label:e.unref(a)("gateway_services.form.fields.client_certificate.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.client_certificate.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"clientCert",placeholder:e.unref(a)("gateway_services.form.fields.client_certificate.placeholder"),readonly:t.isReadonly,type:"text"},null,8,["modelValue","label","label-attributes","placeholder","readonly"])])):e.createCommentVNode("",!0),te.value?(e.openBlock(),e.createElementBlock("div",Ge,[e.createVNode(m,{modelValue:t.fields.ca_certificates,"onUpdate:modelValue":i[20]||(i[20]=r=>t.fields.ca_certificates=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-ca-certs-input",label:e.unref(a)("gateway_services.form.fields.ca_certificates.label"),"label-attributes":{tooltipAttributes:{maxWidth:"400"}},placeholder:e.unref(a)("gateway_services.form.fields.ca_certificates.placeholder"),readonly:t.isReadonly,type:"text"},{"label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(U),{keypath:"gateway_services.form.fields.ca_certificates.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.ca_certificates.code1")),1)]),code2:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.ca_certificates.code2")),1)]),_:1})]),_:1},8,["modelValue","label","placeholder","readonly"])])):e.createCommentVNode("",!0),fe.value?(e.openBlock(),e.createElementBlock("div",qe,[e.createVNode(l,{modelValue:t.fields.tls_verify_enabled,"onUpdate:modelValue":i[21]||(i[21]=r=>t.fields.tls_verify_enabled=r),"data-testid":"gateway-service-tls-verify-checkbox",description:e.unref(a)("gateway_services.form.fields.tls_verify_enabled.help"),label:e.unref(a)("gateway_services.form.fields.tls_verify_enabled.label"),"label-attributes":{tooltipAttributes:{maxWidth:"400"}}},{tooltip:e.withCtx(()=>[e.createVNode(e.unref(U),{keypath:"gateway_services.form.fields.tls_verify_enabled.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.tls_verify_enabled.code1")),1)]),_:1})]),_:1},8,["modelValue","description","label"]),t.fields.tls_verify_enabled?(e.openBlock(),e.createElementBlock("div",Ke,[e.createVNode(h,{modelValue:t.fields.tls_verify_value,"onUpdate:modelValue":i[22]||(i[22]=r=>t.fields.tls_verify_value=r),"data-testid":"gateway-service-tls-verify-true-option",label:e.unref(a)("gateway_services.form.fields.tls_verify_option.true.label"),"selected-value":!0},null,8,["modelValue","label"])])):e.createCommentVNode("",!0),t.fields.tls_verify_enabled?(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(h,{modelValue:t.fields.tls_verify_value,"onUpdate:modelValue":i[23]||(i[23]=r=>t.fields.tls_verify_value=r),"data-testid":"gateway-service-tls-verify-false-option",label:e.unref(a)("gateway_services.form.fields.tls_verify_option.false.label"),"selected-value":!1},null,8,["modelValue","label"])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),_:1},8,["modelValue","trigger-label"])]),_: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-35e0db56"]]),je={class:"kong-ui-gateway-service-entity-config-card"},He=e.defineComponent({__name:"GatewayServiceConfigCard",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||n.app==="konnect"&&!n.controlPlaneId||n.app==="kongManager"&&typeof n.workspace!="string"||!n.entityId)},configCardDoc:{type:String,default:"",required:!1},hideTitle:{type:Boolean,default:!1}},emits:["loading","fetch:error","fetch:success"],setup(n){const I=n,{i18n:{t:f},i18nT:c}=X.useI18n(),s=e.computed(()=>O.form[I.config.app].edit),{getPropValue:x}=p.useHelpers(),R=(a,C)=>x(a,C)===!0?f("gateway_services.form.fields.tls_verify_option.true.display"):f("gateway_services.form.fields.tls_verify_option.false.display"),U=e.ref({id:{},name:{tooltip:f("gateway_services.form.fields.name.tooltip")},enabled:{},updated_at:{},created_at:{},protocol:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.protocol.tooltip")},host:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.host.tooltip")},path:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.path.tooltip")},port:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.port.tooltip")},tags:{tooltip:f("gateway_services.form.fields.tags.tooltip")},retries:{order:1,tooltip:f("gateway_services.form.fields.retries.tooltip")},connect_timeout:{order:2,tooltip:f("gateway_services.form.fields.connect_timeout.tooltip")},write_timeout:{order:3,tooltip:f("gateway_services.form.fields.write_timeout.tooltip")},read_timeout:{order:4,tooltip:f("gateway_services.form.fields.read_timeout.tooltip")},client_certificate:{order:5,tooltip:f("gateway_services.form.fields.client_certificate.tooltip")},ca_certificates:{type:p.ConfigurationSchemaType.BadgeTag,label:f("gateway_services.form.fields.ca_certificates.label"),order:6},tls_verify:{label:f("gateway_services.form.fields.tls_verify_enabled.label")},tls_verify_depth:{hidden:!0}});return(a,C)=>(e.openBlock(),e.createElementBlock("div",je,[e.createVNode(e.unref(p.EntityBaseConfigCard),{config:n.config,"config-card-doc":n.configCardDoc,"config-schema":U.value,"entity-type":e.unref(p.SupportedEntityType).GatewayService,"fetch-url":s.value,"hide-title":n.hideTitle,"onFetch:error":C[0]||(C[0]=w=>a.$emit("fetch:error",w)),"onFetch:success":C[1]||(C[1]=w=>a.$emit("fetch:success",w)),onLoading:C[2]||(C[2]=w=>a.$emit("loading",w))},{"enabled-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.enabled.tooltip",scope:"global"},{false:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.enabled.false")),1)]),true:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.enabled.true")),1)]),_:1})]),"ca_certificates-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.ca_certificates.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.ca_certificates.code1")),1)]),code2:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.ca_certificates.code2")),1)]),_:1})]),"tls_verify-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.tls_verify_enabled.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.tls_verify_enabled.code1")),1)]),_:1})]),tls_verify:e.withCtx(w=>[e.createTextVNode(e.toDisplayString(typeof e.unref(x)("rowValue",w)=="boolean"?R("rowValue",w):e.unref(f)("gateway_services.form.fields.tls_verify_option.unset.display")),1)]),client_certificate:e.withCtx(w=>[e.createTextVNode(e.toDisplayString(e.unref(x)("rowValue",w)?e.unref(x)("rowValue",w).id:"–"),1)]),_:1},8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title"])]))}});k.GatewayServiceConfigCard=He,k.GatewayServiceForm=We,k.GatewayServiceList=Ee,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("@kong/icons"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-shared")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","@kong/icons","@kong-ui-public/i18n","@kong-ui-public/entities-shared"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k["kong-ui-public-entities-gateway-services"]={},k.Vue,k.VueRouter,k.KongIcons,k["kong-ui-public-i18n"],k["kong-ui-public-entities-shared"]))})(this,function(k,e,me,Q,ge,p){"use strict";const _e={actions:{create:"New gateway service",serverless_create:"Add a Service",copy_id:"Copy ID",copy_json:"Copy JSON",edit:"Edit",clear:"Clear",view:"View Details",delete:{title:"Delete a Gateway Service",description:"Deleting this Gateway Service will also remove any associated plugins. This action cannot be reversed.",menu_label:"Delete"}},search:{placeholder:{konnect:"Filter by name",kongManager:"Filter by exact name or ID"}},gateway_services:{title:"Gateway Services",list:{toolbar_actions:{new_gateway_service:"New gateway service"},table_headers:{name:"Name",control_plane:"Control Plane",protocol:"Protocol",host:"Host",port:"Port",path:"Path",enabled:"Enabled",tags:"Tags",id:"ID",created_at:"Created At",updated_at:"Last Modified"},empty_state:{title:"Configure a New Gateway Service",description:"Gateway services are used to proxy traffic.",serverless_title:"Configure your first Gateway Service"}},empty_state_v2:{create:"New gateway service",title:"Configure your first gateway service",description:"Services represent your upstream APIs, allowing for centralized configuration and streamlined management of backend endpoints."},form:{sections:{general:{title:"General Information",description:"General information will help identify and manage this Gateway Service."},keys:{title:"Service Endpoint",description:"Define the endpoint for this service by specifying the full URL or by its separate elements.",checkedGroupLabel:"Choose how and where to send traffic",urlLabel:"Full URL",checkedGroupAltLabel:"Protocol, Host, Port and Path",viewAdvancedFields:"View Advanced Fields"}},fields:{upstream_url:{label:"Upstream URL",placeholder:"Enter a URL",tooltip_for_konnect:"This is the URL of the API you will manage in Konnect.",tooltip_for_km:"This is the URL of the API you will manage in Kong Gateway."},name:{label:"Name",placeholder:"Enter a unique name",tooltip:"The Service name."},protocol:{label:"Protocol",tooltip:"The protocol used to communicate with the upstream.",options:{http:"http",https:"https",tcp:"tcp",tls:"tls",tls_passthrough:"tls_passthrough",grpc:"grpc",grpcs:"grpcs",ws:"ws",wss:"wss",udp:"udp"}},host:{label:"Host",placeholder:"Enter a host",tooltip:"The host of the upstream server. Note that the host value is case sensitive."},path:{label:"Path",placeholder:"Enter a path",tooltip:"The path to be used in request to the upstream server."},port:{label:"Port",tooltip:"The upstream server port."},retries:{label:"Retries",tooltip:"The number of retries to execute upon failure to proxy."},connect_timeout:{label:"Connection Timeout",tooltip:"The timeout in milliseconds for establishing a connection to the upstream server."},write_timeout:{label:"Write Timeout",tooltip:"The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server."},read_timeout:{label:"Read Timeout",tooltip:"The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server."},client_certificate:{label:"Client Certificate",placeholder:"Enter a Certificate ID",tooltip:"Certificate to be used as client certificate while TLS handshaking to the upstream server."},ca_certificates:{label:"CA Certificates",placeholder:"Enter a comma separated list of CA Certificate IDs",tooltip:"Array of {code1} object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to {code2} when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).",code1:"CA Certificate",code2:"null"},tls_verify_enabled:{label:"TLS Verify",help:"If unchecked, use default system setting",tooltip:"Whether to enable verification of upstream server TLS certificate. If set to {code1}, then the Nginx default is respected.",code1:"null"},tls_verify_option:{unset:{display:"Use default system setting"},true:{label:"True",display:"On"},false:{label:"False",display:"Off"}},tags:{label:"Tags",tooltip:"An optional set of strings associated with the Service for grouping and filtering.",placeholder:"Enter a list of tags separated by comma",help:"e.g. tag1, tag2, tag3"},enabled:{label:"Enabled",tooltip:"Whether the Service is active. If set to {false}, the proxy behavior will be as if any routes attached to it do not exist (404). Default: {true}.",false:"false",true:"true"}}}},errors:{general:"Gateway Services could not be retrieved",delete:"The gateway service could not be deleted at this time.",copy:"Failed to copy to clipboard",urlErrorMessage:"Error: invalid URL"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"},glossary:{gateway_services:"gateway services"}};function be(){const n=ge.createI18n("en-us",_e);return{i18n:n,i18nT:ge.i18nTComponent(n)}}function we(){return{getPortFromProtocol:(I,f)=>{const c=[80,443],s=Number(f);if((s||s===0)&&!c.includes(s))return s;switch(I){case"grpcs":case"tls":case"https":case"wss":return 443;case"grpc":case"tcp":case"http":case"ws":default:return 80}}}}const X={useI18n:be,usePortFromProtocol:we},Z="/v2/control-planes/{controlPlaneId}/core-entities",Y="/{workspace}",O={list:{konnect:{all:`${Z}/services`},kongManager:{all:`${Y}/services`}},form:{konnect:{create:`${Z}/services`,validate:`${Z}/v1/schemas/json/service/validate`,edit:`${Z}/services/{id}`},kongManager:{create:`${Y}/services`,validate:`${Y}/schemas/services/validate`,edit:`${Y}/services/{id}`}}},he="#00abd2",Ve="24px",ve={class:"kong-ui-entities-gateway-services-list"},ke={class:"button-row"},Ce={class:"empty-state-icon-gateway"},Ne={key:1},xe=e.defineComponent({__name:"GatewayServiceList",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||!n.createRoute||!n.getViewRoute||!n.getEditRoute||n.app==="kongManager"&&!n.isExactMatch&&!n.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},useActionOutside:{type:Boolean,default:!1},isServerless:{type:Boolean,default:!1},enableV2EmptyStates:{type:Boolean,default:!1}},emits:["error","click:learn-more","copy:success","copy:error","delete:success","toggle:success"],setup(n,{emit:I}){var l;const f=I,c=n,{i18n:{t:s,formatUnixTimeStamp:x}}=X.useI18n(),R=me.useRouter(),{axiosInstance:U}=p.useAxios((l=c.config)==null?void 0:l.axiosRequestConfig),{hasRecords:a,handleStateChange:C}=p.useTableState(()=>B.value),w=e.computed(()=>a.value&&c.config.app==="konnect"),re=e.computed(()=>!c.enableV2EmptyStates&&c.config.app==="konnect"),se=e.computed(()=>c.config.app!=="kongManager"||!!c.config.disableSorting),M={name:{label:s("gateway_services.list.table_headers.name"),searchable:!0,sortable:!0,hidable:!1},...c.config.showControlPlaneColumn?{control_plane:{label:s("gateway_services.list.table_headers.control_plane")}}:{},protocol:{label:s("gateway_services.list.table_headers.protocol"),searchable:!0,sortable:!0},host:{label:s("gateway_services.list.table_headers.host"),searchable:!0,sortable:!0},port:{label:s("gateway_services.list.table_headers.port"),searchable:!0,sortable:!0},path:{label:s("gateway_services.list.table_headers.path"),searchable:!0,sortable:!0},enabled:{label:s("gateway_services.list.table_headers.enabled"),searchable:!0,sortable:!0},tags:{label:s("gateway_services.list.table_headers.tags"),sortable:!1},updated_at:{label:s("gateway_services.list.table_headers.updated_at"),sortable:!0},created_at:{label:s("gateway_services.list.table_headers.created_at"),sortable:!0}},ae={columnVisibility:{created_at:!1}},A=M,y=e.computed(()=>{var r,g;let d=`${c.config.apiBaseUrl}${O.list[c.config.app].all}`;return c.config.app==="konnect"?d=d.replace(/{controlPlaneId}/gi,((r=c.config)==null?void 0:r.controlPlaneId)||""):c.config.app==="kongManager"&&(d=d.replace(/\/{workspace}/gi,(g=c.config)!=null&&g.workspace?`/${c.config.workspace}`:"")),d}),W=e.computed(()=>c.config.apiBaseUrl.startsWith("/")?new URL(`${window.location.origin}${y.value}`):new URL(y.value)),B=e.ref(""),ne=e.computed(()=>{const d=c.config.app==="konnect"||c.config.isExactMatch;if(d)return{isExactMatch:d,placeholder:s(`search.placeholder.${c.config.app}`)};const{name:r,enabled:g,protocol:V,host:K,port:E,path:ie}=M;return{isExactMatch:d,fields:{name:r,enabled:g,protocol:V,host:K,port:E,path:ie},schema:c.config.filterSchema}}),{fetcher:t,fetcherState:b,fetcherCacheKey:j}=p.useFetcher({...c.config,cacheIdentifier:c.cacheIdentifier},y.value),ce=()=>{B.value=""},ee=()=>{j.value++},F=e.ref(null),$=e.computed(()=>({ctaPath:c.config.createRoute,ctaText:_.value?c.isServerless?s("actions.serverless_create"):s("actions.create"):void 0,message:`${s("gateway_services.list.empty_state.description")}${c.config.additionMessageForEmptyState?` ${c.config.additionMessageForEmptyState}`:""}`,title:_.value?c.isServerless?s("gateway_services.list.empty_state.serverless_title"):s("gateway_services.list.empty_state.title"):s("gateway_services.title")})),L=e.ref(!1),v=e.ref(null),q=e.computed(()=>{const d={action:"disable",id:"",name:""};if(v.value){const{enabled:r,id:g,name:V}=v.value;d.action=r?"disable":"enable",d.id=g,d.name=V||g}return d}),de=d=>{L.value=!0,v.value=d},te=()=>{L.value=!1,v.value=null},fe=async()=>{var V,K;if(!await((V=c.canEdit)==null?void 0:V.call(c,v.value))||!v.value)return;const r=`${W.value.href}/${v.value.id}`,g=!v.value.enabled;try{const{data:E}=((K=c.config)==null?void 0:K.app)==="konnect"?await U.put(r,{...v.value,enabled:g}):await U.patch(r,{...v.value,enabled:g});f("toggle:success",E),v.value.enabled=g}catch(E){f("error",E)}},pe=d=>{c.config.getControlPlaneRoute&&R.push(c.config.getControlPlaneRoute(d))},H=(d,r)=>{const g=d.id;if(!r(g)){f("copy:error",{entity:d,field:"id",message:s("errors.copy")});return}f("copy:success",{entity:d,field:"id",message:s("copy.success",{val:g})})},oe=(d,r)=>{const g=JSON.stringify(d);if(!r(g)){f("copy:error",{entity:d,message:s("errors.copy")});return}f("copy:success",{entity:d,message:s("copy.success_brief")})},le=async d=>{var g;await((g=c.canRetrieve)==null?void 0:g.call(c,d))&&R.push(c.config.getViewRoute(d.id))},ue=d=>({label:s("actions.view"),to:c.config.getViewRoute(d)}),z=d=>({label:s("actions.edit"),to:c.config.getEditRoute(d)}),T=e.ref(void 0),P=e.ref(!1),D=e.ref(!1),G=e.ref(""),o=p.useDeleteUrlBuilder(c.config,y.value),i=d=>{T.value=d,P.value=!0,G.value=""},m=()=>{P.value=!1,T.value=void 0},N=async()=>{var d,r,g;if((d=T.value)!=null&&d.id){D.value=!0;try{await U.delete(o(T.value.id)),f("delete:success",T.value),m(),j.value++}catch(V){G.value=((g=(r=V.response)==null?void 0:r.data)==null?void 0:g.message)||V.message||s("errors.delete"),f("error",V)}finally{D.value=!1}}},h=()=>{R.push(c.config.createRoute)};e.watch(b,d=>{var r,g,V;if(d.status===p.FetcherStatus.Error){F.value={title:s("errors.general")},(V=(g=(r=d.error)==null?void 0:r.response)==null?void 0:g.data)!=null&&V.message&&(F.value.message=d.error.response.data.message),f("error",d.error);return}F.value=null});const _=e.ref(!1);return e.onBeforeMount(async()=>{_.value=await c.canCreate()}),(d,r)=>{const g=e.resolveComponent("KButton"),V=e.resolveComponent("KBadge"),K=e.resolveComponent("KInputSwitch"),E=e.resolveComponent("KDropdownItem"),ie=e.resolveComponent("KClipboardProvider");return e.openBlock(),e.createElementBlock("div",ve,[e.createVNode(e.unref(p.EntityBaseTable),{"cache-identifier":n.cacheIdentifier,"default-table-preferences":ae,"disable-sorting":se.value,"empty-state-options":$.value,"enable-entity-actions":"","error-message":F.value,fetcher:e.unref(t),"fetcher-cache-key":e.unref(j),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-gateway-services-list",query:B.value,"table-headers":e.unref(A),onClearSearchInput:ce,"onClick:row":r[5]||(r[5]=u=>le(u)),onSort:ee,onState:e.unref(C)},e.createSlots({"toolbar-filter":e.withCtx(()=>[e.createVNode(e.unref(p.EntityFilter),{modelValue:B.value,"onUpdate:modelValue":r[0]||(r[0]=u=>B.value=u),config:ne.value},null,8,["modelValue","config"])]),"toolbar-button":e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!n.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createElementVNode("div",ke,[w.value?(e.openBlock(),e.createBlock(g,{key:0,appearance:"secondary",class:"open-learning-hub","data-testid":"gateway-services-learn-more-button",icon:"",onClick:r[1]||(r[1]=u=>d.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.BookIcon),{decorative:""})]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canCreate()},{default:e.withCtx(()=>[e.createVNode(g,{appearance:"primary","data-testid":"toolbar-add-gateway-service",size:n.useActionOutside?"medium":"large",to:n.config.createRoute},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.AddIcon)),e.createTextVNode(" "+e.toDisplayString(e.unref(s)("gateway_services.list.toolbar_actions.new_gateway_service")),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])])],8,["disabled"]))]),name:e.withCtx(({rowValue:u})=>[e.createElementVNode("b",null,e.toDisplayString(u??"-"),1)]),control_plane:e.withCtx(({row:u})=>{var S;return[(S=u.x_meta)!=null&&S.cluster_id?(e.openBlock(),e.createBlock(V,{key:0,tooltip:u.x_meta.cluster_id,"truncation-tooltip":"",onClick:e.withModifiers(J=>pe(u.x_meta.cluster_id),["stop"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.x_meta.cluster_id),1)]),_:2},1032,["tooltip","onClick"])):(e.openBlock(),e.createElementBlock("b",Ne,"-"))]}),enabled:e.withCtx(({row:u})=>[e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canEdit(u),"force-show":""},{default:e.withCtx(({isAllowed:S})=>[e.createElementVNode("div",{onClick:r[4]||(r[4]=e.withModifiers(()=>{},["stop"]))},[e.createVNode(K,{modelValue:u.enabled,"onUpdate:modelValue":J=>u.enabled=J,"data-testid":`row-${u.id}-toggle-input`,disabled:!S,onClick:e.withModifiers(J=>de(u),["prevent"])},null,8,["modelValue","onUpdate:modelValue","data-testid","disabled","onClick"])])]),_:2},1032,["auth-function"])]),tags:e.withCtx(({rowValue:u})=>[e.createVNode(e.unref(p.TableTags),{tags:u},null,8,["tags"])]),created_at:e.withCtx(({rowValue:u})=>[e.createTextVNode(e.toDisplayString(e.unref(x)(u)),1)]),updated_at:e.withCtx(({row:u,rowValue:S})=>[e.createTextVNode(e.toDisplayString(e.unref(x)(S??u.created_at)),1)]),actions:e.withCtx(({row:u})=>[e.createVNode(ie,null,{default:e.withCtx(({copyToClipboard:S})=>[e.createVNode(E,{"data-testid":"action-entity-copy-id",onClick:J=>H(u,S)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.copy_id")),1)]),_:2},1032,["onClick"])]),_:2},1024),e.createVNode(ie,null,{default:e.withCtx(({copyToClipboard:S})=>[e.createVNode(E,{"data-testid":"action-entity-copy-json",onClick:J=>oe(u,S)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.copy_json")),1)]),_:2},1032,["onClick"])]),_:2},1024),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canRetrieve(u)},{default:e.withCtx(()=>[e.createVNode(E,{"data-testid":"action-entity-view","has-divider":"",item:ue(u.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canEdit(u)},{default:e.withCtx(()=>[e.createVNode(E,{"data-testid":"action-entity-edit",item:z(u.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(p.PermissionsWrapper),{"auth-function":()=>n.canDelete(u)},{default:e.withCtx(()=>[e.createVNode(E,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:S=>i(u)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s)("actions.delete.menu_label")),1)]),_:2},1032,["onClick"])]),_:2},1032,["auth-function"])]),_:2},[!e.unref(a)&&re.value?{name:"outside-actions",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!n.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createVNode(g,{appearance:"secondary",class:"open-learning-hub","data-testid":"gateway-services-more-button",icon:"",onClick:r[2]||(r[2]=u=>d.$emit("click:learn-more"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Q.BookIcon),{decorative:""})]),_:1})],8,["disabled"]))]),key:"0"}:void 0,n.enableV2EmptyStates&&n.config.app==="konnect"?{name:"empty-state",fn:e.withCtx(()=>[e.createVNode(e.unref(p.EntityEmptyState),{"action-button-text":e.unref(s)("gateway_services.empty_state_v2.create"),appearance:"secondary","can-create":()=>n.canCreate(),description:e.unref(s)("gateway_services.empty_state_v2.description"),"learn-more":n.config.app==="konnect",title:e.unref(s)("gateway_services.empty_state_v2.title"),"onClick:create":h,"onClick:learnMore":r[3]||(r[3]=u=>d.$emit("click:learn-more"))},{image:e.withCtx(()=>[e.createElementVNode("div",Ce,[e.createVNode(e.unref(Q.ServicesIcon),{color:e.unref(he),size:e.unref(Ve)},null,8,["color","size"])])]),_:1},8,["action-button-text","can-create","description","learn-more","title"])]),key:"1"}:void 0]),1032,["cache-identifier","disable-sorting","empty-state-options","error-message","fetcher","fetcher-cache-key","query","table-headers","onState"]),e.createVNode(e.unref(p.EntityToggleModal),{action:q.value.action,"entity-id":q.value.id,"entity-name":q.value.name,"entity-type":e.unref(s)("glossary.gateway_services"),"on-confirm":fe,visible:L.value,onCancel:te,onProceed:te},null,8,["action","entity-id","entity-name","entity-type","visible"]),e.createVNode(e.unref(p.EntityDeleteModal),{"action-pending":D.value,description:e.unref(s)("actions.delete.description"),"entity-name":T.value&&(T.value.name||T.value.id),"entity-type":e.unref(p.EntityTypes).GatewayService,error:G.value,title:e.unref(s)("actions.delete.title"),visible:P.value,onCancel:m,onProceed:N},null,8,["action-pending","description","entity-name","entity-type","error","title","visible"])])}}}),ye=(n,I)=>{const f=n.__vccOpts||n;for(const[c,s]of I)f[c]=s;return f},Ee=ye(xe,[["__scopeId","data-v-185e7c4c"]]),Se={class:"kong-ui-entities-gateway-service-form"},Te={key:0},Ie={class:"gateway-service-form-traffic-label"},Be={class:"gateway-service-form-margin-bottom"},Pe={key:0,class:"gateway-service-form-group-fields"},Ue={key:1,class:"gateway-service-form-group-fields"},Me={key:0},Re={class:"gateway-service-form-margin-top"},$e={class:"gateway-service-form-margin-bottom"},De={class:"gateway-service-form-margin-bottom"},Ae={class:"gateway-service-form-margin-bottom"},Fe={class:"gateway-service-form-margin-bottom"},Le={key:0,class:"gateway-service-form-margin-bottom"},qe={key:1,class:"gateway-service-form-margin-bottom"},Ge={key:2,class:"gateway-service-form-margin-bottom"},Ke={key:0,class:"checkbox-aligned-radio"},Oe={key:1,class:"checkbox-aligned-radio"},We=ye(e.defineComponent({__name:"GatewayServiceForm",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||n.app==="konnect"&&!n.controlPlaneId||n.app==="kongManager"&&typeof n.workspace!="string"||!n.cancelRoute)},gatewayServiceId:{type:String,required:!1,default:""},hideSectionsInfo:{type:Boolean,required:!1,default:!1}},emits:["update","error","url-valid:success","url-valid:error","loading","model-updated"],setup(n,{expose:I,emit:f}){var G;const c=f,s=n,x=e.ref(!0),R=me.useRouter(),{i18nT:U,i18n:{t:a}}=X.useI18n(),{getMessageFromError:C}=p.useErrors(),{axiosInstance:w}=p.useAxios((G=s.config)==null?void 0:G.axiosRequestConfig),re=p.useValidators(),se=e.computed(()=>O.form[s.config.app].edit),M=e.computed(()=>s.gatewayServiceId?p.EntityBaseFormType.Edit:p.EntityBaseFormType.Create),ae=e.ref(!1),A=e.computed(()=>!!s.gatewayServiceId),y=e.ref(A.value?"protocol":"url"),W=X.usePortFromProtocol(),B=e.ref(""),ne=e.computed(()=>!!B.value),t=e.reactive({fields:{name:"",protocol:"http",host:"",path:"",port:80,url:"",retries:5,connect_timeout:6e4,write_timeout:6e4,read_timeout:6e4,client_certificate:"",ca_certificates:"",tls_verify_enabled:!1,tls_verify_value:!1,tags:""},isReadonly:!1,errorMessage:""}),b=e.reactive({name:"",protocol:"http",host:"",path:"",port:80,url:"",retries:5,connect_timeout:6e4,write_timeout:6e4,read_timeout:6e4,client_certificate:"",ca_certificates:"",tls_verify_enabled:!1,tls_verify_value:!1,tags:""}),j=s.config.app==="konnect"||p.useGatewayFeatureSupported({gatewayInfo:s.config.gatewayInfo,supportedRange:{enterprise:["3.0"]}}),ce=[{label:a("gateway_services.form.fields.protocol.options.http"),value:"http",group:"http"},{label:a("gateway_services.form.fields.protocol.options.https"),value:"https",group:"http"},{label:a("gateway_services.form.fields.protocol.options.tcp"),value:"tcp",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.tls"),value:"tls",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.tls_passthrough"),value:"tls_passthrough",group:"tcp"},{label:a("gateway_services.form.fields.protocol.options.grpc"),value:"grpc",group:"grpc"},{label:a("gateway_services.form.fields.protocol.options.grpcs"),value:"grpcs",group:"grpc"},...j?[{label:a("gateway_services.form.fields.protocol.options.ws"),value:"ws",group:"websocket"},{label:a("gateway_services.form.fields.protocol.options.wss"),value:"wss",group:"websocket"}]:[],{label:a("gateway_services.form.fields.protocol.options.udp"),value:"udp",group:"udp"}],ee={url:"url",protocol:"protocol"},F=(o,i)=>{i.value},$=o=>o?parseFloat(o):0,L=()=>{x.value=!0,t.errorMessage="",t.fields.host=b.host,t.fields.path=b.path,t.fields.port=b.port,t.fields.protocol=b.protocol,t.fields.url=b.url,t.fields.retries=b.retries,t.fields.connect_timeout=b.connect_timeout,t.fields.write_timeout=b.write_timeout,t.fields.read_timeout=b.read_timeout,t.fields.client_certificate=b.client_certificate,t.fields.ca_certificates=b.ca_certificates,t.fields.tls_verify_enabled=b.tls_verify_enabled,t.fields.tls_verify_value=b.tls_verify_value},v=()=>{if(t.fields.url&&y.value==="url")try{const o=new URL(t.fields.url);t.errorMessage="",t.fields.protocol=o.protocol.slice(0,-1),t.fields.host=o.hostname,t.fields.path=o.pathname;const i=Number(o.port);ae.value=!!i,t.fields.port=i||W.getPortFromProtocol(t.fields.protocol),t.errorMessage="",c("url-valid:success")}catch(o){t.errorMessage=a("errors.urlErrorMessage"),c("url-valid:error",C(o))}else c("url-valid:success"),t.errorMessage=""},q=e.computed(()=>!["tcp","tls","tls_passthrough","grpc","grpcs","udp"].includes(t.fields.protocol)),de=e.computed(()=>{if(y.value==="url")return!0;const o=["https","wss","tls"].includes(t.fields.protocol);return y.value==="protocol"&&o}),te=e.computed(()=>{if(y.value==="url")return!0;const o=["https","tls"].includes(t.fields.protocol);return y.value==="protocol"&&o}),fe=e.computed(()=>{if(y.value==="url")return!0;const o=["https","wss","tls"].includes(t.fields.protocol);return y.value==="protocol"&&o}),pe=o=>{B.value=re.utf8Name(o)},H=e.computed(()=>A.value&&JSON.stringify(t.fields)!==JSON.stringify(b)||y.value==="url"&&!!t.fields.url||y.value==="protocol"&&!!t.fields.host),oe=o=>{var i,m,N;t.fields.name=(o==null?void 0:o.name)||"",t.fields.tags=((i=o==null?void 0:o.tags)==null?void 0:i.join(", "))||"",t.fields.protocol=(o==null?void 0:o.protocol)||"http",t.fields.path=(o==null?void 0:o.path)||"",t.fields.read_timeout=o!=null&&o.read_timeout||(o==null?void 0:o.read_timeout)===0?o==null?void 0:o.read_timeout:6e4,t.fields.retries=o!=null&&o.retries||(o==null?void 0:o.retries)===0?o==null?void 0:o.retries:5,t.fields.host=(o==null?void 0:o.host)||"",t.fields.connect_timeout=o!=null&&o.connect_timeout||(o==null?void 0:o.connect_timeout)===0?o==null?void 0:o.connect_timeout:6e4,t.fields.tls_verify_enabled=(o==null?void 0:o.tls_verify)!==""&&(o==null?void 0:o.tls_verify)!==null&&(o==null?void 0:o.tls_verify)!==void 0,t.fields.tls_verify_value=o!=null&&o.tls_verify?o==null?void 0:o.tls_verify:!1,t.fields.ca_certificates=((m=o==null?void 0:o.ca_certificates)==null?void 0:m.join(","))||"",t.fields.client_certificate=((N=o==null?void 0:o.client_certificate)==null?void 0:N.id)||"",t.fields.write_timeout=o!=null&&o.write_timeout||(o==null?void 0:o.write_timeout)===0?o==null?void 0:o.write_timeout:6e4,t.fields.port=o!=null&&o.port||(o==null?void 0:o.port)===0?o==null?void 0:o.port:80,Object.assign(b,t.fields)},le=()=>{R.push(s.config.cancelRoute)},ue=e.computed(()=>{var i,m;let o=`${s.config.apiBaseUrl}${O.form[s.config.app].validate}`;return s.config.app==="konnect"?o=o.replace(/{controlPlaneId}/gi,((i=s.config)==null?void 0:i.controlPlaneId)||""):s.config.app==="kongManager"&&(o=o.replace(/\/{workspace}/gi,(m=s.config)!=null&&m.workspace?`/${s.config.workspace}`:"")),o=o.replace(/{id}/gi,s.gatewayServiceId),o}),z=e.computed(()=>{var i,m;let o=`${s.config.apiBaseUrl}${O.form[s.config.app][M.value]}`;return s.config.app==="konnect"?o=o.replace(/{controlPlaneId}/gi,((i=s.config)==null?void 0:i.controlPlaneId)||""):s.config.app==="kongManager"&&(o=o.replace(/\/{workspace}/gi,(m=s.config)!=null&&m.workspace?`/${s.config.workspace}`:"")),o=o.replace(/{id}/gi,s.gatewayServiceId),o}),T=o=>{let i="";o.url&&(i=new URL(o.url).protocol),(["https","wss","tls"].includes(o.protocol)||["https","wss","tls"].includes(i))&&(o.tls_verify=o.tls_verify_enabled?o.tls_verify_value:null),delete o.tls_verify_enabled,delete o.tls_verify_value},P=e.computed(()=>{var i,m,N,h;const o={name:t.fields.name||null,tags:t.fields.tags?(N=(m=(i=t.fields.tags)==null?void 0:i.split(","))==null?void 0:m.map(_=>String(_||"").trim()))==null?void 0:N.filter(_=>_!==""):null,protocol:t.fields.protocol,path:t.fields.path||null,read_timeout:t.fields.read_timeout,retries:t.fields.retries,host:t.fields.host,connect_timeout:t.fields.connect_timeout,tls_verify_value:t.fields.tls_verify_value,tls_verify_enabled:t.fields.tls_verify_enabled,ca_certificates:t.fields.ca_certificates?(h=t.fields.ca_certificates)==null?void 0:h.split(",").filter(_=>_!==""):null,client_certificate:t.fields.client_certificate?{id:t.fields.client_certificate}:null,write_timeout:t.fields.write_timeout,port:t.fields.port,url:t.fields.url};return t.fields.client_certificate&&["https","wss","tls"].includes(t.fields.protocol)&&(o.client_certificate={id:t.fields.client_certificate}),t.fields.tls_verify_enabled&&["https","wss","tls"].includes(t.fields.protocol)&&(o.tls_verify=t.fields.tls_verify_value),q.value||(o.path=null),M.value==="create"?y.value==="url"?(delete o.protocol,delete o.host,delete o.path,s.config.app==="konnect"&&delete o.port):delete o.url:M.value==="edit"&&delete o.url,o}),D=async()=>{var o,i,m,N;try{t.isReadonly=!0,v();const h=P.value;T(h);let _;if(await w.post(ue.value,h),M.value==="create"?_=await w.post(z.value,h):M.value==="edit"&&(_=((o=s.config)==null?void 0:o.app)==="konnect"?await w.put(z.value,h):await w.patch(z.value,h)),_){const{data:l}=_;t.fields.name=(l==null?void 0:l.name)||"",t.fields.port=l.port||W.getPortFromProtocol(l.protocol),t.fields.protocol=(l==null?void 0:l.protocol)||"http",t.fields.host=(l==null?void 0:l.host)||"",t.fields.path=(l==null?void 0:l.path)||"",t.fields.url=(l==null?void 0:l.url)||"",t.fields.retries=l!=null&&l.retries||(l==null?void 0:l.retries)===0?l==null?void 0:l.retries:5,t.fields.connect_timeout=l!=null&&l.connect_timeout||(l==null?void 0:l.connect_timeout)===0?l==null?void 0:l.connect_timeout:6e4,t.fields.write_timeout=l!=null&&l.write_timeout||(l==null?void 0:l.write_timeout)===0?l==null?void 0:l.write_timeout:6e4,t.fields.read_timeout=l!=null&&l.read_timeout||(l==null?void 0:l.read_timeout)===0?l==null?void 0:l.read_timeout:6e4,t.fields.client_certificate=((i=l==null?void 0:l.client_certificate)==null?void 0:i.id)||"",t.fields.ca_certificates=(m=l==null?void 0:l.ca_certificates)!=null&&m.length?l==null?void 0:l.ca_certificates.join(","):"",t.fields.tls_verify_enabled=(l==null?void 0:l.tls_verify)!==""&&(l==null?void 0:l.tls_verify)!==null&&(l==null?void 0:l.tls_verify)!==void 0,t.fields.tls_verify_value=t.fields.tls_verify_enabled&&(l==null?void 0:l.tls_verify),t.fields.tags=(N=l==null?void 0:l.tags)!=null&&N.length?l.tags.join(", "):"",Object.assign(b,t.fields),c("update",_==null?void 0:_.data)}return _}catch(h){t.errorMessage=C(h),c("error",h)}finally{t.isReadonly=!1}};return e.watch(()=>s.gatewayServiceId,()=>{Object.assign(t.fields,b)}),e.watch(t.fields,o=>{t.fields.port=W.getPortFromProtocol(o.protocol,String(o.port)),c("model-updated",P.value)}),e.onMounted(()=>{c("model-updated",P.value)}),I({validateUrl:v,getPayload:P,saveFormData:D,canSubmit:H,initForm:oe}),(o,i)=>{const m=e.resolveComponent("KInput"),N=e.resolveComponent("KLabel"),h=e.resolveComponent("KRadio"),_=e.resolveComponent("KSelect"),l=e.resolveComponent("KCheckbox"),d=e.resolveComponent("KCollapse");return e.openBlock(),e.createElementBlock("div",Se,[e.createVNode(e.unref(p.EntityBaseForm),{"can-submit":H.value,config:n.config,"edit-id":n.gatewayServiceId,"entity-type":e.unref(p.SupportedEntityType).GatewayService,"error-message":t.errorMessage,"fetch-url":se.value,"form-fields":P.value,"is-readonly":t.isReadonly,onCancel:le,"onFetch:error":i[25]||(i[25]=r=>o.$emit("error",r)),"onFetch:success":oe,onLoading:i[26]||(i[26]=r=>o.$emit("loading",r)),onSubmit:D},{"form-actions":e.withCtx(()=>[e.renderSlot(o.$slots,"form-actions",{canSubmit:H.value,cancel:le,submit:D},void 0,!0)]),default:e.withCtx(()=>[e.createVNode(e.unref(p.EntityFormSection),{description:e.unref(a)("gateway_services.form.sections.general.description"),"hide-info-header":n.hideSectionsInfo,title:e.unref(a)("gateway_services.form.sections.general.title")},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:t.fields.name,"onUpdate:modelValue":i[0]||(i[0]=r=>t.fields.name=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-name-input",error:ne.value,"error-message":B.value,label:e.unref(a)("gateway_services.form.fields.name.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.name.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"name",placeholder:e.unref(a)("gateway_services.form.fields.name.placeholder"),readonly:t.isReadonly,type:"text",onInput:pe},null,8,["modelValue","error","error-message","label","label-attributes","placeholder","readonly"]),e.createVNode(m,{modelValue:t.fields.tags,"onUpdate:modelValue":i[1]||(i[1]=r=>t.fields.tags=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-tags-input",help:e.unref(a)("gateway_services.form.fields.tags.help"),label:e.unref(a)("gateway_services.form.fields.tags.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.tags.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"tags",placeholder:e.unref(a)("gateway_services.form.fields.tags.placeholder"),readonly:t.isReadonly,type:"text"},null,8,["modelValue","help","label","label-attributes","placeholder","readonly"])]),_:1},8,["description","hide-info-header","title"]),e.createVNode(e.unref(p.EntityFormSection),{description:e.unref(a)("gateway_services.form.sections.keys.description"),"hide-info-header":n.hideSectionsInfo,title:e.unref(a)("gateway_services.form.sections.keys.title")},{default:e.withCtx(()=>[A.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",Ie,[e.createVNode(N,{required:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.checkedGroupLabel")),1)]),_:1})]),e.createElementVNode("div",Be,[e.createVNode(h,{modelValue:y.value,"onUpdate:modelValue":i[2]||(i[2]=r=>y.value=r),"data-testid":"gateway-service-url-radio","selected-value":ee.url,onChange:L},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.urlLabel")),1)]),_:1},8,["modelValue","selected-value"])]),y.value==="url"?(e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(m,{modelValue:t.fields.url,"onUpdate:modelValue":i[3]||(i[3]=r=>t.fields.url=r),modelModifiers:{trim:!0},class:"gateway-service-url-input gateway-service-form-margin-bottom","data-testid":"gateway-service-url-input",label:e.unref(a)("gateway_services.form.fields.upstream_url.label"),"label-attributes":{info:n.config.app==="konnect"?e.unref(a)("gateway_services.form.fields.upstream_url.tooltip_for_konnect"):e.unref(a)("gateway_services.form.fields.upstream_url.tooltip_for_km"),tooltipAttributes:{maxWidth:"400"}},name:"url",placeholder:e.unref(a)("gateway_services.form.fields.upstream_url.placeholder"),required:""},null,8,["modelValue","label","label-attributes","placeholder"])])):e.createCommentVNode("",!0),e.createVNode(h,{modelValue:y.value,"onUpdate:modelValue":i[4]||(i[4]=r=>y.value=r),"checked-group":"protocol","data-testid":"gateway-service-protocol-radio","selected-value":ee.protocol,onChange:L},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)("gateway_services.form.sections.keys.checkedGroupAltLabel")),1)]),_:1},8,["modelValue","selected-value"])])),y.value==="protocol"||A.value?(e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(_,{modelValue:t.fields.protocol,"onUpdate:modelValue":i[5]||(i[5]=r=>t.fields.protocol=r),"data-testid":"gateway-service-protocol-select",items:ce,label:e.unref(a)("gateway_services.form.fields.protocol.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.protocol.tooltip"),tooltipAttributes:{maxWidth:"400"}},readonly:t.isReadonly,required:"",width:"100%",onSelected:i[6]||(i[6]=r=>F(t.fields.protocol,r))},null,8,["modelValue","label","label-attributes","readonly"]),e.createVNode(m,{modelValue:t.fields.host,"onUpdate:modelValue":i[7]||(i[7]=r=>t.fields.host=r),modelModifiers:{trim:!0},class:"gateway-service-form-margin-top","data-testid":"gateway-service-host-input",label:e.unref(a)("gateway_services.form.fields.host.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.host.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"host",placeholder:e.unref(a)("gateway_services.form.fields.host.placeholder"),required:""},null,8,["modelValue","label","label-attributes","placeholder"]),q.value?(e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(m,{modelValue:t.fields.path,"onUpdate:modelValue":i[8]||(i[8]=r=>t.fields.path=r),modelModifiers:{trim:!0},class:"gateway-service-form-margin-top","data-testid":"gateway-service-path-input",label:e.unref(a)("gateway_services.form.fields.path.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.path.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"path",placeholder:e.unref(a)("gateway_services.form.fields.path.placeholder")},null,8,["modelValue","label","label-attributes","placeholder"])])):e.createCommentVNode("",!0),e.createVNode(m,{modelValue:t.fields.port,"onUpdate:modelValue":[i[9]||(i[9]=r=>t.fields.port=r),i[10]||(i[10]=()=>{t.fields.port=$(t.fields.port+"")})],class:"gateway-service-form-margin-top","data-testid":"gateway-service-port-input",label:e.unref(a)("gateway_services.form.fields.port.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.port.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"port",type:"number"},null,8,["modelValue","label","label-attributes"])])):e.createCommentVNode("",!0),e.createVNode(d,{modelValue:x.value,"onUpdate:modelValue":i[24]||(i[24]=r=>x.value=r),"data-testid":"advanced-fields-collapse","trigger-alignment":"leading","trigger-label":e.unref(a)("gateway_services.form.sections.keys.viewAdvancedFields")},{default:e.withCtx(()=>[e.createElementVNode("div",Re,[e.createElementVNode("div",$e,[e.createVNode(m,{modelValue:t.fields.retries,"onUpdate:modelValue":[i[11]||(i[11]=r=>t.fields.retries=r),i[12]||(i[12]=()=>{t.fields.retries=$(t.fields.retries+"")})],autocomplete:"off","data-testid":"gateway-service-retries-input",label:e.unref(a)("gateway_services.form.fields.retries.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.retries.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"retries",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",De,[e.createVNode(m,{modelValue:t.fields.connect_timeout,"onUpdate:modelValue":[i[13]||(i[13]=r=>t.fields.connect_timeout=r),i[14]||(i[14]=()=>{t.fields.connect_timeout=$(t.fields.connect_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-connTimeout-input",label:e.unref(a)("gateway_services.form.fields.connect_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.connect_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"connTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",Ae,[e.createVNode(m,{modelValue:t.fields.write_timeout,"onUpdate:modelValue":[i[15]||(i[15]=r=>t.fields.write_timeout=r),i[16]||(i[16]=()=>{t.fields.write_timeout=$(t.fields.write_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-writeTimeout-input",label:e.unref(a)("gateway_services.form.fields.write_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.write_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"writeTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),e.createElementVNode("div",Fe,[e.createVNode(m,{modelValue:t.fields.read_timeout,"onUpdate:modelValue":[i[17]||(i[17]=r=>t.fields.read_timeout=r),i[18]||(i[18]=()=>{t.fields.read_timeout=$(t.fields.read_timeout+"")})],autocomplete:"off","data-testid":"gateway-service-readTimeout-input",label:e.unref(a)("gateway_services.form.fields.read_timeout.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.read_timeout.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"readTimeout",readonly:t.isReadonly,type:"number"},null,8,["modelValue","label","label-attributes","readonly"])]),de.value?(e.openBlock(),e.createElementBlock("div",Le,[e.createVNode(m,{modelValue:t.fields.client_certificate,"onUpdate:modelValue":i[19]||(i[19]=r=>t.fields.client_certificate=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-clientCert-input",label:e.unref(a)("gateway_services.form.fields.client_certificate.label"),"label-attributes":{info:e.unref(a)("gateway_services.form.fields.client_certificate.tooltip"),tooltipAttributes:{maxWidth:"400"}},name:"clientCert",placeholder:e.unref(a)("gateway_services.form.fields.client_certificate.placeholder"),readonly:t.isReadonly,type:"text"},null,8,["modelValue","label","label-attributes","placeholder","readonly"])])):e.createCommentVNode("",!0),te.value?(e.openBlock(),e.createElementBlock("div",qe,[e.createVNode(m,{modelValue:t.fields.ca_certificates,"onUpdate:modelValue":i[20]||(i[20]=r=>t.fields.ca_certificates=r),modelModifiers:{trim:!0},autocomplete:"off","data-testid":"gateway-service-ca-certs-input",label:e.unref(a)("gateway_services.form.fields.ca_certificates.label"),"label-attributes":{tooltipAttributes:{maxWidth:"400"}},placeholder:e.unref(a)("gateway_services.form.fields.ca_certificates.placeholder"),readonly:t.isReadonly,type:"text"},{"label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(U),{keypath:"gateway_services.form.fields.ca_certificates.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.ca_certificates.code1")),1)]),code2:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.ca_certificates.code2")),1)]),_:1})]),_:1},8,["modelValue","label","placeholder","readonly"])])):e.createCommentVNode("",!0),fe.value?(e.openBlock(),e.createElementBlock("div",Ge,[e.createVNode(l,{modelValue:t.fields.tls_verify_enabled,"onUpdate:modelValue":i[21]||(i[21]=r=>t.fields.tls_verify_enabled=r),"data-testid":"gateway-service-tls-verify-checkbox",description:e.unref(a)("gateway_services.form.fields.tls_verify_enabled.help"),label:e.unref(a)("gateway_services.form.fields.tls_verify_enabled.label"),"label-attributes":{tooltipAttributes:{maxWidth:"400"}}},{tooltip:e.withCtx(()=>[e.createVNode(e.unref(U),{keypath:"gateway_services.form.fields.tls_verify_enabled.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(a)("gateway_services.form.fields.tls_verify_enabled.code1")),1)]),_:1})]),_:1},8,["modelValue","description","label"]),t.fields.tls_verify_enabled?(e.openBlock(),e.createElementBlock("div",Ke,[e.createVNode(h,{modelValue:t.fields.tls_verify_value,"onUpdate:modelValue":i[22]||(i[22]=r=>t.fields.tls_verify_value=r),"data-testid":"gateway-service-tls-verify-true-option",label:e.unref(a)("gateway_services.form.fields.tls_verify_option.true.label"),"selected-value":!0},null,8,["modelValue","label"])])):e.createCommentVNode("",!0),t.fields.tls_verify_enabled?(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(h,{modelValue:t.fields.tls_verify_value,"onUpdate:modelValue":i[23]||(i[23]=r=>t.fields.tls_verify_value=r),"data-testid":"gateway-service-tls-verify-false-option",label:e.unref(a)("gateway_services.form.fields.tls_verify_option.false.label"),"selected-value":!1},null,8,["modelValue","label"])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),_:1},8,["modelValue","trigger-label"])]),_: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-35e0db56"]]),je={class:"kong-ui-gateway-service-entity-config-card"},He=e.defineComponent({__name:"GatewayServiceConfigCard",props:{config:{type:Object,required:!0,validator:n=>!(!n||!["konnect","kongManager"].includes(n==null?void 0:n.app)||n.app==="konnect"&&!n.controlPlaneId||n.app==="kongManager"&&typeof n.workspace!="string"||!n.entityId)},configCardDoc:{type:String,default:"",required:!1},hideTitle:{type:Boolean,default:!1}},emits:["loading","fetch:error","fetch:success"],setup(n){const I=n,{i18n:{t:f},i18nT:c}=X.useI18n(),s=e.computed(()=>O.form[I.config.app].edit),{getPropValue:x}=p.useHelpers(),R=(a,C)=>x(a,C)===!0?f("gateway_services.form.fields.tls_verify_option.true.display"):f("gateway_services.form.fields.tls_verify_option.false.display"),U=e.ref({id:{},name:{tooltip:f("gateway_services.form.fields.name.tooltip")},enabled:{},updated_at:{},created_at:{},protocol:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.protocol.tooltip")},host:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.host.tooltip")},path:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.path.tooltip")},port:{section:p.ConfigurationSchemaSection.Basic,tooltip:f("gateway_services.form.fields.port.tooltip")},tags:{tooltip:f("gateway_services.form.fields.tags.tooltip")},retries:{order:1,tooltip:f("gateway_services.form.fields.retries.tooltip")},connect_timeout:{order:2,tooltip:f("gateway_services.form.fields.connect_timeout.tooltip")},write_timeout:{order:3,tooltip:f("gateway_services.form.fields.write_timeout.tooltip")},read_timeout:{order:4,tooltip:f("gateway_services.form.fields.read_timeout.tooltip")},client_certificate:{order:5,tooltip:f("gateway_services.form.fields.client_certificate.tooltip")},ca_certificates:{type:p.ConfigurationSchemaType.BadgeTag,label:f("gateway_services.form.fields.ca_certificates.label"),order:6},tls_verify:{label:f("gateway_services.form.fields.tls_verify_enabled.label")},tls_verify_depth:{hidden:!0}});return(a,C)=>(e.openBlock(),e.createElementBlock("div",je,[e.createVNode(e.unref(p.EntityBaseConfigCard),{config:n.config,"config-card-doc":n.configCardDoc,"config-schema":U.value,"entity-type":e.unref(p.SupportedEntityType).GatewayService,"fetch-url":s.value,"hide-title":n.hideTitle,"onFetch:error":C[0]||(C[0]=w=>a.$emit("fetch:error",w)),"onFetch:success":C[1]||(C[1]=w=>a.$emit("fetch:success",w)),onLoading:C[2]||(C[2]=w=>a.$emit("loading",w))},{"enabled-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.enabled.tooltip",scope:"global"},{false:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.enabled.false")),1)]),true:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.enabled.true")),1)]),_:1})]),"ca_certificates-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.ca_certificates.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.ca_certificates.code1")),1)]),code2:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.ca_certificates.code2")),1)]),_:1})]),"tls_verify-label-tooltip":e.withCtx(()=>[e.createVNode(e.unref(c),{keypath:"gateway_services.form.fields.tls_verify_enabled.tooltip",scope:"global"},{code1:e.withCtx(()=>[e.createElementVNode("code",null,e.toDisplayString(e.unref(f)("gateway_services.form.fields.tls_verify_enabled.code1")),1)]),_:1})]),tls_verify:e.withCtx(w=>[e.createTextVNode(e.toDisplayString(typeof e.unref(x)("rowValue",w)=="boolean"?R("rowValue",w):e.unref(f)("gateway_services.form.fields.tls_verify_option.unset.display")),1)]),client_certificate:e.withCtx(w=>[e.createTextVNode(e.toDisplayString(e.unref(x)("rowValue",w)?e.unref(x)("rowValue",w).id:"–"),1)]),_:1},8,["config","config-card-doc","config-schema","entity-type","fetch-url","hide-title"])]))}});k.GatewayServiceConfigCard=He,k.GatewayServiceForm=We,k.GatewayServiceList=Ee,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED