@cccsaurora/clue-ui 1.0.2 → 1.0.3

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 (35) hide show
  1. package/{ActionForm-BtTv0s4P.js → ActionForm-Sw7D-KOE.js} +1 -1
  2. package/{AnnotationDetails-D5tBIeEw.js → AnnotationDetails-BoX61_IF.js} +1 -1
  3. package/{AnnotationPreview-CZr_CcZC.js → AnnotationPreview-dYinoSA9.js} +1 -1
  4. package/ClueEnrichContext-CvCIPOMC.js +412 -0
  5. package/components/AnnotationDetailPopover.js +1 -1
  6. package/components/AnnotationDetails.js +2 -2
  7. package/components/AnnotationPreview.js +1 -1
  8. package/components/EnrichedCard.js +1 -1
  9. package/components/EnrichedChip.js +1 -1
  10. package/components/EnrichedTypography.js +1 -1
  11. package/components/actions/ActionForm.js +1 -1
  12. package/components/enrichment/EnrichPopover.js +1 -1
  13. package/components/group/GroupControl.js +1 -1
  14. package/database/index.js +1 -1
  15. package/hooks/ClueActionContext.js +2 -2
  16. package/hooks/ClueDatabaseContext.js +1 -1
  17. package/hooks/ClueEnrichContext.js +1 -1
  18. package/hooks/ClueEnrichContextType.d.ts +7 -0
  19. package/hooks/CluePopupContext.js +2 -2
  20. package/hooks/ClueProvider.js +3 -3
  21. package/hooks/selectors.js +2 -2
  22. package/hooks/useAnnotations.js +1 -1
  23. package/hooks/useClue.js +1 -1
  24. package/hooks/useClueActions.js +1 -1
  25. package/icons/Action.js +2 -2
  26. package/icons/Assessment.js +1 -1
  27. package/icons/Context.js +1 -1
  28. package/icons/Opinion.js +1 -1
  29. package/{index-BUcHmehh.js → index-V7wwd05F.js} +1 -1
  30. package/{index-Bo-v5IAc.js → index-pQg5VUAZ.js} +4743 -4763
  31. package/main.d.ts +3 -2
  32. package/main.js +35 -31
  33. package/package.json +1 -1
  34. package/types/config.d.ts +4 -1
  35. package/ClueEnrichContext-DH9lqjwH.js +0 -401
@@ -6,7 +6,7 @@ import le from "./components/display/icons/Iconified.js";
6
6
  import { J as Je } from "./index-CnaCBNrd.js";
7
7
  import { ClueComponentContext as ie } from "./hooks/ClueComponentContext.js";
8
8
  import { c as Oe, u as ce, a as Pe } from "./index-E7g8cRyW.js";
9
- import { A as ze } from "./index-Bo-v5IAc.js";
9
+ import { A as ze } from "./index-pQg5VUAZ.js";
10
10
  import { a as te } from "./useClueTypeConfig-CneP98N_.js";
11
11
  import { d as de } from "./_baseGet-Dgf6_xCm.js";
12
12
  import { b as We } from "./_baseSlice-M5RKzt1A.js";
@@ -10,7 +10,7 @@ import L from "./hooks/useErrors.js";
10
10
  import { ICON_MAP as T } from "./icons/iconMap.js";
11
11
  import { safeDispatchEvent as U } from "./utils/window.js";
12
12
  import { g as V } from "./groupBy-BheQYl6f.js";
13
- import { u as W } from "./ClueEnrichContext-DH9lqjwH.js";
13
+ import { u as W } from "./ClueEnrichContext-CvCIPOMC.js";
14
14
  import { memo as G, useState as J, useMemo as k, useCallback as P, useEffect as Q } from "react";
15
15
  import { u as X } from "./index-E7g8cRyW.js";
16
16
  import Y from "./components/actions/ExecutePopover.js";
