@overvis/hmi-workspace-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/alarm-list-sheAq-pb.js +414 -0
  2. package/dist/alarm-rule-dialog-D_ml7V0v.js +417 -0
  3. package/dist/{alarm-rule-lists-C5v1Kf7A.js → alarm-rule-lists-DaA4soF4.js} +123 -125
  4. package/dist/{alarm-rules-page-CqFzofPd.js → alarm-rules-page-OFjOQ-dm.js} +15 -18
  5. package/dist/alert-dialog-B60PF7S9.js +891 -0
  6. package/dist/{base-revision-YCO27zR4.js → base-revision-DYCOZS0R.js} +26 -29
  7. package/dist/{breadcrumbs-0cjsV2cq.js → breadcrumbs-D2u8KZQo.js} +6 -7
  8. package/dist/{catalog-list-DjZojYLJ.js → catalog-list-LXuRix0-.js} +2 -4
  9. package/dist/{code-editor-BVimvjDV.js → code-editor-BMSyzAxu.js} +5 -6
  10. package/dist/dashboard-bindings.js +1 -2
  11. package/dist/{dashboards-page-BlrJguNz.js → dashboards-page-wnmmLpVC.js} +335 -359
  12. package/dist/{de-14WdmJxZ.js → de-hkEr2usK.js} +1 -2
  13. package/dist/diagnostic-text-CsbENUNI.js +116 -0
  14. package/dist/{dialogs-B6BRnf3Q.js → dialogs-AtIYlNSy.js} +219 -227
  15. package/dist/{dialogs-D_v1LeH4.js → dialogs-DsHbKgZD.js} +2523 -2590
  16. package/dist/{display-DmOo23mi.js → display-DSyEwQt8.js} +4 -6
  17. package/dist/{editor-language-To9MxloY.js → editor-language-CTfJBXMs.js} +3 -5
  18. package/dist/editor-page-BWbVGJvU.js +1337 -0
  19. package/dist/{en-BgercpT0.js → en-UW_k-Bd6.js} +1 -2
  20. package/dist/entity-controls-BCuRx882.js +71 -0
  21. package/dist/errors-Cawve9yD.js +25 -0
  22. package/dist/{footer-DC-Q0052.js → footer-B9XdpVzq.js} +2404 -2515
  23. package/dist/host.js +8143 -675
  24. package/dist/{i18n-BgzakKoC.js → i18n-Dt6xbSK6.js} +77 -90
  25. package/dist/i18n.js +1 -2
  26. package/dist/index.js +5149 -5345
  27. package/dist/{lat-lng-B12P7QyY.js → lat-lng-Bl77AGSO.js} +1 -2
  28. package/dist/{list-page-CvsdZb86.js → list-page-agHupfNb.js} +116 -123
  29. package/dist/{location-map-renderer-DO5yfdSU.js → location-map-renderer-kxU6cgFl.js} +6 -6
  30. package/dist/{location-picker-renderer-CjCxg6ai.js → location-picker-renderer-B1_-n8lf.js} +3 -4
  31. package/dist/{model-B8gGi4OK.js → model-tpg_xpFB.js} +1 -2
  32. package/dist/{notice-card-DyGywFsW.js → notice-card-CH28rYUt.js} +54 -58
  33. package/dist/{page-v6LCwswN.js → page-CZPHJUmz.js} +92 -100
  34. package/dist/page-DpdkOGGb.js +449 -0
  35. package/dist/page-HCGXXGjy.js +507 -0
  36. package/dist/panel-BCwBlB_h.js +949 -0
  37. package/dist/parameter-values.js +3 -16
  38. package/dist/{pl-lQ9HXV9k.js → pl-BokvsP3J.js} +1 -2
  39. package/dist/presence-code-cT6wxlTg.js +73 -0
  40. package/dist/{query-gate-DVhNIkge.js → query-gate-DqmHsZ07.js} +6 -6
  41. package/dist/{provider-DoEpKcQ-.js → quick-report-DEqqwQxR.js} +9423 -5102
  42. package/dist/{retention-BYXNpYmR.js → retention-DZ0reGGe.js} +4 -6
  43. package/dist/retention-note-nequESpo.js +40 -0
  44. package/dist/{rolldown-runtime-Dy4uBu1J.js → rolldown-runtime-CGnMp29N.js} +1 -2
  45. package/dist/{ru-qTKINoUj.js → ru-DZSlsRHq.js} +1 -2
  46. package/dist/run-text-DneX9rWh.js +112 -0
  47. package/dist/{search-D4rDnE9T.js → search-DP9_alSQ.js} +26 -29
  48. package/dist/{sections-kCOyc4NR.js → sections-BU7NKUOQ.js} +2 -3
  49. package/dist/{select-BKiOWdSr.js → select-Te6Qv1Zu.js} +17 -23
  50. package/dist/{spinner-C-HPNxOc.js → spinner-BRcNKwjH.js} +182 -201
  51. package/dist/src/version.d.ts +1 -1
  52. package/dist/src/workspace/local-workspace-app.d.ts +1 -1
  53. package/dist/src/workspace/routes.d.ts +1 -1
  54. package/dist/{starter-fields-BRLX0z-v.js → starter-fields-yM4B49nd.js} +154 -157
  55. package/dist/{starter-handoff-BA3ucMKL.js → starter-handoff-BaK8Ss8I.js} +1 -2
  56. package/dist/styles.css +1 -1
  57. package/dist/ui.js +334 -374
  58. package/dist/{uk-CwpJAxmx.js → uk-CjXPq9Lk.js} +1 -2
  59. package/dist/{wireguard-docs-AfU6NzTL.js → wireguard-docs-CC8XKBR7.js} +14 -17
  60. package/package.json +15 -9
  61. package/dist/alarm-list-BL3xQ5Lf.js +0 -423
  62. package/dist/alarm-rule-dialog-S1ZUg-74.js +0 -423
  63. package/dist/alert-B8MAoIO8.js +0 -45
  64. package/dist/alert-dialog-CYkuMg5D.js +0 -129
  65. package/dist/api-error-9rQmUN5L.js +0 -93
  66. package/dist/breadcrumb-DzVL1yHa.js +0 -74
  67. package/dist/button-6SxPBYMz.js +0 -44
  68. package/dist/context-u9KJQmdB.js +0 -102
  69. package/dist/copyable-id-DYGiAcnq.js +0 -40
  70. package/dist/dashboard-context-CBfG6DoT.js +0 -191
  71. package/dist/date-time-picker-C3FhMXk6.js +0 -266
  72. package/dist/diagnostic-text-BAkzW0SE.js +0 -111
  73. package/dist/diagnostic-text-DiKd2i1w.js +0 -76
  74. package/dist/dialog-BIhQXcZC.js +0 -237
  75. package/dist/dialog-BqyIxMD-.js +0 -54
  76. package/dist/dropdown-menu-DSzbBq3v.js +0 -136
  77. package/dist/editor-page-BiSZJz5b.js +0 -1353
  78. package/dist/empty-B-QJ-06w.js +0 -59
  79. package/dist/entity-controls-D1K4Ot3O.js +0 -76
  80. package/dist/errors-CcsvDHu8.js +0 -26
  81. package/dist/history-page-sAAhG54V.js +0 -1400
  82. package/dist/icon-D-pR9htW.js +0 -57
  83. package/dist/index-page-DMH82fZe.js +0 -214
  84. package/dist/item-B5SaTFQU.js +0 -120
  85. package/dist/mutation-form-validators-BNz5bsv1.js +0 -2408
  86. package/dist/mutations-THtGG6Ai.js +0 -240
  87. package/dist/page-2KPemaAj.js +0 -328
  88. package/dist/page-6rIoTg2L.js +0 -459
  89. package/dist/page-C6giEoEd.js +0 -1935
  90. package/dist/page-DCbTxKsi.js +0 -313
  91. package/dist/page-DWO427hT.js +0 -208
  92. package/dist/page-LXu_2zm3.js +0 -137
  93. package/dist/page-aaUiVOnk.js +0 -513
  94. package/dist/page-header-RB2YFWlE.js +0 -55
  95. package/dist/page-title-CdCbiLt8.js +0 -14
  96. package/dist/panel-DDy8tUNR.js +0 -338
  97. package/dist/presence-code-BfSXr50g.js +0 -83
  98. package/dist/progress-C7cxNJA1.js +0 -83
  99. package/dist/provider-BOeYHi0n.js +0 -134
  100. package/dist/quick-report-CUVJnbKP.js +0 -416
  101. package/dist/radio-group-CZGqVbkJ.js +0 -26
  102. package/dist/retention-note-CHhA6gjY.js +0 -42
  103. package/dist/run-text-DvaO8LDF.js +0 -113
  104. package/dist/select-eNgZdZ30.js +0 -521
  105. package/dist/skeleton-6yk8Tdh5.js +0 -19
  106. package/dist/slider-DorDsoF8.js +0 -37
  107. package/dist/status-page-DAHiKM9P.js +0 -3286
  108. package/dist/switch-BqD0RH_G.js +0 -18
  109. package/dist/table-Q2-voLuw.js +0 -65
  110. package/dist/tabs-CSIucYFP.js +0 -57
  111. package/dist/theme-provider-BkRohQFU.js +0 -61
  112. package/dist/toggle-group-9Bs0Mm3r.js +0 -82
  113. package/dist/trpc-CvJUuUXp.js +0 -153
  114. package/dist/utils-CX-Pz5p6.js +0 -8
  115. package/dist/writability-BuH-spxv.js +0 -57
