@cccsaurora/howler-ui 2.19.0-dev.1282 → 2.19.0-dev.1295

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 (239) hide show
  1. package/api/index.d.ts +1 -1
  2. package/api/search/action.js +1 -1
  3. package/api/search/analytic.js +1 -1
  4. package/api/search/case.js +1 -1
  5. package/api/search/count/hit.js +1 -1
  6. package/api/search/dossier.js +1 -1
  7. package/api/search/eql/hit.js +1 -1
  8. package/api/search/explain/hit.js +1 -1
  9. package/api/search/facet/hit.js +1 -1
  10. package/api/search/grouped/hit.js +1 -1
  11. package/api/search/grouped/user.js +1 -1
  12. package/api/search/histogram/hit.js +1 -1
  13. package/api/search/hit.js +1 -1
  14. package/api/search/overview.js +1 -1
  15. package/api/search/sigma/hit.js +1 -1
  16. package/api/search/template.js +1 -1
  17. package/api/search/user.js +1 -1
  18. package/api/search/view.js +1 -1
  19. package/api/v2/search/facet.js +1 -1
  20. package/api/v2/search/index.js +1 -1
  21. package/api/view/index.d.ts +1 -1
  22. package/branding/AppBrand.d.ts +2 -2
  23. package/commons/components/app/AppSkeleton.js +1 -1
  24. package/commons/components/app/hooks/useAppConfigs.d.ts +2 -2
  25. package/commons/components/app/hooks/useAppSitemap.d.ts +5 -2
  26. package/commons/components/breadcrumbs/BreadcrumbIcon.js +1 -1
  27. package/commons/components/breadcrumbs/Breadcrumbs.d.ts +3 -2
  28. package/commons/components/display/AppToc.d.ts +2 -1
  29. package/commons/components/display/AppToc.js +1 -1
  30. package/commons/components/display/hooks/useAppColor.d.ts +1 -1
  31. package/commons/components/leftnav/LeftNavDrawer.d.ts +2 -1
  32. package/commons/components/leftnav/LeftNavGroup.d.ts +2 -1
  33. package/commons/components/leftnav/LeftNavItem.d.ts +2 -1
  34. package/commons/components/leftnav/LeftNavItem.js +1 -1
  35. package/commons/components/notification/Notification.js +1 -1
  36. package/commons/components/notification/elements/NotificationHeader.js +1 -1
  37. package/commons/components/notification/elements/NotificationItems.js +1 -1
  38. package/commons/components/notification/elements/item/NotificationItemAuthor.js +1 -1
  39. package/commons/components/pages/PageCenter.d.ts +2 -1
  40. package/commons/components/pages/PageContent.d.ts +2 -1
  41. package/commons/components/pages/PageFullScreen.d.ts +2 -1
  42. package/commons/components/search/AppSearch.js +1 -1
  43. package/commons/components/search/AppSearchInput.d.ts +2 -1
  44. package/commons/components/search/AppSearchResult.d.ts +2 -1
  45. package/commons/components/topnav/AppBar.d.ts +2 -1
  46. package/commons/components/topnav/AppName.d.ts +3 -2
  47. package/commons/components/topnav/AppSwitcher.d.ts +2 -1
  48. package/commons/components/topnav/ThemeSelection.d.ts +2 -1
  49. package/commons/components/topnav/ThemeSelection.js +1 -1
  50. package/commons/components/topnav/UserProfile.d.ts +2 -1
  51. package/commons/components/topnav/UserProfile.js +1 -1
  52. package/commons/components/utils/hooks/useThemeBuilder.d.ts +1 -1
  53. package/components/app/App.js +2 -2
  54. package/components/app/drawers/ApiKeyDrawer.js +1 -1
  55. package/components/app/hooks/useMatchers.js +4 -4
  56. package/components/app/hooks/useTitle.js +1 -1
  57. package/components/app/providers/AnalyticProvider.js +1 -1
  58. package/components/app/providers/AvatarProvider.js +1 -1
  59. package/components/app/providers/FavouritesProvider.js +1 -1
  60. package/components/app/providers/GridColumnsProvider.d.ts +1 -1
  61. package/components/app/providers/GridColumnsProvider.js +1 -1
  62. package/components/app/providers/OverviewProvider.js +1 -1
  63. package/components/app/providers/RecordProvider.js +2 -2
  64. package/components/app/providers/RecordSearchProvider.js +2 -2
  65. package/components/app/providers/SocketProvider.js +3 -3
  66. package/components/app/providers/UserListProvider.test.js +6 -6
  67. package/components/app/providers/ViewProvider.js +3 -3
  68. package/components/elements/Comment.js +2 -2
  69. package/components/elements/ContextMenu.test.js +3 -3
  70. package/components/elements/EditRow.js +4 -4
  71. package/components/elements/ObjectDetails.js +1 -1
  72. package/components/elements/UserList.js +1 -1
  73. package/components/elements/addons/buttons/index.d.ts +1 -1
  74. package/components/elements/addons/layout/FlexOne.d.ts +3 -2
  75. package/components/elements/addons/layout/FlexPort.d.ts +2 -1
  76. package/components/elements/addons/layout/FlexVertical.d.ts +2 -1
  77. package/components/elements/addons/layout/vsbox/VSBoxElement.d.ts +2 -1
  78. package/components/elements/addons/lists/TuiList.d.ts +2 -1
  79. package/components/elements/addons/lists/TuiListBase.d.ts +2 -1
  80. package/components/elements/addons/lists/TuiListElement.d.ts +2 -1
  81. package/components/elements/addons/lists/TuiListMenu.d.ts +2 -1
  82. package/components/elements/addons/lists/TuiListMenu.js +1 -1
  83. package/components/elements/addons/lists/table/TuiTableHeader.d.ts +3 -2
  84. package/components/elements/addons/lists/table/index.d.ts +1 -1
  85. package/components/elements/case/CaseCard.js +2 -2
  86. package/components/elements/display/ActionButton.js +1 -1
  87. package/components/elements/display/ChipPopper.js +1 -1
  88. package/components/elements/display/ClassificationChip.d.ts +1 -1
  89. package/components/elements/display/HandlebarsMarkdown.js +3 -3
  90. package/components/elements/display/HowlerAvatar.js +2 -2
  91. package/components/elements/display/Image.js +3 -3
  92. package/components/elements/display/Markdown.js +2 -2
  93. package/components/elements/display/handlebars/helpers.js +3 -3
  94. package/components/elements/display/json/JSONViewer.js +2 -2
  95. package/components/elements/display/modals/RationaleModal.js +2 -2
  96. package/components/elements/display/modals/RationaleModal.test.js +1 -1
  97. package/components/elements/event/EventCard.js +1 -1
  98. package/components/elements/hit/HitActions.d.ts +1 -1
  99. package/components/elements/hit/HitActions.js +1 -1
  100. package/components/elements/hit/HitBanner.js +1 -1
  101. package/components/elements/hit/HitCard.js +1 -1
  102. package/components/elements/hit/HitLabels.js +1 -1
  103. package/components/elements/hit/HitNotebooks.js +9 -9
  104. package/components/elements/hit/HitOutline.js +1 -1
  105. package/components/elements/hit/HitOverview.js +1 -1
  106. package/components/elements/hit/HitPreview.js +1 -1
  107. package/components/elements/hit/HitSummary.js +2 -2
  108. package/components/elements/hit/ResolvePivotUrl.d.ts +1 -1
  109. package/components/elements/hit/actions/ButtonActions.js +1 -3
  110. package/components/elements/hit/aggregate/HitGraph.js +1 -1
  111. package/components/elements/hit/elements/AnalyticLink.js +1 -1
  112. package/components/elements/hit/elements/Assigned.js +1 -1
  113. package/components/elements/hit/grid/AddColumnModal.js +1 -1
  114. package/components/elements/hit/grid/ColumnHeader.js +1 -1
  115. package/components/elements/hit/grid/RecordRow.js +1 -1
  116. package/components/elements/hit/grid/RecordTable.js +2 -2
  117. package/components/elements/hit/outlines/DefaultOutline.js +1 -3
  118. package/components/elements/hit/related/PivotLink.js +1 -1
  119. package/components/elements/record/RecordComments.js +5 -7
  120. package/components/elements/record/RecordContextMenu.js +2 -2
  121. package/components/elements/record/RecordContextMenu.test.js +4 -4
  122. package/components/elements/record/RecordWorklog.js +1 -1
  123. package/components/elements/view/LayoutToggle.d.ts +1 -1
  124. package/components/hooks/useHitActions.js +1 -1
  125. package/components/hooks/useLocalStorage.js +1 -1
  126. package/components/hooks/useLocalStorageItem.test.js +2 -2
  127. package/components/hooks/useMyChart.d.ts +23 -23
  128. package/components/hooks/useMySnackbar.js +1 -1
  129. package/components/hooks/useMyUserFunctions.d.ts +21 -21
  130. package/components/hooks/useRelatedRecords.js +1 -1
  131. package/components/logins/Login.js +1 -1
  132. package/components/logins/auth/OAuthLogin.js +1 -1
  133. package/components/logins/hooks/useLogin.js +2 -2
  134. package/components/routes/action/edit/ActionEditor.js +4 -4
  135. package/components/routes/action/shared/OperationEntry.js +1 -1
  136. package/components/routes/action/shared/OperationStep.js +1 -1
  137. package/components/routes/action/useMyActionFunctions.js +1 -1
  138. package/components/routes/action/view/ActionDetails.js +2 -2
  139. package/components/routes/action/view/ActionSearch.js +4 -4
  140. package/components/routes/admin/users/UserEditor.js +1 -1
  141. package/components/routes/admin/users/UserSearch.js +5 -5
  142. package/components/routes/advanced/QueryBuilder.js +2 -2
  143. package/components/routes/advanced/luceneCompletionProvider.js +1 -1
  144. package/components/routes/analytics/AnalyticComments.js +3 -5
  145. package/components/routes/analytics/AnalyticDetails.js +2 -2
  146. package/components/routes/analytics/AnalyticHitComments.js +1 -1
  147. package/components/routes/analytics/AnalyticHitComments.test.js +1 -1
  148. package/components/routes/analytics/AnalyticOverview.js +2 -2
  149. package/components/routes/analytics/AnalyticOverviews.js +1 -1
  150. package/components/routes/analytics/AnalyticSearch.js +2 -2
  151. package/components/routes/analytics/AnalyticTemplates.js +1 -1
  152. package/components/routes/analytics/TriageSettings.js +2 -2
  153. package/components/routes/analytics/widgets/Assessment.js +1 -1
  154. package/components/routes/analytics/widgets/Created.js +1 -1
  155. package/components/routes/analytics/widgets/Escalation.js +1 -1
  156. package/components/routes/analytics/widgets/Stacked.js +1 -1
  157. package/components/routes/cases/CaseViewer.js +1 -1
  158. package/components/routes/cases/Cases.js +3 -3
  159. package/components/routes/cases/constants.d.ts +1 -1
  160. package/components/routes/cases/detail/CaseDashboard.js +1 -1
  161. package/components/routes/cases/detail/CaseDetails.js +3 -3
  162. package/components/routes/cases/detail/CaseObservables.js +2 -2
  163. package/components/routes/cases/detail/CaseRules.js +3 -3
  164. package/components/routes/cases/detail/CaseSearch.js +2 -2
  165. package/components/routes/cases/detail/CaseSearch.test.js +1 -1
  166. package/components/routes/cases/detail/CaseTask.js +4 -4
  167. package/components/routes/cases/detail/CaseTimeline.js +2 -2
  168. package/components/routes/cases/detail/CreateRuleDialog.test.js +1 -1
  169. package/components/routes/cases/detail/ItemPage.js +1 -1
  170. package/components/routes/cases/detail/MarkdownPage.js +1 -1
  171. package/components/routes/cases/detail/TaskPanel.js +2 -2
  172. package/components/routes/cases/detail/sidebar/CaseFolder.js +2 -2
  173. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +1 -1
  174. package/components/routes/cases/detail/utils.d.ts +1 -1
  175. package/components/routes/cases/hooks/useCase.js +2 -5
  176. package/components/routes/cases/modals/AddRecordToCaseModal.js +2 -2
  177. package/components/routes/cases/modals/AddToCaseModal.js +1 -1
  178. package/components/routes/cases/modals/CreateCaseModal.js +1 -1
  179. package/components/routes/cases/modals/RenameItemModal.js +2 -2
  180. package/components/routes/cases/modals/ResolveModal.js +1 -1
  181. package/components/routes/cases/modals/hooks.d.ts +1 -1
  182. package/components/routes/dossiers/DossierEditor.js +2 -2
  183. package/components/routes/dossiers/DossierEditor.test.js +1 -1
  184. package/components/routes/dossiers/Dossiers.js +3 -3
  185. package/components/routes/dossiers/PivotForm.js +2 -4
  186. package/components/routes/events/EventViewer.js +1 -1
  187. package/components/routes/help/ApiDocumentation.js +1 -1
  188. package/components/routes/help/HitBannerDocumentation.js +1 -1
  189. package/components/routes/help/HitSchemaDocumentation.js +1 -1
  190. package/components/routes/help/RetentionDocumentation.js +2 -2
  191. package/components/routes/help/SearchDocumentation.js +1 -1
  192. package/components/routes/hits/search/InformationPane.js +5 -5
  193. package/components/routes/hits/search/QuerySettings.test.js +4 -5
  194. package/components/routes/hits/search/RecordBrowser.js +1 -1
  195. package/components/routes/hits/search/ViewLink.js +1 -1
  196. package/components/routes/hits/search/shared/CustomSort.js +1 -1
  197. package/components/routes/hits/search/shared/HitFilter.d.ts +1 -1
  198. package/components/routes/hits/search/shared/HitSort.d.ts +1 -1
  199. package/components/routes/hits/search/shared/HitSort.js +1 -1
  200. package/components/routes/hits/search/shared/SearchSpan.d.ts +1 -1
  201. package/components/routes/hits/search/shared/SearchSpan.js +1 -1
  202. package/components/routes/hits/view/HitViewer.js +3 -3
  203. package/components/routes/home/AddNewCard.js +2 -2
  204. package/components/routes/home/AnalyticCard.js +1 -1
  205. package/components/routes/home/EntryWrapper.js +1 -1
  206. package/components/routes/home/HomeSettings.js +1 -1
  207. package/components/routes/home/ViewCard.js +5 -5
  208. package/components/routes/home/index.js +2 -2
  209. package/components/routes/overviews/OverviewCard.js +1 -1
  210. package/components/routes/overviews/OverviewViewer.js +3 -3
  211. package/components/routes/overviews/Overviews.js +3 -3
  212. package/components/routes/overviews/markdownExtendedTokenProvider.js +15 -15
  213. package/components/routes/settings/ProfileSection.js +2 -2
  214. package/components/routes/templates/TemplateEditor.d.ts +3 -2
  215. package/components/routes/templates/TemplateEditor.js +1 -1
  216. package/components/routes/templates/TemplateViewer.js +3 -3
  217. package/components/routes/templates/Templates.js +3 -3
  218. package/components/routes/views/ViewComposer.js +3 -3
  219. package/components/routes/views/Views.js +2 -2
  220. package/i18n.js +1 -1
  221. package/index.d.ts +1 -1
  222. package/index.js +1 -1
  223. package/package.json +2 -2
  224. package/plugins/clue/components/ClueLeadForm.js +1 -1
  225. package/plugins/clue/components/CluePivotForm.js +2 -2
  226. package/plugins/clue/helpers.js +4 -4
  227. package/plugins/clue/index.d.ts +2 -1
  228. package/rest/AxiosClient.test.js +1 -0
  229. package/utils/Throttler.test.js +2 -2
  230. package/utils/actionUtils.d.ts +3 -3
  231. package/utils/classificationParser.js +20 -20
  232. package/utils/constants.d.ts +3 -3
  233. package/utils/localStorage.js +1 -1
  234. package/utils/menuUtils.js +0 -4
  235. package/utils/stringUtils.test.js +1 -1
  236. package/utils/utils.d.ts +1 -1
  237. package/utils/utils.js +2 -2
  238. package/utils/utils.test.js +1 -1
  239. package/utils/xsrf.js +1 -1
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Avatar, Backdrop, Box, Button, Chip, CircularProgress, ClickAwayListener, Fade, MenuItem, Paper, Popper, Stack, TextField, Tooltip } from '@mui/material';
3
3
  import api from '@cccsaurora/howler-ui/api';
