@cccsaurora/howler-ui 3.1.0-dev.1466 → 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.
- package/api/action/execute.d.ts +1 -1
- package/api/action/index.d.ts +10 -6
- package/api/action/index.js +5 -9
- package/api/action/operations.js +2 -2
- package/api/analytic/comments/index.d.ts +4 -6
- package/api/analytic/comments/react.d.ts +2 -2
- package/api/analytic/favourite.d.ts +2 -4
- package/api/analytic/index.d.ts +7 -4
- package/api/analytic/index.js +2 -2
- package/api/analytic/notebooks/index.d.ts +2 -4
- package/api/analytic/owner.d.ts +1 -1
- package/api/auth/apikey.d.ts +2 -2
- package/api/auth/login.d.ts +2 -2
- package/api/configs/index.d.ts +1 -1
- package/api/dossier.d.ts +16 -0
- package/api/{dossier/index.js → dossier.js} +6 -4
- package/api/help.d.ts +2 -2
- package/api/hit/assign.d.ts +6 -2
- package/api/hit/comments/index.d.ts +4 -6
- package/api/hit/comments/react.d.ts +2 -2
- package/api/hit/index.d.ts +3 -8
- package/api/hit/labels.d.ts +2 -2
- package/api/hit/overwrite.d.ts +1 -1
- package/api/hit/transition.d.ts +1 -1
- package/api/index.d.ts +6 -6
- package/api/index.js +7 -6
- package/api/notebook/environments.d.ts +1 -1
- package/api/notebook/index.d.ts +1 -1
- package/api/overview/index.d.ts +4 -4
- package/api/search/action.d.ts +1 -1
- package/api/search/analytic.d.ts +1 -1
- package/api/search/case.d.ts +1 -1
- package/api/search/count/hit.d.ts +1 -1
- package/api/search/dossier.d.ts +1 -1
- package/api/search/eql/hit.d.ts +1 -1
- package/api/search/explain/hit.d.ts +1 -1
- package/api/search/facet/hit.d.ts +1 -1
- package/api/search/fields/hit.js +1 -2
- package/api/search/fields/user.js +2 -4
- package/api/search/grouped/hit.d.ts +1 -1
- package/api/search/grouped/user.js +3 -0
- package/api/search/histogram/hit.d.ts +1 -1
- package/api/search/hit.d.ts +1 -1
- package/api/search/overview.d.ts +1 -1
- package/api/search/sigma/hit.d.ts +1 -1
- package/api/search/template.d.ts +1 -1
- package/api/search/user.d.ts +30 -2
- package/api/search/user.js +3 -0
- package/api/search/view.d.ts +1 -1
- package/api/socket/viewers.d.ts +1 -1
- package/api/socket/viewers.js +1 -1
- package/api/template/index.d.ts +3 -3
- package/api/template/index.js +2 -2
- package/api/user/avatar/index.d.ts +1 -1
- package/api/user/groups.d.ts +1 -1
- package/api/user/index.d.ts +2 -2
- package/api/user/whoami.d.ts +1 -1
- package/api/utils/createPermissionsApi.d.ts +10 -0
- package/api/utils/createPermissionsApi.js +10 -0
- package/api/v2/case/index.d.ts +4 -4
- package/api/v2/case/items.d.ts +3 -3
- package/api/v2/case/rules.d.ts +3 -3
- package/api/v2/fuzzy.d.ts +1 -1
- package/api/v2/search/facet.d.ts +1 -1
- package/api/v2/search/index.d.ts +1 -1
- package/api/view/favourite.d.ts +2 -4
- package/api/view/index.d.ts +9 -5
- package/api/view/index.js +3 -1
- package/branding/AppBrand.d.ts +2 -2
- package/branding/AppBrand.js +4 -6
- package/components/app/App.js +248 -51
- package/components/app/AppContainer.js +1 -1
- package/components/app/drawers/ApiKeyDrawer.js +13 -5
- package/components/app/drawers/AssignUserDrawer.js +11 -4
- package/components/app/hooks/useMatchers.d.ts +3 -3
- package/components/app/hooks/useMatchers.js +12 -12
- package/components/app/hooks/useMatchers.test.js +15 -14
- package/components/app/hooks/useTitle.js +8 -7
- package/components/app/providers/AnalyticProvider.d.ts +1 -1
- package/components/app/providers/AnalyticProvider.js +7 -4
- package/components/app/providers/ApiConfigProvider.d.ts +2 -1
- package/components/app/providers/ApiConfigProvider.js +12 -10
- package/components/app/providers/AppDrawerProvider.js +2 -2
- package/components/app/providers/AvatarProvider.js +18 -11
- package/components/app/providers/FavouritesProvider.js +56 -86
- package/components/app/providers/FieldProvider.js +1 -1
- package/components/app/providers/GridColumnsProvider.d.ts +1 -1
- package/components/app/providers/GridColumnsProvider.js +17 -4
- package/components/app/providers/GridColumnsProvider.test.js +2 -1
- package/components/app/providers/LocalStorageProvider.d.ts +2 -2
- package/components/app/providers/LocalStorageProvider.js +4 -3
- package/components/app/providers/ModalProvider.js +8 -1
- package/components/app/providers/OverviewProvider.js +10 -2
- package/components/app/providers/ParameterProvider.d.ts +7 -7
- package/components/app/providers/ParameterProvider.js +42 -5
- package/components/app/providers/ParameterProvider.test.js +1 -0
- package/components/app/providers/RecordProvider.js +7 -1
- package/components/app/providers/RecordSearchProvider.d.ts +1 -2
- package/components/app/providers/RecordSearchProvider.js +32 -23
- package/components/app/providers/RecordSearchProvider.test.js +2 -1
- package/components/app/providers/SearchResponseProvider.d.ts +9 -6
- package/components/app/providers/SearchResponseProvider.js +37 -19
- package/components/app/providers/SearchResponseProvider.test.js +37 -11
- package/components/app/providers/SocketProvider.js +6 -4
- package/components/app/providers/UserListProvider.d.ts +1 -1
- package/components/app/providers/ViewProvider.d.ts +2 -2
- package/components/app/providers/ViewProvider.js +22 -12
- package/components/app/providers/ViewProvider.test.js +2 -2
- package/components/app/providers/contextUtils.d.ts +1 -0
- package/components/app/providers/contextUtils.js +3 -0
- package/components/elements/Comment.d.ts +1 -1
- package/components/elements/Comment.js +11 -9
- package/components/elements/ContextMenu.js +1 -1
- package/components/elements/ContextMenu.test.js +2 -2
- package/components/elements/EditRow.d.ts +9 -4
- package/components/elements/EditRow.js +5 -4
- package/components/elements/MarkdownEditor.js +1 -1
- package/components/elements/MembershipManagement.test.js +178 -0
- package/components/elements/ObjectDetails.js +6 -6
- package/components/elements/ThemedEditor.js +17 -17
- package/components/elements/UserList.d.ts +2 -0
- package/components/elements/UserList.js +26 -18
- package/components/elements/UserList.test.js +24 -1
- package/components/elements/addons/buttons/CustomButton.d.ts +1 -1
- package/components/elements/addons/buttons/CustomButton.js +2 -2
- package/components/elements/addons/buttons/CustomIconButton.d.ts +1 -1
- package/components/elements/addons/buttons/CustomIconButton.js +3 -3
- package/components/elements/addons/buttons/index.d.ts +1 -1
- package/components/elements/addons/layout/FlexOne.d.ts +2 -2
- package/components/elements/addons/layout/FlexOne.test.js +1 -0
- package/components/elements/addons/layout/FlexPort.d.ts +1 -1
- package/components/elements/addons/layout/FlexPort.js +9 -2
- package/components/elements/addons/layout/FlexVertical.d.ts +2 -2
- package/components/elements/addons/layout/FlexVertical.js +1 -1
- package/components/elements/addons/layout/vsbox/VSBox.d.ts +2 -2
- package/components/elements/addons/layout/vsbox/VSBox.js +5 -4
- package/components/elements/addons/layout/vsbox/VSBoxElement.d.ts +1 -1
- package/components/elements/addons/layout/vsbox/VSBoxHeader.js +4 -3
- package/components/elements/addons/lists/TuiList.d.ts +2 -2
- package/components/elements/addons/lists/TuiList.js +1 -1
- package/components/elements/addons/lists/TuiListBase.d.ts +2 -2
- package/components/elements/addons/lists/TuiListBase.js +4 -4
- package/components/elements/addons/lists/TuiListElement.d.ts +2 -2
- package/components/elements/addons/lists/TuiListElement.js +2 -2
- package/components/elements/addons/lists/TuiListMenu.d.ts +13 -37
- package/components/elements/addons/lists/TuiListMenu.js +8 -8
- package/components/elements/addons/lists/TuiListProvider.d.ts +2 -2
- package/components/elements/addons/lists/TuiListProvider.js +4 -4
- package/components/elements/addons/lists/hooks/useTuiListKeyboard.js +1 -1
- package/components/elements/addons/lists/table/TuiTable.d.ts +1 -1
- package/components/elements/addons/lists/table/TuiTable.js +1 -1
- package/components/elements/addons/lists/table/TuiTableBody.d.ts +1 -1
- package/components/elements/addons/lists/table/TuiTableBody.js +1 -1
- package/components/elements/addons/lists/table/TuiTableHead.d.ts +1 -1
- package/components/elements/addons/lists/table/TuiTableHead.js +1 -1
- package/components/elements/addons/lists/table/TuiTableHeader.d.ts +1 -1
- package/components/elements/addons/lists/table/TuiTableLayout.js +1 -1
- package/components/elements/addons/search/SearchPagination.d.ts +1 -1
- package/components/elements/addons/search/SearchPagination.test.js +1 -1
- package/components/elements/addons/search/SearchTotal.d.ts +1 -1
- package/components/elements/addons/search/phrase/Phrase.d.ts +2 -2
- package/components/elements/addons/search/phrase/Phrase.js +7 -7
- package/components/elements/addons/search/phrase/PhraseConsumer.d.ts +2 -2
- package/components/elements/addons/search/phrase/PhraseLexer.d.ts +1 -1
- package/components/elements/addons/search/phrase/PhraseLexer.js +6 -6
- package/components/elements/addons/search/phrase/WordLexer.test.js +1 -0
- package/components/elements/addons/search/phrase/index.d.ts +2 -2
- package/components/elements/addons/search/phrase/index.js +3 -2
- package/components/elements/addons/search/phrase/word/consumers/WhitespaceConsumer.d.ts +1 -1
- package/components/elements/addons/search/phrase/word/consumers/WhitespaceConsumer.js +1 -1
- package/components/elements/addons/search/phrase/word/consumers/WordConsumer.d.ts +1 -1
- package/components/elements/case/CaseCard.js +10 -4
- package/components/elements/case/CasePreview.js +1 -1
- package/components/elements/display/ActionButton.js +3 -1
- package/components/elements/display/ChipPopper.js +1 -1
- package/components/elements/display/ChipPopper.test.js +1 -0
- package/components/elements/display/Classification.js +6 -5
- package/components/elements/display/ClassificationChip.d.ts +2 -4
- package/components/elements/display/ClassificationChip.js +5 -3
- package/components/elements/display/DocumentationButton.js +1 -1
- package/components/elements/display/DocumentationButton.test.js +1 -1
- package/components/elements/display/HandlebarsMarkdown.js +2 -2
- package/components/elements/display/HowlerAvatar.d.ts +1 -0
- package/components/elements/display/HowlerAvatar.js +5 -4
- package/components/elements/display/HowlerAvatarHeader.js +2 -2
- package/components/elements/display/Image.test.js +1 -0
- package/components/elements/display/ItemManager.d.ts +6 -6
- package/components/elements/display/ItemManager.js +1 -1
- package/components/elements/display/Markdown.js +9 -3
- package/components/elements/display/Modal.js +3 -3
- package/components/elements/display/QueryResultText.js +1 -1
- package/components/elements/display/TextDivider.test.js +1 -0
- package/components/elements/display/TypingIndicator.d.ts +1 -1
- package/components/elements/display/UserPageWrapper.js +2 -2
- package/components/elements/display/handlebars/helpers.js +1 -1
- package/components/elements/display/json/JSONViewer.js +2 -2
- package/components/elements/display/markdownPlugins/tabs.js +4 -0
- package/components/elements/display/modals/CreateActionModal.js +1 -1
- package/components/elements/display/modals/RationaleModal.js +1 -2
- package/components/elements/display/modals/RationaleModal.test.js +9 -5
- package/components/elements/event/EventPreview.js +1 -1
- package/components/elements/hit/HitActions.js +5 -7
- package/components/elements/hit/HitBanner.js +4 -16
- package/components/elements/hit/HitBanner.test.js +11 -20
- package/components/elements/hit/HitLabels.js +23 -13
- package/components/elements/hit/HitLinks.js +4 -4
- package/components/elements/hit/HitNotebooks.js +28 -10
- package/components/elements/hit/HitOutline.js +9 -15
- package/components/elements/hit/HitOutline.test.js +5 -5
- package/components/elements/hit/HitOverview.js +3 -3
- package/components/elements/hit/HitPreview.d.ts +1 -1
- package/components/elements/hit/HitPreview.js +6 -7
- package/components/elements/hit/HitSummary.js +8 -8
- package/components/elements/hit/PivotTooltip.js +1 -1
- package/components/elements/hit/actions/ButtonActions.js +2 -2
- package/components/elements/hit/actions/DropdownActions.js +4 -4
- package/components/elements/hit/aggregate/HitGraph.js +28 -11
- package/components/elements/hit/elements/AnalyticLink.js +2 -2
- package/components/elements/hit/elements/AnalyticLink.test.js +1 -1
- package/components/elements/hit/elements/Assigned.js +1 -1
- package/components/elements/hit/elements/Assigned.test.js +1 -1
- package/components/elements/hit/elements/EscalationChip.js +2 -2
- package/components/elements/hit/elements/HitTimestamp.js +2 -2
- package/components/elements/hit/grid/AddColumnModal.js +2 -2
- package/components/elements/hit/grid/ColumnHeader.js +1 -1
- package/components/elements/hit/grid/RecordRow.js +1 -1
- package/components/elements/hit/grid/RecordTable.d.ts +4 -3
- package/components/elements/hit/grid/RecordTable.js +6 -6
- package/components/elements/hit/related/PivotLink.js +2 -2
- package/components/elements/hit/related/RelatedIcon.js +2 -2
- package/components/elements/hit/related/RelatedLink.js +1 -1
- package/components/elements/hit/related/RelatedRecords.js +1 -1
- package/components/elements/membership/Members.d.ts +6 -0
- package/components/elements/membership/Members.js +14 -0
- package/components/elements/membership/MembershipManagement.d.ts +9 -0
- package/components/elements/membership/MembershipManagement.js +119 -0
- package/components/elements/membership/types.d.ts +7 -0
- package/components/elements/membership/utils.d.ts +2 -0
- package/components/elements/membership/utils.js +6 -0
- package/components/elements/record/RecordComments.js +16 -10
- package/components/elements/record/RecordContextMenu.d.ts +2 -2
- package/components/elements/record/RecordContextMenu.js +11 -5
- package/components/elements/record/RecordContextMenu.test.js +14 -6
- package/components/elements/record/RecordRelated.js +2 -2
- package/components/elements/search/FuzzySearchBar.js +1 -1
- package/components/elements/view/LayoutToggle.d.ts +1 -1
- package/components/elements/view/ViewTitle.js +3 -4
- package/components/hooks/useHitActions.d.ts +1 -1
- package/components/hooks/useHitActions.js +25 -15
- package/components/hooks/useLocalStorage.d.ts +1 -1
- package/components/hooks/useLocalStorage.js +1 -1
- package/components/hooks/useLocalStorageItem.d.ts +11 -1
- package/components/hooks/useLocalStorageItem.js +7 -5
- package/components/hooks/useLocalStorageItem.test.js +23 -0
- package/components/hooks/useMyAccessibility.d.ts +7 -0
- package/components/hooks/useMyAccessibility.js +21 -0
- package/components/hooks/useMyApi.d.ts +1 -1
- package/components/hooks/useMyApi.js +4 -4
- package/components/hooks/useMyChart.d.ts +46 -48
- package/components/hooks/useMyChart.js +30 -9
- package/components/hooks/useMyCookies.d.ts +3 -0
- package/components/hooks/useMyCookies.js +8 -0
- package/components/hooks/useMyLocalStorage.d.ts +8 -2
- package/components/hooks/useMyLocalStorage.js +1 -1
- package/components/hooks/useMyPreferences.d.ts +1 -1
- package/components/hooks/useMyPreferences.js +93 -127
- package/components/hooks/useMyRouter.d.ts +2 -0
- package/components/hooks/useMyRouter.js +24 -0
- package/components/hooks/useMySearch.d.ts +1 -1
- package/components/hooks/useMySearch.js +17 -7
- package/components/hooks/useMySnackbar.js +1 -1
- package/components/hooks/useMyTheme.d.ts +1 -1
- package/components/hooks/useMyTheme.js +13 -8
- package/components/hooks/useMyTheme.test.js +11 -6
- package/components/hooks/useMyUser.d.ts +1 -1
- package/components/hooks/useMyUser.js +6 -5
- package/components/hooks/useMyUserFunctions.d.ts +2 -2
- package/components/hooks/useMyUserFunctions.js +14 -10
- package/components/hooks/useMyUserList.d.ts +1 -1
- package/components/hooks/useMyUtils.js +1 -1
- package/components/hooks/useParamState.js +5 -3
- package/components/hooks/useParamState.test.js +1 -1
- package/components/hooks/useRecordSelection.d.ts +4 -3
- package/components/hooks/useRecordSelection.js +5 -5
- package/components/hooks/useScrollRestoration.js +3 -3
- package/components/logins/Login.d.ts +1 -1
- package/components/logins/Login.js +4 -6
- package/components/logins/auth/OAuthLogin.js +1 -1
- package/components/logins/auth/UserPassLogin.d.ts +1 -1
- package/components/logins/hooks/useLogin.js +10 -6
- package/components/routes/403.js +1 -1
- package/components/routes/403.test.js +7 -3
- package/components/routes/404.js +1 -1
- package/components/routes/404.test.js +7 -3
- package/components/routes/ErrorBoundary.d.ts +2 -2
- package/components/routes/ErrorBoundary.js +2 -2
- package/components/routes/ErrorBoundary.test.js +1 -4
- package/components/routes/ErrorOccured.js +1 -1
- package/components/routes/ErrorOccured.test.js +7 -3
- package/components/routes/Logout.js +3 -4
- package/components/routes/Logout.test.js +12 -11
- package/components/routes/action/edit/ActionEditor.js +38 -30
- package/components/routes/action/shared/ActionReportDisplay.js +1 -1
- package/components/routes/action/shared/OperationEntry.js +2 -2
- package/components/routes/action/shared/OperationStep.js +12 -10
- package/components/routes/action/useMyActionFunctions.d.ts +3 -3
- package/components/routes/action/useMyActionFunctions.js +13 -13
- package/components/routes/action/view/ActionDetails.d.ts +1 -1
- package/components/routes/action/view/ActionDetails.js +46 -26
- package/components/routes/action/view/ActionSearch.js +11 -10
- package/components/routes/action/view/Integrations.js +2 -2
- package/components/routes/action/view/markdown/integrations.en.md.js +1 -1
- package/components/routes/action/view/markdown/integrations.fr.md.js +1 -1
- package/components/routes/admin/users/UserEditor.js +21 -8
- package/components/routes/admin/users/UserSearch.js +10 -9
- package/components/routes/advanced/QueryBuilder.js +17 -11
- package/components/routes/advanced/luceneCompletionProvider.js +42 -21
- package/components/routes/analytics/AnalyticComments.js +19 -14
- package/components/routes/analytics/AnalyticDetails.d.ts +1 -1
- package/components/routes/analytics/AnalyticDetails.js +20 -16
- package/components/routes/analytics/AnalyticHitComments.js +13 -6
- package/components/routes/analytics/AnalyticHitComments.test.js +5 -4
- package/components/routes/analytics/AnalyticNotebooks.js +5 -5
- package/components/routes/analytics/AnalyticOverview.js +28 -15
- package/components/routes/analytics/AnalyticOverviews.js +2 -2
- package/components/routes/analytics/AnalyticSearch.js +11 -10
- package/components/routes/analytics/AnalyticTemplates.js +3 -3
- package/components/routes/analytics/TriageSettings.d.ts +1 -1
- package/components/routes/analytics/TriageSettings.js +1 -1
- package/components/routes/analytics/widgets/Assessment.js +1 -1
- package/components/routes/analytics/widgets/Created.js +9 -9
- package/components/routes/analytics/widgets/Escalation.js +3 -3
- package/components/routes/analytics/widgets/Stacked.js +5 -5
- package/components/routes/analytics/widgets/Status.js +2 -2
- package/components/routes/cases/CaseViewer.js +1 -1
- package/components/routes/cases/CaseViewer.test.js +2 -2
- package/components/routes/cases/Cases.d.ts +1 -1
- package/components/routes/cases/Cases.js +8 -7
- package/components/routes/cases/constants.d.ts +3 -3
- package/components/routes/cases/detail/AlertPanel.js +1 -1
- package/components/routes/cases/detail/AlertPanel.test.js +4 -6
- package/components/routes/cases/detail/CaseDashboard.js +8 -4
- package/components/routes/cases/detail/CaseDashboard.test.js +2 -2
- package/components/routes/cases/detail/CaseDetails.js +7 -2
- package/components/routes/cases/detail/CaseDetails.test.js +1 -1
- package/components/routes/cases/detail/CaseObservables.js +5 -4
- package/components/routes/cases/detail/CaseObservables.test.js +1 -1
- package/components/routes/cases/detail/CaseOverview.js +2 -2
- package/components/routes/cases/detail/CaseRules.js +10 -6
- package/components/routes/cases/detail/CaseRules.test.js +2 -2
- package/components/routes/cases/detail/CaseSearch.js +5 -5
- package/components/routes/cases/detail/CaseSearch.test.js +2 -2
- package/components/routes/cases/detail/CaseSidebar.js +12 -7
- package/components/routes/cases/detail/CaseSidebar.test.js +5 -6
- package/components/routes/cases/detail/CaseTask.js +27 -15
- package/components/routes/cases/detail/CaseTask.test.js +8 -1
- package/components/routes/cases/detail/CaseTimeline.js +8 -8
- package/components/routes/cases/detail/CaseTimeline.test.js +6 -6
- package/components/routes/cases/detail/CreateRuleDialog.js +4 -4
- package/components/routes/cases/detail/CreateRuleDialog.test.js +2 -2
- package/components/routes/cases/detail/ItemPage.js +3 -3
- package/components/routes/cases/detail/MarkdownPage.test.js +0 -4
- package/components/routes/cases/detail/RelatedCasePanel.js +1 -1
- package/components/routes/cases/detail/RelatedCasePanel.test.js +4 -6
- package/components/routes/cases/detail/TaskPanel.js +8 -8
- package/components/routes/cases/detail/TaskPanel.test.js +3 -3
- package/components/routes/cases/detail/aggregates/CaseAggregate.js +1 -1
- package/components/routes/cases/detail/aggregates/SourceAggregate.js +3 -3
- package/components/routes/cases/detail/observables/Observable.js +4 -5
- package/components/routes/cases/detail/observables/Observable.test.js +1 -1
- package/components/routes/cases/detail/observables/ObservableTable.js +3 -3
- package/components/routes/cases/detail/observables/ObservableTable.test.js +1 -1
- package/components/routes/cases/detail/sidebar/CaseFolder.js +24 -20
- package/components/routes/cases/detail/sidebar/CaseFolder.test.js +1 -1
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +4 -2
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +3 -2
- package/components/routes/cases/detail/sidebar/FolderEntry.js +3 -3
- package/components/routes/cases/detail/sidebar/FolderEntry.test.js +3 -3
- package/components/routes/cases/detail/sidebar/types.d.ts +1 -1
- package/components/routes/cases/detail/sidebar/utils.js +1 -1
- package/components/routes/cases/detail/sidebar/utils.test.js +8 -8
- package/components/routes/cases/detail/utils.d.ts +1 -1
- package/components/routes/cases/detail/utils.js +3 -2
- package/components/routes/cases/hooks/useCase.js +14 -2
- package/components/routes/cases/modals/AddRecordToCaseModal.test.js +1 -1
- package/components/routes/cases/modals/AddToCaseModal.d.ts +1 -1
- package/components/routes/cases/modals/AddToCaseModal.js +2 -2
- package/components/routes/cases/modals/CreateCaseModal.test.js +1 -1
- package/components/routes/cases/modals/ResolveModal.js +8 -5
- package/components/routes/cases/modals/ResolveModal.test.js +5 -5
- package/components/routes/cases/modals/hooks.js +1 -2
- package/components/routes/cases/modals/types.d.ts +1 -1
- package/components/routes/cases/search/CaseAssigneeFilter.js +1 -1
- package/components/routes/cases/search/CaseAssigneeFilter.test.js +8 -3
- package/components/routes/cases/search/CaseStatusFilter.test.js +1 -0
- package/components/routes/cases/utils.d.ts +0 -1
- package/components/routes/cases/utils.js +4 -13
- package/components/routes/dossiers/DossierCard.js +3 -3
- package/components/routes/dossiers/DossierCard.test.js +6 -6
- package/components/routes/dossiers/DossierEditor.js +61 -25
- package/components/routes/dossiers/DossierEditor.test.js +16 -9
- package/components/routes/dossiers/Dossiers.d.ts +1 -1
- package/components/routes/dossiers/Dossiers.js +6 -5
- package/components/routes/dossiers/LeadEditor.d.ts +1 -1
- package/components/routes/dossiers/LeadEditor.js +2 -2
- package/components/routes/dossiers/LeadForm.js +2 -2
- package/components/routes/dossiers/PivotForm.d.ts +1 -1
- package/components/routes/dossiers/PivotForm.js +10 -9
- package/components/routes/events/EventViewer.js +1 -1
- package/components/routes/help/ActionDocumentation.js +2 -2
- package/components/routes/help/ActionIntroductionDocumentation.js +2 -2
- package/components/routes/help/ApiDocumentation.js +3 -4
- package/components/routes/help/AuthDocumentation.js +1 -1
- package/components/routes/help/ClientDocumentation.js +1 -1
- package/components/routes/help/Help.d.ts +1 -1
- package/components/routes/help/Help.js +5 -4
- package/components/routes/help/HitDocumentation.js +3 -3
- package/components/routes/help/HitLabelsDocumentation.js +12 -12
- package/components/routes/help/HitLinksDocumentation.js +2 -2
- package/components/routes/help/HitSchemaDocumentation.js +14 -8
- package/components/routes/help/NotebookDocumentation.js +1 -1
- package/components/routes/help/OverviewDocumentation.js +1 -1
- package/components/routes/help/RetentionDocumentation.js +3 -3
- package/components/routes/help/SearchDocumentation.js +6 -4
- package/components/routes/help/TemplateDocumentation.js +2 -2
- package/components/routes/help/ViewDocumentation.js +1 -1
- package/components/routes/help/markdown/en/views.md.js +1 -1
- package/components/routes/help/markdown/fr/views.md.js +1 -1
- package/components/routes/hits/search/InformationPane.js +10 -20
- package/components/routes/hits/search/QuerySettings.js +1 -1
- package/components/routes/hits/search/QuerySettings.test.js +8 -4
- package/components/routes/hits/search/RecordBrowser.js +12 -9
- package/components/routes/hits/search/RecordQuery.js +13 -10
- package/components/routes/hits/search/SearchPane.js +2 -3
- package/components/routes/hits/search/ViewLink.js +4 -4
- package/components/routes/hits/search/ViewLink.test.js +1 -0
- package/components/routes/hits/search/grid/RecordGrid.js +1 -1
- package/components/routes/hits/search/shared/CustomSort.js +3 -2
- package/components/routes/hits/search/shared/CustomSpan.js +9 -1
- package/components/routes/hits/search/shared/HitFilter.js +8 -3
- package/components/routes/hits/search/shared/HitSort.js +8 -6
- package/components/routes/hits/search/shared/IndexPicker.js +1 -1
- package/components/routes/hits/search/shared/LayoutSettings.js +1 -1
- package/components/routes/hits/search/shared/SearchActionMenu.d.ts +1 -1
- package/components/routes/hits/search/shared/SearchActionMenu.js +1 -1
- package/components/routes/hits/search/shared/SearchSpan.js +1 -1
- package/components/routes/hits/shared/PluginViewing.d.ts +10 -0
- package/components/routes/hits/shared/PluginViewing.js +13 -0
- package/components/routes/hits/view/HitViewer.js +52 -52
- package/components/routes/hits/view/HitViewer.test.js +8 -6
- package/components/routes/home/AddNewCard.d.ts +2 -1
- package/components/routes/home/AddNewCard.js +7 -4
- package/components/routes/home/AnalyticCard.js +3 -3
- package/components/routes/home/EntryWrapper.js +1 -1
- package/components/routes/home/ViewCard.js +11 -7
- package/components/routes/home/ViewCard.test.js +3 -6
- package/components/routes/home/index.js +20 -17
- package/components/routes/overviews/OverviewCard.js +6 -2
- package/components/routes/overviews/OverviewViewer.d.ts +1 -1
- package/components/routes/overviews/OverviewViewer.js +48 -39
- package/components/routes/overviews/Overviews.d.ts +1 -1
- package/components/routes/overviews/Overviews.js +7 -6
- package/components/routes/overviews/markdownExtendedTokenProvider.test.js +1 -0
- package/components/routes/overviews/startingTemplate.js +1 -1
- package/components/routes/settings/ProfileSection.d.ts +1 -1
- package/components/routes/settings/ProfileSection.js +2 -2
- package/components/routes/settings/SecuritySection.d.ts +1 -1
- package/components/routes/settings/SecuritySection.js +2 -2
- package/components/routes/settings/Settings.js +6 -6
- package/components/routes/templates/TemplateCard.js +1 -1
- package/components/routes/templates/TemplateEditor.d.ts +1 -1
- package/components/routes/templates/TemplateEditor.js +3 -3
- package/components/routes/templates/TemplateViewer.d.ts +1 -1
- package/components/routes/templates/TemplateViewer.js +54 -52
- package/components/routes/templates/Templates.d.ts +1 -1
- package/components/routes/templates/Templates.js +10 -9
- package/components/routes/views/ViewComposer.js +38 -30
- package/components/routes/views/Views.d.ts +2 -1
- package/components/routes/views/Views.js +20 -14
- package/i18n.js +4 -0
- package/locales/en/translation.json +10 -0
- package/locales/fr/translation.json +10 -0
- package/models/entities/HowlerUser.d.ts +1 -1
- package/models/entities/generated/Action.d.ts +3 -1
- package/models/entities/generated/ApiType.d.ts +2 -3
- package/models/entities/generated/Dossier.d.ts +2 -0
- package/models/entities/generated/HowlerDossier.d.ts +2 -0
- package/models/entities/generated/Item.d.ts +2 -2
- package/models/entities/generated/Settings.d.ts +1 -1
- package/models/entities/generated/View.d.ts +2 -0
- package/package.json +102 -117
- package/plugins/HowlerPlugin.d.ts +9 -50
- package/plugins/HowlerPlugin.js +7 -113
- package/plugins/clue/Provider.js +1 -1
- package/plugins/clue/components/ClueLeadForm.js +2 -2
- package/plugins/clue/components/CluePivot.js +6 -7
- package/plugins/clue/components/CluePivotForm.js +26 -15
- package/plugins/clue/components/ClueTypography.js +2 -2
- package/plugins/clue/helpers.js +5 -5
- package/plugins/clue/index.d.ts +2 -2
- package/plugins/clue/index.js +1 -1
- package/plugins/clue/setup.js +1 -1
- package/plugins/clue/utils.d.ts +1 -1
- package/plugins/store.d.ts +26 -43
- package/plugins/store.js +2 -15
- package/rest/AxiosClient.js +3 -3
- package/rest/FetchClient.d.ts +1 -1
- package/rest/FetchClient.js +8 -5
- package/rest/FetchClient.test.js +7 -4
- package/rest/index.d.ts +4 -3
- package/setupTests.d.ts +3 -0
- package/tests/MockLocalStorage.js +2 -1
- package/tests/mocks.d.ts +2 -2
- package/tests/mocks.js +3 -3
- package/tests/server-handlers.js +1 -1
- package/utils/Throttler.js +1 -1
- package/utils/actionUtils.d.ts +1 -1
- package/utils/actionUtils.js +10 -6
- package/utils/classificationParser.js +56 -63
- package/utils/constants.d.ts +0 -17
- package/utils/constants.js +1 -18
- package/utils/exampleHit.d.ts +2 -0
- package/utils/exampleHit.js +18 -0
- package/utils/localStorage.d.ts +2 -2
- package/utils/localStorage.js +1 -1
- package/utils/menuUtils.d.ts +3 -89
- package/utils/menuUtils.js +66 -227
- package/utils/menuUtils.test.js +45 -181
- package/utils/sessionStorage.js +1 -1
- package/utils/sessionStorage.test.js +1 -0
- package/utils/stringUtils.d.ts +1 -1
- package/utils/utils.d.ts +30 -6
- package/utils/utils.js +66 -9
- package/utils/utils.test.js +1 -0
- package/utils/xsrf.d.ts +1 -1
- package/utils/xsrf.js +5 -10
- package/api/dossier/hit.d.ts +0 -2
- package/api/dossier/hit.js +0 -7
- package/api/dossier/index.d.ts +0 -9
- package/commons/components/app/AppConfigs.d.ts +0 -137
- package/commons/components/app/AppConstants.d.ts +0 -10
- package/commons/components/app/AppConstants.js +0 -10
- package/commons/components/app/AppContexts.d.ts +0 -105
- package/commons/components/app/AppContexts.js +0 -21
- package/commons/components/app/AppDefaults.d.ts +0 -6
- package/commons/components/app/AppDefaults.js +0 -40
- package/commons/components/app/AppNotificationService.d.ts +0 -6
- package/commons/components/app/AppNotificationService.js +0 -1
- package/commons/components/app/AppProvider.d.ts +0 -15
- package/commons/components/app/AppProvider.js +0 -41
- package/commons/components/app/AppSearchService.d.ts +0 -21
- package/commons/components/app/AppSearchService.js +0 -1
- package/commons/components/app/AppSkeleton.d.ts +0 -5
- package/commons/components/app/AppSkeleton.js +0 -152
- package/commons/components/app/AppUserService.d.ts +0 -17
- package/commons/components/app/AppUserService.js +0 -1
- package/commons/components/app/hooks/index.d.ts +0 -18
- package/commons/components/app/hooks/index.js +0 -18
- package/commons/components/app/hooks/useApp.d.ts +0 -1
- package/commons/components/app/hooks/useApp.js +0 -5
- package/commons/components/app/hooks/useAppBanner.d.ts +0 -1
- package/commons/components/app/hooks/useAppBanner.js +0 -6
- package/commons/components/app/hooks/useAppBar.d.ts +0 -1
- package/commons/components/app/hooks/useAppBar.js +0 -5
- package/commons/components/app/hooks/useAppBarHeight.d.ts +0 -2
- package/commons/components/app/hooks/useAppBarHeight.js +0 -22
- package/commons/components/app/hooks/useAppBarScrollTrigger.d.ts +0 -1
- package/commons/components/app/hooks/useAppBarScrollTrigger.js +0 -7
- package/commons/components/app/hooks/useAppBreadcrumbs.d.ts +0 -1
- package/commons/components/app/hooks/useAppBreadcrumbs.js +0 -5
- package/commons/components/app/hooks/useAppConfigs.d.ts +0 -59
- package/commons/components/app/hooks/useAppConfigs.js +0 -44
- package/commons/components/app/hooks/useAppLanguage.d.ts +0 -6
- package/commons/components/app/hooks/useAppLanguage.js +0 -17
- package/commons/components/app/hooks/useAppLayout.d.ts +0 -1
- package/commons/components/app/hooks/useAppLayout.js +0 -5
- package/commons/components/app/hooks/useAppLeftNav.d.ts +0 -1
- package/commons/components/app/hooks/useAppLeftNav.js +0 -5
- package/commons/components/app/hooks/useAppLogo.d.ts +0 -1
- package/commons/components/app/hooks/useAppLogo.js +0 -8
- package/commons/components/app/hooks/useAppNotification.d.ts +0 -1
- package/commons/components/app/hooks/useAppNotification.js +0 -5
- package/commons/components/app/hooks/useAppQuickSearch.d.ts +0 -1
- package/commons/components/app/hooks/useAppQuickSearch.js +0 -5
- package/commons/components/app/hooks/useAppSearchService.d.ts +0 -2
- package/commons/components/app/hooks/useAppSearchService.js +0 -5
- package/commons/components/app/hooks/useAppSitemap.d.ts +0 -16
- package/commons/components/app/hooks/useAppSitemap.js +0 -70
- package/commons/components/app/hooks/useAppSwitcher.d.ts +0 -1
- package/commons/components/app/hooks/useAppSwitcher.js +0 -5
- package/commons/components/app/hooks/useAppTheme.d.ts +0 -8
- package/commons/components/app/hooks/useAppTheme.js +0 -12
- package/commons/components/app/hooks/useAppUser.d.ts +0 -2
- package/commons/components/app/hooks/useAppUser.js +0 -5
- package/commons/components/app/providers/AppBarProvider.d.ts +0 -10
- package/commons/components/app/providers/AppBarProvider.js +0 -24
- package/commons/components/app/providers/AppBreadcrumbsProvider.d.ts +0 -6
- package/commons/components/app/providers/AppBreadcrumbsProvider.js +0 -43
- package/commons/components/app/providers/AppLayoutProvider.d.ts +0 -6
- package/commons/components/app/providers/AppLayoutProvider.js +0 -73
- package/commons/components/app/providers/AppLeftNavProvider.d.ts +0 -6
- package/commons/components/app/providers/AppLeftNavProvider.js +0 -22
- package/commons/components/app/providers/AppNotificationProvider.d.ts +0 -6
- package/commons/components/app/providers/AppNotificationProvider.js +0 -31
- package/commons/components/app/providers/AppQuickSearchProvider.d.ts +0 -8
- package/commons/components/app/providers/AppQuickSearchProvider.js +0 -19
- package/commons/components/app/providers/AppSearchServiceProvider.d.ts +0 -6
- package/commons/components/app/providers/AppSearchServiceProvider.js +0 -46
- package/commons/components/app/providers/AppSnackbarProvider.d.ts +0 -3
- package/commons/components/app/providers/AppSnackbarProvider.js +0 -15
- package/commons/components/app/providers/AppSwitcherProvider.d.ts +0 -6
- package/commons/components/app/providers/AppSwitcherProvider.js +0 -10
- package/commons/components/app/providers/AppUserProvider.d.ts +0 -8
- package/commons/components/app/providers/AppUserProvider.js +0 -12
- package/commons/components/breadcrumbs/BreadcrumbIcon.d.ts +0 -6
- package/commons/components/breadcrumbs/BreadcrumbIcon.js +0 -9
- package/commons/components/breadcrumbs/BreadcrumbLastItem.d.ts +0 -7
- package/commons/components/breadcrumbs/BreadcrumbLastItem.js +0 -19
- package/commons/components/breadcrumbs/BreadcrumbLinkItem.d.ts +0 -7
- package/commons/components/breadcrumbs/BreadcrumbLinkItem.js +0 -20
- package/commons/components/breadcrumbs/BreadcrumbList.d.ts +0 -11
- package/commons/components/breadcrumbs/BreadcrumbList.js +0 -44
- package/commons/components/breadcrumbs/Breadcrumbs.d.ts +0 -5
- package/commons/components/breadcrumbs/Breadcrumbs.js +0 -31
- package/commons/components/display/AppAvatar.d.ts +0 -8
- package/commons/components/display/AppAvatar.js +0 -18
- package/commons/components/display/AppInfoPanel.d.ts +0 -5
- package/commons/components/display/AppInfoPanel.js +0 -17
- package/commons/components/display/AppListEmpty.d.ts +0 -2
- package/commons/components/display/AppListEmpty.js +0 -5
- package/commons/components/display/AppToc.d.ts +0 -20
- package/commons/components/display/AppToc.js +0 -98
- package/commons/components/display/hooks/useAppColor.d.ts +0 -5
- package/commons/components/display/hooks/useAppColor.js +0 -10
- package/commons/components/leftnav/LeftNavDrawer.d.ts +0 -3
- package/commons/components/leftnav/LeftNavDrawer.js +0 -99
- package/commons/components/leftnav/LeftNavGroup.d.ts +0 -8
- package/commons/components/leftnav/LeftNavGroup.js +0 -55
- package/commons/components/leftnav/LeftNavItem.d.ts +0 -11
- package/commons/components/leftnav/LeftNavItem.js +0 -29
- package/commons/components/notification/FeedModels.d.ts +0 -64
- package/commons/components/notification/FeedModels.js +0 -94
- package/commons/components/notification/Notification.d.ts +0 -10
- package/commons/components/notification/Notification.js +0 -95
- package/commons/components/notification/elements/NotificationCloseButton.d.ts +0 -3
- package/commons/components/notification/elements/NotificationCloseButton.js +0 -6
- package/commons/components/notification/elements/NotificationContainer.d.ts +0 -16
- package/commons/components/notification/elements/NotificationContainer.js +0 -29
- package/commons/components/notification/elements/NotificationEndOfPage.d.ts +0 -5
- package/commons/components/notification/elements/NotificationEndOfPage.js +0 -36
- package/commons/components/notification/elements/NotificationError.d.ts +0 -2
- package/commons/components/notification/elements/NotificationError.js +0 -10
- package/commons/components/notification/elements/NotificationHeader.d.ts +0 -8
- package/commons/components/notification/elements/NotificationHeader.js +0 -18
- package/commons/components/notification/elements/NotificationItems.d.ts +0 -12
- package/commons/components/notification/elements/NotificationItems.js +0 -12
- package/commons/components/notification/elements/NotificationSkeleton.d.ts +0 -2
- package/commons/components/notification/elements/NotificationSkeleton.js +0 -12
- package/commons/components/notification/elements/NotificationTopNavButton.d.ts +0 -9
- package/commons/components/notification/elements/NotificationTopNavButton.js +0 -9
- package/commons/components/notification/elements/item/NotificationItem.d.ts +0 -5
- package/commons/components/notification/elements/item/NotificationItem.js +0 -25
- package/commons/components/notification/elements/item/NotificationItemAuthor.d.ts +0 -5
- package/commons/components/notification/elements/item/NotificationItemAuthor.js +0 -31
- package/commons/components/notification/elements/item/NotificationItemContent.d.ts +0 -3
- package/commons/components/notification/elements/item/NotificationItemContent.js +0 -9
- package/commons/components/notification/elements/item/NotificationItemDate.d.ts +0 -3
- package/commons/components/notification/elements/item/NotificationItemDate.js +0 -10
- package/commons/components/notification/elements/item/NotificationItemImage.d.ts +0 -4
- package/commons/components/notification/elements/item/NotificationItemImage.js +0 -8
- package/commons/components/notification/elements/item/NotificationItemTag.d.ts +0 -4
- package/commons/components/notification/elements/item/NotificationItemTag.js +0 -12
- package/commons/components/notification/elements/item/NotificationItemTitle.d.ts +0 -3
- package/commons/components/notification/elements/item/NotificationItemTitle.js +0 -15
- package/commons/components/notification/index.d.ts +0 -2
- package/commons/components/notification/index.js +0 -2
- package/commons/components/pages/PageCardCentered.d.ts +0 -5
- package/commons/components/pages/PageCardCentered.js +0 -30
- package/commons/components/pages/PageCenter.d.ts +0 -9
- package/commons/components/pages/PageCenter.js +0 -20
- package/commons/components/pages/PageContent.d.ts +0 -8
- package/commons/components/pages/PageContent.js +0 -8
- package/commons/components/pages/PageFullScreen.d.ts +0 -11
- package/commons/components/pages/PageFullScreen.js +0 -40
- package/commons/components/pages/PageFullWidth.d.ts +0 -11
- package/commons/components/pages/PageFullWidth.js +0 -7
- package/commons/components/pages/PageHeader.d.ts +0 -23
- package/commons/components/pages/PageHeader.js +0 -27
- package/commons/components/pages/hooks/usePageProps.d.ts +0 -24
- package/commons/components/pages/hooks/usePageProps.js +0 -19
- package/commons/components/search/AppSearch.d.ts +0 -1
- package/commons/components/search/AppSearch.js +0 -135
- package/commons/components/search/AppSearchInput.d.ts +0 -12
- package/commons/components/search/AppSearchInput.js +0 -35
- package/commons/components/search/AppSearchResult.d.ts +0 -5
- package/commons/components/search/AppSearchResult.js +0 -28
- package/commons/components/topnav/AppBar.d.ts +0 -6
- package/commons/components/topnav/AppBar.js +0 -80
- package/commons/components/topnav/AppName.d.ts +0 -5
- package/commons/components/topnav/AppName.js +0 -31
- package/commons/components/topnav/AppSwitcher.d.ts +0 -3
- package/commons/components/topnav/AppSwitcher.js +0 -44
- package/commons/components/topnav/Notifications.d.ts +0 -2
- package/commons/components/topnav/Notifications.js +0 -8
- package/commons/components/topnav/ThemeSelection.d.ts +0 -3
- package/commons/components/topnav/ThemeSelection.js +0 -33
- package/commons/components/topnav/ThemeSelectionIcon.d.ts +0 -2
- package/commons/components/topnav/ThemeSelectionIcon.js +0 -16
- package/commons/components/topnav/UserProfile.d.ts +0 -6
- package/commons/components/topnav/UserProfile.js +0 -71
- package/commons/components/utils/hooks/useClipboard.d.ts +0 -3
- package/commons/components/utils/hooks/useClipboard.js +0 -29
- package/commons/components/utils/hooks/useEnv.d.ts +0 -1
- package/commons/components/utils/hooks/useEnv.js +0 -11
- package/commons/components/utils/hooks/useFullscreenStatus.d.ts +0 -2
- package/commons/components/utils/hooks/useFullscreenStatus.js +0 -41
- package/commons/components/utils/hooks/useGravatar.d.ts +0 -2
- package/commons/components/utils/hooks/useGravatar.js +0 -9
- package/commons/components/utils/hooks/useLocalStorage.d.ts +0 -12
- package/commons/components/utils/hooks/useLocalStorage.js +0 -52
- package/commons/components/utils/hooks/useLocalStorageItem.d.ts +0 -14
- package/commons/components/utils/hooks/useLocalStorageItem.js +0 -39
- package/commons/components/utils/hooks/useThemeBuilder.d.ts +0 -7
- package/commons/components/utils/hooks/useThemeBuilder.js +0 -48
- package/commons/components/utils/keyboard.d.ts +0 -30
- package/commons/components/utils/keyboard.js +0 -50
- package/components/hooks/useMySitemap.d.ts +0 -3
- package/components/hooks/useMySitemap.js +0 -219
- /package/{commons/components/app/AppConfigs.js → components/elements/MembershipManagement.test.d.ts} +0 -0
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React, { type ReactNode } from 'react';
|
|
2
|
-
export type AppTocItem = {
|
|
3
|
-
id: string;
|
|
4
|
-
subItems?: AppTocItem[];
|
|
5
|
-
is_admin?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type AppTocElementProps = {
|
|
8
|
-
translation: string;
|
|
9
|
-
item: AppTocItem;
|
|
10
|
-
};
|
|
11
|
-
type AppTocProps = {
|
|
12
|
-
children: ReactNode;
|
|
13
|
-
translation: string;
|
|
14
|
-
items: AppTocItem[];
|
|
15
|
-
titleI18nKey?: string;
|
|
16
|
-
topI18nKey?: string;
|
|
17
|
-
};
|
|
18
|
-
declare const AppToc: ({ children, translation, items, titleI18nKey, topI18nKey }: AppTocProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
-
declare const _default: React.MemoExoticComponent<typeof AppToc>;
|
|
20
|
-
export default _default;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { styled, useTheme } from '@mui/material';
|
|
3
|
-
import { useAppBar } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppBar';
|
|
4
|
-
import { useAppLayout } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppLayout';
|
|
5
|
-
import { useAppUser } from '@cccsaurora/howler-ui/commons/components/app/hooks/useAppUser';
|
|
6
|
-
import React, { memo, useEffect } from 'react';
|
|
7
|
-
import { useTranslation } from 'react-i18next';
|
|
8
|
-
import { Link, useLocation } from 'react-router-dom';
|
|
9
|
-
const TocRoot = styled('div')(({ theme }) => ({
|
|
10
|
-
display: 'flex',
|
|
11
|
-
'.tocBar': {
|
|
12
|
-
display: 'none',
|
|
13
|
-
paddingLeft: '16px',
|
|
14
|
-
[theme.breakpoints.up('md')]: {
|
|
15
|
-
display: 'block'
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
'.toc': {
|
|
19
|
-
fontSize: '0.875rem',
|
|
20
|
-
listStyle: 'none',
|
|
21
|
-
paddingInlineStart: 0,
|
|
22
|
-
[theme.breakpoints.only('md')]: {
|
|
23
|
-
width: '124px'
|
|
24
|
-
},
|
|
25
|
-
[theme.breakpoints.up('lg')]: {
|
|
26
|
-
width: '164px'
|
|
27
|
-
},
|
|
28
|
-
'& li': {
|
|
29
|
-
color: theme.palette.text.primary,
|
|
30
|
-
marginLeft: theme.spacing(1),
|
|
31
|
-
marginBottom: theme.spacing(0.5),
|
|
32
|
-
paddingLeft: theme.spacing(1.25),
|
|
33
|
-
paddingRight: theme.spacing(1)
|
|
34
|
-
},
|
|
35
|
-
'& .active': {
|
|
36
|
-
borderLeft: `solid ${theme.palette.primary.main} 2px`,
|
|
37
|
-
paddingLeft: theme.spacing(1),
|
|
38
|
-
color: theme.palette.primary.main
|
|
39
|
-
},
|
|
40
|
-
'& li:hover': {
|
|
41
|
-
borderLeft: `solid ${theme.palette.text.disabled} 1px`,
|
|
42
|
-
paddingLeft: '9px',
|
|
43
|
-
color: theme.palette.text.disabled
|
|
44
|
-
},
|
|
45
|
-
'& li > a': {
|
|
46
|
-
color: 'inherit',
|
|
47
|
-
display: 'block',
|
|
48
|
-
textDecoration: 'none',
|
|
49
|
-
width: '100%'
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
'.ttop': {
|
|
53
|
-
paddingTop: theme.spacing(2.5),
|
|
54
|
-
marginLeft: theme.spacing(2.25),
|
|
55
|
-
color: theme.palette.text.primary,
|
|
56
|
-
'& a': {
|
|
57
|
-
color: 'inherit',
|
|
58
|
-
display: 'block',
|
|
59
|
-
textDecoration: 'none'
|
|
60
|
-
},
|
|
61
|
-
'& :hover': {
|
|
62
|
-
color: theme.palette.text.disabled
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}));
|
|
66
|
-
const AppTocElement = ({ translation, item }) => {
|
|
67
|
-
const location = useLocation();
|
|
68
|
-
const { t } = useTranslation([translation]);
|
|
69
|
-
const currentHash = location.hash && location.hash !== '' ? location.hash.substring(1) : null;
|
|
70
|
-
const active = currentHash && currentHash.startsWith(item.id) ? 'active' : null;
|
|
71
|
-
const { user: currentUser } = useAppUser();
|
|
72
|
-
return ((!item.is_admin || (currentUser.is_admin && item.is_admin)) && (_jsxs(_Fragment, { children: [_jsx("li", { className: active, children: _jsx(Link, { to: `#${item.id}`, target: "_self", children: t(item.id) }) }), active && item.subItems && (_jsx("ul", { className: "toc", style: { fontSize: 'smaller', paddingInlineStart: '8px' }, children: item.subItems.map(itm => (_jsx(AppTocElement, { item: itm, translation: translation }, itm.id))) }))] })));
|
|
73
|
-
};
|
|
74
|
-
const AppToc = ({ children, translation, items, titleI18nKey = 'toc', topI18nKey = 'top' }) => {
|
|
75
|
-
const { autoHide: autoHideAppbar } = useAppBar();
|
|
76
|
-
const { current: currentLayout } = useAppLayout();
|
|
77
|
-
const theme = useTheme();
|
|
78
|
-
const location = useLocation();
|
|
79
|
-
const { t } = useTranslation([translation]);
|
|
80
|
-
useEffect(() => {
|
|
81
|
-
if (location.hash && location.hash !== '') {
|
|
82
|
-
const scrollElement = document.getElementById(location.hash.substring(1));
|
|
83
|
-
if (scrollElement) {
|
|
84
|
-
// If element exists already, use native scrollIntoView.
|
|
85
|
-
scrollElement.scrollIntoView(true);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
// eslint-disable-next-line no-console
|
|
89
|
-
console.log('[WARN] Trying to scroll to unknown ID:', location.hash);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}, [location.hash]);
|
|
93
|
-
return (_jsxs(TocRoot, { id: "top", children: [_jsx("div", { id: "content", children: children }), _jsx("div", { id: "toc", className: "tocBar", children: _jsxs("div", { style: {
|
|
94
|
-
position: 'sticky',
|
|
95
|
-
top: theme.spacing(autoHideAppbar && currentLayout !== 'top' ? 5 : 13)
|
|
96
|
-
}, children: [titleI18nKey && _jsx("div", { style: { fontSize: '1.25rem', marginLeft: '18px' }, children: t(titleI18nKey) }), _jsxs("ul", { className: "toc", children: [items && items.map(item => _jsx(AppTocElement, { item: item, translation: translation }, item.id)), topI18nKey && (_jsx("div", { className: "ttop", children: _jsx(Link, { to: "#top", target: "_self", children: t(topI18nKey) }) }))] })] }) })] }));
|
|
97
|
-
};
|
|
98
|
-
export default memo(AppToc);
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { colors } from '@mui/material';
|
|
2
|
-
type MuiColorType = keyof typeof colors;
|
|
3
|
-
type MuiColorVariant = keyof typeof colors.blue;
|
|
4
|
-
export default function useAppColor(color?: MuiColorType, lightVariant?: MuiColorVariant, darkVariant?: MuiColorVariant): "#0d47a1" | "#1565c0" | "#1976d2" | "#1e88e5" | "#2196f3" | "#2962ff" | "#2979ff" | "#42a5f5" | "#448aff" | "#64b5f6" | "#82b1ff" | "#90caf9" | "#bbdefb" | "#e3f2fd";
|
|
5
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { colors } from '@mui/material';
|
|
2
|
-
import { useAppTheme } from '@cccsaurora/howler-ui/commons/components/app/hooks';
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
export default function useAppColor(color = 'grey', lightVariant = 100, darkVariant = 900) {
|
|
5
|
-
const { isDark } = useAppTheme();
|
|
6
|
-
return useMemo(() => {
|
|
7
|
-
// eslint-disable-next-line import/namespace
|
|
8
|
-
return colors[color][isDark ? darkVariant : lightVariant];
|
|
9
|
-
}, [isDark, color, lightVariant, darkVariant]);
|
|
10
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
3
|
-
import { ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon } from '@mui/icons-material';
|
|
4
|
-
import { Box, ClickAwayListener, Divider, Drawer, List, ListItemButton, ListItemIcon, ListItemText, Toolbar, Tooltip, styled, useMediaQuery, useTheme } from '@mui/material';
|
|
5
|
-
import { useAppConfigs, useAppLayout, useAppLeftNav } from '@cccsaurora/howler-ui/commons/components/app/hooks';
|
|
6
|
-
import LeftNavGroup from '@cccsaurora/howler-ui/commons/components/leftnav/LeftNavGroup';
|
|
7
|
-
import LeftNavItem from '@cccsaurora/howler-ui/commons/components/leftnav/LeftNavItem';
|
|
8
|
-
import { memo, useCallback } from 'react';
|
|
9
|
-
import { useTranslation } from 'react-i18next';
|
|
10
|
-
import AppName from '../topnav/AppName';
|
|
11
|
-
const StyledDrawer = styled(Drawer, { shouldForwardProp: prop => prop !== 'open' && prop !== 'width' })(({ theme, open, width }) => ({
|
|
12
|
-
width,
|
|
13
|
-
flexShrink: 0,
|
|
14
|
-
heigth: '100%',
|
|
15
|
-
whiteSpace: 'nowrap',
|
|
16
|
-
'@media print': {
|
|
17
|
-
display: 'none !important'
|
|
18
|
-
},
|
|
19
|
-
transition: theme.transitions.create('width', {
|
|
20
|
-
easing: theme.transitions.easing.sharp,
|
|
21
|
-
duration: theme.transitions.duration.enteringScreen
|
|
22
|
-
}),
|
|
23
|
-
...(!open && {
|
|
24
|
-
transition: theme.transitions.create('width', {
|
|
25
|
-
easing: theme.transitions.easing.sharp,
|
|
26
|
-
duration: theme.transitions.duration.leavingScreen
|
|
27
|
-
}),
|
|
28
|
-
overflowX: 'hidden',
|
|
29
|
-
width: 0,
|
|
30
|
-
[theme.breakpoints.up('sm')]: {
|
|
31
|
-
width: theme.spacing(7)
|
|
32
|
-
},
|
|
33
|
-
[theme.breakpoints.only('xs')]: {
|
|
34
|
-
border: 'none'
|
|
35
|
-
}
|
|
36
|
-
}),
|
|
37
|
-
'& .MuiDrawer-paper': {
|
|
38
|
-
width,
|
|
39
|
-
transition: theme.transitions.create('width', {
|
|
40
|
-
easing: theme.transitions.easing.sharp,
|
|
41
|
-
duration: theme.transitions.duration.enteringScreen
|
|
42
|
-
}),
|
|
43
|
-
...(!open && {
|
|
44
|
-
transition: theme.transitions.create('width', {
|
|
45
|
-
easing: theme.transitions.easing.sharp,
|
|
46
|
-
duration: theme.transitions.duration.leavingScreen
|
|
47
|
-
}),
|
|
48
|
-
overflowX: 'hidden',
|
|
49
|
-
width: 0,
|
|
50
|
-
[theme.breakpoints.up('sm')]: {
|
|
51
|
-
width: theme.spacing(7)
|
|
52
|
-
},
|
|
53
|
-
[theme.breakpoints.only('xs')]: {
|
|
54
|
-
border: 'none'
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
}
|
|
58
|
-
}));
|
|
59
|
-
const LeftNavDrawer = () => {
|
|
60
|
-
const { t } = useTranslation();
|
|
61
|
-
const theme = useTheme();
|
|
62
|
-
const { preferences } = useAppConfigs();
|
|
63
|
-
const layout = useAppLayout();
|
|
64
|
-
const leftnav = useAppLeftNav();
|
|
65
|
-
const isSmDown = useMediaQuery(theme.breakpoints.down('sm'));
|
|
66
|
-
const isTopLayout = layout.current === 'top';
|
|
67
|
-
const onCloseDrawerIfOpen = useCallback(() => {
|
|
68
|
-
if (isSmDown && leftnav.open) {
|
|
69
|
-
leftnav.setOpen(false);
|
|
70
|
-
}
|
|
71
|
-
}, [isSmDown, leftnav]);
|
|
72
|
-
const header = (_jsxs("div", { children: [_jsx(Toolbar, { sx: {
|
|
73
|
-
[theme.breakpoints.up('xs')]: {
|
|
74
|
-
padding: 0
|
|
75
|
-
}
|
|
76
|
-
}, children: _jsx(AppName, {}) }), !isTopLayout && _jsx(Divider, {})] }));
|
|
77
|
-
const hide = (_jsx(List, { disablePadding: true, children: _jsxs(ListItemButton, { onClick: leftnav.toggle, children: [_jsx(ListItemIcon, { children: leftnav.open ? _jsx(ChevronLeftIcon, {}) : _jsx(ChevronRightIcon, {}) }), _jsx(ListItemText, { primary: t('drawer.collapse') })] }, "chevron") }));
|
|
78
|
-
return (_jsx(ClickAwayListener, { mouseEvent: "onMouseDown", touchEvent: "onTouchStart", onClickAway: onCloseDrawerIfOpen, children: _jsxs(StyledDrawer, { variant: "permanent", style: { height: '100%' }, width: preferences.leftnav.width, open: leftnav.open, children: [leftnav.open ? (header) : (_jsx(Tooltip, { title: preferences.appName, "aria-label": preferences.appName, placement: "right", children: header })), _jsx(List, { disablePadding: true, children: leftnav.elements.map((e, i) => {
|
|
79
|
-
if (e.type === 'item') {
|
|
80
|
-
const item = e.element;
|
|
81
|
-
return _jsx(LeftNavItem, { item: item, onClick: isSmDown && onCloseDrawerIfOpen }, item.id);
|
|
82
|
-
}
|
|
83
|
-
if (e.type === 'group') {
|
|
84
|
-
const item = e.element;
|
|
85
|
-
return _jsx(LeftNavGroup, { group: item, onItemClick: isSmDown && onCloseDrawerIfOpen }, item.id);
|
|
86
|
-
}
|
|
87
|
-
if (e.type === 'divider') {
|
|
88
|
-
return _jsx(Divider, {}, `divider-${i}`);
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}) }), leftnav.elements?.length > 0 && _jsx(Divider, {}), leftnav.open ? (hide) : (_jsx(Tooltip, { title: t('drawer.expand'), "aria-label": t('drawer.expand'), placement: "right", children: hide })), _jsx(Box, { sx: {
|
|
92
|
-
height: '100%',
|
|
93
|
-
width: '100%',
|
|
94
|
-
'&:hover': {
|
|
95
|
-
cursor: 'pointer'
|
|
96
|
-
}
|
|
97
|
-
}, onClick: leftnav.toggle })] }) }));
|
|
98
|
-
};
|
|
99
|
-
export default memo(LeftNavDrawer);
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AppLeftNavGroup } from '@cccsaurora/howler-ui/commons/components/app/AppConfigs';
|
|
2
|
-
interface LeftNavGroupProps {
|
|
3
|
-
group: AppLeftNavGroup;
|
|
4
|
-
onItemClick: () => void;
|
|
5
|
-
}
|
|
6
|
-
declare const LeftNavGroup: ({ group, onItemClick }: LeftNavGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
declare const _default: import("react").MemoExoticComponent<typeof LeftNavGroup>;
|
|
8
|
-
export default _default;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronRight, ExpandLess, ExpandMore } from '@mui/icons-material';
|
|
3
|
-
import { Collapse, List, ListItemButton, ListItemIcon, ListItemText, Popover, Tooltip, useTheme } from '@mui/material';
|
|
4
|
-
import { useAppConfigs, useAppLeftNav, useAppUser } from '@cccsaurora/howler-ui/commons/components/app/hooks';
|
|
5
|
-
import LeftNavItem from '@cccsaurora/howler-ui/commons/components/leftnav/LeftNavItem';
|
|
6
|
-
import { memo, useCallback, useEffect, useState } from 'react';
|
|
7
|
-
import { useTranslation } from 'react-i18next';
|
|
8
|
-
const GroupListItem = memo(({ group, leftNavOpen, collapseOpen, popoverOpen, onClick }) => {
|
|
9
|
-
const { t } = useTranslation();
|
|
10
|
-
const title = group.i18nKey ? t(group.i18nKey) : group.title;
|
|
11
|
-
const theme = useTheme();
|
|
12
|
-
return (_jsx(Tooltip, { title: !leftNavOpen ? title : '', "aria-label": title, placement: "right", children: _jsxs(ListItemButton, { onClick: onClick, selected: popoverOpen, children: [!leftNavOpen && (_jsx(ChevronRight, { sx: {
|
|
13
|
-
position: 'absolute',
|
|
14
|
-
right: 0,
|
|
15
|
-
width: 16,
|
|
16
|
-
height: 16,
|
|
17
|
-
transform: popoverOpen && 'rotate(180deg)',
|
|
18
|
-
transition: theme.transitions.create('transform', {
|
|
19
|
-
easing: theme.transitions.easing.sharp,
|
|
20
|
-
duration: popoverOpen
|
|
21
|
-
? theme.transitions.duration.leavingScreen
|
|
22
|
-
: theme.transitions.duration.enteringScreen
|
|
23
|
-
})
|
|
24
|
-
}, fontSize: "inherit" })), _jsx(ListItemIcon, { children: group.icon }), _jsx(ListItemText, { primary: title }), collapseOpen ? _jsx(ExpandLess, { color: "action" }) : _jsx(ExpandMore, { color: "action" })] }, group.id) }));
|
|
25
|
-
});
|
|
26
|
-
const LeftNavGroup = ({ group, onItemClick }) => {
|
|
27
|
-
const user = useAppUser();
|
|
28
|
-
const leftnav = useAppLeftNav();
|
|
29
|
-
const { preferences } = useAppConfigs();
|
|
30
|
-
const [popoverTarget, setPopoverTarget] = useState();
|
|
31
|
-
const [collapseOpen, setCollapseOpen] = useState(false);
|
|
32
|
-
const groupHasIcons = group.items.some(i => !!i.icon);
|
|
33
|
-
const handleClick = useCallback((event) => {
|
|
34
|
-
if (leftnav.open) {
|
|
35
|
-
setCollapseOpen(!collapseOpen);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
setPopoverTarget(event ? event.currentTarget : undefined);
|
|
39
|
-
}
|
|
40
|
-
}, [leftnav.open, collapseOpen]);
|
|
41
|
-
const onClosePopover = useCallback(() => setPopoverTarget(undefined), []);
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
if (!leftnav.open && collapseOpen) {
|
|
44
|
-
setCollapseOpen(false);
|
|
45
|
-
}
|
|
46
|
-
}, [leftnav.open, collapseOpen]);
|
|
47
|
-
return user.validateProps(group.userPropValidators) ? (_jsxs("div", { children: [_jsx(GroupListItem, { group: group, leftNavOpen: leftnav.open, collapseOpen: collapseOpen, onClick: handleClick, popoverOpen: !!popoverTarget }), _jsx(Collapse, { in: collapseOpen, timeout: "auto", unmountOnExit: true, children: _jsx(List, { component: "div", disablePadding: true, children: group.items.map(i => (_jsx(LeftNavItem, { context: "group", item: i, hideIcon: preferences.leftnav.hideNestedIcons, onClick: onItemClick }, i.id))) }) }), _jsx(Popover, { open: !!popoverTarget, onClose: onClosePopover, onClick: onClosePopover, anchorEl: popoverTarget, anchorOrigin: {
|
|
48
|
-
vertical: 'top',
|
|
49
|
-
horizontal: 'right'
|
|
50
|
-
}, transformOrigin: {
|
|
51
|
-
vertical: 'top',
|
|
52
|
-
horizontal: 'left'
|
|
53
|
-
}, children: _jsx(List, { disablePadding: true, children: group.items.map(i => (_jsx(LeftNavItem, { popover: true, context: "group", item: i, hideIcon: preferences.leftnav.hideNestedIcons || !groupHasIcons, onClick: onItemClick }, i.id))) }) })] })) : null;
|
|
54
|
-
};
|
|
55
|
-
export default memo(LeftNavGroup);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AppLeftNavItem } from '@cccsaurora/howler-ui/commons/components/app/AppConfigs';
|
|
2
|
-
type LeftNavItemProps = {
|
|
3
|
-
item: AppLeftNavItem;
|
|
4
|
-
popover?: boolean;
|
|
5
|
-
context?: 'item' | 'group';
|
|
6
|
-
hideIcon?: boolean;
|
|
7
|
-
onClick: () => void;
|
|
8
|
-
};
|
|
9
|
-
declare const LeftNavItem: ({ item, context, popover, hideIcon, onClick }: LeftNavItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
declare const _default: import("react").MemoExoticComponent<typeof LeftNavItem>;
|
|
11
|
-
export default _default;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, ListItem, ListItemButton, ListItemIcon, ListItemText, Tooltip, useTheme } from '@mui/material';
|
|
3
|
-
import { useAppLeftNav, useAppUser } from '@cccsaurora/howler-ui/commons/components/app/hooks';
|
|
4
|
-
import { memo, useMemo } from 'react';
|
|
5
|
-
import { useTranslation } from 'react-i18next';
|
|
6
|
-
import { Link } from 'react-router-dom';
|
|
7
|
-
const LeftNavItemInner = ({ item, context, popover, hideIcon, label, leftnavOpen }) => {
|
|
8
|
-
const theme = useTheme();
|
|
9
|
-
const nested = item.nested !== undefined ? item.nested : context === 'group';
|
|
10
|
-
const showIcon = useMemo(() => item.icon && !hideIcon, [item, hideIcon]);
|
|
11
|
-
const spacer = useMemo(() => {
|
|
12
|
-
const showSpacer = !popover && leftnavOpen && nested;
|
|
13
|
-
return showSpacer && _jsx(Box, { id: "spacer", sx: { marginLeft: theme.spacing(showIcon ? 2 : 7) } });
|
|
14
|
-
}, [nested, showIcon, theme, leftnavOpen, popover]);
|
|
15
|
-
const itemIcon = useMemo(() => {
|
|
16
|
-
const showNested = !popover && context === 'group' && nested;
|
|
17
|
-
return (showIcon && (_jsx(ListItemIcon, { id: "icon", sx: { minWidth: showNested || popover ? 40 : undefined }, children: item.icon })));
|
|
18
|
-
}, [nested, showIcon, item.icon, context, popover]);
|
|
19
|
-
return (_jsxs(_Fragment, { children: [spacer, itemIcon, _jsx(ListItemText, { primary: label })] }));
|
|
20
|
-
};
|
|
21
|
-
const LeftNavItem = ({ item, context = 'item', popover = false, hideIcon = false, onClick }) => {
|
|
22
|
-
const { t } = useTranslation();
|
|
23
|
-
const user = useAppUser();
|
|
24
|
-
const leftnav = useAppLeftNav();
|
|
25
|
-
const { text, i18nKey, nested, route, render, userPropValidators } = item;
|
|
26
|
-
const label = i18nKey ? t(i18nKey) : text;
|
|
27
|
-
return user.validateProps(userPropValidators) ? (render ? (_jsx(ListItem, { disablePadding: true, children: render(leftnav.open) })) : (_jsx(Tooltip, { title: !leftnav.open && !nested ? label : '', "aria-label": label, placement: "right", children: _jsx(ListItemButton, { component: route ? Link : null, to: route, onClick: onClick ? onClick : null, children: _jsx(LeftNavItemInner, { hideIcon: hideIcon, context: context, popover: popover, item: item, label: label, leftnavOpen: leftnav.open }) }, text) }))) : null;
|
|
28
|
-
};
|
|
29
|
-
export default memo(LeftNavItem);
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
export type SystemMessage = {
|
|
2
|
-
user: string;
|
|
3
|
-
title: string;
|
|
4
|
-
severity: 'success' | 'info' | 'warning' | 'error';
|
|
5
|
-
message: string;
|
|
6
|
-
};
|
|
7
|
-
export type FeedItem = {
|
|
8
|
-
id: string;
|
|
9
|
-
url?: string;
|
|
10
|
-
external_url?: string;
|
|
11
|
-
title?: string;
|
|
12
|
-
content_html?: string;
|
|
13
|
-
content_text?: string;
|
|
14
|
-
content_md?: string;
|
|
15
|
-
summary?: string;
|
|
16
|
-
image?: string;
|
|
17
|
-
banner_image?: string;
|
|
18
|
-
date_published?: Date;
|
|
19
|
-
date_modified?: Date;
|
|
20
|
-
authors?: Array<FeedAuthor>;
|
|
21
|
-
tags?: Array<'new' | 'current' | 'dev' | 'service' | 'blog'>;
|
|
22
|
-
language?: string;
|
|
23
|
-
attachments?: Array<FeedAttachment>;
|
|
24
|
-
_isNew: boolean;
|
|
25
|
-
};
|
|
26
|
-
export type FeedAuthor = {
|
|
27
|
-
name?: string;
|
|
28
|
-
url?: string;
|
|
29
|
-
avatar?: string;
|
|
30
|
-
};
|
|
31
|
-
export type FeedAttachment = {
|
|
32
|
-
url: string;
|
|
33
|
-
mime_type: string;
|
|
34
|
-
title?: string;
|
|
35
|
-
size_in_bytes?: number;
|
|
36
|
-
duration_in_seconds?: number;
|
|
37
|
-
};
|
|
38
|
-
export type Feed = {
|
|
39
|
-
version: string;
|
|
40
|
-
title: string;
|
|
41
|
-
home_page_url?: string;
|
|
42
|
-
feed_url?: string;
|
|
43
|
-
description?: string;
|
|
44
|
-
user_comment?: string;
|
|
45
|
-
next_url?: string;
|
|
46
|
-
icon?: string;
|
|
47
|
-
favicon?: string;
|
|
48
|
-
authors?: Array<FeedAuthor>;
|
|
49
|
-
language?: string;
|
|
50
|
-
expired?: boolean;
|
|
51
|
-
hubs?: Array<{
|
|
52
|
-
type: string;
|
|
53
|
-
url: string;
|
|
54
|
-
}>;
|
|
55
|
-
items: Array<FeedItem>;
|
|
56
|
-
};
|
|
57
|
-
export declare const DEFAULT_FEED: Feed;
|
|
58
|
-
export declare const DEFAULT_FEED_ITEM: FeedItem;
|
|
59
|
-
export declare const DEFAULT_FEED_ATTACHMENT: FeedAttachment;
|
|
60
|
-
export declare const DEFAULT_FEED_AUTHOR: any;
|
|
61
|
-
export declare function parseFeedAttachments(attachments: any): FeedAttachment[];
|
|
62
|
-
export declare function parseFeedAuthors(authors: any): FeedAuthor[];
|
|
63
|
-
export declare function parseFeedItems(items: any): FeedItem[];
|
|
64
|
-
export declare function parseFeed(feed: any): Feed;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_FEED = {
|
|
2
|
-
version: null,
|
|
3
|
-
title: null,
|
|
4
|
-
home_page_url: null,
|
|
5
|
-
feed_url: null,
|
|
6
|
-
description: null,
|
|
7
|
-
user_comment: null,
|
|
8
|
-
next_url: null,
|
|
9
|
-
icon: null,
|
|
10
|
-
favicon: null,
|
|
11
|
-
authors: [],
|
|
12
|
-
language: null,
|
|
13
|
-
expired: false,
|
|
14
|
-
hubs: [],
|
|
15
|
-
items: []
|
|
16
|
-
};
|
|
17
|
-
export const DEFAULT_FEED_ITEM = {
|
|
18
|
-
id: null,
|
|
19
|
-
url: null,
|
|
20
|
-
external_url: null,
|
|
21
|
-
title: null,
|
|
22
|
-
content_html: null,
|
|
23
|
-
content_text: null,
|
|
24
|
-
summary: null,
|
|
25
|
-
image: null,
|
|
26
|
-
banner_image: null,
|
|
27
|
-
date_published: new Date(0),
|
|
28
|
-
date_modified: new Date(0),
|
|
29
|
-
authors: [],
|
|
30
|
-
tags: [],
|
|
31
|
-
language: null,
|
|
32
|
-
attachments: [],
|
|
33
|
-
_isNew: false
|
|
34
|
-
};
|
|
35
|
-
export const DEFAULT_FEED_ATTACHMENT = {
|
|
36
|
-
url: null,
|
|
37
|
-
mime_type: null,
|
|
38
|
-
title: null,
|
|
39
|
-
size_in_bytes: 0,
|
|
40
|
-
duration_in_seconds: 0
|
|
41
|
-
};
|
|
42
|
-
export const DEFAULT_FEED_AUTHOR = {
|
|
43
|
-
name: null,
|
|
44
|
-
url: null,
|
|
45
|
-
avatar: null
|
|
46
|
-
};
|
|
47
|
-
function decodeHTML(html) {
|
|
48
|
-
if (!html || typeof html !== 'string')
|
|
49
|
-
return '';
|
|
50
|
-
var txt = document.createElement('textarea');
|
|
51
|
-
txt.innerHTML = html;
|
|
52
|
-
return txt.value;
|
|
53
|
-
}
|
|
54
|
-
export function parseFeedAttachments(attachments) {
|
|
55
|
-
return attachments && Array.isArray(attachments)
|
|
56
|
-
? attachments
|
|
57
|
-
.map(attachment => attachment && typeof attachment === 'object' ? { ...DEFAULT_FEED_ATTACHMENT, ...attachment } : null)
|
|
58
|
-
.filter(attachment => attachment)
|
|
59
|
-
: [];
|
|
60
|
-
}
|
|
61
|
-
export function parseFeedAuthors(authors) {
|
|
62
|
-
return authors && Array.isArray(authors)
|
|
63
|
-
? authors
|
|
64
|
-
.map(author => (author && typeof author === 'object' ? { ...DEFAULT_FEED_AUTHOR, ...author } : null))
|
|
65
|
-
.filter(author => author)
|
|
66
|
-
: [];
|
|
67
|
-
}
|
|
68
|
-
export function parseFeedItems(items) {
|
|
69
|
-
return items && Array.isArray(items)
|
|
70
|
-
? items
|
|
71
|
-
.map(item => item && typeof item === 'object'
|
|
72
|
-
? {
|
|
73
|
-
...DEFAULT_FEED_ITEM,
|
|
74
|
-
...item,
|
|
75
|
-
date_published: new Date(item.date_published),
|
|
76
|
-
date_modified: new Date(item.date_modified),
|
|
77
|
-
authors: parseFeedAuthors(item?.authors),
|
|
78
|
-
attachments: parseFeedAttachments(item?.attachments),
|
|
79
|
-
content_html: decodeHTML(item?.content_html)
|
|
80
|
-
}
|
|
81
|
-
: null)
|
|
82
|
-
.filter(item => item)
|
|
83
|
-
: [];
|
|
84
|
-
}
|
|
85
|
-
export function parseFeed(feed) {
|
|
86
|
-
return feed && typeof feed === 'object'
|
|
87
|
-
? {
|
|
88
|
-
...DEFAULT_FEED,
|
|
89
|
-
...feed,
|
|
90
|
-
items: parseFeedItems(feed?.items),
|
|
91
|
-
authors: parseFeedAuthors(feed?.authors)
|
|
92
|
-
}
|
|
93
|
-
: null;
|
|
94
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { parseFeed } from '@cccsaurora/howler-ui/commons/components/notification';
|
|
3
|
-
import { NotificationContainer } from '@cccsaurora/howler-ui/commons/components/notification/elements/NotificationContainer';
|
|
4
|
-
import { NotificationTopNavButton } from '@cccsaurora/howler-ui/commons/components/notification/elements/NotificationTopNavButton';
|
|
5
|
-
import { NotificationItem } from '@cccsaurora/howler-ui/commons/components/notification/elements/item/NotificationItem';
|
|
6
|
-
import { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
7
|
-
export const Notification = memo(({ urls = null, notificationItem = NotificationItem, inDrawer = true, openIfNew = false, maxDrawerWidth = '500px' }) => {
|
|
8
|
-
const [drawer, setDrawer] = useState(false);
|
|
9
|
-
const [feeds, setFeeds] = useState(null);
|
|
10
|
-
const [notifications, setNotifications] = useState(null);
|
|
11
|
-
const [status, setStatus] = useState('loading');
|
|
12
|
-
const lastTimeOpen = useRef(new Date(0));
|
|
13
|
-
const storageKey = 'notification.lastTimeOpen';
|
|
14
|
-
const onDrawerOpen = useCallback(() => {
|
|
15
|
-
setDrawer(true);
|
|
16
|
-
lastTimeOpen.current = new Date();
|
|
17
|
-
}, []);
|
|
18
|
-
const onDrawerClose = useCallback(() => {
|
|
19
|
-
setDrawer(false);
|
|
20
|
-
localStorage.setItem(storageKey, JSON.stringify(lastTimeOpen.current.valueOf()));
|
|
21
|
-
setNotifications(v => v.map((n) => ({ ...n, _isNew: n.date_published.valueOf() > lastTimeOpen.current.valueOf() })));
|
|
22
|
-
}, [storageKey]);
|
|
23
|
-
const loadLastTimeOpen = useCallback(() => {
|
|
24
|
-
const data = localStorage.getItem(storageKey);
|
|
25
|
-
if (!data)
|
|
26
|
-
return;
|
|
27
|
-
const value = JSON.parse(data);
|
|
28
|
-
if (typeof value !== 'number')
|
|
29
|
-
return;
|
|
30
|
-
lastTimeOpen.current = new Date(value);
|
|
31
|
-
}, [storageKey]);
|
|
32
|
-
const fetchFeed = useCallback((url = '') => new Promise(async (resolve) => {
|
|
33
|
-
const response = (await fetch(url, { method: 'GET' }).catch(err =>
|
|
34
|
-
// eslint-disable-next-line no-console
|
|
35
|
-
console.error(`Notification Area: error caused by URL "${err}`)));
|
|
36
|
-
if (!response || response.status >= 400) {
|
|
37
|
-
resolve({});
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const textResponse = await response.text();
|
|
41
|
-
try {
|
|
42
|
-
const jsonFeed = JSON.parse(textResponse);
|
|
43
|
-
resolve(parseFeed(jsonFeed));
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
resolve({});
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
49
|
-
}), []);
|
|
50
|
-
const fetchFeeds = useCallback((_urls = []) => new Promise(async (resolve) => {
|
|
51
|
-
if (!_urls || _urls.length === 0) {
|
|
52
|
-
resolve([]);
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
const _feeds = await Promise.all(_urls.map(url => fetchFeed(url)));
|
|
56
|
-
resolve(_feeds.filter(f => f.items));
|
|
57
|
-
}), [fetchFeed]);
|
|
58
|
-
useEffect(() => {
|
|
59
|
-
loadLastTimeOpen();
|
|
60
|
-
if (!urls || !Array.isArray(urls) || urls.length === 0)
|
|
61
|
-
return;
|
|
62
|
-
fetchFeeds(urls).then(_feeds => {
|
|
63
|
-
_feeds = _feeds.map(f => ({ ...f, items: f?.items?.map(i => ({ ...i, external_url: f.feed_url })) }));
|
|
64
|
-
setFeeds(Object.fromEntries(_feeds.map(f => [f?.feed_url, { ...f, items: [] }])));
|
|
65
|
-
const _notifs = _feeds
|
|
66
|
-
.flatMap(f => f?.items)
|
|
67
|
-
.filter(n => n.date_published > new Date(new Date().setFullYear(new Date().getFullYear() - 1)))
|
|
68
|
-
.sort((a, b) => b.date_published.valueOf() - a.date_published.valueOf())
|
|
69
|
-
.map(n => ({ ...n, _isNew: n.date_published.valueOf() > lastTimeOpen.current.valueOf() }));
|
|
70
|
-
setNotifications(_notifs);
|
|
71
|
-
if (openIfNew && _notifs?.some(n => n._isNew)) {
|
|
72
|
-
onDrawerOpen();
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}, [fetchFeeds, loadLastTimeOpen, onDrawerOpen, openIfNew, urls]);
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
if (feeds === undefined) {
|
|
78
|
-
setStatus('error');
|
|
79
|
-
}
|
|
80
|
-
else if (feeds && notifications) {
|
|
81
|
-
if (notifications.length === 0) {
|
|
82
|
-
setStatus('error');
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
setStatus('ready');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
setStatus('loading');
|
|
90
|
-
}
|
|
91
|
-
return () => setStatus('loading');
|
|
92
|
-
}, [feeds, notifications]);
|
|
93
|
-
return (urls &&
|
|
94
|
-
urls.length !== 0 && (_jsxs(_Fragment, { children: [inDrawer && (_jsx(NotificationTopNavButton, { drawer: drawer, newItems: notifications?.filter(n => n._isNew).length, onDrawerOpen: onDrawerOpen, onDrawerClose: onDrawerClose })), _jsx(NotificationContainer, { status: status, notifications: notifications, drawer: drawer, onDrawerOpen: onDrawerOpen, onDrawerClose: onDrawerClose, ItemComponent: notificationItem, inDrawer: inDrawer, maxDrawerWidth: maxDrawerWidth })] })));
|
|
95
|
-
});
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { CloseOutlined } from '@mui/icons-material';
|
|
3
|
-
import { IconButton } from '@mui/material';
|
|
4
|
-
import {} from '@cccsaurora/howler-ui/commons/components/notification/elements/NotificationContainer';
|
|
5
|
-
import { memo } from 'react';
|
|
6
|
-
export const NotificationCloseButton = memo(({ drawer = false, onDrawerOpen = () => null, onDrawerClose = () => null }) => (_jsx("div", { children: _jsx(IconButton, { onClick: () => (drawer ? onDrawerClose() : onDrawerOpen()), size: "large", children: _jsx(CloseOutlined, { fontSize: "medium" }) }) })));
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type ItemComponentProps } from '@cccsaurora/howler-ui/commons/components/app/AppNotificationService';
|
|
2
|
-
import { type FeedItem } from '@cccsaurora/howler-ui/commons/components/notification';
|
|
3
|
-
import { type FC } from 'react';
|
|
4
|
-
export type NotificationProps = {
|
|
5
|
-
notifications: FeedItem[];
|
|
6
|
-
ItemComponent: FC<ItemComponentProps>;
|
|
7
|
-
drawer?: boolean;
|
|
8
|
-
initialPageSize?: number;
|
|
9
|
-
loadingPageDelta?: number;
|
|
10
|
-
onDrawerOpen?: () => void;
|
|
11
|
-
onDrawerClose?: () => void;
|
|
12
|
-
inDrawer?: boolean;
|
|
13
|
-
status: string;
|
|
14
|
-
maxDrawerWidth: string;
|
|
15
|
-
};
|
|
16
|
-
export declare const NotificationContainer: FC<NotificationProps>;
|