@cccsaurora/howler-ui 3.1.0-dev.1493 → 3.1.0-dev.1602

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 (727) hide show
  1. package/api/action/execute.d.ts +1 -1
  2. package/api/action/index.d.ts +10 -6
  3. package/api/action/index.js +5 -9
  4. package/api/action/operations.js +2 -2
  5. package/api/analytic/comments/index.d.ts +4 -6
  6. package/api/analytic/comments/react.d.ts +2 -2
  7. package/api/analytic/favourite.d.ts +2 -4
  8. package/api/analytic/index.d.ts +7 -4
  9. package/api/analytic/index.js +2 -2
  10. package/api/analytic/notebooks/index.d.ts +2 -4
  11. package/api/analytic/owner.d.ts +1 -1
  12. package/api/auth/apikey.d.ts +2 -2
  13. package/api/auth/login.d.ts +2 -2
  14. package/api/configs/index.d.ts +1 -1
  15. package/api/dossier.d.ts +16 -0
  16. package/api/{dossier/index.js → dossier.js} +6 -4
  17. package/api/help.d.ts +2 -2
  18. package/api/hit/assign.d.ts +6 -2
  19. package/api/hit/comments/index.d.ts +4 -6
  20. package/api/hit/comments/react.d.ts +2 -2
  21. package/api/hit/index.d.ts +3 -8
  22. package/api/hit/labels.d.ts +2 -2
  23. package/api/hit/overwrite.d.ts +1 -1
  24. package/api/hit/transition.d.ts +1 -1
  25. package/api/index.d.ts +6 -6
  26. package/api/index.js +7 -6
  27. package/api/notebook/environments.d.ts +1 -1
  28. package/api/notebook/index.d.ts +1 -1
  29. package/api/overview/index.d.ts +4 -4
  30. package/api/search/action.d.ts +1 -1
  31. package/api/search/analytic.d.ts +1 -1
  32. package/api/search/case.d.ts +1 -1
  33. package/api/search/count/hit.d.ts +1 -1
  34. package/api/search/dossier.d.ts +1 -1
  35. package/api/search/eql/hit.d.ts +1 -1
  36. package/api/search/explain/hit.d.ts +1 -1
  37. package/api/search/facet/hit.d.ts +1 -1
  38. package/api/search/fields/hit.js +1 -2
  39. package/api/search/fields/user.js +2 -4
  40. package/api/search/grouped/hit.d.ts +1 -1
  41. package/api/search/grouped/user.js +3 -0
  42. package/api/search/histogram/hit.d.ts +1 -1
  43. package/api/search/hit.d.ts +1 -1
  44. package/api/search/overview.d.ts +1 -1
  45. package/api/search/sigma/hit.d.ts +1 -1
  46. package/api/search/template.d.ts +1 -1
  47. package/api/search/user.d.ts +30 -2
  48. package/api/search/user.js +3 -0
  49. package/api/search/view.d.ts +1 -1
  50. package/api/socket/viewers.d.ts +1 -1
  51. package/api/socket/viewers.js +1 -1
  52. package/api/template/index.d.ts +3 -3
  53. package/api/template/index.js +2 -2
  54. package/api/user/avatar/index.d.ts +1 -1
  55. package/api/user/groups.d.ts +1 -1
  56. package/api/user/index.d.ts +2 -2
  57. package/api/user/whoami.d.ts +1 -1
  58. package/api/utils/createPermissionsApi.d.ts +10 -0
  59. package/api/utils/createPermissionsApi.js +10 -0
  60. package/api/v2/case/index.d.ts +4 -4
  61. package/api/v2/case/items.d.ts +3 -3
  62. package/api/v2/case/rules.d.ts +3 -3
  63. package/api/v2/fuzzy.d.ts +1 -1
  64. package/api/v2/search/facet.d.ts +1 -1
  65. package/api/v2/search/index.d.ts +1 -1
  66. package/api/view/favourite.d.ts +2 -4
  67. package/api/view/index.d.ts +9 -5
  68. package/api/view/index.js +3 -1
  69. package/branding/AppBrand.d.ts +2 -2
  70. package/branding/AppBrand.js +4 -6
  71. package/components/app/App.js +248 -51
  72. package/components/app/AppContainer.js +1 -1
  73. package/components/app/drawers/ApiKeyDrawer.js +13 -5
  74. package/components/app/drawers/AssignUserDrawer.js +11 -4
  75. package/components/app/hooks/useMatchers.d.ts +3 -3
  76. package/components/app/hooks/useMatchers.js +12 -12
  77. package/components/app/hooks/useMatchers.test.js +15 -14
  78. package/components/app/hooks/useTitle.js +8 -7
  79. package/components/app/providers/AnalyticProvider.d.ts +1 -1
  80. package/components/app/providers/AnalyticProvider.js +7 -4
  81. package/components/app/providers/ApiConfigProvider.d.ts +2 -1
  82. package/components/app/providers/ApiConfigProvider.js +12 -10
  83. package/components/app/providers/AppDrawerProvider.js +2 -2
  84. package/components/app/providers/AvatarProvider.js +18 -11
  85. package/components/app/providers/FavouritesProvider.js +56 -86
  86. package/components/app/providers/FieldProvider.js +1 -1
  87. package/components/app/providers/GridColumnsProvider.d.ts +1 -1
  88. package/components/app/providers/GridColumnsProvider.js +17 -4
  89. package/components/app/providers/GridColumnsProvider.test.js +2 -1
  90. package/components/app/providers/LocalStorageProvider.d.ts +2 -2
  91. package/components/app/providers/LocalStorageProvider.js +4 -3
  92. package/components/app/providers/ModalProvider.js +8 -1
  93. package/components/app/providers/OverviewProvider.js +10 -2
  94. package/components/app/providers/ParameterProvider.d.ts +7 -7
  95. package/components/app/providers/ParameterProvider.js +42 -5
  96. package/components/app/providers/ParameterProvider.test.js +1 -0
  97. package/components/app/providers/RecordProvider.js +7 -1
  98. package/components/app/providers/RecordSearchProvider.d.ts +1 -2
  99. package/components/app/providers/RecordSearchProvider.js +32 -23
  100. package/components/app/providers/RecordSearchProvider.test.js +2 -1
  101. package/components/app/providers/SearchResponseProvider.d.ts +9 -6
  102. package/components/app/providers/SearchResponseProvider.js +37 -19
  103. package/components/app/providers/SearchResponseProvider.test.js +37 -11
  104. package/components/app/providers/SocketProvider.js +6 -4
  105. package/components/app/providers/UserListProvider.d.ts +1 -1
  106. package/components/app/providers/ViewProvider.d.ts +2 -2
  107. package/components/app/providers/ViewProvider.js +22 -12
  108. package/components/app/providers/ViewProvider.test.js +2 -2
  109. package/components/app/providers/contextUtils.d.ts +1 -0
  110. package/components/app/providers/contextUtils.js +3 -0
  111. package/components/elements/Comment.d.ts +1 -1
  112. package/components/elements/Comment.js +11 -9
  113. package/components/elements/ContextMenu.js +1 -1
  114. package/components/elements/ContextMenu.test.js +2 -2
  115. package/components/elements/EditRow.d.ts +9 -4
  116. package/components/elements/EditRow.js +5 -4
  117. package/components/elements/MarkdownEditor.js +1 -1
  118. package/components/elements/MembershipManagement.test.js +178 -0
  119. package/components/elements/ObjectDetails.js +6 -6
  120. package/components/elements/ThemedEditor.js +17 -17
  121. package/components/elements/UserList.d.ts +2 -0
  122. package/components/elements/UserList.js +26 -18
  123. package/components/elements/UserList.test.js +24 -1
  124. package/components/elements/addons/buttons/CustomButton.d.ts +1 -1
  125. package/components/elements/addons/buttons/CustomButton.js +2 -2
  126. package/components/elements/addons/buttons/CustomIconButton.d.ts +1 -1
  127. package/components/elements/addons/buttons/CustomIconButton.js +3 -3
  128. package/components/elements/addons/buttons/index.d.ts +1 -1
  129. package/components/elements/addons/layout/FlexOne.d.ts +2 -2
  130. package/components/elements/addons/layout/FlexOne.test.js +1 -0
  131. package/components/elements/addons/layout/FlexPort.d.ts +1 -1
  132. package/components/elements/addons/layout/FlexPort.js +9 -2
  133. package/components/elements/addons/layout/FlexVertical.d.ts +2 -2
  134. package/components/elements/addons/layout/FlexVertical.js +1 -1
  135. package/components/elements/addons/layout/vsbox/VSBox.d.ts +2 -2
  136. package/components/elements/addons/layout/vsbox/VSBox.js +5 -4
  137. package/components/elements/addons/layout/vsbox/VSBoxElement.d.ts +1 -1
  138. package/components/elements/addons/layout/vsbox/VSBoxHeader.js +4 -3
  139. package/components/elements/addons/lists/TuiList.d.ts +2 -2
  140. package/components/elements/addons/lists/TuiList.js +1 -1
  141. package/components/elements/addons/lists/TuiListBase.d.ts +2 -2
  142. package/components/elements/addons/lists/TuiListBase.js +4 -4
  143. package/components/elements/addons/lists/TuiListElement.d.ts +2 -2
  144. package/components/elements/addons/lists/TuiListElement.js +2 -2
  145. package/components/elements/addons/lists/TuiListMenu.d.ts +13 -37
  146. package/components/elements/addons/lists/TuiListMenu.js +8 -8
  147. package/components/elements/addons/lists/TuiListProvider.d.ts +2 -2
  148. package/components/elements/addons/lists/TuiListProvider.js +4 -4
  149. package/components/elements/addons/lists/hooks/useTuiListKeyboard.js +1 -1
  150. package/components/elements/addons/lists/table/TuiTable.d.ts +1 -1
  151. package/components/elements/addons/lists/table/TuiTable.js +1 -1
  152. package/components/elements/addons/lists/table/TuiTableBody.d.ts +1 -1
  153. package/components/elements/addons/lists/table/TuiTableBody.js +1 -1
  154. package/components/elements/addons/lists/table/TuiTableHead.d.ts +1 -1
  155. package/components/elements/addons/lists/table/TuiTableHead.js +1 -1
  156. package/components/elements/addons/lists/table/TuiTableHeader.d.ts +1 -1
  157. package/components/elements/addons/lists/table/TuiTableLayout.js +1 -1
  158. package/components/elements/addons/search/SearchPagination.d.ts +1 -1
  159. package/components/elements/addons/search/SearchPagination.test.js +1 -1
  160. package/components/elements/addons/search/SearchTotal.d.ts +1 -1
  161. package/components/elements/addons/search/phrase/Phrase.d.ts +2 -2
  162. package/components/elements/addons/search/phrase/Phrase.js +7 -7
  163. package/components/elements/addons/search/phrase/PhraseConsumer.d.ts +2 -2
  164. package/components/elements/addons/search/phrase/PhraseLexer.d.ts +1 -1
  165. package/components/elements/addons/search/phrase/PhraseLexer.js +6 -6
  166. package/components/elements/addons/search/phrase/WordLexer.test.js +1 -0
  167. package/components/elements/addons/search/phrase/index.d.ts +2 -2
  168. package/components/elements/addons/search/phrase/index.js +3 -2
  169. package/components/elements/addons/search/phrase/word/consumers/WhitespaceConsumer.d.ts +1 -1
  170. package/components/elements/addons/search/phrase/word/consumers/WhitespaceConsumer.js +1 -1
  171. package/components/elements/addons/search/phrase/word/consumers/WordConsumer.d.ts +1 -1
  172. package/components/elements/case/CaseCard.js +10 -4
  173. package/components/elements/case/CasePreview.js +1 -1
  174. package/components/elements/display/ActionButton.js +3 -1
  175. package/components/elements/display/ChipPopper.js +1 -1
  176. package/components/elements/display/ChipPopper.test.js +1 -0
  177. package/components/elements/display/Classification.js +6 -5
  178. package/components/elements/display/ClassificationChip.d.ts +2 -4
  179. package/components/elements/display/ClassificationChip.js +5 -3
  180. package/components/elements/display/DocumentationButton.js +1 -1
  181. package/components/elements/display/DocumentationButton.test.js +1 -1
  182. package/components/elements/display/HandlebarsMarkdown.js +2 -2
  183. package/components/elements/display/HowlerAvatar.d.ts +1 -0
  184. package/components/elements/display/HowlerAvatar.js +5 -4
  185. package/components/elements/display/HowlerAvatarHeader.js +2 -2
  186. package/components/elements/display/Image.test.js +1 -0
  187. package/components/elements/display/ItemManager.d.ts +6 -6
  188. package/components/elements/display/ItemManager.js +1 -1
  189. package/components/elements/display/Markdown.js +9 -3
  190. package/components/elements/display/Modal.js +3 -3
  191. package/components/elements/display/QueryResultText.js +1 -1
  192. package/components/elements/display/TextDivider.test.js +1 -0
  193. package/components/elements/display/TypingIndicator.d.ts +1 -1
  194. package/components/elements/display/UserPageWrapper.js +2 -2
  195. package/components/elements/display/handlebars/helpers.js +1 -1
  196. package/components/elements/display/json/JSONViewer.js +2 -2
  197. package/components/elements/display/markdownPlugins/tabs.js +4 -0
  198. package/components/elements/display/modals/CreateActionModal.js +1 -1
  199. package/components/elements/display/modals/RationaleModal.js +1 -2
  200. package/components/elements/display/modals/RationaleModal.test.js +9 -5
  201. package/components/elements/event/EventPreview.js +1 -1
  202. package/components/elements/hit/HitActions.js +5 -7
  203. package/components/elements/hit/HitBanner.js +4 -16
  204. package/components/elements/hit/HitBanner.test.js +11 -20
  205. package/components/elements/hit/HitLabels.js +23 -13
  206. package/components/elements/hit/HitLinks.js +4 -4
  207. package/components/elements/hit/HitNotebooks.js +28 -10
  208. package/components/elements/hit/HitOutline.js +9 -15
  209. package/components/elements/hit/HitOutline.test.js +5 -5
  210. package/components/elements/hit/HitOverview.js +3 -3
  211. package/components/elements/hit/HitPreview.d.ts +1 -1
  212. package/components/elements/hit/HitPreview.js +6 -7
  213. package/components/elements/hit/HitSummary.js +8 -8
  214. package/components/elements/hit/PivotTooltip.js +1 -1
  215. package/components/elements/hit/actions/ButtonActions.js +2 -2
  216. package/components/elements/hit/actions/DropdownActions.js +4 -4
  217. package/components/elements/hit/aggregate/HitGraph.js +28 -11
  218. package/components/elements/hit/elements/AnalyticLink.js +2 -2
  219. package/components/elements/hit/elements/AnalyticLink.test.js +1 -1
  220. package/components/elements/hit/elements/Assigned.js +1 -1
  221. package/components/elements/hit/elements/Assigned.test.js +1 -1
  222. package/components/elements/hit/elements/EscalationChip.js +2 -2
  223. package/components/elements/hit/elements/HitTimestamp.js +2 -2
  224. package/components/elements/hit/grid/AddColumnModal.js +2 -2
  225. package/components/elements/hit/grid/ColumnHeader.js +1 -1
  226. package/components/elements/hit/grid/RecordRow.js +1 -1
  227. package/components/elements/hit/grid/RecordTable.d.ts +4 -3
  228. package/components/elements/hit/grid/RecordTable.js +6 -6
  229. package/components/elements/hit/related/PivotLink.js +2 -2
  230. package/components/elements/hit/related/RelatedIcon.js +2 -2
  231. package/components/elements/hit/related/RelatedLink.js +1 -1
  232. package/components/elements/hit/related/RelatedRecords.js +1 -1
  233. package/components/elements/membership/Members.d.ts +6 -0
  234. package/components/elements/membership/Members.js +14 -0
  235. package/components/elements/membership/MembershipManagement.d.ts +9 -0
  236. package/components/elements/membership/MembershipManagement.js +119 -0
  237. package/components/elements/membership/types.d.ts +7 -0
  238. package/components/elements/membership/utils.d.ts +2 -0
  239. package/components/elements/membership/utils.js +6 -0
  240. package/components/elements/record/RecordComments.js +16 -10
  241. package/components/elements/record/RecordContextMenu.d.ts +2 -2
  242. package/components/elements/record/RecordContextMenu.js +11 -5
  243. package/components/elements/record/RecordContextMenu.test.js +14 -6
  244. package/components/elements/record/RecordRelated.js +2 -2
  245. package/components/elements/search/FuzzySearchBar.js +1 -1
  246. package/components/elements/view/LayoutToggle.d.ts +1 -1
  247. package/components/elements/view/ViewTitle.js +3 -4
  248. package/components/hooks/useHitActions.d.ts +1 -1
  249. package/components/hooks/useHitActions.js +25 -15
  250. package/components/hooks/useLocalStorage.d.ts +1 -1
  251. package/components/hooks/useLocalStorage.js +1 -1
  252. package/components/hooks/useLocalStorageItem.d.ts +11 -1
  253. package/components/hooks/useLocalStorageItem.js +7 -5
  254. package/components/hooks/useLocalStorageItem.test.js +23 -0
  255. package/components/hooks/useMyAccessibility.d.ts +7 -0
  256. package/components/hooks/useMyAccessibility.js +21 -0
  257. package/components/hooks/useMyApi.d.ts +1 -1
  258. package/components/hooks/useMyApi.js +4 -4
  259. package/components/hooks/useMyChart.d.ts +46 -48
  260. package/components/hooks/useMyChart.js +30 -9
  261. package/components/hooks/useMyCookies.d.ts +3 -0
  262. package/components/hooks/useMyCookies.js +8 -0
  263. package/components/hooks/useMyLocalStorage.d.ts +8 -2
  264. package/components/hooks/useMyLocalStorage.js +1 -1
  265. package/components/hooks/useMyPreferences.d.ts +1 -1
  266. package/components/hooks/useMyPreferences.js +93 -127
  267. package/components/hooks/useMyRouter.d.ts +2 -0
  268. package/components/hooks/useMyRouter.js +24 -0
  269. package/components/hooks/useMySearch.d.ts +1 -1
  270. package/components/hooks/useMySearch.js +17 -7
  271. package/components/hooks/useMySnackbar.js +1 -1
  272. package/components/hooks/useMyTheme.d.ts +1 -1
  273. package/components/hooks/useMyTheme.js +13 -8
  274. package/components/hooks/useMyTheme.test.js +11 -6
  275. package/components/hooks/useMyUser.d.ts +1 -1
  276. package/components/hooks/useMyUser.js +6 -5
  277. package/components/hooks/useMyUserFunctions.d.ts +2 -2
  278. package/components/hooks/useMyUserFunctions.js +14 -10
  279. package/components/hooks/useMyUserList.d.ts +1 -1
  280. package/components/hooks/useMyUtils.js +1 -1
  281. package/components/hooks/useParamState.js +5 -3
  282. package/components/hooks/useParamState.test.js +1 -1
  283. package/components/hooks/useRecordSelection.d.ts +4 -3
  284. package/components/hooks/useRecordSelection.js +5 -5
  285. package/components/hooks/useScrollRestoration.js +3 -3
  286. package/components/logins/Login.d.ts +1 -1
  287. package/components/logins/Login.js +4 -6
  288. package/components/logins/auth/OAuthLogin.js +1 -1
  289. package/components/logins/auth/UserPassLogin.d.ts +1 -1
  290. package/components/logins/hooks/useLogin.js +10 -6
  291. package/components/routes/403.js +1 -1
  292. package/components/routes/403.test.js +7 -3
  293. package/components/routes/404.js +1 -1
  294. package/components/routes/404.test.js +7 -3
  295. package/components/routes/ErrorBoundary.d.ts +2 -2
  296. package/components/routes/ErrorBoundary.js +2 -2
  297. package/components/routes/ErrorBoundary.test.js +1 -4
  298. package/components/routes/ErrorOccured.js +1 -1
  299. package/components/routes/ErrorOccured.test.js +7 -3
  300. package/components/routes/Logout.js +3 -4
  301. package/components/routes/Logout.test.js +12 -11
  302. package/components/routes/action/edit/ActionEditor.js +38 -30
  303. package/components/routes/action/shared/ActionReportDisplay.js +1 -1
  304. package/components/routes/action/shared/OperationEntry.js +2 -2
  305. package/components/routes/action/shared/OperationStep.js +12 -10
  306. package/components/routes/action/useMyActionFunctions.d.ts +3 -3
  307. package/components/routes/action/useMyActionFunctions.js +13 -13
  308. package/components/routes/action/view/ActionDetails.d.ts +1 -1
  309. package/components/routes/action/view/ActionDetails.js +46 -26
  310. package/components/routes/action/view/ActionSearch.js +11 -10
  311. package/components/routes/action/view/Integrations.js +2 -2
  312. package/components/routes/action/view/markdown/integrations.en.md.js +1 -1
  313. package/components/routes/action/view/markdown/integrations.fr.md.js +1 -1
  314. package/components/routes/admin/users/UserEditor.js +21 -8
  315. package/components/routes/admin/users/UserSearch.js +10 -9
  316. package/components/routes/advanced/QueryBuilder.js +17 -11
  317. package/components/routes/advanced/luceneCompletionProvider.js +42 -21
  318. package/components/routes/analytics/AnalyticComments.js +19 -14
  319. package/components/routes/analytics/AnalyticDetails.d.ts +1 -1
  320. package/components/routes/analytics/AnalyticDetails.js +20 -16
  321. package/components/routes/analytics/AnalyticHitComments.js +13 -6
  322. package/components/routes/analytics/AnalyticHitComments.test.js +5 -4
  323. package/components/routes/analytics/AnalyticNotebooks.js +5 -5
  324. package/components/routes/analytics/AnalyticOverview.js +28 -15
  325. package/components/routes/analytics/AnalyticOverviews.js +2 -2
  326. package/components/routes/analytics/AnalyticSearch.js +11 -10
  327. package/components/routes/analytics/AnalyticTemplates.js +3 -3
  328. package/components/routes/analytics/TriageSettings.d.ts +1 -1
  329. package/components/routes/analytics/TriageSettings.js +1 -1
  330. package/components/routes/analytics/widgets/Assessment.js +1 -1
  331. package/components/routes/analytics/widgets/Created.js +9 -9
  332. package/components/routes/analytics/widgets/Escalation.js +3 -3
  333. package/components/routes/analytics/widgets/Stacked.js +5 -5
  334. package/components/routes/analytics/widgets/Status.js +2 -2
  335. package/components/routes/cases/CaseViewer.js +1 -1
  336. package/components/routes/cases/CaseViewer.test.js +2 -2
  337. package/components/routes/cases/Cases.d.ts +1 -1
  338. package/components/routes/cases/Cases.js +8 -7
  339. package/components/routes/cases/constants.d.ts +3 -3
  340. package/components/routes/cases/detail/AlertPanel.js +1 -1
  341. package/components/routes/cases/detail/AlertPanel.test.js +4 -6
  342. package/components/routes/cases/detail/CaseDashboard.js +8 -4
  343. package/components/routes/cases/detail/CaseDashboard.test.js +2 -2
  344. package/components/routes/cases/detail/CaseDetails.js +7 -2
  345. package/components/routes/cases/detail/CaseDetails.test.js +1 -1
  346. package/components/routes/cases/detail/CaseObservables.js +5 -4
  347. package/components/routes/cases/detail/CaseObservables.test.js +1 -1
  348. package/components/routes/cases/detail/CaseOverview.js +2 -2
  349. package/components/routes/cases/detail/CaseRules.js +10 -6
  350. package/components/routes/cases/detail/CaseRules.test.js +2 -2
  351. package/components/routes/cases/detail/CaseSearch.js +5 -5
  352. package/components/routes/cases/detail/CaseSearch.test.js +2 -2
  353. package/components/routes/cases/detail/CaseSidebar.js +12 -7
  354. package/components/routes/cases/detail/CaseSidebar.test.js +5 -6
  355. package/components/routes/cases/detail/CaseTask.js +27 -15
  356. package/components/routes/cases/detail/CaseTask.test.js +8 -1
  357. package/components/routes/cases/detail/CaseTimeline.js +8 -8
  358. package/components/routes/cases/detail/CaseTimeline.test.js +6 -6
  359. package/components/routes/cases/detail/CreateRuleDialog.js +4 -4
  360. package/components/routes/cases/detail/CreateRuleDialog.test.js +2 -2
  361. package/components/routes/cases/detail/ItemPage.js +3 -3
  362. package/components/routes/cases/detail/MarkdownPage.test.js +0 -4
  363. package/components/routes/cases/detail/RelatedCasePanel.js +1 -1
  364. package/components/routes/cases/detail/RelatedCasePanel.test.js +4 -6
  365. package/components/routes/cases/detail/TaskPanel.js +8 -8
  366. package/components/routes/cases/detail/TaskPanel.test.js +3 -3
  367. package/components/routes/cases/detail/aggregates/CaseAggregate.js +1 -1
  368. package/components/routes/cases/detail/aggregates/SourceAggregate.js +3 -3
  369. package/components/routes/cases/detail/observables/Observable.js +4 -5
  370. package/components/routes/cases/detail/observables/Observable.test.js +1 -1
  371. package/components/routes/cases/detail/observables/ObservableTable.js +3 -3
  372. package/components/routes/cases/detail/observables/ObservableTable.test.js +1 -1
  373. package/components/routes/cases/detail/sidebar/CaseFolder.js +24 -20
  374. package/components/routes/cases/detail/sidebar/CaseFolder.test.js +1 -1
  375. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +4 -2
  376. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +3 -2
  377. package/components/routes/cases/detail/sidebar/FolderEntry.js +3 -3
  378. package/components/routes/cases/detail/sidebar/FolderEntry.test.js +3 -3
  379. package/components/routes/cases/detail/sidebar/types.d.ts +1 -1
  380. package/components/routes/cases/detail/sidebar/utils.js +1 -1
  381. package/components/routes/cases/detail/sidebar/utils.test.js +8 -8
  382. package/components/routes/cases/detail/utils.d.ts +1 -1
  383. package/components/routes/cases/detail/utils.js +3 -2
  384. package/components/routes/cases/hooks/useCase.js +14 -2
  385. package/components/routes/cases/modals/AddRecordToCaseModal.test.js +1 -1
  386. package/components/routes/cases/modals/AddToCaseModal.d.ts +1 -1
  387. package/components/routes/cases/modals/AddToCaseModal.js +2 -2
  388. package/components/routes/cases/modals/CreateCaseModal.test.js +1 -1
  389. package/components/routes/cases/modals/ResolveModal.js +8 -5
  390. package/components/routes/cases/modals/ResolveModal.test.js +5 -5
  391. package/components/routes/cases/modals/hooks.js +1 -2
  392. package/components/routes/cases/modals/types.d.ts +1 -1
  393. package/components/routes/cases/search/CaseAssigneeFilter.js +1 -1
  394. package/components/routes/cases/search/CaseAssigneeFilter.test.js +8 -3
  395. package/components/routes/cases/search/CaseStatusFilter.test.js +1 -0
  396. package/components/routes/cases/utils.d.ts +0 -1
  397. package/components/routes/cases/utils.js +4 -13
  398. package/components/routes/dossiers/DossierCard.js +3 -3
  399. package/components/routes/dossiers/DossierCard.test.js +6 -6
  400. package/components/routes/dossiers/DossierEditor.js +61 -25
  401. package/components/routes/dossiers/DossierEditor.test.js +16 -9
  402. package/components/routes/dossiers/Dossiers.d.ts +1 -1
  403. package/components/routes/dossiers/Dossiers.js +6 -5
  404. package/components/routes/dossiers/LeadEditor.d.ts +1 -1
  405. package/components/routes/dossiers/LeadEditor.js +2 -2
  406. package/components/routes/dossiers/LeadForm.js +2 -2
  407. package/components/routes/dossiers/PivotForm.d.ts +1 -1
  408. package/components/routes/dossiers/PivotForm.js +10 -9
  409. package/components/routes/events/EventViewer.js +1 -1
  410. package/components/routes/help/ActionDocumentation.js +2 -2
  411. package/components/routes/help/ActionIntroductionDocumentation.js +2 -2
  412. package/components/routes/help/ApiDocumentation.js +3 -4
  413. package/components/routes/help/AuthDocumentation.js +1 -1
  414. package/components/routes/help/ClientDocumentation.js +1 -1
  415. package/components/routes/help/Help.d.ts +1 -1
  416. package/components/routes/help/Help.js +5 -4
  417. package/components/routes/help/HitDocumentation.js +3 -3
  418. package/components/routes/help/HitLabelsDocumentation.js +12 -12
  419. package/components/routes/help/HitLinksDocumentation.js +2 -2
  420. package/components/routes/help/HitSchemaDocumentation.js +14 -8
  421. package/components/routes/help/NotebookDocumentation.js +1 -1
  422. package/components/routes/help/OverviewDocumentation.js +1 -1
  423. package/components/routes/help/RetentionDocumentation.js +3 -3
  424. package/components/routes/help/SearchDocumentation.js +6 -4
  425. package/components/routes/help/TemplateDocumentation.js +2 -2
  426. package/components/routes/help/ViewDocumentation.js +1 -1
  427. package/components/routes/help/markdown/en/views.md.js +1 -1
  428. package/components/routes/help/markdown/fr/views.md.js +1 -1
  429. package/components/routes/hits/search/InformationPane.js +8 -8
  430. package/components/routes/hits/search/QuerySettings.js +1 -1
  431. package/components/routes/hits/search/QuerySettings.test.js +8 -4
  432. package/components/routes/hits/search/RecordBrowser.js +12 -9
  433. package/components/routes/hits/search/RecordQuery.js +13 -10
  434. package/components/routes/hits/search/SearchPane.js +2 -3
  435. package/components/routes/hits/search/ViewLink.js +4 -4
  436. package/components/routes/hits/search/ViewLink.test.js +1 -0
  437. package/components/routes/hits/search/grid/RecordGrid.js +1 -1
  438. package/components/routes/hits/search/shared/CustomSort.js +3 -2
  439. package/components/routes/hits/search/shared/CustomSpan.js +9 -1
  440. package/components/routes/hits/search/shared/HitFilter.js +8 -3
  441. package/components/routes/hits/search/shared/HitSort.js +8 -6
  442. package/components/routes/hits/search/shared/IndexPicker.js +1 -1
  443. package/components/routes/hits/search/shared/LayoutSettings.js +1 -1
  444. package/components/routes/hits/search/shared/SearchActionMenu.d.ts +1 -1
  445. package/components/routes/hits/search/shared/SearchActionMenu.js +1 -1
  446. package/components/routes/hits/search/shared/SearchSpan.js +1 -1
  447. package/components/routes/hits/view/HitViewer.js +21 -11
  448. package/components/routes/hits/view/HitViewer.test.js +2 -2
  449. package/components/routes/home/AddNewCard.d.ts +2 -1
  450. package/components/routes/home/AddNewCard.js +7 -4
  451. package/components/routes/home/AnalyticCard.js +3 -3
  452. package/components/routes/home/EntryWrapper.js +1 -1
  453. package/components/routes/home/ViewCard.js +11 -7
  454. package/components/routes/home/ViewCard.test.js +3 -6
  455. package/components/routes/home/index.js +20 -17
  456. package/components/routes/overviews/OverviewCard.js +6 -2
  457. package/components/routes/overviews/OverviewViewer.d.ts +1 -1
  458. package/components/routes/overviews/OverviewViewer.js +48 -39
  459. package/components/routes/overviews/Overviews.d.ts +1 -1
  460. package/components/routes/overviews/Overviews.js +7 -6
  461. package/components/routes/overviews/markdownExtendedTokenProvider.test.js +1 -0
  462. package/components/routes/overviews/startingTemplate.js +1 -1
  463. package/components/routes/settings/ProfileSection.d.ts +1 -1
  464. package/components/routes/settings/ProfileSection.js +2 -2
  465. package/components/routes/settings/SecuritySection.d.ts +1 -1
  466. package/components/routes/settings/SecuritySection.js +2 -2
  467. package/components/routes/settings/Settings.js +6 -6
  468. package/components/routes/templates/TemplateCard.js +1 -1
  469. package/components/routes/templates/TemplateEditor.d.ts +1 -1
  470. package/components/routes/templates/TemplateEditor.js +3 -3
  471. package/components/routes/templates/TemplateViewer.d.ts +1 -1
  472. package/components/routes/templates/TemplateViewer.js +54 -52
  473. package/components/routes/templates/Templates.d.ts +1 -1
  474. package/components/routes/templates/Templates.js +10 -9
  475. package/components/routes/views/ViewComposer.js +38 -30
  476. package/components/routes/views/Views.d.ts +2 -1
  477. package/components/routes/views/Views.js +20 -14
  478. package/i18n.js +4 -0
  479. package/locales/en/translation.json +10 -0
  480. package/locales/fr/translation.json +10 -0
  481. package/models/entities/HowlerUser.d.ts +1 -1
  482. package/models/entities/generated/Action.d.ts +3 -1
  483. package/models/entities/generated/ApiType.d.ts +2 -3
  484. package/models/entities/generated/Dossier.d.ts +2 -0
  485. package/models/entities/generated/HowlerDossier.d.ts +2 -0
  486. package/models/entities/generated/Item.d.ts +2 -2
  487. package/models/entities/generated/Settings.d.ts +1 -1
  488. package/models/entities/generated/View.d.ts +2 -0
  489. package/package.json +102 -118
  490. package/plugins/HowlerPlugin.d.ts +9 -50
  491. package/plugins/HowlerPlugin.js +7 -113
  492. package/plugins/clue/Provider.js +1 -1
  493. package/plugins/clue/components/ClueLeadForm.js +2 -2
  494. package/plugins/clue/components/CluePivot.js +6 -7
  495. package/plugins/clue/components/CluePivotForm.js +26 -15
  496. package/plugins/clue/components/ClueTypography.js +2 -2
  497. package/plugins/clue/helpers.js +5 -5
  498. package/plugins/clue/index.d.ts +2 -2
  499. package/plugins/clue/index.js +1 -1
  500. package/plugins/clue/setup.js +1 -1
  501. package/plugins/clue/utils.d.ts +1 -1
  502. package/plugins/store.d.ts +26 -43
  503. package/plugins/store.js +2 -15
  504. package/rest/AxiosClient.js +3 -3
  505. package/rest/FetchClient.d.ts +1 -1
  506. package/rest/FetchClient.js +8 -5
  507. package/rest/FetchClient.test.js +7 -4
  508. package/rest/index.d.ts +4 -3
  509. package/setupTests.d.ts +3 -0
  510. package/tests/MockLocalStorage.js +2 -1
  511. package/tests/mocks.d.ts +2 -2
  512. package/tests/mocks.js +3 -3
  513. package/tests/server-handlers.js +1 -1
  514. package/utils/Throttler.js +1 -1
  515. package/utils/actionUtils.d.ts +1 -1
  516. package/utils/actionUtils.js +10 -6
  517. package/utils/classificationParser.js +56 -63
  518. package/utils/constants.d.ts +0 -17
  519. package/utils/constants.js +1 -18
  520. package/utils/exampleHit.d.ts +2 -0
  521. package/utils/exampleHit.js +18 -0
  522. package/utils/localStorage.d.ts +2 -2
  523. package/utils/localStorage.js +1 -1
  524. package/utils/menuUtils.d.ts +3 -89
  525. package/utils/menuUtils.js +66 -227
  526. package/utils/menuUtils.test.js +45 -181
  527. package/utils/sessionStorage.js +1 -1
  528. package/utils/sessionStorage.test.js +1 -0
  529. package/utils/stringUtils.d.ts +1 -1
  530. package/utils/utils.d.ts +30 -6
  531. package/utils/utils.js +66 -9
  532. package/utils/utils.test.js +1 -0
  533. package/utils/xsrf.d.ts +1 -1
  534. package/utils/xsrf.js +5 -10
  535. package/api/dossier/hit.d.ts +0 -2
  536. package/api/dossier/hit.js +0 -7
  537. package/api/dossier/index.d.ts +0 -9
  538. package/commons/components/app/AppConfigs.d.ts +0 -137
  539. package/commons/components/app/AppConstants.d.ts +0 -10
  540. package/commons/components/app/AppConstants.js +0 -10
  541. package/commons/components/app/AppContexts.d.ts +0 -105
  542. package/commons/components/app/AppContexts.js +0 -21
  543. package/commons/components/app/AppDefaults.d.ts +0 -6
  544. package/commons/components/app/AppDefaults.js +0 -40
  545. package/commons/components/app/AppNotificationService.d.ts +0 -6
  546. package/commons/components/app/AppNotificationService.js +0 -1
  547. package/commons/components/app/AppProvider.d.ts +0 -15
  548. package/commons/components/app/AppProvider.js +0 -41
  549. package/commons/components/app/AppSearchService.d.ts +0 -21
  550. package/commons/components/app/AppSearchService.js +0 -1
  551. package/commons/components/app/AppSkeleton.d.ts +0 -5
  552. package/commons/components/app/AppSkeleton.js +0 -152
  553. package/commons/components/app/AppUserService.d.ts +0 -17
  554. package/commons/components/app/AppUserService.js +0 -1
  555. package/commons/components/app/hooks/index.d.ts +0 -18
  556. package/commons/components/app/hooks/index.js +0 -18
  557. package/commons/components/app/hooks/useApp.d.ts +0 -1
  558. package/commons/components/app/hooks/useApp.js +0 -5
  559. package/commons/components/app/hooks/useAppBanner.d.ts +0 -1
  560. package/commons/components/app/hooks/useAppBanner.js +0 -6
  561. package/commons/components/app/hooks/useAppBar.d.ts +0 -1
  562. package/commons/components/app/hooks/useAppBar.js +0 -5
  563. package/commons/components/app/hooks/useAppBarHeight.d.ts +0 -2
  564. package/commons/components/app/hooks/useAppBarHeight.js +0 -22
  565. package/commons/components/app/hooks/useAppBarScrollTrigger.d.ts +0 -1
  566. package/commons/components/app/hooks/useAppBarScrollTrigger.js +0 -7
  567. package/commons/components/app/hooks/useAppBreadcrumbs.d.ts +0 -1
  568. package/commons/components/app/hooks/useAppBreadcrumbs.js +0 -5
  569. package/commons/components/app/hooks/useAppConfigs.d.ts +0 -59
  570. package/commons/components/app/hooks/useAppConfigs.js +0 -44
  571. package/commons/components/app/hooks/useAppLanguage.d.ts +0 -6
  572. package/commons/components/app/hooks/useAppLanguage.js +0 -17
  573. package/commons/components/app/hooks/useAppLayout.d.ts +0 -1
  574. package/commons/components/app/hooks/useAppLayout.js +0 -5
  575. package/commons/components/app/hooks/useAppLeftNav.d.ts +0 -1
  576. package/commons/components/app/hooks/useAppLeftNav.js +0 -5
  577. package/commons/components/app/hooks/useAppLogo.d.ts +0 -1
  578. package/commons/components/app/hooks/useAppLogo.js +0 -8
  579. package/commons/components/app/hooks/useAppNotification.d.ts +0 -1
  580. package/commons/components/app/hooks/useAppNotification.js +0 -5
  581. package/commons/components/app/hooks/useAppQuickSearch.d.ts +0 -1
  582. package/commons/components/app/hooks/useAppQuickSearch.js +0 -5
  583. package/commons/components/app/hooks/useAppSearchService.d.ts +0 -2
  584. package/commons/components/app/hooks/useAppSearchService.js +0 -5
  585. package/commons/components/app/hooks/useAppSitemap.d.ts +0 -16
  586. package/commons/components/app/hooks/useAppSitemap.js +0 -70
  587. package/commons/components/app/hooks/useAppSwitcher.d.ts +0 -1
  588. package/commons/components/app/hooks/useAppSwitcher.js +0 -5
  589. package/commons/components/app/hooks/useAppTheme.d.ts +0 -8
  590. package/commons/components/app/hooks/useAppTheme.js +0 -12
  591. package/commons/components/app/hooks/useAppUser.d.ts +0 -2
  592. package/commons/components/app/hooks/useAppUser.js +0 -5
  593. package/commons/components/app/providers/AppBarProvider.d.ts +0 -10
  594. package/commons/components/app/providers/AppBarProvider.js +0 -24
  595. package/commons/components/app/providers/AppBreadcrumbsProvider.d.ts +0 -6
  596. package/commons/components/app/providers/AppBreadcrumbsProvider.js +0 -43
  597. package/commons/components/app/providers/AppLayoutProvider.d.ts +0 -6
  598. package/commons/components/app/providers/AppLayoutProvider.js +0 -73
  599. package/commons/components/app/providers/AppLeftNavProvider.d.ts +0 -6
  600. package/commons/components/app/providers/AppLeftNavProvider.js +0 -22
  601. package/commons/components/app/providers/AppNotificationProvider.d.ts +0 -6
  602. package/commons/components/app/providers/AppNotificationProvider.js +0 -31
  603. package/commons/components/app/providers/AppQuickSearchProvider.d.ts +0 -8
  604. package/commons/components/app/providers/AppQuickSearchProvider.js +0 -19
  605. package/commons/components/app/providers/AppSearchServiceProvider.d.ts +0 -6
  606. package/commons/components/app/providers/AppSearchServiceProvider.js +0 -46
  607. package/commons/components/app/providers/AppSnackbarProvider.d.ts +0 -3
  608. package/commons/components/app/providers/AppSnackbarProvider.js +0 -15
  609. package/commons/components/app/providers/AppSwitcherProvider.d.ts +0 -6
  610. package/commons/components/app/providers/AppSwitcherProvider.js +0 -10
  611. package/commons/components/app/providers/AppUserProvider.d.ts +0 -8
  612. package/commons/components/app/providers/AppUserProvider.js +0 -12
  613. package/commons/components/breadcrumbs/BreadcrumbIcon.d.ts +0 -6
  614. package/commons/components/breadcrumbs/BreadcrumbIcon.js +0 -9
  615. package/commons/components/breadcrumbs/BreadcrumbLastItem.d.ts +0 -7
  616. package/commons/components/breadcrumbs/BreadcrumbLastItem.js +0 -19
  617. package/commons/components/breadcrumbs/BreadcrumbLinkItem.d.ts +0 -7
  618. package/commons/components/breadcrumbs/BreadcrumbLinkItem.js +0 -20
  619. package/commons/components/breadcrumbs/BreadcrumbList.d.ts +0 -11
  620. package/commons/components/breadcrumbs/BreadcrumbList.js +0 -44
  621. package/commons/components/breadcrumbs/Breadcrumbs.d.ts +0 -5
  622. package/commons/components/breadcrumbs/Breadcrumbs.js +0 -31
  623. package/commons/components/display/AppAvatar.d.ts +0 -8
  624. package/commons/components/display/AppAvatar.js +0 -18
  625. package/commons/components/display/AppInfoPanel.d.ts +0 -5
  626. package/commons/components/display/AppInfoPanel.js +0 -17
  627. package/commons/components/display/AppListEmpty.d.ts +0 -2
  628. package/commons/components/display/AppListEmpty.js +0 -5
  629. package/commons/components/display/AppToc.d.ts +0 -20
  630. package/commons/components/display/AppToc.js +0 -98
  631. package/commons/components/display/hooks/useAppColor.d.ts +0 -5
  632. package/commons/components/display/hooks/useAppColor.js +0 -10
  633. package/commons/components/leftnav/LeftNavDrawer.d.ts +0 -3
  634. package/commons/components/leftnav/LeftNavDrawer.js +0 -99
  635. package/commons/components/leftnav/LeftNavGroup.d.ts +0 -8
  636. package/commons/components/leftnav/LeftNavGroup.js +0 -55
  637. package/commons/components/leftnav/LeftNavItem.d.ts +0 -11
  638. package/commons/components/leftnav/LeftNavItem.js +0 -29
  639. package/commons/components/notification/FeedModels.d.ts +0 -64
  640. package/commons/components/notification/FeedModels.js +0 -94
  641. package/commons/components/notification/Notification.d.ts +0 -10
  642. package/commons/components/notification/Notification.js +0 -95
  643. package/commons/components/notification/elements/NotificationCloseButton.d.ts +0 -3
  644. package/commons/components/notification/elements/NotificationCloseButton.js +0 -6
  645. package/commons/components/notification/elements/NotificationContainer.d.ts +0 -16
  646. package/commons/components/notification/elements/NotificationContainer.js +0 -29
  647. package/commons/components/notification/elements/NotificationEndOfPage.d.ts +0 -5
  648. package/commons/components/notification/elements/NotificationEndOfPage.js +0 -36
  649. package/commons/components/notification/elements/NotificationError.d.ts +0 -2
  650. package/commons/components/notification/elements/NotificationError.js +0 -10
  651. package/commons/components/notification/elements/NotificationHeader.d.ts +0 -8
  652. package/commons/components/notification/elements/NotificationHeader.js +0 -18
  653. package/commons/components/notification/elements/NotificationItems.d.ts +0 -12
  654. package/commons/components/notification/elements/NotificationItems.js +0 -12
  655. package/commons/components/notification/elements/NotificationSkeleton.d.ts +0 -2
  656. package/commons/components/notification/elements/NotificationSkeleton.js +0 -12
  657. package/commons/components/notification/elements/NotificationTopNavButton.d.ts +0 -9
  658. package/commons/components/notification/elements/NotificationTopNavButton.js +0 -9
  659. package/commons/components/notification/elements/item/NotificationItem.d.ts +0 -5
  660. package/commons/components/notification/elements/item/NotificationItem.js +0 -25
  661. package/commons/components/notification/elements/item/NotificationItemAuthor.d.ts +0 -5
  662. package/commons/components/notification/elements/item/NotificationItemAuthor.js +0 -31
  663. package/commons/components/notification/elements/item/NotificationItemContent.d.ts +0 -3
  664. package/commons/components/notification/elements/item/NotificationItemContent.js +0 -9
  665. package/commons/components/notification/elements/item/NotificationItemDate.d.ts +0 -3
  666. package/commons/components/notification/elements/item/NotificationItemDate.js +0 -10
  667. package/commons/components/notification/elements/item/NotificationItemImage.d.ts +0 -4
  668. package/commons/components/notification/elements/item/NotificationItemImage.js +0 -8
  669. package/commons/components/notification/elements/item/NotificationItemTag.d.ts +0 -4
  670. package/commons/components/notification/elements/item/NotificationItemTag.js +0 -12
  671. package/commons/components/notification/elements/item/NotificationItemTitle.d.ts +0 -3
  672. package/commons/components/notification/elements/item/NotificationItemTitle.js +0 -15
  673. package/commons/components/notification/index.d.ts +0 -2
  674. package/commons/components/notification/index.js +0 -2
  675. package/commons/components/pages/PageCardCentered.d.ts +0 -5
  676. package/commons/components/pages/PageCardCentered.js +0 -30
  677. package/commons/components/pages/PageCenter.d.ts +0 -9
  678. package/commons/components/pages/PageCenter.js +0 -20
  679. package/commons/components/pages/PageContent.d.ts +0 -8
  680. package/commons/components/pages/PageContent.js +0 -8
  681. package/commons/components/pages/PageFullScreen.d.ts +0 -11
  682. package/commons/components/pages/PageFullScreen.js +0 -40
  683. package/commons/components/pages/PageFullWidth.d.ts +0 -11
  684. package/commons/components/pages/PageFullWidth.js +0 -7
  685. package/commons/components/pages/PageHeader.d.ts +0 -23
  686. package/commons/components/pages/PageHeader.js +0 -27
  687. package/commons/components/pages/hooks/usePageProps.d.ts +0 -24
  688. package/commons/components/pages/hooks/usePageProps.js +0 -19
  689. package/commons/components/search/AppSearch.d.ts +0 -1
  690. package/commons/components/search/AppSearch.js +0 -135
  691. package/commons/components/search/AppSearchInput.d.ts +0 -12
  692. package/commons/components/search/AppSearchInput.js +0 -35
  693. package/commons/components/search/AppSearchResult.d.ts +0 -5
  694. package/commons/components/search/AppSearchResult.js +0 -28
  695. package/commons/components/topnav/AppBar.d.ts +0 -6
  696. package/commons/components/topnav/AppBar.js +0 -80
  697. package/commons/components/topnav/AppName.d.ts +0 -5
  698. package/commons/components/topnav/AppName.js +0 -31
  699. package/commons/components/topnav/AppSwitcher.d.ts +0 -3
  700. package/commons/components/topnav/AppSwitcher.js +0 -44
  701. package/commons/components/topnav/Notifications.d.ts +0 -2
  702. package/commons/components/topnav/Notifications.js +0 -8
  703. package/commons/components/topnav/ThemeSelection.d.ts +0 -3
  704. package/commons/components/topnav/ThemeSelection.js +0 -33
  705. package/commons/components/topnav/ThemeSelectionIcon.d.ts +0 -2
  706. package/commons/components/topnav/ThemeSelectionIcon.js +0 -16
  707. package/commons/components/topnav/UserProfile.d.ts +0 -6
  708. package/commons/components/topnav/UserProfile.js +0 -71
  709. package/commons/components/utils/hooks/useClipboard.d.ts +0 -3
  710. package/commons/components/utils/hooks/useClipboard.js +0 -29
  711. package/commons/components/utils/hooks/useEnv.d.ts +0 -1
  712. package/commons/components/utils/hooks/useEnv.js +0 -11
  713. package/commons/components/utils/hooks/useFullscreenStatus.d.ts +0 -2
  714. package/commons/components/utils/hooks/useFullscreenStatus.js +0 -41
  715. package/commons/components/utils/hooks/useGravatar.d.ts +0 -2
  716. package/commons/components/utils/hooks/useGravatar.js +0 -9
  717. package/commons/components/utils/hooks/useLocalStorage.d.ts +0 -12
  718. package/commons/components/utils/hooks/useLocalStorage.js +0 -52
  719. package/commons/components/utils/hooks/useLocalStorageItem.d.ts +0 -14
  720. package/commons/components/utils/hooks/useLocalStorageItem.js +0 -39
  721. package/commons/components/utils/hooks/useThemeBuilder.d.ts +0 -7
  722. package/commons/components/utils/hooks/useThemeBuilder.js +0 -48
  723. package/commons/components/utils/keyboard.d.ts +0 -30
  724. package/commons/components/utils/keyboard.js +0 -50
  725. package/components/hooks/useMySitemap.d.ts +0 -3
  726. package/components/hooks/useMySitemap.js +0 -219
  727. /package/{commons/components/app/AppConfigs.js → components/elements/MembershipManagement.test.d.ts} +0 -0
