@cccsaurora/clue-ui 1.3.0-dev.285 → 1.3.0-dev.300

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 (41) hide show
  1. package/{ActionForm-Cdo8jBDU.js → ActionForm-S-Vec5j2.js} +42 -13
  2. package/{AnnotationDetails-CUU61Vwl.js → AnnotationDetails-BB9iqWq5.js} +1 -1
  3. package/{AnnotationPreview-WuxXgLCE.js → AnnotationPreview-CnsBCc8B.js} +1 -1
  4. package/components/AnnotationDetailPopover.js +1 -1
  5. package/components/AnnotationDetails.js +2 -2
  6. package/components/AnnotationPreview.js +1 -1
  7. package/components/EnrichedCard.js +1 -1
  8. package/components/EnrichedChip.js +2 -2
  9. package/components/EnrichedTypography.js +2 -2
  10. package/components/RetryFailedEnrichments.js +1 -1
  11. package/components/SourcePicker.js +1 -1
  12. package/components/actions/ActionForm.js +1 -1
  13. package/components/actions/ExecutePopover.js +1 -1
  14. package/components/actions/ResultModal.js +1 -1
  15. package/components/enrichment/EnrichPopover.js +1 -1
  16. package/components/fetchers/Fetcher.js +2 -2
  17. package/components/group/GroupControl.js +1 -1
  18. package/components/stats/QueryStatus.js +1 -1
  19. package/en/translation.json +1 -1
  20. package/fr/translation.json +1 -1
  21. package/hooks/ClueActionContext.d.ts +10 -2
  22. package/hooks/ClueActionContext.js +1 -1
  23. package/hooks/ClueGroupContext.js +1 -1
  24. package/hooks/CluePopupContext.js +2 -2
  25. package/hooks/ClueProvider.js +2 -2
  26. package/hooks/selectors.js +1 -1
  27. package/hooks/useActionResult.d.ts +2 -0
  28. package/hooks/useActionResult.js +3 -1
  29. package/hooks/useAnnotations.js +1 -1
  30. package/hooks/useClueActions.js +1 -1
  31. package/hooks/useErrors.js +1 -1
  32. package/hooks/useFetcherResult.d.ts +2 -0
  33. package/hooks/useFetcherResult.js +1 -1
  34. package/icons/Action.js +2 -2
  35. package/icons/Assessment.js +1 -1
  36. package/icons/Context.js +1 -1
  37. package/icons/Opinion.js +1 -1
  38. package/main.js +3 -3
  39. package/package.json +17 -17
  40. package/types/RunningActionData.d.ts +1 -0
  41. package/types/WithActionData.d.ts +3 -1
@@ -5432,30 +5432,45 @@ const useClueComponentSelector = (selector) => {
5432
5432
  const useActionResult = (resultWithData, interval = 2e3) => {
5433
5433
  const [result, setResult] = useState(resultWithData);
5434
5434
  const timeoutRef = useRef(null);
5435
+ const { t } = useContextSelector(ClueComponentContext, (ctx) => ctx.i18next);
5435
5436
  const getActionStatus = useClueActionsSelector((ctx) => ctx.getActionStatus);
5436
5437
  const taskId = useMemo(() => resultWithData == null ? void 0 : resultWithData.task_id, [resultWithData == null ? void 0 : resultWithData.task_id]);
5437
5438
  const actionId = useMemo(() => resultWithData == null ? void 0 : resultWithData.actionId, [resultWithData == null ? void 0 : resultWithData.actionId]);
5438
5439
  useEffect(() => {
5439
- if ((resultWithData == null ? void 0 : resultWithData.outcome) !== "pending" || !taskId) return;
5440
+ if ((resultWithData == null ? void 0 : resultWithData.outcome) !== "pending" || !taskId) {
5441
+ return;
5442
+ }
5440
5443
  let cancelled = false;
5441
5444
  const poll = async () => {
5445
+ var _a, _b;
5442
5446
  const res = await getActionStatus(actionId, taskId);
5447
+ if (cancelled) {
5448
+ return;
5449
+ }
5450
+ let _result;
5443
5451
  if (!res) {
5444
- setResult({ outcome: "failure", done: true });
5452
+ _result = { outcome: "failure", summary: t("error.unexpected"), done: true };
5445
5453
  } else if (res.outcome === "success" || res.outcome === "failure") {
5446
- setResult({ ...res, done: true });
5454
+ _result = { ...res, done: true };
5455
+ } else {
5456
+ _result = res;
5457
+ }
5458
+ setResult(_result);
5459
+ (_a = resultWithData == null ? void 0 : resultWithData.onUpdate) == null ? void 0 : _a.call(resultWithData, { ...resultWithData, ..._result });
5460
+ if (_result.done) {
5461
+ (_b = resultWithData == null ? void 0 : resultWithData.onComplete) == null ? void 0 : _b.call(resultWithData, { ...resultWithData, ..._result });
5447
5462
  } else {
5448
- if (cancelled) return;
5449
- setResult({ ...res });
5450
5463
  timeoutRef.current = setTimeout(poll, interval);
5451
5464
  }
5452
5465
  };
5453
5466
  poll();
5454
5467
  return () => {
5455
5468
  cancelled = true;
5456
- if (timeoutRef.current) clearTimeout(timeoutRef.current);
5469
+ if (timeoutRef.current) {
5470
+ clearTimeout(timeoutRef.current);
5471
+ }
5457
5472
  };
5458
- }, [actionId, getActionStatus, interval, resultWithData == null ? void 0 : resultWithData.outcome, taskId]);
5473
+ }, [actionId, getActionStatus, interval, resultWithData, resultWithData == null ? void 0 : resultWithData.outcome, t, taskId]);
5459
5474
  useEffect(() => {
5460
5475
  setResult(resultWithData);
5461
5476
  }, [resultWithData]);
