@cccsaurora/clue-ui 1.0.4 → 1.1.0-dev.100

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 (201) hide show
  1. package/ActionForm-ByeOzpc4.js +555 -0
  2. package/AnnotationDetails-DknbKDyl.js +175 -0
  3. package/AnnotationPreview-CQwKs8se.js +188 -0
  4. package/ClueEnrichContext-6NJfXpUB.js +536 -0
  5. package/FlexOne-BSYAhhtG.js +9 -0
  6. package/_Map-kgDsDYxq.js +64 -0
  7. package/_MapCache-DabaaWfq.js +161 -0
  8. package/_Uint8Array-BlVVH1tp.js +129 -0
  9. package/_baseAssignValue-CNbcU6Nb.js +25 -0
  10. package/_baseClone-D3a8Pa4T.js +284 -0
  11. package/_baseExtremum-B1o1zHjR.js +33 -0
  12. package/_baseFlatten-D4huXoEI.js +92 -0
  13. package/_baseGet-BSK_nnoz.js +109 -0
  14. package/_baseIsEqual-B5xLoweL.js +238 -0
  15. package/_baseIteratee-p6Nj07-n.js +126 -0
  16. package/_baseSlice-GAv_YFTT.js +20 -0
  17. package/_baseSum-D0WC1dN0.js +13 -0
  18. package/_baseUniq-CpupKWcL.js +89 -0
  19. package/_commonjsHelpers-DWwsNxpa.js +8 -0
  20. package/_createAggregator-BpVy5xMi.js +63 -0
  21. package/_getPrototype-D1LAdQKO.js +5 -0
  22. package/_getTag-D3ToyefI.js +126 -0
  23. package/api/lookup/index.d.ts +1 -1
  24. package/api/lookup/types.d.ts +2 -2
  25. package/api/lookup/types_detection.d.ts +2 -2
  26. package/cloneDeep-CjP5k9zW.js +8 -0
  27. package/components/AnnotationBody.js +49 -34
  28. package/components/AnnotationDetailPopover.js +36 -30
  29. package/components/AnnotationDetails.js +6 -6
  30. package/components/AnnotationEntry.js +50 -47
  31. package/components/AnnotationPreview.js +5 -5
  32. package/components/ClassificationChip.d.ts +2 -1
  33. package/components/ClassificationChip.js +44 -23
  34. package/components/CountBadge.js +31 -26
  35. package/components/EnrichedCard.js +110 -92
  36. package/components/EnrichedChip.js +130 -111
  37. package/components/EnrichedTypography.d.ts +1 -1
  38. package/components/EnrichedTypography.js +133 -112
  39. package/components/ErrorBoundary.js +28 -24
  40. package/components/RetryFailedEnrichments.js +10 -9
  41. package/components/SourcePicker.js +57 -49
  42. package/components/actions/ActionForm.js +4 -4
  43. package/components/actions/ExecutePopover.js +64 -50
  44. package/components/actions/ResultModal.js +12 -41
  45. package/components/actions/form/schemaAdapter.js +40 -20
  46. package/components/display/graph/ExpandMoreButton.js +10 -10
  47. package/components/display/graph/elements/NodeCard.js +114 -76
  48. package/components/display/graph/elements/NodeTag.js +15 -13
  49. package/components/display/graph/index.js +267 -210
  50. package/components/display/graph/visualizations/Leaf.js +88 -69
  51. package/components/display/graph/visualizations/cloud/index.js +98 -81
  52. package/components/display/graph/visualizations/icons/BaseIcon.js +26 -21
  53. package/components/display/graph/visualizations/icons/BugIcon.js +12 -12
  54. package/components/display/graph/visualizations/icons/HostIcon.js +12 -12
  55. package/components/display/graph/visualizations/icons/NetworkIcon.js +12 -12
  56. package/components/display/graph/visualizations/icons/ProcessIcon.js +12 -12
  57. package/components/display/graph/visualizations/icons/TargetIcon.js +13 -13
  58. package/components/display/graph/visualizations/icons/index.js +14 -13
  59. package/components/display/graph/visualizations/panels/NodePanel.js +10 -8
  60. package/components/display/graph/visualizations/tree/BundleLine.js +108 -81
  61. package/components/display/graph/visualizations/tree/Triangle.js +13 -13
  62. package/components/display/graph/visualizations/tree/index.js +407 -305
  63. package/components/display/icons/Iconified.js +27 -12
  64. package/components/display/json/index.js +4 -4
  65. package/components/display/markdown/index.js +8696 -5668
  66. package/components/enrichment/EnrichPopover.js +55 -47
  67. package/components/fetchers/Fetcher.js +123 -95
  68. package/components/fetchers/PreviewModal.js +20 -17
  69. package/components/fetchers/StatusChip.js +21 -18
  70. package/components/group/Entry.js +13 -11
  71. package/components/group/Group.js +13 -10
  72. package/components/group/GroupControl.js +78 -66
  73. package/components/stats/QueryStatus.js +44 -31
  74. package/countBy-C69WslUA.js +14 -0
  75. package/data/event.js +6 -4
  76. package/database/index.js +2 -2
  77. package/debounce-bV0h5FC5.js +92 -0
  78. package/en/translation.json +39 -59
  79. package/fr/translation.json +37 -56
  80. package/get-D3C3lEU3.js +8 -0
  81. package/groupBy-DC2oOuBN.js +14 -0
  82. package/hooks/ClueActionContext.d.ts +26 -0
  83. package/hooks/ClueActionContext.js +8 -7
  84. package/hooks/ClueComponentContext.js +29 -23
  85. package/hooks/ClueConfigProvider.js +14 -12
  86. package/hooks/ClueDatabaseContext.js +19 -13
  87. package/hooks/ClueEnrichContext.js +8 -8
  88. package/hooks/ClueEnrichProps.d.ts +3 -1
  89. package/hooks/ClueFetcherContext.js +74 -46
  90. package/hooks/ClueGroupContext.js +17 -14
  91. package/hooks/CluePopupContext.js +5 -5
  92. package/hooks/ClueProvider.js +12 -10
  93. package/hooks/selectors.d.ts +4 -5
  94. package/hooks/selectors.js +21 -11
  95. package/hooks/useActionResult.d.ts +14 -0
  96. package/hooks/useActionResult.js +5 -0
  97. package/hooks/useAnnotations.js +45 -29
  98. package/hooks/useClue.js +6 -4
  99. package/hooks/useClueActions.d.ts +1 -1
  100. package/hooks/useClueActions.js +3 -3
  101. package/hooks/useClueConfig.d.ts +2 -1
  102. package/hooks/useClueConfig.js +6 -6
  103. package/hooks/useClueTypeConfig.js +3 -3
  104. package/hooks/useComparator.js +722 -435
  105. package/hooks/useErrors.js +22 -18
  106. package/hooks/useMyHighlights.js +66 -36
  107. package/hooks/useMyLocalStorage.d.ts +4 -3
  108. package/hooks/useMyLocalStorage.js +66 -46
  109. package/iconify-CXMreGTg.js +1782 -0
  110. package/icons/Action.js +66 -49
  111. package/icons/Assessment.js +84 -68
  112. package/icons/Context.js +78 -61
  113. package/icons/Opinion.js +77 -65
  114. package/icons/iconMap.js +2 -2
  115. package/identity-CPGTqrE4.js +6 -0
  116. package/index-BDVjGvMI.js +696 -0
  117. package/index-BbPn6-Mw.js +15750 -0
  118. package/index-Bi21Wb23.js +465 -0
  119. package/index-C3lkTD69.js +1172 -0
  120. package/index-CC12Ux-9.js +17654 -0
  121. package/isEmpty-BQkZubqU.js +29 -0
  122. package/isNil-CIubwp4T.js +6 -0
  123. package/isObject-FTY-5JQX.js +7 -0
  124. package/isObjectLike-OAgjjZye.js +48 -0
  125. package/isSymbol-Xd2FsJyp.js +8 -0
  126. package/last-CUCl67Im.js +7 -0
  127. package/main.js +62 -62
  128. package/package.json +3 -3
  129. package/sortBy-B-UKp4GT.js +100 -0
  130. package/sumBy-MYkDPHZL.js +8 -0
  131. package/text/Frequency.js +42 -23
  132. package/toFinite-Bc55msYj.js +16 -0
  133. package/toNumber-DPxy1FBy.js +39 -0
  134. package/types/RunningActionData.d.ts +4 -3
  135. package/types/action.d.ts +10 -1
  136. package/useClueTypeConfig-XvGvIw2S.js +3201 -0
  137. package/utils/chain.js +91 -64
  138. package/utils/classificationParser.js +519 -256
  139. package/utils/constants.js +35 -10
  140. package/utils/graph.js +72 -45
  141. package/utils/hashUtil.js +7 -7
  142. package/utils/line.js +131 -81
  143. package/utils/loggerUtil.d.ts +1 -1
  144. package/utils/loggerUtil.js +6 -4
  145. package/utils/sessionStorage.js +41 -29
  146. package/utils/time.d.ts +3 -0
  147. package/utils/time.js +536 -0
  148. package/utils/utils.js +10 -9
  149. package/utils/window.js +21 -10
  150. package/utils-7OtvGnmf.js +200 -0
  151. package/ActionForm-Sw7D-KOE.js +0 -340
  152. package/AnnotationDetails-BoX61_IF.js +0 -160
  153. package/AnnotationPreview-dYinoSA9.js +0 -140
  154. package/ClueEnrichContext-CvCIPOMC.js +0 -412
  155. package/FlexOne-BXWFOd1T.js +0 -6
  156. package/_Map-DXNg_Z-q.js +0 -54
  157. package/_MapCache-Cu25RRDU.js +0 -129
  158. package/_Uint8Array-DlJCtTvG.js +0 -102
  159. package/_baseAssignValue-CUmzp727.js +0 -20
  160. package/_baseClone-BlMmRXeX.js +0 -208
  161. package/_baseExtremum-P_0akmCi.js +0 -27
  162. package/_baseFlatten-CN7vDNEQ.js +0 -72
  163. package/_baseGet-Dgf6_xCm.js +0 -80
  164. package/_baseIsEqual-Cpjtfb3Q.js +0 -173
  165. package/_baseIteratee-CP1bocOX.js +0 -95
  166. package/_baseSlice-M5RKzt1A.js +0 -10
  167. package/_baseSum-wEbgNeUs.js +0 -10
  168. package/_baseUniq-tMFmk80M.js +0 -61
  169. package/_commonjsHelpers-C6fGbg64.js +0 -6
  170. package/_createAggregator-B4Cav8ZM.js +0 -53
  171. package/_getPrototype-CHAFQYL_.js +0 -5
  172. package/_getTag-BV_UoLYG.js +0 -90
  173. package/cloneDeep-BPVpFBzJ.js +0 -8
  174. package/components/display/markdown/DynamicTabs.d.ts +0 -8
  175. package/components/display/markdown/DynamicTabs.js +0 -21
  176. package/components/display/markdown/markdownPlugins/tabs.d.ts +0 -3
  177. package/components/display/markdown/markdownPlugins/tabs.js +0 -4
  178. package/countBy-DOutsa_w.js +0 -8
  179. package/debounce-DryYcbJ4.js +0 -56
  180. package/get-Bow1vKwx.js +0 -8
  181. package/groupBy-BheQYl6f.js +0 -8
  182. package/iconify-BBckr5AQ.js +0 -1263
  183. package/identity-ByMq8VxU.js +0 -6
  184. package/index-CnaCBNrd.js +0 -358
  185. package/index-E7g8cRyW.js +0 -568
  186. package/index-V7wwd05F.js +0 -975
  187. package/index-p5_wX7q1.js +0 -11729
  188. package/index-pQg5VUAZ.js +0 -12734
  189. package/isEmpty-g47Qir2A.js +0 -21
  190. package/isNil-CjWwlQS3.js +0 -6
  191. package/isObject-B53jY8Qg.js +0 -7
  192. package/isObjectLike-BatpeCIi.js +0 -29
  193. package/isSymbol-C3_SC0Qp.js +0 -8
  194. package/last-7CdUxN0r.js +0 -7
  195. package/sortBy-ITdmD17L.js +0 -79
  196. package/sumBy-DxJUU2E8.js +0 -8
  197. package/tabs-CgADNA57.js +0 -195
  198. package/toFinite-BMy6GObD.js +0 -14
  199. package/toNumber-YVhnnJv4.js +0 -31
  200. package/useClueTypeConfig-CneP98N_.js +0 -2260
  201. package/utils-CD0rFIFU.js +0 -2704