@@ -0,0 +1,414 @@
1
+ import { $r as e, Kn as t, Nr as n, Qn as r, _n as i, fn as a, gn as o, ii as s, mn as c, pn as l, vn as u, yn as d, zn as f } from "./quick-report-DEqqwQxR.js";
2
+ import { f as p, h as m, m as h } from "./i18n-Dt6xbSK6.js";
3
+ import { B as g, H as _, K as v, Mt as y, Nt as b, R as x, U as S, V as C, X as w, Y as T, jt as E, xt as D } from "./alert-dialog-B60PF7S9.js";
4
+ import { B as O, H as ee, L as te, V as k, l as A } from "./spinner-BRcNKwjH.js";
5
+ import { useState as j } from "react";
6
+ import { jsx as M, jsxs as N } from "react/jsx-runtime";
7
+ import P from "typebox";
8
+ import { BellOffIcon as F, CheckIcon as I, HistoryIcon as L, SirenIcon as R, TriangleAlertIcon as z } from "lucide-react";
9
+ import { formatAppDateTime as B, resolveLocalized as V, schema as H } from "@overvis/hmi-shared";
10
+ import { canWriteParameterValues as U } from "@overvis/hmi-shared/workspace";
11
+ import { ALARM_NOTE_MAX as W, ALARM_RULE_UNAVAILABLE_KEY as G } from "@overvis/hmi-shared/automation";
12
+ import { Link as K } from "@tanstack/react-router";
13
+ // src/workspace/alarms/actions.tsx
14
+ var q = 6e4, J = 60 * q, Y = [
15
+ 15 * q,
16
+ J,
17
+ 8 * J,
18
+ 24 * J,
19
+ 168 * J
20
+ ];
21
+ function ne(e) {
22
+ return e === 15 * q ? p("alarm_shelve_15m") : e === J ? p("alarm_shelve_1h") : e === 8 * J ? p("alarm_shelve_8h") : e === 24 * J ? p("alarm_shelve_24h") : p("alarm_shelve_7d");
23
+ }
24
+ var re = H(P.Object({ comment: P.String({ maxLength: W }) })), ie = H(P.Object({
25
+ durationMs: P.Integer({ minimum: q }),
26
+ reason: P.String({
27
+ minLength: 1,
28
+ maxLength: W,
29
+ pattern: "\\S"
30
+ })
31
+ }));
32
+ function X() {
33
+ let e = s.useUtils();
34
+ return () => {
35
+ e.alarm.log.invalidate();
36
+ };
37
+ }
38
+ function ae({ alarm: e, title: n, onClose: i }) {
39
+ let a = h(), o = s.alarm.acknowledge.useMutation(), c = X(), l = t({
40
+ defaultValues: { comment: "" },
41
+ validators: f({
42
+ schema: re,
43
+ submit: async (t) => {
44
+ let n = t.comment.trim();
45
+ return await o.mutateAsync({
46
+ id: e.id,
47
+ ...n.length === 0 ? {} : { comment: n }
48
+ }), c(), null;
49
+ }
50
+ }),
51
+ onSubmitInvalid: r,
52
+ onSubmit: i
53
+ });
54
+ return /* @__PURE__ */ M(x, {
55
+ open: !0,
56
+ onOpenChange: (e) => {
57
+ e || i();
58
+ },
59
+ children: /* @__PURE__ */ M(g, { children: /* @__PURE__ */ M(l.AppForm, { children: /* @__PURE__ */ N(l.FormRoot, {
60
+ layout: "dialog",
61
+ children: [
62
+ /* @__PURE__ */ N(S, { children: [/* @__PURE__ */ M(v, { children: a("alarm_acknowledge_title") }), /* @__PURE__ */ M(C, { children: n })] }),
63
+ /* @__PURE__ */ M(k, { children: /* @__PURE__ */ M(l.AppField, {
64
+ name: "comment",
65
+ children: (e) => /* @__PURE__ */ M(e.TextAreaField, {
66
+ label: a("alarm_acknowledge_comment"),
67
+ placeholder: a("alarm_acknowledge_comment_placeholder"),
68
+ maxLength: W,
69
+ autoFocus: !0
70
+ })
71
+ }) }),
72
+ /* @__PURE__ */ N(_, { children: [/* @__PURE__ */ M(E, {
73
+ type: "button",
74
+ variant: "outline",
75
+ onClick: i,
76
+ children: a("action_cancel")
77
+ }), /* @__PURE__ */ M(l.SubmitButton, {
78
+ label: a("alarm_acknowledge"),
79
+ pendingLabel: a("alarm_acknowledging")
80
+ })] })
81
+ ]
82
+ }) }) })
83
+ });
84
+ }
85
+ function oe({ alarm: n, title: i, onClose: a }) {
86
+ let o = h(), c = s.alarm.shelve.useMutation(), l = X(), u = t({
87
+ defaultValues: {
88
+ durationMs: J,
89
+ reason: ""
90
+ },
91
+ validators: f({
92
+ schema: ie,
93
+ submit: async (e) => (await c.mutateAsync({
94
+ id: n.id,
95
+ durationMs: e.durationMs,
96
+ reason: e.reason.trim()
97
+ }), l(), null)
98
+ }),
99
+ onSubmitInvalid: r,
100
+ onSubmit: a
101
+ });
102
+ return /* @__PURE__ */ M(x, {
103
+ open: !0,
104
+ onOpenChange: (e) => {
105
+ e || a();
106
+ },
107
+ children: /* @__PURE__ */ M(g, { children: /* @__PURE__ */ M(u.AppForm, { children: /* @__PURE__ */ N(u.FormRoot, {
108
+ layout: "dialog",
109
+ children: [
110
+ /* @__PURE__ */ N(S, { children: [/* @__PURE__ */ M(v, { children: o("alarm_shelve_title") }), /* @__PURE__ */ M(C, { children: i })] }),
111
+ /* @__PURE__ */ M("p", {
112
+ className: "text-sm text-muted-foreground",
113
+ children: o("alarm_shelve_explanation")
114
+ }),
115
+ /* @__PURE__ */ N(k, { children: [/* @__PURE__ */ M(u.Field, {
116
+ name: "durationMs",
117
+ children: (t) => /* @__PURE__ */ N(te, { children: [
118
+ /* @__PURE__ */ M(ee, {
119
+ id: "alarm-shelve-duration",
120
+ children: o("alarm_shelve_duration")
121
+ }),
122
+ /* @__PURE__ */ M(T, {
123
+ variant: "outline",
124
+ size: "sm",
125
+ spacing: 0,
126
+ "aria-labelledby": "alarm-shelve-duration",
127
+ className: "flex-wrap",
128
+ value: [String(t.state.value)],
129
+ onValueChange: (e) => {
130
+ let n = Y.find((t) => String(t) === e[0]);
131
+ n != null && t.handleChange(n);
132
+ },
133
+ children: Y.map((e) => /* @__PURE__ */ M(w, {
134
+ value: String(e),
135
+ children: ne(e)
136
+ }, e))
137
+ }),
138
+ /* @__PURE__ */ M(O, { errors: e(t.state.meta.errors, t.name) })
139
+ ] })
140
+ }), /* @__PURE__ */ M(u.AppField, {
141
+ name: "reason",
142
+ children: (e) => /* @__PURE__ */ M(e.TextAreaField, {
143
+ label: o("alarm_shelve_reason"),
144
+ placeholder: o("alarm_shelve_reason_placeholder"),
145
+ maxLength: W,
146
+ required: !0
147
+ })
148
+ })] }),
149
+ /* @__PURE__ */ N(_, { children: [/* @__PURE__ */ M(E, {
150
+ type: "button",
151
+ variant: "outline",
152
+ onClick: a,
153
+ children: o("action_cancel")
154
+ }), /* @__PURE__ */ M(u.SubmitButton, {
155
+ label: o("alarm_shelve"),
156
+ pendingLabel: o("alarm_shelving")
157
+ })] })
158
+ ]
159
+ }) }) })
160
+ });
161
+ }
162
+ function se({ alarm: e, title: n, onClose: i }) {
163
+ let a = h(), o = s.alarm.unshelve.useMutation(), c = X(), l = t({
164
+ defaultValues: {},
165
+ validators: f({ submit: async () => (await o.mutateAsync({ id: e.id }), c(), null) }),
166
+ onSubmitInvalid: r,
167
+ onSubmit: i
168
+ });
169
+ return /* @__PURE__ */ M(x, {
170
+ open: !0,
171
+ onOpenChange: (e) => {
172
+ e || i();
173
+ },
174
+ children: /* @__PURE__ */ M(g, { children: /* @__PURE__ */ M(l.AppForm, { children: /* @__PURE__ */ N(l.FormRoot, {
175
+ layout: "dialog",
176
+ children: [
177
+ /* @__PURE__ */ N(S, { children: [/* @__PURE__ */ M(v, { children: a("alarm_unshelve_title") }), /* @__PURE__ */ M(C, { children: n })] }),
178
+ /* @__PURE__ */ M("p", {
179
+ className: "text-sm text-muted-foreground",
180
+ children: a("alarm_unshelve_explanation")
181
+ }),
182
+ /* @__PURE__ */ N(_, { children: [/* @__PURE__ */ M(E, {
183
+ type: "button",
184
+ variant: "outline",
185
+ onClick: i,
186
+ children: a("action_cancel")
187
+ }), /* @__PURE__ */ M(l.SubmitButton, {
188
+ label: a("alarm_unshelve"),
189
+ pendingLabel: a("alarm_unshelving")
190
+ })] })
191
+ ]
192
+ }) }) })
193
+ });
194
+ }
195
+ // src/workspace/alarms/alarm-list.tsx
196
+ function ce(e) {
197
+ return e.source.kind === "alarm_rule" && e.key === G;
198
+ }
199
+ function Z(e, t) {
200
+ let n = t.title.length > 0 ? t.title : p("alarm_untitled");
201
+ return ce(e) ? {
202
+ title: p("alarm_unavailable_title", { name: n }),
203
+ body: p("alarm_unavailable_body")
204
+ } : {
205
+ title: n,
206
+ body: t.body
207
+ };
208
+ }
209
+ function Q({ severity: e }) {
210
+ let t = h();
211
+ return e === "urgent" ? /* @__PURE__ */ N(A, {
212
+ variant: "destructive",
213
+ children: [/* @__PURE__ */ M(R, { "data-icon": "inline-start" }), t("automation_severity_urgent")]
214
+ }) : e === "warning" ? /* @__PURE__ */ N(A, {
215
+ variant: "warning",
216
+ children: [/* @__PURE__ */ M(z, { "data-icon": "inline-start" }), t("automation_severity_warning")]
217
+ }) : /* @__PURE__ */ M(A, {
218
+ variant: "outline",
219
+ children: t("automation_severity_info")
220
+ });
221
+ }
222
+ function $(e, t) {
223
+ let n = m(), r = s.alarmRule.list.useQuery({ workspaceId: e }, { enabled: t }), i = s.automation.list.useQuery({ workspaceId: e }, { enabled: t }), a = /* @__PURE__ */ new Map();
224
+ for (let e of r.data?.items ?? []) a.set(e.id, V(e.name, n));
225
+ for (let e of i.data?.items ?? []) a.set(e.id, V(e.name, n));
226
+ return {
227
+ names: a,
228
+ rules: r.data?.items ?? [],
229
+ automations: i.data?.items ?? [],
230
+ name: (e) => a.get(c(e)) ?? null
231
+ };
232
+ }
233
+ function le({ alarm: e, workspaceId: t, now: r, canOperate: a, sourceName: o, showHistoryLink: s, compact: c, onOpen: d }) {
234
+ let f = h(), p = m(), g = n()?.timezone ?? "UTC", { title: _, body: v } = Z(e, l(e.message, p, g)), x = u(e, r), S = i(e, r), C = [];
235
+ C.push(/* @__PURE__ */ M("span", { children: e.clearedAt == null ? f("alarm_state_active") : f("alarm_state_cleared", { time: B(e.clearedAt) }) }, "state")), e.acknowledgedAt != null && C.push(/* @__PURE__ */ M("span", { children: e.acknowledgedByName == null ? f("alarm_state_acknowledged", { time: B(e.acknowledgedAt) }) : f("alarm_state_acknowledged_by", {
236
+ name: e.acknowledgedByName,
237
+ time: B(e.acknowledgedAt)
238
+ }) }, "acknowledged")), S && e.shelvedUntil != null && C.push(/* @__PURE__ */ M("span", { children: e.shelvedByName == null ? f("alarm_state_shelved", { time: B(e.shelvedUntil) }) : f("alarm_state_shelved_by", {
239
+ name: e.shelvedByName,
240
+ time: B(e.shelvedUntil)
241
+ }) }, "shelved"));
242
+ let w = [e.acknowledgedAt != null && e.acknowledgeComment != null ? {
243
+ key: "comment",
244
+ label: f("alarm_acknowledge_comment"),
245
+ text: e.acknowledgeComment
246
+ } : null, S && e.shelveReason != null ? {
247
+ key: "reason",
248
+ label: f("alarm_shelve_reason"),
249
+ text: e.shelveReason
250
+ } : null].filter((e) => e != null);
251
+ return /* @__PURE__ */ N("li", {
252
+ className: b("flex flex-col gap-2 rounded-lg border bg-card p-3", x ? e.severity === "urgent" ? "border-destructive/40" : e.severity === "warning" ? "border-warning/50" : void 0 : "bg-muted/30"),
253
+ children: [
254
+ /* @__PURE__ */ N("div", {
255
+ className: "flex flex-wrap items-start gap-x-2 gap-y-1",
256
+ children: [
257
+ /* @__PURE__ */ M(Q, { severity: e.severity }),
258
+ x ? /* @__PURE__ */ M(A, {
259
+ variant: "secondary",
260
+ children: f("alarm_needs_acknowledgement")
261
+ }) : null,
262
+ S ? /* @__PURE__ */ N(A, {
263
+ variant: "outline",
264
+ children: [/* @__PURE__ */ M(F, { "data-icon": "inline-start" }), f("alarm_shelved")]
265
+ }) : null
266
+ ]
267
+ }),
268
+ /* @__PURE__ */ N("div", {
269
+ className: "flex min-w-0 flex-col gap-1",
270
+ children: [
271
+ /* @__PURE__ */ M("p", {
272
+ className: b("font-medium wrap-break-word", x ? "text-foreground" : "text-muted-foreground"),
273
+ children: _
274
+ }),
275
+ v.length > 0 && !c ? /* @__PURE__ */ M("p", {
276
+ className: "text-sm wrap-break-word whitespace-pre-line text-muted-foreground",
277
+ children: v
278
+ }) : null,
279
+ /* @__PURE__ */ N("p", {
280
+ className: "text-xs text-muted-foreground",
281
+ children: [f("alarm_raised_at", { time: B(e.raisedAt) }), o == null ? null : ` · ${o}`]
282
+ }),
283
+ /* @__PURE__ */ M("p", {
284
+ className: "flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-muted-foreground",
285
+ children: C
286
+ }),
287
+ w.map((e) => /* @__PURE__ */ N("p", {
288
+ className: "text-xs wrap-break-word text-muted-foreground",
289
+ children: [
290
+ /* @__PURE__ */ N("span", {
291
+ className: "font-medium",
292
+ children: [e.label, ":"]
293
+ }),
294
+ " ",
295
+ e.text
296
+ ]
297
+ }, e.key))
298
+ ]
299
+ }),
300
+ a || s ? /* @__PURE__ */ N("div", {
301
+ className: "flex flex-wrap gap-2",
302
+ children: [
303
+ a && e.acknowledgedAt == null ? /* @__PURE__ */ N(E, {
304
+ size: "sm",
305
+ onClick: () => {
306
+ d({
307
+ kind: "acknowledge",
308
+ alarm: e,
309
+ title: _
310
+ });
311
+ },
312
+ children: [/* @__PURE__ */ M(I, { "data-icon": "inline-start" }), f("alarm_acknowledge")]
313
+ }) : null,
314
+ a && !S ? /* @__PURE__ */ N(E, {
315
+ size: "sm",
316
+ variant: "outline",
317
+ onClick: () => {
318
+ d({
319
+ kind: "shelve",
320
+ alarm: e,
321
+ title: _
322
+ });
323
+ },
324
+ children: [/* @__PURE__ */ M(F, { "data-icon": "inline-start" }), f("alarm_shelve")]
325
+ }) : null,
326
+ a && S ? /* @__PURE__ */ M(E, {
327
+ size: "sm",
328
+ variant: "outline",
329
+ onClick: () => {
330
+ d({
331
+ kind: "unshelve",
332
+ alarm: e,
333
+ title: _
334
+ });
335
+ },
336
+ children: f("alarm_unshelve")
337
+ }) : null,
338
+ s ? /* @__PURE__ */ N(K, {
339
+ to: "/workspace/$workspaceId/alarms",
340
+ params: { workspaceId: t },
341
+ search: {
342
+ tab: "history",
343
+ alarm: e.id
344
+ },
345
+ className: y({
346
+ variant: "ghost",
347
+ size: "sm"
348
+ }),
349
+ children: [/* @__PURE__ */ M(L, { "data-icon": "inline-start" }), f("alarm_history_of_alarm")]
350
+ }) : null
351
+ ]
352
+ }) : null
353
+ ]
354
+ });
355
+ }
356
+ function ue({ workspaceId: e, sourceIds: t, keyPrefix: r, parameterIds: i, compact: s = !1, empty: c, className: l }) {
357
+ let u = h(), f = n(), p = e ?? f?.id;
358
+ if (p == null) throw Error("AlarmList needs a workspaceId outside a workspace");
359
+ let m = f?.id === p ? f.access : null, g = m != null && U(m), { alarms: _, failed: v, now: y } = a(p), x = $(p, !s), [S, C] = j(null), w = () => {
360
+ C(null);
361
+ };
362
+ if (_ == null) return v ? /* @__PURE__ */ M("p", {
363
+ role: "alert",
364
+ className: b("text-sm text-destructive", l),
365
+ children: u("alarm_feed_failed")
366
+ }) : /* @__PURE__ */ N("div", {
367
+ className: b("flex flex-col gap-2", l),
368
+ "aria-busy": !0,
369
+ children: [/* @__PURE__ */ M(D, { className: "h-20 w-full" }), /* @__PURE__ */ M(D, { className: "h-20 w-full" })]
370
+ });
371
+ let T = d(o(_, {
372
+ ...t == null ? {} : { sourceIds: t },
373
+ ...r == null ? {} : { keyPrefix: r },
374
+ ...i == null ? {} : { parameterIds: i }
375
+ }), y);
376
+ return /* @__PURE__ */ N("div", {
377
+ className: b("flex flex-col gap-2", l),
378
+ children: [
379
+ T.length === 0 ? c ?? /* @__PURE__ */ M("p", {
380
+ className: "rounded-lg border py-8 text-center text-sm text-muted-foreground",
381
+ children: u("alarm_none_active")
382
+ }) : /* @__PURE__ */ M("ul", {
383
+ "aria-label": u("alarm_active_title"),
384
+ className: "flex flex-col gap-2",
385
+ children: T.map((e) => /* @__PURE__ */ M(le, {
386
+ alarm: e,
387
+ workspaceId: p,
388
+ now: y,
389
+ canOperate: g,
390
+ sourceName: s ? null : x.name(e.source),
391
+ showHistoryLink: f?.id === p,
392
+ compact: s,
393
+ onOpen: C
394
+ }, e.id))
395
+ }),
396
+ S?.kind === "acknowledge" ? /* @__PURE__ */ M(ae, {
397
+ alarm: S.alarm,
398
+ title: S.title,
399
+ onClose: w
400
+ }) : null,
401
+ S?.kind === "shelve" ? /* @__PURE__ */ M(oe, {
402
+ alarm: S.alarm,
403
+ title: S.title,
404
+ onClose: w
405
+ }) : null,
406
+ S?.kind === "unshelve" ? /* @__PURE__ */ M(se, {
407
+ alarm: S.alarm,
408
+ title: S.title,
409
+ onClose: w
410
+ }) : null
411
+ ]
412
+ });
413
+ }
414
+ export { $ as i, Q as n, Z as r, ue as t };