@cccsaurora/clue-ui 1.0.2 → 1.1.0-dev.10

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 (180) hide show
  1. package/ActionForm-D4ryHO0M.js +436 -0
  2. package/AnnotationDetails-YAPoqw3R.js +175 -0
  3. package/AnnotationPreview-DiQDjt9s.js +188 -0
  4. package/ClueEnrichContext-DIn6g8tw.js +522 -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-CUmg6egw.js +6 -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 -34
  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 +104 -92
  32. package/components/EnrichedChip.js +134 -109
  33. package/components/EnrichedTypography.js +136 -110
  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 +37 -34
  40. package/components/actions/form/schemaAdapter.js +39 -20
  41. package/components/display/graph/ExpandMoreButton.js +10 -10
  42. package/components/display/graph/elements/NodeCard.js +92 -76
  43. package/components/display/graph/elements/NodeTag.js +15 -13
  44. package/components/display/graph/index.js +258 -200
  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/DynamicTabs.js +22 -17
  61. package/components/display/markdown/index.js +8527 -5670
  62. package/components/display/markdown/markdownPlugins/tabs.js +1 -1
  63. package/components/enrichment/EnrichPopover.js +55 -47
  64. package/components/fetchers/Fetcher.js +123 -95
  65. package/components/fetchers/PreviewModal.js +20 -17
  66. package/components/fetchers/StatusChip.js +22 -18
  67. package/components/group/Entry.js +13 -11
  68. package/components/group/Group.js +13 -10
  69. package/components/group/GroupControl.js +76 -65
  70. package/components/stats/QueryStatus.js +37 -28
  71. package/countBy-C69WslUA.js +14 -0
  72. package/data/event.js +6 -4
  73. package/database/index.js +2 -2
  74. package/debounce-bV0h5FC5.js +92 -0
  75. package/get-D3C3lEU3.js +8 -0
  76. package/groupBy-DC2oOuBN.js +14 -0
  77. package/hooks/ClueActionContext.js +6 -6
  78. package/hooks/ClueComponentContext.js +29 -23
  79. package/hooks/ClueConfigProvider.js +14 -12
  80. package/hooks/ClueDatabaseContext.js +19 -13
  81. package/hooks/ClueEnrichContext.js +8 -8
  82. package/hooks/ClueFetcherContext.js +74 -46
  83. package/hooks/ClueGroupContext.js +17 -14
  84. package/hooks/CluePopupContext.js +5 -5
  85. package/hooks/ClueProvider.js +12 -10
  86. package/hooks/selectors.js +22 -11
  87. package/hooks/useAnnotations.js +45 -29
  88. package/hooks/useClue.js +6 -4
  89. package/hooks/useClueActions.js +3 -3
  90. package/hooks/useClueConfig.js +5 -5
  91. package/hooks/useClueTypeConfig.js +3 -3
  92. package/hooks/useComparator.js +722 -435
  93. package/hooks/useErrors.js +22 -18
  94. package/hooks/useMyHighlights.js +66 -36
  95. package/hooks/useMyLocalStorage.js +63 -43
  96. package/iconify-CXMreGTg.js +1782 -0
  97. package/icons/Action.js +66 -49
  98. package/icons/Assessment.js +84 -68
  99. package/icons/Context.js +75 -61
  100. package/icons/Opinion.js +77 -65
  101. package/icons/iconMap.js +2 -2
  102. package/identity-CPGTqrE4.js +6 -0
  103. package/index-BDVjGvMI.js +696 -0
  104. package/index-BHPT3qoB.js +1172 -0
  105. package/index-BMxyILVD.js +465 -0
  106. package/index-BbPn6-Mw.js +15750 -0
  107. package/index-Dz1kF2MU.js +17654 -0
  108. package/isEmpty-BQkZubqU.js +29 -0
  109. package/isNil-CIubwp4T.js +6 -0
  110. package/isObject-FTY-5JQX.js +7 -0
  111. package/isObjectLike-OAgjjZye.js +48 -0
  112. package/isSymbol-Xd2FsJyp.js +8 -0
  113. package/last-CUCl67Im.js +7 -0
  114. package/main.js +58 -58
  115. package/package.json +1 -1
  116. package/sortBy-B-UKp4GT.js +100 -0
  117. package/sumBy-MYkDPHZL.js +8 -0
  118. package/tabs-xGuUGsJd.js +254 -0
  119. package/text/Frequency.js +42 -23
  120. package/toFinite-Bc55msYj.js +16 -0
  121. package/toNumber-DPxy1FBy.js +39 -0
  122. package/useClueTypeConfig-CH-nGq6a.js +3184 -0
  123. package/utils/chain.js +91 -64
  124. package/utils/classificationParser.js +519 -256
  125. package/utils/constants.js +35 -10
  126. package/utils/graph.js +72 -45
  127. package/utils/hashUtil.js +7 -7
  128. package/utils/line.js +131 -81
  129. package/utils/loggerUtil.js +5 -3
  130. package/utils/sessionStorage.js +41 -29
  131. package/utils/utils.js +9 -9
  132. package/utils/window.js +21 -10
  133. package/utils-Dr4wbKBZ.js +4182 -0
  134. package/ActionForm-BtTv0s4P.js +0 -340
  135. package/AnnotationDetails-D5tBIeEw.js +0 -160
  136. package/AnnotationPreview-CZr_CcZC.js +0 -140
  137. package/ClueEnrichContext-DH9lqjwH.js +0 -401
  138. package/FlexOne-BXWFOd1T.js +0 -6
  139. package/_Map-DXNg_Z-q.js +0 -54
  140. package/_MapCache-Cu25RRDU.js +0 -129
  141. package/_Uint8Array-DlJCtTvG.js +0 -102
  142. package/_baseAssignValue-CUmzp727.js +0 -20
  143. package/_baseClone-BlMmRXeX.js +0 -208
  144. package/_baseExtremum-P_0akmCi.js +0 -27
  145. package/_baseFlatten-CN7vDNEQ.js +0 -72
  146. package/_baseGet-Dgf6_xCm.js +0 -80
  147. package/_baseIsEqual-Cpjtfb3Q.js +0 -173
  148. package/_baseIteratee-CP1bocOX.js +0 -95
  149. package/_baseSlice-M5RKzt1A.js +0 -10
  150. package/_baseSum-wEbgNeUs.js +0 -10
  151. package/_baseUniq-tMFmk80M.js +0 -61
  152. package/_commonjsHelpers-C6fGbg64.js +0 -6
  153. package/_createAggregator-B4Cav8ZM.js +0 -53
  154. package/_getPrototype-CHAFQYL_.js +0 -5
  155. package/_getTag-BV_UoLYG.js +0 -90
  156. package/cloneDeep-BPVpFBzJ.js +0 -8
  157. package/countBy-DOutsa_w.js +0 -8
  158. package/debounce-DryYcbJ4.js +0 -56
  159. package/get-Bow1vKwx.js +0 -8
  160. package/groupBy-BheQYl6f.js +0 -8
  161. package/iconify-BBckr5AQ.js +0 -1263
  162. package/identity-ByMq8VxU.js +0 -6
  163. package/index-BUcHmehh.js +0 -975
  164. package/index-Bo-v5IAc.js +0 -12754
  165. package/index-CnaCBNrd.js +0 -358
  166. package/index-E7g8cRyW.js +0 -568
  167. package/index-p5_wX7q1.js +0 -11729
  168. package/isEmpty-g47Qir2A.js +0 -21
  169. package/isNil-CjWwlQS3.js +0 -6
  170. package/isObject-B53jY8Qg.js +0 -7
  171. package/isObjectLike-BatpeCIi.js +0 -29
  172. package/isSymbol-C3_SC0Qp.js +0 -8
  173. package/last-7CdUxN0r.js +0 -7
  174. package/sortBy-ITdmD17L.js +0 -79
  175. package/sumBy-DxJUU2E8.js +0 -8
  176. package/tabs-CgADNA57.js +0 -195
  177. package/toFinite-BMy6GObD.js +0 -14
  178. package/toNumber-YVhnnJv4.js +0 -31
  179. package/useClueTypeConfig-CneP98N_.js +0 -2260
  180. package/utils-CD0rFIFU.js +0 -2704
