@cccsaurora/howler-ui 3.1.0-dev.1424 → 3.1.0-dev.1437

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 (30) hide show
  1. package/components/app/hooks/useMatchers.d.ts +2 -1
  2. package/components/app/hooks/useMatchers.js +4 -1
  3. package/components/app/hooks/useMatchers.test.js +10 -0
  4. package/components/elements/display/Markdown.js +9 -3
  5. package/components/elements/display/Markdown.test.d.ts +1 -0
  6. package/components/elements/display/Markdown.test.js +25 -0
  7. package/components/elements/display/json/JSONViewer.js +10 -3
  8. package/components/elements/display/json/JSONViewer.test.d.ts +1 -0
  9. package/components/elements/display/json/JSONViewer.test.js +35 -0
  10. package/components/elements/hit/HitBanner.js +15 -66
  11. package/components/elements/hit/HitBanner.test.d.ts +1 -0
  12. package/components/elements/hit/HitBanner.test.js +209 -0
  13. package/components/elements/hit/HitCard.js +1 -1
  14. package/components/elements/hit/HitLabels.js +1 -1
  15. package/components/elements/hit/HitOutline.d.ts +2 -0
  16. package/components/elements/hit/HitOutline.js +73 -28
  17. package/components/elements/hit/HitOutline.test.d.ts +1 -0
  18. package/components/elements/hit/HitOutline.test.js +63 -0
  19. package/components/elements/hit/elements/AnalyticLink.js +4 -3
  20. package/components/elements/hit/elements/AnalyticLink.test.d.ts +1 -0
  21. package/components/elements/hit/elements/AnalyticLink.test.js +26 -0
  22. package/components/routes/help/TemplateDocumentation.js +14 -3
  23. package/components/routes/help/markdown/en/templates.md.js +1 -1
  24. package/locales/en/translation.json +2 -0
  25. package/locales/fr/translation.json +2 -0
  26. package/package.json +109 -111
  27. package/components/elements/hit/outlines/DefaultOutline.d.ts +0 -12
  28. package/components/elements/hit/outlines/DefaultOutline.js +0 -45
  29. package/components/elements/hit/outlines/al/AssemblyLineRules.d.ts +0 -5
  30. package/components/elements/hit/outlines/al/AssemblyLineRules.js +0 -46
package/package.json CHANGED
@@ -93,188 +93,186 @@
93
93
  "url": "https://github.com/CybercentreCanada/howler"
94
94
  },
95
95
  "type": "module",
