@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,35 @@
1
+ import { n as e } from "./TextFilter-CLOKjiSd.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ import { FormControl as r, MenuItem as i, Select as a } from "@mui/material";
4
+ import { useMemo as o, useState as s } from "react";
5
+ //#region src/components/filter/EnumSelectFilter.tsx
6
+ var c = ({ name: c, value: l, defaultValue: u, onChange: d, helperText: f, validator: p, enumValues: m }) => {
7
+ let h = o(() => [{
8
+ label: "Any",
9
+ value: ""
10
+ }, ...m], [m]), [g, _] = s(p?.(l ?? u ?? ""));
11
+ return /* @__PURE__ */ n(r, {
12
+ fullWidth: !0,
13
+ error: !!g,
14
+ children: [/* @__PURE__ */ t(a, {
15
+ size: "small",
16
+ name: c,
17
+ defaultValue: u,
18
+ value: l,
19
+ onChange: (e) => {
20
+ _(p?.(e.target.value)), d?.(e.target.value);
21
+ },
22
+ children: h.map(({ value: e, label: n }) => /* @__PURE__ */ t(i, {
23
+ value: e,
24
+ children: n
25
+ }, n))
26
+ }, u), /* @__PURE__ */ t(e, {
27
+ helperText: f,
28
+ error: g
29
+ })]
30
+ });
31
+ };
32
+ //#endregion
33
+ export { c as t };
34
+
35
+ //# sourceMappingURL=EnumSelectFilter-DDWIjz5i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnumSelectFilter-DDWIjz5i.js","names":[],"sources":["../src/components/filter/EnumSelectFilter.tsx"],"sourcesContent":["import { FormControl, MenuItem, Select } from \"@mui/material\";\nimport { useMemo, useState } from \"react\";\nimport { FilterHelperTexts } from \"./FilterHelperTexts\";\nimport type { GenericFilterProps } from \"./types\";\n\nexport const EnumSelectFilter = ({\n name,\n value,\n defaultValue,\n onChange,\n helperText,\n validator,\n enumValues,\n}: GenericFilterProps<string> & {\n enumValues: { label: string; value: string }[];\n}): JSX.Element => {\n const selectValues = useMemo(() => [{ label: \"Any\", value: \"\" }, ...enumValues], [enumValues]);\n\n const [error, setError] = useState(validator?.(value ?? defaultValue ?? \"\"));\n\n return (\n <FormControl fullWidth error={!!error}>\n <Select\n size=\"small\"\n name={name}\n key={defaultValue}\n defaultValue={defaultValue}\n value={value}\n onChange={(ev) => {\n setError(validator?.(ev.target.value));\n onChange?.(ev.target.value);\n }}\n >\n {selectValues.map(({ value, label }) => (\n <MenuItem key={label} value={value}>\n {label}\n </MenuItem>\n ))}\n </Select>\n <FilterHelperTexts helperText={helperText} error={error} />\n </FormControl>\n );\n};\n"],"mappings":";;;;;AAKA,IAAa,KAAoB,EAC/B,SACA,UACA,iBACA,aACA,eACA,cACA,oBAGiB;CACjB,IAAM,IAAe,QAAc,CAAC;EAAE,OAAO;EAAO,OAAO;CAAG,GAAG,GAAG,CAAU,GAAG,CAAC,CAAU,CAAC,GAEvF,CAAC,GAAO,KAAY,EAAS,IAAY,KAAS,KAAgB,EAAE,CAAC;CAE3E,OACE,kBAAC,GAAD;EAAa,WAAA;EAAU,OAAO,CAAC,CAAC;YAAhC,CACE,kBAAC,GAAD;GACE,MAAK;GACC;GAEQ;GACP;GACP,WAAW,MAAO;IAEhB,AADA,EAAS,IAAY,EAAG,OAAO,KAAK,CAAC,GACrC,IAAW,EAAG,OAAO,KAAK;GAC5B;aAEC,EAAa,KAAK,EAAE,UAAO,eAC1B,kBAAC,GAAD;IAA6B;cAC1B;GACO,GAFK,CAEL,CACX;EACK,GAbD,CAaC,GACR,kBAAC,GAAD;GAA+B;GAAmB;EAAQ,CAAA,CAC/C;;AAEjB"}
@@ -0,0 +1,29 @@
1
+ import { Link as e, useSearchParams as t } from "react-router";
2
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
3
+ import { IconButton as a } from "@mui/material";
4
+ import o from "@mui/icons-material/Search";
5
+ //#region src/components/filter/FilterLink.tsx
6
+ var s = ({ value: s, rowKey: c, searchKey: l }) => {
7
+ let [u] = t();
8
+ return s == null || s === "" ? /* @__PURE__ */ r(n, { children: s }) : /* @__PURE__ */ i(n, { children: [
9
+ s,
10
+ " ",
11
+ /* @__PURE__ */ r(a, {
12
+ component: e,
13
+ to: { search: `?${new URLSearchParams({
14
+ ...Object.fromEntries(u),
15
+ [l ?? c]: String(s)
16
+ }).toString()}` },
17
+ onClick: (e) => e.stopPropagation(),
18
+ sx: {
19
+ p: 0,
20
+ ml: 1
21
+ },
22
+ children: /* @__PURE__ */ r(o, {})
23
+ })
24
+ ] });
25
+ };
26
+ //#endregion
27
+ export { s as t };
28
+
29
+ //# sourceMappingURL=FilterLink-OxQDWR5G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterLink-OxQDWR5G.js","names":[],"sources":["../src/components/filter/FilterLink.tsx"],"sourcesContent":["import Search from \"@mui/icons-material/Search\";\nimport { IconButton } from \"@mui/material\";\nimport { Link, useSearchParams } from \"react-router\";\nimport type { GenericCellProps } from \"../table/types\";\n\nexport const FilterLink = ({\n value,\n rowKey,\n searchKey,\n}: GenericCellProps<string | number | undefined | null>) => {\n const [searchParams] = useSearchParams();\n\n if (value === null || value === undefined || value === \"\") {\n return <>{value}</>;\n }\n\n const newSearchParams = new URLSearchParams({\n ...Object.fromEntries(searchParams),\n [searchKey ?? rowKey]: String(value),\n });\n\n return (\n <>\n {value}{\" \"}\n <IconButton\n component={Link}\n to={{ search: `?${newSearchParams.toString()}` }}\n onClick={(e) => e.stopPropagation()}\n sx={{ p: 0, ml: 1 }}\n >\n <Search />\n </IconButton>\n </>\n );\n};\n"],"mappings":";;;;;AAKA,IAAa,KAAc,EACzB,UACA,WACA,mBAC0D;CAC1D,IAAM,CAAC,KAAgB,EAAgB;CAWvC,OATI,KAAU,QAA+B,MAAU,KAC9C,kBAAA,GAAA,EAAA,UAAG,EAAQ,CAAA,IASlB,kBAAA,GAAA,EAAA,UAAA;EACG;EAAO;EACR,kBAAC,GAAD;GACE,WAAW;GACX,IAAI,EAAE,QAAQ,IAAI,IAVI,gBAAgB;IAC1C,GAAG,OAAO,YAAY,CAAY;KACjC,KAAa,IAAS,OAAO,CAAK;GACrC,CAOwB,EAAgB,SAAS,IAAI;GAC/C,UAAU,MAAM,EAAE,gBAAgB;GAClC,IAAI;IAAE,GAAG;IAAG,IAAI;GAAE;aAElB,kBAAC,GAAD,CAAS,CAAA;EACC,CAAA;CACZ,EAAA,CAAA;AAEN"}
@@ -0,0 +1,79 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { Table as n, TableBody as r, TableCell as i, TableHead as a, TablePagination as o, TableRow as s } from "@mui/material";
3
+ import { memo as c, useMemo as l } from "react";
4
+ //#region src/components/table/Pagination.tsx
5
+ var u = ({ page: t, rowsPerPage: n, total: r, onPageChange: i }) => /* @__PURE__ */ e(o, {
6
+ component: "div",
7
+ count: r,
8
+ page: t,
9
+ rowsPerPage: n,
10
+ onPageChange: (e, t) => i(t),
11
+ rowsPerPageOptions: [],
12
+ showFirstButton: !0,
13
+ showLastButton: !0
14
+ }), d = c(({ columns: n, filter: r, defaultFilter: o, onFilterChange: c }) => {
15
+ let u = l(() => n.some((e) => !!e.FilterComponent), [n]);
16
+ return /* @__PURE__ */ t(a, {
17
+ sx: {
18
+ position: "sticky",
19
+ top: 0,
20
+ zIndex: 3,
21
+ bgcolor: "background.paper",
22
+ borderBottom: "1px solid",
23
+ borderColor: "divider"
24
+ },
25
+ children: [/* @__PURE__ */ e(s, { children: n.map(({ key: t, title: n, minWidth: r }) => /* @__PURE__ */ e(i, {
26
+ sx: {
27
+ bgcolor: "primary.main",
28
+ color: "common.white",
29
+ minWidth: r
30
+ },
31
+ children: n
32
+ }, String(t))) }), u && /* @__PURE__ */ e(s, { children: n.map(({ key: t, searchKey: n, FilterComponent: a, filterHelperText: s, filterValidator: l }) => /* @__PURE__ */ e(i, {
33
+ sx: { verticalAlign: "top" },
34
+ children: a && /* @__PURE__ */ e(a, {
35
+ name: n ?? String(t),
36
+ value: r?.[t],
37
+ defaultValue: o?.[t],
38
+ filter: r ?? o,
39
+ helperText: s,
40
+ validator: l,
41
+ onChange: c ? (e, n) => c({
42
+ ...r ?? o,
43
+ ...n ?? {},
44
+ [t]: e
45
+ }) : void 0
46
+ }, o ? `${String(t)}-${o[t]}` : void 0)
47
+ }, `filter-${String(t)}`)) })]
48
+ });
49
+ }), f = c(({ rows: t, getRowId: n, onRowClick: a, columns: o }) => /* @__PURE__ */ e(r, {
50
+ sx: { " & .MuiTableRow-root:nth-of-type(odd)": { bgcolor: "grey.100" } },
51
+ children: t.map((t) => /* @__PURE__ */ e(s, {
52
+ hover: !0,
53
+ onClick: a ? () => a(t) : void 0,
54
+ sx: { cursor: a ? "pointer" : "default" },
55
+ children: o.map(({ CellComponent: n, key: r, searchKey: a }) => /* @__PURE__ */ e(i, { children: n ? /* @__PURE__ */ e(n, {
56
+ rowKey: r,
57
+ searchKey: a,
58
+ row: t,
59
+ value: t[r]
60
+ }) : String(t[r] ?? "") }, String(r)))
61
+ }, String(n(t))))
62
+ })), p = ({ columns: r, rows: i, filter: a, defaultFilter: o, onFilterChange: s, getRowId: c, onRowClick: l }) => /* @__PURE__ */ t(n, {
63
+ size: "small",
64
+ children: [/* @__PURE__ */ e(d, {
65
+ columns: r,
66
+ filter: a,
67
+ defaultFilter: o,
68
+ onFilterChange: s
69
+ }), /* @__PURE__ */ e(f, {
70
+ rows: i,
71
+ getRowId: c,
72
+ onRowClick: l,
73
+ columns: r
74
+ })]
75
+ });
76
+ //#endregion
77
+ export { u as n, p as t };
78
+
79
+ //# sourceMappingURL=Table-IciQttr3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table-IciQttr3.js","names":[],"sources":["../src/components/table/Pagination.tsx","../src/components/table/Table.tsx"],"sourcesContent":["import { TablePagination } from \"@mui/material\";\n\nexport const Pagination = ({\n page,\n rowsPerPage,\n total,\n onPageChange,\n}: {\n /** zero-indexed page number */\n page: number;\n rowsPerPage: number;\n total: number;\n onPageChange: (page: number) => void;\n}) => {\n return (\n <TablePagination\n component=\"div\"\n count={total}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={(_, newPage) => onPageChange(newPage)}\n rowsPerPageOptions={[]}\n showFirstButton\n showLastButton\n />\n );\n};\n","import { Table as MuiTable, TableBody, TableCell, TableHead, TableRow } from \"@mui/material\";\nimport { memo, useMemo } from \"react\";\nimport type { Filter } from \"../filter/types\";\nimport type { TableProps } from \"./types\";\n\nconst Head_ = <T, F extends Filter<T>>({\n columns,\n filter,\n defaultFilter,\n onFilterChange,\n}: Pick<TableProps<T, F>, \"columns\" | \"filter\" | \"onFilterChange\" | \"defaultFilter\">) => {\n const hasFilters = useMemo(() => columns.some((col) => !!col.FilterComponent), [columns]);\n\n return (\n <TableHead\n sx={{\n position: \"sticky\",\n top: 0,\n zIndex: 3,\n bgcolor: \"background.paper\",\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <TableRow>\n {columns.map(({ key, title, minWidth }) => (\n <TableCell\n sx={{\n bgcolor: \"primary.main\",\n color: \"common.white\",\n minWidth,\n }}\n key={String(key)}\n >\n {title}\n </TableCell>\n ))}\n </TableRow>\n {hasFilters && (\n <TableRow>\n {columns.map(({ key, searchKey, FilterComponent, filterHelperText, filterValidator }) => (\n <TableCell key={`filter-${String(key)}`} sx={{ verticalAlign: \"top\" }}>\n {FilterComponent && (\n <FilterComponent\n key={defaultFilter ? `${String(key)}-${defaultFilter[key]}` : undefined}\n name={searchKey ?? String(key)}\n value={filter?.[key]}\n defaultValue={defaultFilter?.[key]}\n filter={(filter ?? defaultFilter)!}\n helperText={filterHelperText}\n validator={filterValidator}\n onChange={\n onFilterChange\n ? (value, newFilter) =>\n onFilterChange({\n ...(filter ?? defaultFilter),\n ...(newFilter ?? ({} as F)),\n [key]: value,\n })\n : undefined\n }\n />\n )}\n </TableCell>\n ))}\n </TableRow>\n )}\n </TableHead>\n );\n};\n\n// memo does not handle generic types properly\nconst Head = memo(Head_) as unknown as typeof Head_;\n\nconst Body_ = <T, F extends Filter<T>>({\n rows,\n getRowId,\n onRowClick,\n columns,\n}: Pick<TableProps<T, F>, \"rows\" | \"getRowId\" | \"onRowClick\" | \"columns\">) => (\n <TableBody\n sx={{\n \" & .MuiTableRow-root:nth-of-type(odd)\": {\n bgcolor: \"grey.100\",\n },\n }}\n >\n {rows.map((row) => (\n <TableRow\n key={String(getRowId(row))}\n hover\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n sx={{ cursor: onRowClick ? \"pointer\" : \"default\" }}\n >\n {columns.map(({ CellComponent, key, searchKey }) => (\n <TableCell key={String(key)}>\n {CellComponent ? (\n <CellComponent rowKey={key} searchKey={searchKey} row={row} value={row[key]} />\n ) : (\n String(row[key] ?? \"\")\n )}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n);\n\n// memo does not handle generic types properly\nconst Body = memo(Body_) as unknown as typeof Body_;\n\nexport const Table = <T, F extends Filter<T>>({\n columns,\n rows,\n filter,\n defaultFilter,\n onFilterChange,\n getRowId,\n onRowClick,\n}: TableProps<T, F>) => {\n return (\n <MuiTable size=\"small\">\n <Head\n columns={columns}\n filter={filter}\n defaultFilter={defaultFilter}\n onFilterChange={onFilterChange}\n />\n <Body rows={rows} getRowId={getRowId} onRowClick={onRowClick} columns={columns} />\n </MuiTable>\n );\n};\n"],"mappings":";;;;AAEA,IAAa,KAAc,EACzB,SACA,gBACA,UACA,sBASE,kBAAC,GAAD;CACE,WAAU;CACV,OAAO;CACD;CACO;CACb,eAAe,GAAG,MAAY,EAAa,CAAO;CAClD,oBAAoB,CAAC;CACrB,iBAAA;CACA,gBAAA;AACD,CAAA,GCgDC,IAAO,GAnE0B,EACrC,YACA,WACA,kBACA,wBACuF;CACvF,IAAM,IAAa,QAAc,EAAQ,MAAM,MAAQ,CAAC,CAAC,EAAI,eAAe,GAAG,CAAC,CAAO,CAAC;CAExF,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,KAAK;GACL,QAAQ;GACR,SAAS;GACT,cAAc;GACd,aAAa;EACf;YARF,CAUE,kBAAC,GAAD,EAAA,UACG,EAAQ,KAAK,EAAE,QAAK,UAAO,kBAC1B,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,OAAO;IACP;GACF;aAGC;EACQ,GAHJ,OAAO,CAAG,CAGN,CACZ,EACO,CAAA,GACT,KACC,kBAAC,GAAD,EAAA,UACG,EAAQ,KAAK,EAAE,QAAK,cAAW,oBAAiB,qBAAkB,yBACjE,kBAAC,GAAD;GAAyC,IAAI,EAAE,eAAe,MAAM;aACjE,KACC,kBAAC,GAAD;IAEE,MAAM,KAAa,OAAO,CAAG;IAC7B,OAAO,IAAS;IAChB,cAAc,IAAgB;IAC9B,QAAS,KAAU;IACnB,YAAY;IACZ,WAAW;IACX,UACE,KACK,GAAO,MACN,EAAe;KACb,GAAI,KAAU;KACd,GAAI,KAAc,CAAC;MAClB,IAAM;IACT,CAAC,IACH,KAAA;GAEP,GAjBM,IAAgB,GAAG,OAAO,CAAG,EAAE,GAAG,EAAc,OAAS,KAAA,CAiB/D;EAEM,GAtBK,UAAU,OAAO,CAAG,GAsBzB,CACZ,EACO,CAAA,CAEH;;AAEf,CAGuB,GAqCjB,IAAO,GAnC0B,EACrC,SACA,aACA,eACA,iBAEA,kBAAC,GAAD;CACE,IAAI,EACF,yCAAyC,EACvC,SAAS,WACX,EACF;WAEC,EAAK,KAAK,MACT,kBAAC,GAAD;EAEE,OAAA;EACA,SAAS,UAAmB,EAAW,CAAG,IAAI,KAAA;EAC9C,IAAI,EAAE,QAAQ,IAAa,YAAY,UAAU;YAEhD,EAAQ,KAAK,EAAE,kBAAe,QAAK,mBAClC,kBAAC,GAAD,EAAA,UACG,IACC,kBAAC,GAAD;GAAe,QAAQ;GAAgB;GAAgB;GAAK,OAAO,EAAI;EAAO,CAAA,IAE9E,OAAO,EAAI,MAAQ,EAAE,EAEd,GANK,OAAO,CAAG,CAMf,CACZ;CACO,GAdH,OAAO,EAAS,CAAG,CAAC,CAcjB,CACX;AACQ,CAAA,CAIU,GAEV,KAAiC,EAC5C,YACA,SACA,WACA,kBACA,mBACA,aACA,oBAGE,kBAAC,GAAD;CAAU,MAAK;WAAf,CACE,kBAAC,GAAD;EACW;EACD;EACO;EACC;CACjB,CAAA,GACD,kBAAC,GAAD;EAAY;EAAgB;EAAsB;EAAqB;CAAU,CAAA,CACzE"}
@@ -0,0 +1,49 @@
1
+ import { Fragment as e, jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ import { Box as r, IconButton as i, Stack as a } from "@mui/material";
3
+ import { useState as o } from "react";
4
+ import s from "@mui/icons-material/ExpandLess";
5
+ import c from "@mui/icons-material/ExpandMore";
6
+ //#region src/components/metadata/utils.ts
7
+ var l = (e) => {
8
+ if (!e || typeof e != "object" || !("metadata" in e)) return e;
9
+ let t = Array.isArray(e.metadata) && e.metadata.some((e) => "key" in e && e.key) ? Object.fromEntries(e.metadata.map(({ key: e, value: t }) => [e, t])) : e.metadata;
10
+ return {
11
+ ...e,
12
+ metadata: t
13
+ };
14
+ }, u = (e) => e.slice(0, e.indexOf(".")).replace("T", " "), d = (e) => /^\d*$/.test(e) ? void 0 : "Value must be numeric!", f = (e) => /^[0-9]*\s*-{0,1}\s*[0-9]*$/.test(e) ? void 0 : "Value must be numeric or a range!", p = (e) => /^(\d{4}-\d{2}-\d{2}((\s|T)\d{2}:\d{2}:\d{2})?){0,1}\s*-{0,1}\s*(\d{4}-\d{2}-\d{2}((\s|T)\d{2}:\d{2}:\d{2})?){0,1}$/.test(e) ? void 0 : "Value must be a date(time) or range!", m = ({ value: l }) => {
15
+ let [u, d] = o(!1), f = (e) => {
16
+ e.preventDefault(), e.stopPropagation(), d((e) => !e);
17
+ }, p = Object.keys(l).length;
18
+ return /* @__PURE__ */ n(a, { children: [/* @__PURE__ */ n(a, {
19
+ direction: "row",
20
+ alignItems: "center",
21
+ spacing: 1,
22
+ children: [/* @__PURE__ */ t(i, {
23
+ onClick: f,
24
+ sx: {
25
+ maxWidth: "max-content",
26
+ p: 0,
27
+ mr: 1
28
+ },
29
+ children: t(u ? s : c, {})
30
+ }), /* @__PURE__ */ n(r, { children: [
31
+ "(",
32
+ p,
33
+ ")"
34
+ ] })]
35
+ }), /* @__PURE__ */ t(a, {
36
+ whiteSpace: "pre-line",
37
+ mt: +!!u,
38
+ height: u ? "auto" : 0,
39
+ overflow: "hidden",
40
+ children: Object.entries(l).map(([i, a]) => /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ n(r, { children: [i, ":"] }), /* @__PURE__ */ t(r, {
41
+ ml: 1,
42
+ children: a
43
+ })] }, i))
44
+ })] });
45
+ };
46
+ //#endregion
47
+ export { u as a, d as i, p as n, l as o, f as r, m as t };
48
+
49
+ //# sourceMappingURL=TableMetadataDisplay-BM61EulC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableMetadataDisplay-BM61EulC.js","names":[],"sources":["../src/components/metadata/utils.ts","../src/common/format.ts","../src/common/validation.ts","../src/components/metadata/TableMetadataDisplay.tsx"],"sourcesContent":["export const mapMetadata = (message: unknown): unknown => {\n if (!message || typeof message !== \"object\" || !(\"metadata\" in message)) return message;\n\n const metadata =\n Array.isArray(message.metadata) && message.metadata.some((m) => \"key\" in m && m.key)\n ? Object.fromEntries(message.metadata.map(({ key, value }) => [key, value]))\n : message.metadata;\n\n return { ...message, metadata };\n};\n","export const formatDateTime = (value: string): string =>\n value.slice(0, value.indexOf(\".\")).replace(\"T\", \" \");\n","import type { ValidationError } from \"./types\";\n\nexport const numberValidator = (value: string): ValidationError =>\n !/^\\d*$/.test(value) ? \"Value must be numeric!\" : undefined;\n\nexport const booleanValidator = (value: string): ValidationError =>\n !/^(true|false)$/.test(value) ? \"Value must be true or false!\" : undefined;\n\nexport const numberRangeValidator = (value: string): ValidationError =>\n !/^[0-9]*\\s*-{0,1}\\s*[0-9]*$/.test(value) ? \"Value must be numeric or a range!\" : undefined;\n\nexport const datetimeRangeValidator = (value: string): ValidationError =>\n !/^(\\d{4}-\\d{2}-\\d{2}((\\s|T)\\d{2}:\\d{2}:\\d{2})?){0,1}\\s*-{0,1}\\s*(\\d{4}-\\d{2}-\\d{2}((\\s|T)\\d{2}:\\d{2}:\\d{2})?){0,1}$/.test(\n value,\n )\n ? \"Value must be a date(time) or range!\"\n : undefined;\n","import ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport { Box, IconButton, Stack } from \"@mui/material\";\nimport { useState } from \"react\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport type { GenericCellProps } from \"../table/types\";\n\nexport const TableMetadataDisplay = ({ value }: GenericCellProps<Record<string, string>>) => {\n const [open, setOpen] = useState(false);\n const handleClick = (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen((prev) => !prev);\n };\n\n const amount = Object.keys(value).length;\n\n return (\n <Stack>\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <IconButton onClick={handleClick} sx={{ maxWidth: \"max-content\", p: 0, mr: 1 }}>\n {open ? <ExpandLess /> : <ExpandMore />}\n </IconButton>\n <Box>({amount})</Box>\n </Stack>\n <Stack whiteSpace=\"pre-line\" mt={open ? 1 : 0} height={open ? \"auto\" : 0} overflow=\"hidden\">\n {Object.entries(value).map(([k, v]) => (\n <Fragment key={k}>\n <Box>{k}:</Box>\n <Box ml={1}>{v}</Box>\n </Fragment>\n ))}\n </Stack>\n </Stack>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAa,KAAe,MAA8B;CACxD,IAAI,CAAC,KAAW,OAAO,KAAY,YAAY,EAAE,cAAc,IAAU,OAAO;CAEhF,IAAM,IACJ,MAAM,QAAQ,EAAQ,QAAQ,KAAK,EAAQ,SAAS,MAAM,MAAM,SAAS,KAAK,EAAE,GAAG,IAC/E,OAAO,YAAY,EAAQ,SAAS,KAAK,EAAE,QAAK,eAAY,CAAC,GAAK,CAAK,CAAC,CAAC,IACzE,EAAQ;CAEd,OAAO;EAAE,GAAG;EAAS;CAAS;AAChC,GCTa,KAAkB,MAC7B,EAAM,MAAM,GAAG,EAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,KAAK,GAAG,GCCxC,KAAmB,MAC7B,QAAQ,KAAK,CAAK,IAA+B,KAAA,IAA3B,0BAKZ,KAAwB,MAClC,6BAA6B,KAAK,CAAK,IAA0C,KAAA,IAAtC,qCAEjC,KAA0B,MACpC,qHAAqH,KACpH,CACF,IAEI,KAAA,IADA,wCCRO,KAAwB,EAAE,eAAsD;CAC3F,IAAM,CAAC,GAAM,KAAW,EAAS,EAAK,GAChC,KAAe,MAA4B;EAG/C,AAFA,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,GAAS,MAAS,CAAC,CAAI;CACzB,GAEM,IAAS,OAAO,KAAK,CAAK,EAAE;CAElC,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAO,WAAU;EAAM,YAAW;EAAS,SAAS;YAApD,CACE,kBAAC,GAAD;GAAY,SAAS;GAAa,IAAI;IAAE,UAAU;IAAe,GAAG;IAAG,IAAI;GAAE;aACnE,EAAP,IAAQ,IAAiB,GAAlB,CAAa,CAAiB;EAC5B,CAAA,GACZ,kBAAC,GAAD,EAAA,UAAA;GAAK;GAAE;GAAO;EAAM,EAAA,CAAA,CACf;KACP,kBAAC,GAAD;EAAO,YAAW;EAAW,IAAI;EAAc,QAAQ,IAAO,SAAS;EAAG,UAAS;YAChF,OAAO,QAAQ,CAAK,EAAE,KAAK,CAAC,GAAG,OAC9B,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CAAM,GAAE,GAAM,EAAA,CAAA,GACd,kBAAC,GAAD;GAAK,IAAI;aAAI;EAAO,CAAA,CACZ,EAAA,GAHK,CAGL,CACX;CACI,CAAA,CACF,EAAA,CAAA;AAEX"}
@@ -0,0 +1,54 @@
1
+ import { Fragment as e, jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ import { FormControl as r, FormHelperText as i, IconButton as a, InputAdornment as o, OutlinedInput as s } from "@mui/material";
3
+ import { useRef as c, useState as l } from "react";
4
+ import u from "@mui/icons-material/Backspace";
5
+ //#region src/components/filter/FilterHelperTexts.tsx
6
+ var d = ({ helperText: r, error: a }) => /* @__PURE__ */ n(e, { children: [r && /* @__PURE__ */ t(i, {
7
+ sx: {
8
+ whiteSpace: "normal",
9
+ overflowWrap: "anywhere"
10
+ },
11
+ children: r
12
+ }), a && /* @__PURE__ */ t(i, {
13
+ sx: {
14
+ whiteSpace: "normal",
15
+ overflowWrap: "anywhere"
16
+ },
17
+ children: a
18
+ })] }), f = ({ name: e, value: i, defaultValue: f, onChange: p, helperText: m, validator: h }) => {
19
+ let g = c(null), [_, v] = l(i ?? f ?? ""), y = h?.(_);
20
+ return /* @__PURE__ */ n(r, {
21
+ size: "small",
22
+ error: !!y,
23
+ variant: "outlined",
24
+ fullWidth: !0,
25
+ children: [/* @__PURE__ */ t(s, {
26
+ name: e,
27
+ inputRef: g,
28
+ value: i,
29
+ defaultValue: f,
30
+ onChange: (e) => {
31
+ v(e.target.value), p?.(e.target.value);
32
+ },
33
+ endAdornment: /* @__PURE__ */ t(o, {
34
+ position: "end",
35
+ sx: { visibility: _ ? "visible" : "hidden" },
36
+ children: /* @__PURE__ */ t(a, {
37
+ size: "small",
38
+ type: "submit",
39
+ onClick: () => {
40
+ p?.(""), v(""), g.current && (g.current.value = "", g.current.dispatchEvent(new Event("input", { bubbles: !0 })));
41
+ },
42
+ children: /* @__PURE__ */ t(u, {})
43
+ })
44
+ })
45
+ }), /* @__PURE__ */ t(d, {
46
+ helperText: m,
47
+ error: y
48
+ })]
49
+ });
50
+ };
51
+ //#endregion
52
+ export { d as n, f as t };
53
+
54
+ //# sourceMappingURL=TextFilter-CLOKjiSd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFilter-CLOKjiSd.js","names":[],"sources":["../src/components/filter/FilterHelperTexts.tsx","../src/components/filter/TextFilter.tsx"],"sourcesContent":["import { FormHelperText } from \"@mui/material\";\n\nexport const FilterHelperTexts = ({\n helperText,\n error,\n}: {\n helperText?: React.ReactNode;\n error?: string;\n}) => (\n <>\n {helperText && (\n <FormHelperText sx={{ whiteSpace: \"normal\", overflowWrap: \"anywhere\" }}>\n {helperText}\n </FormHelperText>\n )}\n {error && (\n <FormHelperText sx={{ whiteSpace: \"normal\", overflowWrap: \"anywhere\" }}>\n {error}\n </FormHelperText>\n )}\n </>\n);\n","import Backspace from \"@mui/icons-material/Backspace\";\nimport { FormControl, IconButton, InputAdornment, OutlinedInput } from \"@mui/material\";\nimport { useRef, useState } from \"react\";\nimport { FilterHelperTexts } from \"./FilterHelperTexts\";\nimport type { GenericFilterProps } from \"./types\";\n\nexport const TextFilter = ({\n name,\n value,\n defaultValue,\n onChange,\n helperText,\n validator,\n}: GenericFilterProps<string>) => {\n const ref = useRef<HTMLInputElement>(null);\n\n const [localValue, setLocalValue] = useState(value ?? defaultValue ?? \"\");\n const error = validator?.(localValue);\n\n return (\n <FormControl size=\"small\" error={!!error} variant=\"outlined\" fullWidth>\n <OutlinedInput\n name={name}\n inputRef={ref}\n value={value}\n defaultValue={defaultValue}\n onChange={(e) => {\n setLocalValue(e.target.value);\n onChange?.(e.target.value);\n }}\n endAdornment={\n <InputAdornment position=\"end\" sx={{ visibility: localValue ? \"visible\" : \"hidden\" }}>\n <IconButton\n size=\"small\"\n type=\"submit\"\n onClick={() => {\n onChange?.(\"\");\n setLocalValue(\"\");\n if (ref.current) {\n ref.current.value = \"\";\n ref.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n }\n }}\n >\n <Backspace />\n </IconButton>\n </InputAdornment>\n }\n />\n <FilterHelperTexts helperText={helperText} error={error} />\n </FormControl>\n );\n};\n"],"mappings":";;;;;AAEA,IAAa,KAAqB,EAChC,eACA,eAKA,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAC,GAAD;CAAgB,IAAI;EAAE,YAAY;EAAU,cAAc;CAAW;WAClE;AACa,CAAA,GAEjB,KACC,kBAAC,GAAD;CAAgB,IAAI;EAAE,YAAY;EAAU,cAAc;CAAW;WAClE;AACa,CAAA,CAElB,EAAA,CAAA,GCdS,KAAc,EACzB,SACA,UACA,iBACA,aACA,eACA,mBACgC;CAChC,IAAM,IAAM,EAAyB,IAAI,GAEnC,CAAC,GAAY,KAAiB,EAAS,KAAS,KAAgB,EAAE,GAClE,IAAQ,IAAY,CAAU;CAEpC,OACE,kBAAC,GAAD;EAAa,MAAK;EAAQ,OAAO,CAAC,CAAC;EAAO,SAAQ;EAAW,WAAA;YAA7D,CACE,kBAAC,GAAD;GACQ;GACN,UAAU;GACH;GACO;GACd,WAAW,MAAM;IAEf,AADA,EAAc,EAAE,OAAO,KAAK,GAC5B,IAAW,EAAE,OAAO,KAAK;GAC3B;GACA,cACE,kBAAC,GAAD;IAAgB,UAAS;IAAM,IAAI,EAAE,YAAY,IAAa,YAAY,SAAS;cACjF,kBAAC,GAAD;KACE,MAAK;KACL,MAAK;KACL,eAAe;MAGb,AAFA,IAAW,EAAE,GACb,EAAc,EAAE,GACZ,EAAI,YACN,EAAI,QAAQ,QAAQ,IACpB,EAAI,QAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,GAAK,CAAC,CAAC;KAEnE;eAEA,kBAAC,GAAD,CAAY,CAAA;IACF,CAAA;GACE,CAAA;EAEnB,CAAA,GACD,kBAAC,GAAD;GAA+B;GAAmB;EAAQ,CAAA,CAC/C;;AAEjB"}
@@ -0,0 +1,32 @@
1
+ //#region src/routes/triggerables/api.ts
2
+ var e = ({ parameters: e }) => {
3
+ let t = new URLSearchParams();
4
+ return Object.entries(e).forEach(([e, n]) => {
5
+ t.set(e, n);
6
+ }), t.toString();
7
+ }, t = async (e) => {
8
+ let { data: t, error: n, response: r } = await e.GET("/trigger");
9
+ if (n || !t) throw Error(`Failed to fetch triggerables: ${r.status}`);
10
+ return t;
11
+ }, n = async (e) => {
12
+ let { data: t, error: n } = await e.GET("/task/list/active");
13
+ if (n || !t) throw Error("Failed to fetch active task statuses");
14
+ return t;
15
+ }, r = async (t, n, r) => {
16
+ let { data: i, error: a, response: o } = await r.POST("/trigger/{name}/async", {
17
+ params: {
18
+ path: { name: t },
19
+ query: { parameters: n }
20
+ },
21
+ querySerializer: e
22
+ });
23
+ if (a || i === void 0) throw Error(`Failed to trigger triggerable: ${o.status}`);
24
+ return {
25
+ status: o.status,
26
+ data: i.toString()
27
+ };
28
+ };
29
+ //#endregion
30
+ export { t as n, r, n as t };
31
+
32
+ //# sourceMappingURL=api-CMiZYkfc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-CMiZYkfc.js","names":[],"sources":["../src/routes/triggerables/api.ts"],"sourcesContent":["import type { ApiClient } from \"../../client\";\nimport type { paths } from \"../../types/openapiTypes\";\n\ntype TriggerRequestParameters = paths[\"/trigger/{name}/async\"][\"post\"][\"parameters\"];\ntype TriggerParams = TriggerRequestParameters[\"query\"][\"parameters\"];\n\nconst serializeTriggerParameters = ({ parameters }: TriggerRequestParameters[\"query\"]): string => {\n const params = new URLSearchParams();\n\n Object.entries(parameters).forEach(([key, value]) => {\n params.set(key, value);\n });\n\n return params.toString();\n};\n\nexport const fetchTriggerables = async (client: ApiClient) => {\n const { data, error, response } = await client.GET(\"/trigger\");\n\n if (error || !data) {\n throw new Error(`Failed to fetch triggerables: ${response.status}`);\n }\n\n return data;\n};\n\nexport const fetchActiveTaskStatuses = async (client: ApiClient) => {\n const { data, error } = await client.GET(\"/task/list/active\");\n\n if (error || !data) {\n throw new Error(\"Failed to fetch active task statuses\");\n }\n\n return data;\n};\n\nexport const triggerTriggerable = async (\n triggerName: string,\n params: TriggerParams,\n client: ApiClient,\n) => {\n const { data, error, response } = await client.POST(\"/trigger/{name}/async\", {\n params: {\n path: { name: triggerName },\n query: {\n parameters: params,\n },\n },\n querySerializer: serializeTriggerParameters,\n });\n\n if (error || data === undefined) {\n throw new Error(`Failed to trigger triggerable: ${response.status}`);\n }\n\n return {\n status: response.status,\n data: data.toString(),\n };\n};\n"],"mappings":";AAMA,IAAM,KAA8B,EAAE,oBAA4D;CAChG,IAAM,IAAS,IAAI,gBAAgB;CAMnC,OAJA,OAAO,QAAQ,CAAU,EAAE,SAAS,CAAC,GAAK,OAAW;EACnD,EAAO,IAAI,GAAK,CAAK;CACvB,CAAC,GAEM,EAAO,SAAS;AACzB,GAEa,IAAoB,OAAO,MAAsB;CAC5D,IAAM,EAAE,SAAM,UAAO,gBAAa,MAAM,EAAO,IAAI,UAAU;CAE7D,IAAI,KAAS,CAAC,GACZ,MAAU,MAAM,iCAAiC,EAAS,QAAQ;CAGpE,OAAO;AACT,GAEa,IAA0B,OAAO,MAAsB;CAClE,IAAM,EAAE,SAAM,aAAU,MAAM,EAAO,IAAI,mBAAmB;CAE5D,IAAI,KAAS,CAAC,GACZ,MAAU,MAAM,sCAAsC;CAGxD,OAAO;AACT,GAEa,IAAqB,OAChC,GACA,GACA,MACG;CACH,IAAM,EAAE,SAAM,UAAO,gBAAa,MAAM,EAAO,KAAK,yBAAyB;EAC3E,QAAQ;GACN,MAAM,EAAE,MAAM,EAAY;GAC1B,OAAO,EACL,YAAY,EACd;EACF;EACA,iBAAiB;CACnB,CAAC;CAED,IAAI,KAAS,MAAS,KAAA,GACpB,MAAU,MAAM,kCAAkC,EAAS,QAAQ;CAGrE,OAAO;EACL,QAAQ,EAAS;EACjB,MAAM,EAAK,SAAS;CACtB;AACF"}
@@ -1,5 +1,2 @@
1
- import { B as e } from "../BreadCrumbs-DMuPCevY.js";
2
- export {
3
- e as BreadCrumbs
4
- };
5
- //# sourceMappingURL=index.js.map
1
+ import { t as e } from "../breadcrumbs-BAwnKRxL.js";
2
+ export { e as BreadCrumbs };
@@ -0,0 +1,32 @@
1
+ import { NavLink as e, useLocation as t } from "react-router";
2
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region src/components/breadcrumbs/breadcrumbs.module.css
4
+ var i = {
5
+ "bread-crumbs": "_bread-crumbs_1f4j4_1",
6
+ "bread-crumb": "_bread-crumb_1f4j4_1"
7
+ }, a = () => {
8
+ let a = t().pathname.split("/").filter(Boolean);
9
+ return /* @__PURE__ */ r("nav", {
10
+ className: i["bread-crumbs"],
11
+ children: [/* @__PURE__ */ n("span", {
12
+ className: i["bread-crumb"],
13
+ children: /* @__PURE__ */ n(e, {
14
+ to: "/",
15
+ children: "Home"
16
+ })
17
+ }), a.map((t, r) => {
18
+ let o = `/${a.slice(0, r + 1).join("/")}`;
19
+ return r === a.length - 1 ? /* @__PURE__ */ n("span", { children: t }, o) : /* @__PURE__ */ n("span", {
20
+ className: i["bread-crumb"],
21
+ children: /* @__PURE__ */ n(e, {
22
+ to: o,
23
+ children: t
24
+ })
25
+ }, o);
26
+ })]
27
+ });
28
+ };
29
+ //#endregion
30
+ export { a as t };
31
+
32
+ //# sourceMappingURL=breadcrumbs-BAwnKRxL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs-BAwnKRxL.js","names":[],"sources":["../src/components/breadcrumbs/breadcrumbs.module.css","../src/components/breadcrumbs/BreadCrumbs.tsx"],"sourcesContent":[".bread-crumbs {\n display: flex;\n flex-direction: row;\n gap: 1em;\n font-size: 20px;\n font-family: \"Roboto\", sans-serif;\n font-weight: 600;\n padding: 0.5em;\n}\n\n.bread-crumb > a:visited {\n color: #0000ee;\n}\n\n.bread-crumb > a:hover {\n color: #7777ff;\n}\n\n.bread-crumb::after {\n content: \"/\";\n position: relative;\n right: -0.5em;\n}\n","import { NavLink, useLocation } from \"react-router\";\n\nimport styles from \"./breadcrumbs.module.css\";\n\n/**\n * Breadcrumbs component to show the current path and active route segments\n * Provides links to the parent routes\n *\n * NOTE: `import \"@evolver-fi/evolver-basics-admin-components/breadcrumbs.css\"` to enable the default styles\n *\n * @returns\n */\nconst BreadCrumbs = () => {\n const location = useLocation();\n const pathNames = location.pathname.split(\"/\").filter(Boolean);\n\n return (\n <nav className={styles[\"bread-crumbs\"]}>\n <span className={styles[\"bread-crumb\"]}>\n <NavLink to=\"/\">Home</NavLink>\n </span>\n {pathNames.map((path, index) => {\n const routeTo = `/${pathNames.slice(0, index + 1).join(\"/\")}`;\n const isLast = index === pathNames.length - 1;\n return isLast ? (\n <span key={routeTo}>{path}</span>\n ) : (\n <span key={routeTo} className={styles[\"bread-crumb\"]}>\n <NavLink to={routeTo}>{path}</NavLink>\n </span>\n );\n })}\n </nav>\n );\n};\n\nexport default BreadCrumbs;\n"],"mappings":";;;;;;GCYM,UAAoB;CAExB,IAAM,IADW,EACC,EAAS,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;CAE7D,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IAAS,IAAG;cAAI;GAAa,CAAA;EACzB,CAAA,GACL,EAAU,KAAK,GAAM,MAAU;GAC9B,IAAM,IAAU,IAAI,EAAU,MAAM,GAAG,IAAQ,CAAC,EAAE,KAAK,GAAG;GAE1D,OADe,MAAU,EAAU,SAAS,IAE1C,kBAAC,QAAD,EAAA,UAAqB,EAAW,GAArB,CAAqB,IAEhC,kBAAC,QAAD;IAAoB,WAAW,EAAO;cACpC,kBAAC,GAAD;KAAS,IAAI;eAAU;IAAc,CAAA;GACjC,GAFK,CAEL;EAEV,CAAC,CACE;;AAET"}
@@ -0,0 +1 @@
1
+ ._bread-crumbs_1f4j4_1{flex-direction:row;gap:1em;padding:.5em;font-family:Roboto,sans-serif;font-size:20px;font-weight:600;display:flex}._bread-crumb_1f4j4_1>a:visited{color:#00e}._bread-crumb_1f4j4_1>a:hover{color:#77f}._bread-crumb_1f4j4_1:after{content:"/";position:relative;right:-.5em}