@overvis/hmi-workspace-ui 0.1.1 → 0.1.3

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 (91) hide show
  1. package/README.md +6 -4
  2. package/dist/{alarm-list-sheAq-pb.js → alarm-list-TDg7nwkn.js} +4 -4
  3. package/dist/{alarm-rule-dialog-D_ml7V0v.js → alarm-rule-dialog-DwbRtPZD.js} +10 -10
  4. package/dist/{alarm-rule-lists-DaA4soF4.js → alarm-rule-lists-Ax7PzbQy.js} +4 -4
  5. package/dist/{alarm-rules-page-OFjOQ-dm.js → alarm-rules-page-DisATKLV.js} +11 -11
  6. package/dist/{alert-dialog-B60PF7S9.js → alert-dialog-CskdoiGZ.js} +1 -1
  7. package/dist/{base-revision-DYCOZS0R.js → base-revision-C-tNhqGq.js} +3 -3
  8. package/dist/{breadcrumbs-D2u8KZQo.js → breadcrumbs-B5O9let7.js} +3 -3
  9. package/dist/{catalog-list-LXuRix0-.js → catalog-list-3yaB4bJD.js} +1 -1
  10. package/dist/{code-editor-BMSyzAxu.js → code-editor-B6myrPQm.js} +6 -2
  11. package/dist/{dashboards-page-wnmmLpVC.js → dashboards-page-CoKevu-T.js} +9 -9
  12. package/dist/{de-hkEr2usK.js → de-CPxvTPak.js} +11 -0
  13. package/dist/{diagnostic-text-CsbENUNI.js → diagnostic-text-BS4rdZcE.js} +2 -2
  14. package/dist/{dialogs-AtIYlNSy.js → dialogs-BUyPGimM.js} +6 -6
  15. package/dist/{dialogs-DsHbKgZD.js → dialogs-CF7Baagf.js} +512 -510
  16. package/dist/{display-DSyEwQt8.js → display-DmldtHdd.js} +2 -2
  17. package/dist/{editor-language-CTfJBXMs.js → editor-language-8UJkvBgX.js} +1 -1
  18. package/dist/{editor-page-BWbVGJvU.js → editor-page-_6TxO_iT.js} +14 -14
  19. package/dist/{en-UW_k-Bd6.js → en-DoFtc9Sn.js} +11 -0
  20. package/dist/{entity-controls-BCuRx882.js → entity-controls-rdv-ttvP.js} +3 -3
  21. package/dist/{errors-Cawve9yD.js → errors-BFeJfnyz.js} +2 -2
  22. package/dist/{footer-B9XdpVzq.js → footer-DZUQHVnt.js} +4 -4
  23. package/dist/host.js +1175 -1063
  24. package/dist/{i18n-Dt6xbSK6.js → i18n-D54xfDUE.js} +5 -5
  25. package/dist/i18n.js +1 -1
  26. package/dist/index.js +64 -42
  27. package/dist/{list-page-agHupfNb.js → list-page-Cz5bdD8r.js} +11 -11
  28. package/dist/{location-map-renderer-kxU6cgFl.js → location-map-renderer-Hb5N0AYH.js} +1 -1
  29. package/dist/{notice-card-CH28rYUt.js → notice-card-BMNjc7qi.js} +3 -3
  30. package/dist/{page-CZPHJUmz.js → page-BKnwJyv5.js} +8 -8
  31. package/dist/{page-HCGXXGjy.js → page-CBWLmbIE.js} +11 -11
  32. package/dist/{page-DpdkOGGb.js → page-UoQRnsm3.js} +11 -11
  33. package/dist/{panel-BCwBlB_h.js → panel-Cr3OXiRs.js} +3 -3
  34. package/dist/{pl-BokvsP3J.js → pl-DEPfFtMO.js} +11 -0
  35. package/dist/{presence-code-cT6wxlTg.js → presence-code-DIKs9fBe.js} +2 -2
  36. package/dist/{query-gate-DqmHsZ07.js → query-gate-2sU8OvEb.js} +3 -3
  37. package/dist/{quick-report-DEqqwQxR.js → quick-report-ZvrI5Jkh.js} +3130 -3102
  38. package/dist/{retention-note-nequESpo.js → retention-note-BrkxE2Wo.js} +9 -6
  39. package/dist/{retention-DZ0reGGe.js → retention-wDvnFMbN.js} +2 -2
  40. package/dist/{ru-DZSlsRHq.js → ru-Ct2zNOs8.js} +15 -4
  41. package/dist/{run-text-DneX9rWh.js → run-text-Bmkf_u0N.js} +2 -2
  42. package/dist/{search-DP9_alSQ.js → search-ADhiRT_S.js} +3 -3
  43. package/dist/{sections-BU7NKUOQ.js → sections-BDtBUhxn.js} +1 -1
  44. package/dist/{select-Te6Qv1Zu.js → select-Cpeslz01.js} +2 -2
  45. package/dist/{spinner-BRcNKwjH.js → spinner-LbVGWBQq.js} +2 -2
  46. package/dist/src/code-editor/code-editor.d.ts +3 -0
  47. package/dist/src/code-editor/taskfile-language.d.ts +22 -2
  48. package/dist/src/i18n/catalogs/de/api-error.d.ts +3 -0
  49. package/dist/src/i18n/catalogs/de/audit.d.ts +1 -0
  50. package/dist/src/i18n/catalogs/de/edge-program.d.ts +4 -0
  51. package/dist/src/i18n/catalogs/de/parameter.d.ts +1 -0
  52. package/dist/src/i18n/catalogs/de/starter.d.ts +2 -0
  53. package/dist/src/i18n/catalogs/de.d.ts +11 -0
  54. package/dist/src/i18n/catalogs/en/api-error.d.ts +3 -0
  55. package/dist/src/i18n/catalogs/en/audit.d.ts +1 -0
  56. package/dist/src/i18n/catalogs/en/edge-program.d.ts +4 -0
  57. package/dist/src/i18n/catalogs/en/parameter.d.ts +1 -0
  58. package/dist/src/i18n/catalogs/en/starter.d.ts +2 -0
  59. package/dist/src/i18n/catalogs/en.d.ts +11 -0
  60. package/dist/src/i18n/catalogs/pl/api-error.d.ts +3 -0
  61. package/dist/src/i18n/catalogs/pl/audit.d.ts +1 -0
  62. package/dist/src/i18n/catalogs/pl/edge-program.d.ts +4 -0
  63. package/dist/src/i18n/catalogs/pl/parameter.d.ts +1 -0
  64. package/dist/src/i18n/catalogs/pl/starter.d.ts +2 -0
  65. package/dist/src/i18n/catalogs/pl.d.ts +11 -0
  66. package/dist/src/i18n/catalogs/ru/api-error.d.ts +3 -0
  67. package/dist/src/i18n/catalogs/ru/audit.d.ts +1 -0
  68. package/dist/src/i18n/catalogs/ru/edge-program.d.ts +6 -2
  69. package/dist/src/i18n/catalogs/ru/graphics.d.ts +2 -2
  70. package/dist/src/i18n/catalogs/ru/parameter.d.ts +1 -0
  71. package/dist/src/i18n/catalogs/ru/starter.d.ts +2 -0
  72. package/dist/src/i18n/catalogs/ru.d.ts +15 -4
  73. package/dist/src/i18n/catalogs/uk/api-error.d.ts +3 -0
  74. package/dist/src/i18n/catalogs/uk/audit.d.ts +1 -0
  75. package/dist/src/i18n/catalogs/uk/edge-program.d.ts +6 -2
  76. package/dist/src/i18n/catalogs/uk/graphics.d.ts +2 -2
  77. package/dist/src/i18n/catalogs/uk/parameter.d.ts +1 -0
  78. package/dist/src/i18n/catalogs/uk/starter.d.ts +2 -0
  79. package/dist/src/i18n/catalogs/uk.d.ts +15 -4
  80. package/dist/src/version.d.ts +1 -1
  81. package/dist/src/workspace/device-presets/layout.d.ts +2 -0
  82. package/dist/src/workspace/local-setup-link.d.ts +3 -0
  83. package/dist/src/workspace/parameters/errors.d.ts +5 -0
  84. package/dist/src/workspace/setup/starters/starter-form.d.ts +24 -6
  85. package/dist/starter-fields-BHNS6IQe.js +678 -0
  86. package/dist/styles.css +1 -1
  87. package/dist/ui.js +6 -6
  88. package/dist/{uk-CjXPq9Lk.js → uk-Dbm1i2uh.js} +15 -4
  89. package/dist/{wireguard-docs-CC8XKBR7.js → wireguard-docs-DIBtCviv.js} +3 -3
  90. package/package.json +2 -2
  91. package/dist/starter-fields-yM4B49nd.js +0 -583