96
- "version": "3.1.0-dev.1424",
96
+ "version": "3.1.0-dev.1437",
97
97
  "exports": {
98
98
  "./i18n": "./i18n.js",
99
99
  "./index.css": "./index.css",
100
100
  "./models/*": "./models/*.js",
101
- "./utils/*": "./utils/*.js",
102
- "./utils/*.json": "./utils/*.json",
103
- "./rest/*": "./rest/*.js",
104
- "./rest": "./rest/index.js",
105
101
  "./plugins/*": "./plugins/*.js",
106
- "./commons/*": "./commons/*.js",
107
102
  "./tests/*": "./tests/*.js",
103
+ "./rest/*": "./rest/*.js",
104
+ "./rest": "./rest/index.js",
105
+ "./utils/*": "./utils/*.js",
106
+ "./utils/*.json": "./utils/*.json",
108
107
  "./branding/*": "./branding/*.js",
109
108
  "./api/*": "./api/*.js",
110
109
  "./api": "./api/index.js",
111
- "./locales/*.json": "./locales/*.json",
112
110
  "./components/*": "./components/*.js",
113
- "./models/socket/*": "./models/socket/*.js",
111
+ "./commons/*": "./commons/*.js",
112
+ "./locales/*.json": "./locales/*.json",
114
113
  "./models/entities/*": "./models/entities/*.js",
114
+ "./models/socket/*": "./models/socket/*.js",
115
115
  "./models/entities/generated/*": "./models/entities/generated/*.js",
116
116
  "./plugins/clue/*": "./plugins/clue/*.js",
117
117
  "./plugins/clue": "./plugins/clue/index.js",
118
- "./plugins/clue/locales/*": "./plugins/clue/locales/*.js",
119
118
  "./plugins/clue/components/*": "./plugins/clue/components/*.js",
120
- "./commons/components/*": "./commons/components/*.js",
121
- "./commons/components/search/*": "./commons/components/search/*.js",
122
- "./commons/components/utils/*": "./commons/components/utils/*.js",
123
- "./commons/components/display/*": "./commons/components/display/*.js",
124
- "./commons/components/notification/*": "./commons/components/notification/*.js",
125
- "./commons/components/notification": "./commons/components/notification/index.js",
126
- "./commons/components/topnav/*": "./commons/components/topnav/*.js",
127
- "./commons/components/app/*": "./commons/components/app/*.js",
128
- "./commons/components/breadcrumbs/*": "./commons/components/breadcrumbs/*.js",
129
- "./commons/components/leftnav/*": "./commons/components/leftnav/*.js",
130
- "./commons/components/pages/*": "./commons/components/pages/*.js",
131
- "./commons/components/utils/hooks/*": "./commons/components/utils/hooks/*.js",
132
- "./commons/components/display/hooks/*": "./commons/components/display/hooks/*.js",
133
- "./commons/components/notification/elements/*": "./commons/components/notification/elements/*.js",
134
- "./commons/components/notification/elements/item/*": "./commons/components/notification/elements/item/*.js",
135
- "./commons/components/app/hooks/*": "./commons/components/app/hooks/*.js",
136
- "./commons/components/app/hooks": "./commons/components/app/hooks/index.js",
137
- "./commons/components/app/providers/*": "./commons/components/app/providers/*.js",
138
- "./commons/components/pages/hooks/*": "./commons/components/pages/hooks/*.js",
119
+ "./plugins/clue/locales/*": "./plugins/clue/locales/*.js",
120
+ "./api/user/*": "./api/user/*.js",
121
+ "./api/user": "./api/user/index.js",
139
122
  "./api/search/*": "./api/search/*.js",
140
123
  "./api/search": "./api/search/index.js",
141
- "./api/configs/*": "./api/configs/*.js",
142
- "./api/configs": "./api/configs/index.js",
143
- "./api/analytic/*": "./api/analytic/*.js",
144
- "./api/analytic": "./api/analytic/index.js",
145
124
  "./api/overview/*": "./api/overview/*.js",
146
125
  "./api/overview": "./api/overview/index.js",
126
+ "./api/view/*": "./api/view/*.js",
127
+ "./api/view": "./api/view/index.js",
128
+ "./api/auth/*": "./api/auth/*.js",
129
+ "./api/auth": "./api/auth/index.js",
130
+ "./api/template/*": "./api/template/*.js",
131
+ "./api/template": "./api/template/index.js",
147
132
  "./api/dossier/*": "./api/dossier/*.js",
148
133
  "./api/dossier": "./api/dossier/index.js",
149
134
  "./api/v2/*": "./api/v2/*.js",
150
135
  "./api/v2": "./api/v2/index.js",
151
- "./api/template/*": "./api/template/*.js",
152
- "./api/template": "./api/template/index.js",
153
- "./api/socket/*": "./api/socket/*.js",
154
- "./api/socket": "./api/socket/index.js",
155
- "./api/notebook/*": "./api/notebook/*.js",
156
- "./api/notebook": "./api/notebook/index.js",
157
- "./api/auth/*": "./api/auth/*.js",
158
- "./api/auth": "./api/auth/index.js",
159
136
  "./api/hit/*": "./api/hit/*.js",
160
137
  "./api/hit": "./api/hit/index.js",
161
- "./api/view/*": "./api/view/*.js",
162
- "./api/view": "./api/view/index.js",
138
+ "./api/configs/*": "./api/configs/*.js",
139
+ "./api/configs": "./api/configs/index.js",
163
140
  "./api/action/*": "./api/action/*.js",
164
141
  "./api/action": "./api/action/index.js",
165
- "./api/user/*": "./api/user/*.js",
166
- "./api/user": "./api/user/index.js",
167
- "./api/search/sigma/*": "./api/search/sigma/*.js",
168
- "./api/search/facet/*": "./api/search/facet/*.js",
169
- "./api/search/facet": "./api/search/facet/index.js",
170
- "./api/search/fields/*": "./api/search/fields/*.js",
171
- "./api/search/fields": "./api/search/fields/index.js",
142
+ "./api/notebook/*": "./api/notebook/*.js",
143
+ "./api/notebook": "./api/notebook/index.js",
144
+ "./api/analytic/*": "./api/analytic/*.js",
145
+ "./api/analytic": "./api/analytic/index.js",
146
+ "./api/socket/*": "./api/socket/*.js",
147
+ "./api/socket": "./api/socket/index.js",
148
+ "./api/user/avatar/*": "./api/user/avatar/*.js",
149
+ "./api/user/avatar": "./api/user/avatar/index.js",
172
150
  "./api/search/count/*": "./api/search/count/*.js",
173
151
  "./api/search/count": "./api/search/count/index.js",
152
+ "./api/search/fields/*": "./api/search/fields/*.js",
153
+ "./api/search/fields": "./api/search/fields/index.js",
174
154
  "./api/search/grouped/*": "./api/search/grouped/*.js",
175
155
  "./api/search/grouped": "./api/search/grouped/index.js",
176
- "./api/search/explain/*": "./api/search/explain/*.js",
177
- "./api/search/eql/*": "./api/search/eql/*.js",
178
156
  "./api/search/histogram/*": "./api/search/histogram/*.js",
179
157
  "./api/search/histogram": "./api/search/histogram/index.js",
180
- "./api/analytic/comments/*": "./api/analytic/comments/*.js",
181
- "./api/analytic/comments": "./api/analytic/comments/index.js",
182
- "./api/analytic/notebooks/*": "./api/analytic/notebooks/*.js",
183
- "./api/analytic/notebooks": "./api/analytic/notebooks/index.js",
184
- "./api/v2/search/*": "./api/v2/search/*.js",
185
- "./api/v2/search": "./api/v2/search/index.js",
158
+ "./api/search/explain/*": "./api/search/explain/*.js",
159
+ "./api/search/eql/*": "./api/search/eql/*.js",
160
+ "./api/search/sigma/*": "./api/search/sigma/*.js",
161
+ "./api/search/facet/*": "./api/search/facet/*.js",
162
+ "./api/search/facet": "./api/search/facet/index.js",
186
163
  "./api/v2/case/*": "./api/v2/case/*.js",
187
164
  "./api/v2/case": "./api/v2/case/index.js",
165
+ "./api/v2/search/*": "./api/v2/search/*.js",
166
+ "./api/v2/search": "./api/v2/search/index.js",
188
167
  "./api/hit/comments/*": "./api/hit/comments/*.js",
189
168
  "./api/hit/comments": "./api/hit/comments/index.js",
190
- "./api/user/avatar/*": "./api/user/avatar/*.js",
191
- "./api/user/avatar": "./api/user/avatar/index.js",
192
- "./locales/en/*.json": "./locales/en/*.json",
193
- "./locales/fr/*.json": "./locales/fr/*.json",
194
- "./locales/en/help/*.json": "./locales/en/help/*.json",
195
- "./locales/fr/help/*.json": "./locales/fr/help/*.json",
196
- "./components/hooks/*": "./components/hooks/*.js",
197
- "./components/elements/*": "./components/elements/*.js",
169
+ "./api/analytic/comments/*": "./api/analytic/comments/*.js",
170
+ "./api/analytic/comments": "./api/analytic/comments/index.js",
171
+ "./api/analytic/notebooks/*": "./api/analytic/notebooks/*.js",
172
+ "./api/analytic/notebooks": "./api/analytic/notebooks/index.js",
198
173
  "./components/app/*": "./components/app/*.js",
174
+ "./components/elements/*": "./components/elements/*.js",
199
175
  "./components/logins/*": "./components/logins/*.js",
176
+ "./components/hooks/*": "./components/hooks/*.js",
200
177
  "./components/routes/*": "./components/routes/*.js",
201
- "./components/elements/search/*": "./components/elements/search/*.js",
178
+ "./components/app/providers/*": "./components/app/providers/*.js",
179
+ "./components/app/hooks/*": "./components/app/hooks/*.js",
180
+ "./components/app/drawers/*": "./components/app/drawers/*.js",
202
181
  "./components/elements/record/*": "./components/elements/record/*.js",
203
- "./components/elements/display/*": "./components/elements/display/*.js",
204
- "./components/elements/addons/*": "./components/elements/addons/*.js",
182
+ "./components/elements/event/*": "./components/elements/event/*.js",
205
183
  "./components/elements/case/*": "./components/elements/case/*.js",
206
- "./components/elements/hit/*": "./components/elements/hit/*.js",
184
+ "./components/elements/search/*": "./components/elements/search/*.js",
207
185
  "./components/elements/view/*": "./components/elements/view/*.js",
208
- "./components/elements/event/*": "./components/elements/event/*.js",
209
- "./components/elements/display/icons/*": "./components/elements/display/icons/*.js",
186
+ "./components/elements/hit/*": "./components/elements/hit/*.js",
187
+ "./components/elements/display/*": "./components/elements/display/*.js",
188
+ "./components/elements/addons/*": "./components/elements/addons/*.js",
189
+ "./components/elements/hit/actions/*": "./components/elements/hit/actions/*.js",
190
+ "./components/elements/hit/elements/*": "./components/elements/hit/elements/*.js",
191
+ "./components/elements/hit/aggregate/*": "./components/elements/hit/aggregate/*.js",
192
+ "./components/elements/hit/related/*": "./components/elements/hit/related/*.js",
193
+ "./components/elements/hit/grid/*": "./components/elements/hit/grid/*.js",
210
194
  "./components/elements/display/modals/*": "./components/elements/display/modals/*.js",
211
- "./components/elements/display/markdownPlugins/*.md": "./components/elements/display/markdownPlugins/*.md.js",
212
- "./components/elements/display/json/*": "./components/elements/display/json/*.js",
195
+ "./components/elements/display/icons/*": "./components/elements/display/icons/*.js",
213
196
  "./components/elements/display/handlebars/*": "./components/elements/display/handlebars/*.js",
197
+ "./components/elements/display/json/*": "./components/elements/display/json/*.js",
198
+ "./components/elements/display/markdownPlugins/*.md": "./components/elements/display/markdownPlugins/*.md.js",
214
199
  "./components/elements/display/features/*": "./components/elements/display/features/*.js",
215
200
  "./components/elements/display/icons/svg/*": "./components/elements/display/icons/svg/*.js",
216
201
  "./components/elements/addons/search/*": "./components/elements/addons/search/*.js",
217
202
  "./components/elements/addons/lists/*": "./components/elements/addons/lists/*.js",
218
203
  "./components/elements/addons/lists": "./components/elements/addons/lists/index.js",
219
- "./components/elements/addons/layout/*": "./components/elements/addons/layout/*.js",
220
204
  "./components/elements/addons/buttons/*": "./components/elements/addons/buttons/*.js",
221
205
  "./components/elements/addons/buttons": "./components/elements/addons/buttons/index.js",
206
+ "./components/elements/addons/layout/*": "./components/elements/addons/layout/*.js",
222
207
  "./components/elements/addons/search/phrase/*": "./components/elements/addons/search/phrase/*.js",
223
208
  "./components/elements/addons/search/phrase": "./components/elements/addons/search/phrase/index.js",
224
209
  "./components/elements/addons/search/phrase/word/*": "./components/elements/addons/search/phrase/word/*.js",
225
210
  "./components/elements/addons/search/phrase/word/consumers/*": "./components/elements/addons/search/phrase/word/consumers/*.js",
226
- "./components/elements/addons/lists/hooks/*": "./components/elements/addons/lists/hooks/*.js",
227
211
  "./components/elements/addons/lists/table/*": "./components/elements/addons/lists/table/*.js",
228
212
  "./components/elements/addons/lists/table": "./components/elements/addons/lists/table/index.js",
213
+ "./components/elements/addons/lists/hooks/*": "./components/elements/addons/lists/hooks/*.js",
229
214
  "./components/elements/addons/layout/vsbox/*": "./components/elements/addons/layout/vsbox/*.js",
230
- "./components/elements/hit/elements/*": "./components/elements/hit/elements/*.js",
231
- "./components/elements/hit/actions/*": "./components/elements/hit/actions/*.js",
232
- "./components/elements/hit/outlines/*": "./components/elements/hit/outlines/*.js",
233
- "./components/elements/hit/related/*": "./components/elements/hit/related/*.js",
234
- "./components/elements/hit/aggregate/*": "./components/elements/hit/aggregate/*.js",
235
- "./components/elements/hit/grid/*": "./components/elements/hit/grid/*.js",
236
- "./components/elements/hit/outlines/al/*": "./components/elements/hit/outlines/al/*.js",
237
- "./components/app/hooks/*": "./components/app/hooks/*.js",
238
- "./components/app/providers/*": "./components/app/providers/*.js",
239
- "./components/app/drawers/*": "./components/app/drawers/*.js",
240
- "./components/logins/hooks/*": "./components/logins/hooks/*.js",
241
215
  "./components/logins/auth/*": "./components/logins/auth/*.js",
242
- "./components/routes/analytics/*": "./components/routes/analytics/*.js",
243
- "./components/routes/hits/*": "./components/routes/hits/*.js",
244
- "./components/routes/help/*": "./components/routes/help/*.js",
216
+ "./components/logins/hooks/*": "./components/logins/hooks/*.js",
245
217
  "./components/routes/advanced/*": "./components/routes/advanced/*.js",
246
- "./components/routes/settings/*": "./components/routes/settings/*.js",
247
218
  "./components/routes/cases/*": "./components/routes/cases/*.js",
248
- "./components/routes/home/*": "./components/routes/home/*.js",
249
- "./components/routes/home": "./components/routes/home/index.js",
250
- "./components/routes/admin/*": "./components/routes/admin/*.js",
251
- "./components/routes/overviews/*": "./components/routes/overviews/*.js",
219
+ "./components/routes/help/*": "./components/routes/help/*.js",
220
+ "./components/routes/templates/*": "./components/routes/templates/*.js",
221
+ "./components/routes/events/*": "./components/routes/events/*.js",
252
222
  "./components/routes/dossiers/*": "./components/routes/dossiers/*.js",
253
223
  "./components/routes/views/*": "./components/routes/views/*.js",
254
- "./components/routes/templates/*": "./components/routes/templates/*.js",
224
+ "./components/routes/overviews/*": "./components/routes/overviews/*.js",
225
+ "./components/routes/settings/*": "./components/routes/settings/*.js",
226
+ "./components/routes/home/*": "./components/routes/home/*.js",
227
+ "./components/routes/home": "./components/routes/home/index.js",
228
+ "./components/routes/hits/*": "./components/routes/hits/*.js",
229
+ "./components/routes/analytics/*": "./components/routes/analytics/*.js",
255
230
  "./components/routes/action/*": "./components/routes/action/*.js",
256
- "./components/routes/events/*": "./components/routes/events/*.js",
257
- "./components/routes/analytics/widgets/*": "./components/routes/analytics/widgets/*.js",
258
- "./components/routes/hits/search/*": "./components/routes/hits/search/*.js",
259
- "./components/routes/hits/view/*": "./components/routes/hits/view/*.js",
260
- "./components/routes/hits/search/shared/*": "./components/routes/hits/search/shared/*.js",
261
- "./components/routes/hits/search/grid/*": "./components/routes/hits/search/grid/*.js",
231
+ "./components/routes/admin/*": "./components/routes/admin/*.js",
232
+ "./components/routes/cases/modals/*": "./components/routes/cases/modals/*.js",
233
+ "./components/routes/cases/search/*": "./components/routes/cases/search/*.js",
234
+ "./components/routes/cases/detail/*": "./components/routes/cases/detail/*.js",
235
+ "./components/routes/cases/hooks/*": "./components/routes/cases/hooks/*.js",
236
+ "./components/routes/cases/detail/observables/*": "./components/routes/cases/detail/observables/*.js",
237
+ "./components/routes/cases/detail/sidebar/*": "./components/routes/cases/detail/sidebar/*.js",
238
+ "./components/routes/cases/detail/aggregates/*": "./components/routes/cases/detail/aggregates/*.js",
262
239
  "./components/routes/help/markdown/*.md": "./components/routes/help/markdown/*.md.js",
263
240
  "./components/routes/help/components/*": "./components/routes/help/components/*.js",
264
241
  "./components/routes/help/markdown/en/*.md": "./components/routes/help/markdown/en/*.md.js",
265
242
  "./components/routes/help/markdown/fr/*.md": "./components/routes/help/markdown/fr/*.md.js",
266
- "./components/routes/cases/search/*": "./components/routes/cases/search/*.js",
267
- "./components/routes/cases/hooks/*": "./components/routes/cases/hooks/*.js",
268
- "./components/routes/cases/detail/*": "./components/routes/cases/detail/*.js",
269
- "./components/routes/cases/modals/*": "./components/routes/cases/modals/*.js",
270
- "./components/routes/cases/detail/aggregates/*": "./components/routes/cases/detail/aggregates/*.js",
271
- "./components/routes/cases/detail/sidebar/*": "./components/routes/cases/detail/sidebar/*.js",
272
- "./components/routes/cases/detail/observables/*": "./components/routes/cases/detail/observables/*.js",
273
- "./components/routes/admin/users/*": "./components/routes/admin/users/*.js",
274
243
  "./components/routes/overviews/template/*": "./components/routes/overviews/template/*.js",
275
- "./components/routes/action/shared/*": "./components/routes/action/shared/*.js",
244
+ "./components/routes/hits/search/*": "./components/routes/hits/search/*.js",
245
+ "./components/routes/hits/view/*": "./components/routes/hits/view/*.js",
246
+ "./components/routes/hits/search/shared/*": "./components/routes/hits/search/shared/*.js",
247
+ "./components/routes/hits/search/grid/*": "./components/routes/hits/search/grid/*.js",
248
+ "./components/routes/analytics/widgets/*": "./components/routes/analytics/widgets/*.js",
276
249
  "./components/routes/action/view/*": "./components/routes/action/view/*.js",
250
+ "./components/routes/action/shared/*": "./components/routes/action/shared/*.js",
277
251
  "./components/routes/action/edit/*": "./components/routes/action/edit/*.js",
278
- "./components/routes/action/view/markdown/*.md": "./components/routes/action/view/markdown/*.md.js"
252
+ "./components/routes/action/view/markdown/*.md": "./components/routes/action/view/markdown/*.md.js",
253
+ "./components/routes/admin/users/*": "./components/routes/admin/users/*.js",
254
+ "./commons/components/*": "./commons/components/*.js",
255
+ "./commons/components/app/*": "./commons/components/app/*.js",
256
+ "./commons/components/leftnav/*": "./commons/components/leftnav/*.js",
257
+ "./commons/components/breadcrumbs/*": "./commons/components/breadcrumbs/*.js",
258
+ "./commons/components/search/*": "./commons/components/search/*.js",
259
+ "./commons/components/pages/*": "./commons/components/pages/*.js",
260
+ "./commons/components/utils/*": "./commons/components/utils/*.js",
261
+ "./commons/components/display/*": "./commons/components/display/*.js",
262
+ "./commons/components/notification/*": "./commons/components/notification/*.js",
263
+ "./commons/components/notification": "./commons/components/notification/index.js",
264
+ "./commons/components/topnav/*": "./commons/components/topnav/*.js",
265
+ "./commons/components/app/providers/*": "./commons/components/app/providers/*.js",
266
+ "./commons/components/app/hooks/*": "./commons/components/app/hooks/*.js",
267
+ "./commons/components/app/hooks": "./commons/components/app/hooks/index.js",
268
+ "./commons/components/pages/hooks/*": "./commons/components/pages/hooks/*.js",
269
+ "./commons/components/utils/hooks/*": "./commons/components/utils/hooks/*.js",
270
+ "./commons/components/display/hooks/*": "./commons/components/display/hooks/*.js",
271
+ "./commons/components/notification/elements/*": "./commons/components/notification/elements/*.js",
272
+ "./commons/components/notification/elements/item/*": "./commons/components/notification/elements/item/*.js",
273
+ "./locales/en/*.json": "./locales/en/*.json",
274
+ "./locales/fr/*.json": "./locales/fr/*.json",
275
+ "./locales/en/help/*.json": "./locales/en/help/*.json",
276
+ "./locales/fr/help/*.json": "./locales/fr/help/*.json"
279
277
  }
