@gravitee/gamma-lib-observability 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INTEGRATION.md +41 -4
- package/USAGE_GUIDE.md +4 -4
- package/dist/data-sources/filter-serialization.d.ts +14 -0
- package/dist/data-sources/filter-serialization.d.ts.map +1 -0
- package/dist/data-sources/http-data-source.d.ts +2 -17
- package/dist/data-sources/http-data-source.d.ts.map +1 -1
- package/dist/data-sources/http-filter-source.d.ts +2 -1
- package/dist/data-sources/http-filter-source.d.ts.map +1 -1
- package/dist/data-sources/http-logs-source.d.ts +11 -0
- package/dist/data-sources/http-logs-source.d.ts.map +1 -0
- package/dist/data-sources/http-utils.d.ts +8 -0
- package/dist/data-sources/http-utils.d.ts.map +1 -0
- package/dist/data-sources/index.d.ts +1 -0
- package/dist/data-sources/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +795 -707
- package/dist/providers/http-provider.d.ts +41 -0
- package/dist/providers/http-provider.d.ts.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/routing/ObservabilityRoutes.d.ts +3 -1
- package/dist/routing/ObservabilityRoutes.d.ts.map +1 -1
- package/dist/routing/types.d.ts +9 -0
- package/dist/routing/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -71,30 +71,42 @@ function tn() {
|
|
|
71
71
|
return w($t);
|
|
72
72
|
}
|
|
73
73
|
//#endregion
|
|
74
|
+
//#region src/providers/http-provider.tsx
|
|
75
|
+
var nn = y(void 0);
|
|
76
|
+
function rn({ options: e, children: t }) {
|
|
77
|
+
return /* @__PURE__ */ j(nn.Provider, {
|
|
78
|
+
value: e,
|
|
79
|
+
children: t
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function an() {
|
|
83
|
+
return w(nn);
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
74
86
|
//#region src/hooks/constants.ts
|
|
75
87
|
var W = 3e4;
|
|
76
88
|
//#endregion
|
|
77
89
|
//#region src/hooks/query-keys.ts
|
|
78
|
-
function
|
|
90
|
+
function on(e) {
|
|
79
91
|
let t = { name: e.name };
|
|
80
|
-
return e.measures && (t.measures = e.measures.slice().sort()), e.filters && (t.filters =
|
|
92
|
+
return e.measures && (t.measures = e.measures.slice().sort()), e.filters && (t.filters = cn(e.filters)), "sorts" in e && e.sorts && (t.sorts = e.sorts), t;
|
|
81
93
|
}
|
|
82
|
-
function
|
|
83
|
-
return e.map(
|
|
94
|
+
function sn(e) {
|
|
95
|
+
return e.map(on).sort((e, t) => e.name.localeCompare(t.name));
|
|
84
96
|
}
|
|
85
|
-
function
|
|
97
|
+
function cn(e) {
|
|
86
98
|
return !e || e.length === 0 ? e : e.slice().sort((e, t) => e.field.localeCompare(t.field) || e.operator.localeCompare(t.operator));
|
|
87
99
|
}
|
|
88
|
-
var
|
|
100
|
+
var G = {
|
|
89
101
|
all: ["observability"],
|
|
90
102
|
timeSeries: (e, t, n, r, i, a) => [
|
|
91
103
|
"observability",
|
|
92
104
|
"timeSeries",
|
|
93
105
|
{
|
|
94
|
-
metrics:
|
|
106
|
+
metrics: sn(e),
|
|
95
107
|
timeRange: t,
|
|
96
108
|
interval: n,
|
|
97
|
-
filters:
|
|
109
|
+
filters: cn(r),
|
|
98
110
|
by: i,
|
|
99
111
|
limit: a
|
|
100
112
|
}
|
|
@@ -105,7 +117,7 @@ var K = {
|
|
|
105
117
|
{
|
|
106
118
|
field: e,
|
|
107
119
|
timeRange: t,
|
|
108
|
-
filters:
|
|
120
|
+
filters: cn(n),
|
|
109
121
|
limit: r,
|
|
110
122
|
search: i
|
|
111
123
|
}
|
|
@@ -114,9 +126,9 @@ var K = {
|
|
|
114
126
|
"observability",
|
|
115
127
|
"measures",
|
|
116
128
|
{
|
|
117
|
-
metrics:
|
|
129
|
+
metrics: sn(e),
|
|
118
130
|
timeRange: t,
|
|
119
|
-
filters:
|
|
131
|
+
filters: cn(n)
|
|
120
132
|
}
|
|
121
133
|
],
|
|
122
134
|
logs: (e, t, n) => [
|
|
@@ -124,7 +136,7 @@ var K = {
|
|
|
124
136
|
"logs",
|
|
125
137
|
{
|
|
126
138
|
timeRange: e,
|
|
127
|
-
filters:
|
|
139
|
+
filters: cn(t),
|
|
128
140
|
search: n
|
|
129
141
|
}
|
|
130
142
|
],
|
|
@@ -138,7 +150,7 @@ var K = {
|
|
|
138
150
|
"traces",
|
|
139
151
|
{
|
|
140
152
|
timeRange: e,
|
|
141
|
-
filters:
|
|
153
|
+
filters: cn(t),
|
|
142
154
|
serviceName: n
|
|
143
155
|
}
|
|
144
156
|
],
|
|
@@ -155,30 +167,30 @@ var K = {
|
|
|
155
167
|
};
|
|
156
168
|
//#endregion
|
|
157
169
|
//#region src/dashboards/merge-filters.ts
|
|
158
|
-
function
|
|
170
|
+
function K(...e) {
|
|
159
171
|
let t = /* @__PURE__ */ new Map();
|
|
160
172
|
for (let n of e) if (n) for (let e of n) t.set(e.field, e);
|
|
161
173
|
return Array.from(t.values());
|
|
162
174
|
}
|
|
163
175
|
//#endregion
|
|
164
176
|
//#region src/providers/ContextFiltersProvider.tsx
|
|
165
|
-
var
|
|
166
|
-
function
|
|
177
|
+
var ln = y([]);
|
|
178
|
+
function un({ filters: e, children: t }) {
|
|
167
179
|
let n = D(() => e, [e]);
|
|
168
|
-
return /* @__PURE__ */ j(
|
|
180
|
+
return /* @__PURE__ */ j(ln.Provider, {
|
|
169
181
|
value: n,
|
|
170
182
|
children: t
|
|
171
183
|
});
|
|
172
184
|
}
|
|
173
|
-
function
|
|
174
|
-
return w(
|
|
185
|
+
function q() {
|
|
186
|
+
return w(ln);
|
|
175
187
|
}
|
|
176
188
|
//#endregion
|
|
177
189
|
//#region src/hooks/use-facets-query.ts
|
|
178
|
-
function
|
|
179
|
-
let n = m(), r = q(
|
|
190
|
+
function dn(e, t) {
|
|
191
|
+
let n = m(), r = K(q(), e.filters);
|
|
180
192
|
return N({
|
|
181
|
-
queryKey:
|
|
193
|
+
queryKey: G.facets(e.field, e.timeRange, r, e.limit, e.search),
|
|
182
194
|
queryFn: ({ signal: t }) => n.fetchFacets({
|
|
183
195
|
field: e.field,
|
|
184
196
|
timeRange: e.timeRange,
|
|
@@ -194,9 +206,9 @@ function sn(e, t) {
|
|
|
194
206
|
}
|
|
195
207
|
//#endregion
|
|
196
208
|
//#region src/hooks/use-log-detail-query.ts
|
|
197
|
-
function
|
|
209
|
+
function fn(e) {
|
|
198
210
|
let t = g(), n = typeof t.getById == "function", r = N({
|
|
199
|
-
queryKey:
|
|
211
|
+
queryKey: G.logDetail(e.id ?? ""),
|
|
200
212
|
queryFn: ({ signal: n }) => t.getById(e.id, n),
|
|
201
213
|
staleTime: W,
|
|
202
214
|
enabled: n && !!e.id && e.enabled !== !1
|
|
@@ -213,10 +225,10 @@ function cn(e) {
|
|
|
213
225
|
}
|
|
214
226
|
//#endregion
|
|
215
227
|
//#region src/hooks/use-logs-query.ts
|
|
216
|
-
function
|
|
217
|
-
let n = g(), r = q(
|
|
228
|
+
function pn(e, t) {
|
|
229
|
+
let n = g(), r = K(q(), e.filters);
|
|
218
230
|
return N({
|
|
219
|
-
queryKey:
|
|
231
|
+
queryKey: G.logs(e.timeRange, r, e.search),
|
|
220
232
|
queryFn: ({ signal: t }) => n.fetchLogs({
|
|
221
233
|
timeRange: e.timeRange,
|
|
222
234
|
filters: r,
|
|
@@ -230,9 +242,9 @@ function ln(e, t) {
|
|
|
230
242
|
}
|
|
231
243
|
//#endregion
|
|
232
244
|
//#region src/hooks/use-logs-paged-query.ts
|
|
233
|
-
var
|
|
234
|
-
function
|
|
235
|
-
let { timeRange: t, filters: n, search: r, pageSize: i =
|
|
245
|
+
var mn = 25;
|
|
246
|
+
function hn(e) {
|
|
247
|
+
let { timeRange: t, filters: n, search: r, pageSize: i = mn, enabled: a } = e, o = g(), s = K(q(), n), [c, l] = k(1), [u, d] = k(i), f = G.logs(t, s, r), p = JSON.stringify(f), m = O(p);
|
|
236
248
|
T(() => {
|
|
237
249
|
m.current !== p && (m.current = p, l(1));
|
|
238
250
|
}, [p]);
|
|
@@ -272,10 +284,10 @@ function dn(e) {
|
|
|
272
284
|
}
|
|
273
285
|
//#endregion
|
|
274
286
|
//#region src/hooks/use-measures-query.ts
|
|
275
|
-
function
|
|
276
|
-
let n = m(), r = q(
|
|
287
|
+
function gn(e, t) {
|
|
288
|
+
let n = m(), r = K(q(), e.filters);
|
|
277
289
|
return N({
|
|
278
|
-
queryKey:
|
|
290
|
+
queryKey: G.measures(e.metrics, e.timeRange, r),
|
|
279
291
|
queryFn: ({ signal: t }) => n.fetchMeasures({
|
|
280
292
|
metrics: e.metrics,
|
|
281
293
|
timeRange: e.timeRange,
|
|
@@ -290,12 +302,12 @@ function fn(e, t) {
|
|
|
290
302
|
}
|
|
291
303
|
//#endregion
|
|
292
304
|
//#region src/hooks/use-resolve-filter-labels.ts
|
|
293
|
-
function
|
|
305
|
+
function _n(e, t) {
|
|
294
306
|
let n = D(() => e.filter((e) => e.value.length > 0 && !e.valueLabels?.length), [e]), r = D(() => n.map((e) => ({
|
|
295
307
|
filterName: e.field,
|
|
296
308
|
ids: e.value
|
|
297
309
|
})), [n]), i = D(() => JSON.stringify(r), [r]), { data: a } = N({
|
|
298
|
-
queryKey:
|
|
310
|
+
queryKey: G.filterLabels(i),
|
|
299
311
|
queryFn: ({ signal: e }) => t.resolveLabels(r, e),
|
|
300
312
|
enabled: !!t && r.length > 0,
|
|
301
313
|
staleTime: 300 * 1e3
|
|
@@ -317,10 +329,10 @@ function pn(e, t) {
|
|
|
317
329
|
}
|
|
318
330
|
//#endregion
|
|
319
331
|
//#region src/hooks/use-time-series-query.ts
|
|
320
|
-
function
|
|
321
|
-
let n = m(), r = q(
|
|
332
|
+
function vn(e, t) {
|
|
333
|
+
let n = m(), r = K(q(), e.filters);
|
|
322
334
|
return N({
|
|
323
|
-
queryKey:
|
|
335
|
+
queryKey: G.timeSeries(e.metrics, e.timeRange, e.interval, r, e.by, e.limit),
|
|
324
336
|
queryFn: ({ signal: t }) => n.fetchTimeSeries({
|
|
325
337
|
metrics: e.metrics,
|
|
326
338
|
timeRange: e.timeRange,
|
|
@@ -338,7 +350,7 @@ function mn(e, t) {
|
|
|
338
350
|
}
|
|
339
351
|
//#endregion
|
|
340
352
|
//#region src/filters/constants.ts
|
|
341
|
-
var
|
|
353
|
+
var yn = "5m", bn = [
|
|
342
354
|
{
|
|
343
355
|
label: "Last",
|
|
344
356
|
periods: [
|
|
@@ -371,7 +383,7 @@ var hn = "5m", gn = [
|
|
|
371
383
|
"previousQuarter"
|
|
372
384
|
]
|
|
373
385
|
}
|
|
374
|
-
],
|
|
386
|
+
], xn = bn.flatMap((e) => e.periods), Sn = {
|
|
375
387
|
"5m": "5 minutes",
|
|
376
388
|
"15m": "15 minutes",
|
|
377
389
|
"1h": "1 hour",
|
|
@@ -389,7 +401,7 @@ var hn = "5m", gn = [
|
|
|
389
401
|
previousWeek: "Week",
|
|
390
402
|
previousMonth: "Month",
|
|
391
403
|
previousQuarter: "Quarter"
|
|
392
|
-
},
|
|
404
|
+
}, Cn = {
|
|
393
405
|
"5m": "Last 5 minutes",
|
|
394
406
|
"15m": "Last 15 minutes",
|
|
395
407
|
"1h": "Last 1 hour",
|
|
@@ -407,22 +419,22 @@ var hn = "5m", gn = [
|
|
|
407
419
|
previousWeek: "Previous week",
|
|
408
420
|
previousMonth: "Previous month",
|
|
409
421
|
previousQuarter: "Previous quarter"
|
|
410
|
-
},
|
|
422
|
+
}, wn = new Set(xn), Tn = new Set(_), En = "1", Dn = {
|
|
411
423
|
type: "relative",
|
|
412
424
|
period: "5m"
|
|
413
425
|
};
|
|
414
|
-
function
|
|
426
|
+
function On(e) {
|
|
415
427
|
return btoa(e).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
416
428
|
}
|
|
417
|
-
function
|
|
429
|
+
function kn(e) {
|
|
418
430
|
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
419
431
|
return atob(t);
|
|
420
432
|
}
|
|
421
|
-
function
|
|
422
|
-
return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period ===
|
|
433
|
+
function An(e) {
|
|
434
|
+
return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period === Dn.period;
|
|
423
435
|
}
|
|
424
|
-
function
|
|
425
|
-
if (
|
|
436
|
+
function jn(e) {
|
|
437
|
+
if (An(e)) return null;
|
|
426
438
|
let t = {
|
|
427
439
|
c: e.conditions.map(({ field: e, label: t, operator: n, value: r }) => ({
|
|
428
440
|
field: e,
|
|
@@ -433,19 +445,19 @@ function Dn(e) {
|
|
|
433
445
|
t: e.timeRange
|
|
434
446
|
};
|
|
435
447
|
return {
|
|
436
|
-
q:
|
|
448
|
+
q: On(JSON.stringify(t)),
|
|
437
449
|
v: "1"
|
|
438
450
|
};
|
|
439
451
|
}
|
|
440
|
-
function
|
|
452
|
+
function Mn(e, t) {
|
|
441
453
|
let n = {
|
|
442
454
|
conditions: [],
|
|
443
|
-
timeRange:
|
|
455
|
+
timeRange: Dn
|
|
444
456
|
};
|
|
445
457
|
if (!e || !t || t !== "1") return n;
|
|
446
458
|
try {
|
|
447
|
-
let t =
|
|
448
|
-
return
|
|
459
|
+
let t = kn(e), r = JSON.parse(t);
|
|
460
|
+
return Fn(r) ? {
|
|
449
461
|
conditions: r.c.map(({ field: e, label: t, operator: n, value: r }) => ({
|
|
450
462
|
field: e,
|
|
451
463
|
label: t,
|
|
@@ -458,33 +470,33 @@ function On(e, t) {
|
|
|
458
470
|
return n;
|
|
459
471
|
}
|
|
460
472
|
}
|
|
461
|
-
function
|
|
473
|
+
function Nn(e) {
|
|
462
474
|
if (typeof e != "object" || !e) return !1;
|
|
463
475
|
let t = e;
|
|
464
|
-
return !(typeof t.field != "string" || t.field.length === 0 || typeof t.label != "string" || typeof t.operator != "string" || !
|
|
476
|
+
return !(typeof t.field != "string" || t.field.length === 0 || typeof t.label != "string" || typeof t.operator != "string" || !Tn.has(t.operator) || !Array.isArray(t.value) || !t.value.every((e) => typeof e == "string"));
|
|
465
477
|
}
|
|
466
|
-
function
|
|
478
|
+
function Pn(e) {
|
|
467
479
|
if (typeof e != "object" || !e) return !1;
|
|
468
480
|
let t = e;
|
|
469
|
-
return t.type === "relative" ? typeof t.period == "string" &&
|
|
481
|
+
return t.type === "relative" ? typeof t.period == "string" && wn.has(t.period) : t.type === "absolute" ? typeof t.from == "number" && Number.isFinite(t.from) && typeof t.to == "number" && Number.isFinite(t.to) : !1;
|
|
470
482
|
}
|
|
471
|
-
function
|
|
483
|
+
function Fn(e) {
|
|
472
484
|
if (typeof e != "object" || !e) return !1;
|
|
473
485
|
let t = e;
|
|
474
|
-
return !Array.isArray(t.c) || !t.c.every(
|
|
486
|
+
return !Array.isArray(t.c) || !t.c.every(Nn) ? !1 : Pn(t.t);
|
|
475
487
|
}
|
|
476
488
|
//#endregion
|
|
477
489
|
//#region src/filters/TimeRangePicker.tsx
|
|
478
|
-
function
|
|
490
|
+
function In(e) {
|
|
479
491
|
return `${String(e.getHours()).padStart(2, "0")}:${String(e.getMinutes()).padStart(2, "0")}`;
|
|
480
492
|
}
|
|
481
|
-
function
|
|
493
|
+
function Ln() {
|
|
482
494
|
let e = -(/* @__PURE__ */ new Date()).getTimezoneOffset();
|
|
483
495
|
return `GMT${e >= 0 ? "+" : "-"}${Math.floor(Math.abs(e) / 60)}`;
|
|
484
496
|
}
|
|
485
|
-
function
|
|
486
|
-
let n = t ? ` (${
|
|
487
|
-
if (e.type === "relative") return `${
|
|
497
|
+
function Rn(e, t) {
|
|
498
|
+
let n = t ? ` (${Ln()})` : "";
|
|
499
|
+
if (e.type === "relative") return `${Cn[e.period]}${n}`;
|
|
488
500
|
let r = new Date(e.from), i = new Date(e.to), a = new Intl.DateTimeFormat(void 0, {
|
|
489
501
|
month: "short",
|
|
490
502
|
day: "numeric",
|
|
@@ -496,7 +508,7 @@ function Pn(e, t) {
|
|
|
496
508
|
});
|
|
497
509
|
return `${a.format(r)} @ ${o.format(r)} - ${a.format(i)} @ ${o.format(i)}${n}`;
|
|
498
510
|
}
|
|
499
|
-
function
|
|
511
|
+
function zn(e) {
|
|
500
512
|
return e ? e.toLocaleDateString(void 0, {
|
|
501
513
|
weekday: "short",
|
|
502
514
|
month: "short",
|
|
@@ -504,20 +516,20 @@ function Fn(e) {
|
|
|
504
516
|
year: "numeric"
|
|
505
517
|
}) : "—";
|
|
506
518
|
}
|
|
507
|
-
function
|
|
519
|
+
function Bn(e, t) {
|
|
508
520
|
if (!e) return;
|
|
509
521
|
let [n, r] = t.split(":").map(Number), i = new Date(e);
|
|
510
522
|
return i.setHours(n ?? 0, r ?? 0, 0, 0), i.getTime();
|
|
511
523
|
}
|
|
512
|
-
function
|
|
513
|
-
let a = E(), o = `${a}-from`, s = `${a}-to`, [c, l] = k(!1), [u, d] = k("relative"), [f, p] = k(void 0), [m, h] = k("00:00"), [g, _] = k("23:59"), v =
|
|
524
|
+
function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, className: i }) {
|
|
525
|
+
let a = E(), o = `${a}-from`, s = `${a}-to`, [c, l] = k(!1), [u, d] = k("relative"), [f, p] = k(void 0), [m, h] = k("00:00"), [g, _] = k("23:59"), v = Bn(f?.from, m), y = Bn(f?.to, g), b = v !== void 0 && y !== void 0 && v >= y, x = v !== void 0 && y !== void 0 && !b;
|
|
514
526
|
function S(t) {
|
|
515
527
|
if (l(t), t && (d(e.type === "absolute" ? "custom" : "relative"), e.type === "absolute")) {
|
|
516
528
|
let t = new Date(e.from), n = new Date(e.to);
|
|
517
529
|
p({
|
|
518
530
|
from: t,
|
|
519
531
|
to: n
|
|
520
|
-
}), h(
|
|
532
|
+
}), h(In(t)), _(In(n));
|
|
521
533
|
}
|
|
522
534
|
}
|
|
523
535
|
function C(e) {
|
|
@@ -548,7 +560,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
548
560
|
"aria-haspopup": "dialog",
|
|
549
561
|
"aria-expanded": c,
|
|
550
562
|
className: V("justify-between gap-2 font-normal", i),
|
|
551
|
-
children: [
|
|
563
|
+
children: [Rn(e, r), /* @__PURE__ */ j(Qe, {
|
|
552
564
|
"aria-hidden": "true",
|
|
553
565
|
className: "size-4 shrink-0"
|
|
554
566
|
})]
|
|
@@ -579,7 +591,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
579
591
|
className: "flex flex-col gap-4",
|
|
580
592
|
role: "listbox",
|
|
581
593
|
"aria-label": "Preset time ranges",
|
|
582
|
-
children:
|
|
594
|
+
children: bn.map((t) => /* @__PURE__ */ M("div", {
|
|
583
595
|
className: "flex flex-col gap-2",
|
|
584
596
|
children: [/* @__PURE__ */ j("p", {
|
|
585
597
|
className: "text-xs font-medium text-muted-foreground",
|
|
@@ -590,12 +602,12 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
590
602
|
variant: "outline",
|
|
591
603
|
size: "sm",
|
|
592
604
|
role: "option",
|
|
593
|
-
"aria-label":
|
|
605
|
+
"aria-label": Cn[t],
|
|
594
606
|
"aria-selected": e.type === "relative" && e.period === t,
|
|
595
607
|
className: V(e.type === "relative" && e.period === t && "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
596
608
|
disabled: n,
|
|
597
609
|
onClick: () => C(t),
|
|
598
|
-
children:
|
|
610
|
+
children: Sn[t]
|
|
599
611
|
}, t))
|
|
600
612
|
})]
|
|
601
613
|
}, t.label))
|
|
@@ -619,7 +631,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
619
631
|
className: "flex-1",
|
|
620
632
|
children: [/* @__PURE__ */ j(Ee, {
|
|
621
633
|
htmlFor: o,
|
|
622
|
-
children:
|
|
634
|
+
children: zn(f?.from)
|
|
623
635
|
}), /* @__PURE__ */ j(De, {
|
|
624
636
|
id: o,
|
|
625
637
|
type: "time",
|
|
@@ -638,7 +650,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
638
650
|
className: "flex-1",
|
|
639
651
|
children: [/* @__PURE__ */ j(Ee, {
|
|
640
652
|
htmlFor: s,
|
|
641
|
-
children:
|
|
653
|
+
children: zn(f?.to)
|
|
642
654
|
}), /* @__PURE__ */ j(De, {
|
|
643
655
|
id: s,
|
|
644
656
|
type: "time",
|
|
@@ -670,7 +682,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
670
682
|
}
|
|
671
683
|
//#endregion
|
|
672
684
|
//#region src/filters/resolve-period.ts
|
|
673
|
-
function
|
|
685
|
+
function Hn() {
|
|
674
686
|
try {
|
|
675
687
|
let { firstDay: e } = new Intl.Locale(navigator.language).getWeekInfo();
|
|
676
688
|
return e % 7;
|
|
@@ -678,7 +690,7 @@ function Rn() {
|
|
|
678
690
|
return 1;
|
|
679
691
|
}
|
|
680
692
|
}
|
|
681
|
-
var
|
|
693
|
+
var Un = {
|
|
682
694
|
"5m": 5 * 6e4,
|
|
683
695
|
"15m": 15 * 6e4,
|
|
684
696
|
"1h": 60 * 6e4,
|
|
@@ -691,51 +703,51 @@ var zn = {
|
|
|
691
703
|
"180d": 4320 * 60 * 6e4,
|
|
692
704
|
"365d": 365 * 24 * 60 * 6e4
|
|
693
705
|
};
|
|
694
|
-
function
|
|
706
|
+
function Wn(e) {
|
|
695
707
|
let t = new Date(e);
|
|
696
708
|
return t.setHours(0, 0, 0, 0), t;
|
|
697
709
|
}
|
|
698
|
-
function
|
|
699
|
-
let n =
|
|
710
|
+
function Gn(e, t) {
|
|
711
|
+
let n = Wn(e), r = (n.getDay() - t + 7) % 7;
|
|
700
712
|
return n.setDate(n.getDate() - r), n;
|
|
701
713
|
}
|
|
702
|
-
function
|
|
714
|
+
function Kn(e) {
|
|
703
715
|
return new Date(e.getFullYear(), e.getMonth(), 1);
|
|
704
716
|
}
|
|
705
|
-
function
|
|
717
|
+
function qn(e) {
|
|
706
718
|
let t = Math.floor(e.getMonth() / 3) * 3;
|
|
707
719
|
return new Date(e.getFullYear(), t, 1);
|
|
708
720
|
}
|
|
709
|
-
function
|
|
721
|
+
function Jn(e, t, n) {
|
|
710
722
|
switch (e) {
|
|
711
723
|
case "currentWeek": return {
|
|
712
|
-
from:
|
|
724
|
+
from: Gn(t, n),
|
|
713
725
|
to: t
|
|
714
726
|
};
|
|
715
727
|
case "currentMonth": return {
|
|
716
|
-
from:
|
|
728
|
+
from: Kn(t),
|
|
717
729
|
to: t
|
|
718
730
|
};
|
|
719
731
|
case "currentQuarter": return {
|
|
720
|
-
from:
|
|
732
|
+
from: qn(t),
|
|
721
733
|
to: t
|
|
722
734
|
};
|
|
723
735
|
case "previousWeek": {
|
|
724
|
-
let e =
|
|
736
|
+
let e = Gn(t, n), r = new Date(e);
|
|
725
737
|
return r.setDate(r.getDate() - 7), {
|
|
726
738
|
from: r,
|
|
727
739
|
to: e
|
|
728
740
|
};
|
|
729
741
|
}
|
|
730
742
|
case "previousMonth": {
|
|
731
|
-
let e =
|
|
743
|
+
let e = Kn(t), n = new Date(e);
|
|
732
744
|
return n.setMonth(n.getMonth() - 1), {
|
|
733
745
|
from: n,
|
|
734
746
|
to: e
|
|
735
747
|
};
|
|
736
748
|
}
|
|
737
749
|
case "previousQuarter": {
|
|
738
|
-
let e =
|
|
750
|
+
let e = qn(t), n = new Date(e);
|
|
739
751
|
return n.setMonth(n.getMonth() - 3), {
|
|
740
752
|
from: n,
|
|
741
753
|
to: e
|
|
@@ -744,8 +756,8 @@ function Wn(e, t, n) {
|
|
|
744
756
|
default: return;
|
|
745
757
|
}
|
|
746
758
|
}
|
|
747
|
-
function
|
|
748
|
-
let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r =
|
|
759
|
+
function Yn(e, t = {}) {
|
|
760
|
+
let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r = Hn() } = t, i = Un[e];
|
|
749
761
|
if (i !== void 0) {
|
|
750
762
|
let e = n.getTime();
|
|
751
763
|
return {
|
|
@@ -754,7 +766,7 @@ function Gn(e, t = {}) {
|
|
|
754
766
|
to: e
|
|
755
767
|
};
|
|
756
768
|
}
|
|
757
|
-
let a =
|
|
769
|
+
let a = Jn(e, n, r);
|
|
758
770
|
return a ? {
|
|
759
771
|
type: "absolute",
|
|
760
772
|
from: a.from.getTime(),
|
|
@@ -767,7 +779,7 @@ function Gn(e, t = {}) {
|
|
|
767
779
|
}
|
|
768
780
|
//#endregion
|
|
769
781
|
//#region src/filters/filter-provider.ts
|
|
770
|
-
function
|
|
782
|
+
function Xn(e) {
|
|
771
783
|
let t = e.kind ?? "async", n = e.field;
|
|
772
784
|
if (!e.operators.length) throw Error(`[gamma-lib-observability] FilterProvider "${n}" must define at least one operator.`);
|
|
773
785
|
if (t === "enum") {
|
|
@@ -783,8 +795,8 @@ function Kn(e) {
|
|
|
783
795
|
}
|
|
784
796
|
//#endregion
|
|
785
797
|
//#region src/filters/use-scoped-filter-providers.ts
|
|
786
|
-
function
|
|
787
|
-
let t = p(), n =
|
|
798
|
+
function Zn(e) {
|
|
799
|
+
let t = p(), n = q();
|
|
788
800
|
return D(() => {
|
|
789
801
|
if (!e) return t;
|
|
790
802
|
let r = n.find((t) => t.field === e);
|
|
@@ -799,18 +811,18 @@ function qn(e) {
|
|
|
799
811
|
}
|
|
800
812
|
//#endregion
|
|
801
813
|
//#region src/filters/utils/filter-value-options.ts
|
|
802
|
-
function
|
|
814
|
+
function Qn(e, t) {
|
|
803
815
|
let n = /* @__PURE__ */ new Map();
|
|
804
816
|
for (let t of e) n.set(t.value, t);
|
|
805
817
|
for (let e of t) n.set(e.value, e);
|
|
806
818
|
return [...n.values()];
|
|
807
819
|
}
|
|
808
|
-
function
|
|
820
|
+
function $n(e, t) {
|
|
809
821
|
return e.value === t.value;
|
|
810
822
|
}
|
|
811
823
|
//#endregion
|
|
812
824
|
//#region src/filters/utils/use-auto-open-on-focus.ts
|
|
813
|
-
function
|
|
825
|
+
function er() {
|
|
814
826
|
let [e, t] = k(!1), n = O(!1);
|
|
815
827
|
return {
|
|
816
828
|
open: e,
|
|
@@ -831,15 +843,15 @@ function Xn() {
|
|
|
831
843
|
}
|
|
832
844
|
//#endregion
|
|
833
845
|
//#region src/filters/FilterValueCombobox.tsx
|
|
834
|
-
var
|
|
835
|
-
function
|
|
836
|
-
let u = Ke(), { open: d, handleOpenChange: f, handleInputFocus: p, handleInputKeyDown: m } =
|
|
846
|
+
var tr = (e) => e.label, nr = (e) => e.value;
|
|
847
|
+
function rr({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearchChange: i, disableBuiltInFilter: a = !1, placeholder: o = r ? "Search values…" : "Search value…", emptyMessage: s = "No results.", listFooter: c, errorMessage: l }) {
|
|
848
|
+
let u = Ke(), { open: d, handleOpenChange: f, handleInputFocus: p, handleInputKeyDown: m } = er(), h = E(), g = !!l, _ = {
|
|
837
849
|
open: d,
|
|
838
850
|
onOpenChange: f,
|
|
839
851
|
items: e,
|
|
840
|
-
itemToStringLabel:
|
|
841
|
-
itemToStringValue:
|
|
842
|
-
isItemEqualToValue:
|
|
852
|
+
itemToStringLabel: tr,
|
|
853
|
+
itemToStringValue: nr,
|
|
854
|
+
isItemEqualToValue: $n,
|
|
843
855
|
...a && { filter: null },
|
|
844
856
|
...i && { onInputValueChange: (e) => i(String(e)) }
|
|
845
857
|
}, y = /* @__PURE__ */ M(A, { children: [
|
|
@@ -899,7 +911,7 @@ function $n({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearc
|
|
|
899
911
|
}
|
|
900
912
|
//#endregion
|
|
901
913
|
//#region src/filters/utils/use-debounced-value.ts
|
|
902
|
-
function
|
|
914
|
+
function ir(e, t) {
|
|
903
915
|
let [n, r] = k(e);
|
|
904
916
|
return T(() => {
|
|
905
917
|
let n = window.setTimeout(() => r(e), t);
|
|
@@ -908,13 +920,13 @@ function er(e, t) {
|
|
|
908
920
|
}
|
|
909
921
|
//#endregion
|
|
910
922
|
//#region src/filters/utils/use-scroll-sentinel.ts
|
|
911
|
-
function
|
|
923
|
+
function ar(e, t) {
|
|
912
924
|
let n = O(e), r = O(null);
|
|
913
925
|
return T(() => {
|
|
914
926
|
n.current = e;
|
|
915
927
|
}, [e]), C((e) => {
|
|
916
928
|
if (r.current &&= (r.current.disconnect(), null), e && t) {
|
|
917
|
-
let t =
|
|
929
|
+
let t = or(e), i = new IntersectionObserver((e) => {
|
|
918
930
|
e[0]?.isIntersecting && n.current();
|
|
919
931
|
}, {
|
|
920
932
|
root: t,
|
|
@@ -924,7 +936,7 @@ function tr(e, t) {
|
|
|
924
936
|
}
|
|
925
937
|
}, [t]);
|
|
926
938
|
}
|
|
927
|
-
function
|
|
939
|
+
function or(e) {
|
|
928
940
|
let t = e.closest("[data-slot=combobox-content]");
|
|
929
941
|
if (t) return t;
|
|
930
942
|
let n = e.parentElement;
|
|
@@ -937,9 +949,9 @@ function nr(e) {
|
|
|
937
949
|
}
|
|
938
950
|
//#endregion
|
|
939
951
|
//#region src/filters/FilterAsyncValueField.tsx
|
|
940
|
-
var
|
|
941
|
-
function
|
|
942
|
-
let [i, a] = k(""), o =
|
|
952
|
+
var sr = 300;
|
|
953
|
+
function cr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
954
|
+
let [i, a] = k(""), o = ir(i, sr), [s, c] = k([]), [l, u] = k(!1), [d, f] = k(null), [p, m] = k(!1), [h, g] = k(1), _ = O(0), v = O(null), y = O(o), b = C(async (t, n) => {
|
|
943
955
|
if (!e.valueLoader) return;
|
|
944
956
|
v.current?.abort();
|
|
945
957
|
let r = new AbortController();
|
|
@@ -979,11 +991,11 @@ function ir({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
979
991
|
h,
|
|
980
992
|
b
|
|
981
993
|
]);
|
|
982
|
-
let x =
|
|
994
|
+
let x = ar(C(() => {
|
|
983
995
|
!l && p && g((e) => e + 1);
|
|
984
996
|
}, [l, p]), p && !l);
|
|
985
|
-
return /* @__PURE__ */ j(
|
|
986
|
-
options: D(() =>
|
|
997
|
+
return /* @__PURE__ */ j(rr, {
|
|
998
|
+
options: D(() => Qn(t, s), [t, s]),
|
|
987
999
|
selected: t,
|
|
988
1000
|
onSelectedChange: n,
|
|
989
1001
|
multiple: r,
|
|
@@ -1009,8 +1021,8 @@ function ir({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
1009
1021
|
}
|
|
1010
1022
|
//#endregion
|
|
1011
1023
|
//#region src/filters/FilterEnumValueField.tsx
|
|
1012
|
-
function
|
|
1013
|
-
return /* @__PURE__ */ j(
|
|
1024
|
+
function lr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
1025
|
+
return /* @__PURE__ */ j(rr, {
|
|
1014
1026
|
options: D(() => e.options ?? [], [e.options]),
|
|
1015
1027
|
selected: t,
|
|
1016
1028
|
onSelectedChange: n,
|
|
@@ -1019,19 +1031,19 @@ function ar({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
1019
1031
|
}
|
|
1020
1032
|
//#endregion
|
|
1021
1033
|
//#region src/filters/utils/scope-labels.ts
|
|
1022
|
-
var
|
|
1034
|
+
var ur = {
|
|
1023
1035
|
HTTP_PROXY: "HTTP Proxy",
|
|
1024
1036
|
MESSAGE: "Message"
|
|
1025
1037
|
};
|
|
1026
|
-
function
|
|
1038
|
+
function dr(e) {
|
|
1027
1039
|
return e.trim().replace(/\s+/g, "_").toUpperCase();
|
|
1028
1040
|
}
|
|
1029
|
-
function
|
|
1030
|
-
return
|
|
1041
|
+
function fr(e) {
|
|
1042
|
+
return ur[dr(e)] ?? e.trim();
|
|
1031
1043
|
}
|
|
1032
1044
|
//#endregion
|
|
1033
1045
|
//#region src/filters/FilterFieldOptionRow.tsx
|
|
1034
|
-
var
|
|
1046
|
+
var pr = S(function({ provider: e, showScopes: t = !1, className: n }) {
|
|
1035
1047
|
let r = t && e.scopes && e.scopes.length > 0;
|
|
1036
1048
|
return /* @__PURE__ */ M("div", {
|
|
1037
1049
|
className: V("flex min-w-0 flex-1 items-center justify-between gap-3", n),
|
|
@@ -1043,15 +1055,15 @@ var lr = S(function({ provider: e, showScopes: t = !1, className: n }) {
|
|
|
1043
1055
|
children: e.scopes?.map((e) => /* @__PURE__ */ j(P, {
|
|
1044
1056
|
variant: "secondary",
|
|
1045
1057
|
className: "max-w-28 truncate text-xs font-normal",
|
|
1046
|
-
children:
|
|
1058
|
+
children: fr(e)
|
|
1047
1059
|
}, e))
|
|
1048
1060
|
}) : null]
|
|
1049
1061
|
});
|
|
1050
1062
|
});
|
|
1051
1063
|
//#endregion
|
|
1052
1064
|
//#region src/filters/FilterPropertyField.tsx
|
|
1053
|
-
function
|
|
1054
|
-
let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } =
|
|
1065
|
+
function mr({ providers: e, selectedField: t, onFieldChange: n, showScopes: r }) {
|
|
1066
|
+
let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } = er();
|
|
1055
1067
|
return /* @__PURE__ */ M(ce, {
|
|
1056
1068
|
open: a,
|
|
1057
1069
|
onOpenChange: o,
|
|
@@ -1073,7 +1085,7 @@ function ur({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
|
|
|
1073
1085
|
anchor: i,
|
|
1074
1086
|
children: [/* @__PURE__ */ j(pe, { children: "No results." }), /* @__PURE__ */ j(he, { children: (e) => /* @__PURE__ */ j(me, {
|
|
1075
1087
|
value: e,
|
|
1076
|
-
children: /* @__PURE__ */ j(
|
|
1088
|
+
children: /* @__PURE__ */ j(pr, {
|
|
1077
1089
|
provider: e,
|
|
1078
1090
|
showScopes: r
|
|
1079
1091
|
})
|
|
@@ -1083,7 +1095,7 @@ function ur({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
|
|
|
1083
1095
|
}
|
|
1084
1096
|
//#endregion
|
|
1085
1097
|
//#region src/filters/utils/filter-operators.ts
|
|
1086
|
-
var
|
|
1098
|
+
var hr = {
|
|
1087
1099
|
eq: "=",
|
|
1088
1100
|
neq: "≠",
|
|
1089
1101
|
in: "in",
|
|
@@ -1098,13 +1110,13 @@ var dr = {
|
|
|
1098
1110
|
lte: "≤",
|
|
1099
1111
|
exists: "exists",
|
|
1100
1112
|
not_exists: "not exists"
|
|
1101
|
-
},
|
|
1113
|
+
}, gr = new Set(["exists", "not_exists"]), _r = new Set([
|
|
1102
1114
|
"neq",
|
|
1103
1115
|
"not_in",
|
|
1104
1116
|
"not_contains",
|
|
1105
1117
|
"not_exists"
|
|
1106
1118
|
]);
|
|
1107
|
-
function
|
|
1119
|
+
function vr(e) {
|
|
1108
1120
|
switch (e) {
|
|
1109
1121
|
case "eq": return "=";
|
|
1110
1122
|
case "neq": return "≠";
|
|
@@ -1112,38 +1124,38 @@ function mr(e) {
|
|
|
1112
1124
|
case "not_in": return "Not in";
|
|
1113
1125
|
case "gte": return "≥";
|
|
1114
1126
|
case "lte": return "≤";
|
|
1115
|
-
default: return
|
|
1127
|
+
default: return hr[e] ?? e;
|
|
1116
1128
|
}
|
|
1117
1129
|
}
|
|
1118
|
-
function
|
|
1119
|
-
return !
|
|
1130
|
+
function yr(e) {
|
|
1131
|
+
return !gr.has(e);
|
|
1120
1132
|
}
|
|
1121
|
-
function
|
|
1133
|
+
function br(e, t) {
|
|
1122
1134
|
return e.operators.includes(t);
|
|
1123
1135
|
}
|
|
1124
|
-
function
|
|
1125
|
-
let n =
|
|
1136
|
+
function xr(e, t) {
|
|
1137
|
+
let n = br(e, "in"), r = br(e, "not_in");
|
|
1126
1138
|
return !!(t === "in" || t === "not_in" || n && t === "eq" || r && t === "neq");
|
|
1127
1139
|
}
|
|
1128
|
-
function
|
|
1140
|
+
function Sr(e, t, n) {
|
|
1129
1141
|
if (n >= 2) {
|
|
1130
|
-
if (t === "eq" &&
|
|
1131
|
-
if (t === "neq" &&
|
|
1142
|
+
if (t === "eq" && br(e, "in")) return "in";
|
|
1143
|
+
if (t === "neq" && br(e, "not_in")) return "not_in";
|
|
1132
1144
|
}
|
|
1133
1145
|
if (n === 1) {
|
|
1134
|
-
if (t === "in" &&
|
|
1135
|
-
if (t === "not_in" &&
|
|
1146
|
+
if (t === "in" && br(e, "eq")) return "eq";
|
|
1147
|
+
if (t === "not_in" && br(e, "neq")) return "neq";
|
|
1136
1148
|
}
|
|
1137
1149
|
return t;
|
|
1138
1150
|
}
|
|
1139
1151
|
//#endregion
|
|
1140
1152
|
//#region src/filters/utils/normalize-filter-value.ts
|
|
1141
|
-
function
|
|
1153
|
+
function Cr(e) {
|
|
1142
1154
|
return e.every((e) => typeof e == "object" && !!e && "value" in e && typeof e.value == "string" && "label" in e && typeof e.label == "string");
|
|
1143
1155
|
}
|
|
1144
|
-
function
|
|
1156
|
+
function wr(e) {
|
|
1145
1157
|
if (Array.isArray(e)) {
|
|
1146
|
-
if (e.length > 0 &&
|
|
1158
|
+
if (e.length > 0 && Cr(e)) return {
|
|
1147
1159
|
values: e.map((e) => e.value),
|
|
1148
1160
|
valueLabels: e.map((e) => e.label)
|
|
1149
1161
|
};
|
|
@@ -1162,7 +1174,7 @@ function br(e) {
|
|
|
1162
1174
|
valueLabels: t.map((e, t) => n[t] ?? e)
|
|
1163
1175
|
};
|
|
1164
1176
|
}
|
|
1165
|
-
function
|
|
1177
|
+
function Tr(e, t) {
|
|
1166
1178
|
return e.map((e, n) => ({
|
|
1167
1179
|
value: e,
|
|
1168
1180
|
label: t?.[n] ?? e
|
|
@@ -1170,42 +1182,42 @@ function xr(e, t) {
|
|
|
1170
1182
|
}
|
|
1171
1183
|
//#endregion
|
|
1172
1184
|
//#region src/filters/utils/parse-free-text-input.ts
|
|
1173
|
-
function
|
|
1185
|
+
function Er(e) {
|
|
1174
1186
|
return e.split(",").map((e) => e.trim()).filter((e) => e.length > 0);
|
|
1175
1187
|
}
|
|
1176
1188
|
//#endregion
|
|
1177
1189
|
//#region src/filters/utils/build-filter-condition.ts
|
|
1178
|
-
function
|
|
1190
|
+
function Dr(e) {
|
|
1179
1191
|
let { provider: t, operator: n, selectedOptions: r = [], freeText: i = "" } = e;
|
|
1180
1192
|
if (!t || !n) return !1;
|
|
1181
|
-
if (!
|
|
1193
|
+
if (!yr(n)) return !0;
|
|
1182
1194
|
if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
|
|
1183
|
-
let e =
|
|
1195
|
+
let e = Er(i);
|
|
1184
1196
|
if (e.length === 0) return !1;
|
|
1185
1197
|
if (e.length > 1) {
|
|
1186
|
-
let r =
|
|
1198
|
+
let r = Sr(t, n, e.length);
|
|
1187
1199
|
if (r === "eq" || r === "neq") return !1;
|
|
1188
1200
|
}
|
|
1189
1201
|
return !0;
|
|
1190
1202
|
}
|
|
1191
1203
|
if (r.length === 0) return !1;
|
|
1192
1204
|
if (r.length > 1) {
|
|
1193
|
-
let e =
|
|
1205
|
+
let e = Sr(t, n, r.length);
|
|
1194
1206
|
if (e === "eq" || e === "neq") return !1;
|
|
1195
1207
|
}
|
|
1196
1208
|
return !0;
|
|
1197
1209
|
}
|
|
1198
|
-
function
|
|
1199
|
-
let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a =
|
|
1210
|
+
function Or(e) {
|
|
1211
|
+
let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a = yr(n), o, s;
|
|
1200
1212
|
if (!a) o = [], s = [];
|
|
1201
1213
|
else if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
|
|
1202
|
-
let e =
|
|
1214
|
+
let e = wr(Er(i));
|
|
1203
1215
|
o = e.values, s = e.valueLabels;
|
|
1204
1216
|
} else {
|
|
1205
|
-
let e =
|
|
1217
|
+
let e = wr([...r]);
|
|
1206
1218
|
o = e.values, s = e.valueLabels;
|
|
1207
1219
|
}
|
|
1208
|
-
let c =
|
|
1220
|
+
let c = Sr(t, n, o.length);
|
|
1209
1221
|
return {
|
|
1210
1222
|
field: t.field,
|
|
1211
1223
|
label: t.label,
|
|
@@ -1216,8 +1228,8 @@ function wr(e) {
|
|
|
1216
1228
|
}
|
|
1217
1229
|
//#endregion
|
|
1218
1230
|
//#region src/filters/FilterPopoverForm.tsx
|
|
1219
|
-
function
|
|
1220
|
-
let i = p(), [a, o] = k(e?.field ?? null), [s, c] = k(e?.operator ?? null), [l, u] = k(() => e ?
|
|
1231
|
+
function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1 }) {
|
|
1232
|
+
let i = p(), [a, o] = k(e?.field ?? null), [s, c] = k(e?.operator ?? null), [l, u] = k(() => e ? Tr(e.value, e.valueLabels) : []), [d, f] = k(e?.value.join(", ") ?? ""), m = D(() => i.find((e) => e.field === a) ?? null, [i, a]), h = m && s ? xr(m, s) : !1, g = m?.kind ?? "async", _ = s ? yr(s) : !0, v = Dr({
|
|
1221
1233
|
provider: m,
|
|
1222
1234
|
operator: s,
|
|
1223
1235
|
selectedOptions: l,
|
|
@@ -1232,12 +1244,12 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1232
1244
|
function x(e) {
|
|
1233
1245
|
let t = h ? e : e.slice(0, 1);
|
|
1234
1246
|
if (u(t), m && s) {
|
|
1235
|
-
let e =
|
|
1247
|
+
let e = Sr(m, s, t.length);
|
|
1236
1248
|
e !== s && c(e);
|
|
1237
1249
|
}
|
|
1238
1250
|
}
|
|
1239
1251
|
function S() {
|
|
1240
|
-
!m || !s || t(
|
|
1252
|
+
!m || !s || t(Or({
|
|
1241
1253
|
provider: m,
|
|
1242
1254
|
operator: s,
|
|
1243
1255
|
selectedOptions: l,
|
|
@@ -1249,12 +1261,12 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1249
1261
|
disabled: !0,
|
|
1250
1262
|
placeholder: "Search value…",
|
|
1251
1263
|
"aria-label": "Filter value"
|
|
1252
|
-
}) : g === "enum" && m.options ? /* @__PURE__ */ j(
|
|
1264
|
+
}) : g === "enum" && m.options ? /* @__PURE__ */ j(lr, {
|
|
1253
1265
|
provider: m,
|
|
1254
1266
|
selected: l,
|
|
1255
1267
|
onSelectedChange: x,
|
|
1256
1268
|
multiple: h
|
|
1257
|
-
}, m.field) : m.valueLoader ? /* @__PURE__ */ j(
|
|
1269
|
+
}, m.field) : m.valueLoader ? /* @__PURE__ */ j(cr, {
|
|
1258
1270
|
provider: m,
|
|
1259
1271
|
selected: l,
|
|
1260
1272
|
onSelectedChange: x,
|
|
@@ -1272,7 +1284,7 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1272
1284
|
return /* @__PURE__ */ M("div", {
|
|
1273
1285
|
className: "flex w-[340px] flex-col gap-4 p-4",
|
|
1274
1286
|
children: [
|
|
1275
|
-
/* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter by" }), /* @__PURE__ */ j(
|
|
1287
|
+
/* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter by" }), /* @__PURE__ */ j(mr, {
|
|
1276
1288
|
providers: i,
|
|
1277
1289
|
selectedField: a,
|
|
1278
1290
|
onFieldChange: y,
|
|
@@ -1288,7 +1300,7 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1288
1300
|
children: /* @__PURE__ */ j(Le, { placeholder: "Select operator…" })
|
|
1289
1301
|
}), /* @__PURE__ */ j(Pe, { children: (m?.operators ?? []).map((e) => /* @__PURE__ */ j(Fe, {
|
|
1290
1302
|
value: e,
|
|
1291
|
-
children:
|
|
1303
|
+
children: vr(e)
|
|
1292
1304
|
}, e)) })]
|
|
1293
1305
|
})] }),
|
|
1294
1306
|
_ ? /* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter value" }), C()] }) : null,
|
|
@@ -1313,31 +1325,31 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1313
1325
|
}
|
|
1314
1326
|
//#endregion
|
|
1315
1327
|
//#region src/filters/utils/filter-display.ts
|
|
1316
|
-
function
|
|
1328
|
+
function Ar(e, t) {
|
|
1317
1329
|
let n = e.value[t];
|
|
1318
1330
|
if (n === void 0) return "";
|
|
1319
1331
|
let r = e.valueLabels?.[t];
|
|
1320
1332
|
return r != null && r !== "" ? r : n;
|
|
1321
1333
|
}
|
|
1322
|
-
function
|
|
1334
|
+
function jr(e) {
|
|
1323
1335
|
return e.value.length === 1 && e.operator === "in" ? "eq" : e.value.length === 1 && e.operator === "not_in" ? "neq" : e.operator;
|
|
1324
1336
|
}
|
|
1325
|
-
function
|
|
1326
|
-
return
|
|
1337
|
+
function Mr(e) {
|
|
1338
|
+
return hr[e] ?? e;
|
|
1327
1339
|
}
|
|
1328
|
-
function
|
|
1340
|
+
function Nr(e) {
|
|
1329
1341
|
if (e.value.length === 0) return e.label;
|
|
1330
|
-
let t =
|
|
1331
|
-
return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${
|
|
1342
|
+
let t = Mr(jr(e));
|
|
1343
|
+
return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${Ar(e, 0)}`;
|
|
1332
1344
|
}
|
|
1333
|
-
function
|
|
1345
|
+
function Pr(e) {
|
|
1334
1346
|
if (e.value.length === 0) return {
|
|
1335
1347
|
name: e.label,
|
|
1336
1348
|
operator: "",
|
|
1337
1349
|
value: "",
|
|
1338
1350
|
isCount: !1
|
|
1339
1351
|
};
|
|
1340
|
-
let t =
|
|
1352
|
+
let t = Mr(jr(e));
|
|
1341
1353
|
return e.value.length > 1 ? {
|
|
1342
1354
|
name: e.label,
|
|
1343
1355
|
operator: t,
|
|
@@ -1346,26 +1358,26 @@ function Ar(e) {
|
|
|
1346
1358
|
} : {
|
|
1347
1359
|
name: e.label,
|
|
1348
1360
|
operator: t,
|
|
1349
|
-
value:
|
|
1361
|
+
value: Ar(e, 0),
|
|
1350
1362
|
isCount: !1
|
|
1351
1363
|
};
|
|
1352
1364
|
}
|
|
1353
|
-
function
|
|
1365
|
+
function Fr(e) {
|
|
1354
1366
|
if (e.value.length === 0) return e.label;
|
|
1355
|
-
let t =
|
|
1367
|
+
let t = Mr(jr(e));
|
|
1356
1368
|
if (e.value.length > 1) {
|
|
1357
|
-
let n = e.value.map((t, n) =>
|
|
1369
|
+
let n = e.value.map((t, n) => Ar(e, n));
|
|
1358
1370
|
return `${e.label} ${t} [${n.join(", ")}]`;
|
|
1359
1371
|
}
|
|
1360
|
-
return `${e.label} ${t} ${
|
|
1372
|
+
return `${e.label} ${t} ${Ar(e, 0)}`;
|
|
1361
1373
|
}
|
|
1362
1374
|
//#endregion
|
|
1363
1375
|
//#region src/filters/FilterChip.tsx
|
|
1364
|
-
function
|
|
1376
|
+
function Ir(e, t, n) {
|
|
1365
1377
|
return e ? t ? `Filter: ${n}` : `Edit filter: ${n}. Press Delete to remove.` : `Active filter: ${n}`;
|
|
1366
1378
|
}
|
|
1367
|
-
var
|
|
1368
|
-
let l =
|
|
1379
|
+
var Lr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0, disabled: i = !1, active: a = !1, className: o, "data-chip-index": s }, c) {
|
|
1380
|
+
let l = Pr(e), u = Fr(e), d = r && !i, f = _r.has(e.operator), [p, m] = k(!1);
|
|
1369
1381
|
function h(e) {
|
|
1370
1382
|
e.stopPropagation(), d && n?.();
|
|
1371
1383
|
}
|
|
@@ -1392,7 +1404,7 @@ var Nr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
|
|
|
1392
1404
|
ref: c,
|
|
1393
1405
|
"data-chip-index": s,
|
|
1394
1406
|
className: V("inline-flex items-center gap-1.5", f && r && "border-dashed border-highlight/40", f && !r && "border-dashed", i && "pointer-events-none opacity-50", o),
|
|
1395
|
-
"aria-label":
|
|
1407
|
+
"aria-label": Ir(r, i, u),
|
|
1396
1408
|
"aria-disabled": i || void 0,
|
|
1397
1409
|
"data-active": a || void 0,
|
|
1398
1410
|
onMouseEnter: () => d && m(!0),
|
|
@@ -1426,32 +1438,32 @@ var Nr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
|
|
|
1426
1438
|
})
|
|
1427
1439
|
}), /* @__PURE__ */ j(R, { children: u })] });
|
|
1428
1440
|
}));
|
|
1429
|
-
|
|
1441
|
+
Lr.displayName = "FilterChip";
|
|
1430
1442
|
//#endregion
|
|
1431
1443
|
//#region src/filters/utils/filter-condition-key.ts
|
|
1432
|
-
function
|
|
1444
|
+
function Rr(e) {
|
|
1433
1445
|
let t = JSON.stringify([...e.value].sort());
|
|
1434
1446
|
return `${e.field}:${e.operator}:${t}`;
|
|
1435
1447
|
}
|
|
1436
1448
|
//#endregion
|
|
1437
1449
|
//#region src/filters/utils/merge-conditions.ts
|
|
1438
|
-
var
|
|
1439
|
-
function
|
|
1440
|
-
return
|
|
1450
|
+
var zr = new Set(["eq", "in"]), Br = new Set(["neq", "not_in"]);
|
|
1451
|
+
function Vr(e) {
|
|
1452
|
+
return zr.has(e);
|
|
1441
1453
|
}
|
|
1442
|
-
function
|
|
1443
|
-
return
|
|
1454
|
+
function Hr(e) {
|
|
1455
|
+
return Br.has(e);
|
|
1444
1456
|
}
|
|
1445
|
-
function
|
|
1446
|
-
return e.field === t.field ? !!(
|
|
1457
|
+
function Ur(e, t) {
|
|
1458
|
+
return e.field === t.field ? !!(Vr(e.operator) && Vr(t.operator) || Hr(e.operator) && Hr(t.operator)) : !1;
|
|
1447
1459
|
}
|
|
1448
|
-
function
|
|
1449
|
-
if (!
|
|
1460
|
+
function Wr(e, t, n) {
|
|
1461
|
+
if (!Ur(e, t)) return null;
|
|
1450
1462
|
let r = /* @__PURE__ */ new Set(), i = [], a = [];
|
|
1451
1463
|
for (let n of [e, t]) n.value.forEach((e, t) => {
|
|
1452
1464
|
r.has(e) || (r.add(e), i.push(e), a.push(n.valueLabels?.[t] ?? e));
|
|
1453
1465
|
});
|
|
1454
|
-
let o =
|
|
1466
|
+
let o = Sr(n, Vr(e.operator) ? "eq" : "neq", i.length);
|
|
1455
1467
|
return !n.operators.includes(o) || i.length > 1 && (o === "eq" || o === "neq") ? null : {
|
|
1456
1468
|
field: e.field,
|
|
1457
1469
|
label: e.label,
|
|
@@ -1462,11 +1474,11 @@ function Br(e, t, n) {
|
|
|
1462
1474
|
}
|
|
1463
1475
|
//#endregion
|
|
1464
1476
|
//#region src/filters/FilterBar.tsx
|
|
1465
|
-
function
|
|
1477
|
+
function Gr(e, t) {
|
|
1466
1478
|
return e ? e.mode === "add" ? "add" : t ? `edit-${t.field}-${t.operator}-${JSON.stringify(t.value)}` : `edit-${e.editIndex}` : "closed";
|
|
1467
1479
|
}
|
|
1468
|
-
function
|
|
1469
|
-
let o =
|
|
1480
|
+
function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r = !1, scopeFilterField: i, className: a }) {
|
|
1481
|
+
let o = Zn(i), [s, c] = k(null), l = O(null), u = O(/* @__PURE__ */ new Map()), d = O(null), f = O({ getBoundingClientRect: () => new DOMRect() }), p = s?.editIndex !== void 0 && s.editIndex >= 0 && s.editIndex < e.length, m = s !== null && (s.mode === "add" || p), h = p ? e[s.editIndex] : void 0, g = C((e) => {
|
|
1470
1482
|
if (e) {
|
|
1471
1483
|
let t = Number(e.dataset.chipIndex);
|
|
1472
1484
|
u.current.set(t, e);
|
|
@@ -1497,7 +1509,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1497
1509
|
}
|
|
1498
1510
|
let r = o.find((e) => e.field === n.field), i = e.findIndex((e) => e.field === n.field), a = i >= 0 ? e[i] : void 0;
|
|
1499
1511
|
if (a && r) {
|
|
1500
|
-
let o =
|
|
1512
|
+
let o = Wr(a, n, r);
|
|
1501
1513
|
if (o) {
|
|
1502
1514
|
t(e.map((e, t) => t === i ? o : e)), b();
|
|
1503
1515
|
return;
|
|
@@ -1542,7 +1554,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1542
1554
|
}) : null,
|
|
1543
1555
|
e.map((e, t) => {
|
|
1544
1556
|
let r = s?.mode === "edit" && s.editIndex === t;
|
|
1545
|
-
return /* @__PURE__ */ j(
|
|
1557
|
+
return /* @__PURE__ */ j(Lr, {
|
|
1546
1558
|
ref: g,
|
|
1547
1559
|
"data-chip-index": t,
|
|
1548
1560
|
condition: e,
|
|
@@ -1551,7 +1563,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1551
1563
|
active: r,
|
|
1552
1564
|
onEdit: () => v(t),
|
|
1553
1565
|
onRemove: () => w(t)
|
|
1554
|
-
},
|
|
1566
|
+
}, Rr(e));
|
|
1555
1567
|
}),
|
|
1556
1568
|
n && e.length > 0 ? /* @__PURE__ */ j("button", {
|
|
1557
1569
|
type: "button",
|
|
@@ -1570,44 +1582,44 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1570
1582
|
sideOffset: 8,
|
|
1571
1583
|
className: "w-auto p-0",
|
|
1572
1584
|
onOpenAutoFocus: E,
|
|
1573
|
-
children: m ? /* @__PURE__ */ j(
|
|
1585
|
+
children: m ? /* @__PURE__ */ j(kr, {
|
|
1574
1586
|
existingCondition: h,
|
|
1575
1587
|
onApply: S,
|
|
1576
1588
|
onCancel: b,
|
|
1577
1589
|
showScopes: r
|
|
1578
|
-
},
|
|
1590
|
+
}, Gr(s, h)) : null
|
|
1579
1591
|
})
|
|
1580
1592
|
]
|
|
1581
1593
|
}) });
|
|
1582
1594
|
}
|
|
1583
1595
|
//#endregion
|
|
1584
1596
|
//#region src/dashboards/WidgetGroupContext.tsx
|
|
1585
|
-
var
|
|
1586
|
-
function
|
|
1587
|
-
return w(
|
|
1597
|
+
var qr = [], Jr = y(null), Yr = Jr.Provider;
|
|
1598
|
+
function Xr() {
|
|
1599
|
+
return w(Jr);
|
|
1588
1600
|
}
|
|
1589
1601
|
//#endregion
|
|
1590
1602
|
//#region src/dashboards/resolve-stable-time-range.ts
|
|
1591
|
-
var
|
|
1592
|
-
function
|
|
1603
|
+
var Zr = 6e4;
|
|
1604
|
+
function Qr(e) {
|
|
1593
1605
|
if (e.type === "absolute") return e;
|
|
1594
|
-
let t =
|
|
1606
|
+
let t = Yn(e.period);
|
|
1595
1607
|
return {
|
|
1596
1608
|
type: "absolute",
|
|
1597
|
-
from: Math.floor(t.from /
|
|
1598
|
-
to: Math.floor(t.to /
|
|
1609
|
+
from: Math.floor(t.from / Zr) * Zr,
|
|
1610
|
+
to: Math.floor(t.to / Zr) * Zr
|
|
1599
1611
|
};
|
|
1600
1612
|
}
|
|
1601
1613
|
//#endregion
|
|
1602
1614
|
//#region src/hooks/use-stable-time-range.ts
|
|
1603
|
-
function
|
|
1615
|
+
function $r(e) {
|
|
1604
1616
|
return Math.floor(Date.now() / e);
|
|
1605
1617
|
}
|
|
1606
|
-
function
|
|
1607
|
-
let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() =>
|
|
1618
|
+
function J(e) {
|
|
1619
|
+
let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() => $r(n));
|
|
1608
1620
|
return T(() => {
|
|
1609
1621
|
if (e.type === "absolute" || !r) return;
|
|
1610
|
-
let t, i = () => a(
|
|
1622
|
+
let t, i = () => a($r(n)), o = n - Date.now() % n, s = setTimeout(() => {
|
|
1611
1623
|
i(), t = setInterval(i, n);
|
|
1612
1624
|
}, o);
|
|
1613
1625
|
if (typeof document < "u") {
|
|
@@ -1625,37 +1637,37 @@ function Y(e) {
|
|
|
1625
1637
|
e.type,
|
|
1626
1638
|
r,
|
|
1627
1639
|
n
|
|
1628
|
-
]), D(() =>
|
|
1640
|
+
]), D(() => Qr(e), [e, i]);
|
|
1629
1641
|
}
|
|
1630
1642
|
//#endregion
|
|
1631
1643
|
//#region src/dashboards/adapters/facets-adapter.ts
|
|
1632
|
-
var
|
|
1633
|
-
function
|
|
1634
|
-
return e.length <=
|
|
1644
|
+
var ei = 20;
|
|
1645
|
+
function ti(e) {
|
|
1646
|
+
return e.length <= ei ? e : `${e.slice(0, ei - 1)}…`;
|
|
1635
1647
|
}
|
|
1636
|
-
function
|
|
1648
|
+
function ni(e) {
|
|
1637
1649
|
return e.map((e) => ({
|
|
1638
1650
|
category: e.value,
|
|
1639
1651
|
value: e.count
|
|
1640
1652
|
}));
|
|
1641
1653
|
}
|
|
1642
|
-
function
|
|
1654
|
+
function ri(e) {
|
|
1643
1655
|
return e.map((e) => ({
|
|
1644
|
-
category:
|
|
1656
|
+
category: ti(e.label || e.value),
|
|
1645
1657
|
count: e.count
|
|
1646
1658
|
}));
|
|
1647
1659
|
}
|
|
1648
1660
|
//#endregion
|
|
1649
1661
|
//#region src/dashboards/use-merged-widget-filters.ts
|
|
1650
|
-
function
|
|
1651
|
-
return q(
|
|
1662
|
+
function ii(e, t) {
|
|
1663
|
+
return K(q(), t, e);
|
|
1652
1664
|
}
|
|
1653
1665
|
//#endregion
|
|
1654
1666
|
//#region src/dashboards/renderers/BarPresentation.tsx
|
|
1655
|
-
var
|
|
1656
|
-
function
|
|
1667
|
+
var ai = 160, oi = 72, si = 7, ci = 20;
|
|
1668
|
+
function li({ data: e, config: t, state: n, layout: r = "vertical" }) {
|
|
1657
1669
|
let i = D(() => {
|
|
1658
|
-
if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(
|
|
1670
|
+
if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(ai, Math.max(oi, e.reduce((e, t) => Math.max(e, t.category.length), 0) * si + ci)) };
|
|
1659
1671
|
}, [e, r]);
|
|
1660
1672
|
return /* @__PURE__ */ j(St, {
|
|
1661
1673
|
config: t,
|
|
@@ -1671,8 +1683,8 @@ function ai({ data: e, config: t, state: n, layout: r = "vertical" }) {
|
|
|
1671
1683
|
}
|
|
1672
1684
|
//#endregion
|
|
1673
1685
|
//#region src/dashboards/renderers/BarWidgetRenderer.tsx
|
|
1674
|
-
function
|
|
1675
|
-
let r =
|
|
1686
|
+
function ui({ widget: e, timeRange: t, filters: n }) {
|
|
1687
|
+
let r = ii(e.filters, n), i = J(t), { data: a, isLoading: o, isError: s } = dn({
|
|
1676
1688
|
field: e.field,
|
|
1677
1689
|
timeRange: i,
|
|
1678
1690
|
filters: r,
|
|
@@ -1682,13 +1694,13 @@ function oi({ widget: e, timeRange: t, filters: n }) {
|
|
|
1682
1694
|
s && console.error(`[BarWidgetRenderer] Failed to fetch facets for widget "${e.title}"`);
|
|
1683
1695
|
}, [s, e.title]);
|
|
1684
1696
|
let { data: c, config: l } = D(() => a ? {
|
|
1685
|
-
data:
|
|
1697
|
+
data: ri(a),
|
|
1686
1698
|
config: { count: { label: e.title } }
|
|
1687
1699
|
} : {
|
|
1688
1700
|
data: [],
|
|
1689
1701
|
config: {}
|
|
1690
1702
|
}, [a, e.title]);
|
|
1691
|
-
return /* @__PURE__ */ j(
|
|
1703
|
+
return /* @__PURE__ */ j(li, {
|
|
1692
1704
|
data: c,
|
|
1693
1705
|
config: l,
|
|
1694
1706
|
state: o ? "loading" : s ? "empty" : "ready",
|
|
@@ -1697,36 +1709,36 @@ function oi({ widget: e, timeRange: t, filters: n }) {
|
|
|
1697
1709
|
}
|
|
1698
1710
|
//#endregion
|
|
1699
1711
|
//#region src/dashboards/adapters/status-palette.ts
|
|
1700
|
-
var
|
|
1712
|
+
var di = {
|
|
1701
1713
|
"1XX": "var(--chart-5)",
|
|
1702
1714
|
"2XX": "var(--success)",
|
|
1703
1715
|
"3XX": "var(--chart-4)",
|
|
1704
1716
|
"4XX": "var(--warning)",
|
|
1705
1717
|
"5XX": "var(--destructive)"
|
|
1706
|
-
},
|
|
1718
|
+
}, fi = new Set([
|
|
1707
1719
|
"HTTP_STATUS_CODE_GROUP",
|
|
1708
1720
|
"http_status_code_group",
|
|
1709
1721
|
"status_code_group"
|
|
1710
1722
|
]);
|
|
1711
|
-
function
|
|
1723
|
+
function pi(e, t, n) {
|
|
1712
1724
|
if (n?.[e]) return n[e];
|
|
1713
|
-
if (t &&
|
|
1725
|
+
if (t && fi.has(t)) return di[e.toUpperCase()];
|
|
1714
1726
|
}
|
|
1715
1727
|
//#endregion
|
|
1716
1728
|
//#region src/dashboards/adapters/time-series-adapter.ts
|
|
1717
|
-
function
|
|
1729
|
+
function mi(e) {
|
|
1718
1730
|
return e.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
1719
1731
|
}
|
|
1720
|
-
function
|
|
1732
|
+
function hi(e, t) {
|
|
1721
1733
|
let n = [], r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
|
|
1722
1734
|
for (let t of e) i.set(t.metric, (i.get(t.metric) ?? 0) + 1);
|
|
1723
1735
|
return e.forEach((e, a) => {
|
|
1724
|
-
let o = t[a] ?? [], s = U(e.measure), c = `${
|
|
1736
|
+
let o = t[a] ?? [], s = U(e.measure), c = `${mi(e.metric)}__${mi(s)}__${mi(e.representation)}`;
|
|
1725
1737
|
if (e.groupBy) {
|
|
1726
1738
|
for (let t of o) {
|
|
1727
|
-
let i = `${c}__${
|
|
1739
|
+
let i = `${c}__${mi(t.key)}`;
|
|
1728
1740
|
if (r.has(i)) continue;
|
|
1729
|
-
let a =
|
|
1741
|
+
let a = pi(t.key, e.groupBy, e.colorByGroup);
|
|
1730
1742
|
n.push({
|
|
1731
1743
|
dataKey: i,
|
|
1732
1744
|
label: t.label,
|
|
@@ -1759,10 +1771,10 @@ function di(e, t) {
|
|
|
1759
1771
|
seriesMap: r
|
|
1760
1772
|
};
|
|
1761
1773
|
}
|
|
1762
|
-
function
|
|
1774
|
+
function gi(e) {
|
|
1763
1775
|
let t = /* @__PURE__ */ new Map(), n = Infinity, r = -Infinity;
|
|
1764
1776
|
for (let t of e.values()) for (let e of t) for (let t of e.points) t.timestamp < n && (n = t.timestamp), t.timestamp > r && (r = t.timestamp);
|
|
1765
|
-
let i = r - n >
|
|
1777
|
+
let i = r - n > _i ? bi : yi;
|
|
1766
1778
|
for (let n of e.values()) for (let e of n) for (let n of e.points) {
|
|
1767
1779
|
let e = i(n.timestamp), r = t.get(e);
|
|
1768
1780
|
(r === void 0 || n.timestamp < r) && t.set(e, n.timestamp);
|
|
@@ -1778,7 +1790,7 @@ function fi(e) {
|
|
|
1778
1790
|
}
|
|
1779
1791
|
return o;
|
|
1780
1792
|
}
|
|
1781
|
-
var
|
|
1793
|
+
var _i = 1440 * 6e4, vi = [
|
|
1782
1794
|
"Jan",
|
|
1783
1795
|
"Feb",
|
|
1784
1796
|
"Mar",
|
|
@@ -1792,25 +1804,25 @@ var pi = 1440 * 6e4, mi = [
|
|
|
1792
1804
|
"Nov",
|
|
1793
1805
|
"Dec"
|
|
1794
1806
|
];
|
|
1795
|
-
function
|
|
1807
|
+
function yi(e) {
|
|
1796
1808
|
let t = new Date(e);
|
|
1797
1809
|
return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
|
|
1798
1810
|
}
|
|
1799
|
-
function
|
|
1811
|
+
function bi(e) {
|
|
1800
1812
|
let t = new Date(e);
|
|
1801
|
-
return `${
|
|
1813
|
+
return `${vi[t.getMonth()]} ${String(t.getDate()).padStart(2, "0")} ${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
|
|
1802
1814
|
}
|
|
1803
1815
|
//#endregion
|
|
1804
1816
|
//#region src/dashboards/compute-bucket-interval.ts
|
|
1805
|
-
var
|
|
1806
|
-
function
|
|
1807
|
-
if (t <= 0) return
|
|
1817
|
+
var xi = 6e4, Si = 48;
|
|
1818
|
+
function Ci(e, t) {
|
|
1819
|
+
if (t <= 0) return xi;
|
|
1808
1820
|
let n = e.to - e.from, r = Math.floor(n / t);
|
|
1809
|
-
return Math.max(
|
|
1821
|
+
return Math.max(xi, r);
|
|
1810
1822
|
}
|
|
1811
1823
|
//#endregion
|
|
1812
1824
|
//#region src/dashboards/renderers/CartesianPresentation.tsx
|
|
1813
|
-
function
|
|
1825
|
+
function wi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal: a, totalLabel: o }) {
|
|
1814
1826
|
let s = Object.keys(t), c = n.some((e) => e.representation === "bar") ? "band" : "point";
|
|
1815
1827
|
return /* @__PURE__ */ j(St, {
|
|
1816
1828
|
config: t,
|
|
@@ -1823,8 +1835,8 @@ function bi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
|
|
|
1823
1835
|
children: [
|
|
1824
1836
|
/* @__PURE__ */ j(Ot, {}),
|
|
1825
1837
|
s.map((e) => {
|
|
1826
|
-
let t = r?.[e] ??
|
|
1827
|
-
return t ?
|
|
1838
|
+
let t = r?.[e] ?? Ti(e, n);
|
|
1839
|
+
return t ? Ei(e, t) : null;
|
|
1828
1840
|
}),
|
|
1829
1841
|
/* @__PURE__ */ j(Nt, {}),
|
|
1830
1842
|
/* @__PURE__ */ j(Pt, {}),
|
|
@@ -1837,10 +1849,10 @@ function bi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
|
|
|
1837
1849
|
})
|
|
1838
1850
|
});
|
|
1839
1851
|
}
|
|
1840
|
-
function
|
|
1852
|
+
function Ti(e, t) {
|
|
1841
1853
|
return t.find((t) => e === t.metric || e.startsWith(`${t.metric}_`));
|
|
1842
1854
|
}
|
|
1843
|
-
function
|
|
1855
|
+
function Ei(e, t) {
|
|
1844
1856
|
switch (t.representation) {
|
|
1845
1857
|
case "line": return /* @__PURE__ */ j(kt, {
|
|
1846
1858
|
dataKey: e,
|
|
@@ -1861,14 +1873,14 @@ function Si(e, t) {
|
|
|
1861
1873
|
}
|
|
1862
1874
|
//#endregion
|
|
1863
1875
|
//#region src/dashboards/renderers/CartesianWidgetRenderer.tsx
|
|
1864
|
-
function
|
|
1865
|
-
let r =
|
|
1876
|
+
function Di({ widget: e, timeRange: t, filters: n }) {
|
|
1877
|
+
let r = ii(e.filters, n), i = m(), a = J(t), o = D(() => Ci(a, 48), [a]), s = te({ queries: e.series.map((e) => {
|
|
1866
1878
|
let t = [{
|
|
1867
1879
|
name: e.metric,
|
|
1868
1880
|
measures: [U(e.measure)]
|
|
1869
1881
|
}], n = e.groupBy ? [e.groupBy] : void 0;
|
|
1870
1882
|
return {
|
|
1871
|
-
queryKey:
|
|
1883
|
+
queryKey: G.timeSeries(t, a, o, r, n),
|
|
1872
1884
|
queryFn: ({ signal: e }) => i.fetchTimeSeries({
|
|
1873
1885
|
metrics: t,
|
|
1874
1886
|
timeRange: a,
|
|
@@ -1884,18 +1896,18 @@ function Ci({ widget: e, timeRange: t, filters: n }) {
|
|
|
1884
1896
|
l && console.error(`[CartesianWidgetRenderer] One or more series queries failed for widget "${e.title}"`);
|
|
1885
1897
|
}, [l, e.title]);
|
|
1886
1898
|
let u = s.map((e) => e.dataUpdatedAt).join(","), { data: d, config: f, seriesByKey: p } = D(() => {
|
|
1887
|
-
let { elements: t, seriesMap: n } =
|
|
1899
|
+
let { elements: t, seriesMap: n } = hi(e.series, s.map((e) => e?.data)), r = {}, i = {};
|
|
1888
1900
|
for (let e of t) {
|
|
1889
1901
|
let t = { label: e.label };
|
|
1890
1902
|
e.color && (t.color = e.color), r[e.dataKey] = t, i[e.dataKey] = e.series;
|
|
1891
1903
|
}
|
|
1892
1904
|
return {
|
|
1893
|
-
data:
|
|
1905
|
+
data: gi(n),
|
|
1894
1906
|
config: r,
|
|
1895
1907
|
seriesByKey: i
|
|
1896
1908
|
};
|
|
1897
1909
|
}, [e.series, u]), h = c ? "loading" : l ? "empty" : "ready";
|
|
1898
|
-
return /* @__PURE__ */ j(
|
|
1910
|
+
return /* @__PURE__ */ j(wi, {
|
|
1899
1911
|
data: d,
|
|
1900
1912
|
config: f,
|
|
1901
1913
|
series: [...e.series],
|
|
@@ -1907,7 +1919,7 @@ function Ci({ widget: e, timeRange: t, filters: n }) {
|
|
|
1907
1919
|
}
|
|
1908
1920
|
//#endregion
|
|
1909
1921
|
//#region src/dashboards/renderers/DoughnutPresentation.tsx
|
|
1910
|
-
function
|
|
1922
|
+
function Oi({ data: e, config: t, state: n }) {
|
|
1911
1923
|
return /* @__PURE__ */ j(St, {
|
|
1912
1924
|
config: t,
|
|
1913
1925
|
className: "h-full w-full",
|
|
@@ -1920,8 +1932,8 @@ function wi({ data: e, config: t, state: n }) {
|
|
|
1920
1932
|
}
|
|
1921
1933
|
//#endregion
|
|
1922
1934
|
//#region src/dashboards/renderers/DoughnutWidgetRenderer.tsx
|
|
1923
|
-
function
|
|
1924
|
-
let r =
|
|
1935
|
+
function ki({ widget: e, timeRange: t, filters: n }) {
|
|
1936
|
+
let r = ii(e.filters, n), i = J(t), { data: a, isLoading: o, isError: s } = dn({
|
|
1925
1937
|
field: e.field,
|
|
1926
1938
|
timeRange: i,
|
|
1927
1939
|
filters: r,
|
|
@@ -1935,14 +1947,14 @@ function Ti({ widget: e, timeRange: t, filters: n }) {
|
|
|
1935
1947
|
data: [],
|
|
1936
1948
|
config: {}
|
|
1937
1949
|
};
|
|
1938
|
-
let e =
|
|
1950
|
+
let e = ni(a), t = {};
|
|
1939
1951
|
for (let e of a) t[e.value] = { label: e.label || e.value };
|
|
1940
1952
|
return {
|
|
1941
1953
|
data: e,
|
|
1942
1954
|
config: t
|
|
1943
1955
|
};
|
|
1944
1956
|
}, [a]);
|
|
1945
|
-
return /* @__PURE__ */ j(
|
|
1957
|
+
return /* @__PURE__ */ j(Oi, {
|
|
1946
1958
|
data: c,
|
|
1947
1959
|
config: l,
|
|
1948
1960
|
state: o ? "loading" : s ? "empty" : "ready"
|
|
@@ -1950,18 +1962,18 @@ function Ti({ widget: e, timeRange: t, filters: n }) {
|
|
|
1950
1962
|
}
|
|
1951
1963
|
//#endregion
|
|
1952
1964
|
//#region src/dashboards/adapters/measures-adapter.ts
|
|
1953
|
-
function
|
|
1965
|
+
function Ai(e, t) {
|
|
1954
1966
|
if (e.measures.length !== 0) return t ? e.measures.find((e) => e.name === t)?.value : e.measures[0].value;
|
|
1955
1967
|
}
|
|
1956
|
-
function
|
|
1957
|
-
let n =
|
|
1968
|
+
function ji(e, t) {
|
|
1969
|
+
let n = Ai(e, t);
|
|
1958
1970
|
return {
|
|
1959
|
-
value: n === void 0 ? "—" :
|
|
1971
|
+
value: n === void 0 ? "—" : Li(n, e.unit),
|
|
1960
1972
|
label: e.name,
|
|
1961
1973
|
unit: e.unit
|
|
1962
1974
|
};
|
|
1963
1975
|
}
|
|
1964
|
-
function
|
|
1976
|
+
function Mi(e, t) {
|
|
1965
1977
|
if (t === void 0) return;
|
|
1966
1978
|
if (t === 0) return {
|
|
1967
1979
|
value: 0,
|
|
@@ -1976,17 +1988,17 @@ function Oi(e, t) {
|
|
|
1976
1988
|
direction: n > 0 ? "up" : "down"
|
|
1977
1989
|
};
|
|
1978
1990
|
}
|
|
1979
|
-
function
|
|
1991
|
+
function Ni(e, t) {
|
|
1980
1992
|
if (!e || e.length === 0) return;
|
|
1981
1993
|
let n = t ? e.find((e) => e.key === t) : e[0];
|
|
1982
1994
|
if (!(!n || n.points.length < 2)) return n.points.slice().sort((e, t) => e.timestamp - t.timestamp).map((e) => e.value);
|
|
1983
1995
|
}
|
|
1984
|
-
var
|
|
1996
|
+
var Pi = new Set([
|
|
1985
1997
|
"B",
|
|
1986
1998
|
"KB",
|
|
1987
1999
|
"MB",
|
|
1988
2000
|
"GB"
|
|
1989
|
-
]),
|
|
2001
|
+
]), Fi = {
|
|
1990
2002
|
PERCENT: { suffix: "%" },
|
|
1991
2003
|
MILLISECONDS: { suffix: "ms" },
|
|
1992
2004
|
SECONDS: { suffix: "s" },
|
|
@@ -1996,17 +2008,17 @@ var Ai = new Set([
|
|
|
1996
2008
|
GIGABYTES: { suffix: "GB" },
|
|
1997
2009
|
COUNT: { suffix: "" },
|
|
1998
2010
|
COUNT_PER_SECOND: { suffix: "/s" }
|
|
1999
|
-
},
|
|
2000
|
-
function
|
|
2001
|
-
let n = t ?
|
|
2002
|
-
if (t && !n && !
|
|
2011
|
+
}, Ii = /* @__PURE__ */ new Set();
|
|
2012
|
+
function Li(e, t) {
|
|
2013
|
+
let n = t ? Fi[t] : void 0;
|
|
2014
|
+
if (t && !n && !Ii.has(t) && (Ii.add(t), console.warn(`[formatMeasureValue] Unknown unit "${t}" — value will be displayed without unit`)), n?.suffix === "%") return `${(Math.round(e * 10) / 10).toLocaleString()}%`;
|
|
2003
2015
|
if (n?.suffix === "ms" && e >= 1e3) return `${(e / 1e3).toFixed(2)} s`;
|
|
2004
|
-
let r = n !== void 0 &&
|
|
2016
|
+
let r = n !== void 0 && Pi.has(n.suffix) ? e.toLocaleString() : e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : e.toLocaleString(), i = n?.suffix;
|
|
2005
2017
|
return i ? `${r}${i === "" ? "" : ` ${i}`}` : r;
|
|
2006
2018
|
}
|
|
2007
2019
|
//#endregion
|
|
2008
2020
|
//#region src/dashboards/compute-previous-time-range.ts
|
|
2009
|
-
function
|
|
2021
|
+
function Ri(e) {
|
|
2010
2022
|
let t = e.to - e.from;
|
|
2011
2023
|
return {
|
|
2012
2024
|
type: "absolute",
|
|
@@ -2016,7 +2028,7 @@ function Pi(e) {
|
|
|
2016
2028
|
}
|
|
2017
2029
|
//#endregion
|
|
2018
2030
|
//#region src/dashboards/renderers/MetricGroupPresentation.tsx
|
|
2019
|
-
function
|
|
2031
|
+
function zi({ items: e, state: t, skeletonCount: n }) {
|
|
2020
2032
|
return /* @__PURE__ */ j(jt, {
|
|
2021
2033
|
items: e,
|
|
2022
2034
|
state: t,
|
|
@@ -2025,7 +2037,7 @@ function Fi({ items: e, state: t, skeletonCount: n }) {
|
|
|
2025
2037
|
}
|
|
2026
2038
|
//#endregion
|
|
2027
2039
|
//#region src/dashboards/renderers/MetricGroupWidgetRenderer.tsx
|
|
2028
|
-
function
|
|
2040
|
+
function Bi(e) {
|
|
2029
2041
|
let t = /* @__PURE__ */ new Map();
|
|
2030
2042
|
for (let n of e) {
|
|
2031
2043
|
let e = t.get(n.name), r = n.measures ?? [];
|
|
@@ -2037,18 +2049,18 @@ function Ii(e) {
|
|
|
2037
2049
|
measures: Array.from(t)
|
|
2038
2050
|
}));
|
|
2039
2051
|
}
|
|
2040
|
-
function
|
|
2041
|
-
let r =
|
|
2052
|
+
function Vi({ widget: e, timeRange: t, filters: n }) {
|
|
2053
|
+
let r = ii(e.filters, n), i = e.items.some((e) => e.showTrend !== !1), a = J(t), o = D(() => Bi(e.items.map((e) => ({
|
|
2042
2054
|
name: e.metric,
|
|
2043
2055
|
measures: [U(e.measure)]
|
|
2044
|
-
}))), [e.items]), s = D(() =>
|
|
2056
|
+
}))), [e.items]), s = D(() => Bi(e.items.filter((e) => e.showTrend !== !1).map((e) => ({
|
|
2045
2057
|
name: e.metric,
|
|
2046
2058
|
measures: [U(e.measure)]
|
|
2047
|
-
}))), [e.items]), c = D(() =>
|
|
2059
|
+
}))), [e.items]), c = D(() => Ri(a), [a]), { data: l, isLoading: u, isError: d } = gn({
|
|
2048
2060
|
metrics: o,
|
|
2049
2061
|
timeRange: a,
|
|
2050
2062
|
filters: r
|
|
2051
|
-
}), { data: f, isError: p } =
|
|
2063
|
+
}), { data: f, isError: p } = gn({
|
|
2052
2064
|
metrics: s,
|
|
2053
2065
|
timeRange: c,
|
|
2054
2066
|
filters: r,
|
|
@@ -2058,7 +2070,7 @@ function Li({ widget: e, timeRange: t, filters: n }) {
|
|
|
2058
2070
|
d && console.error(`[MetricGroupWidgetRenderer] Failed to fetch measures for "${e.title}"`);
|
|
2059
2071
|
}, [d, e.title]), T(() => {
|
|
2060
2072
|
p && console.error(`[MetricGroupWidgetRenderer] Failed to fetch previous-period measures for "${e.title}"`);
|
|
2061
|
-
}, [p, e.title]), /* @__PURE__ */ j(
|
|
2073
|
+
}, [p, e.title]), /* @__PURE__ */ j(zi, {
|
|
2062
2074
|
items: D(() => {
|
|
2063
2075
|
let t = new Map(l?.map((e) => [e.name, e]) ?? []), n = new Map(f?.map((e) => [e.name, e]) ?? []);
|
|
2064
2076
|
return e.items.map((e) => {
|
|
@@ -2067,11 +2079,11 @@ function Li({ widget: e, timeRange: t, filters: n }) {
|
|
|
2067
2079
|
value: "—",
|
|
2068
2080
|
label: e.label ?? e.metric
|
|
2069
2081
|
};
|
|
2070
|
-
let i = U(e.measure), a =
|
|
2082
|
+
let i = U(e.measure), a = ji(r, i), o = e.showTrend !== !1, s = Ai(r, i), c = n.get(e.metric), l = c ? Ai(c, i) : void 0;
|
|
2071
2083
|
return {
|
|
2072
2084
|
value: a.value,
|
|
2073
2085
|
label: e.label ?? r.name,
|
|
2074
|
-
trend: o && s !== void 0 ?
|
|
2086
|
+
trend: o && s !== void 0 ? Mi(s, l) : void 0,
|
|
2075
2087
|
trendSentiment: e.sentiment
|
|
2076
2088
|
};
|
|
2077
2089
|
});
|
|
@@ -2086,7 +2098,7 @@ function Li({ widget: e, timeRange: t, filters: n }) {
|
|
|
2086
2098
|
}
|
|
2087
2099
|
//#endregion
|
|
2088
2100
|
//#region src/dashboards/renderers/MetricPresentation.tsx
|
|
2089
|
-
function
|
|
2101
|
+
function Hi({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparklineData: a }) {
|
|
2090
2102
|
return /* @__PURE__ */ j(At, {
|
|
2091
2103
|
value: e,
|
|
2092
2104
|
label: t,
|
|
@@ -2098,20 +2110,20 @@ function Ri({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparkli
|
|
|
2098
2110
|
}
|
|
2099
2111
|
//#endregion
|
|
2100
2112
|
//#region src/dashboards/renderers/MetricWidgetRenderer.tsx
|
|
2101
|
-
function
|
|
2102
|
-
let r =
|
|
2113
|
+
function Ui({ widget: e, timeRange: t, filters: n }) {
|
|
2114
|
+
let r = ii(e.filters, n), i = e.showTrend === !0, a = e.showSparkline === !0, o = J(t), s = U(e.measure), c = D(() => [{
|
|
2103
2115
|
name: e.metric,
|
|
2104
2116
|
measures: [s]
|
|
2105
|
-
}], [e.metric, s]), l = D(() =>
|
|
2117
|
+
}], [e.metric, s]), l = D(() => Ri(o), [o]), u = D(() => Ci(o, 48), [o]), { data: d, isLoading: f, isError: p } = gn({
|
|
2106
2118
|
metrics: c,
|
|
2107
2119
|
timeRange: o,
|
|
2108
2120
|
filters: r
|
|
2109
|
-
}), { data: m, isError: h } =
|
|
2121
|
+
}), { data: m, isError: h } = gn({
|
|
2110
2122
|
metrics: c,
|
|
2111
2123
|
timeRange: l,
|
|
2112
2124
|
filters: r,
|
|
2113
2125
|
enabled: i
|
|
2114
|
-
}), { data: g, isError: _ } =
|
|
2126
|
+
}), { data: g, isError: _ } = vn({
|
|
2115
2127
|
metrics: c,
|
|
2116
2128
|
timeRange: o,
|
|
2117
2129
|
interval: u,
|
|
@@ -2125,8 +2137,8 @@ function zi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2125
2137
|
}, [h, e.metric]), T(() => {
|
|
2126
2138
|
_ && console.error(`[MetricWidgetRenderer] Failed to fetch sparkline data for "${e.metric}"`);
|
|
2127
2139
|
}, [_, e.metric]);
|
|
2128
|
-
let v = d?.[0], y = m?.[0], b = v ?
|
|
2129
|
-
return /* @__PURE__ */ j(
|
|
2140
|
+
let v = d?.[0], y = m?.[0], b = v ? ji(v, s) : void 0, x = v ? Ai(v, s) : void 0, S = y ? Ai(y, s) : void 0, C = i && x !== void 0 ? Mi(x, S) : void 0, w = a ? Ni(g, e.metric) : void 0, E = f ? "loading" : p || !f && !v ? "empty" : "ready";
|
|
2141
|
+
return /* @__PURE__ */ j(Hi, {
|
|
2130
2142
|
value: b?.value ?? "—",
|
|
2131
2143
|
label: e.title,
|
|
2132
2144
|
state: E,
|
|
@@ -2137,25 +2149,25 @@ function zi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2137
2149
|
}
|
|
2138
2150
|
//#endregion
|
|
2139
2151
|
//#region src/dashboards/widget-renderer-registry.ts
|
|
2140
|
-
var
|
|
2141
|
-
function
|
|
2142
|
-
|
|
2152
|
+
var Wi = /* @__PURE__ */ new Map();
|
|
2153
|
+
function Y(e, t) {
|
|
2154
|
+
Wi.set(e, t);
|
|
2143
2155
|
}
|
|
2144
|
-
function
|
|
2145
|
-
return
|
|
2156
|
+
function Gi(e) {
|
|
2157
|
+
return Wi.get(e);
|
|
2146
2158
|
}
|
|
2147
|
-
function
|
|
2148
|
-
|
|
2159
|
+
function Ki() {
|
|
2160
|
+
Wi.clear();
|
|
2149
2161
|
}
|
|
2150
2162
|
//#endregion
|
|
2151
2163
|
//#region src/dashboards/register-default-renderers.ts
|
|
2152
|
-
var
|
|
2153
|
-
function
|
|
2154
|
-
|
|
2164
|
+
var qi = !1;
|
|
2165
|
+
function Ji() {
|
|
2166
|
+
qi || (qi = !0, Y("cartesian", Di), Y("doughnut", ki), Y("bar", ui), Y("metric", Ui), Y("metric-group", Vi));
|
|
2155
2167
|
}
|
|
2156
2168
|
//#endregion
|
|
2157
2169
|
//#region src/dashboards/renderers/UnknownWidgetFallback.tsx
|
|
2158
|
-
function
|
|
2170
|
+
function Yi({ widget: e }) {
|
|
2159
2171
|
return /* @__PURE__ */ M("div", {
|
|
2160
2172
|
role: "alert",
|
|
2161
2173
|
className: "flex h-full flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-destructive/30 bg-destructive/5 p-4 text-center",
|
|
@@ -2174,28 +2186,28 @@ function Ki({ widget: e }) {
|
|
|
2174
2186
|
}
|
|
2175
2187
|
//#endregion
|
|
2176
2188
|
//#region src/dashboards/WidgetItem.tsx
|
|
2177
|
-
|
|
2178
|
-
function
|
|
2179
|
-
return e.data ?
|
|
2189
|
+
Ji();
|
|
2190
|
+
function Xi(e) {
|
|
2191
|
+
return e.data ? Qi(e.widget, e.data) : /* @__PURE__ */ j(Zi, {
|
|
2180
2192
|
widget: e.widget,
|
|
2181
2193
|
timeRange: e.timeRange,
|
|
2182
2194
|
filters: e.filters
|
|
2183
2195
|
});
|
|
2184
2196
|
}
|
|
2185
|
-
function
|
|
2186
|
-
let r =
|
|
2197
|
+
function Zi({ widget: e, timeRange: t, filters: n }) {
|
|
2198
|
+
let r = Xr(), i = t ?? r?.timeRange, a = n ?? r?.filters ?? qr;
|
|
2187
2199
|
if (!i) throw Error("[gamma-lib-observability] <WidgetItem> requires a timeRange. Provide it as a prop or wrap the component in a <WidgetGroup>.");
|
|
2188
|
-
let o =
|
|
2200
|
+
let o = Gi(e.type);
|
|
2189
2201
|
return o ? b(o, {
|
|
2190
2202
|
widget: e,
|
|
2191
2203
|
timeRange: i,
|
|
2192
2204
|
filters: a
|
|
2193
|
-
}) : /* @__PURE__ */ j(
|
|
2205
|
+
}) : /* @__PURE__ */ j(Yi, { widget: e });
|
|
2194
2206
|
}
|
|
2195
|
-
function
|
|
2207
|
+
function Qi(e, t) {
|
|
2196
2208
|
if (t.type !== e.type) throw Error(`[gamma-lib-observability] <WidgetItem> data.type "${t.type}" does not match widget.type "${e.type}". The data.type must match the widget definition type.`);
|
|
2197
2209
|
switch (t.type) {
|
|
2198
|
-
case "metric": return /* @__PURE__ */ j(
|
|
2210
|
+
case "metric": return /* @__PURE__ */ j(Hi, {
|
|
2199
2211
|
value: t.value,
|
|
2200
2212
|
label: t.label,
|
|
2201
2213
|
state: t.state,
|
|
@@ -2203,12 +2215,12 @@ function Yi(e, t) {
|
|
|
2203
2215
|
trendSentiment: t.trendSentiment,
|
|
2204
2216
|
sparklineData: t.sparklineData
|
|
2205
2217
|
});
|
|
2206
|
-
case "metric-group": return /* @__PURE__ */ j(
|
|
2218
|
+
case "metric-group": return /* @__PURE__ */ j(zi, {
|
|
2207
2219
|
items: t.items,
|
|
2208
2220
|
state: t.state,
|
|
2209
2221
|
skeletonCount: t.skeletonCount
|
|
2210
2222
|
});
|
|
2211
|
-
case "cartesian": return /* @__PURE__ */ j(
|
|
2223
|
+
case "cartesian": return /* @__PURE__ */ j(wi, {
|
|
2212
2224
|
data: t.data,
|
|
2213
2225
|
config: t.config,
|
|
2214
2226
|
series: t.series,
|
|
@@ -2216,30 +2228,30 @@ function Yi(e, t) {
|
|
|
2216
2228
|
showTotal: t.showTotal,
|
|
2217
2229
|
totalLabel: t.totalLabel
|
|
2218
2230
|
});
|
|
2219
|
-
case "bar": return /* @__PURE__ */ j(
|
|
2231
|
+
case "bar": return /* @__PURE__ */ j(li, {
|
|
2220
2232
|
data: t.data,
|
|
2221
2233
|
config: t.config,
|
|
2222
2234
|
state: t.state,
|
|
2223
2235
|
layout: t.layout
|
|
2224
2236
|
});
|
|
2225
|
-
case "doughnut": return /* @__PURE__ */ j(
|
|
2237
|
+
case "doughnut": return /* @__PURE__ */ j(Oi, {
|
|
2226
2238
|
data: t.data,
|
|
2227
2239
|
config: t.config,
|
|
2228
2240
|
state: t.state
|
|
2229
2241
|
});
|
|
2230
|
-
default: return /* @__PURE__ */ j(
|
|
2242
|
+
default: return /* @__PURE__ */ j(Yi, { widget: e });
|
|
2231
2243
|
}
|
|
2232
2244
|
}
|
|
2233
2245
|
//#endregion
|
|
2234
2246
|
//#region src/dashboards/DashboardView.tsx
|
|
2235
|
-
var
|
|
2247
|
+
var $i = {
|
|
2236
2248
|
lg: 12,
|
|
2237
2249
|
md: 12,
|
|
2238
2250
|
sm: 12,
|
|
2239
2251
|
xs: 12,
|
|
2240
2252
|
xxs: 12
|
|
2241
2253
|
};
|
|
2242
|
-
function
|
|
2254
|
+
function ea({ dashboard: e, timeRange: t, filters: n = qr, editable: r = !1, rowHeight: i, breakpointCols: o = $i, onLayoutChange: s }) {
|
|
2243
2255
|
let c = a("observability.dashboards.write"), l = r && c, u = D(() => e.widgets.map((e) => ({
|
|
2244
2256
|
id: e.id,
|
|
2245
2257
|
x: e.layout.x,
|
|
@@ -2264,8 +2276,8 @@ function Zi({ dashboard: e, timeRange: t, filters: n = Ur, editable: r = !1, row
|
|
|
2264
2276
|
return r ? /* @__PURE__ */ j(_t, {
|
|
2265
2277
|
title: r.title,
|
|
2266
2278
|
subtitle: r.description,
|
|
2267
|
-
noPadding:
|
|
2268
|
-
children: /* @__PURE__ */ j(
|
|
2279
|
+
noPadding: ta(r),
|
|
2280
|
+
children: /* @__PURE__ */ j(Xi, {
|
|
2269
2281
|
widget: r,
|
|
2270
2282
|
timeRange: t,
|
|
2271
2283
|
filters: n
|
|
@@ -2275,32 +2287,32 @@ function Zi({ dashboard: e, timeRange: t, filters: n = Ur, editable: r = !1, row
|
|
|
2275
2287
|
})
|
|
2276
2288
|
});
|
|
2277
2289
|
}
|
|
2278
|
-
function
|
|
2290
|
+
function ta(e) {
|
|
2279
2291
|
return e.type === "cartesian" || e.type === "doughnut" || e.type === "bar";
|
|
2280
2292
|
}
|
|
2281
2293
|
//#endregion
|
|
2282
2294
|
//#region src/dashboards/WidgetGroup.tsx
|
|
2283
|
-
var
|
|
2295
|
+
var na = {
|
|
2284
2296
|
stretch: "items-stretch",
|
|
2285
2297
|
center: "items-center",
|
|
2286
2298
|
start: "items-start",
|
|
2287
2299
|
end: "items-end"
|
|
2288
2300
|
};
|
|
2289
|
-
function
|
|
2290
|
-
return /* @__PURE__ */ j(
|
|
2301
|
+
function ra({ timeRange: e, filters: t = qr, align: n = "stretch", children: r }) {
|
|
2302
|
+
return /* @__PURE__ */ j(Yr, {
|
|
2291
2303
|
value: D(() => ({
|
|
2292
2304
|
timeRange: e,
|
|
2293
2305
|
filters: t
|
|
2294
2306
|
}), [e, t]),
|
|
2295
2307
|
children: /* @__PURE__ */ j("div", {
|
|
2296
|
-
className: `flex flex-wrap gap-4 ${
|
|
2308
|
+
className: `flex flex-wrap gap-4 ${na[n]} *:min-w-48 *:flex-1`,
|
|
2297
2309
|
children: r
|
|
2298
2310
|
})
|
|
2299
2311
|
});
|
|
2300
2312
|
}
|
|
2301
2313
|
//#endregion
|
|
2302
2314
|
//#region src/dashboards/templates/dashboard-template.ts
|
|
2303
|
-
function
|
|
2315
|
+
function ia(e) {
|
|
2304
2316
|
if (!e.id) throw Error("[gamma-lib-observability] DashboardTemplate must have a non-empty id.");
|
|
2305
2317
|
if (!e.label) throw Error(`[gamma-lib-observability] DashboardTemplate "${e.id}" must have a non-empty label.`);
|
|
2306
2318
|
if (!e.dashboard) throw Error(`[gamma-lib-observability] DashboardTemplate "${e.id}" must define a dashboard or a factory function.`);
|
|
@@ -2313,37 +2325,37 @@ function ta(e) {
|
|
|
2313
2325
|
dashboard: e.dashboard
|
|
2314
2326
|
};
|
|
2315
2327
|
}
|
|
2316
|
-
function
|
|
2328
|
+
function aa(e, t) {
|
|
2317
2329
|
return typeof e.dashboard == "function" ? e.dashboard(t) : e.dashboard;
|
|
2318
2330
|
}
|
|
2319
|
-
function
|
|
2331
|
+
function oa(e, t) {
|
|
2320
2332
|
return e.filter((e) => e.requiredCapabilities?.length ? e.requiredCapabilities.every((e) => t[e]) : !0);
|
|
2321
2333
|
}
|
|
2322
2334
|
//#endregion
|
|
2323
2335
|
//#region src/dashboards/templates/DashboardTemplatesProvider.tsx
|
|
2324
|
-
var
|
|
2325
|
-
function
|
|
2336
|
+
var sa = y(null);
|
|
2337
|
+
function ca({ templates: e, children: t }) {
|
|
2326
2338
|
let n = D(() => e, [e]);
|
|
2327
|
-
return /* @__PURE__ */ j(
|
|
2339
|
+
return /* @__PURE__ */ j(sa.Provider, {
|
|
2328
2340
|
value: n,
|
|
2329
2341
|
children: t
|
|
2330
2342
|
});
|
|
2331
2343
|
}
|
|
2332
|
-
function
|
|
2333
|
-
let e = w(
|
|
2344
|
+
function la() {
|
|
2345
|
+
let e = w(sa), t = o();
|
|
2334
2346
|
if (!e) throw Error("[gamma-lib-observability] useDashboardTemplates must be used within a <DashboardTemplatesProvider>. Wrap your component tree with <DashboardTemplatesProvider templates={[...]}>.");
|
|
2335
|
-
return D(() =>
|
|
2347
|
+
return D(() => oa(e, t), [e, t]);
|
|
2336
2348
|
}
|
|
2337
|
-
function
|
|
2338
|
-
return
|
|
2349
|
+
function ua(e) {
|
|
2350
|
+
return la().find((t) => t.id === e);
|
|
2339
2351
|
}
|
|
2340
2352
|
//#endregion
|
|
2341
2353
|
//#region src/live/LiveIndicator.tsx
|
|
2342
|
-
function
|
|
2354
|
+
function da(e) {
|
|
2343
2355
|
return e < 6e4 ? `${Math.round(e / 1e3)}s` : `${Math.round(e / 6e4)}min`;
|
|
2344
2356
|
}
|
|
2345
|
-
function
|
|
2346
|
-
let n = Qt(), [r, i] = k(!0), a = C(() => i((e) => !e), []), o = n?.isLive ?? r, s = n?.intervalMs ?? 6e4, c = n?.toggle ?? a, l = e ?? n?.isFetching ?? !1, u = o ? `Live — refreshing every ${
|
|
2357
|
+
function fa({ isFetching: e, className: t }) {
|
|
2358
|
+
let n = Qt(), [r, i] = k(!0), a = C(() => i((e) => !e), []), o = n?.isLive ?? r, s = n?.intervalMs ?? 6e4, c = n?.toggle ?? a, l = e ?? n?.isFetching ?? !1, u = o ? `Live — refreshing every ${da(s)}` : "Paused — click to resume";
|
|
2347
2359
|
return /* @__PURE__ */ M(L, { children: [/* @__PURE__ */ j(B, {
|
|
2348
2360
|
asChild: !0,
|
|
2349
2361
|
children: /* @__PURE__ */ M("button", {
|
|
@@ -2364,9 +2376,9 @@ function la({ isFetching: e, className: t }) {
|
|
|
2364
2376
|
}
|
|
2365
2377
|
//#endregion
|
|
2366
2378
|
//#region src/routing/use-observability-url-state.ts
|
|
2367
|
-
function
|
|
2368
|
-
let [e, t] = Vt(), n = D(() =>
|
|
2369
|
-
let r =
|
|
2379
|
+
function pa() {
|
|
2380
|
+
let [e, t] = Vt(), n = D(() => Mn(e.get("q"), e.get("v")), [e]), r = C((e, n) => {
|
|
2381
|
+
let r = jn({
|
|
2370
2382
|
conditions: n,
|
|
2371
2383
|
timeRange: e
|
|
2372
2384
|
});
|
|
@@ -2376,7 +2388,7 @@ function ua() {
|
|
|
2376
2388
|
}, { replace: !0 });
|
|
2377
2389
|
}, [t]), i = C((e) => r(e, n.conditions), [r, n.conditions]), a = C((e) => r(n.timeRange, e), [r, n.timeRange]);
|
|
2378
2390
|
return {
|
|
2379
|
-
timeRange: n.timeRange ??
|
|
2391
|
+
timeRange: n.timeRange ?? Dn,
|
|
2380
2392
|
filters: n.conditions,
|
|
2381
2393
|
setTimeRange: i,
|
|
2382
2394
|
setFilters: a
|
|
@@ -2384,7 +2396,7 @@ function ua() {
|
|
|
2384
2396
|
}
|
|
2385
2397
|
//#endregion
|
|
2386
2398
|
//#region src/logs/LogSeverityBadge.tsx
|
|
2387
|
-
var
|
|
2399
|
+
var ma = {
|
|
2388
2400
|
trace: "outline",
|
|
2389
2401
|
debug: "secondary",
|
|
2390
2402
|
info: "highlight",
|
|
@@ -2392,19 +2404,19 @@ var da = {
|
|
|
2392
2404
|
error: "destructive",
|
|
2393
2405
|
fatal: "destructive"
|
|
2394
2406
|
};
|
|
2395
|
-
function
|
|
2396
|
-
return e in
|
|
2407
|
+
function ha(e) {
|
|
2408
|
+
return e in ma;
|
|
2397
2409
|
}
|
|
2398
|
-
function
|
|
2410
|
+
function ga({ level: e }) {
|
|
2399
2411
|
let t = e.toLowerCase();
|
|
2400
2412
|
return /* @__PURE__ */ j(P, {
|
|
2401
|
-
variant:
|
|
2413
|
+
variant: ha(t) ? ma[t] : "secondary",
|
|
2402
2414
|
children: e.toUpperCase()
|
|
2403
2415
|
});
|
|
2404
2416
|
}
|
|
2405
2417
|
//#endregion
|
|
2406
2418
|
//#region src/logs/map-log-columns.tsx
|
|
2407
|
-
var
|
|
2419
|
+
var _a = {
|
|
2408
2420
|
GET: "success",
|
|
2409
2421
|
POST: "default",
|
|
2410
2422
|
PUT: "warning",
|
|
@@ -2413,7 +2425,7 @@ var ma = {
|
|
|
2413
2425
|
HEAD: "secondary",
|
|
2414
2426
|
OPTIONS: "secondary"
|
|
2415
2427
|
};
|
|
2416
|
-
function
|
|
2428
|
+
function va(e) {
|
|
2417
2429
|
let t = typeof e == "number" ? new Date(e) : new Date(String(e));
|
|
2418
2430
|
return Number.isNaN(t.getTime()) ? String(e) : new Intl.DateTimeFormat("en-US", {
|
|
2419
2431
|
year: "numeric",
|
|
@@ -2426,11 +2438,11 @@ function ha(e) {
|
|
|
2426
2438
|
hour12: !1
|
|
2427
2439
|
}).format(t);
|
|
2428
2440
|
}
|
|
2429
|
-
function
|
|
2441
|
+
function ya(e) {
|
|
2430
2442
|
let t = typeof e == "number" ? e : Number(e);
|
|
2431
2443
|
return Number.isNaN(t) ? String(e) : t < 1e3 ? `${Math.round(t)}ms` : `${(t / 1e3).toFixed(2)}s`;
|
|
2432
2444
|
}
|
|
2433
|
-
function
|
|
2445
|
+
function ba(e, t, n) {
|
|
2434
2446
|
let r = e.href?.(t);
|
|
2435
2447
|
return r ? /* @__PURE__ */ j("a", {
|
|
2436
2448
|
href: r,
|
|
@@ -2441,7 +2453,7 @@ function _a(e, t, n) {
|
|
|
2441
2453
|
children: n
|
|
2442
2454
|
}) : n;
|
|
2443
2455
|
}
|
|
2444
|
-
function
|
|
2456
|
+
function xa(e, t) {
|
|
2445
2457
|
if (e.render) return e.render(t);
|
|
2446
2458
|
let n = e.value(t);
|
|
2447
2459
|
if (n == null) return /* @__PURE__ */ j("span", {
|
|
@@ -2450,17 +2462,17 @@ function va(e, t) {
|
|
|
2450
2462
|
});
|
|
2451
2463
|
let r;
|
|
2452
2464
|
switch (e.variant) {
|
|
2453
|
-
case "badge": return /* @__PURE__ */ j(
|
|
2465
|
+
case "badge": return /* @__PURE__ */ j(ga, { level: String(n) });
|
|
2454
2466
|
case "datetime":
|
|
2455
2467
|
r = /* @__PURE__ */ j("span", {
|
|
2456
2468
|
className: "font-mono text-xs",
|
|
2457
|
-
children:
|
|
2469
|
+
children: va(n)
|
|
2458
2470
|
});
|
|
2459
2471
|
break;
|
|
2460
2472
|
case "duration":
|
|
2461
2473
|
r = /* @__PURE__ */ j("span", {
|
|
2462
2474
|
className: "font-mono text-xs",
|
|
2463
|
-
children:
|
|
2475
|
+
children: ya(n)
|
|
2464
2476
|
});
|
|
2465
2477
|
break;
|
|
2466
2478
|
case "status-code": {
|
|
@@ -2474,7 +2486,7 @@ function va(e, t) {
|
|
|
2474
2486
|
case "http-method": {
|
|
2475
2487
|
let e = String(n).toUpperCase();
|
|
2476
2488
|
r = /* @__PURE__ */ j(P, {
|
|
2477
|
-
variant:
|
|
2489
|
+
variant: _a[e] ?? "secondary",
|
|
2478
2490
|
children: e
|
|
2479
2491
|
});
|
|
2480
2492
|
break;
|
|
@@ -2484,26 +2496,26 @@ function va(e, t) {
|
|
|
2484
2496
|
children: String(n)
|
|
2485
2497
|
});
|
|
2486
2498
|
}
|
|
2487
|
-
return
|
|
2499
|
+
return ba(e, t, r);
|
|
2488
2500
|
}
|
|
2489
|
-
function
|
|
2501
|
+
function Sa(e) {
|
|
2490
2502
|
return e.map((e) => ({
|
|
2491
2503
|
id: e.key,
|
|
2492
2504
|
accessorFn: (t) => e.value(t),
|
|
2493
2505
|
header: e.label,
|
|
2494
|
-
cell: ({ row: t }) =>
|
|
2506
|
+
cell: ({ row: t }) => xa(e, t.original),
|
|
2495
2507
|
enableSorting: !1,
|
|
2496
2508
|
enableHiding: !0
|
|
2497
2509
|
}));
|
|
2498
2510
|
}
|
|
2499
|
-
function
|
|
2511
|
+
function Ca(e) {
|
|
2500
2512
|
let t = {};
|
|
2501
2513
|
for (let n of e) n.defaultVisible === !1 && (t[n.key] = !1);
|
|
2502
2514
|
return t;
|
|
2503
2515
|
}
|
|
2504
2516
|
//#endregion
|
|
2505
2517
|
//#region src/logs/LogTable.tsx
|
|
2506
|
-
function
|
|
2518
|
+
function wa(e, t) {
|
|
2507
2519
|
try {
|
|
2508
2520
|
let n = localStorage.getItem(e);
|
|
2509
2521
|
return n ? {
|
|
@@ -2514,23 +2526,23 @@ function xa(e, t) {
|
|
|
2514
2526
|
return typeof console < "u" && console.warn("[LogTable] Failed to read column visibility:", e), t;
|
|
2515
2527
|
}
|
|
2516
2528
|
}
|
|
2517
|
-
function
|
|
2529
|
+
function Ta(e, t) {
|
|
2518
2530
|
try {
|
|
2519
2531
|
localStorage.setItem(e, JSON.stringify(t));
|
|
2520
2532
|
} catch (e) {
|
|
2521
2533
|
typeof console < "u" && console.warn("[LogTable] Failed to persist column visibility:", e);
|
|
2522
2534
|
}
|
|
2523
2535
|
}
|
|
2524
|
-
function
|
|
2536
|
+
function Ea({ columns: e, data: t, loading: n, totalCount: r, page: i, pageSize: a, onPageChange: o, onPageSizeChange: s, pageSizeOptions: c = [
|
|
2525
2537
|
10,
|
|
2526
2538
|
25,
|
|
2527
2539
|
50,
|
|
2528
2540
|
100
|
|
2529
2541
|
], onRowClick: l, toolbar: u, getRowId: d, columnVisibilityStorageKey: f }) {
|
|
2530
|
-
let p = D(() =>
|
|
2542
|
+
let p = D(() => Sa(e), [e]), m = D(() => Ca(e), [e]), [h, g] = k(() => f ? wa(f, m) : m), _ = C((e) => {
|
|
2531
2543
|
g((t) => {
|
|
2532
2544
|
let n = typeof e == "function" ? e(t) : e;
|
|
2533
|
-
return f &&
|
|
2545
|
+
return f && Ta(f, n), n;
|
|
2534
2546
|
});
|
|
2535
2547
|
}, [f]), v = C((e) => {
|
|
2536
2548
|
if (!l) return;
|
|
@@ -2593,26 +2605,26 @@ function Ca({ columns: e, data: t, loading: n, totalCount: r, page: i, pageSize:
|
|
|
2593
2605
|
}
|
|
2594
2606
|
//#endregion
|
|
2595
2607
|
//#region src/hooks/use-logs-histogram-query.ts
|
|
2596
|
-
var
|
|
2608
|
+
var Da = 40, Oa = "HTTP_REQUESTS", ka = "COUNT", Aa = {
|
|
2597
2609
|
from: 100,
|
|
2598
2610
|
to: 399
|
|
2599
|
-
},
|
|
2611
|
+
}, ja = {
|
|
2600
2612
|
from: 400,
|
|
2601
2613
|
to: 499
|
|
2602
|
-
},
|
|
2614
|
+
}, Ma = {
|
|
2603
2615
|
from: 500,
|
|
2604
2616
|
to: 599
|
|
2605
2617
|
};
|
|
2606
|
-
function
|
|
2607
|
-
let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o = q(
|
|
2608
|
-
name:
|
|
2609
|
-
measures: [
|
|
2618
|
+
function Na(e) {
|
|
2619
|
+
let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o = K(q(), r), s = J(t), c = D(() => Ci(s, Da), [s]), l = D(() => [{
|
|
2620
|
+
name: Oa,
|
|
2621
|
+
measures: [ka]
|
|
2610
2622
|
}], []), u = D(() => ["HTTP_STATUS"], []), d = D(() => [
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2623
|
+
Aa,
|
|
2624
|
+
ja,
|
|
2625
|
+
Ma
|
|
2614
2626
|
], []), f = N({
|
|
2615
|
-
queryKey: [...
|
|
2627
|
+
queryKey: [...G.timeSeries(l, s, c, o, u), "histogram"],
|
|
2616
2628
|
queryFn: ({ signal: e }) => a.fetchTimeSeries({
|
|
2617
2629
|
metrics: l,
|
|
2618
2630
|
timeRange: s,
|
|
@@ -2638,7 +2650,7 @@ function Aa(e) {
|
|
|
2638
2650
|
}
|
|
2639
2651
|
//#endregion
|
|
2640
2652
|
//#region src/logs/LogsHistogram.tsx
|
|
2641
|
-
var
|
|
2653
|
+
var Pa = {
|
|
2642
2654
|
"100-399": {
|
|
2643
2655
|
label: "1xx–3xx",
|
|
2644
2656
|
color: "var(--success)"
|
|
@@ -2651,9 +2663,9 @@ var ja = {
|
|
|
2651
2663
|
label: "5xx",
|
|
2652
2664
|
color: "var(--destructive)"
|
|
2653
2665
|
}
|
|
2654
|
-
},
|
|
2655
|
-
function
|
|
2656
|
-
let { data: t, isLoading: n, available: r } =
|
|
2666
|
+
}, Fa = "100-399", Ia = "400-499", La = "500-599";
|
|
2667
|
+
function Ra(e) {
|
|
2668
|
+
let { data: t, isLoading: n, available: r } = Na(e), i = D(() => za(t), [t]);
|
|
2657
2669
|
if (!r) return null;
|
|
2658
2670
|
let a = !n && i.length === 0;
|
|
2659
2671
|
return /* @__PURE__ */ M("div", {
|
|
@@ -2663,7 +2675,7 @@ function Fa(e) {
|
|
|
2663
2675
|
className: "mb-1 text-xs text-muted-foreground",
|
|
2664
2676
|
children: "Requests over time"
|
|
2665
2677
|
}), /* @__PURE__ */ j(St, {
|
|
2666
|
-
config:
|
|
2678
|
+
config: Pa,
|
|
2667
2679
|
className: "h-[120px] w-full",
|
|
2668
2680
|
children: /* @__PURE__ */ M(xt, {
|
|
2669
2681
|
data: i,
|
|
@@ -2673,15 +2685,15 @@ function Fa(e) {
|
|
|
2673
2685
|
children: [
|
|
2674
2686
|
/* @__PURE__ */ j(Ot, { orientation: "horizontal" }),
|
|
2675
2687
|
/* @__PURE__ */ j(bt, {
|
|
2676
|
-
dataKey:
|
|
2688
|
+
dataKey: Fa,
|
|
2677
2689
|
stackId: "volume"
|
|
2678
2690
|
}),
|
|
2679
2691
|
/* @__PURE__ */ j(bt, {
|
|
2680
|
-
dataKey:
|
|
2692
|
+
dataKey: Ia,
|
|
2681
2693
|
stackId: "volume"
|
|
2682
2694
|
}),
|
|
2683
2695
|
/* @__PURE__ */ j(bt, {
|
|
2684
|
-
dataKey:
|
|
2696
|
+
dataKey: La,
|
|
2685
2697
|
stackId: "volume"
|
|
2686
2698
|
}),
|
|
2687
2699
|
/* @__PURE__ */ j(Nt, {}),
|
|
@@ -2692,19 +2704,19 @@ function Fa(e) {
|
|
|
2692
2704
|
})]
|
|
2693
2705
|
});
|
|
2694
2706
|
}
|
|
2695
|
-
function
|
|
2707
|
+
function za(e) {
|
|
2696
2708
|
let t = /* @__PURE__ */ new Map();
|
|
2697
2709
|
for (let n of e) t.set(n.key, [n]);
|
|
2698
|
-
return
|
|
2710
|
+
return gi(t);
|
|
2699
2711
|
}
|
|
2700
2712
|
//#endregion
|
|
2701
2713
|
//#region src/logs/LogsExplorerPage.tsx
|
|
2702
|
-
var
|
|
2703
|
-
function
|
|
2704
|
-
let { timeRange: o, filters: s, setTimeRange: c, setFilters: l } =
|
|
2714
|
+
var Ba = 300, Va = "observability-logs-columns";
|
|
2715
|
+
function Ha({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFilterField: i, columnVisibilityStorageKey: a = Va }) {
|
|
2716
|
+
let { timeRange: o, filters: s, setTimeRange: c, setFilters: l } = pa(), u = _n(s, tn()), [d, f] = k(""), p = hn({
|
|
2705
2717
|
timeRange: o,
|
|
2706
2718
|
filters: s,
|
|
2707
|
-
search:
|
|
2719
|
+
search: ir(d, Ba) || void 0,
|
|
2708
2720
|
pageSize: n
|
|
2709
2721
|
}), m = /* @__PURE__ */ M("div", {
|
|
2710
2722
|
className: "relative flex-1",
|
|
@@ -2729,20 +2741,20 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2729
2741
|
children: [
|
|
2730
2742
|
/* @__PURE__ */ j("div", {
|
|
2731
2743
|
className: "flex flex-1 items-center gap-2",
|
|
2732
|
-
children: /* @__PURE__ */ j(
|
|
2744
|
+
children: /* @__PURE__ */ j(Kr, {
|
|
2733
2745
|
filters: u,
|
|
2734
2746
|
onFiltersChange: l,
|
|
2735
2747
|
scopeFilterField: i
|
|
2736
2748
|
})
|
|
2737
2749
|
}),
|
|
2738
|
-
/* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(
|
|
2739
|
-
/* @__PURE__ */ j(
|
|
2750
|
+
/* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(fa, { isFetching: p.isFetching }) }),
|
|
2751
|
+
/* @__PURE__ */ j(Vn, {
|
|
2740
2752
|
value: o,
|
|
2741
2753
|
onChange: c
|
|
2742
2754
|
})
|
|
2743
2755
|
]
|
|
2744
2756
|
}),
|
|
2745
|
-
/* @__PURE__ */ j(
|
|
2757
|
+
/* @__PURE__ */ j(Ra, {
|
|
2746
2758
|
timeRange: o,
|
|
2747
2759
|
filters: s
|
|
2748
2760
|
}),
|
|
@@ -2762,7 +2774,7 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2762
2774
|
})
|
|
2763
2775
|
]
|
|
2764
2776
|
}),
|
|
2765
|
-
/* @__PURE__ */ j(
|
|
2777
|
+
/* @__PURE__ */ j(Ea, {
|
|
2766
2778
|
columns: e,
|
|
2767
2779
|
data: p.data,
|
|
2768
2780
|
loading: p.isLoading,
|
|
@@ -2781,8 +2793,8 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2781
2793
|
}
|
|
2782
2794
|
//#endregion
|
|
2783
2795
|
//#region src/logs/build-logs-deep-link.ts
|
|
2784
|
-
function
|
|
2785
|
-
let r =
|
|
2796
|
+
function Ua({ basePath: e, timeRange: t, filters: n = [] }) {
|
|
2797
|
+
let r = jn({
|
|
2786
2798
|
conditions: n,
|
|
2787
2799
|
timeRange: t
|
|
2788
2800
|
}), i = `${e.replace(/\/+$/, "")}/logs`;
|
|
@@ -2792,7 +2804,7 @@ function Ba({ basePath: e, timeRange: t, filters: n = [] }) {
|
|
|
2792
2804
|
}
|
|
2793
2805
|
//#endregion
|
|
2794
2806
|
//#region src/logs/default-connection-log-columns.tsx
|
|
2795
|
-
var
|
|
2807
|
+
var Wa = {
|
|
2796
2808
|
HTTP_PROXY: {
|
|
2797
2809
|
icon: ot,
|
|
2798
2810
|
label: "HTTP"
|
|
@@ -2814,8 +2826,8 @@ var Va = {
|
|
|
2814
2826
|
label: "Webhook"
|
|
2815
2827
|
}
|
|
2816
2828
|
};
|
|
2817
|
-
function
|
|
2818
|
-
let t =
|
|
2829
|
+
function Ga(e) {
|
|
2830
|
+
let t = Wa[e.apiType];
|
|
2819
2831
|
if (t) {
|
|
2820
2832
|
let e = t.icon;
|
|
2821
2833
|
return /* @__PURE__ */ M("span", {
|
|
@@ -2828,7 +2840,7 @@ function Ha(e) {
|
|
|
2828
2840
|
children: [/* @__PURE__ */ j(tt, { className: "size-3.5" }), e.apiType]
|
|
2829
2841
|
});
|
|
2830
2842
|
}
|
|
2831
|
-
function
|
|
2843
|
+
function Ka(e, t) {
|
|
2832
2844
|
let n = e.replace(/\/$/, ""), r = [
|
|
2833
2845
|
{
|
|
2834
2846
|
key: "timestamp",
|
|
@@ -2889,7 +2901,7 @@ function Ua(e, t) {
|
|
|
2889
2901
|
key: "apiType",
|
|
2890
2902
|
label: "API Type",
|
|
2891
2903
|
value: (e) => e.apiType,
|
|
2892
|
-
render:
|
|
2904
|
+
render: Ga,
|
|
2893
2905
|
defaultVisible: !1
|
|
2894
2906
|
},
|
|
2895
2907
|
{
|
|
@@ -2963,14 +2975,14 @@ function Ua(e, t) {
|
|
|
2963
2975
|
}
|
|
2964
2976
|
//#endregion
|
|
2965
2977
|
//#region src/logs/detail/components/LogDetailCodeBlock.tsx
|
|
2966
|
-
var
|
|
2967
|
-
function X({ code: e, language: t = "json", maxHeight: n =
|
|
2978
|
+
var qa = 240;
|
|
2979
|
+
function X({ code: e, language: t = "json", maxHeight: n = qa }) {
|
|
2968
2980
|
let [r, i] = k(!1);
|
|
2969
2981
|
if (!e) return /* @__PURE__ */ j("p", {
|
|
2970
2982
|
className: "text-xs text-muted-foreground/70 py-3 italic",
|
|
2971
2983
|
children: "No body captured"
|
|
2972
2984
|
});
|
|
2973
|
-
let a =
|
|
2985
|
+
let a = Ja(e), o = a.split("\n").length > 12;
|
|
2974
2986
|
return /* @__PURE__ */ M("div", {
|
|
2975
2987
|
className: "relative rounded-lg border",
|
|
2976
2988
|
children: [
|
|
@@ -3003,7 +3015,7 @@ function X({ code: e, language: t = "json", maxHeight: n = Wa }) {
|
|
|
3003
3015
|
]
|
|
3004
3016
|
});
|
|
3005
3017
|
}
|
|
3006
|
-
function
|
|
3018
|
+
function Ja(e) {
|
|
3007
3019
|
try {
|
|
3008
3020
|
let t = JSON.parse(e);
|
|
3009
3021
|
return JSON.stringify(t, null, 2);
|
|
@@ -3044,7 +3056,7 @@ function Q({ headers: e }) {
|
|
|
3044
3056
|
}
|
|
3045
3057
|
//#endregion
|
|
3046
3058
|
//#region src/logs/detail/components/LogDetailJsonTree.tsx
|
|
3047
|
-
function
|
|
3059
|
+
function Ya({ data: e, onCopyAll: t }) {
|
|
3048
3060
|
let n = O(null), r = () => {
|
|
3049
3061
|
let n = JSON.stringify(e, null, 2);
|
|
3050
3062
|
navigator.clipboard.writeText(n).then(() => {
|
|
@@ -3085,7 +3097,7 @@ function Ka({ data: e, onCopyAll: t }) {
|
|
|
3085
3097
|
"aria-label": "Log attributes",
|
|
3086
3098
|
className: "rounded-md border p-3 text-xs font-mono",
|
|
3087
3099
|
onKeyDown: i,
|
|
3088
|
-
children: /* @__PURE__ */ j(
|
|
3100
|
+
children: /* @__PURE__ */ j(Xa, {
|
|
3089
3101
|
value: e,
|
|
3090
3102
|
depth: 0,
|
|
3091
3103
|
isRoot: !0
|
|
@@ -3093,9 +3105,9 @@ function Ka({ data: e, onCopyAll: t }) {
|
|
|
3093
3105
|
})]
|
|
3094
3106
|
});
|
|
3095
3107
|
}
|
|
3096
|
-
function
|
|
3108
|
+
function Xa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
|
|
3097
3109
|
let [a, o] = k(n < 2);
|
|
3098
|
-
if (t === null) return /* @__PURE__ */ j(
|
|
3110
|
+
if (t === null) return /* @__PURE__ */ j(Za, {
|
|
3099
3111
|
name: e,
|
|
3100
3112
|
value: "null",
|
|
3101
3113
|
className: "text-muted-foreground",
|
|
@@ -3168,7 +3180,7 @@ function qa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
|
|
|
3168
3180
|
a && /* @__PURE__ */ j("div", {
|
|
3169
3181
|
className: "ml-4 border-l border-muted pl-2",
|
|
3170
3182
|
role: "group",
|
|
3171
|
-
children: c.map(([e, t], r) => /* @__PURE__ */ j(
|
|
3183
|
+
children: c.map(([e, t], r) => /* @__PURE__ */ j(Xa, {
|
|
3172
3184
|
name: s ? void 0 : e,
|
|
3173
3185
|
value: t,
|
|
3174
3186
|
depth: n + 1,
|
|
@@ -3182,29 +3194,29 @@ function qa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
|
|
|
3182
3194
|
]
|
|
3183
3195
|
});
|
|
3184
3196
|
}
|
|
3185
|
-
return typeof t == "string" ? /* @__PURE__ */ j(
|
|
3197
|
+
return typeof t == "string" ? /* @__PURE__ */ j(Za, {
|
|
3186
3198
|
name: e,
|
|
3187
3199
|
value: `"${t}"`,
|
|
3188
3200
|
className: "text-green-600 dark:text-green-400",
|
|
3189
3201
|
isLast: i
|
|
3190
|
-
}) : typeof t == "number" ? /* @__PURE__ */ j(
|
|
3202
|
+
}) : typeof t == "number" ? /* @__PURE__ */ j(Za, {
|
|
3191
3203
|
name: e,
|
|
3192
3204
|
value: String(t),
|
|
3193
3205
|
className: "text-blue-600 dark:text-blue-400",
|
|
3194
3206
|
isLast: i
|
|
3195
|
-
}) : typeof t == "boolean" ? /* @__PURE__ */ j(
|
|
3207
|
+
}) : typeof t == "boolean" ? /* @__PURE__ */ j(Za, {
|
|
3196
3208
|
name: e,
|
|
3197
3209
|
value: String(t),
|
|
3198
3210
|
className: "text-amber-600 dark:text-amber-400",
|
|
3199
3211
|
isLast: i
|
|
3200
|
-
}) : /* @__PURE__ */ j(
|
|
3212
|
+
}) : /* @__PURE__ */ j(Za, {
|
|
3201
3213
|
name: e,
|
|
3202
3214
|
value: String(t),
|
|
3203
3215
|
className: "text-foreground",
|
|
3204
3216
|
isLast: i
|
|
3205
3217
|
});
|
|
3206
3218
|
}
|
|
3207
|
-
function
|
|
3219
|
+
function Za({ name: e, value: t, className: n, isLast: r }) {
|
|
3208
3220
|
return /* @__PURE__ */ M("div", {
|
|
3209
3221
|
className: "flex items-center py-px",
|
|
3210
3222
|
role: "treeitem",
|
|
@@ -3236,13 +3248,13 @@ function $({ items: e, onFilter: t }) {
|
|
|
3236
3248
|
let n = e.filter((e) => e.value !== void 0 && e.value !== null && e.value !== "");
|
|
3237
3249
|
return n.length === 0 ? null : /* @__PURE__ */ j("dl", {
|
|
3238
3250
|
className: "space-y-0 divide-y divide-border/50",
|
|
3239
|
-
children: n.map((e) => /* @__PURE__ */ j(
|
|
3251
|
+
children: n.map((e) => /* @__PURE__ */ j(Qa, {
|
|
3240
3252
|
item: e,
|
|
3241
3253
|
onFilter: t
|
|
3242
3254
|
}, e.label))
|
|
3243
3255
|
});
|
|
3244
3256
|
}
|
|
3245
|
-
function
|
|
3257
|
+
function Qa({ item: e, onFilter: t }) {
|
|
3246
3258
|
let n = String(e.value);
|
|
3247
3259
|
return /* @__PURE__ */ M("div", {
|
|
3248
3260
|
className: "group flex items-baseline gap-4 py-2.5",
|
|
@@ -3291,7 +3303,7 @@ function Ya({ item: e, onFilter: t }) {
|
|
|
3291
3303
|
}
|
|
3292
3304
|
//#endregion
|
|
3293
3305
|
//#region src/logs/detail/presets/connection-log-preset.tsx
|
|
3294
|
-
function
|
|
3306
|
+
function $a(e) {
|
|
3295
3307
|
return {
|
|
3296
3308
|
type: "preset",
|
|
3297
3309
|
resolve: (t) => {
|
|
@@ -3325,7 +3337,7 @@ function Xa(e) {
|
|
|
3325
3337
|
key: "overview",
|
|
3326
3338
|
title: "Overview",
|
|
3327
3339
|
defaultOpen: !0,
|
|
3328
|
-
render: () => /* @__PURE__ */ j(
|
|
3340
|
+
render: () => /* @__PURE__ */ j(eo, {
|
|
3329
3341
|
log: n,
|
|
3330
3342
|
basePath: e?.basePath,
|
|
3331
3343
|
extraFields: e?.extraFields
|
|
@@ -3334,23 +3346,23 @@ function Xa(e) {
|
|
|
3334
3346
|
key: "request",
|
|
3335
3347
|
title: "Request",
|
|
3336
3348
|
defaultOpen: !1,
|
|
3337
|
-
render: () => /* @__PURE__ */ j(
|
|
3349
|
+
render: () => /* @__PURE__ */ j(to, { log: n })
|
|
3338
3350
|
}), i.has("response") || a.push({
|
|
3339
3351
|
key: "response",
|
|
3340
3352
|
title: "Response",
|
|
3341
3353
|
defaultOpen: !1,
|
|
3342
|
-
render: () => /* @__PURE__ */ j(
|
|
3354
|
+
render: () => /* @__PURE__ */ j(no, { log: n })
|
|
3343
3355
|
}), !i.has("errors") && (n.errorKey || n.warnings && n.warnings.length > 0) && a.push({
|
|
3344
3356
|
key: "errors",
|
|
3345
3357
|
title: "Issues",
|
|
3346
3358
|
defaultOpen: !0,
|
|
3347
3359
|
badge: () => (n.warnings?.length ?? 0) + +!!n.errorKey,
|
|
3348
|
-
render: () => /* @__PURE__ */ j(
|
|
3360
|
+
render: () => /* @__PURE__ */ j(ro, { log: n })
|
|
3349
3361
|
}), i.has("raw") || a.push({
|
|
3350
3362
|
key: "raw",
|
|
3351
3363
|
title: "Raw JSON",
|
|
3352
3364
|
defaultOpen: !1,
|
|
3353
|
-
render: () => /* @__PURE__ */ j(
|
|
3365
|
+
render: () => /* @__PURE__ */ j(Ya, { data: n })
|
|
3354
3366
|
}), {
|
|
3355
3367
|
header: {
|
|
3356
3368
|
method: () => n.method,
|
|
@@ -3364,7 +3376,7 @@ function Xa(e) {
|
|
|
3364
3376
|
}
|
|
3365
3377
|
};
|
|
3366
3378
|
}
|
|
3367
|
-
function
|
|
3379
|
+
function eo({ log: e, basePath: t, extraFields: n }) {
|
|
3368
3380
|
let r = t?.replace(/\/$/, "") ?? "";
|
|
3369
3381
|
return /* @__PURE__ */ j($, { items: [
|
|
3370
3382
|
{
|
|
@@ -3435,7 +3447,7 @@ function Za({ log: e, basePath: t, extraFields: n }) {
|
|
|
3435
3447
|
})) : []
|
|
3436
3448
|
] });
|
|
3437
3449
|
}
|
|
3438
|
-
function
|
|
3450
|
+
function to({ log: e }) {
|
|
3439
3451
|
let t = e.entrypointRequest, n = e.endpointRequest;
|
|
3440
3452
|
return !t && !n ? /* @__PURE__ */ j(Z, { message: "No request details captured" }) : /* @__PURE__ */ M("div", {
|
|
3441
3453
|
className: "space-y-4",
|
|
@@ -3476,7 +3488,7 @@ function Qa({ log: e }) {
|
|
|
3476
3488
|
})]
|
|
3477
3489
|
});
|
|
3478
3490
|
}
|
|
3479
|
-
function
|
|
3491
|
+
function no({ log: e }) {
|
|
3480
3492
|
let t = e.endpointResponse, n = e.entrypointResponse;
|
|
3481
3493
|
return !t && !n ? /* @__PURE__ */ j(Z, { message: "No response details captured" }) : /* @__PURE__ */ M("div", {
|
|
3482
3494
|
className: "space-y-4",
|
|
@@ -3511,7 +3523,7 @@ function $a({ log: e }) {
|
|
|
3511
3523
|
})]
|
|
3512
3524
|
});
|
|
3513
3525
|
}
|
|
3514
|
-
function
|
|
3526
|
+
function ro({ log: e }) {
|
|
3515
3527
|
return /* @__PURE__ */ M("div", {
|
|
3516
3528
|
className: "space-y-3",
|
|
3517
3529
|
children: [e.errorKey && /* @__PURE__ */ M("div", {
|
|
@@ -3561,9 +3573,9 @@ function eo({ log: e }) {
|
|
|
3561
3573
|
}
|
|
3562
3574
|
//#endregion
|
|
3563
3575
|
//#region src/logs/detail/presets/message-log-preset.tsx
|
|
3564
|
-
var
|
|
3565
|
-
function
|
|
3566
|
-
let t = e?.messagesPageSize ??
|
|
3576
|
+
var io = 5;
|
|
3577
|
+
function ao(e) {
|
|
3578
|
+
let t = e?.messagesPageSize ?? io;
|
|
3567
3579
|
return {
|
|
3568
3580
|
type: "preset",
|
|
3569
3581
|
resolve: (e) => {
|
|
@@ -3571,19 +3583,19 @@ function no(e) {
|
|
|
3571
3583
|
key: "overview",
|
|
3572
3584
|
title: "Overview",
|
|
3573
3585
|
defaultOpen: !0,
|
|
3574
|
-
render: () => /* @__PURE__ */ j(
|
|
3586
|
+
render: () => /* @__PURE__ */ j(oo, { log: n })
|
|
3575
3587
|
}, {
|
|
3576
3588
|
key: "connection",
|
|
3577
3589
|
title: "Connection Logs",
|
|
3578
3590
|
defaultOpen: !1,
|
|
3579
|
-
render: () => /* @__PURE__ */ j(
|
|
3591
|
+
render: () => /* @__PURE__ */ j(so, { log: n })
|
|
3580
3592
|
}];
|
|
3581
3593
|
return n.messages && n.messages.length > 0 && r.push({
|
|
3582
3594
|
key: "messages",
|
|
3583
3595
|
title: "Messages",
|
|
3584
3596
|
defaultOpen: !0,
|
|
3585
3597
|
badge: () => n.messages?.length,
|
|
3586
|
-
render: () => /* @__PURE__ */ j(
|
|
3598
|
+
render: () => /* @__PURE__ */ j(co, {
|
|
3587
3599
|
messages: n.messages,
|
|
3588
3600
|
pageSize: t
|
|
3589
3601
|
})
|
|
@@ -3591,7 +3603,7 @@ function no(e) {
|
|
|
3591
3603
|
key: "raw",
|
|
3592
3604
|
title: "Raw JSON",
|
|
3593
3605
|
defaultOpen: !1,
|
|
3594
|
-
render: () => /* @__PURE__ */ j(
|
|
3606
|
+
render: () => /* @__PURE__ */ j(Ya, { data: n })
|
|
3595
3607
|
}), {
|
|
3596
3608
|
header: {
|
|
3597
3609
|
method: () => void 0,
|
|
@@ -3605,7 +3617,7 @@ function no(e) {
|
|
|
3605
3617
|
}
|
|
3606
3618
|
};
|
|
3607
3619
|
}
|
|
3608
|
-
function
|
|
3620
|
+
function oo({ log: e }) {
|
|
3609
3621
|
return /* @__PURE__ */ j($, { items: [
|
|
3610
3622
|
{
|
|
3611
3623
|
label: "API",
|
|
@@ -3646,7 +3658,7 @@ function ro({ log: e }) {
|
|
|
3646
3658
|
}] : []
|
|
3647
3659
|
] });
|
|
3648
3660
|
}
|
|
3649
|
-
function
|
|
3661
|
+
function so({ log: e }) {
|
|
3650
3662
|
return e.entrypointRequest || e.endpointRequest || e.entrypointResponse || e.endpointResponse ? /* @__PURE__ */ M("div", {
|
|
3651
3663
|
className: "space-y-4",
|
|
3652
3664
|
children: [
|
|
@@ -3719,11 +3731,11 @@ function io({ log: e }) {
|
|
|
3719
3731
|
]
|
|
3720
3732
|
}) : /* @__PURE__ */ j(Z, { message: "No connection log details captured" });
|
|
3721
3733
|
}
|
|
3722
|
-
function
|
|
3734
|
+
function co({ messages: e, pageSize: t }) {
|
|
3723
3735
|
let [n, r] = k(t), i = e.slice(0, n), a = n < e.length;
|
|
3724
3736
|
return /* @__PURE__ */ M("div", {
|
|
3725
3737
|
className: "space-y-3",
|
|
3726
|
-
children: [i.map((e, t) => /* @__PURE__ */ j(
|
|
3738
|
+
children: [i.map((e, t) => /* @__PURE__ */ j(lo, { message: e }, e.id ?? t)), a && /* @__PURE__ */ M("button", {
|
|
3727
3739
|
onClick: () => r((e) => e + t),
|
|
3728
3740
|
className: "w-full rounded-md border py-2 text-xs text-muted-foreground hover:bg-muted/50 transition-colors",
|
|
3729
3741
|
children: [
|
|
@@ -3734,7 +3746,7 @@ function ao({ messages: e, pageSize: t }) {
|
|
|
3734
3746
|
})]
|
|
3735
3747
|
});
|
|
3736
3748
|
}
|
|
3737
|
-
function
|
|
3749
|
+
function lo({ message: e }) {
|
|
3738
3750
|
return /* @__PURE__ */ M("div", {
|
|
3739
3751
|
className: "rounded-md border p-3 space-y-2",
|
|
3740
3752
|
children: [
|
|
@@ -3782,7 +3794,7 @@ function oo({ message: e }) {
|
|
|
3782
3794
|
}
|
|
3783
3795
|
//#endregion
|
|
3784
3796
|
//#region src/logs/detail/presets/webhook-log-preset.tsx
|
|
3785
|
-
function
|
|
3797
|
+
function uo(e) {
|
|
3786
3798
|
return {
|
|
3787
3799
|
type: "preset",
|
|
3788
3800
|
resolve: (t) => {
|
|
@@ -3807,7 +3819,7 @@ function so(e) {
|
|
|
3807
3819
|
key: "overview",
|
|
3808
3820
|
title: "Overview",
|
|
3809
3821
|
defaultOpen: !0,
|
|
3810
|
-
render: () => /* @__PURE__ */ j(
|
|
3822
|
+
render: () => /* @__PURE__ */ j(fo, {
|
|
3811
3823
|
log: n,
|
|
3812
3824
|
basePath: e?.basePath
|
|
3813
3825
|
})
|
|
@@ -3817,22 +3829,22 @@ function so(e) {
|
|
|
3817
3829
|
title: "Delivery Attempts",
|
|
3818
3830
|
defaultOpen: !0,
|
|
3819
3831
|
badge: () => n.retryTimeline?.length,
|
|
3820
|
-
render: () => /* @__PURE__ */ j(
|
|
3832
|
+
render: () => /* @__PURE__ */ j(po, { attempts: n.retryTimeline })
|
|
3821
3833
|
}), i.push({
|
|
3822
3834
|
key: "request",
|
|
3823
3835
|
title: "Request Sent by Gateway",
|
|
3824
3836
|
defaultOpen: !1,
|
|
3825
|
-
render: () => /* @__PURE__ */ j(
|
|
3837
|
+
render: () => /* @__PURE__ */ j(mo, { log: n })
|
|
3826
3838
|
}), i.push({
|
|
3827
3839
|
key: "response",
|
|
3828
3840
|
title: "Response from Callback",
|
|
3829
3841
|
defaultOpen: !1,
|
|
3830
|
-
render: () => /* @__PURE__ */ j(
|
|
3842
|
+
render: () => /* @__PURE__ */ j(ho, { log: n })
|
|
3831
3843
|
}), i.push({
|
|
3832
3844
|
key: "raw",
|
|
3833
3845
|
title: "Raw JSON",
|
|
3834
3846
|
defaultOpen: !1,
|
|
3835
|
-
render: () => /* @__PURE__ */ j(
|
|
3847
|
+
render: () => /* @__PURE__ */ j(Ya, { data: n })
|
|
3836
3848
|
}), {
|
|
3837
3849
|
header: {
|
|
3838
3850
|
method: () => n.method,
|
|
@@ -3846,7 +3858,7 @@ function so(e) {
|
|
|
3846
3858
|
}
|
|
3847
3859
|
};
|
|
3848
3860
|
}
|
|
3849
|
-
function
|
|
3861
|
+
function fo({ log: e, basePath: t }) {
|
|
3850
3862
|
let n = t?.replace(/\/$/, "") ?? "";
|
|
3851
3863
|
return /* @__PURE__ */ j($, { items: [
|
|
3852
3864
|
{
|
|
@@ -3883,7 +3895,7 @@ function co({ log: e, basePath: t }) {
|
|
|
3883
3895
|
}] : []
|
|
3884
3896
|
] });
|
|
3885
3897
|
}
|
|
3886
|
-
function
|
|
3898
|
+
function po({ attempts: e }) {
|
|
3887
3899
|
return /* @__PURE__ */ j("div", {
|
|
3888
3900
|
className: "rounded-md border",
|
|
3889
3901
|
children: /* @__PURE__ */ M("table", {
|
|
@@ -3935,13 +3947,13 @@ function lo({ attempts: e }) {
|
|
|
3935
3947
|
})
|
|
3936
3948
|
});
|
|
3937
3949
|
}
|
|
3938
|
-
function
|
|
3950
|
+
function mo({ log: e }) {
|
|
3939
3951
|
return !e.requestHeaders && !e.requestBody ? /* @__PURE__ */ j(Z, { message: "No request details captured" }) : /* @__PURE__ */ M("div", {
|
|
3940
3952
|
className: "space-y-2",
|
|
3941
3953
|
children: [/* @__PURE__ */ j(Q, { headers: e.requestHeaders }), /* @__PURE__ */ j(X, { code: e.requestBody })]
|
|
3942
3954
|
});
|
|
3943
3955
|
}
|
|
3944
|
-
function
|
|
3956
|
+
function ho({ log: e }) {
|
|
3945
3957
|
return !e.responseHeaders && !e.responseBody ? /* @__PURE__ */ j(Z, { message: "No response details captured" }) : /* @__PURE__ */ M("div", {
|
|
3946
3958
|
className: "space-y-2",
|
|
3947
3959
|
children: [/* @__PURE__ */ j(Q, { headers: e.responseHeaders }), /* @__PURE__ */ j(X, { code: e.responseBody })]
|
|
@@ -3949,16 +3961,16 @@ function fo({ log: e }) {
|
|
|
3949
3961
|
}
|
|
3950
3962
|
//#endregion
|
|
3951
3963
|
//#region src/logs/detail/types.ts
|
|
3952
|
-
function
|
|
3964
|
+
function go(e) {
|
|
3953
3965
|
return "discriminant" in e;
|
|
3954
3966
|
}
|
|
3955
3967
|
//#endregion
|
|
3956
3968
|
//#region src/logs/detail/define-log-detail.ts
|
|
3957
|
-
function
|
|
3969
|
+
function _o(e) {
|
|
3958
3970
|
return "preset" in e;
|
|
3959
3971
|
}
|
|
3960
|
-
function
|
|
3961
|
-
return
|
|
3972
|
+
function vo(e) {
|
|
3973
|
+
return _o(e) ? {
|
|
3962
3974
|
preset: e.preset,
|
|
3963
3975
|
contextChart: e.contextChart
|
|
3964
3976
|
} : {
|
|
@@ -3967,31 +3979,31 @@ function ho(e) {
|
|
|
3967
3979
|
contextChart: e.contextChart
|
|
3968
3980
|
};
|
|
3969
3981
|
}
|
|
3970
|
-
function
|
|
3971
|
-
if (
|
|
3982
|
+
function yo(e, t) {
|
|
3983
|
+
if (go(e)) {
|
|
3972
3984
|
let n = e.discriminant(t);
|
|
3973
3985
|
return e.variants[n] ?? null;
|
|
3974
3986
|
}
|
|
3975
3987
|
return e.preset;
|
|
3976
3988
|
}
|
|
3977
|
-
function
|
|
3989
|
+
function bo(e, t) {
|
|
3978
3990
|
return e.type === "preset" ? e.resolve(t) : null;
|
|
3979
3991
|
}
|
|
3980
|
-
function
|
|
3981
|
-
let { basePath: t, connectionLog: n, messageLog: r, webhookLog: i, extraVariants: a, contextChart: o } = e, s =
|
|
3992
|
+
function xo(e) {
|
|
3993
|
+
let { basePath: t, connectionLog: n, messageLog: r, webhookLog: i, extraVariants: a, contextChart: o } = e, s = $a({
|
|
3982
3994
|
...n,
|
|
3983
3995
|
basePath: t
|
|
3984
|
-
}), c =
|
|
3996
|
+
}), c = uo({
|
|
3985
3997
|
...i,
|
|
3986
3998
|
basePath: t
|
|
3987
3999
|
});
|
|
3988
|
-
return
|
|
4000
|
+
return vo({
|
|
3989
4001
|
discriminant: (e) => e.apiType,
|
|
3990
4002
|
variants: {
|
|
3991
4003
|
HTTP_PROXY: s,
|
|
3992
4004
|
LLM_PROXY: s,
|
|
3993
4005
|
MCP_PROXY: s,
|
|
3994
|
-
MESSAGE:
|
|
4006
|
+
MESSAGE: ao(r),
|
|
3995
4007
|
WEBHOOK: c,
|
|
3996
4008
|
...a
|
|
3997
4009
|
},
|
|
@@ -4004,17 +4016,17 @@ function vo(e) {
|
|
|
4004
4016
|
}
|
|
4005
4017
|
//#endregion
|
|
4006
4018
|
//#region src/logs/detail/components/LogDetailContextChart.tsx
|
|
4007
|
-
var
|
|
4008
|
-
function
|
|
4019
|
+
var So = 900 * 1e3, Co = "gateway_response_time";
|
|
4020
|
+
function wo({ apiId: e, timestamp: t, metric: r = Co }) {
|
|
4009
4021
|
let i = n(), a = D(() => {
|
|
4010
4022
|
let e = new Date(t).getTime();
|
|
4011
4023
|
return {
|
|
4012
4024
|
type: "absolute",
|
|
4013
|
-
from: e -
|
|
4014
|
-
to: e +
|
|
4025
|
+
from: e - So,
|
|
4026
|
+
to: e + So
|
|
4015
4027
|
};
|
|
4016
|
-
}, [t]), o = D(() =>
|
|
4017
|
-
queryKey:
|
|
4028
|
+
}, [t]), o = D(() => Ci(a, 30), [a]), { data: s, isLoading: c } = N({
|
|
4029
|
+
queryKey: G.timeSeries([{ name: r }], a, o, [{
|
|
4018
4030
|
field: "API_ID",
|
|
4019
4031
|
operator: "eq",
|
|
4020
4032
|
value: [e],
|
|
@@ -4040,7 +4052,7 @@ function xo({ apiId: e, timestamp: t, metric: r = bo }) {
|
|
|
4040
4052
|
} }), [l]), d = D(() => {
|
|
4041
4053
|
if (!s) return [];
|
|
4042
4054
|
let e = /* @__PURE__ */ new Map();
|
|
4043
|
-
return e.set(l, s),
|
|
4055
|
+
return e.set(l, s), gi(e);
|
|
4044
4056
|
}, [s, l]), f = D(() => {
|
|
4045
4057
|
let e = new Date(t).getTime(), n = s?.[0]?.points;
|
|
4046
4058
|
if (d.length === 0 || !n?.length) return;
|
|
@@ -4095,18 +4107,18 @@ function xo({ apiId: e, timestamp: t, metric: r = bo }) {
|
|
|
4095
4107
|
}
|
|
4096
4108
|
//#endregion
|
|
4097
4109
|
//#region src/logs/detail/components/LogDetailDrawerShell.tsx
|
|
4098
|
-
var
|
|
4110
|
+
var To = y({
|
|
4099
4111
|
expanded: !1,
|
|
4100
4112
|
setExpanded: () => {}
|
|
4101
4113
|
});
|
|
4102
|
-
function
|
|
4103
|
-
return w(
|
|
4114
|
+
function Eo() {
|
|
4115
|
+
return w(To);
|
|
4104
4116
|
}
|
|
4105
|
-
var
|
|
4106
|
-
function
|
|
4107
|
-
return e === document.body ? !0 : e.closest(
|
|
4117
|
+
var Do = "[role=\"tree\"], [role=\"treeitem\"], input, textarea, select, [contenteditable]";
|
|
4118
|
+
function Oo(e) {
|
|
4119
|
+
return e === document.body ? !0 : e.closest(Do) ? !1 : !!e.closest("[data-log-detail-shell]");
|
|
4108
4120
|
}
|
|
4109
|
-
function
|
|
4121
|
+
function ko({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, children: i }) {
|
|
4110
4122
|
let [a, o] = k(!1), s = C(() => {
|
|
4111
4123
|
o(!1), t();
|
|
4112
4124
|
}, [t]), c = C((e) => {
|
|
@@ -4117,10 +4129,10 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
|
|
|
4117
4129
|
t.preventDefault(), a ? o(!1) : s();
|
|
4118
4130
|
break;
|
|
4119
4131
|
case "ArrowUp":
|
|
4120
|
-
|
|
4132
|
+
Oo(t.target) && (t.preventDefault(), n?.());
|
|
4121
4133
|
break;
|
|
4122
4134
|
case "ArrowDown":
|
|
4123
|
-
|
|
4135
|
+
Oo(t.target) && (t.preventDefault(), r?.());
|
|
4124
4136
|
break;
|
|
4125
4137
|
}
|
|
4126
4138
|
}, [
|
|
@@ -4135,7 +4147,7 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
|
|
|
4135
4147
|
expanded: a,
|
|
4136
4148
|
setExpanded: o
|
|
4137
4149
|
}), [a]);
|
|
4138
|
-
return /* @__PURE__ */ j(
|
|
4150
|
+
return /* @__PURE__ */ j(To.Provider, {
|
|
4139
4151
|
value: f,
|
|
4140
4152
|
children: /* @__PURE__ */ j(ze, {
|
|
4141
4153
|
open: e,
|
|
@@ -4171,7 +4183,7 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
|
|
|
4171
4183
|
}
|
|
4172
4184
|
//#endregion
|
|
4173
4185
|
//#region src/logs/detail/components/LogDetailHeader.tsx
|
|
4174
|
-
var
|
|
4186
|
+
var Ao = {
|
|
4175
4187
|
GET: "success",
|
|
4176
4188
|
POST: "default",
|
|
4177
4189
|
PUT: "warning",
|
|
@@ -4180,10 +4192,10 @@ var Do = {
|
|
|
4180
4192
|
HEAD: "secondary",
|
|
4181
4193
|
OPTIONS: "secondary"
|
|
4182
4194
|
};
|
|
4183
|
-
function
|
|
4195
|
+
function jo(e) {
|
|
4184
4196
|
return e >= 500 ? "text-destructive" : e >= 400 ? "text-warning" : "text-success";
|
|
4185
4197
|
}
|
|
4186
|
-
function
|
|
4198
|
+
function Mo(e) {
|
|
4187
4199
|
let t = new Date(e), n = (/* @__PURE__ */ new Date()).getTime() - t.getTime(), r = Math.floor(n / 1e3), i;
|
|
4188
4200
|
i = r < 60 ? `${r}s ago` : r < 3600 ? `${Math.floor(r / 60)}m ago` : r < 86400 ? `${Math.floor(r / 3600)}h ago` : t.toLocaleDateString(void 0, {
|
|
4189
4201
|
month: "short",
|
|
@@ -4203,10 +4215,10 @@ function ko(e) {
|
|
|
4203
4215
|
full: a
|
|
4204
4216
|
};
|
|
4205
4217
|
}
|
|
4206
|
-
function
|
|
4207
|
-
let { expanded: d, setExpanded: f } =
|
|
4218
|
+
function No({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigatePrev: a, onNavigateNext: o, onCopyJson: s, hasPrev: c = !0, hasNext: l = !0, showExpandToggle: u = !0 }) {
|
|
4219
|
+
let { expanded: d, setExpanded: f } = Eo(), p = C((e) => {
|
|
4208
4220
|
e.key === "Escape" && i?.();
|
|
4209
|
-
}, [i]), m = r ?
|
|
4221
|
+
}, [i]), m = r ? Mo(r) : null;
|
|
4210
4222
|
return /* @__PURE__ */ M("div", {
|
|
4211
4223
|
className: "sticky top-0 z-10 border-b bg-background/95 backdrop-blur-sm",
|
|
4212
4224
|
role: "toolbar",
|
|
@@ -4272,11 +4284,11 @@ function Ao({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigate
|
|
|
4272
4284
|
className: "flex items-center gap-3",
|
|
4273
4285
|
children: [
|
|
4274
4286
|
e && /* @__PURE__ */ j(P, {
|
|
4275
|
-
variant:
|
|
4287
|
+
variant: Ao[e] ?? "secondary",
|
|
4276
4288
|
children: e
|
|
4277
4289
|
}),
|
|
4278
4290
|
t !== void 0 && /* @__PURE__ */ j("span", {
|
|
4279
|
-
className: `font-mono text-sm font-semibold tabular-nums ${
|
|
4291
|
+
className: `font-mono text-sm font-semibold tabular-nums ${jo(t)}`,
|
|
4280
4292
|
children: t
|
|
4281
4293
|
}),
|
|
4282
4294
|
m && /* @__PURE__ */ j(z, { children: /* @__PURE__ */ M(L, { children: [/* @__PURE__ */ j(B, {
|
|
@@ -4308,9 +4320,9 @@ function Ao({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigate
|
|
|
4308
4320
|
}
|
|
4309
4321
|
//#endregion
|
|
4310
4322
|
//#region src/logs/detail/components/LogDetailMetrics.tsx
|
|
4311
|
-
function
|
|
4323
|
+
function Po({ items: e }) {
|
|
4312
4324
|
let t = e.filter((e) => e.value !== void 0 && e.value !== null), n = D(() => t.map((e) => ({
|
|
4313
|
-
value:
|
|
4325
|
+
value: Fo(e.value, e.unit),
|
|
4314
4326
|
label: e.label
|
|
4315
4327
|
})), [t]);
|
|
4316
4328
|
return n.length === 0 ? null : /* @__PURE__ */ j("div", {
|
|
@@ -4323,12 +4335,12 @@ function jo({ items: e }) {
|
|
|
4323
4335
|
})
|
|
4324
4336
|
});
|
|
4325
4337
|
}
|
|
4326
|
-
function
|
|
4338
|
+
function Fo(e, t) {
|
|
4327
4339
|
return t === "ms" || !t ? e >= 1e4 ? `${(e / 1e3).toFixed(1)}s` : e >= 1e3 ? `${(e / 1e3).toFixed(2)}s` : `${Math.round(e)}ms` : t === "B" ? e >= 1024 * 1024 ? `${(e / (1024 * 1024)).toFixed(1)} MB` : e >= 1024 ? `${(e / 1024).toFixed(1)} KB` : `${e} B` : t === "" ? String(e) : `${e}${t}`;
|
|
4328
4340
|
}
|
|
4329
4341
|
//#endregion
|
|
4330
4342
|
//#region src/logs/detail/components/LogDetailSection.tsx
|
|
4331
|
-
function
|
|
4343
|
+
function Io({ children: e, defaultValue: t }) {
|
|
4332
4344
|
let [n, r] = k(t ?? "");
|
|
4333
4345
|
return /* @__PURE__ */ j(ne, {
|
|
4334
4346
|
type: "single",
|
|
@@ -4338,7 +4350,7 @@ function No({ children: e, defaultValue: t }) {
|
|
|
4338
4350
|
children: e
|
|
4339
4351
|
});
|
|
4340
4352
|
}
|
|
4341
|
-
function
|
|
4353
|
+
function Lo({ title: e, badge: t, children: n }) {
|
|
4342
4354
|
return /* @__PURE__ */ M(ie, {
|
|
4343
4355
|
value: e,
|
|
4344
4356
|
className: "border-b last:border-b-0",
|
|
@@ -4360,26 +4372,26 @@ function Po({ title: e, badge: t, children: n }) {
|
|
|
4360
4372
|
}
|
|
4361
4373
|
//#endregion
|
|
4362
4374
|
//#region src/logs/detail/components/LogDetailContent.tsx
|
|
4363
|
-
var
|
|
4364
|
-
Header:
|
|
4365
|
-
Section:
|
|
4375
|
+
var Ro = {
|
|
4376
|
+
Header: No,
|
|
4377
|
+
Section: Lo,
|
|
4366
4378
|
KeyValueGrid: $,
|
|
4367
4379
|
HeadersTable: Q,
|
|
4368
4380
|
CodeBlock: X,
|
|
4369
|
-
Metrics:
|
|
4381
|
+
Metrics: Po
|
|
4370
4382
|
};
|
|
4371
|
-
function
|
|
4372
|
-
let f =
|
|
4383
|
+
function zo({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigatePrev: a, onNavigateNext: o, onFilter: s, hasPrev: c, hasNext: l, showExpandToggle: u = !0, showNavigation: d = !0 }) {
|
|
4384
|
+
let f = yo(e, t);
|
|
4373
4385
|
if (!f) return /* @__PURE__ */ j("div", {
|
|
4374
4386
|
className: "flex items-center justify-center p-8 text-sm text-muted-foreground",
|
|
4375
4387
|
children: "No detail view configured for this log type."
|
|
4376
4388
|
});
|
|
4377
|
-
if (f.type === "custom") return /* @__PURE__ */ j(A, { children: f.render(t,
|
|
4378
|
-
let p =
|
|
4389
|
+
if (f.type === "custom") return /* @__PURE__ */ j(A, { children: f.render(t, Ro) });
|
|
4390
|
+
let p = bo(f, t);
|
|
4379
4391
|
if (!p) return null;
|
|
4380
4392
|
let m = e.contextChart;
|
|
4381
4393
|
return /* @__PURE__ */ M(A, { children: [
|
|
4382
|
-
/* @__PURE__ */ j(
|
|
4394
|
+
/* @__PURE__ */ j(No, {
|
|
4383
4395
|
method: p.header.method(t),
|
|
4384
4396
|
status: p.header.status(t),
|
|
4385
4397
|
uri: p.header.uri(t),
|
|
@@ -4392,19 +4404,19 @@ function Io({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigate
|
|
|
4392
4404
|
hasNext: d ? l : !1,
|
|
4393
4405
|
showExpandToggle: u
|
|
4394
4406
|
}),
|
|
4395
|
-
m && /* @__PURE__ */ j(
|
|
4407
|
+
m && /* @__PURE__ */ j(wo, {
|
|
4396
4408
|
apiId: m.extractApiId(t),
|
|
4397
4409
|
timestamp: m.extractTimestamp?.(t) ?? p.header.timestamp(t),
|
|
4398
4410
|
metric: m.metric
|
|
4399
4411
|
}),
|
|
4400
|
-
p.metrics && p.metrics.length > 0 && /* @__PURE__ */ j(
|
|
4412
|
+
p.metrics && p.metrics.length > 0 && /* @__PURE__ */ j(Po, { items: p.metrics.map((e) => ({
|
|
4401
4413
|
label: e.label,
|
|
4402
4414
|
value: e.value(t),
|
|
4403
4415
|
unit: e.unit
|
|
4404
4416
|
})) }),
|
|
4405
|
-
/* @__PURE__ */ j(
|
|
4417
|
+
/* @__PURE__ */ j(Io, {
|
|
4406
4418
|
defaultValue: p.sections.find((e) => e.defaultOpen)?.title,
|
|
4407
|
-
children: p.sections.map((e) => /* @__PURE__ */ j(
|
|
4419
|
+
children: p.sections.map((e) => /* @__PURE__ */ j(Lo, {
|
|
4408
4420
|
title: e.title,
|
|
4409
4421
|
badge: e.badge?.(t),
|
|
4410
4422
|
children: e.render(t, s)
|
|
@@ -4414,20 +4426,20 @@ function Io({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigate
|
|
|
4414
4426
|
}
|
|
4415
4427
|
//#endregion
|
|
4416
4428
|
//#region src/logs/detail/utils/clipboard.ts
|
|
4417
|
-
function
|
|
4429
|
+
function Bo(e) {
|
|
4418
4430
|
navigator.clipboard.writeText(JSON.stringify(e, null, 2)).then(() => H.success("Full JSON copied to clipboard"), () => H.error("Failed to copy to clipboard"));
|
|
4419
4431
|
}
|
|
4420
4432
|
//#endregion
|
|
4421
4433
|
//#region src/logs/detail/components/LogDetailDrawer.tsx
|
|
4422
|
-
function
|
|
4423
|
-
let { data: c, isLoading: l, isError: u, isNotFound: d, isUnsupported: f, refetch: p } =
|
|
4424
|
-
return /* @__PURE__ */ M(
|
|
4434
|
+
function Vo({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext: i, onFilter: a, hasPrev: o, hasNext: s }) {
|
|
4435
|
+
let { data: c, isLoading: l, isError: u, isNotFound: d, isUnsupported: f, refetch: p } = fn({ id: t });
|
|
4436
|
+
return /* @__PURE__ */ M(ko, {
|
|
4425
4437
|
open: !!t,
|
|
4426
4438
|
onClose: n,
|
|
4427
4439
|
onNavigatePrev: r,
|
|
4428
4440
|
onNavigateNext: i,
|
|
4429
4441
|
children: [
|
|
4430
|
-
l && /* @__PURE__ */ j(
|
|
4442
|
+
l && /* @__PURE__ */ j(Ho, {}),
|
|
4431
4443
|
f && /* @__PURE__ */ M("div", {
|
|
4432
4444
|
className: "flex flex-col items-center justify-center gap-2 p-8 text-center text-muted-foreground",
|
|
4433
4445
|
children: [/* @__PURE__ */ j("p", {
|
|
@@ -4464,13 +4476,13 @@ function Ro({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext
|
|
|
4464
4476
|
})
|
|
4465
4477
|
]
|
|
4466
4478
|
}),
|
|
4467
|
-
c != null && /* @__PURE__ */ j(
|
|
4479
|
+
c != null && /* @__PURE__ */ j(zo, {
|
|
4468
4480
|
config: e,
|
|
4469
4481
|
log: c,
|
|
4470
4482
|
logId: t,
|
|
4471
4483
|
onClose: n,
|
|
4472
4484
|
onCopyJson: () => {
|
|
4473
|
-
c &&
|
|
4485
|
+
c && Bo(c);
|
|
4474
4486
|
},
|
|
4475
4487
|
onNavigatePrev: r,
|
|
4476
4488
|
onNavigateNext: i,
|
|
@@ -4481,7 +4493,7 @@ function Ro({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext
|
|
|
4481
4493
|
]
|
|
4482
4494
|
});
|
|
4483
4495
|
}
|
|
4484
|
-
function
|
|
4496
|
+
function Ho() {
|
|
4485
4497
|
return /* @__PURE__ */ M("div", {
|
|
4486
4498
|
className: "space-y-4 p-4",
|
|
4487
4499
|
children: [
|
|
@@ -4509,8 +4521,8 @@ function zo() {
|
|
|
4509
4521
|
}
|
|
4510
4522
|
//#endregion
|
|
4511
4523
|
//#region src/logs/detail/components/LogDetailPage.tsx
|
|
4512
|
-
function
|
|
4513
|
-
let { logId: n } = Bt(), r = zt(), { data: i, isLoading: a, isError: o, isNotFound: s, isUnsupported: c, refetch: l } =
|
|
4524
|
+
function Uo({ config: e, onFilter: t }) {
|
|
4525
|
+
let { logId: n } = Bt(), r = zt(), { data: i, isLoading: a, isError: o, isNotFound: s, isUnsupported: c, refetch: l } = fn({ id: n }), u = () => r(-1);
|
|
4514
4526
|
return a ? /* @__PURE__ */ M("div", {
|
|
4515
4527
|
className: "space-y-4 p-6",
|
|
4516
4528
|
children: [
|
|
@@ -4570,13 +4582,13 @@ function Bo({ config: e, onFilter: t }) {
|
|
|
4570
4582
|
})
|
|
4571
4583
|
}), /* @__PURE__ */ j(se, {
|
|
4572
4584
|
className: "mx-6 mt-4 overflow-hidden",
|
|
4573
|
-
children: /* @__PURE__ */ j(
|
|
4585
|
+
children: /* @__PURE__ */ j(zo, {
|
|
4574
4586
|
config: e,
|
|
4575
4587
|
log: i,
|
|
4576
4588
|
logId: n,
|
|
4577
4589
|
onClose: u,
|
|
4578
4590
|
onCopyJson: () => {
|
|
4579
|
-
i &&
|
|
4591
|
+
i && Bo(i);
|
|
4580
4592
|
},
|
|
4581
4593
|
onFilter: t,
|
|
4582
4594
|
showExpandToggle: !1,
|
|
@@ -4586,33 +4598,92 @@ function Bo({ config: e, onFilter: t }) {
|
|
|
4586
4598
|
}) : null;
|
|
4587
4599
|
}
|
|
4588
4600
|
//#endregion
|
|
4589
|
-
//#region src/data-sources/
|
|
4590
|
-
var
|
|
4601
|
+
//#region src/data-sources/filter-serialization.ts
|
|
4602
|
+
var Wo = [
|
|
4591
4603
|
"eq",
|
|
4592
4604
|
"in",
|
|
4593
4605
|
"lte",
|
|
4594
4606
|
"gte"
|
|
4595
4607
|
];
|
|
4596
|
-
function
|
|
4597
|
-
return
|
|
4608
|
+
function Go(e) {
|
|
4609
|
+
return Wo.includes(e);
|
|
4598
4610
|
}
|
|
4599
|
-
var
|
|
4611
|
+
var Ko = {
|
|
4600
4612
|
eq: "EQ",
|
|
4601
4613
|
in: "IN",
|
|
4602
4614
|
lte: "LTE",
|
|
4603
4615
|
gte: "GTE"
|
|
4604
|
-
}
|
|
4616
|
+
};
|
|
4617
|
+
function qo(e) {
|
|
4618
|
+
if (!Go(e.operator)) throw Error(`[gamma-lib-observability] Filter operator "${e.operator}" on field "${e.field}" is not supported by the Gravitee Management v2 API. Supported operators: ${Wo.join(", ")}.`);
|
|
4619
|
+
let t = e.value[0];
|
|
4620
|
+
if (t === void 0) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" has no value — every supported operator requires at least one value.`);
|
|
4621
|
+
switch (e.operator) {
|
|
4622
|
+
case "eq": return Jo(e, "eq", "in"), {
|
|
4623
|
+
name: e.field,
|
|
4624
|
+
operator: "EQ",
|
|
4625
|
+
value: t
|
|
4626
|
+
};
|
|
4627
|
+
case "in": return {
|
|
4628
|
+
name: e.field,
|
|
4629
|
+
operator: "IN",
|
|
4630
|
+
value: e.value.slice()
|
|
4631
|
+
};
|
|
4632
|
+
case "lte":
|
|
4633
|
+
case "gte": {
|
|
4634
|
+
Jo(e, e.operator);
|
|
4635
|
+
let n = Yo(e, t);
|
|
4636
|
+
return {
|
|
4637
|
+
name: e.field,
|
|
4638
|
+
operator: Ko[e.operator],
|
|
4639
|
+
value: n
|
|
4640
|
+
};
|
|
4641
|
+
}
|
|
4642
|
+
default: {
|
|
4643
|
+
let t = e.operator;
|
|
4644
|
+
throw Error(`[gamma-lib-observability] Unhandled supported operator: ${String(t)}`);
|
|
4645
|
+
}
|
|
4646
|
+
}
|
|
4647
|
+
}
|
|
4648
|
+
function Jo(e, t, n) {
|
|
4649
|
+
if (e.value.length <= 1) return;
|
|
4650
|
+
let r = n ? ` Use "${n}" for multi-value membership.` : "";
|
|
4651
|
+
throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${t}" received ${e.value.length} values; "${t}" expects a single value.${r}`);
|
|
4652
|
+
}
|
|
4653
|
+
function Yo(e, t) {
|
|
4654
|
+
let n = t.trim();
|
|
4655
|
+
if (n === "") throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received an empty string.`);
|
|
4656
|
+
let r = Number(n);
|
|
4657
|
+
if (Number.isNaN(r)) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received "${t}".`);
|
|
4658
|
+
return r;
|
|
4659
|
+
}
|
|
4660
|
+
function Xo(e) {
|
|
4661
|
+
if (e?.length) return e.map(qo);
|
|
4662
|
+
}
|
|
4663
|
+
//#endregion
|
|
4664
|
+
//#region src/data-sources/http-utils.ts
|
|
4665
|
+
function Zo(e) {
|
|
4666
|
+
if (e) return typeof e == "function" ? e() : e;
|
|
4667
|
+
}
|
|
4668
|
+
function Qo(...e) {
|
|
4669
|
+
let t = new Headers();
|
|
4670
|
+
for (let n of e) n && new Headers(n).forEach((e, n) => t.set(n, e));
|
|
4671
|
+
return t;
|
|
4672
|
+
}
|
|
4673
|
+
//#endregion
|
|
4674
|
+
//#region src/data-sources/http-data-source.ts
|
|
4675
|
+
var $o = {
|
|
4605
4676
|
name: "HTTP_REQUESTS",
|
|
4606
4677
|
measures: [qt]
|
|
4607
4678
|
};
|
|
4608
|
-
function
|
|
4679
|
+
function es(e) {
|
|
4609
4680
|
return e.metrics.map((e) => ({
|
|
4610
4681
|
name: e.name,
|
|
4611
4682
|
unit: e.unit,
|
|
4612
4683
|
measures: e.measures ?? []
|
|
4613
4684
|
}));
|
|
4614
4685
|
}
|
|
4615
|
-
function
|
|
4686
|
+
function ts(e) {
|
|
4616
4687
|
let t = [];
|
|
4617
4688
|
for (let n of e.metrics) if (n.buckets) for (let e of n.buckets) {
|
|
4618
4689
|
let n = e.measures?.[0]?.value ?? 0;
|
|
@@ -4624,7 +4695,7 @@ function Ko(e) {
|
|
|
4624
4695
|
}
|
|
4625
4696
|
return t;
|
|
4626
4697
|
}
|
|
4627
|
-
function
|
|
4698
|
+
function ns(e) {
|
|
4628
4699
|
let t = [];
|
|
4629
4700
|
for (let n of e.metrics) if (n.buckets) if (n.buckets.some((e) => e.type === "GROUP" && e.buckets?.length)) {
|
|
4630
4701
|
let e = /* @__PURE__ */ new Map();
|
|
@@ -4661,93 +4732,38 @@ function qo(e) {
|
|
|
4661
4732
|
}
|
|
4662
4733
|
return t;
|
|
4663
4734
|
}
|
|
4664
|
-
function
|
|
4665
|
-
if (!Ho(e.operator)) throw Error(`[gamma-lib-observability] Filter operator "${e.operator}" on field "${e.field}" is not supported by the Gravitee Management v2 analytics API. Supported operators: ${Vo.join(", ")}.`);
|
|
4666
|
-
let t = e.value[0];
|
|
4667
|
-
if (t === void 0) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" has no value — every supported operator requires at least one value.`);
|
|
4668
|
-
switch (e.operator) {
|
|
4669
|
-
case "eq": return Yo(e, "eq", "in"), {
|
|
4670
|
-
name: e.field,
|
|
4671
|
-
operator: "EQ",
|
|
4672
|
-
value: t
|
|
4673
|
-
};
|
|
4674
|
-
case "in": return {
|
|
4675
|
-
name: e.field,
|
|
4676
|
-
operator: "IN",
|
|
4677
|
-
value: e.value.slice()
|
|
4678
|
-
};
|
|
4679
|
-
case "lte":
|
|
4680
|
-
case "gte": {
|
|
4681
|
-
Yo(e, e.operator);
|
|
4682
|
-
let n = Xo(e, t);
|
|
4683
|
-
return {
|
|
4684
|
-
name: e.field,
|
|
4685
|
-
operator: Uo[e.operator],
|
|
4686
|
-
value: n
|
|
4687
|
-
};
|
|
4688
|
-
}
|
|
4689
|
-
default: {
|
|
4690
|
-
let t = e.operator;
|
|
4691
|
-
throw Error(`[gamma-lib-observability] Unhandled supported operator: ${String(t)}`);
|
|
4692
|
-
}
|
|
4693
|
-
}
|
|
4694
|
-
}
|
|
4695
|
-
function Yo(e, t, n) {
|
|
4696
|
-
if (e.value.length <= 1) return;
|
|
4697
|
-
let r = n ? ` Use "${n}" for multi-value membership.` : "";
|
|
4698
|
-
throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${t}" received ${e.value.length} values; "${t}" expects a single value.${r}`);
|
|
4699
|
-
}
|
|
4700
|
-
function Xo(e, t) {
|
|
4701
|
-
let n = t.trim();
|
|
4702
|
-
if (n === "") throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received an empty string.`);
|
|
4703
|
-
let r = Number(n);
|
|
4704
|
-
if (Number.isNaN(r)) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received "${t}".`);
|
|
4705
|
-
return r;
|
|
4706
|
-
}
|
|
4707
|
-
function Zo(e) {
|
|
4708
|
-
if (e?.length) return e.map(Jo);
|
|
4709
|
-
}
|
|
4710
|
-
function Qo(e) {
|
|
4735
|
+
function rs(e) {
|
|
4711
4736
|
return {
|
|
4712
4737
|
...e,
|
|
4713
4738
|
measures: e.measures?.length ? e.measures : [qt]
|
|
4714
4739
|
};
|
|
4715
4740
|
}
|
|
4716
|
-
function
|
|
4717
|
-
let n =
|
|
4741
|
+
function is(e, t) {
|
|
4742
|
+
let n = Qr(e.timeRange), r = { timeRange: {
|
|
4718
4743
|
from: new Date(n.from).toISOString(),
|
|
4719
4744
|
to: new Date(n.to).toISOString()
|
|
4720
|
-
} }, i =
|
|
4721
|
-
return i && (r.filters = i), "metrics" in e && (r.metrics = e.metrics.map((e) =>
|
|
4745
|
+
} }, i = Xo(e.filters);
|
|
4746
|
+
return i && (r.filters = i), "metrics" in e && (r.metrics = e.metrics.map((e) => as(e))), "interval" in e && (r.interval = e.interval), "by" in e && e.by?.length && (r.by = e.by), "limit" in e && e.limit !== void 0 && (r.limit = e.limit), "field" in e && (r.by = [e.field], r.metrics = [{
|
|
4722
4747
|
name: t.name,
|
|
4723
4748
|
measures: t.measures
|
|
4724
4749
|
}]), r;
|
|
4725
4750
|
}
|
|
4726
|
-
function
|
|
4727
|
-
let t =
|
|
4751
|
+
function as(e) {
|
|
4752
|
+
let t = rs(e), n = {
|
|
4728
4753
|
name: t.name,
|
|
4729
4754
|
measures: t.measures
|
|
4730
|
-
}, r =
|
|
4755
|
+
}, r = Xo(e.filters);
|
|
4731
4756
|
return r && (n.filters = r), "sorts" in e && e.sorts?.length && (n.sorts = e.sorts), n;
|
|
4732
4757
|
}
|
|
4733
|
-
function
|
|
4734
|
-
if (e) return typeof e == "function" ? e() : e;
|
|
4735
|
-
}
|
|
4736
|
-
function ns(e) {
|
|
4737
|
-
let t = { "Content-Type": "application/json" };
|
|
4738
|
-
if (!e) return t;
|
|
4739
|
-
let n = new Headers(t);
|
|
4740
|
-
return new Headers(e).forEach((e, t) => n.set(t, e)), n;
|
|
4741
|
-
}
|
|
4742
|
-
function rs(e, t) {
|
|
4758
|
+
function os(e, t) {
|
|
4743
4759
|
let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials, i = {
|
|
4744
|
-
name: t?.defaultFacetMetric?.name ??
|
|
4745
|
-
measures: t?.defaultFacetMetric?.measures?.length ? [...t.defaultFacetMetric.measures] : [
|
|
4760
|
+
name: t?.defaultFacetMetric?.name ?? $o.name,
|
|
4761
|
+
measures: t?.defaultFacetMetric?.measures?.length ? [...t.defaultFacetMetric.measures] : [...$o.measures]
|
|
4746
4762
|
};
|
|
4747
4763
|
async function a(i, a, o) {
|
|
4748
4764
|
let s = {
|
|
4749
4765
|
method: "POST",
|
|
4750
|
-
headers:
|
|
4766
|
+
headers: Qo({ "Content-Type": "application/json" }, Zo(t?.headers)),
|
|
4751
4767
|
body: JSON.stringify(a),
|
|
4752
4768
|
signal: o
|
|
4753
4769
|
};
|
|
@@ -4758,19 +4774,19 @@ function rs(e, t) {
|
|
|
4758
4774
|
}
|
|
4759
4775
|
return {
|
|
4760
4776
|
async fetchTimeSeries(e) {
|
|
4761
|
-
return
|
|
4777
|
+
return ns(await a("/analytics/time-series", is(e, i), e.signal));
|
|
4762
4778
|
},
|
|
4763
4779
|
async fetchFacets(e) {
|
|
4764
|
-
return
|
|
4780
|
+
return ts(await a("/analytics/facets", is(e, i), e.signal));
|
|
4765
4781
|
},
|
|
4766
4782
|
async fetchMeasures(e) {
|
|
4767
|
-
return
|
|
4783
|
+
return es(await a("/analytics/measures", is(e, i), e.signal));
|
|
4768
4784
|
}
|
|
4769
4785
|
};
|
|
4770
4786
|
}
|
|
4771
4787
|
//#endregion
|
|
4772
4788
|
//#region src/data-sources/http-filter-source.ts
|
|
4773
|
-
function
|
|
4789
|
+
function ss(e) {
|
|
4774
4790
|
return {
|
|
4775
4791
|
EQ: "eq",
|
|
4776
4792
|
IN: "in",
|
|
@@ -4783,77 +4799,145 @@ function is(e) {
|
|
|
4783
4799
|
CONTAINS: "contains"
|
|
4784
4800
|
}[e] ?? e.toLowerCase();
|
|
4785
4801
|
}
|
|
4786
|
-
function
|
|
4802
|
+
function cs(e) {
|
|
4787
4803
|
return e === "ENUM" ? "enum" : "async";
|
|
4788
4804
|
}
|
|
4789
|
-
function
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4805
|
+
function ls(e, t) {
|
|
4806
|
+
let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials;
|
|
4807
|
+
function i(e) {
|
|
4808
|
+
let n = { ...e }, i = Zo(t?.headers);
|
|
4809
|
+
return (e?.headers || i) && (n.headers = Qo(e?.headers, i)), r && (n.credentials = r), n;
|
|
4810
|
+
}
|
|
4811
|
+
function a(t) {
|
|
4812
|
+
return async (r) => {
|
|
4813
|
+
let a = new URLSearchParams({
|
|
4814
|
+
page: String(r.page),
|
|
4794
4815
|
perPage: "20"
|
|
4795
4816
|
});
|
|
4796
|
-
|
|
4797
|
-
let
|
|
4798
|
-
if (!
|
|
4799
|
-
let
|
|
4817
|
+
r.search && a.set("query", r.search);
|
|
4818
|
+
let o = await n(`${e}/observability/filters/${encodeURIComponent(t)}/values?${a.toString()}`, i({ signal: r.signal }));
|
|
4819
|
+
if (!o.ok) throw Error(`[gamma-lib-observability] HTTP ${o.status} on GET filters/${t}/values`);
|
|
4820
|
+
let s = await o.json();
|
|
4800
4821
|
return {
|
|
4801
|
-
data:
|
|
4822
|
+
data: s.data.map((e) => ({
|
|
4802
4823
|
value: e.id ?? e.value,
|
|
4803
4824
|
label: e.value
|
|
4804
4825
|
})),
|
|
4805
|
-
hasNextPage:
|
|
4826
|
+
hasNextPage: s.pagination.page < s.pagination.pageCount
|
|
4806
4827
|
};
|
|
4807
4828
|
};
|
|
4808
4829
|
}
|
|
4809
4830
|
return {
|
|
4810
|
-
async fetchFilterDefinitions(
|
|
4811
|
-
let r = await
|
|
4831
|
+
async fetchFilterDefinitions(t) {
|
|
4832
|
+
let r = await n(`${e}/observability/filters/definition`, i({ signal: t }));
|
|
4812
4833
|
if (!r.ok) throw Error(`[gamma-lib-observability] HTTP ${r.status} on GET filters/definition`);
|
|
4813
4834
|
return (await r.json()).data.map((e) => {
|
|
4814
|
-
let
|
|
4815
|
-
if (
|
|
4816
|
-
let
|
|
4835
|
+
let t = cs(e.type), n = e.operators.map(ss), r = e.apiTypes;
|
|
4836
|
+
if (t === "enum") {
|
|
4837
|
+
let i = (e.enumValues ?? []).map((e) => ({
|
|
4817
4838
|
value: e,
|
|
4818
4839
|
label: e
|
|
4819
4840
|
}));
|
|
4820
4841
|
return {
|
|
4821
4842
|
field: e.name,
|
|
4822
4843
|
label: e.label,
|
|
4823
|
-
kind:
|
|
4824
|
-
operators:
|
|
4825
|
-
options:
|
|
4826
|
-
scopes:
|
|
4844
|
+
kind: t,
|
|
4845
|
+
operators: n,
|
|
4846
|
+
options: i,
|
|
4847
|
+
scopes: r
|
|
4827
4848
|
};
|
|
4828
4849
|
}
|
|
4829
4850
|
return {
|
|
4830
4851
|
field: e.name,
|
|
4831
4852
|
label: e.label,
|
|
4832
|
-
kind:
|
|
4833
|
-
operators:
|
|
4834
|
-
scopes:
|
|
4835
|
-
valueLoader:
|
|
4853
|
+
kind: t,
|
|
4854
|
+
operators: n,
|
|
4855
|
+
scopes: r,
|
|
4856
|
+
valueLoader: a(e.name)
|
|
4836
4857
|
};
|
|
4837
4858
|
});
|
|
4838
4859
|
},
|
|
4839
|
-
async resolveLabels(t,
|
|
4840
|
-
let
|
|
4860
|
+
async resolveLabels(t, r) {
|
|
4861
|
+
let a = await n(`${e}/observability/filters/resolve`, i({
|
|
4841
4862
|
method: "POST",
|
|
4842
4863
|
headers: { "Content-Type": "application/json" },
|
|
4843
4864
|
body: JSON.stringify({ entries: t }),
|
|
4844
|
-
signal:
|
|
4845
|
-
});
|
|
4846
|
-
if (!
|
|
4847
|
-
let
|
|
4848
|
-
for (let e of
|
|
4849
|
-
return
|
|
4865
|
+
signal: r
|
|
4866
|
+
}));
|
|
4867
|
+
if (!a.ok) throw Error(`[gamma-lib-observability] HTTP ${a.status} on POST filters/resolve`);
|
|
4868
|
+
let o = await a.json(), s = {};
|
|
4869
|
+
for (let e of o.entries) s[e.filterName] = e.labels;
|
|
4870
|
+
return s;
|
|
4850
4871
|
}
|
|
4851
4872
|
};
|
|
4852
4873
|
}
|
|
4853
4874
|
//#endregion
|
|
4875
|
+
//#region src/data-sources/http-logs-source.ts
|
|
4876
|
+
var us = "/logs/search", ds = 10 * 365.25 * 864e5;
|
|
4877
|
+
function fs(e, t) {
|
|
4878
|
+
let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials, i = t?.searchPath ?? us, a;
|
|
4879
|
+
function o(e) {
|
|
4880
|
+
let n = {
|
|
4881
|
+
method: "POST",
|
|
4882
|
+
headers: Qo({ "Content-Type": "application/json" }, e, Zo(t?.headers))
|
|
4883
|
+
};
|
|
4884
|
+
return r && (n.credentials = r), n;
|
|
4885
|
+
}
|
|
4886
|
+
function s(t, n) {
|
|
4887
|
+
let r = new URLSearchParams();
|
|
4888
|
+
t !== void 0 && r.set("page", String(t)), n !== void 0 && r.set("perPage", String(n));
|
|
4889
|
+
let a = r.toString();
|
|
4890
|
+
return `${e}${i}${a ? `?${a}` : ""}`;
|
|
4891
|
+
}
|
|
4892
|
+
function c(e) {
|
|
4893
|
+
return {
|
|
4894
|
+
from: new Date(e.from).toISOString(),
|
|
4895
|
+
to: new Date(e.to).toISOString()
|
|
4896
|
+
};
|
|
4897
|
+
}
|
|
4898
|
+
async function l(e, t) {
|
|
4899
|
+
let r = {
|
|
4900
|
+
timeRange: c(a ?? {
|
|
4901
|
+
type: "absolute",
|
|
4902
|
+
from: Date.now() - ds,
|
|
4903
|
+
to: Date.now()
|
|
4904
|
+
}),
|
|
4905
|
+
filters: [{
|
|
4906
|
+
name: "REQUEST_ID",
|
|
4907
|
+
operator: "EQ",
|
|
4908
|
+
value: e
|
|
4909
|
+
}]
|
|
4910
|
+
}, l = o();
|
|
4911
|
+
l.body = JSON.stringify(r), t && (l.signal = t);
|
|
4912
|
+
let u = await n(s(1, 1), l);
|
|
4913
|
+
if (!u.ok) throw Error(`[gamma-lib-observability] HTTP ${u.status} on POST ${i} (getById)`);
|
|
4914
|
+
return (await u.json()).data?.[0] ?? null;
|
|
4915
|
+
}
|
|
4916
|
+
return {
|
|
4917
|
+
async fetchLogs(e) {
|
|
4918
|
+
let t = Qr(e.timeRange);
|
|
4919
|
+
a = t;
|
|
4920
|
+
let r = Xo(e.filters), l = { timeRange: c(t) };
|
|
4921
|
+
r && (l.filters = r);
|
|
4922
|
+
let u = o();
|
|
4923
|
+
u.body = JSON.stringify(l), e.signal && (u.signal = e.signal);
|
|
4924
|
+
let d = await n(s(e.page, e.perPage), u);
|
|
4925
|
+
if (!d.ok) throw Error(`[gamma-lib-observability] HTTP ${d.status} on POST ${i}`);
|
|
4926
|
+
let f = await d.json();
|
|
4927
|
+
return {
|
|
4928
|
+
entries: f.data ?? [],
|
|
4929
|
+
totalCount: f.pagination?.totalCount,
|
|
4930
|
+
page: f.pagination?.page,
|
|
4931
|
+
pageCount: f.pagination?.pageCount
|
|
4932
|
+
};
|
|
4933
|
+
},
|
|
4934
|
+
getById: l
|
|
4935
|
+
};
|
|
4936
|
+
}
|
|
4937
|
+
//#endregion
|
|
4854
4938
|
//#region src/routing/DashboardListPage.tsx
|
|
4855
|
-
function
|
|
4856
|
-
let t = o(), n = D(() =>
|
|
4939
|
+
function ps({ templates: e }) {
|
|
4940
|
+
let t = o(), n = D(() => oa(e, t), [e, t]), r = D(() => [{
|
|
4857
4941
|
id: "name",
|
|
4858
4942
|
accessorKey: "label",
|
|
4859
4943
|
header: "Name",
|
|
@@ -4886,8 +4970,8 @@ function ss({ templates: e }) {
|
|
|
4886
4970
|
}
|
|
4887
4971
|
//#endregion
|
|
4888
4972
|
//#region src/routing/ObservabilityDashboardPage.tsx
|
|
4889
|
-
function
|
|
4890
|
-
let { dashboardId: n } = Bt(), r = o(), i = D(() =>
|
|
4973
|
+
function ms({ templates: e, scopeFilterField: t }) {
|
|
4974
|
+
let { dashboardId: n } = Bt(), r = o(), i = D(() => oa(e, r), [e, r]).find((e) => e.id === n), { timeRange: a, filters: s, setTimeRange: c, setFilters: l } = pa(), u = _n(s, tn()), d = D(() => i ? aa(i, { capabilities: r }) : null, [i, r]);
|
|
4891
4975
|
return !i || !d ? /* @__PURE__ */ j("div", {
|
|
4892
4976
|
className: "flex items-center justify-center p-8 text-muted-foreground",
|
|
4893
4977
|
children: n ? `Dashboard "${n}" not found.` : "No dashboard available."
|
|
@@ -4905,17 +4989,17 @@ function cs({ templates: e, scopeFilterField: t }) {
|
|
|
4905
4989
|
className: "flex flex-wrap items-center gap-3",
|
|
4906
4990
|
children: [/* @__PURE__ */ j("div", {
|
|
4907
4991
|
className: "flex flex-1 items-center gap-2",
|
|
4908
|
-
children: /* @__PURE__ */ j(
|
|
4992
|
+
children: /* @__PURE__ */ j(Kr, {
|
|
4909
4993
|
filters: u,
|
|
4910
4994
|
onFiltersChange: l,
|
|
4911
4995
|
scopeFilterField: t
|
|
4912
4996
|
})
|
|
4913
|
-
}), /* @__PURE__ */ j(
|
|
4997
|
+
}), /* @__PURE__ */ j(Vn, {
|
|
4914
4998
|
value: a,
|
|
4915
4999
|
onChange: c
|
|
4916
5000
|
})]
|
|
4917
5001
|
}),
|
|
4918
|
-
/* @__PURE__ */ j(
|
|
5002
|
+
/* @__PURE__ */ j(ea, {
|
|
4919
5003
|
dashboard: d,
|
|
4920
5004
|
timeRange: a,
|
|
4921
5005
|
filters: s
|
|
@@ -4925,17 +5009,17 @@ function cs({ templates: e, scopeFilterField: t }) {
|
|
|
4925
5009
|
}
|
|
4926
5010
|
//#endregion
|
|
4927
5011
|
//#region src/routing/ObservabilityRoutes.tsx
|
|
4928
|
-
var
|
|
4929
|
-
function
|
|
5012
|
+
var hs = [];
|
|
5013
|
+
function gs({ children: e }) {
|
|
4930
5014
|
let t = tn(), { data: n, isLoading: r, isError: i } = N({
|
|
4931
5015
|
queryKey: ["observability", "filter-definitions"],
|
|
4932
5016
|
queryFn: ({ signal: e }) => t.fetchFilterDefinitions(e),
|
|
4933
5017
|
enabled: !!t,
|
|
4934
5018
|
staleTime: 300 * 1e3
|
|
4935
5019
|
});
|
|
4936
|
-
return r ? /* @__PURE__ */ j(
|
|
5020
|
+
return r ? /* @__PURE__ */ j(_s, {}) : i || !n ? /* @__PURE__ */ j(A, { children: e([]) }) : /* @__PURE__ */ j(A, { children: e(n) });
|
|
4937
5021
|
}
|
|
4938
|
-
function
|
|
5022
|
+
function _s() {
|
|
4939
5023
|
return /* @__PURE__ */ M("div", {
|
|
4940
5024
|
className: "flex items-center gap-2 p-4",
|
|
4941
5025
|
children: [
|
|
@@ -4945,79 +5029,83 @@ function ds() {
|
|
|
4945
5029
|
]
|
|
4946
5030
|
});
|
|
4947
5031
|
}
|
|
4948
|
-
function
|
|
4949
|
-
let n = o(), r = D(() =>
|
|
5032
|
+
function vs({ templates: e, contextFilters: t }) {
|
|
5033
|
+
let n = o(), r = D(() => oa(e, n), [e, n]);
|
|
4950
5034
|
return r.length === 1 && r[0] ? /* @__PURE__ */ j(It, {
|
|
4951
5035
|
to: `./${r[0].id}`,
|
|
4952
5036
|
replace: !0
|
|
4953
|
-
}) : /* @__PURE__ */ j(
|
|
5037
|
+
}) : /* @__PURE__ */ j(un, {
|
|
4954
5038
|
filters: t,
|
|
4955
|
-
children: /* @__PURE__ */ j(
|
|
5039
|
+
children: /* @__PURE__ */ j(ps, { templates: e })
|
|
4956
5040
|
});
|
|
4957
5041
|
}
|
|
4958
|
-
function
|
|
4959
|
-
let
|
|
5042
|
+
function ys({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage: o, logsDataSource: s, logsColumns: l, logsOnRowClick: u, logsGetRowId: f, config: p }) {
|
|
5043
|
+
let m = an(), g = t ?? m, _ = n(), v = D(() => os(e, g), [e, g]), y = i !== void 0 || _ === null, b = i ?? _ ?? v, x = D(() => ls(e, g), [e, g]), S = r(), C = D(() => p.features.logs?.enabled ? fs(e, g) : void 0, [
|
|
5044
|
+
e,
|
|
5045
|
+
g,
|
|
5046
|
+
p.features.logs?.enabled
|
|
5047
|
+
]), w = s ?? S ?? C, T = s !== void 0 || S === null, E = p.features.dashboards, O = p.features.logs, k = E?.contextFilters ?? hs, ee = O?.contextFilters ?? hs, te = (e) => /* @__PURE__ */ j(h, {
|
|
4960
5048
|
providers: e,
|
|
4961
5049
|
children: /* @__PURE__ */ M(Rt, { children: [
|
|
4962
|
-
|
|
5050
|
+
E?.enabled && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(Lt, {
|
|
4963
5051
|
path: "dashboards",
|
|
4964
|
-
element: /* @__PURE__ */ j(
|
|
4965
|
-
templates:
|
|
4966
|
-
contextFilters:
|
|
5052
|
+
element: /* @__PURE__ */ j(vs, {
|
|
5053
|
+
templates: E.templates,
|
|
5054
|
+
contextFilters: k
|
|
4967
5055
|
})
|
|
4968
5056
|
}), /* @__PURE__ */ j(Lt, {
|
|
4969
5057
|
path: "dashboards/:dashboardId",
|
|
4970
|
-
element: /* @__PURE__ */ j(
|
|
4971
|
-
filters:
|
|
4972
|
-
children: /* @__PURE__ */ j(
|
|
4973
|
-
templates:
|
|
4974
|
-
scopeFilterField:
|
|
5058
|
+
element: /* @__PURE__ */ j(un, {
|
|
5059
|
+
filters: k,
|
|
5060
|
+
children: /* @__PURE__ */ j(ms, {
|
|
5061
|
+
templates: E.templates,
|
|
5062
|
+
scopeFilterField: E.scopeFilterField
|
|
4975
5063
|
})
|
|
4976
5064
|
})
|
|
4977
5065
|
})] }),
|
|
4978
|
-
|
|
5066
|
+
p.features.logs?.enabled && /* @__PURE__ */ j(Lt, {
|
|
4979
5067
|
path: "logs",
|
|
4980
|
-
element: /* @__PURE__ */ j(
|
|
4981
|
-
filters:
|
|
4982
|
-
children:
|
|
4983
|
-
dataSource:
|
|
4984
|
-
children: /* @__PURE__ */ j(
|
|
4985
|
-
columns:
|
|
4986
|
-
onRowClick:
|
|
4987
|
-
getRowId:
|
|
4988
|
-
pageSize:
|
|
4989
|
-
scopeFilterField:
|
|
4990
|
-
columnVisibilityStorageKey:
|
|
5068
|
+
element: /* @__PURE__ */ j(un, {
|
|
5069
|
+
filters: ee,
|
|
5070
|
+
children: o ?? (w && l ? T ? /* @__PURE__ */ j(c, {
|
|
5071
|
+
dataSource: w,
|
|
5072
|
+
children: /* @__PURE__ */ j(Ha, {
|
|
5073
|
+
columns: l,
|
|
5074
|
+
onRowClick: u,
|
|
5075
|
+
getRowId: f,
|
|
5076
|
+
pageSize: O?.pageSize,
|
|
5077
|
+
scopeFilterField: O?.scopeFilterField,
|
|
5078
|
+
columnVisibilityStorageKey: O?.columnVisibilityStorageKey
|
|
4991
5079
|
})
|
|
4992
|
-
}) : /* @__PURE__ */ j(
|
|
4993
|
-
columns:
|
|
4994
|
-
onRowClick:
|
|
4995
|
-
getRowId:
|
|
4996
|
-
pageSize:
|
|
4997
|
-
scopeFilterField:
|
|
4998
|
-
columnVisibilityStorageKey:
|
|
5080
|
+
}) : /* @__PURE__ */ j(Ha, {
|
|
5081
|
+
columns: l,
|
|
5082
|
+
onRowClick: u,
|
|
5083
|
+
getRowId: f,
|
|
5084
|
+
pageSize: O?.pageSize,
|
|
5085
|
+
scopeFilterField: O?.scopeFilterField,
|
|
5086
|
+
columnVisibilityStorageKey: O?.columnVisibilityStorageKey
|
|
4999
5087
|
}) : /* @__PURE__ */ j("div", {
|
|
5000
5088
|
className: "flex items-center justify-center p-8 text-muted-foreground",
|
|
5001
5089
|
children: "Logs feature enabled but no page provided."
|
|
5002
5090
|
}))
|
|
5003
5091
|
})
|
|
5004
5092
|
}),
|
|
5005
|
-
|
|
5093
|
+
p.features.logs?.enabled && O?.logDetail && w && /* @__PURE__ */ j(Lt, {
|
|
5006
5094
|
path: "logs/:logId",
|
|
5007
|
-
element: /* @__PURE__ */ j(
|
|
5008
|
-
filters:
|
|
5009
|
-
children:
|
|
5010
|
-
dataSource:
|
|
5011
|
-
children: /* @__PURE__ */ j(
|
|
5012
|
-
}) : /* @__PURE__ */ j(
|
|
5095
|
+
element: /* @__PURE__ */ j(un, {
|
|
5096
|
+
filters: ee,
|
|
5097
|
+
children: T ? /* @__PURE__ */ j(c, {
|
|
5098
|
+
dataSource: w,
|
|
5099
|
+
children: /* @__PURE__ */ j(Uo, { config: O.logDetail })
|
|
5100
|
+
}) : /* @__PURE__ */ j(Uo, { config: O.logDetail })
|
|
5013
5101
|
})
|
|
5014
5102
|
}),
|
|
5015
5103
|
/* @__PURE__ */ j(Lt, {
|
|
5016
5104
|
path: "*",
|
|
5017
|
-
element:
|
|
5105
|
+
element: E?.enabled ? /* @__PURE__ */ j(It, {
|
|
5018
5106
|
to: "dashboards",
|
|
5019
5107
|
replace: !0
|
|
5020
|
-
}) :
|
|
5108
|
+
}) : p.features.logs?.enabled ? /* @__PURE__ */ j(It, {
|
|
5021
5109
|
to: "logs",
|
|
5022
5110
|
replace: !0
|
|
5023
5111
|
}) : /* @__PURE__ */ j("div", {
|
|
@@ -5026,18 +5114,18 @@ function ps({ baseUrl: e, dataSource: t, filterProviders: i, logsPage: a, logsDa
|
|
|
5026
5114
|
})
|
|
5027
5115
|
})
|
|
5028
5116
|
] })
|
|
5029
|
-
}),
|
|
5030
|
-
source:
|
|
5031
|
-
children:
|
|
5117
|
+
}), N = /* @__PURE__ */ j(en, {
|
|
5118
|
+
source: x,
|
|
5119
|
+
children: a ? te(a) : /* @__PURE__ */ j(gs, { children: (e) => te(e) })
|
|
5032
5120
|
});
|
|
5033
|
-
return
|
|
5034
|
-
dataSource:
|
|
5035
|
-
children:
|
|
5036
|
-
}) :
|
|
5121
|
+
return y ? /* @__PURE__ */ j(d, {
|
|
5122
|
+
dataSource: b,
|
|
5123
|
+
children: N
|
|
5124
|
+
}) : N;
|
|
5037
5125
|
}
|
|
5038
5126
|
//#endregion
|
|
5039
5127
|
//#region src/routing/define-observability-features.ts
|
|
5040
|
-
var
|
|
5128
|
+
var bs = {
|
|
5041
5129
|
dashboards: {
|
|
5042
5130
|
icon: st,
|
|
5043
5131
|
title: "Dashboards",
|
|
@@ -5049,10 +5137,10 @@ var ms = {
|
|
|
5049
5137
|
order: 1
|
|
5050
5138
|
}
|
|
5051
5139
|
};
|
|
5052
|
-
function
|
|
5053
|
-
let t = e.basePath ?? "observe", n =
|
|
5140
|
+
function xs(e) {
|
|
5141
|
+
let t = e.basePath ?? "observe", n = Ss(e), r = Cs(e, n, t), i = n.map((e) => `${t}/${e}`), a = ws(n, t);
|
|
5054
5142
|
function o(t) {
|
|
5055
|
-
return b(
|
|
5143
|
+
return b(ys, {
|
|
5056
5144
|
...t,
|
|
5057
5145
|
config: e
|
|
5058
5146
|
});
|
|
@@ -5064,13 +5152,13 @@ function hs(e) {
|
|
|
5064
5152
|
Routes: o
|
|
5065
5153
|
};
|
|
5066
5154
|
}
|
|
5067
|
-
function
|
|
5155
|
+
function Ss(e) {
|
|
5068
5156
|
let t = [];
|
|
5069
|
-
return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) =>
|
|
5157
|
+
return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) => bs[e].order - bs[t].order);
|
|
5070
5158
|
}
|
|
5071
|
-
function
|
|
5159
|
+
function Cs(e, t, n) {
|
|
5072
5160
|
let r = t.map((t) => {
|
|
5073
|
-
let r =
|
|
5161
|
+
let r = bs[t], i = e.nav.overrides?.[t];
|
|
5074
5162
|
return {
|
|
5075
5163
|
key: `${n}/${t}`,
|
|
5076
5164
|
title: i?.title ?? r.title,
|
|
@@ -5082,10 +5170,10 @@ function _s(e, t, n) {
|
|
|
5082
5170
|
items: r
|
|
5083
5171
|
};
|
|
5084
5172
|
}
|
|
5085
|
-
function
|
|
5173
|
+
function ws(e, t) {
|
|
5086
5174
|
let n = {};
|
|
5087
5175
|
for (let r of e) {
|
|
5088
|
-
let e =
|
|
5176
|
+
let e = bs[r], i = `${t}/${r}`;
|
|
5089
5177
|
n[i] = {
|
|
5090
5178
|
path: `${t}/${r}`,
|
|
5091
5179
|
label: e.title
|
|
@@ -5094,4 +5182,4 @@ function vs(e, t) {
|
|
|
5094
5182
|
return n;
|
|
5095
5183
|
}
|
|
5096
5184
|
//#endregion
|
|
5097
|
-
export {
|
|
5185
|
+
export { li as BarPresentation, En as CODEC_VERSION, l as CapabilityProvider, wi as CartesianPresentation, un as ContextFiltersProvider, Si as DASHBOARD_BUCKET_TARGET, e as DEFAULT_CAPABILITIES, qt as DEFAULT_MEASURE, yn as DEFAULT_PERIOD, Jt as DEFAULT_REFRESH_INTERVAL_MS, W as DEFAULT_STALE_TIME, Dn as DEFAULT_TIME_RANGE, i as DashboardPersistenceProvider, ca as DashboardTemplatesProvider, ea as DashboardView, Oi as DoughnutPresentation, _ as FILTER_OPERATORS, Kr as FilterBar, Lr as FilterChip, kr as FilterPopoverForm, h as FilterProvidersProvider, di as HTTP_STATUS_PALETTE, rn as HttpProvider, fa as LiveIndicator, Xt as LiveRefreshProvider, X as LogDetailCodeBlock, wo as LogDetailContextChart, Vo as LogDetailDrawer, ko as LogDetailDrawerShell, Z as LogDetailEmptyField, No as LogDetailHeader, Q as LogDetailHeadersTable, Ya as LogDetailJsonTree, $ as LogDetailKeyValueGrid, Po as LogDetailMetrics, Uo as LogDetailPage, Lo as LogDetailSection, Io as LogDetailSections, ga as LogSeverityBadge, Ea as LogTable, c as LogsDataSourceProvider, Ha as LogsExplorerPage, zi as MetricGroupPresentation, Hi as MetricPresentation, d as MetricsDataSourceProvider, Cn as PERIOD_DISPLAY_LABELS, Sn as PERIOD_LABELS, bn as PRESET_CATEGORIES, xn as RELATIVE_PERIODS, Vn as TimeRangePicker, s as TracesDataSourceProvider, ra as WidgetGroup, Xi as WidgetItem, Nr as buildChipLabel, Pr as buildChipLabelParts, Fr as buildChipTooltip, Ka as buildDefaultConnectionLogColumns, xo as buildDefaultLogDetailConfig, Ua as buildLogsDeepLink, Ki as clearWidgetRenderers, Ci as computeBucketInterval, Ri as computePreviousTimeRange, Mi as computeTrend, $a as connectionLogPreset, os as createHttpDataSource, ls as createHttpFilterSource, fs as createHttpLogsSource, Mn as decodeObservabilityState, ia as defineDashboardTemplate, Xn as defineFilterProvider, vo as defineLogDetail, xs as defineObservabilityFeatures, jn as encodeObservabilityState, Ai as extractMeasureValue, Ni as extractSparklineData, ri as facetsToBar, ni as facetsToDoughnut, Hn as getLocaleWeekStart, Gi as getWidgetRenderer, Wt as isBarWidget, Ht as isCartesianWidget, Ut as isDoughnutWidget, Kt as isMetricGroupWidget, Gt as isMetricWidget, xr as isMultiSelectForFilter, ji as measureResultToMetric, K as mergeFilters, gi as mergeTimeSeriesToCartesian, ao as messageLogPreset, Sr as normalizeMembershipOperatorForValues, G as observabilityQueryKeys, vr as operatorLabel, yr as operatorNeedsValue, Ji as registerDefaultRenderers, Y as registerWidgetRenderer, aa as resolveDashboardFromTemplate, pi as resolveGroupColor, yo as resolveLogDetailVariant, U as resolveMeasure, bo as resolvePreset, Yn as resolveRelativePeriod, Qr as resolveStableTimeRange, o as useCapabilities, a as useCapability, q as useContextFilters, f as useDashboardPersistence, ua as useDashboardTemplate, la as useDashboardTemplates, dn as useFacetsQuery, u as useFilterProvider, p as useFilterProviders, an as useHttpOptions, Zt as useLiveRefresh, Eo as useLogDetailDrawerExpand, fn as useLogDetailQuery, g as useLogsDataSource, hn as useLogsPagedQuery, pn as useLogsQuery, gn as useMeasuresQuery, ii as useMergedWidgetFilters, m as useMetricsDataSource, Qt as useOptionalLiveRefresh, r as useOptionalLogsDataSource, n as useOptionalMetricsDataSource, J as useStableTimeRange, vn as useTimeSeriesQuery, t as useTracesDataSource, Xr as useWidgetGroupContext, uo as webhookLogPreset };
|