@@ -1,92 +1,104 @@
1
- import { jsx as r, jsxs as m } from "react/jsx-runtime";
2
- import { Card as S, Stack as y, Box as b, Typography as E, Autocomplete as v, TextField as x, Button as I, CircularProgress as z } from "@mui/material";
3
- import { F as _ } from "../../FlexOne-BXWFOd1T.js";
4
- import k from "../display/icons/Iconified.js";
5
- import { SNACKBAR_EVENT_ID as w } from "../../data/event.js";
6
- import { ClueGroupContext as j } from "../../hooks/ClueGroupContext.js";
7
- import { useClueComponentSelector as A, useClueEnrichSelector as u } from "../../hooks/selectors.js";
8
- import { safeDispatchEvent as B } from "../../utils/window.js";
9
- import { c as F } from "../../ActionForm-Sw7D-KOE.js";
10
- import { useState as d, useMemo as O, useCallback as T } from "react";
11
- import { u as D } from "../../index-E7g8cRyW.js";
12
- import G from "../actions/ExecutePopover.js";
13
- const U = () => {
14
- const { t: n } = A((e) => e.i18next), { type: t, values: o, classification: a } = D(j, (e) => ({
15
- type: e == null ? void 0 : e.type,
16
- values: e == null ? void 0 : e.values,
17
- classification: e == null ? void 0 : e.classification
18
- })), f = u((e) => e.availableSources), c = u((e) => e.bulkEnrich), [i, p] = d(!1), [s, h] = d([]), C = O(
19
- () => (o ?? []).map((e) => ({ value: e, type: t, classification: a })),
20
- [a, t, o]
21
- ), g = T(async () => {
22
- if (!i)
23
- try {
24
- p(!0), await c(
25
- (o ?? []).map((e) => ({ type: t, value: e })),
26
- { force: !0, sources: s }
27
- );
28
- } catch (e) {
29
- console.error(e), B(
30
- new CustomEvent(w, {
31
- detail: {
32
- message: e.toString(),
33
- level: "error"
34
- }
35
- })
36
- );
37
- } finally {
38
- p(!1);
39
- }
40
- }, [c, i, s, t, o]);
41
- return /* @__PURE__ */ r(S, { sx: { p: 1 }, children: /* @__PURE__ */ m(y, { direction: "row", spacing: 1, alignItems: "center", children: [
42
- /* @__PURE__ */ r(
43
- b,
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Card, Stack, Box, Typography, Autocomplete, TextField, Button, CircularProgress } from "@mui/material";
3
+ import { F as FlexOne } from "../../FlexOne-BSYAhhtG.js";
4
+ import Iconified from "../display/icons/Iconified.js";
5
+ import { SNACKBAR_EVENT_ID } from "../../data/event.js";
6
+ import { ClueGroupContext } from "../../hooks/ClueGroupContext.js";
7
+ import { useClueComponentSelector, useClueEnrichSelector } from "../../hooks/selectors.js";
8
+ import { safeDispatchEvent } from "../../utils/window.js";
9
+ import { c as capitalize } from "../../ActionForm-ByeOzpc4.js";
10
+ import { useState, useMemo, useCallback } from "react";
11
+ import { u as useContextSelector } from "../../index-BDVjGvMI.js";
12
+ import ExecutePopover from "../actions/ExecutePopover.js";
13
+ const GroupControl = () => {
14
+ const { t } = useClueComponentSelector((ctx) => ctx.i18next);
15
+ const { type, values, classification } = useContextSelector(ClueGroupContext, (ctx) => ({
16
+ type: ctx == null ? void 0 : ctx.type,
17
+ values: ctx == null ? void 0 : ctx.values,
18
+ classification: ctx == null ? void 0 : ctx.classification
19
+ }));
20
+ const sources = useClueEnrichSelector((ctx) => ctx.availableSources);
21
+ const enrich = useClueEnrichSelector((ctx) => ctx.bulkEnrich);
22
+ const [loading, setLoading] = useState(false);
23
+ const [selectedSources, setSelectedSources] = useState([]);
24
+ const fullValues = useMemo(
25
+ () => (values ?? []).map((value) => ({ value, type, classification })),
26
+ [classification, type, values]
27
+ );
28
+ const runEnrichment = useCallback(async () => {
29
+ if (loading) {
30
+ return;
31
+ }
32
+ try {
33
+ setLoading(true);
34
+ await enrich(
35
+ (values ?? []).map((value) => ({ type, value })),
36
+ { force: true, sources: selectedSources }
37
+ );
38
+ } catch (e) {
39
+ console.error(e);
40
+ safeDispatchEvent(
41
+ new CustomEvent(SNACKBAR_EVENT_ID, {
42
+ detail: {
43
+ message: e.toString(),
44
+ level: "error"
45
+ }
46
+ })
47
+ );
48
+ } finally {
49
+ setLoading(false);
50
+ }
51
+ }, [enrich, loading, selectedSources, type, values]);
52
+ return /* @__PURE__ */ jsx(Card, { sx: { p: 1 }, children: /* @__PURE__ */ jsxs(Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
53
+ /* @__PURE__ */ jsx(
54
+ Box,
44
55
  {
45
- sx: (e) => ({
56
+ sx: (theme) => ({
46
57
  border: "thin solid",
47
58
  alignSelf: "stretch",
48
59
  display: "flex",
49
60
  alignItems: "center",
50
61
  px: 1,
51
62
  borderRadius: "5px",
52
- borderColor: e.palette.divider
63
+ borderColor: theme.palette.divider
53
64
  }),
54
- children: /* @__PURE__ */ m(E, { color: "text.secondary", children: [
55
- (o == null ? void 0 : o.length) ?? 0,
56
- " selected"
65
+ children: /* @__PURE__ */ jsxs(Typography, { color: "text.secondary", children: [
66
+ (values == null ? void 0 : values.length) ?? 0,
67
+ " ",
68
+ t("selected")
57
69
  ] })
58
70
  }
59
71
  ),
60
- /* @__PURE__ */ r(_, {}),
61
- /* @__PURE__ */ r(
62
- v,
72
+ /* @__PURE__ */ jsx(FlexOne, {}),
73
+ /* @__PURE__ */ jsx(
74
+ Autocomplete,
63
75
  {
64
76
  size: "small",
65
- multiple: !0,
66
- options: f,
77
+ multiple: true,
78
+ options: sources,
67
79
  sx: { minWidth: "400px" },
68
- renderInput: (e) => /* @__PURE__ */ r(x, { size: "small", placeholder: n("sources"), ...e }),
69
- value: s,
70
- onChange: (e, l) => h(l),
71
- disableCloseOnSelect: !0,
72
- getOptionLabel: (e) => e.split(/[_-]/).map((l) => F(l)).join(" ")
80
+ renderInput: (params) => /* @__PURE__ */ jsx(TextField, { size: "small", placeholder: t("sources"), ...params }),
81
+ value: selectedSources,
82
+ onChange: (__, value) => setSelectedSources(value),
83
+ disableCloseOnSelect: true,
84
+ getOptionLabel: (opt) => opt.split(/[_-]/).map((word) => capitalize(word)).join(" ")
73
85
  }
74
86
  ),
75
- /* @__PURE__ */ r(
76
- I,
87
+ /* @__PURE__ */ jsx(
88
+ Button,
77
89
  {
78
90
  variant: "outlined",
79
91
  color: "info",
80
- disabled: (o == null ? void 0 : o.length) < 1 || i,
81
- startIcon: i ? /* @__PURE__ */ r(z, { color: "info", size: "20px" }) : /* @__PURE__ */ r(k, { icon: "ic:outline-play-arrow" }),
92
+ disabled: (values == null ? void 0 : values.length) < 1 || loading,
93
+ startIcon: loading ? /* @__PURE__ */ jsx(CircularProgress, { color: "info", size: "20px" }) : /* @__PURE__ */ jsx(Iconified, { icon: "ic:outline-play-arrow" }),
82
94
  sx: { alignSelf: "stretch" },
83
- onClick: g,
84
- children: n("enrich")
95
+ onClick: runEnrichment,
96
+ children: t("enrich")
85
97
  }
86
98
  ),
87
- /* @__PURE__ */ r(G, { selectors: C, size: "medium", multiples: !0 })
99
+ /* @__PURE__ */ jsx(ExecutePopover, { selectors: fullValues, size: "medium", multiples: true })
88
100
  ] }) });
89
101
  };
90
102
  export {
91
- U as default
103
+ GroupControl as default
92
104
  };
@@ -1,52 +1,65 @@
1
- import { jsxs as s } from "react/jsx-runtime";
2
- import { Stack as d, Typography as r } from "@mui/material";
3
- import { ClueDatabaseContext as b } from "../../hooks/ClueDatabaseContext.js";
4
- import { useClueEnrichSelector as f } from "../../hooks/selectors.js";
5
- import { useContext as C, useState as n, useEffect as g } from "react";
6
- const $ = () => {
7
- const e = C(b), c = f((t) => t.ready), [u, l] = n(0), [a, p] = n(0), [i, m] = n(0);
8
- return g(() => {
9
- if (!c)
1
+ import { jsxs } from "react/jsx-runtime";
2
+ import { Stack, Typography } from "@mui/material";
3
+ import { ClueDatabaseContext } from "../../hooks/ClueDatabaseContext.js";
4
+ import { useClueComponentSelector, useClueEnrichSelector } from "../../hooks/selectors.js";
5
+ import { useContext, useState, useEffect } from "react";
6
+ const QueryStatus = () => {
7
+ const { t } = useClueComponentSelector((ctx) => ctx.i18next);
8
+ const database = useContext(ClueDatabaseContext);
9
+ const ready = useClueEnrichSelector((ctx) => ctx.ready);
10
+ const [pendingCount, setPendingCount] = useState(0);
11
+ const [inProgressCount, setInProgressCount] = useState(0);
12
+ const [completeCount, setCompleteCount] = useState(0);
13
+ useEffect(() => {
14
+ if (!ready) {
10
15
  return;
11
- const t = [
12
- e.status.count({ selector: { status: "pending" } }).$.subscribe(l),
13
- e.status.count({ selector: { status: "in-progress" } }).$.subscribe(p),
14
- e.status.count({ selector: { status: "complete" } }).$.subscribe(m)
16
+ }
17
+ const observables = [
18
+ database.status.count({ selector: { status: "pending" } }).$.subscribe(setPendingCount),
19
+ database.status.count({ selector: { status: "in-progress" } }).$.subscribe(setInProgressCount),
20
+ database.status.count({ selector: { status: "complete" } }).$.subscribe(setCompleteCount)
15
21
  ];
16
22
  return () => {
17
23
  try {
18
- t.forEach((o) => o.unsubscribe());
19
- } catch (o) {
20
- console.warn(o);
24
+ observables.forEach((_observable) => _observable.unsubscribe());
25
+ } catch (e) {
26
+ console.warn(e);
21
27
  }
22
28
  };
23
- }, [e, c]), u + a + i < 1 ? null : /* @__PURE__ */ s(
24
- d,
29
+ }, [database, ready]);
30
+ if (pendingCount + inProgressCount + completeCount < 1) {
31
+ return null;
32
+ }
33
+ return /* @__PURE__ */ jsxs(
34
+ Stack,
25
35
  {
26
36
  spacing: 1,
27
- sx: (t) => ({
28
- border: `thin solid ${t.palette.divider}`,
29
- borderRadius: t.spacing(0.5),
37
+ sx: (theme) => ({
38
+ border: `thin solid ${theme.palette.divider}`,
39
+ borderRadius: theme.spacing(0.5),
30
40
  mx: 1,
31
41
  p: 1
32
42
  }),
33
43
  children: [
34
- /* @__PURE__ */ s(r, { sx: { fontFamily: "monospace" }, children: [
35
- "Pending: ",
36
- u
44
+ /* @__PURE__ */ jsxs(Typography, { sx: { fontFamily: "monospace" }, children: [
45
+ t("query.status.pending"),
46
+ ": ",
47
+ pendingCount
37
48
  ] }),
38
- /* @__PURE__ */ s(r, { sx: { fontFamily: "monospace" }, children: [
39
- "In Progress: ",
40
- a
49
+ /* @__PURE__ */ jsxs(Typography, { sx: { fontFamily: "monospace" }, children: [
50
+ t("query.status.inprogress"),
51
+ ": ",
52
+ inProgressCount
41
53
  ] }),
42
- /* @__PURE__ */ s(r, { sx: { fontFamily: "monospace" }, children: [
43
- "Complete: ",
44
- i
54
+ /* @__PURE__ */ jsxs(Typography, { sx: { fontFamily: "monospace" }, children: [
55
+ t("query.status.complete"),
56
+ ": ",
57
+ completeCount
45
58
  ] })
46
59
  ]
47
60
  }
48
61
  );
49
62
  };
50
63
  export {
51
- $ as default
64
+ QueryStatus as default
52
65
  };
@@ -0,0 +1,14 @@
1
+ import { b as baseAssignValue } from "./_baseAssignValue-CNbcU6Nb.js";
2
+ import { c as createAggregator } from "./_createAggregator-BpVy5xMi.js";
3
+ var objectProto = Object.prototype;
4
+ var hasOwnProperty = objectProto.hasOwnProperty;
5
+ var countBy = createAggregator(function(result, value, key) {
6
+ if (hasOwnProperty.call(result, key)) {
7
+ ++result[key];
8
+ } else {
9
+ baseAssignValue(result, key, 1);
10
+ }
11
+ });
12
+ export {
13
+ countBy as c
14
+ };
package/data/event.js CHANGED
@@ -1,6 +1,8 @@
1
- const o = "snackbar.message", s = "clue.showPopup", E = "clue.hidePopup";
1
+ const SNACKBAR_EVENT_ID = "snackbar.message";
2
+ const SHOW_EVENT_ID = "clue.showPopup";
3
+ const HIDE_EVENT_ID = "clue.hidePopup";
2
4
  export {
3
- E as HIDE_EVENT_ID,
4
- s as SHOW_EVENT_ID,
5
- o as SNACKBAR_EVENT_ID
5
+ HIDE_EVENT_ID,
6
+ SHOW_EVENT_ID,
7
+ SNACKBAR_EVENT_ID
6
8
  };
package/database/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { b as f } from "../index-pQg5VUAZ.js";
1
+ import { b } from "../index-CC12Ux-9.js";
2
2
  export {
3
- f as default
3
+ b as default
4
4
  };
@@ -0,0 +1,92 @@
1
+ import { i as isObject } from "./isObject-FTY-5JQX.js";
2
+ import { r as root } from "./isObjectLike-OAgjjZye.js";
3
+ import { t as toNumber } from "./toNumber-DPxy1FBy.js";
4
+ var now = function() {
5
+ return root.Date.now();
6
+ };
7
+ var FUNC_ERROR_TEXT = "Expected a function";
8
+ var nativeMax = Math.max, nativeMin = Math.min;
9
+ function debounce(func, wait, options) {
10
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
11
+ if (typeof func != "function") {
12
+ throw new TypeError(FUNC_ERROR_TEXT);
13
+ }
14
+ wait = toNumber(wait) || 0;
15
+ if (isObject(options)) {
16
+ leading = !!options.leading;
17
+ maxing = "maxWait" in options;
18
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
19
+ trailing = "trailing" in options ? !!options.trailing : trailing;
20
+ }
21
+ function invokeFunc(time) {
22
+ var args = lastArgs, thisArg = lastThis;
23
+ lastArgs = lastThis = void 0;
24
+ lastInvokeTime = time;
25
+ result = func.apply(thisArg, args);
26
+ return result;
27
+ }
28
+ function leadingEdge(time) {
29
+ lastInvokeTime = time;
30
+ timerId = setTimeout(timerExpired, wait);
31
+ return leading ? invokeFunc(time) : result;
32
+ }
33
+ function remainingWait(time) {
34
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
35
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
36
+ }
37
+ function shouldInvoke(time) {
38
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
39
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
40
+ }
41
+ function timerExpired() {
42
+ var time = now();
43
+ if (shouldInvoke(time)) {
44
+ return trailingEdge(time);
45
+ }
46
+ timerId = setTimeout(timerExpired, remainingWait(time));
47
+ }
48
+ function trailingEdge(time) {
49
+ timerId = void 0;
50
+ if (trailing && lastArgs) {
51
+ return invokeFunc(time);
52
+ }
53
+ lastArgs = lastThis = void 0;
54
+ return result;
55
+ }
56
+ function cancel() {
57
+ if (timerId !== void 0) {
58
+ clearTimeout(timerId);
59
+ }
60
+ lastInvokeTime = 0;
61
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
62
+ }
63
+ function flush() {
64
+ return timerId === void 0 ? result : trailingEdge(now());
65
+ }
66
+ function debounced() {
67
+ var time = now(), isInvoking = shouldInvoke(time);
68
+ lastArgs = arguments;
69
+ lastThis = this;
70
+ lastCallTime = time;
71
+ if (isInvoking) {
72
+ if (timerId === void 0) {
73
+ return leadingEdge(lastCallTime);
74
+ }
75
+ if (maxing) {
76
+ clearTimeout(timerId);
77
+ timerId = setTimeout(timerExpired, wait);
78
+ return invokeFunc(lastCallTime);
79
+ }
80
+ }
81
+ if (timerId === void 0) {
82
+ timerId = setTimeout(timerExpired, wait);
83
+ }
84
+ return result;
85
+ }
86
+ debounced.cancel = cancel;
87
+ debounced.flush = flush;
88
+ return debounced;
89
+ }
90
+ export {
91
+ debounce as d
92
+ };
@@ -1,81 +1,65 @@
1
1
  {
2
+ "action.available": "Available Actions",
3
+ "action.data": "Action Data",
2
4
  "actions.execute": "Execute",
3
5
  "actions.executing": "Executing",
4
6
  "actions.json.hide": "Hide JSON",
5
7
  "actions.json.show": "Show JSON",
6
- "action.data": "Action Data",
7
- "action.available": "Available Actions",
8
-
8
+ "adminmenu": "Admin menu",
9
9
  "adminmenu.config": "Configuration",
10
10
  "adminmenu.users": "Users",
11
- "adminmenu": "Admin menu",
12
-
13
- "annotation.failed": "Failed",
14
-
15
11
  "all": "All",
16
-
12
+ "annotation.failed": "Failed",
17
13
  "app.language": "Language",
18
14
  "app.list.empty": "No Results",
19
15
  "app.search.fullscreen": "Activate fullscreen search",
20
16
  "app.search.shortcut": "Perform search",
21
17
  "app.search.starttyping": "Start typing and/or press ENTER",
22
-
23
18
  "breadcrumb.404": "404",
24
-
25
19
  "cancel": "Cancel",
26
20
  "classification": "Classification",
27
- "close": "Close",
28
-
29
21
  "clipboard": "Copy value to clipboard",
30
22
  "clipboard.failure": "could not be copied to clipboard",
31
23
  "clipboard.success": "was copied to clipboard.",
32
-
24
+ "close": "Close",
33
25
  "details.open": "Open Details",
34
-
35
26
  "drawer.chat": "Chat",
36
27
  "drawer.collapse": "Collapse Menu",
37
28
  "drawer.dashboard": "Dashboard",
38
29
  "drawer.expand": "Expand Menu",
39
30
  "drawer.help": "Help",
40
31
  "drawer.home": "Home",
32
+ "drawer.items": "Items",
41
33
  "drawer.items.create": "Create",
42
34
  "drawer.items.edit": "Edit",
43
35
  "drawer.items.list": "List",
44
- "drawer.items": "Items",
45
- "drawer.mail.inbox.message": "Message",
36
+ "drawer.mail": "Email",
46
37
  "drawer.mail.inbox": "Inbox",
38
+ "drawer.mail.inbox.message": "Message",
47
39
  "drawer.mail.sent": "Sent",
48
40
  "drawer.mail.trash": "Trash",
49
- "drawer.mail": "Email",
50
-
51
41
  "enrich": "Enrich",
52
-
53
42
  "error": "Error",
54
-
55
- "retry.enrich": "Retry Failed Enrichments",
56
-
43
+ "graph.no.dataset": "No dataset has been selected!",
44
+ "graph.node.input.label": "Enter a node ID, and press [ctrl + enter] to select it. [ctrl + space] will open an autocomplete menu.",
45
+ "graph.show.more": "show more",
46
+ "graph.visualization": "Visualization",
57
47
  "json.viewer.search.label": "Search JSON",
58
-
59
48
  "notification.title": "Notifications",
60
-
61
49
  "page.404.description": "The page you are looking for cannot be found...",
62
50
  "page.404.title": "404: Not found",
63
-
64
51
  "page.dashboard.title": "Dashboard",
65
-
66
- "page.home.title": "Home",
52
+ "page.home.cache": "Skip Plugins' Cache",
67
53
  "page.home.classification": "Classification",
68
- "page.home.timeout": "Customize Timeout",
69
54
  "page.home.includeraw": "Include Raw Data",
70
- "page.home.cache": "Skip Plugins' Cache",
55
+ "page.home.timeout": "Customize Timeout",
56
+ "page.home.title": "Home",
71
57
  "page.home.types": "Types supported (one per line)",
72
-
73
58
  "page.login.button": "Sign in",
74
59
  "page.login.password": "Password",
75
60
  "page.login.username": "Username",
76
-
77
61
  "page.logout": "Logging out current user ... ",
78
-
62
+ "personalization": "Personalization",
79
63
  "personalization.autohideappbar": "Auto Hide Topbar",
80
64
  "personalization.dark": "Dark Mode",
81
65
  "personalization.minimizebreadcrumbs": "Minimize Breadcrumbs",
@@ -83,53 +67,49 @@
83
67
  "personalization.reset_text": "Reset to site defaults",
84
68
  "personalization.showbreadcrumbs": "Show Breadcrumbs",
85
69
  "personalization.sticky": "Sticky Topbar",
86
- "personalization": "Personalization",
87
-
70
+ "query.status.complete": "Complete",
71
+ "query.status.inprogress": "In Progress",
72
+ "query.status.pending": "Pending",
88
73
  "quicksearch.aria": "search",
89
74
  "quicksearch.placeholder": "Search ...",
90
-
91
75
  "refresh": "Refresh",
92
-
76
+ "retry.enrich": "Retry Failed Enrichments",
77
+ "route.actions": "Actions",
78
+ "route.actions.action": "Select Action",
79
+ "route.actions.description": "Execute predefined actions on selectors using the form below.",
80
+ "route.actions.submit": "Execute Action",
81
+ "route.actions.type": "Selector Type",
82
+ "route.actions.value": "Selector Value",
93
83
  "route.examples": "Example Components",
94
-
95
- "route.help.contributing": "Contributing",
96
- "route.help.dashboard": "Plugin Dashboard",
97
- "route.plugin": "Plugin",
98
- "route.plugin.active": "Active",
99
- "route.help": "Help",
100
- "route.help.loading": "Loading Documentation",
101
- "route.help.error": "An error occurred in loading the documentation",
102
-
103
84
  "route.fetchers": "Fetchers",
85
+ "route.fetchers.available": "Available Fetchers",
86
+ "route.fetchers.description": "Add a new fetcher to render using the form above.",
104
87
  "route.fetchers.fetcher": "Select Fetcher",
88
+ "route.fetchers.submit": "Add Fetcher",
89
+ "route.fetchers.title": "No Fetchers",
105
90
  "route.fetchers.type": "Selector Type",
106
91
  "route.fetchers.value": "Selector Value",
107
- "route.fetchers.title": "No Fetchers",
108
- "route.fetchers.description": "Add a new fetcher to render using the form above.",
109
- "route.fetchers.submit": "Add Fetcher",
110
- "route.fetchers.available": "Available Fetchers",
111
-
92
+ "route.help": "Help",
93
+ "route.help.contributing": "Contributing",
94
+ "route.help.dashboard": "Plugin Dashboard",
95
+ "route.help.error": "An error occurred in loading the documentation",
96
+ "route.help.loading": "Loading Documentation",
112
97
  "route.home": "Enrich Data",
113
-
114
98
  "route.login.button.oauth.azure": "Azure",
115
99
  "route.login.button.oauth.keycloak": "Keycloak",
116
-
100
+ "route.plugin": "Plugin",
101
+ "route.plugin.active": "Active",
102
+ "selected": "selected",
117
103
  "sources": "Sources",
118
104
  "sources.select.all": "Select All Sources",
119
105
  "sources.select.none": "Deselect All Sources",
120
-
121
106
  "summary.unfound": "Summary not found",
122
-
123
107
  "tooltip.breadcrumbs.max": "Expand Breadcrumbs",
124
108
  "tooltip.breadcrumbs.min": "Collapse Breadcrumbs",
125
-
126
109
  "type": "Type",
127
-
128
110
  "unknown": "Unknown",
129
-
130
- "usermenu.logout": "Logout",
131
111
  "usermenu": "User menu",
112
+ "usermenu.logout": "Logout",
132
113
  "usermenu.settings": "Settings",
133
-
134
114
  "value": "Value"
135
115
  }