@@ -5551,11 +5566,22 @@ const ClueActionProvider = ({
5551
5566
  );
5552
5567
  const executeAction = useCallback(
5553
5568
  async (actionId, selectors, params, options) => {
5554
- const { forceMenu, onComplete, onCancel, skipMenu, skipResultModal, timeout, includeContext, extraContext } = {
5569
+ const {
5570
+ forceMenu,
5571
+ onComplete,
5572
+ onUpdate,
5573
+ onCancel,
5574
+ skipMenu,
5575
+ skipResultModal,
5576
+ timeout,
5577
+ includeContext,
5578
+ extraContext
5579
+ } = {
5555
5580
  forceMenu: false,
5556
5581
  skipResultModal: false,
5557
5582
  skipMenu: false,
5558
5583
  onComplete: null,
5584
+ onUpdate: null,
5559
5585
  onCancel: null,
5560
5586
  timeout: null,
5561
5587
  includeContext: defaultIncludeContext ?? false,
@@ -5610,6 +5636,7 @@ const ClueActionProvider = ({
5610
5636
  skipResultModal,
5611
5637
  context: context2,
5612
5638
  onComplete,
5639
+ onUpdate,
5613
5640
  onCancel,
5614
5641
  timeout
5615
5642
  });
@@ -5625,7 +5652,10 @@ const ClueActionProvider = ({
5625
5652
  requestConfig()
5626
5653
  );
5627
5654
  const actionResultWithData = { ...actionResult, actionId, action: actionToRun, params: validatedParams };
5628
- onComplete == null ? void 0 : onComplete(actionResultWithData);
5655
+ onUpdate == null ? void 0 : onUpdate(actionResultWithData);
5656
+ if (actionResult.outcome !== "pending") {
5657
+ onComplete == null ? void 0 : onComplete(actionResultWithData);
5658
+ }
5629
5659
  setActionResults((_results) => {
5630
5660
  const keys = selectors.map((value) => getHashKey(value.type, value.value, value.classification));
5631
5661
  return {
@@ -5665,7 +5695,7 @@ const ClueActionProvider = ({
5665
5695
  setRunningActionData(null);
5666
5696
  }
5667
5697
  if (actionResult.outcome === "pending") {
5668
- setLastResult({ ...actionResult, actionId, action: actionToRun });
5698
+ setLastResult({ ...actionResult, actionId, action: actionToRun, onComplete, onUpdate });
5669
5699
  if (!skipResultModal) {
5670
5700
  setShowResultModal(true);
5671
5701
  }
@@ -5697,8 +5727,7 @@ const ClueActionProvider = ({
5697
5727
  const getActionStatus = useCallback(
5698
5728
  async (actionId, taskId) => {
5699
5729
  try {
5700
- const res = await api.actions.status.get(actionId, taskId, {}, requestConfig());
5701
- return res;
5730
+ return await api.actions.status.get(actionId, taskId, {}, requestConfig());
5702
5731
  } catch (e) {
5703
5732
  safeDispatchEvent(
5704
5733
  new CustomEvent(SNACKBAR_EVENT_ID, {
@@ -5717,7 +5746,7 @@ const ClueActionProvider = ({
5717
5746
  (_a = runningActionData == null ? void 0 : runningActionData.onCancel) == null ? void 0 : _a.call(runningActionData);
5718
5747
  setRunningActionData(null);
5719
5748
  setLoading(false);
5720
- }, [runningActionData == null ? void 0 : runningActionData.onCancel]);
5749
+ }, [runningActionData]);
5721
5750
  const getActionResults = useCallback(
5722
5751
  (type2, value, classification) => actionResults[getHashKey(type2, value, classification)] ?? [],
5723
5752
  [actionResults, getHashKey]
@@ -4,7 +4,7 @@ import { useTheme, Stack, Typography, Tooltip, Box, IconButton, CircularProgress
4
4
  import Iconified from "./components/display/icons/Iconified.js";
5
5
  import { SNACKBAR_EVENT_ID } from "./data/event.js";
6
6
  import { ClueComponentContext } from "./hooks/ClueComponentContext.js";
7
- import { b as useClueEnrichSelector } from "./ActionForm-Cdo8jBDU.js";
7
+ import { b as useClueEnrichSelector } from "./ActionForm-S-Vec5j2.js";
8
8
  import useAnnotations from "./hooks/useAnnotations.js";
9
9
  import useErrors from "./hooks/useErrors.js";
10
10
  import { ICON_MAP } from "./icons/iconMap.js";
@@ -8,7 +8,7 @@ import { useState, useRef, useCallback, useEffect, useMemo } from "react";
8
8
  import { c as createContext, u as useContextSelector } from "./index-AMfoEg_6.js";
9
9
  import { SHOW_EVENT_ID, HIDE_EVENT_ID } from "./data/event.js";
10
10
  import { safeDispatchEvent, safeAddEventListener } from "./utils/window.js";
11
- import { i as isNull } from "./AnnotationDetails-CUU61Vwl.js";
11
+ import { i as isNull } from "./AnnotationDetails-BB9iqWq5.js";
12
12
  const CluePopupContext = createContext(null);
13
13
  const CluePopupProvider = ({ children }) => {
14
14
  const [popupType, setPopupType] = useState(null);
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Popover } from "@mui/material";
3
3
  import React__default, { useRef, useState, useEffect } from "react";
4
- import { A as AnnotationDetails } from "../AnnotationDetails-CUU61Vwl.js";
4
+ import { A as AnnotationDetails } from "../AnnotationDetails-BB9iqWq5.js";
5
5
  const AnnotationDetailPopover = React__default.memo(({ anchorEl, enrichRequest, open, onClose, ...otherProps }) => {
6
6
  var _a, _b, _c;
7
7
  const actionRef = useRef();
@@ -4,13 +4,13 @@ import "@mui/material";
4
4
  import "./display/icons/Iconified.js";
5
5
  import "../data/event.js";
6
6
  import "../hooks/ClueComponentContext.js";
7
- import "../ActionForm-Cdo8jBDU.js";
7
+ import "../ActionForm-S-Vec5j2.js";
8
8
  import "../hooks/useAnnotations.js";
9
9
  import "../hooks/useErrors.js";
10
10
  import "../icons/iconMap.js";
11
11
  import "../utils/window.js";
12
12
  import "../groupBy-xqz-n0Vd.js";
13
- import { A } from "../AnnotationDetails-CUU61Vwl.js";
13
+ import { A } from "../AnnotationDetails-BB9iqWq5.js";
14
14
  import "../useClueTypeConfig-DnF4rLsl.js";
15
15
  import "react";
16
16
  import "../index-AMfoEg_6.js";
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../iconify-CXMreGTg.js";
3
3
  import "@mui/material";
4
- import { A } from "../AnnotationPreview-WuxXgLCE.js";
4
+ import { A } from "../AnnotationPreview-CnsBCc8B.js";
5
5
  import "../hooks/useAnnotations.js";
6
6
  import "../utils-HmNPuoDB.js";
7
7
  import "react";
@@ -2,7 +2,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.js";
3
3
  import { useTheme, Card, CardHeader, Stack, CircularProgress, Divider, CardContent, Grid, Chip, Typography, Tooltip, Box } from "@mui/material";
4
4
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
5
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
5
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
6
6
  import useAnnotations from "../hooks/useAnnotations.js";
7
7
  import useErrors from "../hooks/useErrors.js";
8
8
  import AssessmentIcon from "../icons/Assessment.js";
@@ -3,8 +3,8 @@ import { Chip, Tooltip, Box, Stack, CircularProgress } from "@mui/material";
3
3
  import Iconified from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext } from "../hooks/ClueGroupContext.js";
6
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
7
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
6
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
7
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
8
8
  import useAnnotations from "../hooks/useAnnotations.js";
9
9
  import ActionIcon from "../icons/Action.js";
10
10
  import AssessmentIcon from "../icons/Assessment.js";
@@ -3,8 +3,8 @@ import { useTheme, Stack, CircularProgress, Tooltip, IconButton } from "@mui/mat
3
3
  import Iconified from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext } from "../hooks/ClueGroupContext.js";
6
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
7
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
6
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
7
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
8
8
  import useAnnotations from "../hooks/useAnnotations.js";
9
9
  import ActionIcon from "../icons/Action.js";
10
10
  import AssessmentIcon from "../icons/Assessment.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Button } from "@mui/material";
3
3
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
4
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
4
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
5
5
  import { u as useContextSelector } from "../index-AMfoEg_6.js";
6
6
  const RetryFailedEnrichments = () => {
7
7
  const enrichFailedEnrichments = useClueEnrichSelector((ctx) => ctx.enrichFailedEnrichments);
@@ -1,6 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Button, Popover, TextField, Divider, Stack, FormControlLabel, Checkbox } from "@mui/material";
3
- import { d as useClueComponentSelector, b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
3
+ import { d as useClueComponentSelector, b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
4
4
  import { memo, useState, useEffect } from "react";
5
5
  const SourcePicker = () => {
6
6
  const { t } = useClueComponentSelector((ctx) => ctx.i18next);
@@ -5,7 +5,7 @@ import "@mui/material";
5
5
  import "../display/icons/Iconified.js";
6
6
  import "../../index-JcKyZeoY.js";
7
7
  import "../../hooks/ClueComponentContext.js";
8
- import { A } from "../../ActionForm-Cdo8jBDU.js";
8
+ import { A } from "../../ActionForm-S-Vec5j2.js";
9
9
  import "../../utils-HmNPuoDB.js";
10
10
  import "react";
11
11
  import "../../index-AMfoEg_6.js";
@@ -3,7 +3,7 @@ import { I as Icon } from "../../iconify-CXMreGTg.js";
3
3
  import { useTheme, Tooltip, IconButton, CircularProgress, Button, Popover, Paper, Stack, Typography, Box, Divider } from "@mui/material";
4
4
  import Iconified from "../display/icons/Iconified.js";
5
5
  import { ClueComponentContext } from "../../hooks/ClueComponentContext.js";
6
- import { a as useClueActionsSelector } from "../../ActionForm-Cdo8jBDU.js";
6
+ import { a as useClueActionsSelector } from "../../ActionForm-S-Vec5j2.js";
7
7
  import useClueConfig from "../../hooks/useClueConfig.js";
8
8
  import { isAccessible } from "../../utils/classificationParser.js";
9
9
  import { useState, useRef, useMemo, useEffect } from "react";
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "../../iconify-CXMreGTg.js";
3
3
  import "@mui/material";
4
4
  import "../../hooks/ClueComponentContext.js";
5
- import { R } from "../../ActionForm-Cdo8jBDU.js";
5
+ import { R } from "../../ActionForm-S-Vec5j2.js";
6
6
  import "react";
7
7
  import "../../index-AMfoEg_6.js";
8
8
  import "../ClassificationChip.js";
@@ -1,6 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
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-Cdo8jBDU.js";
3
+ import { d as useClueComponentSelector, b as useClueEnrichSelector, e as capitalize } from "../../ActionForm-S-Vec5j2.js";
4
4
  import { useState, useRef, useCallback, useEffect } from "react";
5
5
  import Iconified from "../display/icons/Iconified.js";
6
6
  const EnrichPopover = ({ show = false, size = "small", selector }) => {
@@ -5,7 +5,7 @@ import { F as FlexOne } from "../../FlexOne-BSYAhhtG.js";
5
5
  import Iconified from "../display/icons/Iconified.js";
6
6
  import { J as JSONViewer } from "../../index-JcKyZeoY.js";
7
7
  import { ClueComponentContext } from "../../hooks/ClueComponentContext.js";
8
- import { c as useClueFetcherSelector } from "../../ActionForm-Cdo8jBDU.js";
8
+ import { c as useClueFetcherSelector } from "../../ActionForm-S-Vec5j2.js";
9
9
  import React__default, { useState, useRef, useMemo, useEffect, memo } from "react";
10
10
  import { u as useContextSelector } from "../../index-AMfoEg_6.js";
11
11
  import Graph from "../display/graph/index.js";
@@ -66,7 +66,7 @@ const Fetcher = React__default.memo(
66
66
  setLoading(true);
67
67
  setResult(await fetchSelector(fetcherId, { type, value, classification }));
68
68
  } catch {
69
- setResult({ outcome: "failure", done: true, error: t("fetcher.error.unexpected") });
69
+ setResult({ outcome: "failure", done: true, error: t("error.unexpected") });
70
70
  } finally {
71
71
  setLoading(false);
72
72
  }
@@ -4,7 +4,7 @@ import { F as FlexOne } from "../../FlexOne-BSYAhhtG.js";
4
4
  import Iconified from "../display/icons/Iconified.js";
5
5
  import { SNACKBAR_EVENT_ID } from "../../data/event.js";
6
6
  import { ClueGroupContext } from "../../hooks/ClueGroupContext.js";
7
- import { d as useClueComponentSelector, b as useClueEnrichSelector, e as capitalize } from "../../ActionForm-Cdo8jBDU.js";
7
+ import { d as useClueComponentSelector, b as useClueEnrichSelector, e as capitalize } from "../../ActionForm-S-Vec5j2.js";
8
8
  import { safeDispatchEvent } from "../../utils/window.js";
9
9
  import { useState, useMemo, useCallback } from "react";
10
10
  import { u as useContextSelector } from "../../index-AMfoEg_6.js";
@@ -1,7 +1,7 @@
1
1
  import { jsxs } from "react/jsx-runtime";
2
2
  import { Stack, Typography } from "@mui/material";
3
3
  import { ClueDatabaseContext } from "../../hooks/ClueDatabaseContext.js";
4
- import { d as useClueComponentSelector, b as useClueEnrichSelector } from "../../ActionForm-Cdo8jBDU.js";
4
+ import { d as useClueComponentSelector, b as useClueEnrichSelector } from "../../ActionForm-S-Vec5j2.js";
5
5
  import { useContext, useState, useEffect } from "react";
6
6
  const QueryStatus = () => {
7
7
  const { t } = useClueComponentSelector((ctx) => ctx.i18next);
@@ -51,7 +51,7 @@
51
51
  "drawer.mail.trash": "Trash",
52
52
  "enrich": "Enrich",
53
53
  "error": "Error",
54
- "fetcher.error.unexpected": "An unexpected error occurred",
54
+ "error.unexpected": "An unexpected error occurred",
55
55
  "graph.no.dataset": "No dataset has been selected!",
56
56
  "graph.node.input.label": "Enter a node ID, and press [ctrl + enter] to select it. [ctrl + space] will open an autocomplete menu.",
57
57
  "graph.show.more": "show more",
@@ -51,7 +51,7 @@
51
51
  "drawer.mail.trash": "Poubelle",
52
52
  "enrich": "Enrichir",
53
53
  "error": "Erreur",
54
- "fetcher.error.unexpected": "Une erreur inattendue s'est produite",
54
+ "error.unexpected": "Une erreur inattendue s'est produite",
55
55
  "graph.no.dataset": "Aucun jeu de données n'a été sélectionné!",
56
56
  "graph.node.input.label": "Entrez un ID de nœud et appuyez sur [ctrl + entrée] pour le sélectionner. [ctrl + espace] ouvrira un menu d'auto-complétion.",
57
57
  "graph.show.more": "Afficher plus",
@@ -38,13 +38,21 @@ export interface ClueActionContextType {
38
38
  */
39
39
  skipResultModal?: boolean;
40
40
  /**
41
- * Callback for post-execution.
41
+ * Callback for post-execution. Will be called once the action is fully executed and has an outcome of either
42
+ * 'success' or 'failure'.
42
43
  * @param result
43
44
  * @returns The action result
44
45
  */
45
46
  onComplete?: (result: WithActionData<ActionResult>) => void;
46
47
  /**
47
- * Callback for when the action is cancelled
48
+ * Callback for intra-execution. will be called everytime the result recieves an update and has a
49
+ * 'pending', 'success', or 'failure' outcome.
50
+ * @param result
51
+ * @returns The action result
52
+ */
53
+ onUpdate?: (result: WithActionData<ActionResult>) => void;
54
+ /**
55
+ * Callback for when the action is cancelled.
48
56
  * @returns void
49
57
  */
50
58
  onCancel?: () => void;
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@mui/material";
3
- import { g, C } from "../ActionForm-Cdo8jBDU.js";
3
+ import { g, C } from "../ActionForm-S-Vec5j2.js";
4
4
  import "../index-BfslcSud.js";
5
5
  import "../components/display/icons/Iconified.js";
6
6
  import "../components/ErrorBoundary.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useState, useMemo } from "react";
3
3
  import { c as createContext } from "../index-AMfoEg_6.js";
4
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
4
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
5
5
  const ClueGroupContext = createContext(null);
6
6
  const ClueGroupProvider = ({ children, type, classification }) => {
7
7
  const defaultClassification = useClueEnrichSelector((ctx) => ctx.defaultClassification);
@@ -1,9 +1,9 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../components/AnnotationDetailPopover.js";
3
- import { C, a } from "../AnnotationPreview-WuxXgLCE.js";
3
+ import { C, a } from "../AnnotationPreview-CnsBCc8B.js";
4
4
  import "../data/event.js";
5
5
  import "../utils/window.js";
6
- import "../AnnotationDetails-CUU61Vwl.js";
6
+ import "../AnnotationDetails-BB9iqWq5.js";
7
7
  import "react";
8
8
  import "../index-AMfoEg_6.js";
9
9
  export {
@@ -1,11 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { C as ClueActionProvider } from "../ActionForm-Cdo8jBDU.js";
2
+ import { C as ClueActionProvider } from "../ActionForm-S-Vec5j2.js";
3
3
  import { ClueComponentProvider } from "./ClueComponentContext.js";
4
4
  import { ClueConfigProvider } from "./ClueConfigProvider.js";
5
5
  import { ClueDatabaseProvider } from "./ClueDatabaseContext.js";
6
6
  import { a as ClueEnrichProvider } from "../ClueEnrichContext-CZkS1jpb.js";
7
7
  import { ClueFetcherProvider } from "./ClueFetcherContext.js";
8
- import { a as CluePopupProvider } from "../AnnotationPreview-WuxXgLCE.js";
8
+ import { a as CluePopupProvider } from "../AnnotationPreview-CnsBCc8B.js";
9
9
  const ClueProvider = ({ children, ...props }) => {
10
10
  return /* @__PURE__ */ jsx(ClueComponentProvider, { ...props, children: /* @__PURE__ */ jsx(ClueConfigProvider, { config: props.config, children: /* @__PURE__ */ jsx(ClueDatabaseProvider, { ...props, children: /* @__PURE__ */ jsx(ClueEnrichProvider, { ...props, children: /* @__PURE__ */ jsx(ClueFetcherProvider, { ...props, children: /* @__PURE__ */ jsx(ClueActionProvider, { ...props, children: /* @__PURE__ */ jsx(CluePopupProvider, { children }) }) }) }) }) }) });
11
11
  };
@@ -1,4 +1,4 @@
1
- import { a, d, b, c } from "../ActionForm-Cdo8jBDU.js";
1
+ import { a, d, b, c } from "../ActionForm-S-Vec5j2.js";
2
2
  import "./ClueComponentContext.js";
3
3
  import "../ClueEnrichContext-CZkS1jpb.js";
4
4
  import "./ClueFetcherContext.js";
@@ -11,4 +11,6 @@ export declare const useActionResult: (resultWithData: WithActionData<ActionResu
11
11
  task_id?: string;
12
12
  actionId: string;
13
13
  action: import("../types/action").ActionDefinition;
14
+ onUpdate?: (result: WithActionData<ActionResult>) => void;
15
+ onComplete?: (result: WithActionData<ActionResult>) => void;
14
16
  };
@@ -1,5 +1,7 @@
1
1
  import "react";
2
- import { f } from "../ActionForm-Cdo8jBDU.js";
2
+ import "../index-AMfoEg_6.js";
3
+ import "./ClueComponentContext.js";
4
+ import { f } from "../ActionForm-S-Vec5j2.js";
3
5
  export {
4
6
  f as useActionResult
5
7
  };
@@ -1,7 +1,7 @@
1
1
  import { u as uniqBy } from "../ClueEnrichContext-CZkS1jpb.js";
2
2
  import { useContext, useMemo, useState, useEffect } from "react";
3
3
  import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
4
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
4
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
5
5
  const useAnnotations = (type, value, _classification, { skipEnrichment } = { skipEnrichment: false }) => {
6
6
  var _a;
7
7
  const database = useContext(ClueDatabaseContext);
@@ -1,4 +1,4 @@
1
- import { u } from "../ActionForm-Cdo8jBDU.js";
1
+ import { u } from "../ActionForm-S-Vec5j2.js";
2
2
  import "../index-AMfoEg_6.js";
3
3
  export {
4
4
  u as default
@@ -1,6 +1,6 @@
1
1
  import { useContext, useState, useEffect } from "react";
2
2
  import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
3
- import { b as useClueEnrichSelector } from "../ActionForm-Cdo8jBDU.js";
3
+ import { b as useClueEnrichSelector } from "../ActionForm-S-Vec5j2.js";
4
4
  const useErrors = (value) => {
5
5
  const database = useContext(ClueDatabaseContext);
6
6
  const ready = useClueEnrichSelector((ctx) => ctx.ready);
@@ -11,4 +11,6 @@ export declare const useActionResult: (resultWithData: WithActionData<ActionResu
11
11
  task_id?: string;
12
12
  actionId: string;
13
13
  action: import("../types/action").ActionDefinition;
14
+ onUpdate?: (result: WithActionData<ActionResult>) => void;
15
+ onComplete?: (result: WithActionData<ActionResult>) => void;
14
16
  };
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useMemo, useEffect } from "react";
2
- import { u as useClueActions } from "../ActionForm-Cdo8jBDU.js";
2
+ import { u as useClueActions } from "../ActionForm-S-Vec5j2.js";
3
3
  const useActionResult = (resultWithData, interval = 2e3) => {
4
4
  const [result, setResult] = useState(resultWithData);
5
5
  const timeoutRef = useRef(null);
package/icons/Action.js CHANGED
@@ -2,8 +2,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.js";
3
3
  import { useTheme, Stack, Divider, Typography } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
6
- import { u as useClueActions } from "../ActionForm-Cdo8jBDU.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
6
+ import { u as useClueActions } from "../ActionForm-S-Vec5j2.js";
7
7
  import { g as groupBy } from "../groupBy-xqz-n0Vd.js";
8
8
  import { memo, useRef, useMemo, useEffect } from "react";
9
9
  import { u as useContextSelector } from "../index-AMfoEg_6.js";
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.js";
3
3
  import { useTheme, Stack, Chip, Divider, Grid, Tooltip } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
6
6
  import { g as groupBy } from "../groupBy-xqz-n0Vd.js";
7
7
  import { l as last } from "../last-CUCl67Im.js";
8
8
  import { m as maxBy } from "../maxBy-IKHzFrCS.js";
package/icons/Context.js CHANGED
@@ -4,7 +4,7 @@ import { Stack, Divider } from "@mui/material";
4
4
  import AnnotationEntry from "../components/AnnotationEntry.js";
5
5
  import CountBadge from "../components/CountBadge.js";
6
6
  import Iconified from "../components/display/icons/Iconified.js";
7
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
7
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
8
8
  import { g as groupBy } from "../groupBy-xqz-n0Vd.js";
9
9
  import { memo, useRef, useMemo, useEffect } from "react";
10
10
  import { u as useContextSelector } from "../index-AMfoEg_6.js";
package/icons/Opinion.js CHANGED
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.js";
3
3
  import { useTheme, Stack, Chip, Divider, Grid } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-WuxXgLCE.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-CnsBCc8B.js";
6
6
  import { g as groupBy } from "../groupBy-xqz-n0Vd.js";
7
7
  import { s as sortBy } from "../sortBy-DfSj8IoJ.js";
8
8
  import { s as sumBy } from "../sumBy-D-hb_NY-.js";
package/main.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A, u, a, b, c } from "./ActionForm-Cdo8jBDU.js";
1
+ import { A, u, a, b, c } from "./ActionForm-S-Vec5j2.js";
2
2
  import { default as default2 } from "./components/AnnotationDetailPopover.js";
3
- import { A as A2 } from "./AnnotationDetails-CUU61Vwl.js";
3
+ import { A as A2 } from "./AnnotationDetails-BB9iqWq5.js";
4
4
  import { default as default3 } from "./components/AnnotationEntry.js";
5
- import { A as A3, C } from "./AnnotationPreview-WuxXgLCE.js";
5
+ import { A as A3, C } from "./AnnotationPreview-CnsBCc8B.js";
6
6
  import { default as default4 } from "./components/CountBadge.js";
7
7
  import { default as default5 } from "./components/EnrichedCard.js";
8
8
  import { default as default6 } from "./components/EnrichedChip.js";
package/package.json CHANGED
@@ -66,38 +66,35 @@
66
66
  },
67
67
  "type": "module",
68
68
  "types": "main.d.ts",
69
- "version": "1.3.0-dev.285",
69
+ "version": "1.3.0-dev.300",
70
70
  "exports": {
71
71
  ".": "./main.js",
72
72
  "./index.css": "./index.css",
73
73
  "./en/*.json": "./en/*.json",
74
74
  "./fr/*.json": "./fr/*.json",
75
+ "./types/*": "./types/*.js",
75
76
  "./components/*": "./components/*.js",
76
- "./text/*": "./text/*.js",
77
- "./utils/*": "./utils/*.js",
78
- "./utils/*.json": "./utils/*.json",
79
- "./data/*": "./data/*.js",
80
77
  "./database/*": "./database/*.js",
81
78
  "./database": "./database/index.js",
82
- "./types/*": "./types/*.js",
83
- "./hooks/*": "./hooks/*.js",
79
+ "./text/*": "./text/*.js",
80
+ "./data/*": "./data/*.js",
84
81
  "./icons/*": "./icons/*.js",
82
+ "./hooks/*": "./hooks/*.js",
83
+ "./utils/*": "./utils/*.js",
84
+ "./utils/*.json": "./utils/*.json",
85
+ "./components/display/*": "./components/display/*.js",
85
86
  "./components/actions/*": "./components/actions/*.js",
86
- "./components/enrichment/*": "./components/enrichment/*.js",
87
- "./components/group/*": "./components/group/*.js",
88
87
  "./components/fetchers/*": "./components/fetchers/*.js",
89
- "./components/display/*": "./components/display/*.js",
90
88
  "./components/stats/*": "./components/stats/*.js",
91
- "./components/actions/formats/*": "./components/actions/formats/*.js",
92
- "./components/actions/formats": "./components/actions/formats/index.js",
93
- "./components/actions/form/*": "./components/actions/form/*.js",
94
- "./components/display/graph/*": "./components/display/graph/*.js",
95
- "./components/display/graph": "./components/display/graph/index.js",
89
+ "./components/group/*": "./components/group/*.js",
90
+ "./components/enrichment/*": "./components/enrichment/*.js",
96
91
  "./components/display/markdown/*.md": "./components/display/markdown/*.md.js",
97
92
  "./components/display/markdown": "./components/display/markdown/index.js",
98
- "./components/display/icons/*": "./components/display/icons/*.js",
93
+ "./components/display/graph/*": "./components/display/graph/*.js",
94
+ "./components/display/graph": "./components/display/graph/index.js",
99
95
  "./components/display/json/*": "./components/display/json/*.js",
100
96
  "./components/display/json": "./components/display/json/index.js",
97
+ "./components/display/icons/*": "./components/display/icons/*.js",
101
98
  "./components/display/graph/visualizations/*": "./components/display/graph/visualizations/*.js",
102
99
  "./components/display/graph/elements/*": "./components/display/graph/elements/*.js",
103
100
  "./components/display/graph/visualizations/panels/*": "./components/display/graph/visualizations/panels/*.js",
@@ -106,6 +103,9 @@
106
103
  "./components/display/graph/visualizations/tree/*": "./components/display/graph/visualizations/tree/*.js",
107
104
  "./components/display/graph/visualizations/tree": "./components/display/graph/visualizations/tree/index.js",
108
105
  "./components/display/graph/visualizations/icons/*": "./components/display/graph/visualizations/icons/*.js",
109
- "./components/display/graph/visualizations/icons": "./components/display/graph/visualizations/icons/index.js"
106
+ "./components/display/graph/visualizations/icons": "./components/display/graph/visualizations/icons/index.js",
107
+ "./components/actions/formats/*": "./components/actions/formats/*.js",
108
+ "./components/actions/formats": "./components/actions/formats/index.js",
109
+ "./components/actions/form/*": "./components/actions/form/*.js"
110
110
  }
111
111
  }
@@ -11,6 +11,7 @@ interface RunningActionData {
11
11
  context?: ActionContextInformation;
12
12
  skipResultModal?: boolean;
13
13
  onComplete?: (result: WithActionData<ActionResult>) => void;
14
+ onUpdate?: (result: WithActionData<ActionResult>) => void;
14
15
  onCancel?: () => void;
15
16
  timeout?: number;
16
17
  }
@@ -1,9 +1,11 @@
1
- import { ActionDefinition } from './action';
1
+ import { ActionDefinition, ActionResult } from './action';
2
2
 
3
3
 
4
4
  export type WithActionData<T> = T & {
5
5
  actionId: string;
6
6
  action: ActionDefinition;
7
+ onUpdate?: (result: WithActionData<ActionResult>) => void;
8
+ onComplete?: (result: WithActionData<ActionResult>) => void;
7
9
  };
8
10
 
9
11
  export default WithActionData;