@cccsaurora/clue-ui 1.0.0 → 1.0.1-dev.55

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-c5hLIfQ-.js +436 -0
  2. package/AnnotationPreview-BvNpZOP0.js +188 -0
  3. package/ClueEnrichContext-m-4vn9rz.js +518 -0
  4. package/FlexOne-BSYAhhtG.js +9 -0
  5. package/_Map-kgDsDYxq.js +64 -0
  6. package/_MapCache-DabaaWfq.js +161 -0
  7. package/_Uint8Array-BlVVH1tp.js +129 -0
  8. package/_baseAssignValue-CNbcU6Nb.js +25 -0
  9. package/_baseClone-D3a8Pa4T.js +284 -0
  10. package/_baseExtremum-B1o1zHjR.js +33 -0
  11. package/_baseFlatten-D4huXoEI.js +92 -0
  12. package/_baseGet-BSK_nnoz.js +109 -0
  13. package/_baseIsEqual-B5xLoweL.js +238 -0
  14. package/_baseIteratee-p6Nj07-n.js +126 -0
  15. package/_baseSlice-GAv_YFTT.js +20 -0
  16. package/_baseSum-D0WC1dN0.js +13 -0
  17. package/_baseUniq-CpupKWcL.js +89 -0
  18. package/_commonjsHelpers-CUmg6egw.js +6 -0
  19. package/_createAggregator-BpVy5xMi.js +63 -0
  20. package/_getPrototype-D1LAdQKO.js +5 -0
  21. package/_getTag-D3ToyefI.js +126 -0
  22. package/cloneDeep-CjP5k9zW.js +8 -0
  23. package/components/AnnotationBody.js +49 -34
  24. package/components/AnnotationDetailPopover.js +36 -30
  25. package/components/AnnotationDetails.js +109 -94
  26. package/components/AnnotationEntry.js +55 -52
  27. package/components/AnnotationPreview.js +5 -5
  28. package/components/ClassificationChip.js +44 -23
  29. package/components/CountBadge.js +31 -26
  30. package/components/EnrichedCard.js +104 -92
  31. package/components/EnrichedChip.js +134 -109
  32. package/components/EnrichedTypography.js +136 -110
  33. package/components/ErrorBoundary.js +28 -24
  34. package/components/RetryFailedEnrichments.js +10 -9
  35. package/components/SourcePicker.js +57 -49
  36. package/components/actions/ActionForm.js +4 -4
  37. package/components/actions/ExecutePopover.js +64 -50
  38. package/components/actions/ResultModal.js +37 -34
  39. package/components/actions/form/schemaAdapter.js +39 -20
  40. package/components/display/graph/ExpandMoreButton.js +10 -10
  41. package/components/display/graph/elements/NodeCard.js +92 -76
  42. package/components/display/graph/elements/NodeTag.js +15 -13
  43. package/components/display/graph/index.js +258 -200
  44. package/components/display/graph/visualizations/Leaf.js +88 -69
  45. package/components/display/graph/visualizations/cloud/index.js +98 -81
  46. package/components/display/graph/visualizations/icons/BaseIcon.js +26 -21
  47. package/components/display/graph/visualizations/icons/BugIcon.js +12 -12
  48. package/components/display/graph/visualizations/icons/HostIcon.js +12 -12
  49. package/components/display/graph/visualizations/icons/NetworkIcon.js +12 -12
  50. package/components/display/graph/visualizations/icons/ProcessIcon.js +12 -12
  51. package/components/display/graph/visualizations/icons/TargetIcon.js +13 -13
  52. package/components/display/graph/visualizations/icons/index.js +14 -13
  53. package/components/display/graph/visualizations/panels/NodePanel.js +10 -8
  54. package/components/display/graph/visualizations/tree/BundleLine.js +108 -81
  55. package/components/display/graph/visualizations/tree/Triangle.js +13 -13
  56. package/components/display/graph/visualizations/tree/index.js +407 -305
  57. package/components/display/icons/Iconified.js +27 -12
  58. package/components/display/json/index.js +4 -4
  59. package/components/display/markdown/DynamicTabs.js +22 -17
  60. package/components/display/markdown/index.js +8527 -5670
  61. package/components/display/markdown/markdownPlugins/tabs.js +1 -1
  62. package/components/enrichment/EnrichPopover.js +55 -47
  63. package/components/fetchers/Fetcher.js +123 -95
  64. package/components/fetchers/PreviewModal.js +20 -17
  65. package/components/fetchers/StatusChip.js +22 -18
  66. package/components/group/Entry.js +13 -11
  67. package/components/group/Group.js +13 -10
  68. package/components/group/GroupControl.js +76 -65
  69. package/components/stats/QueryStatus.js +37 -28
  70. package/countBy-C69WslUA.js +14 -0
  71. package/data/event.js +6 -4
  72. package/database/index.js +2 -2
  73. package/debounce-bV0h5FC5.js +92 -0
  74. package/get-D3C3lEU3.js +8 -0
  75. package/groupBy-DC2oOuBN.js +14 -0
  76. package/hooks/ClueActionContext.js +6 -6
  77. package/hooks/ClueComponentContext.js +29 -23
  78. package/hooks/ClueConfigProvider.js +14 -12
  79. package/hooks/ClueDatabaseContext.js +19 -13
  80. package/hooks/ClueEnrichContext.js +8 -8
  81. package/hooks/ClueFetcherContext.js +74 -46
  82. package/hooks/ClueGroupContext.js +17 -14
  83. package/hooks/CluePopupContext.js +5 -5
  84. package/hooks/ClueProvider.js +12 -10
  85. package/hooks/selectors.js +22 -11
  86. package/hooks/useAnnotations.js +48 -32
  87. package/hooks/useClue.js +6 -4
  88. package/hooks/useClueActions.js +3 -3
  89. package/hooks/useClueConfig.js +5 -5
  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 +63 -43
  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 +75 -61
  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-BDrtH5ec.js +465 -0
  104. package/index-BbPn6-Mw.js +15750 -0
  105. package/index-C9lySIVX.js +1172 -0
  106. package/index-Dn2NHyXg.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/isUndefined-CE8h73dH.js +10 -0
  113. package/last-CUCl67Im.js +7 -0
  114. package/main.js +68 -68
  115. package/package.json +4 -4
  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-D4zcy8Gr.js +3184 -0
  123. package/utils/chain.js +91 -64
  124. package/utils/classificationParser.js +504 -254
  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-CxIhC2xH.js +4182 -0
  134. package/ActionForm-WIj7BfD5.js +0 -340
  135. package/AnnotationPreview-DWRDhxUB.js +0 -140
  136. package/ClueEnrichContext-CbJVBm4w.js +0 -397
  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-C6fGbg64.js +0 -6
  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-4YFAh_sa.js +0 -358
  163. package/index-E7g8cRyW.js +0 -568
  164. package/index-HuYhutsd.js +0 -975
  165. package/index-WvFmjbxF.js +0 -12734
  166. package/index-p5_wX7q1.js +0 -11729
  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/isUndefined-DiNCDKoz.js +0 -10
  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-BQ33EiyB.js +0 -2273
  180. package/utils-C_RX5uMP.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 g, useState as L, useEffect as v, createContext as I, useContext as d } from "react";
