@cccsaurora/clue-ui 0.15.0-dev.31 → 0.15.0

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 (257) hide show
  1. package/package.json +143 -39
  2. package/ActionForm-DgfJwTzt.js +0 -436
  3. package/AnnotationPreview-BvNpZOP0.js +0 -188
  4. package/ClueEnrichContext-DXwLVp0M.js +0 -518
  5. package/FlexOne-BSYAhhtG.js +0 -9
  6. package/_Map-kgDsDYxq.js +0 -64
  7. package/_MapCache-DabaaWfq.js +0 -161
  8. package/_Uint8Array-BlVVH1tp.js +0 -129
  9. package/_baseAssignValue-CNbcU6Nb.js +0 -25
  10. package/_baseClone-D3a8Pa4T.js +0 -284
  11. package/_baseExtremum-B1o1zHjR.js +0 -33
  12. package/_baseFlatten-D4huXoEI.js +0 -92
  13. package/_baseGet-BSK_nnoz.js +0 -109
  14. package/_baseIsEqual-B5xLoweL.js +0 -238
  15. package/_baseIteratee-p6Nj07-n.js +0 -126
  16. package/_baseSlice-GAv_YFTT.js +0 -20
  17. package/_baseSum-D0WC1dN0.js +0 -13
  18. package/_baseUniq-CpupKWcL.js +0 -89
  19. package/_commonjsHelpers-CUmg6egw.js +0 -6
  20. package/_createAggregator-BpVy5xMi.js +0 -63
  21. package/_getPrototype-D1LAdQKO.js +0 -5
  22. package/_getTag-D3ToyefI.js +0 -126
  23. package/api/lookup/enrich.d.ts +0 -10
  24. package/api/lookup/index.d.ts +0 -5
  25. package/api/lookup/types.d.ts +0 -5
  26. package/api/lookup/types_detection.d.ts +0 -5
  27. package/cloneDeep-CjP5k9zW.js +0 -8
  28. package/components/AnnotationBody.d.ts +0 -6
  29. package/components/AnnotationBody.js +0 -56
  30. package/components/AnnotationDetailPopover.d.ts +0 -14
  31. package/components/AnnotationDetailPopover.js +0 -61
  32. package/components/AnnotationDetails.d.ts +0 -8
  33. package/components/AnnotationDetails.js +0 -172
  34. package/components/AnnotationEntry.d.ts +0 -6
  35. package/components/AnnotationEntry.js +0 -59
  36. package/components/AnnotationPreview.d.ts +0 -14
  37. package/components/AnnotationPreview.js +0 -11
  38. package/components/ClassificationChip.d.ts +0 -11
  39. package/components/ClassificationChip.js +0 -52
  40. package/components/CountBadge.d.ts +0 -8
  41. package/components/CountBadge.js +0 -34
  42. package/components/EnrichedCard.d.ts +0 -14
  43. package/components/EnrichedCard.js +0 -162
  44. package/components/EnrichedChip.d.ts +0 -9
  45. package/components/EnrichedChip.js +0 -176
  46. package/components/EnrichedTypography.d.ts +0 -16
  47. package/components/EnrichedTypography.js +0 -178
  48. package/components/ErrorBoundary.d.ts +0 -15
  49. package/components/ErrorBoundary.js +0 -36
  50. package/components/RetryFailedEnrichments.d.ts +0 -2
  51. package/components/RetryFailedEnrichments.js +0 -13
  52. package/components/SourcePicker.d.ts +0 -2
  53. package/components/SourcePicker.js +0 -98
  54. package/components/actions/ActionForm.d.ts +0 -6
  55. package/components/actions/ActionForm.js +0 -16
  56. package/components/actions/ExecutePopover.d.ts +0 -10
  57. package/components/actions/ExecutePopover.js +0 -93
  58. package/components/actions/ResultModal.d.ts +0 -9
  59. package/components/actions/ResultModal.js +0 -46
  60. package/components/actions/form/schemaAdapter.d.ts +0 -3
  61. package/components/actions/form/schemaAdapter.js +0 -47
  62. package/components/display/graph/ExpandMoreButton.d.ts +0 -7
  63. package/components/display/graph/ExpandMoreButton.js +0 -18
  64. package/components/display/graph/elements/NodeCard.d.ts +0 -10
  65. package/components/display/graph/elements/NodeCard.js +0 -146
  66. package/components/display/graph/elements/NodeTag.d.ts +0 -9
  67. package/components/display/graph/elements/NodeTag.js +0 -17
  68. package/components/display/graph/index.d.ts +0 -9
  69. package/components/display/graph/index.js +0 -438
  70. package/components/display/graph/visualizations/Leaf.d.ts +0 -25
  71. package/components/display/graph/visualizations/Leaf.js +0 -125
  72. package/components/display/graph/visualizations/cloud/index.d.ts +0 -24
  73. package/components/display/graph/visualizations/cloud/index.js +0 -141
  74. package/components/display/graph/visualizations/icons/BaseIcon.d.ts +0 -12
  75. package/components/display/graph/visualizations/icons/BaseIcon.js +0 -37
  76. package/components/display/graph/visualizations/icons/BugIcon.d.ts +0 -5
  77. package/components/display/graph/visualizations/icons/BugIcon.js +0 -18
  78. package/components/display/graph/visualizations/icons/HostIcon.d.ts +0 -5
  79. package/components/display/graph/visualizations/icons/HostIcon.js +0 -24
  80. package/components/display/graph/visualizations/icons/NetworkIcon.d.ts +0 -5
  81. package/components/display/graph/visualizations/icons/NetworkIcon.js +0 -24
  82. package/components/display/graph/visualizations/icons/ProcessIcon.d.ts +0 -5
  83. package/components/display/graph/visualizations/icons/ProcessIcon.js +0 -18
  84. package/components/display/graph/visualizations/icons/TargetIcon.d.ts +0 -5
  85. package/components/display/graph/visualizations/icons/TargetIcon.js +0 -19
  86. package/components/display/graph/visualizations/icons/index.d.ts +0 -2
  87. package/components/display/graph/visualizations/icons/index.js +0 -16
  88. package/components/display/graph/visualizations/panels/NodePanel.d.ts +0 -8
  89. package/components/display/graph/visualizations/panels/NodePanel.js +0 -12
  90. package/components/display/graph/visualizations/tree/BundleLine.d.ts +0 -29
  91. package/components/display/graph/visualizations/tree/BundleLine.js +0 -121
  92. package/components/display/graph/visualizations/tree/Triangle.d.ts +0 -9
  93. package/components/display/graph/visualizations/tree/Triangle.js +0 -26
  94. package/components/display/graph/visualizations/tree/index.d.ts +0 -36
  95. package/components/display/graph/visualizations/tree/index.js +0 -485
  96. package/components/display/graph/visualizations/tree/types.d.ts +0 -11
  97. package/components/display/graph/visualizations/tree/types.js +0 -1
  98. package/components/display/icons/Iconified.d.ts +0 -9
  99. package/components/display/icons/Iconified.js +0 -29
  100. package/components/display/json/index.d.ts +0 -14
  101. package/components/display/json/index.js +0 -12
  102. package/components/display/markdown/DynamicTabs.d.ts +0 -8
  103. package/components/display/markdown/DynamicTabs.js +0 -26
  104. package/components/display/markdown/index.d.ts +0 -9
  105. package/components/display/markdown/index.js +0 -13389
  106. package/components/display/markdown/markdownPlugins/tabs.d.ts +0 -3
  107. package/components/display/markdown/markdownPlugins/tabs.js +0 -4
  108. package/components/enrichment/EnrichPopover.d.ts +0 -10
  109. package/components/enrichment/EnrichPopover.js +0 -88
  110. package/components/fetchers/Fetcher.d.ts +0 -17
  111. package/components/fetchers/Fetcher.js +0 -188
  112. package/components/fetchers/PreviewModal.d.ts +0 -8
  113. package/components/fetchers/PreviewModal.js +0 -22
  114. package/components/fetchers/StatusChip.d.ts +0 -8
  115. package/components/fetchers/StatusChip.js +0 -30
  116. package/components/group/Entry.d.ts +0 -8
  117. package/components/group/Entry.js +0 -15
  118. package/components/group/Group.d.ts +0 -12
  119. package/components/group/Group.js +0 -15
  120. package/components/group/GroupControl.d.ts +0 -4
  121. package/components/group/GroupControl.js +0 -103
  122. package/components/stats/QueryStatus.d.ts +0 -4
  123. package/components/stats/QueryStatus.js +0 -61
  124. package/countBy-C69WslUA.js +0 -14
  125. package/data/event.d.ts +0 -12
  126. package/data/event.js +0 -8
  127. package/database/index.d.ts +0 -4
  128. package/database/index.js +0 -4
  129. package/database/selector.schema.json.d.ts +0 -119
  130. package/database/status.schema.json.d.ts +0 -38
  131. package/database/types.d.ts +0 -64
  132. package/debounce-bV0h5FC5.js +0 -92
  133. package/en/translation.json +0 -135
  134. package/fr/translation.json +0 -135
  135. package/get-D3C3lEU3.js +0 -8
  136. package/groupBy-DC2oOuBN.js +0 -14
  137. package/hooks/ClueActionContext.d.ts +0 -86
  138. package/hooks/ClueActionContext.js +0 -18
  139. package/hooks/ClueComponentContext.d.ts +0 -10
  140. package/hooks/ClueComponentContext.js +0 -40
  141. package/hooks/ClueConfigProvider.d.ts +0 -12
  142. package/hooks/ClueConfigProvider.js +0 -23
  143. package/hooks/ClueDatabaseContext.d.ts +0 -10
  144. package/hooks/ClueDatabaseContext.js +0 -23
  145. package/hooks/ClueEnrichContext.d.ts +0 -6
  146. package/hooks/ClueEnrichContext.js +0 -15
  147. package/hooks/ClueEnrichContextType.d.ts +0 -113
  148. package/hooks/ClueEnrichProps.d.ts +0 -81
  149. package/hooks/ClueFetcherContext.d.ts +0 -35
  150. package/hooks/ClueFetcherContext.js +0 -88
  151. package/hooks/ClueGroupContext.d.ts +0 -14
  152. package/hooks/ClueGroupContext.js +0 -23
  153. package/hooks/CluePopupContext.d.ts +0 -24
  154. package/hooks/CluePopupContext.js +0 -12
  155. package/hooks/ClueProvider.d.ts +0 -9
  156. package/hooks/ClueProvider.js +0 -14
  157. package/hooks/selectors.d.ts +0 -10
  158. package/hooks/selectors.js +0 -24
  159. package/hooks/useAnnotations.d.ts +0 -24
  160. package/hooks/useAnnotations.js +0 -69
  161. package/hooks/useClue.d.ts +0 -4
  162. package/hooks/useClue.js +0 -8
  163. package/hooks/useClueActions.d.ts +0 -4
  164. package/hooks/useClueActions.js +0 -5
  165. package/hooks/useClueConfig.d.ts +0 -1
  166. package/hooks/useClueConfig.js +0 -8
  167. package/hooks/useClueTypeConfig.d.ts +0 -17
  168. package/hooks/useClueTypeConfig.js +0 -7
  169. package/hooks/useComparator.d.ts +0 -16
  170. package/hooks/useComparator.js +0 -1060
  171. package/hooks/useErrors.d.ts +0 -17
  172. package/hooks/useErrors.js +0 -35
  173. package/hooks/useMyHighlights.d.ts +0 -11
  174. package/hooks/useMyHighlights.js +0 -74
  175. package/hooks/useMyLocalStorage.d.ts +0 -16
  176. package/hooks/useMyLocalStorage.js +0 -80
  177. package/iconify-CXMreGTg.js +0 -1782
  178. package/icons/Action.d.ts +0 -9
  179. package/icons/Action.js +0 -90
  180. package/icons/Assessment.d.ts +0 -11
  181. package/icons/Assessment.js +0 -123
  182. package/icons/Context.d.ts +0 -12
  183. package/icons/Context.js +0 -83
  184. package/icons/Opinion.d.ts +0 -11
  185. package/icons/Opinion.js +0 -125
  186. package/icons/iconMap.d.ts +0 -7
  187. package/icons/iconMap.js +0 -10
  188. package/identity-CPGTqrE4.js +0 -6
  189. package/index-BDVjGvMI.js +0 -696
  190. package/index-BDrtH5ec.js +0 -465
  191. package/index-C9lySIVX.js +0 -1172
  192. package/index-DJYqRcxJ.js +0 -15750
  193. package/index-Dn2NHyXg.js +0 -17654
  194. package/index.css +0 -21
  195. package/isEmpty-BQkZubqU.js +0 -29
  196. package/isNil-CIubwp4T.js +0 -6
  197. package/isObject-FTY-5JQX.js +0 -7
  198. package/isObjectLike-OAgjjZye.js +0 -48
  199. package/isSymbol-Xd2FsJyp.js +0 -8
  200. package/isUndefined-CE8h73dH.js +0 -10
  201. package/last-CUCl67Im.js +0 -7
  202. package/main.d.ts +0 -42
  203. package/main.js +0 -70
  204. package/public/manifest.json +0 -16
  205. package/public/robots.txt +0 -3
  206. package/public/svg/dark/clue-h.svg +0 -52
  207. package/public/svg/dark/clue-icon1-simple.svg +0 -33
  208. package/public/svg/dark/clue-icon1.svg +0 -44
  209. package/public/svg/dark/clue-icon2-simple.svg +0 -26
  210. package/public/svg/dark/clue-icon2.svg +0 -37
  211. package/public/svg/dark/clue-name.svg +0 -14
  212. package/public/svg/dark/clue-v.svg +0 -52
  213. package/public/svg/light/clue-h.svg +0 -60
  214. package/public/svg/light/clue-icon1-simple.svg +0 -37
  215. package/public/svg/light/clue-icon1.svg +0 -48
  216. package/public/svg/light/clue-icon2-simple.svg +0 -30
  217. package/public/svg/light/clue-icon2.svg +0 -41
  218. package/public/svg/light/clue-name.svg +0 -14
  219. package/public/svg/light/clue-v.svg +0 -60
  220. package/sortBy-B-UKp4GT.js +0 -100
  221. package/sumBy-MYkDPHZL.js +0 -8
  222. package/tabs-xGuUGsJd.js +0 -254
  223. package/text/Frequency.d.ts +0 -9
  224. package/text/Frequency.js +0 -49
  225. package/toFinite-CArjry_l.js +0 -16
  226. package/toNumber-DPxy1FBy.js +0 -39
  227. package/types/EnrichmentProps.d.ts +0 -73
  228. package/types/RunningActionData.d.ts +0 -15
  229. package/types/WithActionData.d.ts +0 -9
  230. package/types/action.d.ts +0 -25
  231. package/types/config.d.ts +0 -16
  232. package/types/fetcher.d.ts +0 -60
  233. package/types/graph.d.ts +0 -101
  234. package/types/lookup.d.ts +0 -62
  235. package/types/network.d.ts +0 -9
  236. package/useClueTypeConfig-D9ZSxa4F.js +0 -3096
  237. package/utils/chain.d.ts +0 -14
  238. package/utils/chain.js +0 -106
  239. package/utils/classificationParser.d.ts +0 -195
  240. package/utils/classificationParser.js +0 -553
  241. package/utils/constants.d.ts +0 -26
  242. package/utils/constants.js +0 -36
  243. package/utils/graph.d.ts +0 -13
  244. package/utils/graph.js +0 -79
  245. package/utils/hashUtil.d.ts +0 -6
  246. package/utils/hashUtil.js +0 -11
  247. package/utils/line.d.ts +0 -28
  248. package/utils/line.js +0 -136
  249. package/utils/loggerUtil.d.ts +0 -6
  250. package/utils/loggerUtil.js +0 -8
  251. package/utils/sessionStorage.d.ts +0 -9
  252. package/utils/sessionStorage.js +0 -51
  253. package/utils/utils.d.ts +0 -13
  254. package/utils/utils.js +0 -11
  255. package/utils/window.d.ts +0 -3
  256. package/utils/window.js +0 -24
  257. package/utils-CxIhC2xH.js +0 -4182
