@kong-ui-public/entities-data-plane-nodes 0.1.1

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.
@@ -0,0 +1,1940 @@
1
+ var Fe = Object.defineProperty;
2
+ var Me = (e, t, r) => t in e ? Fe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var P = (e, t, r) => (Me(e, typeof t != "symbol" ? t + "" : t, r), r);
4
+ import { ref as b, unref as g, computed as v, watch as ke, inject as Be, toValue as Y, defineComponent as V, openBlock as h, createBlock as E, resolveDynamicComponent as R, normalizeStyle as ee, withCtx as $, createElementBlock as I, toDisplayString as _, createCommentVNode as M, pushScopeId as te, popScopeId as re, createElementVNode as y, resolveComponent as F, Fragment as Ce, createTextVNode as Z, createVNode as J, mergeModels as Pe, useModel as De, renderList as Ke } from "vue";
5
+ import { createI18n as xe, i18nTComponent as Le } from "@kong-ui-public/i18n";
6
+ import fe from "axios";
7
+ import "@kong/kongponents";
8
+ import "vue-router";
9
+ const Re = {
10
+ action_button: {
11
+ confirm: "Confirm",
12
+ submitting: "Submitting...",
13
+ ok: "OK"
14
+ },
15
+ change_log_level: {
16
+ title: "Change Log Level ({summary})",
17
+ summary_with_name: "Node {name}",
18
+ summary_with_number: "{number} Nodes"
19
+ },
20
+ dp_list: {
21
+ header: {
22
+ host: "Host",
23
+ action: "Action",
24
+ status: "Status"
25
+ },
26
+ status: {
27
+ failed: "Failure",
28
+ loading: "Loading",
29
+ pending: "Pending",
30
+ succeed: "Succeed",
31
+ not_supported: "Not Supported"
32
+ }
33
+ },
34
+ log_level_disk_space_warning: "If left on for extended periods of time, can result in excess disk space consumption.",
35
+ log_level_explanation: {
36
+ debug: "Provides debug information about the plugin’s run loop and each individual plugin or other components.",
37
+ info: "Provides messages that provide a record of the normal operation of the system.",
38
+ notice: "Provides messages that provide a record of the normal operation of the system, but also alerts conditions that may require monitoring. Kong does not make a large difference between info and notice.",
39
+ warn: "Is used to log any abnormal behavior that doesn’t result in dropped transactions but requires further investigation.",
40
+ error: "Is used for logging errors that result in a request being dropped.",
41
+ crit: "Is used when Kong is working under critical conditions and not working properly, thus affecting several clients."
42
+ },
43
+ revert_to_default_after: {
44
+ label: "Revert to default after",
45
+ hours: "hour",
46
+ minutes: "min",
47
+ seconds: "seconds"
48
+ },
49
+ select_log_level_title: "Select Log Level"
50
+ }, Ve = {
51
+ debug: "Debug",
52
+ info: "Info",
53
+ notice: "Notice",
54
+ warn: "Warn",
55
+ error: "Error",
56
+ crit: "Critical",
57
+ not_applicable: "N/A"
58
+ }, He = {
59
+ modal: Re,
60
+ log_level: Ve
61
+ };
62
+ function ne() {
63
+ const e = xe("en-us", He);
64
+ return {
65
+ i18n: e,
66
+ i18nT: Le(e)
67
+ // Translation component <i18n-t>
68
+ };
69
+ }
70
+ var K = /* @__PURE__ */ ((e) => (e[e.Loading = 0] = "Loading", e[e.Idle = 1] = "Idle", e[e.NoResults = 2] = "NoResults", e[e.Error = 3] = "Error", e))(K || {});
71
+ function Ze() {
72
+ return {
73
+ getAxiosInstance: (e = {}) => {
74
+ try {
75
+ const t = Be("get-axios-instance", void 0);
76
+ return typeof t == "function" ? t(e) : fe.create({
77
+ withCredentials: !0,
78
+ timeout: 3e4,
79
+ ...e
80
+ });
81
+ } catch (t) {
82
+ return console.warn("getAxiosInstance:", t.message || t), fe.create({
83
+ withCredentials: !0,
84
+ timeout: 3e4,
85
+ ...e
86
+ });
87
+ }
88
+ },
89
+ getTraceIdFromError: (e) => {
90
+ var t;
91
+ return ((t = e == null ? void 0 : e.response) == null ? void 0 : t.headers["x-datadog-trace-id"]) || "";
92
+ }
93
+ };
94
+ }
95
+ function Ye() {
96
+ return {
97
+ debounce: (e, t) => {
98
+ let r;
99
+ return (...n) => {
100
+ clearTimeout(r), r = window == null ? void 0 : window.setTimeout(() => {
101
+ e(...n);
102
+ }, t);
103
+ };
104
+ }
105
+ };
106
+ }
107
+ function ue(e = {}) {
108
+ const { getAxiosInstance: t } = Ze();
109
+ return {
110
+ axiosInstance: t(e)
111
+ };
112
+ }
113
+ const We = {
114
+ actions: {
115
+ copyId: "Copy ID",
116
+ copied_id: 'Copied "{id}" to the clipboard',
117
+ copyToClipboard: "Copied successfully!",
118
+ copyToClipboardFailed: "Failed to copy to the clipboard"
119
+ }
120
+ }, Ge = {
121
+ message: "Are you sure you want to delete this {entityType}?",
122
+ messageWithName: "Are you sure you want to delete this {entityType} {entityName}?"
123
+ }, Qe = {
124
+ actions: {
125
+ viewConfiguration: "View Configuration",
126
+ save: "Save",
127
+ cancel: "Cancel",
128
+ back: "Back"
129
+ },
130
+ configuration: {
131
+ title: "Configuration",
132
+ message: "Export configurations for core Kong Gateway objects, like services, routes, and plugins, to either YAML or JSON. This allows for straightforward importing into APIOps tools like decK with YAML, or Insomnia and cURL with JSON.",
133
+ yaml: "YAML",
134
+ json: "JSON"
135
+ },
136
+ errors: {
137
+ edit: "The entity could not be edited at this time."
138
+ }
139
+ }, Je = {
140
+ emptyState: {
141
+ noSearchResultsTitle: "No results found",
142
+ noSearchResultsMessage: "Please adjust the criteria and try again.",
143
+ noSearchResultsCtaText: "Clear"
144
+ }
145
+ }, Xe = {
146
+ title: "Configuration",
147
+ actions: {
148
+ copy: "Copy JSON"
149
+ },
150
+ sections: {
151
+ advanced: "Advanced",
152
+ plugin: "Plugin Specific Configuration"
153
+ },
154
+ commonFields: {
155
+ id_label: "ID",
156
+ name_label: "Name",
157
+ enabled_label: "Enabled",
158
+ enabled_tooltip: "Enabled is FTW",
159
+ updated_at_label: "Last Updated",
160
+ created_at_label: "Created",
161
+ tags_label: "Tags",
162
+ link: "Link"
163
+ },
164
+ statusBadge: {
165
+ enabledLabel: "Enabled",
166
+ disabledLabel: "Disabled"
167
+ },
168
+ copy: {
169
+ tooltip: "Copy {label}",
170
+ success: "Copied!"
171
+ },
172
+ errors: {
173
+ load: "The entity configuration data could not be loaded at this time.",
174
+ copy: "Failed to copy to clipboard"
175
+ },
176
+ general: {
177
+ entryTitle: "Entry {index}",
178
+ structuredFormat: "Structured"
179
+ }
180
+ }, et = {
181
+ filterButtonText: "Filter",
182
+ fieldLabel: "Filter by:",
183
+ inputPlaceholder: "Enter a value",
184
+ selectPlaceholder: "Select an item",
185
+ applyButtonText: "Apply",
186
+ clearButtonText: "Clear",
187
+ clearAllButtonText: "Clear all filters"
188
+ }, tt = {
189
+ errors: {
190
+ fetch: "Could not fetch available items",
191
+ invalid: "Please select a valid value"
192
+ }
193
+ }, rt = {
194
+ unexpected: "An unexpected error has occurred",
195
+ dataKeyUndefined: 'The data key "{dataKey}" does not exist in the response.'
196
+ }, nt = {
197
+ utf8Name: "The name can be any string containing characters, letters, numbers, or the following characters: ., -, _, or ~. Do not use spaces."
198
+ }, at = {
199
+ enable: {
200
+ title: "Enable {entityType}",
201
+ message: "Are you sure you want to enable the {entityType} {entityName}?",
202
+ confirmText: "Yes, enable"
203
+ },
204
+ disable: {
205
+ title: "Disable {entityType}",
206
+ message: "Are you sure you want to disable the {entityType} {entityName}?",
207
+ confirmText: "Yes, disable"
208
+ }
209
+ }, it = {
210
+ global: We,
211
+ deleteModal: Ge,
212
+ baseForm: Qe,
213
+ baseTable: Je,
214
+ baseConfigCard: Xe,
215
+ filter: et,
216
+ debouncedFilter: tt,
217
+ errors: rt,
218
+ validationErrors: nt,
219
+ toggleModal: at
220
+ };
221
+ function ae() {
222
+ const e = xe("en-us", it);
223
+ return {
224
+ i18n: e,
225
+ i18nT: Le(e)
226
+ // Translation component <i18n-t>
227
+ };
228
+ }
229
+ function Se() {
230
+ const e = (r, n) => (n == null ? void 0 : n[r]) ?? void 0, t = (r, n) => {
231
+ if (r.length !== n.length)
232
+ return !1;
233
+ const a = /* @__PURE__ */ new Set([...r, ...n]);
234
+ for (const i of a) {
235
+ const o = r.filter((u) => u === i).length, s = n.filter((u) => u === i).length;
236
+ if (o !== s)
237
+ return !1;
238
+ }
239
+ return !0;
240
+ };
241
+ return {
242
+ getPropValue: e,
243
+ objectsAreEqual: (r, n, a) => {
244
+ if (a) {
245
+ if (Object.keys(r).length === Object.keys(n).length)
246
+ for (const i in r)
247
+ if (Array.isArray(r[i]) && Array.isArray(n[i])) {
248
+ if (t(r[i], n[i]))
249
+ continue;
250
+ return !1;
251
+ } else {
252
+ if (r[i] === n[i])
253
+ continue;
254
+ return !1;
255
+ }
256
+ else
257
+ return !1;
258
+ return !0;
259
+ }
260
+ try {
261
+ return JSON.stringify(r) === JSON.stringify(n);
262
+ } catch {
263
+ return !1;
264
+ }
265
+ },
266
+ sortAlpha: (r) => (n, a) => {
267
+ let i = n[r] === void 0 || n[r] === null ? "" : n[r], o = a[r] === void 0 || a[r] === null ? "" : a[r];
268
+ return Array.isArray(n[r]) && (i = n[r][0]), Array.isArray(a[r]) && (o = a[r][0]), i.localeCompare(o);
269
+ },
270
+ isValidUuid: (r) => r ? /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/.test(r) : !1
271
+ };
272
+ }
273
+ function ot(e, t, r, n = {
274
+ fetchedItemsKey: "data",
275
+ searchKeys: ["id"]
276
+ }) {
277
+ r || (r = "1000");
278
+ const { axiosInstance: a } = ue(e.axiosRequestConfig), { i18n: { t: i } } = ae(), { debounce: o } = Ye(), s = o(async (m) => {
279
+ await se(m);
280
+ }, 200), u = b(!1), l = b(""), p = b(""), c = b([]), f = b([]), d = b(void 0), T = g(t);
281
+ let S = `${e.apiBaseUrl}${T}`;
282
+ e.app === "konnect" ? S = S.replace(/{controlPlaneId}/gi, (e == null ? void 0 : e.controlPlaneId) || "") : e.app === "kongManager" && (S = S.replace(/\/{workspace}/gi, e != null && e.workspace ? `/${e.workspace}` : ""));
283
+ const { isValidUuid: oe } = Se(), H = async () => {
284
+ try {
285
+ u.value = !0;
286
+ const { data: m } = await a.get(`${S}?size=${r}`);
287
+ m != null && m.next || (d.value = n.fetchedItemsKey in m ? m[n.fetchedItemsKey] : []), f.value = n.fetchedItemsKey in m ? m[n.fetchedItemsKey] : [], c.value = f.value;
288
+ } catch {
289
+ c.value = [], l.value = i("debouncedFilter.errors.fetch");
290
+ } finally {
291
+ u.value = !1;
292
+ }
293
+ }, G = b(""), se = async (m) => {
294
+ var Q, A, N;
295
+ if (G.value !== m)
296
+ if (G.value = m || "", d.value === void 0)
297
+ try {
298
+ if (u.value = !0, l.value = "", p.value = "", e.app === "konnect") {
299
+ let x = S + "";
300
+ m && (x += `/${m}`);
301
+ const { data: L } = await a.get(`${x}?size=${r}`);
302
+ n.fetchedItemsKey in L ? c.value = L[n.fetchedItemsKey] : L != null && L.id ? c.value = [L] : c.value = [];
303
+ } else if (m) {
304
+ const x = [];
305
+ oe(m) && n.searchKeys.includes("id") ? x.push((async () => {
306
+ const { data: k } = await a.get(`${S}/${m}`);
307
+ return [k[n.fetchedItemsKey] ?? k];
308
+ })()) : x.push(
309
+ ...n.searchKeys.filter((k) => k !== "id").map(async (k) => {
310
+ const { data: w } = await a.get(`${S}?${k}=${m}`);
311
+ return w[n.fetchedItemsKey];
312
+ })
313
+ );
314
+ const L = await Promise.all(x), q = /* @__PURE__ */ new Set();
315
+ c.value = [], (Q = L == null ? void 0 : L.forEach) == null || Q.call(L, (k) => {
316
+ var w;
317
+ (w = k == null ? void 0 : k.forEach) == null || w.call(k, (B) => {
318
+ q.has(B.id) || (q.add(B.id), c.value.push(B));
319
+ });
320
+ });
321
+ } else
322
+ c.value = f.value;
323
+ } catch (x) {
324
+ ((A = x == null ? void 0 : x.response) == null ? void 0 : A.status) === 404 ? p.value = i("debouncedFilter.errors.invalid") : (c.value = [], l.value = i("debouncedFilter.errors.fetch"));
325
+ } finally {
326
+ u.value = !1;
327
+ }
328
+ else
329
+ u.value = !0, p.value = "", m ? (c.value = (N = d.value) == null ? void 0 : N.filter((x) => {
330
+ var L;
331
+ let q = !1;
332
+ for (const k of n.searchKeys) {
333
+ const w = typeof x[k] == "string" ? (L = x[k]) == null ? void 0 : L.toLowerCase() : x[k];
334
+ w != null && w.includes(m.toLowerCase()) && (q = !0);
335
+ }
336
+ return q;
337
+ }), (!c.value || !c.value.length) && (p.value = i("debouncedFilter.errors.invalid"))) : c.value = d.value, u.value = !1;
338
+ };
339
+ return {
340
+ loading: u,
341
+ error: l,
342
+ validationError: p,
343
+ results: c,
344
+ allRecords: d,
345
+ loadItems: H,
346
+ debouncedQueryChange: s
347
+ };
348
+ }
349
+ function st(e, t) {
350
+ const r = g(t), n = v(
351
+ () => e.apiBaseUrl.startsWith("/") ? new URL(`${window.location.origin}${r}`) : new URL(r)
352
+ );
353
+ return n.value.search = "", (a) => `${n.value.href}/${a}`;
354
+ }
355
+ function lt() {
356
+ const { i18n: { t: e } } = ae();
357
+ return {
358
+ getMessageFromError: (t) => {
359
+ var r, n, a, i;
360
+ if (!t)
361
+ return e("errors.unexpected");
362
+ if (((r = t == null ? void 0 : t.response) == null ? void 0 : r.status) === 401)
363
+ return console.warn("getMessageFromError: User auth token is expired or missing, returning empty message."), "";
364
+ if ((n = t == null ? void 0 : t.response) != null && n.data) {
365
+ if (t.response.data.detail)
366
+ return t.response.data.detail;
367
+ if ((a = t.response.data.details) != null && a.length)
368
+ return t.response.data.details.map((o) => {
369
+ let s = e("errors.unexpected");
370
+ return o.messages && typeof o.messages == "object" && o.messages.length && (s = o.messages.join(", ")), o.field ? `${o.field} - ${s}` : s;
371
+ }).join("; ");
372
+ if (t.response.data.message) {
373
+ const { message: o } = t.response.data;
374
+ return Array.isArray(o) ? (i = o[0]) != null && i.constraints ? Object.values(o[0].constraints)[0] : o[0] : o;
375
+ }
376
+ if (typeof t.response.data == "string")
377
+ return t.response.data;
378
+ if (typeof t.response.data == "object")
379
+ return Object.keys(t.response.data).map((o) => `${o} ${t.response.data[o]}`).join(", ");
380
+ }
381
+ return t.message || e("errors.unexpected");
382
+ }
383
+ };
384
+ }
385
+ function ut(e) {
386
+ const t = window.location.origin, r = t.endsWith("/") ? t : `${t}/`;
387
+ try {
388
+ const n = e.join("/"), a = `${r}${n}`, i = e.some((o) => o.trim() === "");
389
+ if (/^(https:\/\/(www\.)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}(:[0-9]+)?(\/[^\/]+)*)$|^(https|http):\/\/localhost(:[0-9]+)?(\/[^\/]+)*$/.test(a) && !i && new URL(a))
390
+ return `${r}${n}`;
391
+ throw new Error("Invalid url");
392
+ } catch (n) {
393
+ return console.warn("Failed to build valid URL:", n), "";
394
+ }
395
+ }
396
+ function Ne(e, t) {
397
+ const r = b(g(e)), n = b(g(t)), a = v(
398
+ () => !!(r.value.app === "konnect" || r.value.isExactMatch)
399
+ ), i = v(
400
+ () => n.value.startsWith("/") ? new URL(`${window.location.origin}${n.value}`) : new URL(n.value)
401
+ );
402
+ return (o) => {
403
+ const { page: s, pageSize: u, offset: l, sortColumnKey: p, sortColumnOrder: c, query: f } = o;
404
+ try {
405
+ let d = new URL(i.value.href);
406
+ return a.value && f ? (d.search = "", d = r.value.isExactMatch ? new URL(`${d.href}/${f}/`) : new URL(`${d.href}?filter[name][contains]=${f}`)) : (a.value || new URLSearchParams(f).forEach((T, S) => {
407
+ d.searchParams.append(S, T);
408
+ }), p && d.searchParams.append("sort_by", p), c === "desc" && d.searchParams.append("sort_desc", "1"), d.searchParams.append("size", String(u))), l && s !== 1 && d.searchParams.append("offset", String(l)), d.href;
409
+ } catch (d) {
410
+ return console.error("RouteList(fetcher)", d), n.value;
411
+ }
412
+ };
413
+ }
414
+ function ct(e, t, r = "data") {
415
+ const n = g(t), { axiosInstance: a } = ue(e.axiosRequestConfig), i = Ne(e, n), o = b({
416
+ status: K.Idle
417
+ });
418
+ return { fetcher: async (s) => {
419
+ var u;
420
+ try {
421
+ o.value = { status: K.Loading };
422
+ let l = i(s);
423
+ l.includes("filter[name]") && (l = `${l}&page[size]=${s.pageSize}&page[number]=${s.page}`);
424
+ const p = await a.get(l);
425
+ if (p.status >= 400)
426
+ throw p;
427
+ const c = p.data, f = r && r.replace(/[^\w-_]/gi, "");
428
+ let d;
429
+ c[f] && Array.isArray(c[f]) ? d = c[f] : Array.isArray(c) ? d = c : d = Object.keys(c).length ? [c] : [];
430
+ const T = {
431
+ data: d,
432
+ total: d.length,
433
+ ...c.offset ? {
434
+ pagination: {
435
+ offset: c.offset
436
+ }
437
+ } : null
438
+ };
439
+ return o.value = {
440
+ status: K.Idle,
441
+ response: T
442
+ }, T;
443
+ } catch (l) {
444
+ const p = {
445
+ data: [],
446
+ total: 0
447
+ };
448
+ return s.query && (((u = l.response) == null ? void 0 : u.status) === 404 || l.status === 404) ? (o.value = {
449
+ status: K.NoResults,
450
+ response: p,
451
+ error: l.response ? l : { response: l }
452
+ }, p) : (o.value = {
453
+ status: K.Error,
454
+ response: p,
455
+ error: l.response ? l : { response: l }
456
+ }, p);
457
+ }
458
+ }, fetcherState: o };
459
+ }
460
+ function dt() {
461
+ const e = (r, n = "_") => r ? r.split(n).map((a) => a.toLowerCase() === "id" ? a.toUpperCase() : a.charAt(0).toUpperCase() + a.substring(1)).join(" ") : "", t = /(?:^|[\s-:'"])\w/g;
462
+ return {
463
+ capitalize: (r) => r ? r.replace(t, (n) => n.toUpperCase()) : "",
464
+ convertKeyToTitle: e
465
+ };
466
+ }
467
+ const Ie = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i, ge = (e) => {
468
+ if (typeof e != "string")
469
+ throw new TypeError("Invalid argument expected string");
470
+ const t = e.match(Ie);
471
+ if (!t)
472
+ throw new Error(`Invalid argument not valid semver ('${e}' received)`);
473
+ return t.shift(), t;
474
+ }, he = (e) => e === "*" || e === "x" || e === "X", ve = (e) => {
475
+ const t = parseInt(e, 10);
476
+ return isNaN(t) ? e : t;
477
+ }, pt = (e, t) => typeof e != typeof t ? [String(e), String(t)] : [e, t], ft = (e, t) => {
478
+ if (he(e) || he(t))
479
+ return 0;
480
+ const [r, n] = pt(ve(e), ve(t));
481
+ return r > n ? 1 : r < n ? -1 : 0;
482
+ }, me = (e, t) => {
483
+ for (let r = 0; r < Math.max(e.length, t.length); r++) {
484
+ const n = ft(e[r] || "0", t[r] || "0");
485
+ if (n !== 0)
486
+ return n;
487
+ }
488
+ return 0;
489
+ }, gt = (e, t) => {
490
+ const r = ge(e), n = ge(t), a = r.pop(), i = n.pop(), o = me(r, n);
491
+ return o !== 0 ? o : a && i ? me(a.split("."), i.split(".")) : a || i ? a ? -1 : 1 : 0;
492
+ }, ye = (e, t, r) => {
493
+ ht(r);
494
+ const n = gt(e, t);
495
+ return Te[r].includes(n);
496
+ }, Te = {
497
+ ">": [1],
498
+ ">=": [0, 1],
499
+ "=": [0],
500
+ "<=": [-1, 0],
501
+ "<": [-1],
502
+ "!=": [-1, 1]
503
+ }, be = Object.keys(Te), ht = (e) => {
504
+ if (typeof e != "string")
505
+ throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);
506
+ if (be.indexOf(e) === -1)
507
+ throw new Error(`Invalid operator, expected one of ${be.join("|")}`);
508
+ }, vt = (e) => typeof e == "string" && /^[v\d]/.test(e) && Ie.test(e);
509
+ function mt(e) {
510
+ const { gatewayInfo: t, supportedRange: r } = e;
511
+ if (!t)
512
+ return !0;
513
+ const { edition: n, version: a } = t;
514
+ if (!vt(a))
515
+ return console.error("Invalid version"), !1;
516
+ const i = r[n];
517
+ if (!i)
518
+ return !1;
519
+ const [o, s] = i;
520
+ return !(o && ye(a, o, "<") || s && ye(a, s, ">"));
521
+ }
522
+ function yt(e) {
523
+ const t = b(0), r = b(0), n = b(!1);
524
+ return ke(e, (a) => {
525
+ a && !n.value && (t.value = a.offsetWidth, r.value = a.scrollWidth, n.value = !0);
526
+ }), {
527
+ isTruncated: v(() => t.value < r.value)
528
+ };
529
+ }
530
+ function bt() {
531
+ const { i18n: { t: e } } = ae();
532
+ return {
533
+ utf8Name: (t) => /^[\p{N}\p{L}.\-_~]*$/u.test(t) ? "" : e("validationErrors.utf8Name")
534
+ };
535
+ }
536
+ const wt = {
537
+ useAxios: ue,
538
+ useDebouncedFilter: ot,
539
+ useDeleteUrlBuilder: st,
540
+ useErrors: lt,
541
+ useExternalLinkCreator: ut,
542
+ useFetcher: ct,
543
+ useFetchUrlBuilder: Ne,
544
+ useHelpers: Se,
545
+ useStringHelpers: dt,
546
+ useI18n: ae,
547
+ useGatewayFeatureSupported: mt,
548
+ useTruncationDetector: yt,
549
+ useValidators: bt
550
+ };
551
+ /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
552
+ function Ae(e) {
553
+ return typeof e > "u" || e === null;
554
+ }
555
+ function _t(e) {
556
+ return typeof e == "object" && e !== null;
557
+ }
558
+ function kt(e) {
559
+ return Array.isArray(e) ? e : Ae(e) ? [] : [e];
560
+ }
561
+ function Ct(e, t) {
562
+ var r, n, a, i;
563
+ if (t)
564
+ for (i = Object.keys(t), r = 0, n = i.length; r < n; r += 1)
565
+ a = i[r], e[a] = t[a];
566
+ return e;
567
+ }
568
+ function xt(e, t) {
569
+ var r = "", n;
570
+ for (n = 0; n < t; n += 1)
571
+ r += e;
572
+ return r;
573
+ }
574
+ function Lt(e) {
575
+ return e === 0 && Number.NEGATIVE_INFINITY === 1 / e;
576
+ }
577
+ var St = Ae, Nt = _t, It = kt, Tt = xt, At = Lt, Et = Ct, ce = {
578
+ isNothing: St,
579
+ isObject: Nt,
580
+ toArray: It,
581
+ repeat: Tt,
582
+ isNegativeZero: At,
583
+ extend: Et
584
+ };
585
+ function Ee(e, t) {
586
+ var r = "", n = e.reason || "(unknown reason)";
587
+ return e.mark ? (e.mark.name && (r += 'in "' + e.mark.name + '" '), r += "(" + (e.mark.line + 1) + ":" + (e.mark.column + 1) + ")", !t && e.mark.snippet && (r += `
588
+
589
+ ` + e.mark.snippet), n + " " + r) : n;
590
+ }
591
+ function W(e, t) {
592
+ Error.call(this), this.name = "YAMLException", this.reason = e, this.mark = t, this.message = Ee(this, !1), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || "";
593
+ }
594
+ W.prototype = Object.create(Error.prototype);
595
+ W.prototype.constructor = W;
596
+ W.prototype.toString = function(e) {
597
+ return this.name + ": " + Ee(this, e);
598
+ };
599
+ var U = W, $t = [
600
+ "kind",
601
+ "multi",
602
+ "resolve",
603
+ "construct",
604
+ "instanceOf",
605
+ "predicate",
606
+ "represent",
607
+ "representName",
608
+ "defaultStyle",
609
+ "styleAliases"
610
+ ], Ot = [
611
+ "scalar",
612
+ "sequence",
613
+ "mapping"
614
+ ];
615
+ function jt(e) {
616
+ var t = {};
617
+ return e !== null && Object.keys(e).forEach(function(r) {
618
+ e[r].forEach(function(n) {
619
+ t[String(n)] = r;
620
+ });
621
+ }), t;
622
+ }
623
+ function qt(e, t) {
624
+ if (t = t || {}, Object.keys(t).forEach(function(r) {
625
+ if ($t.indexOf(r) === -1)
626
+ throw new U('Unknown option "' + r + '" is met in definition of "' + e + '" YAML type.');
627
+ }), this.options = t, this.tag = e, this.kind = t.kind || null, this.resolve = t.resolve || function() {
628
+ return !0;
629
+ }, this.construct = t.construct || function(r) {
630
+ return r;
631
+ }, this.instanceOf = t.instanceOf || null, this.predicate = t.predicate || null, this.represent = t.represent || null, this.representName = t.representName || null, this.defaultStyle = t.defaultStyle || null, this.multi = t.multi || !1, this.styleAliases = jt(t.styleAliases || null), Ot.indexOf(this.kind) === -1)
632
+ throw new U('Unknown kind "' + this.kind + '" is specified for "' + e + '" YAML type.');
633
+ }
634
+ var C = qt;
635
+ function we(e, t) {
636
+ var r = [];
637
+ return e[t].forEach(function(n) {
638
+ var a = r.length;
639
+ r.forEach(function(i, o) {
640
+ i.tag === n.tag && i.kind === n.kind && i.multi === n.multi && (a = o);
641
+ }), r[a] = n;
642
+ }), r;
643
+ }
644
+ function zt() {
645
+ var e = {
646
+ scalar: {},
647
+ sequence: {},
648
+ mapping: {},
649
+ fallback: {},
650
+ multi: {
651
+ scalar: [],
652
+ sequence: [],
653
+ mapping: [],
654
+ fallback: []
655
+ }
656
+ }, t, r;
657
+ function n(a) {
658
+ a.multi ? (e.multi[a.kind].push(a), e.multi.fallback.push(a)) : e[a.kind][a.tag] = e.fallback[a.tag] = a;
659
+ }
660
+ for (t = 0, r = arguments.length; t < r; t += 1)
661
+ arguments[t].forEach(n);
662
+ return e;
663
+ }
664
+ function le(e) {
665
+ return this.extend(e);
666
+ }
667
+ le.prototype.extend = function(e) {
668
+ var t = [], r = [];
669
+ if (e instanceof C)
670
+ r.push(e);
671
+ else if (Array.isArray(e))
672
+ r = r.concat(e);
673
+ else if (e && (Array.isArray(e.implicit) || Array.isArray(e.explicit)))
674
+ e.implicit && (t = t.concat(e.implicit)), e.explicit && (r = r.concat(e.explicit));
675
+ else
676
+ throw new U("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
677
+ t.forEach(function(a) {
678
+ if (!(a instanceof C))
679
+ throw new U("Specified list of YAML types (or a single Type object) contains a non-Type object.");
680
+ if (a.loadKind && a.loadKind !== "scalar")
681
+ throw new U("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
682
+ if (a.multi)
683
+ throw new U("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
684
+ }), r.forEach(function(a) {
685
+ if (!(a instanceof C))
686
+ throw new U("Specified list of YAML types (or a single Type object) contains a non-Type object.");
687
+ });
688
+ var n = Object.create(le.prototype);
689
+ return n.implicit = (this.implicit || []).concat(t), n.explicit = (this.explicit || []).concat(r), n.compiledImplicit = we(n, "implicit"), n.compiledExplicit = we(n, "explicit"), n.compiledTypeMap = zt(n.compiledImplicit, n.compiledExplicit), n;
690
+ };
691
+ var Ut = le, Ft = new C("tag:yaml.org,2002:str", {
692
+ kind: "scalar",
693
+ construct: function(e) {
694
+ return e !== null ? e : "";
695
+ }
696
+ }), Mt = new C("tag:yaml.org,2002:seq", {
697
+ kind: "sequence",
698
+ construct: function(e) {
699
+ return e !== null ? e : [];
700
+ }
701
+ }), Bt = new C("tag:yaml.org,2002:map", {
702
+ kind: "mapping",
703
+ construct: function(e) {
704
+ return e !== null ? e : {};
705
+ }
706
+ }), Pt = new Ut({
707
+ explicit: [
708
+ Ft,
709
+ Mt,
710
+ Bt
711
+ ]
712
+ });
713
+ function Dt(e) {
714
+ if (e === null)
715
+ return !0;
716
+ var t = e.length;
717
+ return t === 1 && e === "~" || t === 4 && (e === "null" || e === "Null" || e === "NULL");
718
+ }
719
+ function Kt() {
720
+ return null;
721
+ }
722
+ function Rt(e) {
723
+ return e === null;
724
+ }
725
+ var Vt = new C("tag:yaml.org,2002:null", {
726
+ kind: "scalar",
727
+ resolve: Dt,
728
+ construct: Kt,
729
+ predicate: Rt,
730
+ represent: {
731
+ canonical: function() {
732
+ return "~";
733
+ },
734
+ lowercase: function() {
735
+ return "null";
736
+ },
737
+ uppercase: function() {
738
+ return "NULL";
739
+ },
740
+ camelcase: function() {
741
+ return "Null";
742
+ },
743
+ empty: function() {
744
+ return "";
745
+ }
746
+ },
747
+ defaultStyle: "lowercase"
748
+ });
749
+ function Ht(e) {
750
+ if (e === null)
751
+ return !1;
752
+ var t = e.length;
753
+ return t === 4 && (e === "true" || e === "True" || e === "TRUE") || t === 5 && (e === "false" || e === "False" || e === "FALSE");
754
+ }
755
+ function Zt(e) {
756
+ return e === "true" || e === "True" || e === "TRUE";
757
+ }
758
+ function Yt(e) {
759
+ return Object.prototype.toString.call(e) === "[object Boolean]";
760
+ }
761
+ var Wt = new C("tag:yaml.org,2002:bool", {
762
+ kind: "scalar",
763
+ resolve: Ht,
764
+ construct: Zt,
765
+ predicate: Yt,
766
+ represent: {
767
+ lowercase: function(e) {
768
+ return e ? "true" : "false";
769
+ },
770
+ uppercase: function(e) {
771
+ return e ? "TRUE" : "FALSE";
772
+ },
773
+ camelcase: function(e) {
774
+ return e ? "True" : "False";
775
+ }
776
+ },
777
+ defaultStyle: "lowercase"
778
+ });
779
+ function Gt(e) {
780
+ return 48 <= e && e <= 57 || 65 <= e && e <= 70 || 97 <= e && e <= 102;
781
+ }
782
+ function Qt(e) {
783
+ return 48 <= e && e <= 55;
784
+ }
785
+ function Jt(e) {
786
+ return 48 <= e && e <= 57;
787
+ }
788
+ function Xt(e) {
789
+ if (e === null)
790
+ return !1;
791
+ var t = e.length, r = 0, n = !1, a;
792
+ if (!t)
793
+ return !1;
794
+ if (a = e[r], (a === "-" || a === "+") && (a = e[++r]), a === "0") {
795
+ if (r + 1 === t)
796
+ return !0;
797
+ if (a = e[++r], a === "b") {
798
+ for (r++; r < t; r++)
799
+ if (a = e[r], a !== "_") {
800
+ if (a !== "0" && a !== "1")
801
+ return !1;
802
+ n = !0;
803
+ }
804
+ return n && a !== "_";
805
+ }
806
+ if (a === "x") {
807
+ for (r++; r < t; r++)
808
+ if (a = e[r], a !== "_") {
809
+ if (!Gt(e.charCodeAt(r)))
810
+ return !1;
811
+ n = !0;
812
+ }
813
+ return n && a !== "_";
814
+ }
815
+ if (a === "o") {
816
+ for (r++; r < t; r++)
817
+ if (a = e[r], a !== "_") {
818
+ if (!Qt(e.charCodeAt(r)))
819
+ return !1;
820
+ n = !0;
821
+ }
822
+ return n && a !== "_";
823
+ }
824
+ }
825
+ if (a === "_")
826
+ return !1;
827
+ for (; r < t; r++)
828
+ if (a = e[r], a !== "_") {
829
+ if (!Jt(e.charCodeAt(r)))
830
+ return !1;
831
+ n = !0;
832
+ }
833
+ return !(!n || a === "_");
834
+ }
835
+ function er(e) {
836
+ var t = e, r = 1, n;
837
+ if (t.indexOf("_") !== -1 && (t = t.replace(/_/g, "")), n = t[0], (n === "-" || n === "+") && (n === "-" && (r = -1), t = t.slice(1), n = t[0]), t === "0")
838
+ return 0;
839
+ if (n === "0") {
840
+ if (t[1] === "b")
841
+ return r * parseInt(t.slice(2), 2);
842
+ if (t[1] === "x")
843
+ return r * parseInt(t.slice(2), 16);
844
+ if (t[1] === "o")
845
+ return r * parseInt(t.slice(2), 8);
846
+ }
847
+ return r * parseInt(t, 10);
848
+ }
849
+ function tr(e) {
850
+ return Object.prototype.toString.call(e) === "[object Number]" && e % 1 === 0 && !ce.isNegativeZero(e);
851
+ }
852
+ var rr = new C("tag:yaml.org,2002:int", {
853
+ kind: "scalar",
854
+ resolve: Xt,
855
+ construct: er,
856
+ predicate: tr,
857
+ represent: {
858
+ binary: function(e) {
859
+ return e >= 0 ? "0b" + e.toString(2) : "-0b" + e.toString(2).slice(1);
860
+ },
861
+ octal: function(e) {
862
+ return e >= 0 ? "0o" + e.toString(8) : "-0o" + e.toString(8).slice(1);
863
+ },
864
+ decimal: function(e) {
865
+ return e.toString(10);
866
+ },
867
+ /* eslint-disable max-len */
868
+ hexadecimal: function(e) {
869
+ return e >= 0 ? "0x" + e.toString(16).toUpperCase() : "-0x" + e.toString(16).toUpperCase().slice(1);
870
+ }
871
+ },
872
+ defaultStyle: "decimal",
873
+ styleAliases: {
874
+ binary: [2, "bin"],
875
+ octal: [8, "oct"],
876
+ decimal: [10, "dec"],
877
+ hexadecimal: [16, "hex"]
878
+ }
879
+ }), nr = new RegExp(
880
+ // 2.5e4, 2.5 and integers
881
+ "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
882
+ );
883
+ function ar(e) {
884
+ return !(e === null || !nr.test(e) || // Quick hack to not allow integers end with `_`
885
+ // Probably should update regexp & check speed
886
+ e[e.length - 1] === "_");
887
+ }
888
+ function ir(e) {
889
+ var t, r;
890
+ return t = e.replace(/_/g, "").toLowerCase(), r = t[0] === "-" ? -1 : 1, "+-".indexOf(t[0]) >= 0 && (t = t.slice(1)), t === ".inf" ? r === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : t === ".nan" ? NaN : r * parseFloat(t, 10);
891
+ }
892
+ var or = /^[-+]?[0-9]+e/;
893
+ function sr(e, t) {
894
+ var r;
895
+ if (isNaN(e))
896
+ switch (t) {
897
+ case "lowercase":
898
+ return ".nan";
899
+ case "uppercase":
900
+ return ".NAN";
901
+ case "camelcase":
902
+ return ".NaN";
903
+ }
904
+ else if (Number.POSITIVE_INFINITY === e)
905
+ switch (t) {
906
+ case "lowercase":
907
+ return ".inf";
908
+ case "uppercase":
909
+ return ".INF";
910
+ case "camelcase":
911
+ return ".Inf";
912
+ }
913
+ else if (Number.NEGATIVE_INFINITY === e)
914
+ switch (t) {
915
+ case "lowercase":
916
+ return "-.inf";
917
+ case "uppercase":
918
+ return "-.INF";
919
+ case "camelcase":
920
+ return "-.Inf";
921
+ }
922
+ else if (ce.isNegativeZero(e))
923
+ return "-0.0";
924
+ return r = e.toString(10), or.test(r) ? r.replace("e", ".e") : r;
925
+ }
926
+ function lr(e) {
927
+ return Object.prototype.toString.call(e) === "[object Number]" && (e % 1 !== 0 || ce.isNegativeZero(e));
928
+ }
929
+ var ur = new C("tag:yaml.org,2002:float", {
930
+ kind: "scalar",
931
+ resolve: ar,
932
+ construct: ir,
933
+ predicate: lr,
934
+ represent: sr,
935
+ defaultStyle: "lowercase"
936
+ }), cr = Pt.extend({
937
+ implicit: [
938
+ Vt,
939
+ Wt,
940
+ rr,
941
+ ur
942
+ ]
943
+ }), dr = cr, $e = new RegExp(
944
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
945
+ ), Oe = new RegExp(
946
+ "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
947
+ );
948
+ function pr(e) {
949
+ return e === null ? !1 : $e.exec(e) !== null || Oe.exec(e) !== null;
950
+ }
951
+ function fr(e) {
952
+ var t, r, n, a, i, o, s, u = 0, l = null, p, c, f;
953
+ if (t = $e.exec(e), t === null && (t = Oe.exec(e)), t === null)
954
+ throw new Error("Date resolve error");
955
+ if (r = +t[1], n = +t[2] - 1, a = +t[3], !t[4])
956
+ return new Date(Date.UTC(r, n, a));
957
+ if (i = +t[4], o = +t[5], s = +t[6], t[7]) {
958
+ for (u = t[7].slice(0, 3); u.length < 3; )
959
+ u += "0";
960
+ u = +u;
961
+ }
962
+ return t[9] && (p = +t[10], c = +(t[11] || 0), l = (p * 60 + c) * 6e4, t[9] === "-" && (l = -l)), f = new Date(Date.UTC(r, n, a, i, o, s, u)), l && f.setTime(f.getTime() - l), f;
963
+ }
964
+ function gr(e) {
965
+ return e.toISOString();
966
+ }
967
+ var hr = new C("tag:yaml.org,2002:timestamp", {
968
+ kind: "scalar",
969
+ resolve: pr,
970
+ construct: fr,
971
+ instanceOf: Date,
972
+ represent: gr
973
+ });
974
+ function vr(e) {
975
+ return e === "<<" || e === null;
976
+ }
977
+ var mr = new C("tag:yaml.org,2002:merge", {
978
+ kind: "scalar",
979
+ resolve: vr
980
+ }), de = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
981
+ \r`;
982
+ function yr(e) {
983
+ if (e === null)
984
+ return !1;
985
+ var t, r, n = 0, a = e.length, i = de;
986
+ for (r = 0; r < a; r++)
987
+ if (t = i.indexOf(e.charAt(r)), !(t > 64)) {
988
+ if (t < 0)
989
+ return !1;
990
+ n += 6;
991
+ }
992
+ return n % 8 === 0;
993
+ }
994
+ function br(e) {
995
+ var t, r, n = e.replace(/[\r\n=]/g, ""), a = n.length, i = de, o = 0, s = [];
996
+ for (t = 0; t < a; t++)
997
+ t % 4 === 0 && t && (s.push(o >> 16 & 255), s.push(o >> 8 & 255), s.push(o & 255)), o = o << 6 | i.indexOf(n.charAt(t));
998
+ return r = a % 4 * 6, r === 0 ? (s.push(o >> 16 & 255), s.push(o >> 8 & 255), s.push(o & 255)) : r === 18 ? (s.push(o >> 10 & 255), s.push(o >> 2 & 255)) : r === 12 && s.push(o >> 4 & 255), new Uint8Array(s);
999
+ }
1000
+ function wr(e) {
1001
+ var t = "", r = 0, n, a, i = e.length, o = de;
1002
+ for (n = 0; n < i; n++)
1003
+ n % 3 === 0 && n && (t += o[r >> 18 & 63], t += o[r >> 12 & 63], t += o[r >> 6 & 63], t += o[r & 63]), r = (r << 8) + e[n];
1004
+ return a = i % 3, a === 0 ? (t += o[r >> 18 & 63], t += o[r >> 12 & 63], t += o[r >> 6 & 63], t += o[r & 63]) : a === 2 ? (t += o[r >> 10 & 63], t += o[r >> 4 & 63], t += o[r << 2 & 63], t += o[64]) : a === 1 && (t += o[r >> 2 & 63], t += o[r << 4 & 63], t += o[64], t += o[64]), t;
1005
+ }
1006
+ function _r(e) {
1007
+ return Object.prototype.toString.call(e) === "[object Uint8Array]";
1008
+ }
1009
+ var kr = new C("tag:yaml.org,2002:binary", {
1010
+ kind: "scalar",
1011
+ resolve: yr,
1012
+ construct: br,
1013
+ predicate: _r,
1014
+ represent: wr
1015
+ }), Cr = Object.prototype.hasOwnProperty, xr = Object.prototype.toString;
1016
+ function Lr(e) {
1017
+ if (e === null)
1018
+ return !0;
1019
+ var t = [], r, n, a, i, o, s = e;
1020
+ for (r = 0, n = s.length; r < n; r += 1) {
1021
+ if (a = s[r], o = !1, xr.call(a) !== "[object Object]")
1022
+ return !1;
1023
+ for (i in a)
1024
+ if (Cr.call(a, i))
1025
+ if (!o)
1026
+ o = !0;
1027
+ else
1028
+ return !1;
1029
+ if (!o)
1030
+ return !1;
1031
+ if (t.indexOf(i) === -1)
1032
+ t.push(i);
1033
+ else
1034
+ return !1;
1035
+ }
1036
+ return !0;
1037
+ }
1038
+ function Sr(e) {
1039
+ return e !== null ? e : [];
1040
+ }
1041
+ var Nr = new C("tag:yaml.org,2002:omap", {
1042
+ kind: "sequence",
1043
+ resolve: Lr,
1044
+ construct: Sr
1045
+ }), Ir = Object.prototype.toString;
1046
+ function Tr(e) {
1047
+ if (e === null)
1048
+ return !0;
1049
+ var t, r, n, a, i, o = e;
1050
+ for (i = new Array(o.length), t = 0, r = o.length; t < r; t += 1) {
1051
+ if (n = o[t], Ir.call(n) !== "[object Object]" || (a = Object.keys(n), a.length !== 1))
1052
+ return !1;
1053
+ i[t] = [a[0], n[a[0]]];
1054
+ }
1055
+ return !0;
1056
+ }
1057
+ function Ar(e) {
1058
+ if (e === null)
1059
+ return [];
1060
+ var t, r, n, a, i, o = e;
1061
+ for (i = new Array(o.length), t = 0, r = o.length; t < r; t += 1)
1062
+ n = o[t], a = Object.keys(n), i[t] = [a[0], n[a[0]]];
1063
+ return i;
1064
+ }
1065
+ var Er = new C("tag:yaml.org,2002:pairs", {
1066
+ kind: "sequence",
1067
+ resolve: Tr,
1068
+ construct: Ar
1069
+ }), $r = Object.prototype.hasOwnProperty;
1070
+ function Or(e) {
1071
+ if (e === null)
1072
+ return !0;
1073
+ var t, r = e;
1074
+ for (t in r)
1075
+ if ($r.call(r, t) && r[t] !== null)
1076
+ return !1;
1077
+ return !0;
1078
+ }
1079
+ function jr(e) {
1080
+ return e !== null ? e : {};
1081
+ }
1082
+ var qr = new C("tag:yaml.org,2002:set", {
1083
+ kind: "mapping",
1084
+ resolve: Or,
1085
+ construct: jr
1086
+ });
1087
+ dr.extend({
1088
+ implicit: [
1089
+ hr,
1090
+ mr
1091
+ ],
1092
+ explicit: [
1093
+ kr,
1094
+ Nr,
1095
+ Er,
1096
+ qr
1097
+ ]
1098
+ });
1099
+ function _e(e) {
1100
+ return e === 48 ? "\0" : e === 97 ? "\x07" : e === 98 ? "\b" : e === 116 || e === 9 ? " " : e === 110 ? `
1101
+ ` : e === 118 ? "\v" : e === 102 ? "\f" : e === 114 ? "\r" : e === 101 ? "\x1B" : e === 32 ? " " : e === 34 ? '"' : e === 47 ? "/" : e === 92 ? "\\" : e === 78 ? "…" : e === 95 ? " " : e === 76 ? "\u2028" : e === 80 ? "\u2029" : "";
1102
+ }
1103
+ var zr = new Array(256), Ur = new Array(256);
1104
+ for (var D = 0; D < 256; D++)
1105
+ zr[D] = _e(D) ? 1 : 0, Ur[D] = _e(D);
1106
+ const Fr = [];
1107
+ for (let e = 0; e < 256; ++e)
1108
+ Fr.push((e + 256).toString(16).slice(1));
1109
+ typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
1110
+ const { useAxios: Kn, useDeleteUrlBuilder: Rn, useErrors: Mr, useExternalLinkCreator: Vn, useFetchUrlBuilder: Hn, useFetcher: Zn, useDebouncedFilter: Yn, useStringHelpers: Wn, useHelpers: Gn, useGatewayFeatureSupported: Qn, useTruncationDetector: Jn, useValidators: Xn } = wt;
1111
+ var O = /* @__PURE__ */ ((e) => (e.Debug = "debug", e.Info = "info", e.Notice = "notice", e.Warn = "warn", e.Error = "error", e.Critical = "crit", e))(O || {});
1112
+ class Br {
1113
+ constructor(t) {
1114
+ P(this, "concurrentTokenSet", /* @__PURE__ */ new Set());
1115
+ P(this, "concurrentTokenBorrowQueue", []);
1116
+ for (let r = 0; r < t; ++r)
1117
+ this.concurrentTokenSet.add(Symbol(`token-${r}`));
1118
+ }
1119
+ hasAvailableConcurrentToken() {
1120
+ return this.concurrentTokenSet.size > 0;
1121
+ }
1122
+ borrowConcurrentToken() {
1123
+ if (this.concurrentTokenSet.size > 0) {
1124
+ const t = this.concurrentTokenSet.values().next().value;
1125
+ return this.concurrentTokenSet.delete(t), () => {
1126
+ this.returnConcurrentToken(t);
1127
+ };
1128
+ }
1129
+ throw new Error("BUG: No available token to borrow");
1130
+ }
1131
+ returnConcurrentToken(t) {
1132
+ if (this.concurrentTokenSet.has(t))
1133
+ throw new Error("Token already returned");
1134
+ const r = this.concurrentTokenBorrowQueue.shift();
1135
+ r ? r[0](() => this.returnConcurrentToken(t)) : this.concurrentTokenSet.add(t);
1136
+ }
1137
+ async borrowToken() {
1138
+ return this.hasAvailableConcurrentToken() ? this.borrowConcurrentToken() : new Promise((t, r) => {
1139
+ this.concurrentTokenBorrowQueue.push([t, r]);
1140
+ });
1141
+ }
1142
+ clearWaitingQueue(t) {
1143
+ for (; this.concurrentTokenBorrowQueue.length > 0; ) {
1144
+ const [, r] = this.concurrentTokenBorrowQueue.shift();
1145
+ r(t);
1146
+ }
1147
+ }
1148
+ }
1149
+ class pe extends Error {
1150
+ constructor(t, r) {
1151
+ super(t, r), this.name = "AsyncAbortException";
1152
+ }
1153
+ }
1154
+ class X {
1155
+ constructor(t) {
1156
+ P(this, "tokenBucket", null);
1157
+ P(this, "schedule", async (t) => {
1158
+ let r;
1159
+ this.tokenBucket && (r = await this.tokenBucket.borrowToken());
1160
+ try {
1161
+ const n = await t();
1162
+ return r == null || r(), n;
1163
+ } catch (n) {
1164
+ throw r == null || r(), n;
1165
+ }
1166
+ });
1167
+ P(this, "cancelAll", (t, r) => {
1168
+ var n;
1169
+ (n = this.tokenBucket) == null || n.clearWaitingQueue(new pe(t, r));
1170
+ });
1171
+ t.maxConcurrentAsyncs > 0 && (this.tokenBucket = new Br(t.maxConcurrentAsyncs));
1172
+ }
1173
+ }
1174
+ const Pr = (e) => e instanceof X ? e : e === null ? new X({ maxConcurrentAsyncs: 0 }) : new X(e), Dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1175
+ __proto__: null,
1176
+ AsyncAbortException: pe,
1177
+ AsyncScheduler: X,
1178
+ useAsyncScheduler: Pr
1179
+ }, Symbol.toStringTag, { value: "Module" })), je = [
1180
+ O.Debug,
1181
+ O.Info,
1182
+ O.Notice,
1183
+ O.Warn,
1184
+ O.Error,
1185
+ O.Critical
1186
+ ], Kr = (e) => {
1187
+ const { i18n: t } = ne();
1188
+ return v(() => {
1189
+ const r = Y(e == null ? void 0 : e.disabled) ?? [];
1190
+ return je.map((n) => ({
1191
+ label: t.t(`log_level.${n}`),
1192
+ value: n,
1193
+ selected: (e == null ? void 0 : e.initialSelected) === n,
1194
+ disabled: r.includes(n)
1195
+ }));
1196
+ });
1197
+ }, Rr = (e) => {
1198
+ const t = [O.Debug], { i18n: r } = ne();
1199
+ return v(() => {
1200
+ const n = Y(e);
1201
+ return {
1202
+ explanation: r.t(`modal.log_level_explanation.${n}`),
1203
+ warning: t.includes(n) ? r.t("modal.log_level_disk_space_warning") : void 0
1204
+ };
1205
+ });
1206
+ }, Vr = (e) => {
1207
+ const { i18n: t } = ne();
1208
+ return v(() => {
1209
+ const r = Y(e);
1210
+ if (isNaN(r) || r <= 0)
1211
+ return "";
1212
+ let n = "";
1213
+ const a = r % 60;
1214
+ a !== 0 && (n += `${a} ${t.t("modal.revert_to_default_after.seconds")}`);
1215
+ const i = Math.floor(r / 60) % 60;
1216
+ i !== 0 && (n = `${i} ${t.t("modal.revert_to_default_after.minutes")} ${n}`);
1217
+ const o = Math.floor(r / 3600);
1218
+ return o !== 0 && (n = `${o} ${t.t("modal.revert_to_default_after.hours")} ${n}`), n;
1219
+ });
1220
+ }, Hr = (e) => {
1221
+ const t = e.requestExecutor ?? ((o) => o()), { getDataPlaneLogLevel: r, setDataPlaneLogLevel: n } = e, { getMessageFromError: a } = Mr();
1222
+ return { checkDataPlaneLogLevel: (o, s) => {
1223
+ const u = b(Y(s == null ? void 0 : s.currentLogLevelHint) ?? null);
1224
+ u.value === null && t(async () => {
1225
+ u.value = await r(o);
1226
+ }).catch((f) => {
1227
+ f instanceof pe || console.error("Failed to get data plane log level", f);
1228
+ }), s != null && s.currentLogLevelHint && ke(() => Y(s.currentLogLevelHint), (f) => {
1229
+ f && (u.value = f);
1230
+ });
1231
+ const l = b("pending"), p = b(null);
1232
+ return {
1233
+ currentLogLevel: u,
1234
+ updateStatus: l,
1235
+ updateErrorMessage: p,
1236
+ updateLogLevel: async (f, d) => {
1237
+ l.value = "loading", p.value = null;
1238
+ try {
1239
+ await t(() => n(o, f, d)), u.value = f, l.value = "success";
1240
+ } catch (T) {
1241
+ p.value = a(T), l.value = "error";
1242
+ }
1243
+ }
1244
+ };
1245
+ } };
1246
+ }, Zr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1247
+ __proto__: null,
1248
+ supportedLevels: je,
1249
+ useDataPlaneLogLevelChecker: Hr,
1250
+ useFriendlyRevertTime: Vr,
1251
+ useLogLevelCandidateSelectItems: Kr,
1252
+ useLogLevelExplanation: Rr
1253
+ }, Symbol.toStringTag, { value: "Module" })), z = {
1254
+ useI18n: ne,
1255
+ ...Zr,
1256
+ ...Dr
1257
+ }, j = "24px", ie = (e, t) => {
1258
+ const r = e.__vccOpts || e;
1259
+ for (const [n, a] of t)
1260
+ r[n] = a;
1261
+ return r;
1262
+ }, Yr = (e) => (te("data-v-a3e03b4c"), e = e(), re(), e), Wr = ["aria-hidden"], Gr = {
1263
+ key: 0,
1264
+ "data-testid": "kui-icon-svg-title"
1265
+ }, Qr = /* @__PURE__ */ Yr(() => /* @__PURE__ */ y("path", {
1266
+ d: "M10.6 16.6L17.65 9.55L16.25 8.15L10.6 13.8L7.75 10.95L6.35 12.35L10.6 16.6ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22Z",
1267
+ fill: "currentColor"
1268
+ }, null, -1)), Jr = /* @__PURE__ */ V({
1269
+ __name: "CheckCircleIcon",
1270
+ props: {
1271
+ /** The accessibility text provided to screen readers */
1272
+ title: {
1273
+ type: String,
1274
+ required: !1,
1275
+ default: ""
1276
+ },
1277
+ /** The icon color. Defaults to `currentColor` which inherits text color from the parent element */
1278
+ color: {
1279
+ type: String,
1280
+ required: !1,
1281
+ default: "currentColor"
1282
+ },
1283
+ /** The CSS display property for the icon. Defaults to `block` */
1284
+ display: {
1285
+ type: String,
1286
+ required: !1,
1287
+ default: "block"
1288
+ },
1289
+ /** Whether the icon is just eye-candy or is meaningful to the page (should screen-readers ignore the icon?) */
1290
+ decorative: {
1291
+ type: Boolean,
1292
+ required: !1,
1293
+ default: !1
1294
+ },
1295
+ /** The icon size */
1296
+ size: {
1297
+ type: [Number, String],
1298
+ required: !1,
1299
+ default: j,
1300
+ // if setting to the imported const fails, just pass a number of 24 as the default.
1301
+ validator: (e) => {
1302
+ if (typeof e == "number" && e > 0)
1303
+ return !0;
1304
+ if (typeof e == "string") {
1305
+ const t = String(e).replace(/px/gi, ""), r = Number(t);
1306
+ if (r && !isNaN(r) && Number.isInteger(r) && r > 0)
1307
+ return !0;
1308
+ }
1309
+ return !1;
1310
+ }
1311
+ },
1312
+ /** The HTML tag to utilize for the icon's wrapper element. Defaults to `span` */
1313
+ as: {
1314
+ type: String,
1315
+ required: !1,
1316
+ default: "span"
1317
+ }
1318
+ },
1319
+ setup(e) {
1320
+ const t = e, r = v(() => {
1321
+ if (typeof t.size == "number" && t.size > 0)
1322
+ return `${t.size}px`;
1323
+ if (typeof t.size == "string") {
1324
+ const a = String(t.size).replace(/px/gi, ""), i = Number(a);
1325
+ if (i && !isNaN(i) && Number.isInteger(i) && i > 0)
1326
+ return `${i}px`;
1327
+ }
1328
+ return j;
1329
+ }), n = v(() => ({
1330
+ boxSizing: "border-box",
1331
+ color: t.color,
1332
+ display: t.display,
1333
+ height: r.value,
1334
+ lineHeight: "0",
1335
+ width: r.value
1336
+ }));
1337
+ return (a, i) => (h(), E(R(e.as), {
1338
+ "aria-hidden": e.decorative ? "true" : void 0,
1339
+ class: "kui-icon check-circle-icon",
1340
+ "data-testid": "kui-icon-wrapper-check-circle-icon",
1341
+ style: ee(n.value)
1342
+ }, {
1343
+ default: $(() => [
1344
+ (h(), I("svg", {
1345
+ "aria-hidden": e.decorative ? "true" : void 0,
1346
+ "data-testid": "kui-icon-svg-check-circle-icon",
1347
+ fill: "none",
1348
+ height: "100%",
1349
+ role: "img",
1350
+ viewBox: "0 0 24 24",
1351
+ width: "100%",
1352
+ xmlns: "http://www.w3.org/2000/svg"
1353
+ }, [
1354
+ e.title ? (h(), I("title", Gr, _(e.title), 1)) : M("", !0),
1355
+ Qr
1356
+ ], 8, Wr))
1357
+ ]),
1358
+ _: 1
1359
+ }, 8, ["aria-hidden", "style"]));
1360
+ }
1361
+ }), Xr = /* @__PURE__ */ ie(Jr, [["__scopeId", "data-v-a3e03b4c"]]), en = (e) => (te("data-v-03a2dc19"), e = e(), re(), e), tn = ["aria-hidden"], rn = {
1362
+ key: 0,
1363
+ "data-testid": "kui-icon-svg-title"
1364
+ }, nn = /* @__PURE__ */ en(() => /* @__PURE__ */ y("path", {
1365
+ d: "M8.4 17L12 13.4L15.6 17L17 15.6L13.4 12L17 8.4L15.6 7L12 10.6L8.4 7L7 8.4L10.6 12L7 15.6L8.4 17ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22Z",
1366
+ fill: "currentColor"
1367
+ }, null, -1)), an = /* @__PURE__ */ V({
1368
+ __name: "ClearIcon",
1369
+ props: {
1370
+ /** The accessibility text provided to screen readers */
1371
+ title: {
1372
+ type: String,
1373
+ required: !1,
1374
+ default: ""
1375
+ },
1376
+ /** The icon color. Defaults to `currentColor` which inherits text color from the parent element */
1377
+ color: {
1378
+ type: String,
1379
+ required: !1,
1380
+ default: "currentColor"
1381
+ },
1382
+ /** The CSS display property for the icon. Defaults to `block` */
1383
+ display: {
1384
+ type: String,
1385
+ required: !1,
1386
+ default: "block"
1387
+ },
1388
+ /** Whether the icon is just eye-candy or is meaningful to the page (should screen-readers ignore the icon?) */
1389
+ decorative: {
1390
+ type: Boolean,
1391
+ required: !1,
1392
+ default: !1
1393
+ },
1394
+ /** The icon size */
1395
+ size: {
1396
+ type: [Number, String],
1397
+ required: !1,
1398
+ default: j,
1399
+ // if setting to the imported const fails, just pass a number of 24 as the default.
1400
+ validator: (e) => {
1401
+ if (typeof e == "number" && e > 0)
1402
+ return !0;
1403
+ if (typeof e == "string") {
1404
+ const t = String(e).replace(/px/gi, ""), r = Number(t);
1405
+ if (r && !isNaN(r) && Number.isInteger(r) && r > 0)
1406
+ return !0;
1407
+ }
1408
+ return !1;
1409
+ }
1410
+ },
1411
+ /** The HTML tag to utilize for the icon's wrapper element. Defaults to `span` */
1412
+ as: {
1413
+ type: String,
1414
+ required: !1,
1415
+ default: "span"
1416
+ }
1417
+ },
1418
+ setup(e) {
1419
+ const t = e, r = v(() => {
1420
+ if (typeof t.size == "number" && t.size > 0)
1421
+ return `${t.size}px`;
1422
+ if (typeof t.size == "string") {
1423
+ const a = String(t.size).replace(/px/gi, ""), i = Number(a);
1424
+ if (i && !isNaN(i) && Number.isInteger(i) && i > 0)
1425
+ return `${i}px`;
1426
+ }
1427
+ return j;
1428
+ }), n = v(() => ({
1429
+ boxSizing: "border-box",
1430
+ color: t.color,
1431
+ display: t.display,
1432
+ height: r.value,
1433
+ lineHeight: "0",
1434
+ width: r.value
1435
+ }));
1436
+ return (a, i) => (h(), E(R(e.as), {
1437
+ "aria-hidden": e.decorative ? "true" : void 0,
1438
+ class: "kui-icon clear-icon",
1439
+ "data-testid": "kui-icon-wrapper-clear-icon",
1440
+ style: ee(n.value)
1441
+ }, {
1442
+ default: $(() => [
1443
+ (h(), I("svg", {
1444
+ "aria-hidden": e.decorative ? "true" : void 0,
1445
+ "data-testid": "kui-icon-svg-clear-icon",
1446
+ fill: "none",
1447
+ height: "100%",
1448
+ role: "img",
1449
+ viewBox: "0 0 24 24",
1450
+ width: "100%",
1451
+ xmlns: "http://www.w3.org/2000/svg"
1452
+ }, [
1453
+ e.title ? (h(), I("title", rn, _(e.title), 1)) : M("", !0),
1454
+ nn
1455
+ ], 8, tn))
1456
+ ]),
1457
+ _: 1
1458
+ }, 8, ["aria-hidden", "style"]));
1459
+ }
1460
+ }), on = /* @__PURE__ */ ie(an, [["__scopeId", "data-v-03a2dc19"]]), sn = (e) => (te("data-v-30ee0f0f"), e = e(), re(), e), ln = ["aria-hidden"], un = {
1461
+ key: 0,
1462
+ "data-testid": "kui-icon-svg-title"
1463
+ }, cn = /* @__PURE__ */ sn(() => /* @__PURE__ */ y("path", {
1464
+ d: "M4 17V14H20V17H4ZM4 10V7H20V10H4Z",
1465
+ fill: "currentColor"
1466
+ }, null, -1)), dn = /* @__PURE__ */ V({
1467
+ __name: "EqualIcon",
1468
+ props: {
1469
+ /** The accessibility text provided to screen readers */
1470
+ title: {
1471
+ type: String,
1472
+ required: !1,
1473
+ default: ""
1474
+ },
1475
+ /** The icon color. Defaults to `currentColor` which inherits text color from the parent element */
1476
+ color: {
1477
+ type: String,
1478
+ required: !1,
1479
+ default: "currentColor"
1480
+ },
1481
+ /** The CSS display property for the icon. Defaults to `block` */
1482
+ display: {
1483
+ type: String,
1484
+ required: !1,
1485
+ default: "block"
1486
+ },
1487
+ /** Whether the icon is just eye-candy or is meaningful to the page (should screen-readers ignore the icon?) */
1488
+ decorative: {
1489
+ type: Boolean,
1490
+ required: !1,
1491
+ default: !1
1492
+ },
1493
+ /** The icon size */
1494
+ size: {
1495
+ type: [Number, String],
1496
+ required: !1,
1497
+ default: j,
1498
+ // if setting to the imported const fails, just pass a number of 24 as the default.
1499
+ validator: (e) => {
1500
+ if (typeof e == "number" && e > 0)
1501
+ return !0;
1502
+ if (typeof e == "string") {
1503
+ const t = String(e).replace(/px/gi, ""), r = Number(t);
1504
+ if (r && !isNaN(r) && Number.isInteger(r) && r > 0)
1505
+ return !0;
1506
+ }
1507
+ return !1;
1508
+ }
1509
+ },
1510
+ /** The HTML tag to utilize for the icon's wrapper element. Defaults to `span` */
1511
+ as: {
1512
+ type: String,
1513
+ required: !1,
1514
+ default: "span"
1515
+ }
1516
+ },
1517
+ setup(e) {
1518
+ const t = e, r = v(() => {
1519
+ if (typeof t.size == "number" && t.size > 0)
1520
+ return `${t.size}px`;
1521
+ if (typeof t.size == "string") {
1522
+ const a = String(t.size).replace(/px/gi, ""), i = Number(a);
1523
+ if (i && !isNaN(i) && Number.isInteger(i) && i > 0)
1524
+ return `${i}px`;
1525
+ }
1526
+ return j;
1527
+ }), n = v(() => ({
1528
+ boxSizing: "border-box",
1529
+ color: t.color,
1530
+ display: t.display,
1531
+ height: r.value,
1532
+ lineHeight: "0",
1533
+ width: r.value
1534
+ }));
1535
+ return (a, i) => (h(), E(R(e.as), {
1536
+ "aria-hidden": e.decorative ? "true" : void 0,
1537
+ class: "kui-icon equal-icon",
1538
+ "data-testid": "kui-icon-wrapper-equal-icon",
1539
+ style: ee(n.value)
1540
+ }, {
1541
+ default: $(() => [
1542
+ (h(), I("svg", {
1543
+ "aria-hidden": e.decorative ? "true" : void 0,
1544
+ "data-testid": "kui-icon-svg-equal-icon",
1545
+ fill: "none",
1546
+ height: "100%",
1547
+ role: "img",
1548
+ viewBox: "0 0 24 24",
1549
+ width: "100%",
1550
+ xmlns: "http://www.w3.org/2000/svg"
1551
+ }, [
1552
+ e.title ? (h(), I("title", un, _(e.title), 1)) : M("", !0),
1553
+ cn
1554
+ ], 8, ln))
1555
+ ]),
1556
+ _: 1
1557
+ }, 8, ["aria-hidden", "style"]));
1558
+ }
1559
+ }), pn = /* @__PURE__ */ ie(dn, [["__scopeId", "data-v-30ee0f0f"]]), qe = (e) => (te("data-v-c53c238c"), e = e(), re(), e), fn = ["aria-hidden"], gn = {
1560
+ key: 0,
1561
+ "data-testid": "kui-icon-svg-title"
1562
+ }, hn = /* @__PURE__ */ qe(() => /* @__PURE__ */ y("path", {
1563
+ d: "M12 22C10.6333 22 9.34167 21.7375 8.125 21.2125C6.90833 20.6875 5.84583 19.9708 4.9375 19.0625C4.02917 18.1542 3.3125 17.0917 2.7875 15.875C2.2625 14.6583 2 13.3667 2 12C2 10.6167 2.2625 9.32083 2.7875 8.1125C3.3125 6.90417 4.02917 5.84583 4.9375 4.9375C5.84583 4.02917 6.90833 3.3125 8.125 2.7875C9.34167 2.2625 10.6333 2 12 2C12.2833 2 12.5208 2.09583 12.7125 2.2875C12.9042 2.47917 13 2.71667 13 3C13 3.28333 12.9042 3.52083 12.7125 3.7125C12.5208 3.90417 12.2833 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 14.2167 4.77917 16.1042 6.3375 17.6625C7.89583 19.2208 9.78333 20 12 20C14.2167 20 16.1042 19.2208 17.6625 17.6625C19.2208 16.1042 20 14.2167 20 12C20 11.7167 20.0958 11.4792 20.2875 11.2875C20.4792 11.0958 20.7167 11 21 11C21.2833 11 21.5208 11.0958 21.7125 11.2875C21.9042 11.4792 22 11.7167 22 12C22 13.3667 21.7375 14.6583 21.2125 15.875C20.6875 17.0917 19.9708 18.1542 19.0625 19.0625C18.1542 19.9708 17.0958 20.6875 15.8875 21.2125C14.6792 21.7375 13.3833 22 12 22Z",
1564
+ fill: "currentColor",
1565
+ "transform-origin": "center"
1566
+ }, null, -1)), vn = /* @__PURE__ */ qe(() => /* @__PURE__ */ y("animateTransform", {
1567
+ attributeName: "transform",
1568
+ attributeType: "XML",
1569
+ dur: "1.5s",
1570
+ from: "0",
1571
+ repeatCount: "indefinite",
1572
+ to: "360",
1573
+ type: "rotate"
1574
+ }, null, -1)), mn = /* @__PURE__ */ V({
1575
+ __name: "ProgressIcon",
1576
+ props: {
1577
+ /** The accessibility text provided to screen readers */
1578
+ title: {
1579
+ type: String,
1580
+ required: !1,
1581
+ default: ""
1582
+ },
1583
+ /** The icon color. Defaults to `currentColor` which inherits text color from the parent element */
1584
+ color: {
1585
+ type: String,
1586
+ required: !1,
1587
+ default: "currentColor"
1588
+ },
1589
+ /** The CSS display property for the icon. Defaults to `block` */
1590
+ display: {
1591
+ type: String,
1592
+ required: !1,
1593
+ default: "block"
1594
+ },
1595
+ /** Whether the icon is just eye-candy or is meaningful to the page (should screen-readers ignore the icon?) */
1596
+ decorative: {
1597
+ type: Boolean,
1598
+ required: !1,
1599
+ default: !1
1600
+ },
1601
+ /** The icon size */
1602
+ size: {
1603
+ type: [Number, String],
1604
+ required: !1,
1605
+ default: j,
1606
+ // if setting to the imported const fails, just pass a number of 24 as the default.
1607
+ validator: (e) => {
1608
+ if (typeof e == "number" && e > 0)
1609
+ return !0;
1610
+ if (typeof e == "string") {
1611
+ const t = String(e).replace(/px/gi, ""), r = Number(t);
1612
+ if (r && !isNaN(r) && Number.isInteger(r) && r > 0)
1613
+ return !0;
1614
+ }
1615
+ return !1;
1616
+ }
1617
+ },
1618
+ /** The HTML tag to utilize for the icon's wrapper element. Defaults to `span` */
1619
+ as: {
1620
+ type: String,
1621
+ required: !1,
1622
+ default: "span"
1623
+ }
1624
+ },
1625
+ setup(e) {
1626
+ const t = e, r = v(() => {
1627
+ if (typeof t.size == "number" && t.size > 0)
1628
+ return `${t.size}px`;
1629
+ if (typeof t.size == "string") {
1630
+ const a = String(t.size).replace(/px/gi, ""), i = Number(a);
1631
+ if (i && !isNaN(i) && Number.isInteger(i) && i > 0)
1632
+ return `${i}px`;
1633
+ }
1634
+ return j;
1635
+ }), n = v(() => ({
1636
+ boxSizing: "border-box",
1637
+ color: t.color,
1638
+ display: t.display,
1639
+ height: r.value,
1640
+ lineHeight: "0",
1641
+ width: r.value
1642
+ }));
1643
+ return (a, i) => (h(), E(R(e.as), {
1644
+ "aria-hidden": e.decorative ? "true" : void 0,
1645
+ class: "kui-icon progress-icon",
1646
+ "data-testid": "kui-icon-wrapper-progress-icon",
1647
+ style: ee(n.value)
1648
+ }, {
1649
+ default: $(() => [
1650
+ (h(), I("svg", {
1651
+ "aria-hidden": e.decorative ? "true" : void 0,
1652
+ "data-testid": "kui-icon-svg-progress-icon",
1653
+ fill: "none",
1654
+ height: "100%",
1655
+ role: "img",
1656
+ viewBox: "0 0 24 24",
1657
+ width: "100%",
1658
+ xmlns: "http://www.w3.org/2000/svg"
1659
+ }, [
1660
+ e.title ? (h(), I("title", gn, _(e.title), 1)) : M("", !0),
1661
+ hn,
1662
+ vn
1663
+ ], 8, fn))
1664
+ ]),
1665
+ _: 1
1666
+ }, 8, ["aria-hidden", "style"]));
1667
+ }
1668
+ }), yn = /* @__PURE__ */ ie(mn, [["__scopeId", "data-v-c53c238c"]]), bn = { "data-testid": "log-change-action" }, wn = { key: 0 }, _n = { "data-testid": "log-change-action-current-level" }, kn = { key: 0 }, Cn = { "data-testid": "log-change-action-target-level" }, xn = { "data-testid": "log-change-status" }, Ln = /* @__PURE__ */ V({
1669
+ __name: "CLLModalNodeRow",
1670
+ props: {
1671
+ dataPlaneId: {},
1672
+ hostname: {},
1673
+ hasDllCapability: { type: Boolean },
1674
+ targetLogLevel: {},
1675
+ checkLogLevel: {},
1676
+ logLevelHint: {}
1677
+ },
1678
+ setup(e, { expose: t }) {
1679
+ const r = e, { i18n: n } = z.useI18n();
1680
+ let a = b("not_supported"), i = b("not_supported"), o = b(null), s = async () => {
1681
+ };
1682
+ r.hasDllCapability && ({
1683
+ currentLogLevel: a,
1684
+ updateStatus: i,
1685
+ updateErrorMessage: o,
1686
+ updateLogLevel: s
1687
+ } = r.checkLogLevel(r.dataPlaneId, {
1688
+ currentLogLevelHint: () => r.logLevelHint ?? null
1689
+ })), t({
1690
+ updateLogLevel: s
1691
+ });
1692
+ const u = v(() => {
1693
+ switch (i.value) {
1694
+ case "success":
1695
+ return "success";
1696
+ case "error":
1697
+ return "danger";
1698
+ case "loading":
1699
+ case "pending":
1700
+ return "warning";
1701
+ default:
1702
+ return "neutral";
1703
+ }
1704
+ }), l = v(() => {
1705
+ switch (i.value) {
1706
+ case "success":
1707
+ return n.t("modal.dp_list.status.succeed");
1708
+ case "error":
1709
+ return n.t("modal.dp_list.status.failed");
1710
+ case "pending":
1711
+ return n.t("modal.dp_list.status.pending");
1712
+ case "loading":
1713
+ return n.t("modal.dp_list.status.loading");
1714
+ default:
1715
+ return n.t("modal.dp_list.status.not_supported");
1716
+ }
1717
+ }), p = v(() => {
1718
+ switch (i.value) {
1719
+ case "success":
1720
+ return Xr;
1721
+ case "error":
1722
+ case "not_supported":
1723
+ return on;
1724
+ case "loading":
1725
+ return yn;
1726
+ default:
1727
+ return pn;
1728
+ }
1729
+ });
1730
+ return (c, f) => {
1731
+ const d = F("KSkeleton"), T = F("KBadge"), S = F("KTooltip");
1732
+ return h(), I("tr", null, [
1733
+ y("td", null, _(c.hostname), 1),
1734
+ y("td", bn, [
1735
+ g(a) === "not_supported" ? (h(), I("span", wn, _(g(n).t("log_level.not_applicable")), 1)) : g(a) ? (h(), I(Ce, { key: 2 }, [
1736
+ y("span", _n, _(g(n).t(`log_level.${g(a)}`)), 1),
1737
+ g(a) !== c.targetLogLevel ? (h(), I("span", kn, [
1738
+ Z(" → "),
1739
+ y("span", Cn, _(g(n).t(`log_level.${c.targetLogLevel}`)), 1)
1740
+ ])) : M("", !0)
1741
+ ], 64)) : (h(), E(d, {
1742
+ key: 1,
1743
+ type: "spinner"
1744
+ }))
1745
+ ]),
1746
+ y("td", xn, [
1747
+ g(o) ? (h(), E(S, {
1748
+ key: 0,
1749
+ text: g(o)
1750
+ }, {
1751
+ default: $(() => [
1752
+ J(T, {
1753
+ appearance: u.value,
1754
+ class: "badge-cell"
1755
+ }, {
1756
+ icon: $(() => [
1757
+ (h(), E(R(p.value)))
1758
+ ]),
1759
+ default: $(() => [
1760
+ Z(" " + _(l.value), 1)
1761
+ ]),
1762
+ _: 1
1763
+ }, 8, ["appearance"])
1764
+ ]),
1765
+ _: 1
1766
+ }, 8, ["text"])) : (h(), E(T, {
1767
+ key: 1,
1768
+ appearance: u.value,
1769
+ class: "badge-cell"
1770
+ }, {
1771
+ icon: $(() => [
1772
+ (h(), E(R(p.value)))
1773
+ ]),
1774
+ default: $(() => [
1775
+ Z(" " + _(l.value), 1)
1776
+ ]),
1777
+ _: 1
1778
+ }, 8, ["appearance"]))
1779
+ ])
1780
+ ]);
1781
+ };
1782
+ }
1783
+ }), ze = (e, t) => {
1784
+ const r = e.__vccOpts || e;
1785
+ for (const [n, a] of t)
1786
+ r[n] = a;
1787
+ return r;
1788
+ }, Sn = /* @__PURE__ */ ze(Ln, [["__scopeId", "data-v-ac7205dd"]]), Nn = { class: "explanation-wrapper" }, In = {
1789
+ key: 0,
1790
+ class: "warning-message",
1791
+ "data-testid": "log-level-warning-message"
1792
+ }, Tn = { class: "revert-after-wrapper" }, An = { class: "time" }, En = { class: "seconds" }, $n = {
1793
+ class: "formatted-time",
1794
+ "data-testid": "log-level-timeout-formatted"
1795
+ }, On = {
1796
+ class: "data-plane-node-list",
1797
+ "data-testid": "data-plane-node-list"
1798
+ }, jn = { style: { width: "40%" } }, qn = { style: { width: "40%" } }, zn = /* @__PURE__ */ V({
1799
+ name: "ChangeLogLevelModal",
1800
+ __name: "ChangeLogLevelModal",
1801
+ props: /* @__PURE__ */ Pe({
1802
+ instanceList: {},
1803
+ instanceLogLevel: {},
1804
+ requests: {}
1805
+ }, {
1806
+ visible: { type: Boolean },
1807
+ visibleModifiers: {}
1808
+ }),
1809
+ emits: ["update:visible"],
1810
+ setup(e) {
1811
+ const t = e, r = De(e, "visible"), n = O.Notice, { i18n: a } = z.useI18n(), i = b("edit"), o = b(n), s = b("60"), u = v(() => Math.floor(Number(s.value))), l = v(() => t.instanceList.filter((A) => A.hasDLLCapability !== !1)), p = v(() => {
1812
+ const A = l.value.length === 1 ? a.t("modal.change_log_level.summary_with_name", { name: l.value[0].hostname }) : a.t("modal.change_log_level.summary_with_number", { number: `${l.value.length}` });
1813
+ return a.t("modal.change_log_level.title", { summary: A });
1814
+ }), c = v(() => i.value === "submitting" || isNaN(u.value) || u.value <= 0 || l.value.length === 0), f = z.useLogLevelCandidateSelectItems({
1815
+ initialSelected: n
1816
+ }), d = z.useLogLevelExplanation(o), T = z.useFriendlyRevertTime(u), S = z.useAsyncScheduler(
1817
+ t.requests.scheduler === void 0 ? { maxConcurrentAsyncs: 10 } : t.requests.scheduler
1818
+ ), { checkDataPlaneLogLevel: oe } = z.useDataPlaneLogLevelChecker({
1819
+ getDataPlaneLogLevel: t.requests.getDataPlaneLogLevel,
1820
+ setDataPlaneLogLevel: t.requests.setDataPlaneLogLevel,
1821
+ requestExecutor: S.schedule
1822
+ }), H = /* @__PURE__ */ new Map(), G = (A, N) => {
1823
+ N === null ? H.delete(A) : H.set(A, N);
1824
+ }, se = async () => {
1825
+ if (i.value !== "edit") {
1826
+ m();
1827
+ return;
1828
+ }
1829
+ i.value = "submitting";
1830
+ const A = Array.from(H.values()).map((N) => N.updateLogLevel(o.value, u.value));
1831
+ try {
1832
+ await Promise.all(A);
1833
+ } catch (N) {
1834
+ console.error("Failed to update log level", N);
1835
+ } finally {
1836
+ i.value = "submitted";
1837
+ }
1838
+ }, m = () => {
1839
+ r.value = !1, s.value = "60", i.value = "edit", o.value = n;
1840
+ }, Q = v(() => {
1841
+ switch (i.value) {
1842
+ case "submitting":
1843
+ return a.t("modal.action_button.submitting");
1844
+ case "submitted":
1845
+ return a.t("modal.action_button.ok");
1846
+ default:
1847
+ return a.t("modal.action_button.confirm");
1848
+ }
1849
+ });
1850
+ return (A, N) => {
1851
+ const x = F("KSelect"), L = F("KLabel"), q = F("KInput"), k = F("KModal");
1852
+ return h(), E(k, {
1853
+ "action-button-disabled": c.value,
1854
+ "action-button-text": Q.value,
1855
+ "data-testid": "change-log-level-modal",
1856
+ "hide-cancel-button": !0,
1857
+ "hide-close-icon": i.value === "submitting",
1858
+ "max-width": "640px",
1859
+ title: p.value,
1860
+ visible: r.value,
1861
+ onCancel: m,
1862
+ onProceed: se
1863
+ }, {
1864
+ default: $(() => [
1865
+ i.value === "edit" ? (h(), E(x, {
1866
+ key: 0,
1867
+ modelValue: o.value,
1868
+ "onUpdate:modelValue": N[0] || (N[0] = (w) => o.value = w),
1869
+ class: "log-level-select",
1870
+ "data-testid": "log-level-select",
1871
+ items: g(f),
1872
+ label: g(a).t("modal.select_log_level_title")
1873
+ }, null, 8, ["modelValue", "items", "label"])) : M("", !0),
1874
+ y("div", Nn, [
1875
+ J(L, null, {
1876
+ default: $(() => [
1877
+ Z(_(g(a).t(`log_level.${o.value}`)), 1)
1878
+ ]),
1879
+ _: 1
1880
+ }),
1881
+ y("div", null, _(g(d).explanation), 1),
1882
+ g(d).warning ? (h(), I("div", In, _(g(d).warning), 1)) : M("", !0)
1883
+ ]),
1884
+ y("div", Tn, [
1885
+ J(L, null, {
1886
+ default: $(() => [
1887
+ Z(_(g(a).t("modal.revert_to_default_after.label")), 1)
1888
+ ]),
1889
+ _: 1
1890
+ }),
1891
+ y("div", An, [
1892
+ J(q, {
1893
+ modelValue: s.value,
1894
+ "onUpdate:modelValue": N[1] || (N[1] = (w) => s.value = w),
1895
+ class: "time-input",
1896
+ "data-testid": "log-level-timeout",
1897
+ disabled: i.value !== "edit",
1898
+ error: u.value <= 0 || isNaN(u.value),
1899
+ min: "1",
1900
+ type: "number"
1901
+ }, null, 8, ["modelValue", "disabled", "error"]),
1902
+ y("span", En, _(g(a).t("modal.revert_to_default_after.seconds")), 1),
1903
+ y("span", $n, _(g(T)), 1)
1904
+ ])
1905
+ ]),
1906
+ y("table", On, [
1907
+ y("thead", null, [
1908
+ y("th", jn, _(g(a).t("modal.dp_list.header.host")), 1),
1909
+ y("th", qn, _(g(a).t("modal.dp_list.header.action")), 1),
1910
+ y("th", null, _(g(a).t("modal.dp_list.header.status")), 1)
1911
+ ]),
1912
+ y("tbody", null, [
1913
+ (h(!0), I(Ce, null, Ke(t.instanceList, (w) => {
1914
+ var B;
1915
+ return h(), E(Sn, {
1916
+ key: w.id,
1917
+ ref_for: !0,
1918
+ ref: (Ue) => G(w.id, Ue),
1919
+ "check-log-level": g(oe),
1920
+ "data-plane-id": w.id,
1921
+ "data-testid": `data-plane-node-list-row-${w.id}`,
1922
+ "has-dll-capability": w.hasDLLCapability ?? !0,
1923
+ hostname: w.hostname,
1924
+ "log-level-hint": (B = t.instanceLogLevel) == null ? void 0 : B.get(w.id),
1925
+ "target-log-level": o.value
1926
+ }, null, 8, ["check-log-level", "data-plane-id", "data-testid", "has-dll-capability", "hostname", "log-level-hint", "target-log-level"]);
1927
+ }), 128))
1928
+ ])
1929
+ ])
1930
+ ]),
1931
+ _: 1
1932
+ }, 8, ["action-button-disabled", "action-button-text", "hide-close-icon", "title", "visible"]);
1933
+ };
1934
+ }
1935
+ }), ea = /* @__PURE__ */ ze(zn, [["__scopeId", "data-v-983a59ac"]]);
1936
+ export {
1937
+ ea as ChangeLogLevelModal,
1938
+ O as LogLevel,
1939
+ z as composables
1940
+ };