@kong-ui-public/entities-consumer-credentials 3.11.2-pr.3869.e876c8c8a.0 → 3.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities-consumer-credentials.es.js +396 -0
- package/dist/entities-consumer-credentials.umd.js +1 -0
- package/dist/style.css +1 -0
- package/dist/types/components/ConsumerCredentialList.vue.d.ts +92 -0
- package/dist/types/components/ConsumerCredentialList.vue.d.ts.map +1 -0
- package/dist/types/composables/index.d.ts +6 -0
- package/dist/types/composables/index.d.ts.map +1 -0
- package/dist/types/composables/useI18n.d.ts +9 -0
- package/dist/types/composables/useI18n.d.ts.map +1 -0
- package/dist/types/consumer-credentials-endpoints.d.ts +8 -0
- package/dist/types/consumer-credentials-endpoints.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/consumer-credential-list.d.ts +32 -0
- package/dist/types/types/consumer-credential-list.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
import { defineComponent as Y, computed as B, ref as m, watch as Z, onBeforeMount as ee, resolveComponent as D, openBlock as b, createElementBlock as te, createVNode as i, unref as l, withCtx as a, createTextVNode as u, toDisplayString as s, createBlock as k, createCommentVNode as I, createElementVNode as E, Teleport as ae } from "vue";
|
|
2
|
+
import { AddIcon as ne } from "@kong/icons";
|
|
3
|
+
import { createI18n as ce, i18nTComponent as le } from "@kong-ui-public/i18n";
|
|
4
|
+
import { useAxios as ie, useManagedByColumn as re, useFetcher as se, useDeleteUrlBuilder as oe, EntityTypes as de, FetcherStatus as ue, EntityBaseTable as he, PermissionsWrapper as M, getManagedByLabel as ye, TableTags as pe, EntityDeleteModal as ge } from "@kong-ui-public/entities-shared";
|
|
5
|
+
const fe = { title: "Consumer credentials", list: { toolbar_actions: { acls: { new: "New ACL credential" }, "basic-auth": { new: "New Basic Auth credential" }, "key-auth": { new: "New Key Auth credential" }, "key-auth-enc": { new: "New Key Auth encrypted credential" }, oauth2: { new: "New OAuth 2.0 credential" }, "hmac-auth": { new: "New HMAC credential" }, jwt: { new: "New JWT credential" } }, table_headers: { acls: { group: "Group", created_at: "Created at", tags: "Tags" }, "basic-auth": { password: "Credential", username: "Username", created_at: "Created at", tags: "Tags" }, "key-auth": { key: "Key", created_at: "Created at", tags: "Tags" }, "key-auth-enc": { key: "Key", created_at: "Created at", tags: "Tags" }, oauth2: { name: "Name", client_id: "Client ID", client_secret: "Client secret", created_at: "Created at", tags: "Tags" }, "hmac-auth": { username: "Username", secret: "Secret", created_at: "Created at", tags: "Tags" }, jwt: { key: "Key", algorithm: "Algorithm", created_at: "Created at", tags: "Tags" } }, empty_state: { acls: { title: "Configure a new ACL credential", cta: "New ACL credential" }, "basic-auth": { title: "Configure a new Basic Auth credential", cta: "New Basic Auth credential" }, "key-auth": { title: "Configure a new Key Auth credential", cta: "New Key Auth credential" }, "key-auth-enc": { title: "Configure a new Key Auth Encrypted credential", cta: "New Key Auth Encrypted credential" }, oauth2: { title: "Configure a new OAuth 2.0 credential", cta: "New OAuth 2.0 credential" }, "hmac-auth": { title: "Configure a new HMAC credential", cta: "New HMAC credential" }, jwt: { title: "Configure a new JWT credential", cta: "New JWT credential" } } }, actions: { copy_id: "Copy ID", copy_credential: "Copy credential", copy_key: "Copy key", copy_secret: "Copy secret", copy_json: "Copy JSON", edit: "Edit", delete: "Delete" }, delete: { acls: { title: "Delete an ACL credential" }, "basic-auth": { title: "Delete a Basic Auth credential" }, "key-auth": { title: "Delete a Key Auth credential" }, "key-auth-enc": { title: "Delete a Key Auth encrypted credential" }, oauth2: { title: "Delete an OAuth 2.0 credential" }, "hmac-auth": { title: "Delete an HMAC credential" }, jwt: { title: "Delete a JWT credential" }, description: "This action cannot be reversed." }, error: { general: "Credentials could not be retrieved", delete: "The credential could not be deleted at this time.", copy: "Failed to copy to clipboard" }, copy: { success: "Copied {val} to clipboard", success_brief: "Successfully copied to clipboard" } }, me = {
|
|
6
|
+
credentials: fe
|
|
7
|
+
};
|
|
8
|
+
function be() {
|
|
9
|
+
const c = ce("en-us", me);
|
|
10
|
+
return {
|
|
11
|
+
i18n: c,
|
|
12
|
+
i18nT: le(c)
|
|
13
|
+
// Translation component <i18n-t>
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const _e = {
|
|
17
|
+
useI18n: be
|
|
18
|
+
}, ke = {
|
|
19
|
+
list: {
|
|
20
|
+
konnect: "/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/consumers/{consumerId}/{plugin}",
|
|
21
|
+
kongManager: "/{workspace}/consumers/{consumerId}/{plugin}"
|
|
22
|
+
}
|
|
23
|
+
}, Ce = { class: "kong-ui-entities-consumer-credentials-list" }, ve = /* @__PURE__ */ Y({
|
|
24
|
+
__name: "ConsumerCredentialList",
|
|
25
|
+
props: {
|
|
26
|
+
/** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
|
|
27
|
+
config: {
|
|
28
|
+
type: Object,
|
|
29
|
+
required: !0,
|
|
30
|
+
validator: (c) => !(!c || !["konnect", "kongManager"].includes(c?.app) || !c.createRoute || !c.getEditRoute)
|
|
31
|
+
},
|
|
32
|
+
// used to override the default identifier for the cache entry
|
|
33
|
+
cacheIdentifier: {
|
|
34
|
+
type: String,
|
|
35
|
+
default: ""
|
|
36
|
+
},
|
|
37
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
|
|
38
|
+
canCreate: {
|
|
39
|
+
type: Function,
|
|
40
|
+
required: !1,
|
|
41
|
+
default: async () => !0
|
|
42
|
+
},
|
|
43
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
|
|
44
|
+
canDelete: {
|
|
45
|
+
type: Function,
|
|
46
|
+
required: !1,
|
|
47
|
+
default: async () => !0
|
|
48
|
+
},
|
|
49
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
|
|
50
|
+
canEdit: {
|
|
51
|
+
type: Function,
|
|
52
|
+
required: !1,
|
|
53
|
+
default: async () => !0
|
|
54
|
+
},
|
|
55
|
+
/** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
|
|
56
|
+
useActionOutside: {
|
|
57
|
+
type: Boolean,
|
|
58
|
+
default: !1
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
emits: ["error", "copy:success", "copy:error", "delete:success"],
|
|
62
|
+
setup(c, { emit: N }) {
|
|
63
|
+
const h = N, r = c, { i18n: { t: e, formatUnixTimeStamp: O } } = _e.useI18n(), { axiosInstance: S } = ie(r.config?.axiosRequestConfig), P = {
|
|
64
|
+
acls: {
|
|
65
|
+
group: { label: e("credentials.list.table_headers.acls.group") },
|
|
66
|
+
created_at: { label: e("credentials.list.table_headers.acls.created_at") },
|
|
67
|
+
tags: { label: e("credentials.list.table_headers.acls.tags") }
|
|
68
|
+
},
|
|
69
|
+
"basic-auth": {
|
|
70
|
+
username: { label: e("credentials.list.table_headers.basic-auth.username") },
|
|
71
|
+
created_at: { label: e("credentials.list.table_headers.basic-auth.created_at") },
|
|
72
|
+
tags: { label: e("credentials.list.table_headers.basic-auth.tags") }
|
|
73
|
+
},
|
|
74
|
+
"key-auth": {
|
|
75
|
+
key: { label: e("credentials.list.table_headers.key-auth.key") },
|
|
76
|
+
created_at: { label: e("credentials.list.table_headers.key-auth.created_at") },
|
|
77
|
+
tags: { label: e("credentials.list.table_headers.key-auth.tags") }
|
|
78
|
+
},
|
|
79
|
+
"key-auth-enc": {
|
|
80
|
+
key: { label: e("credentials.list.table_headers.key-auth-enc.key") },
|
|
81
|
+
created_at: { label: e("credentials.list.table_headers.key-auth-enc.created_at") },
|
|
82
|
+
tags: { label: e("credentials.list.table_headers.key-auth-enc.tags") }
|
|
83
|
+
},
|
|
84
|
+
oauth2: {
|
|
85
|
+
name: { label: e("credentials.list.table_headers.oauth2.name") },
|
|
86
|
+
client_id: { label: e("credentials.list.table_headers.oauth2.client_id") },
|
|
87
|
+
client_secret: { label: e("credentials.list.table_headers.oauth2.client_secret") },
|
|
88
|
+
created_at: { label: e("credentials.list.table_headers.oauth2.created_at") },
|
|
89
|
+
tags: { label: e("credentials.list.table_headers.oauth2.tags") }
|
|
90
|
+
},
|
|
91
|
+
"hmac-auth": {
|
|
92
|
+
username: { label: e("credentials.list.table_headers.hmac-auth.username") },
|
|
93
|
+
secret: { label: e("credentials.list.table_headers.hmac-auth.secret") },
|
|
94
|
+
created_at: { label: e("credentials.list.table_headers.hmac-auth.created_at") },
|
|
95
|
+
tags: { label: e("credentials.list.table_headers.hmac-auth.tags") }
|
|
96
|
+
},
|
|
97
|
+
jwt: {
|
|
98
|
+
key: { label: e("credentials.list.table_headers.jwt.key") },
|
|
99
|
+
algorithm: { label: e("credentials.list.table_headers.jwt.algorithm") },
|
|
100
|
+
created_at: { label: e("credentials.list.table_headers.jwt.created_at") },
|
|
101
|
+
tags: { label: e("credentials.list.table_headers.jwt.tags") }
|
|
102
|
+
}
|
|
103
|
+
}, { defaultTablePreferences: F, tableHeaders: L } = re(() => P[r.config.plugin]), j = B(() => {
|
|
104
|
+
let n = `${r.config.apiBaseUrl}${ke.list[r.config.app]}`;
|
|
105
|
+
return r.config.app === "konnect" && (n = n.replace(/{controlPlaneId}/gi, r.config.controlPlaneId || "")), n.replace(/\/{workspace}/gi, r.config.workspace ? `/${r.config.workspace}` : "").replace(/{consumerId}/gi, r.config.consumerId || "").replace(/{plugin}/gi, r.config.plugin || "");
|
|
106
|
+
}), {
|
|
107
|
+
fetcher: R,
|
|
108
|
+
fetcherState: U,
|
|
109
|
+
fetcherCacheKey: K
|
|
110
|
+
} = se(B(() => ({ ...r.config, cacheIdentifier: r.cacheIdentifier })), j), J = () => {
|
|
111
|
+
K.value++;
|
|
112
|
+
}, C = m(null), p = async (n, o, T) => {
|
|
113
|
+
const g = o ? n[o] : JSON.stringify(n);
|
|
114
|
+
if (!await T(g)) {
|
|
115
|
+
H(n, o);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
q(n, o);
|
|
119
|
+
}, q = (n, o) => {
|
|
120
|
+
h("copy:success", {
|
|
121
|
+
entity: n,
|
|
122
|
+
field: o,
|
|
123
|
+
message: o && !["password", "key", "client_secret", "secret"].includes(o) ? e("credentials.copy.success", { val: n[o] }) : e("credentials.copy.success_brief")
|
|
124
|
+
});
|
|
125
|
+
}, H = (n, o) => {
|
|
126
|
+
h("copy:error", {
|
|
127
|
+
entity: n,
|
|
128
|
+
field: o,
|
|
129
|
+
message: e("credentials.error.copy")
|
|
130
|
+
});
|
|
131
|
+
}, V = (n) => ({
|
|
132
|
+
label: e("credentials.actions.edit"),
|
|
133
|
+
to: r.config.getEditRoute(n)
|
|
134
|
+
}), v = m(void 0), w = m(!1), A = m(!1), $ = m(""), W = oe(r.config, j.value), z = B(() => de[r.config.plugin]), G = (n) => {
|
|
135
|
+
v.value = n, w.value = !0;
|
|
136
|
+
}, Q = () => {
|
|
137
|
+
w.value = !1;
|
|
138
|
+
}, X = async () => {
|
|
139
|
+
if (v.value?.id) {
|
|
140
|
+
A.value = !0;
|
|
141
|
+
try {
|
|
142
|
+
await S.delete(W(v.value.id)), A.value = !1, w.value = !1, K.value++, h("delete:success", v.value);
|
|
143
|
+
} catch (n) {
|
|
144
|
+
$.value = n.response?.data?.message || n.message || e("credentials.error.delete"), h("error", n);
|
|
145
|
+
} finally {
|
|
146
|
+
A.value = !1;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
Z(U, (n) => {
|
|
151
|
+
if (n.status === ue.Error) {
|
|
152
|
+
C.value = {
|
|
153
|
+
title: e("credentials.error.general")
|
|
154
|
+
}, n.error?.response?.data?.message && (C.value.message = n.error.response.data.message), h("error", n.error);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
C.value = null;
|
|
158
|
+
});
|
|
159
|
+
const x = m({
|
|
160
|
+
ctaPath: r.config.createRoute,
|
|
161
|
+
ctaText: void 0,
|
|
162
|
+
message: "",
|
|
163
|
+
title: e("credentials.title")
|
|
164
|
+
});
|
|
165
|
+
return ee(async () => {
|
|
166
|
+
await r.canCreate() && (x.value.title = e(`credentials.list.empty_state.${r.config.plugin}.title`), x.value.ctaText = e(`credentials.list.empty_state.${r.config.plugin}.cta`));
|
|
167
|
+
}), (n, o) => {
|
|
168
|
+
const T = D("KButton"), g = D("KCopy"), y = D("KDropdownItem"), f = D("KClipboardProvider");
|
|
169
|
+
return b(), te("div", Ce, [
|
|
170
|
+
i(l(he), {
|
|
171
|
+
"cache-identifier": c.cacheIdentifier,
|
|
172
|
+
"default-table-preferences": l(F),
|
|
173
|
+
"disable-row-click": "",
|
|
174
|
+
"disable-sorting": "",
|
|
175
|
+
"empty-state-options": x.value,
|
|
176
|
+
"enable-entity-actions": "",
|
|
177
|
+
"error-message": C.value,
|
|
178
|
+
fetcher: l(R),
|
|
179
|
+
"fetcher-cache-key": l(K),
|
|
180
|
+
"pagination-type": "offset",
|
|
181
|
+
"preferences-storage-key": "kong-ui-entities-consumer-credentials-list",
|
|
182
|
+
"table-headers": l(L),
|
|
183
|
+
onSort: J
|
|
184
|
+
}, {
|
|
185
|
+
"toolbar-button": a(() => [
|
|
186
|
+
(b(), k(ae, {
|
|
187
|
+
disabled: !c.useActionOutside,
|
|
188
|
+
to: "#kong-ui-app-page-header-action-button"
|
|
189
|
+
}, [
|
|
190
|
+
i(l(M), {
|
|
191
|
+
"auth-function": () => c.canCreate()
|
|
192
|
+
}, {
|
|
193
|
+
default: a(() => [
|
|
194
|
+
i(T, {
|
|
195
|
+
appearance: "primary",
|
|
196
|
+
"data-testid": "toolbar-add-credential",
|
|
197
|
+
size: c.useActionOutside ? "medium" : "large",
|
|
198
|
+
to: c.config.createRoute
|
|
199
|
+
}, {
|
|
200
|
+
default: a(() => [
|
|
201
|
+
i(l(ne)),
|
|
202
|
+
u(" " + s(l(e)(`credentials.list.toolbar_actions.${c.config.plugin}.new`)), 1)
|
|
203
|
+
]),
|
|
204
|
+
_: 1
|
|
205
|
+
}, 8, ["size", "to"])
|
|
206
|
+
]),
|
|
207
|
+
_: 1
|
|
208
|
+
}, 8, ["auth-function"])
|
|
209
|
+
], 8, ["disabled"]))
|
|
210
|
+
]),
|
|
211
|
+
group: a(({ rowValue: t }) => [
|
|
212
|
+
E("b", null, s(t ?? "-"), 1)
|
|
213
|
+
]),
|
|
214
|
+
name: a(({ rowValue: t }) => [
|
|
215
|
+
E("b", null, s(t ?? "-"), 1)
|
|
216
|
+
]),
|
|
217
|
+
username: a(({ rowValue: t }) => [
|
|
218
|
+
E("span", null, s(t ?? "-"), 1)
|
|
219
|
+
]),
|
|
220
|
+
password: a(({ rowValue: t }) => [
|
|
221
|
+
i(g, {
|
|
222
|
+
format: "redacted",
|
|
223
|
+
text: t,
|
|
224
|
+
truncate: ""
|
|
225
|
+
}, null, 8, ["text"])
|
|
226
|
+
]),
|
|
227
|
+
key: a(({ rowValue: t }) => [
|
|
228
|
+
i(g, {
|
|
229
|
+
format: "redacted",
|
|
230
|
+
text: t,
|
|
231
|
+
truncate: ""
|
|
232
|
+
}, null, 8, ["text"])
|
|
233
|
+
]),
|
|
234
|
+
client_secret: a(({ rowValue: t }) => [
|
|
235
|
+
i(g, {
|
|
236
|
+
format: "redacted",
|
|
237
|
+
text: t,
|
|
238
|
+
truncate: ""
|
|
239
|
+
}, null, 8, ["text"])
|
|
240
|
+
]),
|
|
241
|
+
secret: a(({ rowValue: t }) => [
|
|
242
|
+
i(g, {
|
|
243
|
+
format: "redacted",
|
|
244
|
+
text: t,
|
|
245
|
+
truncate: ""
|
|
246
|
+
}, null, 8, ["text"])
|
|
247
|
+
]),
|
|
248
|
+
created_at: a(({ rowValue: t }) => [
|
|
249
|
+
u(s(l(O)(t)), 1)
|
|
250
|
+
]),
|
|
251
|
+
tags: a(({ rowValue: t }) => [
|
|
252
|
+
i(l(pe), { tags: t }, null, 8, ["tags"])
|
|
253
|
+
]),
|
|
254
|
+
managed_by: a(({ rowValue: t }) => [
|
|
255
|
+
u(s(l(ye)(t) ?? "-"), 1)
|
|
256
|
+
]),
|
|
257
|
+
actions: a(({ row: t }) => [
|
|
258
|
+
i(f, null, {
|
|
259
|
+
default: a(({ copyToClipboard: d }) => [
|
|
260
|
+
i(y, {
|
|
261
|
+
"data-testid": "action-entity-copy-id",
|
|
262
|
+
onClick: (_) => p(t, "id", d)
|
|
263
|
+
}, {
|
|
264
|
+
default: a(() => [
|
|
265
|
+
u(s(l(e)("credentials.actions.copy_id")), 1)
|
|
266
|
+
]),
|
|
267
|
+
_: 1
|
|
268
|
+
}, 8, ["onClick"])
|
|
269
|
+
]),
|
|
270
|
+
_: 2
|
|
271
|
+
}, 1024),
|
|
272
|
+
c.config.plugin === "basic-auth" ? (b(), k(f, { key: 0 }, {
|
|
273
|
+
default: a(({ copyToClipboard: d }) => [
|
|
274
|
+
i(y, {
|
|
275
|
+
"data-testid": "action-entity-copy-credential",
|
|
276
|
+
onClick: (_) => p(t, "password", d)
|
|
277
|
+
}, {
|
|
278
|
+
default: a(() => [
|
|
279
|
+
u(s(l(e)("credentials.actions.copy_credential")), 1)
|
|
280
|
+
]),
|
|
281
|
+
_: 1
|
|
282
|
+
}, 8, ["onClick"])
|
|
283
|
+
]),
|
|
284
|
+
_: 2
|
|
285
|
+
}, 1024)) : I("", !0),
|
|
286
|
+
["key-auth", "key-auth-enc", "jwt"].includes(c.config.plugin) ? (b(), k(f, { key: 1 }, {
|
|
287
|
+
default: a(({ copyToClipboard: d }) => [
|
|
288
|
+
i(y, {
|
|
289
|
+
"data-testid": "action-entity-copy-key",
|
|
290
|
+
onClick: (_) => p(t, "key", d)
|
|
291
|
+
}, {
|
|
292
|
+
default: a(() => [
|
|
293
|
+
u(s(l(e)("credentials.actions.copy_key")), 1)
|
|
294
|
+
]),
|
|
295
|
+
_: 1
|
|
296
|
+
}, 8, ["onClick"])
|
|
297
|
+
]),
|
|
298
|
+
_: 2
|
|
299
|
+
}, 1024)) : I("", !0),
|
|
300
|
+
c.config.plugin === "oauth2" ? (b(), k(f, { key: 2 }, {
|
|
301
|
+
default: a(({ copyToClipboard: d }) => [
|
|
302
|
+
i(y, {
|
|
303
|
+
"data-testid": "action-entity-copy-secret",
|
|
304
|
+
onClick: (_) => p(t, "client_secret", d)
|
|
305
|
+
}, {
|
|
306
|
+
default: a(() => [
|
|
307
|
+
u(s(l(e)("credentials.actions.copy_secret")), 1)
|
|
308
|
+
]),
|
|
309
|
+
_: 1
|
|
310
|
+
}, 8, ["onClick"])
|
|
311
|
+
]),
|
|
312
|
+
_: 2
|
|
313
|
+
}, 1024)) : I("", !0),
|
|
314
|
+
c.config.plugin === "hmac-auth" ? (b(), k(f, { key: 3 }, {
|
|
315
|
+
default: a(({ copyToClipboard: d }) => [
|
|
316
|
+
i(y, {
|
|
317
|
+
"data-testid": "action-entity-copy-secret",
|
|
318
|
+
onClick: (_) => p(t, "secret", d)
|
|
319
|
+
}, {
|
|
320
|
+
default: a(() => [
|
|
321
|
+
u(s(l(e)("credentials.actions.copy_secret")), 1)
|
|
322
|
+
]),
|
|
323
|
+
_: 1
|
|
324
|
+
}, 8, ["onClick"])
|
|
325
|
+
]),
|
|
326
|
+
_: 2
|
|
327
|
+
}, 1024)) : I("", !0),
|
|
328
|
+
i(f, null, {
|
|
329
|
+
default: a(({ copyToClipboard: d }) => [
|
|
330
|
+
i(y, {
|
|
331
|
+
"data-testid": "action-entity-copy-json",
|
|
332
|
+
onClick: (_) => p(t, void 0, d)
|
|
333
|
+
}, {
|
|
334
|
+
default: a(() => [
|
|
335
|
+
u(s(l(e)("credentials.actions.copy_json")), 1)
|
|
336
|
+
]),
|
|
337
|
+
_: 1
|
|
338
|
+
}, 8, ["onClick"])
|
|
339
|
+
]),
|
|
340
|
+
_: 2
|
|
341
|
+
}, 1024),
|
|
342
|
+
i(l(M), {
|
|
343
|
+
"auth-function": () => c.canEdit(t)
|
|
344
|
+
}, {
|
|
345
|
+
default: a(() => [
|
|
346
|
+
i(y, {
|
|
347
|
+
"data-testid": "action-entity-edit",
|
|
348
|
+
"has-divider": "",
|
|
349
|
+
item: V(t.id)
|
|
350
|
+
}, null, 8, ["item"])
|
|
351
|
+
]),
|
|
352
|
+
_: 2
|
|
353
|
+
}, 1032, ["auth-function"]),
|
|
354
|
+
i(l(M), {
|
|
355
|
+
"auth-function": () => c.canDelete(t)
|
|
356
|
+
}, {
|
|
357
|
+
default: a(() => [
|
|
358
|
+
i(y, {
|
|
359
|
+
danger: "",
|
|
360
|
+
"data-testid": "action-entity-delete",
|
|
361
|
+
"has-divider": "",
|
|
362
|
+
onClick: (d) => G(t)
|
|
363
|
+
}, {
|
|
364
|
+
default: a(() => [
|
|
365
|
+
u(s(l(e)("credentials.actions.delete")), 1)
|
|
366
|
+
]),
|
|
367
|
+
_: 1
|
|
368
|
+
}, 8, ["onClick"])
|
|
369
|
+
]),
|
|
370
|
+
_: 2
|
|
371
|
+
}, 1032, ["auth-function"])
|
|
372
|
+
]),
|
|
373
|
+
_: 1
|
|
374
|
+
}, 8, ["cache-identifier", "default-table-preferences", "empty-state-options", "error-message", "fetcher", "fetcher-cache-key", "table-headers"]),
|
|
375
|
+
i(l(ge), {
|
|
376
|
+
"action-pending": A.value,
|
|
377
|
+
description: l(e)("credentials.delete.description"),
|
|
378
|
+
"entity-type": z.value,
|
|
379
|
+
error: $.value,
|
|
380
|
+
title: l(e)(`credentials.delete.${c.config.plugin}.title`),
|
|
381
|
+
visible: w.value,
|
|
382
|
+
onCancel: Q,
|
|
383
|
+
onProceed: X
|
|
384
|
+
}, null, 8, ["action-pending", "description", "entity-type", "error", "title", "visible"])
|
|
385
|
+
]);
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
}), we = (c, N) => {
|
|
389
|
+
const h = c.__vccOpts || c;
|
|
390
|
+
for (const [r, e] of N)
|
|
391
|
+
h[r] = e;
|
|
392
|
+
return h;
|
|
393
|
+
}, Ne = /* @__PURE__ */ we(ve, [["__scopeId", "data-v-13102d85"]]);
|
|
394
|
+
export {
|
|
395
|
+
Ne as ConsumerCredentialList
|
|
396
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(o,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@kong/icons"),require("@kong-ui-public/i18n"),require("@kong-ui-public/entities-shared")):typeof define=="function"&&define.amd?define(["exports","vue","@kong/icons","@kong-ui-public/i18n","@kong-ui-public/entities-shared"],e):(o=typeof globalThis<"u"?globalThis:o||self,e(o["kong-ui-public-entities-consumer-credentials"]={},o.Vue,o.KongIcons,o["kong-ui-public-i18n"],o["kong-ui-public-entities-shared"]))})(this,(function(o,e,D,N,i){"use strict";const A={credentials:{title:"Consumer credentials",list:{toolbar_actions:{acls:{new:"New ACL credential"},"basic-auth":{new:"New Basic Auth credential"},"key-auth":{new:"New Key Auth credential"},"key-auth-enc":{new:"New Key Auth encrypted credential"},oauth2:{new:"New OAuth 2.0 credential"},"hmac-auth":{new:"New HMAC credential"},jwt:{new:"New JWT credential"}},table_headers:{acls:{group:"Group",created_at:"Created at",tags:"Tags"},"basic-auth":{password:"Credential",username:"Username",created_at:"Created at",tags:"Tags"},"key-auth":{key:"Key",created_at:"Created at",tags:"Tags"},"key-auth-enc":{key:"Key",created_at:"Created at",tags:"Tags"},oauth2:{name:"Name",client_id:"Client ID",client_secret:"Client secret",created_at:"Created at",tags:"Tags"},"hmac-auth":{username:"Username",secret:"Secret",created_at:"Created at",tags:"Tags"},jwt:{key:"Key",algorithm:"Algorithm",created_at:"Created at",tags:"Tags"}},empty_state:{acls:{title:"Configure a new ACL credential",cta:"New ACL credential"},"basic-auth":{title:"Configure a new Basic Auth credential",cta:"New Basic Auth credential"},"key-auth":{title:"Configure a new Key Auth credential",cta:"New Key Auth credential"},"key-auth-enc":{title:"Configure a new Key Auth Encrypted credential",cta:"New Key Auth Encrypted credential"},oauth2:{title:"Configure a new OAuth 2.0 credential",cta:"New OAuth 2.0 credential"},"hmac-auth":{title:"Configure a new HMAC credential",cta:"New HMAC credential"},jwt:{title:"Configure a new JWT credential",cta:"New JWT credential"}}},actions:{copy_id:"Copy ID",copy_credential:"Copy credential",copy_key:"Copy key",copy_secret:"Copy secret",copy_json:"Copy JSON",edit:"Edit",delete:"Delete"},delete:{acls:{title:"Delete an ACL credential"},"basic-auth":{title:"Delete a Basic Auth credential"},"key-auth":{title:"Delete a Key Auth credential"},"key-auth-enc":{title:"Delete a Key Auth encrypted credential"},oauth2:{title:"Delete an OAuth 2.0 credential"},"hmac-auth":{title:"Delete an HMAC credential"},jwt:{title:"Delete a JWT credential"},description:"This action cannot be reversed."},error:{general:"Credentials could not be retrieved",delete:"The credential could not be deleted at this time.",copy:"Failed to copy to clipboard"},copy:{success:"Copied {val} to clipboard",success_brief:"Successfully copied to clipboard"}}};function B(){const c=N.createI18n("en-us",A);return{i18n:c,i18nT:N.i18nTComponent(c)}}const I={useI18n:B},K={list:{konnect:"/v2/control-planes/{controlPlaneId}/core-entities/{workspace}/consumers/{consumerId}/{plugin}",kongManager:"/{workspace}/consumers/{consumerId}/{plugin}"}},E={class:"kong-ui-entities-consumer-credentials-list"},j=((c,k)=>{const d=c.__vccOpts||c;for(const[r,t]of k)d[r]=t;return d})(e.defineComponent({__name:"ConsumerCredentialList",props:{config:{type:Object,required:!0,validator:c=>!(!c||!["konnect","kongManager"].includes(c?.app)||!c.createRoute||!c.getEditRoute)},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},useActionOutside:{type:Boolean,default:!1}},emits:["error","copy:success","copy:error","delete:success"],setup(c,{emit:k}){const d=k,r=c,{i18n:{t,formatUnixTimeStamp:M}}=I.useI18n(),{axiosInstance:$}=i.useAxios(r.config?.axiosRequestConfig),P={acls:{group:{label:t("credentials.list.table_headers.acls.group")},created_at:{label:t("credentials.list.table_headers.acls.created_at")},tags:{label:t("credentials.list.table_headers.acls.tags")}},"basic-auth":{username:{label:t("credentials.list.table_headers.basic-auth.username")},created_at:{label:t("credentials.list.table_headers.basic-auth.created_at")},tags:{label:t("credentials.list.table_headers.basic-auth.tags")}},"key-auth":{key:{label:t("credentials.list.table_headers.key-auth.key")},created_at:{label:t("credentials.list.table_headers.key-auth.created_at")},tags:{label:t("credentials.list.table_headers.key-auth.tags")}},"key-auth-enc":{key:{label:t("credentials.list.table_headers.key-auth-enc.key")},created_at:{label:t("credentials.list.table_headers.key-auth-enc.created_at")},tags:{label:t("credentials.list.table_headers.key-auth-enc.tags")}},oauth2:{name:{label:t("credentials.list.table_headers.oauth2.name")},client_id:{label:t("credentials.list.table_headers.oauth2.client_id")},client_secret:{label:t("credentials.list.table_headers.oauth2.client_secret")},created_at:{label:t("credentials.list.table_headers.oauth2.created_at")},tags:{label:t("credentials.list.table_headers.oauth2.tags")}},"hmac-auth":{username:{label:t("credentials.list.table_headers.hmac-auth.username")},secret:{label:t("credentials.list.table_headers.hmac-auth.secret")},created_at:{label:t("credentials.list.table_headers.hmac-auth.created_at")},tags:{label:t("credentials.list.table_headers.hmac-auth.tags")}},jwt:{key:{label:t("credentials.list.table_headers.jwt.key")},algorithm:{label:t("credentials.list.table_headers.jwt.algorithm")},created_at:{label:t("credentials.list.table_headers.jwt.created_at")},tags:{label:t("credentials.list.table_headers.jwt.tags")}}},{defaultTablePreferences:S,tableHeaders:O}=i.useManagedByColumn(()=>P[r.config.plugin]),V=e.computed(()=>{let n=`${r.config.apiBaseUrl}${K.list[r.config.app]}`;return r.config.app==="konnect"&&(n=n.replace(/{controlPlaneId}/gi,r.config.controlPlaneId||"")),n.replace(/\/{workspace}/gi,r.config.workspace?`/${r.config.workspace}`:"").replace(/{consumerId}/gi,r.config.consumerId||"").replace(/{plugin}/gi,r.config.plugin||"")}),{fetcher:q,fetcherState:F,fetcherCacheKey:w}=i.useFetcher(e.computed(()=>({...r.config,cacheIdentifier:r.cacheIdentifier})),V),L=()=>{w.value++},g=e.ref(null),p=async(n,l,_)=>{const h=l?n[l]:JSON.stringify(n);if(!await _(h)){U(n,l);return}R(n,l)},R=(n,l)=>{d("copy:success",{entity:n,field:l,message:l&&!["password","key","client_secret","secret"].includes(l)?t("credentials.copy.success",{val:n[l]}):t("credentials.copy.success_brief")})},U=(n,l)=>{d("copy:error",{entity:n,field:l,message:t("credentials.error.copy")})},W=n=>({label:t("credentials.actions.edit"),to:r.config.getEditRoute(n)}),m=e.ref(void 0),C=e.ref(!1),b=e.ref(!1),T=e.ref(""),J=i.useDeleteUrlBuilder(r.config,V.value),H=e.computed(()=>i.EntityTypes[r.config.plugin]),z=n=>{m.value=n,C.value=!0},G=()=>{C.value=!1},Q=async()=>{if(m.value?.id){b.value=!0;try{await $.delete(J(m.value.id)),b.value=!1,C.value=!1,w.value++,d("delete:success",m.value)}catch(n){T.value=n.response?.data?.message||n.message||t("credentials.error.delete"),d("error",n)}finally{b.value=!1}}};e.watch(F,n=>{if(n.status===i.FetcherStatus.Error){g.value={title:t("credentials.error.general")},n.error?.response?.data?.message&&(g.value.message=n.error.response.data.message),d("error",n.error);return}g.value=null});const x=e.ref({ctaPath:r.config.createRoute,ctaText:void 0,message:"",title:t("credentials.title")});return e.onBeforeMount(async()=>{await r.canCreate()&&(x.value.title=t(`credentials.list.empty_state.${r.config.plugin}.title`),x.value.ctaText=t(`credentials.list.empty_state.${r.config.plugin}.cta`))}),(n,l)=>{const _=e.resolveComponent("KButton"),h=e.resolveComponent("KCopy"),u=e.resolveComponent("KDropdownItem"),f=e.resolveComponent("KClipboardProvider");return e.openBlock(),e.createElementBlock("div",E,[e.createVNode(e.unref(i.EntityBaseTable),{"cache-identifier":c.cacheIdentifier,"default-table-preferences":e.unref(S),"disable-row-click":"","disable-sorting":"","empty-state-options":x.value,"enable-entity-actions":"","error-message":g.value,fetcher:e.unref(q),"fetcher-cache-key":e.unref(w),"pagination-type":"offset","preferences-storage-key":"kong-ui-entities-consumer-credentials-list","table-headers":e.unref(O),onSort:L},{"toolbar-button":e.withCtx(()=>[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!c.useActionOutside,to:"#kong-ui-app-page-header-action-button"},[e.createVNode(e.unref(i.PermissionsWrapper),{"auth-function":()=>c.canCreate()},{default:e.withCtx(()=>[e.createVNode(_,{appearance:"primary","data-testid":"toolbar-add-credential",size:c.useActionOutside?"medium":"large",to:c.config.createRoute},{default:e.withCtx(()=>[e.createVNode(e.unref(D.AddIcon)),e.createTextVNode(" "+e.toDisplayString(e.unref(t)(`credentials.list.toolbar_actions.${c.config.plugin}.new`)),1)]),_:1},8,["size","to"])]),_:1},8,["auth-function"])],8,["disabled"]))]),group:e.withCtx(({rowValue:a})=>[e.createElementVNode("b",null,e.toDisplayString(a??"-"),1)]),name:e.withCtx(({rowValue:a})=>[e.createElementVNode("b",null,e.toDisplayString(a??"-"),1)]),username:e.withCtx(({rowValue:a})=>[e.createElementVNode("span",null,e.toDisplayString(a??"-"),1)]),password:e.withCtx(({rowValue:a})=>[e.createVNode(h,{format:"redacted",text:a,truncate:""},null,8,["text"])]),key:e.withCtx(({rowValue:a})=>[e.createVNode(h,{format:"redacted",text:a,truncate:""},null,8,["text"])]),client_secret:e.withCtx(({rowValue:a})=>[e.createVNode(h,{format:"redacted",text:a,truncate:""},null,8,["text"])]),secret:e.withCtx(({rowValue:a})=>[e.createVNode(h,{format:"redacted",text:a,truncate:""},null,8,["text"])]),created_at:e.withCtx(({rowValue:a})=>[e.createTextVNode(e.toDisplayString(e.unref(M)(a)),1)]),tags:e.withCtx(({rowValue:a})=>[e.createVNode(e.unref(i.TableTags),{tags:a},null,8,["tags"])]),managed_by:e.withCtx(({rowValue:a})=>[e.createTextVNode(e.toDisplayString(e.unref(i.getManagedByLabel)(a)??"-"),1)]),actions:e.withCtx(({row:a})=>[e.createVNode(f,null,{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-id",onClick:y=>p(a,"id",s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_id")),1)]),_:1},8,["onClick"])]),_:2},1024),c.config.plugin==="basic-auth"?(e.openBlock(),e.createBlock(f,{key:0},{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-credential",onClick:y=>p(a,"password",s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_credential")),1)]),_:1},8,["onClick"])]),_:2},1024)):e.createCommentVNode("",!0),["key-auth","key-auth-enc","jwt"].includes(c.config.plugin)?(e.openBlock(),e.createBlock(f,{key:1},{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-key",onClick:y=>p(a,"key",s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_key")),1)]),_:1},8,["onClick"])]),_:2},1024)):e.createCommentVNode("",!0),c.config.plugin==="oauth2"?(e.openBlock(),e.createBlock(f,{key:2},{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-secret",onClick:y=>p(a,"client_secret",s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_secret")),1)]),_:1},8,["onClick"])]),_:2},1024)):e.createCommentVNode("",!0),c.config.plugin==="hmac-auth"?(e.openBlock(),e.createBlock(f,{key:3},{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-secret",onClick:y=>p(a,"secret",s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_secret")),1)]),_:1},8,["onClick"])]),_:2},1024)):e.createCommentVNode("",!0),e.createVNode(f,null,{default:e.withCtx(({copyToClipboard:s})=>[e.createVNode(u,{"data-testid":"action-entity-copy-json",onClick:y=>p(a,void 0,s)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.copy_json")),1)]),_:1},8,["onClick"])]),_:2},1024),e.createVNode(e.unref(i.PermissionsWrapper),{"auth-function":()=>c.canEdit(a)},{default:e.withCtx(()=>[e.createVNode(u,{"data-testid":"action-entity-edit","has-divider":"",item:W(a.id)},null,8,["item"])]),_:2},1032,["auth-function"]),e.createVNode(e.unref(i.PermissionsWrapper),{"auth-function":()=>c.canDelete(a)},{default:e.withCtx(()=>[e.createVNode(u,{danger:"","data-testid":"action-entity-delete","has-divider":"",onClick:s=>z(a)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t)("credentials.actions.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["auth-function"])]),_:1},8,["cache-identifier","default-table-preferences","empty-state-options","error-message","fetcher","fetcher-cache-key","table-headers"]),e.createVNode(e.unref(i.EntityDeleteModal),{"action-pending":b.value,description:e.unref(t)("credentials.delete.description"),"entity-type":H.value,error:T.value,title:e.unref(t)(`credentials.delete.${c.config.plugin}.title`),visible:C.value,onCancel:G,onProceed:Q},null,8,["action-pending","description","entity-type","error","title","visible"])])}}}),[["__scopeId","data-v-13102d85"]]);o.ConsumerCredentialList=j,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.deck-command-editor-wrapper[data-v-2da602e1]{isolation:isolate;position:relative}.deck-command-editor-wrapper .deck-command-editor[data-v-2da602e1]{height:300px;margin-top:12px;margin-top:var(--kui-space-50, 12px);width:100%}.deck-command-editor-wrapper .deck-command-copy-button[data-v-2da602e1]{opacity:0;position:absolute;right:10px;top:10px;transition:opacity linear .2s;transition:opacity linear var(--kui-animation-duration-20, .2s);z-index:10000}.deck-command-editor-wrapper:hover .deck-command-copy-button[data-v-2da602e1]{opacity:1}.editor-skeleton[data-v-ec59bbd1]{margin-top:4px;margin-top:var(--kui-space-20, 4px)}.kong-ui-onboarding-card[data-v-10c7d0b0]{background-color:#f9fafb;background-color:var(--kui-color-background-neutral-weakest, #f9fafb)}.kong-ui-onboarding-card .onboarding-card-subtitle[data-v-10c7d0b0]{color:#3a3f51;color:var(--kui-color-text-neutral-stronger, #3a3f51);font-size:14px;font-size:var(--kui-font-size-30, 14px);font-weight:400;font-weight:var(--kui-font-weight-regular, 400);margin-top:4px;margin-top:var(--kui-space-20, 4px)}.kong-ui-onboarding-card .onboarding-items-grid[data-v-10c7d0b0]{display:grid;gap:16px;gap:var(--kui-space-60, 16px);grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.kong-ui-onboarding-card .onboarding-item-wrapper[data-v-10c7d0b0]{background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;padding:0;padding:var(--kui-space-0, 0px);text-align:left;text-decoration:none}.kong-ui-onboarding-card .onboarding-item-wrapper.is-static[data-v-10c7d0b0]{cursor:default}.kong-ui-onboarding-card .onboarding-item-wrapper:not(.is-static):hover .onboarding-item[data-v-10c7d0b0]{border-color:#0044f4;border-color:var(--kui-color-border-primary, #0044f4)}.kong-ui-onboarding-card .onboarding-item-wrapper .onboarding-item[data-v-10c7d0b0]{flex:1}.kong-ui-onboarding-card .onboarding-item-wrapper .onboarding-item[data-v-10c7d0b0] .card-content{align-items:center;display:flex;gap:12px;gap:var(--kui-space-50, 12px)}.kong-ui-onboarding-card .onboarding-item-wrapper .onboarding-item[data-v-10c7d0b0]:not(.vertical-item) .card-content{flex-direction:row}.kong-ui-onboarding-card .onboarding-item-wrapper .onboarding-item.vertical-item[data-v-10c7d0b0] .card-content{align-items:center;flex-direction:column;justify-content:center;text-align:center}.kong-ui-onboarding-card .onboarding-item-wrapper .onboarding-item.vertical-item[data-v-10c7d0b0] .card-content .onboarding-item-content{flex:none}.kong-ui-onboarding-card .onboarding-item-icon-box[data-v-10c7d0b0]{align-items:center;border:1px solid transparent;border:var(--kui-border-width-10, 1px) solid transparent;border-radius:8px;border-radius:var(--kui-border-radius-40, 8px);display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.kong-ui-onboarding-card .onboarding-item-content[data-v-10c7d0b0]{flex:1;min-width:0}.kong-ui-onboarding-card .onboarding-item-title[data-v-10c7d0b0]{color:#232633;color:var(--kui-color-text-neutral-strongest, #232633);font-weight:600;font-weight:var(--kui-font-weight-semibold, 600)}.kong-ui-onboarding-card .onboarding-item-description[data-v-10c7d0b0]{color:#6c7489;color:var(--kui-color-text-neutral, #6c7489);font-size:12px;font-size:var(--kui-font-size-20, 12px);line-height:16px;line-height:var(--kui-line-height-20, 16px);margin-top:4px;margin-top:var(--kui-space-20, 4px);overflow-wrap:break-word}.kong-ui-onboarding-card .onboarding-item-append-icon[data-v-10c7d0b0]{flex-shrink:0}.config-card-fieldset[data-v-5baf64ca]{border:solid 1px #e0e4ea;border:solid var(--kui-border-width-10, 1px) var(--kui-color-border, #e0e4ea);border-radius:4px;margin-bottom:8px;margin-bottom:var(--kui-space-40, 8px);margin-top:4px}.config-card-fieldset-title[data-v-5baf64ca]{font-size:14px;font-size:var(--kui-font-size-30, 14px);padding:0 8px;padding:0 var(--kui-space-40, 8px);width:auto}fieldset.config-card-fieldset .config-card-details-row{width:unset}.config-card-json-item .config-card-details-row,fieldset.config-card-fieldset .config-card-details-row{margin:0 16px;margin:var(--kui-space-0, 0px) var(--kui-space-60, 16px)}.config-card-json-item .config-card-details-row:last-of-type,fieldset.config-card-fieldset .config-card-details-row:last-of-type{border-bottom:none}[data-v-6996418f] .k-button.navigation-button{font-size:14px;font-weight:400}.navigation-link[data-v-6996418f]{color:#0044f4;color:var(--kui-color-text-primary, #0044f4);font-size:14px;font-weight:400;text-decoration:underline}.navigation-subtitle[data-v-6996418f]{color:#6c7489;color:var(--kui-color-text-neutral, #6c7489);font-size:12px;font-weight:400}.config-card-details-row[data-v-b5a200cb]{align-items:center;border-bottom:1px solid #e0e4ea;border-bottom:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);box-sizing:border-box;display:flex;padding:16px;padding:var(--kui-space-60, 16px);padding-left:0;width:100%}.config-card-details-row.json-array-item[data-v-b5a200cb]{border-bottom:none}.config-card-details-row.json-item[data-v-b5a200cb]{display:block}.config-card-details-row .config-card-details-label[data-v-b5a200cb]{box-sizing:border-box;padding-right:16px;padding-right:var(--kui-space-60, 16px);width:25%}.config-card-details-row .config-card-details-label.json-item-label[data-v-b5a200cb]{width:100%}.config-card-details-row .config-card-details-label.slim-label[data-v-b5a200cb]{width:50%}.config-card-details-row .config-card-details-label label[data-v-b5a200cb]{color:#3a3f51;color:var(--kui-color-text-neutral-stronger, #3a3f51);display:inline-flex;max-width:100%}.config-card-details-row .config-card-details-label label .label-content[data-v-b5a200cb]{line-height:initial;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-details-row .config-card-details-label label .k-popover[data-v-b5a200cb]{min-width:0}.config-card-details-row .config-card-details-value[data-v-b5a200cb]{box-sizing:border-box;width:75%}.config-card-details-row .config-card-details-value.json-item-value[data-v-b5a200cb]{width:100%}.config-card-details-row .config-card-details-value.slim-value[data-v-b5a200cb]{width:50%}.config-card-details-row .config-card-details-value .truncated[data-v-b5a200cb]{display:inline-block;line-height:initial;max-width:20ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-details-row .config-card-details-value span.attrs-data-text[data-v-b5a200cb]{overflow-wrap:anywhere}.config-card-details-row .config-card-details-value .copy-uuid-array[data-v-b5a200cb] .k-copy:not(:last-of-type){margin-bottom:8px;margin-bottom:var(--kui-space-40, 8px)}.config-card-details-row .config-card-details-value .method-badge-array[data-v-b5a200cb]{display:flex;flex-wrap:wrap;row-gap:10px}.config-card-details-row .config-badge[data-v-b5a200cb]{margin-right:4px;margin-right:var(--kui-space-20, 4px)}.config-card-details-row[data-v-b5a200cb] .k-label{margin-bottom:0}.config-card-details-row[data-v-b5a200cb] .k-label .kong-icon-infoFilled{display:flex}.config-card-details-row[data-v-b5a200cb] .config-card-details-row{width:auto}.json-content.k-code-block{border-top-left-radius:0;border-top-left-radius:var(--kui-border-radius-0, 0px);border-top-right-radius:0;border-top-right-radius:var(--kui-border-radius-0, 0px)}.json-endpoint{align-items:baseline;background-color:#fff;background-color:var(--kui-color-background, #ffffff);border-bottom:1px solid rgba(255,255,255,.2);border-bottom:var(--kui-border-width-10, 1px) solid var(--kui-color-border-inverse, rgba(255, 255, 255, .2));border-top-left-radius:8px;border-top-left-radius:var(--kui-border-radius-40, 8px);border-top-right-radius:8px;border-top-right-radius:var(--kui-border-radius-40, 8px);display:flex;gap:6px;gap:var(--kui-space-30, 6px);padding:8px 0;padding:var(--kui-space-40, 8px) var(--kui-space-0, 0px)}.json-endpoint .k-code-block{flex:auto;z-index:2}.json-endpoint .k-code-block .code-block-content{padding-bottom:0;padding-bottom:var(--kui-space-0, 0px);padding-top:0;padding-top:var(--kui-space-0, 0px)}.json-endpoint .k-code-block .code-block-secondary-actions{margin-top:0!important}.json-endpoint code{direction:rtl;max-width:var(--v06a68197);overflow:hidden!important;text-align:left;text-overflow:ellipsis;white-space:nowrap}.deck-callout[data-v-0bf1334c]{margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px)}.deck-callout .cta[data-v-0bf1334c]{background:none;border:none;color:inherit;cursor:pointer;font:inherit;font-weight:600;font-weight:var(--kui-font-weight-semibold, 600);padding:0;text-decoration:underline}.generate-pat-modal[data-v-be3cd315] .modal-content{display:flex;flex-direction:column;gap:20px;gap:var(--kui-space-70, 20px)}.deck-config .k-select[data-v-81758ed8]{margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px)}.deck-config .k-code-block[data-v-81758ed8]{margin-top:12px;margin-top:var(--kui-space-50, 12px)}.deck-config .k-code-block.customization[data-v-81758ed8]{background-color:#fff;background-color:var(--kui-color-background, #ffffff);border:1px solid #e0e4ea;border:1px solid var(--kui-color-border, #e0e4ea);border-radius:8px;border-radius:var(--kui-border-radius-40, 8px)}.deck-config .step-title[data-v-81758ed8]{align-items:center;align-self:stretch;font-size:16px;font-size:var(--kui-font-size-40, 16px);font-weight:700;font-weight:var(--kui-font-weight-bold, 700);gap:16px}.deck-config .step-title[data-v-81758ed8]:not(:first-child){margin-top:16px;margin-top:var(--kui-space-60, 16px)}.deck-config .konnect-pat-actions[data-v-81758ed8]{align-items:center;display:flex;flex-direction:row;gap:8px;gap:var(--kui-space-40, 8px);margin-top:8px;margin-top:var(--kui-space-40, 8px)}.deck-config .copy-konnect-pat-alert[data-v-81758ed8]{margin-top:8px;margin-top:var(--kui-space-40, 8px)}.deck-config .customization-secret-advise[data-v-81758ed8]{font-size:14px;font-size:var(--kui-font-size-30, 14px);opacity:.7}.deck-config .customization-footer-reminder[data-v-81758ed8]{margin-top:16px;margin-top:var(--kui-space-60, 16px)}.config-card-prop-section-title[data-v-83075649]{color:#0d0e14;color:var(--kui-color-text, #0d0e14);font-size:16px;font-size:var(--kui-font-size-40, 16px);font-weight:600;font-weight:var(--kui-font-weight-semibold, 600);margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px);margin-top:48px;margin-top:var(--kui-space-110, 48px)}.kong-ui-entity-base-config-card .config-card-actions[data-v-40eb9709]{align-items:center;display:flex;gap:16px;gap:var(--kui-space-60, 16px)}.kong-ui-entity-base-config-card .config-card-actions .row[data-v-40eb9709]{align-items:center;display:flex}.kong-ui-entity-base-config-card .config-card-actions .config-format-select-label[data-v-40eb9709]{margin-bottom:0;margin-bottom:var(--kui-space-0, 0px);margin-right:8px;margin-right:var(--kui-space-40, 8px)}.kong-ui-entity-base-config-card .config-card-actions .sensitive-fields-checkbox[data-v-40eb9709]{align-items:center}.kong-ui-entity-base-config-card .config-card-actions .sensitive-fields-checkbox[data-v-40eb9709] .checkbox-label{width:max-content}.kong-ui-entity-base-config-card .config-card-prop-section-title[data-v-40eb9709]{color:#0d0e14;color:var(--kui-color-text, #0d0e14);font-size:16px;font-size:var(--kui-font-size-40, 16px);font-weight:600;margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px);margin-top:48px;margin-top:var(--kui-space-110, 48px)}.kong-ui-entity-base-config-card[data-v-40eb9709] .config-card-details-row:last-of-type{border-bottom:none}.kong-ui-entity-base-config-card .book-icon[data-v-40eb9709]{margin-left:8px;margin-left:var(--kui-space-40, 8px);padding:0;padding:var(--kui-space-0, 0px)}.kong-ui-entity-base-form[data-v-b3590221]{box-sizing:border-box;max-width:1536px;max-width:var(--kui-breakpoint-desktop, 1536px);width:100%}.kong-ui-entity-base-form[data-v-b3590221] .k-slideout-title{color:#0d0e14!important;color:var(--kui-color-text, #0d0e14)!important;font-size:24px!important;font-size:var(--kui-font-size-70, 24px)!important;font-weight:700!important;font-weight:var(--kui-font-weight-bold, 700)!important;line-height:32px!important;line-height:var(--kui-line-height-60, 32px)!important;margin-bottom:16px!important;margin-bottom:var(--kui-space-60, 16px)!important}.kong-ui-entity-base-form[data-v-b3590221] .k-card.content-card{padding:0 16px!important;padding:var(--kui-space-0, 0px) var(--kui-space-60, 16px)!important}.kong-ui-entity-base-form[data-v-b3590221] .tab-item>div.tab-link.has-panels{color:#6c7489!important;color:var(--kui-color-text-neutral, #6c7489)!important;font-size:14px!important;font-size:var(--kui-font-size-30, 14px)!important;font-weight:700!important;font-weight:var(--kui-font-weight-bold, 700)!important;line-height:24px!important;line-height:var(--kui-line-height-40, 24px)!important}.kong-ui-entity-base-form[data-v-b3590221] .tab-item.active>div.tab-link.has-panels{color:#0d0e14!important;color:var(--kui-color-text, #0d0e14)!important;font-weight:600!important;font-weight:var(--kui-font-weight-semibold, 600)!important}.kong-ui-entity-base-form[data-v-b3590221] .slideout-content{overflow-y:unset!important}.kong-ui-entity-base-form.new-form-layout[data-v-b3590221]{background-color:#0000;background-color:var(--kui-color-background-transparent, rgba(0, 0, 0, 0));border:none;padding:0}.kong-ui-entity-base-form.new-form-layout[data-v-b3590221]>.card-content>form>.form-actions{justify-content:flex-start;margin-top:20px;margin-top:var(--kui-space-70, 20px)}.kong-ui-entity-base-form.new-form-layout .form-error[data-v-b3590221]{margin:20px 0 0 16px;margin:var(--kui-space-70, 20px) 0 0 var(--kui-space-60, 16px)}.kong-ui-entity-base-form .button-customize-deck-wrapper[data-v-b3590221]{display:flex;flex-direction:row;justify-content:flex-end;margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px)}.form-actions[data-v-b3590221]{align-items:center;display:flex;justify-content:flex-end;margin-top:24px;margin-top:var(--kui-space-80, 24px)}.form-actions[data-v-b3590221] .k-button:last-of-type,.form-actions[data-v-b3590221] .k-button:nth-last-of-type(2){margin-inline-start:16px;margin-inline-start:var(--kui-space-60, 16px)}.form-actions-reverted[data-v-b3590221]{direction:rtl}.content-wrapper[data-v-a3a65cac] .k-tooltip{word-break:break-all}.kong-ui-entity-base-table .toolbar-container[data-v-bcc0ec48]{align-items:center;display:flex;width:100%}.kong-ui-entity-base-table .toolbar-button-container[data-v-bcc0ec48]{margin-left:auto}.kong-ui-entity-base-table .hidden[data-v-bcc0ec48]{display:none}.kong-ui-entity-delete-modal .message[data-v-61f55f42],.kong-ui-entity-delete-modal .description[data-v-61f55f42]{line-height:20px;line-height:var(--kui-line-height-30, 20px);margin:0;margin:var(--kui-space-0, 0px)}.kong-ui-entity-delete-modal .message strong[data-v-61f55f42]{font-weight:600;font-weight:var(--kui-font-weight-semibold, 600)}.kong-ui-entity-delete-modal .description[data-v-61f55f42]{margin-top:32px;margin-top:var(--kui-space-90, 32px)}.kong-ui-entity-delete-modal .extra[data-v-61f55f42]{margin-top:16px;margin-top:var(--kui-space-60, 16px)}.kong-ui-entity-delete-modal .body-stacked-copy .description[data-v-61f55f42]{margin-top:0;margin-top:var(--kui-space-0, 0px)}.kong-ui-entity-delete-modal .body-stacked-copy .description>p[data-v-61f55f42]{margin:0;margin:var(--kui-space-0, 0px)}.kong-ui-entity-delete-modal .body-stacked-copy .message[data-v-61f55f42]{margin-bottom:0;margin-bottom:var(--kui-space-0, 0px)}.kong-ui-entity-delete-modal[data-v-61f55f42] .prompt-confirmation-text{line-height:20px;line-height:var(--kui-line-height-30, 20px);margin:0;margin:var(--kui-space-0, 0px)}.kong-ui-entity-delete-modal-stacked-copy[data-v-61f55f42] .prompt-content+.prompt-confirmation-container{margin-top:32px;margin-top:var(--kui-space-90, 32px)}.kong-ui-entity-delete-error[data-v-61f55f42]{margin-bottom:12px;margin-bottom:var(--kui-space-50, 12px)}.kong-ui-entity-filter-input[data-v-10015be6]{width:100%}.kong-ui-entity-filter-clear[data-v-10015be6]{cursor:pointer}.kong-ui-entity-filter[data-v-10015be6]{display:flex;position:relative}.kong-ui-entity-filter[data-v-10015be6] .menu-content{flex-direction:column}.kong-ui-entity-filter[data-v-10015be6] .k-menu-item-divider hr{margin:12px 0}.kong-ui-entity-filter-backdrop[data-v-10015be6]{inset:0;position:fixed;z-index:1050}.kong-ui-entity-filter-menu[data-v-10015be6]{background-color:#fff;background-color:var(--kui-color-background, #ffffff);border:1px solid #afb7c5;border:var(--kui-border-width-10, 1px) solid var(--kui-color-border-neutral-weak, #afb7c5);border-radius:4px;border-radius:var(--kui-border-radius-20, 4px);box-shadow:0 4px 20px #e0e4ea;box-shadow:0 4px 20px var(--kui-color-border, #e0e4ea);left:0;margin-top:16px;padding:8px 0 12px;padding:var(--kui-space-40, 8px) 0 var(--kui-space-50, 12px);position:absolute;top:100%;width:300px;z-index:1060}.kong-ui-entity-filter-menu-item[data-v-10015be6]{border-bottom:1px solid #e0e4ea;border-bottom:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);color:#6c7489;color:var(--kui-color-text-neutral, #6c7489);font-size:12px;font-size:var(--kui-font-size-20, 12px);font-weight:400;font-weight:var(--kui-font-weight-regular, 400);line-height:16px;line-height:var(--kui-line-height-20, 16px);list-style:none;margin:0 20px;margin:var(--kui-space-0, 0px) var(--kui-space-70, 20px);padding:16px 0;padding:var(--kui-space-60, 16px) 0;position:relative;white-space:nowrap}.menu-item-title[data-v-10015be6]{align-items:center;cursor:pointer;display:flex;line-height:24px;line-height:var(--kui-line-height-40, 24px)}.menu-item-title.expanded[data-v-10015be6]{color:#232633;color:var(--kui-color-text-neutral-strongest, #232633)}.menu-item-expand-icon[data-v-10015be6]{margin-left:auto}.menu-item-expand-icon.expanded[data-v-10015be6]{transform:rotate(180deg)}.menu-item-indicator[data-v-10015be6]{background-color:#0044f4;background-color:var(--kui-color-background-primary, #0044f4);border-radius:50%;height:4px;margin-left:4px;width:4px}.menu-item-body[data-v-10015be6]{align-items:center;display:flex;justify-content:space-between;margin-top:16px;margin-top:var(--kui-space-60, 16px)}.menu-item-body[data-v-10015be6] .input{padding-bottom:4px!important;padding-top:4px!important}.menu-item-body[data-v-10015be6] .k-input{width:100%}.menu-item-body[data-v-10015be6] .k-select-input .input{font-size:12px}.menu-item-body[data-v-10015be6] .k-select-input .input::placeholder{color:#00000073!important;font-size:12px}.menu-item-label[data-v-10015be6]{margin-bottom:0;margin-right:12px}.menu-item-buttons[data-v-10015be6]{display:flex;justify-content:space-between;margin:10px 0 6px}.filter-clear-button-container[data-v-10015be6]{padding:12px 20px 0;padding:var(--kui-space-50, 12px) var(--kui-space-70, 20px) 0}fieldset[data-v-ccd29028]{margin:0;min-width:0;padding:0}.kong-ui-entity-form-section[data-v-ccd29028]{border:0}.kong-ui-entity-form-section .form-section-wrapper[data-v-ccd29028]{column-gap:16px;column-gap:var(--kui-space-60, 16px);display:flex;flex-direction:column;padding-bottom:64px;padding-bottom:var(--kui-space-130, 64px);row-gap:12px;row-gap:var(--kui-space-50, 12px);width:100%}@media(min-width:1024px){.kong-ui-entity-form-section .form-section-wrapper[data-v-ccd29028]{flex-direction:row}}.kong-ui-entity-form-section .form-section-wrapper .form-section-info[data-v-ccd29028]{flex:1}@media(min-width:1024px){.kong-ui-entity-form-section .form-section-wrapper .form-section-info[data-v-ccd29028]{max-width:350px}.kong-ui-entity-form-section .form-section-wrapper .form-section-info.sticky[data-v-ccd29028]{height:fit-content;margin-bottom:16px;margin-bottom:var(--kui-space-60, 16px);position:sticky;top:16px}}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-title[data-v-ccd29028]{color:#0d0e14;color:var(--kui-color-text, #0d0e14);font-size:16px;font-size:var(--kui-font-size-40, 16px);font-weight:700;font-weight:var(--kui-font-weight-bold, 700);line-height:20px;line-height:var(--kui-line-height-30, 20px);margin-bottom:8px;margin-bottom:var(--kui-space-40, 8px);margin-top:0;margin-top:var(--kui-space-0, 0px)}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description[data-v-ccd29028],.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description p[data-v-ccd29028],.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-description[data-v-ccd29028] p{color:#0d0e14;color:var(--kui-color-text, #0d0e14);font-size:14px;font-size:var(--kui-font-size-30, 14px);font-weight:400;line-height:20px;margin:0}.kong-ui-entity-form-section .form-section-wrapper .form-section-info .form-section-footer[data-v-ccd29028]{margin-top:32px;margin-top:var(--kui-space-90, 32px)}.kong-ui-entity-form-section .form-section-wrapper .form-section-content[data-v-ccd29028]{flex:1}.kong-ui-entity-form-section .form-section-wrapper .form-section-content[data-v-ccd29028]>*:not(:first-child){margin-top:24px;margin-top:var(--kui-space-80, 24px)}.kong-ui-entity-form-section.has-divider .form-section-wrapper[data-v-ccd29028]{border-bottom:1px solid #e0e4ea;border-bottom:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea)}.kong-ui-entity-form-block .header[data-v-7dd2f21d]{align-items:flex-start;display:flex;gap:8px;gap:var(--kui-space-40, 8px)}.kong-ui-entity-form-block .step[data-v-7dd2f21d]{align-items:center;background:#fff;background:var(--kui-color-background, #ffffff);border:1px solid #afb7c5;border:1px solid var(--kui-color-border-neutral-weak, #afb7c5);border-radius:100px;border-radius:var(--kui-border-radius-round, 100px);display:flex;flex:0 0 auto;height:32px;justify-content:center;padding:4px;padding:var(--kui-space-20, 4px);width:32px}.kong-ui-entity-form-block .header-content[data-v-7dd2f21d]{align-items:flex-start;display:flex;flex:1 1 auto;flex-direction:column;gap:8px;gap:var(--kui-space-40, 8px);padding-top:4px;padding-top:var(--kui-space-20, 4px)}.kong-ui-entity-form-block .header-title[data-v-7dd2f21d]{color:#0d0e14;color:var(--kui-color-text, #0d0e14);font-size:18px;font-size:var(--kui-font-size-50, 18px);font-weight:700;font-weight:var(--kui-font-weight-bold, 700);line-height:24px;line-height:var(--kui-line-height-40, 24px);margin:0}.kong-ui-entity-form-block .header-description[data-v-7dd2f21d]{color:#52596e;color:var(--kui-color-text-neutral-strong, #52596e);font-size:14px;font-size:var(--kui-font-size-30, 14px);line-height:20px;line-height:var(--kui-line-height-30, 20px);margin:0}.kong-ui-entity-form-block .header-extra[data-v-7dd2f21d]{align-items:center;display:flex;flex:0 0 auto;gap:8px;gap:var(--kui-space-40, 8px);justify-content:flex-end}.kong-ui-entity-form-block .content[data-v-7dd2f21d]{background:#fff;background:var(--kui-color-background, #ffffff);border:1px solid #e0e4ea;border:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);border-radius:6px;border-radius:var(--kui-border-radius-30, 6px);display:flex;flex-direction:column;gap:20px;gap:var(--kui-space-70, 20px);margin-top:20px;margin-top:var(--kui-space-70, 20px);padding:20px 24px;padding:var(--kui-space-70, 20px) var(--kui-space-80, 24px)}.kong-ui-entity-form-block.stepped .content[data-v-7dd2f21d]{margin-left:16px;margin-left:var(--kui-space-60, 16px)}.kong-ui-public-entity-link[data-v-6668aea9]{align-items:center;display:flex}.kong-ui-public-entity-link .deleted-entity[data-v-6668aea9]{font-style:italic}.kong-ui-public-entity-link .entity-link[data-v-6668aea9]{display:flex;flex:1}.kong-ui-public-entity-link .entity-link[data-v-6668aea9] .external-link-icon{color:#0044f4;color:var(--kui-color-text-primary, #0044f4);margin-left:4px;margin-left:var(--kui-space-20, 4px);padding:2px;padding:var(--kui-space-10, 2px)}.kong-ui-public-entity-link .entity-link-label[data-v-6668aea9]{display:inline-block;font-weight:400;font-weight:var(--kui-font-weight-regular, 400);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kong-ui-public-entity-link .copy-uuid-tooltip[data-v-6668aea9]{align-items:center;cursor:pointer;display:flex}.kong-ui-public-entity-link .copy-uuid-tooltip .entity-link-copy-id[data-v-6668aea9]{margin-left:2px;margin-left:var(--kui-space-10, 2px)}.kong-ui-public-entity-empty-state[data-v-0b2e9081]{align-items:center;background-color:#fff;background-color:var(--kui-color-background, #ffffff);box-sizing:border-box;display:flex;flex-direction:column;font-family:Inter,Roboto,Helvetica,sans-serif;font-family:var(--kui-font-family-text, "Inter", Roboto, Helvetica, sans-serif);gap:24px;gap:var(--kui-space-80, 24px);padding:64px 0;padding:var(--kui-space-130, 64px) var(--kui-space-0, 0px);width:100%}@media(min-width:640px){.kong-ui-public-entity-empty-state[data-v-0b2e9081]{padding:64px 96px;padding:var(--kui-space-130, 64px) var(--kui-space-150, 96px)}}.kong-ui-public-entity-empty-state .empty-state-image[data-v-0b2e9081]{margin-bottom:8px;margin-bottom:var(--kui-space-40, 8px)}.kong-ui-public-entity-empty-state .entity-empty-state-content[data-v-0b2e9081]{align-items:center;display:flex;flex-direction:column;gap:8px;gap:var(--kui-space-40, 8px);text-align:center;width:100%}.kong-ui-public-entity-empty-state .entity-empty-state-content .entity-empty-state-title h1[data-v-0b2e9081]{align-items:center;color:#0d0e14;color:var(--kui-color-text, #0d0e14);display:flex;font-size:24px;font-size:var(--kui-font-size-70, 24px);font-weight:700;font-weight:var(--kui-font-weight-bold, 700);gap:8px;gap:var(--kui-space-40, 8px);line-height:32px;line-height:var(--kui-line-height-60, 32px);margin:0;margin:var(--kui-space-0, 0px)}.kong-ui-public-entity-empty-state .entity-empty-state-content .entity-empty-state-title h1.secondary[data-v-0b2e9081]{font-size:18px;font-size:var(--kui-font-size-50, 18px)}.kong-ui-public-entity-empty-state .entity-empty-state-description[data-v-0b2e9081],.kong-ui-public-entity-empty-state .entity-empty-state-pricing[data-v-0b2e9081]{color:#52596e;color:var(--kui-color-text-neutral-strong, #52596e);font-size:14px;font-size:var(--kui-font-size-30, 14px);font-weight:400;font-weight:var(--kui-font-weight-regular, 400);line-height:20px;line-height:var(--kui-line-height-30, 20px);max-width:640px}.kong-ui-public-entity-empty-state .entity-empty-state-description p[data-v-0b2e9081],.kong-ui-public-entity-empty-state .entity-empty-state-pricing p[data-v-0b2e9081]{margin:0;margin:var(--kui-space-0, 0px)}.kong-ui-public-entity-empty-state .entity-empty-state-pricing[data-v-0b2e9081]{margin-top:16px;margin-top:var(--kui-space-60, 16px)}.kong-ui-public-entity-empty-state .entity-empty-state-message[data-v-0b2e9081]{color:#52596e;color:var(--kui-color-text-neutral-strong, #52596e)}.kong-ui-public-entity-empty-state .entity-empty-state-action[data-v-0b2e9081]{align-items:center;display:flex;gap:12px;gap:var(--kui-space-50, 12px)}.kong-ui-public-entity-empty-state .entity-empty-state-card-container[data-v-0b2e9081]{display:flex;flex-wrap:wrap;gap:16px;gap:var(--kui-space-60, 16px);justify-content:space-around;margin-top:8px;margin-top:var(--kui-space-40, 8px);width:312px}@media(min-width:640px){.kong-ui-public-entity-empty-state .entity-empty-state-card-container[data-v-0b2e9081]{width:calc(624px + kui-space-60);width:calc(2 * 312px + var(--kui-space-60, kui-space-60))}}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-0b2e9081]{background-color:#f9fafb;background-color:var(--kui-color-background-neutral-weakest, #f9fafb);border:1px solid #e0e4ea;border:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);border-radius:6px;border-radius:var(--kui-border-radius-30, 6px);color:#afb7c5;color:var(--kui-color-text-neutral-weak, #afb7c5);gap:8px;gap:var(--kui-space-40, 8px);height:160px;padding:20px;padding:var(--kui-space-70, 20px);width:312px}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card .feature-icon[data-v-0b2e9081]{color:#3a3f51;color:var(--kui-color-text-neutral-stronger, #3a3f51);display:flex;margin-bottom:12px;margin-bottom:var(--kui-space-50, 12px)}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card .feature-icon[data-v-0b2e9081] .kui-icon{height:20px!important;height:var(--kui-icon-size-40, 20px)!important;width:20px!important;width:var(--kui-icon-size-40, 20px)!important}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-0b2e9081] .card-title{font-size:14px;font-size:var(--kui-font-size-30, 14px);font-weight:600;font-weight:var(--kui-font-weight-semibold, 600)}.kong-ui-public-entity-empty-state .entity-empty-state-card-container .entity-empty-state-card[data-v-0b2e9081] .card-content{-webkit-box-orient:vertical;color:#6c7489;color:var(--kui-color-text-neutral, #6c7489);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.kong-ui-public-entity-empty-state .entity-empty-state-bottom-container[data-v-0b2e9081]{border-top:1px solid #e0e4ea;border-top:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);display:flex;flex-direction:column;gap:16px;gap:var(--kui-space-60, 16px);padding-top:48px;padding-top:var(--kui-space-110, 48px);width:100%}@media(min-width:640px){.kong-ui-public-entity-empty-state .entity-empty-state-bottom-container[data-v-0b2e9081]{width:calc(624px + kui-space-60);width:calc(2 * 312px + var(--kui-space-60, kui-space-60))}}.kong-ui-public-sensitive-input[data-v-f64f729c]{display:flex;flex-direction:column;gap:8px;gap:var(--kui-space-40, 8px)}.kong-ui-public-sensitive-input[data-v-f64f729c] .after-content-wrapper{align-items:center;gap:4px!important;gap:var(--kui-space-20, 4px)!important}.kong-ui-public-sensitive-input[data-v-f64f729c] .input{padding-right:var(--v673e9b78)!important}.kong-ui-public-sensitive-input .sensitive-input-action[data-v-f64f729c]{color:#0044f4;color:var(--kui-color-text-primary, #0044f4);font-weight:600;font-weight:var(--kui-font-weight-semibold, 600);white-space:nowrap}.kong-ui-public-sensitive-input .sensitive-input-toggle[data-v-f64f729c]{color:#6c7489;color:var(--kui-color-text-neutral, #6c7489);cursor:pointer}.kong-ui-public-sensitive-input .sensitive-input-error-message[data-v-f64f729c]{color:#d60027;color:var(--kui-color-text-danger, #d60027);font-size:12px;font-size:var(--kui-font-size-20, 12px);margin-top:-4px;margin-top:calc(-1 * var(--kui-space-20, 4px))}.kong-ui-public-sensitive-input .sensitive-input-textarea-actions[data-v-f64f729c]{display:flex;justify-content:flex-end}.kong-ui-public-sensitive-input .sensitive-input-hint[data-v-f64f729c]{align-items:center;background-color:#eefaff;background-color:var(--kui-color-background-info-weakest, #eefaff);border-radius:6px;border-radius:var(--kui-border-radius-30, 6px);color:#0044f4;color:var(--kui-color-text-info, #0044f4);display:flex;gap:8px;gap:var(--kui-space-40, 8px);padding:8px 12px;padding:var(--kui-space-40, 8px) var(--kui-space-50, 12px)}.kong-ui-public-sensitive-input .sensitive-input-hint .sensitive-input-hint-icon[data-v-f64f729c]{flex-shrink:0}.kong-ui-public-sensitive-input .sensitive-input-hint .sensitive-input-hint-text[data-v-f64f729c]{flex:1;font-size:14px;font-size:var(--kui-font-size-30, 14px)}.kong-ui-public-sensitive-input .sensitive-input-hint .sensitive-input-copy[data-v-f64f729c]{display:inline-flex;font-size:12px;font-size:var(--kui-font-size-20, 12px);gap:4px;gap:var(--kui-space-20, 4px)}.kong-ui-entities-consumer-credentials-list[data-v-13102d85]{width:100%}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { PropType } from 'vue';
|
|
2
|
+
import type { AxiosError } from 'axios';
|
|
3
|
+
import type { KongManagerConsumerCredentialListConfig, KonnectConsumerCredentialListConfig, EntityRow, CopyEventPayload } from '../types';
|
|
4
|
+
import '@kong-ui-public/entities-shared/dist/style.css';
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6
|
+
/** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
|
|
7
|
+
config: {
|
|
8
|
+
type: PropType<KonnectConsumerCredentialListConfig | KongManagerConsumerCredentialListConfig>;
|
|
9
|
+
required: true;
|
|
10
|
+
validator: (config: KonnectConsumerCredentialListConfig | KongManagerConsumerCredentialListConfig) => boolean;
|
|
11
|
+
};
|
|
12
|
+
cacheIdentifier: {
|
|
13
|
+
type: StringConstructor;
|
|
14
|
+
default: string;
|
|
15
|
+
};
|
|
16
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
|
|
17
|
+
canCreate: {
|
|
18
|
+
type: PropType<() => boolean | Promise<boolean>>;
|
|
19
|
+
required: false;
|
|
20
|
+
default: () => Promise<boolean>;
|
|
21
|
+
};
|
|
22
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
|
|
23
|
+
canDelete: {
|
|
24
|
+
type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
|
|
25
|
+
required: false;
|
|
26
|
+
default: () => Promise<boolean>;
|
|
27
|
+
};
|
|
28
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
|
|
29
|
+
canEdit: {
|
|
30
|
+
type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
|
|
31
|
+
required: false;
|
|
32
|
+
default: () => Promise<boolean>;
|
|
33
|
+
};
|
|
34
|
+
/** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
|
|
35
|
+
useActionOutside: {
|
|
36
|
+
type: BooleanConstructor;
|
|
37
|
+
default: boolean;
|
|
38
|
+
};
|
|
39
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
40
|
+
error: (error: AxiosError<unknown, any, any>) => any;
|
|
41
|
+
"copy:success": (payload: CopyEventPayload) => any;
|
|
42
|
+
"copy:error": (payload: CopyEventPayload) => any;
|
|
43
|
+
"delete:success": (credential: EntityRow) => any;
|
|
44
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
45
|
+
/** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
|
|
46
|
+
config: {
|
|
47
|
+
type: PropType<KonnectConsumerCredentialListConfig | KongManagerConsumerCredentialListConfig>;
|
|
48
|
+
required: true;
|
|
49
|
+
validator: (config: KonnectConsumerCredentialListConfig | KongManagerConsumerCredentialListConfig) => boolean;
|
|
50
|
+
};
|
|
51
|
+
cacheIdentifier: {
|
|
52
|
+
type: StringConstructor;
|
|
53
|
+
default: string;
|
|
54
|
+
};
|
|
55
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
|
|
56
|
+
canCreate: {
|
|
57
|
+
type: PropType<() => boolean | Promise<boolean>>;
|
|
58
|
+
required: false;
|
|
59
|
+
default: () => Promise<boolean>;
|
|
60
|
+
};
|
|
61
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
|
|
62
|
+
canDelete: {
|
|
63
|
+
type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
|
|
64
|
+
required: false;
|
|
65
|
+
default: () => Promise<boolean>;
|
|
66
|
+
};
|
|
67
|
+
/** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
|
|
68
|
+
canEdit: {
|
|
69
|
+
type: PropType<(row: EntityRow) => boolean | Promise<boolean>>;
|
|
70
|
+
required: false;
|
|
71
|
+
default: () => Promise<boolean>;
|
|
72
|
+
};
|
|
73
|
+
/** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
|
|
74
|
+
useActionOutside: {
|
|
75
|
+
type: BooleanConstructor;
|
|
76
|
+
default: boolean;
|
|
77
|
+
};
|
|
78
|
+
}>> & Readonly<{
|
|
79
|
+
onError?: ((error: AxiosError<unknown, any, any>) => any) | undefined;
|
|
80
|
+
"onCopy:success"?: ((payload: CopyEventPayload) => any) | undefined;
|
|
81
|
+
"onCopy:error"?: ((payload: CopyEventPayload) => any) | undefined;
|
|
82
|
+
"onDelete:success"?: ((credential: EntityRow) => any) | undefined;
|
|
83
|
+
}>, {
|
|
84
|
+
cacheIdentifier: string;
|
|
85
|
+
canCreate: () => boolean | Promise<boolean>;
|
|
86
|
+
canDelete: (row: EntityRow) => boolean | Promise<boolean>;
|
|
87
|
+
canEdit: (row: EntityRow) => boolean | Promise<boolean>;
|
|
88
|
+
useActionOutside: boolean;
|
|
89
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
90
|
+
declare const _default: typeof __VLS_export;
|
|
91
|
+
export default _default;
|
|
92
|
+
//# sourceMappingURL=ConsumerCredentialList.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsumerCredentialList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ConsumerCredentialList.vue"],"names":[],"mappings":"AA8eA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAiBvC,OAAO,KAAK,EAEV,uCAAuC,EACvC,mCAAmC,EACnC,SAAS,EACT,gBAAgB,EACjB,MAAM,UAAU,CAAA;AAMjB,OAAO,gDAAgD,CAAA;AAy7BvD,QAAA,MAAM,YAAY;IAGhB,oHAAoH;;cAElG,QAAQ,CAAC,mCAAmC,GAAG,uCAAuC,CAAC;;4BAEnF,mCAAmC,GAAG,uCAAuC,KAAG,OAAO;;;;;;IAW7G,yHAAyH;;cAErG,QAAQ,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI9D,2HAA2H;;cAEvG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,yHAAyH;;cAErG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,iHAAiH;;;;;;;;;;;IAjCjH,oHAAoH;;cAElG,QAAQ,CAAC,mCAAmC,GAAG,uCAAuC,CAAC;;4BAEnF,mCAAmC,GAAG,uCAAuC,KAAG,OAAO;;;;;;IAW7G,yHAAyH;;cAErG,QAAQ,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI9D,2HAA2H;;cAEvG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,yHAAyH;;cAErG,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;;;IAI5E,iHAAiH;;;;;;;;;;;;qBAhB9E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;qBAM1B,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;mBAMxC,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;4EAU3E,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAA;;;;AAG/B,wBAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createI18n, i18nTComponent } from '@kong-ui-public/i18n';
|
|
2
|
+
import english from '../locales/en.json';
|
|
3
|
+
interface UseI18nReturn {
|
|
4
|
+
i18n: ReturnType<typeof createI18n<typeof english>>;
|
|
5
|
+
i18nT: ReturnType<typeof i18nTComponent<typeof english>>;
|
|
6
|
+
}
|
|
7
|
+
export default function useI18n(): UseI18nReturn;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=useI18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../../src/composables/useI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,OAAO,MAAM,oBAAoB,CAAA;AAExC,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,IAAI,aAAa,CAO/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer-credentials-endpoints.d.ts","sourceRoot":"","sources":["../../src/consumer-credentials-endpoints.ts"],"names":[],"mappings":";;;;;;AAAA,wBAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,yCAAyC,CAAA;AAE5E,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RouteLocationRaw } from 'vue-router';
|
|
2
|
+
import type { KongManagerBaseTableConfig, KonnectBaseTableConfig } from '@kong-ui-public/entities-shared';
|
|
3
|
+
export type CredentialPlugins = 'acls' | 'basic-auth' | 'key-auth' | 'key-auth-enc' | 'oauth2' | 'hmac-auth' | 'jwt';
|
|
4
|
+
export interface BaseConsumerCredentialListConfig {
|
|
5
|
+
/** Consumer ID */
|
|
6
|
+
consumerId: string;
|
|
7
|
+
/** Credential plugin name */
|
|
8
|
+
plugin: CredentialPlugins;
|
|
9
|
+
/** Route for creating a consumer credential */
|
|
10
|
+
createRoute: RouteLocationRaw;
|
|
11
|
+
/** A function that returns the route for editing a consumer credential */
|
|
12
|
+
getEditRoute: (id: string) => RouteLocationRaw;
|
|
13
|
+
}
|
|
14
|
+
/** Konnect consumer credential list config */
|
|
15
|
+
export interface KonnectConsumerCredentialListConfig extends KonnectBaseTableConfig, BaseConsumerCredentialListConfig {
|
|
16
|
+
}
|
|
17
|
+
/** Kong Manager consumer credential list config */
|
|
18
|
+
export interface KongManagerConsumerCredentialListConfig extends KongManagerBaseTableConfig, BaseConsumerCredentialListConfig {
|
|
19
|
+
}
|
|
20
|
+
export interface EntityRow extends Record<string, any> {
|
|
21
|
+
id: string;
|
|
22
|
+
}
|
|
23
|
+
/** Copy field event payload */
|
|
24
|
+
export interface CopyEventPayload {
|
|
25
|
+
/** The entity row */
|
|
26
|
+
entity: EntityRow;
|
|
27
|
+
/** The field being copied. If omitted, the entity JSON is being copied. */
|
|
28
|
+
field?: string;
|
|
29
|
+
/** The toaster message */
|
|
30
|
+
message: string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=consumer-credential-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer-credential-list.d.ts","sourceRoot":"","sources":["../../../src/types/consumer-credential-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAEzG,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAA;AAEpH,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,MAAM,EAAE,iBAAiB,CAAA;IACzB,+CAA+C;IAC/C,WAAW,EAAE,gBAAgB,CAAA;IAC7B,0EAA0E;IAC1E,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,CAAA;CAC/C;AAED,8CAA8C;AAC9C,MAAM,WAAW,mCAAoC,SAAQ,sBAAsB,EAAE,gCAAgC;CAAG;AAExH,mDAAmD;AACnD,MAAM,WAAW,uCAAwC,SAAQ,0BAA0B,EAAE,gCAAgC;CAAG;AAEhI,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpD,EAAE,EAAE,MAAM,CAAA;CACX;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAA;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAGA,cAAc,4BAA4B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/entities-consumer-credentials",
|
|
3
|
-
"version": "3.11.2
|
|
3
|
+
"version": "3.11.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/entities-consumer-credentials.umd.js",
|
|
6
6
|
"module": "./dist/entities-consumer-credentials.es.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@kong-ui-public/entities-shared": "^3.68.2
|
|
24
|
+
"@kong-ui-public/entities-shared": "^3.68.2",
|
|
25
25
|
"@kong-ui-public/i18n": "^2.5.1",
|
|
26
26
|
"@kong/icons": "^1.58.0",
|
|
27
27
|
"@kong/kongponents": "^9.64.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"vue-router": "^4.6.4 || ^5.0.6"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@kong-ui-public/entities-shared": "^3.68.2
|
|
33
|
+
"@kong-ui-public/entities-shared": "^3.68.2",
|
|
34
34
|
"@kong-ui-public/i18n": "^2.5.1",
|
|
35
35
|
"@kong/design-tokens": "3.3.1",
|
|
36
36
|
"@kong/icons": "^1.62.1",
|