@@ -2,7 +2,7 @@ export default class TuiTableLayout {
2
2
  tableWidth;
3
3
  bodyWidth;
4
4
  columns = [];
5
- widths;
5
+ widths = {};
6
6
  constructor(tableWidth, bodyWidth, columns) {
7
7
  this.tableWidth = tableWidth;
8
8
  this.bodyWidth = bodyWidth;
@@ -6,5 +6,5 @@ type SearchPaginationProps = Omit<PaginationProps, 'onChange'> & {
6
6
  removeCount?: number;
7
7
  onChange: (nextOffset: number) => void;
8
8
  };
9
- declare const SearchPagination: ({ limit, offset, total, removeCount, onChange, ...paginationProps }: SearchPaginationProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const SearchPagination: ({ limit, offset, total, removeCount, onChange, ...paginationProps }: SearchPaginationProps) => import("react").JSX.Element | null;
10
10
  export default SearchPagination;
@@ -41,7 +41,7 @@ describe('SearchPagination', () => {
41
41
  render(_jsx(SearchPagination, { ...defaultProps, offset: 50 }));
42
42
  // offset 50 with limit 25 = page 3
43
43
  const page3 = screen.getByText('3');
44
- expect(page3.closest('button')).toHaveAttribute('aria-current', 'true');
44
+ expect(page3.closest('button')).toHaveAttribute('aria-current', 'page');
45
45
  });
46
46
  });
47
47
  describe('interaction', () => {
@@ -4,5 +4,5 @@ type SearchTotalProps = TypographyProps & {
4
4
  offset: number;
5
5
  pageLength: number;
6
6
  };
7
- declare const SearchTotal: ({ total, offset, pageLength, ...typographyProps }: SearchTotalProps) => import("react/jsx-runtime").JSX.Element;
7
+ declare const SearchTotal: ({ total, offset, pageLength, ...typographyProps }: SearchTotalProps) => import("react").JSX.Element;
8
8
  export default SearchTotal;
@@ -1,5 +1,5 @@
1
1
  import { type TextFieldProps } from '@mui/material';
2
- import { parseEvent } from '@cccsaurora/howler-ui/commons/components/utils/keyboard';
2
+ import { parseEvent } from '@tui/core';
3
3
  import { type ReactElement } from 'react';
4
4
  import type { PhraseSuggester } from '.';
5
5
  import type PhraseLexer from './PhraseLexer';
@@ -15,5 +15,5 @@ export type PhraseProps = Omit<TextFieldProps, 'onChange' | 'onKeyDown' | 'varia
15
15
  onChange: (phrase: string) => void;
16
16
  onKeyDown?: (event: ReturnType<typeof parseEvent>) => void;
17
17
  };
18
- declare const Phrase: ({ value, variant, suggestions, lexer, suggester, debug, startAdornment, endAdornment, onChange, onKeyDown, ...props }: PhraseProps) => import("react/jsx-runtime").JSX.Element;
18
+ declare const Phrase: ({ value, variant, suggestions, lexer, suggester, debug, startAdornment, endAdornment, onChange, onKeyDown, ...props }: PhraseProps) => import("react").JSX.Element;
19
19
  export default Phrase;
@@ -1,15 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ClickAwayListener, InputAdornment, ListItemText, MenuItem, MenuList, Paper, Popper, TextField } from '@mui/material';
3
- import { parseEvent } from '@cccsaurora/howler-ui/commons/components/utils/keyboard';
3
+ import { parseEvent } from '@tui/core';
4
4
  import { useEffect, useRef, useState } from 'react';
5
5
  import WordLexer from './word/WordLexer';
6
6
  import WordSuggestor from './word/WordSuggester';
7
7
  const Phrase = ({ value = '', variant = 'outlined', suggestions = [], lexer, suggester, debug, startAdornment, endAdornment, onChange, onKeyDown, ...props }) => {
8
- const containerRef = useRef();
9
- const inputRef = useRef();
10
- const menuRef = useRef();
8
+ const containerRef = useRef(null);
9
+ const inputRef = useRef(null);
10
+ const menuRef = useRef(null);
11
11
  const lexerRef = useRef(lexer || new WordLexer());
12
- const analysisRef = useRef();
12
+ const analysisRef = useRef(null);
13
13
  const suggesterRef = useRef(suggester || new WordSuggestor(suggestions));
14
14
  const [optionsOpen, setOptionsOpen] = useState(false);
15
15
  const [options, setOptions] = useState(suggestions);
@@ -63,7 +63,7 @@ const Phrase = ({ value = '', variant = 'outlined', suggestions = [], lexer, sug
63
63
  onKeyDown(parsedEvent);
64
64
  }
65
65
  };
66
- const _onSelectCapture = event => {
66
+ const _onSelectCapture = (event) => {
67
67
  if (optionsOpen) {
68
68
  _suggest(event.target.value);
69
69
  }
@@ -80,7 +80,7 @@ const Phrase = ({ value = '', variant = 'outlined', suggestions = [], lexer, sug
80
80
  onSelectCapture: _onSelectCapture,
81
81
  startAdornment: startAdornment && _jsx(InputAdornment, { position: "start", children: startAdornment }),
82
82
  endAdornment: endAdornment && _jsx(InputAdornment, { position: "end", children: endAdornment })
83
- } }), _jsx(Popper, { anchorEl: containerRef.current, style: { width: '100%', zIndex: 100 }, open: optionsOpen && (options.length > 0 || (debug && analysisRef.current?.tokens.length > 0)), disablePortal: true, children: _jsx(Paper, { elevation: 1, sx: { maxHeight: 200, overflow: 'auto', borderTopRightRadius: 0, borderTopLeftRadius: 0 }, children: _jsx(MenuList, { ref: menuRef, onKeyDown: _onMenuKeyDown, sx: {
83
+ } }), _jsx(Popper, { anchorEl: containerRef.current, style: { width: '100%', zIndex: 100 }, open: optionsOpen && (options.length > 0 || (debug === true && (analysisRef.current?.tokens?.length ?? 0) > 0)), disablePortal: true, children: _jsx(Paper, { elevation: 1, sx: { maxHeight: 200, overflow: 'auto', borderTopRightRadius: 0, borderTopLeftRadius: 0 }, children: _jsx(MenuList, { ref: menuRef, onKeyDown: _onMenuKeyDown, sx: {
84
84
  '&:focus': {
85
85
  outline: 'none'
86
86
  }
@@ -1,7 +1,7 @@
1
1
  import type { PhraseToken } from '.';
2
2
  import type PhraseLexer from './PhraseLexer';
3
3
  export default abstract class PhraseConsumer<L extends PhraseLexer> {
4
- protected _buffer: any[];
4
+ protected _buffer: string[];
5
5
  reset(): void;
6
6
  init(buffer: string[], _lexer?: L): void;
7
7
  append(next: string, _lexer?: L): void;
@@ -9,5 +9,5 @@ export default abstract class PhraseConsumer<L extends PhraseLexer> {
9
9
  endsWithAny(...values: string[]): boolean;
10
10
  test(regex: RegExp): boolean;
11
11
  abstract lock(lexer: L): boolean;
12
- abstract consume(lexer: L): PhraseToken;
12
+ abstract consume(lexer: L): PhraseToken | null;
13
13
  }
@@ -10,7 +10,7 @@ export default abstract class PhraseLexer {
10
10
  private _endIndex;
11
11
  private find;
12
12
  parse(phrase: string, cursor?: number): PhraseAnalysis;
13
- lock(): PhraseConsumer<PhraseLexer>;
13
+ lock(): PhraseConsumer<PhraseLexer> | undefined;
14
14
  buffer(): string[];
15
15
  bufferValue(): string;
16
16
  start(): number;
@@ -1,15 +1,15 @@
1
1
  export default class PhraseLexer {
2
- _phrase = null;
3
- _buffer = null;
4
- _tokens = null;
5
- _consumers = null;
2
+ _phrase = '';
3
+ _buffer = [];
4
+ _tokens = [];
5
+ _consumers = [];
6
6
  _consumer = null;
7
7
  _startIndex = 0;
8
8
  _endIndex = -1;
9
9
  find(cursor, tokens) {
10
10
  const index = tokens.findIndex(t => t.startIndex <= cursor && cursor <= t.endIndex);
11
11
  const token = tokens.at(index);
12
- return { index, token };
12
+ return { index, token: token };
13
13
  }
14
14
  parse(phrase, cursor = 0) {
15
15
  this._phrase = phrase;
@@ -29,7 +29,7 @@ export default class PhraseLexer {
29
29
  let newLock = false;
30
30
  // Try to find a consumer to lock on.
31
31
  if (!this._consumer) {
32
- this._consumer = this.lock();
32
+ this._consumer = this.lock() ?? null;
33
33
  if (this._consumer) {
34
34
  newLock = true;
35
35
  // console.log('new lock...');
@@ -1,4 +1,5 @@
1
1
  /// <reference types="vitest" />
2
+ // @ts-nocheck
2
3
  import { describe, expect, it } from 'vitest';
3
4
  import WordLexer from './word/WordLexer';
4
5
  describe('WordLexer', () => {
@@ -27,7 +27,7 @@ export type PhraseSuggestorValue = {
27
27
  };
28
28
  export declare class PhraseBuffer {
29
29
  constructor(type?: string);
30
- private type;
30
+ private type?;
31
31
  private startIndex;
32
32
  private endIndex;
33
33
  private buffer;
@@ -36,5 +36,5 @@ export declare class PhraseBuffer {
36
36
  value(): string;
37
37
  start(index?: number): number;
38
38
  end(index?: number): number;
39
- token(): PhraseToken;
39
+ token(): PhraseToken | null;
40
40
  }
@@ -1,3 +1,4 @@
1
+ import { notNil } from '@cccsaurora/howler-ui/utils/utils';
1
2
  export class PhraseBuffer {
2
3
  constructor(type) {
3
4
  this.type = type;
@@ -21,13 +22,13 @@ export class PhraseBuffer {
21
22
  return this.buffer.join('');
22
23
  }
23
24
  start(index) {
24
- if (index !== undefined) {
25
+ if (notNil(index)) {
25
26
  this.startIndex = index;
26
27
  }
27
28
  return this.startIndex;
28
29
  }
29
30
  end(index) {
30
- if (index !== undefined) {
31
+ if (notNil(index)) {
31
32
  this.endIndex = index;
32
33
  }
33
34
  return this.endIndex;
@@ -3,5 +3,5 @@ import PhraseConsumer from '../../PhraseConsumer';
3
3
  import type PhraseLexer from '../../PhraseLexer';
4
4
  export default class WhitespaceConsumer extends PhraseConsumer<PhraseLexer> {
5
5
  lock(lexer: PhraseLexer): boolean;
6
- consume(lexer: PhraseLexer): PhraseToken;
6
+ consume(lexer: PhraseLexer): PhraseToken | null;
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import PhraseConsumer from '../../PhraseConsumer';
2
2
  export default class WhitespaceConsumer extends PhraseConsumer {
3
3
  lock(lexer) {
4
- return lexer.bufferValue().match(/\s/) && lexer.ahead(1) !== ' ';
4
+ return !!lexer.bufferValue().match(/\s/) && lexer.ahead(1) !== ' ';
5
5
  }
6
6
  consume(lexer) {
7
7
  if (lexer.ahead(1) !== ' ') {
@@ -3,5 +3,5 @@ import PhraseConsumer from '../../PhraseConsumer';
3
3
  import type PhraseLexer from '../../PhraseLexer';
4
4
  export default class WordConsumer extends PhraseConsumer<PhraseLexer> {
5
5
  lock(lexer: PhraseLexer): boolean;
6
- consume(lexer: PhraseLexer): PhraseToken;
6
+ consume(lexer: PhraseLexer): PhraseToken | null;
7
7
  }
@@ -27,17 +27,23 @@ const CaseCard = ({ case: providedCase, caseId, className, slotProps }) => {
27
27
  }, [providedCase]);
28
28
  useEffect(() => {
29
29
  if (caseId) {
30
- void dispatchApi(api.v2.case.get(caseId), { throwError: false }).then(setCase);
30
+ void dispatchApi(api.v2.case.get(caseId), { throwError: false }).then(result => {
31
+ if (result) {
32
+ setCase(result);
33
+ }
34
+ });
31
35
  }
32
36
  }, [caseId, dispatchApi]);
33
37
  if (!_case) {
34
38
  return _jsx(Skeleton, { variant: "rounded", height: 250, sx: { mb: 1 }, className: className });
35
39
  }
40
+ const statusColor = STATUS_COLORS[_case.status];
36
41
  return (_jsx(HowlerCard, { ...slotProps?.card, sx: [
37
- { p: 1, mb: 1, borderColor: theme.palette[STATUS_COLORS[_case.status]]?.main },
42
+ { p: 1, mb: 1, borderColor: statusColor ? theme.palette[statusColor].main : undefined },
38
43
  ...(Array.isArray(slotProps?.card?.sx) ? slotProps.card.sx : slotProps?.card?.sx ? [slotProps.card.sx] : [])
39
- ], className: className, children: _jsx(Stack, { direction: "row", alignItems: "start", spacing: 1, children: _jsxs(Stack, { sx: { flex: 1 }, spacing: 1, children: [_jsxs(Stack, { direction: "row", spacing: 1, alignItems: "center", children: [_jsx(Typography, { variant: "h6", display: "flex", alignItems: "start", children: _case.title }), _jsx(StatusIcon, { status: _case.status }), _jsx("div", { style: { flex: 1 } }), _case.start && _case.end && (_jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(HourglassBottom, { fontSize: "small" }), size: "small", label: twitterShort(_case.start) + ' - ' + twitterShort(_case.end) }) })), _jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(UpdateOutlined, { fontSize: "small" }), size: "small", label: twitterShort(_case.updated) }) })] }), _jsx(Typography, { variant: "caption", color: "textSecondary", children: _case.summary.trim().split('\n')[0] }), _case.participants?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Divider, { flexItem: true }), _jsx(Stack, { direction: "row", spacing: 1, children: _case.participants?.map(participant => (_jsx(HowlerAvatar, { sx: { height: '20px', width: '20px' }, userId: participant }, participant))) })] })), _jsx(Divider, { flexItem: true }), _jsxs(Grid, { container: true, spacing: 0.5, sx: { ml: `${theme.spacing(-0.5)} !important`, mt: `${theme.spacing(0.5)} !important` }, children: [_case.targets?.map(indicator => (_jsx(Grid, { item: true, children: _jsx(PluginChip, { size: "small", color: "primary", context: "casecard", variant: "outlined", value: indicator, label: indicator }) }, indicator))), _case.targets?.length > 0 && (_case.indicators?.length > 0 || _case.threats?.length > 0) && (_jsx(Grid, { item: true, children: _jsx(Divider, { orientation: "vertical" }) })), _case.indicators?.map(indicator => (_jsx(Grid, { item: true, children: _jsx(PluginChip, { variant: "outlined", context: "casecard", value: indicator, label: indicator }) }, indicator))), _case.indicators?.length > 0 && _case.threats?.length > 0 && (_jsx(Grid, { item: true, children: _jsx(Divider, { orientation: "vertical" }) })), _case.threats?.map(indicator => (_jsx(Grid, { item: true, children: _jsx(PluginChip, { size: "small", color: "warning", variant: "outlined", context: "casecard", value: indicator, label: indicator }) }, indicator)))] }), _case.tasks?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Divider, { flexItem: true }), _jsxs(Stack, { spacing: 0.5, alignItems: "start", children: [_case.tasks.some(task => task.complete) && (_jsx(Chip, { size: "small", color: "success", icon: _jsx(CheckCircleOutline, {}), label: `${countBy(_case.tasks, task => task.complete).true} ${t('complete')}` })), _case.tasks
40
- .filter(task => !task.complete)
44
+ ], className: className, children: _jsx(Stack, { direction: "row", alignItems: "start", spacing: 1, children: _jsxs(Stack, { sx: { flex: 1 }, spacing: 1, children: [_jsxs(Stack, { direction: "row", spacing: 1, alignItems: "center", children: [_jsx(Typography, { variant: "h6", display: "flex", alignItems: "start", children: _case.title }), _jsx(StatusIcon, { status: _case.status }), _jsx("div", { style: { flex: 1 } }), _case.start && _case.end && (_jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(HourglassBottom, { fontSize: "small" }), size: "small", label: twitterShort(_case.start) + ' - ' + twitterShort(_case.end) }) })), _jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(UpdateOutlined, { fontSize: "small" }), size: "small", label: twitterShort(_case.updated) }) })] }), _jsx(Typography, { variant: "caption", color: "textSecondary", children: _case.summary?.trim().split('\n')[0] }), (_case.participants?.length ?? 0) > 0 && (_jsxs(_Fragment, { children: [_jsx(Divider, { flexItem: true }), _jsx(Stack, { direction: "row", spacing: 1, children: _case.participants?.map(participant => (_jsx(HowlerAvatar, { sx: { height: '20px', width: '20px' }, userId: participant }, participant))) })] })), _jsx(Divider, { flexItem: true }), _jsxs(Grid, { container: true, spacing: 0.5, sx: { ml: `${theme.spacing(-0.5)} !important`, mt: `${theme.spacing(0.5)} !important` }, children: [_case.targets?.map(indicator => (_jsx(Grid, { children: _jsx(PluginChip, { size: "small", color: "primary", context: "casecard", variant: "outlined", value: indicator, label: indicator }) }, indicator))), (_case.targets?.length ?? 0) > 0 &&
45
+ ((_case.indicators?.length ?? 0) > 0 || (_case.threats?.length ?? 0) > 0) && (_jsx(Grid, { children: _jsx(Divider, { orientation: "vertical" }) })), _case.indicators?.map(indicator => (_jsx(Grid, { children: _jsx(PluginChip, { variant: "outlined", context: "casecard", value: indicator, label: indicator }) }, indicator))), (_case.indicators?.length ?? 0) > 0 && (_case.threats?.length ?? 0) > 0 && (_jsx(Grid, { children: _jsx(Divider, { orientation: "vertical" }) })), _case.threats?.map(indicator => (_jsx(Grid, { children: _jsx(PluginChip, { size: "small", color: "warning", variant: "outlined", context: "casecard", value: indicator, label: indicator }) }, indicator)))] }), (_case.tasks?.length ?? 0) > 0 && (_jsxs(_Fragment, { children: [_jsx(Divider, { flexItem: true }), _jsxs(Stack, { spacing: 0.5, alignItems: "start", children: [_case.tasks.some(task => task.complete) && (_jsx(Chip, { size: "small", color: "success", icon: _jsx(CheckCircleOutline, {}), label: `${countBy(_case.tasks, task => task.complete).true} ${t('complete')}` })), _case
46
+ .tasks.filter(task => !task.complete)
41
47
  .map(task => (_jsx(Chip, { icon: _jsx(RadioButtonUnchecked, {}), label: task.summary }, task.id)))] })] }))] }) }) }, _case.case_id));
42
48
  };
43
49
  export default CaseCard;
@@ -12,6 +12,6 @@ const CasePreview = ({ case: _case }) => {
12
12
  const { t } = useTranslation();
13
13
  const theme = useTheme();
14
14
  const taskCounts = countBy(_case.tasks, task => task.complete);
15
- return (_jsxs(Stack, { flex: 1, spacing: 1, sx: { overflow: 'hidden', borderBottom: `thin solid ${theme.palette.divider}`, pb: 1, mb: 0 }, children: [_jsxs(Stack, { direction: "row", spacing: 1, children: [_jsxs(Stack, { spacing: 1, children: [_jsx(Typography, { variant: "body1", fontWeight: "bold", children: _case.title }), _jsx(Typography, { variant: "caption", color: "textSecondary", children: _case.summary.trim().split('\n')[0] })] }), _jsx(StatusIcon, { status: _case.status }), _jsx("div", { style: { flex: 1 } }), _jsxs(Stack, { spacing: 1, alignItems: "end", children: [_case.start && _case.end && (_jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(HourglassBottom, { fontSize: "small" }), size: "small", label: twitterShort(_case.start) + ' - ' + twitterShort(_case.end) }) })), _jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(UpdateOutlined, { fontSize: "small" }), size: "small", label: twitterShort(_case.updated) }) })] })] }), _jsxs(Stack, { direction: "row", spacing: 1, children: [_case.participants?.length > 0 && (_jsx(Stack, { direction: "row", spacing: 1, children: _case.participants?.map(participant => (_jsx(HowlerAvatar, { sx: { height: '24px', width: '24px' }, userId: participant }, participant))) })), _jsx(Chip, { color: "success", icon: _jsx(CheckCircleOutline, {}), label: `${taskCounts.true ?? 0} ${t('complete')}` }), _jsx(Chip, { icon: _jsx(RadioButtonUnchecked, {}), label: `${taskCounts.false ?? 0} ${t('incomplete')}` })] })] }));
15
+ return (_jsxs(Stack, { flex: 1, spacing: 1, sx: { overflow: 'hidden', borderBottom: `thin solid ${theme.palette.divider}`, pb: 1, mb: 0 }, children: [_jsxs(Stack, { direction: "row", spacing: 1, children: [_jsxs(Stack, { spacing: 1, children: [_jsx(Typography, { variant: "body1", fontWeight: "bold", children: _case.title }), _jsx(Typography, { variant: "caption", color: "textSecondary", children: _case.summary?.trim().split('\n')[0] })] }), _jsx(StatusIcon, { status: _case.status }), _jsx("div", { style: { flex: 1 } }), _jsxs(Stack, { spacing: 1, alignItems: "end", children: [_case.start && _case.end && (_jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(HourglassBottom, { fontSize: "small" }), size: "small", label: twitterShort(_case.start) + ' - ' + twitterShort(_case.end) }) })), _jsx(Tooltip, { title: dayjs(_case.updated).toString(), children: _jsx(Chip, { icon: _jsx(UpdateOutlined, { fontSize: "small" }), size: "small", label: twitterShort(_case.updated) }) })] })] }), _jsxs(Stack, { direction: "row", spacing: 1, children: [(_case.participants?.length ?? 0) > 0 && (_jsx(Stack, { direction: "row", spacing: 1, children: _case.participants?.map(participant => (_jsx(HowlerAvatar, { sx: { height: '24px', width: '24px' }, userId: participant }, participant))) })), _jsx(Chip, { color: "success", icon: _jsx(CheckCircleOutline, {}), label: `${taskCounts.true ?? 0} ${t('complete')}` }), _jsx(Chip, { icon: _jsx(RadioButtonUnchecked, {}), label: `${taskCounts.false ?? 0} ${t('incomplete')}` })] })] }));
16
16
  };
17
17
  export default memo(CasePreview);
@@ -11,7 +11,9 @@ const ActionButton = ({ actionId, hitId, label, ...otherProps }) => {
11
11
  const { executeAction } = useMyActionFunctions();
12
12
  const [action, setAction] = useState(null);
13
13
  useEffect(() => {
14
- void dispatchApi(api.search.action.post({ query: `action_id:${actionId}`, rows: 1 })).then(result => setAction(result.items[0]));
14
+ void dispatchApi(api.search.action.post({ query: `action_id:${actionId}`, rows: 1 })).then(result => {
15
+ setAction(result?.items[0] ?? null);
16
+ });
15
17
  }, [actionId, dispatchApi]);
16
18
  if (!actionId || !hitId) {
17
19
  return (_jsxs(Stack, { spacing: 1, children: [_jsx("strong", { style: { color: 'red' }, children: t('markdown.error') }), _jsx("code", { style: { fontSize: '0.8rem' }, children: t('markdown.actionbutton.error') })] }));
@@ -12,7 +12,7 @@ const ChipPopper = ({ icon, deleteIcon, label, children, minWidth, placement = '
12
12
  handleToggle(!show);
13
13
  e.stopPropagation();
14
14
  e.preventDefault();
15
- }, onDelete: onDelete ?? (toggleOnDelete ? () => handleToggle(!show) : null), ref: setAnchorEl, sx: [
15
+ }, onDelete: onDelete ?? (toggleOnDelete ? () => handleToggle(!show) : undefined), ref: setAnchorEl, sx: [
16
16
  theme => ({
17
17
  position: 'relative',
18
18
  zIndex: 1,
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /// <reference types="vitest" />
3
+ // @ts-nocheck
3
4
  import { Info } from '@mui/icons-material';
4
5
  import { render, screen, waitFor } from '@testing-library/react';
5
6
  import userEvent, {} from '@testing-library/user-event';
@@ -4,19 +4,20 @@ import { ApiConfigContext } from '@cccsaurora/howler-ui/components/app/providers
4
4
  import { useContext, useMemo } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  const Classification = () => {
7
- const { config } = useContext(ApiConfigContext);
7
+ const { config, loaded } = useContext(ApiConfigContext);
8
8
  const { t } = useTranslation();
9
9
  const theme = useTheme();
10
10
  const isSm = useMediaQuery(theme.breakpoints.down('md'));
11
+ const c12nDef = loaded ? config.c12nDef : null;
11
12
  const label = useMemo(() => {
12
13
  if (isSm) {
13
- return config.c12nDef?.RESTRICTED?.replace(/[a-z]/g, '').replace(/ /g, '') ?? '???';
14
+ return c12nDef?.RESTRICTED?.replace(/[a-z]/g, '').replace(/ /g, '') ?? '???';
14
15
  }
15
16
  else {
16
- return config.c12nDef?.RESTRICTED ?? 'Unknown';
17
+ return c12nDef?.RESTRICTED ?? 'Unknown';
17
18
  }
18
- }, [config.c12nDef?.RESTRICTED, isSm]);
19
- const color = useMemo(() => (config.c12nDef?.levels_styles_map?.[label.replace(/\/\/.+/, '')]?.color ?? 'default'), [config.c12nDef?.levels_styles_map, label]);
19
+ }, [c12nDef?.RESTRICTED, isSm]);
20
+ const color = useMemo(() => (c12nDef?.levels_styles_map?.[label.replace(/\/\/.+/, '')]?.color ?? 'default'), [c12nDef?.levels_styles_map, label]);
20
21
  return _jsx(Chip, { label: t(label), color: color, sx: { mr: 1, fontSize: '.9rem', p: 2, textTransform: 'uppercase' } });
21
22
  };
22
23
  export default Classification;
@@ -6,9 +6,7 @@ interface EnrichedChipProps {
6
6
  format?: FormatProp;
7
7
  isMobile?: boolean;
8
8
  }
9
- declare const _default: React.NamedExoticComponent<EnrichedChipProps & ChipOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
10
- ref?: React.Ref<HTMLDivElement>;
11
- }, "avatar" | "children" | "className" | "classes" | "clickable" | "color" | "deleteIcon" | "disabled" | "icon" | "label" | "onDelete" | "size" | "skipFocusWhenDisabled" | "style" | "sx" | "tabIndex" | "variant"> & {
12
- component?: React.ElementType;
9
+ declare const _default: React.NamedExoticComponent<EnrichedChipProps & ChipOwnProps & import("@mui/material").ChipSlotsAndSlotProps & import("@mui/material/OverridableComponent").CommonProps & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "avatar" | "children" | "className" | "classes" | "clickable" | "color" | "deleteIcon" | "disabled" | "icon" | "label" | "onDelete" | "size" | "skipFocusWhenDisabled" | "slotProps" | "slots" | "style" | "sx" | "tabIndex" | "variant"> & {
10
+ component?: React.ElementType | undefined;
13
11
  }>;
14
12
  export default _default;
@@ -19,15 +19,17 @@ const ClassificationChip = React.memo(({ classification, format = 'short', isMob
19
19
  return normalizedClassification(parts, config.c12nDef, format, isMobile);
20
20
  }, [classification, config.c12nDef, format, isMobile, parts]);
21
21
  const chipProps = useMemo(() => {
22
- const definedColor = config.c12nDef?.levels_styles_map[config.c12nDef?.levels_map[parts.lvlIdx]]?.color;
23
- if (THEME_TYPES.includes(definedColor)) {
22
+ const definedColor = parts
23
+ ? config.c12nDef?.levels_styles_map[config.c12nDef?.levels_map[parts.lvlIdx]]?.color
24
+ : undefined;
25
+ if (THEME_TYPES.includes(definedColor ?? '')) {
24
26
  return { color: definedColor };
25
27
  }
26
28
  if (definedColor) {
27
29
  return { sx: { color: definedColor } };
28
30
  }
29
31
  return { color: 'default' };
30
- }, [config.c12nDef?.levels_map, config.c12nDef?.levels_styles_map, parts.lvlIdx]);
32
+ }, [config.c12nDef?.levels_map, config.c12nDef?.levels_styles_map, parts]);
31
33
  return (_jsx(Tooltip, { title: classification, children: _jsx(Chip, { variant: otherProps.variant || 'outlined', label: normalized, ...chipProps, ...otherProps, sx: [
32
34
  ...(Array.isArray(chipProps.sx) ? chipProps.sx : [chipProps.sx]),
33
35
  ...(Array.isArray(otherProps.sx) ? otherProps.sx : [otherProps.sx])
@@ -3,7 +3,7 @@ import { Help } from '@mui/icons-material';
3
3
  import { IconButton, Tooltip } from '@mui/material';
4
4
  import { useMemo } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
- import { Link, useLocation } from 'react-router-dom';
6
+ import { Link, useLocation } from 'react-router';
7
7
  const DocumentationButton = () => {
8
8
  const { t } = useTranslation();
9
9
  const location = useLocation();
@@ -5,7 +5,7 @@ vi.mock('react-i18next', () => ({
5
5
  }));
6
6
  // Hoist the mutable location object so the mock factory can reference it
7
7
  const mockLocation = vi.hoisted(() => ({ pathname: '/' }));
8
- vi.mock('react-router-dom', async () => {
8
+ vi.mock('react-router', async () => {
9
9
  const { forwardRef } = await import('react');
10
10
  return {
11
11
  useLocation: () => ({ ...mockLocation }),
@@ -105,10 +105,10 @@ ${err.hint ? `<br/><span style="color: gray; font-family: monospace;">${err.hint
105
105
  setRendered(`
106
106
  <h2 style="color: red">${t('markdown.error')}</h2>
107
107
 
108
- **\`${err.toString()}\`**
108
+ **\`${err instanceof Error ? err.toString() : String(err)}\`**
109
109
 
110
110
  <code style="font-size: 0.8rem"><pre>
111
- ${err.stack}
111
+ ${err instanceof Error ? err.stack : ''}
112
112
  </pre></code>
113
113
  `);
114
114
  }
@@ -1,6 +1,7 @@
1
1
  import type { AvatarProps } from '@mui/material';
2
2
  type HowlerAvatarProps = AvatarProps & {
3
3
  userId: string;
4
+ label?: string;
4
5
  };
5
6
  declare const _default: import("react").NamedExoticComponent<HowlerAvatarProps>;
6
7
  export default _default;
@@ -5,12 +5,13 @@ import { memo, useCallback, useContext, useEffect, useState } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { nameToInitials } from '@cccsaurora/howler-ui/utils/stringUtils';
7
7
  import { stringToColor } from '@cccsaurora/howler-ui/utils/utils';
8
- const HowlerAvatar = ({ userId, ...avatarProps }) => {
8
+ const HowlerAvatar = ({ userId, label: _label, ...avatarProps }) => {
9
9
  const { t } = useTranslation();
10
10
  const { getAvatar } = useContext(AvatarContext);
11
11
  const theme = useTheme();
12
12
  const [props, setProps] = useState();
13
- const displayId = userId && userId.toLowerCase() !== 'unassigned' ? userId : t('app.drawer.hit.assignment.unassigned.name');
13
+ const label = _label ||
14
+ (userId && userId.toLowerCase() !== 'unassigned' ? userId : t('app.drawer.hit.assignment.unassigned.name'));
14
15
  const stringAvatar = useCallback((name) => {
15
16
  return {
16
17
  sx: {
@@ -31,14 +32,14 @@ const HowlerAvatar = ({ userId, ...avatarProps }) => {
31
32
  // eslint-disable-next-line no-console
32
33
  console.debug(e);
33
34
  setProps({
34
- src: null
35
+ src: undefined
35
36
  });
36
37
  });
37
38
  }
38
39
  // eslint-disable-next-line react-hooks/exhaustive-deps
39
40
  }, [userId]);
40
41
  if (userId) {
41
- return (_jsx(Tooltip, { title: displayId, children: _jsx(Avatar, { "aria-label": displayId, ...avatarProps, ...props, sx: { ...avatarProps?.sx, ...props?.sx } }) }));
42
+ return (_jsx(Tooltip, { title: label, children: _jsx(Avatar, { "aria-label": label, ...avatarProps, ...props, sx: { ...avatarProps?.sx, ...props?.sx } }) }));
42
43
  }
43
44
  else {
44
45
  return (_jsx(Avatar, { "aria-label": t('unknown'), ...avatarProps, ...props, sx: { ...avatarProps?.sx, ...props?.sx } }));
@@ -6,7 +6,7 @@ const AvatarContainer = styled(Grid)(({ theme }) => ({
6
6
  }));
7
7
  const HowlerAvatarHeader = ({ user }) => {
8
8
  const theme = useTheme();
9
- return (_jsx(AvatarContainer, { item: true, sm: 12, md: 2, children: _jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [_jsx(Grid, { item: true, children: _jsx(HowlerAvatar, { userId: user?.username, sx: {
9
+ return (_jsx(AvatarContainer, { size: { sm: 12, md: 2 }, children: _jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [_jsx(Grid, { children: _jsx(HowlerAvatar, { userId: user?.username, sx: {
10
10
  width: theme.spacing(16),
11
11
  height: theme.spacing(16),
12
12
  [theme.breakpoints.down('sm')]: {
@@ -14,6 +14,6 @@ const HowlerAvatarHeader = ({ user }) => {
14
14
  height: theme.spacing(24)
15
15
  },
16
16
  margin: '0 1rem'
17
- } }) }), _jsx(Grid, { item: true, xs: 12, children: _jsx(Typography, { textAlign: "center", children: user?.name ?? '' }) })] }) }));
17
+ } }) }), _jsx(Grid, { size: 12, children: _jsx(Typography, { textAlign: "center", children: user?.name ?? '' }) })] }) }));
18
18
  };
19
19
  export default HowlerAvatarHeader;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  /// <reference types="vitest" />
3
+ // @ts-nocheck
3
4
  import { render, screen, waitFor } from '@testing-library/react';
4
5
  import userEvent, {} from '@testing-library/user-event';
5
6
  import Image from './Image';
@@ -1,7 +1,7 @@
1
1
  import type { SearchResponseState } from '@cccsaurora/howler-ui/components/app/providers/SearchResponseProvider';
2
2
  import type { TuiListItemOnSelect, TuiListItemRenderer } from '@cccsaurora/howler-ui/components/elements/addons/lists';
3
- import type { FC, ReactNode } from 'react';
4
- interface ItemManagerProps {
3
+ import type { ReactNode } from 'react';
4
+ interface ItemManagerProps<T = unknown> {
5
5
  aboveSearch?: ReactNode;
6
6
  afterSearch?: ReactNode;
7
7
  belowSearch?: ReactNode;
@@ -10,10 +10,10 @@ interface ItemManagerProps {
10
10
  onPageChange: (nextOffset: number) => void;
11
11
  onSearch: () => void;
12
12
  onCreate?: () => void;
13
- onSelect?: TuiListItemOnSelect<unknown>;
13
+ onSelect?: TuiListItemOnSelect<T>;
14
14
  phrase: string;
15
- renderer: TuiListItemRenderer<unknown>;
16
- response: SearchResponseState<unknown>;
15
+ renderer: TuiListItemRenderer<T>;
16
+ response?: SearchResponseState<T>;
17
17
  searchAdornment?: ReactNode;
18
18
  searching: boolean;
19
19
  createPrompt?: string;
@@ -21,5 +21,5 @@ interface ItemManagerProps {
21
21
  setPhrase: (value: string) => void;
22
22
  createIcon?: ReactNode;
23
23
  }
24
- declare const ItemManager: FC<ItemManagerProps>;
24
+ declare const ItemManager: <T = unknown>({ aboveSearch, afterSearch, belowSearch, searchFilters, hasError, onPageChange, onSearch, onSelect, onCreate, phrase, renderer, response, searchAdornment, searching, createPrompt, searchPrompt, setPhrase, createIcon }: ItemManagerProps<T>) => import("react").JSX.Element;
25
25
  export default ItemManager;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Fab, IconButton, LinearProgress, Stack, Tooltip, Typography, useMediaQuery } from '@mui/material';
3
- import PageCenter from '@cccsaurora/howler-ui/commons/components/pages/PageCenter';
3
+ import { PageCenter } from '@tui/core';
4
4
  import { useTranslation } from 'react-i18next';
5
5
  import { Add, Search } from '@mui/icons-material';
6
6
  import { TuiList } from '@cccsaurora/howler-ui/components/elements/addons/lists';
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useAppTheme } from '@tui/core';
2
3
  /* eslint-disable prefer-arrow/prefer-arrow-functions */
3
4
  import { Alert, Box, darken, lighten, Paper, Table, TableCell, TableContainer, TableHead, TableRow, useTheme } from '@mui/material';
4
- import { useAppTheme } from '@cccsaurora/howler-ui/commons/components/app/hooks';
5
5
  import mermaid from 'mermaid';
6
6
  import { memo, useEffect } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import ReactMarkdown from 'react-markdown';
9
- import { Link } from 'react-router-dom';
9
+ import { Link } from 'react-router';
10
10
  import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-async-light';
11
11
  import { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';
12
12
  import rehypeRaw from 'rehype-raw';
@@ -25,7 +25,10 @@ const customComponents = (type, children) => {
25
25
  return _jsx(Notebook, { ipynb: child });
26
26
  }
27
27
  else if (type === 'tabs') {
28
- return (_jsx(DynamicTabs, { tabs: JSON.parse(child).map(t => ({ title: t.title, children: customComponents(t.lang, t.value) })) }));
28
+ return (_jsx(DynamicTabs, { tabs: JSON.parse(child).map(t => ({
29
+ title: t.title,
30
+ children: customComponents(t.lang, t.value)
31
+ })) }));
29
32
  }
30
33
  else {
31
34
  return _jsx("code", { children: child });
@@ -57,6 +60,9 @@ const Markdown = ({ md, components = {}, disableLinks = false }) => {
57
60
  });
58
61
  return (_jsx(ReactMarkdown, { remarkPlugins: [remarkGfm, codeTabs], rehypePlugins: [rehypeRaw], urlTransform: (value) => value, components: {
59
62
  code({ node, className, children, ...props }) {
63
+ if (!node) {
64
+ return (_jsx("code", { className: className, ...props, children: children }));
65
+ }
60
66
  if (node.children?.length === 1 && node.children[0].type === 'text') {
61
67
  if (node.children[0].value.startsWith('t(')) {
62
68
  return _jsx("span", { children: t(node.children[0].value.replace(/t\((.+)\)/, '$1')) });
@@ -14,9 +14,9 @@ const Modal = () => {
14
14
  position: 'absolute',
15
15
  top: '50%',
16
16
  left: '50%',
17
- maxWidth: options.maxWidth || '1200px',
18
- maxHeight: options.maxHeight || '400px',
19
- height: has(options, 'height') ? options.height : 'auto',
17
+ maxWidth: options?.maxWidth || '1200px',
18
+ maxHeight: options?.maxHeight || '400px',
19
+ height: has(options, 'height') ? options?.height : 'auto',
20
20
  transform: 'translate(-50%, -50%)',
21
21
  backgroundColor: 'background.paper',
22
22
  borderRadius: theme.shape.borderRadius,
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Typography } from '@mui/material';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { Link } from 'react-router-dom';
4
+ import { Link } from 'react-router';
5
5
  const QueryResultText = ({ count, query, mb = 0.5 }) => {
6
6
  const { t } = useTranslation();
7
7
  return (_jsxs(Typography, { sx: theme => ({
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  /// <reference types="vitest" />
3
+ // @ts-nocheck
3
4
  import { render } from '@testing-library/react';
4
5
  import i18n from '@cccsaurora/howler-ui/i18n';
5
6
  import { I18nextProvider } from 'react-i18next';
@@ -1,2 +1,2 @@
1
- declare const TypingIndicator: () => import("react/jsx-runtime").JSX.Element;
1
+ declare const TypingIndicator: () => import("react").JSX.Element;
2
2
  export default TypingIndicator;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PageCenter } from '@tui/core';
2
3
  import { Grid, Stack } from '@mui/material';
3
- import PageCenter from '@cccsaurora/howler-ui/commons/components/pages/PageCenter';
4
4
  import HowlerAvatarHeader from './HowlerAvatarHeader';
5
- const UserPageWrapper = ({ user, children }) => (_jsx(PageCenter, { textAlign: "left", mt: 6, children: _jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [_jsx(HowlerAvatarHeader, { user: user }), _jsx(Grid, { item: true, sm: 12, md: 9, children: _jsx(Stack, { direction: "column", spacing: 2, children: children }) })] }) }));
5
+ const UserPageWrapper = ({ user, children }) => (_jsx(PageCenter, { textAlign: "left", mt: 6, children: _jsxs(Grid, { container: true, spacing: 2, justifyContent: "center", children: [_jsx(HowlerAvatarHeader, { user: user }), _jsx(Grid, { size: { sm: 12, md: 9 }, children: _jsx(Stack, { direction: "column", spacing: 2, children: children }) })] }) }));
6
6
  export default UserPageWrapper;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AppListEmpty } from '@tui/core';
2
3
  /* eslint-disable no-console */
3
4
  import { Paper, Table, TableBody, TableCell, TableHead, TableRow } from '@mui/material';
4
- import AppListEmpty from '@cccsaurora/howler-ui/commons/components/display/AppListEmpty';
5
5
  import HitCard from '@cccsaurora/howler-ui/components/elements/hit/HitCard';
6
6
  import { HitLayout } from '@cccsaurora/howler-ui/components/elements/hit/HitLayout';
7
7
  import { flatten } from 'flat';