@cccsaurora/howler-ui 2.14.0-dev.259 → 2.14.0-dev.264
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.ts +19 -0
- package/api/action/index.ts +36 -0
- package/api/action/operations.ts +11 -0
- package/api/analytic/comments/index.ts +27 -0
- package/api/analytic/comments/react.ts +14 -0
- package/api/analytic/favourite.ts +14 -0
- package/api/analytic/index.ts +27 -0
- package/api/analytic/notebooks/index.ts +15 -0
- package/api/analytic/owner.ts +11 -0
- package/api/analytic/rules.ts +13 -0
- package/api/auth/apikey.ts +20 -0
- package/api/auth/index.ts +9 -0
- package/api/auth/login.ts +35 -0
- package/api/configs/index.ts +10 -0
- package/api/dossier/hit.ts +10 -0
- package/api/dossier/index.ts +26 -0
- package/api/help.ts +71 -0
- package/api/hit/assign.ts +11 -0
- package/api/hit/comments/index.ts +27 -0
- package/api/hit/comments/react.ts +15 -0
- package/api/hit/index.ts +56 -0
- package/api/hit/labels.ts +16 -0
- package/api/hit/overwrite.ts +11 -0
- package/api/hit/transition.ts +12 -0
- package/api/index.ts +301 -0
- package/api/notebook/environments.ts +14 -0
- package/api/notebook/index.ts +20 -0
- package/api/overview/index.ts +22 -0
- package/api/search/action.ts +12 -0
- package/api/search/analytic.ts +12 -0
- package/api/search/count/hit.ts +11 -0
- package/api/search/count/index.ts +18 -0
- package/api/search/dossier.ts +12 -0
- package/api/search/eql/hit.ts +12 -0
- package/api/search/facet/hit.ts +11 -0
- package/api/search/facet/index.ts +19 -0
- package/api/search/fields/hit.ts +12 -0
- package/api/search/fields/index.ts +29 -0
- package/api/search/fields/user.ts +14 -0
- package/api/search/grouped/hit.ts +15 -0
- package/api/search/grouped/index.ts +34 -0
- package/api/search/grouped/user.ts +30 -0
- package/api/search/histogram/hit.ts +11 -0
- package/api/search/histogram/index.ts +20 -0
- package/api/search/hit.ts +17 -0
- package/api/search/index.ts +63 -0
- package/api/search/overview.ts +12 -0
- package/api/search/sigma/hit.ts +12 -0
- package/api/search/template.ts +12 -0
- package/api/search/user.ts +21 -0
- package/api/search/view.ts +12 -0
- package/api/template/index.ts +22 -0
- package/api/user/avatar/index.ts +10 -0
- package/api/user/groups.ts +12 -0
- package/api/user/index.ts +20 -0
- package/api/user/whoami.ts +11 -0
- package/api/view/favourite.ts +14 -0
- package/api/view/index.ts +25 -0
- package/branding/AppBrand.tsx +161 -0
- package/commons/components/app/AppConfigs.ts +179 -0
- package/commons/components/app/AppConstants.ts +11 -0
- package/commons/components/app/AppContexts.ts +142 -0
- package/commons/components/app/AppDefaults.ts +52 -0
- package/commons/components/app/AppNotificationService.ts +7 -0
- package/commons/components/app/AppProvider.tsx +86 -0
- package/commons/components/app/AppSearchService.ts +33 -0
- package/commons/components/app/AppSkeleton.tsx +321 -0
- package/commons/components/app/AppUserService.ts +21 -0
- package/commons/components/app/hooks/index.ts +18 -0
- package/commons/components/app/hooks/useApp.tsx +6 -0
- package/commons/components/app/hooks/useAppBanner.tsx +7 -0
- package/commons/components/app/hooks/useAppBar.tsx +6 -0
- package/commons/components/app/hooks/useAppBarHeight.tsx +27 -0
- package/commons/components/app/hooks/useAppBarScrollTrigger.tsx +8 -0
- package/commons/components/app/hooks/useAppBreadcrumbs.tsx +6 -0
- package/commons/components/app/hooks/useAppConfigs.tsx +54 -0
- package/commons/components/app/hooks/useAppLanguage.tsx +29 -0
- package/commons/components/app/hooks/useAppLayout.tsx +6 -0
- package/commons/components/app/hooks/useAppLeftNav.tsx +6 -0
- package/commons/components/app/hooks/useAppLogo.tsx +9 -0
- package/commons/components/app/hooks/useAppNotification.tsx +6 -0
- package/commons/components/app/hooks/useAppQuickSearch.tsx +6 -0
- package/commons/components/app/hooks/useAppSearchService.tsx +7 -0
- package/commons/components/app/hooks/useAppSitemap.tsx +84 -0
- package/commons/components/app/hooks/useAppSwitcher.tsx +6 -0
- package/commons/components/app/hooks/useAppTheme.tsx +23 -0
- package/commons/components/app/hooks/useAppUser.tsx +7 -0
- package/commons/components/app/providers/AppBarProvider.tsx +48 -0
- package/commons/components/app/providers/AppBreadcrumbsProvider.tsx +53 -0
- package/commons/components/app/providers/AppLayoutProvider.tsx +114 -0
- package/commons/components/app/providers/AppLeftNavProvider.tsx +30 -0
- package/commons/components/app/providers/AppNotificationProvider.tsx +49 -0
- package/commons/components/app/providers/AppQuickSearchProvider.tsx +32 -0
- package/commons/components/app/providers/AppSearchServiceProvider.tsx +65 -0
- package/commons/components/app/providers/AppSnackbarProvider.tsx +16 -0
- package/commons/components/app/providers/AppSwitcherProvider.tsx +16 -0
- package/commons/components/app/providers/AppUserProvider.tsx +22 -0
- package/commons/components/breadcrumbs/BreadcrumbIcon.tsx +21 -0
- package/commons/components/breadcrumbs/BreadcrumbLastItem.tsx +40 -0
- package/commons/components/breadcrumbs/BreadcrumbLinkItem.tsx +43 -0
- package/commons/components/breadcrumbs/BreadcrumbList.tsx +87 -0
- package/commons/components/breadcrumbs/Breadcrumbs.tsx +40 -0
- package/commons/components/display/AppAvatar.tsx +34 -0
- package/commons/components/display/AppInfoPanel.tsx +30 -0
- package/commons/components/display/AppListEmpty.tsx +5 -0
- package/commons/components/display/AppToc.tsx +160 -0
- package/commons/components/display/hooks/useAppColor.tsx +21 -0
- package/commons/components/leftnav/LeftNavDrawer.tsx +172 -0
- package/commons/components/leftnav/LeftNavGroup.tsx +144 -0
- package/commons/components/leftnav/LeftNavItem.tsx +73 -0
- package/commons/components/notification/FeedModels.ts +163 -0
- package/commons/components/notification/Notification.tsx +152 -0
- package/commons/components/notification/elements/NotificationCloseButton.tsx +14 -0
- package/commons/components/notification/elements/NotificationContainer.tsx +87 -0
- package/commons/components/notification/elements/NotificationEndOfPage.tsx +48 -0
- package/commons/components/notification/elements/NotificationError.tsx +24 -0
- package/commons/components/notification/elements/NotificationHeader.tsx +41 -0
- package/commons/components/notification/elements/NotificationItems.tsx +47 -0
- package/commons/components/notification/elements/NotificationSkeleton.tsx +59 -0
- package/commons/components/notification/elements/NotificationTopNavButton.tsx +27 -0
- package/commons/components/notification/elements/item/NotificationItem.tsx +44 -0
- package/commons/components/notification/elements/item/NotificationItemAuthor.tsx +72 -0
- package/commons/components/notification/elements/item/NotificationItemContent.tsx +29 -0
- package/commons/components/notification/elements/item/NotificationItemDate.tsx +14 -0
- package/commons/components/notification/elements/item/NotificationItemImage.tsx +19 -0
- package/commons/components/notification/elements/item/NotificationItemTag.tsx +18 -0
- package/commons/components/notification/elements/item/NotificationItemTitle.tsx +38 -0
- package/commons/components/notification/index.tsx +2 -0
- package/commons/components/pages/PageCardCentered.tsx +32 -0
- package/commons/components/pages/PageCenter.tsx +46 -0
- package/commons/components/pages/PageContent.tsx +13 -0
- package/commons/components/pages/PageFullScreen.tsx +74 -0
- package/commons/components/pages/PageFullWidth.tsx +30 -0
- package/commons/components/pages/PageHeader.tsx +117 -0
- package/commons/components/pages/hooks/usePageProps.tsx +41 -0
- package/commons/components/search/AppSearch.tsx +256 -0
- package/commons/components/search/AppSearchInput.tsx +104 -0
- package/commons/components/search/AppSearchResult.tsx +66 -0
- package/commons/components/topnav/AppBar.tsx +137 -0
- package/commons/components/topnav/AppName.tsx +53 -0
- package/commons/components/topnav/AppSwitcher.tsx +116 -0
- package/commons/components/topnav/Notifications.tsx +16 -0
- package/commons/components/topnav/ThemeSelection.tsx +143 -0
- package/commons/components/topnav/ThemeSelectionIcon.tsx +39 -0
- package/commons/components/topnav/UserProfile.tsx +196 -0
- package/commons/components/utils/hooks/useClipboard.tsx +31 -0
- package/commons/components/utils/hooks/useEnv.tsx +13 -0
- package/commons/components/utils/hooks/useFullscreenStatus.tsx +47 -0
- package/commons/components/utils/hooks/useGravatar.tsx +13 -0
- package/commons/components/utils/hooks/useLocalStorage.ts +75 -0
- package/commons/components/utils/hooks/useLocalStorageItem.tsx +45 -0
- package/commons/components/utils/hooks/useThemeBuilder.tsx +55 -0
- package/commons/components/utils/keyboard.ts +61 -0
- package/components/app/App.tsx +434 -0
- package/components/app/AppContainer.tsx +19 -0
- package/components/app/drawers/ApiKeyDrawer.tsx +173 -0
- package/components/app/drawers/AppDrawerType.ts +7 -0
- package/components/app/drawers/AssignUserDrawer.tsx +126 -0
- package/components/app/drawers/ViewGroupsDrawer.tsx +24 -0
- package/components/app/hooks/useMatchers.test.ts +328 -0
- package/components/app/hooks/useMatchers.tsx +107 -0
- package/components/app/hooks/useTitle.tsx +77 -0
- package/components/app/providers/AnalyticProvider.tsx +87 -0
- package/components/app/providers/ApiConfigProvider.tsx +31 -0
- package/components/app/providers/AppDrawerProvider.tsx +54 -0
- package/components/app/providers/AvatarProvider.tsx +47 -0
- package/components/app/providers/CustomPluginProvider.tsx +19 -0
- package/components/app/providers/FavouritesProvider.tsx +157 -0
- package/components/app/providers/FieldProvider.tsx +34 -0
- package/components/app/providers/HitProvider.tsx +164 -0
- package/components/app/providers/HitSearchProvider.tsx +248 -0
- package/components/app/providers/LocalStorageProvider.tsx +67 -0
- package/components/app/providers/ModalProvider.tsx +57 -0
- package/components/app/providers/OverviewProvider.tsx +90 -0
- package/components/app/providers/ParameterProvider.tsx +270 -0
- package/components/app/providers/SocketProvider.tsx +329 -0
- package/components/app/providers/UserListProvider.tsx +56 -0
- package/components/app/providers/ViewProvider.test.tsx +244 -0
- package/components/app/providers/ViewProvider.tsx +207 -0
- package/components/elements/Comment.tsx +315 -0
- package/components/elements/EditRow.tsx +268 -0
- package/components/elements/PluginChip.tsx +32 -0
- package/components/elements/PluginTypography.tsx +31 -0
- package/components/elements/ThemedEditor.tsx +130 -0
- package/components/elements/UserList.tsx +79 -0
- package/components/elements/addons/buttons/CustomButton.tsx +93 -0
- package/components/elements/addons/buttons/CustomIconButton.tsx +122 -0
- package/components/elements/addons/buttons/index.ts +7 -0
- package/components/elements/addons/layout/FlexOne.tsx +6 -0
- package/components/elements/addons/layout/FlexPort.tsx +39 -0
- package/components/elements/addons/layout/FlexVertical.tsx +28 -0
- package/components/elements/addons/layout/vsbox/VSBox.tsx +52 -0
- package/components/elements/addons/layout/vsbox/VSBoxContent.tsx +13 -0
- package/components/elements/addons/layout/vsbox/VSBoxElement.tsx +60 -0
- package/components/elements/addons/layout/vsbox/VSBoxHeader.tsx +41 -0
- package/components/elements/addons/lists/TuiList.tsx +31 -0
- package/components/elements/addons/lists/TuiListBase.tsx +98 -0
- package/components/elements/addons/lists/TuiListElement.tsx +51 -0
- package/components/elements/addons/lists/TuiListMenu.tsx +61 -0
- package/components/elements/addons/lists/TuiListProvider.tsx +162 -0
- package/components/elements/addons/lists/hooks/useTuiListKeyboard.tsx +60 -0
- package/components/elements/addons/lists/index.tsx +25 -0
- package/components/elements/addons/lists/table/TuiTable.tsx +151 -0
- package/components/elements/addons/lists/table/TuiTableBody.tsx +77 -0
- package/components/elements/addons/lists/table/TuiTableHead.tsx +29 -0
- package/components/elements/addons/lists/table/TuiTableHeader.tsx +15 -0
- package/components/elements/addons/lists/table/TuiTableLayout.ts +53 -0
- package/components/elements/addons/lists/table/index.tsx +24 -0
- package/components/elements/addons/search/SearchPagination.tsx +26 -0
- package/components/elements/addons/search/SearchTotal.tsx +35 -0
- package/components/elements/addons/search/phrase/Phrase.tsx +175 -0
- package/components/elements/addons/search/phrase/PhraseConsumer.ts +35 -0
- package/components/elements/addons/search/phrase/PhraseLexer.ts +167 -0
- package/components/elements/addons/search/phrase/index.ts +86 -0
- package/components/elements/addons/search/phrase/word/WordLexer.ts +10 -0
- package/components/elements/addons/search/phrase/word/WordSuggester.ts +9 -0
- package/components/elements/addons/search/phrase/word/consumers/WhitespaceConsumer.ts +21 -0
- package/components/elements/addons/search/phrase/word/consumers/WordConsumer.ts +21 -0
- package/components/elements/display/ActionButton.tsx +40 -0
- package/components/elements/display/Classification.tsx +29 -0
- package/components/elements/display/DocumentationButton.tsx +46 -0
- package/components/elements/display/DynamicTabs.tsx +52 -0
- package/components/elements/display/HandlebarsMarkdown.tsx +105 -0
- package/components/elements/display/HowlerAvatar.tsx +66 -0
- package/components/elements/display/HowlerAvatarHeader.tsx +37 -0
- package/components/elements/display/HowlerCard.tsx +10 -0
- package/components/elements/display/Image.tsx +43 -0
- package/components/elements/display/ItemManager.tsx +146 -0
- package/components/elements/display/Markdown.tsx +200 -0
- package/components/elements/display/Modal.tsx +44 -0
- package/components/elements/display/Notebook.tsx +7 -0
- package/components/elements/display/QueryResultText.tsx +25 -0
- package/components/elements/display/TextDivider.tsx +48 -0
- package/components/elements/display/TypingIndicator.tsx +41 -0
- package/components/elements/display/UserPageWrapper.tsx +20 -0
- package/components/elements/display/features/DevelopmentBanner.tsx +24 -0
- package/components/elements/display/features/DevelopmentIcon.tsx +24 -0
- package/components/elements/display/handlebars/helpers.tsx +276 -0
- package/components/elements/display/icons/BundleButton.tsx +77 -0
- package/components/elements/display/icons/Iconified.tsx +16 -0
- package/components/elements/display/icons/SocketBadge.tsx +82 -0
- package/components/elements/display/icons/svg/howler-icon-darkmode.svg +1 -0
- package/components/elements/display/icons/svg/howler-icon-lightmode.svg +1 -0
- package/components/elements/display/icons/svg/howler-logo-full.svg +1 -0
- package/components/elements/display/icons/svg/howler-logo.svg +1 -0
- package/components/elements/display/json/JSONViewer.tsx +98 -0
- package/components/elements/display/markdownPlugins/tabs.ts +81 -0
- package/components/elements/display/modals/ConfirmDeleteModal.tsx +32 -0
- package/components/elements/display/modals/ConfirmNotebookModal.tsx +32 -0
- package/components/elements/display/modals/CreateActionModal.tsx +63 -0
- package/components/elements/display/modals/LoginErrorModal.tsx +31 -0
- package/components/elements/display/modals/RationaleModal.tsx +59 -0
- package/components/elements/hit/HitActions.tsx +298 -0
- package/components/elements/hit/HitBanner.tsx +367 -0
- package/components/elements/hit/HitBannerTooltip.tsx +41 -0
- package/components/elements/hit/HitCard.tsx +42 -0
- package/components/elements/hit/HitComments.tsx +372 -0
- package/components/elements/hit/HitDetails.tsx +324 -0
- package/components/elements/hit/HitLabels.tsx +265 -0
- package/components/elements/hit/HitLayout.ts +5 -0
- package/components/elements/hit/HitNotebooks.tsx +264 -0
- package/components/elements/hit/HitOutline.tsx +56 -0
- package/components/elements/hit/HitOverview.tsx +53 -0
- package/components/elements/hit/HitQuickSearch.tsx +111 -0
- package/components/elements/hit/HitRelated.tsx +18 -0
- package/components/elements/hit/HitShortcuts.ts +5 -0
- package/components/elements/hit/HitSummary.tsx +301 -0
- package/components/elements/hit/HitWorklog.tsx +201 -0
- package/components/elements/hit/actions/ButtonActions.tsx +269 -0
- package/components/elements/hit/actions/DropdownActions.tsx +157 -0
- package/components/elements/hit/actions/SharedComponents.tsx +40 -0
- package/components/elements/hit/aggregate/HitGraph.tsx +351 -0
- package/components/elements/hit/elements/Assigned.tsx +71 -0
- package/components/elements/hit/elements/EscalationChip.tsx +26 -0
- package/components/elements/hit/elements/HitTimestamp.tsx +81 -0
- package/components/elements/hit/outlines/DefaultOutline.tsx +107 -0
- package/components/elements/hit/outlines/al/AssemblyLineRules.tsx +130 -0
- package/components/elements/hit/related/PivotLink.tsx +67 -0
- package/components/elements/hit/related/RelatedIcon.tsx +51 -0
- package/components/elements/hit/related/RelatedLink.tsx +43 -0
- package/components/elements/view/ViewTitle.tsx +61 -0
- package/components/hooks/useHitActions.tsx +276 -0
- package/components/hooks/useHitSelection.tsx +102 -0
- package/components/hooks/useMyApi.tsx +64 -0
- package/components/hooks/useMyChart.tsx +164 -0
- package/components/hooks/useMyLocalStorage.ts +20 -0
- package/components/hooks/useMyPreferences.tsx +309 -0
- package/components/hooks/useMySearch.tsx +77 -0
- package/components/hooks/useMySitemap.tsx +248 -0
- package/components/hooks/useMySnackbar.tsx +67 -0
- package/components/hooks/useMyTheme.tsx +34 -0
- package/components/hooks/useMyUser.tsx +39 -0
- package/components/hooks/useMyUserFunctions.tsx +166 -0
- package/components/hooks/useMyUserList.tsx +15 -0
- package/components/hooks/useMyUtils.tsx +16 -0
- package/components/hooks/useScrollRestoration.tsx +37 -0
- package/components/logins/Login.tsx +62 -0
- package/components/logins/auth/OAuthLogin.tsx +49 -0
- package/components/logins/auth/UserPassLogin.tsx +57 -0
- package/components/logins/hooks/useLogin.tsx +101 -0
- package/components/routes/404.tsx +24 -0
- package/components/routes/ErrorBoundary.tsx +44 -0
- package/components/routes/ErrorOccured.tsx +28 -0
- package/components/routes/Logout.tsx +56 -0
- package/components/routes/action/edit/ActionEditor.tsx +358 -0
- package/components/routes/action/shared/ActionReportDisplay.tsx +84 -0
- package/components/routes/action/shared/OperationEntry.tsx +121 -0
- package/components/routes/action/shared/OperationStep.tsx +219 -0
- package/components/routes/action/useMyActionFunctions.tsx +225 -0
- package/components/routes/action/view/ActionDetails.tsx +205 -0
- package/components/routes/action/view/ActionSearch.tsx +249 -0
- package/components/routes/action/view/Integrations.tsx +49 -0
- package/components/routes/admin/users/UserEditor.tsx +55 -0
- package/components/routes/admin/users/UserSearch.tsx +228 -0
- package/components/routes/advanced/QueryBuilder.tsx +584 -0
- package/components/routes/advanced/QueryEditor.tsx +148 -0
- package/components/routes/advanced/RuleModal.tsx +217 -0
- package/components/routes/advanced/eqlCompletionProvider.ts +94 -0
- package/components/routes/advanced/eqlTokenProvider.ts +110 -0
- package/components/routes/advanced/historyCompletionProvider.ts +61 -0
- package/components/routes/advanced/luceneCompletionProvider.ts +111 -0
- package/components/routes/advanced/luceneTokenProvider.ts +131 -0
- package/components/routes/advanced/yamlCompletionProvider.ts +58 -0
- package/components/routes/analytics/AnalyticComments.tsx +218 -0
- package/components/routes/analytics/AnalyticDetails.tsx +343 -0
- package/components/routes/analytics/AnalyticHitComments.tsx +99 -0
- package/components/routes/analytics/AnalyticNotebooks.tsx +185 -0
- package/components/routes/analytics/AnalyticOverview.tsx +165 -0
- package/components/routes/analytics/AnalyticOverviews.tsx +75 -0
- package/components/routes/analytics/AnalyticSearch.tsx +301 -0
- package/components/routes/analytics/AnalyticTemplates.tsx +77 -0
- package/components/routes/analytics/RuleView.tsx +80 -0
- package/components/routes/analytics/TriageSettings.tsx +146 -0
- package/components/routes/analytics/widgets/Assessment.tsx +71 -0
- package/components/routes/analytics/widgets/Created.tsx +61 -0
- package/components/routes/analytics/widgets/Detection.tsx +11 -0
- package/components/routes/analytics/widgets/Escalation.tsx +65 -0
- package/components/routes/analytics/widgets/Stacked.tsx +109 -0
- package/components/routes/analytics/widgets/Status.tsx +21 -0
- package/components/routes/dossiers/DossierCard.tsx +48 -0
- package/components/routes/dossiers/DossierEditor.tsx +247 -0
- package/components/routes/dossiers/Dossiers.tsx +173 -0
- package/components/routes/dossiers/LeadEditor.tsx +122 -0
- package/components/routes/dossiers/LeadForm.tsx +106 -0
- package/components/routes/dossiers/PivotForm.tsx +311 -0
- package/components/routes/help/ActionDocumentation.tsx +77 -0
- package/components/routes/help/ActionIntroductionDocumentation.tsx +128 -0
- package/components/routes/help/ApiDocumentation.tsx +217 -0
- package/components/routes/help/AuthDocumentation.tsx +26 -0
- package/components/routes/help/BundleDocumentation.tsx +17 -0
- package/components/routes/help/ClientDocumentation.tsx +27 -0
- package/components/routes/help/Help.tsx +96 -0
- package/components/routes/help/HitBannerDocumentation.tsx +71 -0
- package/components/routes/help/HitDocumentation.tsx +77 -0
- package/components/routes/help/HitLabelsDocumentation.tsx +57 -0
- package/components/routes/help/HitLinksDocumentation.tsx +23 -0
- package/components/routes/help/HitSchemaDocumentation.tsx +253 -0
- package/components/routes/help/NotebookDocumentation.tsx +28 -0
- package/components/routes/help/OverviewDocumentation.tsx +21 -0
- package/components/routes/help/RetentionDocumentation.tsx +55 -0
- package/components/routes/help/SearchDocumentation.tsx +700 -0
- package/components/routes/help/TemplateDocumentation.tsx +73 -0
- package/components/routes/help/ViewDocumentation.tsx +32 -0
- package/components/routes/help/components/HelpTabs.tsx +47 -0
- package/components/routes/help/markdown/en/actionIntroduction.md +33 -0
- package/components/routes/help/markdown/en/authentication.md +261 -0
- package/components/routes/help/markdown/en/bundles.md +70 -0
- package/components/routes/help/markdown/en/client.md +213 -0
- package/components/routes/help/markdown/en/links.md +37 -0
- package/components/routes/help/markdown/en/notebook.md +157 -0
- package/components/routes/help/markdown/en/retention.md +15 -0
- package/components/routes/help/markdown/en/schema.md +20 -0
- package/components/routes/help/markdown/en/templates.md +23 -0
- package/components/routes/help/markdown/en/views.md +11 -0
- package/components/routes/help/markdown/fr/actionIntroduction.md +33 -0
- package/components/routes/help/markdown/fr/authentication.md +259 -0
- package/components/routes/help/markdown/fr/bundles.md +70 -0
- package/components/routes/help/markdown/fr/client.md +209 -0
- package/components/routes/help/markdown/fr/links.md +37 -0
- package/components/routes/help/markdown/fr/notebook.md +157 -0
- package/components/routes/help/markdown/fr/retention.md +15 -0
- package/components/routes/help/markdown/fr/schema.md +20 -0
- package/components/routes/help/markdown/fr/templates.md +23 -0
- package/components/routes/help/markdown/fr/views.md +11 -0
- package/components/routes/hits/search/BundleParentMenu.tsx +73 -0
- package/components/routes/hits/search/BundleScroller.tsx +8 -0
- package/components/routes/hits/search/CustomSort.tsx +94 -0
- package/components/routes/hits/search/HitBrowser.tsx +318 -0
- package/components/routes/hits/search/HitContextMenu.tsx +260 -0
- package/components/routes/hits/search/HitQuery.tsx +268 -0
- package/components/routes/hits/search/InformationPane.tsx +430 -0
- package/components/routes/hits/search/SearchPane.tsx +291 -0
- package/components/routes/hits/search/ViewLink.tsx +96 -0
- package/components/routes/hits/search/grid/AddColumnModal.tsx +98 -0
- package/components/routes/hits/search/grid/ColumnHeader.tsx +70 -0
- package/components/routes/hits/search/grid/EnhancedCell.tsx +50 -0
- package/components/routes/hits/search/grid/HitGrid.tsx +342 -0
- package/components/routes/hits/search/grid/HitRow.tsx +121 -0
- package/components/routes/hits/search/shared/CustomSpan.tsx +54 -0
- package/components/routes/hits/search/shared/HitFilter.tsx +110 -0
- package/components/routes/hits/search/shared/HitSort.tsx +111 -0
- package/components/routes/hits/search/shared/QuerySettings.tsx +40 -0
- package/components/routes/hits/search/shared/SearchSpan.tsx +68 -0
- package/components/routes/hits/view/HitViewer.tsx +372 -0
- package/components/routes/hits/view/LeadRenderer.tsx +42 -0
- package/components/routes/home/AddNewCard.tsx +295 -0
- package/components/routes/home/AnalyticCard.tsx +68 -0
- package/components/routes/home/EntryWrapper.tsx +54 -0
- package/components/routes/home/ViewCard.tsx +96 -0
- package/components/routes/home/index.tsx +278 -0
- package/components/routes/overviews/OverviewCard.tsx +51 -0
- package/components/routes/overviews/OverviewEditor.tsx +102 -0
- package/components/routes/overviews/OverviewViewer.tsx +387 -0
- package/components/routes/overviews/Overviews.tsx +179 -0
- package/components/routes/overviews/markdownExtendedTokenProvider.ts +296 -0
- package/components/routes/overviews/startingTemplate.ts +40 -0
- package/components/routes/overviews/template/en.md +167 -0
- package/components/routes/overviews/template/fr.md +167 -0
- package/components/routes/settings/AdminSection.tsx +18 -0
- package/components/routes/settings/LocalSection.tsx +168 -0
- package/components/routes/settings/ProfileSection.tsx +138 -0
- package/components/routes/settings/SecuritySection.tsx +95 -0
- package/components/routes/settings/Settings.tsx +51 -0
- package/components/routes/settings/SettingsSection.tsx +28 -0
- package/components/routes/templates/TemplateCard.tsx +38 -0
- package/components/routes/templates/TemplateDnD.tsx +51 -0
- package/components/routes/templates/TemplateEditor.tsx +121 -0
- package/components/routes/templates/TemplateViewer.tsx +285 -0
- package/components/routes/templates/Templates.tsx +187 -0
- package/components/routes/views/ViewComposer.tsx +317 -0
- package/components/routes/views/Views.tsx +379 -0
- package/globals.d.ts +1 -0
- package/i18n.ts +50 -0
- package/index.tsx +19 -0
- package/locales/en/help/main.json +13 -0
- package/locales/en/help/search.json +186 -0
- package/locales/en/translation.json +799 -0
- package/locales/fr/help/main.json +13 -0
- package/locales/fr/help/search.json +186 -0
- package/locales/fr/translation.json +797 -0
- package/models/ActionTypes.d.ts +50 -0
- package/models/WithMetadata.d.ts +12 -0
- package/models/entities/HowlerUser.d.ts +18 -0
- package/models/entities/generated/Account.d.ts +7 -0
- package/models/entities/generated/Action.d.ts +13 -0
- package/models/entities/generated/Agent.d.ts +9 -0
- package/models/entities/generated/Analytic.d.ts +21 -0
- package/models/entities/generated/Answer.d.ts +10 -0
- package/models/entities/generated/Antivirus.d.ts +9 -0
- package/models/entities/generated/ApiType.d.ts +238 -0
- package/models/entities/generated/Assemblyline.d.ts +22 -0
- package/models/entities/generated/Attachment.d.ts +8 -0
- package/models/entities/generated/Attribution.d.ts +9 -0
- package/models/entities/generated/AutonomousSystems.d.ts +7 -0
- package/models/entities/generated/Aws.d.ts +10 -0
- package/models/entities/generated/Azure.d.ts +10 -0
- package/models/entities/generated/Bcc.d.ts +6 -0
- package/models/entities/generated/Behaviour.d.ts +9 -0
- package/models/entities/generated/Body.d.ts +7 -0
- package/models/entities/generated/Cbs.d.ts +8 -0
- package/models/entities/generated/Cc.d.ts +6 -0
- package/models/entities/generated/Client.d.ts +7 -0
- package/models/entities/generated/Cloud.d.ts +20 -0
- package/models/entities/generated/CloudAccount.d.ts +7 -0
- package/models/entities/generated/CodeSignature.d.ts +14 -0
- package/models/entities/generated/Comment.d.ts +12 -0
- package/models/entities/generated/Container.d.ts +12 -0
- package/models/entities/generated/Created.d.ts +7 -0
- package/models/entities/generated/Dashboard.d.ts +8 -0
- package/models/entities/generated/Data.d.ts +8 -0
- package/models/entities/generated/Destination.d.ts +23 -0
- package/models/entities/generated/Device.d.ts +6 -0
- package/models/entities/generated/Dns.d.ts +16 -0
- package/models/entities/generated/Domain.d.ts +9 -0
- package/models/entities/generated/Dossier.d.ts +15 -0
- package/models/entities/generated/Ecs.d.ts +6 -0
- package/models/entities/generated/Egress.d.ts +6 -0
- package/models/entities/generated/Elf.d.ts +20 -0
- package/models/entities/generated/Email.d.ts +30 -0
- package/models/entities/generated/Enrichment.d.ts +10 -0
- package/models/entities/generated/EntryMeta.d.ts +6 -0
- package/models/entities/generated/Error.d.ts +7 -0
- package/models/entities/generated/Event.d.ts +31 -0
- package/models/entities/generated/Faas.d.ts +13 -0
- package/models/entities/generated/Feed.d.ts +9 -0
- package/models/entities/generated/File.d.ts +12 -0
- package/models/entities/generated/FileHash.d.ts +12 -0
- package/models/entities/generated/From.d.ts +6 -0
- package/models/entities/generated/Gcp.d.ts +10 -0
- package/models/entities/generated/Geo.d.ts +18 -0
- package/models/entities/generated/Group.d.ts +8 -0
- package/models/entities/generated/Hash.d.ts +6 -0
- package/models/entities/generated/Header.d.ts +13 -0
- package/models/entities/generated/Heuristic.d.ts +9 -0
- package/models/entities/generated/Hit.d.ts +102 -0
- package/models/entities/generated/HitFile.d.ts +36 -0
- package/models/entities/generated/HitOrganization.d.ts +7 -0
- package/models/entities/generated/Host.d.ts +11 -0
- package/models/entities/generated/Howler.d.ts +48 -0
- package/models/entities/generated/HowlerComment.d.ts +11 -0
- package/models/entities/generated/HowlerDossier.d.ts +12 -0
- package/models/entities/generated/Http.d.ts +11 -0
- package/models/entities/generated/Image.d.ts +10 -0
- package/models/entities/generated/Incident.d.ts +8 -0
- package/models/entities/generated/Indicator.d.ts +21 -0
- package/models/entities/generated/IndicatorEmail.d.ts +6 -0
- package/models/entities/generated/IndicatorFile.d.ts +36 -0
- package/models/entities/generated/Ingress.d.ts +9 -0
- package/models/entities/generated/Instance.d.ts +7 -0
- package/models/entities/generated/Interface.d.ts +7 -0
- package/models/entities/generated/Label.d.ts +7 -0
- package/models/entities/generated/Labels.d.ts +13 -0
- package/models/entities/generated/Lead.d.ts +12 -0
- package/models/entities/generated/Link.d.ts +8 -0
- package/models/entities/generated/Location.d.ts +7 -0
- package/models/entities/generated/Log.d.ts +13 -0
- package/models/entities/generated/Machine.d.ts +6 -0
- package/models/entities/generated/Mapping.d.ts +8 -0
- package/models/entities/generated/Matched.d.ts +6 -0
- package/models/entities/generated/Mitre.d.ts +10 -0
- package/models/entities/generated/Modified.d.ts +7 -0
- package/models/entities/generated/Nat.d.ts +7 -0
- package/models/entities/generated/Network.d.ts +8 -0
- package/models/entities/generated/Notebook.d.ts +10 -0
- package/models/entities/generated/Observer.d.ts +21 -0
- package/models/entities/generated/Operation.d.ts +7 -0
- package/models/entities/generated/Organization.d.ts +7 -0
- package/models/entities/generated/Original.d.ts +19 -0
- package/models/entities/generated/Os.d.ts +12 -0
- package/models/entities/generated/Outline.d.ts +9 -0
- package/models/entities/generated/Overview.d.ts +10 -0
- package/models/entities/generated/Parent.d.ts +19 -0
- package/models/entities/generated/ParentHash.d.ts +12 -0
- package/models/entities/generated/ParentParent.d.ts +32 -0
- package/models/entities/generated/ParentUser.d.ts +9 -0
- package/models/entities/generated/Pe.d.ts +13 -0
- package/models/entities/generated/Pivot.d.ts +13 -0
- package/models/entities/generated/Process.d.ts +34 -0
- package/models/entities/generated/ProcessHash.d.ts +12 -0
- package/models/entities/generated/ProcessParent.d.ts +34 -0
- package/models/entities/generated/ProcessUser.d.ts +9 -0
- package/models/entities/generated/Project.d.ts +7 -0
- package/models/entities/generated/Question.d.ts +11 -0
- package/models/entities/generated/Registry.d.ts +12 -0
- package/models/entities/generated/Related.d.ts +13 -0
- package/models/entities/generated/ReplyTo.d.ts +6 -0
- package/models/entities/generated/Request.d.ts +13 -0
- package/models/entities/generated/Response.d.ts +11 -0
- package/models/entities/generated/Rule.d.ts +15 -0
- package/models/entities/generated/Section.d.ts +14 -0
- package/models/entities/generated/Segment.d.ts +14 -0
- package/models/entities/generated/Sender.d.ts +6 -0
- package/models/entities/generated/Server.d.ts +8 -0
- package/models/entities/generated/Service.d.ts +6 -0
- package/models/entities/generated/Settings.d.ts +6 -0
- package/models/entities/generated/Sharepoint.d.ts +10 -0
- package/models/entities/generated/Software.d.ts +11 -0
- package/models/entities/generated/Source.d.ts +23 -0
- package/models/entities/generated/SourceOriginal.d.ts +19 -0
- package/models/entities/generated/Tactic.d.ts +9 -0
- package/models/entities/generated/Technique.d.ts +9 -0
- package/models/entities/generated/Template.d.ts +11 -0
- package/models/entities/generated/Threat.d.ts +21 -0
- package/models/entities/generated/ThreatGroup.d.ts +9 -0
- package/models/entities/generated/ThreatIndicator.d.ts +21 -0
- package/models/entities/generated/ThreatTactic.d.ts +8 -0
- package/models/entities/generated/ThreatTechnique.d.ts +8 -0
- package/models/entities/generated/Tls.d.ts +12 -0
- package/models/entities/generated/TlsServer.d.ts +6 -0
- package/models/entities/generated/To.d.ts +6 -0
- package/models/entities/generated/TriageSettings.d.ts +8 -0
- package/models/entities/generated/Trigger.d.ts +7 -0
- package/models/entities/generated/Uri.d.ts +9 -0
- package/models/entities/generated/Url.d.ts +19 -0
- package/models/entities/generated/User.d.ts +15 -0
- package/models/entities/generated/UserAgent.d.ts +13 -0
- package/models/entities/generated/UserUser.d.ts +19 -0
- package/models/entities/generated/View.d.ts +15 -0
- package/models/entities/generated/Votes.d.ts +8 -0
- package/models/entities/generated/Vulnerability.d.ts +12 -0
- package/models/entities/generated/Yara.d.ts +9 -0
- package/models/socket/HitUpdate.d.ts +14 -0
- package/package.json +604 -154
- package/plugins/HowlerPlugin.ts +375 -0
- package/plugins/store.ts +152 -0
- package/rest/AxiosClient.ts +81 -0
- package/rest/FetchClient.ts +27 -0
- package/rest/index.ts +12 -0
- package/setupTests.ts +17 -0
- package/tests/MockLocalStorage.ts +46 -0
- package/tests/server-handlers.ts +114 -0
- package/tests/server.ts +6 -0
- package/utils/Throttler.ts +43 -0
- package/utils/actionUtils.ts +112 -0
- package/utils/constants.tsx +131 -0
- package/utils/hit.json +30356 -0
- package/utils/hitFunctions.ts +10 -0
- package/utils/localStorage.ts +54 -0
- package/utils/menuUtils.ts +274 -0
- package/utils/sessionStorage.ts +59 -0
- package/utils/socketUtils.ts +11 -0
- package/utils/stringUtils.ts +57 -0
- package/utils/utils.ts +222 -0
- package/utils/xsrf.ts +17 -0
- package/vite-env.d.ts +1 -0
- package/assets/abap-DR3EPHcA.js +0 -6
- package/assets/abap-kqcCuNo3.js +0 -1
- package/assets/abnf-0i0y1qLw.js +0 -1
- package/assets/actionscript-CBg9ALMd.js +0 -1
- package/assets/ada-C0C0wsJY.js +0 -1
- package/assets/agda-CxRhcDuf.js +0 -1
- package/assets/al-Dlm67z74.js +0 -1
- package/assets/antlr4-BmA8T_Pf.js +0 -1
- package/assets/apacheconf-Cy80ybHj.js +0 -1
- package/assets/apex-CW6wsJgM.js +0 -6
- package/assets/apex-Sg90mm4u.js +0 -1
- package/assets/apl-EWXH65GD.js +0 -1
- package/assets/applescript-PjHK8QN3.js +0 -1
- package/assets/aql-B5IC4Rcf.js +0 -1
- package/assets/arc-BlYL6j5T.js +0 -1
- package/assets/architecture-O4VJ6CD3-jaQW6ijo.js +0 -1
- package/assets/architectureDiagram-KFL7JDKH-DJeBx9P6.js +0 -36
- package/assets/arduino-C51Narsi.js +0 -1
- package/assets/arff-8aJF8MCW.js +0 -1
- package/assets/asciidoc-YvasCiDo.js +0 -1
- package/assets/asm6502-DNM_ACU3.js +0 -1
- package/assets/asmatmel-B7SjKbvc.js +0 -1
- package/assets/aspnet-BDjjZcvg.js +0 -1
- package/assets/autohotkey-hUSymZ_m.js +0 -1
- package/assets/autoit-z_CsSJmr.js +0 -1
- package/assets/avisynth-lWBoLdVJ.js +0 -1
- package/assets/avro-idl-D8-0MeNx.js +0 -1
- package/assets/azcli-CIONJYq1.js +0 -6
- package/assets/bash-CefCgV5_.js +0 -1
- package/assets/bash-WWuseIss.js +0 -1
- package/assets/basic-5JZah1MP.js +0 -1
- package/assets/basic-DBS9NaGG.js +0 -1
- package/assets/bat-C9Lf3IiR.js +0 -6
- package/assets/batch-CNuZE34T.js +0 -1
- package/assets/bbcode-DUCaeSOc.js +0 -1
- package/assets/bicep-C9cUGcZW.js +0 -1
- package/assets/bicep-D-A_iHuq.js +0 -7
- package/assets/birb-BZmpNpMm.js +0 -1
- package/assets/bison-CywkiQg4.js +0 -1
- package/assets/blockDiagram-ZYB65J3Q-D0Ol2jlv.js +0 -122
- package/assets/bnf-DNey8JGD.js +0 -1
- package/assets/brainfuck-uwCSHc7F.js +0 -1
- package/assets/brightscript-DT7d5-qJ.js +0 -1
- package/assets/bro-CFVRfUbc.js +0 -1
- package/assets/bsl-9S4UgA2J.js +0 -1
- package/assets/c-BgfjASKF.js +0 -1
- package/assets/c-kgVuzdLE.js +0 -1
- package/assets/c4Diagram-AAMF2YG6-v1fpnkx2.js +0 -10
- package/assets/cameligo-v1zEsXLu.js +0 -6
- package/assets/cfscript-49U2aWCh.js +0 -1
- package/assets/chaiscript-4VtsYVpl.js +0 -1
- package/assets/channel-DabOFIhE.js +0 -1
- package/assets/chunk-ANTBXLJU-BBGjDBcL.js +0 -1
- package/assets/chunk-FHKO5MBM-CtXgGiWs.js +0 -1
- package/assets/chunk-GLLZNHP4-CjNMxI4x.js +0 -15
- package/assets/chunk-JBRWN2VN-BIsIHCzN.js +0 -165
- package/assets/chunk-LXBSTHXV-DIuZccqv.js +0 -220
- package/assets/chunk-NRVI72HA-aKshiznA.js +0 -1
- package/assets/chunk-OMD6QJNC-DD9Oy5sh.js +0 -1
- package/assets/chunk-WVR4S24B-B9zmB2Tt.js +0 -1
- package/assets/cil-CIk1nZUD.js +0 -1
- package/assets/classDiagram-3BZAVTQC-CqX7Tp25.js +0 -1
- package/assets/classDiagram-v2-QTMF73CY-CqX7Tp25.js +0 -1
- package/assets/clike-B5tY_8Hg.js +0 -1
- package/assets/clike-CxAeib4_.js +0 -1
- package/assets/clojure-Ck0RXpbo.js +0 -1
- package/assets/clojure-DgNu_ptH.js +0 -6
- package/assets/clone-BDNFedfK.js +0 -1
- package/assets/cmake-C-DeGqDW.js +0 -1
- package/assets/cobol-DB25XrSi.js +0 -1
- package/assets/codicon-B16ygVZF.ttf +0 -0
- package/assets/coffee-DNMvp8RP.js +0 -6
- package/assets/coffeescript-B4nqUg94.js +0 -1
- package/assets/concurnas-Dn9XkZGY.js +0 -1
- package/assets/coq-Cvr3Gn8T.js +0 -1
- package/assets/core-UDSDYEIa.js +0 -8
- package/assets/cpp-BdJVwJpi.js +0 -1
- package/assets/cpp-CKhD-3M2.js +0 -1
- package/assets/cpp-DEDKHd-B.js +0 -6
- package/assets/crystal-CjID7KIv.js +0 -1
- package/assets/csharp-2ALpLYur.js +0 -1
- package/assets/csharp-BoWmgZhk.js +0 -6
- package/assets/csharp-Cd5Udg29.js +0 -1
- package/assets/cshtml-BlacgVaO.js +0 -1
- package/assets/csp-BK5qlsQ9.js +0 -6
- package/assets/csp-HMwJhbi-.js +0 -1
- package/assets/css-B2tK9wdh.js +0 -1
- package/assets/css-CF9HHZb0.js +0 -1
- package/assets/css-D1nB4Vcj.js +0 -8
- package/assets/css-extras-DeVSfTP6.js +0 -1
- package/assets/cssMode-BtnBbnNh.js +0 -9
- package/assets/csv-BD6q7LX1.js +0 -1
- package/assets/cypher-BgMoLKlv.js +0 -1
- package/assets/cypher-Bl5_yQjz.js +0 -6
- package/assets/cytoscape.esm-BQaXIfA_.js +0 -331
- package/assets/d-DbEmK-0B.js +0 -1
- package/assets/dagre-2BBEFEWP-D2XFAJFU.js +0 -4
- package/assets/dart-BVA93hyX.js +0 -6
- package/assets/dart-DkfsI3yC.js +0 -1
- package/assets/dataweave-aZYF5PNL.js +0 -1
- package/assets/dax-V2ts0ypQ.js +0 -1
- package/assets/defaultLocale-C4B-KCzX.js +0 -1
- package/assets/dhall-D3SUU5AE.js +0 -1
- package/assets/diagram-4IRLE6MV-3Ii0VW6l.js +0 -24
- package/assets/diagram-GUPCWM2R-C_bP7Q1P.js +0 -24
- package/assets/diagram-RP2FKANI-BSi4bGof.js +0 -43
- package/assets/diff-CMSY-_TM.js +0 -3
- package/assets/django-DnIhfivE.js +0 -1
- package/assets/dns-zone-file-cve-GUtw.js +0 -1
- package/assets/docker-BNsgT4ys.js +0 -1
- package/assets/dockerfile-fYe1jRYc.js +0 -6
- package/assets/dot-YI_YYuHG.js +0 -1
- package/assets/ebnf-D_RcZu_y.js +0 -1
- package/assets/ecl-Bxo8QmCt.js +0 -6
- package/assets/editorconfig-DUfFHFN4.js +0 -1
- package/assets/eiffel-D62YrVdr.js +0 -1
- package/assets/ejs-B3E9714P.js +0 -1
- package/assets/elixir-BbUoe7nZ.js +0 -6
- package/assets/elixir-wU9BuARX.js +0 -1
- package/assets/elm-GdyPUCRk.js +0 -1
- package/assets/erDiagram-HZWUO2LU-DIXDxlDs.js +0 -60
- package/assets/erb-BLfRgaP8.js +0 -1
- package/assets/erlang-oEvb0Slh.js +0 -1
- package/assets/etlua-B52BFn4o.js +0 -1
- package/assets/excel-formula-DNqVjpMr.js +0 -1
- package/assets/factor-D1OvJ8Qo.js +0 -1
- package/assets/false-Z6QQv6ID.js +0 -1
- package/assets/firestore-security-rules-DTUdd8_9.js +0 -1
- package/assets/flow-1B4ewKvb.js +0 -1
- package/assets/flow9-BKFjllYO.js +0 -6
- package/assets/flowDiagram-THRYKUMA-D3gqWW_d.js +0 -162
- package/assets/fortran-DiWKkvzE.js +0 -1
- package/assets/freemarker2-CwD6ixn2.js +0 -8
- package/assets/fsharp-Dv3_RQKY.js +0 -1
- package/assets/fsharp-ETo-tsZt.js +0 -6
- package/assets/ftl-CaaEO_Z2.js +0 -1
- package/assets/ganttDiagram-WV7ZQ7D5-C-2v9gZQ.js +0 -267
- package/assets/gap-CTp3QxAZ.js +0 -1
- package/assets/gcode-CYwYWCAy.js +0 -1
- package/assets/gdscript-YqSYr01q.js +0 -1
- package/assets/gedcom-DTNpnfmu.js +0 -1
- package/assets/gherkin-RLKHjAi5.js +0 -1
- package/assets/git-0fy9QQAU.js +0 -1
- package/assets/gitGraph-ZV4HHKMB-CjT8UBWJ.js +0 -1
- package/assets/gitGraphDiagram-OJR772UL-DRxxeQJN.js +0 -65
- package/assets/glsl-Df0XRhtW.js +0 -1
- package/assets/gml-rYpCBP8S.js +0 -1
- package/assets/gn-jKfYA_GR.js +0 -1
- package/assets/go-B-SSxtH2.js +0 -1
- package/assets/go-DzbHtIm4.js +0 -6
- package/assets/go-module-DXvSTe3J.js +0 -1
- package/assets/graph-lkROJrYf.js +0 -1
- package/assets/graphql-Btz_aicw.js +0 -1
- package/assets/graphql-k0EsSqLB.js +0 -6
- package/assets/groovy-DTiJadjC.js +0 -1
- package/assets/haml-CcDSAGW3.js +0 -1
- package/assets/handlebars-B7UUNDAM.js +0 -6
- package/assets/handlebars-CTc1FoVV.js +0 -1
- package/assets/haskell-Ba7Fn64p.js +0 -1
- package/assets/haskell-Ds42Eazu.js +0 -1
- package/assets/haxe-BOP5EevR.js +0 -1
- package/assets/hcl-Cq9v6if3.js +0 -6
- package/assets/hcl-D1BwnWLD.js +0 -1
- package/assets/hlsl-CUum5slg.js +0 -1
- package/assets/hoon-QMQpvF33.js +0 -1
- package/assets/hpkp-D6eY57p3.js +0 -1
- package/assets/hsts-C1AgjS7S.js +0 -1
- package/assets/html-D5WIHiP4.js +0 -6
- package/assets/htmlMode-DEpdNVPw.js +0 -9
- package/assets/http-id2mbfvH.js +0 -1
- package/assets/ichigojam-DykLBLF7.js +0 -1
- package/assets/icon-5DLjeVkO.js +0 -1
- package/assets/icu-message-format-BLJSLf7X.js +0 -1
- package/assets/idris-D8W8F3Du.js +0 -1
- package/assets/iecst-DFLR7w9A.js +0 -1
- package/assets/ignore-DApMeS1M.js +0 -1
- package/assets/index-Brc7moWM.js +0 -3412
- package/assets/index-COcBHp7b.css +0 -1
- package/assets/info-63CPKGFF-CMaftaLX.js +0 -1
- package/assets/infoDiagram-6WOFNB3A-DVTxejFg.js +0 -2
- package/assets/inform7-BbmmPtTe.js +0 -1
- package/assets/ini-BscO_0vf.js +0 -6
- package/assets/ini-D-w_ESm3.js +0 -1
- package/assets/init-Gi6I4Gst.js +0 -1
- package/assets/io-CL7TQcwi.js +0 -1
- package/assets/j-uqAhSNfO.js +0 -1
- package/assets/java--eXhSgxg.js +0 -1
- package/assets/java-BxMbkJZ_.js +0 -1
- package/assets/java-CtY9ZHW8.js +0 -6
- package/assets/javadoc-DLDzhXUx.js +0 -1
- package/assets/javadoclike-CcxdcZFw.js +0 -1
- package/assets/javadoclike-myFApC35.js +0 -1
- package/assets/javascript-B2YTQvHv.js +0 -1
- package/assets/javascript-D8vYUPHd.js +0 -1
- package/assets/javascript-DHOrgKX5.js +0 -6
- package/assets/javastacktrace-C2aQ6cZI.js +0 -1
- package/assets/jexl-SUbBpRa5.js +0 -1
- package/assets/jolie-DTTRmX_c.js +0 -1
- package/assets/journeyDiagram-FFXJYRFH-D4P4oZdc.js +0 -139
- package/assets/jq-CNGqc8Wl.js +0 -1
- package/assets/js-extras-BomY8GiL.js +0 -1
- package/assets/js-templates-lvNz8Eo-.js +0 -1
- package/assets/jsdoc-CizF9nqb.js +0 -1
- package/assets/json-BESjz4hO.js +0 -1
- package/assets/json-vpv-MZJY.js +0 -1
- package/assets/json5-Bszym-iC.js +0 -1
- package/assets/jsonMode-BdHvYBEq.js +0 -11
- package/assets/jsonp-K9VXfRN3.js +0 -1
- package/assets/jsstacktrace-5a-l-0QO.js +0 -1
- package/assets/jsx-CWP8P1mH.js +0 -1
- package/assets/jsx-NzQF_8Jf.js +0 -1
- package/assets/julia-DOes61nN.js +0 -6
- package/assets/julia-KpvUUzJF.js +0 -1
- package/assets/kanban-definition-KOZQBZVT-D7tMBarf.js +0 -89
- package/assets/katex-ChWnQ-fc.js +0 -261
- package/assets/keepalived-CKdrdtrU.js +0 -1
- package/assets/keyman-CFPdCbAD.js +0 -1
- package/assets/kotlin-DTDxWyre.js +0 -6
- package/assets/kotlin-tQZl0Xk0.js +0 -1
- package/assets/kumir-DbBBFKAZ.js +0 -1
- package/assets/kusto-Bkg1G97b.js +0 -1
- package/assets/latex-BrfLAxV6.js +0 -1
- package/assets/latte-DsrdWVh6.js +0 -1
- package/assets/layout-C4SVJcQz.js +0 -1
- package/assets/less-CqJAWV1X.js +0 -7
- package/assets/less-Dq-Do1xB.js +0 -1
- package/assets/lexon-BXW1vGDt.js +0 -6
- package/assets/lilypond-BASpUvho.js +0 -1
- package/assets/linear-D84iuv7z.js +0 -1
- package/assets/liquid-Co1yhavg.js +0 -1
- package/assets/liquid-D4hD-XBz.js +0 -6
- package/assets/lisp-ybAJB-FH.js +0 -1
- package/assets/livescript-DLvgD8H_.js +0 -1
- package/assets/llvm-C0anU-7N.js +0 -1
- package/assets/log-D-8B5UAA.js +0 -1
- package/assets/lolcode-OUGz_qsa.js +0 -1
- package/assets/lua-Cc6kp-D4.js +0 -1
- package/assets/lua-DER4jxlW.js +0 -1
- package/assets/lua-DLZgaSX1.js +0 -6
- package/assets/m3-CLtYU2dl.js +0 -6
- package/assets/magma-IaFf4RIf.js +0 -1
- package/assets/makefile-ChKu1MJ1.js +0 -1
- package/assets/markdown-7fQo6M4U.js +0 -6
- package/assets/markdown-DiMlCk4R.js +0 -1
- package/assets/markup-BONeskWm.js +0 -1
- package/assets/markup-CEx1cEoC.js +0 -1
- package/assets/markup-templating-BPwIASy-.js +0 -1
- package/assets/markup-templating-BxAVv-bL.js +0 -1
- package/assets/matlab-C6qGYTR2.js +0 -1
- package/assets/maxscript-CAN0xBDN.js +0 -1
- package/assets/mdx-D6NVpinB.js +0 -6
- package/assets/mel-CRG0vaFw.js +0 -1
- package/assets/mermaid-DTCIS1Vc.js +0 -1
- package/assets/mermaid-parser.core-9OWX7w7H.js +0 -129
- package/assets/min-pXLq1urb.js +0 -1
- package/assets/mindmap-definition-LNHGMQRG-DpNkhLNM.js +0 -95
- package/assets/mips-DcG9r2vI.js +0 -6
- package/assets/mizar-CTjbYK1-.js +0 -1
- package/assets/mongodb-Dwy0e7tV.js +0 -1
- package/assets/monkey-5vs-VaHV.js +0 -1
- package/assets/moonscript-fT7DerrW.js +0 -1
- package/assets/msdax-DN__iVzl.js +0 -6
- package/assets/mysql-05d2lfAy.js +0 -6
- package/assets/n1ql-CyDT-nbG.js +0 -1
- package/assets/n4js-Dmgj3bgd.js +0 -1
- package/assets/nand2tetris-hdl-BPfjS0pS.js +0 -1
- package/assets/naniscript-AIaG6VzF.js +0 -1
- package/assets/nasm-CtaUAK1B.js +0 -1
- package/assets/neon-BGH8Px8Z.js +0 -1
- package/assets/nevod-DKwg2dRw.js +0 -1
- package/assets/nginx-CUZ2OZRs.js +0 -1
- package/assets/nim-DYHpidb8.js +0 -1
- package/assets/nix-DJt2Qxmn.js +0 -1
- package/assets/nsis-Bp97AH1A.js +0 -1
- package/assets/objective-c-B_h_kxCB.js +0 -6
- package/assets/objectivec-DXwXxEEr.js +0 -1
- package/assets/ocaml-alwbEKNU.js +0 -1
- package/assets/opencl-2tlv9GXY.js +0 -1
- package/assets/openqasm-DQQ8Eb1t.js +0 -1
- package/assets/ordinal-Cboi1Yqb.js +0 -1
- package/assets/oz-CmR9PjHE.js +0 -1
- package/assets/packet-HUATNLJX-Df0K9_iv.js +0 -1
- package/assets/parigp-n8ycxTI2.js +0 -1
- package/assets/parser-Bcvfazvc.js +0 -1
- package/assets/pascal-Bc-8SB3K.js +0 -6
- package/assets/pascal-CFHsej71.js +0 -1
- package/assets/pascaligo-C8kSNPDA.js +0 -1
- package/assets/pascaligo-Dcwo06z5.js +0 -6
- package/assets/pcaxis-L1qB_TA8.js +0 -1
- package/assets/peoplecode-B3ZIbHRe.js +0 -1
- package/assets/perl-B4wSx8tF.js +0 -1
- package/assets/perl-BnGpdHsN.js +0 -6
- package/assets/pgsql-DfVleuq_.js +0 -6
- package/assets/php-CH5O-_gG.js +0 -6
- package/assets/php-Cp0BohX-.js +0 -1
- package/assets/php-extras-D_l2V9st.js +0 -1
- package/assets/php-iTdQntIy.js +0 -1
- package/assets/phpdoc-CK9N3DqC.js +0 -1
- package/assets/pie-WTHONI2E-D2V4EPkW.js +0 -1
- package/assets/pieDiagram-DBDJKBY4-CtSiPn-U.js +0 -30
- package/assets/pla-BUVXxyGx.js +0 -6
- package/assets/plsql-C1Z_R7C0.js +0 -1
- package/assets/postiats-DSt55phJ.js +0 -6
- package/assets/powerquery-2KNS9mh4.js +0 -6
- package/assets/powerquery-Cj9zzkL_.js +0 -1
- package/assets/powershell-BMCDkE8B.js +0 -1
- package/assets/powershell-CCS0rx-A.js +0 -6
- package/assets/processing-DOu9EyQL.js +0 -1
- package/assets/prolog-BDx-mKYw.js +0 -1
- package/assets/promql-CyuJUGgC.js +0 -1
- package/assets/properties-Cz9SwuSc.js +0 -1
- package/assets/protobuf-5lyCd6Ku.js +0 -7
- package/assets/protobuf-BCLdPaZg.js +0 -1
- package/assets/psl-BVzbXOmp.js +0 -1
- package/assets/pug-Dg4O54Js.js +0 -6
- package/assets/pug-PBVvhxsU.js +0 -1
- package/assets/puppet-Bp5J_Xf6.js +0 -1
- package/assets/pure-BEODe8Ty.js +0 -1
- package/assets/purebasic-g8QwRKk9.js +0 -1
- package/assets/purescript-UFsBai8q.js +0 -1
- package/assets/python-BEpwHjuW.js +0 -6
- package/assets/python-cW1cr4Xe.js +0 -1
- package/assets/q-CuXsyoDM.js +0 -1
- package/assets/qml-NgPknFa-.js +0 -1
- package/assets/qore-C0g-7ava.js +0 -1
- package/assets/qsharp-BHSA_OC9.js +0 -6
- package/assets/qsharp-BrQJYopz.js +0 -1
- package/assets/quadrantDiagram-YPSRARAO-fpN7laT8.js +0 -7
- package/assets/r-DBvxNhD8.js +0 -6
- package/assets/r-ivB35FJi.js +0 -1
- package/assets/racket-D6952iA-.js +0 -1
- package/assets/radar-NJJJXTRR-Bh0TcAtk.js +0 -1
- package/assets/razor-COaKzAih.js +0 -6
- package/assets/reason-BxyJj1Wv.js +0 -1
- package/assets/redis-mBNZiS5I.js +0 -6
- package/assets/redshift-gtd9hS2x.js +0 -6
- package/assets/reduce-CEguFi6x.js +0 -1
- package/assets/regex-UCZUa98R.js +0 -1
- package/assets/rego-D5bYSBEk.js +0 -1
- package/assets/renpy-DTdz45My.js +0 -1
- package/assets/requirementDiagram-EGVEC5DT-C2aVrzw7.js +0 -64
- package/assets/rest-BxrDSOtP.js +0 -1
- package/assets/restructuredtext-45Xf76JB.js +0 -6
- package/assets/rip-CvJDF04l.js +0 -1
- package/assets/roboconf-DpPdQtT6.js +0 -1
- package/assets/robotframework-CvzHhnGx.js +0 -1
- package/assets/roboto-cyrillic-400-normal-C5q4FMUG.woff +0 -0
- package/assets/roboto-cyrillic-400-normal-DAIM1_dR.woff2 +0 -0
- package/assets/roboto-cyrillic-ext-400-normal-5IDvadIC.woff +0 -0
- package/assets/roboto-cyrillic-ext-400-normal-DzMWdK87.woff2 +0 -0
- package/assets/roboto-greek-400-normal-DwVopRQH.woff +0 -0
- package/assets/roboto-greek-400-normal-jFM2czAU.woff2 +0 -0
- package/assets/roboto-latin-400-normal-BX2H0A0_.woff +0 -0
- package/assets/roboto-latin-400-normal-CNwBRw8h.woff2 +0 -0
- package/assets/roboto-latin-ext-400-normal-BG57dRWO.woff +0 -0
- package/assets/roboto-latin-ext-400-normal-ZYmyxeOy.woff2 +0 -0
- package/assets/roboto-math-400-normal-B3wgz80t.woff2 +0 -0
- package/assets/roboto-math-400-normal-BRMeFL5Z.woff +0 -0
- package/assets/roboto-symbols-400-normal-B2LMqLB2.woff +0 -0
- package/assets/roboto-symbols-400-normal-fF1SLJBj.woff2 +0 -0
- package/assets/roboto-vietnamese-400-normal-BYP5tVVv.woff +0 -0
- package/assets/roboto-vietnamese-400-normal-CDDxGrUb.woff2 +0 -0
- package/assets/ruby-BYts9dao.js +0 -1
- package/assets/ruby-CEgcCkh9.js +0 -6
- package/assets/ruby-DYsn9XfW.js +0 -1
- package/assets/rust-BChN5uNh.js +0 -6
- package/assets/rust-DhU6TFsm.js +0 -1
- package/assets/sankeyDiagram-HRAUVNP4-4oZDeCaD.js +0 -10
- package/assets/sas-ChhKHWGM.js +0 -1
- package/assets/sass-C57bJt_A.js +0 -1
- package/assets/sb-5vPrUWN-.js +0 -6
- package/assets/scala-BQOorN7X.js +0 -6
- package/assets/scala-Cg28kNry.js +0 -1
- package/assets/scheme-Bpk-KLc_.js +0 -1
- package/assets/scheme-Cscf027c.js +0 -1
- package/assets/scheme-DkJ87xtR.js +0 -6
- package/assets/scss-BeU7qozo.js +0 -1
- package/assets/scss-CpPOP9XS.js +0 -8
- package/assets/sequenceDiagram-WFGC7UMF-BS5S-iIx.js +0 -122
- package/assets/shell-BHhUv290.js +0 -6
- package/assets/shell-session-N4BUyO5b.js +0 -1
- package/assets/smali-OZwkp_pU.js +0 -1
- package/assets/smalltalk-Bgd8uXdt.js +0 -1
- package/assets/smarty-BbqdJT5w.js +0 -1
- package/assets/sml-DbDOAWsQ.js +0 -1
- package/assets/solidity-BFcLIl1x.js +0 -6
- package/assets/solidity-DkQCaL_X.js +0 -1
- package/assets/solution-file-DFlRPhIk.js +0 -1
- package/assets/sophia-z0tjJxhY.js +0 -6
- package/assets/soy-CqM5aRME.js +0 -1
- package/assets/sparql-B1GALy7V.js +0 -1
- package/assets/sparql-BTJymgeb.js +0 -6
- package/assets/splunk-spl-DrNqni3-.js +0 -1
- package/assets/sqf-BeBvdmXG.js +0 -1
- package/assets/sql-BFyYaP5s.js +0 -6
- package/assets/sql-CJATM1Qp.js +0 -1
- package/assets/sql-CtDLgxfq.js +0 -1
- package/assets/squirrel-COkcd8Tr.js +0 -1
- package/assets/st-DZS1F9ME.js +0 -6
- package/assets/stan-C1_hogQu.js +0 -1
- package/assets/stateDiagram-UUKSUZ4H-Cb3qH3Cy.js +0 -1
- package/assets/stateDiagram-v2-EYPG3UTE-BzEwA6K7.js +0 -1
- package/assets/stylus-Dw8891LS.js +0 -1
- package/assets/swift-B97O9HHR.js +0 -1
- package/assets/swift-BwlyOzQq.js +0 -8
- package/assets/systemd-CUtXAwEb.js +0 -2
- package/assets/systemverilog-DJsb8r0W.js +0 -6
- package/assets/t4-cs-CyYMVAUn.js +0 -1
- package/assets/t4-templating-B5EzSFYT.js +0 -1
- package/assets/t4-templating-Du1KIrkv.js +0 -1
- package/assets/t4-vb-Pwd8zhQY.js +0 -1
- package/assets/tap-C5-eahra.js +0 -1
- package/assets/tcl-CQrWCRuJ.js +0 -1
- package/assets/tcl-CjHYkh5E.js +0 -6
- package/assets/textile-CyJk6SWo.js +0 -1
- package/assets/timeline-definition-3HZDQTIS-DaBjiVZ7.js +0 -61
- package/assets/toml-Cact8Vna.js +0 -1
- package/assets/treemap-75Q7IDZK-BZoUJEBa.js +0 -1
- package/assets/tremor-BBmidx_C.js +0 -1
- package/assets/tsMode-DjkyL1AP.js +0 -16
- package/assets/tsx-BFgSfn5D.js +0 -1
- package/assets/tt2-CG-UIBmK.js +0 -1
- package/assets/turtle-DigfRE97.js +0 -1
- package/assets/turtle-Ro1R6Je7.js +0 -1
- package/assets/twig-CmYTg8Iu.js +0 -6
- package/assets/twig-PmY_cDoq.js +0 -1
- package/assets/typescript-CVO-8GEc.js +0 -1
- package/assets/typescript-Da47IE7f.js +0 -1
- package/assets/typescript-DgKm9t07.js +0 -6
- package/assets/typespec-Dwv00aWl.js +0 -6
- package/assets/typoscript-CgZr5jEZ.js +0 -1
- package/assets/unrealscript-BI_pn0rK.js +0 -1
- package/assets/uorazor-C7IhUkD6.js +0 -1
- package/assets/uri-BP2d8Ze2.js +0 -1
- package/assets/v-B9O-tbsS.js +0 -1
- package/assets/vala-CS5ZRPeA.js +0 -1
- package/assets/vb-BjPEumh4.js +0 -6
- package/assets/vbnet-B0hx3qRp.js +0 -1
- package/assets/vbnet-BhrUc4aD.js +0 -1
- package/assets/velocity-QemisC16.js +0 -1
- package/assets/verilog-jjjMAm_Y.js +0 -1
- package/assets/vhdl-B9EszVuj.js +0 -1
- package/assets/vim-CxDlf-dr.js +0 -1
- package/assets/visual-basic-CfhBm1gF.js +0 -1
- package/assets/warpscript-DL5ToBao.js +0 -1
- package/assets/wasm-C5WawCVZ.js +0 -1
- package/assets/web-idl-DWKDo7hm.js +0 -1
- package/assets/wgsl-Bp8RP3jd.js +0 -303
- package/assets/wiki-BHpSxg4K.js +0 -1
- package/assets/wolfram-C_oBzCJW.js +0 -1
- package/assets/wren-CA1nFGqi.js +0 -1
- package/assets/xeora-BtUuVarv.js +0 -1
- package/assets/xml-BBqGkZMk.js +0 -6
- package/assets/xml-doc-DhUg29aH.js +0 -1
- package/assets/xojo-BmgifBv1.js +0 -1
- package/assets/xquery-7FfNXUZg.js +0 -1
- package/assets/xychartDiagram-FDP5SA34-DlWJl-YC.js +0 -7
- package/assets/yaml-BOp0Lh0S.js +0 -1
- package/assets/yaml-C8j_iwGJ.js +0 -6
- package/assets/yaml-pHjxJgpq.js +0 -1
- package/assets/yang-CLUWUZcf.js +0 -1
- package/assets/zig-DdXASuyK.js +0 -1
- package/branding/howler/favicon.svg +0 -38
- package/branding/howler/name-dark.svg +0 -21
- package/branding/howler/name-light.svg +0 -21
- package/branding/howler/noswoosh-dark.svg +0 -24
- package/branding/howler/noswoosh-light.svg +0 -28
- package/branding/howler/swoosh-dark.svg +0 -41
- package/branding/howler/swoosh-light.svg +0 -45
- package/components/routes/help/markdown/en/actionIntroduction.md.js +0 -1
- package/components/routes/help/markdown/en/authentication.md.js +0 -1
- package/components/routes/help/markdown/en/bundles.md.js +0 -1
- package/components/routes/help/markdown/en/client.md.js +0 -1
- package/components/routes/help/markdown/en/links.md.js +0 -1
- package/components/routes/help/markdown/en/notebook.md.js +0 -1
- package/components/routes/help/markdown/en/retention.md.js +0 -1
- package/components/routes/help/markdown/en/schema.md.js +0 -1
- package/components/routes/help/markdown/en/templates.md.js +0 -1
- package/components/routes/help/markdown/en/views.md.js +0 -1
- package/components/routes/help/markdown/fr/actionIntroduction.md.js +0 -1
- package/components/routes/help/markdown/fr/authentication.md.js +0 -1
- package/components/routes/help/markdown/fr/bundles.md.js +0 -1
- package/components/routes/help/markdown/fr/client.md.js +0 -1
- package/components/routes/help/markdown/fr/links.md.js +0 -1
- package/components/routes/help/markdown/fr/notebook.md.js +0 -1
- package/components/routes/help/markdown/fr/retention.md.js +0 -1
- package/components/routes/help/markdown/fr/schema.md.js +0 -1
- package/components/routes/help/markdown/fr/templates.md.js +0 -1
- package/components/routes/help/markdown/fr/views.md.js +0 -1
- package/components/routes/overviews/template/en.md.js +0 -1
- package/components/routes/overviews/template/fr.md.js +0 -1
- package/images/doggie.png +0 -0
- package/index.html +0 -24
- package/manifest.json +0 -16
- package/robots.txt +0 -3
- package/scripts/background.js +0 -14
- package/serve.json +0 -14
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { Paper, Table, TableBody, TableCell, TableHead, TableRow } from '@mui/material';
|
|
3
|
+
import AppListEmpty from 'commons/components/display/AppListEmpty';
|
|
4
|
+
import HitCard from 'components/elements/hit/HitCard';
|
|
5
|
+
import { HitLayout } from 'components/elements/hit/HitLayout';
|
|
6
|
+
import { flatten } from 'flat';
|
|
7
|
+
import Handlebars from 'handlebars';
|
|
8
|
+
import { capitalize, get, groupBy, isObject } from 'lodash-es';
|
|
9
|
+
import howlerPluginStore from 'plugins/store';
|
|
10
|
+
import { useMemo, type ReactElement } from 'react';
|
|
11
|
+
import { usePluginStore } from 'react-pluggable';
|
|
12
|
+
import ActionButton from '../ActionButton';
|
|
13
|
+
import JSONViewer from '../json/JSONViewer';
|
|
14
|
+
|
|
15
|
+
export interface HowlerHelper {
|
|
16
|
+
keyword: string;
|
|
17
|
+
documentation?: {
|
|
18
|
+
en: string;
|
|
19
|
+
fr: string;
|
|
20
|
+
};
|
|
21
|
+
callback?: Handlebars.HelperDelegate;
|
|
22
|
+
componentCallback?: (...args: any[]) => ReactElement | Promise<ReactElement>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface Cell {
|
|
26
|
+
column: string;
|
|
27
|
+
row: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const FETCH_RESULTS: { [url: string]: Promise<any> } = {};
|
|
32
|
+
|
|
33
|
+
export const useHelpers = (): HowlerHelper[] => {
|
|
34
|
+
const pluginStore = usePluginStore();
|
|
35
|
+
|
|
36
|
+
const allHelpers = useMemo(
|
|
37
|
+
(): HowlerHelper[] => [
|
|
38
|
+
{
|
|
39
|
+
keyword: 'equals',
|
|
40
|
+
documentation: {
|
|
41
|
+
en: 'Checks the equality of the string representation of the two arguments.',
|
|
42
|
+
fr: "Vérifie l'égalité de la représentation en chaîne de caractères des deux arguments."
|
|
43
|
+
},
|
|
44
|
+
callback: (arg1, arg2) => arg1?.toString() === arg2.toString()
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
keyword: 'and',
|
|
48
|
+
documentation: {
|
|
49
|
+
en: 'Runs the comparison `arg1 && arg2`, and returns the result.',
|
|
50
|
+
fr: 'Exécute la comparaison `arg1 && arg2`, et retourne le résultat.'
|
|
51
|
+
},
|
|
52
|
+
callback: (arg1, arg2) => arg1 && arg2
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
keyword: 'or',
|
|
56
|
+
documentation: {
|
|
57
|
+
en: 'Runs the comparison `arg1 || arg2`, and returns the result.',
|
|
58
|
+
fr: 'Exécute la comparaison `arg1 || arg2`, et retourne le résultat.'
|
|
59
|
+
},
|
|
60
|
+
callback: (arg1, arg2) => arg1 || arg2
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
keyword: 'not',
|
|
64
|
+
documentation: {
|
|
65
|
+
en: 'Runs the comparison `!arg`, and returns the result.',
|
|
66
|
+
fr: 'Exécute la comparaison `!arg`, et retourne le résultat.'
|
|
67
|
+
},
|
|
68
|
+
callback: arg => !arg
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
keyword: 'curly',
|
|
72
|
+
documentation: {
|
|
73
|
+
en: 'Wraps the given argument in curly braces.',
|
|
74
|
+
fr: "Entoure l'argument donné d'accolades."
|
|
75
|
+
},
|
|
76
|
+
callback: arg1 => new Handlebars.SafeString(`{{${arg1}}}`)
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
keyword: 'join',
|
|
80
|
+
documentation: {
|
|
81
|
+
en: 'Joins two string arguments with a given string `sep`, or the empty string as a default.',
|
|
82
|
+
fr: 'Joint deux arguments de chaîne avec une chaîne donnée `sep`, ou la chaîne vide par défaut.'
|
|
83
|
+
},
|
|
84
|
+
callback: (arg1: string, arg2: string, context) =>
|
|
85
|
+
[arg1?.toString() ?? '', arg2?.toString() ?? ''].join(context.hash?.sep ?? '')
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
keyword: 'upper',
|
|
89
|
+
documentation: {
|
|
90
|
+
en: 'Returns the uppercase representation of a string argument.',
|
|
91
|
+
fr: "Retourne la représentation en majuscules d'un argument de chaîne."
|
|
92
|
+
},
|
|
93
|
+
callback: (val: string) => val.toLocaleUpperCase()
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
keyword: 'lower',
|
|
97
|
+
documentation: {
|
|
98
|
+
en: 'Returns the lowercase representation of a string argument.',
|
|
99
|
+
fr: "Retourne la représentation en minuscules d'un argument de chaîne."
|
|
100
|
+
},
|
|
101
|
+
callback: (val: string) => val.toLocaleLowerCase()
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
keyword: 'fetch',
|
|
105
|
+
documentation: {
|
|
106
|
+
en: 'Fetches the url provided and returns the given (flattened) key from the returned JSON object. Note that the result must be JSON!',
|
|
107
|
+
fr: "Récupère l'URL fournie et retourne la clé donnée (aplatie) de l'objet JSON retourné. Notez que le résultat doit être du JSON !"
|
|
108
|
+
},
|
|
109
|
+
callback: async (url, key) => {
|
|
110
|
+
try {
|
|
111
|
+
if (!FETCH_RESULTS[url]) {
|
|
112
|
+
FETCH_RESULTS[url] = fetch(url).then(res => res.json());
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const json = await FETCH_RESULTS[url];
|
|
116
|
+
|
|
117
|
+
return flatten(json)[key];
|
|
118
|
+
} catch (e) {
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
keyword: 'howler',
|
|
125
|
+
documentation: {
|
|
126
|
+
en: 'Given a howler hit ID, this helper renders a hit card for that ID.',
|
|
127
|
+
fr: 'Étant donné un ID de résultat howler, cet assistant affiche une carte de résultat pour cet ID.'
|
|
128
|
+
},
|
|
129
|
+
componentCallback: id => {
|
|
130
|
+
if (!id) {
|
|
131
|
+
return <AppListEmpty />;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return <HitCard id={id} layout={HitLayout.NORMAL} />;
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
keyword: 'entries',
|
|
139
|
+
documentation: {
|
|
140
|
+
en: 'Given a dict, return an array of {key, value} objects.',
|
|
141
|
+
fr: "Étant donné un dictionnaire, retourne un tableau d'objets {key, value}."
|
|
142
|
+
},
|
|
143
|
+
callback: obj => {
|
|
144
|
+
if (!isObject(obj)) {
|
|
145
|
+
return new Handlebars.SafeString('Invalid Object.');
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return Object.entries(obj).map(([key, value]) => ({ key, value }));
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
keyword: 'render_json',
|
|
153
|
+
documentation: {
|
|
154
|
+
en: 'Given JSON data, this helper renders a JSON viewer component.',
|
|
155
|
+
fr: 'Étant donné des données JSON, cet assistant affiche un composant de visualisation JSON.'
|
|
156
|
+
},
|
|
157
|
+
componentCallback: data => {
|
|
158
|
+
if (!data) {
|
|
159
|
+
return <AppListEmpty />;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return <JSONViewer data={data} />;
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
keyword: 'to_json',
|
|
167
|
+
documentation: {
|
|
168
|
+
en: 'Convert any object into a JSON string.',
|
|
169
|
+
fr: "Convertit n'importe quel objet en chaîne JSON."
|
|
170
|
+
},
|
|
171
|
+
callback: obj => {
|
|
172
|
+
return new Handlebars.SafeString(JSON.stringify(obj));
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
keyword: 'parse_json',
|
|
177
|
+
documentation: {
|
|
178
|
+
en: 'Convert a JSON string into an object.',
|
|
179
|
+
fr: 'Convertit une chaîne JSON en objet.'
|
|
180
|
+
},
|
|
181
|
+
callback: str => {
|
|
182
|
+
return JSON.parse(str);
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
keyword: 'get',
|
|
187
|
+
documentation: {
|
|
188
|
+
en: 'Returns the given (flattened) key from the provided object.',
|
|
189
|
+
fr: "Retourne la clé donnée (aplatie) de l'objet fourni."
|
|
190
|
+
},
|
|
191
|
+
callback: async (data, key) => {
|
|
192
|
+
try {
|
|
193
|
+
return get(data, key);
|
|
194
|
+
} catch (e) {
|
|
195
|
+
return '';
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
keyword: 'includes',
|
|
201
|
+
documentation: {
|
|
202
|
+
en: 'Checks if field is in string',
|
|
203
|
+
fr: 'Vérifie si le champ est dans la chaîne'
|
|
204
|
+
},
|
|
205
|
+
callback: (arg1, arg2) => {
|
|
206
|
+
return !!arg2 && !!arg1?.includes(arg2);
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
{
|
|
211
|
+
keyword: 'table',
|
|
212
|
+
documentation: {
|
|
213
|
+
en: 'Render a table in markdown given an array of cells',
|
|
214
|
+
fr: "Affiche un tableau en markdown à partir d'un tableau de cellules"
|
|
215
|
+
},
|
|
216
|
+
componentCallback: (cells: Cell[]) => {
|
|
217
|
+
const columns = Object.keys(groupBy(cells, 'column'));
|
|
218
|
+
const rows = groupBy(cells, 'row');
|
|
219
|
+
|
|
220
|
+
return (
|
|
221
|
+
<Paper sx={{ width: '95%', overflowX: 'auto', m: 1 }}>
|
|
222
|
+
<Table>
|
|
223
|
+
<TableHead>
|
|
224
|
+
<TableRow>
|
|
225
|
+
{columns.map(col => (
|
|
226
|
+
<TableCell key={col} sx={{ maxWidth: '150px' }}>
|
|
227
|
+
{col
|
|
228
|
+
.split(/[_-]/)
|
|
229
|
+
.map(word => capitalize(word))
|
|
230
|
+
.join(' ')}
|
|
231
|
+
</TableCell>
|
|
232
|
+
))}
|
|
233
|
+
</TableRow>
|
|
234
|
+
</TableHead>
|
|
235
|
+
<TableBody sx={{ '& td': { wordBreak: 'break-word' } }}>
|
|
236
|
+
{Object.entries(rows).map(([rowId, _cells]) => {
|
|
237
|
+
return (
|
|
238
|
+
<TableRow key={rowId}>
|
|
239
|
+
{columns.map(col => {
|
|
240
|
+
const cell = _cells.find(row => row.column === col);
|
|
241
|
+
|
|
242
|
+
return <TableCell key={col + cell?.value}>{cell?.value ?? 'N/A'}</TableCell>;
|
|
243
|
+
})}
|
|
244
|
+
</TableRow>
|
|
245
|
+
);
|
|
246
|
+
})}
|
|
247
|
+
</TableBody>
|
|
248
|
+
</Table>
|
|
249
|
+
</Paper>
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
|
|
254
|
+
{
|
|
255
|
+
keyword: 'action',
|
|
256
|
+
documentation: {
|
|
257
|
+
en: 'Execute a howler action given a specific action ID (from the URL when viewing the action, i.e. yaIKVqiKhWpyCsWdqsE4D)',
|
|
258
|
+
fr: "Exécute une action howler à partir d'un ID d'action spécifique (de l'URL lors de la visualisation de l'action, par ex. yaIKVqiKhWpyCsWdqsE4D)"
|
|
259
|
+
},
|
|
260
|
+
componentCallback: (actionId: string, hitId: string, context) => {
|
|
261
|
+
if (!actionId || !hitId) {
|
|
262
|
+
console.warn('Missing parameters for the action button.');
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return <ActionButton actionId={actionId} hitId={hitId} {...(context.hash ?? {})} />;
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
|
|
270
|
+
...howlerPluginStore.plugins.flatMap(plugin => pluginStore.executeFunction(`${plugin}.helpers`) as HowlerHelper)
|
|
271
|
+
],
|
|
272
|
+
[pluginStore]
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
return allHelpers;
|
|
276
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AccountTree } from '@mui/icons-material';
|
|
2
|
+
import { ListItemText, Menu, MenuItem, Typography } from '@mui/material';
|
|
3
|
+
import TuiIconButton from 'components/elements/addons/buttons/CustomIconButton';
|
|
4
|
+
import type { FC } from 'react';
|
|
5
|
+
import { useCallback, useState } from 'react';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { useNavigate } from 'react-router-dom';
|
|
8
|
+
|
|
9
|
+
const BundleButton: FC<{ ids: string[]; disabled?: boolean }> = ({ ids, disabled = false }) => {
|
|
10
|
+
const { t } = useTranslation();
|
|
11
|
+
const navigate = useNavigate();
|
|
12
|
+
|
|
13
|
+
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
|
14
|
+
|
|
15
|
+
const onClick = useCallback(
|
|
16
|
+
(event: React.MouseEvent<HTMLButtonElement>) => {
|
|
17
|
+
if (ids.length === 1) {
|
|
18
|
+
navigate(`/bundles/${ids[0]}`);
|
|
19
|
+
} else {
|
|
20
|
+
setAnchorEl(event.currentTarget);
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
[ids, navigate]
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
const handleClose = useCallback(() => setAnchorEl(null), []);
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
<TuiIconButton
|
|
31
|
+
size="small"
|
|
32
|
+
tooltip={t(`hit.panel.bundles.open${ids.length > 1 ? '' : '.prompt'}`)}
|
|
33
|
+
onClick={onClick}
|
|
34
|
+
disabled={disabled}
|
|
35
|
+
aria-disabled={disabled}
|
|
36
|
+
aria-haspopup="true"
|
|
37
|
+
aria-controls={anchorEl ? 'bundle-action-menu' : undefined}
|
|
38
|
+
aria-expanded={anchorEl ? 'true' : undefined}
|
|
39
|
+
>
|
|
40
|
+
<AccountTree />
|
|
41
|
+
</TuiIconButton>
|
|
42
|
+
<Menu
|
|
43
|
+
id="bundle-action-menu"
|
|
44
|
+
anchorEl={anchorEl}
|
|
45
|
+
open={!!anchorEl}
|
|
46
|
+
onClose={handleClose}
|
|
47
|
+
MenuListProps={{
|
|
48
|
+
dense: true,
|
|
49
|
+
'aria-labelledby': `bundle-button`
|
|
50
|
+
}}
|
|
51
|
+
anchorOrigin={{
|
|
52
|
+
vertical: 'bottom',
|
|
53
|
+
horizontal: 'right'
|
|
54
|
+
}}
|
|
55
|
+
transformOrigin={{
|
|
56
|
+
vertical: 'top',
|
|
57
|
+
horizontal: 'right'
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
{ids.map(id => (
|
|
61
|
+
<MenuItem key={id} onClick={() => navigate(`/bundles/${id}`)}>
|
|
62
|
+
<ListItemText
|
|
63
|
+
primary={t('hit.panel.bundles.open.prompt')}
|
|
64
|
+
secondary={
|
|
65
|
+
<Typography variant="caption" color="text.secondary">
|
|
66
|
+
{id}
|
|
67
|
+
</Typography>
|
|
68
|
+
}
|
|
69
|
+
/>
|
|
70
|
+
</MenuItem>
|
|
71
|
+
))}
|
|
72
|
+
</Menu>
|
|
73
|
+
</>
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default BundleButton;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Icon } from '@iconify/react';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
|
|
5
|
+
const ICONS = {
|
|
6
|
+
hit: 'bx:target-lock',
|
|
7
|
+
take: 'clarity:cursor-hand-grab-line'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
type IconsType = keyof typeof ICONS;
|
|
11
|
+
|
|
12
|
+
const Iconified: FC<{ type: IconsType }> = ({ type }) => {
|
|
13
|
+
return <Icon icon={ICONS[type]} fontSize={24} />;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default memo(Iconified);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { CloudSync } from '@mui/icons-material';
|
|
2
|
+
import { Badge, IconButton, styled, Tooltip } from '@mui/material';
|
|
3
|
+
import { green, red, yellow } from '@mui/material/colors';
|
|
4
|
+
import { SocketContext, Status } from 'components/app/providers/SocketProvider';
|
|
5
|
+
import i18n from 'i18n';
|
|
6
|
+
import type { FC } from 'react';
|
|
7
|
+
import { useContext } from 'react';
|
|
8
|
+
|
|
9
|
+
const StyledBadge = styled(Badge)(({ theme }) => ({
|
|
10
|
+
'& .MuiBadge-badge': {
|
|
11
|
+
backgroundColor: green[700],
|
|
12
|
+
color: green[700],
|
|
13
|
+
boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,
|
|
14
|
+
'&::after': {
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
top: 0,
|
|
17
|
+
left: 0,
|
|
18
|
+
width: '100%',
|
|
19
|
+
height: '100%',
|
|
20
|
+
borderRadius: '50%',
|
|
21
|
+
animation: 'ripple 1.2s infinite ease-in-out',
|
|
22
|
+
border: '1px solid currentColor',
|
|
23
|
+
content: '""',
|
|
24
|
+
zIndex: 1000
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
'@keyframes ripple': {
|
|
28
|
+
'0%': {
|
|
29
|
+
transform: 'scale(.8)',
|
|
30
|
+
opacity: 1
|
|
31
|
+
},
|
|
32
|
+
'100%': {
|
|
33
|
+
transform: 'scale(2.4)',
|
|
34
|
+
opacity: 0
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
const TITLES = {
|
|
40
|
+
[Status.CONNECTING]: i18n.t('live.connecting'),
|
|
41
|
+
[Status.OPEN]: i18n.t('live.open'),
|
|
42
|
+
[Status.CLOSING]: i18n.t('live.closing'),
|
|
43
|
+
[Status.CLOSED]: i18n.t('live.closed')
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const SocketBadge: FC<{ size?: 'small' | 'inherit' | 'medium' | 'large' }> = ({ size = 'inherit' }) => {
|
|
47
|
+
const { status, reconnect } = useContext(SocketContext);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<Tooltip title={TITLES[status]}>
|
|
51
|
+
<StyledBadge
|
|
52
|
+
overlap="circular"
|
|
53
|
+
variant="dot"
|
|
54
|
+
anchorOrigin={{ horizontal: 'left', vertical: 'top' }}
|
|
55
|
+
sx={[
|
|
56
|
+
(status === Status.CONNECTING || status === Status.CLOSING) && {
|
|
57
|
+
'& .MuiBadge-badge': { backgroundColor: yellow[600], color: yellow[600] }
|
|
58
|
+
},
|
|
59
|
+
status === Status.CLOSED && {
|
|
60
|
+
'& .MuiBadge-badge': {
|
|
61
|
+
backgroundColor: red[800],
|
|
62
|
+
color: red[800],
|
|
63
|
+
'&::after': {
|
|
64
|
+
animation: 'none'
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
]}
|
|
69
|
+
>
|
|
70
|
+
<IconButton
|
|
71
|
+
size="small"
|
|
72
|
+
onClick={reconnect}
|
|
73
|
+
sx={[status !== Status.CLOSED && { pointerEvents: 'none' }, { pr: 1 }]}
|
|
74
|
+
>
|
|
75
|
+
<CloudSync fontSize={size} />
|
|
76
|
+
</IconButton>
|
|
77
|
+
</StyledBadge>
|
|
78
|
+
</Tooltip>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export default SocketBadge;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="artwork" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.08 64.08"><defs><style>.cls-1{fill:#2196f3;}.cls-2{fill:#0e4377;}</style></defs><path class="cls-1" d="M39.7,57.07h0c-4.28-16.65,7.85-26.92,9.88-29.25a13.85,13.85,0,0,0,3-6.95h0v-.05c.36-2.27-2.17-6.93-2.17-6.93,1.42-2.39-.59-5.22-2.68-5.11a2.73,2.73,0,0,0-2.57,1.82,43.59,43.59,0,0,0-6.82,4,10.33,10.33,0,0,1-10.42,1.46c-3.46-1.28-7.52,2.57-7.52,2.57L15,24.35a3.35,3.35,0,0,0-1.92-.49c-3,.21-5.2,5-4.81,10.69A16.16,16.16,0,0,0,9,38.36s-.06-.1-.08-.15C10,42,12.33,42.65,14.68,42.49c3-.21,4.87-2.92,4.48-8.62,0-.54.07-1.14,0-1.66h0v0a23.48,23.48,0,0,1,2.22,5.92c1.2,4.86-1.6,11.5-5.25,15.74a32,32,0,0,0,23.42,3.35l.16-.12Z"/><path class="cls-1" d="M39.7,57.07h0l-.16.12Z"/><path class="cls-2" d="M17.5,27.09a13.87,13.87,0,0,1,.68,1.45A6.66,6.66,0,0,1,17.5,27.09Zm1.83,6.71c0-.54-.1-1.07-.17-1.59-.14,5.08-3.05,9-5.86,9.23-1.65.12-3.23-1.15-4.38-3.23,1.05,3.82,3.25,6.44,5.6,6.28C17.56,44.28,19.72,39.49,19.33,33.8ZM29,22.44l2-1.89s.54-.44.21-.83a3.07,3.07,0,0,0-2.78-1.31C27.88,19.61,29,22.44,29,22.44Zm3.61,13,4.85.27A36.35,36.35,0,0,0,33.59,44l3.25-.71c-.68,6.56,2.86,13.76,2.86,13.76-3.19-15.43,9.17-26.58,11.2-28.91,2.38-2.73,1.64-7.34,1.64-7.34S48.81,29.29,32.59,35.41Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="artwork" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64.08 64.08"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#fff;}.cls-3{fill:#0e4377;}</style><linearGradient id="linear-gradient" x1="25.21" y1="57.37" x2="34.21" y2="6.34" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#13599e"/><stop offset="0.08" stop-color="#1561ad"/><stop offset="0.22" stop-color="#176dc1"/><stop offset="0.36" stop-color="#1974ce"/><stop offset="0.5" stop-color="#1976d2"/><stop offset="0.64" stop-color="#1974ce"/><stop offset="0.78" stop-color="#176dc1"/><stop offset="0.92" stop-color="#1561ad"/><stop offset="1" stop-color="#13599e"/></linearGradient></defs><path class="cls-1" d="M39.7,57.07h0c-3.19-15.43,9.17-26.58,11.2-28.91,2.25-2.58,1.71-6.83,1.65-7.29h0v-.05c.36-2.27-2.17-6.93-2.17-6.93,1.42-2.39-.59-5.22-2.68-5.11a2.73,2.73,0,0,0-2.57,1.82,43.59,43.59,0,0,0-6.82,4,10.33,10.33,0,0,1-10.42,1.46c-3.46-1.28-7.52,2.57-7.52,2.57L15,24.35a3.35,3.35,0,0,0-1.92-.49c-3,.21-5.2,5-4.81,10.69A16.16,16.16,0,0,0,9,38.36s-.06-.1-.08-.15c1.05,3.82,3.25,6.44,5.6,6.28,3-.21,5.2-5,4.81-10.69,0-.54-.1-1.07-.17-1.59h0v0a23.48,23.48,0,0,1,2.22,5.92c1.2,4.86-1.6,11.5-5.25,15.74a32,32,0,0,0,23.42,3.35l.16-.12Z"/><path class="cls-2" d="M39.7,57.07h0l-.16.12Z"/><path class="cls-3" d="M17.5,27.09a13.87,13.87,0,0,1,.68,1.45A6.66,6.66,0,0,1,17.5,27.09Zm1.83,6.71c0-.54-.1-1.07-.17-1.59-.14,5.08-3.05,9-5.86,9.23-1.65.12-3.23-1.15-4.38-3.23,1.05,3.82,3.25,6.44,5.6,6.28C17.56,44.28,19.72,39.49,19.33,33.8ZM29,22.44l2-1.89s.54-.44.21-.83a3.07,3.07,0,0,0-2.78-1.31C27.88,19.61,29,22.44,29,22.44Zm3.61,13,4.85.27A36.35,36.35,0,0,0,33.59,44l3.25-.71c-.68,6.56,2.86,13.76,2.86,13.76-3.19-15.43,9.17-26.58,11.2-28.91,2.38-2.73,1.64-7.34,1.64-7.34S48.81,29.29,32.59,35.41Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="artwork" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 70.92 72.11"><defs><style>.cls-1{fill:url(#radial-gradient);}.cls-2{fill:#1976d2;}.cls-3{fill:#0e4377;}</style><radialGradient id="radial-gradient" cx="38.88" cy="31.59" r="31.82" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1976d2"/><stop offset="0.51" stop-color="#1975d0"/><stop offset="0.7" stop-color="#1871c9"/><stop offset="0.83" stop-color="#176bbe"/><stop offset="0.93" stop-color="#1561ad"/><stop offset="1" stop-color="#13599e"/></radialGradient></defs><path class="cls-1" d="M38.88,0A32,32,0,0,0,23,59.84C26.6,55.6,29.4,49,28.2,44.1A23.1,23.1,0,0,0,26,38.18v0h0q.12.78.18,1.59c.38,5.69-1.77,10.48-4.82,10.69-2.35.16-4.54-2.46-5.6-6.28l.09.15a15.67,15.67,0,0,1-.7-3.81c-.39-5.7,1.76-10.48,4.81-10.69a3.37,3.37,0,0,1,1.92.49l5.32-5.69s4.06-3.85,7.53-2.57a10.33,10.33,0,0,0,10.42-1.46,43.27,43.27,0,0,1,6.81-4,2.73,2.73,0,0,1,2.58-1.82c2.08-.11,4.1,2.72,2.67,5.11,0,0,2.54,4.66,2.18,6.93v.05h0c.07.46.61,4.71-1.64,7.29-2,2.33-14.4,13.48-11.2,28.91h0l-.16.12a32.66,32.66,0,0,0,4.4-1.4,10.42,10.42,0,0,1,10.27-8.62h0a11.52,11.52,0,0,1,1.76.16A32,32,0,0,0,38.88,0Z"/><path class="cls-2" d="M67.39,58a8.48,8.48,0,0,0-14.3,8.57A37.1,37.1,0,0,1,3.48,22.61a1.12,1.12,0,0,0-.8-1.37A1.13,1.13,0,0,0,1.3,22,39.35,39.35,0,0,0,32,70.74a40.17,40.17,0,0,0,7.46.71,38.79,38.79,0,0,0,14.7-2.9c.18.24.36.48.56.71a8.49,8.49,0,0,0,12,.7,8.49,8.49,0,0,0,.7-12ZM66.1,67.39a5.92,5.92,0,0,1-.87.94,6.21,6.21,0,0,1-.89.66l-.09.05a6,6,0,0,1-.92.45l-.14.05a6.24,6.24,0,0,1-.94.26l-.16,0a6.35,6.35,0,0,1-1,.08h-.24l-.35,0-.28,0-.34,0-.28-.06a2.14,2.14,0,0,1-.34-.09L59,69.58l-.33-.13-.26-.1-.33-.17-.24-.13-.33-.21-.21-.14L57,68.42l-.17-.14c-.16-.15-.32-.31-.47-.48a6.31,6.31,0,0,1-1.52-5.15c0-.2.08-.4.13-.6a6.27,6.27,0,0,1,1.92-3.14h0a6.21,6.21,0,0,1,.89-.66l.08,0a6.63,6.63,0,0,1,.93-.45l.13,0a6.71,6.71,0,0,1,1-.26l.16,0a6.35,6.35,0,0,1,1-.08h.24l.35,0,.28,0,.34,0,.28.06a2.14,2.14,0,0,1,.34.09l.27.08.33.12.26.11.33.17.24.13a3.53,3.53,0,0,1,.32.21l.22.14.34.28.17.14c.16.15.32.31.47.48a6.28,6.28,0,0,1,.34,8Z"/><path class="cls-2" d="M58.76,64.46a3.24,3.24,0,0,1,2.29-5.52,3.23,3.23,0,0,1,2.28,5.52l-1.06,1.07h-.34v-4a.64.64,0,0,1-.19-.13h0a.68.68,0,0,1-.2-.49.64.64,0,0,1,.2-.48h0a.64.64,0,0,1,.48-.2.68.68,0,0,1,.49.2h0a.68.68,0,0,1,.2.48.72.72,0,0,1-.2.49.69.69,0,0,1-.2.13v2.87l.41-.41a2.65,2.65,0,1,0-3.74,0l.4.41v-.58a.8.8,0,0,1-.19-.13h0a.72.72,0,0,1-.2-.49.68.68,0,0,1,.2-.48h0a.68.68,0,0,1,.49-.2.64.64,0,0,1,.48.2h0a.64.64,0,0,1,.2.48.68.68,0,0,1-.2.49.64.64,0,0,1-.19.13v1.66h-.34l-1.07-1.07Zm3.61-3.65h0a.19.19,0,0,0-.15-.06.2.2,0,0,0-.15.06A.21.21,0,0,0,62,61a.24.24,0,0,0,.07.16h0a.22.22,0,0,0,.3,0,.24.24,0,0,0,.07-.16.21.21,0,0,0-.07-.15ZM60,63.1h0a.2.2,0,0,0-.15-.06.23.23,0,0,0-.16.06.25.25,0,0,0-.06.15.28.28,0,0,0,.06.16h0a.28.28,0,0,0,.16.06.25.25,0,0,0,.15-.06.23.23,0,0,0,.06-.16A.2.2,0,0,0,60,63.1Zm1-1.68a.68.68,0,0,1,.48.2h0a.69.69,0,0,1,.21.49.65.65,0,0,1-.21.48.67.67,0,0,1-.19.14v2.8h-.58v-2.8a.67.67,0,0,1-.19-.14h0a.65.65,0,0,1-.21-.48.69.69,0,0,1,.21-.49h0A.68.68,0,0,1,61.05,61.42Zm.15.53h0a.25.25,0,0,0-.15-.06.23.23,0,0,0-.15.06.24.24,0,0,0-.07.16.21.21,0,0,0,.07.15h0a.2.2,0,0,0,.15.07.24.24,0,0,0,.22-.22A.2.2,0,0,0,61.2,62Z"/><path class="cls-2" d="M59.79,65.91h2.52a.3.3,0,0,1,.3.3h0a.3.3,0,0,1-.3.3H59.79a.3.3,0,0,1-.3-.3h0A.3.3,0,0,1,59.79,65.91Z"/><path class="cls-2" d="M60,66.8h2.17a.29.29,0,0,1,.27.3h0a.29.29,0,0,1-.27.3H60a.29.29,0,0,1-.26-.3h0A.29.29,0,0,1,60,66.8Z"/><path class="cls-2" d="M60.35,67.71h1.4a.71.71,0,0,1-1.4,0Z"/><path class="cls-3" d="M24.33,33.09A13.89,13.89,0,0,1,25,34.54,7.24,7.24,0,0,1,24.33,33.09Zm1.84,6.71Q26.11,39,26,38.21c-.14,5.08-3,9-5.85,9.23-1.66.12-3.23-1.15-4.39-3.23,1.06,3.82,3.25,6.44,5.6,6.28C24.4,50.28,26.55,45.49,26.17,39.8Zm9.65-11.36,2-1.89s.54-.44.21-.83a3.05,3.05,0,0,0-2.77-1.31C34.72,25.61,35.82,28.44,35.82,28.44Zm3.6,13,4.86.27A35.82,35.82,0,0,0,40.43,50l3.25-.71c-.68,6.56,2.86,13.76,2.86,13.76-3.2-15.43,9.17-26.58,11.2-28.91,2.38-2.73,1.64-7.34,1.64-7.34S55.64,35.29,39.42,41.41Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="artwork" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64.08 64.08"><defs><style>.cls-1{fill:url(#radial-gradient);}.cls-2{fill:#0e4377;}</style><radialGradient id="radial-gradient" cx="32.04" cy="32.04" r="32.04" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1976d2"/><stop offset="0.51" stop-color="#1975d0"/><stop offset="0.7" stop-color="#1871c9"/><stop offset="0.83" stop-color="#176bbe"/><stop offset="0.93" stop-color="#1561ad"/><stop offset="1" stop-color="#13599e"/></radialGradient></defs><path class="cls-1" d="M64.08,32a32,32,0,1,0-48,27.8C19.77,55.6,22.57,49,21.37,44.1a23.48,23.48,0,0,0-2.22-5.92v0h0c.07.52.13,1,.17,1.59.39,5.69-1.77,10.48-4.81,10.69-2.35.16-4.55-2.46-5.6-6.28,0,0,.06.1.08.15a16.16,16.16,0,0,1-.7-3.81c-.39-5.7,1.77-10.48,4.81-10.69a3.35,3.35,0,0,1,1.92.49l5.33-5.69s4.06-3.85,7.52-2.57A10.33,10.33,0,0,0,38.3,20.63a43.59,43.59,0,0,1,6.82-4,2.73,2.73,0,0,1,2.57-1.82c2.09-.11,4.1,2.72,2.68,5.11,0,0,2.53,4.66,2.17,6.93v.05h0c.06.46.6,4.71-1.65,7.29-2,2.33-14.39,13.48-11.2,28.91h0l-.16.12h0A32,32,0,0,0,64.08,32Z"/><path class="cls-2" d="M17.5,33.09a13.87,13.87,0,0,1,.68,1.45A6.66,6.66,0,0,1,17.5,33.09Zm1.83,6.71c0-.54-.1-1.07-.17-1.59-.14,5.08-3.05,9-5.86,9.23-1.65.12-3.23-1.15-4.38-3.23,1.05,3.82,3.25,6.44,5.6,6.28C17.56,50.28,19.72,45.49,19.33,39.8ZM29,28.44l2-1.89s.54-.44.21-.83a3.07,3.07,0,0,0-2.78-1.31C27.88,25.61,29,28.44,29,28.44Zm3.61,13,4.85.27A36.35,36.35,0,0,0,33.59,50l3.25-.71c-.68,6.56,2.86,13.76,2.86,13.76-3.19-15.43,9.17-26.58,11.2-28.91,2.38-2.73,1.64-7.34,1.64-7.34S48.81,35.29,32.59,41.41Z"/></svg>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import ReactJson, { type CollapsedFieldProps } from '@microlink/react-json-view';
|
|
2
|
+
import { Clear } from '@mui/icons-material';
|
|
3
|
+
import { IconButton, Skeleton, Stack } from '@mui/material';
|
|
4
|
+
import { useAppTheme } from 'commons/components/app/hooks';
|
|
5
|
+
import Phrase from 'components/elements/addons/search/phrase/Phrase';
|
|
6
|
+
import { useMyLocalStorageItem } from 'components/hooks/useMyLocalStorage';
|
|
7
|
+
import { useCallback, useEffect, useMemo, useState, type FC } from 'react';
|
|
8
|
+
import { useTranslation } from 'react-i18next';
|
|
9
|
+
import { StorageKey } from 'utils/constants';
|
|
10
|
+
import { validateRegex } from 'utils/stringUtils';
|
|
11
|
+
import Throttler from 'utils/Throttler';
|
|
12
|
+
import { removeEmpty, searchObject } from 'utils/utils';
|
|
13
|
+
|
|
14
|
+
const THROTTLER = new Throttler(150);
|
|
15
|
+
|
|
16
|
+
const JSONViewer: FC<{ data: object; collapse?: boolean; hideSearch?: boolean; filter?: string }> = ({
|
|
17
|
+
data,
|
|
18
|
+
collapse = true,
|
|
19
|
+
hideSearch = false,
|
|
20
|
+
filter
|
|
21
|
+
}) => {
|
|
22
|
+
const { t } = useTranslation();
|
|
23
|
+
const { isDark } = useAppTheme();
|
|
24
|
+
const [compact] = useMyLocalStorageItem<boolean>(StorageKey.COMPACT_JSON, true);
|
|
25
|
+
const [flat] = useMyLocalStorageItem<boolean>(StorageKey.FLATTEN_JSON);
|
|
26
|
+
|
|
27
|
+
const [query, setQuery] = useState('');
|
|
28
|
+
const [result, setResult] = useState<any>(null);
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
THROTTLER.debounce(() => {
|
|
32
|
+
const filteredData = removeEmpty(data, compact);
|
|
33
|
+
|
|
34
|
+
const searchedData = searchObject(filteredData, filter ?? query, flat);
|
|
35
|
+
|
|
36
|
+
setResult(searchedData);
|
|
37
|
+
});
|
|
38
|
+
}, [compact, data, filter, flat, query]);
|
|
39
|
+
|
|
40
|
+
const hasError = useMemo(() => !validateRegex(filter ?? query), [query, filter]);
|
|
41
|
+
|
|
42
|
+
const shouldCollapse = useCallback((field: CollapsedFieldProps) => {
|
|
43
|
+
return (field.name !== 'root' && field.type !== 'object') || field.namespace.length > 3;
|
|
44
|
+
}, []);
|
|
45
|
+
|
|
46
|
+
const renderer = useMemo(
|
|
47
|
+
() =>
|
|
48
|
+
result && (
|
|
49
|
+
<ReactJson
|
|
50
|
+
src={result}
|
|
51
|
+
theme={isDark ? 'summerfruit' : 'summerfruit:inverted'}
|
|
52
|
+
indentWidth={2}
|
|
53
|
+
displayDataTypes={!compact}
|
|
54
|
+
displayObjectSize={!compact}
|
|
55
|
+
shouldCollapse={collapse ? shouldCollapse : false}
|
|
56
|
+
quotesOnKeys={false}
|
|
57
|
+
style={{ flex: 1, overflow: 'auto', height: '100%', fontSize: compact ? 'small' : 'smaller' }}
|
|
58
|
+
enableClipboard={_data => {
|
|
59
|
+
if (typeof _data.src === 'string') {
|
|
60
|
+
navigator.clipboard.writeText(_data.src);
|
|
61
|
+
} else {
|
|
62
|
+
navigator.clipboard.writeText(JSON.stringify(_data.src));
|
|
63
|
+
}
|
|
64
|
+
}}
|
|
65
|
+
{...({
|
|
66
|
+
// Type declaration is wrong - this is a valid prop
|
|
67
|
+
displayArrayKey: !compact
|
|
68
|
+
} as any)}
|
|
69
|
+
/>
|
|
70
|
+
),
|
|
71
|
+
[collapse, compact, isDark, result, shouldCollapse]
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
return data ? (
|
|
75
|
+
<Stack direction="column" spacing={1} sx={{ '& > div:first-of-type': { mt: 1, mr: 0.5 } }}>
|
|
76
|
+
{!hideSearch && (
|
|
77
|
+
<Phrase
|
|
78
|
+
value={query}
|
|
79
|
+
onChange={setQuery}
|
|
80
|
+
error={hasError}
|
|
81
|
+
label={t('json.viewer.search.label')}
|
|
82
|
+
placeholder={t('json.viewer.search.prompt')}
|
|
83
|
+
disabled={!result}
|
|
84
|
+
endAdornment={
|
|
85
|
+
<IconButton onClick={() => setQuery('')}>
|
|
86
|
+
<Clear />
|
|
87
|
+
</IconButton>
|
|
88
|
+
}
|
|
89
|
+
/>
|
|
90
|
+
)}
|
|
91
|
+
{renderer}
|
|
92
|
+
</Stack>
|
|
93
|
+
) : (
|
|
94
|
+
<Skeleton width="100%" height="95%" variant="rounded" />
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default JSONViewer;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type * as mdast from 'mdast';
|
|
2
|
+
import type { Plugin } from 'unified';
|
|
3
|
+
import { visit } from 'unist-util-visit';
|
|
4
|
+
|
|
5
|
+
//this plugins aims to bring docusaurus tabs functionality to base react-markdown.
|
|
6
|
+
//will expose a code tabs elements which can be later rendered with a custom component
|
|
7
|
+
|
|
8
|
+
const findTabs = (index, parent) => {
|
|
9
|
+
const { children } = parent;
|
|
10
|
+
const tabs = [];
|
|
11
|
+
|
|
12
|
+
while (index++ < children.length) {
|
|
13
|
+
const child = children[index];
|
|
14
|
+
|
|
15
|
+
if (child && child.type === 'code') {
|
|
16
|
+
const metaString = `${child.lang ?? ''} ${child.meta ?? ''}`.trim();
|
|
17
|
+
if (!metaString) break;
|
|
18
|
+
const [tabtitle] = metaString.match(/(?<=tab=("|'))(.*?)(?=("|'))/) ?? [''];
|
|
19
|
+
if (!tabtitle) {
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.warn('Failed to parse tab title.');
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
tabs.push({ title: tabtitle, lang: child.lang, value: child.value });
|
|
26
|
+
} else {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return tabs;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const codeTabs: Plugin<[], mdast.Root> = () => {
|
|
35
|
+
return (tree, file) => {
|
|
36
|
+
visit(tree, 'code', (node, index, parent) => {
|
|
37
|
+
const metaString = `${node.lang ?? ''} ${node.meta ?? ''}`.trim();
|
|
38
|
+
if (!metaString) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const [tab] = metaString.match(/(?<=tab=("|'))(.*?)(?=("|'))/) ?? [''];
|
|
42
|
+
if (!tab && metaString.includes('tab=')) {
|
|
43
|
+
file.message('Invalid tab title', node, 'remark-code-title');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!tab) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const tabs = [{ title: tab, lang: node.lang, value: node.value }, ...findTabs(index, parent)];
|
|
51
|
+
|
|
52
|
+
if (tabs.length > 1) {
|
|
53
|
+
const tabsNode: mdast.Code = {
|
|
54
|
+
type: 'code',
|
|
55
|
+
lang: 'tabs',
|
|
56
|
+
value: JSON.stringify(tabs)
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
parent.children.splice(index, tabs.length, tabsNode);
|
|
60
|
+
|
|
61
|
+
return index + tabs.length - 1;
|
|
62
|
+
} else {
|
|
63
|
+
const titleNode: mdast.Paragraph = {
|
|
64
|
+
type: 'paragraph',
|
|
65
|
+
data: {
|
|
66
|
+
hName: 'div',
|
|
67
|
+
hProperties: {
|
|
68
|
+
'data-remark-code-title': true,
|
|
69
|
+
'data-language': node.lang
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
children: [{ type: 'text', value: tab }]
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
parent.children.splice(index, 0, titleNode);
|
|
76
|
+
/* Skips this node (title) and the next node (code) */
|
|
77
|
+
return index + 2;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
};
|