4
4
  import { ApiConfigContext } from '@cccsaurora/howler-ui/components/app/providers/ApiConfigProvider';
@@ -49,7 +49,7 @@ const HitNotebooks = ({ analytic, selectedNotebook, hit, compact }) => {
49
49
  window.open(`${envs[0].url}lab/tree/${filename}`, '_blank');
50
50
  setOpen(false);
51
51
  }
52
- catch (e) {
52
+ catch {
53
53
  showErrorMessage(t('hit.notebook.error.failToPost'));
54
54
  }
55
55
  }, [envs, loadedNotebook, showErrorMessage, t]);
@@ -62,16 +62,16 @@ const HitNotebooks = ({ analytic, selectedNotebook, hit, compact }) => {
62
62
  if (response.status < 300) {
63
63
  // if it exists, we need to ask for overwrite
64
64
  showModal(_jsx(ConfirmNotebookModal, { onConfirm: () => {
65
- goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
65
+ void goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
66
66
  } }));
67
67
  }
68
68
  else {
69
- goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
69
+ void goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
70
70
  }
71
71
  }
72
- catch (e) {
72
+ catch {
73
73
  // error means notebook doesn't exist, we can proceed with posting
74
- goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
74
+ void goToJupyhub(nbFileName, `${envs[0].url}post/${nbFileName}`);
75
75
  }
76
76
  setLoading(false);
77
77
  }, [envs, goToJupyhub, hit, loadedNotebook, showModal]);
