@kong-ui-public/entities-redis-configurations 1.8.19-pr.2781.b1238e65f.0 → 1.8.20-pr.2790.95b70759b.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/entities-redis-configurations.es.js +4223 -0
  2. package/dist/entities-redis-configurations.umd.js +1 -0
  3. package/dist/style.css +1 -0
  4. package/dist/types/components/CloudAuthFields.vue.d.ts +45 -0
  5. package/dist/types/components/CloudAuthFields.vue.d.ts.map +1 -0
  6. package/dist/types/components/ClusterNodes.vue.d.ts +16 -0
  7. package/dist/types/components/ClusterNodes.vue.d.ts.map +1 -0
  8. package/dist/types/components/DeleteWarningModal.vue.d.ts +18 -0
  9. package/dist/types/components/DeleteWarningModal.vue.d.ts.map +1 -0
  10. package/dist/types/components/FieldArrayCardContainer.vue.d.ts +57 -0
  11. package/dist/types/components/FieldArrayCardContainer.vue.d.ts.map +1 -0
  12. package/dist/types/components/LinkedPluginList.vue.d.ts +70 -0
  13. package/dist/types/components/LinkedPluginList.vue.d.ts.map +1 -0
  14. package/dist/types/components/LinkedPluginListModal.vue.d.ts +50 -0
  15. package/dist/types/components/LinkedPluginListModal.vue.d.ts.map +1 -0
  16. package/dist/types/components/LinkedPluginsInline.vue.d.ts +26 -0
  17. package/dist/types/components/LinkedPluginsInline.vue.d.ts.map +1 -0
  18. package/dist/types/components/PluginItem.vue.d.ts +7 -0
  19. package/dist/types/components/PluginItem.vue.d.ts.map +1 -0
  20. package/dist/types/components/RedisConfigurationConfigCard.vue.d.ts +63 -0
  21. package/dist/types/components/RedisConfigurationConfigCard.vue.d.ts.map +1 -0
  22. package/dist/types/components/RedisConfigurationForm.vue.d.ts +91 -0
  23. package/dist/types/components/RedisConfigurationForm.vue.d.ts.map +1 -0
  24. package/dist/types/components/RedisConfigurationFormModal.vue.d.ts +25 -0
  25. package/dist/types/components/RedisConfigurationFormModal.vue.d.ts.map +1 -0
  26. package/dist/types/components/RedisConfigurationList.vue.d.ts +114 -0
  27. package/dist/types/components/RedisConfigurationList.vue.d.ts.map +1 -0
  28. package/dist/types/components/RedisConfigurationSelector.vue.d.ts +39 -0
  29. package/dist/types/components/RedisConfigurationSelector.vue.d.ts.map +1 -0
  30. package/dist/types/components/SentinelNodes.vue.d.ts +16 -0
  31. package/dist/types/components/SentinelNodes.vue.d.ts.map +1 -0
  32. package/dist/types/composables/index.d.ts +6 -0
  33. package/dist/types/composables/index.d.ts.map +1 -0
  34. package/dist/types/composables/useI18n.d.ts +9 -0
  35. package/dist/types/composables/useI18n.d.ts.map +1 -0
  36. package/dist/types/composables/useLinkedPlugins.d.ts +27 -0
  37. package/dist/types/composables/useLinkedPlugins.d.ts.map +1 -0
  38. package/dist/types/composables/useRedisConfigurationForm.d.ts +231 -0
  39. package/dist/types/composables/useRedisConfigurationForm.d.ts.map +1 -0
  40. package/dist/types/composables/useRedisConfigurationSelector.d.ts +11 -0
  41. package/dist/types/composables/useRedisConfigurationSelector.d.ts.map +1 -0
  42. package/dist/types/composables/useVaultSecretPicker.d.ts +6 -0
  43. package/dist/types/composables/useVaultSecretPicker.d.ts.map +1 -0
  44. package/dist/types/constants.d.ts +7 -0
  45. package/dist/types/constants.d.ts.map +1 -0
  46. package/dist/types/helpers.d.ts +23 -0
  47. package/dist/types/helpers.d.ts.map +1 -0
  48. package/dist/types/index.d.ts +44 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/partials-endpoints.d.ts +26 -0
  51. package/dist/types/partials-endpoints.d.ts.map +1 -0
  52. package/dist/types/types/index.d.ts +6 -0
  53. package/dist/types/types/index.d.ts.map +1 -0
  54. package/dist/types/types/redis-configuration-config.d.ts +14 -0
  55. package/dist/types/types/redis-configuration-config.d.ts.map +1 -0
  56. package/dist/types/types/redis-configuration-form.d.ts +73 -0
  57. package/dist/types/types/redis-configuration-form.d.ts.map +1 -0
  58. package/dist/types/types/redis-configuration-linked-plugins.d.ts +11 -0
  59. package/dist/types/types/redis-configuration-linked-plugins.d.ts.map +1 -0
  60. package/dist/types/types/redis-configuration-list.d.ts +31 -0
  61. package/dist/types/types/redis-configuration-list.d.ts.map +1 -0
  62. package/dist/types/types/redis-configuration.d.ts +76 -0
  63. package/dist/types/types/redis-configuration.d.ts.map +1 -0
  64. package/package.json +9 -9
