@gravitee/gamma-lib-observability 1.4.0 → 1.5.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/dist/dashboards/renderers/BarPresentation.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +414 -383
- package/dist/routing/ObservabilityDashboardPage.d.ts +3 -1
- package/dist/routing/ObservabilityDashboardPage.d.ts.map +1 -1
- package/dist/routing/ObservabilityRoutes.d.ts.map +1 -1
- package/dist/routing/index.d.ts +1 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/types.d.ts +10 -0
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/styles/observability.css +1 -1
- package/dist/testing/graphene-core-icons-mock.d.ts +1 -0
- package/dist/testing/graphene-core-icons-mock.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Fragment as v, createContext as y, createElement as b, forwardRef as x,
|
|
|
3
3
|
import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
|
|
4
4
|
import { keepPreviousData as ee, useQueries as te, useQuery as N } from "@tanstack/react-query";
|
|
5
5
|
import { Accordion as ne, AccordionContent as re, AccordionItem as ie, AccordionTrigger as ae, Badge as P, Button as F, Calendar as oe, Card as se, Combobox as ce, ComboboxChip as le, ComboboxChips as ue, ComboboxChipsInput as de, ComboboxContent as fe, ComboboxEmpty as pe, ComboboxItem as me, ComboboxList as he, ComboboxValue as ge, DataTable as _e, DataTablePagination as ve, Empty as ye, EmptyDescription as be, EmptyHeader as xe, EmptyMedia as Se, EmptyTitle as Ce, Field as we, FieldError as Te, FieldLabel as Ee, Input as De, Popover as Oe, PopoverAnchor as ke, PopoverContent as Ae, PopoverTrigger as je, ScrollArea as Me, Select as Ne, SelectContent as Pe, SelectItem as Fe, SelectTrigger as Ie, SelectValue as Le, Separator as Re, Sheet as ze, SheetContent as Be, SheetDescription as Ve, SheetTitle as He, Skeleton as I, Spinner as Ue, ToggleGroup as We, ToggleGroupItem as Ge, Tooltip as L, TooltipContent as R, TooltipProvider as z, TooltipTrigger as B, cn as V, toast as H, useComboboxAnchor as Ke } from "@gravitee/graphene-core";
|
|
6
|
-
import { AlertCircleIcon as qe, ArrowLeftIcon as Je, ArrowRightIcon as Ye, BrainCircuitIcon as Xe, CableIcon as Ze, CalendarIcon as Qe, ChevronDownIcon as $e, ChevronRightIcon as et, CircleHelpIcon as tt, CopyIcon as nt, ExpandIcon as rt, FileTextIcon as it, FilterIcon as at,
|
|
6
|
+
import { AlertCircleIcon as qe, ArrowLeftIcon as Je, ArrowRightIcon as Ye, BrainCircuitIcon as Xe, CableIcon as Ze, CalendarIcon as Qe, ChevronDownIcon as $e, ChevronRightIcon as et, CircleHelpIcon as tt, CopyIcon as nt, ExpandIcon as rt, FileTextIcon as it, FilterIcon as at, FunnelXIcon as ot, GlobeIcon as st, LayoutDashboardIcon as ct, MessageSquareIcon as lt, PanelLeftIcon as ut, PlusIcon as dt, RefreshCwIcon as ft, SearchIcon as pt, WebhookIcon as mt, XIcon as ht } from "@gravitee/graphene-core/icons";
|
|
7
7
|
import { DashboardGrid as gt, DashboardWidget as _t } from "@gravitee/graphene-charts/dashboard-grid";
|
|
8
8
|
import { AreaSeries as vt, BarChart as yt, BarSeries as bt, CartesianChart as xt, ChartContainer as St, ChartLegend as Ct, ChartLegendContent as wt, ChartTooltip as Tt, ChartTooltipContent as Et, DoughnutChart as Dt, Grid as Ot, LineSeries as kt, Metric as At, MetricGroup as jt, ReferenceLine as Mt, XAxis as Nt, YAxis as Pt } from "@gravitee/graphene-charts";
|
|
9
9
|
import { Link as Ft, Navigate as It, Route as Lt, Routes as Rt, useNavigate as zt, useParams as Bt, useSearchParams as Vt } from "react-router-dom";
|
|
@@ -89,15 +89,15 @@ var W = 3e4;
|
|
|
89
89
|
//#region src/hooks/query-keys.ts
|
|
90
90
|
function on(e) {
|
|
91
91
|
let t = { name: e.name };
|
|
92
|
-
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 = G(e.filters)), "sorts" in e && e.sorts && (t.sorts = e.sorts), t;
|
|
93
93
|
}
|
|
94
94
|
function sn(e) {
|
|
95
95
|
return e.map(on).sort((e, t) => e.name.localeCompare(t.name));
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function G(e) {
|
|
98
98
|
return !e || e.length === 0 ? e : e.slice().sort((e, t) => e.field.localeCompare(t.field) || e.operator.localeCompare(t.operator));
|
|
99
99
|
}
|
|
100
|
-
var
|
|
100
|
+
var K = {
|
|
101
101
|
all: ["observability"],
|
|
102
102
|
timeSeries: (e, t, n, r, i, a) => [
|
|
103
103
|
"observability",
|
|
@@ -106,7 +106,7 @@ var G = {
|
|
|
106
106
|
metrics: sn(e),
|
|
107
107
|
timeRange: t,
|
|
108
108
|
interval: n,
|
|
109
|
-
filters:
|
|
109
|
+
filters: G(r),
|
|
110
110
|
by: i,
|
|
111
111
|
limit: a
|
|
112
112
|
}
|
|
@@ -117,7 +117,7 @@ var G = {
|
|
|
117
117
|
{
|
|
118
118
|
field: e,
|
|
119
119
|
timeRange: t,
|
|
120
|
-
filters:
|
|
120
|
+
filters: G(n),
|
|
121
121
|
limit: r,
|
|
122
122
|
search: i
|
|
123
123
|
}
|
|
@@ -128,7 +128,7 @@ var G = {
|
|
|
128
128
|
{
|
|
129
129
|
metrics: sn(e),
|
|
130
130
|
timeRange: t,
|
|
131
|
-
filters:
|
|
131
|
+
filters: G(n)
|
|
132
132
|
}
|
|
133
133
|
],
|
|
134
134
|
logs: (e, t, n) => [
|
|
@@ -136,7 +136,7 @@ var G = {
|
|
|
136
136
|
"logs",
|
|
137
137
|
{
|
|
138
138
|
timeRange: e,
|
|
139
|
-
filters:
|
|
139
|
+
filters: G(t),
|
|
140
140
|
search: n
|
|
141
141
|
}
|
|
142
142
|
],
|
|
@@ -150,7 +150,7 @@ var G = {
|
|
|
150
150
|
"traces",
|
|
151
151
|
{
|
|
152
152
|
timeRange: e,
|
|
153
|
-
filters:
|
|
153
|
+
filters: G(t),
|
|
154
154
|
serviceName: n
|
|
155
155
|
}
|
|
156
156
|
],
|
|
@@ -167,30 +167,30 @@ var G = {
|
|
|
167
167
|
};
|
|
168
168
|
//#endregion
|
|
169
169
|
//#region src/dashboards/merge-filters.ts
|
|
170
|
-
function
|
|
170
|
+
function q(...e) {
|
|
171
171
|
let t = /* @__PURE__ */ new Map();
|
|
172
172
|
for (let n of e) if (n) for (let e of n) t.set(e.field, e);
|
|
173
173
|
return Array.from(t.values());
|
|
174
174
|
}
|
|
175
175
|
//#endregion
|
|
176
176
|
//#region src/providers/ContextFiltersProvider.tsx
|
|
177
|
-
var
|
|
178
|
-
function
|
|
177
|
+
var cn = y([]);
|
|
178
|
+
function ln({ filters: e, children: t }) {
|
|
179
179
|
let n = D(() => e, [e]);
|
|
180
|
-
return /* @__PURE__ */ j(
|
|
180
|
+
return /* @__PURE__ */ j(cn.Provider, {
|
|
181
181
|
value: n,
|
|
182
182
|
children: t
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
|
-
function
|
|
186
|
-
return w(
|
|
185
|
+
function J() {
|
|
186
|
+
return w(cn);
|
|
187
187
|
}
|
|
188
188
|
//#endregion
|
|
189
189
|
//#region src/hooks/use-facets-query.ts
|
|
190
|
-
function
|
|
191
|
-
let n = m(), r =
|
|
190
|
+
function un(e, t) {
|
|
191
|
+
let n = m(), r = q(J(), e.filters);
|
|
192
192
|
return N({
|
|
193
|
-
queryKey:
|
|
193
|
+
queryKey: K.facets(e.field, e.timeRange, r, e.limit, e.search),
|
|
194
194
|
queryFn: ({ signal: t }) => n.fetchFacets({
|
|
195
195
|
field: e.field,
|
|
196
196
|
timeRange: e.timeRange,
|
|
@@ -206,9 +206,9 @@ function dn(e, t) {
|
|
|
206
206
|
}
|
|
207
207
|
//#endregion
|
|
208
208
|
//#region src/hooks/use-log-detail-query.ts
|
|
209
|
-
function
|
|
209
|
+
function dn(e) {
|
|
210
210
|
let t = g(), n = typeof t.getById == "function", r = N({
|
|
211
|
-
queryKey:
|
|
211
|
+
queryKey: K.logDetail(e.id ?? ""),
|
|
212
212
|
queryFn: ({ signal: n }) => t.getById(e.id, n),
|
|
213
213
|
staleTime: W,
|
|
214
214
|
enabled: n && !!e.id && e.enabled !== !1
|
|
@@ -225,10 +225,10 @@ function fn(e) {
|
|
|
225
225
|
}
|
|
226
226
|
//#endregion
|
|
227
227
|
//#region src/hooks/use-logs-query.ts
|
|
228
|
-
function
|
|
229
|
-
let n = g(), r =
|
|
228
|
+
function fn(e, t) {
|
|
229
|
+
let n = g(), r = q(J(), e.filters);
|
|
230
230
|
return N({
|
|
231
|
-
queryKey:
|
|
231
|
+
queryKey: K.logs(e.timeRange, r, e.search),
|
|
232
232
|
queryFn: ({ signal: t }) => n.fetchLogs({
|
|
233
233
|
timeRange: e.timeRange,
|
|
234
234
|
filters: r,
|
|
@@ -242,9 +242,9 @@ function pn(e, t) {
|
|
|
242
242
|
}
|
|
243
243
|
//#endregion
|
|
244
244
|
//#region src/hooks/use-logs-paged-query.ts
|
|
245
|
-
var
|
|
246
|
-
function
|
|
247
|
-
let { timeRange: t, filters: n, search: r, pageSize: i =
|
|
245
|
+
var pn = 25;
|
|
246
|
+
function mn(e) {
|
|
247
|
+
let { timeRange: t, filters: n, search: r, pageSize: i = pn, enabled: a } = e, o = g(), s = q(J(), n), [c, l] = k(1), [u, d] = k(i), f = K.logs(t, s, r), p = JSON.stringify(f), m = O(p);
|
|
248
248
|
T(() => {
|
|
249
249
|
m.current !== p && (m.current = p, l(1));
|
|
250
250
|
}, [p]);
|
|
@@ -284,10 +284,10 @@ function hn(e) {
|
|
|
284
284
|
}
|
|
285
285
|
//#endregion
|
|
286
286
|
//#region src/hooks/use-measures-query.ts
|
|
287
|
-
function
|
|
288
|
-
let n = m(), r =
|
|
287
|
+
function hn(e, t) {
|
|
288
|
+
let n = m(), r = q(J(), e.filters);
|
|
289
289
|
return N({
|
|
290
|
-
queryKey:
|
|
290
|
+
queryKey: K.measures(e.metrics, e.timeRange, r),
|
|
291
291
|
queryFn: ({ signal: t }) => n.fetchMeasures({
|
|
292
292
|
metrics: e.metrics,
|
|
293
293
|
timeRange: e.timeRange,
|
|
@@ -302,12 +302,12 @@ function gn(e, t) {
|
|
|
302
302
|
}
|
|
303
303
|
//#endregion
|
|
304
304
|
//#region src/hooks/use-resolve-filter-labels.ts
|
|
305
|
-
function
|
|
305
|
+
function gn(e, t) {
|
|
306
306
|
let n = D(() => e.filter((e) => e.value.length > 0 && !e.valueLabels?.length), [e]), r = D(() => n.map((e) => ({
|
|
307
307
|
filterName: e.field,
|
|
308
308
|
ids: e.value
|
|
309
309
|
})), [n]), i = D(() => JSON.stringify(r), [r]), { data: a } = N({
|
|
310
|
-
queryKey:
|
|
310
|
+
queryKey: K.filterLabels(i),
|
|
311
311
|
queryFn: ({ signal: e }) => t.resolveLabels(r, e),
|
|
312
312
|
enabled: !!t && r.length > 0,
|
|
313
313
|
staleTime: 300 * 1e3
|
|
@@ -329,10 +329,10 @@ function _n(e, t) {
|
|
|
329
329
|
}
|
|
330
330
|
//#endregion
|
|
331
331
|
//#region src/hooks/use-time-series-query.ts
|
|
332
|
-
function
|
|
333
|
-
let n = m(), r =
|
|
332
|
+
function _n(e, t) {
|
|
333
|
+
let n = m(), r = q(J(), e.filters);
|
|
334
334
|
return N({
|
|
335
|
-
queryKey:
|
|
335
|
+
queryKey: K.timeSeries(e.metrics, e.timeRange, e.interval, r, e.by, e.limit),
|
|
336
336
|
queryFn: ({ signal: t }) => n.fetchTimeSeries({
|
|
337
337
|
metrics: e.metrics,
|
|
338
338
|
timeRange: e.timeRange,
|
|
@@ -350,7 +350,7 @@ function vn(e, t) {
|
|
|
350
350
|
}
|
|
351
351
|
//#endregion
|
|
352
352
|
//#region src/filters/constants.ts
|
|
353
|
-
var
|
|
353
|
+
var vn = "5m", yn = [
|
|
354
354
|
{
|
|
355
355
|
label: "Last",
|
|
356
356
|
periods: [
|
|
@@ -383,7 +383,7 @@ var yn = "5m", bn = [
|
|
|
383
383
|
"previousQuarter"
|
|
384
384
|
]
|
|
385
385
|
}
|
|
386
|
-
],
|
|
386
|
+
], bn = yn.flatMap((e) => e.periods), xn = {
|
|
387
387
|
"5m": "5 minutes",
|
|
388
388
|
"15m": "15 minutes",
|
|
389
389
|
"1h": "1 hour",
|
|
@@ -401,7 +401,7 @@ var yn = "5m", bn = [
|
|
|
401
401
|
previousWeek: "Week",
|
|
402
402
|
previousMonth: "Month",
|
|
403
403
|
previousQuarter: "Quarter"
|
|
404
|
-
},
|
|
404
|
+
}, Sn = {
|
|
405
405
|
"5m": "Last 5 minutes",
|
|
406
406
|
"15m": "Last 15 minutes",
|
|
407
407
|
"1h": "Last 1 hour",
|
|
@@ -419,22 +419,22 @@ var yn = "5m", bn = [
|
|
|
419
419
|
previousWeek: "Previous week",
|
|
420
420
|
previousMonth: "Previous month",
|
|
421
421
|
previousQuarter: "Previous quarter"
|
|
422
|
-
},
|
|
422
|
+
}, Cn = new Set(bn), wn = new Set(_), Tn = "1", En = {
|
|
423
423
|
type: "relative",
|
|
424
424
|
period: "5m"
|
|
425
425
|
};
|
|
426
|
-
function
|
|
426
|
+
function Dn(e) {
|
|
427
427
|
return btoa(e).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
428
428
|
}
|
|
429
|
-
function
|
|
429
|
+
function On(e) {
|
|
430
430
|
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
431
431
|
return atob(t);
|
|
432
432
|
}
|
|
433
|
-
function
|
|
434
|
-
return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period ===
|
|
433
|
+
function kn(e) {
|
|
434
|
+
return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period === En.period;
|
|
435
435
|
}
|
|
436
|
-
function
|
|
437
|
-
if (
|
|
436
|
+
function An(e) {
|
|
437
|
+
if (kn(e)) return null;
|
|
438
438
|
let t = {
|
|
439
439
|
c: e.conditions.map(({ field: e, label: t, operator: n, value: r }) => ({
|
|
440
440
|
field: e,
|
|
@@ -445,19 +445,19 @@ function jn(e) {
|
|
|
445
445
|
t: e.timeRange
|
|
446
446
|
};
|
|
447
447
|
return {
|
|
448
|
-
q:
|
|
448
|
+
q: Dn(JSON.stringify(t)),
|
|
449
449
|
v: "1"
|
|
450
450
|
};
|
|
451
451
|
}
|
|
452
|
-
function
|
|
452
|
+
function jn(e, t) {
|
|
453
453
|
let n = {
|
|
454
454
|
conditions: [],
|
|
455
|
-
timeRange:
|
|
455
|
+
timeRange: En
|
|
456
456
|
};
|
|
457
457
|
if (!e || !t || t !== "1") return n;
|
|
458
458
|
try {
|
|
459
|
-
let t =
|
|
460
|
-
return
|
|
459
|
+
let t = On(e), r = JSON.parse(t);
|
|
460
|
+
return Pn(r) ? {
|
|
461
461
|
conditions: r.c.map(({ field: e, label: t, operator: n, value: r }) => ({
|
|
462
462
|
field: e,
|
|
463
463
|
label: t,
|
|
@@ -470,33 +470,33 @@ function Mn(e, t) {
|
|
|
470
470
|
return n;
|
|
471
471
|
}
|
|
472
472
|
}
|
|
473
|
-
function
|
|
473
|
+
function Mn(e) {
|
|
474
474
|
if (typeof e != "object" || !e) return !1;
|
|
475
475
|
let t = e;
|
|
476
|
-
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" || !wn.has(t.operator) || !Array.isArray(t.value) || !t.value.every((e) => typeof e == "string"));
|
|
477
477
|
}
|
|
478
|
-
function
|
|
478
|
+
function Nn(e) {
|
|
479
479
|
if (typeof e != "object" || !e) return !1;
|
|
480
480
|
let t = e;
|
|
481
|
-
return t.type === "relative" ? typeof t.period == "string" &&
|
|
481
|
+
return t.type === "relative" ? typeof t.period == "string" && Cn.has(t.period) : t.type === "absolute" ? typeof t.from == "number" && Number.isFinite(t.from) && typeof t.to == "number" && Number.isFinite(t.to) : !1;
|
|
482
482
|
}
|
|
483
|
-
function
|
|
483
|
+
function Pn(e) {
|
|
484
484
|
if (typeof e != "object" || !e) return !1;
|
|
485
485
|
let t = e;
|
|
486
|
-
return !Array.isArray(t.c) || !t.c.every(
|
|
486
|
+
return !Array.isArray(t.c) || !t.c.every(Mn) ? !1 : Nn(t.t);
|
|
487
487
|
}
|
|
488
488
|
//#endregion
|
|
489
489
|
//#region src/filters/TimeRangePicker.tsx
|
|
490
|
-
function
|
|
490
|
+
function Fn(e) {
|
|
491
491
|
return `${String(e.getHours()).padStart(2, "0")}:${String(e.getMinutes()).padStart(2, "0")}`;
|
|
492
492
|
}
|
|
493
|
-
function
|
|
493
|
+
function In() {
|
|
494
494
|
let e = -(/* @__PURE__ */ new Date()).getTimezoneOffset();
|
|
495
495
|
return `GMT${e >= 0 ? "+" : "-"}${Math.floor(Math.abs(e) / 60)}`;
|
|
496
496
|
}
|
|
497
|
-
function
|
|
498
|
-
let n = t ? ` (${
|
|
499
|
-
if (e.type === "relative") return `${
|
|
497
|
+
function Ln(e, t) {
|
|
498
|
+
let n = t ? ` (${In()})` : "";
|
|
499
|
+
if (e.type === "relative") return `${Sn[e.period]}${n}`;
|
|
500
500
|
let r = new Date(e.from), i = new Date(e.to), a = new Intl.DateTimeFormat(void 0, {
|
|
501
501
|
month: "short",
|
|
502
502
|
day: "numeric",
|
|
@@ -508,7 +508,7 @@ function Rn(e, t) {
|
|
|
508
508
|
});
|
|
509
509
|
return `${a.format(r)} @ ${o.format(r)} - ${a.format(i)} @ ${o.format(i)}${n}`;
|
|
510
510
|
}
|
|
511
|
-
function
|
|
511
|
+
function Rn(e) {
|
|
512
512
|
return e ? e.toLocaleDateString(void 0, {
|
|
513
513
|
weekday: "short",
|
|
514
514
|
month: "short",
|
|
@@ -516,20 +516,20 @@ function zn(e) {
|
|
|
516
516
|
year: "numeric"
|
|
517
517
|
}) : "—";
|
|
518
518
|
}
|
|
519
|
-
function
|
|
519
|
+
function zn(e, t) {
|
|
520
520
|
if (!e) return;
|
|
521
521
|
let [n, r] = t.split(":").map(Number), i = new Date(e);
|
|
522
522
|
return i.setHours(n ?? 0, r ?? 0, 0, 0), i.getTime();
|
|
523
523
|
}
|
|
524
|
-
function
|
|
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 =
|
|
524
|
+
function Bn({ 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 = zn(f?.from, m), y = zn(f?.to, g), b = v !== void 0 && y !== void 0 && v >= y, x = v !== void 0 && y !== void 0 && !b;
|
|
526
526
|
function S(t) {
|
|
527
527
|
if (l(t), t && (d(e.type === "absolute" ? "custom" : "relative"), e.type === "absolute")) {
|
|
528
528
|
let t = new Date(e.from), n = new Date(e.to);
|
|
529
529
|
p({
|
|
530
530
|
from: t,
|
|
531
531
|
to: n
|
|
532
|
-
}), h(
|
|
532
|
+
}), h(Fn(t)), _(Fn(n));
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
535
|
function C(e) {
|
|
@@ -560,7 +560,7 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
560
560
|
"aria-haspopup": "dialog",
|
|
561
561
|
"aria-expanded": c,
|
|
562
562
|
className: V("justify-between gap-2 font-normal", i),
|
|
563
|
-
children: [
|
|
563
|
+
children: [Ln(e, r), /* @__PURE__ */ j(Qe, {
|
|
564
564
|
"aria-hidden": "true",
|
|
565
565
|
className: "size-4 shrink-0"
|
|
566
566
|
})]
|
|
@@ -591,7 +591,7 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
591
591
|
className: "flex flex-col gap-4",
|
|
592
592
|
role: "listbox",
|
|
593
593
|
"aria-label": "Preset time ranges",
|
|
594
|
-
children:
|
|
594
|
+
children: yn.map((t) => /* @__PURE__ */ M("div", {
|
|
595
595
|
className: "flex flex-col gap-2",
|
|
596
596
|
children: [/* @__PURE__ */ j("p", {
|
|
597
597
|
className: "text-xs font-medium text-muted-foreground",
|
|
@@ -602,12 +602,12 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
602
602
|
variant: "outline",
|
|
603
603
|
size: "sm",
|
|
604
604
|
role: "option",
|
|
605
|
-
"aria-label":
|
|
605
|
+
"aria-label": Sn[t],
|
|
606
606
|
"aria-selected": e.type === "relative" && e.period === t,
|
|
607
607
|
className: V(e.type === "relative" && e.period === t && "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
608
608
|
disabled: n,
|
|
609
609
|
onClick: () => C(t),
|
|
610
|
-
children:
|
|
610
|
+
children: xn[t]
|
|
611
611
|
}, t))
|
|
612
612
|
})]
|
|
613
613
|
}, t.label))
|
|
@@ -631,7 +631,7 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
631
631
|
className: "flex-1",
|
|
632
632
|
children: [/* @__PURE__ */ j(Ee, {
|
|
633
633
|
htmlFor: o,
|
|
634
|
-
children:
|
|
634
|
+
children: Rn(f?.from)
|
|
635
635
|
}), /* @__PURE__ */ j(De, {
|
|
636
636
|
id: o,
|
|
637
637
|
type: "time",
|
|
@@ -650,7 +650,7 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
650
650
|
className: "flex-1",
|
|
651
651
|
children: [/* @__PURE__ */ j(Ee, {
|
|
652
652
|
htmlFor: s,
|
|
653
|
-
children:
|
|
653
|
+
children: Rn(f?.to)
|
|
654
654
|
}), /* @__PURE__ */ j(De, {
|
|
655
655
|
id: s,
|
|
656
656
|
type: "time",
|
|
@@ -682,7 +682,7 @@ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
|
|
|
682
682
|
}
|
|
683
683
|
//#endregion
|
|
684
684
|
//#region src/filters/resolve-period.ts
|
|
685
|
-
function
|
|
685
|
+
function Vn() {
|
|
686
686
|
try {
|
|
687
687
|
let { firstDay: e } = new Intl.Locale(navigator.language).getWeekInfo();
|
|
688
688
|
return e % 7;
|
|
@@ -690,7 +690,7 @@ function Hn() {
|
|
|
690
690
|
return 1;
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
|
-
var
|
|
693
|
+
var Hn = {
|
|
694
694
|
"5m": 5 * 6e4,
|
|
695
695
|
"15m": 15 * 6e4,
|
|
696
696
|
"1h": 60 * 6e4,
|
|
@@ -703,51 +703,51 @@ var Un = {
|
|
|
703
703
|
"180d": 4320 * 60 * 6e4,
|
|
704
704
|
"365d": 365 * 24 * 60 * 6e4
|
|
705
705
|
};
|
|
706
|
-
function
|
|
706
|
+
function Un(e) {
|
|
707
707
|
let t = new Date(e);
|
|
708
708
|
return t.setHours(0, 0, 0, 0), t;
|
|
709
709
|
}
|
|
710
|
-
function
|
|
711
|
-
let n =
|
|
710
|
+
function Wn(e, t) {
|
|
711
|
+
let n = Un(e), r = (n.getDay() - t + 7) % 7;
|
|
712
712
|
return n.setDate(n.getDate() - r), n;
|
|
713
713
|
}
|
|
714
|
-
function
|
|
714
|
+
function Gn(e) {
|
|
715
715
|
return new Date(e.getFullYear(), e.getMonth(), 1);
|
|
716
716
|
}
|
|
717
|
-
function
|
|
717
|
+
function Kn(e) {
|
|
718
718
|
let t = Math.floor(e.getMonth() / 3) * 3;
|
|
719
719
|
return new Date(e.getFullYear(), t, 1);
|
|
720
720
|
}
|
|
721
|
-
function
|
|
721
|
+
function qn(e, t, n) {
|
|
722
722
|
switch (e) {
|
|
723
723
|
case "currentWeek": return {
|
|
724
|
-
from:
|
|
724
|
+
from: Wn(t, n),
|
|
725
725
|
to: t
|
|
726
726
|
};
|
|
727
727
|
case "currentMonth": return {
|
|
728
|
-
from:
|
|
728
|
+
from: Gn(t),
|
|
729
729
|
to: t
|
|
730
730
|
};
|
|
731
731
|
case "currentQuarter": return {
|
|
732
|
-
from:
|
|
732
|
+
from: Kn(t),
|
|
733
733
|
to: t
|
|
734
734
|
};
|
|
735
735
|
case "previousWeek": {
|
|
736
|
-
let e =
|
|
736
|
+
let e = Wn(t, n), r = new Date(e);
|
|
737
737
|
return r.setDate(r.getDate() - 7), {
|
|
738
738
|
from: r,
|
|
739
739
|
to: e
|
|
740
740
|
};
|
|
741
741
|
}
|
|
742
742
|
case "previousMonth": {
|
|
743
|
-
let e =
|
|
743
|
+
let e = Gn(t), n = new Date(e);
|
|
744
744
|
return n.setMonth(n.getMonth() - 1), {
|
|
745
745
|
from: n,
|
|
746
746
|
to: e
|
|
747
747
|
};
|
|
748
748
|
}
|
|
749
749
|
case "previousQuarter": {
|
|
750
|
-
let e =
|
|
750
|
+
let e = Kn(t), n = new Date(e);
|
|
751
751
|
return n.setMonth(n.getMonth() - 3), {
|
|
752
752
|
from: n,
|
|
753
753
|
to: e
|
|
@@ -756,8 +756,8 @@ function Jn(e, t, n) {
|
|
|
756
756
|
default: return;
|
|
757
757
|
}
|
|
758
758
|
}
|
|
759
|
-
function
|
|
760
|
-
let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r =
|
|
759
|
+
function Jn(e, t = {}) {
|
|
760
|
+
let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r = Vn() } = t, i = Hn[e];
|
|
761
761
|
if (i !== void 0) {
|
|
762
762
|
let e = n.getTime();
|
|
763
763
|
return {
|
|
@@ -766,7 +766,7 @@ function Yn(e, t = {}) {
|
|
|
766
766
|
to: e
|
|
767
767
|
};
|
|
768
768
|
}
|
|
769
|
-
let a =
|
|
769
|
+
let a = qn(e, n, r);
|
|
770
770
|
return a ? {
|
|
771
771
|
type: "absolute",
|
|
772
772
|
from: a.from.getTime(),
|
|
@@ -779,7 +779,7 @@ function Yn(e, t = {}) {
|
|
|
779
779
|
}
|
|
780
780
|
//#endregion
|
|
781
781
|
//#region src/filters/filter-provider.ts
|
|
782
|
-
function
|
|
782
|
+
function Yn(e) {
|
|
783
783
|
let t = e.kind ?? "async", n = e.field;
|
|
784
784
|
if (!e.operators.length) throw Error(`[gamma-lib-observability] FilterProvider "${n}" must define at least one operator.`);
|
|
785
785
|
if (t === "enum") {
|
|
@@ -795,8 +795,8 @@ function Xn(e) {
|
|
|
795
795
|
}
|
|
796
796
|
//#endregion
|
|
797
797
|
//#region src/filters/use-scoped-filter-providers.ts
|
|
798
|
-
function
|
|
799
|
-
let t = p(), n =
|
|
798
|
+
function Xn(e) {
|
|
799
|
+
let t = p(), n = J();
|
|
800
800
|
return D(() => {
|
|
801
801
|
if (!e) return t;
|
|
802
802
|
let r = n.find((t) => t.field === e);
|
|
@@ -811,18 +811,18 @@ function Zn(e) {
|
|
|
811
811
|
}
|
|
812
812
|
//#endregion
|
|
813
813
|
//#region src/filters/utils/filter-value-options.ts
|
|
814
|
-
function
|
|
814
|
+
function Zn(e, t) {
|
|
815
815
|
let n = /* @__PURE__ */ new Map();
|
|
816
816
|
for (let t of e) n.set(t.value, t);
|
|
817
817
|
for (let e of t) n.set(e.value, e);
|
|
818
818
|
return [...n.values()];
|
|
819
819
|
}
|
|
820
|
-
function
|
|
820
|
+
function Qn(e, t) {
|
|
821
821
|
return e.value === t.value;
|
|
822
822
|
}
|
|
823
823
|
//#endregion
|
|
824
824
|
//#region src/filters/utils/use-auto-open-on-focus.ts
|
|
825
|
-
function
|
|
825
|
+
function $n() {
|
|
826
826
|
let [e, t] = k(!1), n = O(!1);
|
|
827
827
|
return {
|
|
828
828
|
open: e,
|
|
@@ -843,15 +843,15 @@ function er() {
|
|
|
843
843
|
}
|
|
844
844
|
//#endregion
|
|
845
845
|
//#region src/filters/FilterValueCombobox.tsx
|
|
846
|
-
var
|
|
847
|
-
function
|
|
848
|
-
let u = Ke(), { open: d, handleOpenChange: f, handleInputFocus: p, handleInputKeyDown: m } =
|
|
846
|
+
var er = (e) => e.label, tr = (e) => e.value;
|
|
847
|
+
function nr({ 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 } = $n(), h = E(), g = !!l, _ = {
|
|
849
849
|
open: d,
|
|
850
850
|
onOpenChange: f,
|
|
851
851
|
items: e,
|
|
852
|
-
itemToStringLabel:
|
|
853
|
-
itemToStringValue:
|
|
854
|
-
isItemEqualToValue:
|
|
852
|
+
itemToStringLabel: er,
|
|
853
|
+
itemToStringValue: tr,
|
|
854
|
+
isItemEqualToValue: Qn,
|
|
855
855
|
...a && { filter: null },
|
|
856
856
|
...i && { onInputValueChange: (e) => i(String(e)) }
|
|
857
857
|
}, y = /* @__PURE__ */ M(A, { children: [
|
|
@@ -911,7 +911,7 @@ function rr({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearc
|
|
|
911
911
|
}
|
|
912
912
|
//#endregion
|
|
913
913
|
//#region src/filters/utils/use-debounced-value.ts
|
|
914
|
-
function
|
|
914
|
+
function rr(e, t) {
|
|
915
915
|
let [n, r] = k(e);
|
|
916
916
|
return T(() => {
|
|
917
917
|
let n = window.setTimeout(() => r(e), t);
|
|
@@ -920,13 +920,13 @@ function ir(e, t) {
|
|
|
920
920
|
}
|
|
921
921
|
//#endregion
|
|
922
922
|
//#region src/filters/utils/use-scroll-sentinel.ts
|
|
923
|
-
function
|
|
923
|
+
function ir(e, t) {
|
|
924
924
|
let n = O(e), r = O(null);
|
|
925
925
|
return T(() => {
|
|
926
926
|
n.current = e;
|
|
927
927
|
}, [e]), C((e) => {
|
|
928
928
|
if (r.current &&= (r.current.disconnect(), null), e && t) {
|
|
929
|
-
let t =
|
|
929
|
+
let t = ar(e), i = new IntersectionObserver((e) => {
|
|
930
930
|
e[0]?.isIntersecting && n.current();
|
|
931
931
|
}, {
|
|
932
932
|
root: t,
|
|
@@ -936,7 +936,7 @@ function ar(e, t) {
|
|
|
936
936
|
}
|
|
937
937
|
}, [t]);
|
|
938
938
|
}
|
|
939
|
-
function
|
|
939
|
+
function ar(e) {
|
|
940
940
|
let t = e.closest("[data-slot=combobox-content]");
|
|
941
941
|
if (t) return t;
|
|
942
942
|
let n = e.parentElement;
|
|
@@ -949,9 +949,9 @@ function or(e) {
|
|
|
949
949
|
}
|
|
950
950
|
//#endregion
|
|
951
951
|
//#region src/filters/FilterAsyncValueField.tsx
|
|
952
|
-
var
|
|
953
|
-
function
|
|
954
|
-
let [i, a] = k(""), o =
|
|
952
|
+
var or = 300;
|
|
953
|
+
function sr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
954
|
+
let [i, a] = k(""), o = rr(i, or), [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) => {
|
|
955
955
|
if (!e.valueLoader) return;
|
|
956
956
|
v.current?.abort();
|
|
957
957
|
let r = new AbortController();
|
|
@@ -991,11 +991,11 @@ function cr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
991
991
|
h,
|
|
992
992
|
b
|
|
993
993
|
]);
|
|
994
|
-
let x =
|
|
994
|
+
let x = ir(C(() => {
|
|
995
995
|
!l && p && g((e) => e + 1);
|
|
996
996
|
}, [l, p]), p && !l);
|
|
997
|
-
return /* @__PURE__ */ j(
|
|
998
|
-
options: D(() =>
|
|
997
|
+
return /* @__PURE__ */ j(nr, {
|
|
998
|
+
options: D(() => Zn(t, s), [t, s]),
|
|
999
999
|
selected: t,
|
|
1000
1000
|
onSelectedChange: n,
|
|
1001
1001
|
multiple: r,
|
|
@@ -1021,8 +1021,8 @@ function cr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
1021
1021
|
}
|
|
1022
1022
|
//#endregion
|
|
1023
1023
|
//#region src/filters/FilterEnumValueField.tsx
|
|
1024
|
-
function
|
|
1025
|
-
return /* @__PURE__ */ j(
|
|
1024
|
+
function cr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
1025
|
+
return /* @__PURE__ */ j(nr, {
|
|
1026
1026
|
options: D(() => e.options ?? [], [e.options]),
|
|
1027
1027
|
selected: t,
|
|
1028
1028
|
onSelectedChange: n,
|
|
@@ -1031,19 +1031,19 @@ function lr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
|
|
|
1031
1031
|
}
|
|
1032
1032
|
//#endregion
|
|
1033
1033
|
//#region src/filters/utils/scope-labels.ts
|
|
1034
|
-
var
|
|
1034
|
+
var lr = {
|
|
1035
1035
|
HTTP_PROXY: "HTTP Proxy",
|
|
1036
1036
|
MESSAGE: "Message"
|
|
1037
1037
|
};
|
|
1038
|
-
function
|
|
1038
|
+
function ur(e) {
|
|
1039
1039
|
return e.trim().replace(/\s+/g, "_").toUpperCase();
|
|
1040
1040
|
}
|
|
1041
|
-
function
|
|
1042
|
-
return ur
|
|
1041
|
+
function dr(e) {
|
|
1042
|
+
return lr[ur(e)] ?? e.trim();
|
|
1043
1043
|
}
|
|
1044
1044
|
//#endregion
|
|
1045
1045
|
//#region src/filters/FilterFieldOptionRow.tsx
|
|
1046
|
-
var
|
|
1046
|
+
var fr = S(function({ provider: e, showScopes: t = !1, className: n }) {
|
|
1047
1047
|
let r = t && e.scopes && e.scopes.length > 0;
|
|
1048
1048
|
return /* @__PURE__ */ M("div", {
|
|
1049
1049
|
className: V("flex min-w-0 flex-1 items-center justify-between gap-3", n),
|
|
@@ -1055,15 +1055,15 @@ var pr = S(function({ provider: e, showScopes: t = !1, className: n }) {
|
|
|
1055
1055
|
children: e.scopes?.map((e) => /* @__PURE__ */ j(P, {
|
|
1056
1056
|
variant: "secondary",
|
|
1057
1057
|
className: "max-w-28 truncate text-xs font-normal",
|
|
1058
|
-
children:
|
|
1058
|
+
children: dr(e)
|
|
1059
1059
|
}, e))
|
|
1060
1060
|
}) : null]
|
|
1061
1061
|
});
|
|
1062
1062
|
});
|
|
1063
1063
|
//#endregion
|
|
1064
1064
|
//#region src/filters/FilterPropertyField.tsx
|
|
1065
|
-
function
|
|
1066
|
-
let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } =
|
|
1065
|
+
function pr({ providers: e, selectedField: t, onFieldChange: n, showScopes: r }) {
|
|
1066
|
+
let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } = $n();
|
|
1067
1067
|
return /* @__PURE__ */ M(ce, {
|
|
1068
1068
|
open: a,
|
|
1069
1069
|
onOpenChange: o,
|
|
@@ -1085,7 +1085,7 @@ function mr({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
|
|
|
1085
1085
|
anchor: i,
|
|
1086
1086
|
children: [/* @__PURE__ */ j(pe, { children: "No results." }), /* @__PURE__ */ j(he, { children: (e) => /* @__PURE__ */ j(me, {
|
|
1087
1087
|
value: e,
|
|
1088
|
-
children: /* @__PURE__ */ j(
|
|
1088
|
+
children: /* @__PURE__ */ j(fr, {
|
|
1089
1089
|
provider: e,
|
|
1090
1090
|
showScopes: r
|
|
1091
1091
|
})
|
|
@@ -1095,7 +1095,7 @@ function mr({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
|
|
|
1095
1095
|
}
|
|
1096
1096
|
//#endregion
|
|
1097
1097
|
//#region src/filters/utils/filter-operators.ts
|
|
1098
|
-
var
|
|
1098
|
+
var mr = {
|
|
1099
1099
|
eq: "=",
|
|
1100
1100
|
neq: "≠",
|
|
1101
1101
|
in: "in",
|
|
@@ -1110,13 +1110,13 @@ var hr = {
|
|
|
1110
1110
|
lte: "≤",
|
|
1111
1111
|
exists: "exists",
|
|
1112
1112
|
not_exists: "not exists"
|
|
1113
|
-
},
|
|
1113
|
+
}, hr = new Set(["exists", "not_exists"]), gr = new Set([
|
|
1114
1114
|
"neq",
|
|
1115
1115
|
"not_in",
|
|
1116
1116
|
"not_contains",
|
|
1117
1117
|
"not_exists"
|
|
1118
1118
|
]);
|
|
1119
|
-
function
|
|
1119
|
+
function _r(e) {
|
|
1120
1120
|
switch (e) {
|
|
1121
1121
|
case "eq": return "=";
|
|
1122
1122
|
case "neq": return "≠";
|
|
@@ -1124,38 +1124,38 @@ function vr(e) {
|
|
|
1124
1124
|
case "not_in": return "Not in";
|
|
1125
1125
|
case "gte": return "≥";
|
|
1126
1126
|
case "lte": return "≤";
|
|
1127
|
-
default: return
|
|
1127
|
+
default: return mr[e] ?? e;
|
|
1128
1128
|
}
|
|
1129
1129
|
}
|
|
1130
|
-
function
|
|
1131
|
-
return !
|
|
1130
|
+
function vr(e) {
|
|
1131
|
+
return !hr.has(e);
|
|
1132
1132
|
}
|
|
1133
|
-
function
|
|
1133
|
+
function yr(e, t) {
|
|
1134
1134
|
return e.operators.includes(t);
|
|
1135
1135
|
}
|
|
1136
|
-
function
|
|
1137
|
-
let n =
|
|
1136
|
+
function br(e, t) {
|
|
1137
|
+
let n = yr(e, "in"), r = yr(e, "not_in");
|
|
1138
1138
|
return !!(t === "in" || t === "not_in" || n && t === "eq" || r && t === "neq");
|
|
1139
1139
|
}
|
|
1140
|
-
function
|
|
1140
|
+
function xr(e, t, n) {
|
|
1141
1141
|
if (n >= 2) {
|
|
1142
|
-
if (t === "eq" &&
|
|
1143
|
-
if (t === "neq" &&
|
|
1142
|
+
if (t === "eq" && yr(e, "in")) return "in";
|
|
1143
|
+
if (t === "neq" && yr(e, "not_in")) return "not_in";
|
|
1144
1144
|
}
|
|
1145
1145
|
if (n === 1) {
|
|
1146
|
-
if (t === "in" &&
|
|
1147
|
-
if (t === "not_in" &&
|
|
1146
|
+
if (t === "in" && yr(e, "eq")) return "eq";
|
|
1147
|
+
if (t === "not_in" && yr(e, "neq")) return "neq";
|
|
1148
1148
|
}
|
|
1149
1149
|
return t;
|
|
1150
1150
|
}
|
|
1151
1151
|
//#endregion
|
|
1152
1152
|
//#region src/filters/utils/normalize-filter-value.ts
|
|
1153
|
-
function
|
|
1153
|
+
function Sr(e) {
|
|
1154
1154
|
return e.every((e) => typeof e == "object" && !!e && "value" in e && typeof e.value == "string" && "label" in e && typeof e.label == "string");
|
|
1155
1155
|
}
|
|
1156
|
-
function
|
|
1156
|
+
function Cr(e) {
|
|
1157
1157
|
if (Array.isArray(e)) {
|
|
1158
|
-
if (e.length > 0 &&
|
|
1158
|
+
if (e.length > 0 && Sr(e)) return {
|
|
1159
1159
|
values: e.map((e) => e.value),
|
|
1160
1160
|
valueLabels: e.map((e) => e.label)
|
|
1161
1161
|
};
|
|
@@ -1174,7 +1174,7 @@ function wr(e) {
|
|
|
1174
1174
|
valueLabels: t.map((e, t) => n[t] ?? e)
|
|
1175
1175
|
};
|
|
1176
1176
|
}
|
|
1177
|
-
function
|
|
1177
|
+
function wr(e, t) {
|
|
1178
1178
|
return e.map((e, n) => ({
|
|
1179
1179
|
value: e,
|
|
1180
1180
|
label: t?.[n] ?? e
|
|
@@ -1182,42 +1182,42 @@ function Tr(e, t) {
|
|
|
1182
1182
|
}
|
|
1183
1183
|
//#endregion
|
|
1184
1184
|
//#region src/filters/utils/parse-free-text-input.ts
|
|
1185
|
-
function
|
|
1185
|
+
function Tr(e) {
|
|
1186
1186
|
return e.split(",").map((e) => e.trim()).filter((e) => e.length > 0);
|
|
1187
1187
|
}
|
|
1188
1188
|
//#endregion
|
|
1189
1189
|
//#region src/filters/utils/build-filter-condition.ts
|
|
1190
|
-
function
|
|
1190
|
+
function Er(e) {
|
|
1191
1191
|
let { provider: t, operator: n, selectedOptions: r = [], freeText: i = "" } = e;
|
|
1192
1192
|
if (!t || !n) return !1;
|
|
1193
|
-
if (!
|
|
1193
|
+
if (!vr(n)) return !0;
|
|
1194
1194
|
if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
|
|
1195
|
-
let e =
|
|
1195
|
+
let e = Tr(i);
|
|
1196
1196
|
if (e.length === 0) return !1;
|
|
1197
1197
|
if (e.length > 1) {
|
|
1198
|
-
let r =
|
|
1198
|
+
let r = xr(t, n, e.length);
|
|
1199
1199
|
if (r === "eq" || r === "neq") return !1;
|
|
1200
1200
|
}
|
|
1201
1201
|
return !0;
|
|
1202
1202
|
}
|
|
1203
1203
|
if (r.length === 0) return !1;
|
|
1204
1204
|
if (r.length > 1) {
|
|
1205
|
-
let e =
|
|
1205
|
+
let e = xr(t, n, r.length);
|
|
1206
1206
|
if (e === "eq" || e === "neq") return !1;
|
|
1207
1207
|
}
|
|
1208
1208
|
return !0;
|
|
1209
1209
|
}
|
|
1210
|
-
function
|
|
1211
|
-
let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a =
|
|
1210
|
+
function Dr(e) {
|
|
1211
|
+
let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a = vr(n), o, s;
|
|
1212
1212
|
if (!a) o = [], s = [];
|
|
1213
1213
|
else if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
|
|
1214
|
-
let e =
|
|
1214
|
+
let e = Cr(Tr(i));
|
|
1215
1215
|
o = e.values, s = e.valueLabels;
|
|
1216
1216
|
} else {
|
|
1217
|
-
let e =
|
|
1217
|
+
let e = Cr([...r]);
|
|
1218
1218
|
o = e.values, s = e.valueLabels;
|
|
1219
1219
|
}
|
|
1220
|
-
let c =
|
|
1220
|
+
let c = xr(t, n, o.length);
|
|
1221
1221
|
return {
|
|
1222
1222
|
field: t.field,
|
|
1223
1223
|
label: t.label,
|
|
@@ -1228,8 +1228,8 @@ function Or(e) {
|
|
|
1228
1228
|
}
|
|
1229
1229
|
//#endregion
|
|
1230
1230
|
//#region src/filters/FilterPopoverForm.tsx
|
|
1231
|
-
function
|
|
1232
|
-
let i = p(), [a, o] = k(e?.field ?? null), [s, c] = k(e?.operator ?? null), [l, u] = k(() => e ?
|
|
1231
|
+
function Or({ 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 ? wr(e.value, e.valueLabels) : []), [d, f] = k(e?.value.join(", ") ?? ""), m = D(() => i.find((e) => e.field === a) ?? null, [i, a]), h = m && s ? br(m, s) : !1, g = m?.kind ?? "async", _ = s ? vr(s) : !0, v = Er({
|
|
1233
1233
|
provider: m,
|
|
1234
1234
|
operator: s,
|
|
1235
1235
|
selectedOptions: l,
|
|
@@ -1244,12 +1244,12 @@ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1244
1244
|
function x(e) {
|
|
1245
1245
|
let t = h ? e : e.slice(0, 1);
|
|
1246
1246
|
if (u(t), m && s) {
|
|
1247
|
-
let e =
|
|
1247
|
+
let e = xr(m, s, t.length);
|
|
1248
1248
|
e !== s && c(e);
|
|
1249
1249
|
}
|
|
1250
1250
|
}
|
|
1251
1251
|
function S() {
|
|
1252
|
-
!m || !s || t(
|
|
1252
|
+
!m || !s || t(Dr({
|
|
1253
1253
|
provider: m,
|
|
1254
1254
|
operator: s,
|
|
1255
1255
|
selectedOptions: l,
|
|
@@ -1261,12 +1261,12 @@ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1261
1261
|
disabled: !0,
|
|
1262
1262
|
placeholder: "Search value…",
|
|
1263
1263
|
"aria-label": "Filter value"
|
|
1264
|
-
}) : g === "enum" && m.options ? /* @__PURE__ */ j(
|
|
1264
|
+
}) : g === "enum" && m.options ? /* @__PURE__ */ j(cr, {
|
|
1265
1265
|
provider: m,
|
|
1266
1266
|
selected: l,
|
|
1267
1267
|
onSelectedChange: x,
|
|
1268
1268
|
multiple: h
|
|
1269
|
-
}, m.field) : m.valueLoader ? /* @__PURE__ */ j(
|
|
1269
|
+
}, m.field) : m.valueLoader ? /* @__PURE__ */ j(sr, {
|
|
1270
1270
|
provider: m,
|
|
1271
1271
|
selected: l,
|
|
1272
1272
|
onSelectedChange: x,
|
|
@@ -1284,7 +1284,7 @@ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1284
1284
|
return /* @__PURE__ */ M("div", {
|
|
1285
1285
|
className: "flex w-[340px] flex-col gap-4 p-4",
|
|
1286
1286
|
children: [
|
|
1287
|
-
/* @__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(pr, {
|
|
1288
1288
|
providers: i,
|
|
1289
1289
|
selectedField: a,
|
|
1290
1290
|
onFieldChange: y,
|
|
@@ -1300,7 +1300,7 @@ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1300
1300
|
children: /* @__PURE__ */ j(Le, { placeholder: "Select operator…" })
|
|
1301
1301
|
}), /* @__PURE__ */ j(Pe, { children: (m?.operators ?? []).map((e) => /* @__PURE__ */ j(Fe, {
|
|
1302
1302
|
value: e,
|
|
1303
|
-
children:
|
|
1303
|
+
children: _r(e)
|
|
1304
1304
|
}, e)) })]
|
|
1305
1305
|
})] }),
|
|
1306
1306
|
_ ? /* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter value" }), C()] }) : null,
|
|
@@ -1325,31 +1325,31 @@ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
|
|
|
1325
1325
|
}
|
|
1326
1326
|
//#endregion
|
|
1327
1327
|
//#region src/filters/utils/filter-display.ts
|
|
1328
|
-
function
|
|
1328
|
+
function kr(e, t) {
|
|
1329
1329
|
let n = e.value[t];
|
|
1330
1330
|
if (n === void 0) return "";
|
|
1331
1331
|
let r = e.valueLabels?.[t];
|
|
1332
1332
|
return r != null && r !== "" ? r : n;
|
|
1333
1333
|
}
|
|
1334
|
-
function
|
|
1334
|
+
function Ar(e) {
|
|
1335
1335
|
return e.value.length === 1 && e.operator === "in" ? "eq" : e.value.length === 1 && e.operator === "not_in" ? "neq" : e.operator;
|
|
1336
1336
|
}
|
|
1337
|
-
function
|
|
1338
|
-
return
|
|
1337
|
+
function jr(e) {
|
|
1338
|
+
return mr[e] ?? e;
|
|
1339
1339
|
}
|
|
1340
|
-
function
|
|
1340
|
+
function Mr(e) {
|
|
1341
1341
|
if (e.value.length === 0) return e.label;
|
|
1342
|
-
let t =
|
|
1343
|
-
return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${
|
|
1342
|
+
let t = jr(Ar(e));
|
|
1343
|
+
return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${kr(e, 0)}`;
|
|
1344
1344
|
}
|
|
1345
|
-
function
|
|
1345
|
+
function Nr(e) {
|
|
1346
1346
|
if (e.value.length === 0) return {
|
|
1347
1347
|
name: e.label,
|
|
1348
1348
|
operator: "",
|
|
1349
1349
|
value: "",
|
|
1350
1350
|
isCount: !1
|
|
1351
1351
|
};
|
|
1352
|
-
let t =
|
|
1352
|
+
let t = jr(Ar(e));
|
|
1353
1353
|
return e.value.length > 1 ? {
|
|
1354
1354
|
name: e.label,
|
|
1355
1355
|
operator: t,
|
|
@@ -1358,26 +1358,26 @@ function Pr(e) {
|
|
|
1358
1358
|
} : {
|
|
1359
1359
|
name: e.label,
|
|
1360
1360
|
operator: t,
|
|
1361
|
-
value:
|
|
1361
|
+
value: kr(e, 0),
|
|
1362
1362
|
isCount: !1
|
|
1363
1363
|
};
|
|
1364
1364
|
}
|
|
1365
|
-
function
|
|
1365
|
+
function Pr(e) {
|
|
1366
1366
|
if (e.value.length === 0) return e.label;
|
|
1367
|
-
let t =
|
|
1367
|
+
let t = jr(Ar(e));
|
|
1368
1368
|
if (e.value.length > 1) {
|
|
1369
|
-
let n = e.value.map((t, n) =>
|
|
1369
|
+
let n = e.value.map((t, n) => kr(e, n));
|
|
1370
1370
|
return `${e.label} ${t} [${n.join(", ")}]`;
|
|
1371
1371
|
}
|
|
1372
|
-
return `${e.label} ${t} ${
|
|
1372
|
+
return `${e.label} ${t} ${kr(e, 0)}`;
|
|
1373
1373
|
}
|
|
1374
1374
|
//#endregion
|
|
1375
1375
|
//#region src/filters/FilterChip.tsx
|
|
1376
|
-
function
|
|
1376
|
+
function Fr(e, t, n) {
|
|
1377
1377
|
return e ? t ? `Filter: ${n}` : `Edit filter: ${n}. Press Delete to remove.` : `Active filter: ${n}`;
|
|
1378
1378
|
}
|
|
1379
|
-
var
|
|
1380
|
-
let l =
|
|
1379
|
+
var Ir = 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 = Nr(e), u = Pr(e), d = r && !i, f = gr.has(e.operator), [p, m] = k(!1);
|
|
1381
1381
|
function h(e) {
|
|
1382
1382
|
e.stopPropagation(), d && n?.();
|
|
1383
1383
|
}
|
|
@@ -1404,7 +1404,7 @@ var Lr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
|
|
|
1404
1404
|
ref: c,
|
|
1405
1405
|
"data-chip-index": s,
|
|
1406
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),
|
|
1407
|
-
"aria-label":
|
|
1407
|
+
"aria-label": Fr(r, i, u),
|
|
1408
1408
|
"aria-disabled": i || void 0,
|
|
1409
1409
|
"data-active": a || void 0,
|
|
1410
1410
|
onMouseEnter: () => d && m(!0),
|
|
@@ -1426,7 +1426,7 @@ var Lr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
|
|
|
1426
1426
|
type: "button",
|
|
1427
1427
|
variant: "ghost",
|
|
1428
1428
|
size: "sm",
|
|
1429
|
-
className: "size-5 shrink-0 p-0 hover:bg-highlight/20",
|
|
1429
|
+
className: "size-5 shrink-0 p-0 hover:bg-highlight/20 dark:hover:bg-foreground/10",
|
|
1430
1430
|
"aria-label": `Remove filter ${l.name}`,
|
|
1431
1431
|
onClick: h,
|
|
1432
1432
|
tabIndex: 0,
|
|
@@ -1438,32 +1438,32 @@ var Lr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
|
|
|
1438
1438
|
})
|
|
1439
1439
|
}), /* @__PURE__ */ j(R, { children: u })] });
|
|
1440
1440
|
}));
|
|
1441
|
-
|
|
1441
|
+
Ir.displayName = "FilterChip";
|
|
1442
1442
|
//#endregion
|
|
1443
1443
|
//#region src/filters/utils/filter-condition-key.ts
|
|
1444
|
-
function
|
|
1444
|
+
function Lr(e) {
|
|
1445
1445
|
let t = JSON.stringify([...e.value].sort());
|
|
1446
1446
|
return `${e.field}:${e.operator}:${t}`;
|
|
1447
1447
|
}
|
|
1448
1448
|
//#endregion
|
|
1449
1449
|
//#region src/filters/utils/merge-conditions.ts
|
|
1450
|
-
var
|
|
1450
|
+
var Rr = new Set(["eq", "in"]), zr = new Set(["neq", "not_in"]);
|
|
1451
|
+
function Br(e) {
|
|
1452
|
+
return Rr.has(e);
|
|
1453
|
+
}
|
|
1451
1454
|
function Vr(e) {
|
|
1452
1455
|
return zr.has(e);
|
|
1453
1456
|
}
|
|
1454
|
-
function Hr(e) {
|
|
1455
|
-
return Br.
|
|
1457
|
+
function Hr(e, t) {
|
|
1458
|
+
return e.field === t.field ? !!(Br(e.operator) && Br(t.operator) || Vr(e.operator) && Vr(t.operator)) : !1;
|
|
1456
1459
|
}
|
|
1457
|
-
function Ur(e, t) {
|
|
1458
|
-
|
|
1459
|
-
}
|
|
1460
|
-
function Wr(e, t, n) {
|
|
1461
|
-
if (!Ur(e, t)) return null;
|
|
1460
|
+
function Ur(e, t, n) {
|
|
1461
|
+
if (!Hr(e, t)) return null;
|
|
1462
1462
|
let r = /* @__PURE__ */ new Set(), i = [], a = [];
|
|
1463
1463
|
for (let n of [e, t]) n.value.forEach((e, t) => {
|
|
1464
1464
|
r.has(e) || (r.add(e), i.push(e), a.push(n.valueLabels?.[t] ?? e));
|
|
1465
1465
|
});
|
|
1466
|
-
let o =
|
|
1466
|
+
let o = xr(n, Br(e.operator) ? "eq" : "neq", i.length);
|
|
1467
1467
|
return !n.operators.includes(o) || i.length > 1 && (o === "eq" || o === "neq") ? null : {
|
|
1468
1468
|
field: e.field,
|
|
1469
1469
|
label: e.label,
|
|
@@ -1474,11 +1474,11 @@ function Wr(e, t, n) {
|
|
|
1474
1474
|
}
|
|
1475
1475
|
//#endregion
|
|
1476
1476
|
//#region src/filters/FilterBar.tsx
|
|
1477
|
-
function
|
|
1477
|
+
function Wr(e, t) {
|
|
1478
1478
|
return e ? e.mode === "add" ? "add" : t ? `edit-${t.field}-${t.operator}-${JSON.stringify(t.value)}` : `edit-${e.editIndex}` : "closed";
|
|
1479
1479
|
}
|
|
1480
|
-
function
|
|
1481
|
-
let o =
|
|
1480
|
+
function Gr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r = !1, scopeFilterField: i, className: a }) {
|
|
1481
|
+
let o = Xn(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) => {
|
|
1482
1482
|
if (e) {
|
|
1483
1483
|
let t = Number(e.dataset.chipIndex);
|
|
1484
1484
|
u.current.set(t, e);
|
|
@@ -1509,7 +1509,7 @@ function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1509
1509
|
}
|
|
1510
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;
|
|
1511
1511
|
if (a && r) {
|
|
1512
|
-
let o =
|
|
1512
|
+
let o = Ur(a, n, r);
|
|
1513
1513
|
if (o) {
|
|
1514
1514
|
t(e.map((e, t) => t === i ? o : e)), b();
|
|
1515
1515
|
return;
|
|
@@ -1547,14 +1547,14 @@ function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1547
1547
|
size: "sm",
|
|
1548
1548
|
onClick: _,
|
|
1549
1549
|
className: "shrink-0",
|
|
1550
|
-
children: [/* @__PURE__ */ j(
|
|
1550
|
+
children: [/* @__PURE__ */ j(dt, {
|
|
1551
1551
|
className: "size-4",
|
|
1552
1552
|
"aria-hidden": "true"
|
|
1553
1553
|
}), "Add filter"]
|
|
1554
1554
|
}) : null,
|
|
1555
1555
|
e.map((e, t) => {
|
|
1556
1556
|
let r = s?.mode === "edit" && s.editIndex === t;
|
|
1557
|
-
return /* @__PURE__ */ j(
|
|
1557
|
+
return /* @__PURE__ */ j(Ir, {
|
|
1558
1558
|
ref: g,
|
|
1559
1559
|
"data-chip-index": t,
|
|
1560
1560
|
condition: e,
|
|
@@ -1563,14 +1563,14 @@ function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1563
1563
|
active: r,
|
|
1564
1564
|
onEdit: () => v(t),
|
|
1565
1565
|
onRemove: () => w(t)
|
|
1566
|
-
},
|
|
1566
|
+
}, Lr(e));
|
|
1567
1567
|
}),
|
|
1568
1568
|
n && e.length > 0 ? /* @__PURE__ */ j("button", {
|
|
1569
1569
|
type: "button",
|
|
1570
1570
|
onClick: T,
|
|
1571
1571
|
className: "ml-1 shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
1572
1572
|
"aria-label": "Clear all filters",
|
|
1573
|
-
children: /* @__PURE__ */ j(
|
|
1573
|
+
children: /* @__PURE__ */ j(ot, { className: "size-3.5" })
|
|
1574
1574
|
}) : null
|
|
1575
1575
|
]
|
|
1576
1576
|
}),
|
|
@@ -1582,44 +1582,44 @@ function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
|
|
|
1582
1582
|
sideOffset: 8,
|
|
1583
1583
|
className: "w-auto p-0",
|
|
1584
1584
|
onOpenAutoFocus: E,
|
|
1585
|
-
children: m ? /* @__PURE__ */ j(
|
|
1585
|
+
children: m ? /* @__PURE__ */ j(Or, {
|
|
1586
1586
|
existingCondition: h,
|
|
1587
1587
|
onApply: S,
|
|
1588
1588
|
onCancel: b,
|
|
1589
1589
|
showScopes: r
|
|
1590
|
-
},
|
|
1590
|
+
}, Wr(s, h)) : null
|
|
1591
1591
|
})
|
|
1592
1592
|
]
|
|
1593
1593
|
}) });
|
|
1594
1594
|
}
|
|
1595
1595
|
//#endregion
|
|
1596
1596
|
//#region src/dashboards/WidgetGroupContext.tsx
|
|
1597
|
-
var
|
|
1598
|
-
function
|
|
1599
|
-
return w(
|
|
1597
|
+
var Kr = [], qr = y(null), Jr = qr.Provider;
|
|
1598
|
+
function Yr() {
|
|
1599
|
+
return w(qr);
|
|
1600
1600
|
}
|
|
1601
1601
|
//#endregion
|
|
1602
1602
|
//#region src/dashboards/resolve-stable-time-range.ts
|
|
1603
|
-
var
|
|
1604
|
-
function
|
|
1603
|
+
var Xr = 6e4;
|
|
1604
|
+
function Zr(e) {
|
|
1605
1605
|
if (e.type === "absolute") return e;
|
|
1606
|
-
let t =
|
|
1606
|
+
let t = Jn(e.period);
|
|
1607
1607
|
return {
|
|
1608
1608
|
type: "absolute",
|
|
1609
|
-
from: Math.floor(t.from /
|
|
1610
|
-
to: Math.floor(t.to /
|
|
1609
|
+
from: Math.floor(t.from / Xr) * Xr,
|
|
1610
|
+
to: Math.floor(t.to / Xr) * Xr
|
|
1611
1611
|
};
|
|
1612
1612
|
}
|
|
1613
1613
|
//#endregion
|
|
1614
1614
|
//#region src/hooks/use-stable-time-range.ts
|
|
1615
|
-
function
|
|
1615
|
+
function Qr(e) {
|
|
1616
1616
|
return Math.floor(Date.now() / e);
|
|
1617
1617
|
}
|
|
1618
|
-
function
|
|
1619
|
-
let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() =>
|
|
1618
|
+
function Y(e) {
|
|
1619
|
+
let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() => Qr(n));
|
|
1620
1620
|
return T(() => {
|
|
1621
1621
|
if (e.type === "absolute" || !r) return;
|
|
1622
|
-
let t, i = () => a(
|
|
1622
|
+
let t, i = () => a(Qr(n)), o = n - Date.now() % n, s = setTimeout(() => {
|
|
1623
1623
|
i(), t = setInterval(i, n);
|
|
1624
1624
|
}, o);
|
|
1625
1625
|
if (typeof document < "u") {
|
|
@@ -1637,54 +1637,54 @@ function J(e) {
|
|
|
1637
1637
|
e.type,
|
|
1638
1638
|
r,
|
|
1639
1639
|
n
|
|
1640
|
-
]), D(() =>
|
|
1640
|
+
]), D(() => Zr(e), [e, i]);
|
|
1641
1641
|
}
|
|
1642
1642
|
//#endregion
|
|
1643
1643
|
//#region src/dashboards/adapters/facets-adapter.ts
|
|
1644
|
-
var
|
|
1645
|
-
function
|
|
1646
|
-
return e.length <=
|
|
1644
|
+
var $r = 20;
|
|
1645
|
+
function ei(e) {
|
|
1646
|
+
return e.length <= $r ? e : `${e.slice(0, $r - 1)}…`;
|
|
1647
1647
|
}
|
|
1648
|
-
function
|
|
1648
|
+
function ti(e) {
|
|
1649
1649
|
return e.map((e) => ({
|
|
1650
1650
|
category: e.value,
|
|
1651
1651
|
value: e.count
|
|
1652
1652
|
}));
|
|
1653
1653
|
}
|
|
1654
|
-
function
|
|
1654
|
+
function ni(e) {
|
|
1655
1655
|
return e.map((e) => ({
|
|
1656
|
-
category:
|
|
1656
|
+
category: ei(e.label || e.value),
|
|
1657
1657
|
count: e.count
|
|
1658
1658
|
}));
|
|
1659
1659
|
}
|
|
1660
1660
|
//#endregion
|
|
1661
1661
|
//#region src/dashboards/use-merged-widget-filters.ts
|
|
1662
|
-
function
|
|
1663
|
-
return
|
|
1662
|
+
function ri(e, t) {
|
|
1663
|
+
return q(J(), t, e);
|
|
1664
1664
|
}
|
|
1665
1665
|
//#endregion
|
|
1666
1666
|
//#region src/dashboards/renderers/BarPresentation.tsx
|
|
1667
|
-
var
|
|
1668
|
-
function
|
|
1667
|
+
var ii = 160, ai = 72, oi = 7, si = 20;
|
|
1668
|
+
function ci({ data: e, config: t, state: n, layout: r = "vertical" }) {
|
|
1669
1669
|
let i = D(() => {
|
|
1670
|
-
if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(
|
|
1670
|
+
if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(ii, Math.max(ai, e.reduce((e, t) => Math.max(e, t.category.length), 0) * oi + si)) };
|
|
1671
1671
|
}, [e, r]);
|
|
1672
1672
|
return /* @__PURE__ */ j(St, {
|
|
1673
1673
|
config: t,
|
|
1674
1674
|
className: "h-full w-full",
|
|
1675
|
-
children: /* @__PURE__ */
|
|
1675
|
+
children: /* @__PURE__ */ M(yt, {
|
|
1676
1676
|
data: [...e],
|
|
1677
1677
|
state: n,
|
|
1678
1678
|
layout: r,
|
|
1679
1679
|
margin: i,
|
|
1680
|
-
children: /* @__PURE__ */ j(Tt, { content: /* @__PURE__ */ j(Et, {}) })
|
|
1680
|
+
children: [/* @__PURE__ */ j(Tt, { content: /* @__PURE__ */ j(Et, {}) }), /* @__PURE__ */ j(Ct, { content: /* @__PURE__ */ j(wt, {}) })]
|
|
1681
1681
|
})
|
|
1682
1682
|
});
|
|
1683
1683
|
}
|
|
1684
1684
|
//#endregion
|
|
1685
1685
|
//#region src/dashboards/renderers/BarWidgetRenderer.tsx
|
|
1686
|
-
function
|
|
1687
|
-
let r =
|
|
1686
|
+
function li({ widget: e, timeRange: t, filters: n }) {
|
|
1687
|
+
let r = ri(e.filters, n), i = Y(t), { data: a, isLoading: o, isError: s } = un({
|
|
1688
1688
|
field: e.field,
|
|
1689
1689
|
timeRange: i,
|
|
1690
1690
|
filters: r,
|
|
@@ -1694,13 +1694,13 @@ function ui({ widget: e, timeRange: t, filters: n }) {
|
|
|
1694
1694
|
s && console.error(`[BarWidgetRenderer] Failed to fetch facets for widget "${e.title}"`);
|
|
1695
1695
|
}, [s, e.title]);
|
|
1696
1696
|
let { data: c, config: l } = D(() => a ? {
|
|
1697
|
-
data:
|
|
1697
|
+
data: ni(a),
|
|
1698
1698
|
config: { count: { label: e.title } }
|
|
1699
1699
|
} : {
|
|
1700
1700
|
data: [],
|
|
1701
1701
|
config: {}
|
|
1702
1702
|
}, [a, e.title]);
|
|
1703
|
-
return /* @__PURE__ */ j(
|
|
1703
|
+
return /* @__PURE__ */ j(ci, {
|
|
1704
1704
|
data: c,
|
|
1705
1705
|
config: l,
|
|
1706
1706
|
state: o ? "loading" : s ? "empty" : "ready",
|
|
@@ -1709,36 +1709,36 @@ function ui({ widget: e, timeRange: t, filters: n }) {
|
|
|
1709
1709
|
}
|
|
1710
1710
|
//#endregion
|
|
1711
1711
|
//#region src/dashboards/adapters/status-palette.ts
|
|
1712
|
-
var
|
|
1712
|
+
var ui = {
|
|
1713
1713
|
"1XX": "var(--chart-5)",
|
|
1714
1714
|
"2XX": "var(--success)",
|
|
1715
1715
|
"3XX": "var(--chart-4)",
|
|
1716
1716
|
"4XX": "var(--warning)",
|
|
1717
1717
|
"5XX": "var(--destructive)"
|
|
1718
|
-
},
|
|
1718
|
+
}, di = new Set([
|
|
1719
1719
|
"HTTP_STATUS_CODE_GROUP",
|
|
1720
1720
|
"http_status_code_group",
|
|
1721
1721
|
"status_code_group"
|
|
1722
1722
|
]);
|
|
1723
|
-
function
|
|
1723
|
+
function fi(e, t, n) {
|
|
1724
1724
|
if (n?.[e]) return n[e];
|
|
1725
|
-
if (t &&
|
|
1725
|
+
if (t && di.has(t)) return ui[e.toUpperCase()];
|
|
1726
1726
|
}
|
|
1727
1727
|
//#endregion
|
|
1728
1728
|
//#region src/dashboards/adapters/time-series-adapter.ts
|
|
1729
|
-
function
|
|
1729
|
+
function pi(e) {
|
|
1730
1730
|
return e.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
1731
1731
|
}
|
|
1732
|
-
function
|
|
1732
|
+
function mi(e, t) {
|
|
1733
1733
|
let n = [], r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
|
|
1734
1734
|
for (let t of e) i.set(t.metric, (i.get(t.metric) ?? 0) + 1);
|
|
1735
1735
|
return e.forEach((e, a) => {
|
|
1736
|
-
let o = t[a] ?? [], s = U(e.measure), c = `${
|
|
1736
|
+
let o = t[a] ?? [], s = U(e.measure), c = `${pi(e.metric)}__${pi(s)}__${pi(e.representation)}`;
|
|
1737
1737
|
if (e.groupBy) {
|
|
1738
1738
|
for (let t of o) {
|
|
1739
|
-
let i = `${c}__${
|
|
1739
|
+
let i = `${c}__${pi(t.key)}`;
|
|
1740
1740
|
if (r.has(i)) continue;
|
|
1741
|
-
let a =
|
|
1741
|
+
let a = fi(t.key, e.groupBy, e.colorByGroup);
|
|
1742
1742
|
n.push({
|
|
1743
1743
|
dataKey: i,
|
|
1744
1744
|
label: t.label,
|
|
@@ -1771,10 +1771,10 @@ function hi(e, t) {
|
|
|
1771
1771
|
seriesMap: r
|
|
1772
1772
|
};
|
|
1773
1773
|
}
|
|
1774
|
-
function
|
|
1774
|
+
function hi(e) {
|
|
1775
1775
|
let t = /* @__PURE__ */ new Map(), n = Infinity, r = -Infinity;
|
|
1776
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);
|
|
1777
|
-
let i = r - n >
|
|
1777
|
+
let i = r - n > gi ? yi : vi;
|
|
1778
1778
|
for (let n of e.values()) for (let e of n) for (let n of e.points) {
|
|
1779
1779
|
let e = i(n.timestamp), r = t.get(e);
|
|
1780
1780
|
(r === void 0 || n.timestamp < r) && t.set(e, n.timestamp);
|
|
@@ -1790,7 +1790,7 @@ function gi(e) {
|
|
|
1790
1790
|
}
|
|
1791
1791
|
return o;
|
|
1792
1792
|
}
|
|
1793
|
-
var
|
|
1793
|
+
var gi = 1440 * 6e4, _i = [
|
|
1794
1794
|
"Jan",
|
|
1795
1795
|
"Feb",
|
|
1796
1796
|
"Mar",
|
|
@@ -1804,25 +1804,25 @@ var _i = 1440 * 6e4, vi = [
|
|
|
1804
1804
|
"Nov",
|
|
1805
1805
|
"Dec"
|
|
1806
1806
|
];
|
|
1807
|
-
function
|
|
1807
|
+
function vi(e) {
|
|
1808
1808
|
let t = new Date(e);
|
|
1809
1809
|
return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
|
|
1810
1810
|
}
|
|
1811
|
-
function
|
|
1811
|
+
function yi(e) {
|
|
1812
1812
|
let t = new Date(e);
|
|
1813
|
-
return `${
|
|
1813
|
+
return `${_i[t.getMonth()]} ${String(t.getDate()).padStart(2, "0")} ${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
|
|
1814
1814
|
}
|
|
1815
1815
|
//#endregion
|
|
1816
1816
|
//#region src/dashboards/compute-bucket-interval.ts
|
|
1817
|
-
var
|
|
1818
|
-
function
|
|
1819
|
-
if (t <= 0) return
|
|
1817
|
+
var bi = 6e4, xi = 48;
|
|
1818
|
+
function Si(e, t) {
|
|
1819
|
+
if (t <= 0) return bi;
|
|
1820
1820
|
let n = e.to - e.from, r = Math.floor(n / t);
|
|
1821
|
-
return Math.max(
|
|
1821
|
+
return Math.max(bi, r);
|
|
1822
1822
|
}
|
|
1823
1823
|
//#endregion
|
|
1824
1824
|
//#region src/dashboards/renderers/CartesianPresentation.tsx
|
|
1825
|
-
function
|
|
1825
|
+
function Ci({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal: a, totalLabel: o }) {
|
|
1826
1826
|
let s = Object.keys(t), c = n.some((e) => e.representation === "bar") ? "band" : "point";
|
|
1827
1827
|
return /* @__PURE__ */ j(St, {
|
|
1828
1828
|
config: t,
|
|
@@ -1835,8 +1835,8 @@ function wi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
|
|
|
1835
1835
|
children: [
|
|
1836
1836
|
/* @__PURE__ */ j(Ot, {}),
|
|
1837
1837
|
s.map((e) => {
|
|
1838
|
-
let t = r?.[e] ??
|
|
1839
|
-
return t ?
|
|
1838
|
+
let t = r?.[e] ?? wi(e, n);
|
|
1839
|
+
return t ? Ti(e, t) : null;
|
|
1840
1840
|
}),
|
|
1841
1841
|
/* @__PURE__ */ j(Nt, {}),
|
|
1842
1842
|
/* @__PURE__ */ j(Pt, {}),
|
|
@@ -1849,10 +1849,10 @@ function wi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
|
|
|
1849
1849
|
})
|
|
1850
1850
|
});
|
|
1851
1851
|
}
|
|
1852
|
-
function
|
|
1852
|
+
function wi(e, t) {
|
|
1853
1853
|
return t.find((t) => e === t.metric || e.startsWith(`${t.metric}_`));
|
|
1854
1854
|
}
|
|
1855
|
-
function
|
|
1855
|
+
function Ti(e, t) {
|
|
1856
1856
|
switch (t.representation) {
|
|
1857
1857
|
case "line": return /* @__PURE__ */ j(kt, {
|
|
1858
1858
|
dataKey: e,
|
|
@@ -1873,14 +1873,14 @@ function Ei(e, t) {
|
|
|
1873
1873
|
}
|
|
1874
1874
|
//#endregion
|
|
1875
1875
|
//#region src/dashboards/renderers/CartesianWidgetRenderer.tsx
|
|
1876
|
-
function
|
|
1877
|
-
let r =
|
|
1876
|
+
function Ei({ widget: e, timeRange: t, filters: n }) {
|
|
1877
|
+
let r = ri(e.filters, n), i = m(), a = Y(t), o = D(() => Si(a, 48), [a]), s = te({ queries: e.series.map((e) => {
|
|
1878
1878
|
let t = [{
|
|
1879
1879
|
name: e.metric,
|
|
1880
1880
|
measures: [U(e.measure)]
|
|
1881
1881
|
}], n = e.groupBy ? [e.groupBy] : void 0;
|
|
1882
1882
|
return {
|
|
1883
|
-
queryKey:
|
|
1883
|
+
queryKey: K.timeSeries(t, a, o, r, n),
|
|
1884
1884
|
queryFn: ({ signal: e }) => i.fetchTimeSeries({
|
|
1885
1885
|
metrics: t,
|
|
1886
1886
|
timeRange: a,
|
|
@@ -1896,18 +1896,18 @@ function Di({ widget: e, timeRange: t, filters: n }) {
|
|
|
1896
1896
|
l && console.error(`[CartesianWidgetRenderer] One or more series queries failed for widget "${e.title}"`);
|
|
1897
1897
|
}, [l, e.title]);
|
|
1898
1898
|
let u = s.map((e) => e.dataUpdatedAt).join(","), { data: d, config: f, seriesByKey: p } = D(() => {
|
|
1899
|
-
let { elements: t, seriesMap: n } =
|
|
1899
|
+
let { elements: t, seriesMap: n } = mi(e.series, s.map((e) => e?.data)), r = {}, i = {};
|
|
1900
1900
|
for (let e of t) {
|
|
1901
1901
|
let t = { label: e.label };
|
|
1902
1902
|
e.color && (t.color = e.color), r[e.dataKey] = t, i[e.dataKey] = e.series;
|
|
1903
1903
|
}
|
|
1904
1904
|
return {
|
|
1905
|
-
data:
|
|
1905
|
+
data: hi(n),
|
|
1906
1906
|
config: r,
|
|
1907
1907
|
seriesByKey: i
|
|
1908
1908
|
};
|
|
1909
1909
|
}, [e.series, u]), h = c ? "loading" : l ? "empty" : "ready";
|
|
1910
|
-
return /* @__PURE__ */ j(
|
|
1910
|
+
return /* @__PURE__ */ j(Ci, {
|
|
1911
1911
|
data: d,
|
|
1912
1912
|
config: f,
|
|
1913
1913
|
series: [...e.series],
|
|
@@ -1919,7 +1919,7 @@ function Di({ widget: e, timeRange: t, filters: n }) {
|
|
|
1919
1919
|
}
|
|
1920
1920
|
//#endregion
|
|
1921
1921
|
//#region src/dashboards/renderers/DoughnutPresentation.tsx
|
|
1922
|
-
function
|
|
1922
|
+
function Di({ data: e, config: t, state: n }) {
|
|
1923
1923
|
return /* @__PURE__ */ j(St, {
|
|
1924
1924
|
config: t,
|
|
1925
1925
|
className: "h-full w-full",
|
|
@@ -1932,8 +1932,8 @@ function Oi({ data: e, config: t, state: n }) {
|
|
|
1932
1932
|
}
|
|
1933
1933
|
//#endregion
|
|
1934
1934
|
//#region src/dashboards/renderers/DoughnutWidgetRenderer.tsx
|
|
1935
|
-
function
|
|
1936
|
-
let r =
|
|
1935
|
+
function Oi({ widget: e, timeRange: t, filters: n }) {
|
|
1936
|
+
let r = ri(e.filters, n), i = Y(t), { data: a, isLoading: o, isError: s } = un({
|
|
1937
1937
|
field: e.field,
|
|
1938
1938
|
timeRange: i,
|
|
1939
1939
|
filters: r,
|
|
@@ -1947,14 +1947,14 @@ function ki({ widget: e, timeRange: t, filters: n }) {
|
|
|
1947
1947
|
data: [],
|
|
1948
1948
|
config: {}
|
|
1949
1949
|
};
|
|
1950
|
-
let e =
|
|
1950
|
+
let e = ti(a), t = {};
|
|
1951
1951
|
for (let e of a) t[e.value] = { label: e.label || e.value };
|
|
1952
1952
|
return {
|
|
1953
1953
|
data: e,
|
|
1954
1954
|
config: t
|
|
1955
1955
|
};
|
|
1956
1956
|
}, [a]);
|
|
1957
|
-
return /* @__PURE__ */ j(
|
|
1957
|
+
return /* @__PURE__ */ j(Di, {
|
|
1958
1958
|
data: c,
|
|
1959
1959
|
config: l,
|
|
1960
1960
|
state: o ? "loading" : s ? "empty" : "ready"
|
|
@@ -1962,18 +1962,18 @@ function ki({ widget: e, timeRange: t, filters: n }) {
|
|
|
1962
1962
|
}
|
|
1963
1963
|
//#endregion
|
|
1964
1964
|
//#region src/dashboards/adapters/measures-adapter.ts
|
|
1965
|
-
function
|
|
1965
|
+
function ki(e, t) {
|
|
1966
1966
|
if (e.measures.length !== 0) return t ? e.measures.find((e) => e.name === t)?.value : e.measures[0].value;
|
|
1967
1967
|
}
|
|
1968
|
-
function
|
|
1969
|
-
let n =
|
|
1968
|
+
function Ai(e, t) {
|
|
1969
|
+
let n = ki(e, t);
|
|
1970
1970
|
return {
|
|
1971
|
-
value: n === void 0 ? "—" :
|
|
1971
|
+
value: n === void 0 ? "—" : Ii(n, e.unit),
|
|
1972
1972
|
label: e.name,
|
|
1973
1973
|
unit: e.unit
|
|
1974
1974
|
};
|
|
1975
1975
|
}
|
|
1976
|
-
function
|
|
1976
|
+
function ji(e, t) {
|
|
1977
1977
|
if (t === void 0) return;
|
|
1978
1978
|
if (t === 0) return {
|
|
1979
1979
|
value: 0,
|
|
@@ -1988,17 +1988,17 @@ function Mi(e, t) {
|
|
|
1988
1988
|
direction: n > 0 ? "up" : "down"
|
|
1989
1989
|
};
|
|
1990
1990
|
}
|
|
1991
|
-
function
|
|
1991
|
+
function Mi(e, t) {
|
|
1992
1992
|
if (!e || e.length === 0) return;
|
|
1993
1993
|
let n = t ? e.find((e) => e.key === t) : e[0];
|
|
1994
1994
|
if (!(!n || n.points.length < 2)) return n.points.slice().sort((e, t) => e.timestamp - t.timestamp).map((e) => e.value);
|
|
1995
1995
|
}
|
|
1996
|
-
var
|
|
1996
|
+
var Ni = new Set([
|
|
1997
1997
|
"B",
|
|
1998
1998
|
"KB",
|
|
1999
1999
|
"MB",
|
|
2000
2000
|
"GB"
|
|
2001
|
-
]),
|
|
2001
|
+
]), Pi = {
|
|
2002
2002
|
PERCENT: { suffix: "%" },
|
|
2003
2003
|
MILLISECONDS: { suffix: "ms" },
|
|
2004
2004
|
SECONDS: { suffix: "s" },
|
|
@@ -2008,17 +2008,17 @@ var Pi = new Set([
|
|
|
2008
2008
|
GIGABYTES: { suffix: "GB" },
|
|
2009
2009
|
COUNT: { suffix: "" },
|
|
2010
2010
|
COUNT_PER_SECOND: { suffix: "/s" }
|
|
2011
|
-
},
|
|
2012
|
-
function
|
|
2013
|
-
let n = t ?
|
|
2014
|
-
if (t && !n && !
|
|
2011
|
+
}, Fi = /* @__PURE__ */ new Set();
|
|
2012
|
+
function Ii(e, t) {
|
|
2013
|
+
let n = t ? Pi[t] : void 0;
|
|
2014
|
+
if (t && !n && !Fi.has(t) && (Fi.add(t), console.warn(`[formatMeasureValue] Unknown unit "${t}" — value will be displayed without unit`)), n?.suffix === "%") return `${(Math.round(e * 10) / 10).toLocaleString()}%`;
|
|
2015
2015
|
if (n?.suffix === "ms" && e >= 1e3) return `${(e / 1e3).toFixed(2)} s`;
|
|
2016
|
-
let r = n !== void 0 &&
|
|
2016
|
+
let r = n !== void 0 && Ni.has(n.suffix) ? e.toLocaleString() : e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : e.toLocaleString(), i = n?.suffix;
|
|
2017
2017
|
return i ? `${r}${i === "" ? "" : ` ${i}`}` : r;
|
|
2018
2018
|
}
|
|
2019
2019
|
//#endregion
|
|
2020
2020
|
//#region src/dashboards/compute-previous-time-range.ts
|
|
2021
|
-
function
|
|
2021
|
+
function Li(e) {
|
|
2022
2022
|
let t = e.to - e.from;
|
|
2023
2023
|
return {
|
|
2024
2024
|
type: "absolute",
|
|
@@ -2028,7 +2028,7 @@ function Ri(e) {
|
|
|
2028
2028
|
}
|
|
2029
2029
|
//#endregion
|
|
2030
2030
|
//#region src/dashboards/renderers/MetricGroupPresentation.tsx
|
|
2031
|
-
function
|
|
2031
|
+
function Ri({ items: e, state: t, skeletonCount: n }) {
|
|
2032
2032
|
return /* @__PURE__ */ j(jt, {
|
|
2033
2033
|
items: e,
|
|
2034
2034
|
state: t,
|
|
@@ -2037,7 +2037,7 @@ function zi({ items: e, state: t, skeletonCount: n }) {
|
|
|
2037
2037
|
}
|
|
2038
2038
|
//#endregion
|
|
2039
2039
|
//#region src/dashboards/renderers/MetricGroupWidgetRenderer.tsx
|
|
2040
|
-
function
|
|
2040
|
+
function zi(e) {
|
|
2041
2041
|
let t = /* @__PURE__ */ new Map();
|
|
2042
2042
|
for (let n of e) {
|
|
2043
2043
|
let e = t.get(n.name), r = n.measures ?? [];
|
|
@@ -2049,18 +2049,18 @@ function Bi(e) {
|
|
|
2049
2049
|
measures: Array.from(t)
|
|
2050
2050
|
}));
|
|
2051
2051
|
}
|
|
2052
|
-
function
|
|
2053
|
-
let r =
|
|
2052
|
+
function Bi({ widget: e, timeRange: t, filters: n }) {
|
|
2053
|
+
let r = ri(e.filters, n), i = e.items.some((e) => e.showTrend !== !1), a = Y(t), o = D(() => zi(e.items.map((e) => ({
|
|
2054
2054
|
name: e.metric,
|
|
2055
2055
|
measures: [U(e.measure)]
|
|
2056
|
-
}))), [e.items]), s = D(() =>
|
|
2056
|
+
}))), [e.items]), s = D(() => zi(e.items.filter((e) => e.showTrend !== !1).map((e) => ({
|
|
2057
2057
|
name: e.metric,
|
|
2058
2058
|
measures: [U(e.measure)]
|
|
2059
|
-
}))), [e.items]), c = D(() =>
|
|
2059
|
+
}))), [e.items]), c = D(() => Li(a), [a]), { data: l, isLoading: u, isError: d } = hn({
|
|
2060
2060
|
metrics: o,
|
|
2061
2061
|
timeRange: a,
|
|
2062
2062
|
filters: r
|
|
2063
|
-
}), { data: f, isError: p } =
|
|
2063
|
+
}), { data: f, isError: p } = hn({
|
|
2064
2064
|
metrics: s,
|
|
2065
2065
|
timeRange: c,
|
|
2066
2066
|
filters: r,
|
|
@@ -2070,7 +2070,7 @@ function Vi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2070
2070
|
d && console.error(`[MetricGroupWidgetRenderer] Failed to fetch measures for "${e.title}"`);
|
|
2071
2071
|
}, [d, e.title]), T(() => {
|
|
2072
2072
|
p && console.error(`[MetricGroupWidgetRenderer] Failed to fetch previous-period measures for "${e.title}"`);
|
|
2073
|
-
}, [p, e.title]), /* @__PURE__ */ j(
|
|
2073
|
+
}, [p, e.title]), /* @__PURE__ */ j(Ri, {
|
|
2074
2074
|
items: D(() => {
|
|
2075
2075
|
let t = new Map(l?.map((e) => [e.name, e]) ?? []), n = new Map(f?.map((e) => [e.name, e]) ?? []);
|
|
2076
2076
|
return e.items.map((e) => {
|
|
@@ -2079,11 +2079,11 @@ function Vi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2079
2079
|
value: "—",
|
|
2080
2080
|
label: e.label ?? e.metric
|
|
2081
2081
|
};
|
|
2082
|
-
let i = U(e.measure), a =
|
|
2082
|
+
let i = U(e.measure), a = Ai(r, i), o = e.showTrend !== !1, s = ki(r, i), c = n.get(e.metric), l = c ? ki(c, i) : void 0;
|
|
2083
2083
|
return {
|
|
2084
2084
|
value: a.value,
|
|
2085
2085
|
label: e.label ?? r.name,
|
|
2086
|
-
trend: o && s !== void 0 ?
|
|
2086
|
+
trend: o && s !== void 0 ? ji(s, l) : void 0,
|
|
2087
2087
|
trendSentiment: e.sentiment
|
|
2088
2088
|
};
|
|
2089
2089
|
});
|
|
@@ -2098,7 +2098,7 @@ function Vi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2098
2098
|
}
|
|
2099
2099
|
//#endregion
|
|
2100
2100
|
//#region src/dashboards/renderers/MetricPresentation.tsx
|
|
2101
|
-
function
|
|
2101
|
+
function Vi({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparklineData: a }) {
|
|
2102
2102
|
return /* @__PURE__ */ j(At, {
|
|
2103
2103
|
value: e,
|
|
2104
2104
|
label: t,
|
|
@@ -2110,20 +2110,20 @@ function Hi({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparkli
|
|
|
2110
2110
|
}
|
|
2111
2111
|
//#endregion
|
|
2112
2112
|
//#region src/dashboards/renderers/MetricWidgetRenderer.tsx
|
|
2113
|
-
function
|
|
2114
|
-
let r =
|
|
2113
|
+
function Hi({ widget: e, timeRange: t, filters: n }) {
|
|
2114
|
+
let r = ri(e.filters, n), i = e.showTrend === !0, a = e.showSparkline === !0, o = Y(t), s = U(e.measure), c = D(() => [{
|
|
2115
2115
|
name: e.metric,
|
|
2116
2116
|
measures: [s]
|
|
2117
|
-
}], [e.metric, s]), l = D(() =>
|
|
2117
|
+
}], [e.metric, s]), l = D(() => Li(o), [o]), u = D(() => Si(o, 48), [o]), { data: d, isLoading: f, isError: p } = hn({
|
|
2118
2118
|
metrics: c,
|
|
2119
2119
|
timeRange: o,
|
|
2120
2120
|
filters: r
|
|
2121
|
-
}), { data: m, isError: h } =
|
|
2121
|
+
}), { data: m, isError: h } = hn({
|
|
2122
2122
|
metrics: c,
|
|
2123
2123
|
timeRange: l,
|
|
2124
2124
|
filters: r,
|
|
2125
2125
|
enabled: i
|
|
2126
|
-
}), { data: g, isError: _ } =
|
|
2126
|
+
}), { data: g, isError: _ } = _n({
|
|
2127
2127
|
metrics: c,
|
|
2128
2128
|
timeRange: o,
|
|
2129
2129
|
interval: u,
|
|
@@ -2137,8 +2137,8 @@ function Ui({ widget: e, timeRange: t, filters: n }) {
|
|
|
2137
2137
|
}, [h, e.metric]), T(() => {
|
|
2138
2138
|
_ && console.error(`[MetricWidgetRenderer] Failed to fetch sparkline data for "${e.metric}"`);
|
|
2139
2139
|
}, [_, e.metric]);
|
|
2140
|
-
let v = d?.[0], y = m?.[0], b = v ?
|
|
2141
|
-
return /* @__PURE__ */ j(
|
|
2140
|
+
let v = d?.[0], y = m?.[0], b = v ? Ai(v, s) : void 0, x = v ? ki(v, s) : void 0, S = y ? ki(y, s) : void 0, C = i && x !== void 0 ? ji(x, S) : void 0, w = a ? Mi(g, e.metric) : void 0, E = f ? "loading" : p || !f && !v ? "empty" : "ready";
|
|
2141
|
+
return /* @__PURE__ */ j(Vi, {
|
|
2142
2142
|
value: b?.value ?? "—",
|
|
2143
2143
|
label: e.title,
|
|
2144
2144
|
state: E,
|
|
@@ -2149,21 +2149,21 @@ function Ui({ widget: e, timeRange: t, filters: n }) {
|
|
|
2149
2149
|
}
|
|
2150
2150
|
//#endregion
|
|
2151
2151
|
//#region src/dashboards/widget-renderer-registry.ts
|
|
2152
|
-
var
|
|
2153
|
-
function
|
|
2154
|
-
|
|
2152
|
+
var Ui = /* @__PURE__ */ new Map();
|
|
2153
|
+
function Wi(e, t) {
|
|
2154
|
+
Ui.set(e, t);
|
|
2155
2155
|
}
|
|
2156
2156
|
function Gi(e) {
|
|
2157
|
-
return
|
|
2157
|
+
return Ui.get(e);
|
|
2158
2158
|
}
|
|
2159
2159
|
function Ki() {
|
|
2160
|
-
|
|
2160
|
+
Ui.clear();
|
|
2161
2161
|
}
|
|
2162
2162
|
//#endregion
|
|
2163
2163
|
//#region src/dashboards/register-default-renderers.ts
|
|
2164
2164
|
var qi = !1;
|
|
2165
2165
|
function Ji() {
|
|
2166
|
-
qi || (qi = !0,
|
|
2166
|
+
qi || (qi = !0, Wi("cartesian", Ei), Wi("doughnut", Oi), Wi("bar", li), Wi("metric", Hi), Wi("metric-group", Bi));
|
|
2167
2167
|
}
|
|
2168
2168
|
//#endregion
|
|
2169
2169
|
//#region src/dashboards/renderers/UnknownWidgetFallback.tsx
|
|
@@ -2195,7 +2195,7 @@ function Xi(e) {
|
|
|
2195
2195
|
});
|
|
2196
2196
|
}
|
|
2197
2197
|
function Zi({ widget: e, timeRange: t, filters: n }) {
|
|
2198
|
-
let r =
|
|
2198
|
+
let r = Yr(), i = t ?? r?.timeRange, a = n ?? r?.filters ?? Kr;
|
|
2199
2199
|
if (!i) throw Error("[gamma-lib-observability] <WidgetItem> requires a timeRange. Provide it as a prop or wrap the component in a <WidgetGroup>.");
|
|
2200
2200
|
let o = Gi(e.type);
|
|
2201
2201
|
return o ? b(o, {
|
|
@@ -2207,7 +2207,7 @@ function Zi({ widget: e, timeRange: t, filters: n }) {
|
|
|
2207
2207
|
function Qi(e, t) {
|
|
2208
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.`);
|
|
2209
2209
|
switch (t.type) {
|
|
2210
|
-
case "metric": return /* @__PURE__ */ j(
|
|
2210
|
+
case "metric": return /* @__PURE__ */ j(Vi, {
|
|
2211
2211
|
value: t.value,
|
|
2212
2212
|
label: t.label,
|
|
2213
2213
|
state: t.state,
|
|
@@ -2215,12 +2215,12 @@ function Qi(e, t) {
|
|
|
2215
2215
|
trendSentiment: t.trendSentiment,
|
|
2216
2216
|
sparklineData: t.sparklineData
|
|
2217
2217
|
});
|
|
2218
|
-
case "metric-group": return /* @__PURE__ */ j(
|
|
2218
|
+
case "metric-group": return /* @__PURE__ */ j(Ri, {
|
|
2219
2219
|
items: t.items,
|
|
2220
2220
|
state: t.state,
|
|
2221
2221
|
skeletonCount: t.skeletonCount
|
|
2222
2222
|
});
|
|
2223
|
-
case "cartesian": return /* @__PURE__ */ j(
|
|
2223
|
+
case "cartesian": return /* @__PURE__ */ j(Ci, {
|
|
2224
2224
|
data: t.data,
|
|
2225
2225
|
config: t.config,
|
|
2226
2226
|
series: t.series,
|
|
@@ -2228,13 +2228,13 @@ function Qi(e, t) {
|
|
|
2228
2228
|
showTotal: t.showTotal,
|
|
2229
2229
|
totalLabel: t.totalLabel
|
|
2230
2230
|
});
|
|
2231
|
-
case "bar": return /* @__PURE__ */ j(
|
|
2231
|
+
case "bar": return /* @__PURE__ */ j(ci, {
|
|
2232
2232
|
data: t.data,
|
|
2233
2233
|
config: t.config,
|
|
2234
2234
|
state: t.state,
|
|
2235
2235
|
layout: t.layout
|
|
2236
2236
|
});
|
|
2237
|
-
case "doughnut": return /* @__PURE__ */ j(
|
|
2237
|
+
case "doughnut": return /* @__PURE__ */ j(Di, {
|
|
2238
2238
|
data: t.data,
|
|
2239
2239
|
config: t.config,
|
|
2240
2240
|
state: t.state
|
|
@@ -2251,7 +2251,7 @@ var $i = {
|
|
|
2251
2251
|
xs: 12,
|
|
2252
2252
|
xxs: 12
|
|
2253
2253
|
};
|
|
2254
|
-
function ea({ dashboard: e, timeRange: t, filters: n =
|
|
2254
|
+
function ea({ dashboard: e, timeRange: t, filters: n = Kr, editable: r = !1, rowHeight: i, breakpointCols: o = $i, onLayoutChange: s }) {
|
|
2255
2255
|
let c = a("observability.dashboards.write"), l = r && c, u = D(() => e.widgets.map((e) => ({
|
|
2256
2256
|
id: e.id,
|
|
2257
2257
|
x: e.layout.x,
|
|
@@ -2298,8 +2298,8 @@ var na = {
|
|
|
2298
2298
|
start: "items-start",
|
|
2299
2299
|
end: "items-end"
|
|
2300
2300
|
};
|
|
2301
|
-
function ra({ timeRange: e, filters: t =
|
|
2302
|
-
return /* @__PURE__ */ j(
|
|
2301
|
+
function ra({ timeRange: e, filters: t = Kr, align: n = "stretch", children: r }) {
|
|
2302
|
+
return /* @__PURE__ */ j(Jr, {
|
|
2303
2303
|
value: D(() => ({
|
|
2304
2304
|
timeRange: e,
|
|
2305
2305
|
filters: t
|
|
@@ -2377,8 +2377,8 @@ function fa({ isFetching: e, className: t }) {
|
|
|
2377
2377
|
//#endregion
|
|
2378
2378
|
//#region src/routing/use-observability-url-state.ts
|
|
2379
2379
|
function pa() {
|
|
2380
|
-
let [e, t] = Vt(), n = D(() =>
|
|
2381
|
-
let r =
|
|
2380
|
+
let [e, t] = Vt(), n = D(() => jn(e.get("q"), e.get("v")), [e]), r = C((e, n) => {
|
|
2381
|
+
let r = An({
|
|
2382
2382
|
conditions: n,
|
|
2383
2383
|
timeRange: e
|
|
2384
2384
|
});
|
|
@@ -2388,7 +2388,7 @@ function pa() {
|
|
|
2388
2388
|
}, { replace: !0 });
|
|
2389
2389
|
}, [t]), i = C((e) => r(e, n.conditions), [r, n.conditions]), a = C((e) => r(n.timeRange, e), [r, n.timeRange]);
|
|
2390
2390
|
return {
|
|
2391
|
-
timeRange: n.timeRange ??
|
|
2391
|
+
timeRange: n.timeRange ?? En,
|
|
2392
2392
|
filters: n.conditions,
|
|
2393
2393
|
setTimeRange: i,
|
|
2394
2394
|
setFilters: a
|
|
@@ -2616,7 +2616,7 @@ var Da = 40, Oa = "HTTP_REQUESTS", ka = "COUNT", Aa = {
|
|
|
2616
2616
|
to: 599
|
|
2617
2617
|
};
|
|
2618
2618
|
function Na(e) {
|
|
2619
|
-
let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o =
|
|
2619
|
+
let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o = q(J(), r), s = Y(t), c = D(() => Si(s, Da), [s]), l = D(() => [{
|
|
2620
2620
|
name: Oa,
|
|
2621
2621
|
measures: [ka]
|
|
2622
2622
|
}], []), u = D(() => ["HTTP_STATUS"], []), d = D(() => [
|
|
@@ -2624,7 +2624,7 @@ function Na(e) {
|
|
|
2624
2624
|
ja,
|
|
2625
2625
|
Ma
|
|
2626
2626
|
], []), f = N({
|
|
2627
|
-
queryKey: [...
|
|
2627
|
+
queryKey: [...K.timeSeries(l, s, c, o, u), "histogram"],
|
|
2628
2628
|
queryFn: ({ signal: e }) => a.fetchTimeSeries({
|
|
2629
2629
|
metrics: l,
|
|
2630
2630
|
timeRange: s,
|
|
@@ -2707,20 +2707,20 @@ function Ra(e) {
|
|
|
2707
2707
|
function za(e) {
|
|
2708
2708
|
let t = /* @__PURE__ */ new Map();
|
|
2709
2709
|
for (let n of e) t.set(n.key, [n]);
|
|
2710
|
-
return
|
|
2710
|
+
return hi(t);
|
|
2711
2711
|
}
|
|
2712
2712
|
//#endregion
|
|
2713
2713
|
//#region src/logs/LogsExplorerPage.tsx
|
|
2714
2714
|
var Ba = 300, Va = "observability-logs-columns";
|
|
2715
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 =
|
|
2716
|
+
let { timeRange: o, filters: s, setTimeRange: c, setFilters: l } = pa(), u = gn(s, tn()), [d, f] = k(""), p = mn({
|
|
2717
2717
|
timeRange: o,
|
|
2718
2718
|
filters: s,
|
|
2719
|
-
search:
|
|
2719
|
+
search: rr(d, Ba) || void 0,
|
|
2720
2720
|
pageSize: n
|
|
2721
2721
|
}), m = /* @__PURE__ */ M("div", {
|
|
2722
2722
|
className: "relative flex-1",
|
|
2723
|
-
children: [/* @__PURE__ */ j(
|
|
2723
|
+
children: [/* @__PURE__ */ j(pt, { className: "absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), /* @__PURE__ */ j(De, {
|
|
2724
2724
|
type: "search",
|
|
2725
2725
|
placeholder: "Search logs…",
|
|
2726
2726
|
value: d,
|
|
@@ -2741,14 +2741,14 @@ function Ha({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2741
2741
|
children: [
|
|
2742
2742
|
/* @__PURE__ */ j("div", {
|
|
2743
2743
|
className: "flex flex-1 items-center gap-2",
|
|
2744
|
-
children: /* @__PURE__ */ j(
|
|
2744
|
+
children: /* @__PURE__ */ j(Gr, {
|
|
2745
2745
|
filters: u,
|
|
2746
2746
|
onFiltersChange: l,
|
|
2747
2747
|
scopeFilterField: i
|
|
2748
2748
|
})
|
|
2749
2749
|
}),
|
|
2750
2750
|
/* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(fa, { isFetching: p.isFetching }) }),
|
|
2751
|
-
/* @__PURE__ */ j(
|
|
2751
|
+
/* @__PURE__ */ j(Bn, {
|
|
2752
2752
|
value: o,
|
|
2753
2753
|
onChange: c
|
|
2754
2754
|
})
|
|
@@ -2770,7 +2770,7 @@ function Ha({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2770
2770
|
variant: "outline",
|
|
2771
2771
|
size: "sm",
|
|
2772
2772
|
onClick: p.refetch,
|
|
2773
|
-
children: [/* @__PURE__ */ j(
|
|
2773
|
+
children: [/* @__PURE__ */ j(ft, { className: "size-3.5" }), "Retry"]
|
|
2774
2774
|
})
|
|
2775
2775
|
]
|
|
2776
2776
|
}),
|
|
@@ -2794,7 +2794,7 @@ function Ha({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
|
|
|
2794
2794
|
//#endregion
|
|
2795
2795
|
//#region src/logs/build-logs-deep-link.ts
|
|
2796
2796
|
function Ua({ basePath: e, timeRange: t, filters: n = [] }) {
|
|
2797
|
-
let r =
|
|
2797
|
+
let r = An({
|
|
2798
2798
|
conditions: n,
|
|
2799
2799
|
timeRange: t
|
|
2800
2800
|
}), i = `${e.replace(/\/+$/, "")}/logs`;
|
|
@@ -2806,7 +2806,7 @@ function Ua({ basePath: e, timeRange: t, filters: n = [] }) {
|
|
|
2806
2806
|
//#region src/logs/default-connection-log-columns.tsx
|
|
2807
2807
|
var Wa = {
|
|
2808
2808
|
HTTP_PROXY: {
|
|
2809
|
-
icon:
|
|
2809
|
+
icon: st,
|
|
2810
2810
|
label: "HTTP"
|
|
2811
2811
|
},
|
|
2812
2812
|
LLM_PROXY: {
|
|
@@ -2818,7 +2818,7 @@ var Wa = {
|
|
|
2818
2818
|
label: "MCP"
|
|
2819
2819
|
},
|
|
2820
2820
|
MESSAGE: {
|
|
2821
|
-
icon:
|
|
2821
|
+
icon: lt,
|
|
2822
2822
|
label: "Message"
|
|
2823
2823
|
},
|
|
2824
2824
|
WEBHOOK: {
|
|
@@ -4025,8 +4025,8 @@ function wo({ apiId: e, timestamp: t, metric: r = Co }) {
|
|
|
4025
4025
|
from: e - So,
|
|
4026
4026
|
to: e + So
|
|
4027
4027
|
};
|
|
4028
|
-
}, [t]), o = D(() =>
|
|
4029
|
-
queryKey:
|
|
4028
|
+
}, [t]), o = D(() => Si(a, 30), [a]), { data: s, isLoading: c } = N({
|
|
4029
|
+
queryKey: K.timeSeries([{ name: r }], a, o, [{
|
|
4030
4030
|
field: "API_ID",
|
|
4031
4031
|
operator: "eq",
|
|
4032
4032
|
value: [e],
|
|
@@ -4052,7 +4052,7 @@ function wo({ apiId: e, timestamp: t, metric: r = Co }) {
|
|
|
4052
4052
|
} }), [l]), d = D(() => {
|
|
4053
4053
|
if (!s) return [];
|
|
4054
4054
|
let e = /* @__PURE__ */ new Map();
|
|
4055
|
-
return e.set(l, s),
|
|
4055
|
+
return e.set(l, s), hi(e);
|
|
4056
4056
|
}, [s, l]), f = D(() => {
|
|
4057
4057
|
let e = new Date(t).getTime(), n = s?.[0]?.points;
|
|
4058
4058
|
if (d.length === 0 || !n?.length) return;
|
|
@@ -4263,7 +4263,7 @@ function No({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigate
|
|
|
4263
4263
|
size: "icon",
|
|
4264
4264
|
onClick: () => f(!d),
|
|
4265
4265
|
"aria-label": d ? "Exit full screen" : "Full screen",
|
|
4266
|
-
children: j(d ?
|
|
4266
|
+
children: j(d ? ut : rt, { className: "size-4" })
|
|
4267
4267
|
})
|
|
4268
4268
|
}), /* @__PURE__ */ j(R, { children: d ? "Exit full screen" : "Full screen" })] }) }),
|
|
4269
4269
|
i && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(Re, {
|
|
@@ -4432,7 +4432,7 @@ function Bo(e) {
|
|
|
4432
4432
|
//#endregion
|
|
4433
4433
|
//#region src/logs/detail/components/LogDetailDrawer.tsx
|
|
4434
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 } =
|
|
4435
|
+
let { data: c, isLoading: l, isError: u, isNotFound: d, isUnsupported: f, refetch: p } = dn({ id: t });
|
|
4436
4436
|
return /* @__PURE__ */ M(ko, {
|
|
4437
4437
|
open: !!t,
|
|
4438
4438
|
onClose: n,
|
|
@@ -4522,7 +4522,7 @@ function Ho() {
|
|
|
4522
4522
|
//#endregion
|
|
4523
4523
|
//#region src/logs/detail/components/LogDetailPage.tsx
|
|
4524
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 } =
|
|
4525
|
+
let { logId: n } = Bt(), r = zt(), { data: i, isLoading: a, isError: o, isNotFound: s, isUnsupported: c, refetch: l } = dn({ id: n }), u = () => r(-1);
|
|
4526
4526
|
return a ? /* @__PURE__ */ M("div", {
|
|
4527
4527
|
className: "space-y-4 p-6",
|
|
4528
4528
|
children: [
|
|
@@ -4739,7 +4739,7 @@ function rs(e) {
|
|
|
4739
4739
|
};
|
|
4740
4740
|
}
|
|
4741
4741
|
function is(e, t) {
|
|
4742
|
-
let n =
|
|
4742
|
+
let n = Zr(e.timeRange), r = { timeRange: {
|
|
4743
4743
|
from: new Date(n.from).toISOString(),
|
|
4744
4744
|
to: new Date(n.to).toISOString()
|
|
4745
4745
|
} }, i = Xo(e.filters);
|
|
@@ -4915,7 +4915,7 @@ function fs(e, t) {
|
|
|
4915
4915
|
}
|
|
4916
4916
|
return {
|
|
4917
4917
|
async fetchLogs(e) {
|
|
4918
|
-
let t =
|
|
4918
|
+
let t = Zr(e.timeRange);
|
|
4919
4919
|
a = t;
|
|
4920
4920
|
let r = Xo(e.filters), l = { timeRange: c(t) };
|
|
4921
4921
|
r && (l.filters = r);
|
|
@@ -4944,7 +4944,7 @@ function ps({ templates: e }) {
|
|
|
4944
4944
|
cell: ({ row: e }) => /* @__PURE__ */ M(Ft, {
|
|
4945
4945
|
to: `./${e.original.id}`,
|
|
4946
4946
|
className: "flex items-center gap-2 font-medium hover:underline",
|
|
4947
|
-
children: [b(e.original.icon ??
|
|
4947
|
+
children: [b(e.original.icon ?? ct, { className: "size-4 text-muted-foreground" }), e.original.label]
|
|
4948
4948
|
})
|
|
4949
4949
|
}, {
|
|
4950
4950
|
id: "description",
|
|
@@ -4970,56 +4970,86 @@ function ps({ templates: e }) {
|
|
|
4970
4970
|
}
|
|
4971
4971
|
//#endregion
|
|
4972
4972
|
//#region src/routing/ObservabilityDashboardPage.tsx
|
|
4973
|
-
function ms(
|
|
4974
|
-
let
|
|
4975
|
-
return
|
|
4973
|
+
function ms(e) {
|
|
4974
|
+
let [t] = Vt(), n = t.get("live");
|
|
4975
|
+
return /* @__PURE__ */ j(Xt, {
|
|
4976
|
+
config: { defaultEnabled: n === "1" || n === "true" },
|
|
4977
|
+
children: /* @__PURE__ */ j(hs, { ...e })
|
|
4978
|
+
});
|
|
4979
|
+
}
|
|
4980
|
+
function hs({ templates: e, scopeFilterField: t, externalLinks: n }) {
|
|
4981
|
+
let { dashboardId: r } = Bt(), i = o(), a = Qt(), [, s] = Vt(), c = D(() => oa(e, i), [e, i]).find((e) => e.id === r), { timeRange: l, filters: u, setTimeRange: d, setFilters: f } = pa(), p = gn(u, tn()), m = a?.isLive ?? !1;
|
|
4982
|
+
T(() => {
|
|
4983
|
+
s((e) => {
|
|
4984
|
+
let t = e.has("live");
|
|
4985
|
+
if (m && !t) {
|
|
4986
|
+
let t = new URLSearchParams(e);
|
|
4987
|
+
return t.set("live", "1"), t;
|
|
4988
|
+
}
|
|
4989
|
+
if (!m && t) {
|
|
4990
|
+
let t = new URLSearchParams(e);
|
|
4991
|
+
return t.delete("live"), t;
|
|
4992
|
+
}
|
|
4993
|
+
return e;
|
|
4994
|
+
}, { replace: !0 });
|
|
4995
|
+
}, [m, s]);
|
|
4996
|
+
let h = C((e) => {
|
|
4997
|
+
e.type === "absolute" && a?.isLive && a.toggle(), d(e);
|
|
4998
|
+
}, [d, a]), g = D(() => c ? aa(c, { capabilities: i }) : null, [c, i]);
|
|
4999
|
+
return !c || !g ? /* @__PURE__ */ j("div", {
|
|
4976
5000
|
className: "flex items-center justify-center p-8 text-muted-foreground",
|
|
4977
|
-
children:
|
|
5001
|
+
children: r ? `Dashboard "${r}" not found.` : "No dashboard available."
|
|
4978
5002
|
}) : /* @__PURE__ */ M("div", {
|
|
4979
5003
|
className: "space-y-4 p-4",
|
|
4980
5004
|
children: [
|
|
4981
|
-
/* @__PURE__ */
|
|
4982
|
-
className: "
|
|
4983
|
-
children:
|
|
4984
|
-
className: "text-lg font-semibold",
|
|
4985
|
-
children: i.label
|
|
4986
|
-
})]
|
|
5005
|
+
/* @__PURE__ */ j("h1", {
|
|
5006
|
+
className: "text-lg font-semibold",
|
|
5007
|
+
children: c.label
|
|
4987
5008
|
}),
|
|
4988
5009
|
/* @__PURE__ */ M("div", {
|
|
4989
5010
|
className: "flex flex-wrap items-center gap-3",
|
|
4990
|
-
children: [
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
5011
|
+
children: [
|
|
5012
|
+
/* @__PURE__ */ j("div", {
|
|
5013
|
+
className: "flex flex-1 items-center gap-2",
|
|
5014
|
+
children: /* @__PURE__ */ j(Gr, {
|
|
5015
|
+
filters: p,
|
|
5016
|
+
onFiltersChange: f,
|
|
5017
|
+
scopeFilterField: t
|
|
5018
|
+
})
|
|
5019
|
+
}),
|
|
5020
|
+
n?.map((e) => /* @__PURE__ */ M("a", {
|
|
5021
|
+
href: typeof e.href == "function" ? e.href(u) : e.href,
|
|
5022
|
+
className: "text-sm text-muted-foreground transition-colors hover:text-foreground",
|
|
5023
|
+
children: [e.label, " →"]
|
|
5024
|
+
}, e.label)),
|
|
5025
|
+
/* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(fa, {}) }),
|
|
5026
|
+
/* @__PURE__ */ j(Bn, {
|
|
5027
|
+
value: l,
|
|
5028
|
+
onChange: h
|
|
4996
5029
|
})
|
|
4997
|
-
|
|
4998
|
-
value: a,
|
|
4999
|
-
onChange: c
|
|
5000
|
-
})]
|
|
5030
|
+
]
|
|
5001
5031
|
}),
|
|
5002
5032
|
/* @__PURE__ */ j(ea, {
|
|
5003
|
-
dashboard:
|
|
5004
|
-
timeRange:
|
|
5005
|
-
filters:
|
|
5033
|
+
dashboard: g,
|
|
5034
|
+
timeRange: l,
|
|
5035
|
+
filters: u
|
|
5006
5036
|
})
|
|
5007
5037
|
]
|
|
5008
5038
|
});
|
|
5009
5039
|
}
|
|
5010
5040
|
//#endregion
|
|
5011
5041
|
//#region src/routing/ObservabilityRoutes.tsx
|
|
5012
|
-
var
|
|
5013
|
-
function
|
|
5042
|
+
var gs = [];
|
|
5043
|
+
function _s({ children: e }) {
|
|
5014
5044
|
let t = tn(), { data: n, isLoading: r, isError: i } = N({
|
|
5015
5045
|
queryKey: ["observability", "filter-definitions"],
|
|
5016
5046
|
queryFn: ({ signal: e }) => t.fetchFilterDefinitions(e),
|
|
5017
5047
|
enabled: !!t,
|
|
5018
5048
|
staleTime: 300 * 1e3
|
|
5019
5049
|
});
|
|
5020
|
-
return r ? /* @__PURE__ */ j(
|
|
5050
|
+
return r ? /* @__PURE__ */ j(vs, {}) : i || !n ? /* @__PURE__ */ j(A, { children: e([]) }) : /* @__PURE__ */ j(A, { children: e(n) });
|
|
5021
5051
|
}
|
|
5022
|
-
function
|
|
5052
|
+
function vs() {
|
|
5023
5053
|
return /* @__PURE__ */ M("div", {
|
|
5024
5054
|
className: "flex items-center gap-2 p-4",
|
|
5025
5055
|
children: [
|
|
@@ -5029,43 +5059,44 @@ function _s() {
|
|
|
5029
5059
|
]
|
|
5030
5060
|
});
|
|
5031
5061
|
}
|
|
5032
|
-
function
|
|
5062
|
+
function ys({ templates: e, contextFilters: t }) {
|
|
5033
5063
|
let n = o(), r = D(() => oa(e, n), [e, n]);
|
|
5034
5064
|
return r.length === 1 && r[0] ? /* @__PURE__ */ j(It, {
|
|
5035
5065
|
to: `./${r[0].id}`,
|
|
5036
5066
|
replace: !0
|
|
5037
|
-
}) : /* @__PURE__ */ j(
|
|
5067
|
+
}) : /* @__PURE__ */ j(ln, {
|
|
5038
5068
|
filters: t,
|
|
5039
5069
|
children: /* @__PURE__ */ j(ps, { templates: e })
|
|
5040
5070
|
});
|
|
5041
5071
|
}
|
|
5042
|
-
function
|
|
5072
|
+
function bs({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage: o, logsDataSource: s, logsColumns: l, logsOnRowClick: u, logsGetRowId: f, config: p }) {
|
|
5043
5073
|
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
5074
|
e,
|
|
5045
5075
|
g,
|
|
5046
5076
|
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 ??
|
|
5077
|
+
]), w = s ?? S ?? C, T = s !== void 0 || S === null, E = p.features.dashboards, O = p.features.logs, k = E?.contextFilters ?? gs, ee = O?.contextFilters ?? gs, te = (e) => /* @__PURE__ */ j(h, {
|
|
5048
5078
|
providers: e,
|
|
5049
5079
|
children: /* @__PURE__ */ M(Rt, { children: [
|
|
5050
5080
|
E?.enabled && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(Lt, {
|
|
5051
5081
|
path: "dashboards",
|
|
5052
|
-
element: /* @__PURE__ */ j(
|
|
5082
|
+
element: /* @__PURE__ */ j(ys, {
|
|
5053
5083
|
templates: E.templates,
|
|
5054
5084
|
contextFilters: k
|
|
5055
5085
|
})
|
|
5056
5086
|
}), /* @__PURE__ */ j(Lt, {
|
|
5057
5087
|
path: "dashboards/:dashboardId",
|
|
5058
|
-
element: /* @__PURE__ */ j(
|
|
5088
|
+
element: /* @__PURE__ */ j(ln, {
|
|
5059
5089
|
filters: k,
|
|
5060
5090
|
children: /* @__PURE__ */ j(ms, {
|
|
5061
5091
|
templates: E.templates,
|
|
5062
|
-
scopeFilterField: E.scopeFilterField
|
|
5092
|
+
scopeFilterField: E.scopeFilterField,
|
|
5093
|
+
externalLinks: E.externalLinks
|
|
5063
5094
|
})
|
|
5064
5095
|
})
|
|
5065
5096
|
})] }),
|
|
5066
5097
|
p.features.logs?.enabled && /* @__PURE__ */ j(Lt, {
|
|
5067
5098
|
path: "logs",
|
|
5068
|
-
element: /* @__PURE__ */ j(
|
|
5099
|
+
element: /* @__PURE__ */ j(ln, {
|
|
5069
5100
|
filters: ee,
|
|
5070
5101
|
children: o ?? (w && l ? T ? /* @__PURE__ */ j(c, {
|
|
5071
5102
|
dataSource: w,
|
|
@@ -5092,7 +5123,7 @@ function ys({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage:
|
|
|
5092
5123
|
}),
|
|
5093
5124
|
p.features.logs?.enabled && O?.logDetail && w && /* @__PURE__ */ j(Lt, {
|
|
5094
5125
|
path: "logs/:logId",
|
|
5095
|
-
element: /* @__PURE__ */ j(
|
|
5126
|
+
element: /* @__PURE__ */ j(ln, {
|
|
5096
5127
|
filters: ee,
|
|
5097
5128
|
children: T ? /* @__PURE__ */ j(c, {
|
|
5098
5129
|
dataSource: w,
|
|
@@ -5116,7 +5147,7 @@ function ys({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage:
|
|
|
5116
5147
|
] })
|
|
5117
5148
|
}), N = /* @__PURE__ */ j(en, {
|
|
5118
5149
|
source: x,
|
|
5119
|
-
children: a ? te(a) : /* @__PURE__ */ j(
|
|
5150
|
+
children: a ? te(a) : /* @__PURE__ */ j(_s, { children: (e) => te(e) })
|
|
5120
5151
|
});
|
|
5121
5152
|
return y ? /* @__PURE__ */ j(d, {
|
|
5122
5153
|
dataSource: b,
|
|
@@ -5125,9 +5156,9 @@ function ys({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage:
|
|
|
5125
5156
|
}
|
|
5126
5157
|
//#endregion
|
|
5127
5158
|
//#region src/routing/define-observability-features.ts
|
|
5128
|
-
var
|
|
5159
|
+
var xs = {
|
|
5129
5160
|
dashboards: {
|
|
5130
|
-
icon:
|
|
5161
|
+
icon: ct,
|
|
5131
5162
|
title: "Dashboards",
|
|
5132
5163
|
order: 0
|
|
5133
5164
|
},
|
|
@@ -5137,10 +5168,10 @@ var bs = {
|
|
|
5137
5168
|
order: 1
|
|
5138
5169
|
}
|
|
5139
5170
|
};
|
|
5140
|
-
function
|
|
5141
|
-
let t = e.basePath ?? "observe", n =
|
|
5171
|
+
function Ss(e) {
|
|
5172
|
+
let t = e.basePath ?? "observe", n = Cs(e), r = ws(e, n, t), i = n.map((e) => `${t}/${e}`), a = Ts(n, t);
|
|
5142
5173
|
function o(t) {
|
|
5143
|
-
return b(
|
|
5174
|
+
return b(bs, {
|
|
5144
5175
|
...t,
|
|
5145
5176
|
config: e
|
|
5146
5177
|
});
|
|
@@ -5152,13 +5183,13 @@ function xs(e) {
|
|
|
5152
5183
|
Routes: o
|
|
5153
5184
|
};
|
|
5154
5185
|
}
|
|
5155
|
-
function
|
|
5186
|
+
function Cs(e) {
|
|
5156
5187
|
let t = [];
|
|
5157
|
-
return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) =>
|
|
5188
|
+
return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) => xs[e].order - xs[t].order);
|
|
5158
5189
|
}
|
|
5159
|
-
function
|
|
5190
|
+
function ws(e, t, n) {
|
|
5160
5191
|
let r = t.map((t) => {
|
|
5161
|
-
let r =
|
|
5192
|
+
let r = xs[t], i = e.nav.overrides?.[t];
|
|
5162
5193
|
return {
|
|
5163
5194
|
key: `${n}/${t}`,
|
|
5164
5195
|
title: i?.title ?? r.title,
|
|
@@ -5170,10 +5201,10 @@ function Cs(e, t, n) {
|
|
|
5170
5201
|
items: r
|
|
5171
5202
|
};
|
|
5172
5203
|
}
|
|
5173
|
-
function
|
|
5204
|
+
function Ts(e, t) {
|
|
5174
5205
|
let n = {};
|
|
5175
5206
|
for (let r of e) {
|
|
5176
|
-
let e =
|
|
5207
|
+
let e = xs[r], i = `${t}/${r}`;
|
|
5177
5208
|
n[i] = {
|
|
5178
5209
|
path: `${t}/${r}`,
|
|
5179
5210
|
label: e.title
|
|
@@ -5182,4 +5213,4 @@ function ws(e, t) {
|
|
|
5182
5213
|
return n;
|
|
5183
5214
|
}
|
|
5184
5215
|
//#endregion
|
|
5185
|
-
export {
|
|
5216
|
+
export { ci as BarPresentation, Tn as CODEC_VERSION, l as CapabilityProvider, Ci as CartesianPresentation, ln as ContextFiltersProvider, xi as DASHBOARD_BUCKET_TARGET, e as DEFAULT_CAPABILITIES, qt as DEFAULT_MEASURE, vn as DEFAULT_PERIOD, Jt as DEFAULT_REFRESH_INTERVAL_MS, W as DEFAULT_STALE_TIME, En as DEFAULT_TIME_RANGE, i as DashboardPersistenceProvider, ca as DashboardTemplatesProvider, ea as DashboardView, Di as DoughnutPresentation, _ as FILTER_OPERATORS, Gr as FilterBar, Ir as FilterChip, Or as FilterPopoverForm, h as FilterProvidersProvider, ui 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, Ri as MetricGroupPresentation, Vi as MetricPresentation, d as MetricsDataSourceProvider, Sn as PERIOD_DISPLAY_LABELS, xn as PERIOD_LABELS, yn as PRESET_CATEGORIES, bn as RELATIVE_PERIODS, Bn as TimeRangePicker, s as TracesDataSourceProvider, ra as WidgetGroup, Xi as WidgetItem, Mr as buildChipLabel, Nr as buildChipLabelParts, Pr as buildChipTooltip, Ka as buildDefaultConnectionLogColumns, xo as buildDefaultLogDetailConfig, Ua as buildLogsDeepLink, Ki as clearWidgetRenderers, Si as computeBucketInterval, Li as computePreviousTimeRange, ji as computeTrend, $a as connectionLogPreset, os as createHttpDataSource, ls as createHttpFilterSource, fs as createHttpLogsSource, jn as decodeObservabilityState, ia as defineDashboardTemplate, Yn as defineFilterProvider, vo as defineLogDetail, Ss as defineObservabilityFeatures, An as encodeObservabilityState, ki as extractMeasureValue, Mi as extractSparklineData, ni as facetsToBar, ti as facetsToDoughnut, Vn as getLocaleWeekStart, Gi as getWidgetRenderer, Wt as isBarWidget, Ht as isCartesianWidget, Ut as isDoughnutWidget, Kt as isMetricGroupWidget, Gt as isMetricWidget, br as isMultiSelectForFilter, Ai as measureResultToMetric, q as mergeFilters, hi as mergeTimeSeriesToCartesian, ao as messageLogPreset, xr as normalizeMembershipOperatorForValues, K as observabilityQueryKeys, _r as operatorLabel, vr as operatorNeedsValue, Ji as registerDefaultRenderers, Wi as registerWidgetRenderer, aa as resolveDashboardFromTemplate, fi as resolveGroupColor, yo as resolveLogDetailVariant, U as resolveMeasure, bo as resolvePreset, Jn as resolveRelativePeriod, Zr as resolveStableTimeRange, o as useCapabilities, a as useCapability, J as useContextFilters, f as useDashboardPersistence, ua as useDashboardTemplate, la as useDashboardTemplates, un as useFacetsQuery, u as useFilterProvider, p as useFilterProviders, an as useHttpOptions, Zt as useLiveRefresh, Eo as useLogDetailDrawerExpand, dn as useLogDetailQuery, g as useLogsDataSource, mn as useLogsPagedQuery, fn as useLogsQuery, hn as useMeasuresQuery, ri as useMergedWidgetFilters, m as useMetricsDataSource, Qt as useOptionalLiveRefresh, r as useOptionalLogsDataSource, n as useOptionalMetricsDataSource, Y as useStableTimeRange, _n as useTimeSeriesQuery, t as useTracesDataSource, Yr as useWidgetGroupContext, uo as webhookLogPreset };
|