@@ -8,7 +8,7 @@ import { useState as v, useRef as Y, useCallback as x, useEffect as Z, useMemo a
8
8
  import { c as B, u as G } from "./index-E7g8cRyW.js";
9
9
  import { SHOW_EVENT_ID as g, HIDE_EVENT_ID as D } from "./data/event.js";
10
10
  import { safeDispatchEvent as A, safeAddEventListener as S } from "./utils/window.js";
11
- import { i as J } from "./AnnotationDetails-D5tBIeEw.js";
11
+ import { i as J } from "./AnnotationDetails-BoX61_IF.js";
12
12
  const b = B(null), rt = ({ children: c }) => {
13
13
  const [l, e] = v(null), [p, i] = v(null), [r, d] = v(null), [u, m] = v(null), [f, t] = v({}), a = Y(null), P = x((s, o, z, N) => {
14
14
  A(
@@ -0,0 +1,412 @@
1
+ import { jsx as vt } from "react/jsx-runtime";
2
+ import { a as xt } from "./iconify-BBckr5AQ.js";
3
+ import { u as Dt, a as Et, p as ot } from "./useClueTypeConfig-CneP98N_.js";
4
+ import { clueDebugLogger as G } from "./utils/loggerUtil.js";
5
+ import { b as It } from "./_baseSlice-M5RKzt1A.js";
6
+ import { t as Ct } from "./toFinite-BMy6GObD.js";
7
+ import { d as gt } from "./debounce-DryYcbJ4.js";
8
+ import { g as ct } from "./groupBy-BheQYl6f.js";
9
+ import { b as lt } from "./_baseUniq-tMFmk80M.js";
10
+ import { b as $t } from "./_baseIteratee-CP1bocOX.js";
11
+ import { useContext as Ot, useState as H, useMemo as K, useCallback as g, useRef as bt, useEffect as q } from "react";
12
+ import { c as jt } from "./index-E7g8cRyW.js";
13
+ import { ClueDatabaseContext as Pt } from "./hooks/ClueDatabaseContext.js";
14
+ import Mt from "./hooks/useClueConfig.js";
15
+ function qt(e) {
16
+ var s = Ct(e), p = s % 1;
17
+ return s === s ? p ? s - p : s : 0;
18
+ }
19
+ var At = Math.ceil, Bt = Math.max;
20
+ function Rt(e, s, p) {
21
+ s === void 0 ? s = 1 : s = Bt(qt(s), 0);
22
+ var l = e == null ? 0 : e.length;
23
+ if (!l || s < 1)
24
+ return [];
25
+ for (var h = 0, v = 0, O = Array(At(l / s)); h < l; )
26
+ O[v++] = It(e, h, h += s);
27
+ return O;
28
+ }
29
+ function at(e) {
30
+ return e && e.length ? lt(e) : [];
31
+ }
32
+ function Vt(e, s) {
33
+ return e && e.length ? lt(e, $t(s)) : [];
34
+ }
35
+ let J;
36
+ const Ut = new Uint8Array(16);
37
+ function Wt() {
38
+ if (!J && (J = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !J))
39
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
40
+ return J(Ut);
41
+ }
42
+ const d = [];
43
+ for (let e = 0; e < 256; ++e)
44
+ d.push((e + 256).toString(16).slice(1));
45
+ function Ft(e, s = 0) {
46
+ return d[e[s + 0]] + d[e[s + 1]] + d[e[s + 2]] + d[e[s + 3]] + "-" + d[e[s + 4]] + d[e[s + 5]] + "-" + d[e[s + 6]] + d[e[s + 7]] + "-" + d[e[s + 8]] + d[e[s + 9]] + "-" + d[e[s + 10]] + d[e[s + 11]] + d[e[s + 12]] + d[e[s + 13]] + d[e[s + 14]] + d[e[s + 15]];
47
+ }
48
+ const Ht = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), ut = {
49
+ randomUUID: Ht
50
+ };
51
+ function $(e, s, p) {
52
+ if (ut.randomUUID && !e)
53
+ return ut.randomUUID();
54
+ e = e || {};
55
+ const l = e.random || (e.rng || Wt)();
56
+ return l[6] = l[6] & 15 | 64, l[8] = l[8] & 63 | 128, Ft(l);
57
+ }
58
+ const Jt = jt(null), ee = ({
59
+ children: e,
60
+ classification: s,
61
+ baseURL: p,
62
+ getToken: l,
63
+ onNetworkCall: h,
64
+ pickSources: v,
65
+ chunkSize: O = 15,
66
+ maxRequestCount: Q = 4,
67
+ defaultTimeout: A = 5,
68
+ enabled: B = !0,
69
+ ready: ft = !1,
70
+ publicIconify: S = !0,
71
+ skipConfigCall: X = !1,
72
+ customIconify: R,
73
+ debugLogging: x = !0
74
+ }) => {
75
+ var st, nt, it, rt;
76
+ const I = Mt(), i = Ot(Pt), [Y, dt] = H(null), w = K(
77
+ () => {
78
+ var t, n;
79
+ return Y ?? s ?? ((n = (t = I.config) == null ? void 0 : t.c12nDef) == null ? void 0 : n.RESTRICTED);
80
+ },
81
+ [s, (nt = (st = I.config) == null ? void 0 : st.c12nDef) == null ? void 0 : nt.RESTRICTED, Y]
82
+ ), Z = g(
83
+ (t) => {
84
+ var n;
85
+ return dt(t((n = I.config) == null ? void 0 : n.c12nDef));
86
+ },
87
+ [(it = I.config) == null ? void 0 : it.c12nDef]
88
+ ), [C, pt] = H(ft), b = bt(0), [D, mt] = H([]), { availableSources: j, typesDetection: V } = Dt(
89
+ B && C,
90
+ p,
91
+ x,
92
+ l,
93
+ h
94
+ );
95
+ q(() => {
96
+ if (X || !B || !C)
97
+ return;
98
+ const t = {}, n = l == null ? void 0 : l();
99
+ n && (t.Authorization = `Bearer ${n}`);
100
+ let u = { baseURL: p, headers: t };
101
+ h && (u = h(u)), Et.configs.get(u).then(I.setConfig);
102
+ }, [p, h, X, C]);
103
+ const [z, N] = H(R);
104
+ q(() => {
105
+ R && N(R);
106
+ }, [R]), q(() => {
107
+ if (S)
108
+ return;
109
+ let t = z ?? void 0 ?? (p == null ? void 0 : p.replace(/^[^.]+/, "icons"));
110
+ !t && typeof window < "u" && window && !window.location.origin.includes("localhost") && (t = window.location.protocol + "//" + window.location.origin.replace(/^[^.]+/, "icons")), t && (G(`Using ${t} for iconify`, x), xt("", {
111
+ resources: [t]
112
+ }));
113
+ }, [p, z, x, S]);
114
+ const U = g(
115
+ async (t) => {
116
+ const n = [];
117
+ for (const c of t) {
118
+ const { latency: o, source: f, type: r, value: y, items: a, error: m } = c;
119
+ m && n.push({
120
+ id: $(),
121
+ source: f,
122
+ type: r,
123
+ value: y,
124
+ annotations: [],
125
+ classification: w,
126
+ latency: o,
127
+ count: 0,
128
+ error: m
129
+ });
130
+ for (const E of a) {
131
+ const { classification: P, count: M, link: F, annotations: yt } = E;
132
+ await i.selectors.find({ selector: { type: r, value: y, source: f, classification: P } }).incrementalRemove();
133
+ const _ = {
134
+ id: $(),
135
+ source: f,
136
+ type: r,
137
+ value: y,
138
+ annotations: yt,
139
+ classification: P,
140
+ latency: o,
141
+ count: M,
142
+ link: F,
143
+ error: m
144
+ };
145
+ n.some((wt) => wt.id === _.id) && (_.id = $()), n.push(_);
146
+ }
147
+ }
148
+ const u = await i.selectors.bulkInsert(n);
149
+ u.error.length > 0 && (console.warn("Errors on upsert:"), u.error.forEach((c) => console.warn(c.documentId, c.validationErrors ?? c.status)));
150
+ },
151
+ [i, w]
152
+ ), T = g(
153
+ async (t, n, u = {}) => {
154
+ var E, P;
155
+ if (!t || !n)
156
+ return console.error(`Type (${t}) or value (${n}) is empty, returning empty response`), {};
157
+ const c = (v == null ? void 0 : v(D, j, [{ type: t, value: n, classification: u.classification }])) ?? D, o = {
158
+ timeout: A,
159
+ force: !1,
160
+ includeRaw: !1,
161
+ noCache: !1,
162
+ classification: w,
163
+ sources: c,
164
+ ...u
165
+ }, f = {}, r = l == null ? void 0 : l();
166
+ r && (f.Authorization = `Bearer ${r}`);
167
+ let y = { baseURL: p, headers: f };
168
+ h && (y = h(y));
169
+ const a = {
170
+ type: t,
171
+ value: n,
172
+ classification: o.classification
173
+ };
174
+ let m = await ((E = i.status) == null ? void 0 : E.findOne({ selector: { ...a } }).exec());
175
+ m ? await m.incrementalPatch({ status: "in-progress" }) : m = await ((P = i.status) == null ? void 0 : P.insert({
176
+ id: $(),
177
+ type: a.type,
178
+ value: a.value,
179
+ classification: a.classification ?? w,
180
+ status: "in-progress"
181
+ }));
182
+ try {
183
+ const M = await ot([a], o.sources, o, y), F = Object.values(Object.values(M)[0])[0];
184
+ return await (m == null ? void 0 : m.incrementalPatch({ status: "complete" })), await U(Object.values(F)), F;
185
+ } catch (M) {
186
+ return console.error(M), {};
187
+ }
188
+ },
189
+ [
190
+ U,
191
+ j,
192
+ p,
193
+ i,
194
+ w,
195
+ A,
196
+ l,
197
+ h,
198
+ v,
199
+ D
200
+ ]
201
+ ), W = g(
202
+ async (t, n) => {
203
+ const u = (v == null ? void 0 : v(D, j, t)) ?? D, c = {
204
+ timeout: A,
205
+ includeRaw: !1,
206
+ noCache: !1,
207
+ classification: w,
208
+ sources: u,
209
+ ...n
210
+ }, o = {}, f = l == null ? void 0 : l();
211
+ f && (o.Authorization = `Bearer ${f}`);
212
+ let r = { baseURL: p, headers: o };
213
+ h && (r = h(r));
214
+ const y = [];
215
+ for (const a of t) {
216
+ const m = { type: a.type, value: a.value, classification: c.classification };
217
+ let E = await i.status.findOne({
218
+ selector: m
219
+ }).incrementalPatch({
220
+ status: "in-progress"
221
+ });
222
+ E || (E = await i.status.insert({
223
+ id: $(),
224
+ ...m,
225
+ status: "in-progress",
226
+ sources: c.sources
227
+ })), y.push(E.toMutableJSON());
228
+ }
229
+ try {
230
+ const a = await ot(t, c.sources, c, r), m = Object.values(a).flatMap(Object.values).flatMap(Object.values);
231
+ return await U(m), a;
232
+ } catch (a) {
233
+ return console.error(a), {};
234
+ } finally {
235
+ i.status.bulkUpsert(
236
+ Vt(y, (a) => a.id).map((a) => (a.status = "complete", a))
237
+ );
238
+ }
239
+ },
240
+ [
241
+ v,
242
+ D,
243
+ j,
244
+ A,
245
+ w,
246
+ l,
247
+ p,
248
+ h,
249
+ i,
250
+ U
251
+ ]
252
+ ), L = g(async () => {
253
+ const t = await i.selectors.find({ selector: { error: { $exists: !0 } } }).exec(), n = ct(t, "classification"), u = [];
254
+ for (const [c, o] of Object.entries(n)) {
255
+ const f = ct(o, (r) => `${r.type}:${r.value}`);
256
+ Object.values(f).forEach((r) => {
257
+ u.push({
258
+ id: $(),
259
+ type: r[0].type,
260
+ value: r[0].value,
261
+ classification: c,
262
+ sources: at(r.map((y) => y.source)).sort(),
263
+ status: "pending"
264
+ });
265
+ });
266
+ }
267
+ await i.status.bulkInsert(u), await i.selectors.bulkRemove(t);
268
+ }, [i]), k = K(
269
+ () => gt(
270
+ async () => {
271
+ if (i != null && i.status) {
272
+ if (i.status.closed) {
273
+ console.warn("Status database is closed, will not enrich");
274
+ return;
275
+ }
276
+ } else return;
277
+ const t = await i.status.find({ selector: { status: "pending" } }).update({ $set: { status: "in-progress" } });
278
+ if (t.length < 1)
279
+ return;
280
+ const n = Rt(t, O);
281
+ G(
282
+ `Enriching ${t.length} selectors in ${n.length} chunks of ${O}.`,
283
+ x
284
+ ), await Promise.all(
285
+ // For performance reasons, we chunk the requests. This will allow us to take advantage of parellelization in the
286
+ // backend, both on the pod level and kubernetes level
287
+ n.map(async (u) => {
288
+ let c = null;
289
+ if (b.current <= Q)
290
+ b.current += 1;
291
+ else {
292
+ let o = Date.now();
293
+ await new Promise((f) => {
294
+ c = setInterval(() => {
295
+ G(
296
+ `Waiting on ${b.current} existing requests to complete (total delay: ${Date.now() - o}ms)`,
297
+ x
298
+ ), b.current < Q && f();
299
+ }, 400);
300
+ }).finally(() => {
301
+ b.current += 1, clearInterval(c);
302
+ });
303
+ }
304
+ try {
305
+ const o = {}, f = at(u.flatMap((r) => r.sources ?? []));
306
+ f.length > 0 && (o.sources = f), await W(
307
+ u.map((r) => r.toSelector()),
308
+ o
309
+ ), await i.status.findByIds(u.map((r) => r.id)).update({ $set: { status: "complete" } });
310
+ } catch (o) {
311
+ console.error(o);
312
+ } finally {
313
+ b.current -= 1, c && clearInterval(c);
314
+ }
315
+ })
316
+ );
317
+ },
318
+ 200,
319
+ { maxWait: 500, leading: !1 }
320
+ ),
321
+ [W, O, i, x, Q]
322
+ );
323
+ q(() => {
324
+ }, [i, x]), q(() => {
325
+ if (!B || !C || !(i != null && i.status))
326
+ return;
327
+ const t = i.status.find({
328
+ selector: {
329
+ status: "pending"
330
+ }
331
+ }).$.subscribe(() => k());
332
+ return () => {
333
+ try {
334
+ t == null || t.unsubscribe();
335
+ } catch (n) {
336
+ console.warn(n);
337
+ }
338
+ };
339
+ }, [B, C, i, x, k]);
340
+ const tt = g(
341
+ async (t, n, u) => {
342
+ if (!t)
343
+ throw new Error("Type cannot be null");
344
+ if (!n)
345
+ throw new Error("Value cannot be null");
346
+ const c = { type: t, value: n, classification: u ?? w };
347
+ let o = await i.status.findOne({
348
+ selector: c
349
+ }).exec();
350
+ return o || (o = await i.status.queueInsert({
351
+ id: $(),
352
+ ...c,
353
+ status: "pending"
354
+ })), o;
355
+ },
356
+ [w, i]
357
+ ), et = g(
358
+ (t) => {
359
+ var f, r;
360
+ if (!t)
361
+ return null;
362
+ const n = Object.entries(V), u = (f = n.find(([y, a]) => a.exec(t))) == null ? void 0 : f[0];
363
+ if (u)
364
+ return u;
365
+ const c = t.toLowerCase(), o = (r = n.find(([y, a]) => a.exec(c))) == null ? void 0 : r[0];
366
+ return o || null;
367
+ },
368
+ [V]
369
+ ), ht = K(
370
+ () => {
371
+ var t;
372
+ return {
373
+ bulkEnrich: W,
374
+ enrich: T,
375
+ enrichFailedEnrichments: L,
376
+ sources: D,
377
+ setSources: mt,
378
+ typesDetection: V,
379
+ availableSources: j,
380
+ guessType: et,
381
+ queueEnrich: tt,
382
+ setCustomIconify: N,
383
+ setDefaultClassification: Z,
384
+ setReady: pt,
385
+ defaultClassification: w,
386
+ ready: C && !!i && !!((t = I.config) != null && t.c12nDef)
387
+ };
388
+ },
389
+ [
390
+ W,
391
+ T,
392
+ L,
393
+ D,
394
+ V,
395
+ j,
396
+ et,
397
+ tt,
398
+ Z,
399
+ w,
400
+ C,
401
+ i,
402
+ (rt = I.config) == null ? void 0 : rt.c12nDef
403
+ ]
404
+ );
405
+ return /* @__PURE__ */ vt(Jt.Provider, { value: ht, children: e });
406
+ };
407
+ export {
408
+ Jt as C,
409
+ ee as a,
410
+ Vt as b,
411
+ at as u
412
+ };
@@ -1,7 +1,7 @@
1
1
  import { jsx as d } from "react/jsx-runtime";
2
2
  import { Popover as r } from "@mui/material";
3
3
  import v, { useRef as c, useState as g, useEffect as R } from "react";
4
- import { A as k } from "../AnnotationDetails-D5tBIeEw.js";
4
+ import { A as k } from "../AnnotationDetails-BoX61_IF.js";
5
5
  const S = v.memo(({ anchorEl: t, enrichRequest: u, open: o, onClose: l, ...e }) => {
6
6
  var f, s, m;
7
7
  const a = c(), [x, n] = g(!1);
@@ -10,8 +10,8 @@ import "../hooks/useErrors.js";
10
10
  import "../icons/iconMap.js";
11
11
  import "../utils/window.js";
12
12
  import "../groupBy-BheQYl6f.js";
13
- import { A as n } from "../AnnotationDetails-D5tBIeEw.js";
14
- import "../ClueEnrichContext-DH9lqjwH.js";
13
+ import { A as n } from "../AnnotationDetails-BoX61_IF.js";
14
+ import "../ClueEnrichContext-CvCIPOMC.js";
15
15
  import "react";
16
16
  import "../index-E7g8cRyW.js";
17
17
  import "./actions/ExecutePopover.js";
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../iconify-BBckr5AQ.js";
3
3
  import "@mui/material";
4
- import { A as d } from "../AnnotationPreview-CZr_CcZC.js";
4
+ import { A as d } from "../AnnotationPreview-dYinoSA9.js";
5
5
  import "../hooks/useAnnotations.js";
6
6
  import "../utils-CD0rFIFU.js";
7
7
  import "react";
@@ -10,7 +10,7 @@ import L from "../icons/Context.js";
10
10
  import Q from "../icons/Opinion.js";
11
11
  import { ICON_MAP as T } from "../icons/iconMap.js";
12
12
  import R from "../text/Frequency.js";
13
- import { u as U } from "../ClueEnrichContext-DH9lqjwH.js";
13
+ import { u as U } from "../ClueEnrichContext-CvCIPOMC.js";
14
14
  import { memo as V, useState as X, useMemo as z, useCallback as Y } from "react";
15
15
  import { u as Z } from "../index-E7g8cRyW.js";
16
16
  import _ from "./AnnotationEntry.js";
@@ -3,7 +3,7 @@ import { Chip as B, Tooltip as G, Box as $, Stack as H, CircularProgress as J }
3
3
  import K from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext as L } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext as N } from "../hooks/ClueGroupContext.js";
6
- import { C as E } from "../AnnotationPreview-CZr_CcZC.js";
6
+ import { C as E } from "../AnnotationPreview-dYinoSA9.js";
7
7
  import { useClueEnrichSelector as Q } from "../hooks/selectors.js";
8
8
  import U from "../hooks/useAnnotations.js";
9
9
  import V from "../icons/Action.js";
@@ -3,7 +3,7 @@ import { useTheme as K, Stack as L, CircularProgress as N, Tooltip as Q, IconBut
3
3
  import V from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext as W } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext as X } from "../hooks/ClueGroupContext.js";
6
- import { C as S } from "../AnnotationPreview-CZr_CcZC.js";
6
+ import { C as S } from "../AnnotationPreview-dYinoSA9.js";
7
7
  import { useClueEnrichSelector as Y } from "../hooks/selectors.js";
8
8
  import Z from "../hooks/useAnnotations.js";
9
9
  import F from "../icons/Action.js";
@@ -5,7 +5,7 @@ import "@mui/material";
5
5
  import "../display/icons/Iconified.js";
6
6
  import "../../index-CnaCBNrd.js";
7
7
  import "../../hooks/ClueComponentContext.js";
8
- import { A } from "../../ActionForm-BtTv0s4P.js";
8
+ import { A } from "../../ActionForm-Sw7D-KOE.js";
9
9
  import "../../utils-CD0rFIFU.js";
10
10
  import "react";
11
11
  import "../../index-E7g8cRyW.js";
@@ -1,7 +1,7 @@
1
1
  import { jsxs as y, Fragment as C, jsx as e } from "react/jsx-runtime";
2
2
  import { useTheme as k, Tooltip as S, IconButton as E, CircularProgress as d, Button as z, Popover as I, Paper as j, Stack as c, Box as P, Typography as B, Divider as O } from "@mui/material";
3
3
  import { useClueComponentSelector as T, useClueEnrichSelector as p } from "../../hooks/selectors.js";
4
- import { c as w } from "../../ActionForm-BtTv0s4P.js";
4
+ import { c as w } from "../../ActionForm-Sw7D-KOE.js";
5
5
  import { useState as m, useRef as M, useCallback as D, useEffect as F } from "react";
6
6
  import g from "../display/icons/Iconified.js";
7
7
  const J = ({ show: t = !1, size: b = "small", selector: n }) => {
@@ -6,7 +6,7 @@ import { SNACKBAR_EVENT_ID as w } from "../../data/event.js";
6
6
  import { ClueGroupContext as j } from "../../hooks/ClueGroupContext.js";
7
7
  import { useClueComponentSelector as A, useClueEnrichSelector as u } from "../../hooks/selectors.js";
8
8
  import { safeDispatchEvent as B } from "../../utils/window.js";
9
- import { c as F } from "../../ActionForm-BtTv0s4P.js";
9
+ import { c as F } from "../../ActionForm-Sw7D-KOE.js";
10
10
  import { useState as d, useMemo as O, useCallback as T } from "react";
11
11
  import { u as D } from "../../index-E7g8cRyW.js";
12
12
  import G from "../actions/ExecutePopover.js";
package/database/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { b as f } from "../index-Bo-v5IAc.js";
1
+ import { b as f } from "../index-pQg5VUAZ.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,8 +1,8 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@mui/material";
3
- import "../index-Bo-v5IAc.js";
3
+ import "../index-pQg5VUAZ.js";
4
4
  import "../useClueTypeConfig-CneP98N_.js";
5
- import { a as A, C as d } from "../ActionForm-BtTv0s4P.js";
5
+ import { a as A, C as d } from "../ActionForm-Sw7D-KOE.js";
6
6
  import "../components/actions/ResultModal.js";
7
7
  import "../components/display/icons/Iconified.js";
8
8
  import "../components/ErrorBoundary.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { b as u } from "../index-Bo-v5IAc.js";
2
+ import { b as u } from "../index-pQg5VUAZ.js";
3
3
  import { createContext as l, useState as n, useEffect as i } from "react";
4
4
  const m = l(null), p = ({
5
5
  children: a,
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "../iconify-BBckr5AQ.js";
3
3
  import "../useClueTypeConfig-CneP98N_.js";
4
4
  import "../utils/loggerUtil.js";
5
- import { C as l, a as s } from "../ClueEnrichContext-DH9lqjwH.js";
5
+ import { C as l, a as s } from "../ClueEnrichContext-CvCIPOMC.js";
6
6
  import "../debounce-DryYcbJ4.js";
7
7
  import "../groupBy-BheQYl6f.js";
8
8
  import "react";
@@ -1,5 +1,6 @@
1
1
  import { StatusDocument } from "../database/types";
2
2
  import { BulkEnrichResponses, EnrichResponses, FailedRequest, Selector } from "../types/lookup";
3
+ import { ClassificationDefinition } from "../utils/classificationParser";
3
4
 
4
5
 
5
6
  export interface ClueEnrichContextType {
@@ -104,6 +105,12 @@ export interface ClueEnrichContextType {
104
105
  */
105
106
  setCustomIconify: (value: string) => void;
106
107
 
108
+ /**
109
+ * Set the default classification given a classification definition
110
+ * @param func the function the will return the default classification
111
+ */
112
+ setDefaultClassification: (func: (classification: ClassificationDefinition) => string) => void;
113
+
107
114
  /**
108
115
  * Is the clue context ready to enrich?
109
116
  */
@@ -1,9 +1,9 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../components/AnnotationDetailPopover.js";
3
- import { C as a, a as P } from "../AnnotationPreview-CZr_CcZC.js";
3
+ import { C as a, a as P } from "../AnnotationPreview-dYinoSA9.js";
4
4
  import "../data/event.js";
5
5
  import "../utils/window.js";
6
- import "../AnnotationDetails-D5tBIeEw.js";
6
+ import "../AnnotationDetails-BoX61_IF.js";
7
7
  import "react";
8
8
  import "../index-E7g8cRyW.js";
9
9
  export {
@@ -1,11 +1,11 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { C as i } from "../ActionForm-BtTv0s4P.js";
2
+ import { C as i } from "../ActionForm-Sw7D-KOE.js";
3
3
  import { ClueComponentProvider as m } from "./ClueComponentContext.js";
4
4
  import { ClueConfigProvider as n } from "./ClueConfigProvider.js";
5
5
  import { ClueDatabaseProvider as t } from "./ClueDatabaseContext.js";
6
- import { a as d } from "../ClueEnrichContext-DH9lqjwH.js";
6
+ import { a as d } from "../ClueEnrichContext-CvCIPOMC.js";
7
7
  import { ClueFetcherProvider as l } from "./ClueFetcherContext.js";
8
- import { a as c } from "../AnnotationPreview-CZr_CcZC.js";
8
+ import { a as c } from "../AnnotationPreview-dYinoSA9.js";
9
9
  const p = ({ children: o, ...e }) => /* @__PURE__ */ r(m, { ...e, children: /* @__PURE__ */ r(n, { config: e.config, children: /* @__PURE__ */ r(t, { ...e, children: /* @__PURE__ */ r(d, { ...e, children: /* @__PURE__ */ r(l, { ...e, children: /* @__PURE__ */ r(i, { ...e, children: /* @__PURE__ */ r(c, { children: o }) }) }) }) }) }) });
10
10
  export {
11
11
  p as ClueProvider
@@ -1,7 +1,7 @@
1
1
  import { u as t } from "../index-E7g8cRyW.js";
2
- import { a as o } from "../ActionForm-BtTv0s4P.js";
2
+ import { a as o } from "../ActionForm-Sw7D-KOE.js";
3
3
  import { ClueComponentContext as r } from "./ClueComponentContext.js";
4
- import { C as n } from "../ClueEnrichContext-DH9lqjwH.js";
4
+ import { C as n } from "../ClueEnrichContext-CvCIPOMC.js";
5
5
  import { ClueFetcherContext as u } from "./ClueFetcherContext.js";
6
6
  const i = (e) => t(u, e), p = (e) => t(o, e), a = (e) => t(n, e), f = (e) => t(r, e);
7
7
  export {
@@ -1,4 +1,4 @@
1
- import { b as p } from "../ClueEnrichContext-DH9lqjwH.js";
1
+ import { b as p } from "../ClueEnrichContext-CvCIPOMC.js";
2
2
  import { useContext as q, useMemo as g, useState as h, useEffect as a } from "react";
3
3
  import { ClueDatabaseContext as A } from "./ClueDatabaseContext.js";
4
4
  import { useClueEnrichSelector as c } from "./selectors.js";
package/hooks/useClue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as t } from "../index-E7g8cRyW.js";
2
- import { C as e } from "../ClueEnrichContext-DH9lqjwH.js";
2
+ import { C as e } from "../ClueEnrichContext-CvCIPOMC.js";
3
3
  const s = () => t(e);
4
4
  export {
5
5
  s as default
@@ -1,5 +1,5 @@
1
1
  import "../index-E7g8cRyW.js";
2
- import { u as a } from "../ActionForm-BtTv0s4P.js";
2
+ import { u as a } from "../ActionForm-Sw7D-KOE.js";
3
3
  export {
4
4
  a as default
5
5
  };
package/icons/Action.js CHANGED
@@ -2,8 +2,8 @@ import { jsx as e, jsxs as z } from "react/jsx-runtime";
2
2
  import { I } from "../iconify-BBckr5AQ.js";
3
3
  import { useTheme as j, Stack as i, Divider as l, Typography as C } from "@mui/material";
4
4
  import R from "../components/CountBadge.js";
5
- import { C as v } from "../AnnotationPreview-CZr_CcZC.js";
6
- import { u as B } from "../ActionForm-BtTv0s4P.js";
5
+ import { C as v } from "../AnnotationPreview-dYinoSA9.js";
6
+ import { u as B } from "../ActionForm-Sw7D-KOE.js";
7
7
  import { g as D } from "../groupBy-BheQYl6f.js";
8
8
  import { memo as L, useRef as A, useMemo as s, useEffect as O } from "react";
9
9
  import { u as M } from "../index-E7g8cRyW.js";