@evolver-fi/evolver-basics-admin-components 1.0.0 → 8.2.2-alpha.2

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 (198) hide show
  1. package/dist/EnumSelectFilter-DDWIjz5i.js +35 -0
  2. package/dist/EnumSelectFilter-DDWIjz5i.js.map +1 -0
  3. package/dist/FilterLink-OxQDWR5G.js +29 -0
  4. package/dist/FilterLink-OxQDWR5G.js.map +1 -0
  5. package/dist/Table-IciQttr3.js +79 -0
  6. package/dist/Table-IciQttr3.js.map +1 -0
  7. package/dist/TableMetadataDisplay-BM61EulC.js +49 -0
  8. package/dist/TableMetadataDisplay-BM61EulC.js.map +1 -0
  9. package/dist/TextFilter-CLOKjiSd.js +54 -0
  10. package/dist/TextFilter-CLOKjiSd.js.map +1 -0
  11. package/dist/api-CMiZYkfc.js +32 -0
  12. package/dist/api-CMiZYkfc.js.map +1 -0
  13. package/dist/breadcrumbs/index.js +2 -5
  14. package/dist/breadcrumbs-BAwnKRxL.js +32 -0
  15. package/dist/breadcrumbs-BAwnKRxL.js.map +1 -0
  16. package/dist/breadcrumbs.css +1 -0
  17. package/dist/client/index.js +330 -369
  18. package/dist/client/index.js.map +1 -1
  19. package/dist/configuration-values/index.js +2 -13
  20. package/dist/configuration-values-CjOfmPRq.js +3464 -0
  21. package/dist/configuration-values-CjOfmPRq.js.map +1 -0
  22. package/dist/control-values/index.js +2 -10
  23. package/dist/control-values-CzQOB4WJ.js +144 -0
  24. package/dist/control-values-CzQOB4WJ.js.map +1 -0
  25. package/dist/exhaustiveValues-BYWkg9M1.js +6 -0
  26. package/dist/exhaustiveValues-BYWkg9M1.js.map +1 -0
  27. package/dist/filter/index.js +4 -10
  28. package/dist/formData-BO275hRZ.js +43 -0
  29. package/dist/formData-BO275hRZ.js.map +1 -0
  30. package/dist/jwt-tokens/index.js +2 -9
  31. package/dist/jwt-tokens-DnKsHei4.js +71 -0
  32. package/dist/jwt-tokens-DnKsHei4.js.map +1 -0
  33. package/dist/main/index.js +17 -87
  34. package/dist/message-log/index.js +2 -12
  35. package/dist/message-log-BdrJtbsP.js +337 -0
  36. package/dist/message-log-BdrJtbsP.js.map +1 -0
  37. package/dist/message-sending/index.js +2 -10
  38. package/dist/message-sending-dvTw2fFm.js +181 -0
  39. package/dist/message-sending-dvTw2fFm.js.map +1 -0
  40. package/dist/message-targets/index.js +2 -15
  41. package/dist/message-targets-8EppIJde.js +406 -0
  42. package/dist/message-targets-8EppIJde.js.map +1 -0
  43. package/dist/pagination-C4QUYRMf.js +20 -0
  44. package/dist/pagination-C4QUYRMf.js.map +1 -0
  45. package/dist/scheduled-tasks/index.js +2 -16
  46. package/dist/scheduled-tasks-BtBnBrE7.js +647 -0
  47. package/dist/scheduled-tasks-BtBnBrE7.js.map +1 -0
  48. package/dist/schemas-D-8_LuND.js +2986 -0
  49. package/dist/schemas-D-8_LuND.js.map +1 -0
  50. package/dist/table/index.js +2 -6
  51. package/dist/triggerables/index.js +3 -11
  52. package/dist/triggerables-DgrIeQMi.js +51 -0
  53. package/dist/triggerables-DgrIeQMi.js.map +1 -0
  54. package/dist/types/breadcrumbs.d.ts +1 -0
  55. package/dist/types/client/index.d.ts +5 -0
  56. package/dist/types/client.d.ts +1 -0
  57. package/dist/types/common/exhaustiveValues.d.ts +5 -0
  58. package/dist/types/common/formData.d.ts +20 -0
  59. package/dist/types/common/format.d.ts +1 -0
  60. package/dist/types/common/pagination.d.ts +8 -0
  61. package/dist/types/common/types.d.ts +27 -0
  62. package/dist/types/common/validation.d.ts +5 -0
  63. package/dist/types/components/breadcrumbs/BreadCrumbs.d.ts +10 -0
  64. package/dist/types/components/breadcrumbs/index.d.ts +1 -0
  65. package/dist/types/components/filter/EnumSelectFilter.d.ts +7 -0
  66. package/dist/types/components/filter/FilterHelperTexts.d.ts +4 -0
  67. package/dist/types/components/filter/FilterLink.d.ts +2 -0
  68. package/dist/types/components/filter/TextFilter.d.ts +2 -0
  69. package/dist/types/components/filter/createEnumSelectFilter.d.ts +5 -0
  70. package/dist/types/components/filter/index.d.ts +5 -0
  71. package/dist/types/components/filter/types.d.ts +20 -0
  72. package/dist/types/components/metadata/TableMetadataDisplay.d.ts +2 -0
  73. package/dist/types/components/metadata/utils.d.ts +1 -0
  74. package/dist/types/components/table/Pagination.d.ts +7 -0
  75. package/dist/types/components/table/Table.d.ts +3 -0
  76. package/dist/types/components/table/index.d.ts +3 -0
  77. package/dist/types/components/table/types.d.ts +48 -0
  78. package/dist/types/configuration-values.d.ts +1 -0
  79. package/dist/types/control-values.d.ts +1 -0
  80. package/dist/types/filter.d.ts +1 -0
  81. package/dist/types/index.d.ts +11 -0
  82. package/dist/types/jwt-tokens.d.ts +1 -0
  83. package/dist/types/main.d.ts +1 -0
  84. package/dist/types/message-log.d.ts +1 -0
  85. package/dist/types/message-sending.d.ts +1 -0
  86. package/dist/types/message-targets.d.ts +1 -0
  87. package/dist/types/routes/configuration-values/ConfigurationValueFormRoute.d.ts +2 -0
  88. package/dist/types/routes/configuration-values/ConfigurationValuesRoute.d.ts +2 -0
  89. package/dist/types/routes/configuration-values/action.d.ts +8 -0
  90. package/dist/types/routes/configuration-values/api.d.ts +53 -0
  91. package/dist/types/routes/configuration-values/configurationValueColumns.d.ts +4 -0
  92. package/dist/types/routes/configuration-values/index.d.ts +5 -0
  93. package/dist/types/routes/configuration-values/loader.d.ts +52 -0
  94. package/dist/types/routes/control-values/ControlValuesRoute.d.ts +2 -0
  95. package/dist/types/routes/control-values/SingleControlValueRoute.d.ts +2 -0
  96. package/dist/types/routes/control-values/api.d.ts +43 -0
  97. package/dist/types/routes/control-values/controlValueColumns.d.ts +4 -0
  98. package/dist/types/routes/control-values/index.d.ts +4 -0
  99. package/dist/types/routes/control-values/loader.d.ts +43 -0
  100. package/dist/types/routes/jwt-tokens/JwtTokensRoute.d.ts +6 -0
  101. package/dist/types/routes/jwt-tokens/api.d.ts +41 -0
  102. package/dist/types/routes/jwt-tokens/index.d.ts +3 -0
  103. package/dist/types/routes/jwt-tokens/loader.d.ts +35 -0
  104. package/dist/types/routes/message-log/LogBodyLink.d.ts +6 -0
  105. package/dist/types/routes/message-log/MessageLogRoute.d.ts +2 -0
  106. package/dist/types/routes/message-log/SingleLogMessageRoute.d.ts +6 -0
  107. package/dist/types/routes/message-log/api.d.ts +88 -0
  108. package/dist/types/routes/message-log/index.d.ts +4 -0
  109. package/dist/types/routes/message-log/loader.d.ts +53 -0
  110. package/dist/types/routes/message-log/messageLogColumns.d.ts +3 -0
  111. package/dist/types/routes/message-log/types.d.ts +37 -0
  112. package/dist/types/routes/message-sending/MessageSendingRoute.d.ts +2 -0
  113. package/dist/types/routes/message-sending/SingleMessageRoute.d.ts +2 -0
  114. package/dist/types/routes/message-sending/api.d.ts +92 -0
  115. package/dist/types/routes/message-sending/index.d.ts +4 -0
  116. package/dist/types/routes/message-sending/loader.d.ts +34 -0
  117. package/dist/types/routes/message-sending/messageSendingColumns.d.ts +3 -0
  118. package/dist/types/routes/message-sending/types.d.ts +43 -0
  119. package/dist/types/routes/message-targets/MessageTargetFormRoute.d.ts +2 -0
  120. package/dist/types/routes/message-targets/MessageTargetsRoute.d.ts +2 -0
  121. package/dist/types/routes/message-targets/action.d.ts +8 -0
  122. package/dist/types/routes/message-targets/api.d.ts +12 -0
  123. package/dist/types/routes/message-targets/index.d.ts +5 -0
  124. package/dist/types/routes/message-targets/loader.d.ts +15 -0
  125. package/dist/types/routes/scheduled-tasks/ScheduledTaskFormRoute.d.ts +2 -0
  126. package/dist/types/routes/scheduled-tasks/ScheduledTasksRoute.d.ts +2 -0
  127. package/dist/types/routes/scheduled-tasks/action.d.ts +21 -0
  128. package/dist/types/routes/scheduled-tasks/api.d.ts +75 -0
  129. package/dist/types/routes/scheduled-tasks/index.d.ts +5 -0
  130. package/dist/types/routes/scheduled-tasks/loader.d.ts +57 -0
  131. package/dist/types/routes/scheduled-tasks/parseScheduledTask.d.ts +15 -0
  132. package/dist/types/routes/triggerables/TriggerablesRoute.d.ts +2 -0
  133. package/dist/types/routes/triggerables/action.d.ts +6 -0
  134. package/dist/types/routes/triggerables/api.d.ts +33 -0
  135. package/dist/types/routes/triggerables/index.d.ts +4 -0
  136. package/dist/types/routes/triggerables/loader.d.ts +3 -0
  137. package/dist/types/scheduled-tasks.d.ts +1 -0
  138. package/dist/types/table.d.ts +1 -0
  139. package/dist/types/triggerables.d.ts +1 -0
  140. package/dist/types/types/openapiTypes.d.ts +3321 -0
  141. package/package.json +12 -5
  142. package/dist/ArrowBack-Bifnzxvs.js +0 -6430
  143. package/dist/ArrowBack-Bifnzxvs.js.map +0 -1
  144. package/dist/BreadCrumbs-DMuPCevY.js +0 -19
  145. package/dist/BreadCrumbs-DMuPCevY.js.map +0 -1
  146. package/dist/BreadCrumbs.css +0 -1
  147. package/dist/EnumSelectFilter-BdGla5Yf.js +0 -36
  148. package/dist/EnumSelectFilter-BdGla5Yf.js.map +0 -1
  149. package/dist/ExpandMore-DUn2zrFA.js +0 -1644
  150. package/dist/ExpandMore-DUn2zrFA.js.map +0 -1
  151. package/dist/FilterLink-DIeFjfZX.js +0 -49
  152. package/dist/FilterLink-DIeFjfZX.js.map +0 -1
  153. package/dist/JwtTokensRoute-C74zNV7A.js +0 -2374
  154. package/dist/JwtTokensRoute-C74zNV7A.js.map +0 -1
  155. package/dist/ScheduledTasksRoute-BAetDHqN.js +0 -611
  156. package/dist/ScheduledTasksRoute-BAetDHqN.js.map +0 -1
  157. package/dist/SingleLogMessageRoute-Dl2NFfqG.js +0 -419
  158. package/dist/SingleLogMessageRoute-Dl2NFfqG.js.map +0 -1
  159. package/dist/SingleMessageRoute-fC94BR1C.js +0 -306
  160. package/dist/SingleMessageRoute-fC94BR1C.js.map +0 -1
  161. package/dist/Table-DWiRP1za.js +0 -120
  162. package/dist/Table-DWiRP1za.js.map +0 -1
  163. package/dist/TextFilter-BHWY2B7i.js +0 -67
  164. package/dist/TextFilter-BHWY2B7i.js.map +0 -1
  165. package/dist/TriggerablesRoute-DiEEX1cR.js +0 -3552
  166. package/dist/TriggerablesRoute-DiEEX1cR.js.map +0 -1
  167. package/dist/api-BD_4zyJw.js +0 -38
  168. package/dist/api-BD_4zyJw.js.map +0 -1
  169. package/dist/breadcrumbs/index.js.map +0 -1
  170. package/dist/configuration-values/index.js.map +0 -1
  171. package/dist/control-values/index.js.map +0 -1
  172. package/dist/createSvgIcon-dA_Vj2W0.js +0 -3914
  173. package/dist/createSvgIcon-dA_Vj2W0.js.map +0 -1
  174. package/dist/exhaustiveValues-Dx50G3yz.js +0 -5
  175. package/dist/exhaustiveValues-Dx50G3yz.js.map +0 -1
  176. package/dist/filter/index.js.map +0 -1
  177. package/dist/formData-BH8saYep.js +0 -65
  178. package/dist/formData-BH8saYep.js.map +0 -1
  179. package/dist/jsx-runtime-D858t2LC.js +0 -617
  180. package/dist/jsx-runtime-D858t2LC.js.map +0 -1
  181. package/dist/jwt-tokens/index.js.map +0 -1
  182. package/dist/loader-CrveWlGb.js +0 -375
  183. package/dist/loader-CrveWlGb.js.map +0 -1
  184. package/dist/loader-D-oC32OJ.js +0 -3612
  185. package/dist/loader-D-oC32OJ.js.map +0 -1
  186. package/dist/loader-rVy8Z9xH.js +0 -130
  187. package/dist/loader-rVy8Z9xH.js.map +0 -1
  188. package/dist/main/index.js.map +0 -1
  189. package/dist/message-log/index.js.map +0 -1
  190. package/dist/message-sending/index.js.map +0 -1
  191. package/dist/message-targets/index.js.map +0 -1
  192. package/dist/pagination-Dy4ansKN.js +0 -21
  193. package/dist/pagination-Dy4ansKN.js.map +0 -1
  194. package/dist/scheduled-tasks/index.js.map +0 -1
  195. package/dist/schemas-CBHIJ_eF.js +0 -3059
  196. package/dist/schemas-CBHIJ_eF.js.map +0 -1
  197. package/dist/table/index.js.map +0 -1
  198. package/dist/triggerables/index.js.map +0 -1
