@cccsaurora/clue-ui 1.2.2-dev.263 → 1.2.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 (183) hide show
  1. package/ActionForm-DlOXqMUx.js +4460 -0
  2. package/AnnotationDetails-Bk-p0F6h.js +160 -0
  3. package/AnnotationPreview-jzZvkCxJ.js +140 -0
  4. package/ClueEnrichContext-KqRuuWNS.js +418 -0
  5. package/FlexOne-BXWFOd1T.js +6 -0
  6. package/_MapCache-BiTi0iqu.js +180 -0
  7. package/_Uint8Array-BQNOM9Rr.js +101 -0
  8. package/_baseAssignValue-CNMLQZco.js +20 -0
  9. package/_baseClone-BnT-6pyM.js +207 -0
  10. package/_baseExtremum-Ca2EHgy2.js +16 -0
  11. package/_baseFlatten-Bfr_Molw.js +72 -0
  12. package/_baseGet-DSZygzyq.js +79 -0
  13. package/_baseIsEqual-VgvaAFZG.js +147 -0
  14. package/_baseIteratee-Dbfsw5z8.js +95 -0
  15. package/_baseSlice-M5RKzt1A.js +10 -0
  16. package/_baseSum-wEbgNeUs.js +10 -0
  17. package/_baseUniq-BJcj69PL.js +79 -0
  18. package/_commonjsHelpers-DaMA6jEr.js +8 -0
  19. package/_createAggregator-k3TuAnxT.js +53 -0
  20. package/_getPrototype-Cr1Mk7BC.js +5 -0
  21. package/_getTag-CK2Sffaq.js +90 -0
  22. package/_isIterateeCall-DkJP7Rbx.js +13 -0
  23. package/_setToArray-C7yMOeww.js +29 -0
  24. package/cloneDeep-CF8TtLHr.js +8 -0
  25. package/components/AnnotationBody.js +35 -49
  26. package/components/AnnotationDetailPopover.js +30 -36
  27. package/components/AnnotationDetails.js +7 -7
  28. package/components/AnnotationEntry.js +35 -35
  29. package/components/AnnotationPreview.js +5 -5
  30. package/components/ClassificationChip.js +23 -44
  31. package/components/CountBadge.js +26 -31
  32. package/components/EnrichedCard.js +97 -110
  33. package/components/EnrichedChip.js +105 -130
  34. package/components/EnrichedTypography.js +107 -133
  35. package/components/ErrorBoundary.js +24 -28
  36. package/components/RetryFailedEnrichments.js +9 -10
  37. package/components/SourcePicker.js +49 -57
  38. package/components/actions/ActionForm.js +4 -4
  39. package/components/actions/ExecutePopover.js +59 -75
  40. package/components/actions/ResultModal.js +4 -4
  41. package/components/actions/form/schemaAdapter.js +23 -39
  42. package/components/actions/formats/FileResult.js +59 -86
  43. package/components/actions/formats/index.js +10 -21
  44. package/components/display/graph/ExpandMoreButton.js +10 -10
  45. package/components/display/graph/elements/NodeCard.js +91 -111
  46. package/components/display/graph/elements/NodeTag.js +13 -15
  47. package/components/display/graph/index.js +202 -261
  48. package/components/display/graph/visualizations/Leaf.js +69 -88
  49. package/components/display/graph/visualizations/cloud/index.js +81 -98
  50. package/components/display/graph/visualizations/icons/BaseIcon.js +21 -26
  51. package/components/display/graph/visualizations/icons/BugIcon.js +12 -12
  52. package/components/display/graph/visualizations/icons/HostIcon.js +12 -12
  53. package/components/display/graph/visualizations/icons/NetworkIcon.js +12 -12
  54. package/components/display/graph/visualizations/icons/ProcessIcon.js +12 -12
  55. package/components/display/graph/visualizations/icons/TargetIcon.js +13 -13
  56. package/components/display/graph/visualizations/icons/index.js +13 -14
  57. package/components/display/graph/visualizations/panels/NodePanel.js +8 -10
  58. package/components/display/graph/visualizations/tree/BundleLine.js +81 -108
  59. package/components/display/graph/visualizations/tree/Triangle.js +13 -13
  60. package/components/display/graph/visualizations/tree/index.js +306 -408
  61. package/components/display/icons/Iconified.js +12 -27
  62. package/components/display/json/index.js +4 -4
  63. package/components/display/markdown/index.js +5770 -8678
  64. package/components/enrichment/EnrichPopover.js +46 -54
  65. package/components/fetchers/Fetcher.js +117 -155
  66. package/components/fetchers/PreviewModal.js +17 -20
  67. package/components/fetchers/StatusChip.js +17 -21
  68. package/components/group/Entry.js +11 -13
  69. package/components/group/Group.js +10 -13
  70. package/components/group/GroupControl.js +65 -76
  71. package/components/stats/QueryStatus.js +33 -43
  72. package/countBy-CdYegFSu.js +8 -0
  73. package/data/event.js +4 -6
  74. package/database/index.js +2 -2
  75. package/debounce-DryYcbJ4.js +56 -0
  76. package/get-CH7kz5Ix.js +8 -0
  77. package/groupBy-br8xmD2R.js +8 -0
  78. package/hooks/ClueActionContext.js +6 -6
  79. package/hooks/ClueComponentContext.js +23 -29
  80. package/hooks/ClueConfigProvider.js +12 -14
  81. package/hooks/ClueDatabaseContext.js +13 -19
  82. package/hooks/ClueEnrichContext.js +8 -8
  83. package/hooks/ClueFetcherContext.js +56 -83
  84. package/hooks/ClueGroupContext.js +14 -17
  85. package/hooks/CluePopupContext.js +5 -5
  86. package/hooks/ClueProvider.js +10 -12
  87. package/hooks/selectors.js +7 -7
  88. package/hooks/useActionResult.js +2 -2
  89. package/hooks/useAnnotations.js +31 -47
  90. package/hooks/useClue.js +4 -6
  91. package/hooks/useClueActions.js +3 -3
  92. package/hooks/useClueConfig.js +4 -6
  93. package/hooks/useClueTypeConfig.js +3 -3
  94. package/hooks/useComparator.js +435 -722
  95. package/hooks/useErrors.js +18 -22
  96. package/hooks/useFetcherResult.js +24 -33
  97. package/hooks/useMyHighlights.js +36 -66
  98. package/hooks/useMyLocalStorage.js +37 -66
  99. package/iconify-BBckr5AQ.js +1263 -0
  100. package/icons/Action.js +49 -66
  101. package/icons/Assessment.js +69 -85
  102. package/icons/Context.js +63 -77
  103. package/icons/Opinion.js +60 -76
  104. package/icons/iconMap.js +2 -2
  105. package/identity-ByMq8VxU.js +6 -0
  106. package/index-BHAe_V9n.js +12768 -0
  107. package/index-BK-zfYhR.js +358 -0
  108. package/index-CA5CUNZO.js +975 -0
  109. package/index-Dj5C04IX.js +568 -0
  110. package/index-p5_wX7q1.js +11729 -0
  111. package/isNil-CjWwlQS3.js +6 -0
  112. package/isObject-B53jY8Qg.js +7 -0
  113. package/isObjectLike-BatpeCIi.js +29 -0
  114. package/isSymbol-C3_SC0Qp.js +8 -0
  115. package/last-7CdUxN0r.js +7 -0
  116. package/main.js +60 -60
  117. package/maxBy-Bc0dYHcO.js +8 -0
  118. package/package.json +1 -1
  119. package/sortBy-DY2JBf9n.js +75 -0
  120. package/sumBy-DuMASLPd.js +8 -0
  121. package/text/Frequency.js +23 -42
  122. package/toFinite-BMy6GObD.js +14 -0
  123. package/toNumber-YVhnnJv4.js +31 -0
  124. package/useClueTypeConfig-Ct9Ygter.js +2292 -0
  125. package/utils/chain.js +65 -92
  126. package/utils/classificationParser.js +256 -519
  127. package/utils/constants.js +10 -35
  128. package/utils/graph.js +45 -72
  129. package/utils/hashUtil.js +7 -7
  130. package/utils/line.js +81 -131
  131. package/utils/loggerUtil.js +3 -5
  132. package/utils/sessionStorage.js +27 -41
  133. package/utils/time.js +423 -423
  134. package/utils/utils.js +9 -9
  135. package/utils/window.js +10 -21
  136. package/utils-DmwSUrum.js +129 -0
  137. package/ActionForm-uDp92tN2.js +0 -5941
  138. package/AnnotationDetails-DGYfOiWm.js +0 -175
  139. package/AnnotationPreview-bHObsb3P.js +0 -188
  140. package/ClueEnrichContext-CJEJxrgs.js +0 -541
  141. package/FlexOne-BSYAhhtG.js +0 -9
  142. package/_MapCache-WmuDdwuH.js +0 -222
  143. package/_Uint8Array-B7JqpgFX.js +0 -128
  144. package/_baseAssignValue-CGTuELqU.js +0 -25
  145. package/_baseClone-CkNrTyhm.js +0 -283
  146. package/_baseExtremum-kob8QXyt.js +0 -18
  147. package/_baseFlatten-jIR_sN_-.js +0 -92
  148. package/_baseGet-Bx3A4Qfp.js +0 -108
  149. package/_baseIsEqual-C5OTWzTk.js +0 -208
  150. package/_baseIteratee-avi7MX2o.js +0 -126
  151. package/_baseSlice-GAv_YFTT.js +0 -20
  152. package/_baseSum-D0WC1dN0.js +0 -13
  153. package/_baseUniq-BI9GIHMF.js +0 -115
  154. package/_commonjsHelpers-DWwsNxpa.js +0 -8
  155. package/_createAggregator-QD8MzKwe.js +0 -63
  156. package/_getPrototype-CU0j_POw.js +0 -5
  157. package/_getTag-Ckxxfr88.js +0 -126
  158. package/_isIterateeCall-Ds3sw2SF.js +0 -17
  159. package/_setToArray-CaPKQhcz.js +0 -33
  160. package/cloneDeep-DJrLSw8W.js +0 -8
  161. package/countBy-c6S3dvSW.js +0 -14
  162. package/debounce-bV0h5FC5.js +0 -92
  163. package/get-DSsNkRQs.js +0 -8
  164. package/groupBy-xqz-n0Vd.js +0 -14
  165. package/iconify-CXMreGTg.js +0 -1782
  166. package/identity-CPGTqrE4.js +0 -6
  167. package/index-AMfoEg_6.js +0 -696
  168. package/index-B6C2a_Lg.js +0 -1172
  169. package/index-C12gPw2W.js +0 -17698
  170. package/index-DCKkHTvx.js +0 -15750
  171. package/index-JcKyZeoY.js +0 -465
  172. package/isNil-CIubwp4T.js +0 -6
  173. package/isObject-FTY-5JQX.js +0 -7
  174. package/isObjectLike-OAgjjZye.js +0 -48
  175. package/isSymbol-Xd2FsJyp.js +0 -8
  176. package/last-CUCl67Im.js +0 -7
  177. package/maxBy-IKHzFrCS.js +0 -8
  178. package/sortBy-DfSj8IoJ.js +0 -96
  179. package/sumBy-D-hb_NY-.js +0 -8
  180. package/toFinite-Bc55msYj.js +0 -16
  181. package/toNumber-DPxy1FBy.js +0 -39
  182. package/useClueTypeConfig-Z1LFp01b.js +0 -3289
  183. package/utils-HmNPuoDB.js +0 -199