@@ -1,583 +0,0 @@
1
- import { rr as e } from "./quick-report-DEqqwQxR.js";
2
- import { f as t, h as n, m as r } from "./i18n-Dt6xbSK6.js";
3
- import { X as i, Y as a, jt as o } from "./alert-dialog-B60PF7S9.js";
4
- import { A as s, G as c, H as l, L as u, M as d, R as f, U as p, V as m, Y as h, a as g, c as _, n as v, o as y, r as b, z as x } from "./spinner-BRcNKwjH.js";
5
- import { A as S, C, E as w, S as T, w as E, x as D } from "./panel-BCwBlB_h.js";
6
- import { r as O, t as k } from "./alarm-rule-lists-DaA4soF4.js";
7
- import { i as A } from "./run-text-DneX9rWh.js";
8
- import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
9
- import { ChevronRightIcon as P, PlusIcon as F, Trash2Icon as I } from "lucide-react";
10
- import { resolveLocalized as L } from "@overvis/hmi-shared";
11
- import { automationCommandRoles as R, automationSeverities as z } from "@overvis/hmi-shared/automation";
12
- import { starterPlaceholderShown as B } from "@overvis/hmi-shared/starter";
13
- // src/workspace/setup/starters/starter-form.ts
14
- var V = {
15
- s: 1e3,
16
- min: 6e4,
17
- h: 36e5
18
- };
19
- function H(e, t) {
20
- return String(t / V[e.unit]);
21
- }
22
- function U(e) {
23
- return e === void 0 ? {
24
- kind: "none",
25
- roles: [],
26
- memberIds: []
27
- } : e.kind === "roles" ? {
28
- kind: "roles",
29
- roles: [...e.roles],
30
- memberIds: []
31
- } : {
32
- kind: "members",
33
- roles: [],
34
- memberIds: [...e.userIds]
35
- };
36
- }
37
- function W(e) {
38
- switch (e.kind) {
39
- case "number": return e.default === void 0 ? "" : String(e.default);
40
- case "duration": return e.default === void 0 ? "" : H(e, e.default);
41
- case "timeOfDay":
42
- case "severity":
43
- case "choice": return e.default ?? "";
44
- case "weekdays": return [...e.default ?? []];
45
- case "recipients": return U(e.default);
46
- case "boolean": return e.default ?? !1;
47
- case "fileName": return e.default;
48
- case "parameter":
49
- case "endpoint":
50
- case "alarmRule":
51
- case "branch":
52
- case "text":
53
- case "phone": return "";
54
- }
55
- }
56
- function G(e, t) {
57
- return {
58
- key: t,
59
- fields: Object.fromEntries(e.map((e) => [e.name, W(e)]))
60
- };
61
- }
62
- function K(e) {
63
- return Object.fromEntries(e.map((e) => [e.name, e.kind === "list" ? Array.from({ length: Math.max(1, e.minItems) }, (t, n) => G(e.fields, `row-${String(n)}`)) : W(e)]));
64
- }
65
- var q = /^-?\d+(?:[.,]\d+)?$/u;
66
- function ee(e) {
67
- let t = e.trim();
68
- return q.test(t) ? Number(t.replace(",", ".")) : null;
69
- }
70
- function te(e, t) {
71
- if (t === void 0) return {
72
- ok: !0,
73
- value: void 0
74
- };
75
- if (typeof t == "boolean") return {
76
- ok: !0,
77
- value: t
78
- };
79
- if (Array.isArray(t)) return {
80
- ok: !0,
81
- value: [...t].sort((e, t) => e - t)
82
- };
83
- if (typeof t == "object") return t.kind === "none" ? {
84
- ok: !0,
85
- value: void 0
86
- } : t.kind === "roles" ? t.roles.length === 0 ? {
87
- ok: !1,
88
- code: "required"
89
- } : {
90
- ok: !0,
91
- value: {
92
- kind: "roles",
93
- roles: [...t.roles]
94
- }
95
- } : t.memberIds.length === 0 ? {
96
- ok: !1,
97
- code: "required"
98
- } : {
99
- ok: !0,
100
- value: {
101
- kind: "members",
102
- userIds: [...t.memberIds]
103
- }
104
- };
105
- if (t.trim() === "") return {
106
- ok: !0,
107
- value: void 0
108
- };
109
- if (e.kind === "number" || e.kind === "duration") {
110
- let n = ee(t);
111
- return n === null ? {
112
- ok: !1,
113
- code: "invalid"
114
- } : {
115
- ok: !0,
116
- value: e.kind === "duration" ? Math.round(n * V[e.unit]) : n
117
- };
118
- }
119
- return {
120
- ok: !0,
121
- value: t
122
- };
123
- }
124
- function ne(e, t) {
125
- let n = [], r = (e, t, r) => {
126
- let i = {};
127
- for (let a of e) {
128
- let e = t[a.name], o = te(a, J(e));
129
- o.ok ? o.value !== void 0 && (i[a.name] = o.value) : n.push({
130
- path: `${r}/${a.name}`,
131
- code: o.code,
132
- args: {}
133
- });
134
- }
135
- return i;
136
- }, i = e.filter((n) => B(n, e, t)), a = r(i.filter((e) => e.kind !== "list"), t, "");
137
- for (let e of i) e.kind === "list" && (a[e.name] = Y(t[e.name]).map((t, n) => r(e.fields, t.fields, `/${e.name}/${String(n)}`)));
138
- return n.length > 0 ? {
139
- ok: !1,
140
- problems: n
141
- } : {
142
- ok: !0,
143
- values: a
144
- };
145
- }
146
- function J(e) {
147
- if (!Array.isArray(e)) return e;
148
- let t = e, n = t.filter((e) => typeof e == "number");
149
- return n.length === t.length ? n : void 0;
150
- }
151
- function Y(e) {
152
- return Array.isArray(e) ? e.filter((e) => typeof e == "object" && !!e && "key" in e) : [];
153
- }
154
- function re(e) {
155
- let t = /* @__PURE__ */ new Map();
156
- for (let n of e) {
157
- let e = t.get(n.path) ?? [];
158
- e.push(n), t.set(n.path, e);
159
- }
160
- return t;
161
- }
162
- // src/workspace/setup/starters/starter-fields.tsx
163
- var ie = ["view_only", ...R], ae = [
164
- 1,
165
- 2,
166
- 3,
167
- 4,
168
- 5,
169
- 6,
170
- 7
171
- ], X = /* @__PURE__ */ new Set([
172
- "parameter",
173
- "weekdays",
174
- "recipients",
175
- "text"
176
- ]);
177
- function oe({ starters: e, onPick: t }) {
178
- let r = n();
179
- return /* @__PURE__ */ M(w, {
180
- className: "gap-2",
181
- children: e.map((e) => /* @__PURE__ */ N(D, {
182
- variant: "outline",
183
- render: /* @__PURE__ */ M("button", { type: "button" }),
184
- className: "text-left",
185
- onClick: () => {
186
- t(e.id);
187
- },
188
- children: [/* @__PURE__ */ N(C, { children: [/* @__PURE__ */ M(S, { children: L(e.name, r) }), /* @__PURE__ */ M(E, {
189
- className: "line-clamp-none",
190
- children: L(e.description, r)
191
- })] }), /* @__PURE__ */ M(T, { children: /* @__PURE__ */ M(P, { className: "size-4 text-muted-foreground" }) })]
192
- }, e.id))
193
- });
194
- }
195
- function se({ workspaceId: e, placeholders: t, values: n, onChange: r, problems: i, data: a, newKey: o }) {
196
- let s = re(i), c = (e, t) => s.get(e)?.map((e) => Z(e, t));
197
- return /* @__PURE__ */ M(m, { children: t.filter((e) => B(e, t, n)).map((t) => t.kind === "list" ? /* @__PURE__ */ M(ue, {
198
- workspaceId: e,
199
- placeholder: t,
200
- rows: Y(n[t.name]),
201
- onChange: (e, i) => {
202
- r({
203
- ...n,
204
- [t.name]: e
205
- }, i ?? `/${t.name}`);
206
- },
207
- data: a,
208
- newKey: o,
209
- problemsAt: c
210
- }, t.name) : /* @__PURE__ */ M($, {
211
- id: `starter-${t.name}`,
212
- workspaceId: e,
213
- placeholder: t,
214
- value: J(n[t.name]),
215
- onChange: (e) => {
216
- r({
217
- ...n,
218
- [t.name]: e
219
- }, `/${t.name}`);
220
- },
221
- data: a,
222
- problems: c(`/${t.name}`, t)
223
- }, t.name)) });
224
- }
225
- function Z(e, n) {
226
- let r = (e) => e === void 0 ? "" : n.kind === "duration" && typeof e == "number" ? `${H(n, e)} ${Q(n.unit)}` : String(e), { args: i } = e;
227
- switch (e.code) {
228
- case "required": return t("starter_problem_required");
229
- case "invalid": return t("starter_problem_invalid");
230
- case "unknown_placeholder": return t("starter_problem_unknown_placeholder");
231
- case "out_of_range": return i.min !== void 0 && i.max !== void 0 ? t("starter_problem_out_of_range", {
232
- min: r(i.min),
233
- max: r(i.max)
234
- }) : i.min === void 0 ? i.max === void 0 ? t("starter_problem_invalid") : t("starter_problem_out_of_range_max", { max: r(i.max) }) : t("starter_problem_out_of_range_min", { min: r(i.min) });
235
- case "too_few": return t("starter_problem_too_few", { min: String(i.min ?? "") });
236
- case "too_many": return t("starter_problem_too_many", { max: String(i.max ?? "") });
237
- case "duplicate": return t("starter_problem_duplicate");
238
- case "parameter_not_found": return t("starter_problem_parameter_not_found");
239
- case "parameter_type": return i.expected === "boolean" ? t("starter_problem_parameter_type_boolean") : i.expected === "number" ? t("starter_problem_parameter_type_number") : t("starter_problem_parameter_type", { expected: String(i.expected ?? "") });
240
- case "parameter_not_writable": return t("starter_problem_parameter_not_writable");
241
- case "parameter_not_on_endpoint": return t("starter_problem_parameter_not_on_endpoint");
242
- case "parameter_encoding": return t("starter_problem_parameter_encoding");
243
- case "endpoint_not_found": return t("starter_problem_endpoint_not_found");
244
- case "alarm_rule_not_found": return t("starter_problem_alarm_rule_not_found");
245
- case "member_not_found": return t("starter_problem_member_not_found");
246
- case "branch_not_found": return t("starter_problem_branch_not_found");
247
- case "file_name_invalid": return t("starter_problem_file_name_invalid");
248
- case "file_name_taken": return t("starter_problem_file_name_taken");
249
- }
250
- }
251
- function Q(e) {
252
- switch (e) {
253
- case "s": return t("starter_unit_s");
254
- case "min": return t("starter_unit_min");
255
- case "h": return t("starter_unit_h");
256
- }
257
- }
258
- function ce(e) {
259
- switch (e) {
260
- case 1: return t("report_weekday_mon");
261
- case 2: return t("report_weekday_tue");
262
- case 3: return t("report_weekday_wed");
263
- case 4: return t("report_weekday_thu");
264
- case 5: return t("report_weekday_fri");
265
- case 6: return t("report_weekday_sat");
266
- default: return t("report_weekday_sun");
267
- }
268
- }
269
- function le() {
270
- let e = r();
271
- return (t) => {
272
- switch (t) {
273
- case "owner": return e("automation_role_owner");
274
- case "admin": return e("automation_role_admin");
275
- case "editor": return e("automation_role_editor");
276
- case "operator": return e("automation_role_operator");
277
- default: return e("automation_role_view_only");
278
- }
279
- };
280
- }
281
- function ue({ workspaceId: e, placeholder: t, rows: i, onChange: a, data: s, newKey: l, problemsAt: u }) {
282
- let d = r(), f = n(), m = `/${t.name}`, h = t.itemLabel === void 0 ? void 0 : L(t.itemLabel, f), g = (e) => h === void 0 ? d("starter_row", { number: String(e + 1) }) : `${h} ${String(e + 1)}`, _ = t.fields.filter((e) => X.has(e.kind)), v = t.fields.filter((e) => !X.has(e.kind)), y = (e, n) => /* @__PURE__ */ M(o, {
283
- type: "button",
284
- variant: "ghost",
285
- size: "icon-sm",
286
- "aria-label": d("starter_remove_row", { row: g(n) }),
287
- disabled: i.length <= t.minItems,
288
- onClick: () => {
289
- a(i.filter((t) => t.key !== e.key));
290
- },
291
- children: /* @__PURE__ */ M(I, {})
292
- }), b = (n, r, o, c = !1) => /* @__PURE__ */ M($, {
293
- id: `starter-${t.name}-${n.key}-${o.name}`,
294
- workspaceId: e,
295
- placeholder: o,
296
- ...c ? {
297
- label: g(r),
298
- labelHidden: c
299
- } : {},
300
- value: n.fields[o.name],
301
- onChange: (e) => {
302
- a(i.map((t) => t.key === n.key ? {
303
- ...t,
304
- fields: {
305
- ...t.fields,
306
- [o.name]: e
307
- }
308
- } : t), `${m}/${String(r)}/${o.name}`);
309
- },
310
- data: s,
311
- problems: u(`${m}/${String(r)}/${o.name}`, o)
312
- }, o.name), [S] = t.fields;
313
- return /* @__PURE__ */ N(c, { children: [
314
- /* @__PURE__ */ M(p, { children: L(t.label, f) }),
315
- t.help === void 0 ? null : /* @__PURE__ */ M(x, { children: L(t.help, f) }),
316
- /* @__PURE__ */ M(O, { texts: u(m, t) }),
317
- t.fields.length === 1 && S !== void 0 ? /* @__PURE__ */ M("div", {
318
- className: "flex flex-col gap-2",
319
- children: i.map((e, t) => /* @__PURE__ */ N("div", {
320
- className: "flex items-start gap-2",
321
- children: [/* @__PURE__ */ M("div", {
322
- className: "min-w-0 flex-1",
323
- children: b(e, t, S, !0)
324
- }), /* @__PURE__ */ M("div", {
325
- className: "flex h-9 items-center",
326
- children: y(e, t)
327
- })]
328
- }, e.key))
329
- }) : /* @__PURE__ */ M("div", {
330
- className: "flex flex-col gap-3",
331
- children: i.map((e, t) => /* @__PURE__ */ N("div", {
332
- className: "flex flex-col gap-3 rounded-lg border p-3",
333
- children: [
334
- /* @__PURE__ */ N("div", {
335
- className: "flex items-center justify-between gap-2",
336
- children: [/* @__PURE__ */ M("span", {
337
- className: "font-medium",
338
- children: g(t)
339
- }), y(e, t)]
340
- }),
341
- _.map((n) => b(e, t, n)),
342
- v.length === 0 ? null : /* @__PURE__ */ M("div", {
343
- className: "\n grid grid-cols-1 gap-3\n sm:grid-cols-2\n ",
344
- children: v.map((n) => b(e, t, n))
345
- })
346
- ]
347
- }, e.key))
348
- }),
349
- /* @__PURE__ */ M("div", { children: /* @__PURE__ */ N(o, {
350
- type: "button",
351
- variant: "outline",
352
- size: "sm",
353
- disabled: i.length >= t.maxItems,
354
- onClick: () => {
355
- a([...i, G(t.fields, l())]);
356
- },
357
- children: [/* @__PURE__ */ M(F, { "data-icon": "inline-start" }), d("starter_add_row")]
358
- }) })
359
- ] });
360
- }
361
- function $({ id: t, workspaceId: o, placeholder: c, label: p, labelHidden: m = !1, value: S, onChange: C, data: w, problems: T }) {
362
- let E = r(), D = n(), P = le(), F = "optional" in c && (c.optional ?? !1), I = p ?? L(c.label, D), R = c.help === void 0 ? void 0 : L(c.help, D), B = typeof S == "string" ? S : "", V = T !== void 0 && T.length > 0, H = F ? /* @__PURE__ */ M("span", {
363
- className: "font-normal text-muted-foreground",
364
- children: E("starter_optional")
365
- }) : null, U = /* @__PURE__ */ N(l, {
366
- htmlFor: t,
367
- className: m ? "sr-only" : void 0,
368
- children: [I, H]
369
- }), W = /* @__PURE__ */ N(j, { children: [R === void 0 ? null : /* @__PURE__ */ M(x, { children: R }), /* @__PURE__ */ M(O, { texts: T })] }), G = (e, n) => /* @__PURE__ */ N(u, {
370
- "data-invalid": V || void 0,
371
- children: [
372
- U,
373
- /* @__PURE__ */ N(s, {
374
- id: t,
375
- value: B,
376
- "aria-invalid": V || void 0,
377
- onChange: (e) => {
378
- C(e.target.value);
379
- },
380
- children: [n ? /* @__PURE__ */ M(d, {
381
- value: "",
382
- children: E("starter_choose")
383
- }) : null, e.map((e) => /* @__PURE__ */ M(d, {
384
- value: e.id,
385
- children: e.name
386
- }, e.id))]
387
- }),
388
- W
389
- ]
390
- });
391
- switch (c.kind) {
392
- case "parameter": {
393
- let n = T !== void 0 || B === "" ? null : w.parameterProblem?.(c, B), r = n == null ? T : [Z(n, c)];
394
- return /* @__PURE__ */ M(e, {
395
- name: t,
396
- label: I,
397
- labelSuffix: H,
398
- labelHidden: m,
399
- workspaceId: o,
400
- value: B,
401
- onChange: C,
402
- preferred: (e) => w.parameterFits(c, e),
403
- ...R === void 0 ? {} : { description: R },
404
- invalid: r !== void 0 && r.length > 0,
405
- errors: (r ?? []).map((e) => ({ message: e }))
406
- });
407
- }
408
- case "endpoint": return G(w.endpoints, !0);
409
- case "alarmRule": return G(w.alarmRules, !0);
410
- case "branch": return G(w.branches, !0);
411
- case "choice": return G(c.options.map((e) => ({
412
- id: e.value,
413
- name: L(e.label, D)
414
- })), c.default === void 0);
415
- case "severity": return G(z.map((e) => ({
416
- id: e,
417
- name: A(e)
418
- })), c.default === void 0);
419
- case "number":
420
- case "duration": {
421
- let e = c.kind === "duration" ? Q(c.unit) : c.unit === void 0 ? "" : L(c.unit, D);
422
- return /* @__PURE__ */ N(u, {
423
- "data-invalid": V || void 0,
424
- children: [
425
- U,
426
- /* @__PURE__ */ N(v, { children: [/* @__PURE__ */ M(g, {
427
- id: t,
428
- inputMode: c.kind === "number" && c.integer === !0 ? "numeric" : "decimal",
429
- value: B,
430
- "aria-invalid": V || void 0,
431
- onChange: (e) => {
432
- C(e.target.value);
433
- }
434
- }), e === "" ? null : /* @__PURE__ */ M(b, {
435
- align: "inline-end",
436
- children: /* @__PURE__ */ M(y, { children: e })
437
- })] }),
438
- W
439
- ]
440
- });
441
- }
442
- case "timeOfDay":
443
- case "text":
444
- case "fileName":
445
- case "phone": return /* @__PURE__ */ N(u, {
446
- "data-invalid": V || void 0,
447
- children: [
448
- U,
449
- /* @__PURE__ */ M(_, {
450
- id: t,
451
- ...c.kind === "timeOfDay" ? {
452
- type: "time",
453
- step: 60
454
- } : c.kind === "text" ? { maxLength: c.maxLength } : c.kind === "phone" ? {
455
- type: "tel",
456
- autoComplete: "off"
457
- } : {
458
- maxLength: 12,
459
- autoComplete: "off",
460
- className: "font-mono uppercase"
461
- },
462
- value: B,
463
- "aria-invalid": V || void 0,
464
- onChange: (e) => {
465
- C(e.target.value);
466
- }
467
- }),
468
- W
469
- ]
470
- });
471
- case "boolean": return /* @__PURE__ */ N(u, {
472
- orientation: "horizontal",
473
- "data-invalid": V || void 0,
474
- children: [/* @__PURE__ */ M(h, {
475
- id: t,
476
- checked: S === !0,
477
- onCheckedChange: (e) => {
478
- C(e);
479
- }
480
- }), /* @__PURE__ */ N(f, { children: [/* @__PURE__ */ M(l, {
481
- htmlFor: t,
482
- children: I
483
- }), W] })]
484
- });
485
- case "weekdays": return /* @__PURE__ */ N(u, {
486
- "data-invalid": V || void 0,
487
- children: [
488
- /* @__PURE__ */ M(l, {
489
- id: t,
490
- children: I
491
- }),
492
- /* @__PURE__ */ M(a, {
493
- multiple: !0,
494
- variant: "outline",
495
- size: "sm",
496
- spacing: 0,
497
- className: "w-full",
498
- "aria-labelledby": t,
499
- value: (Array.isArray(S) ? S : []).map(String),
500
- onValueChange: (e) => {
501
- C(e.map(Number).filter((e) => Number.isInteger(e) && e >= 1 && e <= 7).sort((e, t) => e - t));
502
- },
503
- children: ae.map((e) => /* @__PURE__ */ M(i, {
504
- value: String(e),
505
- className: "min-w-0 flex-1 px-1",
506
- children: ce(e)
507
- }, e))
508
- }),
509
- W
510
- ]
511
- });
512
- case "recipients": {
513
- let e = typeof S == "object" && !Array.isArray(S) ? S : {
514
- kind: "none",
515
- roles: [],
516
- memberIds: []
517
- };
518
- return /* @__PURE__ */ N(u, {
519
- "data-invalid": V || void 0,
520
- children: [
521
- U,
522
- /* @__PURE__ */ N(s, {
523
- id: t,
524
- value: e.kind,
525
- onChange: (t) => {
526
- let n = [
527
- "none",
528
- "roles",
529
- "members"
530
- ].find((e) => e === t.target.value);
531
- n !== void 0 && C({
532
- ...e,
533
- kind: n
534
- });
535
- },
536
- children: [
537
- F ? /* @__PURE__ */ M(d, {
538
- value: "none",
539
- children: E("starter_recipients_none")
540
- }) : null,
541
- /* @__PURE__ */ M(d, {
542
- value: "roles",
543
- children: E("alarm_rule_recipients_roles")
544
- }),
545
- /* @__PURE__ */ M(d, {
546
- value: "members",
547
- children: E("alarm_rule_recipients_members")
548
- })
549
- ]
550
- }),
551
- e.kind === "roles" ? /* @__PURE__ */ M("div", {
552
- className: "flex flex-wrap gap-4",
553
- children: ie.map((t) => /* @__PURE__ */ N("label", {
554
- className: "flex items-center gap-2 text-sm",
555
- children: [/* @__PURE__ */ M(h, {
556
- checked: e.roles.includes(t),
557
- onCheckedChange: (n) => {
558
- let r = n ? [...e.roles, t] : e.roles.filter((e) => e !== t);
559
- C({
560
- ...e,
561
- roles: r
562
- });
563
- }
564
- }), P(t)]
565
- }, t))
566
- }) : null,
567
- e.kind === "members" ? /* @__PURE__ */ M(k, {
568
- members: w.members,
569
- value: e.memberIds,
570
- onChange: (t) => {
571
- C({
572
- ...e,
573
- memberIds: t
574
- });
575
- }
576
- }) : null,
577
- W
578
- ]
579
- });
580
- }
581
- }
582
- }
583
- export { ne as i, se as n, K as r, oe as t };