@@ -105,9 +105,9 @@ const HitNotebooks = ({ analytic, selectedNotebook, hit, compact }) => {
105
105
  }, [analytic, dispatchApi, hit, selectedNotebook]);
106
106
  useEffect(() => {
107
107
  if (open) {
108
- fetchEnvs(); //retrieve env info from howler-api/nbgallery
108
+ void fetchEnvs(); //retrieve env info from howler-api/nbgallery
109
109
  if (selectedNotebook) {
110
- fetchNb();
110
+ void fetchNb();
111
111
  }
112
112
  }
113
113
  else {
@@ -120,7 +120,7 @@ const HitNotebooks = ({ analytic, selectedNotebook, hit, compact }) => {
120
120
  }, [open]);
121
121
  return (config.configuration.features.notebook &&
122
122
  analytic?.notebooks && (_jsx(ClickAwayListener, { onClickAway: () => setOpen(false), mouseEvent: 'onMouseUp', children: _jsxs("div", { children: [_jsx(Popper, { open: open, anchorEl: anchorEl, placement: 'bottom', transition: true, sx: { zIndex: 1499 }, children: ({ TransitionProps }) => (_jsx(Fade, { ...TransitionProps, timeout: 350, children: _jsxs(Paper, { sx: { maxWidth: '90%', width: '400px', p: 1, position: 'relative' }, children: [_jsx(Backdrop, { open: loading, sx: { position: 'absolute', zIndex: theme => theme.zIndex.drawer + 1 }, children: _jsx(Stack, { direction: "column", children: _jsx("div", { style: { textAlign: 'center' }, children: _jsx(CircularProgress, { color: "inherit" }) }) }) }), _jsxs(Stack, { direction: "column", spacing: 2, sx: { p: 1 }, children: [_jsxs(TextField, { disabled: !!selectedNotebook, label: "Notebook", select: true, onChange: e => {
123
- fetchNb(e.target.value);
123
+ void fetchNb(e.target.value);
124
124
  }, SelectProps: {
125
125
  MenuProps: {
126
126
  style: { zIndex: 35001 }
@@ -15,7 +15,7 @@ const HitOutline = ({ hit, layout, lazy = false, forceAllFields = false }) => {
15
15
  const [templateFieldCount] = useMyLocalStorageItem(StorageKey.TEMPLATE_FIELD_COUNT, null);
16
16
  const [template, setTemplate] = useState(null);
17
17
  useEffect(() => {
18
- getMatchingTemplate(hit).then(setTemplate);
18
+ void getMatchingTemplate(hit).then(setTemplate);
19
19
  }, [getMatchingTemplate, hit]);
20
20
  const outline = useMemo(() => {
21
21
  if (template) {
@@ -10,7 +10,7 @@ const HitOverview = ({ content, hit }) => {
10
10
  const { getMatchingOverview } = useMatchers();
11
11
  const [matchingOverview, setMatchingOverview] = useState(null);
12
12
  useEffect(() => {
13
- getMatchingOverview(hit).then(setMatchingOverview);
13
+ void getMatchingOverview(hit).then(setMatchingOverview);
14
14
  }, [getMatchingOverview, hit]);
15
15
  const link = useMemo(() => matchingOverview
16
16
  ? `/overviews/view?analytic=${encodeURIComponent(matchingOverview.analytic)}${matchingOverview.detection && '&detection=' + encodeURIComponent(matchingOverview.detection)}`
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Chip, Divider, Stack, Tooltip, Typography, useMediaQuery, useTheme } from '@mui/material';
3
3
  import { memo, useMemo } from 'react';
4
4
  import { Trans, useTranslation } from 'react-i18next';
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Analytics, InfoOutlined } from '@mui/icons-material';
3
3
  import { Alert, AlertTitle, Autocomplete, Box, Button, Chip, CircularProgress, Divider, Fade, Grid, LinearProgress, Stack, TextField, Tooltip, Typography } from '@mui/material';
4
4
  import api from '@cccsaurora/howler-ui/api';
@@ -129,7 +129,7 @@ const HitSummary = ({ response, onStart, onComplete }) => {
129
129
  if ((!query && views?.length < 1) || searching || error) {
130
130
  return;
131
131
  }
132
- performAggregation();
132
+ void performAggregation();
133
133
  // eslint-disable-next-line react-hooks/exhaustive-deps
134
134
  }, [query, views, searching, error]);
135
135
  return (_jsxs(Stack, { sx: { mx: 2, height: '100%' }, spacing: 1, children: [_jsx(Typography, { variant: "h6", children: t('hit.summary.aggregate.title') }), _jsx(Divider, { flexItem: true }), showHitSummaryGraph && (_jsxs(_Fragment, { children: [_jsx(HitGraph, {}), _jsx(Divider, { flexItem: true })] })), _jsxs(Stack, { sx: { overflow: 'auto', marginTop: '0 !important' }, pt: 1, spacing: 1, children: [_jsxs(Stack, { direction: "row", spacing: 2, mb: 2, alignItems: "stretch", children: [_jsx(Autocomplete, { fullWidth: true, multiple: true, sx: { minWidth: '175px' }, size: "small", value: customKeys, options: hitFields.map(_field => _field.key), renderInput: _params => _jsx(TextField, { ..._params, label: t('hit.summary.adhoc') }), onChange: (_, value) => setCustomKeys(value) }), _jsx(Button, { variant: "outlined", startIcon: loading ? _jsx(CircularProgress, { size: 20, sx: { ml: 1 } }) : _jsx(Analytics, { sx: { ml: 1 } }), disabled: loading, onClick: () => performAggregation(), children: t('button.aggregate') })] }), isEmpty(aggregateResults) && (_jsxs(Alert, { severity: "info", variant: "outlined", children: [_jsx(AlertTitle, { children: t('hit.summary.aggregate.nokeys.title') }), t('hit.summary.aggregate.nokeys.description')] })), loading && _jsx(LinearProgress, { sx: { minHeight: '4px' } }), Object.keys(aggregateResults)
@@ -1,4 +1,4 @@
1
1
  import type { Dossier } from '@cccsaurora/howler-ui/models/entities/generated/Dossier';
2
2
  import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
3
- declare const resolvePivotUrl: (pivot: NonNullable<Dossier["pivots"]>[number], currentHit?: Hit) => string;
3
+ declare const resolvePivotUrl: (pivot: NonNullable<Dossier['pivots']>[number], currentHit?: Hit) => string;
4
4
  export default resolvePivotUrl;
@@ -91,9 +91,7 @@ const ButtonActions = ({ actions, loading, orientation, shortcuts, currentVote }
91
91
  gridRow: rowIndex + 2
92
92
  }
93
93
  : { gridColumn: rowIndex + 1, gridRow: index + 3 + actionRows[0].length };
94
- const button = (
95
- // Set tooltip placement to be uniform for all buttons
96
- _jsx(Tooltip, { title: t(`hit.details.asessments.${action.name}.description`), placement: "top", children: _jsx(Button, { variant: "outlined", size: "small", disabled: loading, onClick: action.actionFunction, sx: [
94
+ const button = (_jsx(Tooltip, { title: t(`hit.details.asessments.${action.name}.description`), placement: "top", children: _jsx(Button, { variant: "outlined", size: "small", disabled: loading, onClick: action.actionFunction, sx: [
97
95
  {
98
96
  width: '100%',
99
97
  p: 0.6
@@ -112,7 +112,7 @@ const HitGraph = () => {
112
112
  if ((!query && views?.length < 1) || error || !response) {
113
113
  return;
114
114
  }
115
- performQuery();
115
+ void performQuery();
116
116
  // eslint-disable-next-line react-hooks/exhaustive-deps
117
117
  }, [query, views, error, span, response, escalationFilter, filterField]);
118
118
  const options = useMemo(() => {
@@ -10,7 +10,7 @@ const AnalyticLink = ({ hit, lazy = false, compressed, alignSelf = 'start' }) =>
10
10
  if (!hit?.howler.analytic) {
11
11
  return;
12
12
  }
13
- getMatchingAnalytic(hit).then(analytic => setAnalyticId(analytic?.analytic_id));
13
+ void getMatchingAnalytic(hit).then(analytic => setAnalyticId(analytic?.analytic_id));
14
14
  // eslint-disable-next-line react-hooks/exhaustive-deps
15
15
  }, [hit?.howler.analytic]);
16
16
  return (_jsxs(Typography, { variant: compressed ? 'body1' : 'h6', fontWeight: compressed && 'bold', sx: { alignSelf, '& a': { color: 'text.primary' } }, children: [analyticId ? (_jsx(Link, { to: `/analytics/${analyticId}`, target: "_blank", rel: "noopener noreferrer", onAuxClick: e => {
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { avatarClasses, AvatarGroup, Chip, Divider, Stack, Typography } from '@mui/material';
3
3
  import { useAppUser } from '@cccsaurora/howler-ui/commons/components/app/hooks';
4
4
  import { SocketContext } from '@cccsaurora/howler-ui/components/app/providers/SocketProvider';
@@ -19,7 +19,7 @@ const AddColumnModal = ({ addColumn, columns }) => {
19
19
  const options = useMemo(() => hitFields.map(field => field.key), [hitFields]);
20
20
  const [suggestions, setSuggestions] = useState([]);
21
21
  useEffect(() => {
22
- (async () => {
22
+ void (async () => {
23
23
  setSuggestions(uniq((await Promise.all((response?.items ?? []).filter(isHit).map(async (_hit) => (await getMatchingTemplate(_hit))?.keys ?? []))).flat()));
24
24
  })();
25
25
  }, [getMatchingTemplate, response?.items]);
@@ -15,7 +15,7 @@ const ColumnHeader = ({ col, width, colSource, setColumns, onMouseDown }) => {
15
15
  borderRightColor: 'divider',
16
16
  py: 0.5,
17
17
  position: 'relative'
18
- }, style: { transform: CSS.Translate.toString(transform), transition }, children: _jsxs(Stack, { className: `col-${col.replaceAll('.', '-')}`, direction: "row", spacing: 1, alignItems: "center", sx: [{ minWidth: '220px' }, !!width ? { width, maxWidth: width } : { maxWidth: '300px' }], children: [_jsx(Tooltip, { title: config.indexes.hit[col].description, children: _jsx("span", { children: col }) }), colSource?.length > 1 && (_jsx(Tooltip, { title: colSource.join(', '), children: _jsx(JoinFull, { fontSize: "small" }) })), _jsx(FlexOne, {}), _jsx(IconButton, { size: "small", sx: { fontSize: '1rem' }, onClick: () => setColumns(_columns => _columns.filter(_col => _col !== col)), children: _jsx(Remove, { fontSize: "inherit" }) }), _jsx(DragIndicator, { fontSize: "small", sx: { cursor: 'grab' }, ...attributes, ...listeners }), _jsx(Box, { sx: {
18
+ }, style: { transform: CSS.Translate.toString(transform), transition }, children: _jsxs(Stack, { className: `col-${col.replaceAll('.', '-')}`, direction: "row", spacing: 1, alignItems: "center", sx: [{ minWidth: '220px' }, width ? { width, maxWidth: width } : { maxWidth: '300px' }], children: [_jsx(Tooltip, { title: config.indexes.hit[col].description, children: _jsx("span", { children: col }) }), colSource?.length > 1 && (_jsx(Tooltip, { title: colSource.join(', '), children: _jsx(JoinFull, { fontSize: "small" }) })), _jsx(FlexOne, {}), _jsx(IconButton, { size: "small", sx: { fontSize: '1rem' }, onClick: () => setColumns(_columns => _columns.filter(_col => _col !== col)), children: _jsx(Remove, { fontSize: "inherit" }) }), _jsx(DragIndicator, { fontSize: "small", sx: { cursor: 'grab' }, ...attributes, ...listeners }), _jsx(Box, { sx: {
19
19
  position: 'absolute',
20
20
  top: theme.spacing(0.75),
21
21
  bottom: theme.spacing(0.75),
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { KeyboardArrowUp } from '@mui/icons-material';
3
3
  import { Box, Collapse, IconButton, lighten, Stack, TableCell, TableRow, Typography, useTheme } from '@mui/material';
4
4
  import { ParameterContext } from '@cccsaurora/howler-ui/components/app/providers/ParameterProvider';
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DndContext, KeyboardSensor, PointerSensor, pointerWithin, useSensor, useSensors } from '@dnd-kit/core';
3
3
  import { arrayMove, SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable';
4
4
  import { FormatIndentDecrease, FormatIndentIncrease, Search } from '@mui/icons-material';
@@ -23,7 +23,7 @@ const RecordTable = ({ query, items, refreshItems, ContextMenu, contextMenuProps
23
23
  if (!isHit(record) || analyticIds[record.howler.analytic]) {
24
24
  return;
25
25
  }
26
- getMatchingAnalytic(record).then(_analytic => {
26
+ void getMatchingAnalytic(record).then(_analytic => {
27
27
  if (_analytic) {
28
28
  setAnalyticIds(_analyticIds => ({ ..._analyticIds, [record.howler.analytic]: _analytic.analytic_id }));
29
29
  }
@@ -32,9 +32,7 @@ const DefaultOutline = ({ hit, fields, template, layout = HitLayout.NORMAL, read
32
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
33
  _jsx(Tooltip, { title: t('route.templates.builtin'), children: _jsx(Lock, { fontSize: "small" }) })) : !template ? ( // No type specified => using the default
34
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" }) })) : (
36
- // Finally, type isn't global => personal template
37
- _jsx(Tooltip, { title: t('route.templates.personal'), children: _jsx(Person, { fontSize: "small" }) })) }), (fields ?? [])
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 ?? [])
38
36
  .map(field => [field, get(hit, field)])
39
37
  .map(([field, data]) => {
40
38
  const displayedData = (Array.isArray(data) ? data.join(', ') : isObject(data) ? JSON.stringify(data) : data)?.toString();
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ErrorOutline } from '@mui/icons-material';
3
3
  import { Tooltip } from '@mui/material';
4
4
  import { useHelpers } from '@cccsaurora/howler-ui/components/elements/display/handlebars/helpers';
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Clear, KeyboardArrowDown, Send } from '@mui/icons-material';
3
3
  import { Accordion, AccordionDetails, AccordionSummary, AvatarGroup, Chip, IconButton, Skeleton, Stack, TextField, Typography } from '@mui/material';
4
4
  import api from '@cccsaurora/howler-ui/api';
@@ -52,7 +52,7 @@ const RecordComments = ({ record, users }) => {
52
52
  }, [handler]);
53
53
  useEffect(() => {
54
54
  if (isHit(record) && record.howler.analytic) {
55
- getMatchingAnalytic(record).then(analytic => {
55
+ void getMatchingAnalytic(record).then(analytic => {
56
56
  setAnalyticId(analytic?.analytic_id);
57
57
  setAnalyticComments(sortByTimestamp(analytic?.comment ?? []));
58
58
  });
@@ -104,7 +104,7 @@ const RecordComments = ({ record, users }) => {
104
104
  setLength(input.current.value.length);
105
105
  }
106
106
  if (e.ctrlKey && e.key === 'Enter' && !loading) {
107
- onSubmit();
107
+ void onSubmit();
108
108
  }
109
109
  }, [loading, onSubmit]);
110
110
  const checkLength = useCallback(() => setLength(input.current?.value.length), []);
@@ -137,13 +137,11 @@ const RecordComments = ({ record, users }) => {
137
137
  const handleReact = useCallback(async (commentId, type) => {
138
138
  if (type) {
139
139
  await dispatchApi(api.hit.comments.react.put(record.howler.id, commentId, type));
140
- setComments(comments.map(cmt => cmt.id !== commentId ? cmt : { ...cmt, reactions: { ...(cmt?.reactions ?? {}), [user.username]: type } }));
140
+ setComments(comments.map(cmt => cmt.id !== commentId ? cmt : { ...cmt, reactions: { ...cmt?.reactions, [user.username]: type } }));
141
141
  }
142
142
  else {
143
143
  await dispatchApi(api.hit.comments.react.del(record.howler.id, commentId));
144
- setComments(comments.map(cmt => cmt.id !== commentId
145
- ? cmt
146
- : { ...cmt, reactions: { ...(cmt?.reactions ?? {}), [user.username]: undefined } }));
144
+ setComments(comments.map(cmt => cmt.id !== commentId ? cmt : { ...cmt, reactions: { ...cmt?.reactions, [user.username]: undefined } }));
147
145
  }
148
146
  }, [comments, dispatchApi, record?.howler.id, user.username]);
149
147
  /**
@@ -128,8 +128,8 @@ const RecordContextMenu = ({ children, getSelectedId, Component }) => {
128
128
  if (!record?.howler.analytic) {
129
129
  return;
130
130
  }
131
- getMatchingAnalytic(record).then(setAnalytic);
132
- getMatchingTemplate(record).then(setTemplate);
131
+ void getMatchingAnalytic(record).then(setAnalytic);
132
+ void getMatchingTemplate(record).then(setTemplate);
133
133
  // eslint-disable-next-line react-hooks/exhaustive-deps
134
134
  }, [record]);
135
135
  /**
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { fireEvent, render, screen, waitFor } from '@testing-library/react';
3
3
  import userEvent, {} from '@testing-library/user-event';
4
4
  import { omit } from 'lodash-es';
@@ -91,10 +91,10 @@ vi.mock('@mui/material', async () => {
91
91
  const actual = await vi.importActual('@mui/material');
92
92
  return {
93
93
  ...actual,
94
- Menu: ({ children, open, onClose, ...props }) => open ? (_jsx("div", { role: "menu", onClick: onClose, ...omit(props, ['sx', 'slotProps', 'MenuListProps', 'anchorOrigin', 'anchorEl']), children: children })) : null,
94
+ Menu: ({ children, open, onClose, ...props }) => open ? (_jsx("div", { tabIndex: 0, role: "menu", onClick: onClose, ...omit(props, ['sx', 'slotProps', 'MenuListProps', 'anchorOrigin', 'anchorEl']), children: children })) : null,
95
95
  MenuItem: ({ children, onClick, disabled, component, to, ...props }) => {
96
96
  const Component = component || 'div';
97
- return (_jsx(Component, { role: "menuitem", onClick: onClick, "aria-disabled": disabled, href: to, ...omit(props, ['sx', 'component']), children: children }));
97
+ return (_jsx(Component, { tabIndex: 0, role: "menuitem", onClick: onClick, "aria-disabled": disabled, href: to, ...omit(props, ['sx', 'component']), children: children }));
98
98
  },
99
99
  Fade: ({ children, in: inProp }) => (inProp ? _jsx(_Fragment, { children: children }) : null),
100
100
  ListItemIcon: ({ children }) => _jsx("div", { children: children }),
@@ -171,7 +171,7 @@ describe('HitContextMenu', () => {
171
171
  });
172
172
  act(() => {
173
173
  const menu = screen.getByRole('menu');
174
- user.click(menu);
174
+ void user.click(menu);
175
175
  });
176
176
  await waitFor(() => {
177
177
  expect(screen.queryByRole('menu')).not.toBeInTheDocument();
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { KeyboardArrowUp } from '@mui/icons-material';
3
3
  import { CardContent, CardHeader, Divider, Skeleton, Stack, Tooltip, Typography, useTheme } from '@mui/material';
4
4
  import { useMyLocalStorageItem } from '@cccsaurora/howler-ui/components/hooks/useMyLocalStorage';
@@ -2,7 +2,7 @@ export type HowlerViewLayoutType = 'list' | 'grid' | null;
2
2
  declare const LayoutToggle: ({ displayType, setDisplayType, size, allowNullValue }: {
3
3
  displayType: HowlerViewLayoutType;
4
4
  setDisplayType: (type: HowlerViewLayoutType) => void;
5
- size?: "small" | "medium" | "large";
5
+ size?: 'small' | 'medium' | 'large';
6
6
  allowNullValue?: boolean;
7
7
  }) => import("react/jsx-runtime").JSX.Element;
8
8
  export default LayoutToggle;
@@ -173,7 +173,7 @@ const useHitActions = (_hits) => {
173
173
  ...option,
174
174
  actionFunction: () => {
175
175
  if (!loading) {
176
- manage(option.name.toLowerCase());
176
+ void manage(option.name.toLowerCase());
177
177
  }
178
178
  }
179
179
  })), [config.config.lookups?.transitions, hits, loading, manage, user.username]);
@@ -9,7 +9,7 @@ const useLocalStorage = (prefix) => {
9
9
  try {
10
10
  return JSON.parse(localStorage.getItem(_buildKey(key)));
11
11
  }
12
- catch (e) {
12
+ catch {
13
13
  return null;
14
14
  }
15
15
  }, [_buildKey]);
@@ -51,7 +51,7 @@ describe('useLocalStorageItem', () => {
51
51
  it('skips persisting to storage when save=false', () => {
52
52
  const { result } = renderHook(() => useLocalStorageItem('testkey', 0));
53
53
  vi.mocked(mockLocalStorage.setItem).mockClear();
54
- act(() => result.current[1](10, false));
54
+ void act(() => result.current[1](10, false));
55
55
  expect(result.current[0]).toBe(10);
56
56
  expect(mockLocalStorage.setItem).not.toHaveBeenCalled();
57
57
  });
@@ -95,7 +95,7 @@ describe('useLocalStorageItem', () => {
95
95
  it('propagates save=false updates to other subscribers', () => {
96
96
  const { result: a } = renderHook(() => useLocalStorageItem('testkey', 0));
97
97
  const { result: b } = renderHook(() => useLocalStorageItem('testkey', 0));
98
- act(() => a.current[1](10, false));
98
+ void act(() => a.current[1](10, false));
99
99
  expect(b.current[0]).toBe(10);
100
100
  });
101
101
  it('stops receiving updates after unmount', () => {
@@ -5,7 +5,7 @@ declare const useMyChart: () => {
5
5
  plugins: {
6
6
  legend: {
7
7
  display: boolean;
8
- position: "top";
8
+ position: 'top';
9
9
  labels: {
10
10
  color: string;
11
11
  };
@@ -36,16 +36,16 @@ declare const useMyChart: () => {
36
36
  zoom: {
37
37
  wheel: {
38
38
  enabled: boolean;
39
- modifierKey: "ctrl";
39
+ modifierKey: 'ctrl';
40
40
  };
41
41
  pinch: {
42
42
  enabled: boolean;
43
43
  };
44
- mode: "y";
44
+ mode: 'y';
45
45
  };
46
46
  pan: {
47
47
  enabled: boolean;
48
- mode: "x" | "y" | "xy";
48
+ mode: 'x' | 'y' | 'xy';
49
49
  };
50
50
  limits: {
51
51
  y: {
@@ -56,9 +56,9 @@ declare const useMyChart: () => {
56
56
  };
57
57
  scales: {
58
58
  x: {
59
- type: "time";
59
+ type: 'time';
60
60
  time: {
61
- unit: "day";
61
+ unit: 'day';
62
62
  };
63
63
  ticks: {
64
64
  color: string;
@@ -73,12 +73,11 @@ declare const useMyChart: () => {
73
73
  };
74
74
  };
75
75
  doughnut: (titleKey: string, subtitleKey?: string) => {
76
- scales: any;
77
76
  responsive: boolean;
78
77
  plugins: {
79
78
  legend: {
80
79
  display: boolean;
81
- position: "top";
80
+ position: 'top';
82
81
  labels: {
83
82
  color: string;
84
83
  };
@@ -109,16 +108,16 @@ declare const useMyChart: () => {
109
108
  zoom: {
110
109
  wheel: {
111
110
  enabled: boolean;
112
- modifierKey: "ctrl";
111
+ modifierKey: 'ctrl';
113
112
  };
114
113
  pinch: {
115
114
  enabled: boolean;
116
115
  };
117
- mode: "y";
116
+ mode: 'y';
118
117
  };
119
118
  pan: {
120
119
  enabled: boolean;
121
- mode: "x" | "y" | "xy";
120
+ mode: 'x' | 'y' | 'xy';
122
121
  };
123
122
  limits: {
124
123
  y: {
@@ -127,13 +126,14 @@ declare const useMyChart: () => {
127
126
  };
128
127
  };
129
128
  };
129
+ scales: any;
130
130
  };
131
131
  bar: (titleKey: string, subtitleKey?: string) => {
132
132
  responsive: boolean;
133
133
  plugins: {
134
134
  legend: {
135
135
  display: boolean;
136
- position: "top";
136
+ position: 'top';
137
137
  labels: {
138
138
  color: string;
139
139
  };
@@ -164,16 +164,16 @@ declare const useMyChart: () => {
164
164
  zoom: {
165
165
  wheel: {
166
166
  enabled: boolean;
167
- modifierKey: "ctrl";
167
+ modifierKey: 'ctrl';
168
168
  };
169
169
  pinch: {
170
170
  enabled: boolean;
171
171
  };
172
- mode: "y";
172
+ mode: 'y';
173
173
  };
174
174
  pan: {
175
175
  enabled: boolean;
176
- mode: "x" | "y" | "xy";
176
+ mode: 'x' | 'y' | 'xy';
177
177
  };
178
178
  limits: {
179
179
  y: {
@@ -184,9 +184,9 @@ declare const useMyChart: () => {
184
184
  };
185
185
  scales: {
186
186
  x: {
187
- type: "time";
187
+ type: 'time';
188
188
  time: {
189
- unit: "day";
189
+ unit: 'day';
190
190
  };
191
191
  ticks: {
192
192
  color: string;
@@ -205,7 +205,7 @@ declare const useMyChart: () => {
205
205
  plugins: {
206
206
  legend: {
207
207
  display: boolean;
208
- position: "top";
208
+ position: 'top';
209
209
  labels: {
210
210
  color: string;
211
211
  };
@@ -236,16 +236,16 @@ declare const useMyChart: () => {
236
236
  zoom: {
237
237
  wheel: {
238
238
  enabled: boolean;
239
- modifierKey: "ctrl";
239
+ modifierKey: 'ctrl';
240
240
  };
241
241
  pinch: {
242
242
  enabled: boolean;
243
243
  };
244
- mode: "y";
244
+ mode: 'y';
245
245
  };
246
246
  pan: {
247
247
  enabled: boolean;
248
- mode: "x" | "y" | "xy";
248
+ mode: 'x' | 'y' | 'xy';
249
249
  };
250
250
  limits: {
251
251
  y: {
@@ -256,9 +256,9 @@ declare const useMyChart: () => {
256
256
  };
257
257
  scales: {
258
258
  x: {
259
- type: "time";
259
+ type: 'time';
260
260
  time: {
261
- unit: "day";
261
+ unit: 'day';
262
262
  };
263
263
  ticks: {
264
264
  color: string;
@@ -20,7 +20,7 @@ const useMySnackbar = () => {
20
20
  ...snackBarOptions,
21
21
  ...options,
22
22
  SnackbarProps: {
23
- ...(options.SnackbarProps ?? {}),
23
+ ...options.SnackbarProps,
24
24
  onClick: options.SnackbarProps?.onClick
25
25
  ? e => {
26
26
  options.SnackbarProps?.onClick(e);