@@ -1,87 +1,79 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { useTheme, Tooltip, IconButton, CircularProgress, Button, Popover, Paper, Stack, Box, Typography, Divider } from "@mui/material";
3
- import { d as useClueComponentSelector, b as useClueEnrichSelector, e as capitalize } from "../../ActionForm-uDp92tN2.js";
4
- import { useState, useRef, useCallback, useEffect } from "react";
5
- import Iconified from "../display/icons/Iconified.js";
6
- const EnrichPopover = ({ show = false, size = "small", selector }) => {
7
- const { t } = useClueComponentSelector((ctx) => ctx.i18next);
8
- const theme = useTheme();
9
- const availableSources = useClueEnrichSelector((ctx) => ctx.availableSources);
10
- const _enrich = useClueEnrichSelector((ctx) => ctx.enrich);
11
- const [showEnrichMenu, setShowEnrichMenu] = useState(show);
12
- const [loading, setLoading] = useState(false);
13
- const enrichEl = useRef(null);
14
- const enrich = useCallback(
15
- async (_source) => {
16
- setLoading(true);
1
+ import { jsxs as y, Fragment as C, jsx as e } from "react/jsx-runtime";
2
+ import { useTheme as k, Tooltip as S, IconButton as E, CircularProgress as f, Button as z, Popover as I, Paper as j, Stack as c, Box as P, Typography as B, Divider as O } from "@mui/material";
3
+ import { d as T, b as p, e as w } from "../../ActionForm-DlOXqMUx.js";
4
+ import { useState as m, useRef as M, useCallback as D, useEffect as F } from "react";
5
+ import g from "../display/icons/Iconified.js";
6
+ const H = ({ show: t = !1, size: b = "small", selector: n }) => {
7
+ const { t: s } = T((i) => i.i18next), h = k(), a = p((i) => i.availableSources), u = p((i) => i.enrich), [x, o] = m(t), [r, d] = m(!1), l = M(null), v = D(
8
+ async (i) => {
9
+ d(!0);
17
10
  try {
18
- await _enrich(selector.type, selector.value, {
19
- classification: selector.classification,
11
+ await u(n.type, n.value, {
12
+ classification: n.classification,
20
13
  timeout: 30,
21
- force: true,
22
- noCache: true,
23
- sources: [_source],
24
- append: true
14
+ force: !0,
15
+ noCache: !0,
16
+ sources: [i],
17
+ append: !0
25
18
  });
26
19
  } finally {
27
- setLoading(false);
20
+ d(!1);
28
21
  }
29
22
  },
30
- [_enrich, selector.classification, selector.type, selector.value]
23
+ [u, n.classification, n.type, n.value]
31
24
  );
32
- useEffect(() => {
33
- setShowEnrichMenu(show);
34
- }, [show]);
35
- return /* @__PURE__ */ jsxs(Fragment, { children: [
36
- size === "small" ? /* @__PURE__ */ jsx(Tooltip, { ref: enrichEl, title: t("enrich"), children: /* @__PURE__ */ jsx("span", { style: { alignSelf: "center" }, children: /* @__PURE__ */ jsx(
37
- IconButton,
25
+ return F(() => {
26
+ o(t);
27
+ }, [t]), /* @__PURE__ */ y(C, { children: [
28
+ b === "small" ? /* @__PURE__ */ e(S, { ref: l, title: s("enrich"), children: /* @__PURE__ */ e("span", { style: { alignSelf: "center" }, children: /* @__PURE__ */ e(
29
+ E,
38
30
  {
39
- onClick: () => setShowEnrichMenu(true),
40
- disabled: Object.keys(availableSources).length < 1 || loading,
31
+ onClick: () => o(!0),
32
+ disabled: Object.keys(a).length < 1 || r,
41
33
  color: "info",
42
- children: loading ? /* @__PURE__ */ jsx(CircularProgress, { color: "info", size: "24px" }) : /* @__PURE__ */ jsx(Iconified, { icon: "ic:baseline-auto-fix-high" })
34
+ children: r ? /* @__PURE__ */ e(f, { color: "info", size: "24px" }) : /* @__PURE__ */ e(g, { icon: "ic:baseline-auto-fix-high" })
43
35
  }
44
- ) }) }) : /* @__PURE__ */ jsx(
45
- Button,
36
+ ) }) }) : /* @__PURE__ */ e(
37
+ z,
46
38
  {
47
- ref: enrichEl,
39
+ ref: l,
48
40
  variant: "outlined",
49
41
  color: "info",
50
- disabled: Object.keys(availableSources).length < 1 || loading,
51
- startIcon: loading ? /* @__PURE__ */ jsx(CircularProgress, { color: "info", size: "20px" }) : /* @__PURE__ */ jsx(Iconified, { icon: "ic:baseline-auto-fix-high" }),
42
+ disabled: Object.keys(a).length < 1 || r,
43
+ startIcon: r ? /* @__PURE__ */ e(f, { color: "info", size: "20px" }) : /* @__PURE__ */ e(g, { icon: "ic:baseline-auto-fix-high" }),
52
44
  sx: { alignSelf: "stretch" },
53
- onClick: () => setShowEnrichMenu(true),
54
- children: t("enrich")
45
+ onClick: () => o(!0),
46
+ children: s("enrich")
55
47
  }
56
48
  ),
57
- /* @__PURE__ */ jsx(
58
- Popover,
49
+ /* @__PURE__ */ e(
50
+ I,
59
51
  {
60
52
  sx: { zIndex: 2e3 },
61
- open: showEnrichMenu,
62
- disablePortal: true,
63
- onClose: () => setShowEnrichMenu(false),
64
- anchorEl: enrichEl.current,
53
+ open: x,
54
+ disablePortal: !0,
55
+ onClose: () => o(!1),
56
+ anchorEl: l.current,
65
57
  anchorOrigin: { horizontal: "left", vertical: "bottom" },
66
- children: /* @__PURE__ */ jsx(Paper, { onClick: () => setShowEnrichMenu(false), children: /* @__PURE__ */ jsx(Stack, { divider: /* @__PURE__ */ jsx(Divider, { flexItem: true, orientation: "horizontal" }), children: availableSources.map((_source) => /* @__PURE__ */ jsx(
67
- Box,
58
+ children: /* @__PURE__ */ e(j, { onClick: () => o(!1), children: /* @__PURE__ */ e(c, { divider: /* @__PURE__ */ e(O, { flexItem: !0, orientation: "horizontal" }), children: a.map((i) => /* @__PURE__ */ e(
59
+ P,
68
60
  {
69
61
  sx: {
70
62
  px: 3,
71
63
  py: 1,
72
64
  cursor: "pointer",
73
- transition: theme.transitions.create("background-color"),
74
- "&:hover": { backgroundColor: theme.palette.background.default }
65
+ transition: h.transitions.create("background-color"),
66
+ "&:hover": { backgroundColor: h.palette.background.default }
75
67
  },
76
- onClick: () => enrich(_source),
77
- children: /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(Stack, { direction: "row", spacing: 1, alignItems: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "body1", children: _source.split("-").map(capitalize).join(" ") }) }) })
68
+ onClick: () => v(i),
69
+ children: /* @__PURE__ */ e(c, { children: /* @__PURE__ */ e(c, { direction: "row", spacing: 1, alignItems: "center", children: /* @__PURE__ */ e(B, { variant: "body1", children: i.split("-").map(w).join(" ") }) }) })
78
70
  },
79
- _source
71
+ i
80
72
  )) }) })
81
73
  }
82
74
  )
83
75
  ] });
84
76
  };
85
77
  export {
86
- EnrichPopover as default
78
+ H as default
87
79
  };
@@ -1,141 +1,104 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { I as Icon } from "../../iconify-CXMreGTg.js";
3
- import { useTheme, Skeleton, Chip, Tooltip, Stack, Typography, LinearProgress, Paper, Box, IconButton } from "@mui/material";
4
- import { F as FlexOne } from "../../FlexOne-BSYAhhtG.js";
5
- import Iconified from "../display/icons/Iconified.js";
6
- import { J as JSONViewer } from "../../index-JcKyZeoY.js";
7
- import { ClueComponentContext } from "../../hooks/ClueComponentContext.js";
8
- import { c as useClueFetcherSelector } from "../../ActionForm-uDp92tN2.js";
9
- import React__default, { useState, useRef, useMemo, useEffect, memo } from "react";
10
- import { u as useContextSelector } from "../../index-AMfoEg_6.js";
11
- import Graph from "../display/graph/index.js";
12
- import Markdown from "../display/markdown/index.js";
13
- import PreviewModal from "./PreviewModal.js";
14
- import StatusChip from "./StatusChip.js";
15
- const Fetcher = React__default.memo(
1
+ import { jsx as i, jsxs as m } from "react/jsx-runtime";
2
+ import { I as H } from "../../iconify-BBckr5AQ.js";
3
+ import { useTheme as V, Skeleton as I, Chip as q, Tooltip as J, Stack as u, Typography as K, LinearProgress as Q, Paper as U, Box as X, IconButton as Y } from "@mui/material";
4
+ import { F as L } from "../../FlexOne-BXWFOd1T.js";
5
+ import S from "../display/icons/Iconified.js";
6
+ import { J as Z } from "../../index-BK-zfYhR.js";
7
+ import { ClueComponentContext as $ } from "../../hooks/ClueComponentContext.js";
8
+ import { c as h } from "../../ActionForm-DlOXqMUx.js";
9
+ import p, { useState as b, useRef as k, useMemo as P, useEffect as N, memo as ee } from "react";
10
+ import { u as ie } from "../../index-Dj5C04IX.js";
11
+ import ne from "../display/graph/index.js";
12
+ import te from "../display/markdown/index.js";
13
+ import re from "./PreviewModal.js";
14
+ import oe from "./StatusChip.js";
15
+ const ae = p.memo(
16
16
  ({
17
- type,
18
- value,
19
- classification,
20
- fetcherId,
17
+ type: s,
18
+ value: x,
19
+ classification: g,
20
+ fetcherId: a,
21
21
  slotProps: {
22
- paper: paperProps = {},
23
- preview: previewProps = {},
24
- stack: stackProps = {},
25
- image: imageProps = {},
26
- chip: chipProps = {},
27
- skeleton: skeletonProps = {}
22
+ paper: r = {},
23
+ preview: O = {},
24
+ stack: o = {},
25
+ image: W = {},
26
+ chip: v = {},
27
+ skeleton: t = {}
28
28
  } = {}
29
29
  }) => {
30
- var _a, _b, _c, _d;
31
- const theme = useTheme();
32
- const fetchers = useClueFetcherSelector((ctx) => ctx.fetchers);
33
- const fetchSelector = useClueFetcherSelector((ctx) => ctx.fetchSelector);
34
- const getFetcherStatus = useClueFetcherSelector((ctx) => ctx.getFetcherStatus);
35
- const fetchCompleted = useClueFetcherSelector((ctx) => ctx.fetchCompleted);
36
- const { t } = useContextSelector(ClueComponentContext, (ctx) => ctx == null ? void 0 : ctx.i18next);
37
- const [result, setResult] = useState(null);
38
- const [loading, setLoading] = useState(true);
39
- const [showPreview, setShowPreview] = useState(false);
40
- const timeoutRef = useRef(null);
41
- const taskId = useMemo(() => result == null ? void 0 : result.task_id, [result == null ? void 0 : result.task_id]);
42
- useEffect(() => {
43
- if ((result == null ? void 0 : result.outcome) !== "pending" || !taskId) return;
44
- let cancelled = false;
45
- const poll = async () => {
46
- const res = await getFetcherStatus(fetcherId, taskId);
47
- if (!res) {
48
- setResult({ outcome: "failure", done: true, error: "Missing result", link: "" });
49
- } else if (res.outcome === "success" || res.outcome === "failure") {
50
- setResult({ ...res, done: true });
51
- } else {
52
- if (cancelled) return;
53
- setResult({ ...res });
54
- timeoutRef.current = setTimeout(poll, 2e3);
30
+ var z, M, T, j;
31
+ const d = V(), w = h((n) => n.fetchers), F = h((n) => n.fetchSelector), R = h((n) => n.getFetcherStatus), D = h((n) => n.fetchCompleted), { t: c } = ie($, (n) => n == null ? void 0 : n.i18next), [e, f] = b(null), [E, A] = b(!0), [G, _] = b(!1), y = k(null), C = P(() => e == null ? void 0 : e.task_id, [e == null ? void 0 : e.task_id]);
32
+ if (N(() => {
33
+ if ((e == null ? void 0 : e.outcome) !== "pending" || !C) return;
34
+ let n = !1;
35
+ const B = async () => {
36
+ const l = await R(a, C);
37
+ if (!l)
38
+ f({ outcome: "failure", done: !0, error: "Missing result", link: "" });
39
+ else if (l.outcome === "success" || l.outcome === "failure")
40
+ f({ ...l, done: !0 });
41
+ else {
42
+ if (n) return;
43
+ f({ ...l }), y.current = setTimeout(B, 2e3);
55
44
  }
56
45
  };
57
- poll();
58
- return () => {
59
- cancelled = true;
60
- if (timeoutRef.current) clearTimeout(timeoutRef.current);
46
+ return B(), () => {
47
+ n = !0, y.current && clearTimeout(y.current);
61
48
  };
62
- }, [fetcherId, getFetcherStatus, result == null ? void 0 : result.outcome, taskId]);
63
- useEffect(() => {
49
+ }, [a, R, e == null ? void 0 : e.outcome, C]), N(() => {
64
50
  (async () => {
65
51
  try {
66
- setLoading(true);
67
- setResult(await fetchSelector(fetcherId, { type, value, classification }));
52
+ A(!0), f(await F(a, { type: s, value: x, classification: g }));
68
53
  } finally {
69
- setLoading(false);
54
+ A(!1);
70
55
  }
71
56
  })();
72
- }, [classification, fetchSelector, fetcherId, type, value]);
73
- if (fetchCompleted) {
74
- if (!fetcherId) {
75
- console.warn("Missing fetcher Id. Component will not render.");
76
- return null;
77
- } else if (!fetcherId.includes(".")) {
78
- console.warn(
57
+ }, [g, F, a, s, x]), D)
58
+ if (a)
59
+ if (a.includes(".")) {
60
+ if (!(a in w))
61
+ return console.warn("Fetcher ID does not correspond to a registered fetcher. Component will not render."), null;
62
+ } else return console.warn(
79
63
  "Invalid fetcher id. Must be in the format '<plugin_id>.<fetcher_id>'. Component will not render."
80
- );
81
- return null;
82
- } else if (!(fetcherId in fetchers)) {
83
- console.warn("Fetcher ID does not correspond to a registered fetcher. Component will not render.");
84
- return null;
85
- }
86
- } else {
64
+ ), null;
65
+ else return console.warn("Missing fetcher Id. Component will not render."), null;
66
+ else
87
67
  return null;
88
- }
89
- if (loading) {
90
- if (((_a = fetchers[fetcherId]) == null ? void 0 : _a.format) === "status") {
91
- return /* @__PURE__ */ jsx(
92
- Skeleton,
93
- {
94
- variant: "rounded",
95
- height: "32px",
96
- width: "150px",
97
- ...skeletonProps,
98
- sx: [
99
- { borderRadius: "16px" },
100
- ...Array.isArray(skeletonProps == null ? void 0 : skeletonProps.sx) ? skeletonProps == null ? void 0 : skeletonProps.sx : [skeletonProps == null ? void 0 : skeletonProps.sx]
101
- ]
102
- }
103
- );
104
- } else {
105
- return /* @__PURE__ */ jsx(Skeleton, { variant: "rounded", height: "325px", width: "300px", ...skeletonProps });
68
+ return E ? ((z = w[a]) == null ? void 0 : z.format) === "status" ? /* @__PURE__ */ i(
69
+ I,
70
+ {
71
+ variant: "rounded",
72
+ height: "32px",
73
+ width: "150px",
74
+ ...t,
75
+ sx: [
76
+ { borderRadius: "16px" },
77
+ ...Array.isArray(t == null ? void 0 : t.sx) ? t == null ? void 0 : t.sx : [t == null ? void 0 : t.sx]
78
+ ]
106
79
  }
107
- }
108
- if ((result == null ? void 0 : result.outcome) === "failure" && fetchers[fetcherId].format === "status") {
109
- return /* @__PURE__ */ jsx(
110
- Chip,
80
+ ) : /* @__PURE__ */ i(I, { variant: "rounded", height: "325px", width: "300px", ...t }) : (e == null ? void 0 : e.outcome) === "failure" && w[a].format === "status" ? /* @__PURE__ */ i(
81
+ q,
82
+ {
83
+ icon: /* @__PURE__ */ i(J, { title: e.error, children: /* @__PURE__ */ i(H, { icon: "mdi:information-outline", fontSize: "1.25rem" }) }),
84
+ label: c("error"),
85
+ color: "error",
86
+ ...v
87
+ }
88
+ ) : e.outcome === "pending" ? /* @__PURE__ */ m(u, { flex: 1, sx: { pt: 2, alignItems: "center" }, spacing: 1, children: [
89
+ ((M = e.data) == null ? void 0 : M.summary) && /* @__PURE__ */ i(K, { variant: "caption", children: e.data.summary }),
90
+ /* @__PURE__ */ i(
91
+ Q,
111
92
  {
112
- icon: /* @__PURE__ */ jsx(Tooltip, { title: result.error, children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:information-outline", fontSize: "1.25rem" }) }),
113
- label: t("error"),
114
- color: "error",
115
- ...chipProps
93
+ variant: (T = e.data) != null && T.progress ? "determinate" : "indeterminate",
94
+ value: ((j = e.data) == null ? void 0 : j.progress) * 100,
95
+ sx: { maxWidth: 500, width: "100%", borderRadius: d.shape.borderRadius }
116
96
  }
117
- );
118
- }
119
- if (result.outcome === "pending") {
120
- return /* @__PURE__ */ jsxs(Stack, { flex: 1, sx: { pt: 2, alignItems: "center" }, spacing: 1, children: [
121
- ((_b = result.data) == null ? void 0 : _b.summary) && /* @__PURE__ */ jsx(Typography, { variant: "caption", children: result.data.summary }),
122
- /* @__PURE__ */ jsx(
123
- LinearProgress,
124
- {
125
- variant: ((_c = result.data) == null ? void 0 : _c.progress) ? "determinate" : "indeterminate",
126
- value: ((_d = result.data) == null ? void 0 : _d.progress) * 100,
127
- sx: { maxWidth: 500, width: "100%", borderRadius: theme.shape.borderRadius }
128
- }
129
- )
130
- ] });
131
- }
132
- if ((result == null ? void 0 : result.format) === "status") {
133
- return /* @__PURE__ */ jsx(StatusChip, { data: result.data, ...chipProps });
134
- }
135
- return /* @__PURE__ */ jsx(
136
- Paper,
97
+ )
98
+ ] }) : (e == null ? void 0 : e.format) === "status" ? /* @__PURE__ */ i(oe, { data: e.data, ...v }) : /* @__PURE__ */ i(
99
+ U,
137
100
  {
138
- ...paperProps,
101
+ ...r,
139
102
  sx: [
140
103
  {
141
104
  p: 1,
@@ -144,16 +107,16 @@ const Fetcher = React__default.memo(
144
107
  width: "100%",
145
108
  minWidth: "300px"
146
109
  },
147
- ...Array.isArray(paperProps == null ? void 0 : paperProps.sx) ? paperProps == null ? void 0 : paperProps.sx : [paperProps == null ? void 0 : paperProps.sx]
110
+ ...Array.isArray(r == null ? void 0 : r.sx) ? r == null ? void 0 : r.sx : [r == null ? void 0 : r.sx]
148
111
  ],
149
- children: /* @__PURE__ */ jsxs(
150
- Stack,
112
+ children: /* @__PURE__ */ m(
113
+ u,
151
114
  {
152
115
  sx: {
153
116
  "& > img": {
154
117
  borderRadius: "3px",
155
118
  cursor: "zoom-in",
156
- transition: theme.transitions.create("border-color", { duration: theme.transitions.duration.shortest }),
119
+ transition: d.transitions.create("border-color", { duration: d.transitions.duration.shortest }),
157
120
  border: "3px solid transparent",
158
121
  "&:hover": {
159
122
  borderColor: "primary.main"
@@ -161,65 +124,64 @@ const Fetcher = React__default.memo(
161
124
  }
162
125
  },
163
126
  children: [
164
- (result == null ? void 0 : result.outcome) === "failure" && /* @__PURE__ */ jsx("code", { style: { color: theme.palette.error.main }, children: /* @__PURE__ */ jsx("pre", { style: { marginTop: 0, marginBottom: 0 }, children: result.error }) }),
165
- (result == null ? void 0 : result.format) === "markdown" && /* @__PURE__ */ jsx(Markdown, { md: result.data }),
166
- (result == null ? void 0 : result.format) === "image" && /* @__PURE__ */ jsx("img", { src: result.data.image, alt: result.data.alt, ...imageProps, onClick: () => setShowPreview(true) }),
167
- (result == null ? void 0 : result.format) === "json" && /* @__PURE__ */ jsx(Box, { sx: { ".react-json-view": { backgroundColor: "transparent !important" } }, children: /* @__PURE__ */ jsx(JSONViewer, { data: result.data }) }),
168
- (result == null ? void 0 : result.format) === "graph" && /* @__PURE__ */ jsx(Graph, { graph: result.data, sx: { minHeight: "600px" } }),
169
- /* @__PURE__ */ jsx(FlexOne, {}),
170
- /* @__PURE__ */ jsxs(
171
- Stack,
127
+ (e == null ? void 0 : e.outcome) === "failure" && /* @__PURE__ */ i("code", { style: { color: d.palette.error.main }, children: /* @__PURE__ */ i("pre", { style: { marginTop: 0, marginBottom: 0 }, children: e.error }) }),
128
+ (e == null ? void 0 : e.format) === "markdown" && /* @__PURE__ */ i(te, { md: e.data }),
129
+ (e == null ? void 0 : e.format) === "image" && /* @__PURE__ */ i("img", { src: e.data.image, alt: e.data.alt, ...W, onClick: () => _(!0) }),
130
+ (e == null ? void 0 : e.format) === "json" && /* @__PURE__ */ i(X, { sx: { ".react-json-view": { backgroundColor: "transparent !important" } }, children: /* @__PURE__ */ i(Z, { data: e.data }) }),
131
+ (e == null ? void 0 : e.format) === "graph" && /* @__PURE__ */ i(ne, { graph: e.data, sx: { minHeight: "600px" } }),
132
+ /* @__PURE__ */ i(L, {}),
133
+ /* @__PURE__ */ m(
134
+ u,
172
135
  {
173
136
  direction: "row",
174
137
  spacing: 1,
175
- ...stackProps,
138
+ ...o,
176
139
  sx: [
177
140
  {
178
- py: theme.spacing(0.5),
141
+ py: d.spacing(0.5),
179
142
  display: "flex",
180
143
  alignItems: "center"
181
144
  },
182
- ...Array.isArray(stackProps == null ? void 0 : stackProps.sx) ? stackProps == null ? void 0 : stackProps.sx : [stackProps == null ? void 0 : stackProps.sx]
145
+ ...Array.isArray(o == null ? void 0 : o.sx) ? o == null ? void 0 : o.sx : [o == null ? void 0 : o.sx]
183
146
  ],
184
147
  children: [
185
- /* @__PURE__ */ jsx(Iconified, { icon: "ic:baseline-landscape", color: "primary", fontSize: "small" }),
186
- /* @__PURE__ */ jsx(
187
- Tooltip,
148
+ /* @__PURE__ */ i(S, { icon: "ic:baseline-landscape", color: "primary", fontSize: "small" }),
149
+ /* @__PURE__ */ i(
150
+ J,
188
151
  {
189
- title: /* @__PURE__ */ jsxs(Stack, { spacing: 0.5, children: [
190
- /* @__PURE__ */ jsxs("span", { children: [
191
- t("type"),
152
+ title: /* @__PURE__ */ m(u, { spacing: 0.5, children: [
153
+ /* @__PURE__ */ m("span", { children: [
154
+ c("type"),
192
155
  ": ",
193
- type
156
+ s
194
157
  ] }),
195
- /* @__PURE__ */ jsxs("span", { children: [
196
- t("value"),
158
+ /* @__PURE__ */ m("span", { children: [
159
+ c("value"),
197
160
  ": ",
198
- value
161
+ x
199
162
  ] }),
200
- /* @__PURE__ */ jsxs("span", { children: [
201
- t("classification"),
163
+ /* @__PURE__ */ m("span", { children: [
164
+ c("classification"),
202
165
  ": ",
203
- classification ?? "N/A"
166
+ g ?? "N/A"
204
167
  ] })
205
168
  ] }),
206
- children: /* @__PURE__ */ jsx(Iconified, { icon: "ic:outline-info", fontSize: "small" })
169
+ children: /* @__PURE__ */ i(S, { icon: "ic:outline-info", fontSize: "small" })
207
170
  }
208
171
  ),
209
- /* @__PURE__ */ jsx(FlexOne, {}),
210
- (result == null ? void 0 : result.link) && /* @__PURE__ */ jsx(IconButton, { size: "small", component: "a", href: result.link, children: /* @__PURE__ */ jsx(Iconified, { icon: "ic:baseline-open-in-new", fontSize: "small" }) })
172
+ /* @__PURE__ */ i(L, {}),
173
+ (e == null ? void 0 : e.link) && /* @__PURE__ */ i(Y, { size: "small", component: "a", href: e.link, children: /* @__PURE__ */ i(S, { icon: "ic:baseline-open-in-new", fontSize: "small" }) })
211
174
  ]
212
175
  }
213
176
  ),
214
- /* @__PURE__ */ jsx(PreviewModal, { ...previewProps, open: showPreview, result, onClose: () => setShowPreview(false) })
177
+ /* @__PURE__ */ i(re, { ...O, open: G, result: e, onClose: () => _(!1) })
215
178
  ]
216
179
  }
217
180
  )
218
181
  }
219
182
  );
220
183
  }
221
- );
222
- const Fetcher_default = memo(Fetcher);
184
+ ), be = ee(ae);
223
185
  export {
224
- Fetcher_default as default
186
+ be as default
225
187
  };
@@ -1,22 +1,19 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Modal, Paper } from "@mui/material";
3
- import { memo } from "react";
4
- const PreviewModal = ({ result, onClose, open = false, ...otherProps }) => {
5
- return /* @__PURE__ */ jsx(
6
- Modal,
7
- {
8
- open,
9
- sx: [
10
- { display: "flex", alignItems: "center", justifyContent: "center" },
11
- ...Array.isArray(otherProps == null ? void 0 : otherProps.sx) ? otherProps == null ? void 0 : otherProps.sx : [otherProps == null ? void 0 : otherProps.sx]
12
- ],
13
- onClose,
14
- ...otherProps,
15
- children: /* @__PURE__ */ jsx(Paper, { sx: { maxHeight: "90%", maxWidth: "90%", p: 2, overflow: "auto" }, children: (result == null ? void 0 : result.format) === "image" && /* @__PURE__ */ jsx("img", { src: result.data.image, alt: result.data.alt, style: { maxWidth: "100%" } }) })
16
- }
17
- );
18
- };
19
- const PreviewModal$1 = memo(PreviewModal);
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { Modal as n, Paper as f } from "@mui/material";
3
+ import { memo as l } from "react";
4
+ const c = ({ result: i, onClose: d, open: x = !1, ...a }) => /* @__PURE__ */ m(
5
+ n,
6
+ {
7
+ open: x,
8
+ sx: [
9
+ { display: "flex", alignItems: "center", justifyContent: "center" },
10
+ ...Array.isArray(a == null ? void 0 : a.sx) ? a == null ? void 0 : a.sx : [a == null ? void 0 : a.sx]
11
+ ],
12
+ onClose: d,
13
+ ...a,
14
+ children: /* @__PURE__ */ m(f, { sx: { maxHeight: "90%", maxWidth: "90%", p: 2, overflow: "auto" }, children: (i == null ? void 0 : i.format) === "image" && /* @__PURE__ */ m("img", { src: i.data.image, alt: i.data.alt, style: { maxWidth: "100%" } }) })
15
+ }
16
+ ), t = l(c);
20
17
  export {
21
- PreviewModal$1 as default
18
+ t as default
22
19
  };
@@ -1,29 +1,25 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { I as Icon } from "../../iconify-CXMreGTg.js";
3
- import { useTheme, Chip } from "@mui/material";
4
- import { ClueComponentContext } from "../../hooks/ClueComponentContext.js";
5
- import { u as useContextSelector } from "../../index-AMfoEg_6.js";
6
- const StatusChip = ({ data, ...chipProps }) => {
7
- var _a;
8
- const theme = useTheme();
9
- const { i18n, t } = useContextSelector(ClueComponentContext, (ctx) => ctx.i18next);
10
- if (data == null ? void 0 : data.empty) {
11
- return null;
12
- }
13
- return /* @__PURE__ */ jsx(
14
- Chip,
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { I as r } from "../../iconify-BBckr5AQ.js";
3
+ import { useTheme as i, Chip as x } from "@mui/material";
4
+ import { ClueComponentContext as g } from "../../hooks/ClueComponentContext.js";
5
+ import { u as C } from "../../index-Dj5C04IX.js";
6
+ const S = ({ data: e, ...n }) => {
7
+ var t;
8
+ const m = i(), { i18n: f, t: u } = C(g, (o) => o.i18next);
9
+ return e != null && e.empty ? null : /* @__PURE__ */ l(
10
+ x,
15
11
  {
16
- icon: data.icon && /* @__PURE__ */ jsx(Icon, { icon: data.icon, fontSize: "1.25rem" }),
17
- deleteIcon: /* @__PURE__ */ jsx("a", { href: data.link, rel: "noreferrer", target: "_blank", style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:open-in-new", color: theme.palette.text.primary, fontSize: "1.25rem" }) }),
18
- ...chipProps,
19
- label: ((_a = data.labels.find((label) => label.language === i18n.language) ?? data.labels[0]) == null ? void 0 : _a.label) ?? t("unknown"),
12
+ icon: e.icon && /* @__PURE__ */ l(r, { icon: e.icon, fontSize: "1.25rem" }),
13
+ deleteIcon: /* @__PURE__ */ l("a", { href: e.link, rel: "noreferrer", target: "_blank", style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ l(r, { icon: "mdi:open-in-new", color: m.palette.text.primary, fontSize: "1.25rem" }) }),
14
+ ...n,
15
+ label: ((t = e.labels.find((o) => o.language === f.language) ?? e.labels[0]) == null ? void 0 : t.label) ?? u("unknown"),
20
16
  sx: [
21
- ...Array.isArray(chipProps == null ? void 0 : chipProps.sx) ? chipProps == null ? void 0 : chipProps.sx : [chipProps == null ? void 0 : chipProps.sx],
22
- data.color && { backgroundColor: data.color }
17
+ ...Array.isArray(n == null ? void 0 : n.sx) ? n == null ? void 0 : n.sx : [n == null ? void 0 : n.sx],
18
+ e.color && { backgroundColor: e.color }
23
19
  ]
24
20
  }
25
21
  );
26
22
  };
27
23
  export {
28
- StatusChip as default
24
+ S as default
29
25
  };
@@ -1,15 +1,13 @@
1
- import { ClueGroupContext } from "../../hooks/ClueGroupContext.js";
2
- import { i as isEqual } from "../../utils-HmNPuoDB.js";
3
- import { memo, useEffect } from "react";
4
- import { u as useContextSelector } from "../../index-AMfoEg_6.js";
5
- const Entry = ({ children, entry, selected = false }) => {
6
- const setValues = useContextSelector(ClueGroupContext, (ctx) => ctx == null ? void 0 : ctx.setValues);
7
- useEffect(() => {
8
- setValues == null ? void 0 : setValues((_values) => [..._values.filter((value) => !isEqual(value, entry)), ...selected ? [entry] : []]);
9
- }, [entry, selected, setValues]);
10
- return children;
11
- };
12
- const Entry_default = memo(Entry);
1
+ import { ClueGroupContext as s } from "../../hooks/ClueGroupContext.js";
2
+ import { i as u } from "../../utils-DmwSUrum.js";
3
+ import { memo as a, useEffect as i } from "react";
4
+ import { u as l } from "../../index-Dj5C04IX.js";
5
+ const n = ({ children: f, entry: t, selected: e = !1 }) => {
6
+ const r = l(s, (o) => o == null ? void 0 : o.setValues);
7
+ return i(() => {
8
+ r == null || r((o) => [...o.filter((m) => !u(m, t)), ...e ? [t] : []]);
9
+ }, [t, e, r]), f;
10
+ }, q = a(n);
13
11
  export {
14
- Entry_default as default
12
+ q as default
15
13
  };
@@ -1,15 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Stack } from "@mui/material";
3
- import { ClueGroupProvider } from "../../hooks/ClueGroupContext.js";
4
- import { memo } from "react";
5
- import GroupControl from "./GroupControl.js";
6
- const Group = ({ children, showHeader = true, slotProps, ...groupProps }) => {
7
- return /* @__PURE__ */ jsx(ClueGroupProvider, { ...groupProps, children: showHeader ? /* @__PURE__ */ jsxs(Stack, { direction: "column", alignSelf: "stretch", ...(slotProps == null ? void 0 : slotProps.stack) ?? {}, children: [
8
- /* @__PURE__ */ jsx(GroupControl, {}),
9
- children
10
- ] }) : children });
11
- };
12
- const Group_default = memo(Group);
1
+ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
+ import { Stack as u } from "@mui/material";
3
+ import { ClueGroupProvider as c } from "../../hooks/ClueGroupContext.js";
4
+ import { memo as f } from "react";
5
+ import n from "./GroupControl.js";
6
+ const a = ({ children: o, showHeader: m = !0, slotProps: r, ...e }) => /* @__PURE__ */ t(c, { ...e, children: m ? /* @__PURE__ */ i(u, { direction: "column", alignSelf: "stretch", ...(r == null ? void 0 : r.stack) ?? {}, children: [
7
+ /* @__PURE__ */ t(n, {}),
8
+ o
9
+ ] }) : o }), h = f(a);
13
10
  export {
14
- Group_default as default
11
+ h as default
15
12
  };