@@ -1,31 +1,35 @@
1
- import { useContext as a, useState as i, useEffect as b } from "react";
2
- import { ClueDatabaseContext as f } from "./ClueDatabaseContext.js";
3
- import { useClueEnrichSelector as m } from "./selectors.js";
4
- const x = (r) => {
5
- const t = a(f), o = m((e) => e.ready), [n, u] = i([]);
6
- return b(() => {
7
- if (!o || !r)
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 e = t.selectors.find({ selector: { value: r, error: { $exists: !0 } } }).$.subscribe(
10
- (s) => (
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
- s.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
- e.unsubscribe();
23
- } catch (s) {
24
- console.warn(s);
25
+ observable.unsubscribe();
26
+ } catch (e) {
27
+ console.warn(e);
25
28
  }
26
29
  };
27
- }, [t, o, r]), n;
30
+ }, [database, ready, value]);
31
+ return errors;
28
32
  };
29
33
  export {
30
- x 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,60 +1,80 @@
1
- import { useCallback as c, useMemo as S, useState as L, useEffect as v, createContext as I, useContext as O } 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 i(o) {
6
- const e = c((t) => `${o}.${t}`, [o]), a = c((t) => JSON.parse(localStorage.getItem(e(t))), [e]), m = c(
7
- (t, l) => localStorage.setItem(e(t), JSON.stringify(l)),
8
- [e]
9
- ), s = c(
10
- (t, l = !1) => localStorage.removeItem(l ? t : e(t)),
11
- [e]
12
- ), n = c((t) => a(t) !== null, [a]), r = c(() => Object.keys(localStorage), []), u = c(() => r().map((t) => ({ key: t, value: JSON.parse(localStorage.getItem(t)) })), [r]), g = c(
13
- () => r().forEach((t) => {
14
- t.startsWith(o) && s(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, s, r]
25
+ [prefix, remove, keys]
17
26
  );
18
- return S(
27
+ return useMemo(
19
28
  () => ({
20
- get: a,
21
- set: m,
22
- remove: s,
23
- has: n,
24
- keys: r,
25
- items: u,
26
- clear: g
29
+ get,
30
+ set,
31
+ remove,
32
+ has,
33
+ keys,
34
+ items,
35
+ clear
27
36
  }),
28
- [a, m, s, n, r, u, g]
37
+ [get, set, remove, has, keys, items, clear]
29
38
  );
30
39
  }
31
- function C(o, e, a) {
32
- const { get: m, set: s, has: n, remove: r } = i(a), [u, g] = L(m(o) ?? e);
33
- return v(() => {
34
- e != null && !n(o) && s(o, e);
35
- }, [o, e, n, s]), 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
- u,
38
- (t, l = !0) => {
39
- l && (p(t) ? r(o) : s(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
- () => r(o)
61
+ () => remove(key)
42
62
  ],
43
- [o, u, s, r]
63
+ [key, value, set, remove]
44
64
  );
45
65
  }
46
- const M = I(null);
47
- function _() {
48
- return i(f);
66
+ const LocalStorageContext = createContext(null);
67
+ function useMyLocalStorage() {
68
+ return useLocalStorage(MY_LOCAL_STORAGE_PREFIX);
49
69
  }
50
- function b(o, e) {
51
- return C(o, e, f);
70
+ function useMyLocalStorageItem(key, initialValue) {
71
+ return useLocalStorageItem(key, initialValue, MY_LOCAL_STORAGE_PREFIX);
52
72
  }
53
- function J() {
54
- return O(M);
73
+ function useMyLocalStorageProvider() {
74
+ return useContext(LocalStorageContext);
55
75
  }
56
76
  export {
57
- _ as default,
58
- b as useMyLocalStorageItem,
59
- J as useMyLocalStorageProvider
77
+ useMyLocalStorage as default,
78
+ useMyLocalStorageItem,
79
+ useMyLocalStorageProvider
60
80
  };