@burdenoff/microfe-assethandler 2026.826.13 → 2026.826.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CmdbBrowserPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/CmdbBrowserPage.tsx"],"names":[],"mappings":"AAycA,wBAAgB,eAAe,gCAwU9B"}
1
+ {"version":3,"file":"CmdbBrowserPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/CmdbBrowserPage.tsx"],"names":[],"mappings":"AAudA,wBAAgB,eAAe,gCAkW9B"}
@@ -7,13 +7,13 @@ import { StatTile as a } from "../components/StatTile.js";
7
7
  import { ChartCard as o } from "../components/ChartCard.js";
8
8
  import "../components/index.js";
9
9
  import { useMemo as s, useState as c, useSyncExternalStore as l } from "react";
10
- import { AppWindow as u, ChevronDown as d, ChevronRight as f, Cog as p, Database as m, HardDrive as h, Network as g, Pencil as _, Plus as ee, Search as v, Server as y, Trash2 as te, X as b } from "lucide-react";
11
- import { gql as x } from "@apollo/client";
12
- import { useMutation as S, useQuery as C } from "@apollo/client/react";
10
+ import { AppWindow as u, ChevronDown as d, ChevronRight as f, Cog as p, Database as m, HardDrive as h, Network as g, Pencil as _, Plus as ee, Search as v, Server as y, Trash2 as b, X as x } from "lucide-react";
11
+ import { gql as S } from "@apollo/client";
12
+ import { useMutation as te, useQuery as C } from "@apollo/client/react";
13
13
  import { jsx as w, jsxs as T } from "react/jsx-runtime";
14
- import { Button as E, GlassCard as D, GradientText as O, IllustratedEmptyState as ne, Input as k, Label as A, PagePurpose as j, ResponsiveDialog as re, ResponsiveDialogContent as ie, ResponsiveDialogDescription as M, ResponsiveDialogFooter as ae, ResponsiveDialogHeader as N, ResponsiveDialogTitle as P, Select as F, SelectContent as I, SelectItem as L, SelectTrigger as R, SelectValue as z } from "@burdenoff/fe-libs/ui";
14
+ import { Button as E, GlassCard as D, GradientText as O, IllustratedEmptyState as ne, Input as k, Label as A, PagePurpose as j, ResponsiveDialog as re, ResponsiveDialogContent as ie, ResponsiveDialogDescription as M, ResponsiveDialogFooter as N, ResponsiveDialogHeader as P, ResponsiveDialogTitle as ae, Select as F, SelectContent as I, SelectItem as L, SelectTrigger as R, SelectValue as z } from "@burdenoff/fe-libs/ui";
15
15
  //#region src/assethandler/pages/CmdbBrowserPage.tsx
