@cccsaurora/clue-ui 1.1.4 → 1.2.0-dev.106

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 (178) 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/cloneDeep-CjP5k9zW.js +8 -0
  24. package/components/AnnotationBody.js +49 -35
  25. package/components/AnnotationDetailPopover.js +36 -30
  26. package/components/AnnotationDetails.js +6 -6
  27. package/components/AnnotationEntry.js +50 -47
  28. package/components/AnnotationPreview.js +5 -5
  29. package/components/ClassificationChip.js +44 -23
  30. package/components/CountBadge.js +31 -26
  31. package/components/EnrichedCard.js +110 -97
  32. package/components/EnrichedChip.js +130 -105
  33. package/components/EnrichedTypography.js +133 -107
  34. package/components/ErrorBoundary.js +28 -24
  35. package/components/RetryFailedEnrichments.js +10 -9
  36. package/components/SourcePicker.js +57 -49
  37. package/components/actions/ActionForm.js +4 -4
  38. package/components/actions/ExecutePopover.js +64 -50
  39. package/components/actions/ResultModal.js +5 -5
  40. package/components/actions/form/schemaAdapter.js +39 -23
  41. package/components/display/graph/ExpandMoreButton.js +10 -10
  42. package/components/display/graph/elements/NodeCard.js +111 -91
  43. package/components/display/graph/elements/NodeTag.js +15 -13
  44. package/components/display/graph/index.js +261 -202
  45. package/components/display/graph/visualizations/Leaf.js +88 -69
  46. package/components/display/graph/visualizations/cloud/index.js +98 -81
  47. package/components/display/graph/visualizations/icons/BaseIcon.js +26 -21
  48. package/components/display/graph/visualizations/icons/BugIcon.js +12 -12
  49. package/components/display/graph/visualizations/icons/HostIcon.js +12 -12
  50. package/components/display/graph/visualizations/icons/NetworkIcon.js +12 -12
  51. package/components/display/graph/visualizations/icons/ProcessIcon.js +12 -12
  52. package/components/display/graph/visualizations/icons/TargetIcon.js +13 -13
  53. package/components/display/graph/visualizations/icons/index.js +14 -13
  54. package/components/display/graph/visualizations/panels/NodePanel.js +10 -8
  55. package/components/display/graph/visualizations/tree/BundleLine.js +108 -81
  56. package/components/display/graph/visualizations/tree/Triangle.js +13 -13
  57. package/components/display/graph/visualizations/tree/index.js +407 -305
  58. package/components/display/icons/Iconified.js +27 -12
  59. package/components/display/json/index.js +4 -4
  60. package/components/display/markdown/index.js +8658 -5757
  61. package/components/enrichment/EnrichPopover.js +55 -47
  62. package/components/fetchers/Fetcher.js +123 -95
  63. package/components/fetchers/PreviewModal.js +20 -17
  64. package/components/fetchers/StatusChip.js +21 -17
  65. package/components/group/Entry.js +13 -11
  66. package/components/group/Group.js +13 -10
  67. package/components/group/GroupControl.js +77 -66
  68. package/components/stats/QueryStatus.js +40 -35
  69. package/countBy-C69WslUA.js +14 -0
  70. package/data/event.js +6 -4
  71. package/database/index.js +2 -2
  72. package/debounce-bV0h5FC5.js +92 -0
  73. package/get-D3C3lEU3.js +8 -0
  74. package/groupBy-DC2oOuBN.js +14 -0
  75. package/hooks/ClueActionContext.js +7 -7
  76. package/hooks/ClueComponentContext.js +29 -23
  77. package/hooks/ClueConfigProvider.js +14 -12
  78. package/hooks/ClueDatabaseContext.js +19 -13
  79. package/hooks/ClueEnrichContext.js +8 -8
  80. package/hooks/ClueFetcherContext.js +74 -46
  81. package/hooks/ClueGroupContext.js +17 -14
  82. package/hooks/CluePopupContext.js +5 -5
  83. package/hooks/ClueProvider.js +12 -10
  84. package/hooks/selectors.js +21 -10
  85. package/hooks/useActionResult.js +2 -2
  86. package/hooks/useAnnotations.js +44 -32
  87. package/hooks/useClue.js +6 -4
  88. package/hooks/useClueActions.js +3 -3
  89. package/hooks/useClueConfig.js +6 -4
  90. package/hooks/useClueTypeConfig.js +3 -3
  91. package/hooks/useComparator.js +722 -435
  92. package/hooks/useErrors.js +22 -18
  93. package/hooks/useMyHighlights.js +66 -36
  94. package/hooks/useMyLocalStorage.js +66 -37
  95. package/iconify-CXMreGTg.js +1782 -0
  96. package/icons/Action.js +66 -49
  97. package/icons/Assessment.js +84 -68
  98. package/icons/Context.js +77 -63
  99. package/icons/Opinion.js +77 -65
  100. package/icons/iconMap.js +2 -2
  101. package/identity-CPGTqrE4.js +6 -0
  102. package/index-BDVjGvMI.js +696 -0
  103. package/index-BbPn6-Mw.js +15750 -0
  104. package/index-Bi21Wb23.js +465 -0
  105. package/index-C3lkTD69.js +1172 -0
  106. package/index-CC12Ux-9.js +17654 -0
  107. package/isEmpty-BQkZubqU.js +29 -0
  108. package/isNil-CIubwp4T.js +6 -0
  109. package/isObject-FTY-5JQX.js +7 -0
  110. package/isObjectLike-OAgjjZye.js +48 -0
  111. package/isSymbol-Xd2FsJyp.js +8 -0
  112. package/last-CUCl67Im.js +7 -0
  113. package/main.js +62 -62
  114. package/package.json +1 -1
  115. package/sortBy-B-UKp4GT.js +100 -0
  116. package/sumBy-MYkDPHZL.js +8 -0
  117. package/text/Frequency.js +42 -23
  118. package/toFinite-Bc55msYj.js +16 -0
  119. package/toNumber-DPxy1FBy.js +39 -0
  120. package/useClueTypeConfig-XvGvIw2S.js +3201 -0
  121. package/utils/chain.js +91 -64
  122. package/utils/classificationParser.js +519 -256
  123. package/utils/constants.js +35 -10
  124. package/utils/graph.js +72 -45
  125. package/utils/hashUtil.js +7 -7
  126. package/utils/line.js +131 -81
  127. package/utils/loggerUtil.js +5 -3
  128. package/utils/sessionStorage.js +41 -27
  129. package/utils/time.js +423 -423
  130. package/utils/utils.js +9 -9
  131. package/utils/window.js +21 -10
  132. package/utils-7OtvGnmf.js +200 -0
  133. package/ActionForm-myEAs2UC.js +0 -435
  134. package/AnnotationDetails-D9AJM0An.js +0 -160
  135. package/AnnotationPreview-Lb5be8ZG.js +0 -140
  136. package/ClueEnrichContext-DsFsXixD.js +0 -420
  137. package/FlexOne-BXWFOd1T.js +0 -6
  138. package/_Map-DXNg_Z-q.js +0 -54
  139. package/_MapCache-Cu25RRDU.js +0 -129
  140. package/_Uint8Array-DlJCtTvG.js +0 -102
  141. package/_baseAssignValue-CUmzp727.js +0 -20
  142. package/_baseClone-BlMmRXeX.js +0 -208
  143. package/_baseExtremum-P_0akmCi.js +0 -27
  144. package/_baseFlatten-CN7vDNEQ.js +0 -72
  145. package/_baseGet-Dgf6_xCm.js +0 -80
  146. package/_baseIsEqual-Cpjtfb3Q.js +0 -173
  147. package/_baseIteratee-CP1bocOX.js +0 -95
  148. package/_baseSlice-M5RKzt1A.js +0 -10
  149. package/_baseSum-wEbgNeUs.js +0 -10
  150. package/_baseUniq-tMFmk80M.js +0 -61
  151. package/_commonjsHelpers-DaMA6jEr.js +0 -8
  152. package/_createAggregator-B4Cav8ZM.js +0 -53
  153. package/_getPrototype-CHAFQYL_.js +0 -5
  154. package/_getTag-BV_UoLYG.js +0 -90
  155. package/cloneDeep-BPVpFBzJ.js +0 -8
  156. package/countBy-DOutsa_w.js +0 -8
  157. package/debounce-DryYcbJ4.js +0 -56
  158. package/get-Bow1vKwx.js +0 -8
  159. package/groupBy-BheQYl6f.js +0 -8
  160. package/iconify-BBckr5AQ.js +0 -1263
  161. package/identity-ByMq8VxU.js +0 -6
  162. package/index-BXxfAxFt.js +0 -12734
  163. package/index-C15OYgRY.js +0 -358
  164. package/index-E7g8cRyW.js +0 -568
  165. package/index-p5_wX7q1.js +0 -11729
  166. package/index-vF6IyBhz.js +0 -975
  167. package/isEmpty-g47Qir2A.js +0 -21
  168. package/isNil-CjWwlQS3.js +0 -6
  169. package/isObject-B53jY8Qg.js +0 -7
  170. package/isObjectLike-BatpeCIi.js +0 -29
  171. package/isSymbol-C3_SC0Qp.js +0 -8
  172. package/last-7CdUxN0r.js +0 -7
  173. package/sortBy-ITdmD17L.js +0 -79
  174. package/sumBy-DxJUU2E8.js +0 -8
  175. package/toFinite-BMy6GObD.js +0 -14
  176. package/toNumber-YVhnnJv4.js +0 -31
  177. package/useClueTypeConfig-DyeBcXQX.js +0 -2214
  178. package/utils-BnmI_6N8.js +0 -130