2
- import { i as O, a as p } from "../isUndefined-DiNCDKoz.js";
1
+ import { useCallback, useMemo, useState, useEffect, createContext, useContext } from "react";
2
+ import { i as isNull, a as isUndefined } from "../isUndefined-CE8h73dH.js";
3
3
  import "react/jsx-runtime";
4
- import { MY_LOCAL_STORAGE_PREFIX as S } 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
- ), r = c(
10
- (t, l = !1) => localStorage.removeItem(l ? t : e(t)),
11
- [e]
12
- ), n = c((t) => a(t) !== null, [a]), s = c(() => Object.keys(localStorage), []), u = c(() => s().map((t) => ({ key: t, value: JSON.parse(localStorage.getItem(t)) })), [s]), f = 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 g(
27
+ return useMemo(
19
28
  () => ({
20
- get: a,
21
- set: m,
22
- remove: r,
23
- has: n,
24
- keys: s,
25
- items: u,
26
- clear: f
29
+ get,
30
+ set,
31
+ remove,
32
+ has,
33
+ keys,
34
+ items,
35
+ clear
27
36
  }),
28
- [a, m, r, n, s, u, f]
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 } = i(a), [u, f] = L(m(o) ?? e);
33
- return v(() => {
34
- e != null && !n(o) && r(o, e);
35
- }, [o, e, n, r]), g(
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 && (!O(t) && !p(t) ? r(o, t) : s(o)), f(t);
50
+ value,
51
+ (newValue, save = true) => {
52
+ if (save) {
53
+ if (!isNull(newValue) && !isUndefined(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, u, r, s]
63
+ [key, value, set, remove]
44
64
  );
45
65
  }
46
- const M = I(null);
47
- function b() {
48
- return i(S);
66
+ const LocalStorageContext = createContext(null);
67
+ function useMyLocalStorage() {
68
+ return useLocalStorage(MY_LOCAL_STORAGE_PREFIX);
49
69
  }
50
- function J(o, e) {
51
- return C(o, e, S);
70
+ function useMyLocalStorageItem(key, initialValue) {
71
+ return useLocalStorageItem(key, initialValue, MY_LOCAL_STORAGE_PREFIX);
52
72
  }
53
- function A() {
54
- return d(M);
73
+ function useMyLocalStorageProvider() {
74
+ return useContext(LocalStorageContext);
55
75
  }
56
76
  export {
57
- b as default,
58
- J as useMyLocalStorageItem,
59
- A as useMyLocalStorageProvider
77
+ useMyLocalStorage as default,
78
+ useMyLocalStorageItem,
79
+ useMyLocalStorageProvider
60
80
  };