@@ -0,0 +1,4223 @@
1
+ import { computed as z, reactive as mn, ref as x, watch as Ce, defineComponent as Y, resolveComponent as $, createElementBlock as J, openBlock as O, createVNode as g, withCtx as S, renderSlot as gi, unref as i, mergeModels as Et, useModel as Ct, createElementVNode as K, createTextVNode as le, toDisplayString as B, Fragment as fe, renderList as tt, createBlock as N, createCommentVNode as Z, getCurrentInstance as bi, onMounted as yi, onUnmounted as vi, isReadonly as hi, toRefs as wi, onBeforeMount as _n, isRef as Ti, createSlots as gn, withModifiers as Si, Teleport as Ei, inject as bn, useId as Ci, nextTick as jt, mergeProps as ki } from "vue";
2
+ import "@kong-ui-public/entities-shared/dist/style.css";
3
+ import "@kong-ui-public/entities-vaults/dist/style.css";
4
+ import { useAxios as kt, useErrors as yn, EntityBaseFormType as dt, EntityBaseForm as Oi, SupportedEntityType as vn, EntityFormSection as ue, EntityFilter as hn, useDeleteUrlBuilder as Ii, useFetcher as Ri, FetcherStatus as xi, EntityBaseTable as Ai, PermissionsWrapper as Ke, TableTags as Pi, EntityDeleteModal as $i, EntityTypes as Vi, ConfigurationSchemaSection as V, ConfigurationSchemaType as M, EntityBaseConfigCard as Mi, useDebouncedFilter as ji } from "@kong-ui-public/entities-shared";
5
+ import { VaultSecretPickerProvider as he, VaultSecretPicker as wn } from "@kong-ui-public/entities-vaults";
6
+ import { useRouter as Tn } from "vue-router";
7
+ import { TrashIcon as Di, AddCircleIcon as Sn, AddIcon as yt, RefreshIcon as Li, ClipboardIcon as Ui, DeployIcon as Ni } from "@kong/icons";
8
+ import { createI18n as Bi, i18nTComponent as Fi } from "@kong-ui-public/i18n";
9
+ import { PluginIcon as En } from "@kong-ui-public/entities-plugins-icon";
10
+ import { FORMS_CONFIG as Cn } from "@kong-ui-public/forms";
11
+ var w = /* @__PURE__ */ ((e) => (e[e.HOST_PORT_CE = 0] = "HOST_PORT_CE", e[e.HOST_PORT_EE = 1] = "HOST_PORT_EE", e[e.SENTINEL = 2] = "SENTINEL", e[e.CLUSTER = 3] = "CLUSTER", e))(w || {}), Q = /* @__PURE__ */ ((e) => (e.REDIS_CE = "redis-ce", e.REDIS_EE = "redis-ee", e))(Q || {}), q = /* @__PURE__ */ ((e) => (e.AWS = "aws", e.GCP = "gcp", e.AZURE = "azure", e))(q || {}), kn = typeof global == "object" && global && global.Object === Object && global, zi = typeof self == "object" && self && self.Object === Object && self, se = kn || zi || Function("return this")(), ee = se.Symbol, On = Object.prototype, Ki = On.hasOwnProperty, Hi = On.toString, je = ee ? ee.toStringTag : void 0;
12
+ function Wi(e) {
13
+ var t = Ki.call(e, je), n = e[je];
14
+ try {
15
+ e[je] = void 0;
16
+ var o = !0;
17
+ } catch {
18
+ }
19
+ var r = Hi.call(e);
20
+ return o && (t ? e[je] = n : delete e[je]), r;
21
+ }
22
+ var qi = Object.prototype, Gi = qi.toString;
23
+ function Ji(e) {
24
+ return Gi.call(e);
25
+ }
26
+ var Zi = "[object Null]", Qi = "[object Undefined]", Dt = ee ? ee.toStringTag : void 0;
27
+ function Oe(e) {
28
+ return e == null ? e === void 0 ? Qi : Zi : Dt && Dt in Object(e) ? Wi(e) : Ji(e);
29
+ }
30
+ function me(e) {
31
+ return e != null && typeof e == "object";
32
+ }
33
+ var Yi = "[object Symbol]";
34
+ function Ot(e) {
35
+ return typeof e == "symbol" || me(e) && Oe(e) == Yi;
36
+ }
37
+ function In(e, t) {
38
+ for (var n = -1, o = e == null ? 0 : e.length, r = Array(o); ++n < o; )
39
+ r[n] = t(e[n], n, e);
40
+ return r;
41
+ }
42
+ var _e = Array.isArray, Lt = ee ? ee.prototype : void 0, Ut = Lt ? Lt.toString : void 0;
43
+ function Rn(e) {
44
+ if (typeof e == "string")
45
+ return e;
46
+ if (_e(e))
47
+ return In(e, Rn) + "";
48
+ if (Ot(e))
49
+ return Ut ? Ut.call(e) : "";
50
+ var t = e + "";
51
+ return t == "0" && 1 / e == -1 / 0 ? "-0" : t;
52
+ }
53
+ function nt(e) {
54
+ var t = typeof e;
55
+ return e != null && (t == "object" || t == "function");
56
+ }
57
+ function Xi(e) {
58
+ return e;
59
+ }
60
+ var er = "[object AsyncFunction]", tr = "[object Function]", nr = "[object GeneratorFunction]", ir = "[object Proxy]";
61
+ function xn(e) {
62
+ if (!nt(e))
63
+ return !1;
64
+ var t = Oe(e);
65
+ return t == tr || t == nr || t == er || t == ir;
66
+ }
67
+ var ut = se["__core-js_shared__"], Nt = function() {
68
+ var e = /[^.]+$/.exec(ut && ut.keys && ut.keys.IE_PROTO || "");
69
+ return e ? "Symbol(src)_1." + e : "";
70
+ }();
71
+ function rr(e) {
72
+ return !!Nt && Nt in e;
73
+ }
74
+ var or = Function.prototype, ar = or.toString;
75
+ function Ie(e) {
76
+ if (e != null) {
77
+ try {
78
+ return ar.call(e);
79
+ } catch {
80
+ }
81
+ try {
82
+ return e + "";
83
+ } catch {
84
+ }
85
+ }
86
+ return "";
87
+ }
88
+ var lr = /[\\^$.*+?()[\]{}|]/g, sr = /^\[object .+?Constructor\]$/, dr = Function.prototype, ur = Object.prototype, cr = dr.toString, fr = ur.hasOwnProperty, pr = RegExp(
89
+ "^" + cr.call(fr).replace(lr, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
90
+ );
91
+ function mr(e) {
92
+ if (!nt(e) || rr(e))
93
+ return !1;
94
+ var t = xn(e) ? pr : sr;
95
+ return t.test(Ie(e));
96
+ }
97
+ function _r(e, t) {
98
+ return e == null ? void 0 : e[t];
99
+ }
100
+ function Re(e, t) {
101
+ var n = _r(e, t);
102
+ return mr(n) ? n : void 0;
103
+ }
104
+ var vt = Re(se, "WeakMap");
105
+ function gr(e, t, n) {
106
+ switch (n.length) {
107
+ case 0:
108
+ return e.call(t);
109
+ case 1:
110
+ return e.call(t, n[0]);
111
+ case 2:
112
+ return e.call(t, n[0], n[1]);
113
+ case 3:
114
+ return e.call(t, n[0], n[1], n[2]);
115
+ }
116
+ return e.apply(t, n);
117
+ }
118
+ var br = 800, yr = 16, vr = Date.now;
119
+ function hr(e) {
120
+ var t = 0, n = 0;
121
+ return function() {
122
+ var o = vr(), r = yr - (o - n);
123
+ if (n = o, r > 0) {
124
+ if (++t >= br)
125
+ return arguments[0];
126
+ } else
127
+ t = 0;
128
+ return e.apply(void 0, arguments);
129
+ };
130
+ }
131
+ function wr(e) {
132
+ return function() {
133
+ return e;
134
+ };
135
+ }
136
+ var Je = function() {
137
+ try {
138
+ var e = Re(Object, "defineProperty");
139
+ return e({}, "", {}), e;
140
+ } catch {
141
+ }
142
+ }(), Tr = Je ? function(e, t) {
143
+ return Je(e, "toString", {
144
+ configurable: !0,
145
+ enumerable: !1,
146
+ value: wr(t),
147
+ writable: !0
148
+ });
149
+ } : Xi, Sr = hr(Tr);
150
+ function Er(e, t) {
151
+ for (var n = -1, o = e == null ? 0 : e.length; ++n < o && t(e[n], n, e) !== !1; )
152
+ ;
153
+ return e;
154
+ }
155
+ var Cr = 9007199254740991, kr = /^(?:0|[1-9]\d*)$/;
156
+ function Or(e, t) {
157
+ var n = typeof e;
158
+ return t = t ?? Cr, !!t && (n == "number" || n != "symbol" && kr.test(e)) && e > -1 && e % 1 == 0 && e < t;
159
+ }
160
+ function An(e, t, n) {
161
+ t == "__proto__" && Je ? Je(e, t, {
162
+ configurable: !0,
163
+ enumerable: !0,
164
+ value: n,
165
+ writable: !0
166
+ }) : e[t] = n;
167
+ }
168
+ function It(e, t) {
169
+ return e === t || e !== e && t !== t;
170
+ }
171
+ var Ir = Object.prototype, Rr = Ir.hasOwnProperty;
172
+ function Pn(e, t, n) {
173
+ var o = e[t];
174
+ (!(Rr.call(e, t) && It(o, n)) || n === void 0 && !(t in e)) && An(e, t, n);
175
+ }
176
+ function xr(e, t, n, o) {
177
+ var r = !n;
178
+ n || (n = {});
179
+ for (var a = -1, c = t.length; ++a < c; ) {
180
+ var p = t[a], l = void 0;
181
+ l === void 0 && (l = e[p]), r ? An(n, p, l) : Pn(n, p, l);
182
+ }
183
+ return n;
184
+ }
185
+ var Bt = Math.max;
186
+ function Ar(e, t, n) {
187
+ return t = Bt(t === void 0 ? e.length - 1 : t, 0), function() {
188
+ for (var o = arguments, r = -1, a = Bt(o.length - t, 0), c = Array(a); ++r < a; )
189
+ c[r] = o[t + r];
190
+ r = -1;
191
+ for (var p = Array(t + 1); ++r < t; )
192
+ p[r] = o[r];
193
+ return p[t] = n(c), gr(e, this, p);
194
+ };
195
+ }
196
+ var Pr = 9007199254740991;
197
+ function $n(e) {
198
+ return typeof e == "number" && e > -1 && e % 1 == 0 && e <= Pr;
199
+ }
200
+ function Vn(e) {
201
+ return e != null && $n(e.length) && !xn(e);
202
+ }
203
+ var $r = Object.prototype;
204
+ function Mn(e) {
205
+ var t = e && e.constructor, n = typeof t == "function" && t.prototype || $r;
206
+ return e === n;
207
+ }
208
+ function Vr(e, t) {
209
+ for (var n = -1, o = Array(e); ++n < e; )
210
+ o[n] = t(n);
211
+ return o;
212
+ }
213
+ var Mr = "[object Arguments]";
214
+ function Ft(e) {
215
+ return me(e) && Oe(e) == Mr;
216
+ }
217
+ var jn = Object.prototype, jr = jn.hasOwnProperty, Dr = jn.propertyIsEnumerable, Dn = Ft(/* @__PURE__ */ function() {
218
+ return arguments;
219
+ }()) ? Ft : function(e) {
220
+ return me(e) && jr.call(e, "callee") && !Dr.call(e, "callee");
221
+ };
222
+ function Lr() {
223
+ return !1;
224
+ }
225
+ var Ln = typeof exports == "object" && exports && !exports.nodeType && exports, zt = Ln && typeof module == "object" && module && !module.nodeType && module, Ur = zt && zt.exports === Ln, Kt = Ur ? se.Buffer : void 0, Nr = Kt ? Kt.isBuffer : void 0, Ze = Nr || Lr, Br = "[object Arguments]", Fr = "[object Array]", zr = "[object Boolean]", Kr = "[object Date]", Hr = "[object Error]", Wr = "[object Function]", qr = "[object Map]", Gr = "[object Number]", Jr = "[object Object]", Zr = "[object RegExp]", Qr = "[object Set]", Yr = "[object String]", Xr = "[object WeakMap]", eo = "[object ArrayBuffer]", to = "[object DataView]", no = "[object Float32Array]", io = "[object Float64Array]", ro = "[object Int8Array]", oo = "[object Int16Array]", ao = "[object Int32Array]", lo = "[object Uint8Array]", so = "[object Uint8ClampedArray]", uo = "[object Uint16Array]", co = "[object Uint32Array]", U = {};
226
+ U[no] = U[io] = U[ro] = U[oo] = U[ao] = U[lo] = U[so] = U[uo] = U[co] = !0;
227
+ U[Br] = U[Fr] = U[eo] = U[zr] = U[to] = U[Kr] = U[Hr] = U[Wr] = U[qr] = U[Gr] = U[Jr] = U[Zr] = U[Qr] = U[Yr] = U[Xr] = !1;
228
+ function fo(e) {
229
+ return me(e) && $n(e.length) && !!U[Oe(e)];
230
+ }
231
+ function Rt(e) {
232
+ return function(t) {
233
+ return e(t);
234
+ };
235
+ }
236
+ var Un = typeof exports == "object" && exports && !exports.nodeType && exports, De = Un && typeof module == "object" && module && !module.nodeType && module, po = De && De.exports === Un, ct = po && kn.process, Ve = function() {
237
+ try {
238
+ var e = De && De.require && De.require("util").types;
239
+ return e || ct && ct.binding && ct.binding("util");
240
+ } catch {
241
+ }
242
+ }(), Ht = Ve && Ve.isTypedArray, Nn = Ht ? Rt(Ht) : fo, mo = Object.prototype, _o = mo.hasOwnProperty;
243
+ function Bn(e, t) {
244
+ var n = _e(e), o = !n && Dn(e), r = !n && !o && Ze(e), a = !n && !o && !r && Nn(e), c = n || o || r || a, p = c ? Vr(e.length, String) : [], l = p.length;
245
+ for (var u in e)
246
+ (t || _o.call(e, u)) && !(c && // Safari 9 has enumerable `arguments.length` in strict mode.
247
+ (u == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
248
+ r && (u == "offset" || u == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
249
+ a && (u == "buffer" || u == "byteLength" || u == "byteOffset") || // Skip index properties.
250
+ Or(u, l))) && p.push(u);
251
+ return p;
252
+ }
253
+ function Fn(e, t) {
254
+ return function(n) {
255
+ return e(t(n));
256
+ };
257
+ }
258
+ var go = Fn(Object.keys, Object), bo = Object.prototype, yo = bo.hasOwnProperty;
259
+ function vo(e) {
260
+ if (!Mn(e))
261
+ return go(e);
262
+ var t = [];
263
+ for (var n in Object(e))
264
+ yo.call(e, n) && n != "constructor" && t.push(n);
265
+ return t;
266
+ }
267
+ function ho(e) {
268
+ return Vn(e) ? Bn(e) : vo(e);
269
+ }
270
+ function wo(e) {
271
+ var t = [];
272
+ if (e != null)
273
+ for (var n in Object(e))
274
+ t.push(n);
275
+ return t;
276
+ }
277
+ var To = Object.prototype, So = To.hasOwnProperty;
278
+ function Eo(e) {
279
+ if (!nt(e))
280
+ return wo(e);
281
+ var t = Mn(e), n = [];
282
+ for (var o in e)
283
+ o == "constructor" && (t || !So.call(e, o)) || n.push(o);
284
+ return n;
285
+ }
286
+ function Co(e) {
287
+ return Vn(e) ? Bn(e, !0) : Eo(e);
288
+ }
289
+ var ko = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Oo = /^\w*$/;
290
+ function Io(e, t) {
291
+ if (_e(e))
292
+ return !1;
293
+ var n = typeof e;
294
+ return n == "number" || n == "symbol" || n == "boolean" || e == null || Ot(e) ? !0 : Oo.test(e) || !ko.test(e) || t != null && e in Object(t);
295
+ }
296
+ var Le = Re(Object, "create");
297
+ function Ro() {
298
+ this.__data__ = Le ? Le(null) : {}, this.size = 0;
299
+ }
300
+ function xo(e) {
301
+ var t = this.has(e) && delete this.__data__[e];
302
+ return this.size -= t ? 1 : 0, t;
303
+ }
304
+ var Ao = "__lodash_hash_undefined__", Po = Object.prototype, $o = Po.hasOwnProperty;
305
+ function Vo(e) {
306
+ var t = this.__data__;
307
+ if (Le) {
308
+ var n = t[e];
309
+ return n === Ao ? void 0 : n;
310
+ }
311
+ return $o.call(t, e) ? t[e] : void 0;
312
+ }
313
+ var Mo = Object.prototype, jo = Mo.hasOwnProperty;
314
+ function Do(e) {
315
+ var t = this.__data__;
316
+ return Le ? t[e] !== void 0 : jo.call(t, e);
317
+ }
318
+ var Lo = "__lodash_hash_undefined__";
319
+ function Uo(e, t) {
320
+ var n = this.__data__;
321
+ return this.size += this.has(e) ? 0 : 1, n[e] = Le && t === void 0 ? Lo : t, this;
322
+ }
323
+ function ke(e) {
324
+ var t = -1, n = e == null ? 0 : e.length;
325
+ for (this.clear(); ++t < n; ) {
326
+ var o = e[t];
327
+ this.set(o[0], o[1]);
328
+ }
329
+ }
330
+ ke.prototype.clear = Ro;
331
+ ke.prototype.delete = xo;
332
+ ke.prototype.get = Vo;
333
+ ke.prototype.has = Do;
334
+ ke.prototype.set = Uo;
335
+ function No() {
336
+ this.__data__ = [], this.size = 0;
337
+ }
338
+ function it(e, t) {
339
+ for (var n = e.length; n--; )
340
+ if (It(e[n][0], t))
341
+ return n;
342
+ return -1;
343
+ }
344
+ var Bo = Array.prototype, Fo = Bo.splice;
345
+ function zo(e) {
346
+ var t = this.__data__, n = it(t, e);
347
+ if (n < 0)
348
+ return !1;
349
+ var o = t.length - 1;
350
+ return n == o ? t.pop() : Fo.call(t, n, 1), --this.size, !0;
351
+ }
352
+ function Ko(e) {
353
+ var t = this.__data__, n = it(t, e);
354
+ return n < 0 ? void 0 : t[n][1];
355
+ }
356
+ function Ho(e) {
357
+ return it(this.__data__, e) > -1;
358
+ }
359
+ function Wo(e, t) {
360
+ var n = this.__data__, o = it(n, e);
361
+ return o < 0 ? (++this.size, n.push([e, t])) : n[o][1] = t, this;
362
+ }
363
+ function ge(e) {
364
+ var t = -1, n = e == null ? 0 : e.length;
365
+ for (this.clear(); ++t < n; ) {
366
+ var o = e[t];
367
+ this.set(o[0], o[1]);
368
+ }
369
+ }
370
+ ge.prototype.clear = No;
371
+ ge.prototype.delete = zo;
372
+ ge.prototype.get = Ko;
373
+ ge.prototype.has = Ho;
374
+ ge.prototype.set = Wo;
375
+ var Ue = Re(se, "Map");
376
+ function qo() {
377
+ this.size = 0, this.__data__ = {
378
+ hash: new ke(),
379
+ map: new (Ue || ge)(),
380
+ string: new ke()
381
+ };
382
+ }
383
+ function Go(e) {
384
+ var t = typeof e;
385
+ return t == "string" || t == "number" || t == "symbol" || t == "boolean" ? e !== "__proto__" : e === null;
386
+ }
387
+ function rt(e, t) {
388
+ var n = e.__data__;
389
+ return Go(t) ? n[typeof t == "string" ? "string" : "hash"] : n.map;
390
+ }
391
+ function Jo(e) {
392
+ var t = rt(this, e).delete(e);
393
+ return this.size -= t ? 1 : 0, t;
394
+ }
395
+ function Zo(e) {
396
+ return rt(this, e).get(e);
397
+ }
398
+ function Qo(e) {
399
+ return rt(this, e).has(e);
400
+ }
401
+ function Yo(e, t) {
402
+ var n = rt(this, e), o = n.size;
403
+ return n.set(e, t), this.size += n.size == o ? 0 : 1, this;
404
+ }
405
+ function be(e) {
406
+ var t = -1, n = e == null ? 0 : e.length;
407
+ for (this.clear(); ++t < n; ) {
408
+ var o = e[t];
409
+ this.set(o[0], o[1]);
410
+ }
411
+ }
412
+ be.prototype.clear = qo;
413
+ be.prototype.delete = Jo;
414
+ be.prototype.get = Zo;
415
+ be.prototype.has = Qo;
416
+ be.prototype.set = Yo;
417
+ var Xo = "Expected a function";
418
+ function xt(e, t) {
419
+ if (typeof e != "function" || t != null && typeof t != "function")
420
+ throw new TypeError(Xo);
421
+ var n = function() {
422
+ var o = arguments, r = t ? t.apply(this, o) : o[0], a = n.cache;
423
+ if (a.has(r))
424
+ return a.get(r);
425
+ var c = e.apply(this, o);
426
+ return n.cache = a.set(r, c) || a, c;
427
+ };
428
+ return n.cache = new (xt.Cache || be)(), n;
429
+ }
430
+ xt.Cache = be;
431
+ var ea = 500;
432
+ function ta(e) {
433
+ var t = xt(e, function(o) {
434
+ return n.size === ea && n.clear(), o;
435
+ }), n = t.cache;
436
+ return t;
437
+ }
438
+ var na = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, ia = /\\(\\)?/g, ra = ta(function(e) {
439
+ var t = [];
440
+ return e.charCodeAt(0) === 46 && t.push(""), e.replace(na, function(n, o, r, a) {
441
+ t.push(r ? a.replace(ia, "$1") : o || n);
442
+ }), t;
443
+ });
444
+ function oa(e) {
445
+ return e == null ? "" : Rn(e);
446
+ }
447
+ function At(e, t) {
448
+ return _e(e) ? e : Io(e, t) ? [e] : ra(oa(e));
449
+ }
450
+ function zn(e) {
451
+ if (typeof e == "string" || Ot(e))
452
+ return e;
453
+ var t = e + "";
454
+ return t == "0" && 1 / e == -1 / 0 ? "-0" : t;
455
+ }
456
+ function aa(e, t) {
457
+ t = At(t, e);
458
+ for (var n = 0, o = t.length; e != null && n < o; )
459
+ e = e[zn(t[n++])];
460
+ return n && n == o ? e : void 0;
461
+ }
462
+ function Pt(e, t) {
463
+ for (var n = -1, o = t.length, r = e.length; ++n < o; )
464
+ e[r + n] = t[n];
465
+ return e;
466
+ }
467
+ var Wt = ee ? ee.isConcatSpreadable : void 0;
468
+ function la(e) {
469
+ return _e(e) || Dn(e) || !!(Wt && e && e[Wt]);
470
+ }
471
+ function sa(e, t, n, o, r) {
472
+ var a = -1, c = e.length;
473
+ for (n || (n = la), r || (r = []); ++a < c; ) {
474
+ var p = e[a];
475
+ n(p) ? Pt(r, p) : r[r.length] = p;
476
+ }
477
+ return r;
478
+ }
479
+ function da(e) {
480
+ var t = e == null ? 0 : e.length;
481
+ return t ? sa(e) : [];
482
+ }
483
+ function ua(e) {
484
+ return Sr(Ar(e, void 0, da), e + "");
485
+ }
486
+ var Kn = Fn(Object.getPrototypeOf, Object), ca = "[object Object]", fa = Function.prototype, pa = Object.prototype, Hn = fa.toString, ma = pa.hasOwnProperty, _a = Hn.call(Object);
487
+ function ga(e) {
488
+ if (!me(e) || Oe(e) != ca)
489
+ return !1;
490
+ var t = Kn(e);
491
+ if (t === null)
492
+ return !0;
493
+ var n = ma.call(t, "constructor") && t.constructor;
494
+ return typeof n == "function" && n instanceof n && Hn.call(n) == _a;
495
+ }
496
+ function ba(e, t, n) {
497
+ var o = -1, r = e.length;
498
+ t < 0 && (t = -t > r ? 0 : r + t), n = n > r ? r : n, n < 0 && (n += r), r = t > n ? 0 : n - t >>> 0, t >>>= 0;
499
+ for (var a = Array(r); ++o < r; )
500
+ a[o] = e[o + t];
501
+ return a;
502
+ }
503
+ function ya() {
504
+ this.__data__ = new ge(), this.size = 0;
505
+ }
506
+ function va(e) {
507
+ var t = this.__data__, n = t.delete(e);
508
+ return this.size = t.size, n;
509
+ }
510
+ function ha(e) {
511
+ return this.__data__.get(e);
512
+ }
513
+ function wa(e) {
514
+ return this.__data__.has(e);
515
+ }
516
+ var Ta = 200;
517
+ function Sa(e, t) {
518
+ var n = this.__data__;
519
+ if (n instanceof ge) {
520
+ var o = n.__data__;
521
+ if (!Ue || o.length < Ta - 1)
522
+ return o.push([e, t]), this.size = ++n.size, this;
523
+ n = this.__data__ = new be(o);
524
+ }
525
+ return n.set(e, t), this.size = n.size, this;
526
+ }
527
+ function pe(e) {
528
+ var t = this.__data__ = new ge(e);
529
+ this.size = t.size;
530
+ }
531
+ pe.prototype.clear = ya;
532
+ pe.prototype.delete = va;
533
+ pe.prototype.get = ha;
534
+ pe.prototype.has = wa;
535
+ pe.prototype.set = Sa;
536
+ var Wn = typeof exports == "object" && exports && !exports.nodeType && exports, qt = Wn && typeof module == "object" && module && !module.nodeType && module, Ea = qt && qt.exports === Wn, Gt = Ea ? se.Buffer : void 0;
537
+ Gt && Gt.allocUnsafe;
538
+ function Ca(e, t) {
539
+ return e.slice();
540
+ }
541
+ function ka(e, t) {
542
+ for (var n = -1, o = e == null ? 0 : e.length, r = 0, a = []; ++n < o; ) {
543
+ var c = e[n];
544
+ t(c, n, e) && (a[r++] = c);
545
+ }
546
+ return a;
547
+ }
548
+ function qn() {
549
+ return [];
550
+ }
551
+ var Oa = Object.prototype, Ia = Oa.propertyIsEnumerable, Jt = Object.getOwnPropertySymbols, Gn = Jt ? function(e) {
552
+ return e == null ? [] : (e = Object(e), ka(Jt(e), function(t) {
553
+ return Ia.call(e, t);
554
+ }));
555
+ } : qn, Ra = Object.getOwnPropertySymbols, xa = Ra ? function(e) {
556
+ for (var t = []; e; )
557
+ Pt(t, Gn(e)), e = Kn(e);
558
+ return t;
559
+ } : qn;
560
+ function Jn(e, t, n) {
561
+ var o = t(e);
562
+ return _e(e) ? o : Pt(o, n(e));
563
+ }
564
+ function Zt(e) {
565
+ return Jn(e, ho, Gn);
566
+ }
567
+ function Zn(e) {
568
+ return Jn(e, Co, xa);
569
+ }
570
+ var ht = Re(se, "DataView"), wt = Re(se, "Promise"), Tt = Re(se, "Set"), Qt = "[object Map]", Aa = "[object Object]", Yt = "[object Promise]", Xt = "[object Set]", en = "[object WeakMap]", tn = "[object DataView]", Pa = Ie(ht), $a = Ie(Ue), Va = Ie(wt), Ma = Ie(Tt), ja = Ie(vt), ae = Oe;
571
+ (ht && ae(new ht(new ArrayBuffer(1))) != tn || Ue && ae(new Ue()) != Qt || wt && ae(wt.resolve()) != Yt || Tt && ae(new Tt()) != Xt || vt && ae(new vt()) != en) && (ae = function(e) {
572
+ var t = Oe(e), n = t == Aa ? e.constructor : void 0, o = n ? Ie(n) : "";
573
+ if (o)
574
+ switch (o) {
575
+ case Pa:
576
+ return tn;
577
+ case $a:
578
+ return Qt;
579
+ case Va:
580
+ return Yt;
581
+ case Ma:
582
+ return Xt;
583
+ case ja:
584
+ return en;
585
+ }
586
+ return t;
587
+ });
588
+ var Da = Object.prototype, La = Da.hasOwnProperty;
589
+ function Ua(e) {
590
+ var t = e.length, n = new e.constructor(t);
591
+ return t && typeof e[0] == "string" && La.call(e, "index") && (n.index = e.index, n.input = e.input), n;
592
+ }
593
+ var Qe = se.Uint8Array;
594
+ function $t(e) {
595
+ var t = new e.constructor(e.byteLength);
596
+ return new Qe(t).set(new Qe(e)), t;
597
+ }
598
+ function Na(e, t) {
599
+ var n = $t(e.buffer);
600
+ return new e.constructor(n, e.byteOffset, e.byteLength);
601
+ }
602
+ var Ba = /\w*$/;
603
+ function Fa(e) {
604
+ var t = new e.constructor(e.source, Ba.exec(e));
605
+ return t.lastIndex = e.lastIndex, t;
606
+ }
607
+ var nn = ee ? ee.prototype : void 0, rn = nn ? nn.valueOf : void 0;
608
+ function za(e) {
609
+ return rn ? Object(rn.call(e)) : {};
610
+ }
611
+ function Ka(e, t) {
612
+ var n = $t(e.buffer);
613
+ return new e.constructor(n, e.byteOffset, e.length);
614
+ }
615
+ var Ha = "[object Boolean]", Wa = "[object Date]", qa = "[object Map]", Ga = "[object Number]", Ja = "[object RegExp]", Za = "[object Set]", Qa = "[object String]", Ya = "[object Symbol]", Xa = "[object ArrayBuffer]", el = "[object DataView]", tl = "[object Float32Array]", nl = "[object Float64Array]", il = "[object Int8Array]", rl = "[object Int16Array]", ol = "[object Int32Array]", al = "[object Uint8Array]", ll = "[object Uint8ClampedArray]", sl = "[object Uint16Array]", dl = "[object Uint32Array]";
616
+ function ul(e, t, n) {
617
+ var o = e.constructor;
618
+ switch (t) {
619
+ case Xa:
620
+ return $t(e);
621
+ case Ha:
622
+ case Wa:
623
+ return new o(+e);
624
+ case el:
625
+ return Na(e);
626
+ case tl:
627
+ case nl:
628
+ case il:
629
+ case rl:
630
+ case ol:
631
+ case al:
632
+ case ll:
633
+ case sl:
634
+ case dl:
635
+ return Ka(e);
636
+ case qa:
637
+ return new o();
638
+ case Ga:
639
+ case Qa:
640
+ return new o(e);
641
+ case Ja:
642
+ return Fa(e);
643
+ case Za:
644
+ return new o();
645
+ case Ya:
646
+ return za(e);
647
+ }
648
+ }
649
+ var cl = "[object Map]";
650
+ function fl(e) {
651
+ return me(e) && ae(e) == cl;
652
+ }
653
+ var on = Ve && Ve.isMap, pl = on ? Rt(on) : fl, ml = "[object Set]";
654
+ function _l(e) {
655
+ return me(e) && ae(e) == ml;
656
+ }
657
+ var an = Ve && Ve.isSet, gl = an ? Rt(an) : _l, Qn = "[object Arguments]", bl = "[object Array]", yl = "[object Boolean]", vl = "[object Date]", hl = "[object Error]", Yn = "[object Function]", wl = "[object GeneratorFunction]", Tl = "[object Map]", Sl = "[object Number]", Xn = "[object Object]", El = "[object RegExp]", Cl = "[object Set]", kl = "[object String]", Ol = "[object Symbol]", Il = "[object WeakMap]", Rl = "[object ArrayBuffer]", xl = "[object DataView]", Al = "[object Float32Array]", Pl = "[object Float64Array]", $l = "[object Int8Array]", Vl = "[object Int16Array]", Ml = "[object Int32Array]", jl = "[object Uint8Array]", Dl = "[object Uint8ClampedArray]", Ll = "[object Uint16Array]", Ul = "[object Uint32Array]", j = {};
658
+ j[Qn] = j[bl] = j[Rl] = j[xl] = j[yl] = j[vl] = j[Al] = j[Pl] = j[$l] = j[Vl] = j[Ml] = j[Tl] = j[Sl] = j[Xn] = j[El] = j[Cl] = j[kl] = j[Ol] = j[jl] = j[Dl] = j[Ll] = j[Ul] = !0;
659
+ j[hl] = j[Yn] = j[Il] = !1;
660
+ function Ge(e, t, n, o, r, a) {
661
+ var c;
662
+ if (n && (c = r ? n(e, o, r, a) : n(e)), c !== void 0)
663
+ return c;
664
+ if (!nt(e))
665
+ return e;
666
+ var p = _e(e);
667
+ if (p)
668
+ c = Ua(e);
669
+ else {
670
+ var l = ae(e), u = l == Yn || l == wl;
671
+ if (Ze(e))
672
+ return Ca(e);
673
+ if (l == Xn || l == Qn || u && !r)
674
+ c = {};
675
+ else {
676
+ if (!j[l])
677
+ return r ? e : {};
678
+ c = ul(e, l);
679
+ }
680
+ }
681
+ a || (a = new pe());
682
+ var v = a.get(e);
683
+ if (v)
684
+ return v;
685
+ a.set(e, c), gl(e) ? e.forEach(function(b) {
686
+ c.add(Ge(b, t, n, b, e, a));
687
+ }) : pl(e) && e.forEach(function(b, _) {
688
+ c.set(_, Ge(b, t, n, _, e, a));
689
+ });
690
+ var T = Zn, m = p ? void 0 : T(e);
691
+ return Er(m || e, function(b, _) {
692
+ m && (_ = b, b = e[_]), Pn(c, _, Ge(b, t, n, _, e, a));
693
+ }), c;
694
+ }
695
+ var Nl = "__lodash_hash_undefined__";
696
+ function Bl(e) {
697
+ return this.__data__.set(e, Nl), this;
698
+ }
699
+ function Fl(e) {
700
+ return this.__data__.has(e);
701
+ }
702
+ function Ye(e) {
703
+ var t = -1, n = e == null ? 0 : e.length;
704
+ for (this.__data__ = new be(); ++t < n; )
705
+ this.add(e[t]);
706
+ }
707
+ Ye.prototype.add = Ye.prototype.push = Bl;
708
+ Ye.prototype.has = Fl;
709
+ function zl(e, t) {
710
+ for (var n = -1, o = e == null ? 0 : e.length; ++n < o; )
711
+ if (t(e[n], n, e))
712
+ return !0;
713
+ return !1;
714
+ }
715
+ function Kl(e, t) {
716
+ return e.has(t);
717
+ }
718
+ var Hl = 1, Wl = 2;
719
+ function ei(e, t, n, o, r, a) {
720
+ var c = n & Hl, p = e.length, l = t.length;
721
+ if (p != l && !(c && l > p))
722
+ return !1;
723
+ var u = a.get(e), v = a.get(t);
724
+ if (u && v)
725
+ return u == t && v == e;
726
+ var T = -1, m = !0, b = n & Wl ? new Ye() : void 0;
727
+ for (a.set(e, t), a.set(t, e); ++T < p; ) {
728
+ var _ = e[T], E = t[T];
729
+ if (o)
730
+ var s = c ? o(E, _, T, t, e, a) : o(_, E, T, e, t, a);
731
+ if (s !== void 0) {
732
+ if (s)
733
+ continue;
734
+ m = !1;
735
+ break;
736
+ }
737
+ if (b) {
738
+ if (!zl(t, function(A, k) {
739
+ if (!Kl(b, k) && (_ === A || r(_, A, n, o, a)))
740
+ return b.push(k);
741
+ })) {
742
+ m = !1;
743
+ break;
744
+ }
745
+ } else if (!(_ === E || r(_, E, n, o, a))) {
746
+ m = !1;
747
+ break;
748
+ }
749
+ }
750
+ return a.delete(e), a.delete(t), m;
751
+ }
752
+ function ql(e) {
753
+ var t = -1, n = Array(e.size);
754
+ return e.forEach(function(o, r) {
755
+ n[++t] = [r, o];
756
+ }), n;
757
+ }
758
+ function Gl(e) {
759
+ var t = -1, n = Array(e.size);
760
+ return e.forEach(function(o) {
761
+ n[++t] = o;
762
+ }), n;
763
+ }
764
+ var Jl = 1, Zl = 2, Ql = "[object Boolean]", Yl = "[object Date]", Xl = "[object Error]", es = "[object Map]", ts = "[object Number]", ns = "[object RegExp]", is = "[object Set]", rs = "[object String]", os = "[object Symbol]", as = "[object ArrayBuffer]", ls = "[object DataView]", ln = ee ? ee.prototype : void 0, ft = ln ? ln.valueOf : void 0;
765
+ function ss(e, t, n, o, r, a, c) {
766
+ switch (n) {
767
+ case ls:
768
+ if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset)
769
+ return !1;
770
+ e = e.buffer, t = t.buffer;
771
+ case as:
772
+ return !(e.byteLength != t.byteLength || !a(new Qe(e), new Qe(t)));
773
+ case Ql:
774
+ case Yl:
775
+ case ts:
776
+ return It(+e, +t);
777
+ case Xl:
778
+ return e.name == t.name && e.message == t.message;
779
+ case ns:
780
+ case rs:
781
+ return e == t + "";
782
+ case es:
783
+ var p = ql;
784
+ case is:
785
+ var l = o & Jl;
786
+ if (p || (p = Gl), e.size != t.size && !l)
787
+ return !1;
788
+ var u = c.get(e);
789
+ if (u)
790
+ return u == t;
791
+ o |= Zl, c.set(e, t);
792
+ var v = ei(p(e), p(t), o, r, a, c);
793
+ return c.delete(e), v;
794
+ case os:
795
+ if (ft)
796
+ return ft.call(e) == ft.call(t);
797
+ }
798
+ return !1;
799
+ }
800
+ var ds = 1, us = Object.prototype, cs = us.hasOwnProperty;
801
+ function fs(e, t, n, o, r, a) {
802
+ var c = n & ds, p = Zt(e), l = p.length, u = Zt(t), v = u.length;
803
+ if (l != v && !c)
804
+ return !1;
805
+ for (var T = l; T--; ) {
806
+ var m = p[T];
807
+ if (!(c ? m in t : cs.call(t, m)))
808
+ return !1;
809
+ }
810
+ var b = a.get(e), _ = a.get(t);
811
+ if (b && _)
812
+ return b == t && _ == e;
813
+ var E = !0;
814
+ a.set(e, t), a.set(t, e);
815
+ for (var s = c; ++T < l; ) {
816
+ m = p[T];
817
+ var A = e[m], k = t[m];
818
+ if (o)
819
+ var d = c ? o(k, A, m, t, e, a) : o(A, k, m, e, t, a);
820
+ if (!(d === void 0 ? A === k || r(A, k, n, o, a) : d)) {
821
+ E = !1;
822
+ break;
823
+ }
824
+ s || (s = m == "constructor");
825
+ }
826
+ if (E && !s) {
827
+ var I = e.constructor, P = t.constructor;
828
+ I != P && "constructor" in e && "constructor" in t && !(typeof I == "function" && I instanceof I && typeof P == "function" && P instanceof P) && (E = !1);
829
+ }
830
+ return a.delete(e), a.delete(t), E;
831
+ }
832
+ var ps = 1, sn = "[object Arguments]", dn = "[object Array]", He = "[object Object]", ms = Object.prototype, un = ms.hasOwnProperty;
833
+ function _s(e, t, n, o, r, a) {
834
+ var c = _e(e), p = _e(t), l = c ? dn : ae(e), u = p ? dn : ae(t);
835
+ l = l == sn ? He : l, u = u == sn ? He : u;
836
+ var v = l == He, T = u == He, m = l == u;
837
+ if (m && Ze(e)) {
838
+ if (!Ze(t))
839
+ return !1;
840
+ c = !0, v = !1;
841
+ }
842
+ if (m && !v)
843
+ return a || (a = new pe()), c || Nn(e) ? ei(e, t, n, o, r, a) : ss(e, t, l, n, o, r, a);
844
+ if (!(n & ps)) {
845
+ var b = v && un.call(e, "__wrapped__"), _ = T && un.call(t, "__wrapped__");
846
+ if (b || _) {
847
+ var E = b ? e.value() : e, s = _ ? t.value() : t;
848
+ return a || (a = new pe()), r(E, s, n, o, a);
849
+ }
850
+ }
851
+ return m ? (a || (a = new pe()), fs(e, t, n, o, r, a)) : !1;
852
+ }
853
+ function ti(e, t, n, o, r) {
854
+ return e === t ? !0 : e == null || t == null || !me(e) && !me(t) ? e !== e && t !== t : _s(e, t, n, o, ti, r);
855
+ }
856
+ function gs(e) {
857
+ var t = e == null ? 0 : e.length;
858
+ return t ? e[t - 1] : void 0;
859
+ }
860
+ function bs(e, t) {
861
+ return t.length < 2 ? e : aa(e, ba(t, 0, -1));
862
+ }
863
+ function ys(e, t) {
864
+ return ti(e, t);
865
+ }
866
+ var vs = Object.prototype, hs = vs.hasOwnProperty;
867
+ function ws(e, t) {
868
+ t = At(t, e);
869
+ var n = -1, o = t.length;
870
+ if (!o)
871
+ return !0;
872
+ for (var r = e == null || typeof e != "object" && typeof e != "function"; ++n < o; ) {
873
+ var a = t[n];
874
+ if (typeof a == "string") {
875
+ if (a === "__proto__" && !hs.call(e, "__proto__"))
876
+ return !1;
877
+ if (a === "constructor" && n + 1 < o && typeof t[n + 1] == "string" && t[n + 1] === "prototype") {
878
+ if (r && n === 0)
879
+ continue;
880
+ return !1;
881
+ }
882
+ }
883
+ }
884
+ var c = bs(e, t);
885
+ return c == null || delete c[zn(gs(t))];
886
+ }
887
+ function Ts(e) {
888
+ return ga(e) ? void 0 : e;
889
+ }
890
+ var Ss = 1, Es = 2, Cs = 4, ks = ua(function(e, t) {
891
+ var n = {};
892
+ if (e == null)
893
+ return n;
894
+ var o = !1;
895
+ t = In(t, function(a) {
896
+ return a = At(a, e), o || (o = a.length > 1), a;
897
+ }), xr(e, Zn(e), n), o && (n = Ge(n, Ss | Es | Cs, Ts));
898
+ for (var r = t.length; r--; )
899
+ ws(n, t[r]);
900
+ return n;
901
+ });
902
+ const G = [];
903
+ for (let e = 0; e < 256; ++e)
904
+ G.push((e + 256).toString(16).slice(1));
905
+ function Os(e, t = 0) {
906
+ return (G[e[t + 0]] + G[e[t + 1]] + G[e[t + 2]] + G[e[t + 3]] + "-" + G[e[t + 4]] + G[e[t + 5]] + "-" + G[e[t + 6]] + G[e[t + 7]] + "-" + G[e[t + 8]] + G[e[t + 9]] + "-" + G[e[t + 10]] + G[e[t + 11]] + G[e[t + 12]] + G[e[t + 13]] + G[e[t + 14]] + G[e[t + 15]]).toLowerCase();
907
+ }
908
+ let pt;
909
+ const Is = new Uint8Array(16);
910
+ function Rs() {
911
+ if (!pt) {
912
+ if (typeof crypto > "u" || !crypto.getRandomValues)
913
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
914
+ pt = crypto.getRandomValues.bind(crypto);
915
+ }
916
+ return pt(Is);
917
+ }
918
+ const xs = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), cn = { randomUUID: xs };
919
+ function As(e, t, n) {
920
+ var r;
921
+ if (cn.randomUUID && !e)
922
+ return cn.randomUUID();
923
+ e = e || {};
924
+ const o = e.random ?? ((r = e.rng) == null ? void 0 : r.call(e)) ?? Rs();
925
+ if (o.length < 16)
926
+ throw new Error("Random bytes length must be >= 16");
927
+ return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, Os(o);
928
+ }
929
+ const ni = {
930
+ ip: "127.0.0.1",
931
+ port: 6379
932
+ }, ii = {
933
+ host: "127.0.0.1",
934
+ port: 6379
935
+ }, $e = w.HOST_PORT_EE, ri = {
936
+ port: 6379,
937
+ host: "127.0.0.1",
938
+ database: 0,
939
+ username: "",
940
+ password: "",
941
+ ssl: !1,
942
+ ssl_verify: !1,
943
+ server_name: "",
944
+ connect_timeout: 2e3,
945
+ send_timeout: 2e3,
946
+ read_timeout: 2e3,
947
+ sentinel_username: "",
948
+ sentinel_password: "",
949
+ keepalive_pool_size: 256,
950
+ keepalive_backlog: 0,
951
+ sentinel_master: "",
952
+ sentinel_nodes: [],
953
+ cluster_nodes: [],
954
+ cluster_max_redirections: 0,
955
+ connection_is_proxied: !1,
956
+ timeout: 2e3,
957
+ cloud_authentication: {
958
+ aws_is_serverless: !0
959
+ }
960
+ }, Qd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
961
+ __proto__: null,
962
+ DEFAULT_CLUSTER_NODE: ni,
963
+ DEFAULT_FIELDS: ri,
964
+ DEFAULT_REDIS_TYPE: $e,
965
+ DEFAULT_SENTINEL_NODE: ii
966
+ }, Symbol.toStringTag, { value: "Module" })), Ne = (e) => ({ ...e, id: As() }), St = (e) => {
967
+ const { id: t, ...n } = e;
968
+ return n;
969
+ }, oi = () => Ne(ii), ai = () => Ne(ni), Be = (e) => {
970
+ var t, n;
971
+ return e.type === Q.REDIS_CE ? w.HOST_PORT_CE : (t = e.config.sentinel_nodes) != null && t.length ? w.SENTINEL : (n = e.config.cluster_nodes) != null && n.length ? w.CLUSTER : w.HOST_PORT_EE;
972
+ }, Xe = (e) => e === w.HOST_PORT_CE ? Q.REDIS_CE : Q.REDIS_EE, h = {
973
+ int(e, t) {
974
+ return e == null ? t : parseInt(e.toString(), 10);
975
+ },
976
+ str(e, t) {
977
+ return e == null || e === "" ? t : e.toString();
978
+ },
979
+ removeIdClusterNodes(e) {
980
+ return e.map((t) => ({
981
+ ...St(t),
982
+ port: h.int(t.port)
983
+ }));
984
+ },
985
+ removeIdFromSentinelNodes(e) {
986
+ return e.map((t) => ({
987
+ ...St(t),
988
+ port: h.int(t.port)
989
+ }));
990
+ },
991
+ addIdToClusterNodes(e) {
992
+ return e.map(Ne);
993
+ },
994
+ addIdToSentinelNodes(e) {
995
+ return e.map(Ne);
996
+ },
997
+ removeNullValues(e) {
998
+ const t = { ...e };
999
+ for (const n in t)
1000
+ t[n] === null && delete t[n];
1001
+ return t;
1002
+ },
1003
+ stringToArray(e, t = ",") {
1004
+ return e ? e.split(t).map((n) => String(n || "").trim()).filter((n) => n !== "") : [];
1005
+ },
1006
+ arrayToString(e, t = ", ") {
1007
+ return e ? e.join(t) : "";
1008
+ }
1009
+ }, Vt = (e) => {
1010
+ switch (e == null ? void 0 : e.auth_provider) {
1011
+ case q.AWS:
1012
+ return {
1013
+ auth_provider: e.auth_provider,
1014
+ aws_cache_name: e.aws_cache_name,
1015
+ aws_region: e.aws_region,
1016
+ aws_is_serverless: e.aws_is_serverless,
1017
+ aws_access_key_id: e.aws_access_key_id,
1018
+ aws_secret_access_key: e.aws_secret_access_key,
1019
+ aws_assume_role_arn: e.aws_assume_role_arn,
1020
+ aws_role_session_name: e.aws_role_session_name
1021
+ };
1022
+ case q.GCP:
1023
+ return {
1024
+ auth_provider: e.auth_provider,
1025
+ gcp_service_account_json: e.gcp_service_account_json
1026
+ };
1027
+ case q.AZURE:
1028
+ return {
1029
+ auth_provider: e.auth_provider,
1030
+ azure_client_id: e.azure_client_id,
1031
+ azure_client_secret: e.azure_client_secret,
1032
+ azure_tenant_id: e.azure_tenant_id
1033
+ };
1034
+ default:
1035
+ return null;
1036
+ }
1037
+ }, Yd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1038
+ __proto__: null,
1039
+ genDefaultClusterNode: ai,
1040
+ genDefaultSentinelNode: oi,
1041
+ getRedisType: Be,
1042
+ mapRedisTypeToPartialType: Xe,
1043
+ pickCloudAuthFields: Vt,
1044
+ shallowCopyWithId: Ne,
1045
+ shallowCopyWithoutId: St,
1046
+ standardize: h
1047
+ }, Symbol.toStringTag, { value: "Module" })), We = "/v2/control-planes/{controlPlaneId}/core-entities", qe = "/{workspace}", Me = {
1048
+ list: {
1049
+ konnect: `${We}/partials`,
1050
+ kongManager: `${qe}/partials`
1051
+ },
1052
+ form: {
1053
+ konnect: {
1054
+ create: `${We}/partials`,
1055
+ edit: `${We}/partials/{id}`
1056
+ },
1057
+ kongManager: {
1058
+ create: `${qe}/partials`,
1059
+ edit: `${qe}/partials/{id}`
1060
+ }
1061
+ },
1062
+ links: {
1063
+ konnect: `${We}/partials/{id}/links`,
1064
+ kongManager: `${qe}/partials/{id}/links`
1065
+ }
1066
+ }, Ps = (e) => {
1067
+ if (e == null || e === "")
1068
+ return !1;
1069
+ if (typeof e == "string") {
1070
+ const t = parseInt(e, 10);
1071
+ return Number.isNaN(t) ? !0 : t >= 0 && t <= 65535;
1072
+ }
1073
+ return typeof e == "number" ? e >= 0 && e <= 65535 : !1;
1074
+ }, $s = (e) => {
1075
+ const { partialId: t, config: n, defaultRedisType: o = $e } = e, r = !!t, { axiosInstance: a } = kt(n.axiosRequestConfig), { getMessageFromError: c } = yn(), p = z(() => t ? dt.Edit : dt.Create), l = mn({
1076
+ fields: {
1077
+ name: "",
1078
+ tags: "",
1079
+ type: Xe(o),
1080
+ config: JSON.parse(JSON.stringify(ri))
1081
+ },
1082
+ readonly: !1,
1083
+ errorMessage: ""
1084
+ }), u = x(), v = x(o), T = z(() => v.value === w.HOST_PORT_EE || v.value === w.CLUSTER || v.value === w.SENTINEL);
1085
+ Ce(v, (d) => {
1086
+ l.fields.type = Xe(d);
1087
+ });
1088
+ const m = z(() => {
1089
+ var I, P, W, X;
1090
+ if (r && ys(u.value, _.value) || !((I = l.fields.name) != null && I.length))
1091
+ return !1;
1092
+ const { config: d } = l.fields;
1093
+ switch (v.value) {
1094
+ case w.HOST_PORT_CE:
1095
+ case w.HOST_PORT_EE:
1096
+ return !!d.host && d.host.length > 0 && Ps(d.port) && (((P = d.cloud_authentication) == null ? void 0 : P.auth_provider) !== "aws" || !!d.cloud_authentication.aws_cache_name);
1097
+ case w.CLUSTER:
1098
+ return !!d.cluster_nodes.length && d.cluster_nodes.every((ne) => ne.ip.length > 0) && (((W = d.cloud_authentication) == null ? void 0 : W.auth_provider) !== "aws" || !!d.cloud_authentication.aws_cache_name);
1099
+ case w.SENTINEL:
1100
+ return !!d.sentinel_nodes.length && d.sentinel_nodes.every((ne) => ne.host.length > 0) && !!((X = d.sentinel_master) != null && X.length) && d.sentinel_role && !!d.sentinel_role.length;
1101
+ default:
1102
+ throw new Error("Invalid redis type");
1103
+ }
1104
+ }), b = () => {
1105
+ if (!e.cloudAuthAvailable)
1106
+ return;
1107
+ const d = Vt(l.fields.config.cloud_authentication);
1108
+ return d != null && d.auth_provider ? {
1109
+ auth_provider: d.auth_provider,
1110
+ aws_cache_name: h.str(d.aws_cache_name, null),
1111
+ aws_region: h.str(d.aws_region, null),
1112
+ aws_is_serverless: d.aws_is_serverless,
1113
+ aws_access_key_id: h.str(d.aws_access_key_id, null),
1114
+ aws_secret_access_key: h.str(d.aws_secret_access_key, null),
1115
+ aws_assume_role_arn: h.str(d.aws_assume_role_arn, null),
1116
+ aws_role_session_name: h.str(d.aws_role_session_name, null),
1117
+ gcp_service_account_json: h.str(d.gcp_service_account_json, null),
1118
+ azure_client_id: h.str(d.azure_client_id, null),
1119
+ azure_client_secret: h.str(d.azure_client_secret, null),
1120
+ azure_tenant_id: h.str(d.azure_tenant_id, null)
1121
+ } : null;
1122
+ }, _ = z(() => {
1123
+ switch (v.value) {
1124
+ case w.HOST_PORT_CE:
1125
+ return {
1126
+ name: l.fields.name,
1127
+ type: l.fields.type,
1128
+ tags: h.stringToArray(l.fields.tags),
1129
+ config: {
1130
+ cloud_authentication: b(),
1131
+ host: l.fields.config.host,
1132
+ port: h.int(l.fields.config.port),
1133
+ timeout: h.int(l.fields.config.timeout),
1134
+ username: h.str(l.fields.config.username, null),
1135
+ database: h.int(l.fields.config.database),
1136
+ password: h.str(l.fields.config.password, null),
1137
+ ssl: l.fields.config.ssl,
1138
+ ssl_verify: l.fields.config.ssl_verify,
1139
+ server_name: h.str(l.fields.config.server_name, null)
1140
+ }
1141
+ };
1142
+ case w.HOST_PORT_EE:
1143
+ return {
1144
+ name: l.fields.name,
1145
+ type: l.fields.type,
1146
+ tags: h.stringToArray(l.fields.tags),
1147
+ config: {
1148
+ cloud_authentication: b(),
1149
+ connect_timeout: h.int(l.fields.config.connect_timeout),
1150
+ connection_is_proxied: l.fields.config.connection_is_proxied,
1151
+ database: h.int(l.fields.config.database),
1152
+ host: l.fields.config.host,
1153
+ keepalive_backlog: h.int(l.fields.config.keepalive_backlog),
1154
+ keepalive_pool_size: h.int(l.fields.config.keepalive_pool_size),
1155
+ password: h.str(l.fields.config.password, null),
1156
+ port: Number.isNaN(Number(l.fields.config.port)) ? l.fields.config.port : h.int(l.fields.config.port),
1157
+ read_timeout: h.int(l.fields.config.read_timeout),
1158
+ send_timeout: h.int(l.fields.config.send_timeout),
1159
+ server_name: h.str(l.fields.config.server_name, null),
1160
+ ssl_verify: l.fields.config.ssl_verify,
1161
+ ssl: l.fields.config.ssl,
1162
+ username: h.str(l.fields.config.username, null),
1163
+ // reset other EE fields
1164
+ cluster_nodes: null,
1165
+ cluster_max_redirections: null,
1166
+ sentinel_master: null,
1167
+ sentinel_role: null,
1168
+ sentinel_nodes: null,
1169
+ sentinel_username: null,
1170
+ sentinel_password: null
1171
+ }
1172
+ };
1173
+ case w.CLUSTER:
1174
+ return {
1175
+ name: l.fields.name,
1176
+ type: l.fields.type,
1177
+ tags: h.stringToArray(l.fields.tags),
1178
+ config: {
1179
+ cloud_authentication: b(),
1180
+ cluster_nodes: h.removeIdClusterNodes(l.fields.config.cluster_nodes),
1181
+ cluster_max_redirections: h.int(l.fields.config.cluster_max_redirections),
1182
+ username: h.str(l.fields.config.username, null),
1183
+ password: h.str(l.fields.config.password, null),
1184
+ ssl: l.fields.config.ssl,
1185
+ ssl_verify: l.fields.config.ssl_verify,
1186
+ server_name: h.str(l.fields.config.server_name, null),
1187
+ connect_timeout: h.int(l.fields.config.connect_timeout),
1188
+ database: h.int(l.fields.config.database),
1189
+ send_timeout: h.int(l.fields.config.send_timeout),
1190
+ read_timeout: h.int(l.fields.config.read_timeout),
1191
+ keepalive_pool_size: h.int(l.fields.config.keepalive_pool_size),
1192
+ keepalive_backlog: h.int(l.fields.config.keepalive_backlog),
1193
+ // reset other EE fields
1194
+ connection_is_proxied: null,
1195
+ sentinel_master: null,
1196
+ sentinel_role: null,
1197
+ sentinel_nodes: null,
1198
+ sentinel_username: null,
1199
+ sentinel_password: null,
1200
+ host: null,
1201
+ port: null
1202
+ }
1203
+ };
1204
+ case w.SENTINEL:
1205
+ return {
1206
+ name: l.fields.name,
1207
+ type: l.fields.type,
1208
+ tags: h.stringToArray(l.fields.tags),
1209
+ config: {
1210
+ sentinel_master: h.str(l.fields.config.sentinel_master, null),
1211
+ sentinel_nodes: h.removeIdFromSentinelNodes(l.fields.config.sentinel_nodes),
1212
+ sentinel_role: h.str(l.fields.config.sentinel_role, null),
1213
+ sentinel_username: h.str(l.fields.config.sentinel_username, null),
1214
+ sentinel_password: h.str(l.fields.config.sentinel_password, null),
1215
+ username: h.str(l.fields.config.username, null),
1216
+ password: h.str(l.fields.config.password, null),
1217
+ ssl: l.fields.config.ssl,
1218
+ ssl_verify: l.fields.config.ssl_verify,
1219
+ server_name: h.str(l.fields.config.server_name, null),
1220
+ database: h.int(l.fields.config.database),
1221
+ connect_timeout: h.int(l.fields.config.connect_timeout),
1222
+ send_timeout: h.int(l.fields.config.send_timeout),
1223
+ read_timeout: h.int(l.fields.config.read_timeout),
1224
+ keepalive_pool_size: h.int(l.fields.config.keepalive_pool_size),
1225
+ keepalive_backlog: h.int(l.fields.config.keepalive_backlog),
1226
+ // reset other EE fields
1227
+ connection_is_proxied: null,
1228
+ cluster_nodes: null,
1229
+ cluster_max_redirections: null,
1230
+ host: null,
1231
+ port: null
1232
+ }
1233
+ };
1234
+ default:
1235
+ throw new Error("Invalid redis type");
1236
+ }
1237
+ }), E = z(() => {
1238
+ let d = `${n.apiBaseUrl}${Me.form[n.app][p.value]}`;
1239
+ return n.app === "konnect" ? d = d.replace(/{controlPlaneId}/gi, (n == null ? void 0 : n.controlPlaneId) || "") : n.app === "kongManager" && (d = d.replace(/\/{workspace}/gi, n != null && n.workspace ? `/${n.workspace}` : "")), d = d.replace(/{id}/gi, t || ""), d;
1240
+ }), s = z(() => {
1241
+ var d;
1242
+ return (d = Me.form[n == null ? void 0 : n.app]) == null ? void 0 : d.edit;
1243
+ });
1244
+ return {
1245
+ form: l,
1246
+ canSubmit: m,
1247
+ payload: _,
1248
+ isEdit: r,
1249
+ redisType: v,
1250
+ redisTypeIsEnterprise: T,
1251
+ formType: p,
1252
+ fetchUrl: s,
1253
+ submit: async () => {
1254
+ try {
1255
+ l.readonly = !0, l.errorMessage = "";
1256
+ let d = _.value;
1257
+ return n.app === "konnect" && (d = {
1258
+ ...d,
1259
+ config: h.removeNullValues(d.config)
1260
+ }), p.value === dt.Create ? await a.post(E.value, d) : n.app === "konnect" ? await a.put(E.value, d) : await a.patch(E.value, d);
1261
+ } catch (d) {
1262
+ throw l.errorMessage = c(d), l.readonly = !1, d;
1263
+ }
1264
+ },
1265
+ setInitialFormValues: (d) => {
1266
+ l.fields.config = Object.assign(
1267
+ {},
1268
+ l.fields.config,
1269
+ h.removeNullValues(d.config)
1270
+ // remove null values if data, so they can be replaced with default values
1271
+ ), l.fields.config.sentinel_nodes = h.addIdToSentinelNodes(d.config.sentinel_nodes ?? []), l.fields.config.cluster_nodes = h.addIdToClusterNodes(d.config.cluster_nodes ?? []), l.fields.name = d.name, l.fields.type = d.type, l.fields.tags = h.arrayToString(d.tags), v.value = Be(d), u.value = JSON.parse(JSON.stringify(_.value));
1272
+ }
1273
+ };
1274
+ }, Vs = { class: "array-card-container" }, Ms = /* @__PURE__ */ Y({
1275
+ __name: "FieldArrayCardContainer",
1276
+ props: {
1277
+ model: {
1278
+ type: Object,
1279
+ default: () => null
1280
+ },
1281
+ schema: {
1282
+ type: Object,
1283
+ default: () => null
1284
+ },
1285
+ index: {
1286
+ type: Number,
1287
+ default: void 0
1288
+ },
1289
+ disabled: {
1290
+ type: Boolean,
1291
+ default: !1
1292
+ }
1293
+ },
1294
+ emits: ["remove-item"],
1295
+ setup(e) {
1296
+ return (t, n) => {
1297
+ const o = $("KCard"), r = $("KButton");
1298
+ return O(), J("div", Vs, [
1299
+ g(o, { class: "card" }, {
1300
+ default: S(() => [
1301
+ gi(t.$slots, "default", {}, void 0, !0)
1302
+ ]),
1303
+ _: 3
1304
+ }),
1305
+ g(r, {
1306
+ appearance: "tertiary",
1307
+ class: "array-card-remove-button",
1308
+ disabled: e.disabled,
1309
+ onClick: n[0] || (n[0] = (a) => t.$emit("remove-item"))
1310
+ }, {
1311
+ default: S(() => [
1312
+ g(i(Di))
1313
+ ]),
1314
+ _: 1
1315
+ }, 8, ["disabled"])
1316
+ ]);
1317
+ };
1318
+ }
1319
+ }), te = (e, t) => {
1320
+ const n = e.__vccOpts || e;
1321
+ for (const [o, r] of t)
1322
+ n[o] = r;
1323
+ return n;
1324
+ }, li = /* @__PURE__ */ te(Ms, [["__scopeId", "data-v-1ba1e50d"]]), js = {
1325
+ create: "New Redis Configuration",
1326
+ copy_id: "Copy ID",
1327
+ copy_json: "Copy JSON",
1328
+ edit: "Edit",
1329
+ delete: "Delete",
1330
+ done: "Done",
1331
+ view: "View Details",
1332
+ loading: "Loading...",
1333
+ view_plugin: "View Plugin",
1334
+ close: "Close"
1335
+ }, Ds = {
1336
+ placeholder: "Filter by name",
1337
+ placeholder_for_exact_match: "Filter by exact ID",
1338
+ no_results: "No results found"
1339
+ }, Ls = {
1340
+ placeholder: "Select a Redis configuration",
1341
+ empty_state: "No Redis configurations available",
1342
+ create_new: "Create new Redis configuration"
1343
+ }, Us = {
1344
+ copy: "Failed to copy to clipboard",
1345
+ general: "Redis configuration could not be retrieved",
1346
+ delete: "The redis configuration could not be deleted at this time."
1347
+ }, Ns = {
1348
+ success: "Copied {val} to clipboard"
1349
+ }, Bs = {
1350
+ redis_partial_modal_title: "Create Redis Configuration",
1351
+ partial_created_success_message: "Redis configuration created successfully",
1352
+ sections: {
1353
+ type: {
1354
+ title: "Redis type",
1355
+ description: "Both Enterprise and Open Source plugins support Redis. Enterprise plugins can connect to a standalone Redis instance (host/port), Cluster, or Sentinel, while Open Source plugins support only a simplified host/port configuration."
1356
+ },
1357
+ general: {
1358
+ title: "General information",
1359
+ description: "Name your Redis configuration."
1360
+ },
1361
+ connection: {
1362
+ title: "Connection settings",
1363
+ description: "Define the Redis server’s host, port, authentication, and timeout options for establishing a connection."
1364
+ },
1365
+ cloud_auth: {
1366
+ title: "Cloud authentication settings",
1367
+ description: "Configure authentication settings for connecting to cloud-hosted Redis services."
1368
+ },
1369
+ cluster: {
1370
+ title: "Cluster configuration",
1371
+ description: "Enables data sharding and distribution across multiple Redis nodes, allowing for scalability and load balancing."
1372
+ },
1373
+ tls: {
1374
+ title: "TLS settings",
1375
+ description: "Configure secure connections to Redis, including SSL and verification options."
1376
+ },
1377
+ keepalive: {
1378
+ title: "Keepalive configuration",
1379
+ description: "Keepalive reuses active connections to Redis, improving performance and efficiency."
1380
+ },
1381
+ read_write_configuration: {
1382
+ title: "Read/Write configuration",
1383
+ description: "Set timeouts for reading from and writing to the Redis server to control data transmission reliability."
1384
+ },
1385
+ sentinel_configuration: {
1386
+ title: "Sentinel configuration",
1387
+ description: "Manages Redis failover and high availability by connecting to Sentinel nodes that monitor and switch masters."
1388
+ }
1389
+ },
1390
+ fields: {
1391
+ cloud_authentication: {
1392
+ auth_provider: {
1393
+ label: "Authentication provider",
1394
+ tooltip: "Auth provider to be used to authenticate to a Cloud Provider's Redis instance."
1395
+ },
1396
+ aws_cache_name: {
1397
+ label: "AWS cache name",
1398
+ tooltip: "The name of the AWS Elasticache cluster when `auth_provider` is set to `aws`."
1399
+ },
1400
+ aws_region: {
1401
+ label: "AWS region",
1402
+ tooltip: "The region of the AWS ElastiCache cluster when `auth_provider` is set to `aws`."
1403
+ },
1404
+ aws_is_serverless: {
1405
+ label: "Serverless ElastiCache",
1406
+ tooltip: "This flag specifies whether the cluster is serverless when auth_provider is set to `aws`."
1407
+ },
1408
+ aws_access_key_id: {
1409
+ label: "AWS access key ID",
1410
+ tooltip: "AWS Access Key ID to be used for authentication when `auth_provider` is set to `aws`."
1411
+ },
1412
+ aws_secret_access_key: {
1413
+ label: "AWS secret access key",
1414
+ tooltip: "AWS Secret Access Key to be used for authentication when `auth_provider` is set to `aws`."
1415
+ },
1416
+ aws_assume_role_arn: {
1417
+ label: "AWS assume role ARN",
1418
+ tooltip: "The ARN of the IAM role to assume for generating ElastiCache IAM authentication tokens."
1419
+ },
1420
+ aws_role_session_name: {
1421
+ label: "AWS role session name",
1422
+ tooltip: "The session name for the temporary credentials when assuming the IAM role."
1423
+ },
1424
+ gcp_service_account_json: {
1425
+ label: "GCP service account JSON",
1426
+ tooltip: "GCP Service Account JSON to be used for authentication when `auth_provider` is set to `gcp`."
1427
+ },
1428
+ azure_client_id: {
1429
+ label: "Azure client ID",
1430
+ tooltip: "Azure Client ID to be used for authentication when `auth_provider` is set to `azure`."
1431
+ },
1432
+ azure_client_secret: {
1433
+ label: "Azure client secret",
1434
+ tooltip: "Azure Client Secret to be used for authentication when `auth_provider` is set to `azure`."
1435
+ },
1436
+ azure_tenant_id: {
1437
+ label: "Azure tenant ID",
1438
+ tooltip: "Azure Tenant ID to be used for authentication when `auth_provider` is set to `azure`."
1439
+ }
1440
+ },
1441
+ type: {
1442
+ label: "Redis type"
1443
+ },
1444
+ name: {
1445
+ label: "Name",
1446
+ placeholder: "Enter unique name"
1447
+ },
1448
+ tags: {
1449
+ label: "Tags",
1450
+ placeholder: "Enter a list of tags separated by comma",
1451
+ help: "e.g. tag1, tag2, tag3",
1452
+ tooltip: "An optional set of strings associated with the Route for grouping and filtering."
1453
+ },
1454
+ host: {
1455
+ label: "Host",
1456
+ tooltip: "A string representing a host name, such as example.com."
1457
+ },
1458
+ port: {
1459
+ label: "Port",
1460
+ tooltip: "An integer representing a port number between 0 and 65535, inclusive."
1461
+ },
1462
+ database: {
1463
+ label: "Database",
1464
+ tooltip: "Database to use for the Redis connection."
1465
+ },
1466
+ password: {
1467
+ label: "Password",
1468
+ tooltip: "Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis."
1469
+ },
1470
+ username: {
1471
+ label: "Username",
1472
+ tooltip: "Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`."
1473
+ },
1474
+ ssl: {
1475
+ label: "SSL",
1476
+ description: "If set to true, uses SSL to connect to Redis.",
1477
+ tooltip: "If set to true, uses SSL to connect to Redis."
1478
+ },
1479
+ ssl_verify: {
1480
+ label: "SSL Verify",
1481
+ description: "If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure lua_ssl_trusted_certificate in kong. conf to specify the CA (or server) certificate used by your Redis server. You may also need to configure lua_ss1_verify_depth accordingly.",
1482
+ tooltip: "If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure lua_ssl_trusted_certificate in kong.conf to specify the CA (or server) certificate used by your Redis server. You may also need to configure lua_ssl_verify_depth accordingly."
1483
+ },
1484
+ server_name: {
1485
+ label: "Server name",
1486
+ tooltip: "A string representing an SNI (server name indication) value for TLS."
1487
+ },
1488
+ keepalive_backlog: {
1489
+ label: "Keepalive backlog",
1490
+ tooltip: "Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`."
1491
+ },
1492
+ keepalive_pool_size: {
1493
+ label: "Keepalive pool size",
1494
+ tooltip: "The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low."
1495
+ },
1496
+ read_timeout: {
1497
+ label: "Read timeout",
1498
+ tooltip: "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2."
1499
+ },
1500
+ send_timeout: {
1501
+ label: "Send timeout",
1502
+ tooltip: "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2."
1503
+ },
1504
+ connect_timeout: {
1505
+ label: "Connect timeout",
1506
+ tooltip: "An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2."
1507
+ },
1508
+ sentinel_master: {
1509
+ label: "Sentinel master",
1510
+ tooltip: "Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel."
1511
+ },
1512
+ sentinel_role: {
1513
+ label: "Sentinel role",
1514
+ tooltip: "Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel."
1515
+ },
1516
+ sentinel_username: {
1517
+ label: "Sentinel username",
1518
+ tooltip: "Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+."
1519
+ },
1520
+ sentinel_password: {
1521
+ label: "Sentinel password",
1522
+ tooltip: "Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels."
1523
+ },
1524
+ cluster_node_ip: {
1525
+ label: "IP",
1526
+ tooltip: "A string representing a host name, such as example.com."
1527
+ },
1528
+ cluster_node_port: {
1529
+ label: "Port",
1530
+ tooltip: "An integer representing a port number between 0 and 65535, inclusive."
1531
+ },
1532
+ cluster_max_redirections: {
1533
+ label: "Cluster max redirections",
1534
+ tooltip: "Maximum retry attempts for redirection."
1535
+ },
1536
+ timeout: {
1537
+ label: "Timeout",
1538
+ tooltip: "redis schema field `timeout` is deprecated, use `connect_timeout`, `send_timeout` and `read_timeout`"
1539
+ },
1540
+ connection_is_proxied: {
1541
+ label: "Connection is proxied",
1542
+ tooltip: "If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address."
1543
+ },
1544
+ cluster_nodes: {
1545
+ title: "Cluster nodes",
1546
+ tooltip: "Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element.",
1547
+ add_button: "New item"
1548
+ },
1549
+ sentinel_nodes: {
1550
+ title: "Sentinel nodes",
1551
+ tooltip: "Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element.",
1552
+ add_button: "New item"
1553
+ },
1554
+ sentinel_node_host: {
1555
+ label: "Host",
1556
+ tooltip: "A string representing a host name, such as example.com."
1557
+ },
1558
+ sentinel_node_port: {
1559
+ label: "Port",
1560
+ tooltip: "An integer representing a port number between 0 and 65535, inclusive."
1561
+ }
1562
+ },
1563
+ options: {
1564
+ auth_provider: {
1565
+ aws: "AWS",
1566
+ azure: "Azure",
1567
+ gcp: "GCP"
1568
+ },
1569
+ type: {
1570
+ host_port: "Host/Port",
1571
+ cluster: "Cluster",
1572
+ sentinel: "Sentinel",
1573
+ open_source: "Open Source",
1574
+ enterprise: "Enterprise",
1575
+ suffix_open_source: " (Open Source)",
1576
+ suffix_enterprise: " (Enterprise)"
1577
+ },
1578
+ sentinel_role: {
1579
+ master: "master",
1580
+ slave: "slave",
1581
+ any: "any"
1582
+ }
1583
+ },
1584
+ edit_warning_modal: {
1585
+ title: "Edit Redis configuration",
1586
+ description: "This Redis configuration is connected to {pluginCount}. Any updates will take effect across all associated instances.",
1587
+ plugin_count: "{count} plugin(s)",
1588
+ confirm: "Confirm"
1589
+ }
1590
+ }, Fs = {
1591
+ title: "Associated plugins ({count})",
1592
+ headers: {
1593
+ plugin: "Plugin",
1594
+ instance_name: "Name"
1595
+ }
1596
+ }, zs = {
1597
+ title: "Redis Configurations",
1598
+ empty_state: {
1599
+ title: "Configure a Redis Configuration",
1600
+ description: "Set up shared Redis configurations for your gateway plugins to store and retrieve data — like counters or other data — needed during request processing."
1601
+ }
1602
+ }, Ks = {
1603
+ action: "New configuration",
1604
+ table_headers: {
1605
+ name: "Name",
1606
+ type: "Type",
1607
+ plugins: "Plugins",
1608
+ tags: "Tags"
1609
+ },
1610
+ empty_state: {
1611
+ description: "Set up shared Redis configurations for your gateway plugins to store and retrieve data — like counters or other data — needed during request processing.",
1612
+ feature_1: {
1613
+ title: "Store your Redis configurations",
1614
+ description: "Define a Redis configuration once and use it across multiple plugins."
1615
+ },
1616
+ feature_2: {
1617
+ title: "Sync across plugins",
1618
+ description: "Edits to your configuration will be cascaded automatically to all associated plugins."
1619
+ }
1620
+ }
1621
+ }, Hs = {
1622
+ actions: js,
1623
+ search: Ds,
1624
+ selector: Ls,
1625
+ delete: {
1626
+ title: "Delete Redis configuration",
1627
+ description: "You’re about to delete this item. Are you sure you want to proceed?",
1628
+ warning: "To delete this configuration, first remove it from all associated plugins."
1629
+ },
1630
+ errors: Us,
1631
+ copy: Ns,
1632
+ form: Bs,
1633
+ linked_plugins_modal: Fs,
1634
+ redis: zs,
1635
+ list: Ks
1636
+ };
1637
+ function ot() {
1638
+ const e = Bi("en-us", Hs);
1639
+ return {
1640
+ i18n: e,
1641
+ i18nT: Fi(e)
1642
+ // Translation component <i18n-t>
1643
+ };
1644
+ }
1645
+ const ye = {
1646
+ useI18n: ot
1647
+ }, Ws = { class: "cluster-node-items" }, qs = /* @__PURE__ */ Y({
1648
+ __name: "ClusterNodes",
1649
+ props: /* @__PURE__ */ Et({
1650
+ readonly: { type: Boolean }
1651
+ }, {
1652
+ modelValue: { required: !0 },
1653
+ modelModifiers: {}
1654
+ }),
1655
+ emits: ["update:modelValue"],
1656
+ setup(e) {
1657
+ const t = Ct(e, "modelValue"), { i18n: { t: n } } = ye.useI18n(), o = () => {
1658
+ t.value.push(ai());
1659
+ }, r = (a) => {
1660
+ t.value.splice(a, 1);
1661
+ };
1662
+ return (a, c) => {
1663
+ const p = $("KLabel"), l = $("KInput"), u = $("KButton");
1664
+ return O(), J("div", null, [
1665
+ g(p, {
1666
+ class: "required",
1667
+ info: i(n)("form.fields.cluster_nodes.tooltip"),
1668
+ "tooltip-attributes": { maxWidth: "400" }
1669
+ }, {
1670
+ default: S(() => [
1671
+ le(B(i(n)("form.fields.cluster_nodes.title")), 1)
1672
+ ]),
1673
+ _: 1
1674
+ }, 8, ["info"]),
1675
+ K("div", null, [
1676
+ (O(!0), J(fe, null, tt(t.value, (v, T) => (O(), N(li, {
1677
+ key: `${T}`,
1678
+ "data-testid": "redis-cluster-nodes",
1679
+ disabled: e.readonly,
1680
+ onRemoveItem: (m) => r(T)
1681
+ }, {
1682
+ default: S(() => [
1683
+ K("div", Ws, [
1684
+ g(l, {
1685
+ modelValue: v.ip,
1686
+ "onUpdate:modelValue": (m) => v.ip = m,
1687
+ modelModifiers: { trim: !0 },
1688
+ label: i(n)("form.fields.cluster_node_ip.label"),
1689
+ "label-attributes": {
1690
+ info: i(n)("form.fields.cluster_node_ip.tooltip"),
1691
+ tooltipAttributes: { maxWidth: "400" }
1692
+ },
1693
+ name: "ip",
1694
+ readonly: e.readonly,
1695
+ required: ""
1696
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "label-attributes", "readonly"]),
1697
+ g(l, {
1698
+ modelValue: v.port,
1699
+ "onUpdate:modelValue": (m) => v.port = m,
1700
+ label: i(n)("form.fields.cluster_node_port.label"),
1701
+ "label-attributes": {
1702
+ info: i(n)("form.fields.cluster_node_port.tooltip"),
1703
+ tooltipAttributes: { maxWidth: "400" }
1704
+ },
1705
+ name: "port",
1706
+ readonly: e.readonly,
1707
+ type: "number"
1708
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "label-attributes", "readonly"])
1709
+ ])
1710
+ ]),
1711
+ _: 2
1712
+ }, 1032, ["disabled", "onRemoveItem"]))), 128)),
1713
+ g(u, {
1714
+ appearance: "tertiary",
1715
+ "data-testid": "redis-add-cluster-node-button",
1716
+ disabled: e.readonly,
1717
+ onClick: o
1718
+ }, {
1719
+ default: S(() => [
1720
+ g(i(Sn)),
1721
+ K("span", null, B(i(n)("form.fields.cluster_nodes.add_button")), 1)
1722
+ ]),
1723
+ _: 1
1724
+ }, 8, ["disabled"])
1725
+ ])
1726
+ ]);
1727
+ };
1728
+ }
1729
+ }), Gs = /* @__PURE__ */ te(qs, [["__scopeId", "data-v-0445479a"]]), si = () => {
1730
+ const e = x(), t = x();
1731
+ return {
1732
+ vaultSecretPickerSetup: e,
1733
+ setUpVaultSecretPicker: (r, a) => {
1734
+ e.value = r ?? "", t.value = a;
1735
+ },
1736
+ handleVaultSecretPickerAutofill: (r) => {
1737
+ var a;
1738
+ (a = t.value) == null || a.call(t, r), e.value = !1;
1739
+ }
1740
+ };
1741
+ }, Js = { class: "sentinel-node-items" }, Zs = /* @__PURE__ */ Y({
1742
+ __name: "SentinelNodes",
1743
+ props: /* @__PURE__ */ Et({
1744
+ readonly: { type: Boolean }
1745
+ }, {
1746
+ modelValue: { required: !0 },
1747
+ modelModifiers: {}
1748
+ }),
1749
+ emits: ["update:modelValue"],
1750
+ setup(e) {
1751
+ const t = Ct(e, "modelValue"), { i18n: { t: n } } = ye.useI18n(), o = () => {
1752
+ t.value.push(oi());
1753
+ }, r = (a) => {
1754
+ t.value.splice(a, 1);
1755
+ };
1756
+ return (a, c) => {
1757
+ const p = $("KLabel"), l = $("KInput"), u = $("KButton");
1758
+ return O(), J("div", null, [
1759
+ g(p, {
1760
+ class: "required",
1761
+ info: i(n)("form.fields.sentinel_nodes.tooltip"),
1762
+ "tooltip-attributes": { maxWidth: "400" }
1763
+ }, {
1764
+ default: S(() => [
1765
+ le(B(i(n)("form.fields.sentinel_nodes.title")), 1)
1766
+ ]),
1767
+ _: 1
1768
+ }, 8, ["info"]),
1769
+ K("div", null, [
1770
+ (O(!0), J(fe, null, tt(t.value, (v, T) => (O(), N(li, {
1771
+ key: v.id,
1772
+ "data-testid": "redis-sentinel-nodes",
1773
+ disabled: e.readonly,
1774
+ onRemoveItem: (m) => r(T)
1775
+ }, {
1776
+ default: S(() => [
1777
+ K("div", Js, [
1778
+ g(l, {
1779
+ modelValue: v.host,
1780
+ "onUpdate:modelValue": (m) => v.host = m,
1781
+ modelModifiers: { trim: !0 },
1782
+ label: i(n)("form.fields.sentinel_node_host.label"),
1783
+ "label-attributes": {
1784
+ info: i(n)("form.fields.sentinel_node_host.tooltip"),
1785
+ tooltipAttributes: { maxWidth: "400" }
1786
+ },
1787
+ name: "host",
1788
+ readonly: e.readonly,
1789
+ required: ""
1790
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "label-attributes", "readonly"]),
1791
+ g(l, {
1792
+ modelValue: v.port,
1793
+ "onUpdate:modelValue": (m) => v.port = m,
1794
+ label: i(n)("form.fields.sentinel_node_port.label"),
1795
+ "label-attributes": {
1796
+ info: i(n)("form.fields.sentinel_node_port.tooltip"),
1797
+ tooltipAttributes: { maxWidth: "400" }
1798
+ },
1799
+ name: "port",
1800
+ readonly: e.readonly,
1801
+ type: "number"
1802
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "label-attributes", "readonly"])
1803
+ ])
1804
+ ]),
1805
+ _: 2
1806
+ }, 1032, ["disabled", "onRemoveItem"]))), 128)),
1807
+ g(u, {
1808
+ appearance: "tertiary",
1809
+ "data-testid": "redis-add-sentinel-node-button",
1810
+ disabled: e.readonly,
1811
+ onClick: o
1812
+ }, {
1813
+ default: S(() => [
1814
+ g(i(Sn)),
1815
+ K("span", null, B(i(n)("form.fields.sentinel_nodes.add_button")), 1)
1816
+ ]),
1817
+ _: 1
1818
+ }, 8, ["disabled"])
1819
+ ])
1820
+ ]);
1821
+ };
1822
+ }
1823
+ }), Qs = /* @__PURE__ */ te(Zs, [["__scopeId", "data-v-ede40f84"]]), Ys = /* @__PURE__ */ Y({
1824
+ __name: "CloudAuthFields",
1825
+ props: /* @__PURE__ */ Et({
1826
+ config: {},
1827
+ readonly: { type: Boolean }
1828
+ }, {
1829
+ modelValue: { required: !0 },
1830
+ modelModifiers: {}
1831
+ }),
1832
+ emits: ["update:modelValue"],
1833
+ setup(e) {
1834
+ const t = Ct(e, "modelValue"), { i18n: { t: n } } = ye.useI18n(), {
1835
+ vaultSecretPickerSetup: o,
1836
+ setUpVaultSecretPicker: r,
1837
+ handleVaultSecretPickerAutofill: a
1838
+ } = si(), c = [
1839
+ {
1840
+ key: "aws_cache_name",
1841
+ group: q.AWS,
1842
+ label: n("form.fields.cloud_authentication.aws_cache_name.label"),
1843
+ tooltip: n("form.fields.cloud_authentication.aws_cache_name.tooltip"),
1844
+ required: !0,
1845
+ referenceable: !0
1846
+ },
1847
+ {
1848
+ key: "aws_region",
1849
+ group: q.AWS,
1850
+ label: n("form.fields.cloud_authentication.aws_region.label"),
1851
+ tooltip: n("form.fields.cloud_authentication.aws_region.tooltip"),
1852
+ referenceable: !0
1853
+ },
1854
+ {
1855
+ key: "aws_is_serverless",
1856
+ group: q.AWS,
1857
+ label: n("form.fields.cloud_authentication.aws_is_serverless.label"),
1858
+ tooltip: n("form.fields.cloud_authentication.aws_is_serverless.tooltip"),
1859
+ type: "boolean"
1860
+ },
1861
+ {
1862
+ key: "aws_access_key_id",
1863
+ group: q.AWS,
1864
+ label: n("form.fields.cloud_authentication.aws_access_key_id.label"),
1865
+ tooltip: n("form.fields.cloud_authentication.aws_access_key_id.tooltip"),
1866
+ referenceable: !0,
1867
+ encrypted: !0
1868
+ },
1869
+ {
1870
+ key: "aws_secret_access_key",
1871
+ group: q.AWS,
1872
+ label: n("form.fields.cloud_authentication.aws_secret_access_key.label"),
1873
+ tooltip: n("form.fields.cloud_authentication.aws_secret_access_key.tooltip"),
1874
+ referenceable: !0,
1875
+ encrypted: !0
1876
+ },
1877
+ {
1878
+ key: "aws_assume_role_arn",
1879
+ group: q.AWS,
1880
+ label: n("form.fields.cloud_authentication.aws_assume_role_arn.label"),
1881
+ tooltip: n("form.fields.cloud_authentication.aws_assume_role_arn.tooltip"),
1882
+ referenceable: !0,
1883
+ encrypted: !0
1884
+ },
1885
+ {
1886
+ key: "aws_role_session_name",
1887
+ group: q.AWS,
1888
+ label: n("form.fields.cloud_authentication.aws_role_session_name.label"),
1889
+ tooltip: n("form.fields.cloud_authentication.aws_role_session_name.tooltip"),
1890
+ referenceable: !0,
1891
+ encrypted: !0
1892
+ },
1893
+ {
1894
+ key: "gcp_service_account_json",
1895
+ group: q.GCP,
1896
+ label: n("form.fields.cloud_authentication.gcp_service_account_json.label"),
1897
+ tooltip: n("form.fields.cloud_authentication.gcp_service_account_json.tooltip"),
1898
+ referenceable: !0,
1899
+ encrypted: !0
1900
+ },
1901
+ {
1902
+ key: "azure_client_id",
1903
+ group: q.AZURE,
1904
+ label: n("form.fields.cloud_authentication.azure_client_id.label"),
1905
+ tooltip: n("form.fields.cloud_authentication.azure_client_id.tooltip"),
1906
+ referenceable: !0,
1907
+ encrypted: !0
1908
+ },
1909
+ {
1910
+ key: "azure_client_secret",
1911
+ group: q.AZURE,
1912
+ label: n("form.fields.cloud_authentication.azure_client_secret.label"),
1913
+ tooltip: n("form.fields.cloud_authentication.azure_client_secret.tooltip"),
1914
+ referenceable: !0,
1915
+ encrypted: !0
1916
+ },
1917
+ {
1918
+ key: "azure_tenant_id",
1919
+ group: q.AZURE,
1920
+ label: n("form.fields.cloud_authentication.azure_tenant_id.label"),
1921
+ tooltip: n("form.fields.cloud_authentication.azure_tenant_id.tooltip"),
1922
+ referenceable: !0,
1923
+ encrypted: !0
1924
+ }
1925
+ ], p = z(() => c.filter((l) => {
1926
+ var u;
1927
+ return l.group === ((u = t.value) == null ? void 0 : u.auth_provider);
1928
+ }));
1929
+ return (l, u) => {
1930
+ const v = $("KInput"), T = $("KCheckbox");
1931
+ return O(), J(fe, null, [
1932
+ (O(!0), J(fe, null, tt(p.value, (m) => (O(), J(fe, {
1933
+ key: m.key
1934
+ }, [
1935
+ m.type !== "boolean" ? (O(), J(fe, { key: 0 }, [
1936
+ g(v, {
1937
+ modelValue: t.value[m.key],
1938
+ "onUpdate:modelValue": (b) => t.value[m.key] = b,
1939
+ "data-testid": `redis-${m.key}-input`,
1940
+ label: m.label,
1941
+ "label-attributes": {
1942
+ info: m.tooltip,
1943
+ tooltipAttributes: { maxWidth: "400" }
1944
+ },
1945
+ readonly: e.readonly,
1946
+ required: m.required ?? !1,
1947
+ "show-password-mask-toggle": m.encrypted,
1948
+ type: m.encrypted ? "password" : "text"
1949
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "data-testid", "label", "label-attributes", "readonly", "required", "show-password-mask-toggle", "type"]),
1950
+ m.referenceable ? (O(), N(i(he), {
1951
+ key: 0,
1952
+ class: "secret-picker-provider",
1953
+ disabled: e.readonly,
1954
+ update: (b) => t.value[m.key] = b,
1955
+ value: t.value[m.key] ?? "",
1956
+ onOpen: u[0] || (u[0] = (b, _) => i(r)(b, _))
1957
+ }, null, 8, ["disabled", "update", "value"])) : Z("", !0)
1958
+ ], 64)) : (O(), N(T, {
1959
+ key: 1,
1960
+ modelValue: t.value[m.key],
1961
+ "onUpdate:modelValue": (b) => t.value[m.key] = b,
1962
+ "data-testid": `redis-${m.key}-checkbox`,
1963
+ label: m.label,
1964
+ "label-attributes": {
1965
+ info: m.tooltip,
1966
+ tooltipAttributes: { maxWidth: "400" }
1967
+ },
1968
+ readonly: e.readonly
1969
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "data-testid", "label", "label-attributes", "readonly"]))
1970
+ ], 64))), 128)),
1971
+ g(i(wn), {
1972
+ config: e.config,
1973
+ setup: i(o),
1974
+ onCancel: u[1] || (u[1] = () => o.value = !1),
1975
+ onProceed: i(a)
1976
+ }, null, 8, ["config", "setup", "onProceed"])
1977
+ ], 64);
1978
+ };
1979
+ }
1980
+ }), Xs = /* @__PURE__ */ te(Ys, [["__scopeId", "data-v-160fdcb4"]]);
1981
+ var mt = /* @__PURE__ */ new WeakMap(), fn = 0;
1982
+ function ed(e) {
1983
+ if (!e.length)
1984
+ return "";
1985
+ for (var t = "arg", n = 0; n < e.length; ++n) {
1986
+ var o = void 0;
1987
+ e[n] === null || typeof e[n] != "object" && typeof e[n] != "function" ? typeof e[n] == "string" ? o = '"' + e[n] + '"' : o = String(e[n]) : mt.has(e[n]) ? o = mt.get(e[n]) : (o = fn, mt.set(e[n], fn++)), t += "@" + o;
1988
+ }
1989
+ return t;
1990
+ }
1991
+ function td(e) {
1992
+ if (typeof e == "function")
1993
+ try {
1994
+ e = e();
1995
+ } catch {
1996
+ e = "";
1997
+ }
1998
+ return Array.isArray(e) ? e = ed(e) : e = String(e || ""), e;
1999
+ }
2000
+ var Mt = (
2001
+ /** @class */
2002
+ function() {
2003
+ function e(t) {
2004
+ t === void 0 && (t = 0), this.items = /* @__PURE__ */ new Map(), this.ttl = t;
2005
+ }
2006
+ return e.prototype.serializeKey = function(t) {
2007
+ return td(t);
2008
+ }, e.prototype.get = function(t) {
2009
+ var n = this.serializeKey(t);
2010
+ return this.items.get(n);
2011
+ }, e.prototype.set = function(t, n, o) {
2012
+ var r = this.serializeKey(t), a = o || this.ttl, c = Date.now(), p = {
2013
+ data: n,
2014
+ createdAt: c,
2015
+ expiresAt: a ? c + a : 1 / 0
2016
+ };
2017
+ this.dispatchExpire(a, p, r), this.items.set(r, p);
2018
+ }, e.prototype.dispatchExpire = function(t, n, o) {
2019
+ var r = this;
2020
+ t && setTimeout(function() {
2021
+ var a = Date.now(), c = a >= n.expiresAt;
2022
+ c && r.delete(o);
2023
+ }, t);
2024
+ }, e.prototype.delete = function(t) {
2025
+ this.items.delete(t);
2026
+ }, e;
2027
+ }()
2028
+ );
2029
+ function nd() {
2030
+ return typeof navigator.onLine < "u" ? navigator.onLine : !0;
2031
+ }
2032
+ function id() {
2033
+ return typeof document < "u" && typeof document.visibilityState < "u" ? document.visibilityState !== "hidden" : !0;
2034
+ }
2035
+ var rd = function(e) {
2036
+ return fetch(e).then(function(t) {
2037
+ return t.json();
2038
+ });
2039
+ };
2040
+ const _t = {
2041
+ isOnline: nd,
2042
+ isDocumentVisible: id,
2043
+ fetcher: rd
2044
+ };
2045
+ var ce = function() {
2046
+ return ce = Object.assign || function(e) {
2047
+ for (var t, n = 1, o = arguments.length; n < o; n++) {
2048
+ t = arguments[n];
2049
+ for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
2050
+ }
2051
+ return e;
2052
+ }, ce.apply(this, arguments);
2053
+ }, Ae = function(e, t, n, o) {
2054
+ function r(a) {
2055
+ return a instanceof n ? a : new n(function(c) {
2056
+ c(a);
2057
+ });
2058
+ }
2059
+ return new (n || (n = Promise))(function(a, c) {
2060
+ function p(v) {
2061
+ try {
2062
+ u(o.next(v));
2063
+ } catch (T) {
2064
+ c(T);
2065
+ }
2066
+ }
2067
+ function l(v) {
2068
+ try {
2069
+ u(o.throw(v));
2070
+ } catch (T) {
2071
+ c(T);
2072
+ }
2073
+ }
2074
+ function u(v) {
2075
+ v.done ? a(v.value) : r(v.value).then(p, l);
2076
+ }
2077
+ u((o = o.apply(e, t || [])).next());
2078
+ });
2079
+ }, Pe = function(e, t) {
2080
+ var n = { label: 0, sent: function() {
2081
+ if (a[0] & 1) throw a[1];
2082
+ return a[1];
2083
+ }, trys: [], ops: [] }, o, r, a, c;
2084
+ return c = { next: p(0), throw: p(1), return: p(2) }, typeof Symbol == "function" && (c[Symbol.iterator] = function() {
2085
+ return this;
2086
+ }), c;
2087
+ function p(u) {
2088
+ return function(v) {
2089
+ return l([u, v]);
2090
+ };
2091
+ }
2092
+ function l(u) {
2093
+ if (o) throw new TypeError("Generator is already executing.");
2094
+ for (; n; ) try {
2095
+ if (o = 1, r && (a = u[0] & 2 ? r.return : u[0] ? r.throw || ((a = r.return) && a.call(r), 0) : r.next) && !(a = a.call(r, u[1])).done) return a;
2096
+ switch (r = 0, a && (u = [u[0] & 2, a.value]), u[0]) {
2097
+ case 0:
2098
+ case 1:
2099
+ a = u;
2100
+ break;
2101
+ case 4:
2102
+ return n.label++, { value: u[1], done: !1 };
2103
+ case 5:
2104
+ n.label++, r = u[1], u = [0];
2105
+ continue;
2106
+ case 7:
2107
+ u = n.ops.pop(), n.trys.pop();
2108
+ continue;
2109
+ default:
2110
+ if (a = n.trys, !(a = a.length > 0 && a[a.length - 1]) && (u[0] === 6 || u[0] === 2)) {
2111
+ n = 0;
2112
+ continue;
2113
+ }
2114
+ if (u[0] === 3 && (!a || u[1] > a[0] && u[1] < a[3])) {
2115
+ n.label = u[1];
2116
+ break;
2117
+ }
2118
+ if (u[0] === 6 && n.label < a[1]) {
2119
+ n.label = a[1], a = u;
2120
+ break;
2121
+ }
2122
+ if (a && n.label < a[2]) {
2123
+ n.label = a[2], n.ops.push(u);
2124
+ break;
2125
+ }
2126
+ a[2] && n.ops.pop(), n.trys.pop();
2127
+ continue;
2128
+ }
2129
+ u = t.call(e, n);
2130
+ } catch (v) {
2131
+ u = [6, v], r = 0;
2132
+ } finally {
2133
+ o = a = 0;
2134
+ }
2135
+ if (u[0] & 5) throw u[1];
2136
+ return { value: u[0] ? u[1] : void 0, done: !0 };
2137
+ }
2138
+ }, od = function(e, t) {
2139
+ var n = typeof Symbol == "function" && e[Symbol.iterator];
2140
+ if (!n) return e;
2141
+ var o = n.call(e), r, a = [], c;
2142
+ try {
2143
+ for (; (t === void 0 || t-- > 0) && !(r = o.next()).done; ) a.push(r.value);
2144
+ } catch (p) {
2145
+ c = { error: p };
2146
+ } finally {
2147
+ try {
2148
+ r && !r.done && (n = o.return) && n.call(o);
2149
+ } finally {
2150
+ if (c) throw c.error;
2151
+ }
2152
+ }
2153
+ return a;
2154
+ }, ad = function(e, t, n) {
2155
+ if (n || arguments.length === 2) for (var o = 0, r = t.length, a; o < r; o++)
2156
+ (a || !(o in t)) && (a || (a = Array.prototype.slice.call(t, 0, o)), a[o] = t[o]);
2157
+ return e.concat(a || Array.prototype.slice.call(t));
2158
+ }, di = new Mt(), et = new Mt(), gt = new Mt(), ui = {
2159
+ cache: di,
2160
+ refreshInterval: 0,
2161
+ ttl: 0,
2162
+ serverTTL: 1e3,
2163
+ dedupingInterval: 2e3,
2164
+ revalidateOnFocus: !0,
2165
+ revalidateDebounce: 0,
2166
+ shouldRetryOnError: !0,
2167
+ errorRetryInterval: 5e3,
2168
+ errorRetryCount: 5,
2169
+ fetcher: _t.fetcher,
2170
+ isOnline: _t.isOnline,
2171
+ isDocumentVisible: _t.isDocumentVisible
2172
+ };
2173
+ function ld(e, t, n) {
2174
+ var o = et.get(e);
2175
+ if (o)
2176
+ o.data.push(t);
2177
+ else {
2178
+ var r = 5e3;
2179
+ et.set(e, [t], n > 0 ? n + r : n);
2180
+ }
2181
+ }
2182
+ function sd(e, t, n) {
2183
+ if (n.isDocumentVisible() && !(n.errorRetryCount !== void 0 && t > n.errorRetryCount)) {
2184
+ var o = Math.min(t || 0, n.errorRetryCount), r = o * n.errorRetryInterval;
2185
+ setTimeout(function() {
2186
+ e(null, { errorRetryCount: o + 1, shouldRetryOnError: !0 });
2187
+ }, r);
2188
+ }
2189
+ }
2190
+ var pn = function(e, t, n, o) {
2191
+ return n === void 0 && (n = di), o === void 0 && (o = ui.ttl), Ae(void 0, void 0, void 0, function() {
2192
+ var r, a, c, p, l, u, v;
2193
+ return Pe(this, function(T) {
2194
+ switch (T.label) {
2195
+ case 0:
2196
+ if (!ud(t)) return [3, 5];
2197
+ T.label = 1;
2198
+ case 1:
2199
+ return T.trys.push([1, 3, , 4]), [4, t];
2200
+ case 2:
2201
+ return r = T.sent(), [3, 4];
2202
+ case 3:
2203
+ return p = T.sent(), a = p, [3, 4];
2204
+ case 4:
2205
+ return [3, 6];
2206
+ case 5:
2207
+ r = t, T.label = 6;
2208
+ case 6:
2209
+ if (c = !1, l = { data: r, error: a, isValidating: c }, typeof r < "u")
2210
+ try {
2211
+ n.set(e, l, o);
2212
+ } catch (m) {
2213
+ console.error("swrv(mutate): failed to set cache", m);
2214
+ }
2215
+ return u = et.get(e), u && u.data.length && (v = u.data.filter(function(m) {
2216
+ return m.key === e;
2217
+ }), v.forEach(function(m, b) {
2218
+ typeof l.data < "u" && (m.data = l.data), m.error = l.error, m.isValidating = l.isValidating, m.isLoading = l.isValidating;
2219
+ var _ = b === v.length - 1;
2220
+ _ || delete v[b];
2221
+ }), v = v.filter(Boolean)), [2, l];
2222
+ }
2223
+ });
2224
+ });
2225
+ };
2226
+ function dd() {
2227
+ for (var e = this, t = [], n = 0; n < arguments.length; n++)
2228
+ t[n] = arguments[n];
2229
+ var o, r, a = ce({}, ui), c = !1, p = !1, l = bi(), u = (l == null ? void 0 : l.proxy) || l;
2230
+ if (!u)
2231
+ return console.error("Could not get current instance, check to make sure that `useSwrv` is declared in the top level of the setup function."), null;
2232
+ var v = (u == null ? void 0 : u.$isServer) || !1;
2233
+ t.length >= 1 && (o = t[0]), t.length >= 2 && (r = t[1]), t.length > 2 && (a = ce(ce({}, a), t[2]));
2234
+ var T = v ? a.serverTTL : a.ttl, m = typeof o == "function" ? o : x(o);
2235
+ typeof r > "u" && (r = a.fetcher);
2236
+ var b = null;
2237
+ b || (b = mn({
2238
+ data: void 0,
2239
+ error: void 0,
2240
+ isValidating: !0,
2241
+ isLoading: !0,
2242
+ key: null
2243
+ }));
2244
+ var _ = function(k, d) {
2245
+ return Ae(e, void 0, void 0, function() {
2246
+ var I, P, W, X, ne, de, ie, we = this;
2247
+ return Pe(this, function(re) {
2248
+ switch (re.label) {
2249
+ case 0:
2250
+ return I = b.data === void 0, P = m.value, P ? (W = a.cache.get(P), X = W && W.data, b.isValidating = !0, b.isLoading = !X, X && (b.data = X.data, b.error = X.error), ne = k || r, !ne || !a.isDocumentVisible() && !I || (d == null ? void 0 : d.forceRevalidate) !== void 0 && !(d != null && d.forceRevalidate) ? (b.isValidating = !1, b.isLoading = !1, [
2251
+ 2
2252
+ /*return*/
2253
+ ]) : W && (de = !!(Date.now() - W.createdAt >= a.dedupingInterval || d != null && d.forceRevalidate), !de) ? (b.isValidating = !1, b.isLoading = !1, [
2254
+ 2
2255
+ /*return*/
2256
+ ]) : (ie = function() {
2257
+ return Ae(we, void 0, void 0, function() {
2258
+ var oe, Te, Se, xe;
2259
+ return Pe(this, function(ve) {
2260
+ switch (ve.label) {
2261
+ case 0:
2262
+ return oe = gt.get(P), oe ? [3, 2] : (Te = Array.isArray(P) ? P : [P], Se = ne.apply(void 0, ad([], od(Te), !1)), gt.set(P, Se, a.dedupingInterval), [4, pn(P, Se, a.cache, T)]);
2263
+ case 1:
2264
+ return ve.sent(), [3, 4];
2265
+ case 2:
2266
+ return [4, pn(P, oe.data, a.cache, T)];
2267
+ case 3:
2268
+ ve.sent(), ve.label = 4;
2269
+ case 4:
2270
+ return b.isValidating = !1, b.isLoading = !1, gt.delete(P), b.error !== void 0 && (xe = !c && a.shouldRetryOnError && (d ? d.shouldRetryOnError : !0), xe && sd(_, d ? d.errorRetryCount : 1, a)), [
2271
+ 2
2272
+ /*return*/
2273
+ ];
2274
+ }
2275
+ });
2276
+ });
2277
+ }, X && a.revalidateDebounce ? (setTimeout(function() {
2278
+ return Ae(we, void 0, void 0, function() {
2279
+ return Pe(this, function(oe) {
2280
+ switch (oe.label) {
2281
+ case 0:
2282
+ return c ? [3, 2] : [4, ie()];
2283
+ case 1:
2284
+ oe.sent(), oe.label = 2;
2285
+ case 2:
2286
+ return [
2287
+ 2
2288
+ /*return*/
2289
+ ];
2290
+ }
2291
+ });
2292
+ });
2293
+ }, a.revalidateDebounce), [3, 3]) : [3, 1])) : [
2294
+ 2
2295
+ /*return*/
2296
+ ];
2297
+ case 1:
2298
+ return [4, ie()];
2299
+ case 2:
2300
+ re.sent(), re.label = 3;
2301
+ case 3:
2302
+ return [
2303
+ 2
2304
+ /*return*/
2305
+ ];
2306
+ }
2307
+ });
2308
+ });
2309
+ }, E = function() {
2310
+ return Ae(e, void 0, void 0, function() {
2311
+ return Pe(this, function(k) {
2312
+ return [2, _(null, { shouldRetryOnError: !1 })];
2313
+ });
2314
+ });
2315
+ }, s = null;
2316
+ yi(function() {
2317
+ var k = function() {
2318
+ return Ae(e, void 0, void 0, function() {
2319
+ return Pe(this, function(d) {
2320
+ switch (d.label) {
2321
+ case 0:
2322
+ return !b.error && a.isOnline() ? [4, _()] : [3, 2];
2323
+ case 1:
2324
+ return d.sent(), [3, 3];
2325
+ case 2:
2326
+ s && clearTimeout(s), d.label = 3;
2327
+ case 3:
2328
+ return a.refreshInterval && !c && (s = setTimeout(k, a.refreshInterval)), [
2329
+ 2
2330
+ /*return*/
2331
+ ];
2332
+ }
2333
+ });
2334
+ });
2335
+ };
2336
+ a.refreshInterval && (s = setTimeout(k, a.refreshInterval)), a.revalidateOnFocus && (document.addEventListener("visibilitychange", E, !1), window.addEventListener("focus", E, !1));
2337
+ }), vi(function() {
2338
+ c = !0, s && clearTimeout(s), a.revalidateOnFocus && (document.removeEventListener("visibilitychange", E, !1), window.removeEventListener("focus", E, !1));
2339
+ var k = et.get(m.value);
2340
+ k && (k.data = k.data.filter(function(d) {
2341
+ return d !== b;
2342
+ }));
2343
+ });
2344
+ try {
2345
+ Ce(m, function(k) {
2346
+ hi(m) || (m.value = k), b.key = k, b.isValidating = !!k, ld(m.value, b, T), !v && !p && m.value && _(), p = !1;
2347
+ }, {
2348
+ immediate: !0
2349
+ });
2350
+ } catch {
2351
+ }
2352
+ var A = ce(ce({}, wi(b)), { mutate: function(k, d) {
2353
+ return _(k, ce(ce({}, d), { forceRevalidate: !0 }));
2354
+ } });
2355
+ return A;
2356
+ }
2357
+ function ud(e) {
2358
+ return e !== null && typeof e == "object" && typeof e.then == "function";
2359
+ }
2360
+ function ci(e) {
2361
+ return `redis-partial-links-${e}`;
2362
+ }
2363
+ const Fe = (e) => {
2364
+ const { axiosInstance: t } = kt(e.axiosRequestConfig);
2365
+ return {
2366
+ fetcher: async (n) => {
2367
+ const { partialId: o, size: r, offset: a, query: c } = n;
2368
+ let p = `${e.apiBaseUrl}${Me.links[e.app]}`;
2369
+ e.app === "konnect" ? p = p.replace(/{controlPlaneId}/gi, (e == null ? void 0 : e.controlPlaneId) || "") : e.app === "kongManager" && (p = p.replace(/\/{workspace}/gi, e != null && e.workspace ? `/${e.workspace}` : "")), p = p.replace(/{id}/gi, o || ""), c && (p = `${p}?${c}`);
2370
+ const { data: l } = await t.get(
2371
+ p,
2372
+ { params: { size: r, offset: a } }
2373
+ );
2374
+ return l;
2375
+ }
2376
+ };
2377
+ }, fi = (e) => {
2378
+ const { partialId: t, config: n } = e, { fetcher: o } = Fe(n), r = x([]), { data: a } = dd(
2379
+ ci(t),
2380
+ () => o({ partialId: t }),
2381
+ {
2382
+ revalidateOnFocus: !1
2383
+ }
2384
+ );
2385
+ return Ce(a, () => {
2386
+ var c;
2387
+ r.value = ((c = a.value) == null ? void 0 : c.data) ?? [];
2388
+ }), r;
2389
+ }, cd = { class: "kong-ui-entities-redis-configurations-form" }, fd = /* @__PURE__ */ Y({
2390
+ __name: "RedisConfigurationForm",
2391
+ props: {
2392
+ config: {
2393
+ type: Object,
2394
+ required: !0,
2395
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || (e == null ? void 0 : e.app) === "konnect" && !(e != null && e.controlPlaneId) || (e == null ? void 0 : e.app) === "kongManager" && typeof (e == null ? void 0 : e.workspace) != "string")
2396
+ },
2397
+ /** If a valid partialId is provided, it will put the form in Edit mode instead of Create */
2398
+ partialId: {
2399
+ type: String,
2400
+ required: !1,
2401
+ default: ""
2402
+ },
2403
+ /**
2404
+ * Teleport target for the actions
2405
+ */
2406
+ actionTeleportTarget: {
2407
+ type: String,
2408
+ default: null
2409
+ },
2410
+ /**
2411
+ * Top offset for the slideout
2412
+ */
2413
+ slidoutTopOffset: {
2414
+ type: Number,
2415
+ default: 60
2416
+ },
2417
+ /**
2418
+ * Set disabled partial type, only for create mode
2419
+ */
2420
+ disabledPartialType: {
2421
+ type: String,
2422
+ default: ""
2423
+ }
2424
+ },
2425
+ emits: ["update", "error", "loading", "cancel"],
2426
+ setup(e, { emit: t }) {
2427
+ const n = e, o = t, { i18n: { t: r }, i18nT: a } = ye.useI18n(), {
2428
+ vaultSecretPickerSetup: c,
2429
+ setUpVaultSecretPicker: p,
2430
+ handleVaultSecretPickerAutofill: l
2431
+ } = si(), u = Tn(), v = x("json"), T = z(() => [
2432
+ {
2433
+ label: r("form.options.type.host_port"),
2434
+ group: r("form.options.type.enterprise"),
2435
+ value: w.HOST_PORT_EE,
2436
+ selected: I.value === w.HOST_PORT_EE,
2437
+ disabled: !d && n.disabledPartialType === Q.REDIS_EE
2438
+ },
2439
+ {
2440
+ label: r("form.options.type.cluster"),
2441
+ group: r("form.options.type.enterprise"),
2442
+ value: w.CLUSTER,
2443
+ selected: I.value === w.CLUSTER,
2444
+ disabled: !d && n.disabledPartialType === Q.REDIS_EE
2445
+ },
2446
+ {
2447
+ label: r("form.options.type.sentinel"),
2448
+ group: r("form.options.type.enterprise"),
2449
+ value: w.SENTINEL,
2450
+ selected: I.value === w.SENTINEL,
2451
+ disabled: !d && n.disabledPartialType === Q.REDIS_EE
2452
+ },
2453
+ {
2454
+ label: r("form.options.type.host_port"),
2455
+ group: r("form.options.type.open_source"),
2456
+ value: w.HOST_PORT_CE,
2457
+ selected: I.value === w.HOST_PORT_CE,
2458
+ disabled: d && P.value || !d && n.disabledPartialType === Q.REDIS_CE
2459
+ }
2460
+ ]), m = z(() => [
2461
+ {
2462
+ label: r("form.options.auth_provider.aws"),
2463
+ value: q.AWS
2464
+ },
2465
+ {
2466
+ label: r("form.options.auth_provider.gcp"),
2467
+ value: q.GCP
2468
+ },
2469
+ {
2470
+ label: r("form.options.auth_provider.azure"),
2471
+ value: q.AZURE
2472
+ }
2473
+ ]), b = [
2474
+ { label: r("form.options.sentinel_role.master"), value: "master" },
2475
+ { label: r("form.options.sentinel_role.slave"), value: "slave" },
2476
+ { label: r("form.options.sentinel_role.any"), value: "any" }
2477
+ ], _ = (H) => {
2478
+ const y = H.value === w.HOST_PORT_CE ? r("form.options.type.suffix_open_source") : r("form.options.type.suffix_enterprise");
2479
+ return `${H.label}${y}`;
2480
+ }, E = () => n.disabledPartialType && Xe($e) === n.disabledPartialType ? n.disabledPartialType === Q.REDIS_CE ? w.HOST_PORT_EE : w.HOST_PORT_CE : $e, {
2481
+ form: s,
2482
+ canSubmit: A,
2483
+ payload: k,
2484
+ isEdit: d,
2485
+ redisType: I,
2486
+ redisTypeIsEnterprise: P,
2487
+ fetchUrl: W,
2488
+ submit: X,
2489
+ setInitialFormValues: ne
2490
+ } = $s({
2491
+ partialId: n.partialId,
2492
+ defaultRedisType: E(),
2493
+ config: n.config,
2494
+ cloudAuthAvailable: n.config.cloudAuthAvailable
2495
+ }), { fetcher: de } = Fe(n.config), ie = x(!1), we = x(!1), re = x(0), oe = z(() => v.value === "terraform" ? {
2496
+ [k.value.type.replaceAll("-", "_")]: ks(k.value, ["type"])
2497
+ } : k.value), Te = async () => {
2498
+ try {
2499
+ if (d && !we.value) {
2500
+ const { count: y } = await de({ partialId: n.partialId });
2501
+ if (re.value = y, y > 0) {
2502
+ ie.value = !0;
2503
+ return;
2504
+ }
2505
+ }
2506
+ const { data: H } = await X();
2507
+ o("update", H);
2508
+ } catch (H) {
2509
+ o("error", H);
2510
+ }
2511
+ }, Se = () => {
2512
+ ie.value = !1, we.value = !0, Te();
2513
+ }, xe = () => {
2514
+ n.config.cancelRoute && u.push(n.config.cancelRoute), o("cancel");
2515
+ }, ve = (H) => {
2516
+ o("loading", H);
2517
+ }, at = (H) => {
2518
+ o("error", H);
2519
+ }, ze = (H) => {
2520
+ ne(H);
2521
+ };
2522
+ return _n(async () => {
2523
+ if (d) {
2524
+ const { count: H } = await de({ partialId: n.partialId });
2525
+ re.value = H;
2526
+ }
2527
+ }), (H, y) => {
2528
+ const lt = $("KAlert"), Ee = $("KSelect"), F = $("KInput"), C = $("KCheckbox"), R = $("KModal");
2529
+ return O(), J(fe, null, [
2530
+ K("div", cd, [
2531
+ g(i(Oi), {
2532
+ "action-teleport-target": e.actionTeleportTarget,
2533
+ "can-submit": i(A),
2534
+ config: e.config,
2535
+ "edit-id": e.partialId,
2536
+ "entity-type": i(vn).Partial,
2537
+ "error-message": i(s).errorMessage,
2538
+ "fetch-url": i(W),
2539
+ "form-fields": oe.value,
2540
+ "is-readonly": i(s).readonly,
2541
+ "slidout-top-offset": e.slidoutTopOffset,
2542
+ onCancel: xe,
2543
+ onCodeBlockTabChange: y[34] || (y[34] = (f) => v.value = f),
2544
+ "onFetch:error": at,
2545
+ "onFetch:success": ze,
2546
+ onLoading: ve,
2547
+ onSubmit: Te
2548
+ }, {
2549
+ default: S(() => [
2550
+ re.value > 0 && i(d) ? (O(), N(lt, {
2551
+ key: 0,
2552
+ appearance: "warning",
2553
+ class: "warning-alert",
2554
+ "data-testid": "redis-update-warning-alert"
2555
+ }, {
2556
+ default: S(() => [
2557
+ g(i(a), {
2558
+ keypath: "form.edit_warning_modal.description",
2559
+ tag: "div"
2560
+ }, {
2561
+ pluginCount: S(() => [
2562
+ K("b", null, B(i(r)("form.edit_warning_modal.plugin_count", { count: re.value })), 1)
2563
+ ]),
2564
+ _: 1
2565
+ })
2566
+ ]),
2567
+ _: 1
2568
+ })) : Z("", !0),
2569
+ g(i(ue), {
2570
+ "data-testid": "redis-type-section",
2571
+ description: i(r)("form.sections.type.description"),
2572
+ title: i(r)("form.sections.type.title")
2573
+ }, {
2574
+ default: S(() => [
2575
+ g(Ee, {
2576
+ modelValue: i(I),
2577
+ "onUpdate:modelValue": y[0] || (y[0] = (f) => Ti(I) ? I.value = f : null),
2578
+ "data-testid": "redis-type-select",
2579
+ disabled: i(d) && i(I) === i(w).HOST_PORT_CE,
2580
+ items: T.value,
2581
+ "kpop-attributes": { "data-testid": "redis-type-select-popover" },
2582
+ label: i(r)("form.fields.type.label"),
2583
+ readonly: i(s).readonly,
2584
+ required: ""
2585
+ }, {
2586
+ "selected-item-template": S(({ item: f }) => [
2587
+ le(B(_(f)), 1)
2588
+ ]),
2589
+ _: 1
2590
+ }, 8, ["modelValue", "disabled", "items", "label", "readonly"])
2591
+ ]),
2592
+ _: 1
2593
+ }, 8, ["description", "title"]),
2594
+ g(i(ue), {
2595
+ "data-testid": "redis-general-section",
2596
+ description: i(r)("form.sections.general.description"),
2597
+ title: i(r)("form.sections.general.title")
2598
+ }, {
2599
+ default: S(() => [
2600
+ g(F, {
2601
+ modelValue: i(s).fields.name,
2602
+ "onUpdate:modelValue": y[1] || (y[1] = (f) => i(s).fields.name = f),
2603
+ modelModifiers: { trim: !0 },
2604
+ "data-testid": "redis-name-input",
2605
+ disabled: i(d),
2606
+ label: i(r)("form.fields.name.label"),
2607
+ placeholder: i(r)("form.fields.name.placeholder"),
2608
+ readonly: i(s).readonly,
2609
+ required: ""
2610
+ }, null, 8, ["modelValue", "disabled", "label", "placeholder", "readonly"]),
2611
+ g(F, {
2612
+ modelValue: i(s).fields.tags,
2613
+ "onUpdate:modelValue": y[2] || (y[2] = (f) => i(s).fields.tags = f),
2614
+ modelModifiers: { trim: !0 },
2615
+ "data-testid": "redis-tags-input",
2616
+ help: i(r)("form.fields.tags.help"),
2617
+ label: i(r)("form.fields.tags.label"),
2618
+ "label-attributes": {
2619
+ info: i(r)("form.fields.tags.tooltip"),
2620
+ tooltipAttributes: { maxWidth: "400" }
2621
+ },
2622
+ placeholder: i(r)("form.fields.tags.placeholder"),
2623
+ readonly: i(s).readonly
2624
+ }, null, 8, ["modelValue", "help", "label", "label-attributes", "placeholder", "readonly"])
2625
+ ]),
2626
+ _: 1
2627
+ }, 8, ["description", "title"]),
2628
+ e.config.cloudAuthAvailable && i(I) !== i(w).SENTINEL ? (O(), N(i(ue), {
2629
+ key: 1,
2630
+ "data-testid": "redis-cloud-auth-section",
2631
+ description: i(r)("form.sections.cloud_auth.description"),
2632
+ title: i(r)("form.sections.cloud_auth.title")
2633
+ }, {
2634
+ default: S(() => [
2635
+ g(Ee, {
2636
+ modelValue: i(s).fields.config.cloud_authentication.auth_provider,
2637
+ "onUpdate:modelValue": y[3] || (y[3] = (f) => i(s).fields.config.cloud_authentication.auth_provider = f),
2638
+ clearable: "",
2639
+ "data-testid": "redis-auth-provider-select",
2640
+ items: m.value,
2641
+ "kpop-attributes": { "data-testid": "redis-auth-provider-select-popover" },
2642
+ label: i(r)("form.fields.cloud_authentication.auth_provider.label"),
2643
+ "label-attributes": { info: i(r)("form.fields.cloud_authentication.auth_provider.tooltip") },
2644
+ readonly: i(s).readonly
2645
+ }, null, 8, ["modelValue", "items", "label", "label-attributes", "readonly"]),
2646
+ g(Xs, {
2647
+ modelValue: i(s).fields.config.cloud_authentication,
2648
+ "onUpdate:modelValue": y[4] || (y[4] = (f) => i(s).fields.config.cloud_authentication = f),
2649
+ config: n.config,
2650
+ readonly: i(s).readonly
2651
+ }, null, 8, ["modelValue", "config", "readonly"])
2652
+ ]),
2653
+ _: 1
2654
+ }, 8, ["description", "title"])) : Z("", !0),
2655
+ i(I) === i(w).SENTINEL ? (O(), N(i(ue), {
2656
+ key: 2,
2657
+ "data-testid": "redis-sentinel-configuration-section",
2658
+ description: i(r)("form.sections.sentinel_configuration.description"),
2659
+ title: i(r)("form.sections.sentinel_configuration.title")
2660
+ }, {
2661
+ default: S(() => [
2662
+ g(F, {
2663
+ modelValue: i(s).fields.config.sentinel_master,
2664
+ "onUpdate:modelValue": y[5] || (y[5] = (f) => i(s).fields.config.sentinel_master = f),
2665
+ "data-testid": "redis-sentinel-master-input",
2666
+ label: i(r)("form.fields.sentinel_master.label"),
2667
+ "label-attributes": {
2668
+ info: i(r)("form.fields.sentinel_master.tooltip"),
2669
+ tooltipAttributes: { maxWidth: "400" }
2670
+ },
2671
+ readonly: i(s).readonly,
2672
+ required: ""
2673
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2674
+ g(Ee, {
2675
+ modelValue: i(s).fields.config.sentinel_role,
2676
+ "onUpdate:modelValue": y[6] || (y[6] = (f) => i(s).fields.config.sentinel_role = f),
2677
+ "data-testid": "redis-sentinel-role-select",
2678
+ items: b,
2679
+ "kpop-attributes": { "data-testid": "redis-sentinel-role-select-popover" },
2680
+ label: i(r)("form.fields.sentinel_role.label"),
2681
+ "label-attributes": {
2682
+ info: i(r)("form.fields.sentinel_role.tooltip"),
2683
+ tooltipAttributes: { maxWidth: "400" }
2684
+ },
2685
+ readonly: i(s).readonly,
2686
+ required: ""
2687
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2688
+ g(Qs, {
2689
+ modelValue: i(s).fields.config.sentinel_nodes,
2690
+ "onUpdate:modelValue": y[7] || (y[7] = (f) => i(s).fields.config.sentinel_nodes = f),
2691
+ readonly: i(s).readonly
2692
+ }, null, 8, ["modelValue", "readonly"]),
2693
+ g(F, {
2694
+ modelValue: i(s).fields.config.sentinel_username,
2695
+ "onUpdate:modelValue": y[8] || (y[8] = (f) => i(s).fields.config.sentinel_username = f),
2696
+ modelModifiers: { trim: !0 },
2697
+ label: i(r)("form.fields.sentinel_username.label"),
2698
+ "label-attributes": {
2699
+ info: i(r)("form.fields.sentinel_username.tooltip"),
2700
+ tooltipAttributes: { maxWidth: "400" }
2701
+ },
2702
+ readonly: i(s).readonly
2703
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2704
+ g(i(he), {
2705
+ class: "secret-picker-provider",
2706
+ disabled: i(s).readonly,
2707
+ update: (f) => i(s).fields.config.sentinel_username = f,
2708
+ value: i(s).fields.config.sentinel_username,
2709
+ onOpen: y[9] || (y[9] = (f, D) => i(p)(f, D))
2710
+ }, null, 8, ["disabled", "update", "value"]),
2711
+ g(F, {
2712
+ modelValue: i(s).fields.config.sentinel_password,
2713
+ "onUpdate:modelValue": y[10] || (y[10] = (f) => i(s).fields.config.sentinel_password = f),
2714
+ modelModifiers: { trim: !0 },
2715
+ label: i(r)("form.fields.sentinel_password.label"),
2716
+ "label-attributes": {
2717
+ info: i(r)("form.fields.sentinel_password.tooltip"),
2718
+ tooltipAttributes: { maxWidth: "400" }
2719
+ },
2720
+ readonly: i(s).readonly,
2721
+ "show-password-mask-toggle": "",
2722
+ type: "password"
2723
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2724
+ g(i(he), {
2725
+ class: "secret-picker-provider",
2726
+ disabled: i(s).readonly,
2727
+ update: (f) => i(s).fields.config.sentinel_password = f,
2728
+ value: i(s).fields.config.sentinel_password,
2729
+ onOpen: y[11] || (y[11] = (f, D) => i(p)(f, D))
2730
+ }, null, 8, ["disabled", "update", "value"])
2731
+ ]),
2732
+ _: 1
2733
+ }, 8, ["description", "title"])) : Z("", !0),
2734
+ i(I) === i(w).CLUSTER ? (O(), N(i(ue), {
2735
+ key: 3,
2736
+ "data-testid": "redis-cluster-configuration-section",
2737
+ description: i(r)("form.sections.cluster.description"),
2738
+ title: i(r)("form.sections.cluster.title")
2739
+ }, {
2740
+ default: S(() => [
2741
+ g(Gs, {
2742
+ modelValue: i(s).fields.config.cluster_nodes,
2743
+ "onUpdate:modelValue": y[12] || (y[12] = (f) => i(s).fields.config.cluster_nodes = f),
2744
+ readonly: i(s).readonly
2745
+ }, null, 8, ["modelValue", "readonly"]),
2746
+ g(F, {
2747
+ modelValue: i(s).fields.config.cluster_max_redirections,
2748
+ "onUpdate:modelValue": y[13] || (y[13] = (f) => i(s).fields.config.cluster_max_redirections = f),
2749
+ "data-testid": "redis-cluster-max-redirections-input",
2750
+ label: i(r)("form.fields.cluster_max_redirections.label"),
2751
+ "label-attributes": {
2752
+ info: i(r)("form.fields.cluster_max_redirections.tooltip"),
2753
+ tooltipAttributes: { maxWidth: "400" }
2754
+ },
2755
+ readonly: i(s).readonly,
2756
+ type: "number"
2757
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])
2758
+ ]),
2759
+ _: 1
2760
+ }, 8, ["description", "title"])) : Z("", !0),
2761
+ g(i(ue), {
2762
+ "data-testid": "redis-connection-configuration-section",
2763
+ description: i(r)("form.sections.connection.description"),
2764
+ title: i(r)("form.sections.connection.title")
2765
+ }, {
2766
+ default: S(() => [
2767
+ i(I) === i(w).HOST_PORT_CE || i(I) === i(w).HOST_PORT_EE ? (O(), N(F, {
2768
+ key: 0,
2769
+ modelValue: i(s).fields.config.host,
2770
+ "onUpdate:modelValue": y[14] || (y[14] = (f) => i(s).fields.config.host = f),
2771
+ modelModifiers: { trim: !0 },
2772
+ "data-testid": "redis-host-input",
2773
+ label: i(r)("form.fields.host.label"),
2774
+ "label-attributes": {
2775
+ info: i(r)("form.fields.host.tooltip"),
2776
+ tooltipAttributes: { maxWidth: "400" }
2777
+ },
2778
+ readonly: i(s).readonly
2779
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])) : Z("", !0),
2780
+ i(I) === i(w).HOST_PORT_EE && e.config.isHostReferenceable ? (O(), N(i(he), {
2781
+ key: 1,
2782
+ class: "secret-picker-provider",
2783
+ "data-testid": "secret-picker-provider-for-host",
2784
+ disabled: i(s).readonly,
2785
+ update: (f) => i(s).fields.config.host = f,
2786
+ value: i(s).fields.config.host ?? "",
2787
+ onOpen: y[15] || (y[15] = (f, D) => i(p)(f, D))
2788
+ }, null, 8, ["disabled", "update", "value"])) : Z("", !0),
2789
+ i(I) === i(w).HOST_PORT_CE || i(I) === i(w).HOST_PORT_EE ? (O(), N(F, {
2790
+ key: 2,
2791
+ modelValue: i(s).fields.config.port,
2792
+ "onUpdate:modelValue": y[16] || (y[16] = (f) => i(s).fields.config.port = f),
2793
+ modelModifiers: { trim: !0 },
2794
+ "data-testid": "redis-port-input",
2795
+ label: i(r)("form.fields.port.label"),
2796
+ "label-attributes": {
2797
+ info: i(r)("form.fields.port.tooltip"),
2798
+ tooltipAttributes: { maxWidth: "400" }
2799
+ },
2800
+ readonly: i(s).readonly
2801
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])) : Z("", !0),
2802
+ i(I) === i(w).HOST_PORT_EE && e.config.isPortReferenceable ? (O(), N(i(he), {
2803
+ key: 3,
2804
+ class: "secret-picker-provider",
2805
+ "data-testid": "secret-picker-provider-for-port",
2806
+ disabled: i(s).readonly,
2807
+ update: (f) => i(s).fields.config.port = f,
2808
+ value: String(i(s).fields.config.port ?? ""),
2809
+ onOpen: y[17] || (y[17] = (f, D) => i(p)(f, D))
2810
+ }, null, 8, ["disabled", "update", "value"])) : Z("", !0),
2811
+ i(I) === i(w).HOST_PORT_EE ? (O(), N(C, {
2812
+ key: 4,
2813
+ modelValue: i(s).fields.config.connection_is_proxied,
2814
+ "onUpdate:modelValue": y[18] || (y[18] = (f) => i(s).fields.config.connection_is_proxied = f),
2815
+ "data-testid": "redis-connection-is-proxied-checkbox",
2816
+ disabled: i(s).readonly,
2817
+ label: i(r)("form.fields.connection_is_proxied.label"),
2818
+ "label-attributes": {
2819
+ info: i(r)("form.fields.connection_is_proxied.tooltip"),
2820
+ tooltipAttributes: { maxWidth: "400" }
2821
+ }
2822
+ }, null, 8, ["modelValue", "disabled", "label", "label-attributes"])) : Z("", !0),
2823
+ i(I) === i(w).HOST_PORT_CE ? (O(), N(F, {
2824
+ key: 5,
2825
+ modelValue: i(s).fields.config.timeout,
2826
+ "onUpdate:modelValue": y[19] || (y[19] = (f) => i(s).fields.config.timeout = f),
2827
+ modelModifiers: { trim: !0 },
2828
+ "data-testid": "redis-timeout-input",
2829
+ label: i(r)("form.fields.timeout.label"),
2830
+ "label-attributes": {
2831
+ info: i(r)("form.fields.timeout.tooltip"),
2832
+ tooltipAttributes: { maxWidth: "400" }
2833
+ },
2834
+ readonly: i(s).readonly,
2835
+ type: "number"
2836
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])) : Z("", !0),
2837
+ g(F, {
2838
+ modelValue: i(s).fields.config.database,
2839
+ "onUpdate:modelValue": y[20] || (y[20] = (f) => i(s).fields.config.database = f),
2840
+ modelModifiers: { trim: !0 },
2841
+ "data-testid": "redis-database-input",
2842
+ label: i(r)("form.fields.database.label"),
2843
+ "label-attributes": {
2844
+ info: i(r)("form.fields.database.tooltip"),
2845
+ tooltipAttributes: { maxWidth: "400" }
2846
+ },
2847
+ readonly: i(s).readonly,
2848
+ type: "number"
2849
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2850
+ g(F, {
2851
+ modelValue: i(s).fields.config.username,
2852
+ "onUpdate:modelValue": y[21] || (y[21] = (f) => i(s).fields.config.username = f),
2853
+ modelModifiers: { trim: !0 },
2854
+ "data-testid": "redis-username-input",
2855
+ label: i(r)("form.fields.username.label"),
2856
+ "label-attributes": {
2857
+ info: i(r)("form.fields.username.tooltip"),
2858
+ tooltipAttributes: { maxWidth: "400" }
2859
+ },
2860
+ readonly: i(s).readonly
2861
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2862
+ g(i(he), {
2863
+ class: "secret-picker-provider",
2864
+ disabled: i(s).readonly,
2865
+ update: (f) => i(s).fields.config.username = f,
2866
+ value: i(s).fields.config.username,
2867
+ onOpen: y[22] || (y[22] = (f, D) => i(p)(f, D))
2868
+ }, null, 8, ["disabled", "update", "value"]),
2869
+ g(F, {
2870
+ modelValue: i(s).fields.config.password,
2871
+ "onUpdate:modelValue": y[23] || (y[23] = (f) => i(s).fields.config.password = f),
2872
+ modelModifiers: { trim: !0 },
2873
+ "data-testid": "redis-password-input",
2874
+ label: i(r)("form.fields.password.label"),
2875
+ "label-attributes": {
2876
+ info: i(r)("form.fields.password.tooltip"),
2877
+ tooltipAttributes: { maxWidth: "400" }
2878
+ },
2879
+ readonly: i(s).readonly,
2880
+ "show-password-mask-toggle": "",
2881
+ type: "password"
2882
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2883
+ g(i(he), {
2884
+ class: "secret-picker-provider",
2885
+ disabled: i(s).readonly,
2886
+ update: (f) => i(s).fields.config.password = f,
2887
+ value: i(s).fields.config.password,
2888
+ onOpen: y[24] || (y[24] = (f, D) => i(p)(f, D))
2889
+ }, null, 8, ["disabled", "update", "value"])
2890
+ ]),
2891
+ _: 1
2892
+ }, 8, ["description", "title"]),
2893
+ g(i(ue), {
2894
+ "data-testid": "redis-tls-configuration-section",
2895
+ description: i(r)("form.sections.tls.description"),
2896
+ title: i(r)("form.sections.tls.title")
2897
+ }, {
2898
+ default: S(() => [
2899
+ g(C, {
2900
+ modelValue: i(s).fields.config.ssl,
2901
+ "onUpdate:modelValue": y[25] || (y[25] = (f) => i(s).fields.config.ssl = f),
2902
+ "data-testid": "redis-ssl-checkbox",
2903
+ description: i(r)("form.fields.ssl.description"),
2904
+ disabled: i(s).readonly,
2905
+ label: i(r)("form.fields.ssl.label"),
2906
+ "label-attributes": {
2907
+ info: i(r)("form.fields.ssl.tooltip"),
2908
+ tooltipAttributes: { maxWidth: "400" }
2909
+ }
2910
+ }, null, 8, ["modelValue", "description", "disabled", "label", "label-attributes"]),
2911
+ g(C, {
2912
+ modelValue: i(s).fields.config.ssl_verify,
2913
+ "onUpdate:modelValue": y[26] || (y[26] = (f) => i(s).fields.config.ssl_verify = f),
2914
+ "data-testid": "redis-ssl-verify-checkbox",
2915
+ description: i(r)("form.fields.ssl_verify.description"),
2916
+ disabled: i(s).readonly,
2917
+ label: i(r)("form.fields.ssl_verify.label"),
2918
+ "label-attributes": {
2919
+ info: i(r)("form.fields.ssl_verify.tooltip"),
2920
+ tooltipAttributes: { maxWidth: "400" }
2921
+ }
2922
+ }, null, 8, ["modelValue", "description", "disabled", "label", "label-attributes"]),
2923
+ g(F, {
2924
+ modelValue: i(s).fields.config.server_name,
2925
+ "onUpdate:modelValue": y[27] || (y[27] = (f) => i(s).fields.config.server_name = f),
2926
+ modelModifiers: { trim: !0 },
2927
+ "data-testid": "redis-server_name-input",
2928
+ label: i(r)("form.fields.server_name.label"),
2929
+ "label-attributes": {
2930
+ info: i(r)("form.fields.server_name.tooltip"),
2931
+ tooltipAttributes: { maxWidth: "400" }
2932
+ },
2933
+ readonly: i(s).readonly
2934
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2935
+ i(I) === i(w).HOST_PORT_EE && e.config.isServerNameReferenceable ? (O(), N(i(he), {
2936
+ key: 0,
2937
+ class: "secret-picker-provider",
2938
+ "data-testid": "secret-picker-provider-for-server_name",
2939
+ disabled: i(s).readonly,
2940
+ update: (f) => i(s).fields.config.server_name = f,
2941
+ value: i(s).fields.config.server_name ?? "",
2942
+ onOpen: y[28] || (y[28] = (f, D) => i(p)(f, D))
2943
+ }, null, 8, ["disabled", "update", "value"])) : Z("", !0)
2944
+ ]),
2945
+ _: 1
2946
+ }, 8, ["description", "title"]),
2947
+ i(I) !== i(w).HOST_PORT_CE ? (O(), N(i(ue), {
2948
+ key: 4,
2949
+ "data-testid": "redis-keepalive-section",
2950
+ description: i(r)("form.sections.keepalive.description"),
2951
+ title: i(r)("form.sections.keepalive.title")
2952
+ }, {
2953
+ default: S(() => [
2954
+ g(F, {
2955
+ modelValue: i(s).fields.config.keepalive_backlog,
2956
+ "onUpdate:modelValue": y[29] || (y[29] = (f) => i(s).fields.config.keepalive_backlog = f),
2957
+ "data-testid": "redis-keepalive-backlog-input",
2958
+ label: i(r)("form.fields.keepalive_backlog.label"),
2959
+ "label-attributes": {
2960
+ info: i(r)("form.fields.keepalive_backlog.tooltip"),
2961
+ tooltipAttributes: { maxWidth: "400" }
2962
+ },
2963
+ readonly: i(s).readonly,
2964
+ type: "number"
2965
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
2966
+ g(F, {
2967
+ modelValue: i(s).fields.config.keepalive_pool_size,
2968
+ "onUpdate:modelValue": y[30] || (y[30] = (f) => i(s).fields.config.keepalive_pool_size = f),
2969
+ "data-testid": "redis-keepalive-pool-size-input",
2970
+ label: i(r)("form.fields.keepalive_pool_size.label"),
2971
+ "label-attributes": {
2972
+ info: i(r)("form.fields.keepalive_pool_size.tooltip"),
2973
+ tooltipAttributes: { maxWidth: "400" }
2974
+ },
2975
+ readonly: i(s).readonly,
2976
+ type: "number"
2977
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])
2978
+ ]),
2979
+ _: 1
2980
+ }, 8, ["description", "title"])) : Z("", !0),
2981
+ i(I) !== i(w).HOST_PORT_CE ? (O(), N(i(ue), {
2982
+ key: 5,
2983
+ "data-testid": "redis-read-write-configuration-section",
2984
+ description: i(r)("form.sections.read_write_configuration.description"),
2985
+ title: i(r)("form.sections.read_write_configuration.title")
2986
+ }, {
2987
+ default: S(() => [
2988
+ g(F, {
2989
+ modelValue: i(s).fields.config.read_timeout,
2990
+ "onUpdate:modelValue": y[31] || (y[31] = (f) => i(s).fields.config.read_timeout = f),
2991
+ "data-testid": "redis-read-timeout-input",
2992
+ label: i(r)("form.fields.read_timeout.label"),
2993
+ "label-attributes": {
2994
+ info: i(r)("form.fields.read_timeout.tooltip"),
2995
+ tooltipAttributes: { maxWidth: "400" }
2996
+ },
2997
+ readonly: i(s).readonly,
2998
+ type: "number"
2999
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
3000
+ g(F, {
3001
+ modelValue: i(s).fields.config.send_timeout,
3002
+ "onUpdate:modelValue": y[32] || (y[32] = (f) => i(s).fields.config.send_timeout = f),
3003
+ "data-testid": "redis-send-timeout-input",
3004
+ label: i(r)("form.fields.send_timeout.label"),
3005
+ "label-attributes": {
3006
+ info: i(r)("form.fields.send_timeout.tooltip"),
3007
+ tooltipAttributes: { maxWidth: "400" }
3008
+ },
3009
+ readonly: i(s).readonly,
3010
+ type: "number"
3011
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"]),
3012
+ g(F, {
3013
+ modelValue: i(s).fields.config.connect_timeout,
3014
+ "onUpdate:modelValue": y[33] || (y[33] = (f) => i(s).fields.config.connect_timeout = f),
3015
+ "data-testid": "redis-connect-timeout-input",
3016
+ label: i(r)("form.fields.connect_timeout.label"),
3017
+ "label-attributes": {
3018
+ info: i(r)("form.fields.connect_timeout.tooltip"),
3019
+ tooltipAttributes: { maxWidth: "400" }
3020
+ },
3021
+ readonly: i(s).readonly,
3022
+ type: "number"
3023
+ }, null, 8, ["modelValue", "label", "label-attributes", "readonly"])
3024
+ ]),
3025
+ _: 1
3026
+ }, 8, ["description", "title"])) : Z("", !0)
3027
+ ]),
3028
+ _: 1
3029
+ }, 8, ["action-teleport-target", "can-submit", "config", "edit-id", "entity-type", "error-message", "fetch-url", "form-fields", "is-readonly", "slidout-top-offset"])
3030
+ ]),
3031
+ g(i(wn), {
3032
+ config: n.config,
3033
+ setup: i(c),
3034
+ onCancel: y[35] || (y[35] = () => c.value = !1),
3035
+ onProceed: i(l)
3036
+ }, null, 8, ["config", "setup", "onProceed"]),
3037
+ g(R, {
3038
+ "action-button-text": i(r)("form.edit_warning_modal.confirm"),
3039
+ "data-testid": "redis-update-warning-modal",
3040
+ "hide-cancel-button": "",
3041
+ "max-width": "640",
3042
+ title: i(r)("form.edit_warning_modal.title"),
3043
+ visible: ie.value,
3044
+ onCancel: y[36] || (y[36] = (f) => ie.value = !1),
3045
+ onProceed: Se
3046
+ }, {
3047
+ default: S(() => [
3048
+ g(i(a), {
3049
+ keypath: "form.edit_warning_modal.description",
3050
+ tag: "div"
3051
+ }, {
3052
+ pluginCount: S(() => [
3053
+ K("b", null, B(i(r)("form.edit_warning_modal.plugin_count", { count: re.value })), 1)
3054
+ ]),
3055
+ _: 1
3056
+ })
3057
+ ]),
3058
+ _: 1
3059
+ }, 8, ["action-button-text", "title", "visible"])
3060
+ ], 64);
3061
+ };
3062
+ }
3063
+ }), pd = /* @__PURE__ */ te(fd, [["__scopeId", "data-v-87b9293a"]]), md = {
3064
+ class: "linked-plugins",
3065
+ "data-testid": "linked-plugins-inline"
3066
+ }, bt = 7, _d = /* @__PURE__ */ Y({
3067
+ __name: "LinkedPluginsInline",
3068
+ props: {
3069
+ config: {
3070
+ type: Object,
3071
+ required: !0,
3072
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || e.app === "konnect" && !e.controlPlaneId || e.app === "kongManager" && typeof e.workspace != "string")
3073
+ },
3074
+ partialId: {
3075
+ type: String,
3076
+ required: !0
3077
+ }
3078
+ },
3079
+ setup(e) {
3080
+ const t = e, n = fi({
3081
+ config: t.config,
3082
+ partialId: t.partialId
3083
+ });
3084
+ return (o, r) => {
3085
+ const a = $("KBadge");
3086
+ return O(), J("div", md, [
3087
+ (O(!0), J(fe, null, tt(i(n).slice(0, bt), (c) => (O(), N(i(En), {
3088
+ key: c.id,
3089
+ name: c.name,
3090
+ size: 24
3091
+ }, null, 8, ["name"]))), 128)),
3092
+ i(n).length - bt > 0 ? (O(), N(a, {
3093
+ key: 0,
3094
+ appearance: "info"
3095
+ }, {
3096
+ default: S(() => [
3097
+ le(" +" + B(i(n).length - bt), 1)
3098
+ ]),
3099
+ _: 1
3100
+ })) : Z("", !0)
3101
+ ]);
3102
+ };
3103
+ }
3104
+ }), gd = /* @__PURE__ */ te(_d, [["__scopeId", "data-v-a1215a8a"]]), bd = { class: "plugin-item" }, yd = /* @__PURE__ */ Y({
3105
+ __name: "PluginItem",
3106
+ props: {
3107
+ pluginName: {}
3108
+ },
3109
+ setup(e) {
3110
+ return (t, n) => (O(), J("div", bd, [
3111
+ g(i(En), {
3112
+ name: e.pluginName,
3113
+ size: 24
3114
+ }, null, 8, ["name"]),
3115
+ K("span", null, B(e.pluginName), 1)
3116
+ ]));
3117
+ }
3118
+ }), vd = /* @__PURE__ */ te(yd, [["__scopeId", "data-v-e1bb6c4c"]]), hd = { class: "toolbar-container" }, wd = /* @__PURE__ */ Y({
3119
+ __name: "LinkedPluginList",
3120
+ props: {
3121
+ config: {
3122
+ type: Object,
3123
+ required: !0,
3124
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || e.app === "konnect" && !e.controlPlaneId || e.app === "kongManager" && typeof e.workspace != "string")
3125
+ },
3126
+ /**
3127
+ * Only works when filterBarEnabled is true
3128
+ */
3129
+ isExactMatch: {
3130
+ type: Boolean,
3131
+ default: !1
3132
+ },
3133
+ filterBarEnabled: {
3134
+ type: Boolean,
3135
+ default: !1
3136
+ },
3137
+ partialId: {
3138
+ type: String,
3139
+ required: !0
3140
+ }
3141
+ },
3142
+ emits: ["view-plugin", "load"],
3143
+ setup(e, { emit: t }) {
3144
+ const n = e, o = t, { i18n: { t: r } } = ye.useI18n(), a = [
3145
+ { key: "name", label: r("linked_plugins_modal.headers.plugin") },
3146
+ { key: "instance_name", label: r("linked_plugins_modal.headers.instance_name") },
3147
+ { key: "actions", hideLabel: !0 }
3148
+ ], { fetcher: c } = Fe(n.config), p = x(0), l = async (m) => {
3149
+ const { data: b, count: _ } = await c({
3150
+ partialId: n.partialId,
3151
+ size: m.pageSize,
3152
+ offset: m.offset,
3153
+ query: m.query
3154
+ });
3155
+ p.value = _;
3156
+ const E = {
3157
+ total: _,
3158
+ data: b
3159
+ };
3160
+ return o("load", E), E;
3161
+ }, u = x(""), v = z(() => n.config.app === "konnect" || n.isExactMatch ? {
3162
+ isExactMatch: !0
3163
+ } : {
3164
+ isExactMatch: !1,
3165
+ fields: { name: { searchable: !0 } },
3166
+ schema: { name: { type: "text" } }
3167
+ }), T = (m) => {
3168
+ o("view-plugin", { id: m.id, plugin: m.name });
3169
+ };
3170
+ return (m, b) => {
3171
+ const _ = $("KDropdownItem"), E = $("KTableData");
3172
+ return O(), N(E, {
3173
+ "cache-identifier": i(ci)(e.partialId),
3174
+ fetcher: l,
3175
+ headers: a,
3176
+ "hide-pagination-when-optional": "",
3177
+ "pagination-attributes": { totalCount: p.value, disablePageJump: !0 },
3178
+ "search-input": u.value
3179
+ }, gn({
3180
+ name: S(({ rowValue: s }) => [
3181
+ g(vd, { "plugin-name": s }, null, 8, ["plugin-name"])
3182
+ ]),
3183
+ "action-items": S(({ row: s }) => [
3184
+ g(_, {
3185
+ onClick: (A) => T(s)
3186
+ }, {
3187
+ default: S(() => [
3188
+ le(B(i(r)("actions.view_plugin")), 1)
3189
+ ]),
3190
+ _: 1
3191
+ }, 8, ["onClick"])
3192
+ ]),
3193
+ _: 2
3194
+ }, [
3195
+ e.filterBarEnabled ? {
3196
+ name: "toolbar",
3197
+ fn: S(() => [
3198
+ K("div", hd, [
3199
+ g(i(hn), {
3200
+ modelValue: u.value,
3201
+ "onUpdate:modelValue": b[0] || (b[0] = (s) => u.value = s),
3202
+ config: v.value
3203
+ }, null, 8, ["modelValue", "config"])
3204
+ ])
3205
+ ]),
3206
+ key: "0"
3207
+ } : void 0
3208
+ ]), 1032, ["cache-identifier", "pagination-attributes", "search-input"]);
3209
+ };
3210
+ }
3211
+ }), Td = /* @__PURE__ */ te(wd, [["__scopeId", "data-v-50856d03"]]), Sd = {
3212
+ class: "linked-plugins-modal",
3213
+ "data-testid": "linked-plugins-modal"
3214
+ }, Ed = /* @__PURE__ */ Y({
3215
+ __name: "LinkedPluginListModal",
3216
+ props: {
3217
+ config: {
3218
+ type: Object,
3219
+ required: !0,
3220
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || e.app === "konnect" && !e.controlPlaneId || e.app === "kongManager" && typeof e.workspace != "string")
3221
+ },
3222
+ redisConfigurationId: {
3223
+ type: String,
3224
+ required: !0
3225
+ },
3226
+ visible: {
3227
+ type: Boolean,
3228
+ required: !0,
3229
+ default: !1
3230
+ }
3231
+ },
3232
+ emits: ["cancel", "proceed", "view-plugin"],
3233
+ setup(e, { emit: t }) {
3234
+ const n = t, { i18n: { t: o } } = ye.useI18n(), r = x(0), a = z(() => o("linked_plugins_modal.title", { count: r.value })), c = () => {
3235
+ n("cancel");
3236
+ }, p = () => {
3237
+ n("proceed");
3238
+ };
3239
+ return (l, u) => {
3240
+ const v = $("KModal");
3241
+ return O(), J("div", Sd, [
3242
+ g(v, {
3243
+ "action-button-text": i(o)("actions.done"),
3244
+ "hide-cancel-button": "",
3245
+ title: a.value,
3246
+ visible: e.visible,
3247
+ onCancel: c,
3248
+ onProceed: p
3249
+ }, {
3250
+ default: S(() => [
3251
+ g(Td, {
3252
+ config: e.config,
3253
+ "partial-id": e.redisConfigurationId,
3254
+ onLoad: u[0] || (u[0] = ({ total: T }) => r.value = T),
3255
+ onViewPlugin: u[1] || (u[1] = (T) => n("view-plugin", T))
3256
+ }, null, 8, ["config", "partial-id"])
3257
+ ]),
3258
+ _: 1
3259
+ }, 8, ["action-button-text", "title", "visible"])
3260
+ ]);
3261
+ };
3262
+ }
3263
+ }), Cd = /* @__PURE__ */ te(Ed, [["__scopeId", "data-v-6148b8bd"]]), kd = /* @__PURE__ */ Y({
3264
+ __name: "DeleteWarningModal",
3265
+ props: {
3266
+ visible: {
3267
+ type: Boolean,
3268
+ required: !0
3269
+ }
3270
+ },
3271
+ emits: ["close"],
3272
+ setup(e, { emit: t }) {
3273
+ const { i18n: { t: n } } = ye.useI18n(), o = t, r = () => {
3274
+ o("close");
3275
+ };
3276
+ return (a, c) => {
3277
+ const p = $("KModal");
3278
+ return O(), N(p, {
3279
+ "action-button-text": i(n)("actions.close"),
3280
+ "data-testid": "remove-links-modal",
3281
+ "hide-cancel-button": "",
3282
+ "max-width": "640",
3283
+ title: i(n)("delete.title"),
3284
+ visible: e.visible,
3285
+ onCancel: r,
3286
+ onProceed: r
3287
+ }, {
3288
+ default: S(() => [
3289
+ le(B(i(n)("delete.warning")), 1)
3290
+ ]),
3291
+ _: 1
3292
+ }, 8, ["action-button-text", "title", "visible"]);
3293
+ };
3294
+ }
3295
+ }), Od = { class: "kong-ui-entities-partials-list" }, Id = 1e3, Rd = /* @__PURE__ */ Y({
3296
+ __name: "RedisConfigurationList",
3297
+ props: {
3298
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
3299
+ config: {
3300
+ type: Object,
3301
+ required: !0,
3302
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || !e.createRoute || !e.getViewRoute || !e.getEditRoute)
3303
+ },
3304
+ // used to override the default identifier for the cache entry
3305
+ cacheIdentifier: {
3306
+ type: String,
3307
+ default: ""
3308
+ },
3309
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can create a new entity */
3310
+ canCreate: {
3311
+ type: Function,
3312
+ required: !1,
3313
+ default: async () => !0
3314
+ },
3315
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can delete a given entity */
3316
+ canDelete: {
3317
+ type: Function,
3318
+ required: !1,
3319
+ default: async () => !0
3320
+ },
3321
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can edit a given entity */
3322
+ canEdit: {
3323
+ type: Function,
3324
+ required: !1,
3325
+ default: async () => !0
3326
+ },
3327
+ /** A synchronous or asynchronous function, that returns a boolean, that evaluates if the user can retrieve (view details) a given entity */
3328
+ canRetrieve: {
3329
+ type: Function,
3330
+ required: !1,
3331
+ default: async () => !0
3332
+ },
3333
+ /** default to false, setting to true will teleport the toolbar button to the destination in the consuming app */
3334
+ useActionOutside: {
3335
+ type: Boolean,
3336
+ default: !1
3337
+ }
3338
+ },
3339
+ emits: ["click:learn-more", "click:plugin", "copy:error", "copy:success", "delete:success", "error"],
3340
+ setup(e, { emit: t }) {
3341
+ var F;
3342
+ const n = t, o = e, r = z(() => {
3343
+ var R, f;
3344
+ let C = `${o.config.apiBaseUrl}${Me.list[o.config.app]}`;
3345
+ return o.config.app === "konnect" ? C = C.replace(/{controlPlaneId}/gi, ((R = o.config) == null ? void 0 : R.controlPlaneId) || "") : o.config.app === "kongManager" && (C = C.replace(/\/{workspace}/gi, (f = o.config) != null && f.workspace ? `/${o.config.workspace}` : "")), C;
3346
+ }), a = x(!1), c = x(""), p = x(null), l = x(void 0), u = x(!1), v = x(!1), T = x(""), m = x(!1), b = Ii(o.config, r.value), _ = x(1), E = z(() => o.config.app !== "kongManager" || !!o.config.disableSorting), { fetcher: s, fetcherState: A } = Ri(o.config, r);
3347
+ async function k(C) {
3348
+ const R = await s({ ...C, pageSize: Id });
3349
+ return R.data = R.data.filter((f) => f.type === Q.REDIS_CE || f.type === Q.REDIS_EE), R;
3350
+ }
3351
+ const { i18n: { t: d } } = ye.useI18n(), { axiosInstance: I } = kt((F = o.config) == null ? void 0 : F.axiosRequestConfig), P = Tn(), W = x(""), X = z(() => {
3352
+ const C = o.config.app === "konnect" || o.config.isExactMatch;
3353
+ if (C)
3354
+ return {
3355
+ isExactMatch: !0,
3356
+ placeholder: d("search.placeholder_for_exact_match")
3357
+ };
3358
+ const { name: R } = ie;
3359
+ return {
3360
+ isExactMatch: C,
3361
+ fields: {
3362
+ name: R
3363
+ },
3364
+ schema: o.config.filterSchema
3365
+ };
3366
+ }), { fetcher: ne } = Fe(o.config), de = x({
3367
+ ctaPath: o.config.createRoute,
3368
+ ctaText: void 0,
3369
+ message: `${d("redis.empty_state.description")}${o.config.additionMessageForEmptyState ? ` ${o.config.additionMessageForEmptyState}` : ""}`,
3370
+ title: d("redis.title")
3371
+ }), ie = {
3372
+ name: { label: d("list.table_headers.name"), searchable: !0, hidable: !1, sortable: !0 },
3373
+ type: { label: d("list.table_headers.type") },
3374
+ tags: { label: d("list.table_headers.tags") },
3375
+ plugins: { label: d("list.table_headers.plugins") }
3376
+ }, we = (C) => ({
3377
+ label: d("actions.view"),
3378
+ to: o.config.getViewRoute(C)
3379
+ }), re = (C) => ({
3380
+ label: d("actions.edit"),
3381
+ to: o.config.getEditRoute(C)
3382
+ }), oe = async (C) => {
3383
+ const { count: R } = await ne({ partialId: C.id });
3384
+ R > 0 ? m.value = !0 : (l.value = C, u.value = !0);
3385
+ }, Te = () => {
3386
+ W.value = "";
3387
+ }, Se = async (C) => {
3388
+ var f;
3389
+ await ((f = o.canRetrieve) == null ? void 0 : f.call(o, C)) && P.push(o.config.getViewRoute(C.id));
3390
+ }, xe = () => {
3391
+ u.value = !1;
3392
+ }, ve = (C) => {
3393
+ c.value = C, a.value = !0;
3394
+ }, at = async () => {
3395
+ var C, R, f;
3396
+ if ((C = l.value) != null && C.id) {
3397
+ v.value = !0;
3398
+ try {
3399
+ await I.delete(b(l.value.id)), v.value = !1, u.value = !1, ze(), n("delete:success", l.value);
3400
+ } catch (D) {
3401
+ T.value = ((f = (R = D.response) == null ? void 0 : R.data) == null ? void 0 : f.message) || D.message || d("errors.delete"), n("error", D);
3402
+ } finally {
3403
+ v.value = !1;
3404
+ }
3405
+ }
3406
+ }, ze = () => {
3407
+ _.value++;
3408
+ }, H = (C) => {
3409
+ switch (Be(C)) {
3410
+ case w.HOST_PORT_CE:
3411
+ return `${d("form.options.type.host_port")}${d("form.options.type.suffix_open_source")}`;
3412
+ case w.HOST_PORT_EE:
3413
+ return `${d("form.options.type.host_port")}${d("form.options.type.suffix_enterprise")}`;
3414
+ case w.SENTINEL:
3415
+ return `${d("form.options.type.sentinel")}${d("form.options.type.suffix_enterprise")}`;
3416
+ case w.CLUSTER:
3417
+ return `${d("form.options.type.cluster")}${d("form.options.type.suffix_enterprise")}`;
3418
+ }
3419
+ }, y = () => {
3420
+ P.push(o.config.createRoute);
3421
+ }, lt = async (C, R) => {
3422
+ const f = C.id;
3423
+ if (!await R(f)) {
3424
+ n("copy:error", {
3425
+ entity: C,
3426
+ field: "id",
3427
+ message: d("errors.copy")
3428
+ });
3429
+ return;
3430
+ }
3431
+ n("copy:success", {
3432
+ entity: C,
3433
+ field: "id",
3434
+ message: d("copy.success", { val: f })
3435
+ });
3436
+ };
3437
+ Ce(A, (C) => {
3438
+ var R, f, D;
3439
+ if (C.status === xi.Error) {
3440
+ p.value = {
3441
+ title: d("errors.general")
3442
+ }, (D = (f = (R = C.error) == null ? void 0 : R.response) == null ? void 0 : f.data) != null && D.message && (p.value.message = C.error.response.data.message), n("error", C.error);
3443
+ return;
3444
+ }
3445
+ p.value = null;
3446
+ });
3447
+ const Ee = x(!1);
3448
+ return Ce(o.canCreate, async (C) => {
3449
+ Ee.value = await C, Ee.value ? de.value.ctaText = d("actions.create") : de.value.ctaText = void 0;
3450
+ }, {
3451
+ immediate: !0
3452
+ }), (C, R) => {
3453
+ const f = $("KButton"), D = $("KDropdownItem"), mi = $("KClipboardProvider"), _i = $("KEmptyState");
3454
+ return O(), J("div", Od, [
3455
+ g(i(Ai), {
3456
+ "cache-identifier": e.cacheIdentifier,
3457
+ "disable-sorting": E.value,
3458
+ "empty-state-options": de.value,
3459
+ "enable-entity-actions": "",
3460
+ "error-message": p.value,
3461
+ fetcher: k,
3462
+ "fetcher-cache-key": _.value,
3463
+ "pagination-type": "offset",
3464
+ "preferences-storage-key": "kong-ui-entities-redis-configuration-list",
3465
+ query: W.value,
3466
+ "table-headers": ie,
3467
+ onClearSearchInput: Te,
3468
+ "onClick:row": R[1] || (R[1] = (L) => Se(L)),
3469
+ onSort: ze
3470
+ }, {
3471
+ "toolbar-filter": S(() => [
3472
+ g(i(hn), {
3473
+ modelValue: W.value,
3474
+ "onUpdate:modelValue": R[0] || (R[0] = (L) => W.value = L),
3475
+ config: X.value
3476
+ }, null, 8, ["modelValue", "config"])
3477
+ ]),
3478
+ "toolbar-button": S(() => [
3479
+ (O(), N(Ei, {
3480
+ disabled: !e.useActionOutside,
3481
+ to: "#kong-ui-app-page-header-action-button"
3482
+ }, [
3483
+ g(i(Ke), { "auth-function": e.canCreate }, {
3484
+ default: S(() => [
3485
+ g(f, {
3486
+ appearance: "primary",
3487
+ "data-testid": "toolbar-add-redis-configuration",
3488
+ size: "large",
3489
+ to: e.config.createRoute
3490
+ }, {
3491
+ default: S(() => [
3492
+ g(i(yt)),
3493
+ le(" " + B(i(d)("actions.create")), 1)
3494
+ ]),
3495
+ _: 1
3496
+ }, 8, ["to"])
3497
+ ]),
3498
+ _: 1
3499
+ }, 8, ["auth-function"])
3500
+ ], 8, ["disabled"]))
3501
+ ]),
3502
+ name: S(({ rowValue: L }) => [
3503
+ K("b", null, B(L ?? "-"), 1)
3504
+ ]),
3505
+ type: S(({ row: L }) => [
3506
+ le(B(H(L)), 1)
3507
+ ]),
3508
+ tags: S(({ rowValue: L }) => [
3509
+ g(i(Pi), { tags: L }, null, 8, ["tags"])
3510
+ ]),
3511
+ plugins: S(({ row: L }) => [
3512
+ g(gd, {
3513
+ config: e.config,
3514
+ "partial-id": L.id,
3515
+ onClick: Si((st) => ve(L.id), ["stop"])
3516
+ }, null, 8, ["config", "partial-id", "onClick"])
3517
+ ]),
3518
+ actions: S(({ row: L }) => [
3519
+ g(mi, null, {
3520
+ default: S(({ copyToClipboard: st }) => [
3521
+ g(D, {
3522
+ "data-testid": "action-entity-copy-id",
3523
+ onClick: (Nd) => lt(L, st)
3524
+ }, {
3525
+ default: S(() => [
3526
+ le(B(i(d)("actions.copy_id")), 1)
3527
+ ]),
3528
+ _: 1
3529
+ }, 8, ["onClick"])
3530
+ ]),
3531
+ _: 2
3532
+ }, 1024),
3533
+ g(i(Ke), {
3534
+ "auth-function": () => e.canRetrieve(L)
3535
+ }, {
3536
+ default: S(() => [
3537
+ g(D, {
3538
+ "data-testid": "action-entity-view",
3539
+ "has-divider": "",
3540
+ item: we(L.id)
3541
+ }, null, 8, ["item"])
3542
+ ]),
3543
+ _: 2
3544
+ }, 1032, ["auth-function"]),
3545
+ g(i(Ke), {
3546
+ "auth-function": () => e.canEdit(L)
3547
+ }, {
3548
+ default: S(() => [
3549
+ g(D, {
3550
+ "data-testid": "action-entity-edit",
3551
+ item: re(L.id)
3552
+ }, null, 8, ["item"])
3553
+ ]),
3554
+ _: 2
3555
+ }, 1032, ["auth-function"]),
3556
+ g(i(Ke), {
3557
+ "auth-function": () => e.canDelete(L)
3558
+ }, {
3559
+ default: S(() => [
3560
+ g(D, {
3561
+ danger: "",
3562
+ "data-testid": "action-entity-delete",
3563
+ "has-divider": "",
3564
+ onClick: (st) => oe(L)
3565
+ }, {
3566
+ default: S(() => [
3567
+ le(B(i(d)("actions.delete")), 1)
3568
+ ]),
3569
+ _: 1
3570
+ }, 8, ["onClick"])
3571
+ ]),
3572
+ _: 2
3573
+ }, 1032, ["auth-function"])
3574
+ ]),
3575
+ "empty-state": S(() => [
3576
+ g(_i, {
3577
+ "action-button-text": i(d)("list.action"),
3578
+ "action-button-visible": Ee.value,
3579
+ "data-testid": "redis-entity-empty-state",
3580
+ features: [
3581
+ {
3582
+ key: "feature-1",
3583
+ title: i(d)("list.empty_state.feature_1.title"),
3584
+ description: i(d)("list.empty_state.feature_1.description")
3585
+ },
3586
+ {
3587
+ key: "feature-2",
3588
+ title: i(d)("list.empty_state.feature_2.title"),
3589
+ description: i(d)("list.empty_state.feature_2.description")
3590
+ }
3591
+ ],
3592
+ "icon-background": "",
3593
+ message: i(d)("list.empty_state.description"),
3594
+ title: i(d)("redis.title"),
3595
+ onClickAction: y
3596
+ }, {
3597
+ icon: S(() => [
3598
+ g(i(Ni), { decorative: "" })
3599
+ ]),
3600
+ "feature-icon-feature-1": S(() => [
3601
+ g(i(Ui))
3602
+ ]),
3603
+ "feature-icon-feature-2": S(() => [
3604
+ g(i(Li))
3605
+ ]),
3606
+ "action-button-icon": S(() => [
3607
+ g(i(yt), { decorative: "" })
3608
+ ]),
3609
+ _: 1
3610
+ }, 8, ["action-button-text", "action-button-visible", "features", "message", "title"])
3611
+ ]),
3612
+ _: 1
3613
+ }, 8, ["cache-identifier", "disable-sorting", "empty-state-options", "error-message", "fetcher-cache-key", "query"]),
3614
+ g(kd, {
3615
+ visible: m.value,
3616
+ onClose: R[2] || (R[2] = (L) => m.value = !1)
3617
+ }, null, 8, ["visible"]),
3618
+ g(i($i), {
3619
+ "action-pending": v.value,
3620
+ description: i(d)("delete.description"),
3621
+ "entity-name": l.value && (l.value.name || l.value.id),
3622
+ "entity-type": i(Vi).RedisConfiguration,
3623
+ error: T.value,
3624
+ "need-confirmation": !0,
3625
+ title: i(d)("delete.title"),
3626
+ visible: u.value,
3627
+ onCancel: xe,
3628
+ onProceed: at
3629
+ }, null, 8, ["action-pending", "description", "entity-name", "entity-type", "error", "title", "visible"]),
3630
+ g(Cd, {
3631
+ config: e.config,
3632
+ "redis-configuration-id": c.value,
3633
+ visible: a.value,
3634
+ onCancel: R[3] || (R[3] = (L) => a.value = !1),
3635
+ onProceed: R[4] || (R[4] = (L) => a.value = !1),
3636
+ onViewPlugin: R[5] || (R[5] = (L) => n("click:plugin", L))
3637
+ }, null, 8, ["config", "redis-configuration-id", "visible"])
3638
+ ]);
3639
+ };
3640
+ }
3641
+ }), Xd = /* @__PURE__ */ te(Rd, [["__scopeId", "data-v-4e5be541"]]), xd = { class: "kong-ui-consumer-group-entity-config-card" }, eu = /* @__PURE__ */ Y({
3642
+ __name: "RedisConfigurationConfigCard",
3643
+ props: {
3644
+ /** The base konnect or kongManger config. Pass additional config props in the shared entity component as needed. */
3645
+ config: {
3646
+ type: Object,
3647
+ required: !0,
3648
+ validator: (e) => !(!e || !["konnect", "kongManager"].includes(e == null ? void 0 : e.app) || e.app === "konnect" && !e.controlPlaneId || e.app === "kongManager" && typeof e.workspace != "string" || !e.entityId)
3649
+ },
3650
+ /**
3651
+ * External link for documentation that determines visibility of Documentation button
3652
+ */
3653
+ configCardDoc: {
3654
+ type: String,
3655
+ default: "",
3656
+ required: !1
3657
+ },
3658
+ /**
3659
+ * Control visibility of card title content
3660
+ */
3661
+ hideTitle: {
3662
+ type: Boolean,
3663
+ default: !0
3664
+ }
3665
+ },
3666
+ emits: ["loading", "fetch:error", "fetch:success"],
3667
+ setup(e, { emit: t }) {
3668
+ const n = e, o = t, { i18n: { t: r } } = ye.useI18n(), a = z(() => Me.form[n.config.app].edit), c = x($e), p = (_) => {
3669
+ c.value = Be(_), o("fetch:success", _);
3670
+ }, l = z(() => {
3671
+ const _ = c.value === w.HOST_PORT_CE ? r("form.options.type.suffix_open_source") : r("form.options.type.suffix_enterprise");
3672
+ let E = "";
3673
+ switch (c.value) {
3674
+ case w.HOST_PORT_CE:
3675
+ E = r("form.options.type.host_port");
3676
+ break;
3677
+ case w.HOST_PORT_EE:
3678
+ E = r("form.options.type.host_port");
3679
+ break;
3680
+ case w.CLUSTER:
3681
+ E = r("form.options.type.cluster");
3682
+ break;
3683
+ case w.SENTINEL:
3684
+ E = r("form.options.type.sentinel");
3685
+ break;
3686
+ }
3687
+ return `${E}${_}`;
3688
+ }), u = (_) => ({
3689
+ id: _.id,
3690
+ name: _.name,
3691
+ tags: _.tags,
3692
+ created_at: _.created_at,
3693
+ updated_at: _.updated_at,
3694
+ type: _.type,
3695
+ ..._.config,
3696
+ ...n.config.cloudAuthAvailable ? { cloud_authentication: Vt(_.config.cloud_authentication) } : null
3697
+ }), v = (_, E) => {
3698
+ if (!_ || Object.keys(_).length === 0)
3699
+ return {};
3700
+ const { id: s, name: A, created_at: k, updated_at: d, type: I, tags: P, ...W } = _;
3701
+ return E === "terraform" ? {
3702
+ [I.replaceAll("-", "_")]: {
3703
+ id: s,
3704
+ name: A,
3705
+ tags: P,
3706
+ created_at: k,
3707
+ updated_at: d,
3708
+ config: W
3709
+ }
3710
+ } : {
3711
+ id: s,
3712
+ name: A,
3713
+ tags: P,
3714
+ created_at: k,
3715
+ updated_at: d,
3716
+ type: I,
3717
+ config: W
3718
+ };
3719
+ }, T = {
3720
+ id: {},
3721
+ name: {
3722
+ type: M.Text,
3723
+ section: V.Basic,
3724
+ label: r("form.fields.name.label")
3725
+ },
3726
+ tags: {
3727
+ type: M.BadgeTag,
3728
+ section: V.Basic,
3729
+ label: r("form.fields.tags.label"),
3730
+ tooltip: r("form.fields.tags.tooltip")
3731
+ },
3732
+ updated_at: {},
3733
+ created_at: {},
3734
+ type: {
3735
+ type: M.Text,
3736
+ section: V.Basic,
3737
+ label: r("form.fields.type.label")
3738
+ },
3739
+ cluster_max_redirections: {
3740
+ type: M.Text,
3741
+ section: V.Basic,
3742
+ tooltip: r("form.fields.cluster_max_redirections.tooltip"),
3743
+ label: r("form.fields.cluster_max_redirections.label")
3744
+ },
3745
+ cluster_nodes: {
3746
+ type: M.JsonArray,
3747
+ section: V.Basic,
3748
+ label: r("form.fields.cluster_nodes.title"),
3749
+ tooltip: r("form.fields.cluster_nodes.tooltip")
3750
+ },
3751
+ connect_timeout: {
3752
+ type: M.Text,
3753
+ section: V.Basic,
3754
+ label: r("form.fields.connect_timeout.label"),
3755
+ tooltip: r("form.fields.connect_timeout.tooltip")
3756
+ },
3757
+ connection_is_proxied: {
3758
+ type: M.Text,
3759
+ section: V.Basic,
3760
+ label: r("form.fields.connection_is_proxied.label"),
3761
+ tooltip: r("form.fields.connection_is_proxied.tooltip")
3762
+ },
3763
+ database: {
3764
+ type: M.Text,
3765
+ section: V.Basic,
3766
+ label: r("form.fields.database.label"),
3767
+ tooltip: r("form.fields.database.tooltip")
3768
+ },
3769
+ host: {
3770
+ type: M.Text,
3771
+ section: V.Basic,
3772
+ label: r("form.fields.host.label"),
3773
+ tooltip: r("form.fields.host.tooltip")
3774
+ },
3775
+ keepalive_backlog: {
3776
+ type: M.Text,
3777
+ section: V.Basic,
3778
+ label: r("form.fields.keepalive_backlog.label"),
3779
+ tooltip: r("form.fields.keepalive_backlog.tooltip")
3780
+ },
3781
+ keepalive_pool_size: {
3782
+ type: M.Text,
3783
+ section: V.Basic,
3784
+ label: r("form.fields.keepalive_pool_size.label"),
3785
+ tooltip: r("form.fields.keepalive_pool_size.tooltip")
3786
+ },
3787
+ password: {
3788
+ type: M.Redacted,
3789
+ section: V.Basic,
3790
+ label: r("form.fields.password.label"),
3791
+ tooltip: r("form.fields.password.tooltip")
3792
+ },
3793
+ port: {
3794
+ type: M.Text,
3795
+ section: V.Basic,
3796
+ label: r("form.fields.port.label"),
3797
+ tooltip: r("form.fields.port.tooltip")
3798
+ },
3799
+ read_timeout: {
3800
+ type: M.Text,
3801
+ section: V.Basic,
3802
+ label: r("form.fields.read_timeout.label"),
3803
+ tooltip: r("form.fields.read_timeout.tooltip")
3804
+ },
3805
+ send_timeout: {
3806
+ type: M.Text,
3807
+ section: V.Basic,
3808
+ label: r("form.fields.send_timeout.label"),
3809
+ tooltip: r("form.fields.send_timeout.tooltip")
3810
+ },
3811
+ sentinel_master: {
3812
+ type: M.Text,
3813
+ section: V.Basic,
3814
+ label: r("form.fields.sentinel_master.label"),
3815
+ tooltip: r("form.fields.sentinel_master.tooltip")
3816
+ },
3817
+ sentinel_nodes: {
3818
+ type: M.JsonArray,
3819
+ section: V.Basic,
3820
+ tooltip: r("form.fields.sentinel_nodes.tooltip")
3821
+ },
3822
+ sentinel_password: {
3823
+ type: M.Redacted,
3824
+ section: V.Basic,
3825
+ label: r("form.fields.sentinel_password.label"),
3826
+ tooltip: r("form.fields.sentinel_password.tooltip")
3827
+ },
3828
+ sentinel_role: {
3829
+ type: M.Text,
3830
+ section: V.Basic,
3831
+ label: r("form.fields.sentinel_role.label"),
3832
+ tooltip: r("form.fields.sentinel_role.tooltip")
3833
+ },
3834
+ sentinel_username: {
3835
+ type: M.Text,
3836
+ section: V.Basic,
3837
+ label: r("form.fields.sentinel_username.label"),
3838
+ tooltip: r("form.fields.sentinel_username.tooltip")
3839
+ },
3840
+ server_name: {
3841
+ type: M.Text,
3842
+ section: V.Basic,
3843
+ label: r("form.fields.server_name.label"),
3844
+ tooltip: r("form.fields.server_name.tooltip")
3845
+ },
3846
+ ssl_verify: {
3847
+ type: M.Text,
3848
+ section: V.Basic,
3849
+ label: r("form.fields.ssl_verify.label"),
3850
+ tooltip: r("form.fields.ssl_verify.tooltip")
3851
+ },
3852
+ ssl: {
3853
+ type: M.Text,
3854
+ section: V.Basic,
3855
+ label: r("form.fields.ssl.label"),
3856
+ tooltip: r("form.fields.ssl.tooltip")
3857
+ },
3858
+ timeout: {
3859
+ type: M.Text,
3860
+ section: V.Basic,
3861
+ label: r("form.fields.timeout.label"),
3862
+ tooltip: r("form.fields.timeout.tooltip")
3863
+ },
3864
+ username: {
3865
+ type: M.Text,
3866
+ section: V.Basic,
3867
+ label: r("form.fields.username.label"),
3868
+ tooltip: r("form.fields.username.tooltip")
3869
+ },
3870
+ cloud_authentication: {
3871
+ type: M.Json,
3872
+ section: V.Basic,
3873
+ label: r("form.sections.cloud_auth.title")
3874
+ }
3875
+ }, m = (_) => {
3876
+ const E = {}, s = Object.keys(T);
3877
+ for (const A of s)
3878
+ _.includes(A) ? E[A] = {
3879
+ ...T[A],
3880
+ order: _.indexOf(A) + 1
3881
+ } : E[A] = {
3882
+ ...T[A],
3883
+ hidden: !0
3884
+ };
3885
+ return E;
3886
+ }, b = z(() => {
3887
+ const _ = ["id", "name", "tags", "type", "updated_at", "created_at"];
3888
+ switch (c.value) {
3889
+ case w.HOST_PORT_CE:
3890
+ return m([
3891
+ ..._,
3892
+ "host",
3893
+ "port",
3894
+ "timeout",
3895
+ "database",
3896
+ "username",
3897
+ "password",
3898
+ "ssl",
3899
+ "ssl_verify",
3900
+ "server_name",
3901
+ "cloud_authentication"
3902
+ ]);
3903
+ case w.HOST_PORT_EE:
3904
+ return m([
3905
+ ..._,
3906
+ "host",
3907
+ "port",
3908
+ "connection_is_proxied",
3909
+ "database",
3910
+ "username",
3911
+ "password",
3912
+ "ssl",
3913
+ "ssl_verify",
3914
+ "server_name",
3915
+ "keepalive_backlog",
3916
+ "keepalive_pool_size",
3917
+ "read_timeout",
3918
+ "send_timeout",
3919
+ "connect_timeout",
3920
+ "cloud_authentication"
3921
+ ]);
3922
+ case w.CLUSTER:
3923
+ return m([
3924
+ ..._,
3925
+ "cluster_nodes",
3926
+ "cluster_max_redirections",
3927
+ "database",
3928
+ "username",
3929
+ "password",
3930
+ "ssl",
3931
+ "ssl_verify",
3932
+ "server_name",
3933
+ "keepalive_backlog",
3934
+ "keepalive_pool_size",
3935
+ "read_timeout",
3936
+ "send_timeout",
3937
+ "connect_timeout",
3938
+ "cloud_authentication"
3939
+ ]);
3940
+ case w.SENTINEL:
3941
+ return m([
3942
+ ..._,
3943
+ "sentinel_master",
3944
+ "sentinel_role",
3945
+ "sentinel_nodes",
3946
+ "sentinel_username",
3947
+ "sentinel_password",
3948
+ "database",
3949
+ "username",
3950
+ "password",
3951
+ "ssl",
3952
+ "ssl_verify",
3953
+ "server_name",
3954
+ "keepalive_backlog",
3955
+ "keepalive_pool_size",
3956
+ "read_timeout",
3957
+ "send_timeout",
3958
+ "connect_timeout"
3959
+ ]);
3960
+ default:
3961
+ throw new Error("Invalid Redis type");
3962
+ }
3963
+ });
3964
+ return (_, E) => (O(), J("div", xd, [
3965
+ g(i(Mi), {
3966
+ "code-block-record-formatter": v,
3967
+ config: e.config,
3968
+ "config-card-doc": e.configCardDoc,
3969
+ "config-schema": b.value,
3970
+ "entity-type": i(vn).Partial,
3971
+ "fetch-url": a.value,
3972
+ "hide-title": e.hideTitle,
3973
+ "record-resolver": u,
3974
+ "onFetch:error": E[0] || (E[0] = (s) => _.$emit("fetch:error", s)),
3975
+ "onFetch:success": p,
3976
+ onLoading: E[1] || (E[1] = (s) => _.$emit("loading", s))
3977
+ }, {
3978
+ type: S(() => [
3979
+ K("div", null, B(l.value), 1)
3980
+ ]),
3981
+ _: 1
3982
+ }, 8, ["config", "config-card-doc", "config-schema", "entity-type", "fetch-url", "hide-title"])
3983
+ ]));
3984
+ }
3985
+ }), Ad = "12px";
3986
+ function pi(e) {
3987
+ const {
3988
+ redisType: t = "redis-ce"
3989
+ } = e, n = "1000", o = bn(Cn), { i18n: { t: r } } = ot();
3990
+ if (!o)
3991
+ throw new Error("FORMS_CONFIG must be provided");
3992
+ const {
3993
+ debouncedQueryChange: a,
3994
+ loading: c,
3995
+ error: p,
3996
+ loadItems: l,
3997
+ results: u
3998
+ } = ji(o, Me.list[o.app], n, {
3999
+ fetchedItemsKey: "data",
4000
+ searchKeys: ["id", "name"]
4001
+ }), v = (m) => {
4002
+ switch (m) {
4003
+ case w.CLUSTER:
4004
+ return r("form.options.type.cluster");
4005
+ case w.HOST_PORT_CE:
4006
+ return r("form.options.type.host_port");
4007
+ case w.SENTINEL:
4008
+ return r("form.options.type.sentinel");
4009
+ case w.HOST_PORT_EE:
4010
+ return `${r("form.options.type.host_port")} (${r("form.options.type.enterprise")})`;
4011
+ }
4012
+ }, T = z(() => (u.value || []).filter((b) => b.type === "redis-ce" || b.type === "redis-ee").map((b) => ({ label: b.id, name: b.name, value: b.id, type: b.type, tag: v(Be(b)) })).filter((b) => b.type === t));
4013
+ return _n(() => {
4014
+ l();
4015
+ }), {
4016
+ items: T,
4017
+ loading: c,
4018
+ onQueryChange: a,
4019
+ error: p,
4020
+ loadItems: l
4021
+ };
4022
+ }
4023
+ const Pd = ["id"], $d = /* @__PURE__ */ Y({
4024
+ __name: "RedisConfigurationFormModal",
4025
+ props: {
4026
+ visible: { type: Boolean },
4027
+ partialType: { default: "redis-ee" }
4028
+ },
4029
+ emits: ["toast", "modal-close", "created"],
4030
+ setup(e, { emit: t }) {
4031
+ const n = t, { i18n: { t: o } } = ot(), r = bn(Cn), a = z(() => ({
4032
+ ...r,
4033
+ cancelRoute: void 0
4034
+ })), { getMessageFromError: c } = yn(), p = Ci(), l = z(() => {
4035
+ switch (e.partialType) {
4036
+ case Q.REDIS_CE:
4037
+ return Q.REDIS_EE;
4038
+ case Q.REDIS_EE:
4039
+ return Q.REDIS_CE;
4040
+ default:
4041
+ return;
4042
+ }
4043
+ }), u = x(!1), v = x(), T = (_) => {
4044
+ n("toast", {
4045
+ message: c(_),
4046
+ appearance: "danger"
4047
+ });
4048
+ }, m = (_) => {
4049
+ n("toast", {
4050
+ message: o("form.partial_created_success_message"),
4051
+ appearance: "success"
4052
+ }), b(), n("created", _);
4053
+ }, b = () => {
4054
+ v.value = void 0, n("modal-close"), jt(() => {
4055
+ u.value = !1;
4056
+ });
4057
+ };
4058
+ return Ce(
4059
+ () => e.visible,
4060
+ (_) => {
4061
+ _ && (u.value = !0, jt(() => {
4062
+ v.value = `#redis-modal-footer-${p}`;
4063
+ }));
4064
+ }
4065
+ ), (_, E) => {
4066
+ const s = $("KModal");
4067
+ return O(), N(s, {
4068
+ class: "plugin-redis-partial-form",
4069
+ "data-testid": "redis-partial-form-modal",
4070
+ "full-screen": "",
4071
+ title: i(o)("form.redis_partial_modal_title"),
4072
+ visible: u.value,
4073
+ onCancel: b
4074
+ }, {
4075
+ footer: S(() => [
4076
+ K("div", {
4077
+ id: `redis-modal-footer-${i(p)}`,
4078
+ class: "redis-modal-footer"
4079
+ }, null, 8, Pd)
4080
+ ]),
4081
+ default: S(() => [
4082
+ g(pd, {
4083
+ "action-teleport-target": v.value,
4084
+ config: a.value,
4085
+ "disabled-partial-type": l.value,
4086
+ "slidout-top-offset": 0,
4087
+ onCancel: b,
4088
+ onError: T,
4089
+ onUpdate: m
4090
+ }, null, 8, ["action-teleport-target", "config", "disabled-partial-type"])
4091
+ ]),
4092
+ _: 1
4093
+ }, 8, ["title", "visible"]);
4094
+ };
4095
+ }
4096
+ }), Vd = /* @__PURE__ */ te($d, [["__scopeId", "data-v-2d4dd952"]]), Md = { class: "selected-redis-config" }, jd = ["data-testid"], Dd = {
4097
+ class: "select-item-name",
4098
+ "data-testid": "selected-redis-config"
4099
+ }, Ld = {
4100
+ class: "empty-redis-config",
4101
+ "data-testid": "empty-redis-config"
4102
+ }, Ud = /* @__PURE__ */ Y({
4103
+ inheritAttrs: !1,
4104
+ __name: "RedisConfigurationSelector",
4105
+ props: {
4106
+ modelValue: {},
4107
+ redisType: { default: "redis-ee" },
4108
+ placeholder: {},
4109
+ emptyStateText: {},
4110
+ showCreateButton: { type: Boolean, default: !0 },
4111
+ createButtonText: {}
4112
+ },
4113
+ emits: ["update:modelValue", "change", "create-new", "error-change", "modal-close", "toast"],
4114
+ setup(e, { emit: t }) {
4115
+ const n = t, { i18n: { t: o } } = ot(), {
4116
+ items: r,
4117
+ loading: a,
4118
+ onQueryChange: c,
4119
+ error: p,
4120
+ loadItems: l
4121
+ } = pi({
4122
+ redisType: e.redisType
4123
+ }), u = x(!1), v = (_) => {
4124
+ const E = _ == null ? void 0 : _.value;
4125
+ n("update:modelValue", E), n("change", _);
4126
+ }, T = () => {
4127
+ u.value = !0;
4128
+ }, m = () => {
4129
+ u.value = !1, n("modal-close");
4130
+ }, b = (_) => {
4131
+ u.value = !1, l(), v({
4132
+ name: _.name,
4133
+ value: _.id,
4134
+ label: _.name
4135
+ });
4136
+ };
4137
+ return Ce(p, (_) => {
4138
+ n("error-change", _ ? new Error(String(_)) : null);
4139
+ }), (_, E) => {
4140
+ const s = $("KBadge"), A = $("KSelect");
4141
+ return O(), J(fe, null, [
4142
+ g(A, ki({
4143
+ class: "redis-config-select-trigger",
4144
+ "enable-filtering": "",
4145
+ "filter-function": () => !0,
4146
+ items: i(r),
4147
+ loading: i(a),
4148
+ "model-value": e.modelValue,
4149
+ placeholder: e.placeholder || i(o)("selector.placeholder")
4150
+ }, _.$attrs, {
4151
+ onChange: v,
4152
+ onQueryChange: i(c)
4153
+ }), gn({
4154
+ "selected-item-template": S(({ item: k }) => [
4155
+ K("div", Md, B(k.name), 1)
4156
+ ]),
4157
+ "item-template": S(({ item: k }) => [
4158
+ K("div", {
4159
+ class: "plugin-form-redis-configuration-dropdown-item",
4160
+ "data-testid": `redis-configuration-dropdown-item-${k.name}`
4161
+ }, [
4162
+ K("span", Dd, B(k.name), 1),
4163
+ g(s, {
4164
+ appearance: "info",
4165
+ class: "select-item-label"
4166
+ }, {
4167
+ default: S(() => [
4168
+ le(B(k.tag), 1)
4169
+ ]),
4170
+ _: 2
4171
+ }, 1024)
4172
+ ], 8, jd)
4173
+ ]),
4174
+ empty: S(() => [
4175
+ K("div", Ld, B(e.emptyStateText || i(o)("selector.empty_state")), 1)
4176
+ ]),
4177
+ _: 2
4178
+ }, [
4179
+ e.showCreateButton ? {
4180
+ name: "dropdown-footer-text",
4181
+ fn: S(() => [
4182
+ K("div", {
4183
+ class: "new-redis-config-area",
4184
+ "data-testid": "new-redis-config-area",
4185
+ onClick: T
4186
+ }, [
4187
+ g(i(yt), { size: i(Ad) }, null, 8, ["size"]),
4188
+ K("span", null, B(e.createButtonText || i(o)("selector.create_new")), 1)
4189
+ ])
4190
+ ]),
4191
+ key: "0"
4192
+ } : void 0
4193
+ ]), 1040, ["items", "loading", "model-value", "placeholder", "onQueryChange"]),
4194
+ g(Vd, {
4195
+ "partial-type": e.redisType,
4196
+ visible: u.value,
4197
+ onCreated: b,
4198
+ onModalClose: m,
4199
+ onToast: E[0] || (E[0] = (k) => n("toast", k))
4200
+ }, null, 8, ["partial-type", "visible"])
4201
+ ], 64);
4202
+ };
4203
+ }
4204
+ }), tu = /* @__PURE__ */ te(Ud, [["__scopeId", "data-v-b5ce060c"]]), nu = {
4205
+ useLinkedPlugins: fi,
4206
+ useLinkedPluginsFetcher: Fe,
4207
+ useRedisConfigurationSelector: pi
4208
+ };
4209
+ export {
4210
+ q as AuthProvider,
4211
+ kd as DeleteWarningModal,
4212
+ Td as LinkedPlugins,
4213
+ Q as PartialType,
4214
+ eu as RedisConfigurationConfigCard,
4215
+ pd as RedisConfigurationForm,
4216
+ Vd as RedisConfigurationFormModal,
4217
+ Xd as RedisConfigurationList,
4218
+ tu as RedisConfigurationSelector,
4219
+ w as RedisType,
4220
+ nu as composables,
4221
+ Qd as constants,
4222
+ Yd as helpers
4223
+ };