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

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 +2 -2
  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
@@ -1,19 +0,0 @@
1
- import { useMediaQuery, useTheme } from '@mui/material';
2
- import { useMemo } from 'react';
3
- const PagePropsDefaults = { margin: null, mt: 2, mr: 2, mb: 2, ml: 2 };
4
- export default function usePageProps({ props, defaultOverrides = PagePropsDefaults }) {
5
- const { className, width, height, margin, mt, mr, mb, ml } = { ...PagePropsDefaults, ...defaultOverrides, ...props };
6
- const theme = useTheme();
7
- const divider = useMediaQuery(theme.breakpoints.up('md')) ? 1 : 2;
8
- return useMemo(() => ({
9
- className,
10
- style: {
11
- width,
12
- height,
13
- marginBottom: theme.spacing(margin !== null ? margin / divider : mb / divider),
14
- marginLeft: theme.spacing(margin !== null ? margin / divider : ml / divider),
15
- marginRight: theme.spacing(margin !== null ? margin / divider : mr / divider),
16
- marginTop: theme.spacing(margin !== null ? margin / divider : mt / divider)
17
- }
18
- }), [className, width, height, margin, mt, mr, mb, ml, divider, theme]);
19
- }
@@ -1 +0,0 @@
1
- export default function AppSearch(): import("react/jsx-runtime").JSX.Element;
@@ -1,135 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Search } from '@mui/icons-material';
3
- import { Box, ClickAwayListener, Dialog, DialogContent, DialogTitle, emphasize, IconButton, Popper, Slide, Stack, styled, Tooltip, useMediaQuery, useTheme } from '@mui/material';
4
- import { useAppSearchService } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppSearchService';
5
- import AppSearchInput from '@cccsaurora/howler-ui/commons/components/search/AppSearchInput';
6
- import AppSearchResult from '@cccsaurora/howler-ui/commons/components/search/AppSearchResult';
7
- import { parseEvent } from '@cccsaurora/howler-ui/commons/components/utils/keyboard';
8
- import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
9
- import { useTranslation } from 'react-i18next';
10
- const MENU_LIST_SX = { maxHeight: 500, overflow: 'auto' };
11
- const AppSearchRoot = styled(Box, { shouldForwardProp: prop => prop !== 'menuOpen' })(({ theme, menuOpen }) => {
12
- const backgroundColor = emphasize(theme.palette.background.default, 0.1);
13
- return {
14
- position: 'relative',
15
- borderRadius: theme.shape.borderRadius,
16
- borderBottomLeftRadius: menuOpen && 0,
17
- borderBottomRightRadius: menuOpen && 0,
18
- '.app-search-input': {
19
- backgroundColor: theme.palette.mode === 'dark' ? backgroundColor : menuOpen ? theme.palette.background.default : backgroundColor,
20
- boxShadow: menuOpen && theme.shadows[4]
21
- },
22
- '.app-search-result': {
23
- backgroundColor: theme.palette.mode === 'dark' ? backgroundColor : theme.palette.background.default,
24
- borderBottomLeftRadius: theme.shape.borderRadius,
25
- borderBottomRightRadius: theme.shape.borderRadius,
26
- boxShadow: menuOpen && theme.shadows[4],
27
- color: theme.palette.text.primary
28
- }
29
- };
30
- });
31
- const ModalTransition = forwardRef(function Transition(props, ref) {
32
- const { children, ..._props } = props;
33
- return (_jsx(Slide, { direction: "down", ref: ref, ..._props, children: children }));
34
- });
35
- export default function AppSearch() {
36
- const theme = useTheme();
37
- const menuRef = useRef(null);
38
- const showSearchIcon = useMediaQuery(theme.breakpoints.down('lg'));
39
- const { t } = useTranslation();
40
- const { provided, state, service } = useAppSearchService();
41
- const [value, setValue] = useState('');
42
- // const [fullscreen, setFullscreen] = useState<boolean>(false);
43
- useEffect(() => {
44
- if (service.onMounted) {
45
- service.onMounted(setValue, state);
46
- }
47
- // eslint-disable-next-line react-hooks/exhaustive-deps
48
- }, []);
49
- // keyboard[window] handler.
50
- // this is to trigger the CTLR+K shortcut to appsearch.
51
- useEffect(() => {
52
- const keyHandler = event => {
53
- const { key, isCtrl } = parseEvent(event);
54
- if (isCtrl && key === 'k') {
55
- event.preventDefault();
56
- const inputRef = menuRef.current.querySelector('input');
57
- if (provided && !inputRef) {
58
- state.set({ ...state, menu: !state.menu, mode: 'fullscreen' });
59
- }
60
- else if (provided && state.menu) {
61
- state.set({ ...state, mode: 'fullscreen' });
62
- }
63
- else {
64
- inputRef.focus();
65
- }
66
- }
67
- };
68
- window.addEventListener('keydown', keyHandler);
69
- return () => {
70
- window.removeEventListener('keydown', keyHandler);
71
- };
72
- }, [provided, state]);
73
- // Search input focus handler.
74
- const onFocus = useCallback(() => {
75
- //state.setMenu(!!state?.items && state.items.length > 0);
76
- state.set({ ...state, menu: true });
77
- }, [state]);
78
- // Search input change handler.
79
- const onChange = useCallback((event) => {
80
- setValue(event.currentTarget.value);
81
- if (service.onChange) {
82
- service.onChange(event.currentTarget.value, state, setValue);
83
- }
84
- }, [service, state]);
85
- // keyboard[ENTER] handler.
86
- const onEnter = useCallback(() => {
87
- if (service.onEnter) {
88
- state.set({ ...state, menu: true });
89
- service.onEnter(value, state);
90
- }
91
- }, [value, state, service]);
92
- // Keyboard handler.
93
- const onKeyDown = useCallback((event) => {
94
- const { isEnter, isEscape, isArrowDown } = parseEvent(event);
95
- if (isEnter) {
96
- onEnter();
97
- }
98
- else if (isEscape) {
99
- state.set({ ...state, menu: !state.menu });
100
- }
101
- else if (isArrowDown) {
102
- const result = document.querySelector('[data-tui-id="tui-app-search-result"]');
103
- if (result) {
104
- // Prevent scolling before menu list gets focus.
105
- // Doing this prevents the menu list from scrolling down
106
- // and then back up on second arrow down.
107
- event.preventDefault(); // prevent native scroll.
108
- result.focus();
109
- }
110
- }
111
- }, [state, onEnter]);
112
- // Clear search input handler.
113
- const onClear = useCallback(() => {
114
- setValue('');
115
- state.set({ ...state, items: null });
116
- }, [state]);
117
- // Fullscreen modal toggle handler.
118
- const onToggleFullscreen = useCallback(() => {
119
- state.set({ ...state, mode: state.mode === 'inline' ? 'fullscreen' : 'inline' });
120
- }, [state]);
121
- return (_jsx(ClickAwayListener, { onClickAway: () => state.set({ ...state, menu: false }), children: _jsxs(AppSearchRoot, { ref: menuRef, sx: { mr: !showSearchIcon && 1 }, menuOpen: state.menu, children: [showSearchIcon ? (_jsx(IconButton, { color: "inherit", size: "large", onClick: () => state.set({ ...state, menu: !state.menu, mode: 'fullscreen' }), children: _jsx(Tooltip, { title: _jsxs(Stack, { direction: "column", textAlign: "center", children: [_jsx("span", { children: t('app.search.fullscreen') }), " ", _jsx("span", { children: "CTLR+K" })] }), children: _jsx(Search, {}) }) })) : (_jsxs(_Fragment, { children: [_jsx(AppSearchInput, { showToggle: true, provided: provided, className: "app-search-input", value: value, searching: state.searching, open: state.menu, onFocus: onFocus, onChange: onChange, onKeyDown: onKeyDown, onClear: onClear, onToggleFullscreen: onToggleFullscreen }), provided && (_jsx(Popper, { open: state.menu && state.mode === 'inline', anchorEl: menuRef.current, placement: "bottom-end", sx: _theme => ({ width: '100%', zIndex: _theme.zIndex.appBar + 1 }), disablePortal: true, children: _jsx(AppSearchResult, { className: "app-search-result", sx: MENU_LIST_SX }) }))] })), _jsxs(Dialog, { disableRestoreFocus: true, fullWidth: true, maxWidth: "md", TransitionComponent: ModalTransition, open: state.menu && state.mode === 'fullscreen', onClose: () => state.set({ ...state, mode: 'inline', menu: false }), sx: {
122
- maxHeight: '75%',
123
- margin: 0,
124
- '.MuiDialog-container': {
125
- alignItems: 'start'
126
- }
127
- }, PaperProps: {
128
- sx: {
129
- borderTopLeftRadius: 0,
130
- borderTopRightRadius: 0,
131
- margin: 0,
132
- width: '100%'
133
- }
134
- }, children: [_jsx(DialogTitle, { children: _jsx(AppSearchInput, { autoFocus: true, className: "app-search-input", style: { backgroundColor: emphasize(theme.palette.background.default, 0.1) }, showToggle: false, value: value, searching: state.searching, open: false, onFocus: onFocus, onChange: onChange, onKeyDown: onKeyDown, onClear: onClear, onToggleFullscreen: onToggleFullscreen }) }), provided && state.items && (_jsx(DialogContent, { children: _jsx(AppSearchResult, {}) })), provided && service.footerRenderer && service.footerRenderer(state)] })] }) }));
135
- }
@@ -1,12 +0,0 @@
1
- import { type InputBaseProps } from '@mui/material';
2
- type AppSearchInputProps = {
3
- searching?: boolean;
4
- provided?: boolean;
5
- showToggle?: boolean;
6
- open?: boolean;
7
- onClear: () => void;
8
- onToggleFullscreen: () => void;
9
- } & InputBaseProps;
10
- declare const AppSearchInput: ({ searching, provided, autoFocus, showToggle, value, open, onClear, onToggleFullscreen, onFocus, onChange, onKeyDown, ...inputProps }: AppSearchInputProps) => import("react/jsx-runtime").JSX.Element;
11
- declare const _default: import("react").MemoExoticComponent<typeof AppSearchInput>;
12
- export default _default;
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Clear, Search } from '@mui/icons-material';
3
- import { Button, CircularProgress, IconButton, InputAdornment, InputBase, Stack, Tooltip } from '@mui/material';
4
- import { memo, useCallback, useRef } from 'react';
5
- import { useTranslation } from 'react-i18next';
6
- const AppSearchInput = ({ searching, provided, autoFocus, showToggle, value, open, onClear, onToggleFullscreen, onFocus, onChange, onKeyDown, ...inputProps }) => {
7
- const { t } = useTranslation();
8
- const rootRef = useRef();
9
- // CTRL+K button click handler.
10
- // Decicde whether to open search in normal or fullscreen/modal mode.
11
- const onToggleClick = useCallback(() => {
12
- if (open && provided) {
13
- onToggleFullscreen();
14
- }
15
- else {
16
- rootRef.current.querySelector('input').focus();
17
- }
18
- }, [open, provided, onToggleFullscreen]);
19
- return (_jsx(Stack, { direction: "row", ref: rootRef, children: _jsx(InputBase, { ...inputProps, fullWidth: true, autoComplete: "off", autoFocus: autoFocus, value: value, onFocus: onFocus, onChange: onChange, onKeyDown: onKeyDown, placeholder: t('quicksearch.placeholder'), inputProps: { 'aria-label': t('quicksearch.aria') }, startAdornment: _jsx(InputAdornment, { position: "start", sx: theme => ({ color: theme.palette.text.disabled }), children: searching ? _jsx(CircularProgress, { size: 24, color: "inherit" }) : _jsx(Search, { color: "inherit" }) }), endAdornment: _jsxs(InputAdornment, { position: "end", sx: theme => ({ color: theme.palette.text.disabled }), children: [showToggle && (_jsx(Tooltip, { title: t(open && provided ? 'app.search.fullscreen' : 'app.search.shortcut'), children: _jsx(Button, { size: "small", color: "inherit", onClick: onToggleClick, children: "CTRL+K" }) })), _jsx(IconButton, { color: "inherit", onClick: onClear, children: _jsx(Clear, {}) })] }), sx: theme => ({
20
- color: theme.palette.text.secondary,
21
- width: '100%',
22
- paddingTop: 0.5,
23
- paddingBottom: 0.5,
24
- paddingLeft: 1.5,
25
- paddingRight: 1,
26
- // backgroundColor: emphasize(theme.palette.background.default, 0.1),
27
- // backgroundColor: theme.palette.background,
28
- borderTopLeftRadius: theme.spacing(0.5),
29
- borderTopRightRadius: theme.spacing(0.5),
30
- borderBottomLeftRadius: open ? 0 : theme.spacing(0.5),
31
- borderBottomRightRadius: open ? 0 : theme.spacing(0.5)
32
- // boxShadow: theme.palette.mode === 'light' && theme.shadows[2]
33
- }) }) }));
34
- };
35
- export default memo(AppSearchInput);
@@ -1,5 +0,0 @@
1
- import { type MenuListProps } from '@mui/material';
2
- type AppSearchResultProps = MenuListProps;
3
- declare const AppSearchResult: ({ className, ...menuProps }: AppSearchResultProps) => import("react/jsx-runtime").JSX.Element;
4
- declare const _default: import("react").MemoExoticComponent<typeof AppSearchResult>;
5
- export default _default;
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, MenuItem, MenuList, Typography } from '@mui/material';
3
- import { useAppSearchService } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppSearchService';
4
- import { memo, useMemo } from 'react';
5
- import { useTranslation } from 'react-i18next';
6
- import AppListEmpty from '@cccsaurora/howler-ui/commons/components/display/AppListEmpty';
7
- import { parseEvent } from '@cccsaurora/howler-ui/commons/components/utils/keyboard';
8
- const AppSearchResult = ({ className, ...menuProps }) => {
9
- const { t } = useTranslation();
10
- const { state, service } = useAppSearchService();
11
- const onKeyDown = (event, item) => {
12
- const { isEnter, isEscape } = parseEvent(event);
13
- if (isEnter) {
14
- if (service.onItemSelect) {
15
- service.onItemSelect(item, state);
16
- }
17
- }
18
- else if (isEscape) {
19
- state.set({ ...state, menu: false });
20
- }
21
- };
22
- const options = useMemo(() => state.items?.reduce((_options, _item, index) => ({
23
- ..._options,
24
- [index]: { state, index, last: index === state.items.length - 1 }
25
- }), {}), [state]);
26
- return (_jsxs("div", { className: className, children: [_jsx(MenuList, { "data-tui-id": "tui-app-search-result", ...menuProps, children: state.items?.length > 0 ? (state.items.map((item, index) => (_jsx(MenuItem, { onKeyDown: event => onKeyDown(event, item), children: service.itemRenderer(item, options[index]) }, item.id)))) : state.items ? (_jsx(AppListEmpty, {})) : (_jsx(MenuItem, { disabled: true, children: _jsx(Box, { mt: 1, mb: 1, children: _jsx(Typography, { variant: "body2", children: _jsx("em", { children: t('app.search.starttyping') }) }) }) })) }), state.mode === 'inline' && service.footerRenderer && service.footerRenderer(state)] }));
27
- };
28
- export default memo(AppSearchResult);
@@ -1,6 +0,0 @@
1
- export declare const AppBarBase: ({ children }: {
2
- children: any;
3
- }) => import("react/jsx-runtime").JSX.Element;
4
- declare const AppBar: () => import("react/jsx-runtime").JSX.Element;
5
- declare const _default: import("react").MemoExoticComponent<typeof AppBar>;
6
- export default _default;
@@ -1,80 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, AppBar as MuiAppBar, Toolbar, useMediaQuery, useTheme } from '@mui/material';
3
- import { useAppBar, useAppBreadcrumbs, useAppConfigs, useAppLayout, useAppQuickSearch } from '@cccsaurora/howler-ui/commons/components/app/hooks';
4
- import { APPBAR_READY_EVENT } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppBarHeight';
5
- import Breadcrumbs from '@cccsaurora/howler-ui/commons/components/breadcrumbs/Breadcrumbs';
6
- import AppSearch from '@cccsaurora/howler-ui/commons/components/search/AppSearch';
7
- import AppName from '@cccsaurora/howler-ui/commons/components/topnav/AppName';
8
- import AppSwitcher from '@cccsaurora/howler-ui/commons/components/topnav/AppSwitcher';
9
- import { Notifications } from '@cccsaurora/howler-ui/commons/components/topnav/Notifications';
10
- import ThemeSelectionIcon from '@cccsaurora/howler-ui/commons/components/topnav/ThemeSelectionIcon';
11
- import UserProfile from '@cccsaurora/howler-ui/commons/components/topnav/UserProfile';
12
- import { memo, useCallback, useLayoutEffect, useMemo } from 'react';
13
- export const AppBarBase = ({ children }) => {
14
- const layout = useAppLayout();
15
- const configs = useAppConfigs();
16
- const appbar = useAppBar();
17
- const isTopLayout = layout.current === 'top';
18
- const autoHide = !isTopLayout && appbar.autoHide;
19
- const elevation = useMemo(() => {
20
- if (layout.current === 'side') {
21
- return 0;
22
- }
23
- return configs.theme.appbar?.elevation !== undefined ? configs.theme.appbar?.elevation : 1;
24
- }, [layout, configs.theme.appbar?.elevation]);
25
- return (_jsx(MuiAppBar, { id: "appbar", position: autoHide && !isTopLayout ? 'relative' : 'sticky', elevation: elevation, sx: theme => ({
26
- '@media print': {
27
- display: 'none !important'
28
- },
29
- [theme.breakpoints.only('xs')]: {
30
- zIndex: theme.zIndex.drawer - 1
31
- },
32
- ...(isTopLayout
33
- ? {
34
- zIndex: theme.zIndex.drawer + 1,
35
- ...(configs.theme.appbar ? configs.theme.appbar[theme.palette.mode] : {})
36
- }
37
- : {
38
- color: theme.palette.getContrastText(theme.palette.background.paper),
39
- backgroundColor: theme.palette.background.paper
40
- })
41
- }), children: children }));
42
- };
43
- const AppBar = () => {
44
- // React Hooks.
45
- const muiTheme = useTheme();
46
- // TUI hooks.
47
- const layout = useAppLayout();
48
- const configs = useAppConfigs();
49
- const breadcrumbs = useAppBreadcrumbs();
50
- const quicksearch = useAppQuickSearch();
51
- const { left, leftAfterBreadcrumbs, right, rightBeforeSearch, themeSelectionMode } = configs.preferences.topnav;
52
- // media queries.
53
- const isXs = useMediaQuery(muiTheme.breakpoints.only('xs'));
54
- // const isSmUp = useMediaQuery(muiTheme.breakpoints.up('sm'));
55
- const isMdDown = useMediaQuery(muiTheme.breakpoints.down('md'));
56
- // const isMdUp = useMediaQuery(muiTheme.breakpoints.up('md'));
57
- // compute some flags we need to perform render.
58
- const isTopLayout = layout.current === 'top';
59
- // const showSpacer = isXs || !quicksearch.show || (isMdUp && (breadcrumbs.show || !!left || !!leftAfterBreadcrumbs));
60
- const showBreadcrumbs = breadcrumbs.show && !isMdDown;
61
- // Once the dom is mounted, dispatch event to let listeners know
62
- // that the apppbar/topbar dom is available.
63
- // Primary usecase is to initialize the 'useAppBarHeight' hook.
64
- // That value doesn't initialize properly because it typically gets
65
- // called before the appbar is ready.
66
- // The appbar/top bar is conditionally rendered on app/user ready state.
67
- useLayoutEffect(() => {
68
- window.dispatchEvent(new CustomEvent(APPBAR_READY_EVENT));
69
- }, []);
70
- const renderLeft = useCallback(() => (_jsxs(Box, { sx: {
71
- display: 'flex',
72
- flexDirection: 'row',
73
- alignItems: 'center'
74
- }, children: [(isTopLayout || isXs) && _jsx(AppName, { noName: isXs }), _jsx(Box, { sx: { ...(isTopLayout && { marginLeft: 3 }) } }), left, showBreadcrumbs && _jsx(Breadcrumbs, {}), leftAfterBreadcrumbs && (_jsx(Box, { sx: { ...(showBreadcrumbs && { marginLeft: 3, marginRight: 3 }) }, children: leftAfterBreadcrumbs }))] })), [showBreadcrumbs, leftAfterBreadcrumbs, isTopLayout, left, isXs]);
75
- return (_jsx(AppBarBase, { children: _jsxs(Toolbar, { disableGutters: true, style: {
76
- paddingLeft: !isXs && !isTopLayout ? muiTheme.spacing(2) : null,
77
- paddingRight: muiTheme.spacing(1)
78
- }, children: [renderLeft(), _jsx("div", { style: { flex: 1 } }), rightBeforeSearch, quicksearch.show && _jsx(AppSearch, {}), _jsx(Notifications, {}), right, themeSelectionMode === 'icon' && _jsx(ThemeSelectionIcon, {}), _jsx(AppSwitcher, {}), !configs.preferences.topnav.hideUserAvatar && _jsx(UserProfile, {})] }) }));
79
- };
80
- export default memo(AppBar);
@@ -1,5 +0,0 @@
1
- declare const AppName: ({ noName }: {
2
- noName?: boolean;
3
- }) => import("react/jsx-runtime").JSX.Element;
4
- declare const _default: import("react").MemoExoticComponent<typeof AppName>;
5
- export default _default;
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Menu } from '@mui/icons-material';
3
- import { IconButton, styled, useMediaQuery, useTheme } from '@mui/material';
4
- import { useAppConfigs, useAppLeftNav, useAppLogo } from '@cccsaurora/howler-ui/commons/components/app/hooks';
5
- import { memo } from 'react';
6
- import { Link } from 'react-router-dom';
7
- const StyledTitle = styled('div')({
8
- display: 'flex',
9
- alignItems: 'center',
10
- flex: '0 0 auto',
11
- fontSize: '1.5rem',
12
- letterSpacing: '-1px'
13
- });
14
- const StyledIcon = styled('div')(({ theme }) => ({
15
- display: 'flex',
16
- alignItems: 'center',
17
- padding: '0',
18
- minWidth: theme.spacing(7)
19
- }));
20
- const AppName = ({ noName }) => {
21
- const theme = useTheme();
22
- const logo = useAppLogo();
23
- const configs = useAppConfigs();
24
- const leftnav = useAppLeftNav();
25
- const isXs = useMediaQuery(theme.breakpoints.only('xs'));
26
- if (isXs) {
27
- return (_jsxs(StyledTitle, { style: { paddingLeft: theme.spacing(2) }, children: [_jsx(StyledIcon, { children: _jsx(IconButton, { "aria-label": "open drawer", edge: "start", onClick: leftnav.toggle, size: "large", color: "inherit", children: _jsx(Menu, {}) }) }), _jsx("div", { children: !noName && configs.preferences.appName })] }));
28
- }
29
- return (_jsx(Link, { to: configs.preferences.appLink, style: { color: 'inherit', textDecoration: 'none', paddingLeft: theme.spacing(2) }, children: _jsxs(StyledTitle, { children: [_jsx(StyledIcon, { children: logo }), _jsx("div", { children: !noName && configs.preferences.appName })] }) }));
30
- };
31
- export default memo(AppName);
@@ -1,3 +0,0 @@
1
- declare const AppSwitcher: () => import("react/jsx-runtime").JSX.Element;
2
- declare const _default: import("react").MemoExoticComponent<typeof AppSwitcher>;
3
- export default _default;
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Apps } from '@mui/icons-material';
3
- import { Avatar, Button, ClickAwayListener, Fade, IconButton, Link, Paper, Popper, Typography, useMediaQuery, useTheme } from '@mui/material';
4
- import { useAppSwitcher } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppSwitcher';
5
- import { memo, useCallback, useRef, useState } from 'react';
6
- const AppSwitcher = () => {
7
- const theme = useTheme();
8
- const anchorRef = useRef();
9
- const appSwitcher = useAppSwitcher();
10
- const [open, setOpen] = useState(false);
11
- const isDarkTheme = theme.palette.mode === 'dark';
12
- const sp1 = theme.spacing(1);
13
- const isSm = useMediaQuery(theme.breakpoints.down('sm'));
14
- const onTogglePopper = useCallback(() => setOpen(_open => !_open), []);
15
- const onClickAway = useCallback(() => setOpen(false), []);
16
- if (appSwitcher.empty) {
17
- return null;
18
- }
19
- return (_jsx(ClickAwayListener, { onClickAway: onClickAway, children: _jsxs(IconButton, { ref: anchorRef, color: "inherit", onClick: onTogglePopper, size: "large", children: [_jsx(Apps, {}), _jsx(Popper, { sx: { zIndex: theme.zIndex.drawer + 2 }, open: open, anchorEl: anchorRef.current, placement: "bottom-end", transition: true, children: ({ TransitionProps }) => (_jsx(Fade, { ...TransitionProps, timeout: 250, children: _jsx(Paper, { style: { textAlign: 'center', padding: theme.spacing(1) }, elevation: 4, children: _jsx("div", { style: {
20
- display: 'flex',
21
- flexDirection: 'row',
22
- flexWrap: 'wrap',
23
- maxWidth: appSwitcher.items.length <= 4 || isSm ? '240px' : '360px'
24
- }, children: appSwitcher.items.map((a, i) => (_jsx("div", { style: { width: '120px', padding: sp1, overflow: 'hidden' }, children: _jsxs(Button, { component: Link, target: a.newWindow ? '_blank' : null, href: a.route, style: { display: 'inherit', textDecoration: 'none', fontWeight: 400, color: 'inherit' }, children: [_jsx("div", { style: { display: 'inline-flex' }, children: _jsx(Avatar, { variant: "rounded", alt: a.name, src: isDarkTheme
25
- ? typeof a.img_d === 'string'
26
- ? a.img_d
27
- : null
28
- : typeof a.img_l === 'string'
29
- ? a.img_l
30
- : null, style: a.img_d === null || typeof a.img_d === 'string'
31
- ? { width: theme.spacing(8), height: theme.spacing(8) }
32
- : { backgroundColor: 'transparent', width: theme.spacing(8), height: theme.spacing(8) }, sx: {
33
- '& img': {
34
- objectFit: 'contain'
35
- }
36
- }, children: isDarkTheme
37
- ? a.img_d !== null && typeof a.img_d !== 'string'
38
- ? a.img_d
39
- : a.alt
40
- : a.img_l !== null && typeof a.img_l !== 'string'
41
- ? a.img_l
42
- : a.alt }, `avatar-${i}`) }), _jsx(Typography, { variant: "caption", children: a.name }, `text-${i}`)] }, `button-${i}`) }, `box-${i}`))) }) }) })) })] }) }));
43
- };
44
- export default memo(AppSwitcher);
@@ -1,2 +0,0 @@
1
- import { type FC } from 'react';
2
- export declare const Notifications: FC;
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useAppNotification } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppNotification';
3
- import { Notification } from '@cccsaurora/howler-ui/commons/components/notification';
4
- import {} from 'react';
5
- export const Notifications = () => {
6
- const { service, state } = useAppNotification();
7
- return (_jsx(Notification, { urls: service.feedUrls || state.urls, notificationItem: service.notificationRenderer, maxDrawerWidth: "800px", openIfNew: true }));
8
- };
@@ -1,3 +0,0 @@
1
- declare const ThemeSelection: () => import("react/jsx-runtime").JSX.Element;
2
- declare const _default: import("react").MemoExoticComponent<typeof ThemeSelection>;
3
- export default _default;
@@ -1,33 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Divider, List, ListItemButton, ListItemSecondaryAction, ListItemText, ListSubheader, Switch, Typography, useMediaQuery, useTheme } from '@mui/material';
3
- import { APP_STORAGE_PREFIX } from '@cccsaurora/howler-ui/commons/components/app/AppConstants';
4
- import { useAppBar, useAppBreadcrumbs, useAppConfigs, useAppLanguage, useAppLayout, useAppQuickSearch, useAppTheme } from '@cccsaurora/howler-ui/commons/components/app/hooks';
5
- import useLocalStorage from '@cccsaurora/howler-ui/commons/components/utils/hooks/useLocalStorage';
6
- import { memo } from 'react';
7
- import { useTranslation } from 'react-i18next';
8
- const ThemeSelection = () => {
9
- const theme = useTheme();
10
- const { t } = useTranslation();
11
- const configs = useAppConfigs();
12
- const layout = useAppLayout();
13
- const breadcrumbs = useAppBreadcrumbs();
14
- const language = useAppLanguage();
15
- const appbar = useAppBar();
16
- const appTheme = useAppTheme();
17
- const quicksearch = useAppQuickSearch();
18
- const localStorage = useLocalStorage(APP_STORAGE_PREFIX);
19
- const isSmDown = useMediaQuery(theme.breakpoints.down('sm'));
20
- const clearStorage = () => {
21
- localStorage.clear();
22
- window.location.reload();
23
- };
24
- return (_jsxs("div", { children: [configs.preferences.allowTranslate && (_jsx(List, { dense: true, subheader: _jsx(ListSubheader, { disableSticky: true, children: t('app.language') }), children: _jsx(ListItemButton, { dense: true, onClick: language.toggle, children: _jsx(ListItemText, { style: { margin: 0 }, children: _jsxs("div", { style: {
25
- display: 'flex',
26
- alignItems: 'center',
27
- flexDirection: 'row',
28
- width: '100%',
29
- textAlign: 'center',
30
- cursor: 'pointer'
31
- }, children: [_jsx(Typography, { component: "div", variant: "body2", children: "English" }), _jsx("div", { style: { flexGrow: 1 }, children: _jsx(Switch, { checked: language.isFR(), name: "langSwitch" }) }), _jsx(Typography, { component: "div", variant: "body2", children: "Fran\u00E7ais" })] }) }) }) })), configs.preferences.allowTranslate && configs.allowPersonalization && _jsx(Divider, {}), configs.allowPersonalization && (_jsxs(List, { dense: true, subheader: _jsx(ListSubheader, { disableSticky: true, children: t('personalization') }), children: [configs.preferences.allowThemeSelection && (_jsxs(ListItemButton, { onClick: appTheme.toggle, children: [_jsx(ListItemText, { children: t('personalization.dark') }), _jsx(ListItemSecondaryAction, { children: _jsx(Switch, { edge: "end", onChange: appTheme.toggle, checked: theme.palette.mode === 'dark' }) })] })), configs.preferences.allowLayoutSelection && (_jsxs(ListItemButton, { onClick: layout.toggle, children: [_jsx(ListItemText, { children: t('personalization.sticky') }), _jsx(ListItemSecondaryAction, { onClick: layout.toggle, children: _jsx(Switch, { edge: "end", checked: layout.current === 'top' }) })] })), configs.preferences.allowQuickSearch && !isSmDown && (_jsxs(ListItemButton, { onClick: quicksearch.toggle, children: [_jsx(ListItemText, { children: t('personalization.quicksearch') }), _jsx(ListItemSecondaryAction, { children: _jsx(Switch, { edge: "end", checked: quicksearch.show, onClick: quicksearch.toggle }) })] })), configs.preferences.allowAutoHideTopbar && (_jsxs(ListItemButton, { disabled: layout.current === 'top', onClick: appbar.toggleAutoHide, children: [_jsx(ListItemText, { children: t('personalization.autohideappbar') }), _jsx(ListItemSecondaryAction, { children: _jsx(Switch, { edge: "end", disabled: layout.current === 'top', checked: appbar.autoHide && layout.current !== 'top', onClick: appbar.toggleAutoHide }) })] })), configs.preferences.allowBreadcrumbs && !isSmDown && (_jsx(_Fragment, { children: _jsxs(ListItemButton, { onClick: breadcrumbs.toggle, children: [_jsx(ListItemText, { children: t('personalization.showbreadcrumbs') }), _jsx(ListItemSecondaryAction, { children: _jsx(Switch, { edge: "end", checked: breadcrumbs.show, onClick: breadcrumbs.toggle }) })] }) }))] })), (configs.preferences.allowTranslate || configs.allowPersonalization) && configs.preferences.allowReset && (_jsx(Divider, {})), configs.preferences.allowReset && (_jsx(List, { dense: true, children: _jsx(ListItemButton, { dense: true, onClick: clearStorage, children: _jsx(ListItemText, { children: t('personalization.reset_text') }) }) }))] }));
32
- };
33
- export default memo(ThemeSelection);
@@ -1,2 +0,0 @@
1
- declare const ThemeSelectionIcon: () => import("react/jsx-runtime").JSX.Element;
2
- export default ThemeSelectionIcon;
@@ -1,16 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Tune } from '@mui/icons-material';
3
- import { ClickAwayListener, Fade, IconButton, Paper, Popper, useTheme } from '@mui/material';
4
- import { useAppConfigs } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppConfigs';
5
- import ThemeSelection from '@cccsaurora/howler-ui/commons/components/topnav/ThemeSelection';
6
- import { useRef, useState } from 'react';
7
- const ThemeSelectionIcon = () => {
8
- const anchorEl = useRef();
9
- const theme = useTheme();
10
- const { allowPersonalization, preferences } = useAppConfigs();
11
- const [open, setOpen] = useState(false);
12
- const onThemeSelectionClick = () => setOpen(!open);
13
- const onClickAway = () => setOpen(false);
14
- return allowPersonalization || preferences.allowTranslate || preferences.allowReset ? (_jsx(ClickAwayListener, { onClickAway: onClickAway, children: _jsxs(IconButton, { ref: anchorEl, color: "inherit", "aria-label": "open drawer", onClick: onThemeSelectionClick, size: "large", children: [_jsx(Tune, {}), _jsx(Popper, { sx: { zIndex: theme.zIndex.drawer + 2, minWidth: '280px' }, open: open, anchorEl: anchorEl.current, placement: "bottom-end", transition: true, children: ({ TransitionProps }) => (_jsx(Fade, { ...TransitionProps, timeout: 250, children: _jsx(Paper, { style: { padding: theme.spacing(1) }, elevation: 4, children: _jsx(ThemeSelection, {}) }) })) })] }) })) : null;
15
- };
16
- export default ThemeSelectionIcon;
@@ -1,6 +0,0 @@
1
- import type { StyledComponent } from '@emotion/styled';
2
- import { type AppAvatarProps } from '@cccsaurora/howler-ui/commons/components/display/AppAvatar';
3
- export declare const AppUserAvatar: StyledComponent<AppAvatarProps>;
4
- declare const UserProfile: () => import("react/jsx-runtime").JSX.Element;
5
- declare const _default: import("react").MemoExoticComponent<typeof UserProfile>;
6
- export default _default;
@@ -1,71 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, ClickAwayListener, Divider, Fade, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Paper, Popper, styled, Typography, useTheme } from '@mui/material';
3
- import { useAppConfigs, useAppUser } from '@cccsaurora/howler-ui/commons/components/app/hooks';
4
- import AppAvatar, {} from '@cccsaurora/howler-ui/commons/components/display/AppAvatar';
5
- import ThemeSelection from '@cccsaurora/howler-ui/commons/components/topnav/ThemeSelection';
6
- import { memo, useCallback, useEffect, useRef, useState } from 'react';
7
- import { useTranslation } from 'react-i18next';
8
- import { Link, useLocation } from 'react-router-dom';
9
- export const AppUserAvatar = styled(AppAvatar)(({ theme }) => ({
10
- width: theme.spacing(5),
11
- height: theme.spacing(5),
12
- [theme.breakpoints.down('sm')]: {
13
- width: theme.spacing(4),
14
- height: theme.spacing(4)
15
- }
16
- }));
17
- const UserProfile = () => {
18
- const theme = useTheme();
19
- const { t } = useTranslation();
20
- const configs = useAppConfigs();
21
- const { user } = useAppUser();
22
- const anchorRef = useRef();
23
- const location = useLocation();
24
- const [open, setOpen] = useState(false);
25
- const onProfileClick = useCallback(e => {
26
- e.stopPropagation();
27
- setOpen(_open => !_open);
28
- }, []);
29
- const onClickAway = useCallback(() => setOpen(false), []);
30
- const renderThemeSelection = useCallback(enabled => {
31
- if (enabled &&
32
- (configs.allowPersonalization || configs.preferences.allowTranslate || configs.preferences.allowReset)) {
33
- return (_jsxs("div", { children: [_jsx(Divider, {}), _jsx(ThemeSelection, {})] }));
34
- }
35
- return null;
36
- }, [configs.allowPersonalization, configs.preferences.allowTranslate, configs.preferences.allowReset]);
37
- const renderMenu = useCallback((type, menuItems, title, i18nKey) => {
38
- if (menuItems !== undefined && menuItems !== null && menuItems.length !== 0) {
39
- return (_jsxs("div", { children: [_jsx(Divider, {}), _jsx(List, { dense: true, subheader: _jsx(ListSubheader, { disableSticky: true, children: i18nKey ? t(i18nKey) : title }), children: menuItems.map((a, i) => a.element ? (_jsx(ListItem, { children: a.element }, `${type}-${i}`)) : (_jsxs(ListItemButton, { component: Link, to: a.route, children: [a.icon && _jsx(ListItemIcon, { children: a.icon }), _jsx(ListItemText, { children: a.i18nKey ? t(a.i18nKey) : a.title })] }, `${type}-${i}`))) })] }));
40
- }
41
- return null;
42
- }, [t]);
43
- useEffect(() => {
44
- // This effect checks to see if the result of pressing a button was a navigation
45
- // if so, close the settings bar.
46
- if (open) {
47
- setOpen(false);
48
- }
49
- // eslint-disable-next-line react-hooks/exhaustive-deps
50
- }, [location.pathname]);
51
- return (_jsxs(_Fragment, { children: [_jsx(IconButton, { ref: anchorRef, edge: "end", sx: {
52
- padding: 0,
53
- marginLeft: theme.spacing(1),
54
- marginRight: theme.spacing(1)
55
- }, onClick: onProfileClick, size: "large", children: _jsx(AppUserAvatar, { alt: user.name, url: user.avatar, email: user.email, children: user.name
56
- .split(' ', 2)
57
- .map(n => n[0].toUpperCase())
58
- .join('') }) }), _jsx(ClickAwayListener, { onClickAway: onClickAway, children: _jsx(Popper, { sx: { zIndex: theme.zIndex.appBar + 200, minWidth: '280px' }, open: open, anchorEl: anchorRef.current, placement: "bottom-end", transition: true, children: ({ TransitionProps }) => (_jsx(Fade, { ...TransitionProps, timeout: 250, children: _jsxs(Paper, { style: { padding: theme.spacing(1) }, elevation: 4, children: [_jsx(List, { disablePadding: true, children: _jsx(ListItem, { disableGutters: true, dense: true, children: _jsxs(Box, { sx: {
59
- display: 'flex',
60
- paddingTop: 2,
61
- paddingBottom: 2,
62
- paddingLeft: 3,
63
- paddingRight: 3,
64
- alignItems: 'center'
65
- }, children: [_jsx(AppAvatar, { sx: { width: theme.spacing(8), height: theme.spacing(8) }, alt: user.name, url: user.avatar, email: user.email, children: user.name
66
- .split(' ', 2)
67
- .map(n => n[0].toUpperCase())
68
- .join('') }), _jsxs(Box, { sx: { paddingLeft: 2 }, children: [_jsx(Typography, { variant: "body1", noWrap: true, children: _jsx("b", { children: user.name }) }), _jsx(Typography, { variant: "caption", noWrap: true, children: user.email })] })] }) }) }), renderMenu('usermenu', configs.preferences.topnav.userMenu, configs.preferences.topnav.userMenuTitle, configs.preferences.topnav.userMenuI18nKey), user.is_admin &&
69
- renderMenu('adminmenu', configs.preferences.topnav.adminMenu, configs.preferences.topnav.adminMenuTitle, configs.preferences.topnav.adminMenuI18nKey), renderThemeSelection(configs.preferences.topnav.themeSelectionMode === 'profile')] }) })) }) })] }));
70
- };
71
- export default memo(UserProfile);
@@ -1,3 +0,0 @@
1
- export default function useClipboard(): {
2
- copy: (text: string) => Promise<void>;
3
- };
@@ -1,29 +0,0 @@
1
- import { useSnackbar } from 'notistack';
2
- import { useTranslation } from 'react-i18next';
3
- export default function useClipboard() {
4
- const { enqueueSnackbar, closeSnackbar } = useSnackbar();
5
- const { t } = useTranslation();
6
- const snackBarOptions = {
7
- preventDuplicate: true,
8
- autoHideDuration: 3000,
9
- anchorOrigin: {
10
- vertical: 'bottom',
11
- horizontal: 'center'
12
- },
13
- SnackbarProps: {
14
- onClick: () => {
15
- closeSnackbar();
16
- }
17
- }
18
- };
19
- const copy = async (text) => {
20
- try {
21
- await navigator.clipboard.writeText(text);
22
- enqueueSnackbar(`${text} ${t('clipboard.success')}`, { variant: 'success', ...snackBarOptions });
23
- }
24
- catch (error) {
25
- enqueueSnackbar(`${text} ${t('clipboard.failure')}`, { variant: 'error', ...snackBarOptions });
26
- }
27
- };
28
- return { copy };
29
- }
@@ -1 +0,0 @@
1
- export default function useAppEnv(key?: string): string | NodeJS.ProcessEnv;