package/index-BDrtH5ec.js DELETED
@@ -1,465 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- import { ClickAwayListener, TextField, InputAdornment, Popper, Paper, MenuList, MenuItem, ListItemText, useTheme, Stack, Skeleton } from "@mui/material";
6
- import { useRef, useState, useEffect, useMemo, lazy } from "react";
7
- import { r as removeEmpty, s as searchObject, f as flatten } from "./utils-CxIhC2xH.js";
8
- import { ClueComponentContext } from "./hooks/ClueComponentContext.js";
9
- import { useMyLocalStorageItem } from "./hooks/useMyLocalStorage.js";
10
- import { StorageKey } from "./utils/constants.js";
11
- import { u as useContextSelector } from "./index-BDVjGvMI.js";
12
- const ENTER = "Enter";
13
- const ESCAPE = "Escape";
14
- const ARROW_LEFT = "ArrowLeft";
15
- const ARROW_UP = "ArrowUp";
16
- const ARROW_RIGHT = "ArrowRight";
17
- const ARROW_DOWN = "ArrowDown";
18
- const BACKSPACE = "Backspace";
19
- const SPACE = " ";
20
- function is(key, check) {
21
- return key === check;
22
- }
23
- function isArrowUp(key) {
24
- return is(key, ARROW_UP);
25
- }
26
- function isArrowDown(key) {
27
- return is(key, ARROW_DOWN);
28
- }
29
- function isArrowLeft(key) {
30
- return is(key, ARROW_LEFT);
31
- }
32
- function isArrowRight(key) {
33
- return is(key, ARROW_RIGHT);
34
- }
35
- function isEscape(key) {
36
- return is(key, ESCAPE);
37
- }
38
- function isEnter(key) {
39
- return is(key, ENTER);
40
- }
41
- function isBackspace(key) {
42
- return is(key, BACKSPACE);
43
- }
44
- function isSpace(key) {
45
- return is(key, SPACE);
46
- }
47
- function parseEvent(event) {
48
- return {
49
- key: event.key,
50
- isCtrl: event.ctrlKey,
51
- isEnter: isEnter(event.key),
52
- isSpace: isSpace(event.key),
53
- isBackspace: isBackspace(event.key),
54
- isEscape: isEscape(event.key),
55
- isArrowLeft: isArrowLeft(event.key),
56
- isArrowRight: isArrowRight(event.key),
57
- isArrowUp: isArrowUp(event.key),
58
- isArrowDown: isArrowDown(event.key)
59
- };
60
- }
61
- class TuiPhraseLexer {
62
- constructor() {
63
- __publicField(this, "_phrase", null);
64
- __publicField(this, "_buffer", null);
65
- __publicField(this, "_tokens", null);
66
- __publicField(this, "_consumers", null);
67
- __publicField(this, "_consumer", null);
68
- __publicField(this, "_startIndex", 0);
69
- __publicField(this, "_endIndex", -1);
70
- }
71
- find(cursor, tokens) {
72
- const index = tokens.findIndex((t) => t.startIndex <= cursor && cursor <= t.endIndex);
73
- const token = tokens.at(index);
74
- return { index, token };
75
- }
76
- parse(phrase, cursor = 0) {
77
- this._phrase = phrase;
78
- this._buffer = [];
79
- this._tokens = [];
80
- this._consumers = this.consumers();
81
- this._consumer = null;
82
- this._startIndex = 0;
83
- this._endIndex = -1;
84
- for (let i = 0; i < this._phrase.length; i++) {
85
- this._endIndex += 1;
86
- const next = this._phrase[i];
87
- this._buffer.push(next);
88
- let newLock = false;
89
- if (!this._consumer) {
90
- this._consumer = this.lock();
91
- if (this._consumer) {
92
- newLock = true;
93
- this._consumer.init(this._buffer, this);
94
- }
95
- }
96
- if (this._consumer) {
97
- if (newLock) {
98
- newLock = false;
99
- } else {
100
- this._consumer.append(next, this);
101
- }
102
- const token = this._consumer.consume(this);
103
- if (token) {
104
- this._tokens.push(token);
105
- this._buffer = [];
106
- this._consumer = null;
107
- this._startIndex = this._endIndex + 1;
108
- }
109
- }
110
- }
111
- this._tokens.push({ type: "eop", startIndex: phrase.length, endIndex: phrase.length, value: "" });
112
- const flatTokens = this._tokens.flatMap((t) => t.children && t.children.length > 0 ? t.children : [t]);
113
- const { token: parent, index: parentIndex } = this.find(cursor, this._tokens);
114
- const { token: current, index: currentIndex } = this.find(cursor, flatTokens);
115
- const filter = cursor === current.startIndex && flatTokens[currentIndex - 1] ? flatTokens[currentIndex - 1] : current;
116
- return {
117
- cursor,
118
- parentIndex,
119
- parent,
120
- currentIndex,
121
- current,
122
- suggest: {
123
- token: filter,
124
- parent: this.find(filter.startIndex, this._tokens).token,
125
- value: filter.value.substring(0, cursor - filter.startIndex)
126
- },
127
- tokens: this._tokens
128
- };
129
- }
130
- lock() {
131
- return this._consumers.find((c) => c.lock(this));
132
- }
133
- buffer() {
134
- return this._buffer;
135
- }
136
- bufferValue() {
137
- return this._buffer.join("");
138
- }
139
- start() {
140
- return this._startIndex;
141
- }
142
- end() {
143
- return this._endIndex;
144
- }
145
- ahead(inc) {
146
- const start = this._endIndex + 1;
147
- if (inc) {
148
- return this._phrase.slice(start, start + inc);
149
- }
150
- return this._phrase.substring(start);
151
- }
152
- behind(inc) {
153
- if (inc) {
154
- return this.bufferValue().slice(-inc);
155
- }
156
- return this.bufferValue();
157
- }
158
- behindEndsWithAny(trim, ...values) {
159
- const behind = trim ? this.behind().trimEnd() : this.behind();
160
- return values.some((v) => behind.endsWith(v));
161
- }
162
- testBehind(regex) {
163
- return regex.test(this.behind());
164
- }
165
- aheadStartsWithAny(trim, ...values) {
166
- const ahead = trim ? this.ahead().trimStart() : this.ahead();
167
- return values.some((v) => ahead.startsWith(v));
168
- }
169
- aheadIsEmpty(trim = false) {
170
- return trim ? this.ahead().trim().length === 0 : this.ahead().length === 0;
171
- }
172
- testAhead(regex) {
173
- return regex.test(this.ahead());
174
- }
175
- }
176
- class TuiPhraseConsumer {
177
- constructor() {
178
- __publicField(this, "_buffer", []);
179
- }
180
- reset() {
181
- this._buffer = [];
182
- }
183
- init(buffer, lexer) {
184
- this._buffer = [...buffer];
185
- }
186
- append(next, lexer) {
187
- this._buffer.push(next);
188
- }
189
- bufferValue() {
190
- return this._buffer.join("");
191
- }
192
- endsWithAny(...values) {
193
- const _bufferValue = this.bufferValue();
194
- return values.some((v) => _bufferValue.endsWith(v));
195
- }
196
- test(regex) {
197
- return regex.test(this.bufferValue());
198
- }
199
- }
200
- class WhitespaceConsumer extends TuiPhraseConsumer {
201
- lock(lexer) {
202
- return lexer.bufferValue().match(/\s/) && lexer.ahead(1) !== " ";
203
- }
204
- consume(lexer) {
205
- if (lexer.ahead(1) !== " ") {
206
- return {
207
- type: "whitespace",
208
- startIndex: lexer.start(),
209
- endIndex: lexer.end(),
210
- value: this._buffer.join("")
211
- };
212
- }
213
- return null;
214
- }
215
- }
216
- class WordConsumer extends TuiPhraseConsumer {
217
- lock(lexer) {
218
- return !lexer.bufferValue().match(/\s/) && (lexer.ahead(1) === " " || lexer.ahead(1) === "");
219
- }
220
- consume(lexer) {
221
- if (lexer.ahead(1) === " " || lexer.aheadIsEmpty(true)) {
222
- return {
223
- type: "word",
224
- startIndex: lexer.start(),
225
- endIndex: lexer.end(),
226
- value: this._buffer.join("")
227
- };
228
- }
229
- return null;
230
- }
231
- }
232
- class WordLexer extends TuiPhraseLexer {
233
- consumers() {
234
- return [new WordConsumer(), new WhitespaceConsumer()];
235
- }
236
- }
237
- class WordSuggestor {
238
- constructor(suggestions) {
239
- this.suggestions = suggestions;
240
- }
241
- suggest(phrase) {
242
- return this.suggestions.filter((s) => s.indexOf(phrase.suggest.value) > -1);
243
- }
244
- }
245
- function TuiPhrase({
246
- value = "",
247
- variant = "outlined",
248
- suggestions = [],
249
- lexer,
250
- suggester,
251
- startAdornment,
252
- endAdornment,
253
- onChange,
254
- onKeyDown,
255
- ...props
256
- }) {
257
- const containerRef = useRef();
258
- const inputRef = useRef();
259
- const menuRef = useRef();
260
- const lexerRef = useRef(lexer || new WordLexer());
261
- const analysisRef = useRef();
262
- const suggesterRef = useRef(suggester || new WordSuggestor(suggestions));
263
- const [optionsOpen, setOptionsOpen] = useState(false);
264
- const [options, setOptions] = useState(suggestions);
265
- useEffect(() => {
266
- suggesterRef.current = suggester || new WordSuggestor(suggestions);
267
- }, [suggester, suggestions]);
268
- const lex = (inputValue, offset = 0) => {
269
- let cursor = inputRef.current.querySelector("input").selectionStart + offset;
270
- cursor = cursor < 0 ? 0 : cursor > inputValue.length ? inputValue.length : cursor;
271
- analysisRef.current = lexerRef.current.parse(inputValue, cursor);
272
- return analysisRef.current;
273
- };
274
- const _suggest = (inputValue, offset = 0) => {
275
- const _suggestions = suggesterRef.current.suggest(lex(inputValue, offset));
276
- setOptions((_suggestions == null ? void 0 : _suggestions.length) > 0 ? _suggestions : [...suggestions]);
277
- };
278
- const _onChange = (event) => {
279
- onChange(event.target.value);
280
- };
281
- const _onInputKeyDown = (event) => {
282
- const parsedEvent = parseEvent(event);
283
- const { isEnter: isEnter2, isCtrl, isSpace: isSpace2, isEscape: isEscape2, isArrowDown: isArrowDown2 } = parsedEvent;
284
- if (isArrowDown2) {
285
- event.preventDefault();
286
- menuRef.current.focus();
287
- } else if (isCtrl && isSpace2) {
288
- setOptionsOpen(true);
289
- _suggest(value);
290
- } else if (isEscape2) {
291
- setOptionsOpen(!optionsOpen);
292
- }
293
- if (isEnter2 && optionsOpen && options.length === 1) {
294
- onWordClick(options[0]);
295
- event.preventDefault();
296
- } else if (onKeyDown) {
297
- onKeyDown(parsedEvent);
298
- }
299
- };
300
- const _onSelectCapture = (event) => {
301
- if (optionsOpen) {
302
- _suggest(event.target.value);
303
- }
304
- };
305
- const _onMenuKeyDown = (event) => {
306
- const { isEscape: isEscape2 } = parseEvent(event);
307
- if (isEscape2) {
308
- inputRef.current.focus();
309
- setOptionsOpen(false);
310
- }
311
- };
312
- const onWordClick = (word) => {
313
- const { suggest } = analysisRef.current;
314
- const inputEl = inputRef.current.querySelector("input");
315
- inputEl.focus();
316
- inputEl.setSelectionRange(suggest.token.startIndex, suggest.token.endIndex + 1);
317
- document.execCommand("insertText", false, word);
318
- setOptionsOpen(false);
319
- };
320
- return /* @__PURE__ */ jsx(ClickAwayListener, { onClickAway: () => setOptionsOpen(false), children: /* @__PURE__ */ jsxs("div", { ref: containerRef, style: { position: "relative" }, children: [
321
- /* @__PURE__ */ jsx(
322
- TextField,
323
- {
324
- ref: inputRef,
325
- ...props,
326
- fullWidth: true,
327
- autoComplete: "off",
328
- value,
329
- variant,
330
- onChange: _onChange,
331
- onKeyDown: _onInputKeyDown,
332
- InputProps: {
333
- ...props.InputProps,
334
- onSelectCapture: _onSelectCapture,
335
- startAdornment: startAdornment && /* @__PURE__ */ jsx(InputAdornment, { position: "start", children: startAdornment }),
336
- endAdornment: endAdornment && /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: endAdornment })
337
- }
338
- }
339
- ),
340
- /* @__PURE__ */ jsx(
341
- Popper,
342
- {
343
- anchorEl: containerRef.current,
344
- style: { width: "100%", zIndex: 100 },
345
- open: optionsOpen && options.length > 0,
346
- disablePortal: true,
347
- children: /* @__PURE__ */ jsx(
348
- Paper,
349
- {
350
- elevation: 2,
351
- sx: { maxHeight: 200, overflow: "auto", borderTopRightRadius: 0, borderTopLeftRadius: 0 },
352
- children: /* @__PURE__ */ jsx(
353
- MenuList,
354
- {
355
- ref: menuRef,
356
- onKeyDown: _onMenuKeyDown,
357
- sx: {
358
- "&:focus": {
359
- outline: "none"
360
- }
361
- },
362
- children: options == null ? void 0 : options.map((o) => /* @__PURE__ */ jsx(MenuItem, { onClick: () => onWordClick(o), children: /* @__PURE__ */ jsx(ListItemText, { children: o }) }, o))
363
- }
364
- )
365
- }
366
- )
367
- }
368
- )
369
- ] }) });
370
- }
371
- const JSONViewer = ({ data, collapse = true, forceCompact = false, slotProps }) => {
372
- var _a, _b, _c;
373
- const theme = useTheme();
374
- const [compact] = useMyLocalStorageItem(StorageKey.COMPACT_JSON);
375
- const [flat] = useMyLocalStorageItem(StorageKey.FLATTEN_JSON);
376
- const _ProvidedReactJson = useContextSelector(ClueComponentContext, (ctx) => ctx == null ? void 0 : ctx.ReactJson);
377
- const { t } = useContextSelector(ClueComponentContext, (ctx) => ctx == null ? void 0 : ctx.i18next);
378
- const [ReactJson, setReactJson] = useState(null);
379
- const [query, setQuery] = useState("");
380
- const isDark = useMemo(() => theme.palette.mode === "dark", [theme]);
381
- const filteredData = useMemo(() => removeEmpty(data, compact || forceCompact), [compact, data, forceCompact]);
382
- const searchedData = useMemo(() => {
383
- const _searchedData = searchObject(filteredData, query);
384
- return flat ? flatten(_searchedData) : _searchedData;
385
- }, [filteredData, flat, query]);
386
- const hasError = useMemo(() => {
387
- try {
388
- new RegExp(query);
389
- return false;
390
- } catch {
391
- return true;
392
- }
393
- }, [query]);
394
- useEffect(() => {
395
- if (_ProvidedReactJson) {
396
- setReactJson(() => _ProvidedReactJson);
397
- } else {
398
- setReactJson(lazy(() => import("@microlink/react-json-view")));
399
- }
400
- }, [_ProvidedReactJson]);
401
- const shouldCollapse = (field) => {
402
- return field.name !== "root" && field.type !== "object" || field.namespace.length > 3;
403
- };
404
- return data ? /* @__PURE__ */ jsxs(
405
- Stack,
406
- {
407
- direction: "column",
408
- spacing: 1,
409
- ...slotProps == null ? void 0 : slotProps.stack,
410
- sx: {
411
- "& > div:first-of-type": { mt: 1, mr: 0.5 },
412
- ...Array.isArray((_a = slotProps == null ? void 0 : slotProps.stack) == null ? void 0 : _a.sx) ? (_b = slotProps == null ? void 0 : slotProps.stack) == null ? void 0 : _b.sx : [(_c = slotProps == null ? void 0 : slotProps.stack) == null ? void 0 : _c.sx]
413
- },
414
- children: [
415
- /* @__PURE__ */ jsx(
416
- TuiPhrase,
417
- {
418
- value: query,
419
- onChange: setQuery,
420
- size: "small",
421
- error: hasError,
422
- label: t("json.viewer.search.label"),
423
- placeholder: t("json.viewer.search.prompt")
424
- }
425
- ),
426
- ReactJson && /* @__PURE__ */ jsx(
427
- ReactJson,
428
- {
429
- src: searchedData,
430
- theme: isDark ? "summerfruit" : "summerfruit:inverted",
431
- indentWidth: 2,
432
- displayDataTypes: !compact && !forceCompact,
433
- displayObjectSize: !compact && !forceCompact,
434
- shouldCollapse: collapse ? shouldCollapse : false,
435
- quotesOnKeys: false,
436
- style: {
437
- flex: 1,
438
- overflow: "auto",
439
- height: "100%",
440
- fontSize: compact || forceCompact ? "small" : "smaller",
441
- borderRadius: theme.shape.borderRadius,
442
- padding: theme.spacing(1)
443
- },
444
- enableClipboard: (_data) => {
445
- if (typeof _data.src === "string") {
446
- navigator.clipboard.writeText(_data.src);
447
- } else {
448
- navigator.clipboard.writeText(JSON.stringify(_data.src));
449
- }
450
- },
451
- ...{
452
- // Type declaration is wrong - this is a valid prop
453
- displayArrayKey: !compact && !forceCompact
454
- },
455
- ...slotProps == null ? void 0 : slotProps.json
456
- }
457
- )
458
- ]
459
- }
460
- ) : /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "95%", variant: "rounded" });
461
- };
462
- export {
463
- JSONViewer as J,
464
- parseEvent as p
465
- };