@@ -1,31 +1,35 @@
1
- import { useContext as i, useState as l, useEffect as a } from "react";
2
- import { ClueDatabaseContext as f } from "./ClueDatabaseContext.js";
3
- import { useClueEnrichSelector as m } from "./selectors.js";
4
- const C = (r) => {
5
- const e = i(f), o = m((s) => s.ready), [n, u] = l([]);
6
- return a(() => {
7
- if (!o || !r || !(e != null && e.selectors) || e.selectors.closed)
1
+ import { useContext, useState, useEffect } from "react";
2
+ import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
3
+ import { useClueEnrichSelector } from "./selectors.js";
4
+ const useErrors = (value) => {
5
+ const database = useContext(ClueDatabaseContext);
6
+ const ready = useClueEnrichSelector((ctx) => ctx.ready);
7
+ const [errors, setErrors] = useState([]);
8
+ useEffect(() => {
9
+ if (!ready || !value) {
8
10
  return;
9
- const s = e.selectors.find({ selector: { value: r, error: { $exists: !0 } } }).$.subscribe(
10
- (t) => (
11
+ }
12
+ const observable = database.selectors.find({ selector: { value, error: { $exists: true } } }).$.subscribe(
13
+ (records) => (
11
14
  // Transform database records into simplified error objects
12
- u(
13
- t.map((c) => ({
14
- source: c.source,
15
- message: c.error
15
+ setErrors(
16
+ records.map((record) => ({
17
+ source: record.source,
18
+ message: record.error
16
19
  }))
17
20
  )
18
21
  )
19
22
  );
20
23
  return () => {
21
24
  try {
22
- s.unsubscribe();
23
- } catch (t) {
24
- console.warn(t);
25
+ observable.unsubscribe();
26
+ } catch (e) {
27
+ console.warn(e);
25
28
  }
26
29
  };
27
- }, [e, o, r]), n;
30
+ }, [database, ready, value]);
31
+ return errors;
28
32
  };
29
33
  export {
30
- C as default
34
+ useErrors as default
31
35
  };
@@ -1,44 +1,74 @@
1
- import { getSubGraphNodeSet as H } from "../utils/graph.js";
2
- import { safeAddEventListener as S } from "../utils/window.js";
3
- import { useMemo as P, useState as h, useCallback as i, useEffect as w } from "react";
4
- const z = (n, c) => {
5
- const u = P(() => n == null ? void 0 : n.data, [n]), [o, f] = h(), [t, g] = h(/* @__PURE__ */ new Set()), [d, p] = h(/* @__PURE__ */ new Set()), [y, a] = h(), K = i((e) => {
6
- a(e.ctrlKey);
7
- }, []), m = i((e) => {
8
- a(e.ctrlKey);
1
+ import { getSubGraphNodeSet } from "../utils/graph.js";
2
+ import { safeAddEventListener } from "../utils/window.js";
3
+ import { useMemo, useState, useCallback, useEffect } from "react";
4
+ const useMyHighlights = (graph, onNodeSelectionChanged) => {
5
+ const data = useMemo(() => graph == null ? void 0 : graph.data, [graph]);
6
+ const [hoveredNode, setHoveredNode] = useState();
7
+ const [highlightedNodes, setHighlightedNodes] = useState(/* @__PURE__ */ new Set());
8
+ const [highlightedPath, setHighlightedPath] = useState(/* @__PURE__ */ new Set());
9
+ const [ctrlKeyDown, setCtrlKeyDown] = useState();
10
+ const onKeyPressed = useCallback((ev) => {
11
+ setCtrlKeyDown(ev.ctrlKey);
9
12
  }, []);
10
- w(() => S("keydown", K), [K]), w(() => S("keyup", m), [m]);
11
- const N = i((e, s) => {
12
- f(s ? e : "");
13
- }, []), b = i(
14
- (e, s, l) => {
15
- let r = /* @__PURE__ */ new Set();
16
- s ? r = new Set(l.ctrlKey ? [...t, e] : [e]) : (r = l.ctrlKey ? /* @__PURE__ */ new Set([...t]) : /* @__PURE__ */ new Set(), r.delete(e)), g(r), c == null || c([...r]);
13
+ const onKeyUnpressed = useCallback((ev) => {
14
+ setCtrlKeyDown(ev.ctrlKey);
15
+ }, []);
16
+ useEffect(() => {
17
+ return safeAddEventListener("keydown", onKeyPressed);
18
+ }, [onKeyPressed]);
19
+ useEffect(() => {
20
+ return safeAddEventListener("keyup", onKeyUnpressed);
21
+ }, [onKeyUnpressed]);
22
+ const onNodeHoveredChanged = useCallback((nodeId, isHovered) => {
23
+ if (isHovered) {
24
+ setHoveredNode(nodeId);
25
+ } else {
26
+ setHoveredNode("");
27
+ }
28
+ }, []);
29
+ const onNodeClicked = useCallback(
30
+ (nodeId, isSelected, event) => {
31
+ let newHighlightedNodes = /* @__PURE__ */ new Set();
32
+ if (isSelected) {
33
+ newHighlightedNodes = new Set(event.ctrlKey ? [...highlightedNodes, nodeId] : [nodeId]);
34
+ } else {
35
+ newHighlightedNodes = event.ctrlKey ? /* @__PURE__ */ new Set([...highlightedNodes]) : /* @__PURE__ */ new Set();
36
+ newHighlightedNodes.delete(nodeId);
37
+ }
38
+ setHighlightedNodes(newHighlightedNodes);
39
+ onNodeSelectionChanged == null ? void 0 : onNodeSelectionChanged([...newHighlightedNodes]);
17
40
  },
18
- [t, c]
19
- ), k = i(
20
- (e) => d.size === 0 || d.has(e) ? 1 : 0.2,
21
- [d]
41
+ [highlightedNodes, onNodeSelectionChanged]
22
42
  );
23
- return w(() => {
24
- let e = /* @__PURE__ */ new Set();
25
- if (o) {
26
- const s = H(o, u);
27
- e = /* @__PURE__ */ new Set([...e, ...s]);
43
+ const nodeOpacities = useCallback(
44
+ (nodeId) => {
45
+ return highlightedPath.size === 0 || highlightedPath.has(nodeId) ? 1 : 0.2;
46
+ },
47
+ [highlightedPath]
48
+ );
49
+ useEffect(() => {
50
+ let newHighlightedPath = /* @__PURE__ */ new Set();
51
+ if (hoveredNode) {
52
+ const subGraphNodes = getSubGraphNodeSet(hoveredNode, data);
53
+ newHighlightedPath = /* @__PURE__ */ new Set([...newHighlightedPath, ...subGraphNodes]);
54
+ }
55
+ if (highlightedNodes.size && (ctrlKeyDown || !hoveredNode)) {
56
+ highlightedNodes.forEach((highlightedNode) => {
57
+ const subGraphNodes = getSubGraphNodeSet(highlightedNode, data);
58
+ newHighlightedPath = /* @__PURE__ */ new Set([...newHighlightedPath, ...subGraphNodes]);
59
+ });
28
60
  }
29
- t.size && (y || !o) && t.forEach((s) => {
30
- const l = H(s, u);
31
- e = /* @__PURE__ */ new Set([...e, ...l]);
32
- }), p(e);
33
- }, [o, t, y, u]), {
34
- onNodeHoveredChanged: N,
35
- onNodeClicked: b,
36
- nodeOpacities: k,
37
- highlightedPath: d,
38
- highlightedNodes: t,
39
- hoveredNode: o
61
+ setHighlightedPath(newHighlightedPath);
62
+ }, [hoveredNode, highlightedNodes, ctrlKeyDown, data]);
63
+ return {
64
+ onNodeHoveredChanged,
65
+ onNodeClicked,
66
+ nodeOpacities,
67
+ highlightedPath,
68
+ highlightedNodes,
69
+ hoveredNode
40
70
  };
41
71
  };
42
72
  export {
43
- z as default
73
+ useMyHighlights as default
44
74
  };
@@ -1,51 +1,80 @@
1
- import { useCallback as c, useMemo as S, useState as v, useEffect as I, createContext as O, useContext as i } from "react";
2
- import { i as p } from "../isNil-CjWwlQS3.js";
1
+ import { useCallback, useMemo, useState, useEffect, createContext, useContext } from "react";
2
+ import { i as isNil } from "../isNil-CIubwp4T.js";
3
3
  import "react/jsx-runtime";
4
- import { MY_LOCAL_STORAGE_PREFIX as f } from "../utils/constants.js";
5
- function L(o) {
6
- const e = c((t) => `${o}.${t}`, [o]), a = c((t) => JSON.parse(localStorage.getItem(e(t))), [e]), m = c(
7
- (t, u) => localStorage.setItem(e(t), JSON.stringify(u)),
8
- [e]
9
- ), r = c(
10
- (t, u = !1) => localStorage.removeItem(u ? t : e(t)),
11
- [e]
12
- ), n = c((t) => a(t) !== null, [a]), s = c(() => Object.keys(localStorage), []), l = c(() => s().map((t) => ({ key: t, value: JSON.parse(localStorage.getItem(t)) })), [s]), g = c(
13
- () => s().forEach((t) => {
14
- t.startsWith(o) && r(t, !0);
4
+ import { MY_LOCAL_STORAGE_PREFIX } from "../utils/constants.js";
5
+ function useLocalStorage(prefix) {
6
+ const _buildKey = useCallback((name) => `${prefix}.${name}`, [prefix]);
7
+ const get = useCallback((key) => JSON.parse(localStorage.getItem(_buildKey(key))), [_buildKey]);
8
+ const set = useCallback(
9
+ (key, value) => localStorage.setItem(_buildKey(key), JSON.stringify(value)),
10
+ [_buildKey]
11
+ );
12
+ const remove = useCallback(
13
+ (key, withPrefix = false) => localStorage.removeItem(withPrefix ? key : _buildKey(key)),
14
+ [_buildKey]
15
+ );
16
+ const has = useCallback((key) => get(key) !== null, [get]);
17
+ const keys = useCallback(() => Object.keys(localStorage), []);
18
+ const items = useCallback(() => keys().map((k) => ({ key: k, value: JSON.parse(localStorage.getItem(k)) })), [keys]);
19
+ const clear = useCallback(
20
+ () => keys().forEach((key) => {
21
+ if (key.startsWith(prefix)) {
22
+ remove(key, true);
23
+ }
15
24
  }),
16
- [o, r, s]
25
+ [prefix, remove, keys]
17
26
  );
18
- return S(
27
+ return useMemo(
19
28
  () => ({
20
- get: a,
21
- set: m,
22
- remove: r,
23
- has: n,
24
- keys: s,
25
- items: l,
26
- clear: g
29
+ get,
30
+ set,
31
+ remove,
32
+ has,
33
+ keys,
34
+ items,
35
+ clear
27
36
  }),
28
- [a, m, r, n, s, l, g]
37
+ [get, set, remove, has, keys, items, clear]
29
38
  );
30
39
  }
31
- function C(o, e, a) {
32
- const { get: m, set: r, has: n, remove: s } = L(a), [l, g] = v(m(o) ?? e);
33
- return I(() => {
34
- e != null && !n(o) && r(o, e);
35
- }, [o, e, n, r]), S(
40
+ function useLocalStorageItem(key, initialValue, prefix) {
41
+ const { get, set, has, remove } = useLocalStorage(prefix);
42
+ const [value, setValue] = useState(get(key) ?? initialValue);
43
+ useEffect(() => {
44
+ if (initialValue !== null && initialValue !== void 0 && !has(key)) {
45
+ set(key, initialValue);
46
+ }
47
+ }, [key, initialValue, has, set]);
48
+ return useMemo(
36
49
  () => [
37
- l,
38
- (t, u = !0) => {
39
- u && (p(t) ? s(o) : r(o, t)), g(t);
50
+ value,
51
+ (newValue, save = true) => {
52
+ if (save) {
53
+ if (!isNil(newValue)) {
54
+ set(key, newValue);
55
+ } else {
56
+ remove(key);
57
+ }
58
+ }
59
+ setValue(newValue);
40
60
  },
41
- () => s(o)
61
+ () => remove(key)
42
62
  ],
43
- [o, l, r, s]
63
+ [key, value, set, remove]
44
64
  );
45
65
  }
46
- const M = O(null), _ = () => L(f), b = (o, e) => C(o, e, f), J = () => i(M);
66
+ const LocalStorageContext = createContext(null);
67
+ const useMyLocalStorage = () => {
68
+ return useLocalStorage(MY_LOCAL_STORAGE_PREFIX);
69
+ };
70
+ const useMyLocalStorageItem = (key, initialValue) => {
71
+ return useLocalStorageItem(key, initialValue, MY_LOCAL_STORAGE_PREFIX);
72
+ };
73
+ const useMyLocalStorageProvider = () => {
74
+ return useContext(LocalStorageContext);
75
+ };
47
76
  export {
48
- _ as default,
49
- b as useMyLocalStorageItem,
50
- J as useMyLocalStorageProvider
77
+ useMyLocalStorage as default,
78
+ useMyLocalStorageItem,
79
+ useMyLocalStorageProvider
51
80
  };