16
- var oe = x`
16
+ var oe = S`
17
17
  query AssetHandlerConfigurationItems {
18
18
  configurationItems {
19
19
  id
@@ -27,13 +27,17 @@ var oe = x`
27
27
  updatedAt
28
28
  }
29
29
  }
30
- `, B = x`
30
+ `, B = S`
31
31
  mutation AssetHandlerUpsertConfigurationItem($input: UpsertConfigurationItemInput!) {
32
32
  upsertConfigurationItem(input: $input) {
33
33
  id
34
34
  ciNumber
35
35
  }
36
36
  }
37
+ `, se = S`
38
+ mutation AssetHandlerDeleteConfigurationItem($id: ID!) {
39
+ deleteConfigurationItem(id: $id)
40
+ }
37
41
  `, V = [
38
42
  "SERVER",
39
43
  "SERVICE",
@@ -86,7 +90,7 @@ function K({ status: e }) {
86
90
  children: n.label
87
91
  });
88
92
  }
89
- function se() {
93
+ function ce() {
90
94
  return l((e) => {
91
95
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
92
96
  let t = window.matchMedia("(min-width: 1024px)");
@@ -99,10 +103,10 @@ function q(e) {
99
103
  value: typeof t == "string" ? t : JSON.stringify(t)
100
104
  })) : [];
101
105
  }
102
- function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
103
- let a = !!r, [o, s] = c(""), [l, u] = c(""), [d, f] = c("SERVER"), [p, m] = c("ACTIVE"), [h, g] = c("PRODUCTION"), [_, v] = c(""), [y, b] = c([]), [x, C] = c(null);
104
- e && x !== (r?.id ?? "__new__") && (C(r?.id ?? "__new__"), s(r?.ciNumber ?? ""), u(r?.name ?? ""), f(r?.ciType ?? "SERVER"), m(r?.status ?? "ACTIVE"), g(r?.environment ?? "PRODUCTION"), v(r?.owner ?? ""), b(q(r?.attributes))), !e && x !== null && C(null);
105
- let [D, { loading: O }] = S(B, {
106
+ function le({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
107
+ let a = !!r, [o, s] = c(""), [l, u] = c(""), [d, f] = c("SERVER"), [p, m] = c("ACTIVE"), [h, g] = c("PRODUCTION"), [_, v] = c(""), [y, x] = c([]), [S, C] = c(null);
108
+ e && S !== (r?.id ?? "__new__") && (C(r?.id ?? "__new__"), s(r?.ciNumber ?? ""), u(r?.name ?? ""), f(r?.ciType ?? "SERVER"), m(r?.status ?? "ACTIVE"), g(r?.environment ?? "PRODUCTION"), v(r?.owner ?? ""), x(q(r?.attributes))), !e && S !== null && C(null);
109
+ let [D, { loading: O }] = te(B, {
106
110
  onCompleted: (e) => {
107
111
  n.success(a ? "Configuration item updated" : "Configuration item saved", `${e.upsertConfigurationItem.ciNumber} is now in the CMDB.`), t(!1), i();
108
112
  },
@@ -123,7 +127,7 @@ function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
123
127
  owner: _.trim() || null,
124
128
  attributes: e
125
129
  } } });
126
- }, j = (e, t) => b((n) => n.map((n, r) => r === e ? {
130
+ }, j = (e, t) => x((n) => n.map((n, r) => r === e ? {
127
131
  ...n,
128
132
  ...t
129
133
  } : n));
@@ -133,7 +137,7 @@ function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
133
137
  children: /* @__PURE__ */ T(ie, {
134
138
  className: "max-h-[85vh] overflow-y-auto sm:max-w-2xl",
135
139
  children: [
136
- /* @__PURE__ */ T(N, { children: [/* @__PURE__ */ w(P, { children: a ? "Edit CI" : "Add CI" }), /* @__PURE__ */ w(M, { children: "Register a configuration item in the CMDB and map it to your estate." })] }),
140
+ /* @__PURE__ */ T(P, { children: [/* @__PURE__ */ w(ae, { children: a ? "Edit CI" : "Add CI" }), /* @__PURE__ */ w(M, { children: "Register a configuration item in the CMDB and map it to your estate." })] }),
137
141
  /* @__PURE__ */ T("div", {
138
142
  className: "space-y-4",
139
143
  children: [
@@ -208,7 +212,7 @@ function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
208
212
  type: "button",
209
213
  variant: "outline",
210
214
  size: "sm",
211
- onClick: () => b((e) => [...e, {
215
+ onClick: () => x((e) => [...e, {
212
216
  key: "",
213
217
  value: ""
214
218
  }]),
@@ -238,9 +242,9 @@ function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
238
242
  type: "button",
239
243
  variant: "ghost",
240
244
  size: "icon",
241
- onClick: () => b((e) => e.filter((e, n) => n !== t)),
245
+ onClick: () => x((e) => e.filter((e, n) => n !== t)),
242
246
  "aria-label": "Remove attribute",
243
- children: /* @__PURE__ */ w(te, { className: "h-4 w-4" })
247
+ children: /* @__PURE__ */ w(b, { className: "h-4 w-4" })
244
248
  })
245
249
  ]
246
250
  }, t))
@@ -248,7 +252,7 @@ function ce({ open: e, onOpenChange: t, seed: r, onSaved: i }) {
248
252
  })
249
253
  ]
250
254
  }),
251
- /* @__PURE__ */ T(ae, { children: [/* @__PURE__ */ w(E, {
255
+ /* @__PURE__ */ T(N, { children: [/* @__PURE__ */ w(E, {
252
256
  variant: "outline",
253
257
  onClick: () => t(!1),
254
258
  disabled: O,
@@ -274,8 +278,8 @@ function J({ label: e, value: t }) {
274
278
  })]
275
279
  });
276
280
  }
277
- function le({ ci: e, onEdit: t, onClose: n }) {
278
- let r = q(e.attributes);
281
+ function ue({ ci: e, onEdit: t, onDelete: n, deleting: r, onClose: i }) {
282
+ let a = q(e.attributes);
279
283
  return /* @__PURE__ */ T("div", {
280
284
  className: "space-y-4",
281
285
  children: [
@@ -298,18 +302,28 @@ function le({ ci: e, onEdit: t, onClose: n }) {
298
302
  })]
299
303
  }), /* @__PURE__ */ T("div", {
300
304
  className: "flex items-center gap-1",
301
- children: [/* @__PURE__ */ T(E, {
302
- variant: "outline",
303
- size: "sm",
304
- onClick: t,
305
- children: [/* @__PURE__ */ w(_, { className: "mr-1 h-3.5 w-3.5" }), "Edit"]
306
- }), n ? /* @__PURE__ */ w(E, {
307
- variant: "ghost",
308
- size: "icon",
309
- onClick: n,
310
- "aria-label": "Close detail",
311
- children: /* @__PURE__ */ w(b, { className: "h-4 w-4" })
312
- }) : null]
305
+ children: [
306
+ /* @__PURE__ */ T(E, {
307
+ variant: "outline",
308
+ size: "sm",
309
+ onClick: t,
310
+ children: [/* @__PURE__ */ w(_, { className: "mr-1 h-3.5 w-3.5" }), "Edit"]
311
+ }),
312
+ /* @__PURE__ */ T(E, {
313
+ variant: "outline",
314
+ size: "sm",
315
+ onClick: n,
316
+ disabled: r,
317
+ children: [/* @__PURE__ */ w(b, { className: "mr-1 h-3.5 w-3.5" }), r ? "Deleting…" : "Delete"]
318
+ }),
319
+ i ? /* @__PURE__ */ w(E, {
320
+ variant: "ghost",
321
+ size: "icon",
322
+ onClick: i,
323
+ "aria-label": "Close detail",
324
+ children: /* @__PURE__ */ w(x, { className: "h-4 w-4" })
325
+ }) : null
326
+ ]
313
327
  })]
314
328
  }),
315
329
  /* @__PURE__ */ T("div", {
@@ -344,12 +358,12 @@ function le({ ci: e, onEdit: t, onClose: n }) {
344
358
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h4", {
345
359
  className: "mb-2 text-xs font-semibold uppercase tracking-wide text-text-secondary",
346
360
  children: "Attributes"
347
- }), r.length === 0 ? /* @__PURE__ */ w("p", {
361
+ }), a.length === 0 ? /* @__PURE__ */ w("p", {
348
362
  className: "text-sm text-text-secondary",
349
363
  children: "No attributes recorded for this CI."
350
364
  }) : /* @__PURE__ */ w("div", {
351
365
  className: "divide-y divide-border-seam/60 rounded-lg bg-bg-sunken/40",
352
- children: r.map((e) => /* @__PURE__ */ T("div", {
366
+ children: a.map((e) => /* @__PURE__ */ T("div", {
353
367
  className: "flex items-start justify-between gap-3 px-3 py-2",
354
368
  children: [/* @__PURE__ */ w("span", {
355
369
  className: "text-sm text-text-secondary",
@@ -363,10 +377,15 @@ function le({ ci: e, onEdit: t, onClose: n }) {
363
377
  ]
364
378
  });
365
379
  }
366
- function Y() {
367
- let [n, l] = c(!1), [u, m] = c(null), [_, te] = c(null), [b, x] = c(!1), [S, A] = c(""), [M, ae] = c("ALL"), [B, V] = c("ALL"), [q, J] = c({}), Y = se(), { data: ue, loading: de, refetch: fe } = C(oe, { fetchPolicy: "cache-and-network" }), X = s(() => ue?.configurationItems ?? [], [ue?.configurationItems]), Z = s(() => {
368
- let e = S.trim().toLowerCase();
369
- return X.filter((t) => M !== "ALL" && t.status !== M || B !== "ALL" && t.environment !== B ? !1 : e ? [
380
+ function de() {
381
+ let [l, u] = c(!1), [m, _] = c(null), [b, x] = c(null), [S, A] = c(!1), [M, N] = c(""), [B, V] = c("ALL"), [q, J] = c("ALL"), [de, fe] = c({}), pe = ce(), { data: Y, loading: me, refetch: he } = C(oe, { fetchPolicy: "cache-and-network" }), [ge, { loading: _e }] = te(se, {
382
+ onCompleted: () => {
383
+ n.success("Configuration item deleted"), x(null), A(!1), he();
384
+ },
385
+ onError: (e) => n.error("Could not delete configuration item", e.message)
386
+ }), X = s(() => Y?.configurationItems ?? [], [Y?.configurationItems]), Z = s(() => {
387
+ let e = M.trim().toLowerCase();
388
+ return X.filter((t) => B !== "ALL" && t.status !== B || q !== "ALL" && t.environment !== q ? !1 : e ? [
370
389
  t.ciNumber,
371
390
  t.name,
372
391
  t.ciType,
@@ -374,10 +393,10 @@ function Y() {
374
393
  ].join(" ").toLowerCase().includes(e) : !0);
375
394
  }, [
376
395
  X,
377
- S,
378
396
  M,
379
- B
380
- ]), pe = s(() => {
397
+ B,
398
+ q
399
+ ]), ve = s(() => {
381
400
  let e = /* @__PURE__ */ new Map();
382
401
  for (let t of Z) {
383
402
  let n = t.ciType || "OTHER", r = e.get(n);
@@ -392,25 +411,27 @@ function Y() {
392
411
  maintenance: n,
393
412
  retired: r
394
413
  };
395
- }, [X]), me = s(() => {
414
+ }, [X]), ye = s(() => {
396
415
  let t = X.reduce((e, t) => (e[t.status] = (e[t.status] ?? 0) + 1, e), {});
397
416
  return Object.entries(t).map(([t, n], r) => ({
398
417
  name: G[t]?.label ?? t,
399
418
  value: n,
400
419
  color: e(r)
401
420
  }));
402
- }, [X]), he = s(() => {
421
+ }, [X]), be = s(() => {
403
422
  let e = X.reduce((e, t) => (e[t.ciType] = (e[t.ciType] ?? 0) + 1, e), {});
404
423
  return Object.entries(e).sort((e, t) => t[1] - e[1]).map(([e, t]) => ({
405
424
  name: e,
406
425
  count: t
407
426
  }));
408
- }, [X]), $ = s(() => X.find((e) => e.id === _) ?? null, [X, _]), ge = (e) => {
409
- te(e.id), Y || x(!0);
410
- }, _e = () => {
411
- m(null), l(!0);
412
- }, ve = (e) => {
413
- m(e), l(!0), x(!1);
427
+ }, [X]), $ = s(() => X.find((e) => e.id === b) ?? null, [X, b]), xe = (e) => {
428
+ x(e.id), pe || A(!0);
429
+ }, Se = () => {
430
+ _(null), u(!0);
431
+ }, Ce = (e) => {
432
+ _(e), u(!0), A(!1);
433
+ }, we = (e) => {
434
+ window.confirm(`Delete ${e.ciNumber} — ${e.name}?`) && ge({ variables: { id: e.id } });
414
435
  };
415
436
  return /* @__PURE__ */ T("div", {
416
437
  className: "space-y-5 p-4 sm:p-6",
@@ -427,21 +448,21 @@ function Y() {
427
448
  children: "CMDB — Configuration Items"
428
449
  }), /* @__PURE__ */ w("p", {
429
450
  className: "mt-1 max-w-2xl text-sm text-text-secondary",
430
- children: "A living map of every configuration item and its attributes."
451
+ children: "A searchable catalog of configuration items and their attributes."
431
452
  })]
432
453
  })]
433
454
  }), /* @__PURE__ */ T(E, {
434
455
  className: "w-full sm:w-auto",
435
- onClick: _e,
456
+ onClick: Se,
436
457
  children: [/* @__PURE__ */ w(ee, { className: "mr-2 h-4 w-4" }), "Add CI"]
437
458
  })]
438
459
  }),
439
- /* @__PURE__ */ w(j, { children: "Your configuration management database (CMDB): servers, services, network gear and how they relate. Browse, search and inspect each configuration item to understand blast radius before a change and keep asset relationships accurate." }),
440
- /* @__PURE__ */ w(ce, {
441
- open: n,
442
- onOpenChange: l,
443
- seed: u,
444
- onSaved: () => void fe()
460
+ /* @__PURE__ */ w(j, { children: "Your configuration-item catalog: record servers, services, network gear, status, ownership, environment and structured attributes. Dependency relationships and blast-radius analysis are not shipped yet." }),
461
+ /* @__PURE__ */ w(le, {
462
+ open: l,
463
+ onOpenChange: u,
464
+ seed: m,
465
+ onSaved: () => void he()
445
466
  }),
446
467
  /* @__PURE__ */ T("div", {
447
468
  className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
@@ -478,7 +499,7 @@ function Y() {
478
499
  title: "Status mix",
479
500
  subtitle: "Configuration items by status",
480
501
  children: /* @__PURE__ */ w(i, {
481
- data: me,
502
+ data: ye,
482
503
  height: 220,
483
504
  centerLabel: "CIs",
484
505
  centerValue: Q.total,
@@ -488,7 +509,7 @@ function Y() {
488
509
  title: "By type",
489
510
  subtitle: "Configuration items per type",
490
511
  children: /* @__PURE__ */ w(r, {
491
- data: he,
512
+ data: be,
492
513
  xKey: "name",
493
514
  series: [{
494
515
  key: "count",
@@ -513,15 +534,15 @@ function Y() {
513
534
  children: [/* @__PURE__ */ w(v, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ w(k, {
514
535
  className: "pl-9",
515
536
  placeholder: "Search CIs by number, name, type or owner…",
516
- value: S,
517
- onChange: (e) => A(e.target.value),
537
+ value: M,
538
+ onChange: (e) => N(e.target.value),
518
539
  "aria-label": "Search configuration items"
519
540
  })]
520
541
  }), /* @__PURE__ */ T("div", {
521
542
  className: "grid gap-2 sm:grid-cols-2",
522
543
  children: [/* @__PURE__ */ T(F, {
523
- value: M,
524
- onValueChange: ae,
544
+ value: B,
545
+ onValueChange: V,
525
546
  children: [/* @__PURE__ */ w(R, { children: /* @__PURE__ */ w(z, { placeholder: "Status" }) }), /* @__PURE__ */ T(I, { children: [/* @__PURE__ */ w(L, {
526
547
  value: "ALL",
527
548
  children: "All statuses"
@@ -530,8 +551,8 @@ function Y() {
530
551
  children: e
531
552
  }, e))] })]
532
553
  }), /* @__PURE__ */ T(F, {
533
- value: B,
534
- onValueChange: V,
554
+ value: q,
555
+ onValueChange: J,
535
556
  children: [/* @__PURE__ */ w(R, { children: /* @__PURE__ */ w(z, { placeholder: "Environment" }) }), /* @__PURE__ */ T(I, { children: [/* @__PURE__ */ w(L, {
536
557
  value: "ALL",
537
558
  children: "All environments"
@@ -544,22 +565,22 @@ function Y() {
544
565
  }), /* @__PURE__ */ T("div", {
545
566
  className: "border-t border-border-seam",
546
567
  children: [
547
- de && X.length === 0 ? /* @__PURE__ */ w("div", {
568
+ me && X.length === 0 ? /* @__PURE__ */ w("div", {
548
569
  className: "space-y-2 p-4",
549
570
  children: Array.from({ length: 5 }).map((e, t) => /* @__PURE__ */ w("div", { className: "h-9 rounded-md bg-bg-sunken motion-safe:animate-vc-shimmer" }, t))
550
571
  }) : null,
551
- !de && Z.length === 0 ? /* @__PURE__ */ w(ne, {
552
- illustration: S || M !== "ALL" || B !== "ALL" ? "empty-search" : "empty-data",
553
- title: S || M !== "ALL" || B !== "ALL" ? "No configuration items match" : "No configuration items found",
554
- description: S || M !== "ALL" || B !== "ALL" ? "Try a different search or filter." : "Add a configuration item to start mapping your estate."
572
+ !me && Z.length === 0 ? /* @__PURE__ */ w(ne, {
573
+ illustration: M || B !== "ALL" || q !== "ALL" ? "empty-search" : "empty-data",
574
+ title: M || B !== "ALL" || q !== "ALL" ? "No configuration items match" : "No configuration items found",
575
+ description: M || B !== "ALL" || q !== "ALL" ? "Try a different search or filter." : "Add a configuration item to start mapping your estate."
555
576
  }) : null,
556
577
  /* @__PURE__ */ w("div", {
557
578
  className: "max-h-[540px] overflow-y-auto",
558
- children: pe.map(([e, n]) => {
559
- let r = W[e] ?? p, i = q[e];
579
+ children: ve.map(([e, n]) => {
580
+ let r = W[e] ?? p, i = de[e];
560
581
  return /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("button", {
561
582
  type: "button",
562
- onClick: () => J((t) => ({
583
+ onClick: () => fe((t) => ({
563
584
  ...t,
564
585
  [e]: !t[e]
565
586
  })),
@@ -578,9 +599,9 @@ function Y() {
578
599
  ]
579
600
  }), i ? null : n.map((e) => /* @__PURE__ */ T("button", {
580
601
  type: "button",
581
- onClick: () => ge(e),
582
- "aria-current": _ === e.id,
583
- className: t("flex w-full items-center gap-3 border-b border-border-seam/40 px-4 py-2.5 pl-10 text-left last:border-b-0", _ === e.id ? "bg-action-primary-bg/10" : "hover:bg-bg-sunken/40"),
602
+ onClick: () => xe(e),
603
+ "aria-current": b === e.id,
604
+ className: t("flex w-full items-center gap-3 border-b border-border-seam/40 px-4 py-2.5 pl-10 text-left last:border-b-0", b === e.id ? "bg-action-primary-bg/10" : "hover:bg-bg-sunken/40"),
584
605
  children: [/* @__PURE__ */ T("div", {
585
606
  className: "min-w-0 flex-1",
586
607
  children: [/* @__PURE__ */ w("p", {
@@ -603,9 +624,11 @@ function Y() {
603
624
  className: "sticky top-4 border-border-seam",
604
625
  children: /* @__PURE__ */ w("div", {
605
626
  className: "p-4",
606
- children: $ ? /* @__PURE__ */ w(le, {
627
+ children: $ ? /* @__PURE__ */ w(ue, {
607
628
  ci: $,
608
- onEdit: () => ve($)
629
+ onEdit: () => Ce($),
630
+ onDelete: () => we($),
631
+ deleting: _e
609
632
  }) : /* @__PURE__ */ T("div", {
610
633
  className: "flex flex-col items-center justify-center gap-2 py-12 text-center",
611
634
  children: [
@@ -625,13 +648,15 @@ function Y() {
625
648
  })]
626
649
  }),
627
650
  /* @__PURE__ */ w(re, {
628
- open: b && !Y,
629
- onOpenChange: x,
651
+ open: S && !pe,
652
+ onOpenChange: A,
630
653
  children: /* @__PURE__ */ T(ie, {
631
654
  className: "max-h-[85vh] overflow-y-auto",
632
- children: [/* @__PURE__ */ w(N, { children: /* @__PURE__ */ w(P, { children: "Configuration item" }) }), $ ? /* @__PURE__ */ w(le, {
655
+ children: [/* @__PURE__ */ w(P, { children: /* @__PURE__ */ w(ae, { children: "Configuration item" }) }), $ ? /* @__PURE__ */ w(ue, {
633
656
  ci: $,
634
- onEdit: () => ve($)
657
+ onEdit: () => Ce($),
658
+ onDelete: () => we($),
659
+ deleting: _e
635
660
  }) : null]
636
661
  })
637
662
  })
@@ -639,6 +664,6 @@ function Y() {
639
664
  });
640
665
  }
641
666
  //#endregion
642
- export { Y as CmdbBrowserPage };
667
+ export { de as CmdbBrowserPage };
643
668
 
644
669
  //# sourceMappingURL=CmdbBrowserPage.js.map