280
278
  }
@@ -1,12 +0,0 @@
1
- import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
2
- import type { Template } from '@cccsaurora/howler-ui/models/entities/generated/Template';
3
- import React from 'react';
4
- import { HitLayout } from '../HitLayout';
5
- declare const _default: React.NamedExoticComponent<{
6
- hit: Hit;
7
- fields: string[];
8
- template?: Template;
9
- layout?: HitLayout;
10
- readonly?: boolean;
11
- }>;
12
- export default _default;
@@ -1,45 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Info, Language, Lock, Person } from '@mui/icons-material';
3
- import { Box, IconButton, Tooltip, Typography } from '@mui/material';
4
- import { ApiConfigContext } from '@cccsaurora/howler-ui/components/app/providers/ApiConfigProvider';
5
- import PluginTypography from '@cccsaurora/howler-ui/components/elements/PluginTypography';
6
- import { get, isObject } from 'lodash-es';
7
- import React, { memo, useCallback, useContext } from 'react';
8
- import { useTranslation } from 'react-i18next';
9
- import { useNavigate } from 'react-router-dom';
10
- import { HitLayout } from '../HitLayout';
11
- const DefaultOutline = ({ hit, fields, template, layout = HitLayout.NORMAL, readonly = false }) => {
12
- const { t } = useTranslation();
13
- const { config } = useContext(ApiConfigContext);
14
- const navigate = useNavigate();
15
- const handleOpen = useCallback((event) => {
16
- event.stopPropagation();
17
- const params = {
18
- analytic: hit.howler.analytic,
19
- type: template?.type ?? 'personal'
20
- };
21
- if (template?.detection) {
22
- params.detection = template.detection;
23
- }
24
- else if (!template && hit.howler.detection) {
25
- params.detection = hit.howler.detection;
26
- }
27
- navigate('/templates/view?' +
28
- Object.entries(params)
29
- .map(([key, val]) => `${key}=${val}`)
30
- .join('&'));
31
- }, [hit.howler.analytic, hit.howler.detection, navigate, template]);
32
- return (_jsxs(Box, { display: "grid", gridTemplateColumns: "auto 1fr", columnGap: 1, sx: { position: 'relative' }, children: [_jsx(IconButton, { size: "small", sx: { position: 'absolute', right: 0, top: 0 }, onClick: handleOpen, children: readonly ? ( // Built in template
33
- _jsx(Tooltip, { title: t('route.templates.builtin'), children: _jsx(Lock, { fontSize: "small" }) })) : !template ? ( // No type specified => using the default
34
- _jsx(Tooltip, { title: t('route.templates.default'), children: _jsx(Info, { fontSize: "small" }) })) : template.type === 'global' ? ( // Type is global => global template
35
- _jsx(Tooltip, { title: t('route.templates.global'), children: _jsx(Language, { fontSize: "small" }) })) : (_jsx(Tooltip, { title: t('route.templates.personal'), children: _jsx(Person, { fontSize: "small" }) })) }), (fields ?? [])
36
- .map(field => [field, get(hit, field)])
37
- .map(([field, data]) => {
38
- const displayedData = (Array.isArray(data) ? data.join(', ') : isObject(data) ? JSON.stringify(data) : data)?.toString();
39
- if (!displayedData) {
40
- return null;
41
- }
42
- return (_jsxs(React.Fragment, { children: [_jsx(Tooltip, { title: (config.indexes.hit[field]?.description ?? t('none')).split('\n')[0], children: _jsxs(Typography, { variant: layout !== HitLayout.COMFY ? 'caption' : 'body1', fontWeight: "bold", children: [field, ":"] }) }), _jsx(PluginTypography, { context: "outline", variant: layout !== HitLayout.COMFY ? 'caption' : 'body1', whiteSpace: "normal", sx: { width: '100%', wordBreak: 'break-all' }, value: displayedData, field: field, obj: hit, children: displayedData })] }, field));
43
- })] }));
44
- };
45
- export default memo(DefaultOutline);
@@ -1,5 +0,0 @@
1
- import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
2
- declare const _default: import("react").NamedExoticComponent<{
3
- hit: Hit;
4
- }>;
5
- export default _default;
@@ -1,46 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Lock } from '@mui/icons-material';
3
- import { Chip, Grid, Stack, Tooltip, Typography } from '@mui/material';
4
- import { get } from 'lodash-es';
5
- import { memo } from 'react';
6
- import { useTranslation } from 'react-i18next';
7
- const TAGS = [
8
- 'assemblyline.antivirus',
9
- 'assemblyline.behaviour',
10
- 'assemblyline.heuristic',
11
- 'assemblyline.yara',
12
- 'assemblyline.attribution',
13
- 'assemblyline.mitre.tactic',
14
- 'assemblyline.mitre.technique'
15
- ];
16
- const VERDICT_COLORS = {
17
- malicious: 'error',
18
- suspicious: 'warning',
19
- info: 'info',
20
- safe: 'primary'
21
- };
22
- const VERDICT_ORDER = ['malicious', 'suspicious', 'safe', 'info'];
23
- const ARRAY_LIMIT = 10;
24
- const sortByVerdict = (a, b) => {
25
- return VERDICT_ORDER.indexOf(a.verdict) > VERDICT_ORDER.indexOf(b.verdict)
26
- ? 1
27
- : VERDICT_ORDER.indexOf(b.verdict) > VERDICT_ORDER.indexOf(a.verdict)
28
- ? -1
29
- : 0;
30
- };
31
- const AssemblyLineRules = ({ hit }) => {
32
- const { t } = useTranslation();
33
- const ipArr = (hit.related.ip ?? []).filter(e => !!e).slice(0, ARRAY_LIMIT);
34
- const tagsArr = TAGS.map(each => get(hit, each))
35
- .filter(tag => !!tag?.value)
36
- .sort(sortByVerdict)
37
- .slice(0, ARRAY_LIMIT);
38
- return (_jsxs(Grid, { container: true, direction: "row", justifyContent: "center", sx: { position: 'relative' }, children: [_jsx(Tooltip, { title: t('route.templates.builtin'), children: _jsx(Lock, { fontSize: "small", sx: { position: 'absolute', right: 0, top: 0 } }) }), _jsx(Grid, { item: true, xs: 2, children: _jsxs(Typography, { variant: "caption", fontWeight: "bold", children: [t('outline.assemblyline.file_path'), ":"] }) }), _jsx(Grid, { item: true, xs: 10, children: _jsx(Typography, { variant: "caption", children: hit.file.path ?? t('unknown') }) }), _jsx(Grid, { item: true, xs: 2, children: _jsxs(Typography, { variant: "caption", fontWeight: "bold", children: [t('outline.assemblyline.last_modified'), ":"] }) }), _jsx(Grid, { item: true, xs: 10, children: _jsxs(Typography, { variant: "caption", children: [hit.cbs?.sharepoint?.modified?.user ?? t('unknown'), " ", t('using'), ' ', hit.cbs?.sharepoint?.modified?.application ?? t('unknown'), " ", t('on'), " ", hit.file?.mtime ?? t('unknown')] }) }), _jsx(Grid, { item: true, xs: 2, children: _jsxs(Typography, { variant: "caption", fontWeight: "bold", children: [t('outline.assemblyline.beacons'), ":"] }) }), _jsx(Grid, { item: true, xs: 10, children: _jsxs(Stack, { direction: "row", spacing: 0.5, sx: { mb: 0.5 }, children: [ipArr.map(analytic => {
39
- return (_jsx(Grid, { item: true, children: _jsx(Chip, { label: analytic, variant: "outlined", size: "small" }) }, analytic));
40
- }), ipArr.length < 1 && (_jsx(Grid, { item: true, children: _jsx(Chip, { label: t('none'), variant: "outlined", size: "small" }) }))] }) }), _jsx(Grid, { item: true, xs: 2, children: _jsxs(Typography, { variant: "caption", fontWeight: "bold", children: [t('outline.assemblyline.tags'), ":"] }) }), _jsx(Grid, { item: true, xs: 10, children: _jsxs(Stack, { direction: "row", spacing: 0.5, sx: { mb: 0.5 }, children: [tagsArr.map(analytic => {
41
- return (_jsx(Grid, { item: true, children: _jsx(Chip, { label: analytic?.value, color: analytic?.verdict in VERDICT_COLORS
42
- ? VERDICT_COLORS[analytic?.verdict]
43
- : 'error', variant: "outlined", size: "small" }) }, analytic?.value + analytic?.verdict + analytic?.type + analytic?.subtype));
44
- }), tagsArr.length < 1 && (_jsx(Grid, { item: true, children: _jsx(Chip, { label: t('none'), variant: "outlined", size: "small" }) }))] }) })] }));
45
- };
46
- export default memo(AssemblyLineRules);