@@ -0,0 +1,647 @@
1
+ import { n as e, t } from "./pagination-C4QUYRMf.js";
2
+ import { a as n, i as r, o as i, r as a, t as o } from "./schemas-D-8_LuND.js";
3
+ import { t as s } from "./exhaustiveValues-BYWkg9M1.js";
4
+ import { n as c } from "./api-CMiZYkfc.js";
5
+ import { redirect as l, useActionData as u, useLoaderData as d, useNavigate as f, useNavigation as p, useParams as m, useSearchParams as h, useSubmit as g } from "react-router";
6
+ import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
7
+ import { Alert as b, Box as x, Button as S, CircularProgress as C, Collapse as w, FormControl as T, FormHelperText as ee, InputLabel as E, MenuItem as D, Paper as te, Select as O, Stack as k, Table as A, TableBody as j, TableCell as M, TableContainer as N, TableHead as P, TablePagination as ne, TableRow as F, TextField as I, Typography as L } from "@mui/material";
8
+ import { useState as R } from "react";
9
+ import z from "cronstrue";
10
+ //#region src/routes/scheduled-tasks/api.ts
11
+ var B = async (e, t) => {
12
+ let n = await t.GET("/schedule", { params: { query: e } });
13
+ if ("error" in n) throw Error(`Failed to fetch scheduled tasks: ${n.response.status}`);
14
+ return n.data;
15
+ }, V = async (e, t) => {
16
+ let n = await t.GET("/schedule/{id}", { params: { path: { id: e } } });
17
+ if ("error" in n) throw Error(`Failed to fetch scheduled task: ${n.response.status}`);
18
+ return n.data;
19
+ }, H = async (e, t) => {
20
+ let n = await t.POST("/schedule", { body: e });
21
+ if ("error" in n) throw Error(`Failed to save scheduled task: ${n.response.status}`);
22
+ return n.response.status;
23
+ }, U = async (e, t) => {
24
+ let n = await t.POST("/schedule/{id}/delete", { params: { path: { id: e } } });
25
+ if ("error" in n) throw Error(`Failed to delete scheduled task: ${n.response.status}`);
26
+ return n.response.status;
27
+ }, W = async (e, t) => {
28
+ let n = await t.POST("/schedule/{id}/run", { params: { path: { id: e } } });
29
+ if ("error" in n) throw Error(`Failed to trigger scheduled task: ${n.response.status}`);
30
+ return n.response.status;
31
+ }, G = async (e, t, n) => {
32
+ if (!t) throw Error("State is required to update scheduled task state");
33
+ let r = await n.POST("/schedule/{id}/state/{state}", { params: { path: {
34
+ id: e,
35
+ state: t
36
+ } } });
37
+ if ("error" in r) throw Error(`Failed to update scheduled task state: ${r.response.status}`);
38
+ return r.response.status;
39
+ }, re = (e) => async ({ request: t }) => {
40
+ try {
41
+ let n = await t.json();
42
+ switch (n.type) {
43
+ case "save": {
44
+ if (!n.task) return {
45
+ status: 400,
46
+ message: "Task data is required"
47
+ };
48
+ let t = await H(n.task, e);
49
+ if (t === 204) {
50
+ if (n.task.id === void 0 || n.task.id === 0) throw l("/scheduled-tasks");
51
+ return {
52
+ status: 204,
53
+ message: "Task updated"
54
+ };
55
+ }
56
+ return {
57
+ status: t,
58
+ message: "Failed to save task"
59
+ };
60
+ }
61
+ case "delete": {
62
+ if (!n.id) return {
63
+ status: 400,
64
+ message: "Task ID is required"
65
+ };
66
+ let t = await U(n.id, e);
67
+ if (t === 204) throw l("/scheduled-tasks");
68
+ return t === 404 ? {
69
+ status: 404,
70
+ message: "Task not found"
71
+ } : {
72
+ status: t,
73
+ message: "Failed to delete task"
74
+ };
75
+ }
76
+ default: return {
77
+ status: 400,
78
+ message: "Invalid action type"
79
+ };
80
+ }
81
+ } catch (e) {
82
+ if (e instanceof Response && e.status >= 300 && e.status < 400) throw e;
83
+ return console.error(e), {
84
+ status: 500,
85
+ message: "Failed to process request"
86
+ };
87
+ }
88
+ }, ie = (e) => async ({ request: t }) => {
89
+ try {
90
+ let n = await t.json();
91
+ switch (n.type) {
92
+ case "trigger": {
93
+ if (!n.id) return {
94
+ status: 400,
95
+ message: "Task ID is required"
96
+ };
97
+ let t = await W(n.id, e);
98
+ return t === 200 || t === 204 ? {
99
+ status: t,
100
+ message: "Task triggered"
101
+ } : {
102
+ status: t,
103
+ message: "Failed to trigger task"
104
+ };
105
+ }
106
+ case "updateState": {
107
+ if (!n.id || !n.state) return {
108
+ status: 400,
109
+ message: "Task ID and state are required"
110
+ };
111
+ let t = await G(n.id, n.state, e);
112
+ return t === 200 || t === 204 ? {
113
+ status: t,
114
+ message: "Task state updated"
115
+ } : {
116
+ status: t,
117
+ message: "Failed to update task state"
118
+ };
119
+ }
120
+ default: return {
121
+ status: 400,
122
+ message: "Invalid action type"
123
+ };
124
+ }
125
+ } catch (e) {
126
+ return console.error(e), {
127
+ status: 500,
128
+ message: "Failed to process request"
129
+ };
130
+ }
131
+ }, K = () => ({
132
+ name: "",
133
+ state: "WAITING",
134
+ cronExpression: "",
135
+ timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC",
136
+ triggerable: "",
137
+ priority: 0,
138
+ timeoutMs: 0,
139
+ missPolicy: "SKIP_ALL",
140
+ args: {}
141
+ }), q = (e) => async ({ params: t }) => {
142
+ let n = t.id, r = await c(e);
143
+ if (n === "new") return {
144
+ task: K(),
145
+ triggerables: r
146
+ };
147
+ if (!n && n !== "0" || Number.isNaN(parseInt(n, 10))) throw new Response("", {
148
+ status: 404,
149
+ statusText: "Not found"
150
+ });
151
+ return {
152
+ task: await V(parseInt(n, 10), e),
153
+ triggerables: r
154
+ };
155
+ }, J = (e) => async ({ request: n }) => {
156
+ try {
157
+ return await B(t(new URL(n.url).searchParams), e);
158
+ } catch (e) {
159
+ throw console.error(e), Error("Failed to fetch scheduled tasks");
160
+ }
161
+ }, Y = s()([
162
+ "WAITING",
163
+ "RUNNING",
164
+ "PAUSED"
165
+ ]), X = s()([
166
+ "SKIP_ALL",
167
+ "RUN_ONCE",
168
+ "RUN_ALL"
169
+ ]), ae = (e) => Y.some((t) => t === e), oe = (e) => X.some((t) => t === e), se = (e) => {
170
+ let t = e.trim();
171
+ try {
172
+ return z.toString(t, { use24HourTimeFormat: !0 }), !0;
173
+ } catch {
174
+ return !1;
175
+ }
176
+ }, ce = (e) => {
177
+ try {
178
+ return Intl.DateTimeFormat(void 0, { timeZone: e }), !0;
179
+ } catch {
180
+ return !1;
181
+ }
182
+ }, le = n().transform((e, t) => {
183
+ try {
184
+ let n = JSON.parse(e || "{}");
185
+ return !n || typeof n != "object" || Array.isArray(n) ? (t.addIssue({
186
+ code: "custom",
187
+ message: "Args must be a JSON object"
188
+ }), i) : Object.fromEntries(Object.entries(n).map(([e, t]) => [e, String(t)]));
189
+ } catch {
190
+ return t.addIssue({
191
+ code: "custom",
192
+ message: "Args must be valid JSON"
193
+ }), i;
194
+ }
195
+ }), ue = r({
196
+ task: r({
197
+ id: a().optional(),
198
+ name: n().trim().min(1, { message: "Name is required" }),
199
+ state: o(Y).optional(),
200
+ cronExpression: n().trim().min(1, { message: "Cron expression is required" }).refine(se, { message: "Cron expression must be a valid Spring cron expression" }),
201
+ timeZone: n().trim().min(1, { message: "Time zone is required" }).refine(ce, { message: "Invalid IANA time zone" }),
202
+ lastFiredTime: a().optional(),
203
+ lastFinishedTime: a().optional(),
204
+ nextFireTime: a().optional(),
205
+ triggerable: n().trim().min(1, { message: "Triggerable is required" }),
206
+ priority: a().refine(Number.isFinite, { message: "Priority is required" }).refine(Number.isInteger, { message: "Priority must be an integer" }),
207
+ timeoutMs: a().refine(Number.isFinite, { message: "Timeout is required" }).refine(Number.isInteger, { message: "Timeout must be an integer" }).refine((e) => e >= 0, { message: "Timeout must be zero or greater" }),
208
+ missPolicy: o(X),
209
+ lastInitiator: n().optional(),
210
+ running: n().optional()
211
+ }),
212
+ argsText: le
213
+ }).transform(({ task: e, argsText: t }) => ({
214
+ ...e,
215
+ args: t
216
+ })), de = s()([
217
+ "id",
218
+ "name",
219
+ "state",
220
+ "cronExpression",
221
+ "timeZone",
222
+ "lastFiredTime",
223
+ "lastFinishedTime",
224
+ "nextFireTime",
225
+ "triggerable",
226
+ "priority",
227
+ "timeoutMs",
228
+ "missPolicy",
229
+ "lastInitiator",
230
+ "running",
231
+ "args"
232
+ ]), fe = (e) => typeof e == "string" && de.some((t) => t === e), pe = (e) => {
233
+ let [t, n] = e;
234
+ if (t === "argsText") return "args";
235
+ if (t === "task" && fe(n)) return n;
236
+ }, me = (e, t) => {
237
+ let n = ue.safeParse({
238
+ task: e,
239
+ argsText: t
240
+ });
241
+ if (n.success) return {
242
+ ok: !0,
243
+ value: n.data
244
+ };
245
+ let r = {};
246
+ return n.error.issues.forEach((e) => {
247
+ let t = pe(e.path);
248
+ t !== void 0 && !(t in r) && (r[t] = e.message);
249
+ }), {
250
+ ok: !1,
251
+ errors: r
252
+ };
253
+ }, Z = (e) => e === void 0 ? "-" : new Date(e).toISOString(), Q = (e) => JSON.stringify(e ?? {}, null, 2), he = (e) => `${e.name ?? "(unnamed)"}${e.type ? `: ${e.type}` : ""} (${e.required ? "required" : "optional"})`, ge = (e) => {
254
+ if (e.trim()) try {
255
+ return z.toString(e, { use24HourTimeFormat: !0 });
256
+ } catch {
257
+ return;
258
+ }
259
+ }, _e = () => {
260
+ let e = d(), [t, n] = R(e.task), [r, i] = R(Q(e.task.args)), [a, o] = R({}), s = Object.keys(e.triggerables).sort((e, t) => e.localeCompare(t)), c = t.triggerable && !s.includes(t.triggerable) ? [t.triggerable, ...s] : s, l = e.triggerables[t.triggerable] ?? [], p = l.length ? l.map(he).join(", ") : "Selected triggerable does not declare args.", h = ge(t.cronExpression), { id: _ } = m(), C = f(), A = g(), j = u(), M = () => {
261
+ _ === "new" || t.id === void 0 || window.confirm(`Delete scheduled task "${t.name || t.id}"?`) && A({
262
+ type: "delete",
263
+ id: t.id
264
+ }, {
265
+ method: "POST",
266
+ encType: "application/json"
267
+ });
268
+ }, N = () => {
269
+ let e = me(t, r);
270
+ if (!e.ok) {
271
+ o(e.errors);
272
+ return;
273
+ }
274
+ o({});
275
+ let n;
276
+ if (_ !== "new" && e.value.id !== 0) n = e.value;
277
+ else {
278
+ let { id: t, ...r } = e.value;
279
+ n = r;
280
+ }
281
+ A({
282
+ type: "save",
283
+ task: n
284
+ }, {
285
+ method: "POST",
286
+ encType: "application/json"
287
+ });
288
+ }, P = j ? {
289
+ severity: j.status < 300 ? "success" : "error",
290
+ message: j.message
291
+ } : null;
292
+ return /* @__PURE__ */ y(x, {
293
+ component: "section",
294
+ sx: {
295
+ p: 2,
296
+ maxWidth: 1e3
297
+ },
298
+ children: [/* @__PURE__ */ v(w, {
299
+ in: P !== null,
300
+ unmountOnExit: !0,
301
+ children: /* @__PURE__ */ v(b, {
302
+ severity: P?.severity,
303
+ children: P?.message
304
+ })
305
+ }), /* @__PURE__ */ y(te, {
306
+ sx: {
307
+ p: 2,
308
+ mt: 2
309
+ },
310
+ children: [/* @__PURE__ */ v(L, {
311
+ variant: "h4",
312
+ component: "h1",
313
+ sx: { mb: 2 },
314
+ children: _ === "new" ? "New scheduled task" : "Edit scheduled task"
315
+ }), /* @__PURE__ */ y(k, {
316
+ gap: 2,
317
+ children: [
318
+ /* @__PURE__ */ v(I, {
319
+ label: "Name",
320
+ required: !0,
321
+ value: t.name,
322
+ error: !!a.name,
323
+ helperText: a.name,
324
+ onChange: (e) => n({
325
+ ...t,
326
+ name: e.target.value
327
+ })
328
+ }),
329
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, {
330
+ id: "scheduled-task-state-label",
331
+ children: "State"
332
+ }), /* @__PURE__ */ v(O, {
333
+ labelId: "scheduled-task-state-label",
334
+ label: "State",
335
+ value: t.state ?? "WAITING",
336
+ onChange: (e) => {
337
+ let r = e.target.value;
338
+ ae(r) && n({
339
+ ...t,
340
+ state: r
341
+ });
342
+ },
343
+ children: Y.map((e) => /* @__PURE__ */ v(D, {
344
+ value: e,
345
+ children: e
346
+ }, e))
347
+ })] }),
348
+ /* @__PURE__ */ v(I, {
349
+ label: "Cron expression",
350
+ required: !0,
351
+ value: t.cronExpression,
352
+ error: !!a.cronExpression,
353
+ helperText: a.cronExpression ?? h ?? "Cron preview unavailable. The value will still be submitted to the backend.",
354
+ onChange: (e) => n({
355
+ ...t,
356
+ cronExpression: e.target.value
357
+ })
358
+ }),
359
+ /* @__PURE__ */ v(I, {
360
+ label: "Time zone",
361
+ required: !0,
362
+ value: t.timeZone,
363
+ error: !!a.timeZone,
364
+ helperText: a.timeZone ?? "IANA time zone, for example Europe/Helsinki or UTC.",
365
+ onChange: (e) => n({
366
+ ...t,
367
+ timeZone: e.target.value
368
+ })
369
+ }),
370
+ /* @__PURE__ */ y(T, {
371
+ required: !0,
372
+ error: !!a.triggerable,
373
+ children: [
374
+ /* @__PURE__ */ v(E, {
375
+ id: "scheduled-task-triggerable-label",
376
+ children: "Triggerable"
377
+ }),
378
+ /* @__PURE__ */ y(O, {
379
+ labelId: "scheduled-task-triggerable-label",
380
+ label: "Triggerable",
381
+ value: t.triggerable,
382
+ onChange: (e) => n({
383
+ ...t,
384
+ triggerable: e.target.value
385
+ }),
386
+ children: [/* @__PURE__ */ v(D, {
387
+ value: "",
388
+ children: /* @__PURE__ */ v("em", { children: "Select triggerable" })
389
+ }), c.map((e) => /* @__PURE__ */ v(D, {
390
+ value: e,
391
+ children: e
392
+ }, e))]
393
+ }),
394
+ /* @__PURE__ */ v(ee, { children: a.triggerable ?? "Fetched from the triggerables endpoint." })
395
+ ]
396
+ }),
397
+ /* @__PURE__ */ v(I, {
398
+ type: "number",
399
+ label: "Priority",
400
+ value: t.priority,
401
+ error: !!a.priority,
402
+ helperText: a.priority,
403
+ onChange: (e) => n({
404
+ ...t,
405
+ priority: Number.parseInt(e.target.value, 10)
406
+ })
407
+ }),
408
+ /* @__PURE__ */ v(I, {
409
+ type: "number",
410
+ label: "Timeout, ms",
411
+ value: t.timeoutMs,
412
+ error: !!a.timeoutMs,
413
+ helperText: a.timeoutMs,
414
+ onChange: (e) => n({
415
+ ...t,
416
+ timeoutMs: Number.parseInt(e.target.value, 10)
417
+ })
418
+ }),
419
+ /* @__PURE__ */ y(T, { children: [/* @__PURE__ */ v(E, {
420
+ id: "scheduled-task-miss-policy-label",
421
+ children: "Miss policy"
422
+ }), /* @__PURE__ */ v(O, {
423
+ labelId: "scheduled-task-miss-policy-label",
424
+ label: "Miss policy",
425
+ value: t.missPolicy,
426
+ onChange: (e) => {
427
+ let r = e.target.value;
428
+ oe(r) && n({
429
+ ...t,
430
+ missPolicy: r
431
+ });
432
+ },
433
+ children: X.map((e) => /* @__PURE__ */ v(D, {
434
+ value: e,
435
+ children: e
436
+ }, e))
437
+ })] }),
438
+ /* @__PURE__ */ v(I, {
439
+ label: "Args",
440
+ multiline: !0,
441
+ minRows: 4,
442
+ value: r,
443
+ error: !!a.args,
444
+ helperText: a.args ?? "JSON object. Values are saved as strings.",
445
+ onChange: (e) => i(e.target.value)
446
+ }),
447
+ t.triggerable && /* @__PURE__ */ y(x, {
448
+ sx: {
449
+ mt: -1,
450
+ px: 1.75,
451
+ py: 1,
452
+ bgcolor: "grey.100",
453
+ borderRadius: 1
454
+ },
455
+ children: [/* @__PURE__ */ y(L, {
456
+ variant: "caption",
457
+ color: "text.secondary",
458
+ component: "div",
459
+ children: ["Declared args for ", t.triggerable]
460
+ }), /* @__PURE__ */ v(L, {
461
+ variant: "body2",
462
+ children: p
463
+ })]
464
+ }),
465
+ _ !== "new" && /* @__PURE__ */ y(x, {
466
+ component: "dl",
467
+ sx: {
468
+ display: "grid",
469
+ gridTemplateColumns: "160px 1fr",
470
+ gap: 1
471
+ },
472
+ children: [
473
+ /* @__PURE__ */ v(L, {
474
+ component: "dt",
475
+ children: "Last fired"
476
+ }),
477
+ /* @__PURE__ */ v(L, {
478
+ component: "dd",
479
+ sx: { m: 0 },
480
+ children: Z(t.lastFiredTime)
481
+ }),
482
+ /* @__PURE__ */ v(L, {
483
+ component: "dt",
484
+ children: "Last finished"
485
+ }),
486
+ /* @__PURE__ */ v(L, {
487
+ component: "dd",
488
+ sx: { m: 0 },
489
+ children: Z(t.lastFinishedTime)
490
+ }),
491
+ /* @__PURE__ */ v(L, {
492
+ component: "dt",
493
+ children: "Next fire"
494
+ }),
495
+ /* @__PURE__ */ v(L, {
496
+ component: "dd",
497
+ sx: { m: 0 },
498
+ children: Z(t.nextFireTime)
499
+ })
500
+ ]
501
+ }),
502
+ /* @__PURE__ */ y(k, {
503
+ direction: "row",
504
+ gap: 1,
505
+ children: [
506
+ /* @__PURE__ */ v(S, {
507
+ variant: "contained",
508
+ onClick: N,
509
+ children: "Save"
510
+ }),
511
+ _ !== "new" && /* @__PURE__ */ v(S, {
512
+ color: "error",
513
+ variant: "outlined",
514
+ onClick: M,
515
+ children: "Delete"
516
+ }),
517
+ /* @__PURE__ */ v(S, {
518
+ variant: "outlined",
519
+ onClick: () => C("/scheduled-tasks"),
520
+ children: "Cancel"
521
+ })
522
+ ]
523
+ })
524
+ ]
525
+ })]
526
+ })]
527
+ });
528
+ }, $ = (e) => e === void 0 ? "-" : new Date(e).toISOString(), ve = () => {
529
+ let n = f(), r = p(), i = g(), [a, o] = h(), s = t(a), c = r.state, { content: l, totalElements: u } = d(), m = (t) => {
530
+ o(e(a, t));
531
+ }, b = (e) => {
532
+ i({
533
+ type: "trigger",
534
+ id: e
535
+ }, {
536
+ method: "POST",
537
+ encType: "application/json"
538
+ });
539
+ }, w = (e, t) => {
540
+ i({
541
+ type: "updateState",
542
+ id: e,
543
+ state: t
544
+ }, {
545
+ method: "POST",
546
+ encType: "application/json"
547
+ });
548
+ };
549
+ return c === "loading" ? /* @__PURE__ */ v(C, {}) : /* @__PURE__ */ y(_, { children: [
550
+ /* @__PURE__ */ v(x, {
551
+ sx: { p: 1 },
552
+ children: /* @__PURE__ */ v(S, {
553
+ variant: "contained",
554
+ onClick: () => n("./new", { relative: "path" }),
555
+ children: "New scheduled task"
556
+ })
557
+ }),
558
+ /* @__PURE__ */ v(N, {
559
+ sx: { height: "calc(100vh - 180px)" },
560
+ children: /* @__PURE__ */ y(A, {
561
+ size: "small",
562
+ stickyHeader: !0,
563
+ children: [/* @__PURE__ */ v(P, { children: /* @__PURE__ */ y(F, { children: [
564
+ /* @__PURE__ */ v(M, { children: "Name" }),
565
+ /* @__PURE__ */ v(M, { children: "State" }),
566
+ /* @__PURE__ */ v(M, { children: "Cron expression" }),
567
+ /* @__PURE__ */ v(M, { children: "Time zone" }),
568
+ /* @__PURE__ */ v(M, { children: "Last fired" }),
569
+ /* @__PURE__ */ v(M, { children: "Last finished" }),
570
+ /* @__PURE__ */ v(M, { children: "Next fire" }),
571
+ /* @__PURE__ */ v(M, { children: "Triggerable" }),
572
+ /* @__PURE__ */ v(M, { children: "Priority" }),
573
+ /* @__PURE__ */ v(M, { children: "Timeout, ms" }),
574
+ /* @__PURE__ */ v(M, { children: "Miss policy" }),
575
+ /* @__PURE__ */ v(M, { children: "Trigger" }),
576
+ /* @__PURE__ */ v(M, { children: "State action" })
577
+ ] }) }), /* @__PURE__ */ v(j, { children: (l ?? []).map((e) => {
578
+ let t = e.id;
579
+ return /* @__PURE__ */ y(F, {
580
+ hover: !0,
581
+ sx: { cursor: t === void 0 ? "default" : "pointer" },
582
+ onClick: () => {
583
+ t !== void 0 && n(`/scheduled-tasks/${t}`);
584
+ },
585
+ children: [
586
+ /* @__PURE__ */ v(M, { children: e.name }),
587
+ /* @__PURE__ */ v(M, { children: e.state }),
588
+ /* @__PURE__ */ v(M, { children: e.cronExpression }),
589
+ /* @__PURE__ */ v(M, { children: e.timeZone }),
590
+ /* @__PURE__ */ v(M, { children: $(e.lastFiredTime) }),
591
+ /* @__PURE__ */ v(M, { children: $(e.lastFinishedTime) }),
592
+ /* @__PURE__ */ v(M, { children: $(e.nextFireTime) }),
593
+ /* @__PURE__ */ v(M, { children: e.triggerable }),
594
+ /* @__PURE__ */ v(M, { children: e.priority }),
595
+ /* @__PURE__ */ v(M, { children: e.timeoutMs }),
596
+ /* @__PURE__ */ v(M, { children: e.missPolicy }),
597
+ /* @__PURE__ */ v(M, { children: t !== void 0 && e.state !== "RUNNING" && /* @__PURE__ */ v(S, {
598
+ size: "small",
599
+ onClick: (e) => {
600
+ e.stopPropagation(), b(t);
601
+ },
602
+ children: "Trigger"
603
+ }) }),
604
+ /* @__PURE__ */ y(M, { children: [
605
+ t !== void 0 && e.state === "PAUSED" && /* @__PURE__ */ v(S, {
606
+ size: "small",
607
+ onClick: (e) => {
608
+ e.stopPropagation(), w(t, "WAITING");
609
+ },
610
+ children: "Activate"
611
+ }),
612
+ t !== void 0 && e.state === "WAITING" && /* @__PURE__ */ v(S, {
613
+ size: "small",
614
+ onClick: (e) => {
615
+ e.stopPropagation(), w(t, "PAUSED");
616
+ },
617
+ children: "Pause"
618
+ }),
619
+ t !== void 0 && e.state === "RUNNING" && /* @__PURE__ */ v(S, {
620
+ size: "small",
621
+ onClick: (e) => {
622
+ e.stopPropagation(), w(t, "WAITING");
623
+ },
624
+ children: "Stop"
625
+ })
626
+ ] })
627
+ ]
628
+ }, t ?? e.name);
629
+ }) })]
630
+ })
631
+ }),
632
+ /* @__PURE__ */ v(ne, {
633
+ component: "div",
634
+ count: u ?? 0,
635
+ rowsPerPage: s.size ?? 100,
636
+ page: s.page,
637
+ onPageChange: (e, t) => m(t),
638
+ rowsPerPageOptions: [],
639
+ showFirstButton: !0,
640
+ showLastButton: !0
641
+ })
642
+ ] });
643
+ };
644
+ //#endregion
645
+ export { re as a, V as c, H as d, G as f, q as i, B as l, _e as n, ie as o, J as r, U as s, ve as t, W as u };
646
+
647
+ //# sourceMappingURL=scheduled-tasks-BtBnBrE7.js.map