All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.app.297742cda878c845f95a.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"app.297742cda878c845f95a.js","mappings":"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B,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,cAAc,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,cAAc,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,eAAe,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,eAAe,uBAAuB,gBAAgB,uBAAuB,eAAe,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAAgB,uBAAuB,gBAA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","sources":["webpack://graylog-web-interface/./public/stylesheets/typeahead.less","webpack://graylog-web-interface/./src/components/common/ExpandableList.css","webpack://graylog-web-interface/./src/components/common/SelectPopover.css","webpack://graylog-web-interface/./src/components/event-definitions/common/HelpPanel.css","webpack://graylog-web-interface/./src/components/event-definitions/common/commonStyles.css","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/CommonFieldValueProviderSummary.css","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderPreview.css","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpression.css","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterAggregationSummary.css","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterPreview.css","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/CommonNotificationSummary.css","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/EmailNotificationSummary.css","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationCommonStyles.css","webpack://graylog-web-interface/./src/components/lookup-tables/Overview.css","webpack://graylog-web-interface/./src/util/UserNotification.css","webpack://graylog-web-interface/./src/views/components/common/EditableTitle.css","webpack://graylog-web-interface/./src/views/components/datatable/DataTable.css","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/decoratorStyles.css","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchForm.css","webpack://graylog-web-interface/./src/views/components/sidebar/fields/FieldTypeIcon.css","webpack://graylog-web-interface/./src/views/components/visualizations/worldmap/MapVisualization.css","webpack://graylog-web-interface/./src/views/components/widgets/MessageWidgets.css","webpack://graylog-web-interface/./src/views/pages/StyleFixups.css","webpack://graylog-web-interface/./src/views/components/visualizations/GenericPlot.lazy.css","webpack://graylog-web-interface/./src/actions/errors/ErrorsActions.js","webpack://graylog-web-interface/./src/store.ts","webpack://graylog-web-interface/./src/views/components/contexts/useSearchExecutors.ts","webpack://graylog-web-interface/./src/components/PluggableStoreProvider.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Alert.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Badge.tsx","webpack://graylog-web-interface/./src/components/bootstrap/BootstrapModalConfirm.tsx","webpack://graylog-web-interface/./src/components/bootstrap/BootstrapModalForm.tsx","webpack://graylog-web-interface/./src/components/bootstrap/BootstrapModalWrapper.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Button.tsx","webpack://graylog-web-interface/./src/components/bootstrap/ButtonGroup.tsx","webpack://graylog-web-interface/./src/components/bootstrap/ButtonToolbar.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Checkbox.tsx","webpack://graylog-web-interface/./src/components/bootstrap/ControlLabel.tsx","webpack://graylog-web-interface/./src/components/bootstrap/DropdownButton.tsx","webpack://graylog-web-interface/./src/components/bootstrap/FormControl.tsx","webpack://graylog-web-interface/./src/components/bootstrap/FormGroup.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Input.jsx","webpack://graylog-web-interface/./src/components/bootstrap/InputGroup.jsx","webpack://graylog-web-interface/./src/components/bootstrap/InputWrapper.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Menu.tsx","webpack://graylog-web-interface/./src/components/bootstrap/MenuItem.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Modal.tsx","webpack://graylog-web-interface/./src/util/deprecationNotice.js","webpack://graylog-web-interface/./src/components/bootstrap/Panel.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Row.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Table.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Well.jsx","webpack://graylog-web-interface/./src/components/bootstrap/HelpBlock.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Jumbotron.jsx","webpack://graylog-web-interface/./src/components/bootstrap/KeyboardKey.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Label.tsx","webpack://graylog-web-interface/./src/components/bootstrap/ListGroup.jsx","webpack://graylog-web-interface/./src/components/bootstrap/ListGroupItem.jsx","webpack://graylog-web-interface/./src/components/bootstrap/styles/nav-tabs.js","webpack://graylog-web-interface/./src/components/bootstrap/Nav.tsx","webpack://graylog-web-interface/./src/components/bootstrap/styles/menuItem.js","webpack://graylog-web-interface/./src/components/bootstrap/NavDropdown.tsx","webpack://graylog-web-interface/./src/components/bootstrap/NavItem.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Navbar.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Popover.tsx","webpack://graylog-web-interface/./src/components/bootstrap/SegmentedControl.tsx","webpack://graylog-web-interface/./src/components/bootstrap/SplitButton.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Tab.jsx","webpack://graylog-web-interface/./src/components/bootstrap/Tabs.tsx","webpack://graylog-web-interface/./src/components/bootstrap/Tooltip.jsx","webpack://graylog-web-interface/./src/components/common/BrandIcon.tsx","webpack://graylog-web-interface/./src/components/common/ClipboardButton.tsx","webpack://graylog-web-interface/./src/components/common/ColorPicker.tsx","webpack://graylog-web-interface/./src/components/common/ConfirmDialog.tsx","webpack://graylog-web-interface/./src/components/common/ConfirmLeaveDialog.tsx","webpack://graylog-web-interface/./src/components/common/ContentHeadRow.tsx","webpack://graylog-web-interface/./src/components/common/ControlledTableListHeader.tsx","webpack://graylog-web-interface/./src/components/common/ControlledTableList.tsx","webpack://graylog-web-interface/./src/components/common/ControlledTableListItem.tsx","webpack://graylog-web-interface/./src/components/common/DataTable/Filter.jsx","webpack://graylog-web-interface/./src/components/common/DataTable/DataTableElement.jsx","webpack://graylog-web-interface/./src/components/common/DataTable/DataTable.jsx","webpack://graylog-web-interface/./src/components/common/DataTable/index.js","webpack://graylog-web-interface/./src/components/common/Delayed.tsx","webpack://graylog-web-interface/./src/components/common/DocumentTitle.tsx","webpack://graylog-web-interface/./src/components/common/ElementDimensions.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/BulkActionsDropdown.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/Constants.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/contexts/ExpandedSectionsContext.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/contexts/SelectEntitiesContext.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/hooks/useSelectedEntities.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/hooks/useTableLayout.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/hooks/useUpdateUserLayoutPreferences.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/hooks/useUserLayoutPreferences.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/ColumnsVisibilitySelect.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/DefaultColumnRenderers.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/hooks/useColumnsWidths.ts","webpack://graylog-web-interface/./src/components/common/EntityDataTable/ExpandedSections.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/contexts/SelectedEntitiesProvider.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/BulkActionsRow.tsx","webpack://graylog-web-interface/./src/components/streams/StreamsOverview/SortIcon.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/RowCheckbox.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/BulkSelectHead.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/TableHead.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/TableCell.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/TableRow.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/contexts/ExpandedSectionsProvider.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/EntityDataTable.tsx","webpack://graylog-web-interface/./src/components/common/EntityDataTable/index.tsx","webpack://graylog-web-interface/./src/components/common/EntityList.tsx","webpack://graylog-web-interface/./src/components/common/EntityListItem.tsx","webpack://graylog-web-interface/./src/components/common/FormikInput.tsx","webpack://graylog-web-interface/./src/components/common/HoverForHelp.tsx","webpack://graylog-web-interface/./src/components/common/Icon/Icon.tsx","webpack://graylog-web-interface/./src/components/common/Icon/index.ts","webpack://graylog-web-interface/./src/components/common/IconButton.tsx","webpack://graylog-web-interface/./src/components/common/IfPermitted.tsx","webpack://graylog-web-interface/./src/components/common/InputDescription.tsx","webpack://graylog-web-interface/./src/components/common/InteractableModal.tsx","webpack://graylog-web-interface/./src/components/common/LoadingIndicator.tsx","webpack://graylog-web-interface/./src/components/common/Markdown.tsx","webpack://graylog-web-interface/./src/components/common/ModalSubmit.tsx","webpack://graylog-web-interface/./src/components/common/MultiSelect.tsx","webpack://graylog-web-interface/./src/components/common/NavItemStateIndicator.tsx","webpack://graylog-web-interface/./src/components/common/NoEntitiesExist.tsx","webpack://graylog-web-interface/./src/components/common/OverlayDropdown.tsx","webpack://graylog-web-interface/./src/hooks/useClickOutside.ts","webpack://graylog-web-interface/./src/components/common/OverlayTrigger.tsx","webpack://graylog-web-interface/./src/components/common/PageHeader.tsx","webpack://graylog-web-interface/./src/components/common/PageSizeSelect.tsx","webpack://graylog-web-interface/./src/components/common/PaginatedItemOverview/PaginatedItem.tsx","webpack://graylog-web-interface/./src/components/common/PaginatedItemOverview/PaginatedItemOverview.tsx","webpack://graylog-web-interface/./src/components/common/PaginatedList.tsx","webpack://graylog-web-interface/./src/components/common/Pagination.tsx","webpack://graylog-web-interface/./src/components/common/Pluralize.jsx","webpack://graylog-web-interface/./src/components/common/Popover.tsx","webpack://graylog-web-interface/./src/components/common/ProgressBar.tsx","webpack://graylog-web-interface/./src/components/common/PublicNotifications.tsx","webpack://graylog-web-interface/./src/components/common/QueryHelper.tsx","webpack://graylog-web-interface/./src/components/common/ReactGridContainer.tsx","webpack://graylog-web-interface/./src/components/common/ReadableDuration.tsx","webpack://graylog-web-interface/./src/components/common/RelativeTime.tsx","webpack://graylog-web-interface/./src/components/common/SearchForm.tsx","webpack://graylog-web-interface/./src/components/common/Section/SectionComponent.tsx","webpack://graylog-web-interface/./src/components/common/Section/SectionGrid.tsx","webpack://graylog-web-interface/./src/components/common/Select/CustomMenuList.tsx","webpack://graylog-web-interface/./src/components/common/Select/AsyncCustomMenuList.tsx","webpack://graylog-web-interface/./src/components/common/Select/Select.tsx","webpack://graylog-web-interface/./src/components/common/Select/index.tsx","webpack://graylog-web-interface/./src/components/common/SortIcon.tsx","webpack://graylog-web-interface/./src/components/common/SortableList/ListItem.tsx","webpack://graylog-web-interface/./src/components/common/SortableList/SortableListItem.tsx","webpack://graylog-web-interface/./src/components/common/SortableList/List.tsx","webpack://graylog-web-interface/./src/components/common/SortableList/SortableList.tsx","webpack://graylog-web-interface/./src/components/common/SortableList/index.ts","webpack://graylog-web-interface/./src/components/common/Spinner.tsx","webpack://graylog-web-interface/./src/components/common/TextOverflowEllipsis.tsx","webpack://graylog-web-interface/./src/components/common/TimeUnitInput.jsx","webpack://graylog-web-interface/./src/components/common/Timestamp.tsx","webpack://graylog-web-interface/./src/components/common/Tooltip.tsx","webpack://graylog-web-interface/./src/components/common/TypeAheadDataFilter.jsx","webpack://graylog-web-interface/./src/components/common/TypeAheadInput.jsx","webpack://graylog-web-interface/./src/components/common/Wizard.tsx","webpack://graylog-web-interface/./src/components/common/carousel/CarouselSlide.tsx","webpack://graylog-web-interface/./src/components/common/carousel/Carousel.tsx","webpack://graylog-web-interface/./src/components/common/Accordion.tsx","webpack://graylog-web-interface/./src/components/common/AccordionItem.tsx","webpack://graylog-web-interface/./src/components/common/Affix.tsx","webpack://graylog-web-interface/./src/components/common/Autocomplete/Autocomplete.tsx","webpack://graylog-web-interface/./src/components/common/BrowserTime.tsx","webpack://graylog-web-interface/./src/components/common/Center.tsx","webpack://graylog-web-interface/./src/components/common/ColorPickerPopover.tsx","webpack://graylog-web-interface/./src/components/common/CopyToClipboardCapture.tsx","webpack://graylog-web-interface/./src/components/common/CountBadge.tsx","webpack://graylog-web-interface/./src/components/common/DatePicker.tsx","webpack://graylog-web-interface/./src/components/common/DropdownMenu.tsx","webpack://graylog-web-interface/./src/components/common/DropdownSubmenu.tsx","webpack://graylog-web-interface/./src/components/common/EmptyEntity.tsx","webpack://graylog-web-interface/./src/components/common/NoSearchResult.tsx","webpack://graylog-web-interface/./src/components/common/EnterprisePluginNotFound.tsx","webpack://graylog-web-interface/./src/components/common/ErrorAlert.tsx","webpack://graylog-web-interface/./src/components/common/ExpandableList.css?7420","webpack://graylog-web-interface/./src/components/common/ExpandableList.tsx","webpack://graylog-web-interface/./src/components/common/ExpandableListItem.tsx","webpack://graylog-web-interface/./src/components/common/ExternalLink.tsx","webpack://graylog-web-interface/./src/components/common/ExternalLinkButton.tsx","webpack://graylog-web-interface/./src/components/common/FlatContentRow.tsx","webpack://graylog-web-interface/./src/components/common/FormikFormGroup.tsx","webpack://graylog-web-interface/./src/components/common/FormSubmit.tsx","webpack://graylog-web-interface/./src/components/common/HasOwnership.tsx","webpack://graylog-web-interface/./src/components/common/ISODurationInput.tsx","webpack://graylog-web-interface/./src/components/common/InputOptionalInfo.tsx","webpack://graylog-web-interface/./src/components/common/InputList/useInputListStyles.tsx","webpack://graylog-web-interface/./src/components/common/InputList/InputList.types.ts","webpack://graylog-web-interface/./src/components/common/InputList/InputList.tsx","webpack://graylog-web-interface/./src/components/common/InputList/index.tsx","webpack://graylog-web-interface/./src/components/common/JSONValueInput.jsx","webpack://graylog-web-interface/./src/components/common/KeyCapture.tsx","webpack://graylog-web-interface/./src/components/common/KeyValueTable.jsx","webpack://graylog-web-interface/./src/components/common/LinkButton.tsx","webpack://graylog-web-interface/./src/components/common/LinkToNode.jsx","webpack://graylog-web-interface/./src/components/common/ListingWithCount.tsx","webpack://graylog-web-interface/./src/components/common/LocaleSelect.tsx","webpack://graylog-web-interface/./src/components/common/MessageDetailsDefinitionList.jsx","webpack://graylog-web-interface/./src/components/common/NestedForm.tsx","webpack://graylog-web-interface/./src/components/common/PageErrorOverview.jsx","webpack://graylog-web-interface/./src/components/common/PaginatedDataTable/Filter.tsx","webpack://graylog-web-interface/./src/components/common/PaginatedDataTable/PaginatedDataTable.tsx","webpack://graylog-web-interface/./src/components/common/PaginatedDataTable/index.tsx","webpack://graylog-web-interface/./src/components/common/Portal.tsx","webpack://graylog-web-interface/./src/components/common/ReadOnlyFormGroup.tsx","webpack://graylog-web-interface/./src/components/common/ScrollButton.jsx","webpack://graylog-web-interface/./src/components/common/SelectPopover.css?86b8","webpack://graylog-web-interface/./src/components/common/SelectPopover.jsx","webpack://graylog-web-interface/./src/components/common/SelectableList.jsx","webpack://graylog-web-interface/./src/components/permissions/SharingDisabledPopover.tsx","webpack://graylog-web-interface/./src/components/common/ShareButton.tsx","webpack://graylog-web-interface/./src/components/common/TimeUnit.jsx","webpack://graylog-web-interface/./src/components/common/TimezoneSelect.jsx","webpack://graylog-web-interface/./src/components/common/TypeAheadFieldInput.jsx","webpack://graylog-web-interface/./src/components/common/URLWhiteListFormModal.tsx","webpack://graylog-web-interface/./src/components/common/URLWhiteListInput.tsx","webpack://graylog-web-interface/./src/components/common/Toggle.tsx","webpack://graylog-web-interface/./src/components/common/SearchFiltersFormControls.tsx","webpack://graylog-web-interface/./src/components/common/index.tsx","webpack://graylog-web-interface/./src/components/common/router.tsx","webpack://graylog-web-interface/./src/components/common/withPaginationQueryParameter.tsx","webpack://graylog-web-interface/./src/components/configurationforms/BooleanField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/types.ts","webpack://graylog-web-interface/./src/components/configurationforms/ConfigurationForm.tsx","webpack://graylog-web-interface/./src/components/configurationforms/ConfigurationFormField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/ConfigurationWell.jsx","webpack://graylog-web-interface/./src/components/configurationforms/FieldHelpers.tsx","webpack://graylog-web-interface/./src/components/configurationforms/DropdownField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/EncryptedInlineBinaryField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/ListField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/NumberField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/TextField.tsx","webpack://graylog-web-interface/./src/components/configurationforms/TitleField.tsx","webpack://graylog-web-interface/./src/components/configurations/ConfigurationTypes.ts","webpack://graylog-web-interface/./src/components/configurations/UrlWhiteListForm.tsx","webpack://graylog-web-interface/./src/components/errors/ErrorJumbotron.jsx","webpack://graylog-web-interface/./src/components/errors/ErrorPage.tsx","webpack://graylog-web-interface/./src/components/event-definitions/common/HelpPanel.css?8b4d","webpack://graylog-web-interface/./src/components/event-definitions/common/HelpPanel.jsx","webpack://graylog-web-interface/./src/components/lookup-table-parameters/LookupTableParameterEdit.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/EditQueryParameterModal.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterForm.tsx","webpack://graylog-web-interface/./src/components/event-definitions/hooks/useEventDefinitions.ts","webpack://graylog-web-interface/./src/components/event-definitions/replay-search/LinkToReplaySearch.tsx","webpack://graylog-web-interface/./src/components/events/events/EventFields.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/EventDefinitionLink.tsx","webpack://graylog-web-interface/./src/components/events/events/EventDetails.tsx","webpack://graylog-web-interface/./src/components/events/events/EventTypeLabel.tsx","webpack://graylog-web-interface/./src/components/events/events/PriorityName.tsx","webpack://graylog-web-interface/./src/util/OSUtils.ts","webpack://graylog-web-interface/./src/components/hotkeys/HotkeyCollectionSection.tsx","webpack://graylog-web-interface/./src/components/layout/StandardFooter.tsx","webpack://graylog-web-interface/./src/components/layout/Footer.tsx","webpack://graylog-web-interface/./src/components/layout/PageContentLayout.tsx","webpack://graylog-web-interface/./src/components/login/LoginBox.tsx","webpack://graylog-web-interface/./src/components/login/LoginChrome.tsx","webpack://graylog-web-interface/./src/components/maps/adapter/MaxmindAdapterFieldSet.tsx","webpack://graylog-web-interface/./src/components/maps/adapter/MaxmindAdapterSummary.jsx","webpack://graylog-web-interface/./src/components/maps/adapter/MaxmindAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/components/maps/adapter/index.js","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/CSVFileAdapterFieldSet.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/CSVFileAdapterSummary.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/CSVFileAdapterDocumentation.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DnsAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DnsAdapterSummary.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DnsAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DSVHTTPAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DSVHTTPAdapterSummary.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/DSVHTTPAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/HTTPJSONPathAdapterFieldSet.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/HTTPJSONPathAdapterSummary.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/HTTPJSONPathAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/adapters/index.js","webpack://graylog-web-interface/./src/components/lookup-tables/caches/NullCacheFieldSet.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/caches/NullCacheSummary.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/caches/CaffeineCacheFieldSet.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/caches/SummaryComponents.styled.ts","webpack://graylog-web-interface/./src/components/lookup-tables/caches/CaffeineCacheSummary.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/caches/CaffeineCacheDocumentation.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/caches/index.js","webpack://graylog-web-interface/./src/components/lookup-tables/LUTTableEntry.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/Overview.css?fdd4","webpack://graylog-web-interface/./src/components/lookup-tables/LookupTablesOverview.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/LookupTableView.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/LookupTableForm.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/LookupTableFields.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/LookupTableCreate.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/CacheTableEntry.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/CachesOverview.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/Cache.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/CacheForm.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/CacheCreate.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/CachePicker.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/CachesContainer.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdapterTableEntry.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdaptersOverview.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/ConfigSummaryDefinitionListWrapper.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdapter.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdapterForm.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdapterCreate.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdapterPicker.tsx","webpack://graylog-web-interface/./src/components/lookup-tables/DataAdaptersContainer.jsx","webpack://graylog-web-interface/./src/components/lookup-tables/ErrorPopover.tsx","webpack://graylog-web-interface/./src/components/metrics/CounterRate.jsx","webpack://graylog-web-interface/./src/components/metrics/Metric.tsx","webpack://graylog-web-interface/./src/components/metrics/MetricContainer.tsx","webpack://graylog-web-interface/./src/components/metrics/CounterDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/GaugeDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/HistogramDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/MeterDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/TimerDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/MetricDetails.tsx","webpack://graylog-web-interface/./src/components/metrics/MetricsComponent.tsx","webpack://graylog-web-interface/./src/components/metrics/MetricsList.tsx","webpack://graylog-web-interface/./src/components/metrics/MetricsMapper.jsx","webpack://graylog-web-interface/./src/components/notifications/GlobalAppNotifications.tsx","webpack://graylog-web-interface/./src/components/notifications/WithGlobalAppNotifications.tsx","webpack://graylog-web-interface/./src/components/common/SelectGroup.tsx","webpack://graylog-web-interface/./src/components/permissions/GranteeIcon.tsx","webpack://graylog-web-interface/./src/components/permissions/CapabilitySelect.tsx","webpack://graylog-web-interface/./src/components/permissions/GranteesSelector.tsx","webpack://graylog-web-interface/./src/components/permissions/GranteesListItem.tsx","webpack://graylog-web-interface/./src/components/permissions/GranteesList.tsx","webpack://graylog-web-interface/./src/components/permissions/DependenciesWarning.tsx","webpack://graylog-web-interface/./src/components/permissions/ValidationError.tsx","webpack://graylog-web-interface/./src/components/permissions/ShareableEntityURL.tsx","webpack://graylog-web-interface/./src/components/permissions/EntityShareSettings.tsx","webpack://graylog-web-interface/./src/components/permissions/EntityShareModal.tsx","webpack://graylog-web-interface/./src/components/perspectives/DefaultBrand.tsx","webpack://graylog-web-interface/./src/components/perspectives/contexts/PerspectivesContext.ts","webpack://graylog-web-interface/./src/components/perspectives/hooks/useActivePerspective.ts","webpack://graylog-web-interface/./src/components/search/MessageDetailsTitle.jsx","webpack://graylog-web-interface/./src/components/search/SurroundingSearchButton.tsx","webpack://graylog-web-interface/./src/components/security/page-layout/SideNav.tsx","webpack://graylog-web-interface/./src/components/security/page-layout/ContentArea.tsx","webpack://graylog-web-interface/./src/components/security/page-layout/Container.tsx","webpack://graylog-web-interface/./src/components/security/page-layout/SideNavItem.tsx","webpack://graylog-web-interface/./src/components/security/teaser/TeaserPageLayout.tsx","webpack://graylog-web-interface/./src/components/security/pages/index.ts","webpack://graylog-web-interface/./src/components/security/teaser/SecurityPage.tsx","webpack://graylog-web-interface/./src/components/security/SecurityPageEntry.tsx","webpack://graylog-web-interface/./src/components/security/bindings.ts","webpack://graylog-web-interface/./src/components/sidecars/common/ColorLabel.tsx","webpack://graylog-web-interface/./src/components/streams/StreamLink.tsx","webpack://graylog-web-interface/./src/components/streams/hooks/useStream.ts","webpack://graylog-web-interface/./src/components/support/DocumentationLink.tsx","webpack://graylog-web-interface/./src/components/support/SupportSources.jsx","webpack://graylog-web-interface/./src/components/support/ContactUs.jsx","webpack://graylog-web-interface/./src/contexts/CurrentUserContext.tsx","webpack://graylog-web-interface/./src/contexts/FormWarningsContext.tsx","webpack://graylog-web-interface/./src/hooks/useIsMountedRef.ts","webpack://graylog-web-interface/./src/contexts/FormWarningsProvider.tsx","webpack://graylog-web-interface/./src/contexts/HotkeysContext.tsx","webpack://graylog-web-interface/./src/contexts/InputsContext.tsx","webpack://graylog-web-interface/./src/contexts/NodesContext.tsx","webpack://graylog-web-interface/./src/contexts/StreamsContext.tsx","webpack://graylog-web-interface/./src/contexts/UserDateTimeContext.ts","webpack://graylog-web-interface/./src/contexts/UserPreferencesContext.ts","webpack://graylog-web-interface/./src/contexts/WindowDimensionsContext.tsx","webpack://graylog-web-interface/./src/contexts/WindowDimensionsContextProvider.tsx","webpack://graylog-web-interface/./src/domainActions/notifyingAction.ts","webpack://graylog-web-interface/./src/domainActions/permissions/EntityShareDomain.ts","webpack://graylog-web-interface/./src/domainActions/users/UsersDomain.ts","webpack://graylog-web-interface/./src/hooks/useAlertAndEventDefinitionData.tsx","webpack://graylog-web-interface/./src/hooks/useCurrentUser.ts","webpack://graylog-web-interface/./src/hooks/useElementDimensions.ts","webpack://graylog-web-interface/./src/hooks/useEventById.tsx","webpack://graylog-web-interface/./src/hooks/useFeature.ts","webpack://graylog-web-interface/./src/hooks/useHotkey.tsx","webpack://graylog-web-interface/./src/hooks/useHotkeysContext.tsx","webpack://graylog-web-interface/./src/hooks/useInputs.ts","webpack://graylog-web-interface/./src/hooks/useNodeSummaries.ts","webpack://graylog-web-interface/./src/hooks/usePaginationQueryParameter.ts","webpack://graylog-web-interface/./src/hooks/usePluginEntities.ts","webpack://graylog-web-interface/./src/hooks/useScopePermissions.ts","webpack://graylog-web-interface/./src/hooks/useSearchConfiguration.ts","webpack://graylog-web-interface/./src/hooks/useUserDateTime.ts","webpack://graylog-web-interface/./src/webpack-entry.js","webpack://graylog-web-interface/./src/pages/ServerUnavailablePage.tsx","webpack://graylog-web-interface/./src/routing/AppFacade.tsx","webpack://graylog-web-interface/./src/actions/customizations/CustomizationActions.ts","webpack://graylog-web-interface/./src/stores/customizations/CustomizationsStore.ts","webpack://graylog-web-interface/./src/contexts/CustomizationContext.ts","webpack://graylog-web-interface/./src/contexts/CustomizationProvider.tsx","webpack://graylog-web-interface/./src/views/logic/searchtypes/messages/MessageListHandler.ts","webpack://graylog-web-interface/./src/views/components/widgets/Histogram.tsx","webpack://graylog-web-interface/./src/views/components/widgets/FieldSortIcon.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageTableProviders.tsx","webpack://graylog-web-interface/./src/views/components/widgets/MessageTable.tsx","webpack://graylog-web-interface/./src/views/components/widgets/useCurrentSearchTypesResults.ts","webpack://graylog-web-interface/./src/views/components/widgets/reexecuteSearchTypes.ts","webpack://graylog-web-interface/./src/views/components/widgets/MessageList.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/AddToTableActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/AddToAllTablesActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/DuplicateCommonWidgetSettings.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/AggregateActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChartActionHandler.ts","webpack://graylog-web-interface/./src/views/components/aggregationbuilder/AggregationBuilderPropTypes.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/XYVisualization.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/BarVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/components/visualizations/TransformKeys.ts","webpack://graylog-web-interface/./src/views/components/visualizations/ChartData.ts","webpack://graylog-web-interface/./src/views/components/visualizations/useMapKeys.ts","webpack://graylog-web-interface/./src/views/components/visualizations/useChartData.ts","webpack://graylog-web-interface/./src/views/components/visualizations/useEvents.ts","webpack://graylog-web-interface/./src/views/components/visualizations/PlotLegend.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/OnZoom.ts","webpack://graylog-web-interface/./src/views/components/visualizations/XYPlot.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/bar/BarVisualization.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/LineVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/Interpolation.ts","webpack://graylog-web-interface/./src/views/components/visualizations/line/LineVisualization.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/NumberVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/components/visualizations/number/Trend.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/number/AutoFontSizer.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/number/NumberVisualization.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/Viewport.ts","webpack://graylog-web-interface/./src/views/components/visualizations/worldmap/MapVisualization.css?5ac2","webpack://graylog-web-interface/./src/views/components/visualizations/worldmap/MapVisualization.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/worldmap/WorldMapVisualization.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/heatmap/HeatmapVisualization.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/AreaVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/components/MigrateFieldCharts.tsx","webpack://graylog-web-interface/./src/views/logic/searchtypes/aggregation/PivotConfigGenerator.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/pivot/PivotHandler.ts","webpack://graylog-web-interface/./src/views/logic/searchresulttransformers/PivotTransformer.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/FieldStatisticsHandler.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/ExcludeFromQueryHandler.ts","webpack://graylog-web-interface/./src/views/components/widgets/FieldSortSelect.tsx","webpack://graylog-web-interface/./src/views/components/widgets/SortDirectionSelect.tsx","webpack://graylog-web-interface/./src/views/components/aggregationbuilder/DescriptionBox.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/DecoratorSidebar.tsx","webpack://graylog-web-interface/./src/views/components/widgets/EditMessageList.tsx","webpack://graylog-web-interface/./src/views/pages/index.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/AddMessageCountActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/AddMessageTableActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/RemoveFromTableActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/RemoveFromAllTablesActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/creatoractions/AddCustomAggregation.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/SelectExtractorType.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/WorldMapVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/ShowDocumentsHandler.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/HighlightValueHandler.ts","webpack://graylog-web-interface/./src/views/components/searchbar/completions/token-helper.ts","webpack://graylog-web-interface/./src/views/components/searchbar/completions/FieldNameCompletion.ts","webpack://graylog-web-interface/./src/views/components/searchbar/completions/FieldValueCompletion.ts","webpack://graylog-web-interface/./src/views/components/searchbar/completions/OperatorCompletion.ts","webpack://graylog-web-interface/./src/views/pages/StyleFixups.css?f17e","webpack://graylog-web-interface/./src/views/components/views/MissingRequirements.tsx","webpack://graylog-web-interface/./src/views/hooks/RequirementsProvided.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/BigDisplayModeHeader.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/bigdisplay/CycleQueryTab.tsx","webpack://graylog-web-interface/./src/views/pages/ShowDashboardInBigDisplayMode.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/area/AreaVisualization.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/validations.ts","webpack://graylog-web-interface/./src/views/components/visualizations/area/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/bar/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/heatmap/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/line/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/number/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/pie/PieVisualization.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/pie/bindings.tsx","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/ScatterVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/components/visualizations/scatter/ScatterVisualization.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/scatter/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/worldmap/bindings.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/bindings.tsx","webpack://graylog-web-interface/./src/util/conditional/filterValueActions.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/CopyValueToClipboard.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/CopyFieldToClipboard.ts","webpack://graylog-web-interface/./src/views/components/views/ExecutionInfo.tsx","webpack://graylog-web-interface/./src/views/components/views/ViewHeader.tsx","webpack://graylog-web-interface/./src/views/viewsReducers.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/CheckBoxGroup.tsx","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/Constants.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/RadioSection.tsx","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/hooks/useLocalStorageConfigData.tsx","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/hooks/useModalReducer.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/CreateEventDefinitionModal.tsx","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/hooks/hookHelpers.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/hooks/useMappedData.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/hooks/useModalData.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/createEventDefinition/CreateEventDefinition.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useInitialSelection.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/ChangeFieldType.tsx","webpack://graylog-web-interface/./src/views/logic/widgets/events/EventsWidgetSortConfig.ts","webpack://graylog-web-interface/./src/views/logic/widgets/events/EventsWidgetConfig.ts","webpack://graylog-web-interface/./src/views/logic/widgets/events/EventsWidget.ts","webpack://graylog-web-interface/./src/views/logic/widgets/events/AddEventsWidgetActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/events/EventsListSortConfig.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/events/EventsListConfigGenerator.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/WidgetModeConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/ColumnSelect.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/UnknownAttributeTitle.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/SelectedColumnsList.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/ColumnsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/SortConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/filters/FilterSelect.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/filters/FilterEditButton.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/filters/SelectedFiltersList.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/filters/FiltersConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/hooks/useEventAttributes.ts","webpack://graylog-web-interface/./src/views/components/widgets/events/Constants.ts","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsWidgetEdit.tsx","webpack://graylog-web-interface/./src/components/events/events/hooks/useEventDefinition.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/filters/EventDefinitionName.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/eventsAttributes.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryvalidation/WarmTierErrorMessage.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryvalidation/WarmTierQueryValidation.tsx","webpack://graylog-web-interface/./src/views/logic/parameters/ValueParameter.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/messages/MessageSortConfig.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/messages/MessageConfigGenerator.ts","webpack://graylog-web-interface/./src/views/components/widgets/UnknownWidget.tsx","webpack://graylog-web-interface/./src/views/pages/NewSearchRedirectPage.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/EventDetails.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/RowActions.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/EventsTableRow.tsx","webpack://graylog-web-interface/./src/views/components/widgets/overview-configuration/AttributeSortIcon.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/EventsTable.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/EventsList.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsList/index.ts","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsNumber.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/EventsVisualization.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/filters/EventDefinitionFilter.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/filters/EventTypeFilter.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/filters/EventPriorityFilter.tsx","webpack://graylog-web-interface/./src/views/components/widgets/events/filters/filterComponents.tsx","webpack://graylog-web-interface/./src/views/bindings.tsx","webpack://graylog-web-interface/./src/threatintel/components/ThreatIntelPluginConfig.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/spamhaus-edrop/SpamhausEDROPAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/spamhaus-edrop/SpamhausEDROPAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/spamhaus-edrop/SpamhausEDROPAdapterSummary.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/torexitnode/TorExitNodeAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/torexitnode/TorExitNodeAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/torexitnode/TorExitNodeAdapterSummary.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/whois/WhoisAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/whois/WhoisAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/whois/WhoisAdapterSummary.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/abusech/AbuseChRansomAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/abusech/AbuseChRansomAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/abusech/AbuseChRansomAdapterSummary.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/otx/OTXAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/otx/OTXAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/threatintel/components/adapters/otx/OTXAdapterSummary.jsx","webpack://graylog-web-interface/./src/threatintel/bindings.jsx","webpack://graylog-web-interface/./src/aws/Constants.js","webpack://graylog-web-interface/./src/aws/components/AWSPluginConfiguration.tsx","webpack://graylog-web-interface/./src/aws/bindings.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/Routes.js","webpack://graylog-web-interface/./src/integrations/aws/AWSInputConfiguration.jsx","webpack://graylog-web-interface/./src/integrations/aws/context/Sidebar.jsx","webpack://graylog-web-interface/./src/integrations/aws/context/FormData.jsx","webpack://graylog-web-interface/./src/integrations/aws/context/Steps.jsx","webpack://graylog-web-interface/./src/integrations/aws/context/Api.jsx","webpack://graylog-web-interface/./src/integrations/aws/context/AdvancedOptions.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/constants.js","webpack://graylog-web-interface/./src/integrations/aws/common/formDataAdapter.js","webpack://graylog-web-interface/./src/integrations/aws/utils/formValidation.js","webpack://graylog-web-interface/./src/integrations/aws/common/ValidatedInput.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/FormWrap.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/Options.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/hooks/useFetch.js","webpack://graylog-web-interface/./src/integrations/aws/common/MaskedInput.jsx","webpack://graylog-web-interface/./src/integrations/aws/authentication/KeySecret.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/sharedStyles.js","webpack://graylog-web-interface/./src/integrations/aws/authentication/Automatic.jsx","webpack://graylog-web-interface/./src/integrations/aws/authentication/ARN.jsx","webpack://graylog-web-interface/./src/integrations/aws/authentication/AWSAuthenticationTypes.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/AdditionalFields.jsx","webpack://graylog-web-interface/./src/integrations/aws/authentication/AWSCustomEndpoints.jsx","webpack://graylog-web-interface/./src/integrations/aws/StepAuthorize.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/FormAdvancedOptions.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/ExistingStreams.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/setup-steps/Agree.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/setup-steps/KinesisSetupStep.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/setup-steps/KinesisSetupSteps.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/setup-steps/SetupModal.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/kinesis/SetupNewStream.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/StepKinesis.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/SkipHealthCheck.jsx","webpack://graylog-web-interface/./src/integrations/aws/common/Countdown.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/StepHealthCheck.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/StepReview.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/SidebarPermissions.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/CloudWatch.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/_initialFormData.js","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/EmbeddedCloudWatchApp.jsx","webpack://graylog-web-interface/./src/integrations/aws/cloudwatch/CloudWatchApp.jsx","webpack://graylog-web-interface/./src/integrations/pager-duty/PagerDutyNotificationDetails.jsx","webpack://graylog-web-interface/./src/integrations/pager-duty/PagerDutyNotificationForm.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/CommonNotificationSummary.css?ad4e","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/CommonNotificationSummary.jsx","webpack://graylog-web-interface/./src/integrations/pager-duty/PagerDutyNotificationSummary.jsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-details/SlackNotificationDetails.tsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-types/SlackNotificationForm.tsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-types/SlackNotificationSummary.tsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-details/TeamsNotificationDetails.tsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-types/TeamsNotificationForm.tsx","webpack://graylog-web-interface/./src/integrations/event-notifications/event-notification-types/TeamsNotificationSummary.tsx","webpack://graylog-web-interface/./src/integrations/dataadapters/GreyNoiseAdapterFieldSet.jsx","webpack://graylog-web-interface/./src/integrations/dataadapters/GreyNoiseAdapterSummary.jsx","webpack://graylog-web-interface/./src/integrations/dataadapters/GreyNoiseAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/integrations/dataadapters/GreyNoiseCommunityIpLookupAdapterDocumentation.jsx","webpack://graylog-web-interface/./src/integrations/bindings.jsx","webpack://graylog-web-interface/./src/stores/event-definitions/FilterPreviewStore.js","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterPreview.css?436c","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterPreview.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterPreviewContainer.jsx","webpack://graylog-web-interface/./src/logic/alerts/AggregationExpressionConfig.js","webpack://graylog-web-interface/./src/logic/alerts/AggregationExpressionValidation.js","webpack://graylog-web-interface/./src/logic/alerts/AggregationExpressionTypes.js","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/NumberExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/NumberRefExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/BooleanOperatorSelector.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/BooleanExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/ComparisonExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpressions/GroupExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpression.css?a300","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionExpression.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionsFormSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationConditionsForm.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/AggregationForm.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterAggregationForm.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/withStreams.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterAggregationFormContainer.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterAggregationSummary.css?9f49","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/FilterAggregationSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-types/bindings.js","webpack://graylog-web-interface/./src/components/common/Select/PaginatedSelect.tsx","webpack://graylog-web-interface/./src/components/users/UsersSelectField.tsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/EmailNotificationForm.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/EmailNotificationFormContainer.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/EmailNotificationSummary.css?8d59","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/EmailNotificationSummary.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/HttpNotificationForm.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/HttpNotificationSummary.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationCommonStyles.css?9638","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationForm.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationFormContainer.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationSummary.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/LegacyNotificationSummaryContainer.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/HttpNotificationSummaryV2.tsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/templates.ts","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/HttpNotificationFormV2.tsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-details/EmailNotificationDetails.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-details/HttpNotificationDetails.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-details/LegacyNotificationDetails.jsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-details/HttpNotificationDetailsV2.tsx","webpack://graylog-web-interface/./src/components/event-notifications/event-notification-types/bindings.ts","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderPreview.css?19b8","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderPreview.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderForm.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/CommonFieldValueProviderSummary.css?f8c3","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/CommonFieldValueProviderSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/LookupTableFieldValueProviderForm.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/LookupTableFieldValueProviderFormContainer.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/LookupTableFieldValueProviderSummary.jsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/field-value-providers/bindings.ts","webpack://graylog-web-interface/./src/logic/telemetry/TelemetryInit.tsx","webpack://graylog-web-interface/./src/contexts/LoginQueryClientProvider.tsx","webpack://graylog-web-interface/./src/components/perspectives/bindings.ts","webpack://graylog-web-interface/./src/util/conditional/filterMenuItems.ts","webpack://graylog-web-interface/./src/components/navigation/bindings.ts","webpack://graylog-web-interface/./src/index.tsx","webpack://graylog-web-interface/./src/logic/DefaultCompare.ts","webpack://graylog-web-interface/./src/logic/alerts/EventDefinitionPriorityEnum.ts","webpack://graylog-web-interface/./src/logic/assertUnreachable.ts","webpack://graylog-web-interface/./src/logic/errors/ReportedErrors.ts","webpack://graylog-web-interface/./src/logic/generateId.ts","webpack://graylog-web-interface/./src/logic/local-storage/Store.js","webpack://graylog-web-interface/./src/logic/message/MessageFieldsFilter.ts","webpack://graylog-web-interface/./src/logic/metrics/MetricsExtractor.ts","webpack://graylog-web-interface/./src/logic/permissions/GRN.ts","webpack://graylog-web-interface/./src/logic/permissions/Grantee.ts","webpack://graylog-web-interface/./src/logic/permissions/SharedEntity.ts","webpack://graylog-web-interface/./src/logic/rest/CancellablePromise.ts","webpack://graylog-web-interface/./src/logic/errors/FetchError.ts","webpack://graylog-web-interface/./src/logic/rest/FetchProvider.ts","webpack://graylog-web-interface/./src/logic/search/UniversalSearch.js","webpack://graylog-web-interface/./src/logic/singleton.ts","webpack://graylog-web-interface/./src/logic/telemetry/Constants.ts","webpack://graylog-web-interface/./src/logic/telemetry/TelemetryContext.tsx","webpack://graylog-web-interface/./src/routing/useRoutePattern.ts","webpack://graylog-web-interface/./src/logic/telemetry/useSendTelemetry.tsx","webpack://graylog-web-interface/./src/logic/telemetry/withTelemetry.tsx","webpack://graylog-web-interface/./src/logic/users/User.ts","webpack://graylog-web-interface/./src/logic/users/UserOverview.ts","webpack://graylog-web-interface/./src/pages/NotFoundPage.tsx","webpack://graylog-web-interface/./src/pages/RuntimeErrorPage.tsx","webpack://graylog-web-interface/./src/pages/StreamPermissionErrorPage.tsx","webpack://graylog-web-interface/./src/pages/UnauthorizedErrorPage.tsx","webpack://graylog-web-interface/./src/preflight/util/UserNotification.ts","webpack://graylog-web-interface/./src/routing/ApiRoutes.ts","webpack://graylog-web-interface/./src/contexts/ScratchpadProvider.tsx","webpack://graylog-web-interface/./src/components/scratchpad/ScratchpadModal.tsx","webpack://graylog-web-interface/./src/components/scratchpad/Scratchpad.tsx","webpack://graylog-web-interface/./src/stores/metrics/GlobalThroughputStore.js","webpack://graylog-web-interface/./src/components/throughput/GlobalThroughput.jsx","webpack://graylog-web-interface/./src/components/perspectives/hooks/usePerspectives.ts","webpack://graylog-web-interface/./src/components/perspectives/ActivePerspectiveBrand.tsx","webpack://graylog-web-interface/./src/components/perspectives/PerspectivesSwitcher.tsx","webpack://graylog-web-interface/./src/components/perspectives/util/filterByPerspective.ts","webpack://graylog-web-interface/./src/components/navigation/util/isActiveRoute.ts","webpack://graylog-web-interface/./src/components/navigation/NavigationLink.tsx","webpack://graylog-web-interface/./src/components/navigation/MainNavbar.tsx","webpack://graylog-web-interface/./src/hooks/useLogout.ts","webpack://graylog-web-interface/./src/components/navigation/ThemeModeToggle.tsx","webpack://graylog-web-interface/./src/components/navigation/UserMenu.tsx","webpack://graylog-web-interface/./src/components/navigation/HelpMenu.tsx","webpack://graylog-web-interface/./src/components/navigation/InactiveNavItem.tsx","webpack://graylog-web-interface/./src/components/navigation/NotificationBadge.tsx","webpack://graylog-web-interface/./src/components/navigation/DevelopmentHeaderBadge.tsx","webpack://graylog-web-interface/./src/components/navigation/ScratchpadToggle.tsx","webpack://graylog-web-interface/./src/components/navigation/Navigation.styles.tsx","webpack://graylog-web-interface/./src/components/navigation/Navigation.tsx","webpack://graylog-web-interface/./src/components/errors/ReportedErrorBoundary.tsx","webpack://graylog-web-interface/./src/components/errors/RuntimeErrorBoundary.tsx","webpack://graylog-web-interface/./public/stylesheets/typeahead.less?e600","webpack://graylog-web-interface/./src/logic/telemetry/NavigationTelemetry.tsx","webpack://graylog-web-interface/./src/contexts/HotkeysProvider.tsx","webpack://graylog-web-interface/./src/components/hotkeys/HotkeysModal.tsx","webpack://graylog-web-interface/./src/components/hotkeys/HotkeysModalContainer.tsx","webpack://graylog-web-interface/./src/components/perspectives/contexts/PerspectivesProvider.tsx","webpack://graylog-web-interface/./src/routing/App.tsx","webpack://graylog-web-interface/./src/routing/Routes.ts","webpack://graylog-web-interface/./src/routing/hooks/useShowRouteForEntity.ts","webpack://graylog-web-interface/./src/routing/hooks/useShowRouteFromGRN.ts","webpack://graylog-web-interface/./src/routing/loadAsync.tsx","webpack://graylog-web-interface/./src/routing/useHistory.ts","webpack://graylog-web-interface/./src/routing/useLocation.ts","webpack://graylog-web-interface/./src/routing/useParams.ts","webpack://graylog-web-interface/./src/routing/useQuery.ts","webpack://graylog-web-interface/./src/routing/withHistory.tsx","webpack://graylog-web-interface/./src/routing/withLocation.tsx","webpack://graylog-web-interface/./src/stores/configurations/ConfigurationsStore.ts","webpack://graylog-web-interface/./src/stores/connect.tsx","webpack://graylog-web-interface/./src/stores/decorators/DecoratorsStore.js","webpack://graylog-web-interface/./src/stores/event-definitions/EventDefinitionsStore.js","webpack://graylog-web-interface/./src/stores/event-notifications/EventNotificationsStore.ts","webpack://graylog-web-interface/./src/stores/inputs/InputStaticFieldsStore.js","webpack://graylog-web-interface/./src/stores/inputs/InputsStore.ts","webpack://graylog-web-interface/./src/stores/isDeepEqual.ts","webpack://graylog-web-interface/./src/stores/lookup-tables/LookupTableCachesStore.js","webpack://graylog-web-interface/./src/stores/lookup-tables/LookupTableDataAdaptersStore.js","webpack://graylog-web-interface/./src/stores/lookup-tables/LookupTablesStore.ts","webpack://graylog-web-interface/./src/stores/metrics/MetricsStore.ts","webpack://graylog-web-interface/./src/stores/nodes/NodesStore.ts","webpack://graylog-web-interface/./src/stores/notifications/NotificationsStore.ts","webpack://graylog-web-interface/./src/logic/permissions/Capability.ts","webpack://graylog-web-interface/./src/logic/permissions/ActiveShare.ts","webpack://graylog-web-interface/./src/logic/permissions/SelectedGrantee.ts","webpack://graylog-web-interface/./src/logic/permissions/ValidationResult.ts","webpack://graylog-web-interface/./src/logic/permissions/EntityShareState.ts","webpack://graylog-web-interface/./src/actions/permissions/EntityShareActions.ts","webpack://graylog-web-interface/./src/stores/permissions/EntityShareStore.ts","webpack://graylog-web-interface/./src/stores/sessions/ServerAvailabilityStore.ts","webpack://graylog-web-interface/./src/stores/sessions/SessionStore.ts","webpack://graylog-web-interface/./src/actions/streams/StreamsActions.js","webpack://graylog-web-interface/./src/stores/streams/StreamsStore.ts","webpack://graylog-web-interface/./src/stores/system/SystemStore.ts","webpack://graylog-web-interface/./src/stores/telemetry/TelemetrySettingsStore.ts","webpack://graylog-web-interface/./src/stores/tools/ToolsStore.ts","webpack://graylog-web-interface/./src/stores/useAppDispatch.ts","webpack://graylog-web-interface/./src/stores/useAppSelector.ts","webpack://graylog-web-interface/./src/stores/users/CurrentUserStore.ts","webpack://graylog-web-interface/./src/stores/users/PreferencesStore.ts","webpack://graylog-web-interface/./src/stores/users/StartpageStore.js","webpack://graylog-web-interface/./src/stores/users/UsersStore.ts","webpack://graylog-web-interface/./src/theme/GlobalThemeStyles.ts","webpack://graylog-web-interface/./src/theme/ColorSchemeContext.tsx","webpack://graylog-web-interface/./src/theme/hooks/useBrowserColorSchemePreference.ts","webpack://graylog-web-interface/./src/theme/hooks/usePreferredColorScheme.ts","webpack://graylog-web-interface/./src/theme/GraylogThemeProvider.tsx","webpack://graylog-web-interface/./src/theme/constants.ts","webpack://graylog-web-interface/./src/util/AppConfig.ts","webpack://graylog-web-interface/./src/util/DateTime.ts","webpack://graylog-web-interface/./src/util/DocsHelper.ts","webpack://graylog-web-interface/./src/util/ExtractorUtils.js","webpack://graylog-web-interface/./src/util/CreateEvent.ts","webpack://graylog-web-interface/./src/util/FormsUtils.js","webpack://graylog-web-interface/./src/util/ISODurationUtils.ts","webpack://graylog-web-interface/./src/util/NumberUtils.js","webpack://graylog-web-interface/./src/util/ObjectUtils.ts","webpack://graylog-web-interface/./src/util/PaginationURL.ts","webpack://graylog-web-interface/./src/util/PermissionsMixin.ts","webpack://graylog-web-interface/./src/util/SortUtils.ts","webpack://graylog-web-interface/./src/util/StringUtils.ts","webpack://graylog-web-interface/./src/util/TimeHelper.js","webpack://graylog-web-interface/./src/util/URLUtils.ts","webpack://graylog-web-interface/./src/util/UserNotification.css?3345","webpack://graylog-web-interface/./src/util/UserNotification.js","webpack://graylog-web-interface/./src/util/Version.ts","webpack://graylog-web-interface/./src/util/conditional/HideOnCloud.tsx","webpack://graylog-web-interface/./src/util/copyToClipboard.ts","webpack://graylog-web-interface/./src/views/Constants.ts","webpack://graylog-web-interface/./src/views/actions/QueryValidationActions.ts","webpack://graylog-web-interface/./src/views/components/CustomPropTypes.ts","webpack://graylog-web-interface/./src/views/components/ExternalValueActionsContext.tsx","webpack://graylog-web-interface/./src/hooks/useFavoriteItemMutation.tsx","webpack://graylog-web-interface/./src/views/components/FavoriteIcon.tsx","webpack://graylog-web-interface/./src/views/components/actions/FieldActions.tsx","webpack://graylog-web-interface/./src/views/components/Field.tsx","webpack://graylog-web-interface/./src/views/components/TimeRangeValidation.ts","webpack://graylog-web-interface/./src/views/components/TimerangeForForm.ts","webpack://graylog-web-interface/./src/views/components/fieldtypes/InputField.tsx","webpack://graylog-web-interface/./src/views/components/fieldtypes/NodeField.tsx","webpack://graylog-web-interface/./src/views/components/fieldtypes/StreamsField.tsx","webpack://graylog-web-interface/./src/views/components/fieldtypes/PercentageField.tsx","webpack://graylog-web-interface/./src/views/components/EmptyValue.tsx","webpack://graylog-web-interface/./src/views/components/DecoratorValue.tsx","webpack://graylog-web-interface/./src/views/components/TypeSpecificValue.tsx","webpack://graylog-web-interface/./src/views/components/actions/ValueActions.tsx","webpack://graylog-web-interface/./src/views/components/Value.tsx","webpack://graylog-web-interface/./src/views/components/ViewTypeLabel.ts","webpack://graylog-web-interface/./src/views/components/actions/ActionHandler.tsx","webpack://graylog-web-interface/./src/views/components/actions/ActionMenuItem.tsx","webpack://graylog-web-interface/./src/views/hooks/useExternalValueActions.tsx","webpack://graylog-web-interface/./src/views/components/actions/ActionDropdown.tsx","webpack://graylog-web-interface/./src/views/components/actions/Action.tsx","webpack://graylog-web-interface/./src/views/components/aggregationbuilder/EmptyAggregationContent.tsx","webpack://graylog-web-interface/./src/views/components/aggregationbuilder/FullSizeContainer.tsx","webpack://graylog-web-interface/./src/views/components/aggregationbuilder/AggregationBuilder.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/ElementConfigurationContainer.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/AggregationElementSelect.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/ElementsConfigurationActions.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/FieldSelect.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/OnVisualizationConfigChangeContext.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/parseNumber.ts","webpack://graylog-web-interface/./src/components/common/FormErrors.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/configuration/Direction.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/configuration/FieldComponent.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/configuration/Time.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/GroupingConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/GroupingsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/GroupingElement.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/grouping/index.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/metric/index.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/sort/SortConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/sort/SortsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/sort/SortElement.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/sort/index.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/configurationFields/BooleanField.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/configurationFields/NumericField.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/configurationFields/SelectField.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/configurationFields/MultiSelectField.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/VisualizationConfigurationOptions.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/VisualizationConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/VisualizationElement.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/aggregationElementDefinitions.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/visualization/index.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/PropagateDisableSubmissionState.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/WidgetConfigForm.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/ElementConfigurationSection.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/ElementsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/VisualizationContainer.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/AggregationWizard.tsx","webpack://graylog-web-interface/./src/views/hooks/useAggregationFunctions.ts","webpack://graylog-web-interface/./src/views/components/aggregationwizard/metric/MetricConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/metric/MetricsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/aggregationwizard/metric/MetricElement.ts","webpack://graylog-web-interface/./src/views/components/common/EditableTitle.css?9d33","webpack://graylog-web-interface/./src/views/components/common/EditableTitle.tsx","webpack://graylog-web-interface/./src/views/components/contexts/AutoRefreshContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DisableSubmissionStateContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DrilldownContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/FieldTypesContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/HighlightMessageContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/HighlightingRulesContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/InteractiveContext.ts","webpack://graylog-web-interface/./src/views/components/contexts/SearchExecutorsContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchPageLayoutContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/TimeRangeInputSettingsContext.ts","webpack://graylog-web-interface/./src/views/components/contexts/WidgetContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/WidgetEditApplyAllChangesContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/WidgetFocusContext.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/DashboardPropertiesModal.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/IfInteractive.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/hooks/useDashboards.ts","webpack://graylog-web-interface/./src/views/logic/ExpandRows.ts","webpack://graylog-web-interface/./src/views/components/datatable/TableHead.tsx","webpack://graylog-web-interface/./src/views/components/datatable/TableDataCell.tsx","webpack://graylog-web-interface/./src/views/components/datatable/DataTableEntry.tsx","webpack://graylog-web-interface/./src/views/components/datatable/MessagesTable.tsx","webpack://graylog-web-interface/./src/views/components/datatable/DeduplicateValues.ts","webpack://graylog-web-interface/./src/views/components/datatable/FieldSortIcon.tsx","webpack://graylog-web-interface/./src/views/components/datatable/TableHeaderCell.tsx","webpack://graylog-web-interface/./src/views/components/datatable/Headers.tsx","webpack://graylog-web-interface/./src/views/components/datatable/DataTable.css?362e","webpack://graylog-web-interface/./src/views/components/datatable/DataTable.tsx","webpack://graylog-web-interface/./src/views/components/datatable/bindings.tsx","webpack://graylog-web-interface/./src/views/components/datatable/index.tsx","webpack://graylog-web-interface/./src/views/components/defaultTitle.ts","webpack://graylog-web-interface/./src/views/components/highlighting/Highlight.tsx","webpack://graylog-web-interface/./src/views/components/highlighting/CustomHighlighting.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/NodeName.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/FormatReceivedBy.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/FormatAssetList.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageDetailProviders.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageActions.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageAugmentations.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageMetadata.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageDetail.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/FormatNumber.ts","webpack://graylog-web-interface/./src/views/components/messagelist/IsNumeric.ts","webpack://graylog-web-interface/./src/views/components/highlighting/PossiblyHighlight.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/SearchQueryHighlights.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decoration/DecoratorContext.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decoration/DecoratedValue.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/PopoverHelp.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/AddDecoratorButton.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/DecoratorList.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/DecoratorSummary.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/InlineForm.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageField.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageFields.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageFieldRow.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessagePreview.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/MessageTableEntry.tsx","webpack://graylog-web-interface/./src/views/components/search/IfSearch.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/QueryHistoryButton.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/SearchBarLayout.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/SearchButton.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/SearchFilterBanner.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/commands.ts","webpack://graylog-web-interface/./src/views/components/searchbar/queryvalidation/QueryValidation.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryvalidation/validateQuery.ts","webpack://graylog-web-interface/./src/views/components/searchbar/queryvalidation/warmTierValidation.ts","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/TimeRangeDisplay.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/migrateTimeRangeToNewType.ts","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/AbsoluteDatePicker.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/AbsoluteTimeInput.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/AbsoluteCalendar.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/AbsoluteTimestamp.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TabAbsoluteTimeRange.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TabKeywordTimeRange.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/RelativeRangeValueInput.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/RelativeRangeSelect.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TabRelativeTimeRange.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TabDisabledTimeRange.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TimeRangePickerTabs.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/TimeRangePresetDropdown.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/SaveTimeRangeAsPresetButton.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TimeRangePresetRow.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TimeRangePicker.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/index.ts","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/TimeRangeFilterButtons.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/TimeRangeFilter.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/index.ts","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/AbsoluteDateInput.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/RelativeTimeRangeClassifiedHelper.ts","webpack://graylog-web-interface/./src/views/components/searchbar/time-range-filter/time-range-picker/TimeRangePickerButton.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/fields/FieldTypeIcon.css?9427","webpack://graylog-web-interface/./src/views/components/sidebar/fields/FieldTypeIcon.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/Scale.ts","webpack://graylog-web-interface/./src/views/components/visualizations/ChartColorContext.ts","webpack://graylog-web-interface/./src/views/components/visualizations/ColorMapper.ts","webpack://graylog-web-interface/./src/views/components/visualizations/Colors.ts","webpack://graylog-web-interface/./src/views/components/visualizations/GenericPlot.lazy.css?612e","webpack://graylog-web-interface/./src/views/components/visualizations/GenericPlot.tsx","webpack://graylog-web-interface/./src/views/components/visualizations/plotly/AsyncPlot.ts","webpack://graylog-web-interface/./src/views/components/widgets/MessageWidgets.css?2be6","webpack://graylog-web-interface/./src/views/components/widgets/ErrorWidget.tsx","webpack://graylog-web-interface/./src/views/components/widgets/SelectedFieldsList.tsx","webpack://graylog-web-interface/./src/views/components/widgets/FieldsConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/widgets/RenderCompletionCallback.tsx","webpack://graylog-web-interface/./src/views/components/widgets/ReplaySearchButton.tsx","webpack://graylog-web-interface/./src/views/components/widgets/SaveOrCancelButtons.tsx","webpack://graylog-web-interface/./src/views/components/widgets/StickyBottomActions.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetHeader.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetPropTypes.tsx","webpack://graylog-web-interface/./src/views/hooks/BindSearchParamsFromQuery.ts","webpack://graylog-web-interface/./src/views/hooks/IterateConfirmationHooks.ts","webpack://graylog-web-interface/./src/views/hooks/useActiveQueryId.ts","webpack://graylog-web-interface/./src/views/hooks/useAutoRefresh.tsx","webpack://graylog-web-interface/./src/views/hooks/useIsLocalNode.ts","webpack://graylog-web-interface/./src/views/hooks/useIsNew.ts","webpack://graylog-web-interface/./src/views/hooks/useMinimumRefreshInterval.ts","webpack://graylog-web-interface/./src/views/hooks/useOnSearchExecution.ts","webpack://graylog-web-interface/./src/views/hooks/useSaveViewFormControls.ts","webpack://graylog-web-interface/./src/views/hooks/useSavedSearches.ts","webpack://graylog-web-interface/./src/views/hooks/useView.ts","webpack://graylog-web-interface/./src/views/logic/views/ViewTitle.ts","webpack://graylog-web-interface/./src/views/hooks/useViewTitle.ts","webpack://graylog-web-interface/./src/views/hooks/useViewType.ts","webpack://graylog-web-interface/./src/views/logic/ActionContext.tsx","webpack://graylog-web-interface/./src/views/logic/IsFilteredField.ts","webpack://graylog-web-interface/./src/views/logic/IsReservedField.ts","webpack://graylog-web-interface/./src/views/logic/NormalizeSearchURLQueryParams.ts","webpack://graylog-web-interface/./src/views/logic/SearchError.ts","webpack://graylog-web-interface/./src/views/logic/QueryResult.ts","webpack://graylog-web-interface/./src/views/logic/ResultWindowLimitError.ts","webpack://graylog-web-interface/./src/views/logic/SearchResult.ts","webpack://graylog-web-interface/./src/views/logic/SearchType.ts","webpack://graylog-web-interface/./src/views/logic/TimeRange.ts","webpack://graylog-web-interface/./src/views/logic/Widgets.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/AggregationWidget.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/AggregationWidgetConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/Direction.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/Pivot.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/Series.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/SeriesConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/SortConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/WidgetFormattingSettings.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/DataTableVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/HeatmapVisualizationConfig.ts","webpack://graylog-web-interface/./src/views/logic/aggregationbuilder/visualizations/VisualizationConfig.ts","webpack://graylog-web-interface/./src/views/logic/debounceWithPromise.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/Constants.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useFieldTypeUsages.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useColumnRenderers.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/IndexSetsTable.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useFieldTypeMutation.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useIndexSetFieldTypesAll.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/FieldSelect.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/ChangeFieldTypeModal.tsx","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useCurrentStream.ts","webpack://graylog-web-interface/./src/views/logic/fieldactions/ChangeFieldType/hooks/useFieldTypesForMappings.ts","webpack://graylog-web-interface/./src/views/logic/fieldtypes/FieldType.ts","webpack://graylog-web-interface/./src/views/logic/fieldtypes/FieldTypeFor.ts","webpack://graylog-web-interface/./src/views/logic/fieldtypes/FieldTypeMapping.ts","webpack://graylog-web-interface/./src/views/logic/fieldtypes/InferTypeForSeries.ts","webpack://graylog-web-interface/./src/views/logic/fieldtypes/useFieldTypes.ts","webpack://graylog-web-interface/./src/views/logic/parameters/LookupTableParameter.ts","webpack://graylog-web-interface/./src/views/logic/parameters/Parameter.ts","webpack://graylog-web-interface/./src/views/logic/parameters/ParameterBinding.ts","webpack://graylog-web-interface/./src/views/logic/queries/IsAllMessagesRange.ts","webpack://graylog-web-interface/./src/views/logic/queries/NormalizeTimeRange.ts","webpack://graylog-web-interface/./src/views/logic/queries/Query.ts","webpack://graylog-web-interface/./src/views/logic/queries/QueryGenerator.ts","webpack://graylog-web-interface/./src/views/logic/queries/QueryHelper.ts","webpack://graylog-web-interface/./src/views/logic/queries/QueryTitle.ts","webpack://graylog-web-interface/./src/views/logic/queries/TimeRangeToString.ts","webpack://graylog-web-interface/./src/views/logic/queries/useCurrentQuery.ts","webpack://graylog-web-interface/./src/views/logic/queries/useCurrentQueryId.ts","webpack://graylog-web-interface/./src/views/logic/search/GlobalOverride.ts","webpack://graylog-web-interface/./src/views/logic/search/Search.ts","webpack://graylog-web-interface/./src/views/logic/search/SearchExecutionState.ts","webpack://graylog-web-interface/./src/views/logic/search/SearchLink.ts","webpack://graylog-web-interface/./src/views/logic/search/QueryMetadata.ts","webpack://graylog-web-interface/./src/views/logic/search/SearchMetadata.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/aggregation/PivotGenerator.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/events/EventHandler.ts","webpack://graylog-web-interface/./src/views/logic/slices/createSearch.ts","webpack://graylog-web-interface/./src/views/stores/SearchJobs.ts","webpack://graylog-web-interface/./src/views/logic/slices/executeSearch.ts","webpack://graylog-web-interface/./src/views/logic/slices/highlightActions.ts","webpack://graylog-web-interface/./src/views/logic/slices/highlightSelectors.ts","webpack://graylog-web-interface/./src/views/logic/slices/parseSearch.ts","webpack://graylog-web-interface/./src/views/logic/slices/searchExecutionSelectors.ts","webpack://graylog-web-interface/./src/views/logic/slices/searchExecutionSlice.ts","webpack://graylog-web-interface/./src/views/logic/slices/searchMetadataSlice.ts","webpack://graylog-web-interface/./src/views/logic/slices/titlesSelectors.ts","webpack://graylog-web-interface/./src/views/logic/slices/titlesActions.ts","webpack://graylog-web-interface/./src/views/logic/slices/undoRedoSelectors.ts","webpack://graylog-web-interface/./src/views/logic/slices/undoRedoSlice.ts","webpack://graylog-web-interface/./src/views/logic/slices/viewSelectors.ts","webpack://graylog-web-interface/./src/views/logic/NewQueryActionHandler.ts","webpack://graylog-web-interface/./src/views/logic/slices/viewSlice.ts","webpack://graylog-web-interface/./src/views/logic/slices/widgetSelectors.ts","webpack://graylog-web-interface/./src/views/logic/slices/widgetActions.ts","webpack://graylog-web-interface/./src/views/logic/valueactions/AddToQueryHandler.ts","webpack://graylog-web-interface/./src/views/logic/views/Actions.ts","webpack://graylog-web-interface/./src/views/logic/views/FindNewActiveQuery.ts","webpack://graylog-web-interface/./src/views/logic/views/GetPositionForNewWidget.ts","webpack://graylog-web-interface/./src/views/logic/views/GenerateNextPosition.ts","webpack://graylog-web-interface/./src/views/logic/views/OnSaveViewAction.ts","webpack://graylog-web-interface/./src/views/logic/searchtypes/SearchTypesGenerator.ts","webpack://graylog-web-interface/./src/views/logic/views/UpdateSearchForWidgets.ts","webpack://graylog-web-interface/./src/views/logic/views/View.ts","webpack://graylog-web-interface/./src/views/logic/views/ViewState.ts","webpack://graylog-web-interface/./src/views/logic/views/ViewStateGenerator.ts","webpack://graylog-web-interface/./src/views/logic/views/fetchSearch.ts","webpack://graylog-web-interface/./src/views/logic/views/formatting/FormattingSettings.ts","webpack://graylog-web-interface/./src/views/logic/views/formatting/highlighting/HighlightingColor.ts","webpack://graylog-web-interface/./src/views/logic/views/formatting/highlighting/highlightConditionFunctions.ts","webpack://graylog-web-interface/./src/views/logic/views/formatting/highlighting/HighlightingRule.ts","webpack://graylog-web-interface/./src/views/logic/views/normalizeViewState.ts","webpack://graylog-web-interface/./src/views/logic/widgets/MessagesWidget.ts","webpack://graylog-web-interface/./src/views/logic/widgets/MessagesWidgetConfig.ts","webpack://graylog-web-interface/./src/views/logic/widgets/Widget.ts","webpack://graylog-web-interface/./src/views/logic/widgets/WidgetConfig.ts","webpack://graylog-web-interface/./src/views/logic/widgets/WidgetPosition.ts","webpack://graylog-web-interface/./src/views/logic/widgets/normalizeWidgetPositions.ts","webpack://graylog-web-interface/./src/views/logic/ViewLoaderContext.tsx","webpack://graylog-web-interface/./src/views/logic/NewViewLoaderContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchPagePreferencesContext.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/NavItem.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/SidebarNavigation.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/ContentColumn.tsx","webpack://graylog-web-interface/./src/views/hooks/useViewMetadata.ts","webpack://graylog-web-interface/./src/views/hooks/useGlobalOverride.ts","webpack://graylog-web-interface/./src/views/components/sidebar/description/SearchResultOverview.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/SectionInfo.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/SectionSubheadline.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/description/ViewDescription.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/create/AddWidgetButton.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/ColorPreview.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/HighlightingColorForm.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/HighlightForm.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/HighlightingRule.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/highlighting/HighlightingRules.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/sidebarSections.tsx","webpack://graylog-web-interface/./src/views/logic/slices/undoRedoActions.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/undo/UndoNavItem.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/redo/RedoNavItem.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/sidebarActions.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/Sidebar.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/IfDashboard.tsx","webpack://graylog-web-interface/./src/views/components/GridGaps.ts","webpack://graylog-web-interface/./src/views/components/NewWidgetPlaceholder.tsx","webpack://graylog-web-interface/./src/views/components/CreateNewWidgetModal.tsx","webpack://graylog-web-interface/./src/views/components/WidgetContainer.tsx","webpack://graylog-web-interface/./src/views/components/ExportSettingsContext.tsx","webpack://graylog-web-interface/./src/views/components/ExportSettingsContextProvider.tsx","webpack://graylog-web-interface/./src/views/hooks/useWidget.ts","webpack://graylog-web-interface/./src/views/hooks/useActiveViewState.ts","webpack://graylog-web-interface/./src/views/hooks/useSearchResult.ts","webpack://graylog-web-interface/./src/views/components/widgets/SearchQueryExecutionInfoHelper.tsx","webpack://graylog-web-interface/./src/views/components/widgets/TimerangeInfo.tsx","webpack://graylog-web-interface/./src/views/components/useWidgetResults.ts","webpack://graylog-web-interface/./src/views/components/widgets/WidgetFrame.tsx","webpack://graylog-web-interface/./src/views/components/contexts/QueryEditModeContext.tsx","webpack://graylog-web-interface/./src/views/components/contexts/WidgetEditApplyAllChangesProvider.tsx","webpack://graylog-web-interface/./src/views/hooks/useParameters.ts","webpack://graylog-web-interface/./src/views/components/searchbar/ValidateOnParameterChange.tsx","webpack://graylog-web-interface/./src/views/logic/searchbar/pluggableSearchBarControlsHandler.ts","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/usePluggableCommands.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/PluggableCommands.tsx","webpack://graylog-web-interface/./src/views/components/useHandlerContext.ts","webpack://graylog-web-interface/./src/views/components/searchbar/WidgetTimeRangeOverride.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/StreamsFilter.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/AsyncQueryInput.ts","webpack://graylog-web-interface/./src/views/components/searchbar/validate.ts","webpack://graylog-web-interface/./src/views/components/searchbar/useSearchBarSubmit.ts","webpack://graylog-web-interface/./src/views/components/searchbar/SearchBarForm.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/AsyncBasicQueryInput.ts","webpack://graylog-web-interface/./src/views/components/WidgetQueryOverride.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/PluggableSearchBarControls.tsx","webpack://graylog-web-interface/./src/views/components/WidgetQueryControls.tsx","webpack://graylog-web-interface/./src/views/components/WidgetOverrideElements.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DisableSubmissionStateProvider.tsx","webpack://graylog-web-interface/./src/views/components/widgets/EditWidgetFrame.tsx","webpack://graylog-web-interface/./src/views/components/widgets/LoadingWidget.tsx","webpack://graylog-web-interface/./src/views/hooks/useWidgets.ts","webpack://graylog-web-interface/./src/views/components/widgets/useColorRules.ts","webpack://graylog-web-interface/./src/views/components/widgets/WidgetColorContext.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetErrorBoundary.tsx","webpack://graylog-web-interface/./src/views/components/export/ExportWidgetSelection.tsx","webpack://graylog-web-interface/./src/views/hooks/useSearchExecutionState.ts","webpack://graylog-web-interface/./src/views/components/export/ExportFormatSelection.tsx","webpack://graylog-web-interface/./src/views/components/export/CustomExportSettings.tsx","webpack://graylog-web-interface/./src/views/components/export/ExportSettings.tsx","webpack://graylog-web-interface/./src/util/MessagesExportUtils.ts","webpack://graylog-web-interface/./src/views/components/export/ExportStrategy.ts","webpack://graylog-web-interface/./src/views/components/export/startDownload.ts","webpack://graylog-web-interface/./src/views/components/export/ExportModal.tsx","webpack://graylog-web-interface/./src/views/logic/views/FindWidgetAndQueryIdInView.ts","webpack://graylog-web-interface/./src/views/logic/views/MoveWidgetToTab.ts","webpack://graylog-web-interface/./src/views/logic/views/CopyWidgetToDashboard.ts","webpack://graylog-web-interface/./src/views/logic/views/ExtractWidgetIntoNewView.ts","webpack://graylog-web-interface/./src/views/components/widgets/useWidgetActions.ts","webpack://graylog-web-interface/./src/views/components/widgets/ExtraWidgetActions.tsx","webpack://graylog-web-interface/./src/views/components/widgets/CopyToDashboardForm.tsx","webpack://graylog-web-interface/./src/views/hooks/useQueryIds.ts","webpack://graylog-web-interface/./src/views/components/widgets/MoveWidgetToTabModal.tsx","webpack://graylog-web-interface/./src/views/components/common/StopPropagation.tsx","webpack://graylog-web-interface/./src/views/components/common/ActionDropdown.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetActionDropdown.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetHorizontalStretch.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetActionsMenu.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchExplainContext.tsx","webpack://graylog-web-interface/./src/views/components/widgets/WidgetWarmTierAlert.tsx","webpack://graylog-web-interface/./src/views/components/widgets/Widget.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DrilldownContextProvider.tsx","webpack://graylog-web-interface/./src/views/components/contexts/WidgetFieldTypesContextProvider.tsx","webpack://graylog-web-interface/./src/views/components/WidgetComponent.tsx","webpack://graylog-web-interface/./src/views/components/WidgetGrid.tsx","webpack://graylog-web-interface/./src/views/components/Query.tsx","webpack://graylog-web-interface/./src/views/hooks/useIsLoading.ts","webpack://graylog-web-interface/./src/views/components/SearchResult.tsx","webpack://graylog-web-interface/./src/views/components/HeaderElements.tsx","webpack://graylog-web-interface/./src/views/components/QueryBarElements.tsx","webpack://graylog-web-interface/./src/views/hooks/useIsDirty.ts","webpack://graylog-web-interface/./src/views/components/common/WindowLeaveMessage.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DashboardPageContext.tsx","webpack://graylog-web-interface/./src/views/logic/views/ConfirmDeletingDashboardPage.ts","webpack://graylog-web-interface/./src/views/hooks/useQueryTitles.ts","webpack://graylog-web-interface/./src/views/components/useWidgetIds.ts","webpack://graylog-web-interface/./src/views/components/queries/QueryTitleEditModal.tsx","webpack://graylog-web-interface/./src/views/components/queries/QueryActionDropdown.tsx","webpack://graylog-web-interface/./src/views/components/queries/QueryTitle.tsx","webpack://graylog-web-interface/./src/views/components/AdaptableQueryTabsConfiguration.tsx","webpack://graylog-web-interface/./src/views/logic/views/CopyPageToDashboard.ts","webpack://graylog-web-interface/./src/views/components/AdaptableQueryTabs.tsx","webpack://graylog-web-interface/./src/views/components/QueryTabs.tsx","webpack://graylog-web-interface/./src/views/components/QueryBar.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/fields/ListItem.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/fields/List.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/fields/FieldGroup.tsx","webpack://graylog-web-interface/./src/views/components/sidebar/fields/FieldsOverview.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/RefreshControls.tsx","webpack://graylog-web-interface/./src/util/UIUtils.js","webpack://graylog-web-interface/./src/views/components/common/ScrollToHint.tsx","webpack://graylog-web-interface/./src/views/components/DebugOverlay.tsx","webpack://graylog-web-interface/./src/views/logic/views/OnSaveNewDashboard.ts","webpack://graylog-web-interface/./src/views/Permissions.ts","webpack://graylog-web-interface/./src/hooks/useSearchPageLayout.ts","webpack://graylog-web-interface/./src/views/logic/views/pluggableSaveViewFormHandler.ts","webpack://graylog-web-interface/./src/views/components/searchbar/SaveViewButton.tsx","webpack://graylog-web-interface/./src/views/logic/slices/searchMetadataSelectors.ts","webpack://graylog-web-interface/./src/views/logic/parameters/useHasUndeclaredParameters.ts","webpack://graylog-web-interface/./src/views/components/searchbar/SaveDashboardButton.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/SaveAsDashboardButton.tsx","webpack://graylog-web-interface/./src/views/components/dashboard/BigDisplayModeConfiguration.tsx","webpack://graylog-web-interface/./src/views/components/DashboardActionsMenu.tsx","webpack://graylog-web-interface/./src/views/components/DashboardSearchBarForm.tsx","webpack://graylog-web-interface/./src/views/components/DashboardSearchBar.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/useColumnRenderes.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/Constants.ts","webpack://graylog-web-interface/./src/hooks/usePaginationAndTableLayout.ts","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/useSavedSearchPaginationAndTableLayout.ts","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchesModal/SearchActions.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/BulkActions.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchesModal/SavedSearchesOverview.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchesModal/SavedSearchesModal.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchesModal/index.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchForm.css?aaa5","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SavedSearchForm.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/saved-search/SearchActionsMenu.tsx","webpack://graylog-web-interface/./src/views/logic/queries/useQueryFilters.ts","webpack://graylog-web-interface/./src/views/components/SearchBar.tsx","webpack://graylog-web-interface/./src/views/components/messagelist/HighlightMessageInQuery.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DefaultFieldTypesProvider.tsx","webpack://graylog-web-interface/./src/views/components/contexts/HighlightingRulesProvider.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchExplainContextProvider.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchPagePreferencesState.tsx","webpack://graylog-web-interface/./src/views/components/contexts/SearchPagePreferencesProvider.tsx","webpack://graylog-web-interface/./src/views/components/contexts/WidgetFocusProvider.tsx","webpack://graylog-web-interface/./src/views/hooks/SyncWithQueryParameters.ts","webpack://graylog-web-interface/./src/views/components/SynchronizeUrl.tsx","webpack://graylog-web-interface/./src/views/components/ExternalValueActionsProvider.tsx","webpack://graylog-web-interface/./src/views/components/Search.tsx","webpack://graylog-web-interface/./src/pages/UserHasNoStreamAccess.tsx","webpack://graylog-web-interface/./src/views/components/IfUserHasAccessToAnyStream.tsx","webpack://graylog-web-interface/./src/views/components/contexts/DashboardPageContextProvider.tsx","webpack://graylog-web-interface/./src/views/logic/views/processHooks.ts","webpack://graylog-web-interface/./src/views/logic/views/UseProcessHooksForView.tsx","webpack://graylog-web-interface/./src/views/components/contexts/AutoRefreshProvider.tsx","webpack://graylog-web-interface/./src/views/pages/SearchPage.tsx","webpack://graylog-web-interface/./src/views/logic/views/ViewDeserializer.ts","webpack://graylog-web-interface/./src/views/hooks/useFetchView.ts","webpack://graylog-web-interface/./src/views/pages/ShowViewPage.tsx","webpack://graylog-web-interface/./src/views/stores/SearchConfigStore.ts","webpack://graylog-web-interface/./src/views/stores/StreamsStore.ts","webpack://graylog-web-interface/./src/views/stores/TitleTypes.ts","webpack://graylog-web-interface/./src/views/stores/ViewManagementStore.ts","webpack://graylog-web-interface/./src/views/stores/isEqualForSearch.ts","webpack://graylog-web-interface/./src/views/typeGuards/timeRange.ts","webpack://graylog-web-interface/./src/routing/request.ts","webpack://graylog-web-interface/./target/api/AWS.ts","webpack://graylog-web-interface/./target/api/AWS/Config.ts","webpack://graylog-web-interface/./target/api/AWSKinesisAuto.ts","webpack://graylog-web-interface/./target/api/Authorization/GrantsOverview.ts","webpack://graylog-web-interface/./target/api/Authorization/Roles.ts","webpack://graylog-web-interface/./target/api/Authorization/Shares.ts","webpack://graylog-web-interface/./target/api/CA.ts","webpack://graylog-web-interface/./target/api/Cluster.ts","webpack://graylog-web-interface/./target/api/Cluster/Debug/SupportBundle.ts","webpack://graylog-web-interface/./target/api/Cluster/Deflector.ts","webpack://graylog-web-interface/./target/api/Cluster/InputState.ts","webpack://graylog-web-interface/./target/api/Cluster/Jobs.ts","webpack://graylog-web-interface/./target/api/Cluster/Journal.ts","webpack://graylog-web-interface/./target/api/Cluster/LoadBalancers.ts","webpack://graylog-web-interface/./target/api/Cluster/LookupTable.ts","webpack://graylog-web-interface/./target/api/Cluster/Metrics.ts","webpack://graylog-web-interface/./target/api/Cluster/Node/Metrics.ts","webpack://graylog-web-interface/./target/api/Cluster/Plugins.ts","webpack://graylog-web-interface/./target/api/Cluster/Processing.ts","webpack://graylog-web-interface/./target/api/Cluster/Processing/Status.ts","webpack://graylog-web-interface/./target/api/Cluster/System/Loggers.ts","webpack://graylog-web-interface/./target/api/ContentStream.ts","webpack://graylog-web-interface/./target/api/Dashboards.ts","webpack://graylog-web-interface/./target/api/DataNodes/API.ts","webpack://graylog-web-interface/./target/api/DataNodes/REST/API.ts","webpack://graylog-web-interface/./target/api/Datanode.ts","webpack://graylog-web-interface/./target/api/Documentation.ts","webpack://graylog-web-interface/./target/api/Enterprise.ts","webpack://graylog-web-interface/./target/api/EntityLists.ts","webpack://graylog-web-interface/./target/api/EntityScope.ts","webpack://graylog-web-interface/./target/api/EntitySuggestions.ts","webpack://graylog-web-interface/./target/api/Events.ts","webpack://graylog-web-interface/./target/api/Events/Definitions.ts","webpack://graylog-web-interface/./target/api/Events/EntityTypes.ts","webpack://graylog-web-interface/./target/api/Events/Notifications.ts","webpack://graylog-web-interface/./target/api/Extractors.ts","webpack://graylog-web-interface/./target/api/Favorites.ts","webpack://graylog-web-interface/./target/api/FieldTypes.ts","webpack://graylog-web-interface/./target/api/HelloWorld.ts","webpack://graylog-web-interface/./target/api/Indexer/Cluster.ts","webpack://graylog-web-interface/./target/api/Indexer/Failures.ts","webpack://graylog-web-interface/./target/api/Indexer/Indices.ts","webpack://graylog-web-interface/./target/api/Indexer/Indices/Templates.ts","webpack://graylog-web-interface/./target/api/Indexer/Overview.ts","webpack://graylog-web-interface/./target/api/Legacy/Search/Absolute.ts","webpack://graylog-web-interface/./target/api/Legacy/Search/Keyword.ts","webpack://graylog-web-interface/./target/api/Legacy/Search/Relative.ts","webpack://graylog-web-interface/./target/api/Messages.ts","webpack://graylog-web-interface/./target/api/Migration.ts","webpack://graylog-web-interface/./target/api/Pipelines/Connections.ts","webpack://graylog-web-interface/./target/api/Pipelines/Pipelines.ts","webpack://graylog-web-interface/./target/api/Pipelines/Rulebuilder.ts","webpack://graylog-web-interface/./target/api/Pipelines/Rules.ts","webpack://graylog-web-interface/./target/api/Pipelines/Simulator.ts","webpack://graylog-web-interface/./target/api/ReindexMigration.ts","webpack://graylog-web-interface/./target/api/Roles.ts","webpack://graylog-web-interface/./target/api/Search.ts","webpack://graylog-web-interface/./target/api/Search/Decorators.ts","webpack://graylog-web-interface/./target/api/Search/Export.ts","webpack://graylog-web-interface/./target/api/Search/Messages.ts","webpack://graylog-web-interface/./target/api/Search/Metadata.ts","webpack://graylog-web-interface/./target/api/Search/QueryStrings.ts","webpack://graylog-web-interface/./target/api/Search/Saved.ts","webpack://graylog-web-interface/./target/api/Search/Simple.ts","webpack://graylog-web-interface/./target/api/Search/Suggestions.ts","webpack://graylog-web-interface/./target/api/Search/Validation.ts","webpack://graylog-web-interface/./target/api/SearchJobs.ts","webpack://graylog-web-interface/./target/api/Sidecar.ts","webpack://graylog-web-interface/./target/api/Sidecar/Administration.ts","webpack://graylog-web-interface/./target/api/Sidecar/Collector/Actions.ts","webpack://graylog-web-interface/./target/api/Sidecar/Collectors.ts","webpack://graylog-web-interface/./target/api/Sidecar/ConfigurationVariables.ts","webpack://graylog-web-interface/./target/api/Sidecar/Configurations.ts","webpack://graylog-web-interface/./target/api/StartPage.ts","webpack://graylog-web-interface/./target/api/StaticFields.ts","webpack://graylog-web-interface/./target/api/StreamOutputs.ts","webpack://graylog-web-interface/./target/api/StreamRules.ts","webpack://graylog-web-interface/./target/api/StreamRulesInputs.ts","webpack://graylog-web-interface/./target/api/Streams.ts","webpack://graylog-web-interface/./target/api/System.ts","webpack://graylog-web-interface/./target/api/System/Authentication/HTTPHeaderAuthConfig.ts","webpack://graylog-web-interface/./target/api/System/Authentication/Services.ts","webpack://graylog-web-interface/./target/api/System/Authentication/Services/Backends.ts","webpack://graylog-web-interface/./target/api/System/Authentication/Services/Configuration.ts","webpack://graylog-web-interface/./target/api/System/Authentication/Services/Test.ts","webpack://graylog-web-interface/./target/api/System/Catalog.ts","webpack://graylog-web-interface/./target/api/System/Cluster.ts","webpack://graylog-web-interface/./target/api/System/ClusterConfig.ts","webpack://graylog-web-interface/./target/api/System/ClusterStats.ts","webpack://graylog-web-interface/./target/api/System/ClusterTraffic.ts","webpack://graylog-web-interface/./target/api/System/Codecs/Types.ts","webpack://graylog-web-interface/./target/api/System/Configuration.ts","webpack://graylog-web-interface/./target/api/System/ContentPacks.ts","webpack://graylog-web-interface/./target/api/System/Debug/Events.ts","webpack://graylog-web-interface/./target/api/System/Debug/Streams.ts","webpack://graylog-web-interface/./target/api/System/Debug/SupportBundle.ts","webpack://graylog-web-interface/./target/api/System/Deflector.ts","webpack://graylog-web-interface/./target/api/System/FieldTypes.ts","webpack://graylog-web-interface/./target/api/System/Fields.ts","webpack://graylog-web-interface/./target/api/System/GettingStartedGuides.ts","webpack://graylog-web-interface/./target/api/System/Grok.ts","webpack://graylog-web-interface/./target/api/System/IndexRanges.ts","webpack://graylog-web-interface/./target/api/System/IndexSetDefaults.ts","webpack://graylog-web-interface/./target/api/System/IndexSets.ts","webpack://graylog-web-interface/./target/api/System/IndexSets/FieldTypeProfiles.ts","webpack://graylog-web-interface/./target/api/System/IndexSets/Types.ts","webpack://graylog-web-interface/./target/api/System/Indices/Retention.ts","webpack://graylog-web-interface/./target/api/System/Indices/Rotation.ts","webpack://graylog-web-interface/./target/api/System/InputStates.ts","webpack://graylog-web-interface/./target/api/System/Inputs.ts","webpack://graylog-web-interface/./target/api/System/Inputs/Types.ts","webpack://graylog-web-interface/./target/api/System/Jobs.ts","webpack://graylog-web-interface/./target/api/System/Journal.ts","webpack://graylog-web-interface/./target/api/System/LoadBalancers.ts","webpack://graylog-web-interface/./target/api/System/Loggers.ts","webpack://graylog-web-interface/./target/api/System/Lookup.ts","webpack://graylog-web-interface/./target/api/System/MessageProcessors.ts","webpack://graylog-web-interface/./target/api/System/Messages.ts","webpack://graylog-web-interface/./target/api/System/Metrics.ts","webpack://graylog-web-interface/./target/api/System/Monitoring.ts","webpack://graylog-web-interface/./target/api/System/Notification/Message.ts","webpack://graylog-web-interface/./target/api/System/Notifications.ts","webpack://graylog-web-interface/./target/api/System/Outputs.ts","webpack://graylog-web-interface/./target/api/System/Permissions.ts","webpack://graylog-web-interface/./target/api/System/Plugins.ts","webpack://graylog-web-interface/./target/api/System/Processing.ts","webpack://graylog-web-interface/./target/api/System/Processing/Status.ts","webpack://graylog-web-interface/./target/api/System/SearchVersion.ts","webpack://graylog-web-interface/./target/api/System/ServiceManager.ts","webpack://graylog-web-interface/./target/api/System/Sessions.ts","webpack://graylog-web-interface/./target/api/System/Stats.ts","webpack://graylog-web-interface/./target/api/System/Throughput.ts","webpack://graylog-web-interface/./target/api/System/UrlWhitelist.ts","webpack://graylog-web-interface/./target/api/Telemetry.ts","webpack://graylog-web-interface/./target/api/Users.ts","webpack://graylog-web-interface/./target/api/Views.ts","webpack://graylog-web-interface/./target/api/Views/QualifyingViews.ts","webpack://graylog-web-interface/./src/components/event-definitions/common/commonStyles.css?c497","webpack://graylog-web-interface/./src/views/components/messagelist/decorators/decoratorStyles.css?5fbd","webpack://graylog-web-interface/delegated 1468 from dll-reference __vendor","webpack://graylog-web-interface/delegated 1893 from dll-reference __vendor","webpack://graylog-web-interface/delegated 2555 from dll-reference __vendor","webpack://graylog-web-interface/delegated 2598 from dll-reference __vendor","webpack://graylog-web-interface/delegated 3001 from dll-reference __vendor","webpack://graylog-web-interface/delegated 3109 from dll-reference __vendor","webpack://graylog-web-interface/delegated 3156 from dll-reference __vendor","webpack://graylog-web-interface/delegated 335 from dll-reference __vendor","webpack://graylog-web-interface/delegated 381 from dll-reference __vendor","webpack://graylog-web-interface/delegated 3935 from dll-reference __vendor","webpack://graylog-web-interface/delegated 4644 from dll-reference __vendor","webpack://graylog-web-interface/delegated 5243 from dll-reference __vendor","webpack://graylog-web-interface/delegated 54567 from dll-reference __vendor","webpack://graylog-web-interface/delegated 7294 from dll-reference __vendor","webpack://graylog-web-interface/delegated 7588 from dll-reference __vendor","webpack://graylog-web-interface/delegated 8 from dll-reference __vendor","webpack://graylog-web-interface/delegated 917 from dll-reference __vendor","webpack://graylog-web-interface/delegated 947 from dll-reference __vendor","webpack://graylog-web-interface/delegated 9755 from dll-reference __vendor","webpack://graylog-web-interface/external var \"__vendor\"","webpack://graylog-web-interface/webpack/bootstrap","webpack://graylog-web-interface/webpack/runtime/amd define","webpack://graylog-web-interface/webpack/runtime/chunk loaded","webpack://graylog-web-interface/webpack/runtime/compat get default export","webpack://graylog-web-interface/webpack/runtime/create fake namespace object","webpack://graylog-web-interface/webpack/runtime/define property getters","webpack://graylog-web-interface/webpack/runtime/ensure chunk","webpack://graylog-web-interface/webpack/runtime/get javascript chunk filename","webpack://graylog-web-interface/webpack/runtime/global","webpack://graylog-web-interface/webpack/runtime/hasOwnProperty shorthand","webpack://graylog-web-interface/webpack/runtime/load script","webpack://graylog-web-interface/webpack/runtime/make namespace object","webpack://graylog-web-interface/webpack/runtime/node module decorator","webpack://graylog-web-interface/webpack/runtime/publicPath","webpack://graylog-web-interface/webpack/runtime/jsonp chunk loading","webpack://graylog-web-interface/webpack/runtime/nonce","webpack://graylog-web-interface/webpack/startup"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `form:not(.form-inline) .twitter-typeahead {\n  width: 100%;\n}\n.typeahead,\n.tt-query,\n.tt-hint {\n  border: 2px solid #ccc;\n  border-radius: 4px;\n  outline: none;\n}\n.typeahead {\n  background-color: #fff;\n}\n.typeahead:focus {\n  border: 2px solid #0097cf;\n}\n.tt-query {\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\ninput[type=\"text\"].tt-hint {\n  color: #999;\n}\n.tt-menu {\n  min-width: 160px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 4px;\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  width: 100%;\n}\n.tt-dataset {\n  margin-top: 10px;\n}\n.tt-suggestion {\n  font-size: 1rem;\n  /* theme.fonts.size.body */\n  line-height: 20px;\n  padding: 3px 20px;\n  cursor: pointer;\n}\n.tt-suggestion:hover,\n.tt-suggestion.tt-cursor {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #0081c2;\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\n  background-repeat: repeat-x;\n  outline: 0;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\n}\n.tt-suggestion p {\n  margin: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./public/stylesheets/typeahead.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAA;AACF;AAEA;;;EAGE,sBAAA;EACA,kBAAA;EACA,aAAA;AAAF;AAGA;EACE,sBAAA;AADF;AAIA;EACE,yBAAA;AAFF;AAKA;EACE,gDAAA;AAHF;AAMA;EACE,WAAA;AAJF;AAOA;EACE,gBAAA;EACA,sBAAA;EACA,oCAAA;EACA,kBAAA;EACA,yCAAA;EACA,WAAA;AALF;AAQA;EACE,gBAAA;AANF;AASA;EACE,eAAA;EAPA,0BAA0B;EAQ1B,iBAAA;EACA,iBAAA;EACA,eAAA;AANF;AASA;;EAEE,cAAA;EACA,qBAAA;EACA,yBAAA;EACA,8DAAA;EACA,2BAAA;EACA,UAAA;EACA,sHAAA;AAPF;AAUA;EACE,SAAA;AARF\",\"sourcesContent\":[\"form:not(.form-inline) .twitter-typeahead {\\n  width: 100%;\\n}\\n\\n.typeahead,\\n.tt-query,\\n.tt-hint {\\n  border: 2px solid #ccc;\\n  border-radius: 4px;\\n  outline: none;\\n}\\n\\n.typeahead {\\n  background-color: #fff;\\n}\\n\\n.typeahead:focus {\\n  border: 2px solid #0097cf;\\n}\\n\\n.tt-query {\\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n}\\n\\ninput[type=\\\"text\\\"].tt-hint {\\n  color: #999\\n}\\n\\n.tt-menu {\\n  min-width: 160px;\\n  background-color: #fff;\\n  border: 1px solid rgba(0, 0, 0, 0.2);\\n  border-radius: 4px;\\n  box-shadow: 0 5px 10px rgba(0,0,0,.2);\\n  width: 100%;\\n}\\n\\n.tt-dataset {\\n  margin-top: 10px;\\n}\\n\\n.tt-suggestion {\\n  font-size: 1rem; /* theme.fonts.size.body */\\n  line-height: 20px;\\n  padding: 3px 20px;\\n  cursor: pointer;\\n}\\n\\n.tt-suggestion:hover,\\n.tt-suggestion.tt-cursor {\\n  color: #ffffff;\\n  text-decoration: none;\\n  background-color: #0081c2;\\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\\n  background-repeat: repeat-x;\\n  outline: 0;\\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\\n}\\n\\n.tt-suggestion p {\\n  margin: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.QCm7R4MwlLoTDwu8SNZB {\n    padding-left: 0;\n    margin-bottom: 20px;\n}\n\n.QCm7R4MwlLoTDwu8SNZB .QCm7R4MwlLoTDwu8SNZB {\n    margin-bottom: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/common/ExpandableList.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;IACf,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;AACpB\",\"sourcesContent\":[\":local(.list) {\\n    padding-left: 0;\\n    margin-bottom: 20px;\\n}\\n\\n:local(.list) :local(.list) {\\n    margin-bottom: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"list\": `QCm7R4MwlLoTDwu8SNZB`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.bLH1iAETwjYKFim2_xa9 {\n    padding-left: 0;\n    padding-right: 0;\n}\n\n.bLH1iAETwjYKFim2_xa9 .popover-content {\n    min-width: 200px;\n    padding: 0;\n}\n\n.bLH1iAETwjYKFim2_xa9 .list-group {\n    margin-bottom: 0;\n}\n\n.bLH1iAETwjYKFim2_xa9 .list-group-item {\n    border-right: 0;\n    border-left: 0;\n    padding: 6px 15px;\n}\n\n.bLH1iAETwjYKFim2_xa9 .list-group-item:first-child {\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n}\n\n.bLH1iAETwjYKFim2_xa9 .list-group-item:last-child {\n    border-bottom: 0;\n}\n\n.SOQRgrHWKOcqvbc6z1g7 {\n    min-width: 200px;\n    max-height: 340px; /* 10 items */\n    overflow: auto;\n}\n\n.tfZVJT0QPa8mTaekvKgt {\n    margin-bottom: 0 !important;\n    padding: 5px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/common/SelectPopover.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,cAAc;IACd,iBAAiB;AACrB;;AAEA;IACI,0BAA0B;IAC1B,yBAAyB;AAC7B;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;IAChB,iBAAiB,EAAE,aAAa;IAChC,cAAc;AAClB;;AAEA;IACI,2BAA2B;IAC3B,YAAY;AAChB\",\"sourcesContent\":[\":local(.customPopover) {\\n    padding-left: 0;\\n    padding-right: 0;\\n}\\n\\n:local(.customPopover) .popover-content {\\n    min-width: 200px;\\n    padding: 0;\\n}\\n\\n:local(.customPopover) .list-group {\\n    margin-bottom: 0;\\n}\\n\\n:local(.customPopover) .list-group-item {\\n    border-right: 0;\\n    border-left: 0;\\n    padding: 6px 15px;\\n}\\n\\n:local(.customPopover) .list-group-item:first-child {\\n    border-top-right-radius: 0;\\n    border-top-left-radius: 0;\\n}\\n\\n:local(.customPopover) .list-group-item:last-child {\\n    border-bottom: 0;\\n}\\n\\n:local(.scrollableList) {\\n    min-width: 200px;\\n    max-height: 340px; /* 10 items */\\n    overflow: auto;\\n}\\n\\n:local(.dataFilterInput) {\\n    margin-bottom: 0 !important;\\n    padding: 5px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"customPopover\": `bLH1iAETwjYKFim2_xa9`,\n\t\"scrollableList\": `SOQRgrHWKOcqvbc6z1g7`,\n\t\"dataFilterInput\": `tfZVJT0QPa8mTaekvKgt`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.z6LAsSk67C9Z9TP6Sw_Z .panel-title {\n    font-size: 1rem; /* theme.fonts.size.body */\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z .panel-title > a {\n    cursor: pointer;\n    display: block;\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z .panel-body {\n    padding: 10px;\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z ul {\n    padding-left: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/common/HelpPanel.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe,EAAE,0BAA0B;AAC/C;;AAEA;IACI,eAAe;IACf,cAAc;AAClB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,eAAe;AACnB\",\"sourcesContent\":[\":local(.helpPanel) .panel-title {\\n    font-size: 1rem; /* theme.fonts.size.body */\\n}\\n\\n:local(.helpPanel) .panel-title > a {\\n    cursor: pointer;\\n    display: block;\\n}\\n\\n:local(.helpPanel) .panel-body {\\n    padding: 10px;\\n}\\n\\n:local(.helpPanel) ul {\\n    padding-left: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"helpPanel\": `z6LAsSk67C9Z9TP6Sw_Z`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.Q3IGkFIUvJ2Wg6SvuD4K {\n    margin-top: 10px;\n    margin-bottom: 10px;\n}\n\n.IsgkvOxhQSEsv8gRjrL3 {\n    table-layout: fixed;\n}\n\n.A9wyo101mpbrg9i57cBz.alert {\n    margin-bottom: 10px;\n}\n\n.A9wyo101mpbrg9i57cBz h4 {\n    font-size: 1.44rem; /* theme.fonts.size.body h4 */\n    margin-bottom: 0.5em;\n}\n\n.A9wyo101mpbrg9i57cBz ul {\n    list-style: disc;\n    margin: 0.5em 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/common/commonStyles.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,kBAAkB,EAAE,6BAA6B;IACjD,oBAAoB;AACxB;;AAEA;IACI,gBAAgB;IAChB,eAAe;AACnB\",\"sourcesContent\":[\":local(.title) {\\n    margin-top: 10px;\\n    margin-bottom: 10px;\\n}\\n\\n:local(.fixedTable) {\\n    table-layout: fixed;\\n}\\n\\n:local(.validationSummary).alert {\\n    margin-bottom: 10px;\\n}\\n\\n:local(.validationSummary) h4 {\\n    font-size: 1.44rem; /* theme.fonts.size.body h4 */\\n    margin-bottom: 0.5em;\\n}\\n\\n:local(.validationSummary) ul {\\n    list-style: disc;\\n    margin: 0.5em 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"title\": `Q3IGkFIUvJ2Wg6SvuD4K`,\n\t\"fixedTable\": `IsgkvOxhQSEsv8gRjrL3`,\n\t\"validationSummary\": `A9wyo101mpbrg9i57cBz`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.m1bai3Kt45u9j3MtW7hT {\n    margin-bottom: 20px;\n}\n\n.EJT6DlEKjyYuxyouwsaR {\n    table-layout: fixed;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-form/field-value-providers/CommonFieldValueProviderSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB\",\"sourcesContent\":[\":local(.field) {\\n    margin-bottom: 20px;\\n}\\n\\n:local(.fixedTable) {\\n    table-layout: fixed;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"field\": `m1bai3Kt45u9j3MtW7hT`,\n\t\"fixedTable\": `EJT6DlEKjyYuxyouwsaR`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.DqBObyDjYFhBwILgUW_Q .panel-body {\n    padding: 20px 10px;\n}\n\n.DqBObyDjYFhBwILgUW_Q ul {\n    padding-left: 1em;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-form/field-value-providers/TemplateFieldValueProviderPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;AACrB\",\"sourcesContent\":[\":local(.templatePreview) .panel-body {\\n    padding: 20px 10px;\\n}\\n\\n:local(.templatePreview) ul {\\n    padding-left: 1em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"templatePreview\": `DqBObyDjYFhBwILgUW_Q`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.Rm5RJaCv9xhyX2lY9jI3 {\n    margin-top: 25px;\n    height: 34px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-types/AggregationConditionExpression.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;IAChB,YAAY;AAChB\",\"sourcesContent\":[\":local(.formControlNoLabel) {\\n    margin-top: 25px;\\n    height: 34px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"formControlNoLabel\": `Rm5RJaCv9xhyX2lY9jI3`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.wp9nUw71uYu2kck_XycC span:not(:last-child)::after {\n    content: ', ';\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-types/FilterAggregationSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;AACjB\",\"sourcesContent\":[\":local(.streamList) span:not(:last-child)::after {\\n    content: ', ';\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"streamList\": `wp9nUw71uYu2kck_XycC`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.YV9VLhWAF0dOTkZvWqvg .panel-body {\n    max-height: 400px;\n    overflow-y: auto;\n    padding: 20px 10px;\n}\n\n.YV9VLhWAF0dOTkZvWqvg table {\n    table-layout: fixed;\n    word-wrap: break-word;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-types/FilterPreview.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,qBAAqB;AACzB\",\"sourcesContent\":[\":local(.filterPreview) .panel-body {\\n    max-height: 400px;\\n    overflow-y: auto;\\n    padding: 20px 10px;\\n}\\n\\n:local(.filterPreview) table {\\n    table-layout: fixed;\\n    word-wrap: break-word;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"filterPreview\": `YV9VLhWAF0dOTkZvWqvg`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.QOxROnWrKzReuEpPEJMw {\n    table-layout: fixed;\n    overflow-wrap: break-word;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-notifications/event-notification-types/CommonNotificationSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;IACnB,yBAAyB;AAC7B\",\"sourcesContent\":[\":local(.fixedTable) {\\n    table-layout: fixed;\\n    overflow-wrap: break-word;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fixedTable\": `QOxROnWrKzReuEpPEJMw`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.bN2Fa5FgSGHUh4zYUYzt {\n    font-family: \"Roboto Mono\", Menlo, Monaco, Consolas, \"Courier New\", monospace;\n    font-size: 1rem; /* theme.fonts.size.body */\n    overflow-wrap: break-word;\n    white-space: pre-wrap;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-notifications/event-notification-types/EmailNotificationSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,6EAA6E;IAC7E,eAAe,EAAE,0BAA0B;IAC3C,yBAAyB;IACzB,qBAAqB;AACzB\",\"sourcesContent\":[\":local(.bodyPreview) {\\n    font-family: \\\"Roboto Mono\\\", Menlo, Monaco, Consolas, \\\"Courier New\\\", monospace;\\n    font-size: 1rem; /* theme.fonts.size.body */\\n    overflow-wrap: break-word;\\n    white-space: pre-wrap;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"bodyPreview\": `bN2Fa5FgSGHUh4zYUYzt`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.rKKIeiSYDcRNaNEaL85y {\n    margin-bottom: 15px;\n    overflow-wrap: break-word;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-notifications/event-notification-types/LegacyNotificationCommonStyles.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;IACnB,yBAAyB;AAC7B\",\"sourcesContent\":[\":local(.legacyNotificationAlert) {\\n    margin-bottom: 15px;\\n    overflow-wrap: break-word;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"legacyNotificationAlert\": `rKKIeiSYDcRNaNEaL85y`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n.EM8rNPeHI3I13MdYidzw {\n    max-width: 500px;\n    min-width: 350px;\n}\n\n/* styles for table columns */\n.oNIxQlLcjvvFY27jyODI {\n    width: 15%;\n}\n.jXZIhUCAUZtfWZKKiLy0 {\n    max-width: 50%;\n    width: 35%\n}\n.Ii_DwC6G4wRm7thBYSKE {\n    width: 15%;\n}\n.q54g6XMj1D9X2J48jgrw {\n    width: 15%;\n}\n.wFLgXxYT9cnZwrNRg6DJ {\n    width: 15%;\n}\n.mk2GxDtbjbYu9RWQh_nL {\n    min-width: 100px;\n}\n\noverviewTable {\n    width: 100%;\n    table-layout: fixed;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/lookup-tables/Overview.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;;;;;;EAeE;AACF;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA,6BAA6B;AAC7B;IACI,UAAU;AACd;AACA;IACI,cAAc;IACd;AACJ;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,gBAAgB;AACpB;;AAEA;IACI,WAAW;IACX,mBAAmB;AACvB\",\"sourcesContent\":[\"/*\\n * Copyright (C) 2020 Graylog, Inc.\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the Server Side Public License, version 1,\\n * as published by MongoDB, Inc.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * Server Side Public License for more details.\\n *\\n * You should have received a copy of the Server Side Public License\\n * along with this program. If not, see\\n * .\\n */\\n:local(.popoverWide) {\\n    max-width: 500px;\\n    min-width: 350px;\\n}\\n\\n/* styles for table columns */\\n:local(.rowTitle) {\\n    width: 15%;\\n}\\n:local(.rowDescription) {\\n    max-width: 50%;\\n    width: 35%\\n}\\n:local(.rowName) {\\n    width: 15%;\\n}\\n:local(.rowCache) {\\n    width: 15%;\\n}\\n:local(.rowAdapter) {\\n    width: 15%;\\n}\\n:local(.rowActions) {\\n    min-width: 100px;\\n}\\n\\n:local(overviewTable) {\\n    width: 100%;\\n    table-layout: fixed;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popoverWide\": `EM8rNPeHI3I13MdYidzw`,\n\t\"rowTitle\": `oNIxQlLcjvvFY27jyODI`,\n\t\"rowDescription\": `jXZIhUCAUZtfWZKKiLy0`,\n\t\"rowName\": `Ii_DwC6G4wRm7thBYSKE`,\n\t\"rowCache\": `q54g6XMj1D9X2J48jgrw`,\n\t\"rowAdapter\": `wFLgXxYT9cnZwrNRg6DJ`,\n\t\"rowActions\": `mk2GxDtbjbYu9RWQh_nL`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#toast-container .toast {\n  display: grid;\n  grid-template-columns: 8fr 0.5fr;\n  grid-template-rows: repeat(2, 1fr);\n  grid-column-gap: 0;\n  grid-row-gap: 0;\n}\n\n#toast-container .toast-title {\n  grid-area: 1 / 1 / 2 / 1;\n}\n\n#toast-container .toast-message {\n  grid-area: 2 / 2 / 2 / 1;\n}\n\n#toast-container button.toast-close-button {\n  font-size: 0.889rem; /* theme.fonts.size.small */\n  grid-area: 1 / 2 / 3 / 3;\n  height: 100%;\n  top: 0;\n  right: 0;\n  font-weight: normal;\n}\n\n#toast-container button.toast-close-button:focus,\n#toast-container button.toast-close-button:hover {\n  color: #fff;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/util/UserNotification.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;EACb,gCAAgC;EAChC,kCAAkC;EAClC,kBAAkB;EAClB,eAAe;AACjB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,mBAAmB,EAAE,2BAA2B;EAChD,wBAAwB;EACxB,YAAY;EACZ,MAAM;EACN,QAAQ;EACR,mBAAmB;AACrB;;AAEA;;EAEE,WAAW;AACb\",\"sourcesContent\":[\"#toast-container .toast {\\n  display: grid;\\n  grid-template-columns: 8fr 0.5fr;\\n  grid-template-rows: repeat(2, 1fr);\\n  grid-column-gap: 0;\\n  grid-row-gap: 0;\\n}\\n\\n#toast-container .toast-title {\\n  grid-area: 1 / 1 / 2 / 1;\\n}\\n\\n#toast-container .toast-message {\\n  grid-area: 2 / 2 / 2 / 1;\\n}\\n\\n#toast-container button.toast-close-button {\\n  font-size: 0.889rem; /* theme.fonts.size.small */\\n  grid-area: 1 / 2 / 3 / 3;\\n  height: 100%;\\n  top: 0;\\n  right: 0;\\n  font-weight: normal;\\n}\\n\\n#toast-container button.toast-close-button:focus,\\n#toast-container button.toast-close-button:hover {\\n  color: #fff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.jcr2Blo1owtKhor0NDK4 {\n    display: inline;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/common/EditableTitle.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;AACnB\",\"sourcesContent\":[\":local(.inlineForm) {\\n    display: inline;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"inlineForm\": `jcr2Blo1owtKhor0NDK4`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.Xs05u6g6T94RXQPWqmgX {\n    height: 100%;\n    /* The grid prop is a workaround to fix\n     * horizontal scrolling for safari */\n    display: grid;\n    grid-template-rows: 1fr;\n    grid-template-columns: 1fr;\n}\n\n.tezUr3fyRnWnYXoSKy4b {\n    overflow: auto;\n    grid-row: 1;\n    grid-column: 1;\n}\n\n@media print {\n    table.messages {\n        font-size: 1rem !important; /* theme.fonts.size.body */\n        min-width: 50%;\n        padding-left: 0;\n    }\n\n    table.messages th {\n        font-weight: bold !important;\n        font-size: inherit !important;\n    }\n\n    table.messages th,\n    table.messages td {\n        border: 1px #ccc solid !important;\n        left: 0;\n        padding: 5px;\n        position: static;\n    }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/datatable/DataTable.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,YAAY;IACZ;wCACoC;IACpC,aAAa;IACb,uBAAuB;IACvB,0BAA0B;AAC9B;;AAEA;IACI,cAAc;IACd,WAAW;IACX,cAAc;AAClB;;AAEA;IACI;QACI,0BAA0B,EAAE,0BAA0B;QACtD,cAAc;QACd,eAAe;IACnB;;IAEA;QACI,4BAA4B;QAC5B,6BAA6B;IACjC;;IAEA;;QAEI,iCAAiC;QACjC,OAAO;QACP,YAAY;QACZ,gBAAgB;IACpB;AACJ\",\"sourcesContent\":[\":local(.container) {\\n    height: 100%;\\n    /* The grid prop is a workaround to fix\\n     * horizontal scrolling for safari */\\n    display: grid;\\n    grid-template-rows: 1fr;\\n    grid-template-columns: 1fr;\\n}\\n\\n:local(.scrollContainer) {\\n    overflow: auto;\\n    grid-row: 1;\\n    grid-column: 1;\\n}\\n\\n@media print {\\n    table.messages {\\n        font-size: 1rem !important; /* theme.fonts.size.body */\\n        min-width: 50%;\\n        padding-left: 0;\\n    }\\n\\n    table.messages th {\\n        font-weight: bold !important;\\n        font-size: inherit !important;\\n    }\\n\\n    table.messages th,\\n    table.messages td {\\n        border: 1px #ccc solid !important;\\n        left: 0;\\n        padding: 5px;\\n        position: static;\\n    }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": `Xs05u6g6T94RXQPWqmgX`,\n\t\"scrollContainer\": `tezUr3fyRnWnYXoSKy4b`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.QSHpvNKPLbhcL9XmEhhU {\n    display: flex;\n    justify-content: space-between;\n}\n\n.j9AR9KIYOoQokjhQgKvg {\n    margin-top: 5px;\n    margin-bottom: 5px;\n}\n\n.OEtwRH8_D2wSh4zSe35P {\n    margin-right: 5px;\n    width: 100%;\n}\n\n.Ptn3S3n2DhOJZlpLxQ8U {\n    font-size: 1rem; /* theme.fonts.size.body */\n    padding-top: 0px;\n    padding-right: 0px;\n    float: right;\n}\n\n.mWIeXfwAHVUqyO9KpNv8 {\n    font-size: 1rem; /* theme.fonts.size.body */\n}\n\n.i93VpIsNwxNSYHhnrhdm {\n    display: inline-block;\n    overflow: visible;\n    width: 100%;\n}\n\n.Mt_DKChL9e_UySBfolGR {\n    margin-top: 2em;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/messagelist/decorators/decoratorStyles.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;IACb,8BAA8B;AAClC;;AAEA;IACI,eAAe;IACf,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;IACjB,WAAW;AACf;;AAEA;IACI,eAAe,EAAE,0BAA0B;IAC3C,gBAAgB;IAChB,kBAAkB;IAClB,YAAY;AAChB;;AAEA;IACI,eAAe,EAAE,0BAA0B;AAC/C;;AAEA;IACI,qBAAqB;IACrB,iBAAiB;IACjB,WAAW;AACf;;AAEA;IACI,eAAe;AACnB\",\"sourcesContent\":[\":local(.decoratorBox) {\\n    display: flex;\\n    justify-content: space-between;\\n}\\n\\n:local(.addDecoratorButtonContainer) {\\n    margin-top: 5px;\\n    margin-bottom: 5px;\\n}\\n\\n:local(.addDecoratorSelect) {\\n    margin-right: 5px;\\n    width: 100%;\\n}\\n\\n:local(.helpLink) {\\n    font-size: 1rem; /* theme.fonts.size.body */\\n    padding-top: 0px;\\n    padding-right: 0px;\\n    float: right;\\n}\\n\\n:local(.helpPopover) {\\n    font-size: 1rem; /* theme.fonts.size.body */\\n}\\n\\n:local(.decoratorListContainer) {\\n    display: inline-block;\\n    overflow: visible;\\n    width: 100%;\\n}\\n\\n:local(.noDecoratorsAlert) {\\n    margin-top: 2em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"decoratorBox\": `QSHpvNKPLbhcL9XmEhhU`,\n\t\"addDecoratorButtonContainer\": `j9AR9KIYOoQokjhQgKvg`,\n\t\"addDecoratorSelect\": `OEtwRH8_D2wSh4zSe35P`,\n\t\"helpLink\": `Ptn3S3n2DhOJZlpLxQ8U`,\n\t\"helpPopover\": `mWIeXfwAHVUqyO9KpNv8`,\n\t\"decoratorListContainer\": `i93VpIsNwxNSYHhnrhdm`,\n\t\"noDecoratorsAlert\": `Mt_DKChL9e_UySBfolGR`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.FExXmIJ_52cj0vrHyaEp {\n    margin: 5px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/searchbar/saved-search/SavedSearchForm.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,WAAW;AACf\",\"sourcesContent\":[\":local(.button) {\\n    margin: 5px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": `FExXmIJ_52cj0vrHyaEp`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.FNITmrI44QcfwOlSnZnW {\n    padding: 0;\n    overflow-y: auto;\n}\n\n.uWCkwTOVkwo9YrCjUynr {\n    font-size: 12px;\n    display: table-row;\n    white-space: nowrap;\n}\n\n.Zy3GorsX2QMvX8NgdDwv {\n    display: flex;\n}\n\n.NIPxqjCGQchbRQbyrPIR {\n    flex-grow: 1;\n    margin-right: 5px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/sidebar/fields/FieldTypeIcon.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,UAAU;IACV,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,kBAAkB;IAClB,mBAAmB;AACvB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,iBAAiB;AACrB\",\"sourcesContent\":[\":local(.fieldList) {\\n    padding: 0;\\n    overflow-y: auto;\\n}\\n\\n:local(.fieldListItem) {\\n    font-size: 12px;\\n    display: table-row;\\n    white-space: nowrap;\\n}\\n\\n:local(.filterContainer) {\\n    display: flex;\\n}\\n\\n:local(.filterInputContainer) {\\n    flex-grow: 1;\\n    margin-right: 5px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fieldList\": `FNITmrI44QcfwOlSnZnW`,\n\t\"fieldListItem\": `uWCkwTOVkwo9YrCjUynr`,\n\t\"filterContainer\": `Zy3GorsX2QMvX8NgdDwv`,\n\t\"filterInputContainer\": `NIPxqjCGQchbRQbyrPIR`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.qWBqb_23sgqkD946642Z {\n    position: absolute;\n    z-index: 999; /* So it displays below bootstrap dropdowns */\n}\n\n.VEeyO9k8vNGGhxOuqVkQ .leaflet-control-container {\n    display: none;\n}\n\n.leaflet-top, .leaflet-bottom {\n    z-index: 999; /* So it displays below bootstrap dropdowns */\n}\n\n@media print {\n    .KoTenzOWhTf1f7jkioVR {\n        margin: 0 auto;\n        page-break-inside: avoid;\n    }\n\n    /* Hide zoom controls */\n    .leaflet-control-container {\n        display: none;\n    }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/visualizations/worldmap/MapVisualization.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;IAClB,YAAY,EAAE,6CAA6C;AAC/D;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY,EAAE,6CAA6C;AAC/D;;AAEA;IACI;QACI,cAAc;QACd,wBAAwB;IAC5B;;IAEA,uBAAuB;IACvB;QACI,aAAa;IACjB;AACJ\",\"sourcesContent\":[\":local(.overlay) {\\n    position: absolute;\\n    z-index: 999; /* So it displays below bootstrap dropdowns */\\n}\\n\\n:local(.mapLocked) .leaflet-control-container {\\n    display: none;\\n}\\n\\n.leaflet-top, .leaflet-bottom {\\n    z-index: 999; /* So it displays below bootstrap dropdowns */\\n}\\n\\n@media print {\\n    :local(.map) {\\n        margin: 0 auto;\\n        page-break-inside: avoid;\\n    }\\n\\n    /* Hide zoom controls */\\n    .leaflet-control-container {\\n        display: none;\\n    }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"overlay\": `qWBqb_23sgqkD946642Z`,\n\t\"mapLocked\": `VEeyO9k8vNGGhxOuqVkQ`,\n\t\"map\": `KoTenzOWhTf1f7jkioVR`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.AGNNVtf0vXX5QH3GraEY {\n    margin-right: 15px;\n    margin: 3px 15px 0 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/widgets/MessageWidgets.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;IAClB,oBAAoB;AACxB\",\"sourcesContent\":[\":local(.iconMargin) {\\n    margin-right: 15px;\\n    margin: 3px 15px 0 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconMargin\": `AGNNVtf0vXX5QH3GraEY`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* Restore bootstrap heading margins because our stylesheet is :shit: */\n.Qgqa5YAOjl_LIS9aGdk3 h1, .Qgqa5YAOjl_LIS9aGdk3 h2, .Qgqa5YAOjl_LIS9aGdk3 h3 {\n    margin-top: 20px;\n    margin-bottom: 10px;\n}\n\n.Qgqa5YAOjl_LIS9aGdk3 h4, .Qgqa5YAOjl_LIS9aGdk3 h5, .Qgqa5YAOjl_LIS9aGdk3 h6 {\n    margin-top: 10px;\n    margin-bottom: 10px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/pages/StyleFixups.css\"],\"names\":[],\"mappings\":\"AAAA,uEAAuE;AACvE;IACI,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,mBAAmB;AACvB\",\"sourcesContent\":[\"/* Restore bootstrap heading margins because our stylesheet is :shit: */\\n:local(.bootstrapHeading) h1, :local(.bootstrapHeading) h2, :local(.bootstrapHeading) h3 {\\n    margin-top: 20px;\\n    margin-bottom: 10px;\\n}\\n\\n:local(.bootstrapHeading) h4, :local(.bootstrapHeading) h5, :local(.bootstrapHeading) h6 {\\n    margin-top: 10px;\\n    margin-bottom: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"bootstrapHeading\": `Qgqa5YAOjl_LIS9aGdk3`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `div.plotly-notifier {\n    visibility: hidden;\n}\n\n.xK5gTnz6x6uLtuCzdS2T .popover-content {\n    padding: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/components/visualizations/GenericPlot.lazy.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;AACtB;;AAEA;IACI,UAAU;AACd\",\"sourcesContent\":[\"div.plotly-notifier {\\n    visibility: hidden;\\n}\\n\\n:local(.customPopover) .popover-content {\\n    padding: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"customPopover\": `xK5gTnz6x6uLtuCzdS2T`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\n\nimport { singletonActions } from 'logic/singleton';\n\nconst ErrorsActions = singletonActions(\n  'Errors',\n  () => Reflux.createActions(['report']),\n);\n\nexport default ErrorsActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { configureStore } from '@reduxjs/toolkit';\nimport type { PluggableReducer } from 'graylog-web-plugin';\n\nimport type { RootState } from 'views/types';\nimport type { SearchExecutors } from 'views/logic/slices/searchExecutionSlice';\n\nconst createStore = (reducers: PluggableReducer[], initialState: Partial, searchExecutors: SearchExecutors) => {\n  const reducer = Object.fromEntries(reducers.map((r) => [r.key, r.reducer]));\n\n  return configureStore({\n    reducer,\n    preloadedState: initialState,\n    middleware: (getDefaultMiddleware) => getDefaultMiddleware({\n      serializableCheck: false,\n      immutableCheck: false,\n      thunk: {\n        extraArgument: { searchExecutors },\n      },\n    }),\n  });\n};\n\nexport default createStore;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useContext } from 'react';\n\nimport SearchExecutorsContext from 'views/components/contexts/SearchExecutorsContext';\n\nconst useSearchExecutors = () => useContext(SearchExecutorsContext);\n\nexport default useSearchExecutors;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { Provider } from 'react-redux';\nimport * as Immutable from 'immutable';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport createStore from 'store';\nimport type View from 'views/logic/views/View';\nimport type { QueryId } from 'views/logic/queries/Query';\nimport type { QuerySet } from 'views/logic/search/Search';\nimport type SearchExecutionState from 'views/logic/search/SearchExecutionState';\nimport type { UndoRedoState } from 'views/logic/slices/undoRedoSlice';\nimport type { RootState } from 'views/types';\nimport useSearchExecutors from 'views/components/contexts/useSearchExecutors';\n\ntype Props = {\n  initialQuery: QueryId,\n  isNew: boolean,\n  view: View,\n  executionState: SearchExecutionState,\n  undoRedoState?: UndoRedoState,\n  result?: RootState['searchExecution']['result'],\n}\n\nconst useActiveQuery = (initialQuery: Props['initialQuery'], view: Props['view']) => useMemo(() => {\n  const queries: QuerySet = view?.search?.queries ?? Immutable.Set();\n\n  if (initialQuery && queries.find((q) => q.id === initialQuery) !== undefined) {\n    return initialQuery;\n  }\n\n  return queries.first()?.id;\n}, [initialQuery, view?.search?.queries]);\n\nconst useInitialState = (undoRedoState: UndoRedoState, view: View, isNew: boolean, activeQuery, executionState: SearchExecutionState, result?: Props['result']): Partial => useMemo(() => {\n  const undoRedo = undoRedoState ? { undoRedo: undoRedoState } : {};\n\n  return ({\n    view: {\n      view,\n      isDirty: false,\n      isNew,\n      activeQuery,\n    },\n    searchExecution: {\n      widgetsToSearch: undefined,\n      executionState,\n      isLoading: false,\n      result,\n    },\n    ...undoRedo,\n  });\n},\n// eslint-disable-next-line react-hooks/exhaustive-deps\n[executionState, isNew, view]);\n\nconst PluggableStoreProvider = ({ initialQuery, children, isNew, view, executionState, undoRedoState, result }: React.PropsWithChildren) => {\n  const reducers = usePluginEntities('views.reducers');\n  const activeQuery = useActiveQuery(initialQuery, view);\n  const initialState = useInitialState(undoRedoState, view, isNew, activeQuery, executionState, result);\n  const searchExecutors = useSearchExecutors();\n  const store = useMemo(() => createStore(reducers, initialState, searchExecutors), [initialState, reducers, searchExecutors]);\n\n  return (\n    \n      {children}\n    \n  );\n};\n\nPluggableStoreProvider.defaultProps = {\n  undoRedoState: undefined,\n  result: undefined,\n};\n\nexport default PluggableStoreProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport type { CSSProperties } from 'react';\nimport type { ColorVariant } from '@graylog/sawmill';\nimport { Alert as MantineAlert } from '@mantine/core';\n\nimport Icon from 'components/common/Icon';\n\ntype Props = {\n  bsStyle?: ColorVariant,\n  children: React.ReactNode,\n  className?: string,\n  onDismiss?: () => void,\n  style?: CSSProperties,\n  title?: React.ReactNode,\n  noIcon?: boolean,\n}\n\nconst StyledAlert = styled(MantineAlert)<{ $bsStyle: ColorVariant }>(({ $bsStyle, theme }) => css`\n  margin: ${theme.spacings.md} 0;\n  border: 1px solid ${theme.colors.variant.lighter[$bsStyle]};\n\n  .mantine-Alert-message {\n    color: ${theme.colors.global.textDefault};\n    font-size: ${theme.fonts.size.body};\n  }\n\n  .mantine-Alert-title {\n    font-size: ${theme.fonts.size.body};\n    color: ${theme.colors.global.textDefault};\n  }\n\n  .mantine-Alert-closeButton {\n    color: ${theme.colors.global.textDefault};\n  },\n`);\n\nconst iconNameForType = (bsStyle: ColorVariant) => {\n  switch (bsStyle) {\n    case 'warning':\n    case 'danger':\n      return 'error';\n    case 'success':\n      return 'check_circle';\n    default:\n      return 'info';\n  }\n};\n\nconst Alert = ({ children, bsStyle, title, style, className, onDismiss, noIcon }: Props) => {\n  const displayCloseButton = typeof onDismiss === 'function';\n  const iconName = iconNameForType(bsStyle);\n\n  return (\n    }\n                 closeButtonLabel={displayCloseButton && 'Close alert'}\n                 withCloseButton={displayCloseButton}>\n      {children}\n    \n  );\n};\n\nAlert.defaultProps = {\n  className: undefined,\n  onDismiss: undefined,\n  style: undefined,\n  title: undefined,\n  bsStyle: 'default',\n  noIcon: false,\n};\n\nexport default Alert;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { ColorVariant } from '@graylog/sawmill';\nimport { Badge as MantineBadge } from '@mantine/core';\nimport styled, { css } from 'styled-components';\n\nconst StyledBadge = styled(MantineBadge)<{ color: ColorVariant }>(({ theme, color }) => css`\n  color: ${theme.colors.contrast[color]};\n  text-transform: none;\n\n  .mantine-Badge-label {\n    font-size: ${theme.fonts.size.small};\n  }\n`);\n\ntype Props = React.PropsWithChildren<{\n  bsStyle?: ColorVariant,\n  className?: string\n  'data-testid'?: string,\n  onClick?: () => void\n  title?: string,\n}>\n\nconst Badge = React.forwardRef(({\n  bsStyle,\n  className,\n  children,\n  'data-testid': dataTestid,\n  onClick,\n  title,\n}, ref) => (\n  \n    {children}\n  \n));\n\nBadge.defaultProps = {\n  bsStyle: 'default',\n  className: undefined,\n  'data-testid': undefined,\n  onClick: undefined,\n  title: undefined,\n};\n\nexport default Badge;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ModalSubmit from 'components/common/ModalSubmit';\n\nimport Modal from './Modal';\nimport BootstrapModalWrapper from './BootstrapModalWrapper';\n\ntype Props = {\n  showModal: boolean,\n  title: string | React.ReactNode,\n  confirmButtonText: string,\n  cancelButtonDisabled: boolean,\n  confirmButtonDisabled: boolean,\n  onConfirm: (e: React.BaseSyntheticEvent) => void,\n  onCancel: () => void,\n  children: React.ReactNode,\n};\n\n/**\n * Component that displays a confirmation dialog box that the user can\n * cancel or confirm.\n */\nconst BootstrapModalConfirm = ({\n  showModal,\n  title,\n  children,\n  cancelButtonDisabled,\n  confirmButtonDisabled,\n  confirmButtonText,\n  onCancel,\n  onConfirm,\n  ...restProps\n}: Props) => (\n  \n    \n      {title}\n    \n\n    \n      {children}\n    \n\n    \n      \n    \n  \n);\n\nBootstrapModalConfirm.propTypes = {\n  /** Control whether the modal is shown or not. Prop updates should trigger opening (if show changes from false to true), respectively closing the modal (if show changes from false to true). */\n  showModal: PropTypes.bool.isRequired,\n  /** Title to use in the modal. */\n  title: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.element,\n  ]).isRequired,\n  /** Text to use in the confirmation button. */\n  confirmButtonText: PropTypes.string,\n  /** Indicates whether the cancel button should be disabled or not. */\n  cancelButtonDisabled: PropTypes.bool,\n  /** Indicates whether the confirm button should be disabled or not. */\n  confirmButtonDisabled: PropTypes.bool,\n  /** Function to call when the modal is opened. The function does not receive any arguments. */\n  onCancel: PropTypes.func.isRequired,\n  /**\n   * Function to call when the action is confirmed. The function receives a callback function to close the modal\n   * dialog box as first argument.\n   */\n  onConfirm: PropTypes.func.isRequired,\n  /**\n   * React elements to display in the modal body. This should be the information the user has\n   * to confirm in order to proceed with the operation.\n   */\n  children: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.element,\n  ]).isRequired,\n};\n\nBootstrapModalConfirm.defaultProps = {\n  confirmButtonText: 'Confirm',\n  cancelButtonDisabled: false,\n  confirmButtonDisabled: false,\n};\n\nexport default BootstrapModalConfirm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React, { useMemo, useRef } from 'react';\nimport $ from 'jquery';\nimport isString from 'lodash/isString';\n\nimport ModalSubmit from 'components/common/ModalSubmit';\n\nimport Modal from './Modal';\nimport BootstrapModalWrapper from './BootstrapModalWrapper';\n\ntype Props = {\n  backdrop: boolean | 'static' | undefined,\n  submitButtonDisabled: boolean,\n  formProps: object,\n  bsSize: 'lg' | 'large' | 'sm' | 'small',\n  show: boolean,\n  submitButtonText: string,\n  onSubmitForm: (event) => void,\n  onCancel: () => void,\n  title: string | React.ReactNode,\n  children: React.ReactNode,\n  modalTitle?: string | undefined,\n};\n\n/**\n * Encapsulates a form element inside a bootstrap modal, hiding some custom logic that this kind of component\n * has, and providing form validation using HTML5 and our custom validation.\n */\nconst BootstrapModalForm = ({\n  backdrop,\n  submitButtonDisabled,\n  formProps,\n  bsSize,\n  show,\n  submitButtonText,\n  onSubmitForm,\n  onCancel,\n  title,\n  children,\n  modalTitle,\n  ...restProps\n}: Props) => {\n  const form = useRef(null);\n\n  const submit = (event) => {\n    const formDOMNode = form.current;\n    const $formDOMNode = $(formDOMNode) as any;\n\n    if ((typeof formDOMNode.checkValidity === 'function' && !formDOMNode.checkValidity())\n      || (typeof $formDOMNode.checkValidity === 'function' && !$formDOMNode.checkValidity())) {\n      event.preventDefault();\n\n      return;\n    }\n\n    if (typeof onSubmitForm === 'function') {\n      event.preventDefault();\n      onSubmitForm(event);\n    }\n  };\n\n  const body = (\n    
\n {children}\n
\n );\n\n const _title = useMemo(() => (isString(title) ? title : modalTitle), [modalTitle, title]);\n\n return (\n \n \n {title}\n \n
\n \n {body}\n \n \n \n \n
\n
\n );\n};\n\nBootstrapModalForm.propTypes = {\n backdrop: PropTypes.oneOf([true, false, 'static']),\n bsSize: PropTypes.oneOf(['lg', 'large', 'sm', 'small']),\n /* Modal title */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n /* Form contents, included in the modal body */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.element,\n ]).isRequired,\n onSubmitForm: PropTypes.func,\n onCancel: PropTypes.func.isRequired,\n /* Object with additional props to pass to the form */\n formProps: PropTypes.object,\n /* Text to use in the submit button. \"Submit\" is the default */\n submitButtonText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n submitButtonDisabled: PropTypes.bool,\n show: PropTypes.bool.isRequired,\n};\n\nBootstrapModalForm.defaultProps = {\n backdrop: undefined,\n formProps: {},\n submitButtonText: 'Submit',\n submitButtonDisabled: false,\n onSubmitForm: undefined,\n bsSize: undefined,\n modalTitle: undefined,\n};\n\nexport default BootstrapModalForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Modal from './Modal';\n\ntype Props = {\n title?: string | undefined,\n backdrop: boolean|'static'|undefined,\n bsSize: 'lg'|'large'|'sm'|'small',\n showModal: boolean,\n role: string,\n onHide: () => void,\n children: React.ReactNode,\n};\n\nconst BootstrapModalWrapper = ({\n showModal,\n children,\n onHide,\n bsSize,\n backdrop,\n role,\n ...restProps\n}: Props) => (\n \n {children}\n \n);\n\nBootstrapModalWrapper.propTypes = {\n showModal: PropTypes.bool.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.element,\n ]).isRequired,\n onHide: PropTypes.func.isRequired,\n bsSize: PropTypes.oneOf([\n 'large', 'lg', 'small', 'sm',\n ]),\n backdrop: PropTypes.oneOf(['static', true, false]),\n role: PropTypes.string,\n};\n\nBootstrapModalWrapper.defaultProps = {\n bsSize: undefined,\n backdrop: 'static',\n role: 'dialog',\n title: undefined,\n};\n\nexport default BootstrapModalWrapper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { ColorVariant } from '@graylog/sawmill';\nimport { Button as MantineButton } from '@mantine/core';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { useTheme, css } from 'styled-components';\n\nimport type { BsSize } from 'components/bootstrap/types';\n\nconst sizeForMantine = (size: BsSize) => {\n switch (size) {\n case 'xs':\n case 'xsmall': return 'xs';\n case 'sm':\n case 'small': return 'sm';\n case 'lg':\n case 'large': return 'lg';\n default: return 'md';\n }\n};\n\nexport type StyleProps = ColorVariant | 'link';\n\nconst mapStyle = (style: StyleProps) => (style === 'default' ? 'gray' : style);\n\nconst stylesProps = (style: StyleProps) => {\n switch (style) {\n case 'link': return { variant: 'subtle' };\n default: return {};\n }\n};\n\nconst stylesForSize = (size: BsSize) => {\n switch (size) {\n case 'xs':\n case 'xsmall':\n return css`\n height: 21.4141px;\n padding: 1px 5px;\n `;\n case 'sm':\n case 'small':\n return css`\n height: 29.4141px;\n padding: 5px 10px;\n `;\n case 'lg':\n case 'large':\n return css`\n height: 43.1641px;\n padding: 10px 16px;\n `;\n case 'medium':\n default:\n return css`\n height: 33.84px;\n padding: 6px 12px;\n `;\n }\n};\n\nconst disabledStyles = (themeColors: DefaultTheme['colors'], style: StyleProps) => {\n if (style === 'link') {\n return '';\n }\n\n const colors = themeColors.disabled[style];\n\n return css`\n &:disabled,\n &[data-disabled] {\n pointer-events: all;\n color: ${colors.color};\n background-color: ${colors.background};\n opacity: 0.45;\n\n &:hover {\n color: ${colors.color};\n }\n }\n `;\n};\n\nconst activeStyles = (themeColors: DefaultTheme['colors'], bsStyle: StyleProps) => {\n switch (bsStyle) {\n case 'danger':\n case 'info':\n case 'success':\n case 'primary':\n case 'warning':\n return css`\n color: ${themeColors.global.textDefault};\n\n &:hover {\n color: ${themeColors.global.textDefault};\n }\n\n &:focus {\n color: ${themeColors.global.textDefault};\n }\n `;\n default: return '';\n }\n};\n\nconst StyledButton = styled(MantineButton)<{\n $bsStyle: StyleProps,\n $bsSize: BsSize,\n $active: boolean\n}>(({\n theme,\n $bsStyle,\n $bsSize,\n $active,\n}) => {\n const textColor = $bsStyle === 'link' ? theme.colors.global.link : theme.colors.button[$bsStyle].color;\n\n return css`\n color: ${textColor};\n font-weight: 400;\n overflow: visible;\n\n ${disabledStyles(theme.colors, $bsStyle)}\n ${stylesForSize($bsSize)}\n\n &:hover {\n color: ${textColor};\n text-decoration: none;\n }\n\n &:focus {\n color: ${textColor};\n text-decoration: none;\n }\n\n ${$active && activeStyles(theme.colors, $bsStyle)}\n\n .mantine-Button-label {\n gap: 0.25em;\n overflow: visible;\n }\n\n .mantine-Button-loader {\n visibility: hidden;\n }\n `;\n});\n\ntype Props = React.PropsWithChildren<{\n active?: boolean,\n 'aria-label'?: string,\n bsStyle?: StyleProps,\n bsSize?: BsSize,\n className?: string,\n 'data-testid'?: string,\n disabled?: boolean,\n form?: string,\n href?: string,\n id?: string,\n name?: string,\n onClick?: ((e: React.MouseEvent) => void) | ((e: boolean) => void) | (() => void),\n rel?: 'noopener noreferrer',\n role?: string,\n tabIndex?: number,\n target?: '_blank',\n title?: string,\n type?: 'button' | 'reset' | 'submit',\n}>;\n\nconst Button = React.forwardRef(\n ({\n 'aria-label': ariaLabel, bsStyle, bsSize, className, 'data-testid': dataTestId, id, onClick, disabled, href,\n title, form, target, type, rel, role, name, tabIndex, children, active,\n }, ref) => {\n const theme = useTheme();\n const style = mapStyle(bsStyle);\n const color = style === 'link' ? 'transparent' : theme.colors.button[style].background;\n const sharedProps = {\n id,\n 'aria-label': ariaLabel,\n className,\n ...stylesProps(style),\n $active: active,\n $bsStyle: style,\n $bsSize: bsSize,\n variant: active ? 'outline' : 'filled',\n color,\n 'data-testid': dataTestId,\n disabled,\n role,\n size: sizeForMantine(bsSize),\n tabIndex,\n title,\n type,\n } as const;\n\n if (href) {\n return (\n ) => void}\n {...sharedProps}>\n {children}\n \n );\n }\n\n return (\n ) => void}\n name={name}\n {...sharedProps}>\n {children}\n \n );\n });\n\nButton.defaultProps = {\n active: undefined,\n 'aria-label': undefined,\n bsStyle: 'default',\n bsSize: undefined,\n className: undefined,\n 'data-testid': undefined,\n disabled: false,\n form: undefined,\n href: undefined,\n id: undefined,\n name: undefined,\n onClick: undefined,\n rel: undefined,\n role: undefined,\n tabIndex: undefined,\n target: undefined,\n title: undefined,\n type: undefined,\n};\n\nexport default Button;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { Button as MantineButton } from '@mantine/core';\n\nexport default MantineButton.Group;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport OriginalButtonGroup from './ButtonGroup';\n\nconst StyledButtonToolbar = styled(OriginalButtonGroup)`\n gap: 0.25em;\n`;\n\nconst ButtonToolbar = (props: React.ComponentProps) => (\n \n);\n\n/** @component */\nexport default ButtonToolbar;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { Checkbox as BootstrapCheckbox } from 'react-bootstrap';\n\ntype BootstrapCheckboxProps = React.ComponentProps;\n\ntype Props = Omit & {\n onChange: (e: React.ChangeEvent) => void,\n}\nconst Checkbox = ({ onChange, ...props }: Props) => ;\n\nexport default Checkbox;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled, { css } from 'styled-components';\n// eslint-disable-next-line no-restricted-imports\nimport { ControlLabel as BootstrapControlLabel } from 'react-bootstrap';\n\nconst ControlLabel = styled(BootstrapControlLabel)(({ theme }) => css`\n color: ${theme.colors.global.textDefault};\n font-weight: bold;\n margin-bottom: 5px;\n display: inline-block;\n`);\n\n/** @component */\nexport default ControlLabel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport Icon from 'components/common/Icon';\n\nimport Menu from './Menu';\nimport Button from './Button';\n\nconst StyledIcon = styled(Icon)`\n width: 10px;\n height: 10px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\n/**\n * This is the default dropdown button component. If you need to display the dropdown in a portal, please use the `OverlayDropdownButton`.\n */\ntype ButtonProps = Omit, 'title' | 'children'>;\ntype Props = React.PropsWithChildren void,\n onToggle?: (isOpen: boolean) => void,\n pullRight?: boolean,\n title?: React.ReactNode,\n}>;\n\nconst position = (pullRight: boolean, dropup: boolean): 'top' | 'bottom' | 'top-end' | 'bottom-end' => {\n const orientation = dropup ? 'top' : 'bottom';\n const suffix = pullRight ? '-end' : '';\n\n return `${orientation}${suffix}`;\n};\n\nconst DropdownButton = ({ buttonTitle, children, closeOnItemClick, dropup, title, onMouseDown, onToggle, pullRight, noCaret, keepMounted, ...rest }: Props) => (\n \n \n \n \n {children}\n \n);\n\nDropdownButton.defaultProps = {\n closeOnItemClick: true,\n buttonTitle: undefined,\n dropup: undefined,\n keepMounted: undefined,\n noCaret: undefined,\n onMouseDown: undefined,\n onToggle: undefined,\n pullRight: undefined,\n title: undefined,\n};\n\n/** @component */\nexport default DropdownButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { FormControl as BootstrapFormControl } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nimport { INPUT_BORDER_RADIUS } from 'theme/constants';\n\nconst FormControl = styled(BootstrapFormControl)(({ theme }) => css`\n &.form-control {\n border-radius: ${INPUT_BORDER_RADIUS};\n }\n\n &.form-control:not([type='range']) {\n color: ${theme.colors.input.color};\n background-color: ${theme.colors.input.background};\n border-color: ${theme.colors.input.border};\n\n &::placeholder {\n color: ${theme.colors.input.placeholder};\n }\n\n &:focus {\n border-color: ${theme.colors.input.borderFocus};\n box-shadow: ${theme.colors.input.boxShadow};\n }\n\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: ${theme.colors.input.backgroundDisabled};\n color: ${theme.colors.input.colorDisabled};\n }\n\n ~ .form-control-feedback.glyphicon {\n display: none;\n }\n }\n`);\n\nFormControl.Static = BootstrapFormControl.Static;\nFormControl.Feedback = BootstrapFormControl.Feedback;\n\n/** @component */\nexport default FormControl;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line no-restricted-imports\nimport { FormGroup as BootstrapFormGroup } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\nimport chroma from 'chroma-js';\n\nimport { CONTROL_CLASS as COMMON_SELECT_CONTROL_CLASS } from 'components/common/Select/index';\n\nimport FormControl from './FormControl';\nimport { StyledAddon } from './InputGroup';\n\nconst StyledFormGroup = styled(BootstrapFormGroup)(({ theme, validationState }) => {\n const variant = validationState === 'error' ? 'danger' : validationState;\n\n if (!variant) {\n return undefined;\n }\n\n const text = theme.colors.variant.dark[variant];\n const border = theme.colors.variant.light[variant];\n const background = theme.colors.variant.lightest[variant];\n\n return css`\n &.has-${validationState} {\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: ${text};\n }\n\n ${FormControl}, .${COMMON_SELECT_CONTROL_CLASS} {\n border-color: ${border};\n\n &:focus {\n border-color: ${chroma(border).darken(0.1)};\n box-shadow: inset 0 1px 1px rgb(0 0 0 / 7.5%), 0 0 6px ${chroma(border).brighten(0.2)};\n }\n }\n\n ${StyledAddon} {\n color: ${text};\n background-color: ${background};\n border-color: ${border};\n }\n\n .form-control-feedback {\n color: ${text};\n }\n }\n`;\n});\n\nconst FormGroup = memo(({ children, validationState, ...props }) => (\n \n {children}\n \n));\n\nFormGroup.propTypes = {\n children: PropTypes.node.isRequired,\n validationState: PropTypes.oneOf([null, 'error', 'success', 'warning']),\n};\n\nFormGroup.defaultProps = {\n validationState: null,\n};\n\nexport default FormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport InputDescription from 'components/common/InputDescription';\n\nimport Checkbox from './Checkbox';\nimport { Radio } from './imports';\nimport ControlLabel from './ControlLabel';\nimport FormControl from './FormControl';\nimport FormGroup from './FormGroup';\nimport InputGroup from './InputGroup';\nimport InputWrapper from './InputWrapper';\n\n/*\n * Input adapter for react bootstrap.\n *\n * The form API in react-bootstrap 0.30 changed quite a lot. This component will serve as an adapter until our\n * code is adapted to the new API.\n *\n */\nclass Input extends React.Component {\n static propTypes = {\n id: PropTypes.string.isRequired,\n type: PropTypes.string,\n name: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n labelClassName: PropTypes.string,\n bsStyle: PropTypes.oneOf(['success', 'warning', 'error']),\n formGroupClassName: PropTypes.string,\n inputDescClassName: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n placeholder: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n help: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n wrapperClassName: PropTypes.string,\n addonAfter: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n buttonAfter: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n children: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.element,\n ]),\n };\n\n static defaultProps = {\n type: undefined,\n label: '',\n labelClassName: undefined,\n name: undefined,\n formGroupClassName: undefined,\n inputDescClassName: undefined,\n bsStyle: null,\n value: undefined,\n placeholder: '',\n error: undefined,\n help: undefined,\n wrapperClassName: undefined,\n addonAfter: null,\n buttonAfter: null,\n children: null,\n };\n\n getInputDOMNode = () => this.input;\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n getValue = () => {\n const { type } = this.props;\n\n if (!type) {\n throw new Error('Cannot use getValue without specifying input type.');\n }\n\n switch (type) {\n case 'checkbox':\n case 'radio':\n return this.getInputDOMNode().checked;\n default:\n return this.getInputDOMNode().value;\n }\n };\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n getChecked = () => this.getInputDOMNode().checked;\n\n _renderFormControl = (componentClass, controlProps, children) => (\n { this.input = ref; }} componentClass={componentClass} {...controlProps}>\n {children}\n \n );\n\n _renderFormGroup = (children) => {\n const {\n id,\n bsStyle,\n formGroupClassName,\n wrapperClassName,\n inputDescClassName,\n label,\n labelClassName,\n error,\n help,\n buttonAfter,\n addonAfter,\n } = this.props;\n\n let input;\n\n if (addonAfter || buttonAfter) {\n input = (\n \n {children}\n {buttonAfter && {buttonAfter}}\n {addonAfter && {addonAfter}}\n \n );\n } else {\n input = children;\n }\n\n return (\n \n {label && {label}}\n \n {input}\n \n \n \n );\n };\n\n _renderCheckboxGroup = (controlProps) => {\n const { id, buttonAfter, bsStyle, formGroupClassName, inputDescClassName, wrapperClassName, label, error, help } = this.props;\n\n return (\n \n \n {buttonAfter ? (\n \n { this.input = ref; }} {...controlProps}>{label}\n {buttonAfter && {buttonAfter}}\n \n ) : (\n { this.input = ref; }} {...controlProps}>{label}\n )}\n \n\n \n \n );\n };\n\n _renderRadioGroup = (controlProps) => {\n const { id, bsStyle, formGroupClassName, inputDescClassName, wrapperClassName, label, error, help } = this.props;\n\n return (\n \n \n { this.input = ref; }} {...controlProps}>{label}\n \n \n \n );\n };\n\n render() {\n const {\n id,\n type,\n children,\n label,\n name,\n // The following props need to be extracted even if they are not used\n // so they are not passed as controll props to the input\n bsStyle, formGroupClassName, wrapperClassName, labelClassName, inputDescClassName, // eslint-disable-line no-unused-vars\n error, help, addonAfter, buttonAfter, // eslint-disable-line no-unused-vars\n ...controlProps\n } = this.props;\n\n controlProps.type = type;\n controlProps.label = label;\n controlProps.name = name || id;\n\n if (!type) {\n return this._renderFormGroup(children);\n }\n\n switch (type) {\n case 'text':\n case 'password':\n case 'email':\n case 'number':\n case 'file':\n case 'tel':\n return this._renderFormGroup(this._renderFormControl('input', controlProps));\n case 'textarea':\n return this._renderFormGroup(this._renderFormControl('textarea', controlProps));\n case 'select':\n return this._renderFormGroup(this._renderFormControl('select', controlProps, children));\n case 'checkbox':\n return this._renderCheckboxGroup(controlProps);\n case 'radio':\n return this._renderRadioGroup(controlProps);\n default:\n // eslint-disable-next-line no-console\n console.warn(`Unsupported input type ${type}`);\n }\n\n return null;\n }\n}\n\nexport default Input;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line no-restricted-imports\nimport { InputGroup as BootstrapInputGroup } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\nimport classNames from 'classnames';\n\nconst StyledBootstrapInputAddon = ({ className, ...rest }) => ;\n\nexport const StyledAddon = styled(StyledBootstrapInputAddon)(({ theme }) => css`\n color: ${theme.colors.input.color};\n background-color: ${theme.colors.input.background};\n border-color: ${theme.colors.input.border};\n`);\n\nconst Addon = ({ bsClass, className, ...addonProps }) => ;\n\nconst Button = ({ bsClass, className, ...addonProps }) => ;\n\nconst InputGroup = ({ bsClass, className, ...restProps }) => ;\n\nInputGroup.Addon = Addon;\nInputGroup.Button = Button;\n\nStyledBootstrapInputAddon.propTypes = {\n className: PropTypes.string,\n};\n\nStyledBootstrapInputAddon.defaultProps = {\n className: undefined,\n};\n\nInputGroup.propTypes = {\n bsClass: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nInputGroup.defaultProps = {\n bsClass: 'input-group',\n className: undefined,\n};\n\nAddon.propTypes = {\n bsClass: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nAddon.defaultProps = {\n bsClass: 'input-group-addon',\n className: undefined,\n};\n\nButton.propTypes = {\n bsClass: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nButton.defaultProps = {\n bsClass: 'input-group-btn',\n className: undefined,\n};\n\n/** @component */\nexport default InputGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst InputWrapper = ({ children, className }) => (className\n ?
{children}
\n : {children});\n\nInputWrapper.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nInputWrapper.defaultProps = {\n className: undefined,\n};\n\nexport default InputWrapper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { PropsWithChildren } from 'react';\nimport React from 'react';\nimport { Menu as MantineMenu, type MenuProps } from '@mantine/core';\nimport styled, { css } from 'styled-components';\n\ntype Props = PropsWithChildren<{\n closeOnItemClick?: boolean,\n keepMounted?: boolean,\n offset?: MenuProps['offset'],\n onChange?: (isOpen: boolean) => void,\n onClose?: () => void,\n opened?: boolean,\n portalProps?: { target: HTMLElement },\n position?: MenuProps['position'],\n shadow?: MenuProps['shadow'],\n width?: number,\n withinPortal?: boolean,\n zIndex?: number,\n}>\n\nconst Menu = ({\n children,\n closeOnItemClick,\n keepMounted,\n offset,\n onChange,\n onClose,\n opened,\n portalProps,\n position,\n shadow,\n width,\n withinPortal,\n zIndex,\n}: Props) => (\n \n {children}\n \n);\n\nconst StyledMenuItem = styled(MantineMenu.Item)(({ theme }) => css`\n color: ${theme.colors.global.textDefault};\n font-size: ${theme.fonts.size.body};\n white-space: nowrap;\n \n &[data-hovered], &:focus {\n text-decoration: none;\n color: inherit;\n background-color: ${theme.utils.colorLevel(theme.colors.global.contentBackground, 10)}\n }\n`);\n\nconst StyledMenuDivider = styled(MantineMenu.Divider)(({ theme }) => css`\n border-color: ${theme.colors.variant.lighter.default};\n`);\n\nconst StyledMenuLabel = styled(MantineMenu.Label)(({ theme }) => css`\n font-size: ${theme.fonts.size.navigation};\n`);\n\nMenu.Target = MantineMenu.Target;\n\nMenu.Dropdown = styled(MantineMenu.Dropdown)(({ theme }) => css`\n && {\n background-color: ${theme.colors.global.contentBackground};\n border: 1px solid ${theme.colors.variant.lighter.default};\n }\n`);\n\nMenu.Item = StyledMenuItem;\nMenu.Divider = StyledMenuDivider;\nMenu.Label = StyledMenuLabel;\n\nMenu.defaultProps = {\n closeOnItemClick: true,\n keepMounted: undefined,\n offset: undefined,\n onChange: undefined,\n onClose: undefined,\n opened: undefined,\n portalProps: undefined,\n position: undefined,\n shadow: undefined,\n width: undefined,\n withinPortal: false,\n zIndex: undefined,\n};\n\nexport default Menu;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Link } from 'react-router-dom';\n\nimport Icon from 'components/common/Icon';\n\nimport Menu from './Menu';\n\nconst StyledMenuItem = styled(Menu.Item)<{ $variant: 'danger' | undefined }>(({ $variant, theme }) => css`\n ${$variant ? `color: ${theme.colors.variant.danger};` : ''}\n`);\n\nconst IconWrapper = styled.div`\n display: inline-flex;\n min-width: 20px;\n margin-right: 5px;\n justify-content: center;\n align-items: center;\n`;\n\ntype Callback = T extends undefined ? () => void : (eventKey: T) => void\n\ntype Props = React.PropsWithChildren<{\n className?: string,\n component?: 'a',\n 'data-tab-id'?: string,\n disabled?: boolean,\n divider?: boolean,\n eventKey?: T,\n header?: boolean,\n href?: string,\n icon?: React.ComponentProps['name'],\n id?: string,\n onClick?: Callback,\n onSelect?: Callback,\n rel?: 'noopener noreferrer',\n target?: '_blank',\n title?: string,\n variant?: 'danger'\n closeMenuOnClick?: boolean,\n}>;\n\nconst CustomMenuItem = ({ children, className, disabled, divider, eventKey, header, href, icon, id, onClick, onSelect, rel, target, title, 'data-tab-id': dataTabId, component, variant, closeMenuOnClick }: Props) => {\n const callback = onClick ?? onSelect;\n const _onClick = useCallback(() => callback?.(eventKey), [callback, eventKey]);\n\n if (divider) {\n return ;\n }\n\n if (header) {\n return {children};\n }\n\n const sharedProps = {\n $variant: variant,\n className,\n 'data-tab-id': dataTabId,\n disabled,\n icon: icon ? : null,\n id,\n onClick: _onClick,\n title,\n closeMenuOnClick,\n };\n\n if (href) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n};\n\nCustomMenuItem.defaultProps = {\n className: undefined,\n closeMenuOnClick: undefined,\n component: undefined,\n 'data-tab-id': undefined,\n disabled: false,\n divider: false,\n eventKey: undefined,\n header: false,\n href: undefined,\n icon: undefined,\n id: undefined,\n onClick: undefined,\n onSelect: undefined,\n rel: undefined,\n target: undefined,\n title: undefined,\n variant: undefined,\n};\n\n/** @component */\nexport default CustomMenuItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Modal as BootstrapModal } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst Dialog = css`\n margin-top: 55px;\n\n .modal-content {\n background-color: ${({ theme }) => theme.colors.global.contentBackground};\n border-color: ${({ theme }) => theme.colors.variant.light.default};\n height: 100%;\n }\n`;\n\nconst Header = css`\n border-bottom-color: ${({ theme }) => theme.colors.variant.light.default};\n\n button.close {\n color: currentColor;\n }\n`;\n\nconst Title = css`\n font-size: ${({ theme }) => theme.fonts.size.h3};\n`;\n\nconst Footer = css`\n border-top-color: ${({ theme }) => theme.colors.variant.light.default};\n`;\n\nconst Body = css`\n .form-group {\n margin-bottom: 5px;\n }\n`;\n\nconst Modal = styled(BootstrapModal)`\n .modal-backdrop {\n height: 100000%; /* yes, really. this fixes the backdrop being cut off when the page is scrolled. */\n z-index: 1030;\n }\n\n form {\n margin-bottom: 0;\n }\n\n .modal-dialog {\n ${Dialog}\n }\n\n .modal-header {\n ${Header}\n }\n\n .modal-footer {\n ${Footer}\n }\n\n .modal-title {\n ${Title}\n }\n\n .modal-body {\n ${Body}\n }\n`;\n\nModal.Dialog = styled(BootstrapModal.Dialog)`\n ${Dialog}\n`;\n\nModal.Header = styled(BootstrapModal.Header)`\n ${Header}\n`;\n\nModal.Title = styled(BootstrapModal.Title)`\n ${Title}\n`;\n\nModal.Body = styled(BootstrapModal.Body)`\n ${Body}\n`;\n\nModal.Footer = styled(BootstrapModal.Footer)`\n ${Footer}\n`;\n\n/** @component */\nexport default Modal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport AppConfig from './AppConfig';\n\nexport const DEPRECATION_NOTICE = 'Graylog Deprecation Notice:';\n\n// eslint-disable-next-line no-console\nconst deprecationNotice = (deprecatedMessage) => AppConfig.gl2DevMode() && console.warn(DEPRECATION_NOTICE, deprecatedMessage);\n\nexport default deprecationNotice;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n// eslint-disable-next-line no-restricted-imports\nimport { Panel as BootstrapPanel } from 'react-bootstrap';\n\nimport deprecationNotice from 'util/deprecationNotice';\n\nconst PanelHeading = styled(BootstrapPanel.Heading)(({ theme }) => css`\n .panel-title {\n > a {\n color: ${theme.colors.global.textDefault};\n display: block;\n }\n }\n`);\n\nconst PanelFooter = styled(BootstrapPanel.Footer)(({ theme }) => css`\n background-color: ${theme.colors.gray[90]};\n border-top-color: ${theme.colors.gray[80]};\n`);\n\nconst panelVariantStyles = css(({ bsStyle = 'default', theme }) => {\n const backgroundColor = theme.colors.variant.lighter[bsStyle];\n const borderColor = theme.colors.variant.dark[bsStyle];\n\n return css`\n border-color: ${borderColor};\n\n > ${PanelHeading} {\n color: ${theme.utils.readableColor(backgroundColor)};\n background-color: ${backgroundColor};\n border-color: ${borderColor};\n\n + .panel-collapse > .panel-body {\n border-top-color: ${borderColor};\n }\n\n .badge {\n color: ${backgroundColor};\n background-color: ${theme.colors.variant[bsStyle]};\n }\n }\n\n > ${PanelFooter} {\n + .panel-collapse > .panel-body {\n border-bottom-color: ${borderColor};\n }\n }\n`;\n});\n\nconst StyledPanel = styled(BootstrapPanel)(({ theme }) => css`\n background-color: ${theme.utils.colorLevel(theme.colors.global.background, -4)};\n\n > ${PanelHeading} {\n .panel-title,\n .panel-title h3 {\n font-size: ${theme.fonts.size.large};\n }\n }\n\n .panel-group {\n > ${PanelHeading} {\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top-color: ${theme.colors.gray[90]};\n }\n }\n\n > ${PanelFooter} {\n + .panel-collapse .panel-body {\n border-bottom-color: ${theme.colors.gray[90]};\n }\n }\n }\n\n ${panelVariantStyles}\n`);\n\nconst deprecatedVariantStyles = css(({ bsStyle = 'default', theme }) => {\n const backgroundColor = theme.colors.variant.lightest[bsStyle];\n const borderColor = theme.colors.variant.light[bsStyle];\n\n return css`\n /** NOTE: Deprecated & should be removed in 4.0 */\n border-color: ${borderColor};\n background: ${theme.colors.table.row.background};\n\n & > .panel-heading {\n color: ${theme.utils.contrastingColor(backgroundColor)};\n background-color: ${backgroundColor};\n border-color: ${borderColor};\n\n > .panel-title,\n > .panel-title > * {\n font-size: ${theme.fonts.size.large};\n }\n\n + .panel-collapse > .panel-body {\n border-top-color: ${borderColor};\n }\n\n .badge {\n color: ${backgroundColor};\n background-color: ${theme.colors.variant[bsStyle]};\n }\n }\n\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: ${borderColor};\n }\n }\n`;\n});\n\nconst DeprecatedStyledPanel = styled(BootstrapPanel)(({ theme }) => css`\n /** NOTE: Deprecated & should be removed in 4.0 */\n background-color: ${theme.utils.colorLevel(theme.colors.global.background, -4)};\n\n .panel-footer {\n background-color: ${theme.colors.gray[90]};\n border-top-color: ${theme.colors.gray[80]};\n }\n\n .panel-group {\n .panel-heading {\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top-color: ${theme.colors.gray[90]};\n }\n }\n\n .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: ${theme.colors.gray[90]};\n }\n }\n }\n\n ${deprecatedVariantStyles}\n`);\n\nconst Panel = ({\n title,\n children,\n collapsible,\n defaultExpanded,\n expanded,\n footer,\n header,\n onToggle,\n ...props\n}) => {\n const [isExpanded, setIsExpanded] = useState(null);\n const didRender = useRef(false);\n\n useEffect(() => {\n setIsExpanded((prevIsExpanded) => ((defaultExpanded && expanded)\n || (!defaultExpanded && expanded)\n || (defaultExpanded && prevIsExpanded === expanded)));\n }, [expanded, defaultExpanded]);\n\n useEffect(() => {\n didRender.current = true;\n }, []);\n\n const handleToggle = (nextIsExpanded) => {\n setIsExpanded(nextIsExpanded);\n onToggle(nextIsExpanded);\n };\n\n const hasDeprecatedChildren = typeof children === 'string' || (Array.isArray(children) && typeof children[0] === 'string');\n\n if (header || footer || title || collapsible || hasDeprecatedChildren) {\n /** NOTE: Deprecated & should be removed in 4.0 */\n if (!didRender.current) {\n deprecationNotice('You have used a deprecated `Panel` prop, please check the documentation to use the latest `Panel`.');\n }\n\n return (\n /* NOTE: this exists as a deprecated render for older Panel instances */\n (\n \n {(header || title) && (\n \n {header}\n {title && {title}}\n \n )}\n \n {children}\n \n {footer && (\n {footer}\n )}\n \n )\n );\n }\n\n return (\n \n {children}\n \n );\n};\n\nPanel.propTypes = {\n children: PropTypes.any.isRequired,\n /** @deprecated No longer used, replace with `` & `expanded`. */\n collapsible: PropTypes.bool,\n /**\n * Default of `expanded` prop\n *\n * @controllable onToggle\n */\n defaultExpanded: PropTypes.bool,\n /**\n * Controls the collapsed/expanded state of the Panel. Requires\n * a `Panel.Collapse` or `` child component\n * in order to actually animate out or in.\n *\n * @controllable onToggle\n */\n expanded: PropTypes.bool,\n /**\n * A callback fired when the collapse state changes.\n *\n * @controllable expanded\n */\n onToggle: PropTypes.func,\n /** @deprecated No longer used, replace with ``. */\n footer: PropTypes.string,\n /** @deprecated No longer used, replace with ``. */\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** @deprecated No longer used, replace with ``. */\n title: PropTypes.string,\n};\n\nPanel.defaultProps = {\n collapsible: false,\n defaultExpanded: null,\n expanded: null,\n footer: undefined,\n header: undefined,\n onToggle: () => {},\n title: undefined,\n};\n\nPanel.Body = BootstrapPanel.Body;\nPanel.Collapse = BootstrapPanel.Collapse;\nPanel.Footer = PanelFooter;\nPanel.Heading = PanelHeading;\nPanel.Title = BootstrapPanel.Title;\nPanel.Toggle = BootstrapPanel.Toggle;\n\n/** @component */\nexport default Panel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Row as BootstrapRow } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nexport const RowContentStyles = css(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n margin-bottom: ${theme.spacings.xs};\n border-radius: 6px;\n box-shadow: rgb(0 0 0 / 4%) 0 3px 5px;\n`);\n\ntype RowProps = React.ComponentProps;\nconst Row: React.ComponentType = styled(BootstrapRow)`\n &.content {\n ${RowContentStyles}\n }\n`;\n\n/** @component */\nexport default Row;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Table as BootstrapTable } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst variantRowStyles = css(({ theme }) => {\n const { table } = theme.colors;\n let styles = '';\n\n const variants = {\n active: {\n background: table.variant.active,\n hover: table.variantHover.active,\n },\n success: {\n background: table.variant.success,\n hover: table.variantHover.success,\n },\n info: {\n background: table.variant.info,\n hover: table.variantHover.info,\n },\n warning: {\n background: table.variant.warning,\n hover: table.variantHover.warning,\n },\n danger: {\n background: table.variant.danger,\n hover: table.variantHover.danger,\n },\n };\n\n Object.keys(variants).forEach((variant) => {\n const { background, hover } = variants[variant];\n\n styles += `\n &.table > thead > tr,\n &.table > tfoot > tr,\n &.table > tbody > tr {\n > td.${variant},\n > th.${variant},\n &.${variant} > td,\n &.${variant} > th {\n background-color: ${background};\n }\n }\n\n &.table-hover > tbody > tr {\n > td.${variant}:hover,\n > th.${variant}:hover,\n &.${variant}:hover > td,\n &:hover > .${variant},\n &.${variant}:hover > th {\n background-color: ${hover};\n }\n }\n `;\n });\n\n return css`\n ${styles}\n`;\n});\n\nconst tableCss = css(({ theme }) => css`\n &.table {\n > thead > tr,\n > tbody > tr,\n > tfoot > tr {\n > th,\n > td {\n border-top-color: ${theme.colors.table.row.border};\n }\n }\n\n > thead > tr > th {\n background: ${theme.colors.table.head.background};\n white-space: nowrap;\n border-bottom-color: ${theme.colors.table.row.border};\n }\n\n > tbody > tr {\n background-color: ${theme.colors.global.contentBackground};\n transition: background-color 150ms ease-in-out;\n }\n\n > tbody + tbody {\n border-top-color: ${theme.colors.table.row.border};\n }\n\n .table {\n background-color: ${theme.colors.table.row.background};\n }\n }\n\n &.table-bordered {\n border-color: ${theme.colors.table.row.border};\n\n > thead > tr,\n > tfoot > tr,\n > tbody > tr {\n > td,\n > th {\n border-color: ${theme.colors.table.row.border};\n }\n }\n }\n\n &.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: ${theme.colors.table.row.backgroundAlt};\n }\n\n &.table-hover > tbody > tr:hover {\n background-color: ${theme.colors.table.row.backgroundHover};\n }\n\n ${variantRowStyles}\n \n @media print {\n &.table > thead > tr > th {\n white-space: break-spaces;\n word-break: break-all;\n }\n }\n`);\n\nconst Table = styled(BootstrapTable)`\n ${tableCss}\n`;\n\n/** @component */\nexport default Table;\n\nexport { tableCss };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Well as BootstrapWell } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst Well = styled(BootstrapWell)(({ theme }) => css`\n background-color: ${theme.colors.variant.lightest.default};\n border-color: ${theme.colors.variant.light.default};\n color: ${theme.colors.variant.darker.default};\n`);\n\n/** @component */\nexport default Well;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { HelpBlock as BootstrapHelpBlock } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst HelpBlock = styled(BootstrapHelpBlock)(({ theme }) => css`\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: ${theme.colors.gray[50]};\n`);\n\n/** @component */\nexport default HelpBlock;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\n// eslint-disable-next-line no-restricted-imports\nimport { Jumbotron as BootstrapJumbotron } from 'react-bootstrap';\n\nexport const StyledJumbotron = styled(BootstrapJumbotron)(({ theme }) => css`\n color: ${theme.colors.global.textDefault};\n background-color: ${theme.colors.global.contentBackground};\n \n h2 {\n font-weight: bold;\n }\n\n p {\n margin-bottom: 9px;\n font-size: 20px;\n font-weight: normal;\n }\n`);\n\nconst Jumbotron = forwardRef((props, ref) => (\n \n));\n\nexport default Jumbotron;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Kbd } from '@mantine/core';\n\nconst KeyboardKey = ({ children }: React.PropsWithChildren) => {children};\n\nexport default KeyboardKey;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\n// eslint-disable-next-line no-restricted-imports\nimport { Label as BootstrapLabel } from 'react-bootstrap';\n\nconst getColorStyles = (theme: DefaultTheme, bsStyle: string) => {\n if (!bsStyle) {\n return '';\n }\n\n const { color, background } = theme.colors.button[bsStyle === 'default' ? 'gray' : bsStyle];\n\n return css`\n background-color: ${background};\n color: ${color};\n font-weight: normal;\n`;\n};\n\ntype StyledLabelProps = {\n bsStyle?: string,\n};\ntype Props = React.ComponentProps & StyledLabelProps;\nconst StyledLabel: React.ComponentType = styled(BootstrapLabel)(({ bsStyle, theme }) => css`\n ${getColorStyles(theme, bsStyle)}\n padding: 0.3em 0.6em;\n`);\n\nexport default StyledLabel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line no-restricted-imports\nimport { ListGroup as BootstrapListGroup } from 'react-bootstrap';\n\nconst ListGroup = ({ className, ...props }) => ;\n\nListGroup.propTypes = {\n className: PropTypes.string,\n};\n\nListGroup.defaultProps = {\n className: undefined,\n};\n\n/** @component */\nexport default ListGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line no-restricted-imports\nimport { ListGroupItem as BootstrapListGroupItem } from 'react-bootstrap';\n\nconst RefContainer = styled.span(({ theme }) => `\n display: block;\n border: 1px solid ${theme.colors.variant.lighter.default};\n margin-bottom: -1px;\n\n &:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n }\n\n &:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n }\n`);\n\nconst variantStyles = css(({ bsStyle, theme }) => {\n if (!bsStyle) {\n return undefined;\n }\n\n const backgroundColor = theme.colors.variant.lighter[bsStyle];\n const textColor = theme.utils.readableColor(backgroundColor);\n\n return css`\n &.list-group-item-${bsStyle} {\n color: ${textColor};\n background-color: ${backgroundColor};\n\n a&,\n button& {\n color: ${textColor};\n\n .list-group-item-heading {\n color: inherit;\n font-weight: bold;\n }\n\n &:hover,\n &:focus {\n color: ${textColor};\n background-color: ${theme.colors.variant.light[bsStyle]};\n }\n\n &.active,\n &.active:hover,\n &.active:focus {\n color: ${theme.utils.readableColor(theme.colors.variant.light[bsStyle])};\n background-color: ${theme.colors.variant.light[bsStyle]};\n border-color: ${theme.colors.variant.light[bsStyle]};\n }\n }\n }\n`;\n});\n\nconst StyledListGroupItem = styled(BootstrapListGroupItem)(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n border: 0;\n padding: 5px 10px;\n\n .list-group-item-heading {\n font-size: ${theme.fonts.size.h5};\n }\n\n .list-group-item-text {\n margin-bottom: 5px;\n }\n\n a&,\n button& {\n color: ${theme.colors.global.textDefault};\n\n .list-group-item-heading {\n color: ${theme.colors.variant.darkest.default};\n }\n\n &:hover:not(.disabled),\n &:focus:not(.disabled) {\n background-color: ${theme.colors.variant.lightest.default};\n\n &.active {\n color: ${theme.colors.variant.darkest.default};\n background-color: ${theme.colors.variant.lightest.default};\n border-color: ${theme.colors.variant.lightest.default};\n }\n\n .list-group-item-heading {\n color: ${theme.utils.readableColor(theme.colors.variant.lightest.default)};\n }\n }\n }\n\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n color: ${theme.colors.variant.default};\n background-color: ${theme.colors.variant.lightest.default};\n\n .list-group-item-heading {\n color: inherit;\n }\n\n .list-group-item-text {\n color: ${theme.colors.variant.default};\n }\n }\n\n &.active,\n &.active:hover,\n &.active:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: ${theme.colors.variant.lightest.info};\n border-color: ${theme.colors.variant.lightest.info};\n z-index: auto;\n\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n\n .list-group-item-text {\n color: ${theme.colors.variant.light.primary};\n }\n }\n\n ${variantStyles}\n`);\n\nconst ListGroupItem = forwardRef(({ containerProps, ...rest }, ref) => (\n \n \n \n));\n\nListGroupItem.propTypes = {\n containerProps: PropTypes.object,\n};\n\nListGroupItem.defaultProps = {\n containerProps: {},\n};\n\nexport default ListGroupItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { css } from 'styled-components';\n\nconst navTabsStyles = css(({ theme }) => css`\n .nav-tabs {\n border-bottom-color: ${theme.colors.variant.default};\n\n > li {\n > a {\n transition: background-color 150ms ease-in-out;\n color: ${theme.colors.global.textDefault};\n border-color: ${theme.colors.variant.lighter.default} ${theme.colors.variant.lighter.default} ${theme.colors.variant.default};\n\n &:hover {\n background-color: ${theme.colors.variant.lightest.default};\n color: ${theme.colors.global.textDefault};\n }\n }\n\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darkest.default};\n background-color: ${theme.colors.global.contentBackground};\n border-color: ${theme.colors.variant.default};\n border-bottom-color: transparent;\n }\n }\n\n &.disabled > a {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.gray[60]};\n background-color: ${theme.colors.gray[100]};\n border-color: ${theme.colors.gray[100]} ${theme.colors.gray[100]} ${theme.colors.variant.default};\n cursor: not-allowed;\n }\n }\n }\n }\n\n &.nav-justified {\n > .active > a {\n &,\n &:hover,\n &:focus {\n border-color: ${theme.colors.variant.default};\n }\n }\n\n @media (min-width: ${theme.breakpoints.min.sm}) {\n > li > a {\n border-bottom-color: ${theme.colors.variant.default};\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: ${theme.colors.gray[100]};\n }\n }\n }\n`);\n\nexport default navTabsStyles;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Nav as BootstrapNav } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nimport navTabsStyles from './styles/nav-tabs';\n\nconst Nav = styled(BootstrapNav)(({ theme }) => css`\n &.nav {\n > li {\n > a {\n transition: background-color 150ms ease-in-out;\n\n &:hover,\n &:focus {\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n\n &.disabled > a {\n color: ${theme.colors.variant.light.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.light.default};\n }\n }\n }\n\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: ${theme.colors.variant.lightest.default};\n border-color: ${theme.colors.variant.primary};\n }\n }\n\n &.nav-pills {\n > li {\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: ${theme.utils.contrastingColor(theme.colors.global.link)};\n background-color: ${theme.colors.global.link};\n }\n }\n }\n }\n \n &.nav-sm {\n > li > a {\n padding: 8px 12px;\n font-size: ${theme.fonts.size.small};\n }\n };\n\n &.nav-xs {\n > li > a {\n padding: 2px 6px;\n font-size: ${theme.fonts.size.small};\n }\n };\n\n &.nav-lg {\n > li > a {\n padding: 14px 18px;\n font-size: ${theme.fonts.size.large};\n }\n };\n\n &${navTabsStyles} /* This is a known non-issue that stylelint won't ignore but will hopefully be patched soon https://github.com/stylelint/stylelint/issues/4574 */\n }\n`);\n\n/** @component */\nexport default Nav;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { css } from 'styled-components';\n\nconst menuItemStyles = css(({ theme }) => css`\n .dropdown-menu {\n background-color: ${theme.colors.global.contentBackground};\n box-shadow: 0 3px 3px ${theme.colors.global.navigationBoxShadow};\n \n .dropdown-header {\n padding: 3px 10px;\n }\n \n > li > a {\n padding: 3px 10px;\n display: flex;\n color: ${theme.colors.global.textDefault};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n\n > .active > a {\n color: ${theme.colors.variant.darker.default};\n background-color: ${theme.colors.variant.lightest.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darkest.default};\n background-color: ${theme.colors.variant.lighter.default};\n }\n }\n\n > .disabled > a {\n color: ${theme.colors.variant.dark.default};\n background-color: ${theme.colors.variant.lightest.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.dark.default};\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n }\n`);\n\nexport default menuItemStyles;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { NavDropdown as BootstrapNavDropdown } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Menu from 'components/bootstrap/Menu';\nimport { NAV_ITEM_HEIGHT } from 'theme/constants';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nimport menuItemStyles from './styles/menuItem';\n\nclass ModifiedBootstrapNavDropdown extends BootstrapNavDropdown {\n // eslint-disable-next-line class-methods-use-this\n isActive({ props }, activeKey, activeHref) {\n // NOTE: had to override library as it doesn't respect setting `active={false}`\n if (props.active === false) {\n return false;\n }\n\n if (\n props.active\n || (activeKey != null && props.eventKey === activeKey)\n || (activeHref && props.href === activeHref)\n ) {\n return true;\n }\n\n return props.active;\n }\n}\n\nconst StyledMenuDropdown = styled(Menu.Dropdown)`\n z-index: 1032 !important;\n`;\n\nconst DropdownTrigger = styled.button<{ $active: boolean }>(({ theme, $active }) => css`\n background: transparent;\n border: 0;\n padding: 0 15px;\n min-height: ${NAV_ITEM_HEIGHT};\n\n &:hover, &:focus {\n ${hoverIndicatorStyles(theme)}\n }\n\n ${$active ? activeIndicatorStyles(theme) : ''}\n\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: transparent;\n }\n`);\n\nconst NavItem = styled.span`\n display: inline-flex;\n align-items: center;\n min-height: ${NAV_ITEM_HEIGHT};\n padding: 0;\n\n @media (max-width: 991px) {\n width: 100%;\n }\n`;\n\ntype Props = {\n title?: React.ReactNode,\n inactiveTitle?: string,\n badge?: React.ComponentType<{ text: React.ReactNode }>,\n noCaret?: boolean,\n hoverTitle?: string,\n}\n\nconst NavDropdown = ({ title, inactiveTitle, badge: Badge, noCaret, children, hoverTitle }: React.PropsWithChildren) => {\n const isActive = inactiveTitle ? inactiveTitle !== title : undefined;\n\n return (\n \n \n \n \n \n {Badge ? : title}\n \n {' '}\n {noCaret ? null : }\n \n \n \n \n {children}\n \n \n );\n};\n\nNavDropdown.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n inactiveTitle: PropTypes.string,\n badge: PropTypes.func,\n hoverTitle: PropTypes.string,\n};\n\nNavDropdown.defaultProps = {\n inactiveTitle: undefined,\n badge: undefined,\n noCaret: false,\n hoverTitle: undefined,\n};\n\nconst ModifiedNavDropdown = styled(ModifiedBootstrapNavDropdown)`\n ${menuItemStyles}\n`;\n\n/** @component */\nexport default NavDropdown;\nexport { ModifiedNavDropdown };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { NavItem as BootstrapNavItem } from 'react-bootstrap';\n\nimport NavItemStateIndicator from 'components/common/NavItemStateIndicator';\n\nconst NavItem = ({ children, ...props }: React.ComponentProps) => (\n \n \n {children}\n \n \n);\n\nNavItem.displayName = 'NavItem';\n\n/** @component */\nexport default NavItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Navbar as BootstrapNavbar } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\nimport chroma from 'chroma-js';\n\nconst Navbar = styled(BootstrapNavbar)(({ theme }) => css`\n position: relative;\n min-height: auto;\n background-color: ${theme.colors.global.navigationBackground};\n border: 0;\n box-shadow: 0 3px 3px ${theme.colors.global.navigationBoxShadow};\n margin-bottom: 0;\n\n .navbar-text {\n color: ${theme.colors.global.textDefault};\n }\n\n @media (max-width: ${theme.breakpoints.max.md}) {\n && .navbar-collapse {\n position: absolute;\n background-color: ${theme.colors.global.navigationBackground};\n width: 100%;\n }\n }\n\n .navbar-nav {\n > li > a,\n > li > .btn-link {\n color: ${theme.colors.global.textDefault};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: transparent;\n }\n }\n\n > .active > a,\n > .active > .btn-link {\n color: ${theme.colors.global.textDefault};\n background-color: transparent;\n \n &:hover,\n &:focus {\n color: ${theme.colors.variant.darkest.default};\n background-color: transparent;\n }\n }\n\n > .disabled > a,\n > .disabled > .btn-link {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.gray[70]};\n background-color: transparent;\n }\n }\n\n > .open > a,\n > .open > .btn-link {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darkest.default};\n background-color: transparent;\n }\n }\n\n @media (max-width: ${theme.breakpoints.max.md}) {\n padding-left: 50px;\n\n > li > a,\n > li > .btn-link {\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: transparent;\n }\n }\n\n .open .dropdown-menu {\n > li > a,\n > li > .btn-link {\n color: ${theme.colors.variant.darkest.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n\n > .active > a,\n > .active > .btn-link {\n color: ${theme.colors.variant.darkest.default};\n background-color: ${theme.colors.gray[90]};\n \n &:hover,\n &:focus {\n color: ${theme.colors.variant.darkest.default};\n background-color: ${theme.colors.gray[80]};\n }\n }\n\n > .disabled > a,\n > .disabled > .btn-link {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.gray[70]};\n background-color: transparent;\n }\n }\n }\n }\n }\n\n .navbar-toggle {\n background-color: ${theme.colors.global.navigationBackground};\n border-color: ${theme.colors.variant.dark.default};\n transition: background-color 150ms ease-in-out,\n border-color 150ms ease-in-out;\n position: relative;\n\n &:not(.collapsed) {\n .icon-bar:nth-last-child(1),\n .icon-bar:nth-last-child(3) {\n transition: transform 150ms ease-in 150ms,\n top 150ms ease-in 0s;\n }\n\n .icon-bar:nth-last-child(1) {\n transform: rotate(-45deg) translate(4px, -4px);\n }\n\n .icon-bar:nth-last-child(3) {\n transform: rotate(45deg) translate(4px, 4px);\n }\n\n .icon-bar:nth-last-child(2) {\n transition: opacity 0s ease 150ms;\n opacity: 0;\n }\n }\n\n .icon-bar {\n background-color: ${theme.colors.global.textDefault};\n transition: background-color 150ms ease-in-out,\n transform 150ms ease-in 0s,\n opacity 300ms ease-in 0s;\n transform: rotate(0deg);\n position: relative;\n opacity: 1;\n }\n\n &:hover,\n &:focus,\n &:not(.collapsed) {\n background-color: ${theme.colors.variant.lighter.default};\n border-color: ${theme.colors.variant.default};\n \n .icon-bar {\n background-color: ${theme.colors.global.textDefault};\n }\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: ${chroma(theme.colors.gray[90]).darken(0.065)};\n }\n\n .navbar-link {\n color: ${theme.colors.variant.default};\n\n &:hover {\n color: ${chroma(theme.colors.variant.default).darken(0.25)};\n }\n }\n\n .btn-link {\n color: ${theme.colors.variant.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.dark.default};\n }\n\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: ${theme.colors.gray[80]};\n }\n }\n }\n\n .dropdown-header {\n margin-top: 4px;\n text-transform: uppercase;\n padding: 0 15px !important;\n font-weight: bold;\n }\n`);\n\n/** @component */\nexport default Navbar;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Popover as BootstrapPopover } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\n/*\n IMPORTANT: This is the legacy bootstrap Popover component. It should not be used for new code, the Mantine-based\n `components/common/Popover component should be used instead.\n */\n\nconst Popover = styled(BootstrapPopover)(({ theme }) => {\n const borderColor = theme.colors.variant.light.default;\n const arrowColor = theme.colors.variant.lightest.default;\n const backgroundColor = theme.colors.global.contentBackground;\n\n return css`\n background-color: ${backgroundColor};\n border-color: ${borderColor};\n padding: 0;\n\n .popover-title {\n background-color: ${arrowColor};\n border-color: ${borderColor};\n color: ${theme.colors.variant.darkest.default};\n }\n\n &.top {\n > .arrow {\n border-top-color: ${borderColor};\n\n &::after {\n border-top-color: ${arrowColor};\n }\n }\n }\n\n &.right {\n > .arrow {\n border-right-color: ${borderColor};\n\n &::after {\n border-right-color: ${arrowColor};\n z-index: 1;\n }\n }\n }\n\n &.bottom {\n > .arrow {\n border-bottom-color: ${borderColor};\n\n &::after {\n border-bottom-color: ${arrowColor};\n }\n }\n }\n\n &.left {\n > .arrow {\n border-left-color: ${borderColor};\n\n &::after {\n border-left-color: ${arrowColor};\n }\n }\n }\n`;\n});\n\n/** @component */\nexport default Popover;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { Dispatch, SetStateAction } from 'react';\nimport { SegmentedControl as MantineSegmentedControl } from '@mantine/core';\nimport { useTheme } from 'styled-components';\nimport type { SegmentedControlItem } from '@mantine/core';\n\ntype Props = {\n data: Array | Array,\n defaultValue?: string,\n disabled?: boolean,\n handleChange?: (value: string) => void | Dispatch>,\n value?: string,\n}\n\nconst SegmentedControl = ({ data, defaultValue, disabled, handleChange, value }: Props) => {\n const theme = useTheme();\n\n return (\n \n );\n};\n\nSegmentedControl.defaultProps = {\n defaultValue: undefined,\n disabled: false,\n handleChange: undefined,\n value: undefined,\n};\n\nexport default SegmentedControl;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport Menu from 'components/bootstrap/Menu';\nimport Button from 'components/bootstrap/Button';\nimport { ButtonGroup } from 'components/bootstrap/index';\n\nimport Icon from '../common/Icon';\n\ntype Props = {\n disabled?: boolean,\n title: React.ComponentProps['children'],\n open?: boolean,\n onMenuChange?: (newState: boolean) => void,\n width?: number,\n} & Pick, 'bsStyle' | 'bsSize' | 'children' | 'id' | 'onClick'>;\nconst SplitButton = React.forwardRef(\n ({ children, disabled, title, open, onMenuChange, width, onClick, ...props }, ref) => (\n \n \n \n \n \n \n \n {children}\n \n \n \n ),\n);\n\nSplitButton.defaultProps = {\n disabled: false,\n open: undefined,\n onMenuChange: undefined,\n width: undefined,\n};\n\n/** @component */\nexport default SplitButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Tab as BootstrapTab } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst Tab = styled(BootstrapTab)(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n border: 1px solid ${theme.colors.variant.default};\n border-top: 0;\n border-radius: 0 0 4px 4px;\n padding: 9px;\n`);\n\n/** @component */\nexport default Tab;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-restricted-imports\nimport { Tabs as BootstrapTabs } from 'react-bootstrap';\nimport styled from 'styled-components';\n\nimport navTabsStyles from './styles/nav-tabs';\n\nconst Tabs = styled(BootstrapTabs)`\n ${navTabsStyles}\n`;\n\n/** @component */\nexport default Tabs;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line no-restricted-imports\nimport { Tooltip as BootstrapTooltip } from 'react-bootstrap';\nimport styled, { css } from 'styled-components';\n\nconst arrowSize = 10;\nconst StyledTooltip = styled(BootstrapTooltip)(({ theme }) => css`\n &.in {\n opacity: 1;\n filter: drop-shadow(0 0 3px ${theme.colors.variant.lighter.default});\n }\n\n &.top {\n .tooltip-arrow {\n border-top-color: ${theme.colors.global.contentBackground};\n border-width: ${arrowSize}px ${arrowSize}px 0;\n margin-left: -${arrowSize}px;\n bottom: -${arrowSize / 2}px;\n }\n }\n \n &.right {\n .tooltip-arrow {\n border-right-color: ${theme.colors.global.contentBackground};\n border-width: ${arrowSize}px ${arrowSize}px ${arrowSize}px 0;\n margin-top: -${arrowSize}px;\n left: -${arrowSize / 2}px;\n }\n }\n\n &.bottom {\n .tooltip-arrow {\n border-bottom-color: ${theme.colors.global.contentBackground};\n border-width: 0 ${arrowSize}px ${arrowSize}px;\n margin-left: -${arrowSize}px;\n top: -${arrowSize / 2}px;\n }\n }\n \n &.left {\n .tooltip-arrow {\n border-left-color: ${theme.colors.global.contentBackground};\n border-width: ${arrowSize}px 0 ${arrowSize}px ${arrowSize}px;\n margin-top: -${arrowSize}px;\n right: -${arrowSize / 2}px;\n }\n }\n \n .tooltip-inner {\n color: ${theme.colors.global.textDefault};\n background-color: ${theme.colors.global.contentBackground};\n max-width: 300px;\n opacity: 1;\n\n .datapoint-info {\n text-align: left;\n\n .date {\n color: ${theme.colors.variant.darkest.default};\n }\n }\n }\n`);\n\nconst Tooltip = ({ children, className, id, placement, positionTop, positionLeft, arrowOffsetTop, arrowOffsetLeft, show }) => (\n \n {children}\n \n);\n\nTooltip.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node.isRequired,\n /**\n * An html id attribute, necessary for accessibility\n * @type {string|number}\n * @required\n */\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n\n /**\n * Sets the direction the Tooltip is positioned towards.\n */\n placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n\n /**\n * The \"top\" position value for the Tooltip.\n */\n positionTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The \"left\" position value for the Tooltip.\n */\n positionLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The \"top\" position value for the Tooltip arrow.\n */\n arrowOffsetTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The \"left\" position value for the Tooltip arrow.\n */\n arrowOffsetLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n show: PropTypes.bool,\n};\n\nTooltip.defaultProps = {\n className: '',\n placement: 'right',\n positionTop: undefined,\n positionLeft: undefined,\n arrowOffsetTop: undefined,\n arrowOffsetLeft: undefined,\n show: true,\n};\n\n/** @component */\nexport default Tooltip;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\ntype IconName = 'apple' | 'freebsd' | 'github' | 'linux' | 'windows';\n\nconst Container = styled.div`\n padding: 3px;\n height: 20px;\n width: 20px;\n vertical-align: sub;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n \n svg {\n width: 100%;\n }\n`;\n\nconst _imageSrc = (name: string) => {\n switch (name) {\n case 'apple':\n return (\n \n \n \n );\n case 'freebsd':\n return (\n \n \n \n );\n case 'github':\n return (\n \n \n \n );\n case 'linux':\n return (\n \n \n \n );\n case 'windows':\n return (\n \n \n \n );\n default:\n return null;\n }\n};\n\ntype Props = {\n name: IconName;\n}\n\nconst BrandIcon = ({ name }: Props) => {\n const IconSvg = _imageSrc(name);\n\n if (!IconSvg) {\n return null;\n }\n\n return (\n \n {IconSvg}\n \n );\n};\n\nexport default BrandIcon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport { useTimeout } from '@mantine/hooks';\n\nimport { Button } from 'components/bootstrap';\nimport type { BsSize } from 'components/bootstrap/types';\nimport type { StyleProps } from 'components/bootstrap/Button';\nimport copyToClipboard from 'util/copyToClipboard';\nimport Tooltip from 'components/common/Tooltip';\n\n/**\n * Component that renders a button to copy some text in the clipboard when pressed.\n * The text to be copied can be given in the `text` prop, or in an external element through a CSS selector in the `target` prop.\n */\n\ntype Props = {\n bsSize?: BsSize,\n bsStyle?: StyleProps,\n buttonTitle?: string,\n className?: string,\n disabled?: boolean,\n onSuccess?: () => void,\n text: string,\n title: React.ReactNode,\n}\n\ntype Args = {\n copied: boolean,\n copy: () => void,\n}\ntype CopyButtonProps = {\n value: string,\n timeout: number,\n children: (args: Args) => React.ReactElement,\n};\n\nconst CopyButton = ({ children, value, timeout }: CopyButtonProps) => {\n const [copied, setCopied] = useState(false);\n const { start } = useTimeout(() => setCopied(false), timeout);\n const copy = useCallback(() => copyToClipboard(value).then(() => { setCopied(true); start(); }), [start, value]);\n\n return children({ copied, copy });\n};\n\nconst ClipboardButton = ({ bsSize, bsStyle, buttonTitle, className, disabled, onSuccess, text, title }: Props) => {\n const button = (copy: () => void) => (\n \n );\n\n return (\n \n {({ copied, copy }) => (copied ? (\n \n {button(copy)}\n \n ) : button(copy))}\n \n );\n};\n\nClipboardButton.defaultProps = {\n bsSize: undefined,\n bsStyle: undefined,\n buttonTitle: undefined,\n className: undefined,\n disabled: undefined,\n onSuccess: undefined,\n};\n\nexport default ClipboardButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport type { ColorResult } from 'react-color';\nimport { SwatchesPicker } from 'react-color';\n\ntype Props = {\n color: string,\n colors: Array>,\n height: number,\n width: number,\n onChange: (color: string, event: React.ChangeEvent) => void,\n};\n\n/**\n * Color picker component that let the user select a color from a list of 95 colors grouped by hue.\n */\nconst ColorPicker = ({ onChange, ...rest }: Props) => {\n const onColorChange = useCallback((color: ColorResult, event: React.ChangeEvent) => {\n onChange(color.hex, event);\n }, [onChange]);\n\n return (\n \n );\n};\n\nColorPicker.propTypes = {\n /** Indicates the selected color in hexadecimal format. */\n color: PropTypes.string,\n /**\n * Color palette in hexadecimal format. By default it uses the color palette defined by react-color,\n * including 95 colors to pick from.\n */\n colors: PropTypes.array,\n /**\n * Height of the color picker in pixels. By default it displays 2 rows of colors and the first color\n * of the third row, indicating users that they can scroll through the list:\n *\n * `135px height per color row * 2 rows + 24px first color of 3rd row + 16px padding = 310px`\n *\n * You can set `Infinity` as `height` if you don't want the component to scroll.\n */\n height: PropTypes.number,\n /**\n * Width of the color picker in pixels. By default it displays 5 columns of colors:\n *\n * `50px width per color column * 5 columns + 22px of padding = 272px`\n */\n width: PropTypes.number,\n /**\n * Function that will be called when the selected color changes.\n * The function receives the color in hexadecimal format as first\n * argument and the event as the second argument.\n */\n onChange: PropTypes.func.isRequired,\n};\n\nColorPicker.defaultProps = {\n color: undefined,\n colors: undefined, // Use default color palette.\n height: (135 * 2) + 24 + 16, // 135px color row * 2 rows + 24px first color 3rd row + 16px padding\n width: (50 * 5), // 50px color columns * 5 columns\n};\n\nexport default ColorPicker;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Modal } from 'components/bootstrap';\nimport ModalSubmit from 'components/common/ModalSubmit';\n\ntype Props = {\n show?: boolean,\n onConfirm: (event) => void,\n onCancel?: () => void,\n title: string | React.ReactNode,\n children: React.ReactNode,\n btnConfirmDisabled?: boolean,\n btnConfirmText?: React.ReactNode,\n hideCancelButton?: boolean,\n};\n\n/**\n * Component that displays a confirmation dialog box that the user can\n * cancel or confirm.\n */\nconst ConfirmDialog = ({\n show,\n title,\n children,\n onCancel,\n onConfirm,\n btnConfirmDisabled,\n btnConfirmText,\n hideCancelButton,\n}: Props) => {\n const onHide = hideCancelButton ? onConfirm : onCancel;\n\n return (\n \n \n {title}\n \n\n \n {children}\n \n\n \n \n \n \n );\n};\n\nConfirmDialog.propTypes = {\n /** Indicates whether the dialog should be shown by default or not. */\n show: PropTypes.bool,\n /** Indicates whether the dialog should render the cancel button by default or not. */\n hideCancelButton: PropTypes.bool,\n /** Title to use in the modal. */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n /** Text or element to use in the confirmation button. */\n btnConfirmText: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n /** Indicates whether the confirm button should be disabled or not. */\n btnConfirmDisabled: PropTypes.bool,\n /** Function to call when the action is not confirmed. The function does not receive any arguments. */\n onCancel: PropTypes.func,\n /**\n * Function to call when the action is confirmed. The function receives a callback function to close the modal\n * dialog box as first argument.\n */\n onConfirm: PropTypes.func.isRequired,\n /**\n * React elements to display in the modal body. This should be the information the user has\n * to confirm in order to proceed with the operation.\n */\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n};\n\nConfirmDialog.defaultProps = {\n btnConfirmText: 'Confirm',\n btnConfirmDisabled: false,\n show: false,\n hideCancelButton: false,\n onCancel: () => {\n },\n};\n\nexport default ConfirmDialog;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport type { Location } from 'react-router-dom';\nimport { useBlocker } from 'react-router-dom';\nimport { useCallback, useEffect } from 'react';\n\nimport AppConfig from 'util/AppConfig';\n\n/**\n * This component should be conditionally rendered if you have a form that is in a \"dirty\" state. It will confirm with the user that they want to navigate away, refresh, or in any way unload the component.\n */\ntype Props = {\n question: string,\n};\n\nconst locationHasChanged = (currentLocation: Location, newLocation: Location, question: string) => ((newLocation.pathname !== currentLocation.pathname)\n // eslint-disable-next-line no-alert\n ? !window.confirm(question)\n : false);\n\nconst ConfirmLeaveDialog = ({ question }: Props) => {\n const handleLeavePage = useCallback((e) => {\n if (AppConfig.gl2DevMode()) {\n return null;\n }\n\n e.returnValue = question;\n\n return question;\n }, [question]);\n\n useEffect(() => {\n window.addEventListener('beforeunload', handleLeavePage);\n\n return () => {\n window.removeEventListener('beforeunload', handleLeavePage);\n };\n }, [handleLeavePage]);\n\n useBlocker((history) => !AppConfig.gl2DevMode() && locationHasChanged(history.currentLocation, history.nextLocation, question));\n\n return null;\n};\n\nConfirmLeaveDialog.propTypes = {\n /** Phrase used in the confirmation dialog. */\n question: PropTypes.string,\n};\n\nConfirmLeaveDialog.defaultProps = {\n question: 'Are you sure?',\n};\n\n/** @component */\nexport default ConfirmLeaveDialog;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport classNames from 'classnames';\n\nimport { Row } from 'components/bootstrap';\n\nconst StyledRow = styled(Row)(({ theme }) => css`\n padding-bottom: 0;\n\n p {\n margin-top: 15px;\n }\n\n .actions-lg {\n float: right;\n }\n\n .actions-sm {\n padding-bottom: 15px;\n }\n\n .btn-lg {\n font-size: ${theme.fonts.size.large};\n }\n`);\n\ntype Props = {\n children: React.ReactNode,\n className: string,\n};\n\nconst ContentHeadRow = ({ children, className, ...props }: Props) => (\n \n {children}\n \n);\n\nContentHeadRow.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n};\n\nContentHeadRow.defaultProps = {\n className: undefined,\n};\n\nexport default ContentHeadRow;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { ListGroupItem } from 'components/bootstrap';\n\nconst StyledListGroupItem = styled(ListGroupItem)(({ theme }) => css`\n background-color: ${theme.colors.variant.lightest.default};\n font-size: ${theme.fonts.size.body};\n color: ${theme.utils.contrastingColor(theme.colors.variant.lightest.default)};\n padding: 0 15px;\n\n .form-group {\n margin: 0;\n }\n`);\n\nconst HeaderWrapper = styled.div`\n padding: 10px 0;\n min-height: 40px;\n`;\n\nconst ControlledTableListHeader = ({ children }: { children: React.ReactNode }) => {\n const wrapStringChildren = (text) => {text};\n\n const header = typeof children === 'string' ? wrapStringChildren(children) : children;\n\n return {header};\n};\n\nControlledTableListHeader.propTypes = {\n children: PropTypes.node,\n};\n\nControlledTableListHeader.defaultProps = {\n children: '',\n};\n\nexport default ControlledTableListHeader;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ListGroup } from 'components/bootstrap';\n\nimport ControlledTableListHeader from './ControlledTableListHeader';\nimport ControlledTableListItem from './ControlledTableListItem';\n\nconst ControlledTableList = ({ children }: { children: Array}) => {\n let effectiveChildren;\n\n if (children.length === 0) {\n effectiveChildren = No items to display;\n } else {\n effectiveChildren = children;\n }\n\n return (\n
\n \n {effectiveChildren}\n \n
\n );\n};\n\nControlledTableList.Header = ControlledTableListHeader;\nControlledTableList.Item = ControlledTableListItem;\n\nControlledTableList.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ControlledTableList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ListGroupItem } from 'components/bootstrap';\n\nconst ControlledTableListItem = ({ className, children }: { className?: string, children: React.ReactNode }) => (\n \n {children}\n \n);\n\nControlledTableListItem.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n};\n\nControlledTableListItem.defaultProps = {\n className: undefined,\n};\n\nexport default ControlledTableListItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport TypeAheadDataFilter from 'components/common/TypeAheadDataFilter';\n\nconst Wrapper = styled.div`\n .control-label {\n padding-top: 0;\n }\n`;\n\nconst Filter = ({\n children,\n displayKey,\n filterBy,\n filterKeys,\n filterSuggestions,\n id,\n label,\n onDataFiltered,\n rows,\n}) => {\n if (filterKeys.length !== 0) {\n return (\n \n
\n \n
\n {children && (\n
\n {children}\n
\n )}\n
\n );\n }\n\n return null;\n};\n\nFilter.propTypes = {\n children: PropTypes.node,\n displayKey: PropTypes.string,\n filterBy: PropTypes.string,\n filterKeys: PropTypes.array,\n filterSuggestions: PropTypes.array,\n id: PropTypes.string.isRequired,\n label: PropTypes.string,\n onDataFiltered: PropTypes.func.isRequired,\n rows: PropTypes.array.isRequired,\n};\n\nFilter.defaultProps = {\n children: undefined,\n displayKey: undefined,\n filterBy: undefined,\n filterKeys: undefined,\n filterSuggestions: undefined,\n label: undefined,\n};\n\nexport default Filter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\n/**\n * Component used to encapsulate each header or row inside a `DataTable`. You probably\n * should not use this component directly, but through `DataTable`. Look at the `DataTable`\n * section for a usage example.\n */\nclass DataTableElement extends React.Component {\n static propTypes = {\n /** Element to be formatted. */\n element: PropTypes.any,\n /**\n * Formatter function. It expects to receive the `element`, and `index` as arguments and\n * returns an element to be rendered.\n */\n formatter: PropTypes.func.isRequired,\n /** Element index. */\n index: PropTypes.number,\n };\n\n static defaultProps = {\n element: undefined,\n index: undefined,\n };\n\n render() {\n const { formatter, element, index } = this.props;\n\n return formatter(element, index);\n }\n}\n\nexport default DataTableElement;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport styled from 'styled-components';\n\nimport { tableCss } from 'components/bootstrap/Table';\n\nimport Filter from './Filter';\nimport DataTableElement from './DataTableElement';\n\nimport NoEntitiesExist from '../NoEntitiesExist';\n\nconst StyledTable = styled.table`\n ${tableCss}\n`;\n\n// eslint-disable-next-line react/prop-types\nconst NoData = ({ noDataText }) => {\n if (typeof noDataText === 'string') {\n return (\n \n {noDataText}\n \n );\n }\n\n return noDataText;\n};\n\n/**\n * Component that renders a data table, letting consumers of the component to\n * decide exactly how the data should be rendered. It optionally adds a filter\n * input to the data table by using the the `TypeAheadDataFilter` component.\n */\nclass DataTable extends React.Component {\n static propTypes = {\n /** Adds a custom children element next to the data filter input. */\n children: PropTypes.node,\n /** Adds a custom class to the table element. */\n className: PropTypes.string,\n /** Overrides the default filter. */\n customFilter: PropTypes.node,\n /** Adds a custom class to the row element. */\n rowClassName: PropTypes.string,\n /** Object key that should be used to display data in the data filter input. */\n displayKey: PropTypes.string,\n /**\n * Function that renders a row in the table. It receives two arguments: the row, and its index.\n * It usually returns a `` element with the formatted row.\n */\n dataRowFormatter: PropTypes.func.isRequired,\n /** Label to use next to the suggestions for the data filter input. */\n filterBy: PropTypes.string,\n /** Label to use next to the data filter input. */\n filterLabel: PropTypes.string,\n /** List of object keys to use as filter in the data filter input. Use an empty array to disable data filter. */\n filterKeys: PropTypes.array,\n /** Array to use as suggestions in the data filter input. */\n filterSuggestions: PropTypes.array,\n /**\n * Function that renders a single header cell in the table. It receives two arguments: the header, and its index.\n * It usually returns a `` element with the header.\n * Default will wrap the headers in a tag.\n */\n headerCellFormatter: PropTypes.func,\n /** Array of values to be use as headers. The render is controlled by `headerCellFormatter`. */\n headers: PropTypes.array.isRequired,\n /** Element id to use in the table container */\n id: PropTypes.string.isRequired,\n /** Text or element to show when there is no data. */\n noDataText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** Array of objects to be rendered in the table. The render of those values is controlled by `dataRowFormatter`. */\n rows: PropTypes.array.isRequired,\n /** Object key to use to sort data table. */\n sortByKey: PropTypes.string,\n /** Function that returns the value used to sort data table. (not used if `sortByKey` is defined as well) */\n sortBy: PropTypes.func,\n /**\n * Indicates whether the table should use a bootstrap responsive table or not:\n * https://getbootstrap.com/docs/3.3/css/#tables-responsive\n *\n * The main reason to disable this is if the table is clipping a dropdown menu or another component in a table edge.\n */\n useResponsiveTable: PropTypes.bool,\n /** boolean value to set sort numeric */\n useNumericSort: PropTypes.bool,\n };\n\n static defaultProps = {\n customFilter: undefined,\n children: undefined,\n className: '',\n filterBy: '',\n filterSuggestions: [],\n filterKeys: [],\n filterLabel: 'Filter',\n displayKey: 'value',\n noDataText: 'No data available.',\n rowClassName: '',\n useResponsiveTable: true,\n // eslint-disable-next-line react/no-unstable-nested-components\n headerCellFormatter: (header) => ({header}),\n sortByKey: undefined,\n sortBy: undefined,\n useNumericSort: false,\n };\n\n constructor(props) {\n super(props);\n const { rows } = this.props;\n\n this.state = {\n filteredRows: rows,\n };\n }\n\n getFormattedHeaders = () => {\n let i = 0;\n const { headerCellFormatter, headers } = this.props;\n const formattedHeaders = headers.map((header) => {\n const el = ;\n\n i += 1;\n\n return el;\n });\n\n return {formattedHeaders};\n };\n\n getFormattedDataRows = () => {\n let i = 0;\n const { sortByKey, sortBy, dataRowFormatter, useNumericSort } = this.props;\n let sortedDataRows = this._getEffectiveRows();\n\n if (sortByKey) {\n sortedDataRows = sortedDataRows.sort((a, b) => a[sortByKey].localeCompare(b[sortByKey], undefined, { numeric: useNumericSort }));\n } else if (sortBy) {\n sortedDataRows = sortedDataRows.sort((a, b) => sortBy(a).localeCompare(sortBy(b), undefined, { numeric: useNumericSort }));\n }\n\n const formattedDataRows = sortedDataRows.map((row) => {\n const el = ;\n\n i += 1;\n\n return el;\n });\n\n return formattedDataRows;\n };\n\n filterDataRows = (filteredRows) => {\n this.setState({ filteredRows });\n };\n\n _getEffectiveRows = () => {\n const { filteredRows } = this.state;\n const { filterKeys, rows } = this.props;\n\n return (filterKeys.length === 0 ? rows : filteredRows.filter((row) => rows.some((r) => isEqual(r, row))));\n };\n\n render() {\n const {\n customFilter,\n filterKeys,\n id,\n filterLabel,\n filterBy,\n displayKey,\n filterSuggestions,\n children,\n noDataText,\n className,\n rowClassName,\n useResponsiveTable,\n rows,\n } = this.props;\n const effectiveRows = this._getEffectiveRows();\n\n let data;\n\n if (rows.length === 0) {\n data = ;\n } else if (effectiveRows.length === 0) {\n data =

Filter does not match any data.

;\n } else {\n data = (\n \n \n {this.getFormattedHeaders()}\n \n \n {this.getFormattedDataRows()}\n \n \n );\n }\n\n return (\n
\n {customFilter || (\n \n {children}\n \n )}\n
\n
\n
\n {data}\n
\n
\n
\n
\n );\n }\n}\n\nexport default DataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport DataTable from './DataTable';\n\nexport default DataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\ntype Props = {\n children: Array | React.ReactElement,\n delay: number,\n};\n\nconst Delayed = ({ children, delay }: Props) => {\n const [delayFinished, setDelayFinished] = useState(delay <= 0);\n\n useEffect(() => {\n if (delay <= 0) {\n return () => {};\n }\n\n const delayTimeout = window.setTimeout(() => setDelayFinished(true), delay);\n\n return () => clearTimeout(delayTimeout);\n }, []);\n\n return delayFinished ? <>{children} : null;\n};\n\nDelayed.propTypes = {\n children: PropTypes.node.isRequired,\n delay: PropTypes.number.isRequired,\n};\n\nexport default Delayed;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\ntype Props = {\n title: React.ReactNode,\n children: React.ReactNode,\n}\n\n/**\n * React component that modifies the page `document.title` dynamically. When the component is unmounted, it\n * resets the title to the default (`Graylog`).\n *\n * Example:\n *\n * ```js\n * \n * {contents}\n * \n * ```\n */\nconst DocumentTitle = ({ children, title }: Props) => {\n const DEFAULT_TITLE = 'Graylog';\n\n useEffect(() => {\n document.title = `${document.title} - ${title}`;\n\n return () => { document.title = DEFAULT_TITLE; };\n }, [title]);\n\n return <>{children};\n};\n\nDocumentTitle.propTypes = {\n /** Title to prepend to the page `document.title`. */\n title: PropTypes.string.isRequired,\n /** Children to be rendered. */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.element,\n ]).isRequired,\n};\n\nexport default DocumentTitle;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useRef } from 'react';\n\nimport useElementDimensions from 'hooks/useElementDimensions';\n\ntype Props = {\n children: (dimensions: { width: number, height: number}) => React.ReactNode\n className?: string,\n resizeDelay?: number,\n};\n\n/**\n * Wrapper for the useElementDimensions hook.\n */\nconst ElementDimensions = ({ children, className, resizeDelay }: Props) => {\n const element = useRef(null);\n const dimensions = useElementDimensions(element, resizeDelay);\n\n return (\n
\n {children(dimensions)}\n
\n );\n};\n\nElementDimensions.defaultProps = {\n className: undefined,\n resizeDelay: undefined,\n};\n\nexport default ElementDimensions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport MenuItem from 'components/bootstrap/MenuItem';\nimport { DropdownButton } from 'components/bootstrap';\n\nimport useSelectedEntities from './hooks/useSelectedEntities';\n\nconst BulkActionsDropdown = ({ children }: PropsWithChildren) => {\n const { selectedEntities, setSelectedEntities } = useSelectedEntities();\n const cancelEntitySelection = useCallback(() => setSelectedEntities([]), [setSelectedEntities]);\n\n return (\n \n {children}\n {Boolean(React.Children.count(children)) && }\n Cancel selection\n \n );\n};\n\nexport default BulkActionsDropdown;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nexport const CELL_PADDING = 5; // px\nexport const BULK_SELECT_COLUMN_WIDTH = 20; // px\nexport const DEFAULT_COL_MIN_WIDTH = 150; // px\nexport const DEFAULT_COL_WIDTH = 1; // fraction, similar to CSS unit fr.\nexport const MORE_ACTIONS_TITLE = 'More';\nexport const MORE_ACTIONS_HOVER_TITLE = 'More actions';\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\n\ntype ContextValue = {\n expandedSections: { [entityId: string]: Array },\n toggleSection: (entityId: string, sectionName: string) => void\n} | undefined\n\nconst ExpandedSectionsContext = React.createContext(undefined);\n\nexport default singleton('contexts.ExpandedSectionsContext', () => ExpandedSectionsContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { SetStateAction } from 'react';\n\nimport { singleton } from 'logic/singleton';\n\nimport type { EntityBase } from '../types';\n\ntype ContextValue = {\n selectedEntities: Array,\n setSelectedEntities: (setSelectedEntitiesArgument: SetStateAction) => void,\n selectEntity: (entityId: EntityBase['id']) => void,\n deselectEntity: (entityId: EntityBase['id']) => void,\n} | undefined\n\nconst SelectEntitiesContext = React.createContext(undefined);\n\nexport default singleton('contexts.SelectEntitiesContext', () => SelectEntitiesContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useContext } from 'react';\n\nimport BulkSelectContext from 'components/common/EntityDataTable/contexts/SelectEntitiesContext';\n\nconst useSelectedEntities = () => {\n const contextValue = useContext(BulkSelectContext);\n\n if (!contextValue) {\n throw new Error('useSelectedEntities hook needs to be used inside BulkSelectContext.Provider');\n }\n\n return contextValue;\n};\n\nexport default useSelectedEntities;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useMemo } from 'react';\n\nimport type { Sort } from 'stores/PaginationTypes';\n\nimport useUserLayoutPreferences from './useUserLayoutPreferences';\n\nconst useTableLayout = ({ entityTableId, defaultSort, defaultPageSize, defaultDisplayedAttributes }: {\n entityTableId: string,\n defaultSort: Sort,\n defaultDisplayedAttributes: Array\n defaultPageSize: number,\n}) => {\n const { data: userLayoutPreferences = {}, isInitialLoading } = useUserLayoutPreferences(entityTableId);\n\n return useMemo(() => ({\n layoutConfig: {\n pageSize: userLayoutPreferences.perPage ?? defaultPageSize,\n sort: userLayoutPreferences.sort ?? defaultSort,\n displayedAttributes: userLayoutPreferences?.displayedAttributes ?? defaultDisplayedAttributes,\n },\n isInitialLoading,\n }), [\n defaultDisplayedAttributes,\n defaultPageSize,\n defaultSort,\n isInitialLoading,\n userLayoutPreferences?.displayedAttributes,\n userLayoutPreferences.perPage,\n userLayoutPreferences.sort,\n ]);\n};\n\nexport default useTableLayout;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQueryClient, useMutation } from '@tanstack/react-query';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport type { TableLayoutPreferences, TableLayoutPreferencesJSON } from 'components/common/EntityDataTable/types';\nimport UserNotification from 'util/UserNotification';\nimport useUserLayoutPreferences from 'components/common/EntityDataTable/hooks/useUserLayoutPreferences';\n\nconst preferencesToJSON = ({\n displayedAttributes,\n sort,\n perPage,\n}: TableLayoutPreferences): TableLayoutPreferencesJSON => ({\n displayed_attributes: displayedAttributes,\n sort: sort ? { order: sort.direction, field: sort.attributeId } : undefined,\n per_page: perPage,\n});\n\nconst useUpdateUserLayoutPreferences = (entityTableId: string) => {\n const queryClient = useQueryClient();\n const { data: userLayoutPreferences = {} } = useUserLayoutPreferences(entityTableId);\n const action = (newPreferences: TableLayoutPreferences) => fetch(\n 'POST',\n qualifyUrl(`/entitylists/preferences/${entityTableId}`),\n preferencesToJSON({ ...userLayoutPreferences, ...newPreferences }),\n );\n const { mutate } = useMutation({\n mutationFn: action,\n onError: (error) => {\n UserNotification.error(`Updating table layout preferences failed with error: ${error}`);\n },\n onMutate: (newTableLayout: TableLayoutPreferences) => {\n queryClient.setQueriesData(['table-layout', entityTableId], (cur: TableLayoutPreferences) => ({\n ...(cur ?? {}),\n ...newTableLayout,\n }));\n },\n });\n\n return { mutate };\n};\n\nexport default useUpdateUserLayoutPreferences;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { TableLayoutPreferences, TableLayoutPreferencesJSON } from 'components/common/EntityDataTable/types';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\n\nconst INITIAL_DATA = {};\n\nconst preferencesFromJSON = ({\n displayed_attributes,\n sort,\n per_page,\n}: TableLayoutPreferencesJSON): TableLayoutPreferences => ({\n displayedAttributes: displayed_attributes,\n sort: sort ? { attributeId: sort.field, direction: sort.order } : undefined,\n perPage: per_page,\n});\nconst fetchUserLayoutPreferences = (entityId: string) => fetch(\n 'GET',\n qualifyUrl(`/entitylists/preferences/${entityId}`),\n).then((res) => preferencesFromJSON(res ?? {}));\n\nconst useUserLayoutPreferences = (entityId: string): { data: TableLayoutPreferences, isInitialLoading: boolean } => {\n const { data, isInitialLoading } = useQuery(\n ['table-layout', entityId],\n () => fetchUserLayoutPreferences(entityId),\n {\n onError: (error) => {\n UserNotification.error(`Loading layout preferences for \"${entityId}\" overview failed with ${error}`);\n },\n keepPreviousData: true,\n staleTime: 60 * (60 * 1000), // 1 hour\n });\n\n return {\n data: data ?? INITIAL_DATA,\n isInitialLoading,\n };\n};\n\nexport default useUserLayoutPreferences;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled from 'styled-components';\nimport * as React from 'react';\nimport { useMemo } from 'react';\n\nimport { Checkbox, DropdownButton } from 'components/bootstrap';\nimport type { Column } from 'components/common/EntityDataTable/types';\nimport TextOverflowEllipsis from 'components/common/TextOverflowEllipsis';\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport MenuItem from 'components/bootstrap/MenuItem';\n\nconst StyledDropdownButton = styled(DropdownButton)`\n ~ .dropdown-menu {\n min-width: auto;\n max-width: 180px;\n }\n`;\n\nconst ColumnCheckbox = styled(Checkbox)`\n &.checkbox {\n margin: 0 5px 0 0;\n\n label {\n display: flex;\n align-items: center;\n padding: 0;\n\n input {\n margin: 0;\n position: relative;\n }\n }\n }\n`;\n\nconst ListItemInner = styled.div`\n display: flex;\n`;\n\nconst ColumnTitle = styled(TextOverflowEllipsis)`\n display: inline;\n`;\n\nconst ColumnListItem = ({\n allColumns,\n column,\n onClick,\n selectedColumns,\n}: {\n allColumns: Array\n column: Column,\n onClick: (selectedColumns: Array) => void,\n selectedColumns: Array,\n}) => {\n const isSelected = selectedColumns.includes(column.id);\n\n const toggleVisibility = () => {\n const newAttributes = allColumns.reduce((collection, attr) => {\n const isCurAttr = column.id === attr.id;\n\n if ((isCurAttr && !isSelected) || (!isCurAttr && selectedColumns.includes(attr.id))) {\n return [...collection, attr.id];\n }\n\n return collection;\n }, []);\n\n onClick(newAttributes);\n };\n\n return (\n \n \n \n {column.title}\n \n \n );\n};\n\ntype Props = {\n allColumns: Array\n onChange: (attributes: Array) => void,\n selectedColumns: Array,\n}\n\nconst ColumnsVisibilitySelect = ({ onChange, selectedColumns, allColumns }: Props) => {\n const sortedColumns = useMemo(\n () => allColumns.sort((col1, col2) => (naturalSort(col1.title, col2.title))),\n [allColumns],\n );\n\n return (\n \n {sortedColumns.map((column) => (\n \n ))}\n \n );\n};\n\nexport default ColumnsVisibilitySelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\n\nimport TextOverflowEllipsis from 'components/common/TextOverflowEllipsis';\nimport { Timestamp } from 'components/common';\n\nconst DefaultColumnRenderers = {\n types: {\n DATE: {\n renderCell: (dateTime: string) => (\n \n ),\n staticWidth: 160,\n },\n STRING: {\n renderCell: (text: string) => (\n \n {text}\n \n ),\n },\n },\n attributes: {\n description: {\n width: 2,\n },\n summary: {\n width: 1.5,\n },\n owner: {\n staticWidth: 120,\n },\n favorite: {\n renderHeader: () => '',\n staticWidth: 30,\n },\n },\n\n};\n\nexport default DefaultColumnRenderers;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useState, useLayoutEffect } from 'react';\n\nimport {\n DEFAULT_COL_MIN_WIDTH,\n DEFAULT_COL_WIDTH,\n} from 'components/common/EntityDataTable/Constants';\n\nimport type { EntityBase, ColumnRenderersByAttribute } from '../types';\n\nconst assignableTableWidth = ({\n tableWidth,\n actionsColWidth,\n bulkSelectColWidth,\n columnsIds,\n columnRenderersByAttribute,\n}: {\n actionsColWidth: number,\n bulkSelectColWidth: number,\n columnRenderersByAttribute: { [columnId: string]: { staticWidth?: number } }\n columnsIds: Array,\n tableWidth: number,\n}) => {\n const staticColsWidth = columnsIds.reduce((total, id) => total + (columnRenderersByAttribute[id]?.staticWidth ?? 0), 0);\n\n return tableWidth - bulkSelectColWidth - actionsColWidth - staticColsWidth;\n};\n\nconst columnsWidth = ({\n assignableWidth,\n columnsIds,\n columnRenderersByAttribute,\n}: {\n assignableWidth: number,\n columnRenderersByAttribute: { [columnId: string]: { staticWidth?: number, width?: number, minWidth?: number } }\n columnsIds: Array,\n}) => {\n const totalFlexColumns = columnsIds.reduce((total, id) => {\n const { staticWidth, width = DEFAULT_COL_WIDTH } = columnRenderersByAttribute[id] ?? {};\n\n if (staticWidth) {\n return total;\n }\n\n return total + width;\n }, 0);\n\n const flexColWidth = assignableWidth / totalFlexColumns;\n\n return Object.fromEntries(columnsIds.map((id) => {\n const { staticWidth, width = DEFAULT_COL_WIDTH, minWidth = DEFAULT_COL_MIN_WIDTH } = columnRenderersByAttribute[id] ?? {};\n const targetWidth = staticWidth ?? (flexColWidth * width);\n\n return [id, (!staticWidth && targetWidth < minWidth) ? minWidth : targetWidth];\n }));\n};\n\nconst useColumnsWidths = ({\n actionsColWidth,\n bulkSelectColWidth,\n columnRenderersByAttribute,\n columnsIds,\n tableWidth,\n}: {\n actionsColWidth: number,\n bulkSelectColWidth: number,\n columnRenderersByAttribute: ColumnRenderersByAttribute,\n columnsIds: Array,\n tableWidth: number,\n},\n) => {\n const [columnsWidths, setColumnWidths] = useState({});\n\n useLayoutEffect(() => {\n if (!tableWidth) {\n return;\n }\n\n // Calculate available width for columns which do not have a static width\n const assignableWidth = assignableTableWidth({\n actionsColWidth,\n columnRenderersByAttribute,\n columnsIds,\n bulkSelectColWidth,\n tableWidth,\n });\n\n setColumnWidths(columnsWidth({\n assignableWidth,\n columnsIds,\n columnRenderersByAttribute,\n }));\n }, [actionsColWidth, bulkSelectColWidth, columnRenderersByAttribute, columnsIds, tableWidth]);\n\n return columnsWidths;\n};\n\nexport default useColumnsWidths;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport IconButton from 'components/common/IconButton';\nimport { ButtonToolbar } from 'components/bootstrap';\n\nimport type { EntityBase, ExpandedSectionRenderer } from './types';\nimport ExpandedEntitiesSectionsContext from './contexts/ExpandedSectionsContext';\n\nconst Container = styled.tr(({ theme }) => css`\n &&&& {\n background-color: ${theme.colors.global.contentBackground};\n }\n`);\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 5px;\n`;\n\nconst Actions = styled(ButtonToolbar)`\n display: flex;\n align-items: center;\n`;\n\nconst HideSectionButton = styled(IconButton)`\n margin-left: 5px;\n`;\n\nconst ExpandedSections = ({\n expandedSectionsRenderer,\n entity,\n}: {\n expandedSectionsRenderer: {\n [sectionName: string]: ExpandedSectionRenderer\n } | undefined,\n entity: Entity\n}) => {\n const { expandedSections, toggleSection } = useContext(ExpandedEntitiesSectionsContext);\n const expandedEntitySections = expandedSections?.[entity.id];\n\n if (!expandedEntitySections?.length) {\n return null;\n }\n\n return (\n \n \n {Object.entries(expandedSectionsRenderer ?? {}).map(([sectionName, section]) => {\n if (!expandedEntitySections.includes(sectionName)) {\n return null;\n }\n\n const hideSection = () => toggleSection(entity.id, sectionName);\n const actions = section.actions?.(entity);\n\n return (\n
\n
\n

{section.title}

\n \n {actions}\n \n \n
\n {section.content(entity)}\n
\n );\n })}\n \n
\n );\n};\n\nexport default ExpandedSections;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { SetStateAction } from 'react';\nimport { useMemo, useState, useCallback } from 'react';\nimport isFunction from 'lodash/isFunction';\n\nimport SelectEntitiesContext from './SelectEntitiesContext';\n\nimport type { EntityBase } from '../types';\n\ntype Props = React.PropsWithChildren<{\n initialSelection?: Array,\n onChangeSelection: (selectedEntities: Array) => void\n}>\n\nconst SelectedEntitiesProvider = ({ children, initialSelection, onChangeSelection }: Props) => {\n const [selectedEntities, setSelectedEntities] = useState>(initialSelection);\n\n const _setSelectedEntities = useCallback((setSelectedEntitiesArgument: SetStateAction>) => {\n const newState = isFunction(setSelectedEntitiesArgument) ? setSelectedEntitiesArgument(selectedEntities) : setSelectedEntitiesArgument;\n\n setSelectedEntities(newState);\n if (onChangeSelection) onChangeSelection(newState);\n }, [onChangeSelection, selectedEntities]);\n\n const deselectEntity = useCallback((targetEntityId: EntityBase['id']) => (\n _setSelectedEntities((cur) => cur.filter((entityId) => entityId !== targetEntityId))\n ), [_setSelectedEntities]);\n\n const selectEntity = useCallback((targetEntityId: EntityBase['id']) => (\n _setSelectedEntities((cur) => [...cur, targetEntityId])\n ), [_setSelectedEntities]);\n\n const contextValue = useMemo(() => ({\n setSelectedEntities: _setSelectedEntities,\n selectedEntities,\n deselectEntity,\n selectEntity,\n }), [\n _setSelectedEntities,\n selectedEntities,\n deselectEntity,\n selectEntity,\n ]);\n\n return (\n \n {children}\n \n );\n};\n\nSelectedEntitiesProvider.defaultProps = {\n initialSelection: [],\n};\n\nexport default SelectedEntitiesProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport StringUtils from 'util/StringUtils';\n\nimport useSelectedEntities from './hooks/useSelectedEntities';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst SelectedEntitiesAmount = styled.div`\n margin-left: 5px;\n`;\n\ntype Props = {\n bulkActions: React.ReactNode,\n};\n\nconst BulkActionsRow = ({ bulkActions }: Props) => {\n const { selectedEntities } = useSelectedEntities();\n\n return (\n \n {bulkActions}\n {!!selectedEntities.length && (\n \n {selectedEntities.length} {StringUtils.pluralize(selectedEntities.length, 'item', 'items')} selected\n \n )}\n \n );\n};\n\nexport default BulkActionsRow;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport type { Column } from 'components/common/EntityDataTable';\nimport CommonSortIcon from 'components/common/SortIcon';\nimport type { Sort } from 'stores/PaginationTypes';\n\nconst StyledCommonSortIcon = styled(CommonSortIcon)`\n display: inline-block;\n margin-left: 6px;\n padding: 0;\n cursor: pointer;\n`;\n\nconst SORT_DIRECTIONS = {\n ASC: 'asc',\n DESC: 'desc',\n} as const;\n\nconst SORT_ORDER_NAMES = {\n asc: 'ascending',\n desc: 'descending',\n};\n\nconst SortIcon = ({\n onChange,\n activeSort,\n column,\n}: {\n onChange: (newSort: Sort) => void,\n column: Column,\n activeSort: Sort | undefined,\n}) => {\n const columnSortIsActive = activeSort?.attributeId === column.id;\n const nextSortDirection = !columnSortIsActive || activeSort.direction === SORT_DIRECTIONS.DESC ? SORT_DIRECTIONS.ASC : SORT_DIRECTIONS.DESC;\n const title = `Sort ${column.title.toLowerCase()} ${SORT_ORDER_NAMES[nextSortDirection]}`;\n\n const _onChange = () => {\n onChange({ attributeId: column.id, direction: nextSortDirection });\n };\n\n return (\n \n );\n};\n\nexport default SortIcon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled from 'styled-components';\n\nimport { Checkbox } from 'components/bootstrap';\n\nconst RowCheckbox = styled(Checkbox)`\n &.checkbox {\n margin: 0;\n \n label {\n display: flex;\n align-items: center;\n padding: 0;\n \n input {\n width: 14px;\n height: 14px;\n cursor: pointer;\n margin: 0;\n position: relative;\n }\n }\n }\n`;\n\nexport default RowCheckbox;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo, useEffect, useRef } from 'react';\nimport uniq from 'lodash/uniq';\n\nimport RowCheckbox from 'components/common/EntityDataTable/RowCheckbox';\nimport { BULK_SELECT_COLUMN_WIDTH } from 'components/common/EntityDataTable/Constants';\nimport type { EntityBase } from 'components/common/EntityDataTable/types';\nimport useSelectedEntities from 'components/common/EntityDataTable/hooks/useSelectedEntities';\nimport { Th } from 'components/common/EntityDataTable/TableHead';\n\ntype CheckboxStatus = 'CHECKED' | 'UNCHECKED' | 'PARTIAL';\n\nconst useCheckboxStatus = (data: Readonly>, selectedEntityIds: Array) => {\n const checkboxRef = useRef();\n const checkboxStatus: CheckboxStatus = useMemo(() => {\n const selectedEntities = data.filter(({ id }) => selectedEntityIds.includes(id));\n\n if (selectedEntities.length === 0) {\n return 'UNCHECKED';\n }\n\n if (selectedEntities.length === data.length) {\n return 'CHECKED';\n }\n\n return 'PARTIAL';\n }, [data, selectedEntityIds]);\n\n useEffect(() => {\n if (checkboxRef.current) {\n if (checkboxStatus === 'PARTIAL') {\n checkboxRef.current.indeterminate = true;\n\n return;\n }\n\n checkboxRef.current.indeterminate = false;\n }\n }, [checkboxStatus]);\n\n return {\n checkboxRef,\n checkboxStatus,\n };\n};\n\ntype Props = {\n data: Readonly>,\n}\n\nconst BulkSelectHead = ({\n data,\n}: Props) => {\n const { selectedEntities, setSelectedEntities } = useSelectedEntities();\n const { checkboxRef, checkboxStatus } = useCheckboxStatus(data, selectedEntities);\n const title = `${checkboxStatus === 'CHECKED' ? 'Deselect' : 'Select'} all visible entities`;\n\n const onBulkSelect = () => {\n setSelectedEntities((cur) => {\n const entityIds = data.map(({ id }) => id);\n\n if (checkboxStatus === 'CHECKED') {\n return cur.filter((itemId) => !entityIds.includes(itemId));\n }\n\n return uniq([...cur, ...entityIds]);\n });\n };\n\n return (\n \n { checkboxRef.current = ref; }}\n onChange={onBulkSelect}\n checked={checkboxStatus === 'CHECKED'}\n title={title}\n disabled={!data?.length}\n aria-label={title} />\n \n );\n};\n\nexport default BulkSelectHead;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { useMemo } from 'react';\n\nimport SortIcon from 'components/streams/StreamsOverview/SortIcon';\nimport type { Sort } from 'stores/PaginationTypes';\n\nimport BulkSelectHead from './BulkSelectHead';\nimport type { Column, ColumnRenderer, EntityBase, ColumnRenderersByAttribute } from './types';\n\nconst Thead = styled.thead(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n`);\n\nexport const Th = styled.th<{ $width: number | undefined }>(({ $width, theme }) => css`\n width: ${$width ? `${$width}px` : 'auto'};\n background-color: ${theme.colors.table.head.background};\n`);\n\nconst TableHeader = ({\n activeSort,\n column,\n columnRenderer,\n onSortChange,\n colWidth,\n}: {\n activeSort: Sort,\n column: Column\n columnRenderer: ColumnRenderer | undefined\n onSortChange: (newSort: Sort) => void,\n colWidth: number\n}) => {\n const content = useMemo(\n () => (typeof columnRenderer?.renderHeader === 'function' ? columnRenderer.renderHeader(column) : column.title),\n [column, columnRenderer],\n );\n\n return (\n \n {content}\n\n {column.sortable && (\n \n )}\n \n );\n};\n\nconst ActionsHead = styled(Th)<{ $width: number | undefined }>(({ $width }) => css`\n text-align: right;\n width: ${$width ? `${$width}px` : 'auto'};\n`);\n\nconst TableHead = ({\n actionsColWidth,\n activeSort,\n columns,\n columnsOrder,\n columnRenderersByAttribute,\n columnsWidths,\n data,\n displayActionsCol,\n displayBulkSelectCol,\n onSortChange,\n}: {\n actionsColWidth: number | undefined,\n activeSort: Sort,\n columns: Array,\n columnsWidths: { [columnId: string]: number },\n columnsOrder: Array,\n columnRenderersByAttribute: ColumnRenderersByAttribute,\n data: Readonly>,\n displayActionsCol: boolean,\n displayBulkSelectCol: boolean,\n onSortChange: (newSort: Sort) => void,\n}) => {\n const sortedColumns = useMemo(\n () => columns.sort((col1, col2) => columnsOrder.indexOf(col1.id) - columnsOrder.indexOf(col2.id)),\n [columns, columnsOrder],\n );\n\n return (\n \n \n {displayBulkSelectCol && }\n {sortedColumns.map((column) => {\n const columnRenderer = columnRenderersByAttribute[column.id];\n\n return (\n columnRenderer={columnRenderer}\n column={column}\n colWidth={columnsWidths[column.id]}\n onSortChange={onSortChange}\n activeSort={activeSort}\n key={column.title} />\n );\n })}\n {displayActionsCol ? Actions : null}\n \n \n );\n};\n\nexport default TableHead;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport camelCase from 'lodash/camelCase';\n\nimport type { Column, ColumnRenderer, EntityBase } from './types';\n\nconst Td = styled.td`\n word-break: break-word;\n`;\n\nconst TableCell = ({\n column,\n columnRenderer,\n entity,\n entityAttributesAreCamelCase,\n}: {\n column: Column\n columnRenderer: ColumnRenderer | undefined,\n entity: Entity,\n entityAttributesAreCamelCase: boolean,\n}) => {\n const attributeKey = entityAttributesAreCamelCase ? camelCase(column.id) : column.id;\n const attributeValue = entity[attributeKey];\n const content = typeof columnRenderer?.renderCell === 'function' ? columnRenderer.renderCell(attributeValue, entity, column) : attributeValue;\n\n return ({content});\n};\n\nexport default TableCell;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useCallback, useMemo } from 'react';\n\nimport ButtonToolbar from 'components/bootstrap/ButtonToolbar';\n\nimport useSelectedEntities from './hooks/useSelectedEntities';\nimport TableCell from './TableCell';\nimport type { ColumnRenderersByAttribute, Column, EntityBase } from './types';\nimport RowCheckbox from './RowCheckbox';\n\nconst ActionsCell = styled.td`\n float: right;\n text-align: right;\n\n .btn-toolbar {\n display: inline-flex;\n }\n`;\n\nconst ActionsRef = styled.div`\n display: inline-flex;\n`;\n\ntype Props = {\n actionsRef: React.RefObject\n columns: Array,\n columnRenderersByAttribute: ColumnRenderersByAttribute,\n displaySelect: boolean,\n displayActions: boolean,\n entity: Entity,\n index: number,\n rowActions?: (entity: Entity) => React.ReactNode,\n entityAttributesAreCamelCase: boolean,\n isEntitySelectable: (entity: Entity) => boolean,\n};\n\nconst TableRow = ({\n columns,\n columnRenderersByAttribute,\n displaySelect,\n displayActions,\n entity,\n rowActions,\n index,\n actionsRef,\n entityAttributesAreCamelCase,\n isEntitySelectable,\n}: Props) => {\n const { selectedEntities, setSelectedEntities } = useSelectedEntities();\n const isSelected = !!selectedEntities?.includes(entity.id);\n const toggleRowSelect = useCallback(() => {\n setSelectedEntities(((cur) => {\n if (cur.includes(entity.id)) {\n return cur.filter((id) => id !== entity.id);\n }\n\n return [...cur, entity.id];\n }));\n }, [entity.id, setSelectedEntities]);\n\n const actionButtons = displayActions ? {rowActions(entity)} : null;\n\n const isSelectDisabled = useMemo(() => !(displaySelect && isEntitySelectable(entity)), [displaySelect, entity, isEntitySelectable]);\n\n const title = `${isSelected ? 'Deselect' : 'Select'} entity`;\n\n return (\n \n {displaySelect && (\n \n \n \n )}\n {columns.map((column) => {\n const columnRenderer = columnRenderersByAttribute[column.id];\n\n return (\n \n );\n })}\n {displayActions ? (\n \n {index === 0 ? {actionButtons} : actionButtons}\n \n ) : null}\n \n );\n};\n\nTableRow.defaultProps = {\n rowActions: undefined,\n};\n\nexport default React.memo(TableRow);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useState, useCallback, useMemo } from 'react';\n\nimport ExpandedEntitiesSectionsContext from './ExpandedSectionsContext';\n\nconst ExpandedSectionsProvider = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n const [expandedSections, setExpandedSections] = useState<{ [entityId: string]: Array } | undefined>();\n\n const toggleSection = useCallback((entityId: string, sectionName: string) => setExpandedSections((cur) => {\n const newCur = { ...cur ?? {} };\n\n if (newCur[entityId]?.includes(sectionName)) {\n const newSections = newCur[entityId].filter((section) => section !== sectionName);\n\n if (newSections.length === 0) {\n delete newCur[entityId];\n\n return newCur;\n }\n\n return { ...newCur, [entityId]: newSections };\n }\n\n return { ...newCur, [entityId]: [...newCur[entityId] ?? [], sectionName] };\n }), []);\n\n const contextValue = useMemo(() => ({\n expandedSections,\n toggleSection,\n }), [expandedSections, toggleSection]);\n\n return (\n \n {children}\n \n );\n};\n\nExpandedSectionsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ExpandedSectionsProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { useMemo, useRef, useCallback } from 'react';\nimport type * as Immutable from 'immutable';\nimport merge from 'lodash/merge';\n\nimport { Table, ButtonGroup } from 'components/bootstrap';\nimport { isPermitted, isAnyPermitted } from 'util/PermissionsMixin';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport ColumnsVisibilitySelect from 'components/common/EntityDataTable/ColumnsVisibilitySelect';\nimport DefaultColumnRenderers from 'components/common/EntityDataTable/DefaultColumnRenderers';\nimport { CELL_PADDING, BULK_SELECT_COLUMN_WIDTH } from 'components/common/EntityDataTable/Constants';\nimport useColumnsWidths from 'components/common/EntityDataTable/hooks/useColumnsWidths';\nimport useElementDimensions from 'hooks/useElementDimensions';\nimport type { Sort } from 'stores/PaginationTypes';\nimport { PageSizeSelect } from 'components/common';\nimport ExpandedSections from 'components/common/EntityDataTable/ExpandedSections';\nimport SelectedEntitiesProvider from 'components/common/EntityDataTable/contexts/SelectedEntitiesProvider';\n\nimport BulkActionsRow from './BulkActionsRow';\nimport TableHead from './TableHead';\nimport TableRow from './TableRow';\nimport ExpandedSectionsProvider from './contexts/ExpandedSectionsProvider';\nimport type { ColumnRenderers, Column, EntityBase, ColumnRenderersByAttribute, ExpandedSectionRenderer } from './types';\n\nconst ScrollContainer = styled.div`\n width: 100%;\n overflow-x: auto;\n`;\n\nconst StyledTable = styled(Table)(({ theme }) => css`\n table-layout: fixed;\n\n thead > tr > th,\n tbody > tr > td {\n padding: ${CELL_PADDING}px;\n }\n\n && {\n > tbody:nth-of-type(even) > tr {\n background-color: ${theme.colors.table.row.backgroundAlt};\n }\n\n > tbody:nth-of-type(odd) > tr {\n background-color: ${theme.colors.table.row.background};\n }\n }\n`);\n\nconst ActionsRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n min-height: 22px;\n`;\n\nconst LayoutConfigRow = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst filterAccessibleColumns = (\n columns: Array,\n userPermissions: Immutable.List,\n) => columns.filter(({ permissions, anyPermissions, hidden }) => {\n if (hidden) {\n return false;\n }\n\n if (permissions?.length) {\n return anyPermissions\n ? isAnyPermitted(userPermissions, permissions)\n : isPermitted(userPermissions, permissions);\n }\n\n return true;\n});\n\nconst filterVisibleColumns = (\n columnDefinitions: Array,\n visibleColumns: Array,\n) => visibleColumns.map((columnId) => columnDefinitions\n .find(({ id }) => id === columnId))\n .filter((column) => !!column);\n\nconst useElementsWidths = ({\n columns,\n columnRenderersByAttribute,\n displayBulkSelectCol,\n fixedActionsCellWidth,\n}: {\n columns: Array,\n columnRenderersByAttribute: ColumnRenderersByAttribute,\n displayBulkSelectCol: boolean\n fixedActionsCellWidth: number | undefined\n}) => {\n const tableRef = useRef(null);\n const actionsRef = useRef();\n const { width: tableWidth } = useElementDimensions(tableRef);\n const columnsIds = useMemo(() => columns.map(({ id }) => id), [columns]);\n const actionsColInnerWidth = fixedActionsCellWidth ?? (actionsRef.current?.offsetWidth ?? 0);\n const actionsColWidth = actionsColInnerWidth ? actionsColInnerWidth + CELL_PADDING * 2 : 0;\n\n const columnsWidths = useColumnsWidths({\n actionsColWidth,\n bulkSelectColWidth: displayBulkSelectCol ? BULK_SELECT_COLUMN_WIDTH : 0,\n columnRenderersByAttribute,\n columnsIds,\n tableWidth,\n });\n\n return { tableRef, actionsRef, columnsWidths, actionsColWidth };\n};\n\nconst mergeColumnsRenderers = (columns: Array, customColumnRenderers: ColumnRenderers) => {\n const renderers = merge({}, DefaultColumnRenderers, customColumnRenderers);\n\n return Object.fromEntries(columns.map(({ id, type }) => {\n const typeRenderer = renderers.types?.[type];\n const attributeRenderer = renderers.attributes?.[id];\n\n const columnRenderer = merge({}, typeRenderer, attributeRenderer);\n\n return [id, columnRenderer];\n }));\n};\n\ntype Props = {\n /**\n * Needs to be defined when not all action cells in every row have the same width.\n * When they have the same width, the column width will be calculated automatically.\n * Should not include the actions col padding. Should be teh max width an action cell can have.\n */\n actionsCellWidth?: number\n /** Currently active sort */\n activeSort?: Sort,\n /**\n * The column ids are always snake case. By default, entity attributes are camel case.\n * This prop controls if the column ids need to be transformed to camel case to connect them with the entity attributes.\n */\n entityAttributesAreCamelCase?: boolean,\n bulkSelection?: {\n /** Supported bulk actions */\n actions?: React.ReactNode,\n /** Callback which runs on selection change */\n onChangeSelection?: (selectedEntities: Array) => void,\n /** Initial selected items */\n initialSelection?: Array,\n isEntitySelectable?: (entity: Entity) => boolean\n },\n /** List of all available columns. Column ids need to be snake case. */\n columnDefinitions: Array,\n /** Custom cell and header renderer for a column. Column ids need to be snake case. */\n columnRenderers?: ColumnRenderers,\n /** Define default columns order. Column ids need to be snake case. */\n columnsOrder?: Array,\n /** The table data. */\n data: Readonly>,\n /** Allows you to extend a row with additional information * */\n expandedSectionsRenderer?: {\n [sectionName: string]: ExpandedSectionRenderer\n },\n /** Function to handle changes of columns visibility */\n onColumnsChange: (columnIds: Array) => void,\n /** Function to handle sort changes */\n onSortChange: (newSort: Sort) => void,\n /** Function to handle page size changes */\n onPageSizeChange?: (newPageSize: number) => void,\n /** Active page size */\n pageSize?: number\n /** Actions for each row. */\n rowActions?: (entity: Entity) => React.ReactNode,\n /** Which columns should be displayed. */\n visibleColumns: Array,\n};\n\n/**\n * Flexible data table component which allows defining custom column renderers.\n */\nconst EntityDataTable = ({\n actionsCellWidth: fixedActionsCellWidth,\n activeSort,\n entityAttributesAreCamelCase,\n bulkSelection: {\n actions,\n onChangeSelection,\n initialSelection,\n isEntitySelectable,\n },\n columnDefinitions,\n columnRenderers: customColumnRenderers,\n columnsOrder,\n data,\n expandedSectionsRenderer,\n onColumnsChange,\n onPageSizeChange,\n onSortChange,\n pageSize,\n rowActions,\n visibleColumns,\n}: Props) => {\n const currentUser = useCurrentUser();\n const displayActionsCol = typeof rowActions === 'function';\n const displayBulkAction = !!actions;\n const displayBulkSelectCol = typeof onChangeSelection === 'function' || displayBulkAction;\n const displayPageSizeSelect = typeof onPageSizeChange === 'function';\n const _isEntitySelectable = useCallback((entity: Entity) => {\n if (!displayBulkSelectCol) return false;\n\n if (typeof isEntitySelectable === 'function') return isEntitySelectable(entity);\n\n return true;\n }, [displayBulkSelectCol, isEntitySelectable]);\n\n const accessibleColumns = useMemo(\n () => filterAccessibleColumns(columnDefinitions, currentUser.permissions),\n [columnDefinitions, currentUser.permissions],\n );\n\n const columns = useMemo(\n () => filterVisibleColumns(accessibleColumns, visibleColumns),\n [accessibleColumns, visibleColumns],\n );\n\n const columnRenderersByAttribute = useMemo(() => mergeColumnsRenderers(columns, customColumnRenderers), [columns, customColumnRenderers]);\n\n const { tableRef, actionsRef, actionsColWidth, columnsWidths } = useElementsWidths({\n columns,\n columnRenderersByAttribute,\n displayBulkSelectCol,\n fixedActionsCellWidth,\n });\n\n const selectableData = useMemo(() => data.filter(_isEntitySelectable), [data, _isEntitySelectable]);\n\n return (\n initialSelection={initialSelection} onChangeSelection={onChangeSelection}>\n\n \n \n
\n {displayBulkAction && }\n
\n \n Show\n \n {displayPageSizeSelect && (\n \n )}\n \n \n \n
\n \n \n \n {data.map((entity, index) => (\n \n \n \n \n ))}\n \n \n
\n \n\n );\n};\n\nEntityDataTable.defaultProps = {\n actionsCellWidth: undefined,\n activeSort: undefined,\n columnRenderers: undefined,\n columnsOrder: [],\n expandedSectionsRenderer: undefined,\n onPageSizeChange: undefined,\n pageSize: undefined,\n rowActions: undefined,\n entityAttributesAreCamelCase: true,\n bulkSelection: {},\n};\n\nexport default EntityDataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport EntityDataTable from './EntityDataTable';\nimport type { ColumnRenderers, Column } from './types';\n\nexport { ColumnRenderers, Column };\nexport default EntityDataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Alert } from 'components/bootstrap';\n\nconst StyledList = styled.ul`\n padding: 0;\n margin: 0;\n`;\n\ntype Props = {\n bsNoItemsStyle?: 'info' | 'success' | 'warning',\n noItemsText?: string | React.ReactNode,\n items: Array,\n}\n\n/**\n * Component used to represent list of entities in Graylog, where each entity will have a title, description,\n * action buttons, etc. You need to use this component alongside `EntityListItem` in order to get a similar\n * look and feel among different entities.\n */\nconst EntityList = ({ bsNoItemsStyle, items, noItemsText }: Props) => {\n if (items.length === 0) {\n return (\n \n {noItemsText}\n \n );\n }\n\n return (\n \n {items}\n \n );\n};\n\nEntityList.defaultProps = {\n bsNoItemsStyle: 'info',\n noItemsText: 'No items available',\n};\n\nEntityList.propTypes = {\n /** bsStyle to use when there are no items in the list. */\n bsNoItemsStyle: PropTypes.oneOf(['info', 'success', 'warning']),\n /** Text to show when there are no items in the list. */\n noItemsText: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n /** Array of `EntityListItem` that will be shown. */\n items: PropTypes.array.isRequired,\n};\n\nexport default EntityList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Row, Col } from 'components/bootstrap';\n\nconst StyledListItem = styled.li(({ theme }) => css`\n display: block;\n padding: 15px 0;\n\n h2 {\n font-family: ${theme.fonts.family.body};\n }\n\n h2 .label {\n margin-left: 5px;\n line-height: 1;\n vertical-align: baseline;\n }\n\n .item-description {\n min-height: 17px;\n margin: 5px 0;\n }\n\n .item-actions > .btn,\n .item-actions > .btn-group,\n .item-actions > span > .btn {\n margin-left: 5px;\n margin-bottom: 5px;\n }\n\n &:not(:last-child) {\n border-bottom: 1px solid ${theme.colors.gray[90]};\n }\n`);\n\ntype Props = {\n title: React.ReactNode,\n titleSuffix?: React.ReactNode,\n description?: React.ReactNode,\n actions?: React.ReactNode | Array,\n contentRow?: React.ReactNode,\n}\n\n/**\n * Component that let you render an entity item using a similar look and feel as other entities in Graylog.\n * This component is meant to use alongside `EntityList`. Look there for an example of how to use this component.\n */\nconst EntityListItem = ({ actions, contentRow, description, title, titleSuffix }: Props) => {\n const wrappedTitleSuffix = titleSuffix ? {titleSuffix} : null;\n const actionsContainer = (\n
\n {actions}\n
\n );\n\n return (\n \n \n \n
\n {actionsContainer}\n
\n

{title} {wrappedTitleSuffix}

\n {description && (\n
\n {description}\n
\n )}\n \n\n \n {actionsContainer}\n \n
\n\n {contentRow && (\n \n {contentRow}\n \n )}\n
\n );\n};\n\nEntityListItem.propTypes = {\n /** Entity's title. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n /** Text to append to the title. Usually the type or a short description. */\n titleSuffix: PropTypes.any,\n /** Description of the element, which can accommodate more text than `titleSuffix`. */\n description: PropTypes.any,\n /** Action buttons or menus shown on the right side of the entity item container. */\n actions: PropTypes.oneOfType([PropTypes.array, PropTypes.node]),\n /**\n * Add any content that is related to the entity and needs more space to be displayed. This is mostly use\n * to show configuration options.\n */\n contentRow: PropTypes.node,\n};\n\nEntityListItem.defaultProps = {\n actions: undefined,\n contentRow: undefined,\n description: undefined,\n titleSuffix: undefined,\n};\n\nexport default EntityListItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { SyntheticEvent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Field, useFormikContext } from 'formik';\n\nimport { Input } from 'components/bootstrap';\n\ntype BaseProps = {\n autoComplete?: string,\n bsSize?: 'large' | 'small' | 'xsmall',\n buttonAfter?: React.ReactElement | string,\n children?: React.ReactNode,\n disabled?: boolean,\n error?: React.ReactElement | string,\n formGroupClassName?: string,\n help?: React.ReactElement | string,\n id: string,\n label?: React.ReactElement | string,\n labelClassName?: string,\n maxLength?: number,\n min?: number,\n max?: number,\n minLength?: number,\n name: string,\n onChange?: (event: SyntheticEvent) => void,\n placeholder?: string,\n required?: boolean,\n type?: string,\n validate?: (arg: string) => string | undefined | null,\n wrapperClassName?: string,\n autoFocus?: boolean,\n};\n\ntype TextareaProps = BaseProps & {\n type: 'textarea',\n rows?: number\n};\ntype Props = BaseProps | TextareaProps;\n\nconst checkboxProps = (value) => ({ defaultChecked: value ?? false });\n\nconst inputProps = (value) => ({ value: value ?? '' });\n\n/** Wraps the common Input component with a formik Field */\nconst FormikInput = ({ name, type, help, validate, onChange: propagateOnChange, error: errorProp, ...rest }: Props) => {\n const { validateOnChange } = useFormikContext();\n\n return (\n \n {({ field: { value, onChange, onBlur }, meta: { error: validationError, touched } }) => {\n const typeSpecificProps = type === 'checkbox' ? checkboxProps(value) : inputProps(value);\n const displayValidationError = validateOnChange ? !!(validationError && touched) : !!validationError;\n const error = displayValidationError ? validationError : errorProp;\n\n const _handleChange = (e: React.ChangeEvent) => {\n if (typeof propagateOnChange === 'function') {\n propagateOnChange(e);\n }\n\n onChange(e);\n };\n\n return (\n \n );\n }}\n \n );\n};\n\nFormikInput.propTypes = {\n autoComplete: PropTypes.string,\n bsSize: PropTypes.string,\n buttonAfter: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n children: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.element,\n ]),\n disabled: PropTypes.bool,\n error: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n formGroupClassName: PropTypes.string,\n help: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n labelClassName: PropTypes.string,\n max: PropTypes.number,\n min: PropTypes.number,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n required: PropTypes.bool,\n type: PropTypes.string,\n validate: PropTypes.func,\n wrapperClassName: PropTypes.string,\n autoFocus: PropTypes.bool,\n};\n\nFormikInput.defaultProps = {\n autoComplete: undefined,\n bsSize: undefined,\n buttonAfter: undefined,\n children: null,\n disabled: false,\n error: undefined,\n formGroupClassName: undefined,\n help: undefined,\n label: undefined,\n labelClassName: undefined,\n max: undefined,\n min: undefined,\n maxLength: undefined,\n minLength: undefined,\n onChange: undefined,\n placeholder: undefined,\n required: false,\n type: 'text',\n validate: () => undefined,\n wrapperClassName: undefined,\n autoFocus: false,\n};\n\nexport default FormikInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { OverlayTrigger } from 'components/common';\nimport type { SizeProp } from 'components/common/Icon';\nimport Icon from 'components/common/Icon';\n\nconst StyledPopover = styled.span(({ theme }) => css`\n ul {\n padding-left: 0;\n }\n\n li {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h4 {\n font-size: ${theme.fonts.size.large};\n }\n`);\n\nconst StyledIcon = styled(Icon)<{ $type: Type, $displayLeftMargin: boolean }>(({ theme, $type, $displayLeftMargin }) => css`\n display: inline-flex;\n color: ${$type === 'error' ? theme.colors.variant.danger : 'inherit'};\n margin: 0;\n margin-left: ${$displayLeftMargin ? '0.3em' : 0};\n pointer-events: auto !important;\n`);\n\nconst iconName = (type: Type) => {\n switch (type) {\n case 'error':\n return 'error';\n case 'info':\n default:\n return 'help';\n }\n};\n\ntype Type = 'info' | 'error';\n\ntype Props = {\n children: React.ReactNode,\n className?: string,\n displayLeftMargin?: boolean,\n id?: string,\n placement?: 'top' | 'right' | 'bottom' | 'left',\n iconSize?: SizeProp\n pullRight?: boolean,\n title?: string,\n testId?: string,\n trigger?: React.ComponentProps['trigger'],\n type?: 'info' | 'error',\n};\n\nconst HoverForHelp = ({\n children,\n className,\n displayLeftMargin,\n title,\n id,\n pullRight,\n placement,\n testId,\n type,\n iconSize,\n trigger,\n}: Props) => (\n {children}}\n title={title}\n testId={testId}>\n \n \n);\n\nHoverForHelp.propTypes = {\n displayLeftMargin: PropTypes.bool,\n children: PropTypes.any.isRequired,\n className: PropTypes.string,\n id: PropTypes.string,\n placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n pullRight: PropTypes.bool,\n title: PropTypes.string,\n testId: PropTypes.string,\n trigger: PropTypes.arrayOf(PropTypes.oneOf(['click', 'focus', 'hover'])) || PropTypes.oneOf(['click', 'focus', 'hover']),\n};\n\nHoverForHelp.defaultProps = {\n id: 'help-popover',\n className: '',\n pullRight: true,\n placement: 'bottom',\n testId: undefined,\n title: undefined,\n type: 'info',\n iconSize: undefined,\n trigger: ['hover', 'focus'],\n displayLeftMargin: false,\n};\n\n/** @component */\nexport default HoverForHelp;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport styled, { css, keyframes } from 'styled-components';\n\nimport type { SizeProp, RotateProp, IconName, FlipProp, IconType } from './types';\n\nconst sizeMap = {\n xs: '.938em',\n sm: '1.094em',\n lg: '1.438em',\n xl: '1.725em',\n '2x': '2.30em',\n '3x': '3.45em',\n '4x': '4.60em',\n '5x': '5.75em',\n};\n\nconst spinAnimation = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n`;\n\nconst StyledSpan = styled.span<{\n $size: string,\n $spin: boolean,\n $rotation: RotateProp\n $flip: FlipProp,\n $fill: boolean\n}>(({\n $size,\n $spin,\n $rotation,\n $flip,\n $fill,\n}) => css`\n font-variation-settings: 'opsz' 48, 'wght' 700 ${$fill ? \", 'FILL' 1\" : ''};\n font-size: ${sizeMap[$size] ?? '1.15em'};\n transform: rotate(${$rotation}deg) scaleY(${$flip === 'horizontal' || $flip === 'both' ? -1 : 1}) scaleX(${$flip === 'vertical' || $flip === 'both' ? -1 : 1});\n animation: ${$spin ? css`${spinAnimation} 2s infinite linear` : 'none'};\n vertical-align: middle;\n`);\n\ntype Props = {\n className?: string,\n 'data-testid'?: string,\n /** Name of Material Symbol icon */\n name: IconName,\n rotation?: RotateProp,\n size?: SizeProp,\n spin?: boolean,\n /**\n * Name of icon type, the brand type is needed for all brand icons.\n * The type regular is needed to outlined icon.\n * Not all icons can be outlined.\n * */\n type?: IconType,\n style?: React.CSSProperties,\n onClick?: (event: React.MouseEvent) => void,\n onMouseEnter?: (event: React.MouseEvent) => void,\n onMouseLeave?: (event: React.MouseEvent) => void,\n onFocus?: (event: React.FocusEvent) => void,\n tabIndex?: number,\n title?: string,\n flip?: FlipProp,\n}\n\n/**\n * Component that renders an icon or glyph.\n * Uses Material Symbols: https://fonts.google.com/icons\n * Have a look at the `BrandIcon` component for brand icons.\n */\nconst Icon = ({\n name,\n type,\n size,\n className,\n rotation,\n spin,\n flip,\n style,\n 'data-testid': testId,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n tabIndex,\n title,\n}: Props) => (\n \n {name}\n \n);\n\nIcon.defaultProps = {\n className: undefined,\n 'data-testid': undefined,\n flip: undefined,\n rotation: 0,\n size: undefined,\n spin: false,\n style: undefined,\n type: 'solid',\n onClick: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onFocus: undefined,\n tabIndex: undefined,\n title: undefined,\n};\n\nexport default Icon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport Icon from './Icon';\n\nexport * from './types';\n\nexport default Icon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport Icon from 'components/common/Icon';\nimport type { IconName, RotateProp, IconType } from 'components/common/Icon';\n\nconst Wrapper = styled.button<{ disabled: boolean }>(({ theme, disabled }) => css`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 25px;\n width: 25px;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n color: ${disabled ? theme.colors.gray[90] : theme.colors.gray[60]};\n font-size: ${theme.fonts.size.large};\n\n &:hover {\n background-color: ${theme.colors.gray[80]};\n }\n\n &:active {\n background-color: ${theme.colors.gray[70]};\n }\n`);\n\ntype Props = {\n focusable?: boolean,\n title?: string,\n onClick?: () => void,\n className?: string,\n name: IconName,\n iconType?: IconType,\n disabled?: boolean,\n rotation?: RotateProp,\n 'data-testid'?: string\n};\n\nconst handleClick = (onClick) => {\n if (typeof onClick === 'function') {\n onClick();\n }\n};\n\nconst IconButton = React.forwardRef(({\n title,\n onClick,\n focusable,\n className,\n disabled,\n iconType,\n 'data-testid': dataTestId,\n ...rest\n}: Props, ref) => (\n handleClick(onClick)}\n className={className}\n type=\"button\"\n disabled={disabled}>\n \n \n));\n\nIconButton.propTypes = {\n className: PropTypes.string,\n title: PropTypes.string,\n onClick: PropTypes.func,\n name: PropTypes.any,\n};\n\nIconButton.defaultProps = {\n className: undefined,\n focusable: true,\n onClick: undefined,\n title: undefined,\n name: undefined,\n disabled: false,\n rotation: undefined,\n iconType: undefined,\n 'data-testid': undefined,\n};\n\nexport default IconButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { isPermitted, isAnyPermitted } from 'util/PermissionsMixin';\n\n/**\n * Wrapper component that renders its children only if the current user fulfills certain permissions.\n * Current user's permissions are fetched from the server.\n */\n\ntype Props = {\n children: React.ReactNode,\n permissions: string | Array,\n anyPermissions?: boolean,\n};\n\nconst _checkPermissions = (permissions, anyPermissions, currentUser) => {\n if (anyPermissions) {\n return isAnyPermitted(currentUser.permissions, permissions);\n }\n\n return isPermitted(currentUser.permissions, permissions);\n};\n\nconst IfPermitted = ({ children, permissions, anyPermissions, ...rest }: Props) => {\n const currentUser = useCurrentUser();\n\n if ((!permissions || permissions.length === 0) || (currentUser && _checkPermissions(permissions, anyPermissions, currentUser))) {\n return (\n <>\n {\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const presentProps = (child && child.props) ? Object.keys(child.props) : [];\n // do not overwrite existing props\n const filteredRest = Object.entries(rest)\n .filter((entry) => !presentProps.includes(entry[0]))\n .reduce((obj, [k, v]) => ({ ...obj, [k]: v }), {});\n\n return React.cloneElement(child, filteredRest);\n }\n\n return child;\n })\n }\n \n );\n }\n\n return null;\n};\n\nIfPermitted.propTypes = {\n /** Children to render if user has permissions. */\n children: PropTypes.node.isRequired,\n /** Permissions the current user must fulfill. By default, the user must have all permissions that are passed in this prop. */\n permissions: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]).isRequired,\n /** This flag controls which permissions the user must fulfill: (all, at least one). */\n anyPermissions: PropTypes.bool,\n};\n\nIfPermitted.defaultProps = {\n anyPermissions: false,\n};\n\n/** @component */\nexport default IfPermitted;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { HelpBlock } from 'components/bootstrap';\n\nconst ErrorMessage = styled.span(({ theme }) => css`\n color: ${theme.colors.variant.danger};\n`);\n\nconst HelpMessage = styled.span<{ $hasError: boolean }>(({ theme, $hasError }) => css`\n color: ${$hasError ? theme.colors.gray[50] : 'inherit'};\n`);\n\ntype Props = {\n className?: string,\n error?: React.ReactNode,\n help?: React.ReactNode,\n};\n\n/**\n * Component that renders a help and error message for an input.\n * It always displays both messages.\n */\nconst InputDescription = ({ className, error, help }: Props) => {\n if (!help && !error) {\n return null;\n }\n\n return (\n \n {error && (\n \n {error}\n \n )}\n {(!!error && !!help) &&
}\n {help && (\n \n {help}\n \n )}\n
\n );\n};\n\nInputDescription.propTypes = {\n className: PropTypes.string,\n error: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n help: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n};\n\nInputDescription.defaultProps = {\n className: undefined,\n error: undefined,\n help: undefined,\n};\n\nexport default InputDescription;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Rnd } from 'react-rnd';\nimport styled, { css } from 'styled-components';\nimport debounce from 'lodash/debounce';\n\nimport { Button } from 'components/bootstrap';\nimport Icon from 'components/common/Icon';\n\nconst DEFAULT_SIZE = { width: 450, height: 400 };\nconst halfWidth = Math.ceil((window.innerWidth / 2) - (DEFAULT_SIZE.width / 2));\nconst halfHeight = Math.ceil((window.innerHeight / 2) - (DEFAULT_SIZE.height / 2));\nconst stayOnScreenHeight = halfHeight < 0 ? 55 : halfHeight;\nconst DEFAULT_POSITION = {\n x: halfWidth,\n y: stayOnScreenHeight,\n};\n\nconst InteractableModalWrapper = styled.div`\n position: fixed;\n inset: 0;\n z-index: 1030;\n pointer-events: none;\n`;\n\nconst StyledRnd = styled(Rnd)(({ theme }) => css`\n box-shadow: 0 0 9px ${theme.colors.global.navigationBoxShadow},\n 0 0 6px ${theme.colors.global.navigationBoxShadow},\n 0 0 3px ${theme.colors.global.navigationBoxShadow};\n background-color: ${theme.colors.global.contentBackground};\n border: 1px solid ${theme.colors.variant.lightest.default};\n border-radius: 3px;\n flex-direction: column;\n display: flex !important;\n pointer-events: auto;\n`);\n\nconst Content = styled.div`\n flex: 1;\n padding: 0 15px;\n`;\n\nconst Header = styled.header(({ theme }) => css`\n padding: 6px 12px 9px;\n display: flex;\n align-items: center;\n background-color: ${theme.colors.variant.lightest.default};\n border-bottom: 1px solid ${theme.colors.variant.lighter.default};\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: move;\n`);\n\nconst Title = styled.h3(({ theme }) => css`\n color: ${theme.colors.global.textDefault};\n flex: 1;\n`);\n\nconst DragBars = styled(Icon)(({ theme }) => css`\n color: ${theme.colors.variant.darker.default};\n margin-right: 9px;\n`);\n\nconst CloseButton = styled(Button)(({ theme }) => css`\n && {\n color: ${theme.colors.variant.light.default};\n \n &:hover {\n color: ${theme.colors.variant.default};\n }\n }\n`);\n\n/**\n * A resizable and draggable modal component\n *\n * Can be controlled or uncontrolled, using [`react-rnd`](https://github.com/bokuweb/react-rnd) under the hood\n */\n\ntype Coords = { x: number, y: number };\ntype Size = { width: string, height: string };\n\ntype Props = {\n className?: string,\n minHeight?: number,\n minWidth?: number,\n onClose: () => void,\n onDrag: (newCoords: Coords) => void,\n onResize: (newSize: Size) => void,\n position: Coords,\n size: Size,\n title: string,\n wrapperClassName?: string,\n};\n\nconst InteractableModal = ({\n children,\n className,\n minHeight,\n minWidth,\n onClose,\n onDrag,\n onResize,\n position,\n size,\n title,\n wrapperClassName,\n}: React.PropsWithChildren) => {\n const dragHandleRef = useRef(null);\n const [dragHandleClassName, setDragHandleClassName] = useState(null);\n const [dragPosition, setDragPosition] = useState(position);\n const [resizeSize, setResizeSize] = useState(size);\n\n const handleDragStop = (_event, { x, y }: Coords) => {\n setDragPosition({ x, y });\n onDrag({ x, y });\n };\n\n const handleResizeStop = (_event, direction, ref) => {\n const newSize: Size = {\n width: ref.style.width,\n height: ref.style.height,\n };\n let newCoords = { ...dragPosition };\n\n switch (direction) {\n case 'left':\n case 'topLeft':\n case 'top':\n newCoords = {\n x: dragPosition.x - (parseFloat(ref.style.width) - parseFloat(resizeSize.width)),\n y: dragPosition.y - (parseFloat(ref.style.height) - parseFloat(resizeSize.height)),\n };\n\n break;\n\n case 'bottomLeft':\n newCoords = {\n x: dragPosition.x - (parseFloat(ref.style.width) - parseFloat(resizeSize.width)),\n y: dragPosition.y,\n };\n\n break;\n\n case 'topRight':\n newCoords = {\n x: dragPosition.x,\n y: dragPosition.y - (parseFloat(ref.style.height) - parseFloat(resizeSize.height)),\n };\n\n break;\n\n default:\n break;\n }\n\n setResizeSize(newSize);\n onResize(newSize);\n handleDragStop(null, newCoords);\n };\n\n const handleBrowserResize = debounce(() => {\n const { x: currentX, y: currentY } = dragPosition;\n const { width, height } = resizeSize;\n const { innerWidth, innerHeight } = window;\n\n const boundingBox = {\n top: 0,\n bottom: parseFloat(height),\n left: 0,\n right: parseFloat(width),\n };\n\n const modalXWithNewWidth = innerWidth - boundingBox.right;\n const modalYWithNewHeight = innerHeight - boundingBox.bottom;\n\n const newCoords = {\n x: Math.max(Math.min(modalXWithNewWidth, currentX), boundingBox.left),\n y: Math.max(Math.min(modalYWithNewHeight, currentY), boundingBox.top),\n };\n\n handleDragStop(null, newCoords);\n }, 150);\n\n useEffect(() => {\n setDragHandleClassName(dragHandleRef.current.classList[0]);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleBrowserResize, false);\n\n return () => {\n window.removeEventListener('resize', handleBrowserResize);\n };\n }, [dragPosition, handleBrowserResize]);\n\n return (\n \n \n
\n <DragBars name=\"drag_indicator\" />{title}\n\n \n \n \n
\n\n \n {children}\n \n
\n
\n );\n};\n\nInteractableModal.propTypes = {\n /** className that will be applied to `react-rnd` */\n className: PropTypes.string,\n /** Content of the InteractableModal modal */\n children: PropTypes.node.isRequired,\n /** Minimum height that modal can be reduced to */\n minHeight: PropTypes.number,\n /** Minimum width that modal can be reduced to */\n minWidth: PropTypes.number,\n /** Function that is called when InteractableModal is closed */\n onClose: PropTypes.func,\n /** Function that is called when InteractableModal has finished being dragged */\n onDrag: PropTypes.func,\n /** Function that is called when InteractableModal has finished being resized */\n onResize: PropTypes.func,\n /** If you want to control InteractableModal you can pass specific position */\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n /** If you want to control InteractableModal you can pass specific size */\n size: PropTypes.shape({\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n /** Title that appears at the top of the window */\n title: PropTypes.string,\n /** Used to style wrapping component */\n wrapperClassName: PropTypes.string,\n};\n\nInteractableModal.defaultProps = {\n className: undefined,\n minHeight: DEFAULT_SIZE.height,\n minWidth: DEFAULT_SIZE.width,\n onClose: () => {},\n onDrag: () => {},\n onResize: () => {},\n position: DEFAULT_POSITION,\n size: DEFAULT_SIZE,\n title: '',\n wrapperClassName: undefined,\n};\n\nexport default InteractableModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { useEffect, useState } from 'react';\n\nimport { Alert } from 'components/bootstrap';\nimport Spinner from 'components/common/Spinner';\n\nimport Delayed from './Delayed';\n\nconst Container = styled.div(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n position: fixed;\n min-width: 200px;\n top: 60px;\n left: 50%;\n transform: translateX(-50%);\n box-shadow: 0 2px 10px rgb(0 0 0 / 20%);\n z-index: 2000;\n`);\n\nconst StyledAlert = styled(Alert)`\n margin: 0;\n height: 32px;\n padding: 5px 20px;\n text-align: center;\n`;\n\ntype Props = {\n text: string,\n longWaitText: string,\n longWaitTimeout: number,\n};\n\n/**\n * Component that displays a loading indicator in the page. It uses a CSS fixed position to always appear\n * on the screen.\n *\n * Use this component when you want to load something in the background, but still provide some feedback that\n * an action is happening.\n */\nconst LoadingIndicator = ({ text, longWaitText, longWaitTimeout }: Props) => {\n const [indicatorText, setIndicatorText] = useState(text);\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n setIndicatorText(longWaitText);\n }, longWaitTimeout);\n\n return () => clearTimeout(timeoutId);\n }, [longWaitText, longWaitTimeout]);\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nLoadingIndicator.propTypes = {\n /** Text to display while the indicator is shown. */\n text: PropTypes.string,\n longWaitText: PropTypes.string,\n longWaitTimeout: PropTypes.number,\n};\n\nLoadingIndicator.defaultProps = {\n text: 'Loading...',\n longWaitText: 'This is taking a bit longer, please hold on...',\n longWaitTimeout: 20000,\n};\n\nexport default LoadingIndicator;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\n\ntype Props = {\n text: string,\n}\n\nconst Markdown = ({ text }: Props) => {\n const markdown = useMemo(() => DOMPurify.sanitize(marked(text ?? '')), [text]);\n\n // eslint-disable-next-line react/no-danger\n return
;\n};\n\nexport default Markdown;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport type { SyntheticEvent } from 'react';\n\nimport Button from 'components/bootstrap/Button';\nimport ButtonToolbar from 'components/bootstrap/ButtonToolbar';\nimport type { IconName } from 'components/common/Icon';\nimport Icon from 'components/common/Icon';\nimport Spinner from 'components/common/Spinner';\n\nconst StyledButtonToolbar = styled(ButtonToolbar)`\n display: flex;\n justify-content: flex-end;\n align-items: end;\n gap: 0.25em;\n`;\n\ntype WithCancelProps = {\n displayCancel: true,\n disabledCancel?: boolean,\n onCancel: () => void,\n}\n\ntype WithoutCancelProps = {\n displayCancel: false\n}\n\ntype WithAsyncSubmit = {\n isAsyncSubmit: true,\n submitLoadingText: string,\n isSubmitting: boolean,\n}\n\ntype WithSyncSubmit = {\n isAsyncSubmit: false,\n}\n\ntype Props = {\n bsSize?: 'large' | 'small' | 'xsmall',\n className?: string,\n disabledSubmit?: boolean,\n displayCancel?: boolean,\n formId?: string,\n isAsyncSubmit?: boolean,\n isSubmitting?: boolean,\n leftCol?: React.ReactNode,\n onSubmit?: (event?: SyntheticEvent) => void,\n submitButtonText: React.ReactNode,\n submitButtonType?: 'submit' | 'button',\n submitIcon?: IconName,\n} & (WithCancelProps | WithoutCancelProps) & (WithAsyncSubmit | WithSyncSubmit);\n\nconst ModalSubmit = (props: Props) => {\n const {\n isAsyncSubmit,\n bsSize,\n className,\n displayCancel,\n disabledSubmit,\n formId,\n leftCol,\n onSubmit,\n submitButtonText,\n submitButtonType,\n submitIcon,\n } = props;\n\n const title = typeof submitButtonText === 'string' ? submitButtonText : undefined;\n\n return (\n \n {leftCol}\n {displayCancel && (\n \n )}\n \n \n );\n};\n\nModalSubmit.defaultProps = {\n bsSize: undefined,\n className: undefined,\n disabledSubmit: false,\n displayCancel: true,\n isAsyncSubmit: false,\n formId: undefined,\n isSubmitting: false,\n leftCol: undefined,\n onSubmit: undefined,\n submitButtonType: 'submit',\n submitIcon: undefined,\n};\n\nexport default ModalSubmit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport Select from 'components/common/Select';\n\ntype Props = React.ComponentProps;\n\n/**\n * Component that wraps and render a `Select` where multiple options can be selected. It passes all\n * props to the underlying `Select` component, so please look there to find more information about them.\n */\nclass MultiSelect extends React.Component {\n static propTypes = Select.propTypes;\n\n _select = undefined;\n\n getValue = () => this._select.getValue();\n\n render() {\n return \n \n );\n\n return (\n \n {label && {label}}\n \n \n {(!required && !hideCheckbox) && checkbox}\n \n o.value === unit)[0].label}\n disabled={!this._isChecked()}>\n {options}\n \n \n {help && {help}}\n \n \n );\n },\n});\n\nexport default TimeUnitInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport type { Moment } from 'moment';\n\nimport type { DateTimeFormats } from 'util/DateTime';\nimport useUserDateTime from 'hooks/useUserDateTime';\nimport { adjustFormat } from 'util/DateTime';\n\ntype Props = {\n dateTime: string | number | Date | Moment | undefined,\n field?: string,\n format?: DateTimeFormats,\n render?: React.ComponentType<{ value: string, field: string | undefined }>,\n tz?: string,\n className?: string,\n}\n\n/**\n * Component that renders a given date time based on the user time zone in a `time` HTML element.\n * It is capable of render date times in different formats, accepting ISO 8601\n * strings, JS native Date objects, and Moment.js Date objects. On hover the component displays the time in UTC.\n *\n * While the component is using the user time zone by default, it is also possible\n * to change the time zone for the given date, something that helps, for instance, to display a local time\n * from a UTC time that was used in the server.\n *\n */\nconst Timestamp = ({ dateTime, field, format, render: Component, tz, className }: Props) => {\n const { formatTime: formatWithUserTz } = useUserDateTime();\n\n if (!dateTime) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>;\n }\n\n const formattedDateTime = tz ? adjustFormat(dateTime, format, tz) : formatWithUserTz(dateTime, format);\n const dateTimeString = adjustFormat(dateTime, 'internal');\n\n return (\n \n );\n};\n\nTimestamp.propTypes = {\n /**\n * Date time to be displayed in the component. You can provide an ISO\n * 8601 string, a JS native `Date` object, a moment `Date` object, or\n * a number containing seconds after UNIX epoch.\n */\n dateTime: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.number]),\n /**\n * Format to represent the date time.\n */\n format: PropTypes.string,\n /** Provides field prop for the render function. */\n field: PropTypes.string,\n /**\n * Specifies the time zone to convert `dateTime` to.\n * If not defined the user zone will be used.\n */\n tz: PropTypes.string,\n /**\n * Override render default function to add a decorator.\n */\n render: PropTypes.func,\n};\n\nTimestamp.defaultProps = {\n dateTime: undefined,\n field: undefined,\n format: 'default',\n render: ({ value }) => value,\n tz: undefined,\n className: undefined,\n};\n\nexport default Timestamp;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Tooltip as MantineTooltip } from '@mantine/core';\nimport { useTheme } from 'styled-components';\n\ntype Props = React.ComponentProps;\n\nconst Tooltip = (props: Props) => {\n const theme = useTheme();\n const styles = () => ({\n tooltip: {\n backgroundColor: theme.colors.global.contentBackground,\n color: theme.colors.global.textDefault,\n fontWeight: 400,\n fontSize: theme.fonts.size.root,\n },\n });\n\n return ;\n};\n\nexport default Tooltip;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Immutable from 'immutable';\nimport isEqual from 'lodash/isEqual';\n\nimport { Button } from 'components/bootstrap';\nimport TypeAheadInput from 'components/common/TypeAheadInput';\n\n/**\n * Component that renders a data filter input with suggestion capabilities.\n * This component was thought to be able to filter a list of items by one\n * of their attributes, but also on tags, providing auto-completion for them.\n *\n * **Note** There are a few quirks around this component and it will be\n * refactored soon.\n */\nclass TypeAheadDataFilter extends React.Component {\n static propTypes = {\n /** ID to use in the filter input field. */\n id: PropTypes.string,\n /**\n * Array of objects to be filtered. Each object must contain at least\n * the keys to be filtered, specified in the `searchInKeys` prop.\n */\n data: PropTypes.array,\n /** Object key to use to display items in the suggestions. */\n displayKey: PropTypes.string,\n /**\n * Object key being used to provide suggestions.\n *\n * **Warning** The key in the data objects is expected to be plural,\n * but here you must give the singular form.\n */\n filterBy: PropTypes.string,\n /**\n * Function to override the default filtering algorithm.\n * @deprecated We never used the function and it seems to be broken,\n * as it cannot filter data if it doesn't received the text introduced\n * in the filter field.\n */\n filterData: PropTypes.func,\n /**\n * Object key where the auto-completion suggestions are stored. Use this\n * if passing an array of objects to `filterSuggestions`.\n */\n filterSuggestionAccessor: PropTypes.string,\n /**\n * Array of strings or objects containing available suggestions to auto\n * complete. If an array of objects is given to this prop, please ensure\n * the `filterSuggestionAccessor` prop specifies which key contains the\n * suggestions.\n */\n filterSuggestions: PropTypes.array,\n /** Label to use for the filter input field. */\n label: PropTypes.string,\n /**\n * Function that will be called when the user changes the filter.\n * The function receives an array of data that matches the filter\n * and filter input value.\n */\n onDataFiltered: PropTypes.func,\n /**\n * Specifies an array of strings containing each key of the data objects\n * that should be compared against the text introduced in the filter\n * input field.\n */\n searchInKeys: PropTypes.array,\n };\n\n static defaultProps = {\n id: '',\n data: [],\n displayKey: '',\n filterBy: '',\n filterData: undefined,\n filterSuggestionAccessor: '',\n filterSuggestions: [],\n label: '',\n onDataFiltered: undefined,\n searchInKeys: [],\n };\n\n constructor(props) {\n super(props);\n const { filterBy } = this.props;\n\n this.state = {\n filterText: '',\n filters: Immutable.OrderedSet(),\n filterByKey: `${filterBy}s`,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data } = this.props;\n\n if (!isEqual(prevProps.data, data)) {\n this.filterData();\n }\n }\n\n _onSearchTextChanged = (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.setState({ filterText: this.typeAheadInput.getValue() }, this.filterData);\n };\n\n _onFilterAdded = (event, suggestion) => {\n const { filters } = this.state;\n const { displayKey } = this.props;\n\n this.setState({\n filters: filters.add(suggestion[displayKey]),\n filterText: '',\n }, this.filterData);\n\n this.typeAheadInput.clear();\n };\n\n _onFilterRemoved = (event) => {\n const { filters } = this.state;\n\n event.preventDefault();\n this.setState({ filters: filters.delete(event.target.getAttribute('data-target')) }, this.filterData);\n };\n\n _matchFilters = (datum) => {\n const { filters, filterByKey } = this.state;\n const { filterSuggestionAccessor } = this.props;\n\n return filters.every((filter) => {\n let dataToFilter = datum[filterByKey];\n\n if (filterSuggestionAccessor) {\n dataToFilter = dataToFilter.map((data) => data[filterSuggestionAccessor].toLocaleLowerCase());\n } else {\n dataToFilter = dataToFilter.map((data) => data.toLocaleLowerCase());\n }\n\n return dataToFilter.indexOf(filter.toLocaleLowerCase()) !== -1;\n }, this);\n };\n\n _matchStringSearch = (datum) => {\n const { filterText } = this.state;\n const { searchInKeys } = this.props;\n\n return searchInKeys.some((searchInKey) => {\n const key = datum[searchInKey];\n const value = filterText;\n\n if (key === null) {\n return false;\n }\n\n const containsFilter = (entry, thisValue) => {\n if (typeof entry === 'undefined') {\n return false;\n }\n\n return entry.toLocaleLowerCase().indexOf(thisValue.toLocaleLowerCase()) !== -1;\n };\n\n if (typeof key === 'object') {\n return key.some((arrayEntry) => containsFilter(arrayEntry, value));\n }\n\n return containsFilter(key, value);\n }, this);\n };\n\n _resetFilters = () => {\n this.typeAheadInput.clear();\n this.setState({ filterText: '', filters: Immutable.OrderedSet() }, this.filterData);\n };\n\n filterData = () => {\n const { filterData, data, onDataFiltered } = this.props;\n const { filterText } = this.state;\n\n if (typeof filterData === 'function') {\n return filterData(data);\n }\n\n const filteredData = data.filter((datum) => this._matchFilters(datum) && this._matchStringSearch(datum), this);\n\n onDataFiltered(filteredData, filterText);\n\n return true;\n };\n\n render() {\n const { filters, filterText } = this.state;\n const { id, label, displayKey, filterBy, filterSuggestionAccessor, filterSuggestions } = this.props;\n const filtersContent = filters.map((filter) => (\n
  • \n \n {filterBy}: {filter}\n
  • \n ));\n\n let suggestions;\n\n if (filterSuggestionAccessor) {\n suggestions = filterSuggestions.map((filterSuggestion) => filterSuggestion[filterSuggestionAccessor].toLocaleLowerCase());\n } else {\n suggestions = filterSuggestions.map((filterSuggestion) => filterSuggestion.toLocaleLowerCase());\n }\n\n suggestions.filter((filterSuggestion) => !filters.includes(filterSuggestion));\n\n return (\n
    \n
    \n { this.typeAheadInput = typeAheadInput; }}\n onSuggestionSelected={this._onFilterAdded}\n formGroupClassName=\"\"\n suggestionText={`Filter by ${filterBy}: `}\n suggestions={suggestions}\n label={label}\n displayKey={displayKey} />\n \n \n \n
      \n {filtersContent}\n
    \n
    \n );\n }\n}\n\nexport default TypeAheadDataFilter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport escape from 'lodash/escape';\nimport $ from 'jquery';\nimport 'typeahead.js';\nimport styled from 'styled-components';\n\nimport UniversalSearch from 'logic/search/UniversalSearch';\nimport { Input } from 'components/bootstrap';\n\nconst StyledInput = styled(Input)`\n input&.tt-hint {\n background-color: transparent !important;\n }\n`;\n\n/**\n * Component that renders a field input with auto-completion capabilities.\n *\n * **Note** There are a few quirks around this component and it will be\n * refactored soon.\n */\nclass TypeAheadInput extends React.Component {\n static propTypes = {\n /** ID to use in the input field. */\n id: PropTypes.string.isRequired,\n /** Label to use for the input field. */\n label: PropTypes.string.isRequired,\n /**\n * Function that will be called when a new key is pressed in the\n * input field. The function will be called with the event generated\n * by react for that input.\n */\n onKeyPress: PropTypes.func,\n /** Object key where to store auto-completion result. */\n displayKey: PropTypes.string,\n /** String that allows overriding the input form group */\n formGroupClassName: PropTypes.string,\n /**\n * Array of strings providing auto-completion.\n * E.g. `[ \"some string\", \"otherstring\" ]`\n */\n suggestions: PropTypes.array,\n /** Text to display next to the auto-completion suggestion. */\n suggestionText: PropTypes.string,\n /**\n * Function that will be called once typeahead is loaded and ready\n * to operate. The function will be called with no arguments.\n */\n onTypeaheadLoaded: PropTypes.func,\n /**\n * Function that will be called when a suggestion is selected. The\n * function will receive the typeahead event as first argument, and\n * the selected suggestion as second argument. The selected suggestion\n * will be returned in an object, as a value for the `displayKey` key,\n * e.g. `{ suggestion: 'Foo' }`.\n *\n * For more information on typeahead events, see:\n * https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#custom-events\n *\n */\n onSuggestionSelected: PropTypes.func,\n };\n\n static defaultProps = {\n displayKey: 'suggestion',\n formGroupClassName: undefined,\n onKeyPress: () => {},\n onTypeaheadLoaded: () => {},\n onSuggestionSelected: () => {},\n suggestions: [],\n suggestionText: undefined,\n };\n\n componentDidMount() {\n const { suggestions, displayKey, suggestionText, onTypeaheadLoaded, onSuggestionSelected } = this.props;\n\n this._updateTypeahead({ suggestions, displayKey, suggestionText, onTypeaheadLoaded, onSuggestionSelected });\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n this._destroyTypeahead();\n this._updateTypeahead(newProps);\n }\n\n componentWillUnmount() {\n this._destroyTypeahead();\n }\n\n getValue = () => $(this.fieldInput).typeahead('val');\n\n clear = () => {\n $(this.fieldInput).typeahead('val', '');\n };\n\n _destroyTypeahead = () => {\n $(this.fieldInput).typeahead('destroy');\n $(this.fieldFormGroup).off('typeahead:select typeahead:autocomplete');\n };\n\n _updateTypeahead = ({ suggestions, displayKey, suggestionText, onTypeaheadLoaded, onSuggestionSelected }) => {\n this.fieldInput = this.fieldInputElem.getInputDOMNode();\n // eslint-disable-next-line react/no-find-dom-node\n this.fieldFormGroup = ReactDOM.findDOMNode(this.fieldInputElem);\n\n const $fieldInput = $(this.fieldInput);\n\n $fieldInput.typeahead({\n hint: true,\n highlight: true,\n minLength: 1,\n },\n {\n name: 'dataset-name',\n displayKey: displayKey,\n source: UniversalSearch.substringMatcher(suggestions, displayKey, 6),\n templates: {\n suggestion: (value) => {\n // Escape all text here that may be user-generated, since this is not automatically escaped by React.\n if (suggestionText) {\n return `
    ${escape(suggestionText)} ${escape(value[displayKey])}
    `;\n }\n\n return `
    ${escape(value[displayKey])}
    `;\n },\n },\n });\n\n if (typeof onTypeaheadLoaded === 'function') {\n onTypeaheadLoaded();\n $fieldInput.typeahead('close');\n }\n\n $(this.fieldFormGroup).on('typeahead:select typeahead:autocomplete', (event, suggestion) => {\n if (onSuggestionSelected) {\n onSuggestionSelected(event, suggestion);\n }\n });\n };\n\n render() {\n const { id, label, onKeyPress, formGroupClassName } = this.props;\n\n return (\n { this.fieldInputElem = fieldInput; }}\n wrapperClassName=\"typeahead-wrapper\"\n formGroupClassName={formGroupClassName}\n label={label}\n onKeyPress={onKeyPress} />\n );\n }\n}\n\nexport default TypeAheadInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport find from 'lodash/find';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar, Col, Nav, NavItem, Row } from 'components/bootstrap';\nimport type { SelectCallback } from 'components/bootstrap/types';\n\nimport Icon from './Icon';\n\nconst SubnavigationCol = styled(Col)(({ theme }) => css`\n border-right: ${theme.colors.gray[80]} solid 1px;\n`);\n\nconst HorizontalCol = styled(Col)`\n margin-bottom: 15px;\n`;\n\nconst StyledNav: React.ComponentType = styled(Nav)<{$style?: 'stepper'}>(({ $style, theme }) => css`\n ${$style === 'stepper' ? `\n &.nav {\n counter-reset: line-number;\n > li {\n counter-increment: line-number;\n > a {\n position: relative;\n display: flex;\n padding: 10px 0px;\n justify-content: center;\n align-items: center;\n &:hover,\n &:focus {\n background-color: initial;\n }\n > div {\n flex-shrink: 0;\n }\n \n &::before {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-grow: 0; \n flex-shrink: 0;\n background-color: ${theme.colors.global.contentBackground};\n border-color: ${theme.colors.variant.lighter.default};\n margin-right: 10px;\n content: counter(line-number);\n width: 35px;\n height: 35px;\n border-radius: 50%;\n border: 2px solid;\n z-index: 2;\n }\n &::after {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${theme.colors.global.contentBackground};\n border-color: ${theme.colors.variant.lighter.default};\n margin-right: 10px;\n content: ' ';\n border: 1px solid ${theme.colors.input.border};\n width: 100%;\n flex-shrink: 1;\n flex-grow: 0;\n align-self: center;\n margin: 0 16px;\n } \n &:hover::after {\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n &:last-child > a {\n justify-content: flex-start;\n &::after {\n display:none;\n } \n }\n &.disabled > a {\n color: ${theme.colors.variant.light.default};\n\n &:hover,\n &:focus {\n color: ${theme.colors.variant.light.default};\n }\n }\n }\n\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: inital;\n border-color: ${theme.colors.variant.primary};\n }\n }\n &.nav-justified {\n > li {\n > a {\n text-align: left;\n }\n }\n }\n &.nav-pills {\n > li {\n > a {\n color: initial;\n\n &:hover {\n color: ${theme.colors.global.link};\n }\n }\n\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: ${theme.colors.global.link};\n background-color: initial; \n }\n }\n }\n } \n }\n ` : `&.nav {\n > li {\n border: 1px solid ${theme.colors.variant.lighter.default};\n border-left: 0;\n\n &:first-child {\n border-left: 1px solid ${theme.colors.variant.lighter.default};\n border-radius: 4px 0 0 4px;\n\n > a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n &:last-child {\n border-radius: 0 4px 4px 0;\n\n > a {\n border-radius: 0 4px 4px 0;\n }\n }\n\n &:not(:last-child) > a {\n &::after {\n transition: background-color 150ms ease-in-out;\n background-color: ${theme.colors.global.contentBackground};\n border-color: ${theme.colors.variant.lighter.default};\n border-style: solid;\n border-width: 0 1px 1px 0;\n content: '';\n display: block;\n height: 15px;\n position: absolute;\n right: -1px;\n top: 50%;\n transform: translateY(-50%) translateX(50%) rotate(-45deg);\n width: 15px;\n z-index: 2;\n }\n\n &:hover::after {\n background-color: ${theme.colors.variant.lightest.default};\n }\n }\n\n &.active a {\n &,\n &:hover,\n &::after,\n &:hover::after {\n background-color: ${theme.colors.global.link};\n }\n }\n\n > a {\n border-radius: 0;\n }\n }\n }\n\n @media (max-width: ${theme.breakpoints.max.md}) {\n &.nav {\n > li {\n border-right: 0;\n border-left: 0;\n\n &:last-child a,\n &:first-child a {\n border-radius: 0;\n }\n\n &:not(:last-child) {\n border-bottom: 0;\n }\n\n &:not(:last-child) > a {\n &::after {\n bottom: 0;\n left: 50%;\n top: auto;\n width: 10px;\n height: 10px;\n transform: translateY(50%) translateX(-50%) rotate(45deg);\n }\n }\n }\n\n &.nav-justified > li > a {\n margin-bottom: 0;\n }\n }\n }`}\n`);\n\nconst HorizontalButtonToolbar = styled(ButtonToolbar)`\n padding: 7px;\n`;\n\nconst isValidActiveStep = (activeStep: StepKey | null | undefined, steps: StepsType) => {\n if (activeStep === undefined || activeStep === null) {\n return false;\n }\n\n return find(steps, { key: activeStep });\n};\n\nconst warnOnInvalidActiveStep = (activeStep: StepKey | null | undefined, steps: StepsType) => {\n if (activeStep === undefined || activeStep === null) {\n return;\n }\n\n if (!isValidActiveStep(activeStep, steps)) {\n // eslint-disable-next-line no-console\n console.warn(`activeStep ${activeStep} is not a key in any element of the 'steps' prop!`);\n }\n};\n\nexport type StepKey = number | string;\n\nexport type StepType = {\n key: StepKey,\n title: React.ReactNode,\n component: React.ReactElement,\n disabled?: boolean,\n};\n\nexport type StepsType = Array;\ntype Props = {\n steps: StepsType,\n activeStep: StepKey | null | undefined,\n onStepChange: (StepKey) => void,\n children: React.ReactNode,\n horizontal: boolean,\n justified: boolean,\n containerClassName: string,\n hidePreviousNextButtons: boolean,\n style: 'stepper' | undefined,\n};\n\ntype State = {\n selectedStep: StepKey,\n};\n\n/**\n * Component that renders a wizard, letting the consumers of the component\n * manage the state. It will render at least two columns: First column will hold\n * the steps the wizard will take. Second column will render the component of the\n * selected step. In a optional third column the consumer can render a preview.\n */\nclass Wizard extends React.Component {\n static propTypes = {\n /**\n * Array of objects which will describe the wizard. The object must\n * contain a unique 'key' attribute, a 'title' which will be shown as step link on the left side and\n * a 'component' attribute which will hold the component which is to render for the step.\n */\n steps: PropTypes.arrayOf(PropTypes.object).isRequired,\n /**\n * Indicates the active step that should be rendered, in case the step state is stored outside this\n * component, and it is being used in a controlled way.\n * The prop **must** take the value of one of the keys in `steps`, otherwise a warning is logged in the console.\n */\n activeStep: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /**\n * Callback which is called when the user changes the step. As an argument the callback gets the key\n * of the next step.\n */\n onStepChange: PropTypes.func,\n /** Optional component which can be rendered on the right side e.g a preview */\n children: PropTypes.element,\n /** Indicates if wizard should be rendered in horizontal or vertical */\n horizontal: PropTypes.bool,\n /** Indicates if wizard should take the full width of their parent */\n justified: PropTypes.bool,\n /** Customize the container CSS class used by this component */\n containerClassName: PropTypes.string,\n /** Indicates if wizard should render next/previous buttons or not */\n hidePreviousNextButtons: PropTypes.bool,\n style: PropTypes.oneOf(['stepper', undefined]),\n };\n\n static defaultProps = {\n children: undefined,\n activeStep: undefined,\n onStepChange: () => {},\n horizontal: false,\n justified: false,\n containerClassName: 'content',\n hidePreviousNextButtons: false,\n style: undefined,\n };\n\n constructor(props: Props) {\n super(props);\n\n warnOnInvalidActiveStep(props.activeStep, props.steps);\n\n this.state = {\n selectedStep: props.steps[0].key,\n };\n }\n\n componentDidUpdate() {\n const { activeStep, steps } = this.props;\n\n warnOnInvalidActiveStep(activeStep, steps);\n }\n\n _getSelectedStep = () => {\n const { activeStep, steps } = this.props;\n const { selectedStep } = this.state;\n\n return (isValidActiveStep(activeStep, steps) ? activeStep : selectedStep);\n };\n\n _wizardChanged = (eventKey: StepKey) => {\n const { activeStep, onStepChange } = this.props;\n\n onStepChange(eventKey);\n\n // If activeStep is given, component should behave in a controlled way and let consumer decide which step to render.\n if (!activeStep) {\n this.setState({ selectedStep: eventKey });\n }\n };\n\n _disableButton = (direction: 'previous' | 'next') => {\n const { steps } = this.props;\n const selectedStep = this._getSelectedStep();\n const len = steps.length;\n const disabledPosition = direction === 'next' ? (len - 1) : 0;\n const currentPosition = steps.findIndex((step) => step.key === this._getSelectedStep());\n const otherPosition = direction === 'next' ? (currentPosition + 1) : (currentPosition - 1);\n const otherStep = (steps[otherPosition]);\n\n return steps[disabledPosition].key === selectedStep || otherStep?.disabled;\n };\n\n _onNext = () => {\n const { steps } = this.props;\n\n this._wizardChanged(steps[this._getSelectedIndex() + 1].key);\n };\n\n _onPrevious = () => {\n const { steps } = this.props;\n\n this._wizardChanged(steps[this._getSelectedIndex() - 1].key);\n };\n\n _getSelectedIndex = () => {\n const { steps } = this.props;\n const selectedStep = this._getSelectedStep();\n\n return steps.map((step) => step.key).indexOf(selectedStep);\n };\n\n _renderVerticalStepNav = () => {\n const { justified, steps, hidePreviousNextButtons, style } = this.props;\n const selectedStep = this._getSelectedStep();\n\n return (\n \n \n {steps.map((navItem) => (\n {navItem.title}\n ))}\n \n {!hidePreviousNextButtons && (\n <>\n
    \n \n \n \n \n \n \n \n \n \n )}\n
    \n );\n };\n\n _renderHorizontalStepNav = () => {\n const selectedStep = this._getSelectedStep();\n const { justified, steps, hidePreviousNextButtons, style } = this.props;\n\n return (\n \n {!hidePreviousNextButtons && (\n
    \n \n \n \n \n
    \n )}\n \n {steps.map((navItem) => (\n {navItem.title}))}\n \n
    \n );\n };\n\n render() {\n const { steps, horizontal, containerClassName, children } = this.props;\n let leftComponentCols;\n\n if (children) {\n leftComponentCols = 7;\n } else {\n leftComponentCols = horizontal ? 12 : 10;\n }\n\n const rightComponentCols = horizontal ? 5 : 3; // If horizontal, use more space for this component\n\n return (\n \n {horizontal ? this._renderHorizontalStepNav() : this._renderVerticalStepNav()}\n \n {steps[this._getSelectedIndex()].component}\n \n {children && (\n \n {children}\n \n )}\n \n );\n }\n}\n\nexport default Wizard;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\n\nexport interface CarouselSlideProps extends React.ComponentPropsWithoutRef<'div'> {\n children?: React.ReactNode;\n\n size?: string | number;\n\n gap?: number;\n}\n\nconst StyledSlide = styled.div<{ $size?: string | number, $gap?: number }>(({ $size, $gap, theme }: {\n theme: DefaultTheme,\n $size: string | number,\n $gap: number\n}) => css`\n flex: 0 0 ${$size ?? '24%'};\n min-width: 0;\n min-height: 100px;\n margin-right: ${$gap ?? theme.spacings.sm};\n position: relative;\n`);\n\nconst CarouselSlide = ({ children, size, gap }: CarouselSlideProps) => (\n \n {children}\n \n);\n\nCarouselSlide.defaultProps = {\n children: undefined,\n size: undefined,\n gap: undefined,\n};\n\nexport default CarouselSlide;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled from 'styled-components';\nimport useEmblaCarousel from 'embla-carousel-react';\n\nimport CarouselSlide from 'components/common/carousel/CarouselSlide';\n\ntype Props = {\n children: React.ReactNode,\n};\n\nconst StyledDiv = styled.div`\n &.carousel {\n overflow: hidden;\n\n .carousel-container {\n backface-visibility: hidden;\n display: flex;\n flex-direction: row;\n height: auto;\n }\n }\n`;\n\nconst Carousel = ({ children }: Props) => {\n const [emblaRef] = useEmblaCarousel({ containScroll: 'trimSnaps' });\n\n return (\n \n
    \n {children}\n
    \n
    \n );\n};\n\nCarousel.Slide = CarouselSlide;\nexport default Carousel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { PanelGroup } from 'components/bootstrap/imports';\n\ntype Props = {\n activeKey?: string,\n children: React.ReactNode,\n defaultActiveKey?: string,\n id: string,\n onSelect?: (nextKey: string) => void,\n}\n\nconst StyledPanelGroup = styled(PanelGroup)`\n margin-bottom: 0;\n`;\n\nconst Accordion = ({ activeKey, children, id, onSelect, ...restProps }:Props) => {\n const cleanActiveKey = activeKey?.replace(/[^0-9a-zA-Z-]/g, '-').toLowerCase();\n const _onSelect = useCallback((eventKey: any) => onSelect(eventKey), [onSelect]);\n\n return (\n \n {children}\n \n );\n};\n\nAccordion.propTypes = {\n activeKey: PropTypes.string,\n children: PropTypes.node.isRequired,\n id: PropTypes.string.isRequired,\n onSelect: PropTypes.func,\n};\n\nAccordion.defaultProps = {\n activeKey: undefined,\n defaultActiveKey: undefined,\n onSelect: () => {},\n};\n\nexport default Accordion;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Panel from '../bootstrap/Panel';\n\ntype Props = {\n children: React.ReactNode,\n name: string,\n id?: string,\n}\n\nconst StyledPanel = styled(Panel)`\n border: 0;\n border-radius: 0;\n box-shadow: none;\n`;\n\nconst PanelHeading = styled(Panel.Heading)(({ theme }) => css`\n && {\n padding: 0;\n border-radius: 0;\n background-color: ${theme.colors.variant.lightest.default};\n }\n`);\n\nconst PanelTitle = styled(Panel.Title)(({ theme }) => css`\n font-size: ${theme.fonts.size.small};\n color: ${theme.colors.global.link};\n \n > a {\n padding: 3px 9px;\n display: block;\n }\n`);\n\nconst PanelBody = styled(Panel.Body)(({ theme }) => css`\n ${StyledPanel} > ${PanelHeading} + .panel-collapse > & {\n background-color: ${theme.colors.global.contentBackground};\n border-top-color: ${theme.colors.variant.lighter.default};\n border-bottom-width: 0;\n color: ${theme.colors.variant.darkest.default};\n }\n`);\n\nconst AccordionItem = ({ children, name, id, ...restProps }: Props) => {\n const eventKey = id ?? name.replace(/[^0-9a-zA-Z]/g, '-').toLowerCase();\n\n return (\n \n \n \n {name}\n \n \n \n \n {children}\n \n \n \n );\n};\n\nAccordionItem.propTypes = {\n name: PropTypes.node.isRequired,\n id: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nAccordionItem.defaultProps = {\n id: undefined,\n};\n\nexport default AccordionItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { Affix } from '@mantine/core';\n\nexport default Affix;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Field } from 'formik';\nimport styled from 'styled-components';\n\nimport { Select } from 'components/common';\n\nconst StyledLabel = styled.label`\n font-weight: bold;\n margin-bottom: 5px;\n display: inline-block;\n font-size: 14px;\n background: none;\n`;\n\nconst HelpText = styled.span`\n color: ${(props: any) => props.theme.colors.gray['50']};\n`;\n\nexport type AutocompleteOption = {\n value: string | number,\n label: string\n};\n\ntype autocompleteProps = {\n fieldName: string,\n label: string,\n clearable?: boolean,\n required?: boolean,\n helpText?: string,\n options?: AutocompleteOption[],\n};\n\nconst Autocomplete = ({\n fieldName,\n label,\n clearable,\n required,\n helpText,\n options,\n}: autocompleteProps) => (\n \n {({ field: { name, value, onChange } }) => (\n <>\n {label}\n ) => void,\n labelClassName?: string,\n wrapperClassName?: string,\n formGroupClassName?: string,\n type?: string,\n error?: React.ReactElement | string,\n placeholder?: string\n help?: React.ReactElement | string,\n min?: number,\n max?: number,\n minLength?: number,\n maxLength?: number,\n required?: boolean,\n bsSize?: 'large' | 'small' | 'xsmall',\n validate?: (arg: any) => string | undefined,\n rows?: number,\n autoFocus?: boolean,\n};\n\n/** Displays the FormikInput with a specific layout */\nconst FormikFormGroup = ({ labelClassName, wrapperClassName, label, name, onChange, ...rest }: Props) => (\n \n);\n\nFormikFormGroup.defaultProps = {\n autoComplete: undefined,\n bsSize: undefined,\n buttonAfter: undefined,\n children: null,\n disabled: false,\n onChange: undefined,\n labelClassName: 'col-sm-3',\n wrapperClassName: 'col-sm-9',\n formGroupClassName: undefined,\n type: undefined,\n error: undefined,\n placeholder: undefined,\n help: undefined,\n min: undefined,\n max: undefined,\n minLength: undefined,\n maxLength: undefined,\n required: false,\n validate: () => undefined,\n rows: undefined,\n autoFocus: false,\n};\n\nexport default FormikFormGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport ButtonToolbar from 'components/bootstrap/ButtonToolbar';\nimport Button from 'components/bootstrap/Button';\nimport type { IconName } from 'components/common/Icon';\nimport Icon from 'components/common/Icon';\nimport Spinner from 'components/common/Spinner';\n\nconst StyledIcon = styled(Icon)`\n margin-right: 0.2em;\n`;\n\ntype WithCancelProps = {\n displayCancel: true,\n disabledCancel?: boolean,\n onCancel: () => void,\n}\n\ntype WithoutCancelProps = {\n displayCancel: false\n}\n\ntype WithAsyncSubmit = {\n isAsyncSubmit: true,\n submitLoadingText: string,\n isSubmitting: boolean,\n}\n\ntype WithSyncSubmit = {\n isAsyncSubmit: false,\n}\n\ntype Props = {\n bsSize?: 'large' | 'small' | 'xsmall',\n centerCol?: React.ReactNode,\n className?: string,\n disabledSubmit?: boolean,\n displayCancel?: boolean,\n formId?: string,\n isAsyncSubmit?: boolean,\n onSubmit?: () => void,\n submitButtonText: string,\n submitButtonType?: 'submit' | 'button',\n submitIcon?: IconName,\n} & (WithCancelProps | WithoutCancelProps) & (WithAsyncSubmit | WithSyncSubmit);\n\nconst FormSubmit = (props: Props) => {\n const {\n bsSize,\n className,\n centerCol,\n displayCancel,\n disabledSubmit,\n formId,\n isAsyncSubmit,\n onSubmit,\n submitButtonText,\n submitButtonType,\n submitIcon,\n } = props;\n\n return (\n \n \n {centerCol}\n {displayCancel === true && (\n \n )}\n \n );\n};\n\nFormSubmit.defaultProps = {\n bsSize: undefined,\n centerCol: undefined,\n className: undefined,\n disabledSubmit: false,\n displayCancel: true,\n formId: undefined,\n isAsyncSubmit: false,\n onSubmit: undefined,\n submitButtonType: 'submit',\n submitIcon: undefined,\n};\n\nexport default FormSubmit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { createGRN } from 'logic/permissions/GRN';\nimport useCurrentUser from 'hooks/useCurrentUser';\n\ntype ChildFun = (props: { disabled: boolean }) => React.ReactElement;\n\ntype Props = {\n children: React.ReactNode | ChildFun,\n id: string,\n type: string,\n hideChildren: boolean,\n};\n\nconst HasOwnership = ({ children, id, type, hideChildren }: Props) => {\n const currentUser = useCurrentUser();\n const entity = createGRN(type, id);\n const ownership = `entity:own:${entity}`;\n const adminPermission = '*';\n\n if (currentUser) {\n const { grnPermissions = [], permissions } = currentUser;\n const isAdmin = permissions.includes(adminPermission);\n\n if (grnPermissions.includes(ownership) || isAdmin) {\n if (!hideChildren && typeof children === 'function') {\n return <>{children({ disabled: false })} ;\n }\n\n return <>children;\n }\n }\n\n if (!hideChildren && typeof children === 'function') {\n return <>{children({ disabled: true })} ;\n }\n\n return null;\n};\n\nHasOwnership.propTypes = {\n /** Children to render if user has ownership of the entity */\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.func,\n ]).isRequired,\n /** The id string which shows entity */\n id: PropTypes.string,\n /** The type of the entity e.g dashboard, stream */\n type: PropTypes.string.isRequired,\n /** Will add disabled=true as a prop to the child in stead of not rendering it */\n hideChildren: PropTypes.bool,\n};\n\nHasOwnership.defaultProps = {\n hideChildren: false,\n id: undefined,\n};\n\nexport default HasOwnership;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Input } from 'components/bootstrap';\nimport * as ISODurationUtils from 'util/ISODurationUtils';\n\n/**\n * Displays an `Input` component for ISO8601 durations.\n */\ntype Props = {\n id: string,\n duration: string,\n update: (newDuration: string) => void,\n label: string,\n help: string,\n validator?: (newDuration: number) => boolean,\n errorText?: string,\n autoFocus?: boolean,\n required?: boolean,\n disabled?: boolean,\n}\ntype State = {\n duration: string,\n}\n\ninterface DurationInput {\n getValue(): string;\n}\n\nclass ISODurationInput extends React.Component {\n static propTypes = {\n /** Input id */\n id: PropTypes.string.isRequired,\n /** Value to show in the Input. */\n duration: PropTypes.string.isRequired,\n /** Callback that will receive the validated duration when the input changes. */\n update: PropTypes.func.isRequired,\n /** Input label. */\n label: PropTypes.string,\n /** Input help text. */\n help: PropTypes.string,\n /**\n * Function that validates the duration. It receives the duration in milliseconds and the duration itself as\n * arguments, and must return `true` if the duration is valid or `false` if not. Only valid durations are propagated\n * after the input changes.\n */\n validator: PropTypes.func,\n /** Text to display when duration is invalid. */\n errorText: PropTypes.string,\n /** Specify that the Input should have input focus when the page loads. */\n autoFocus: PropTypes.bool,\n /** Specify that the Input is required to submit the form. */\n required: PropTypes.bool,\n /** Specify that the Input is disabled or not */\n disabled: PropTypes.bool,\n };\n\n private isoDuration: DurationInput;\n\n static defaultProps = {\n label: 'Duration',\n help: 'as ISO8601 Duration',\n validator: () => true,\n errorText: 'invalid',\n autoFocus: false,\n required: false,\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n duration: this.props.duration,\n };\n }\n\n _onUpdate = () => {\n let duration = this.isoDuration.getValue().toUpperCase();\n\n if (!duration.startsWith('P')) {\n duration = `P${duration}`;\n }\n\n this.setState({ duration: duration });\n\n if (ISODurationUtils.isValidDuration(duration, this.props.validator)) {\n // Only propagate state if the config is valid.\n this.props.update(duration);\n }\n };\n\n render() {\n return (\n { this.isoDuration = isoDuration; }}\n label={this.props.label}\n onChange={this._onUpdate}\n value={this.state.duration}\n help={this.props.help}\n addonAfter={ISODurationUtils.humanizeDuration(this.state.duration, this.props.validator, this.props.errorText)}\n bsStyle={ISODurationUtils.durationStyle(this.state.duration, this.props.validator)}\n autoFocus={this.props.autoFocus}\n required={this.props.required}\n disabled={this.props.disabled} />\n );\n }\n}\n\nexport default ISODurationInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nconst StyledSpan = styled.span(({ theme }) => `\n color: ${theme.colors.gray[60]};\n font-weight: normal;\n`);\n\nconst InputOptionalInfo = () => (\n (Opt.)\n);\n\nexport default InputOptionalInfo;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useTheme } from 'styled-components';\n\nimport { INPUT_BORDER_RADIUS } from 'theme/constants';\n\nconst useInputListStyles = (size: 'small' | 'normal') => {\n const theme = useTheme();\n\n const inputListTheme = {\n ...theme,\n colors: {\n ...theme.colors,\n primary: theme.colors.input.borderFocus,\n primary75: theme.colors.variant.light.default,\n primary50: theme.colors.variant.lighter.default,\n primary25: theme.colors.variant.lightest.default,\n danger: theme.colors.variant.darker.info,\n dangerLight: theme.colors.variant.lighter.info,\n neutral0: theme.colors.input.background,\n neutral5: theme.colors.input.backgroundDisabled,\n neutral10: theme.colors.variant.lightest.info,\n neutral20: theme.colors.input.border,\n neutral30: theme.colors.gray[70],\n neutral40: theme.colors.gray[60],\n neutral50: theme.colors.gray[50],\n neutral60: theme.colors.gray[40],\n neutral70: theme.colors.gray[30],\n neutral80: theme.colors.gray[20],\n neutral90: theme.colors.gray[10],\n },\n };\n\n const styles = (isValid: boolean) => ({\n valueContainer: (provided: any) => ({\n ...provided,\n padding: size === 'small' ? '0 8px' : '2px 12px',\n }),\n control: (provided: any, { isFocused }) => ({\n ...provided,\n borderWidth: isFocused ? 1 : provided.borderWidth,\n outline: isFocused ? 0 : provided.outline,\n boxShadow: isFocused ? inputListTheme.colors.input.boxShadow : null,\n ...(size === 'small' ? { minHeight: 29, height: 29 } : { minHeight: 34 }),\n borderRadius: INPUT_BORDER_RADIUS,\n alignItems: 'center',\n borderColor: isValid ? provided.borderColor : inputListTheme.colors.brand.primary,\n }),\n placeHolder: (provided: any) => ({\n ...provided,\n color: inputListTheme.colors.input.placeholder,\n lineHeight: '28px',\n fontFamily: inputListTheme.fonts.family.body,\n fontSize: inputListTheme.fonts.size.body,\n fontWeight: 400,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n maxWidth: '100%',\n paddingRight: '20px',\n }),\n multiValue: (provided: any) => ({\n ...provided,\n border: `1px solid ${inputListTheme.colors.variant.lighter.info}`,\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: isValid ? provided.color : inputListTheme.colors.brand.primary,\n padding: '2px 5px',\n fontSize: inputListTheme.fonts.size.small,\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n borderLeft: `1px solid ${inputListTheme.colors.variant.lighter.info}`,\n paddingLeft: '5px',\n paddingRight: '5px',\n borderRadius: '0',\n }),\n });\n\n return { inputListTheme, styles };\n};\n\nexport default useInputListStyles;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nexport type GenericTarget = Omit & {\n name: string,\n value: T,\n}\n\nexport class GenericChangeEvent extends Event implements React.ChangeEvent> {\n _target: GenericTarget;\n\n _defaultPrevented: boolean;\n\n _propagationStopped: boolean;\n\n _persisted: boolean;\n\n nativeEvent: Event;\n\n set target(element: GenericTarget) {\n this._target = element;\n }\n\n get target() {\n return this._target;\n }\n\n set currentTarget(element: GenericTarget) {\n this._target = element;\n }\n\n get currentTarget() {\n return this._target;\n }\n\n preventDefault() {\n super.preventDefault();\n this._defaultPrevented = true;\n }\n\n isDefaultPrevented() {\n return this._defaultPrevented;\n }\n\n stopPropagation() {\n super.stopPropagation();\n this._propagationStopped = true;\n }\n\n isPropagationStopped() {\n return this._propagationStopped;\n }\n\n persist() {\n this._persisted = true;\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport CreatableSelect from 'react-select/creatable';\nimport type { CreatableProps } from 'react-select/creatable';\n\nimport { InputDescription } from 'components/common';\nimport { FormGroup, ControlLabel } from 'components/bootstrap';\n\nimport useInputListStyles from './useInputListStyles';\nimport { GenericChangeEvent } from './InputList.types';\nimport type { GenericTarget } from './InputList.types';\n\ninterface Option {\n readonly label: string | number;\n readonly value: string | number;\n}\n\nconst createOption = (value: string | number) => ({\n label: value,\n value,\n});\n\ntype Props = CreatableProps & {\n name: string,\n values: (string | number)[],\n onChange: (newValue: React.ChangeEvent>) => void,\n label?: React.ReactNode,\n size?: 'small' | 'normal',\n bsStyle?: 'success' | 'warning' | 'error' | null,\n error?: React.ReactNode,\n help?: React.ReactNode,\n};\n\nconst InputList = ({ name, values, onChange, label, size, bsStyle, error, help, ...rest }: Props) => {\n const { inputListTheme, styles } = useInputListStyles(size);\n const inputRef = React.useRef(null);\n const [inputValue, setInputValue] = React.useState('');\n const [value, setValue] = React.useState(values.map((val: string | number) => createOption(val)));\n\n React.useLayoutEffect(() => setValue(values.map((val: string | number) => createOption(val))), [values]);\n\n const dispatchOnChange = (newValue: Option[]) => {\n const newList = newValue.map((item: Option) => item.value);\n const event = new GenericChangeEvent<(string | number)[]>('change');\n\n inputRef.current.value = newList;\n inputRef.current.name = name;\n event.target = inputRef.current;\n\n onChange(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (!inputValue) return;\n\n if (event.key === 'Enter' || event.key === 'Tab') {\n const newValue = [...value, createOption(inputValue)];\n setValue(newValue);\n dispatchOnChange(newValue);\n setInputValue('');\n event.preventDefault();\n }\n };\n\n const handleOnChange = (newValue: Option[]) => {\n setValue(newValue);\n dispatchOnChange(newValue);\n };\n\n return (\n \n {label && {label}}\n setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n value={value}\n styles={styles(!error)}\n theme={(theme) => ({ ...theme, ...inputListTheme })}\n {...rest} />\n \n \n );\n};\n\nInputList.defaultProps = {\n label: null,\n size: 'normal',\n bsStyle: null,\n error: null,\n help: null,\n};\n\nexport default InputList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport InputList from './InputList';\n\nexport default InputList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport {\n ControlLabel,\n DropdownButton,\n FormControl,\n FormGroup,\n HelpBlock,\n InputGroup,\n InputWrapper,\n MenuItem,\n} from 'components/bootstrap';\n\nconst OPTIONS = [\n { value: 'STRING', label: 'string' },\n { value: 'NUMBER', label: 'number' },\n { value: 'OBJECT', label: 'object' },\n { value: 'ARRAY', label: 'array' },\n { value: 'BOOLEAN', label: 'boolean' },\n { value: 'NULL', label: 'null' },\n];\n\nclass JSONValueInput extends React.Component {\n constructor(props) {\n super(props);\n this.state = this._computeInitialState();\n }\n\n UNSAFE_componentWillReceiveProps() {\n this.setState(this._computeInitialState());\n }\n\n _computeInitialState = () => ({\n value: this.props.value,\n valueType: this.props.valueType,\n });\n\n _propagateState = () => {\n this.props.update(this.state.value, this.state.valueType);\n };\n\n _onUpdate = (e) => {\n const { value } = e.target;\n\n this.setState({ value: value }, this._propagateState);\n };\n\n _onValueTypeSelect = (valueType) => {\n this.setState({ valueType: valueType }, this._propagateState);\n };\n\n render() {\n const options = OPTIONS.filter((o) => this.props.allowedTypes.indexOf(o.value) > -1).map((o) => this._onValueTypeSelect(o.value)}>{o.label});\n\n return (\n \n {this.props.label && {this.props.label}}\n \n \n \n o.value === this.props.valueType)[0].label}>\n {options}\n \n \n {this.props.help && {this.props.help}}\n \n \n );\n }\n}\n\nJSONValueInput.propTypes = {\n update: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n label: PropTypes.string,\n help: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n required: PropTypes.bool,\n validationState: PropTypes.string,\n value: PropTypes.string,\n valueType: PropTypes.oneOf(OPTIONS.map((option) => option.value)),\n allowedTypes: (props, propName, componentName) => {\n // Check that allowedTypes is an array of type values\n const values = OPTIONS.map((option) => option.value);\n const errors = [];\n\n if (!(props[propName] instanceof Array)) {\n return new Error(`Invalid prop ${propName} supplied to ${componentName}. Expected an array but got ${props[propName]}`);\n }\n\n props[propName].forEach((p) => {\n if (values.indexOf(p) < 0) {\n errors.push(p);\n }\n });\n\n if (errors.length > 0) {\n return new Error(`Invalid prop ${propName} supplied to ${componentName}. Expected array of ${values} but got invalid ${errors}`);\n }\n\n return null;\n },\n labelClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n};\n\nJSONValueInput.defaultProps = {\n value: '',\n valueType: 'STRING',\n allowedTypes: OPTIONS.map((option) => option.value),\n label: '',\n help: '',\n required: false,\n validationState: null,\n labelClassName: undefined,\n wrapperClassName: undefined,\n onBlur: undefined,\n};\n\nexport default JSONValueInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport type { HotkeysProps } from 'hooks/useHotkey';\nimport useHotkey from 'hooks/useHotkey';\n\ntype Props = PropsWithChildren<{\n shortcuts: Array,\n}>;\n\nconst HotkeyComponent = ({ shortcut }: { shortcut: HotkeysProps }) => {\n useHotkey(shortcut);\n\n return null;\n};\n\nconst KeyCapture = ({ children, shortcuts } : Props) => (\n <>\n {shortcuts.map((shortcut) => )}\n {children}\n \n);\n\nKeyCapture.defaultProps = {\n children: null,\n};\n\nexport default KeyCapture;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Button, Input, Table } from 'components/bootstrap';\nimport ObjectUtils from 'util/ObjectUtils';\n\nconst StyledDiv = styled.div`\n .form-group {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\n/**\n * KeyValueTable displays a table for all key-value pairs in a JS object. If the editable prop is set to true, it also\n * provides inputs to create, edit and delete key-value pairs.\n */\nclass KeyValueTable extends React.Component {\n static propTypes = {\n /** Object containing key-values to represent in the table. */\n pairs: PropTypes.object.isRequired,\n /** Table headers. Must be an array with three elements [ key header, value header, actions header]. */\n headers: PropTypes.array,\n /** Indicates if the user can create, edit or delete key-value pairs. */\n editable: PropTypes.bool,\n /** Callback when key-value pairs change. It receives the new key-value pairs as argument. */\n onChange: PropTypes.func,\n /** Extra CSS classes for the rendered table. */\n className: PropTypes.string,\n /** Extra CSS classes for the table container. */\n containerClassName: PropTypes.string,\n /** Size of action buttons. */\n actionsSize: PropTypes.oneOf(['large', 'medium', 'small', 'xsmall']),\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n newKey: '',\n newValue: '',\n };\n }\n\n _onPairsChange = (newPairs) => {\n if (this.props.onChange) {\n this.props.onChange(newPairs);\n }\n };\n\n _bindValue = (event) => {\n const newState = {};\n\n newState[event.target.name] = event.target.value;\n this.setState(newState);\n };\n\n _addRow = () => {\n const newPairs = ObjectUtils.clone(this.props.pairs);\n\n newPairs[this.state.newKey] = this.state.newValue;\n this._onPairsChange(newPairs);\n\n this.setState({ newKey: '', newValue: '' });\n };\n\n _deleteRow = (key) => () => {\n // eslint-disable-next-line no-alert\n if (window.confirm(`Are you sure you want to delete property '${key}'?`)) {\n const newPairs = ObjectUtils.clone(this.props.pairs);\n\n delete newPairs[key];\n this._onPairsChange(newPairs);\n }\n };\n\n _formattedHeaders = (headers) => (\n \n {headers.map((header, idx) => {\n const customStyle = {};\n\n // Hide last column or apply width so it sticks to the right\n if (idx === headers.length - 1) {\n if (!this.props.editable) {\n return null;\n }\n\n customStyle.width = 75;\n }\n\n return {header};\n })}\n \n );\n\n _formattedRows = (pairs) => Object.keys(pairs).sort().map((key) => {\n let actionsColumn;\n\n if (this.props.editable) {\n const actions = [];\n\n actions.push(\n ,\n );\n\n actionsColumn = {actions};\n }\n\n return (\n \n {key}\n {pairs[key]}\n {actionsColumn}\n \n );\n });\n\n _newRow = () => {\n if (!this.props.editable) {\n return null;\n }\n\n const addRowDisabled = !this.state.newKey || !this.state.newValue;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n render() {\n return (\n
    \n
    \n \n {this._formattedHeaders(this.props.headers)}\n \n {this._formattedRows(this.props.pairs)}\n {this._newRow()}\n \n
    \n
    \n
    \n );\n }\n}\n\nKeyValueTable.defaultProps = {\n headers: ['Name', 'Value', 'Actions'],\n editable: false,\n actionsSize: 'xsmall',\n className: '',\n containerClassName: '',\n onChange: () => {},\n};\n\nexport default KeyValueTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport { Button } from 'components/bootstrap';\n\ntype ButtonProps = React.ComponentProps;\n\ntype Props = Omit & {\n to: string,\n target?: '_blank' | '_self' | '_parent' | '_top' | 'framename',\n}\n\nconst LinkButton = ({ to, target, onClick, ...restButtonProps }: Props) => {\n const navigate = useNavigate();\n const handleOnClick = useCallback((e) => {\n if (target === '_self') {\n navigate(to);\n } else {\n window.open(to, target);\n }\n\n if (onClick) onClick(e);\n }, [target, onClick, navigate, to]);\n\n return
    \n );\n }\n}\n\nexport default SelectableList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport HoverForHelp from 'components/common/HoverForHelp';\n\ntype Props = {\n type: string,\n description?: string,\n};\n\nconst SharingDisabledPopover = ({ type, description }: Props) => {\n const getReadableType = (_type: string) => _type.replaceAll('_', ' ');\n\n return (\n \n {description || `Only owners of this ${getReadableType(type)} are allowed to share it.`}\n \n );\n};\n\nSharingDisabledPopover.defaultProps = {\n description: undefined,\n};\n\nexport default SharingDisabledPopover;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport type { StyleProps } from 'components/bootstrap/Button';\nimport Button from 'components/bootstrap/Button';\nimport SharingDisabledPopover from 'components/permissions/SharingDisabledPopover';\nimport HasOwnership from 'components/common/HasOwnership';\nimport Icon from 'components/common/Icon';\nimport type { BsSize } from 'components/bootstrap/types';\n\ntype Props = {\n /**\n * When a custom description is provided\n * the button will be disabled\n */\n disabledInfo?: string,\n entityId: string,\n entityType: string,\n onClick: () => void,\n bsStyle?: StyleProps,\n bsSize?: BsSize,\n};\n\nconst ShareButton = ({ bsStyle, bsSize, entityId, entityType, onClick, disabledInfo }: Props) => (\n \n {({ disabled: hasMissingPermissions }) => (\n \n )}\n \n);\n\nShareButton.defaultProps = {\n bsStyle: 'default',\n disabledInfo: undefined,\n bsSize: undefined,\n};\n\nexport default ShareButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\n\n/**\n * Component that renders a time value given in a certain unit.\n * It can also use 0 as never if `zeroIsNever` is set.\n */\nconst TimeUnit = createReactClass({\n displayName: 'TimeUnit',\n\n propTypes: {\n /** Value to display. */\n value: PropTypes.number.isRequired,\n /** Unit used in the value. */\n unit: PropTypes.oneOf(['NANOSECONDS', 'MICROSECONDS', 'MILLISECONDS', 'SECONDS', 'MINUTES', 'HOURS', 'DAYS']).isRequired,\n /** Specifies if zero should be displayed as never or not. */\n zeroIsNever: PropTypes.bool,\n },\n\n getDefaultProps() {\n return {\n zeroIsNever: true,\n };\n },\n\n UNITS: {\n NANOSECONDS: 'nanoseconds',\n MICROSECONDS: 'microseconds',\n MILLISECONDS: 'milliseconds',\n SECONDS: 'seconds',\n MINUTES: 'minutes',\n HOURS: 'hours',\n DAYS: 'days',\n },\n\n render() {\n if (this.props.value === 0 && this.props.zeroIsNever) {\n return Never;\n }\n\n return (\n \n {this.props.value} {this.UNITS[this.props.unit]}\n \n );\n },\n});\n\nexport default TimeUnit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport moment from 'moment-timezone';\nimport uniq from 'lodash/uniq';\n\nimport Select from 'components/common/Select';\n\n/**\n * Component that renders a select input for all supported time zones.\n *\n * As this component is based in the `Select` component, users can search a\n * certain time zone easily. This component will pass through other props\n * to the underlying `Select` component, so you can further customize how\n * the `Select` input behaves. Check the `Select` documentation for more\n * information.\n */\nclass TimezoneSelect extends React.Component {\n static propTypes = {\n /**\n * Function that will be called when the selected timezone changes. The\n * function will receive the new time zone identifier as argument. See\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for\n * a list of time zone identifiers.\n */\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n // Some time zones are not stored into any areas, this is the group we use to put them apart in the dropdown\n // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n _UNCLASSIFIED_AREA = 'Unclassified';\n\n getValue = () => this.timezone.getValue();\n\n _formatTimezones = () => {\n const timezones = {};\n\n // Group time zones by area\n moment.tz.names().forEach((timezone) => {\n const splitted = timezone.split('/');\n const area = (splitted.length > 1 ? splitted[0] : this._UNCLASSIFIED_AREA);\n const location = (splitted.length > 1 ? splitted[1] : splitted[0]);\n\n if (!timezones[area]) {\n timezones[area] = [];\n }\n\n timezones[area].push(location);\n });\n\n const labels = [];\n\n Object.keys(timezones)\n .sort()\n .forEach((area) => {\n // Add disabled area option to use as TZ separator\n labels.push({ label: area, disabled: true, value: area });\n\n // Now add a label per timezone in the area\n const effectiveTimezones = uniq(timezones[area]).sort();\n const timezoneLabels = effectiveTimezones.map((location) => {\n const timezone = (area === this._UNCLASSIFIED_AREA ? location : `${area}/${location}`);\n\n return { value: timezone, label: location.replace('_', ' ') };\n });\n\n labels.push(...timezoneLabels);\n });\n\n return labels;\n };\n\n _renderOption = (option) => {\n if (!option.disabled) {\n return   {option.label};\n }\n\n return {option.label};\n };\n\n render() {\n const timezones = this._formatTimezones();\n const { onChange, ...otherProps } = this.props;\n\n return (\n { this.fieldInput = fieldInput; }}\n label={label}\n onBlur={onBlur}\n error={error}\n wrapperClassName=\"typeahead-wrapper\"\n defaultValue={valueLink ? valueLink.value : null}\n {...this._getFilteredProps()} />\n );\n }\n}\n\nexport default TypeAheadFieldInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useCallback, useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { useStore } from 'stores/connect';\nimport { Button } from 'components/bootstrap';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport UrlWhiteListForm from 'components/configurations/UrlWhiteListForm';\nimport type { ConfigurationsStoreState, WhiteListConfig } from 'stores/configurations/ConfigurationsStore';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\n// Explicit import to fix eslint import/no-cycle\nimport IfPermitted from 'components/common/IfPermitted';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport generateId from 'logic/generateId';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst URL_WHITELIST_CONFIG = 'org.graylog2.system.urlwhitelist.UrlWhitelist';\n\ntype Props = {\n newUrlEntry: string,\n onUpdate: () => void,\n urlType?: 'regex' | 'literal',\n};\n\nconst URLWhiteListFormModal = ({ newUrlEntry, urlType, onUpdate }: Props) => {\n const prevNewUrlEntry = useRef();\n const [config, setConfig] = useState({ entries: [], disabled: false });\n const [isValid, setIsValid] = useState(false);\n const [newUrlEntryId, setNewUrlEntryId] = useState();\n const [showConfigModal, setShowConfigModal] = useState(false);\n\n const { configuration } = useStore(ConfigurationsStore);\n const urlWhiteListConfig = configuration[URL_WHITELIST_CONFIG];\n\n const currentUser = useCurrentUser();\n const sendTelemetry = useSendTelemetry();\n\n useEffect(() => {\n if (isPermitted(currentUser.permissions, ['urlwhitelist:read'])) {\n ConfigurationsActions.listWhiteListConfig(URL_WHITELIST_CONFIG);\n }\n }, [currentUser]);\n\n const setDefaultWhiteListState = useCallback((defaultUrlWhiteListConfig) => {\n const id = generateId();\n const defaultConfig = {\n entries: [...defaultUrlWhiteListConfig.entries, {\n id: id,\n title: '',\n value: newUrlEntry,\n type: urlType ?? 'literal',\n }],\n disabled: defaultUrlWhiteListConfig.disabled,\n };\n setNewUrlEntryId(id);\n setConfig(defaultConfig);\n }, [newUrlEntry, urlType]);\n\n useEffect(() => {\n const { entries } = config;\n\n if (urlWhiteListConfig) {\n if (entries.length === 0 || prevNewUrlEntry.current !== newUrlEntry) {\n setDefaultWhiteListState(urlWhiteListConfig);\n }\n }\n\n prevNewUrlEntry.current = newUrlEntry;\n }, [setDefaultWhiteListState, urlWhiteListConfig, config, newUrlEntry, urlType]);\n\n const openModal = () => {\n setShowConfigModal(true);\n };\n\n const closeModal = () => {\n setShowConfigModal(false);\n setDefaultWhiteListState(urlWhiteListConfig);\n };\n\n const handleUpdate = (nextConfig, nextIsValid) => {\n setConfig(nextConfig);\n setIsValid(nextIsValid);\n };\n\n const saveConfig = (event) => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.URLWHITELIST_CONFIGURATION_UPDATED, {\n app_section: 'urlwhitelist',\n app_action_value: 'configuration-update',\n });\n\n if (isValid) {\n ConfigurationsActions.updateWhitelist(URL_WHITELIST_CONFIG, config).then(() => {\n onUpdate();\n closeModal();\n });\n }\n };\n\n if (urlWhiteListConfig) {\n const { entries, disabled } = config;\n\n return (\n <>\n \n \n \n \n

    Whitelist URLs

    \n \n
    \n \n );\n }\n\n return null;\n};\n\nURLWhiteListFormModal.propTypes = {\n newUrlEntry: PropTypes.string,\n onUpdate: PropTypes.func,\n urlType: PropTypes.oneOf(['regex', 'literal']),\n};\n\nURLWhiteListFormModal.defaultProps = {\n newUrlEntry: '',\n onUpdate: () => {\n },\n urlType: undefined,\n};\n\nexport default URLWhiteListFormModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback, useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from 'components/bootstrap';\nimport { isValidURL } from 'util/URLUtils';\n// Explicit import to fix eslint import/no-cycle\nimport URLWhiteListFormModal from 'components/common/URLWhiteListFormModal';\nimport ToolsStore from 'stores/tools/ToolsStore';\nimport { triggerInput } from 'util/FormsUtils';\n\ntype Props = {\n label: string,\n onChange: (event: SyntheticEvent) => void,\n validationMessage: string,\n validationState: string,\n url: string,\n onValidationChange?: (validationState: string) => void,\n labelClassName: string,\n wrapperClassName: string,\n urlType: React.ComponentProps['urlType'],\n autofocus: boolean,\n};\n\nconst URLWhiteListInput = ({ label, onChange, validationMessage, validationState, url, onValidationChange, labelClassName, wrapperClassName, urlType, autofocus }: Props) => {\n const [isWhitelisted, setIsWhitelisted] = useState(false);\n const [currentValidationState, setCurrentValidationState] = useState(validationState);\n const [ownValidationMessage, setOwnValidationMessage] = useState(validationMessage);\n\n const suggestRegexWhitelistUrl = (typedUrl: string, type: string): string | Promise => {\n // eslint-disable-next-line no-template-curly-in-string\n const keyWildcard = '${key}';\n\n return type && type === 'regex' && isValidURL(typedUrl) ? ToolsStore.urlWhiteListGenerateRegex(typedUrl, keyWildcard) : typedUrl;\n };\n\n const [suggestedUrl, setSuggestedUrl] = useState(url);\n const isWhitelistError = () => currentValidationState === 'error' && isValidURL(url);\n const urlInputRef = useRef();\n\n const checkIsWhitelisted = useCallback(() => {\n if (url) {\n const promise = ToolsStore.urlWhiteListCheck(url);\n\n promise.then((result) => {\n if (!result.is_whitelisted && validationState === null) {\n setCurrentValidationState('error');\n onValidationChange('error');\n const message = isValidURL(url) ? `URL ${url} is not whitelisted` : `URL ${url} is not a valid URL.`;\n\n setOwnValidationMessage(message);\n } else {\n setOwnValidationMessage(validationMessage);\n setCurrentValidationState(validationState);\n onValidationChange(validationState);\n }\n\n setIsWhitelisted(result.is_whitelisted);\n });\n }\n }, [url, validationMessage, validationState, onValidationChange]);\n\n const onUpdate = () => {\n triggerInput(urlInputRef.current.getInputDOMNode());\n checkIsWhitelisted();\n };\n\n useEffect(() => {\n const checkSuggestion = () => {\n if (url) {\n const suggestion = suggestRegexWhitelistUrl(url, urlType);\n\n if (typeof suggestion === 'object') {\n suggestion.then((result) => {\n setSuggestedUrl(result.regex);\n });\n } else {\n setSuggestedUrl(url);\n }\n }\n };\n\n const timer = setTimeout(() => checkSuggestion(), 250);\n\n return () => clearTimeout(timer);\n }, [url, urlType]);\n\n useEffect(() => {\n const timer = setTimeout(() => checkIsWhitelisted(), 250);\n\n return () => clearTimeout(timer);\n }, [url, validationState, checkIsWhitelisted]);\n\n const addButton = isWhitelistError() && !isWhitelisted ? : '';\n const helpMessage = <>{validationState === null ? ownValidationMessage : validationMessage} {addButton};\n const bsStyle = currentValidationState === '' ? null : currentValidationState;\n\n return (\n \n );\n};\n\nURLWhiteListInput.propTypes = {\n autofocus: PropTypes.bool,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n validationState: PropTypes.string,\n validationMessage: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n ]),\n url: PropTypes.string,\n onValidationChange: PropTypes.func,\n labelClassName: PropTypes.string,\n wrapperClassName: PropTypes.string,\n urlType: PropTypes.oneOf(['regex', 'literal']),\n};\n\nURLWhiteListInput.defaultProps = {\n autofocus: true,\n url: '',\n validationState: '',\n validationMessage: '',\n labelClassName: '',\n wrapperClassName: '',\n urlType: 'literal',\n onValidationChange: () => {},\n};\n\nexport default URLWhiteListInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled, { css } from 'styled-components';\n\nconst Toggle = styled.label(({ theme }) => css`\n display: flex;\n align-items: center;\n margin: 0;\n\n input {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n\n &:checked + .slider {\n background-color: ${theme.colors.variant.dark.default};\n\n &::before {\n transform: translate(16px, -50%);\n }\n }\n\n &:disabled + .slider {\n opacity: 0.5;\n cursor: not-allowed;\n\n &::before {\n background-color: ${theme.colors.variant.light.default};\n }\n }\n }\n\n .slider {\n box-sizing: border-box;\n margin: 0 9px;\n width: 36px;\n height: 22px;\n border-radius: 30px;\n background-color: ${theme.colors.gray[80]};\n box-shadow: inset 0 1px 3px 0 rgb(0 0 0 / 20%);\n display: inline-block;\n position: relative;\n cursor: pointer;\n\n &::before {\n transition: transform 75ms ease-in-out;\n content: '';\n display: block;\n width: 18px;\n height: 18px;\n background-color: ${theme.colors.brand.secondary};\n box-shadow: 0 2px 3px 0 rgb(0 0 0 / 25%), 0 2px 8px 0 rgb(32 37 50 / 16%);\n position: absolute;\n border-radius: 100%;\n top: 11px;\n transform: translate(2px, -50%);\n }\n }\n`);\n\nexport default Toggle;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport { Formik } from 'formik';\nimport { OrderedMap } from 'immutable';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport SearchFilterBanner from 'views/components/searchbar/SearchFilterBanner';\nimport type { SearchFilter } from 'components/event-definitions/event-definitions-types';\n\ntype Props = {\n filters: SearchFilter[],\n onChange: (filters: OrderedMap) => void,\n hideFiltersPreview?: (val: boolean) => void,\n};\n\nfunction SearchFiltersFormControls({ filters, onChange, hideFiltersPreview }: Props) {\n const searchFiltersPlugin = usePluginEntities('eventDefinitions.components.searchForm') ?? [];\n const pluggableControls = searchFiltersPlugin.map((controlFn) => controlFn()).filter((control) => !!control);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(() => hideFiltersPreview(!pluggableControls.length), []);\n\n const initialFilters = React.useMemo(() => {\n const searchFilters = OrderedMap(filters.map((filter) => ([\n filter.id || uuidv4(),\n { frontendId: filter.id || uuidv4(), ...filter },\n ])));\n\n return { searchFilters };\n }, [filters]);\n\n if (!pluggableControls.length) return hideFiltersPreview(true)} pluggableControls={pluggableControls} />;\n\n const SearchFiltersComponent = pluggableControls[0].component;\n\n const handleSearchFiltersChange = ({ searchFilters }: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formFilters = searchFilters.map(({ frontendId, ...filter }) => filter);\n\n onChange(formFilters);\n };\n\n return (\n \n \n \n );\n}\n\nSearchFiltersFormControls.defaultProps = {\n hideFiltersPreview: () => {},\n};\n\nexport default SearchFiltersFormControls;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport loadAsync from 'routing/loadAsync';\n\nconst SourceCodeEditor = loadAsync(() => import('./SourceCodeEditor'));\n\nexport { SourceCodeEditor };\nexport { default as Accordion } from './Accordion';\nexport { default as AccordionItem } from './AccordionItem';\nexport { default as Affix } from './Affix';\nexport { default as Autocomplete } from './Autocomplete/Autocomplete';\nexport { default as BrowserTime } from './BrowserTime';\nexport { default as BrandIcon } from './BrandIcon';\nexport { default as Center } from './Center';\nexport { default as Carousel } from 'components/common/carousel/Carousel';\nexport { default as ClipboardButton } from './ClipboardButton';\nexport { default as ColorPicker } from './ColorPicker';\nexport { default as ColorPickerPopover } from './ColorPickerPopover';\nexport { default as ConfirmDialog } from './ConfirmDialog';\nexport { default as ConfirmLeaveDialog } from './ConfirmLeaveDialog';\nexport { default as EntityDataTable } from './EntityDataTable';\nexport { default as ContentHeadRow } from './ContentHeadRow';\nexport { default as ControlledTableList } from './ControlledTableList';\nexport { default as CopyToClipboardCapture } from './CopyToClipboardCapture';\nexport { default as CountBadge } from './CountBadge';\nexport { default as DataTable } from './DataTable';\nexport { default as DatePicker } from './DatePicker';\nexport { default as DocumentTitle } from './DocumentTitle';\nexport { default as DropdownMenu } from './DropdownMenu';\nexport { default as DropdownSubmenu } from './DropdownSubmenu';\nexport { default as ElementDimensions } from './ElementDimensions';\nexport { default as EmptyEntity } from './EmptyEntity';\nexport { default as NoEntitiesExist } from './NoEntitiesExist';\nexport { default as NoSearchResult } from './NoSearchResult';\nexport { default as EnterprisePluginNotFound } from './EnterprisePluginNotFound';\nexport { default as EntityList } from './EntityList';\nexport { default as EntityListItem } from './EntityListItem';\nexport { default as ErrorAlert } from './ErrorAlert';\nexport { default as ExpandableList } from './ExpandableList';\nexport { default as ExpandableListItem } from './ExpandableListItem';\nexport { default as ExternalLink } from './ExternalLink';\nexport { default as ExternalLinkButton } from './ExternalLinkButton';\nexport { default as FlatContentRow } from './FlatContentRow';\nexport { default as FormikFormGroup } from './FormikFormGroup';\nexport { default as FormikInput } from './FormikInput';\nexport { default as FormSubmit } from './FormSubmit';\nexport { default as HasOwnership } from './HasOwnership';\nexport { default as HoverForHelp } from './HoverForHelp';\nexport { default as ISODurationInput } from './ISODurationInput';\nexport { default as Icon } from './Icon';\nexport { default as IconButton } from './IconButton';\nexport { default as IfPermitted } from './IfPermitted';\nexport { default as InputDescription } from './InputDescription';\nexport { default as InputOptionalInfo } from './InputOptionalInfo';\nexport { default as InputList } from './InputList';\nexport { default as InteractableModal } from './InteractableModal';\nexport { default as JSONValueInput } from './JSONValueInput';\nexport { default as KeyCapture } from './KeyCapture';\nexport { default as KeyValueTable } from './KeyValueTable';\nexport { default as LinkButton } from './LinkButton';\nexport { default as LinkToNode } from './LinkToNode';\nexport { default as ListingWithCount } from './ListingWithCount';\nexport { default as LoadingIndicator } from './LoadingIndicator';\nexport { default as LocaleSelect } from './LocaleSelect';\nexport { default as Markdown } from './Markdown';\nexport { default as MessageDetailsDefinitionList } from './MessageDetailsDefinitionList';\nexport { default as ModalSubmit } from './ModalSubmit';\nexport { default as MultiSelect } from './MultiSelect';\nexport { default as NestedForm } from './NestedForm';\nexport { default as OverlayTrigger } from './OverlayTrigger';\nexport { default as PageErrorOverview } from './PageErrorOverview';\nexport { default as PageHeader } from './PageHeader';\nexport { default as PageSizeSelect } from './PageSizeSelect';\nexport { default as PaginatedDataTable } from './PaginatedDataTable';\nexport { default as PaginatedItemOverview } from './PaginatedItemOverview/PaginatedItemOverview';\nexport { default as PaginatedList } from './PaginatedList';\nexport { default as Pagination } from './Pagination';\nexport { default as Pluralize } from './Pluralize';\nexport { default as ProgressBar } from './ProgressBar';\nexport { default as Portal } from './Portal';\nexport { default as QueryHelper } from './QueryHelper';\nexport { default as ReactGridContainer } from './ReactGridContainer';\nexport { default as ReadOnlyFormGroup } from './ReadOnlyFormGroup';\nexport { default as RelativeTime } from './RelativeTime';\nexport { default as ScrollButton } from './ScrollButton';\nexport { default as SearchForm } from './SearchForm';\nexport { default as Select } from './Select';\nexport { default as SelectPopover } from './SelectPopover';\nexport { default as SelectableList } from './SelectableList';\nexport { default as ShareButton } from './ShareButton';\nexport { default as SortableList } from './SortableList';\nexport { default as Spinner } from './Spinner';\nexport { default as TextOverflowEllipsis } from './TextOverflowEllipsis';\nexport { default as TimeUnit } from './TimeUnit';\nexport { default as TimeUnitInput } from './TimeUnitInput';\nexport { default as Timestamp } from './Timestamp';\nexport { default as TimezoneSelect } from './TimezoneSelect';\nexport { default as Tooltip } from './Tooltip';\nexport { default as TypeAheadDataFilter } from './TypeAheadDataFilter';\nexport { default as TypeAheadFieldInput } from './TypeAheadFieldInput';\nexport { default as TypeAheadInput } from './TypeAheadInput';\nexport { default as URLWhiteListFormModal } from './URLWhiteListFormModal';\nexport { default as URLWhiteListInput } from './URLWhiteListInput';\nexport { default as Wizard } from './Wizard';\nexport { default as SortIcon } from './SortIcon';\nexport { default as Toggle } from './Toggle';\nexport { default as SearchFiltersFormControls } from './SearchFiltersFormControls';\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport { Link, useLocation, useLinkClickHandler } from 'react-router-dom';\n\n// list of children which are being used for navigation and should receive the `active` class.\nconst NAV_CHILDREN = ['Button', 'NavItem'];\n\nconst _targetPathname = (target: string) => String(target).split(/[?#]/)[0];\n\nconst _setActiveClassName = (pathname: string, to: string, currentClassName: string, displayName: string, relativeActive: boolean) => {\n const targetPathname = _targetPathname(to);\n const isActive = relativeActive ? pathname.startsWith(targetPathname) : targetPathname === pathname;\n const isNavComponent = NAV_CHILDREN.includes(displayName);\n\n return isNavComponent && isActive\n ? `active ${currentClassName ?? ''}`\n : currentClassName;\n};\n\ntype ChildrenProps = {\n onClick: (e?: any) => void,\n className: string,\n href: string,\n disabled: boolean,\n};\ntype Props = {\n children: React.ReactElement,\n onClick?: () => unknown,\n to: string | { pathname: string },\n // if set the child component will receive the active class\n // when the part of the URL path matches the `to` prop.\n relativeActive?: boolean,\n};\n\nconst isLeftClickEvent = (e: React.MouseEvent) => (e.button === 0);\n\nconst isModifiedEvent = (e: React.MouseEvent) => !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n\nconst LinkContainer = ({ children, onClick, to: toProp, relativeActive, ...rest }: Props) => {\n const { pathname } = useLocation();\n const { props: { onClick: childrenOnClick, className, disabled }, type: { displayName } } = React.Children.only(children);\n const to = (typeof toProp === 'object' && 'pathname' in toProp) ? toProp.pathname : toProp;\n const childrenClassName = useMemo(() => _setActiveClassName(pathname, to, className, displayName, relativeActive),\n [pathname, to, className, displayName, relativeActive],\n );\n const handleClick = useLinkClickHandler(to);\n const _onClick = useCallback((e: React.MouseEvent) => {\n if (!isLeftClickEvent(e) || isModifiedEvent(e) || disabled) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (childrenOnClick) {\n childrenOnClick();\n }\n\n if (onClick) {\n onClick();\n }\n\n if (!disabled) {\n handleClick(e);\n }\n }, [disabled, childrenOnClick, onClick, handleClick]);\n\n return React.cloneElement(React.Children.only(children), {\n ...rest,\n className: childrenClassName,\n onClick: _onClick,\n disabled: !!disabled,\n href: disabled ? undefined : to,\n });\n};\n\nLinkContainer.defaultProps = {\n relativeActive: false,\n};\n\nexport {\n Link,\n LinkContainer,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport usePaginationQueryParameter from 'hooks/usePaginationQueryParameter';\n\nexport type PaginationQueryParameterObject = {\n pageSizes?: number[];\n};\n\nconst withPaginationQueryParameter = >>(Component: C, obj?: PaginationQueryParameterObject) => function WrappedComponent(props: any) {\n const result = usePaginationQueryParameter(obj?.pageSizes);\n\n return ;\n};\n\nexport default withPaginationQueryParameter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { Input } from 'components/bootstrap';\nimport type { BooleanField as BooleanFieldType } from 'components/configurationforms/types';\n\ntype Props = {\n autoFocus?: boolean,\n field: BooleanFieldType,\n onChange: (title: string, value: boolean, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value?: boolean,\n};\n\nconst BooleanField = ({ autoFocus, field, onChange, title, typeName, value }: Props) => {\n const handleChange = (event) => {\n const nextValue = getValueFromInput(event.target);\n\n onChange(title, nextValue);\n };\n\n return (\n \n );\n};\n\nBooleanField.propTypes = {\n autoFocus: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.bool,\n};\n\nBooleanField.defaultProps = {\n autoFocus: false,\n value: false,\n};\n\nexport default BooleanField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\ntype NumberFieldAttributes = 'only_negative' | 'only_positive' | 'is_port_number';\ntype TextFieldAttributes = 'is_password' | 'textarea' | 'is_sensitive';\ntype ListFieldAttributes = 'allow_create';\n\nexport type NumberField = {\n additional_info: {},\n attributes: Array,\n default_value: number,\n description: string,\n human_name: string,\n is_optional: boolean,\n position: number,\n type: 'number',\n};\n\nexport type TextField = {\n additional_info: {},\n attributes: Array,\n default_value: string,\n description: string,\n human_name: string,\n is_encrypted: boolean,\n is_optional: boolean,\n position: number,\n type: 'text',\n};\n\nexport type ListField = {\n additional_info: {\n values: {\n [key: string]: string,\n }\n },\n attributes: Array,\n default_value: Array,\n description: string,\n human_name: string,\n is_optional: boolean,\n position: number,\n type: 'list',\n};\n\nexport type DropdownField = {\n additional_info: {\n values: {\n [value: string]: string,\n }\n },\n attributes: [],\n default_value: string,\n description: string,\n human_name: string,\n is_optional: boolean,\n position: number,\n type: 'dropdown',\n};\n\nexport type BooleanField = {\n additional_info: {},\n attributes: [],\n default_value: boolean,\n description: string,\n human_name: string,\n is_optional: true,\n position: number,\n type: 'boolean',\n};\n\nexport type InlineBinaryField = {\n additional_info: {},\n attributes: Array,\n default_value: string,\n description: string,\n human_name: string,\n is_encrypted: boolean,\n is_optional: boolean,\n position: number,\n type: 'inline_binary',\n};\n\nexport type FieldValue = string | number | boolean | void | Array\n\nexport type EncryptedFieldValue = {\n set_value?: Value,\n is_set?: boolean,\n delete_value?: boolean,\n}\n\nexport const FIELD_TYPES_WITH_ENCRYPTION_SUPPORT = ['text', 'inline_binary'] as const;\n\nexport type ConfigurationFieldWithEncryption = TextField | InlineBinaryField;\n\nexport type ConfigurationField = BooleanField | DropdownField | InlineBinaryField | ListField | NumberField | TextField;\n\nexport type ConfigurationFieldValue = FieldValue | EncryptedFieldValue\n\nexport type ConfigurationFormData = {\n title?: string,\n type?: string,\n configuration: Configuration | {},\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { useState, useEffect, forwardRef, useImperativeHandle } from 'react';\n\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport { ConfigurationFormField, TitleField } from 'components/configurationforms';\n\nimport { FIELD_TYPES_WITH_ENCRYPTION_SUPPORT } from './types';\nimport type { ConfigurationFormData, ConfigurationField, ConfigurationFieldValue, EncryptedFieldValue, FieldValue, ConfigurationFieldWithEncryption } from './types';\n\ntype Props = {\n cancelAction: () => void,\n configFields?: {\n [key: string]: ConfigurationField,\n },\n children?: React.ReactNode,\n titleHelpText?: string,\n includeTitleField: boolean,\n submitAction: (data: ConfigurationFormData) => void,\n title: string | React.ReactNode | null,\n titleValue: string,\n typeName?: string,\n values: { [key:string]: any },\n wrapperComponent: React.ComponentType void,\n onSubmitForm: () => void,\n submitButtonText: string\n }>>,\n submitButtonText: string,\n}\n\nconst ConfigurationForm = forwardRef(({\n cancelAction,\n configFields,\n children,\n titleHelpText,\n includeTitleField,\n submitAction,\n title,\n titleValue: initialTitleValue,\n typeName,\n values: initialValues,\n wrapperComponent: WrapperComponent,\n submitButtonText,\n} : Props, ref: typeof ConfigurationForm) => {\n const [showConfigurationModal, setShowConfigurationModal] = useState(false);\n const [titleValue, setTitleValue] = useState(undefined);\n const [values, setValues] = useState<{[key:string]: any} | undefined>(undefined);\n const [fieldStates, setFieldStates] = useState<{[key:string]: any} | undefined>({});\n\n useEffect(() => {\n const defaultValues = {};\n\n if (configFields) {\n Object.keys(configFields).forEach((field) => {\n defaultValues[field] = configFields[field].default_value;\n });\n }\n\n setValues({ ...defaultValues, ...initialValues });\n setFieldStates({});\n }, [showConfigurationModal, configFields, initialValues]);\n\n useEffect(() => {\n setTitleValue(initialTitleValue);\n }, [initialTitleValue, showConfigurationModal]);\n\n const getFormData = (): ConfigurationFormData => {\n const data: ConfigurationFormData = {\n type: typeName,\n configuration: {},\n };\n\n if (includeTitleField) {\n data.title = titleValue;\n }\n\n Object.keys(configFields).forEach((fieldName) => {\n data.configuration[fieldName] = (values[fieldName] === undefined ? null : values[fieldName]);\n });\n\n return data;\n };\n\n const sortByPosOrOptionality = (x1, x2) => {\n const DEFAULT_POSITION = 100; // corresponds to ConfigurationField.java\n const x1pos = configFields[x1.name].position || DEFAULT_POSITION;\n const x2pos = configFields[x2.name].position || DEFAULT_POSITION;\n\n let diff = x1pos - x2pos;\n\n if (!diff) {\n const isOptionalToNumber = (optional: boolean) : number => (optional ? 1 : 0);\n\n diff = isOptionalToNumber(configFields[x1.name].is_optional) - isOptionalToNumber(configFields[x2.name].is_optional);\n }\n\n if (!diff) {\n // Sort equal fields stably\n diff = x1.pos - x2.pos;\n }\n\n return diff;\n };\n\n const fieldIsEncrypted = (configField: ConfigurationField) : boolean => {\n const fieldSupportsEncryption = FIELD_TYPES_WITH_ENCRYPTION_SUPPORT.includes(\n (configField.type as unknown as typeof FIELD_TYPES_WITH_ENCRYPTION_SUPPORT[number]),\n );\n\n if (!fieldSupportsEncryption) {\n return false;\n }\n\n return (configField as ConfigurationFieldWithEncryption).is_encrypted;\n };\n\n const handleEncryptedFieldsBeforeSubmit = (data): ConfigurationFormData => {\n const configurationEntries = Object.entries(data.configuration).map(([fieldName, fieldValue] : [string, ConfigurationFieldValue]) => {\n const configField = configFields[fieldName as string];\n const fieldState = fieldStates[fieldName as string];\n\n if (fieldIsEncrypted(configField) && !fieldState?.dirty && fieldValue && (fieldValue as EncryptedFieldValue).is_set !== undefined) {\n return [fieldName, { keep_value: true }];\n }\n\n return [fieldName, fieldValue];\n });\n\n return { ...data, configuration: Object.fromEntries(configurationEntries) };\n };\n\n const handleCancel = () => {\n setShowConfigurationModal(false);\n\n if (cancelAction) {\n cancelAction();\n }\n };\n\n const save = () => {\n const data = getFormData();\n\n submitAction(handleEncryptedFieldsBeforeSubmit(data));\n\n setShowConfigurationModal(false);\n };\n\n useImperativeHandle(ref, () => ({\n open() {\n setShowConfigurationModal(true);\n },\n getValue() {\n return getFormData();\n },\n }));\n\n const handleTitleChange = (_, value) => {\n setTitleValue(value);\n };\n\n const handleChange = (field: string, value: ConfigurationFieldValue, dirty: boolean = true) => {\n setValues({ ...values, ...{ [field]: value } });\n setFieldStates({ ...fieldStates, ...{ [field]: { dirty } } });\n };\n\n const renderConfigField = (configField, key, autoFocus) => {\n if (!values) return null;\n const value = values[key];\n\n return (\n \n );\n };\n\n let shouldAutoFocus = true;\n let titleElement;\n\n if (includeTitleField) {\n titleElement = (\n \n );\n\n shouldAutoFocus = false;\n }\n\n const sortedConfigFieldKeys = Object.keys(configFields).map((name, pos) => ({ name, pos })).sort(sortByPosOrOptionality);\n\n const renderedConfigFields = sortedConfigFieldKeys.map((key) => {\n const configField = renderConfigField(configFields[key.name], key.name, shouldAutoFocus);\n\n if (shouldAutoFocus) {\n shouldAutoFocus = false;\n }\n\n return configField;\n });\n\n return (\n \n
    \n \n {children}\n {titleElement}\n {renderedConfigFields}\n
    \n
    \n );\n});\n\nConfigurationForm.propTypes = {\n cancelAction: PropTypes.func,\n configFields: PropTypes.object,\n children: PropTypes.node,\n titleHelpText: PropTypes.string,\n includeTitleField: PropTypes.bool,\n submitAction: PropTypes.func.isRequired,\n title: PropTypes.node,\n titleValue: PropTypes.string,\n typeName: PropTypes.string,\n values: PropTypes.object,\n wrapperComponent: PropTypes.elementType,\n submitButtonText: PropTypes.string.isRequired,\n};\n\nConfigurationForm.defaultProps = {\n cancelAction: () => {},\n configFields: {},\n children: null,\n titleHelpText: '',\n title: null,\n includeTitleField: true,\n titleValue: '',\n typeName: undefined,\n values: {},\n wrapperComponent: BootstrapModalForm,\n};\n\nexport default ConfigurationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n BooleanField,\n DropdownField,\n EncryptedInlineBinaryField,\n ListField,\n NumberField,\n TextField,\n} from 'components/configurationforms';\nimport type { ConfigurationField, FieldValue, EncryptedFieldValue } from 'components/configurationforms/types';\n\ntype Props = {\n typeName: string,\n configField: ConfigurationField,\n configKey: string,\n configValue: FieldValue | EncryptedFieldValue,\n dirty: boolean,\n autoFocus: boolean,\n onChange: (field: string, value: FieldValue | EncryptedFieldValue, dirty?: boolean) => void,\n};\n\nconst ConfigurationFormField = ({ typeName, configField, configKey, configValue, dirty, autoFocus, onChange }: Props) => {\n const elementKey = `${typeName}-${configKey}`;\n\n switch (configField.type) {\n case 'text':\n return (\n }\n dirty={dirty}\n onChange={onChange}\n autoFocus={autoFocus} />\n );\n case 'number':\n return (\n \n );\n case 'boolean':\n return (\n \n );\n case 'dropdown':\n return (\n \n );\n case 'list':\n return (\n | string}\n onChange={onChange}\n autoFocus={autoFocus} />\n );\n case 'inline_binary':\n if (configField.is_encrypted) {\n return (\n }\n dirty={dirty}\n onChange={onChange}\n autoFocus={autoFocus} />\n );\n }\n\n return null;\n\n default:\n return null;\n }\n};\n\nConfigurationFormField.propTypes = {\n typeName: PropTypes.string.isRequired,\n configField: PropTypes.object.isRequired,\n configKey: PropTypes.string.isRequired,\n configValue: PropTypes.any,\n autoFocus: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n dirty: PropTypes.bool,\n};\n\nConfigurationFormField.defaultProps = {\n configValue: undefined,\n autoFocus: false,\n dirty: false,\n};\n\nexport default ConfigurationFormField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Well } from 'components/bootstrap';\n\nclass ConfigurationWell extends React.Component {\n PASSWORD_PLACEHOLDER = '********';\n\n static propTypes = {\n id: PropTypes.string.isRequired,\n configuration: PropTypes.any,\n typeDefinition: PropTypes.object,\n };\n\n static defaultProps = {\n configuration: undefined,\n typeDefinition: {},\n };\n\n _formatRegularField = (value, key) => {\n const { id } = this.props;\n let finalValue;\n\n if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {\n finalValue = {''};\n } else {\n finalValue = Array.isArray(value) ? value.join(', ') : String(value);\n }\n\n return (
  • {key}:
    {finalValue}
  • );\n };\n\n _formatEncryptedField = (value, key) => {\n const { id } = this.props;\n let finalValue;\n\n if (!value.is_set) {\n finalValue = {''};\n } else {\n finalValue = this.PASSWORD_PLACEHOLDER;\n }\n\n return (
  • {key}:
    {finalValue}
  • );\n };\n\n _formatPasswordField = (value, key) => {\n const { id } = this.props;\n\n return (\n
  • \n
    {key}:
    \n
    {this.PASSWORD_PLACEHOLDER}
    \n
  • \n );\n };\n\n _formatConfiguration = (id, config, typeDefinition) => {\n if (!config) {\n return ('');\n }\n\n const formattedItems = Object.keys(config).sort().map((key) => {\n const value = config[key];\n const requestedConfiguration = (typeDefinition && typeDefinition.requested_configuration ? typeDefinition.requested_configuration[key] : undefined);\n\n if (requestedConfiguration\n && (requestedConfiguration.attributes.indexOf('is_password') > -1 || requestedConfiguration.attributes.indexOf('is_sensitive') > -1)) {\n return this._formatPasswordField(value, key);\n }\n\n if (requestedConfiguration && requestedConfiguration.is_encrypted) {\n return this._formatEncryptedField(value, key);\n }\n\n return this._formatRegularField(value, key);\n });\n\n if (formattedItems.length < 1) {\n formattedItems.push(
  • -- no configuration --
  • );\n }\n\n return (\n
      \n {formattedItems}\n
    \n );\n };\n\n render() {\n const { id, configuration, typeDefinition } = this.props;\n\n return (\n \n {this._formatConfiguration(id, configuration, typeDefinition)}\n \n );\n }\n}\n\nexport default ConfigurationWell;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport type { ConfigurationField } from 'components/configurationforms/types';\n\nexport const hasAttribute = (array: Array, attribute: string): boolean => array.find((e) => e.toLowerCase() === attribute.toLowerCase()) !== undefined;\n\nexport const optionalMarker = (field: ConfigurationField): React.ReactNode | null => (field.is_optional && field.type !== 'boolean' ? (optional) : null);\n\nexport default {\n hasAttribute,\n optionalMarker,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { DropdownField as DropdownFieldType } from 'components/configurationforms/types';\nimport { Input } from 'components/bootstrap';\nimport { optionalMarker } from 'components/configurationforms/FieldHelpers';\n\ntype Props = {\n autoFocus?: boolean,\n field: DropdownFieldType,\n onChange: (title: string, value: string, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value: string,\n addPlaceholder: boolean,\n};\n\nconst DropdownField = ({ autoFocus, field, onChange, title, typeName, value, addPlaceholder }: Props) => {\n const formatOption = (key, displayValue, disabled = false) => (\n \n );\n\n const handleChange = (event) => {\n onChange(title, event.target.value);\n };\n\n const options = Object.entries(field.additional_info.values).map(([k, v]) => formatOption(k, v));\n\n if (addPlaceholder) {\n options.unshift(formatOption('', `Select ${field.human_name || title}`, true));\n }\n\n const label = <>{field.human_name} {optionalMarker(field)};\n\n return (\n \n {options}\n \n );\n};\n\nDropdownField.propTypes = {\n autoFocus: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.string,\n addPlaceholder: PropTypes.bool,\n};\n\nDropdownField.defaultProps = {\n autoFocus: false,\n addPlaceholder: false,\n value: '',\n};\n\nexport default DropdownField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Button, Input } from 'components/bootstrap';\nimport { optionalMarker } from 'components/configurationforms/FieldHelpers';\n\nimport type { EncryptedFieldValue, InlineBinaryField as InlineBinaryFieldType } from './types';\n\ntype Props = {\n autoFocus: boolean,\n field: InlineBinaryFieldType,\n dirty: boolean,\n onChange: (title: string, value: any, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value?: EncryptedFieldValue,\n};\n\nconst FileContent = styled.span`\n vertical-align: middle;\n`;\n\nconst EncryptedInlineBinaryField = ({ field, title, typeName, dirty, onChange, value, autoFocus }: Props) => {\n const [fileName, setFileName] = useState(undefined);\n const [isResetted, setIsResetted] = useState(false);\n const isValuePresent = value.is_set;\n const isRequired = !field.is_optional;\n const showReadOnly = !dirty && isValuePresent;\n const fieldId = `${typeName}-${title}`;\n\n const labelContent = <>{field.human_name} {optionalMarker(field)};\n\n const handleFileRead = (fileReader: FileReader, file) => {\n const dataUrl = fileReader.result;\n\n if (dataUrl && typeof dataUrl === 'string') {\n const dataString = dataUrl.replace(/^data:[\\s\\S]+\\/[\\s\\S]+;base64,/, '');\n setFileName(file.name);\n\n if (field.is_encrypted) {\n onChange(title, { set_value: dataString });\n } else {\n onChange(title, dataString);\n }\n }\n };\n\n const handleReset = () => {\n setIsResetted(true);\n onChange(title, { delete_value: true });\n };\n\n const handleUndoReset = () => {\n setIsResetted(false);\n setFileName(undefined);\n onChange(title, { is_set: true }, false);\n };\n\n const resetButton = () => {\n if (isValuePresent) {\n return (\n \n );\n }\n\n return null;\n };\n\n const undoResetButton = () => {\n if (!isResetted) return null;\n\n return (\n \n );\n };\n\n const removeButton = () => {\n if (fileName) {\n return (\n \n );\n }\n\n return null;\n };\n\n const handleFileUpload = (file: File) => {\n const fileReader = new FileReader();\n\n fileReader.onloadend = (_) => handleFileRead(fileReader, file);\n\n if (file) {\n fileReader.readAsDataURL(file);\n }\n };\n\n const readOnlyFileInput = () => (\n \n );\n\n const fileInput = () => (\n (fileName) ? (\n {removeButton()}{undoResetButton()}}>\n {fileName}\n \n ) : (\n handleFileUpload(e.target.files[0])}\n autoFocus={autoFocus} />\n )\n );\n\n return (\n showReadOnly ? readOnlyFileInput() : fileInput());\n};\n\nEncryptedInlineBinaryField.propTypes = {\n autoFocus: PropTypes.bool,\n dirty: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.object,\n};\n\nEncryptedInlineBinaryField.defaultProps = {\n autoFocus: false,\n dirty: false,\n value: {},\n};\n\nexport default EncryptedInlineBinaryField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { ListField as ListFieldType } from 'components/configurationforms/types';\nimport { MultiSelect } from 'components/common';\nimport { Input } from 'components/bootstrap';\nimport { optionalMarker } from 'components/configurationforms/FieldHelpers';\n\ntype Props = {\n autoFocus?: boolean,\n field: ListFieldType,\n onChange: (title: string, value: Array, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value: Array | string,\n};\n\nconst ListField = ({ autoFocus, field, onChange, title, typeName, value }: Props) => {\n const handleChange = (nextValue) => {\n const values = (nextValue === '' ? [] : nextValue.split(','));\n\n onChange(title, values);\n };\n\n const isRequired = !field.is_optional;\n const allowCreate = field.attributes.includes('allow_create');\n const options = field.additional_info?.values || {};\n const formattedOptions = Object.entries(options)\n .map(([label, optionValue]) => ({ value: optionValue, label: label }));\n\n const label = <>{field.human_name} {optionalMarker(field)};\n\n const selectValue = Array.isArray(value) ? value.join(',') : value;\n\n return (\n \n \n \n );\n};\n\nListField.propTypes = {\n autoFocus: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n};\n\nListField.defaultProps = {\n autoFocus: false,\n value: undefined,\n};\n\nexport default ListField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Input from 'components/bootstrap/Input';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { optionalMarker } from 'components/configurationforms/FieldHelpers';\n\nimport type { NumberField as NumberFieldType } from './types';\n\ntype Props = {\n autoFocus?: boolean,\n field: NumberFieldType,\n onChange: (title: string, value: number, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value: number,\n};\n\nconst NumberField = ({ autoFocus, field, onChange, title, typeName, value }: Props) => {\n const _getDefaultValidationSpecs = () => ({ min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER });\n\n const _mapValidationAttribute = (attribute) => {\n const { min, max } = _getDefaultValidationSpecs();\n\n switch (attribute.toUpperCase()) {\n case 'ONLY_NEGATIVE': return { min: min, max: -1 };\n case 'ONLY_POSITIVE': return { min: 0, max: max };\n case 'IS_PORT_NUMBER': return { min: 0, max: 65535 };\n default: return { min, max };\n }\n };\n\n const validationSpec = () => {\n const validationAttributes = field.attributes.map(_mapValidationAttribute);\n\n if (validationAttributes.length > 0) {\n // The server may return more than one validation attribute, but it doesn't make sense to use more\n // than one validation for a number field, so we return the first one\n return validationAttributes[0];\n }\n\n return _getDefaultValidationSpecs();\n };\n\n const handleChange = ({ target }) => {\n const numericValue = getValueFromInput(target);\n\n onChange(title, numericValue);\n };\n\n const isRequired = !field.is_optional;\n const validationSpecs = validationSpec();\n\n const label = <>{field.human_name} {optionalMarker(field)};\n\n return (\n \n );\n};\n\nNumberField.propTypes = {\n autoFocus: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.number,\n};\n\nNumberField.defaultProps = {\n autoFocus: false,\n value: 0,\n};\n\nexport default NumberField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { Button, Input } from 'components/bootstrap';\nimport { hasAttribute, optionalMarker } from 'components/configurationforms/FieldHelpers';\nimport { getValueFromInput } from 'util/FormsUtils';\n\nimport type { TextField as TextFieldType, EncryptedFieldValue } from './types';\n\ntype Props = {\n autoFocus: boolean,\n field: TextFieldType,\n dirty: boolean,\n onChange: (title: string, value: string | EncryptedFieldValue, dirty?: boolean) => void,\n title: string,\n typeName: string,\n value?: string | EncryptedFieldValue,\n};\n\nconst TextField = ({ field, title, typeName, dirty, onChange, value, autoFocus }: Props) => {\n const isRequired = !field.is_optional;\n const showReadOnlyEncrypted = field.is_encrypted && !dirty && typeof value !== 'string' && value.is_set;\n const fieldType = (!hasAttribute(field.attributes, 'textarea') && (hasAttribute(field.attributes, 'is_password') || showReadOnlyEncrypted) ? 'password' : 'text');\n const fieldId = `${typeName}-${title}`;\n const [isResetted, setIsResetted] = useState(false);\n\n const labelContent = <>{field.human_name} {optionalMarker(field)};\n\n const getFieldValue = () => {\n if (showReadOnlyEncrypted) return 'encrypted placeholder';\n\n if (typeof value === 'string') return value;\n\n if (value && value.set_value) {\n return value.set_value;\n }\n\n return '';\n };\n\n const handleChange = ({ target }) => {\n const inputValue = getValueFromInput(target);\n\n if (field.is_encrypted) {\n onChange(title, { set_value: inputValue });\n } else {\n onChange(title, inputValue);\n }\n };\n\n const handleReset = () => {\n setIsResetted(true);\n onChange(title, { delete_value: true });\n };\n\n const handleUndoReset = () => {\n setIsResetted(false);\n onChange(title, { is_set: true }, false);\n };\n\n const buttonAfter = () => {\n if (isResetted) {\n return (\n \n );\n }\n\n if (!showReadOnlyEncrypted) {\n return null;\n }\n\n return (\n \n );\n };\n\n if (hasAttribute(field.attributes, 'textarea')) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nTextField.propTypes = {\n autoFocus: PropTypes.bool,\n dirty: PropTypes.bool,\n field: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\n\nTextField.defaultProps = {\n autoFocus: false,\n dirty: false,\n value: '',\n};\n\nexport default TextField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { TextField } from 'components/configurationforms';\n\nimport type { TextField as TextFieldType } from './types';\n\ntype Props = {\n helpText?: string,\n onChange: (title: string, value: string, dirty?: boolean) => void,\n typeName: string,\n value: string,\n};\n\nconst TitleField = ({ typeName, helpText, value, onChange }: Props) => {\n const titleField: TextFieldType = {\n is_optional: false,\n attributes: [],\n human_name: 'Title',\n description: helpText,\n is_encrypted: false,\n additional_info: {},\n default_value: '',\n position: 0,\n type: 'text',\n };\n\n return (\n \n );\n};\n\nTitleField.propTypes = {\n helpText: PropTypes.string,\n onChange: PropTypes.func,\n typeName: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n\nTitleField.defaultProps = {\n helpText: '',\n onChange: () => {},\n value: '',\n};\n\nexport default TitleField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nenum ConfigurationType {\n SEARCHES_CLUSTER_CONFIG = 'org.graylog2.indexer.searches.SearchesClusterConfig',\n MESSAGE_PROCESSORS_CONFIG = 'org.graylog2.messageprocessors.MessageProcessorsConfig',\n SIDECAR_CONFIG = 'org.graylog.plugins.sidecar.system.SidecarConfiguration',\n EVENTS_CONFIG = 'org.graylog.events.configuration.EventsConfiguration',\n INDEX_SETS_DEFAULTS_CONFIG = 'org.graylog2.configuration.IndexSetsDefaultConfiguration',\n URL_WHITELIST_CONFIG = 'org.graylog2.system.urlwhitelist.UrlWhitelist',\n PERMISSIONS_CONFIG = 'org.graylog2.users.UserAndTeamsConfig',\n USER_CONFIG = 'org.graylog2.users.UserConfiguration',\n CERTIFICATE_RENEWAL_POLICY_CONFIG = 'org.graylog2.plugin.certificates.RenewalPolicy',\n}\nexport default ConfigurationType;\nexport { ConfigurationType };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport map from 'lodash/map';\nimport styled from 'styled-components';\n\nimport Input from 'components/bootstrap/Input';\n// Explicit import to fix eslint import/no-cycle\nimport Select from 'components/common/Select';\nimport Icon from 'components/common/Icon';\nimport { Button, Table } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport type { Url, WhiteListConfig } from 'stores/configurations/ConfigurationsStore';\nimport ToolsStore from 'stores/tools/ToolsStore';\nimport { isValidURL } from 'util/URLUtils';\nimport generateId from 'logic/generateId';\n\ntype ValidationResult = {\n title: { valid: boolean },\n value: { valid: boolean },\n};\n\nconst StyledTable = styled(Table)`\n margin-top: 10px;\n`;\n\nconst validateUrlEntry = async (idx: number, entry: Url, callback?: (...any) => void): Promise => {\n const validationResult = {\n title: { valid: false },\n value: { valid: false },\n };\n\n validationResult.title = entry.title.trim().length <= 0 ? { valid: false } : { valid: true };\n\n let valueValidation = { valid: false };\n\n if (entry.type === 'literal') {\n valueValidation = isValidURL(entry.value) ? { valid: true } : { valid: false };\n } else if (entry.type === 'regex' && entry.value.trim().length > 0) {\n valueValidation = (await ToolsStore.testRegexValidity(entry.value)).is_valid ? { valid: true } : { valid: false };\n }\n\n validationResult.value = valueValidation;\n\n if (typeof callback === 'function') {\n callback(idx, entry, validationResult);\n }\n\n return validationResult;\n};\n\nconst debouncedValidateUrlEntry = debounce(validateUrlEntry, 200);\n\ntype Props = {\n urls: Array,\n disabled: boolean,\n onUpdate: (config: WhiteListConfig, valid: boolean) => void,\n newEntryId?: string,\n};\n\nconst UrlWhiteListForm = ({ urls, onUpdate, disabled, newEntryId }: Props) => {\n const literal = 'literal';\n const regex = 'regex';\n const options = [{ value: literal, label: 'Exact match' }, { value: regex, label: 'Regex' }];\n // eslint-disable-next-line prefer-const\n let inputs = {};\n const [config, setConfig] = useState({ entries: urls, disabled });\n const [validationState, setValidationState] = useState({ errors: [] });\n const isInitialRender = useRef(false);\n\n const _onAdd = (event: Event) => {\n event.preventDefault();\n setConfig({ ...config, entries: [...config.entries, { id: generateId(), title: '', value: '', type: literal }] });\n };\n\n const _onRemove = (event: MouseEvent, idx: number) => {\n event.preventDefault();\n // eslint-disable-next-line prefer-const\n let stateUpdate = cloneDeep(config);\n const validationUpdate = cloneDeep(validationState);\n\n validationUpdate.errors[idx] = null;\n setValidationState(validationUpdate);\n stateUpdate.entries.splice(idx, 1);\n setConfig(stateUpdate);\n };\n\n const hasValidationErrors = useCallback(() => {\n let isValid = true;\n\n if (validationState.errors.length > 0\n && validationState.errors.find(((el) => (el && el.title && el.title.valid) === false\n || (el && el.value && el.value.valid === false)))) {\n isValid = false;\n }\n\n return isValid;\n }, [validationState]);\n\n const _updateState = (idx: number, nextEntry: Url) => {\n const stateUpdate = cloneDeep(config);\n stateUpdate.entries[idx] = nextEntry;\n setConfig(stateUpdate);\n };\n\n const _updateValidationError = (idx: number, nextEntry: Url, entryValidation: ValidationResult) => {\n setValidationState((prevValidationState) => {\n const nextValidationState = cloneDeep(prevValidationState);\n nextValidationState.errors[idx] = entryValidation;\n\n return nextValidationState;\n });\n\n _updateState(idx, nextEntry);\n };\n\n const _validate = async (name: string, idx: number, value: string): Promise => {\n const nextEntry = { ...config.entries[idx], [name]: value };\n await debouncedValidateUrlEntry(idx, nextEntry, _updateValidationError);\n };\n\n const _onInputChange = (event: React.ChangeEvent, idx: number) => {\n _validate(event.target.name, idx, getValueFromInput(event.target));\n };\n\n const _onUpdateType = (idx: number, type: string) => {\n _validate('type', idx, type);\n };\n\n const _getErrorMessage = (type: string) => (type === regex ? 'Not a valid Java regular expression' : 'Not a valid URL');\n\n const _getSummary = () => (config.entries.map((url, idx) => (\n \n {idx + 1}\n \n { inputs[`title${idx}`] = elem; }}\n help={validationState.errors[idx] && validationState.errors[idx].title && !validationState.errors[idx].title.valid ? 'Required field' : null}\n name=\"title\"\n bsStyle={validationState.errors[idx] && validationState.errors[idx].title && !validationState.errors[idx].title.valid ? 'error' : null}\n onChange={(event) => _onInputChange(event, idx)}\n defaultValue={url.title}\n required />\n \n \n { inputs[`value${idx}`] = elem; }}\n help={validationState.errors[idx] && validationState.errors[idx].value && !validationState.errors[idx].value.valid ? _getErrorMessage(url.type) : null}\n name=\"value\"\n bsStyle={validationState.errors[idx] && validationState.errors[idx].value && !validationState.errors[idx].value.valid ? 'error' : null}\n onChange={(event) => _onInputChange(event, idx)}\n defaultValue={url.value}\n required />\n \n \n \n setConfig({ ...config, disabled: !config.disabled })}\n help=\"Disable the whitelist functionality. Warning: Disabling this option will allow users to enter any URL in Graylog entities, which may pose a security risk.\" />\n \n \n \n \n #\n Title\n URL\n Type\n Actions\n \n \n \n {_getSummary()}\n \n \n \n \n );\n};\n\nUrlWhiteListForm.propTypes = {\n urls: PropTypes.array,\n disabled: PropTypes.bool,\n onUpdate: PropTypes.func,\n newEntryId: PropTypes.string,\n};\n\nUrlWhiteListForm.defaultProps = {\n urls: [],\n disabled: false,\n onUpdate: () => {},\n newEntryId: undefined,\n};\n\nexport default UrlWhiteListForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport chroma from 'chroma-js';\n\nimport { Col, Jumbotron, Row } from 'components/bootstrap';\n\nconst H1 = styled.h1(({ theme }) => css`\n font-size: ${theme.fonts.size.extraLarge};\n margin-bottom: 15px;\n`);\n\nconst ContainerRow = styled(Row)`\n height: 82vh;\n`;\n\nconst StyledErrorJumbotron = styled(Jumbotron)(({ theme }) => css`\n background-color: ${chroma(theme.colors.global.contentBackground).alpha(0.8).css()};\n text-align: center;\n`);\n\nconst ErrorJumbotron = ({ children, title }) => (\n \n \n \n

    {title}

    \n {children}\n
    \n \n
    \n);\n\nErrorJumbotron.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default ErrorJumbotron;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle, css } from 'styled-components';\n\nimport NotFoundBackgroundImage from 'assets/not-found-bg.jpg';\nimport PageContentLayout from 'components/layout/PageContentLayout';\nimport DocumentTitle from 'components/common/DocumentTitle';\nimport ErrorJumbotron from 'components/errors/ErrorJumbotron';\n\nconst generateStyles = () => css<{ backgroundImage: string }>`\n body {\n background: url(${({ backgroundImage }) => backgroundImage}) no-repeat center center fixed;\n background-size: cover;\n }\n`;\n\nconst ErrorMessage = styled.div(({ theme }) => css`\n margin-left: auto;\n margin-right: auto;\n text-align: left;\n\n dt {\n font-size: ${theme.fonts.size.body};\n font-weight: normal;\n overflow: auto;\n }\n\n p {\n font-size: inherit;\n }\n`);\n\ntype Props = {\n backgroundImage?: string,\n children?: React.ReactNode,\n displayPageLayout: boolean,\n description: React.ReactNode,\n title: string,\n};\n\nconst ErrorPageStyles = createGlobalStyle`\n ${generateStyles()}\n`;\n\nconst ErrorPage = ({ children, title, description, backgroundImage, displayPageLayout }: Props) => {\n const PageLayoutComponent = displayPageLayout ? PageContentLayout : React.Fragment;\n\n return (\n \n \n \n \n {description}\n {children && (\n \n {children}\n \n )}\n \n \n \n );\n};\n\nErrorPage.propTypes = {\n children: PropTypes.node,\n description: PropTypes.node.isRequired,\n displayPageLayout: PropTypes.bool,\n title: PropTypes.string.isRequired,\n backgroundImage: PropTypes.string,\n};\n\nErrorPage.defaultProps = {\n children: undefined,\n displayPageLayout: true,\n backgroundImage: NotFoundBackgroundImage,\n};\n\nexport default ErrorPage;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./HelpPanel.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./HelpPanel.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Panel } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport styles from './HelpPanel.css';\n\nconst IconHeader = styled(Icon)`\n margin-right: 9px;\n`;\n\nconst ConditionalCollapse = ({ condition, wrapper, children }) => (condition ? wrapper(children) : children);\n\nexport const HelpPanel = ({ bsStyle, children, className, collapsible, header, title, defaultExpanded }) => {\n const defaultHeader =

    {title}

    ;\n\n return (\n \n \n \n {header || defaultHeader}\n \n \n {wrapChild}}>\n \n {children}\n \n \n \n );\n};\n\nHelpPanel.propTypes = {\n bsStyle: PropTypes.oneOf(['success', 'warning', 'danger', 'info', 'default', 'primary']),\n children: PropTypes.node,\n className: PropTypes.string,\n collapsible: PropTypes.bool,\n header: PropTypes.node,\n title: PropTypes.string,\n defaultExpanded: PropTypes.bool,\n};\n\nHelpPanel.defaultProps = {\n bsStyle: 'info',\n children: undefined,\n className: '',\n collapsible: false,\n header: undefined,\n title: '',\n defaultExpanded: false,\n};\n\nexport default HelpPanel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport { Panel, Input } from 'components/bootstrap';\nimport Select from 'components/common/Select';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport Spinner from 'components/common/Spinner';\nimport type { LookupTable } from 'logic/lookup-tables/types';\n\nconst StyledInlineCode = styled('code')`\n margin: 0 0.25em;\n white-space: nowrap;\n`;\n\ntype Props = {\n onChange: (fieldName: string, value: string) => void\n lookupTables: Array\n identifier: string | number,\n defaultExpandHelp?: boolean,\n parameter?: {\n lookupTable?: string,\n key?: string,\n defaultValue?: string\n name?: string,\n },\n validationState?: {\n lookupTable?: [string, string],\n key?: [string, string],\n }\n};\n\nconst LookupTableParameterEdit = ({\n validationState,\n onChange,\n lookupTables,\n identifier,\n parameter,\n defaultExpandHelp,\n}: Props) => {\n const { lookupTable, key: tableKey, defaultValue, name } = parameter;\n const parameterSyntax = `$${name}$`;\n\n const _handleChange = (fieldName: string) => (value) => {\n onChange(fieldName, value);\n };\n\n const _handleInputChange = (attributeName: string) => ({ target: { value } }: React.ChangeEvent) => _handleChange(attributeName)(value);\n\n if (!lookupTables) {\n return ;\n }\n\n const lookupTableOptions = lookupTables.sort((lt1, lt2) => naturalSortIgnoreCase(lt1.title, lt2.title))\n .map((table) => ({ label: table.title, value: table.name }));\n\n return (\n <>\n \n \n \n\n \n \n \n How to use lookup table parameters\n \n \n \n \n
    General Usage
    \n

    \n After declaring it, the parameter\n {parameterSyntax}\n in your query, will be replaced with the list of results from the lookup table.\n The list of results will be presented in the form of a Lucene BooleanQuery. E.g.:\n ("foo" OR "bar" OR "baz")\n

    \n
    Behaviour on empty lookup result list
    \n

    \n The event definition query is only executed if a value for the parameter is present.\n If the lookup result is empty, the execution will be skipped and treated as if the Search Query found\n no messages. If an execution is desired a Default Value that yields the desired search result\n needs to be provided. For example, (depending on the use case) a wildcard like\n *\n can be a meaningful Default Value.\n

    \n
    Limitations
    \n

    \n Please note that maximum number of supported results is 1024. If the lookup table returns\n more results, the query is not executed.\n

    \n
    \n
    \n
    \n \n );\n};\n\nLookupTableParameterEdit.defaultProps = {\n parameter: {},\n validationState: {},\n defaultExpandHelp: true,\n};\n\nexport default LookupTableParameterEdit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\n\nimport LookupTableParameterEdit from 'components/lookup-table-parameters/LookupTableParameterEdit';\nimport { Button, BootstrapModalForm } from 'components/bootstrap';\nimport type { LookupTable } from 'logic/lookup-tables/types';\nimport type { LookupTableParameterJson } from 'views/logic/parameters/LookupTableParameter';\nimport type LookupTableParameter from 'views/logic/parameters/LookupTableParameter';\n\ntype Props = {\n queryParameters: Array,\n lookupTables: Array,\n onChange: (newQueryParameters: Array) => void,\n queryParameter: LookupTableParameter,\n embryonic: boolean,\n}\n\ntype State = {\n showModal: boolean,\n queryParameter: LookupTableParameter,\n validation: {\n lookupTable?: string,\n key?: string,\n },\n}\n\nclass EditQueryParameterModal extends React.Component {\n static propTypes = {\n queryParameters: PropTypes.array.isRequired,\n queryParameter: PropTypes.object.isRequired,\n lookupTables: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n embryonic: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const { queryParameter } = this.props;\n\n this.state = {\n showModal: false,\n queryParameter,\n validation: {},\n };\n }\n\n openModal = () => {\n this.setState({ showModal: true });\n };\n\n _cleanState = () => {\n const { queryParameter } = this.props;\n\n this.setState({ queryParameter, showModal: false });\n };\n\n _saved = () => {\n const { queryParameter } = this.state;\n\n if (!this._validate(queryParameter)) {\n return;\n }\n\n this.propagateChanges();\n this._cleanState();\n };\n\n propagateChanges = () => {\n const { queryParameters, onChange, queryParameter: prevQueryParameter } = this.props;\n const { queryParameter } = this.state;\n const newQueryParameters = [...queryParameters];\n const index = queryParameters.findIndex((p) => p.name === prevQueryParameter.name);\n\n if (index < 0) {\n throw new Error(`Query parameter \"${queryParameter.name}\" not found`);\n }\n\n newQueryParameters[index] = queryParameter.toJSON();\n onChange(newQueryParameters);\n };\n\n handleParameterChange = (key, value) => {\n const { queryParameter } = this.state;\n const nextQueryParameter = queryParameter.toBuilder()[key](value).build();\n\n this.setState({ queryParameter: nextQueryParameter });\n };\n\n _validate = (queryParameter) => {\n const newValidation: State['validation'] = {};\n\n if (!queryParameter.lookupTable) {\n newValidation.lookupTable = 'Cannot be empty';\n }\n\n if (!queryParameter.key) {\n newValidation.key = 'Cannot be empty';\n }\n\n this.setState({ validation: newValidation });\n\n return isEmpty(newValidation);\n };\n\n render() {\n const { lookupTables, embryonic } = this.props;\n const { queryParameter, validation, showModal } = this.state;\n\n const validationState: {\n lookupTable?: [string, string],\n key?: [string, string],\n } = {\n lookupTable: validation.lookupTable ? ['error', validation.lookupTable] : undefined,\n key: validation.key ? ['error', validation.key] : undefined,\n };\n\n return (\n <>\n \n\n \n \n \n \n );\n }\n}\n\nexport default EditQueryParameterModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport * as React from 'react';\nimport { useCallback, useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport camelCase from 'lodash/camelCase';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport defaultTo from 'lodash/defaultTo';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport merge from 'lodash/merge';\nimport memoize from 'lodash/memoize';\nimport max from 'lodash/max';\nimport union from 'lodash/union';\nimport moment from 'moment';\nimport { OrderedMap } from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport * as FormsUtils from 'util/FormsUtils';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport FormWarningsContext from 'contexts/FormWarningsContext';\nimport { useStore } from 'stores/connect';\nimport Store from 'logic/local-storage/Store';\nimport { MultiSelect, TimeUnitInput, SearchFiltersFormControls } from 'components/common';\nimport Query from 'views/logic/queries/Query';\nimport type { RelativeTimeRangeWithEnd, ElasticsearchQueryString } from 'views/logic/queries/Query';\nimport Search from 'views/logic/search/Search';\nimport { extractDurationAndUnit } from 'components/common/TimeUnitInput';\nimport { Alert, ButtonToolbar, ControlLabel, FormGroup, HelpBlock, Input } from 'components/bootstrap';\nimport RelativeTime from 'components/common/RelativeTime';\nimport type { LookupTableParameterJson } from 'views/logic/parameters/LookupTableParameter';\nimport LookupTableParameter from 'views/logic/parameters/LookupTableParameter';\nimport { LookupTablesActions, LookupTablesStore } from 'stores/lookup-tables/LookupTablesStore';\nimport validateQuery from 'views/components/searchbar/queryvalidation/validateQuery';\nimport generateId from 'logic/generateId';\nimport parseSearch from 'views/logic/slices/parseSearch';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport type User from 'logic/users/User';\nimport useUserDateTime from 'hooks/useUserDateTime';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport type { QueryValidationState } from 'views/components/searchbar/queryvalidation/types';\nimport { indicesInWarmTier, isSearchingWarmTier } from 'views/components/searchbar/queryvalidation/warmTierValidation';\nimport type { FiltersType } from 'views/types';\n\nimport EditQueryParameterModal from '../event-definition-form/EditQueryParameterModal';\nimport commonStyles from '../common/commonStyles.css';\n\nexport const PLUGGABLE_CONTROLS_HIDDEN_KEY = 'pluggableSearchBarControlsAreHidden';\nexport const TIME_UNITS = ['HOURS', 'MINUTES', 'SECONDS'];\ntype LookupTableParameterJsonEmbryonic = Partial & {\n embryonic?: boolean,\n}\nconst LOOKUP_PERMISSIONS = [\n 'lookuptables:read',\n];\n\nconst buildNewParameter = (name: string): LookupTableParameterJsonEmbryonic => ({\n name: name,\n embryonic: true,\n type: 'lut-parameter-v1',\n data_type: 'any',\n title: 'new title',\n});\n\ntype EventDefinitionConfig = $PropertyType;\n\ntype Props = {\n currentUser: User,\n eventDefinition: EventDefinition,\n onChange: (name: string, config: EventDefinitionConfig) => void,\n streams: Array,\n validation: { errors: { [key: string]: Array } }\n}\n\nconst FilterForm = ({\n currentUser,\n eventDefinition,\n onChange,\n streams,\n validation,\n} : Props) => {\n const { execute_every_ms: executeEveryMs, search_within_ms: searchWithinMs } = eventDefinition.config;\n const [currentConfig, setCurrentConfig] = useState(eventDefinition.config);\n const searchWithin = extractDurationAndUnit(searchWithinMs, TIME_UNITS);\n const executeEvery = extractDurationAndUnit(executeEveryMs, TIME_UNITS);\n const { userTimezone } = useUserDateTime();\n const { setFieldWarning, warnings } = useContext(FormWarningsContext);\n const validationState = (warnings?.queryString) as QueryValidationState;\n const warmTierRanges = indicesInWarmTier(validationState);\n\n const { tables } = useStore(LookupTablesStore);\n const { pathname } = useLocation();\n\n const sendTelemetry = useSendTelemetry();\n\n const queryId = generateId();\n const searchTypeId = generateId();\n\n const [queryParameterStash, setQueryParameterStash] = useState({});\n const [searchFiltersHidden, setSearchFiltersHidden] = useState(false);\n const [searchWithinMsUnit, setSearchWithinMsUnit] = useState(searchWithin.unit);\n const [executeEveryMsUnit, setExecuteEveryMsUnit] = useState(executeEvery.unit);\n const [searchWithinMsDuration, setSearchWithinMsDuration] = useState(searchWithin.duration);\n const [executeEveryMsDuration, setExecuteEveryMsDuration] = useState(executeEvery.duration);\n\n const userCanViewLookupTables = useCallback(\n () => isPermitted(currentUser.permissions, LOOKUP_PERMISSIONS),\n [currentUser.permissions],\n );\n\n const validateQueryString = useCallback(\n (queryString: ElasticsearchQueryString | string,\n streamIds: Array,\n timeRange: RelativeTimeRangeWithEnd,\n timezone: string) => {\n const request = {\n timeRange: timeRange,\n queryString: queryString,\n streams: streamIds,\n };\n\n validateQuery(request, timezone).then((result) => {\n if (result?.status === 'WARNING' || result?.status === 'ERROR') {\n setFieldWarning('queryString', result);\n } else {\n setFieldWarning('queryString', undefined);\n }\n });\n }, [setFieldWarning]);\n\n const toTimeRange = (from) => ({\n type: 'relative',\n from: from / 1000,\n } as RelativeTimeRangeWithEnd);\n\n useEffect(() => {\n if (userCanViewLookupTables()) {\n LookupTablesActions.searchPaginated(1, 0, undefined, false);\n }\n }, [userCanViewLookupTables]);\n\n useEffect(() => {\n validateQueryString(\n eventDefinition.config.query,\n eventDefinition.config.streams,\n toTimeRange(eventDefinition.config.search_within_ms),\n userTimezone);\n }, [\n eventDefinition.config.query,\n eventDefinition.config.streams,\n eventDefinition.config.search_within_ms,\n setFieldWarning,\n userTimezone,\n validateQueryString]);\n\n const getUpdatedConfig = (key, value) => {\n const config = cloneDeep(eventDefinition.config);\n config[key] = value;\n setCurrentConfig(config);\n\n return config;\n };\n\n const propagateChange = (config: EventDefinitionConfig) => {\n onChange('config', config);\n };\n\n const formatStreamIds = memoize(\n (streamIds) => streamIds\n .map((streamId) => streams.find((s) => s.id === streamId) || streamId)\n .map((streamOrId) => {\n const stream = (typeof streamOrId === 'object' ? streamOrId : { title: streamOrId, id: streamOrId });\n\n return {\n label: stream.title,\n value: stream.id,\n };\n })\n .sort((s1, s2) => naturalSortIgnoreCase(s1.label, s2.label)),\n (streamIds) => streamIds.join('-'),\n );\n\n const syncParamsWithQuery = (paramsInQuery, config: EventDefinitionConfig) => {\n const queryParameters = config?.query_parameters || [];\n const keptParameters = [];\n const staleParameters = {};\n\n queryParameters.forEach((p) => {\n if (paramsInQuery.has(p.name)) {\n keptParameters.push(p);\n } else {\n staleParameters[p.name] = p;\n }\n });\n\n const newParameters = [];\n\n paramsInQuery.forEach((np) => {\n if (!keptParameters.find((p) => p.name === np)) {\n if (queryParameterStash[np]) {\n newParameters.push(queryParameterStash[np]);\n } else {\n newParameters.push(buildNewParameter(np));\n }\n }\n });\n\n setQueryParameterStash(merge(queryParameterStash, staleParameters));\n\n onChange('config', { ...config, query_parameters: keptParameters.concat(newParameters) });\n };\n\n const parseQuery = (queryString: string, config: EventDefinitionConfig, searchFilters = OrderedMap()) => {\n if (!userCanViewLookupTables()) {\n return;\n }\n\n const queryBuilder = Query.builder()\n .id(queryId)\n .query({ type: 'elasticsearch', query_string: queryString })\n .timerange({ type: 'relative', range: 1000 })\n .filters(searchFilters.toList() as FiltersType)\n .searchTypes([{\n id: searchTypeId,\n type: 'messages',\n limit: 10,\n offset: 0,\n filter: undefined,\n filters: undefined,\n name: undefined,\n query: undefined,\n timerange: undefined,\n streams: undefined,\n sort: [],\n decorators: [],\n }]);\n\n const query = queryBuilder.build();\n\n const search = Search.create().toBuilder()\n .queries([query])\n .build();\n\n parseSearch(search).then((res) => {\n syncParamsWithQuery(res.undeclared, config);\n });\n };\n\n const debouncedParseQuery = debounce(parseQuery, 250);\n\n const handleConfigChange = (name: string, config: EventDefinitionConfig) => {\n if (name === '_is_scheduled') {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_CONDITION.FILTER_EXECUTED_AUTOMATICALLY_TOGGLED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-condition',\n app_action_value: 'enable-checkbox',\n is_scheduled: config._is_scheduled,\n });\n }\n\n propagateChange(config);\n };\n\n const handleQueryChange = (event) => {\n const { name } = event.target;\n const value = FormsUtils.getValueFromInput(event.target);\n const newConfig = getUpdatedConfig(name, value);\n handleConfigChange(name, newConfig);\n debouncedParseQuery(value, newConfig);\n };\n\n const handleSearchFiltersChange = (searchFilters) => {\n const { query } = eventDefinition.config;\n\n const newConfig = getUpdatedConfig('filters', searchFilters.toArray());\n propagateChange(newConfig);\n\n debouncedParseQuery(query, newConfig);\n };\n\n const handleEnabledChange = (event) => {\n const { name } = event.target;\n const value = FormsUtils.getValueFromInput(event.target);\n const newConfig = getUpdatedConfig(name, value);\n handleConfigChange(name, newConfig);\n };\n\n const hideFiltersPreview = (value) => {\n Store.set(PLUGGABLE_CONTROLS_HIDDEN_KEY, value);\n setSearchFiltersHidden(value);\n };\n\n const handleStreamsChange = (nextValue) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_CONDITION.FILTER_STREAM_SELECTED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-condition',\n app_action_value: 'stream-select',\n });\n\n propagateChange(getUpdatedConfig('streams', nextValue));\n };\n\n const handleTimeRangeChange = (fieldName) => (nextValue, nextUnit) => {\n if (fieldName === 'search_within_ms' && nextUnit !== searchWithinMsUnit) {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_CONDITION.FILTER_SEARCH_WITHIN_THE_LAST_UNIT_CHANGED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-condition',\n app_action_value: 'searchWithinMsUnit-select',\n new_unit: nextUnit,\n });\n } else if (fieldName === 'execute_every_ms' && nextUnit !== executeEveryMsUnit) {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_CONDITION.FILTER_EXECUTE_SEARCH_EVERY_UNIT_CHANGED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-condition',\n app_action_value: 'executeEveryMsUnit-select',\n new_unit: nextUnit,\n });\n }\n\n const durationInMs = moment.duration(max([nextValue, 1]), nextUnit).asMilliseconds();\n\n propagateChange(getUpdatedConfig(fieldName, durationInMs));\n\n const stateFieldName = camelCase(fieldName);\n\n if (stateFieldName === 'searchWithinMs') {\n setSearchWithinMsDuration(nextValue);\n setSearchWithinMsUnit(nextUnit);\n\n return;\n }\n\n setExecuteEveryMsDuration(nextValue);\n setExecuteEveryMsUnit(nextUnit);\n };\n\n const renderQueryParameters = () => {\n const queryParameters = eventDefinition?.config?.query_parameters || [];\n\n const onChangeQueryParameters = (newQueryParameters) => {\n const newConfig = { ...eventDefinition.config, query_parameters: newQueryParameters || [] };\n\n return onChange('config', newConfig);\n };\n\n if (!userCanViewLookupTables()) {\n return (\n \n This account lacks permission to declare Query Parameters from Lookup Tables.\n \n );\n }\n\n const parameterButtons = queryParameters.map((queryParam) => (\n \n ));\n\n if (isEmpty(parameterButtons)) {\n return null;\n }\n\n const hasEmbryonicParameters = !isEmpty(queryParameters.filter((param : LookupTableParameterJsonEmbryonic) => (param.embryonic)));\n\n return (\n \n Query Parameters\n \n \n {parameterButtons}\n \n \n {hasEmbryonicParameters && (\n \n {validation.errors.query_parameters\n ? get(validation, 'errors.query_parameters[0]')\n : 'Please declare missing query parameters by clicking on the buttons above.'}\n \n )}\n \n );\n };\n\n const warmTierTimeStamp = () => {\n const latestWarmTierRangeEnd = warmTierRanges.map((range) => range.end).sort((a, b) => b - a)[0];\n\n return ;\n };\n\n const onlyFilters = eventDefinition._scope === 'ILLUMINATE';\n\n // Ensure deleted streams are still displayed in select\n const allStreamIds = union(streams.map((s) => s.id), defaultTo(eventDefinition.config.streams, []));\n const formattedStreams = formatStreamIds(allStreamIds);\n\n return (\n
    \n

    Filter

    \n

    Add information to filter the log messages that are relevant for this Event Definition.

    \n {onlyFilters || (\n \n Search query that Messages should match. You can use the same syntax as in the Search page,\n including declaring Query Parameters from Lookup Tables by using the $newParameter$ syntax.\n \n )}\n value={defaultTo(currentConfig.query, '')}\n onChange={handleQueryChange} />\n )}\n\n {onlyFilters || renderQueryParameters()}\n\n {!searchFiltersHidden && (\n \n Search Filters (Optional)\n
    \n \n
    \n
    \n )}\n\n {onlyFilters || (\n <>\n \n Streams (Optional)\n handleStreamsChange(selected === '' ? [] : selected.split(','))}\n options={formattedStreams}\n value={defaultTo(eventDefinition.config.streams, []).join(',')} />\n Select streams the search should include. Searches in all streams if empty.\n \n\n {isSearchingWarmTier(warmTierRanges) && (\n \n The selected time range will include data stored in the Warm Tier. Events that must frequently retrieve data from the Warm Tier may cause performance problems.\n A value for Search within the last exceeding the following duration will fall into the Warm Tier: {warmTierTimeStamp()}.\n \n )}\n \n \n {validation.errors.search_within_ms && (\n {get(validation, 'errors.search_within_ms[0]')}\n )}\n \n\n \n \n {validation.errors.execute_every_ms && (\n {get(validation, 'errors.execute_every_ms[0]')}\n )}\n \n \n \n )}\n
    \n );\n};\n\nexport default FilterForm;\n\nFilterForm.propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n streams: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n currentUser: PropTypes.object.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport type { SearchParams } from 'stores/PaginationTypes';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\nimport { EventDefinitionsStore } from 'stores/event-definitions/EventDefinitionsStore';\n\ntype Options = {\n enabled: boolean,\n}\n\nconst useEventDefinitions = (searchParams: SearchParams, { enabled }: Options = { enabled: true }): {\n data: {\n elements: Array,\n pagination: { total: number }\n attributes: Array<{ id: string, title: string, sortable: boolean }>\n } | undefined,\n refetch: () => void,\n isInitialLoading: boolean,\n} => {\n const { data, refetch, isInitialLoading } = useQuery(\n ['eventDefinition', 'overview', searchParams],\n () => EventDefinitionsStore.searchPaginated(\n searchParams.page,\n searchParams.pageSize,\n searchParams.query,\n { sort: searchParams?.sort.attributeId, order: searchParams?.sort.direction },\n ),\n {\n onError: (errorThrown) => {\n UserNotification.error(`Loading Event Definitions failed with status: ${errorThrown}`,\n 'Could not load Event definition');\n },\n keepPreviousData: true,\n enabled,\n },\n );\n\n return ({\n data,\n refetch,\n isInitialLoading,\n });\n};\n\nexport default useEventDefinitions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\n\nimport Routes from 'routing/Routes';\nimport { ReplaySearchButtonComponent } from 'views/components/widgets/ReplaySearchButton';\nimport useParams from 'routing/useParams';\n\nconst LinkToReplaySearch = ({ isEvent, id }: { id?: string, isEvent?: boolean }) => {\n const { definitionId } = useParams<{ alertId?: string, definitionId?: string }>();\n const searchLink = isEvent ? Routes.ALERTS.replay_search(id) : Routes.ALERTS.DEFINITIONS.replay_search(id || definitionId);\n\n return (\n Replay search\n );\n};\n\nLinkToReplaySearch.defaultProps = {\n id: undefined,\n isEvent: false,\n};\n\nexport default LinkToReplaySearch;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\ntype Props = {\n fields: Object[] | {[key: string]: string},\n};\n\nconst EventFields = ({ fields }: Props) => {\n const fieldNames = Object.keys(fields);\n\n return (\n
      \n {fieldNames.map((fieldName) => (\n
    • {fieldName} {fields[fieldName]}
    • \n ))}\n
    \n );\n};\n\nexport default EventFields;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport type { Event, EventDefinitionContext } from 'components/events/events/types';\n\ntype Props = {\n event: Event,\n eventDefinitionContext: EventDefinitionContext,\n}\n\nconst EventDefinitionLink = ({ event, eventDefinitionContext }: Props) => {\n const currentUser = useCurrentUser();\n\n if (!eventDefinitionContext) {\n return {event.event_definition_id};\n }\n\n return isPermitted(currentUser.permissions,\n `eventdefinitions:edit:${eventDefinitionContext.id}`)\n ? {eventDefinitionContext.title}\n // eslint-disable-next-line react/jsx-no-useless-fragment\n : <>{eventDefinitionContext.title};\n};\n\nexport default EventDefinitionLink;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useMemo } from 'react';\nimport isEmpty from 'lodash/isEmpty';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport { Col, Row } from 'components/bootstrap';\nimport { Timestamp } from 'components/common';\nimport type { Event, EventDefinitionContext } from 'components/events/events/types';\nimport EventFields from 'components/events/events/EventFields';\nimport EventDefinitionLink from 'components/event-definitions/event-definitions/EventDefinitionLink';\nimport LinkToReplaySearch from 'components/event-definitions/replay-search/LinkToReplaySearch';\nimport PriorityName from 'components/events/events/PriorityName';\n\nexport const usePluggableEventActions = (eventId: string) => {\n const pluggableEventActions = usePluginEntities('views.components.eventActions');\n\n return pluggableEventActions.filter(\n (perspective) => (perspective.useCondition ? !!perspective.useCondition() : true),\n ).map(\n ({ component: PluggableEventAction, key }) => (\n \n ),\n );\n};\n\ntype Props = {\n event: Event,\n eventDefinitionContext: EventDefinitionContext,\n};\n\nconst EventDetails = ({ event, eventDefinitionContext }: Props) => {\n const eventDefinitionTypes = usePluginEntities('eventDefinitionTypes');\n const pluggableActions = usePluggableEventActions(event.id);\n\n const plugin = useMemo(() => {\n if (event.event_definition_type === undefined) {\n return null;\n }\n\n return eventDefinitionTypes.find((edt) => edt.type === event.event_definition_type);\n }, [event, eventDefinitionTypes]);\n\n return (\n \n \n
    \n
    ID
    \n
    {event.id}
    \n
    Priority
    \n
    \n \n
    \n
    Timestamp
    \n
    \n
    \n
    Event Definition
    \n
    \n \n  \n ({(plugin && plugin.displayName) || event.event_definition_type})\n
    \n {event.replay_info && (\n <>\n
    Actions
    \n
    \n \n
    \n {pluggableActions}\n \n )}\n
    \n \n \n
    \n {event.timerange_start && event.timerange_end && (\n <>\n
    Aggregation time range
    \n
    \n \n  — \n \n
    \n \n )}\n
    Event Key
    \n
    {event.key || 'No Key set for this Event.'}
    \n
    Additional Fields
    \n {isEmpty(event.fields)\n ?
    No additional Fields added to this Event.
    \n : }\n
    Group-By Fields
    \n {isEmpty(event.group_by_fields)\n ?
    No group-by fields on this Event.
    \n : }\n
    \n \n
    \n );\n};\n\nexport default EventDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport * as React from 'react';\n\nimport { Label } from 'components/bootstrap';\n\ntype Props = {\n isAlert: boolean,\n}\n\nconst EventTypeLabel = ({ isAlert }: Props) => (\n isAlert\n ? \n : \n);\n\nexport default EventTypeLabel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport EventDefinitionPriorityEnum from 'logic/alerts/EventDefinitionPriorityEnum';\nimport StringUtils from 'util/StringUtils';\n\ntype Props = {\n priority: number | string,\n}\nconst PriorityName = ({ priority }: Props) => (\n // eslint-disable-next-line react/react-in-jsx-scope\n <>{StringUtils.capitalizeFirstLetter(EventDefinitionPriorityEnum.properties[priority].name)}\n);\n\nexport default PriorityName;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\n// eslint-disable-next-line import/prefer-default-export\nexport const isMacOS = () => navigator.userAgent.indexOf('Mac OS X') !== -1;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport isArray from 'lodash/isArray';\nimport flattenDeep from 'lodash/flattenDeep';\nimport styled from 'styled-components';\n\nimport { KeyboardKey } from 'components/bootstrap';\nimport { isMacOS as _isMacOS } from 'util/OSUtils';\nimport SectionComponent from 'components/common/Section/SectionComponent';\n\nconst ShortcutList = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst ShortcutListItem = styled.div`\n display: flex;\n gap: 5px;\n justify-content: space-between;\n\n &:not(:last-child) {\n margin-bottom: 3px;\n }\n`;\n\nconst KeysList = styled.div`\n display: inline-flex;\n gap: 5px;\n justify-content: right;\n height: fit-content;\n`;\n\nconst KeySeparator = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst keyMapper = (key: string, isMacOS: boolean) => {\n const keyMap = {\n mod: isMacOS ? '⌘' : 'Ctrl',\n };\n\n return keyMap[key] || key;\n};\n\ntype KeyProps = {\n combinationKey: string,\n description: string,\n isMacOS: boolean,\n keys: string | Array,\n splitKey: string,\n}\n\ntype ShortcutKeysProps = {\n keys: string | Array,\n splitKey: string,\n combinationKey: string,\n isMacOS: boolean\n}\n\nconst ShortcutKeys = ({ keys, splitKey, combinationKey, isMacOS }: ShortcutKeysProps) => {\n const shortcutsArray = isArray(keys) ? keys : [keys];\n const splitShortcutsArray = flattenDeep(shortcutsArray.map((key) => key.split(splitKey)));\n\n return (\n <>\n {splitShortcutsArray.map((keysStr, keysStrIndex) => {\n const keysArray = keysStr.split(combinationKey);\n const isLastSplit = keysStrIndex === splitShortcutsArray.length - 1;\n\n return (\n \n {keysArray.map((key, index) => {\n const isLast = index === keysArray.length - 1;\n\n return (\n \n {keyMapper(key, isMacOS)}\n {!isLast && {combinationKey}}\n \n );\n })}\n {!isLastSplit && or}\n \n );\n })}\n \n );\n};\n\nconst Key = ({ description, keys, combinationKey, splitKey, isMacOS }: KeyProps) => (\n \n {description}\n \n \n \n \n);\ntype Props = {\n title: string,\n description: string,\n sectionActions: Array<{\n keyDescription: string,\n reactKey: string,\n keys: string | Array,\n splitKey: string,\n combinationKey: string,\n isEnabled: boolean,\n }>\n};\n\nconst HotkeyCollectionSection = ({ title, description, sectionActions }: Props) => {\n const isMacOS = _isMacOS();\n\n return (\n \n

    {description}

    \n \n {sectionActions.map(({ keyDescription, keys, combinationKey, splitKey, reactKey }) => (\n \n ))}\n \n
    \n );\n};\n\nexport default HotkeyCollectionSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getFullVersion } from 'util/Version';\nimport connect from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { SystemStore } from 'stores/system/SystemStore';\n\ntype SystemStoreState = {\n system: {\n version?: string,\n hostname?: string,\n };\n};\n\ntype Jvm = {\n info: string;\n};\n\ntype Props = {\n system?: {\n version?: string,\n hostname?: string,\n },\n};\n\nconst StandardFooter = ({ system }: Props) => {\n const [jvm, setJvm] = useState();\n\n useEffect(() => {\n let mounted = true;\n\n SystemStore.jvm().then((jvmInfo) => {\n if (mounted) {\n setJvm(jvmInfo);\n }\n });\n\n return () => {\n mounted = false;\n };\n }, []);\n\n if (!(system && jvm)) {\n return (\n <>Graylog {getFullVersion()}\n );\n }\n\n return (\n <>\n Graylog {system.version} on {system.hostname} ({jvm.info})\n \n );\n};\n\nStandardFooter.propTypes = {\n system: PropTypes.shape({\n version: PropTypes.string,\n hostname: PropTypes.string,\n }),\n};\n\nStandardFooter.defaultProps = {\n system: undefined,\n};\n\nexport default connect(\n StandardFooter,\n { system: SystemStore as Store },\n ({ system: { system } = { system: undefined } }) => ({ system }),\n);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled, { css } from 'styled-components';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport StandardFooter from './StandardFooter';\n\nconst StyledFooter = styled.footer(({ theme }) => css`\n text-align: center;\n font-size: ${theme.fonts.size.small};\n color: ${theme.colors.gray[70]};\n height: 20px;\n\n /* This combination of padding and box-sizing is required to fix a firefox flexbox bug */\n box-sizing: content-box;\n padding-bottom: ${theme.spacings.sm};\n\n @media print {\n display: none;\n }\n`);\n\nconst Footer = () => {\n const customFooter = PluginStore.exports('pageFooter');\n\n if (customFooter.length === 1) {\n const CustomFooter = customFooter[0].component;\n\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n};\n\nFooter.propTypes = {};\n\nexport default Footer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Outlet } from 'react-router-dom';\n\nimport WithGlobalAppNotifications from 'components/notifications/WithGlobalAppNotifications';\nimport { Grid } from 'components/bootstrap';\nimport Footer from 'components/layout/Footer';\n\ntype Props = {\n children?: React.ReactNode,\n className?: string,\n FooterComponent?: React.ComponentType,\n NotificationsComponent?: React.ComponentType<{ children: React.ReactNode; }>,\n};\n\nconst Container = styled.div(({ theme }) => `\n display: flex;\n flex-direction: column;\n overflow: auto;\n height: 100%;\n width: 100%;\n\n /* Bottom gap is defined by the footer */\n padding: ${theme.spacings.sm} ${theme.spacings.sm} 0 ${theme.spacings.sm};\n`);\n\nconst StyledGrid = styled(Grid)`\n width: 100%;\n flex: 1;\n margin-bottom: 10px;\n`;\n\n/*\n * Provides the basic layout for the page content section.\n * The section includes all page specific components, but not elements like the navigation or sidebar.\n */\nconst PageContentLayout = ({ children, className, FooterComponent, NotificationsComponent }: Props) => (\n \n \n \n {children || }\n \n \n \n \n);\n\nPageContentLayout.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n};\n\nPageContentLayout.defaultProps = {\n children: undefined,\n className: undefined,\n FooterComponent: Footer,\n NotificationsComponent: WithGlobalAppNotifications,\n};\n\nexport default PageContentLayout;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nconst Wrapper = styled.div(({ theme }) => css`\n background-color: ${theme.colors.global.contentBackground};\n display: flex;\n justify-content: center;\n align-items: center;\n width: 33%;\n padding: 30px;\n max-width: 440px;\n min-width: 330px;\n`);\n\nconst Container = styled.div`\n width: 100%;\n`;\n\ntype Props = {\n children: React.ReactNode,\n};\n\nconst LoginBox = ({ children }: Props) => (\n \n \n {children}\n \n \n);\n\nLoginBox.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default LoginBox;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport LoginBox from 'components/login/LoginBox';\nimport PublicNotifications from 'components/common/PublicNotifications';\nimport backgroundImage from 'images/auth/login-bg.svg';\nimport { Logo } from 'components/perspectives/DefaultBrand';\n\nconst LogoContainer = styled.div`\n display: block;\n height: 5rem;\n width: auto;\n margin: auto;\n margin-bottom: 1.5rem;\n \n svg {\n width: 100%;\n height: 75px;\n }\n`;\n\nconst Background = styled.div`\n position: relative;\n height: 100vh;\n width: 100%;\n`;\n\nconst BackgroundText = styled.div`\n z-index: -1;\n display: flex;\n flex-direction: column;\n position: absolute;\n vertical-align: middle;\n justify-content: center;\n height: 100%;\n width: 100%;\n padding: 0 30px;\n background-image: url(${backgroundImage});\n background-position: center;\n background-size: cover;\n`;\n\nconst NotificationsContainer = styled.div`\n position: absolute;\n top: 0;\n margin-top: 5px;\n width: 100%;\n`;\n\nconst LoginContainer = styled.div`\n display: flex;\n flex: 1 1 0%;\n flex-direction: row;\n min-width: 100%;\n min-height: 100%;\n`;\n\nconst TextContainer = styled.div`\n vertical-align: middle;\n justify-content: center;\n place-self: center center;\n height: auto;\n`;\n\nconst WelcomeMessage = styled.strong(({ theme }) => css`\n display: block;\n font-size: ${theme.fonts.size.extraLarge};\n font-weight: 800;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n`);\n\nconst Claim = styled.h1(({ theme }) => css`\n color: #fcfcfc;\n text-transform: uppercase;\n font-size: ${theme.fonts.size.huge};\n line-height: 1;\n font-weight: 600;\n`);\nconst Highlight = styled.span(({ theme }) => css`\n color: ${theme.colors.brand.primary};\n`);\n\ntype Props = {\n children: React.ReactNode,\n};\n\nconst LoginChrome = ({ children }: Props) => (\n \n \n Welcome to Graylog\n {children}\n \n \n \n \n \n \n \n \n \n \n Data. Insights. Answers.\n \n \n \n \n);\n\nexport default LoginChrome;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport AppConfig from 'util/AppConfig';\nimport ObjectUtils from 'util/ObjectUtils';\nimport { Input } from 'components/bootstrap';\nimport { Select, TimeUnitInput } from 'components/common';\n\nexport type Config = {\n path: string,\n database_type: string,\n check_interval: number,\n check_interval_unit: string,\n};\ntype MaxmindAdapterFieldSetProps = {\n config: Config;\n updateConfig: (newConfig: object) => void,\n handleFormEvent: (e: { target: { name: string; value?: string } }) => void;\n validationState: (key: string) => string | undefined,\n validationMessage: (key: string, message: string) => string | undefined,\n};\n\nconst MaxmindAdapterFieldSet = ({ config, updateConfig, handleFormEvent, validationState, validationMessage }: MaxmindAdapterFieldSetProps) => {\n const isCloud = AppConfig.isCloud();\n\n const pathsForCloud = {\n IPINFO_STANDARD_LOCATION: '/etc/graylog/server/standard_location.mmdb',\n IPINFO_ASN: '/etc/graylog/server/asn.mmdb',\n };\n\n const ipInfoDatabaseTypes = [\n { label: 'IPinfo location database', value: 'IPINFO_STANDARD_LOCATION' },\n { label: 'IPinfo ASN database', value: 'IPINFO_ASN' },\n ];\n\n let databaseTypes = [\n { label: 'ASN database', value: 'MAXMIND_ASN' },\n { label: 'City database', value: 'MAXMIND_CITY' },\n { label: 'Country database', value: 'MAXMIND_COUNTRY' },\n ];\n\n if (isCloud) {\n databaseTypes = ipInfoDatabaseTypes;\n } else {\n databaseTypes = databaseTypes.concat(ipInfoDatabaseTypes);\n }\n\n const update = (value: number, unit: string, enabled: boolean, name: string) => {\n const newConfig = ObjectUtils.clone(config);\n\n newConfig[name] = enabled ? value : 0;\n newConfig[`${name}_unit`] = unit;\n updateConfig(newConfig);\n };\n\n const updateCheckInterval = (value: number, unit: string, enabled: boolean) => {\n update(value, unit, enabled, 'check_interval');\n };\n\n const onDbTypeSelect = (id: string) => {\n const newConfig = ObjectUtils.clone(config);\n\n if (isCloud) {\n newConfig.path = pathsForCloud[id];\n }\n\n newConfig.database_type = id;\n updateConfig(newConfig);\n };\n\n return (\n
    \n {!isCloud && (\n \n )}\n \n \n \n \n \n \n \n \n \n
    \n);\n\nexport default CSVFileAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport type { LookupTableAdapter } from 'logic/lookup-tables/types';\n\ntype Props = {\n dataAdapter: LookupTableAdapter,\n};\n\nconst CSVFileAdapterSummary = ({ dataAdapter }: Props) => {\n const { config } = dataAdapter;\n\n return (\n
    \n
    File path
    \n
    {config.path}
    \n
    Separator
    \n
    {config.separator}
    \n
    Quote character
    \n
    {config.quotechar}
    \n
    Key column
    \n
    {config.key_column}
    \n
    Value column
    \n
    {config.value_column}
    \n
    Check interval
    \n
    {config.check_interval} seconds
    \n
    Case-insensitive lookup
    \n
    {config.case_insensitive_lookup ? 'yes' : 'no'}
    \n
    CIDR lookup
    \n
    {config.cidr_lookup ? 'yes' : 'no'}
    \n
    \n );\n};\n\nexport default CSVFileAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n/* eslint-disable react/no-unescaped-entities */\nimport React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nconst CSVFileAdapterDocumentation = () => {\n const csvFile1 = `\"ipaddr\",\"hostname\"\n\"127.0.0.1\",\"localhost\"\n\"10.0.0.1\",\"server1\"\n\"10.0.0.2\",\"server2\"`;\n\n const csvFile2 = `'ipaddr';'lladdr';'hostname'\n'127.0.0.1';'e4:b2:11:d1:38:14';'localhost'\n'10.0.0.1';'e4:b2:12:d1:48:28';'server1'\n'10.0.0.2';'e4:b2:11:d1:58:34';'server2'`;\n\n const csvFile3 = `\"cidr\",\"subnet\"\n\"192.168.100.0/24\",\"Finance Department subnet\"\n\"192.168.101.0/24\",\"IT Department subnet\"\n\"192.168.102.0/24\",\"HR Department subnet\"`;\n\n return (\n
    \n

    The CSV data adapter can read key value pairs from a CSV file.

    \n

    Please make sure your CSV file is formatted according to your configuration settings.

    \n\n \n
      \n
    • The first line in the CSV file needs to be a list of field/column names
    • \n
    • The file uses utf-8 encoding
    • \n
    • The file is readable by every Graylog server node
    • \n
    \n
    \n\n
    \n\n

    Example 1

    \n\n
    Configuration
    \n

    \n Separator: ,
    \n Quote character: \"
    \n Key column: ipaddr
    \n Value column: hostname\n

    \n\n
    CSV File
    \n
    {csvFile1}
    \n\n

    Example 2

    \n\n
    Configuration
    \n

    \n Separator: ;
    \n Quote character: '
    \n Key column: ipaddr
    \n Value column: hostname\n

    \n\n
    CSV File
    \n
    {csvFile2}
    \n\n

    CIDR Lookups

    \n

    \n If this data adapter will be used to lookup IP address keys against CIDR addresses
    \n then it should be marked as a CIDR lookup. For example:
    \n

    \n\n
    Configuration
    \n

    \n Separator: ,
    \n Quote character: \"
    \n Key column: cidr
    \n Value column: subnet
    \n CIDR lookup: true\n

    \n\n
    CSV File
    \n
    {csvFile3}
    \n\n

    Given this CSV file and configuration looking up the key 192.168.101.64 would return 'IT Department subnet'.

    \n
    \n );\n};\n\nexport default CSVFileAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport ObjectUtils from 'util/ObjectUtils';\nimport { Input } from 'components/bootstrap';\nimport { Select, TimeUnitInput } from 'components/common';\n\nclass DnsAdapterFieldSet extends React.Component {\n static propTypes = {\n config: PropTypes.shape({\n request_timeout: PropTypes.number.isRequired,\n server_ips: PropTypes.string,\n }).isRequired,\n updateConfig: PropTypes.func.isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n };\n\n _onLookupTypeSelect = (id) => {\n const { config, updateConfig } = this.props;\n const newConfig = ObjectUtils.clone(config);\n\n newConfig.lookup_type = id;\n updateConfig(newConfig);\n };\n\n updateCacheTTLOverride = (value, unit, enabled) => {\n this._updateCacheTTLOverride(value, unit, enabled, 'cache_ttl_override');\n };\n\n _updateCacheTTLOverride = (value, unit, enabled, fieldPrefix) => {\n const { config, updateConfig } = this.props;\n const newConfig = ObjectUtils.clone(config);\n\n // If Cache TTL Override box is checked, then save the value. If not, then do not save it.\n if (enabled && value) {\n newConfig[fieldPrefix] = enabled && value ? value : null;\n newConfig[`${fieldPrefix}_enabled`] = enabled;\n } else {\n newConfig[fieldPrefix] = null;\n newConfig[`${fieldPrefix}_enabled`] = false;\n }\n\n newConfig[`${fieldPrefix}_unit`] = enabled ? unit : null;\n updateConfig(newConfig);\n };\n\n render() {\n const {\n config,\n handleFormEvent,\n validationMessage,\n validationState,\n } = this.props;\n const lookupTypes = [\n { label: 'Resolve hostname to IPv4 address (A)', value: 'A' },\n { label: 'Resolve hostname to IPv6 address (AAAA)', value: 'AAAA' },\n { label: 'Resolve hostname to IPv4 and IPv6 addresses (A and AAAA)', value: 'A_AAAA' },\n { label: 'Reverse lookup (PTR)', value: 'PTR' },\n { label: 'Text lookup (TXT)', value: 'TXT' },\n ];\n\n return (\n
    \n \n \n \n \n
    \n );\n }\n}\n\nexport default DnsAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { TimeUnit } from 'components/common';\n\nconst DnsAdapterSummary = ({ dataAdapter }) => {\n const { config } = dataAdapter;\n\n // Allows enum > display label translation.\n const lookupType = {\n A: 'Resolve hostname to IPv4 address (A)',\n AAAA: 'Resolve hostname to IPv6 address (AAAA)',\n A_AAAA: 'Resolve hostname to IPv4 and IPv6 address (A and AAAA)',\n PTR: 'Reverse lookup (PTR)',\n TXT: 'Text lookup (TXT)',\n };\n\n return (\n
    \n
    DNS Lookup Type
    \n
    {lookupType[config.lookup_type]}
    \n\n
    DNS Server IP Address
    \n
    {config.server_ips || 'n/a'}
    \n\n
    DNS Request Timeout
    \n
    {config.request_timeout} ms
    \n\n
    Cache TTL Override
    \n
    \n {!config.cache_ttl_override_enabled ? 'n/a' : }\n
    \n
    \n );\n};\n\nDnsAdapterSummary.propTypes = {\n dataAdapter: PropTypes.shape({\n config: PropTypes.shape({\n lookup_type: PropTypes.string.isRequired,\n request_timeout: PropTypes.number.isRequired,\n }),\n }).isRequired,\n};\n\nexport default DnsAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nconst StyledPre = styled.pre(({ theme }) => css`\n font-size: ${theme.fonts.size.small};\n`);\n\nconst DnsAdapterDocumentation = () => {\n const styleMarginBottom = { marginBottom: 10 };\n\n const aResponse = `{\n \"single_value\": \"34.239.63.98\",\n \"multi_value\": {\n \"results\": [\n {\n \"ip_address\": \"34.239.63.98\",\n \"dns_ttl\": 60\n },\n {\n \"ip_address\": \"34.238.48.57\",\n \"dns_ttl\": 60\n }\n ]\n },\n \"ttl\": 60000\n}`;\n\n const aaaaResponse = `{\n \"single_value\": \"2307:f8b0:3000:800:0:0:0:200e\",\n \"multi_value\": {\n \"results\": [\n {\n \"ip_address\": \"2307:f8b0:3000:800:0:0:0:200e\",\n \"dns_ttl\": 77\n }\n ]\n },\n \"ttl\": 77000\n}`;\n\n const aAndAaaaResponse = `{\n \"single_value\": \"144.222.6.132\",\n \"multi_value\": {\n \"results\": [\n {\n \"ip_address\": \"144.222.6.132\",\n \"dns_ttl\": 32,\n \"ip_version\": \"IPv4\"\n },\n {\n \"ip_address\": \"1207:f8b1:6003:b01:0:0:0:8a\",\n \"dns_ttl\": 299,\n \"ip_version\": \"IPv6\"\n }\n ]\n },\n \"ttl\": 32000\n}`;\n\n const ptrResponse = `{\n \"single_value\": \"c-45-216-65-41.hd1.fl.someisp.co.uk\",\n \"multi_value\": {\n \"domain\": \"someisp.co.uk\",\n \"full_domain\": \"c-45-216-65-41.hd1.fl.someisp.co.uk\",\n \"dns_ttl\": \"300\",\n },\n \"ttl\": 300000\n}`;\n\n const txtResponse = `{\n \"single_value\": null,\n \"multi_value\": {\n \"results\": [\n {\n \"value\": \"Some text value that lives in a TXT DNS\",\n \"dns_ttl\": 300\n },\n {\n \"value\": \"v=spf1 include:some-email-domain.org ~all.\",\n \"dns_ttl\": 200\n }\n ]\n },\n \"ttl\": 200000\n}`;\n\n return (\n\n
    \n\n

    Configuration

    \n\n
    DNS Lookup Type
    \n\n

    \n Resolve hostname to IPv4 address (A): Returns both a single_value containing one\n of the IPv4 addresses that the hostname resolves to,\n and a multi_value containing all IPv4 addresses that the hostname resolves to.\n Input for this type must be a pure domain name (eg. api.graylog.com).\n

    \n {aResponse}\n\n

    \n Resolve hostname to IPv6 address (AAAA): Returns both a single_value containing\n one of the IPv6 addresses that the hostname resolves to,\n and a multi_value containing all IPv6 addresses that the hostname resolves to.\n Input for this type must be a pure domain name (eg. api.graylog.com).\n

    \n {aaaaResponse}\n\n

    \n Resolve hostname to IPv4 and IPv6 address (A and AAAA): Returns both\n a single_value containing\n one of the IPv4 or IPv6 addresses that the hostname resolves to (will return IPv4 if available),\n and a multi_value containing all IPv4 and IPv6 addresses that the hostname resolves to.\n Input for this type must be a pure domain name (eg. api.graylog.com).\n

    \n {aAndAaaaResponse}\n\n

    \n Reverse lookup (PTR): Returns a single_value containing the PTR value if defined\n for the IP address. The domain field displays the domain name (with no subdomains).\n The full_domain field displays the full un-trimmed host name/PTR value.\n The input for this type must be a pure IPv4 or IPv6 address\n (eg. 10.0.0.1 or 2622:f3b0:4000:812::200c).\n

    \n {ptrResponse}\n\n

    \n Text lookup (TXT): Returns a multi_value with all TXT records defined for the\n hostname.\n Input for this type must be a pure domain name (eg. api.graylog.com).\n

    \n {txtResponse}\n\n
    DNS Server IP Addresses
    \n\n

    \n A comma-separated list of DNS server IP addresses and optional ports to use (eg. 192.168.1.1:5353, 192.168.1.244).\n Leave this blank to use the DNS server defined for your local system. All requests use port 53 unless\n otherwise specified.\n

    \n\n
    DNS Request Timeout
    \n\n

    \n The DNS request timeout in milliseconds.\n

    \n\n
    Cache TTL Override
    \n\n

    \n If enabled, the TTL for this adapter's cache will be overridden with the specified value.\n

    \n\n
    \n );\n};\n\nexport default DnsAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from 'components/bootstrap';\nimport { URLWhiteListInput } from 'components/common';\n\nconst DSVHTTPAdapterFieldSet = ({ handleFormEvent, validationState, validationMessage, config }) => (\n
    \n \n \n \n \n \n \n \n \n \n \n
    \n);\n\nDSVHTTPAdapterFieldSet.propTypes = {\n config: PropTypes.object.isRequired,\n\n handleFormEvent: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n};\n\nexport default DSVHTTPAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nconst DSVHTTPAdapterSummary = ({ dataAdapter }) => {\n const { config } = dataAdapter;\n\n return (\n
    \n
    File URL
    \n
    {config.url}
    \n
    Separator
    \n
    {config.separator}
    \n
    Line Separator
    \n
    {config.line_separator}
    \n
    Quote character
    \n
    {config.quotechar}
    \n
    Ignore lines starting with
    \n
    {config.ignorechar}
    \n
    Key column
    \n
    {config.key_column}
    \n
    Value column
    \n
    {config.value_column}
    \n
    Check interval
    \n
    {config.check_interval} seconds
    \n
    Case-insensitive lookup
    \n
    {config.case_insensitive_lookup ? 'yes' : 'no'}
    \n
    \n );\n};\n\nexport default DSVHTTPAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nconst DSVHTTPAdapterDocumentation = () => {\n const csvFile1 = `\"127.0.0.1\",\"localhost\"\n\"10.0.0.1\",\"server1\"\n\"10.0.0.2\",\"server2\"`;\n\n const csvFile2 = `'127.0.0.1';'e4:b2:11:d1:38:14'\n'10.0.0.1';'e4:b2:12:d1:48:28'\n'10.0.0.2';'e4:b2:11:d1:58:34'`;\n\n return (\n
    \n

    The DSV data adapter can read key value pairs (or check for the presence of a key) from a DSV file.

    \n

    Please make sure your DSV file is formatted according to your configuration settings.

    \n\n \n
      \n
    • The file uses utf-8 encoding
    • \n
    • The file is accessible using the same URL by every Graylog server node
    • \n
    \n
    \n\n
    \n\n

    Example 1

    \n\n
    Configuration
    \n

    \n Separator: ,
    \n Quote character: \"
    \n

    \n\n
    DSV File
    \n
    {csvFile1}
    \n\n

    Example 2

    \n\n
    Configuration
    \n

    \n Separator: ;
    \n Quote character: '
    \n

    \n\n
    DSV File
    \n
    {csvFile2}
    \n
    \n );\n};\n\nexport default DSVHTTPAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport type { SyntheticEvent } from 'react';\nimport React from 'react';\n\nimport { Input } from 'components/bootstrap';\nimport { URLWhiteListInput, KeyValueTable } from 'components/common';\nimport ObjectUtils from 'util/ObjectUtils';\n\ntype Headers = { [key: string]: string };\n\ntype Config = {\n headers: Headers,\n url: string,\n single_value_jsonpath: string,\n multi_value_jsonpath: string,\n user_agent: string,\n};\n\ntype Props = {\n config: Config,\n updateConfig: (config: Config) => void,\n handleFormEvent: (event: SyntheticEvent) => void,\n validationState: (state: string) => string,\n validationMessage: (field: string, message: string) => string,\n};\n\nclass HTTPJSONPathAdapterFieldSet extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n };\n\n onHTTPHeaderUpdate = (headers: Headers) => {\n const { config, updateConfig } = this.props;\n const configChange = ObjectUtils.clone(config);\n\n configChange.headers = headers;\n updateConfig(configChange);\n };\n\n render() {\n const { config, handleFormEvent, validationMessage, validationState } = this.props;\n\n return (\n
    \n \n \n \n \n \n \n \n\n
    \n );\n }\n}\n\nexport default HTTPJSONPathAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { KeyValueTable } from 'components/common';\n\nconst HTTPJSONPathAdapterSummary = ({ dataAdapter }) => {\n const { config } = dataAdapter;\n\n return (\n
    \n
    Lookup URL
    \n
    {config.url}
    \n
    Single value JSONPath
    \n
    {config.single_value_jsonpath}
    \n
    Multi value JSONPath
    \n
    {config.multi_value_jsonpath}
    \n
    HTTP User-Agent
    \n
    {config.user_agent}
    \n
    HTTP Headers
    \n
    \n
    \n );\n};\n\nHTTPJSONPathAdapterSummary.propTypes = {\n dataAdapter: PropTypes.object.isRequired,\n};\n\nexport default HTTPJSONPathAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n/* eslint-disable no-template-curly-in-string */\nimport React from 'react';\n\nimport { Alert, Col, Row } from 'components/bootstrap';\n\nconst HTTPJSONPathAdapterDocumentation = () => {\n const exampleJSON = `{\n \"user\": {\n \"login\": \"jane\",\n \"full_name\": \"Jane Doe\",\n \"roles\": [\"admin\", \"developer\"],\n \"contact\": {\n \"email\": \"\",\n \"cellphone\": \"+49123456789\"\n }\n }\n}`;\n const noMultiResult = '{\"value\": \"Jane Doe\"}';\n const mapResult = `{\n \"login\": \"jane\",\n \"full_name\": \"Jane Doe\",\n \"roles\": [\"admin\", \"developer\"],\n \"contact\": {\n \"email\": \"\",\n \"cellphone\": \"+49123456789\"\n }\n}`;\n const smallMapResult = `{\n \"email\": \"\",\n \"cellphone\": \"+49123456789\"\n}`;\n const listResult = `{\n \"value\": [\"admin\", \"developer\"]\n}`;\n const pipelineRule = `rule \"lookup user\"\nwhen has_field(\"user_login\")\nthen\n // Get the user login from the message\n let userLogin = to_string($message.user_login);\n // Lookup the single value, in our case the full name, in the user-api lookup table\n let userName = lookup_value(\"user-api\", userLogin);\n // Set the field \"user_name\" in the message\n set_field(\"user_name\", userName)\n\n // Lookup the multi value in the user-api lookup table\n let userData = lookup(\"user-api\", userLogin);\n // Set the email and cellphone as fields in the message\n set_field(\"user_email\", userData[\"email\"]);\n set_field(\"user_cellphone\", userData[\"cellphone\"]);\nend`;\n\n return (\n
    \n

    \n The HTTPJSONPath data adapter executes HTTP GET requests to lookup a key and parses the result based on\n configured JSONPath expressions.\n

    \n\n \n Every lookup table result has two values. A single value and a multi value. The single\n value will be used when the lookup result is expected to be a string, number or boolean. The multi value\n will be used when the lookup result is expected to be a map or list.\n \n\n

    Configuration

    \n\n
    Lookup URL
    \n

    \n The URL that will be used for the HTTP request. To use the lookup key in the URL, the\n {'${key}'}\n value can be used. This variable will be replaced by the actual key that is passed to a lookup function.
    \n (example: {'https://example.com/api/lookup?key=${key}'})\n

    \n\n
    Single value JSONPath
    \n

    \n This JSONPath expression will be used to parse the single value of the lookup result.\n (example: $.user.full_name)\n

    \n\n
    Multi value JSONPath
    \n

    \n This JSONPath expression will be used to parse the multi value of the lookup result.\n (example: $.users[*])\n The multi value JSONPath setting is optional. Without it, the single value is also present in the\n multi value result.\n

    \n\n
    HTTP User-Agent
    \n

    \n This is the User-Agent header that will be used for the HTTP requests. You should include some\n contact details so owners of the services you query know whom to contact if issues arise.\n (like excessive API requests from your Graylog cluster)\n

    \n\n
    \n\n

    Example

    \n

    \n This shows an example configuration and the values that will be returned from a lookup.
    \n The configured URL is {'https://example.com/api/users/${key}'} and the {'${key}'}\n gets replaced by jane during the lookup request.\n

    \n

    \n This is the resulting JSON document:\n

    \n
    {exampleJSON}
    \n\n \n \n
    Configuration
    \n

    \n Single value JSONPath: $.user.full_name
    \n Multi value JSONPath: empty
    \n

    \n \n \n
    Result
    \n

    \n Single value: Jane Doe
    \n Multi value:\n

    \n
    {noMultiResult}
    \n \n
    \n \n \n
    Configuration
    \n

    \n Single value JSONPath: $.user.full_name
    \n Multi value JSONPath: $.user
    \n

    \n \n \n
    Result
    \n

    \n Single value: Jane Doe
    \n Multi value:\n

    \n
    {mapResult}
    \n \n
    \n \n \n
    Configuration
    \n

    \n Single value JSONPath: $.user.contact.email
    \n Multi value JSONPath: $.user.roles[*]
    \n

    \n \n \n
    Result
    \n

    \n Single value:
    \n Multi value:\n

    \n
    {listResult}
    \n \n
    \n \n \n
    Configuration
    \n

    \n Single value JSONPath: $.user.full_name
    \n Multi value JSONPath: $.user.contact
    \n

    \n \n \n
    Result
    \n

    \n Single value: Jane Doe
    \n Multi value:\n

    \n
    {smallMapResult}
    \n \n
    \n\n
    Pipeline Rule
    \n

    \n This is an example pipeline rule that uses the example data from our last configuration example.\n

    \n
    {pipelineRule}
    \n
    \n );\n};\n\nexport default HTTPJSONPathAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport 'components/maps/adapter';\nimport CSVFileAdapterFieldSet from './CSVFileAdapterFieldSet';\nimport CSVFileAdapterSummary from './CSVFileAdapterSummary';\nimport CSVFileAdapterDocumentation from './CSVFileAdapterDocumentation';\nimport DnsAdapterFieldSet from './DnsAdapterFieldSet';\nimport DnsAdapterSummary from './DnsAdapterSummary';\nimport DnsAdapterDocumentation from './DnsAdapterDocumentation';\nimport DSVHTTPAdapterFieldSet from './DSVHTTPAdapterFieldSet';\nimport DSVHTTPAdapterSummary from './DSVHTTPAdapterSummary';\nimport DSVHTTPAdapterDocumentation from './DSVHTTPAdapterDocumentation';\nimport HTTPJSONPathAdapterFieldSet from './HTTPJSONPathAdapterFieldSet';\nimport HTTPJSONPathAdapterSummary from './HTTPJSONPathAdapterSummary';\nimport HTTPJSONPathAdapterDocumentation from './HTTPJSONPathAdapterDocumentation';\n\nPluginStore.register(new PluginManifest({}, {\n lookupTableAdapters: [\n {\n type: 'csvfile',\n displayName: 'CSV File',\n formComponent: CSVFileAdapterFieldSet,\n summaryComponent: CSVFileAdapterSummary,\n documentationComponent: CSVFileAdapterDocumentation,\n },\n {\n type: 'dnslookup',\n displayName: 'DNS Lookup',\n formComponent: DnsAdapterFieldSet,\n summaryComponent: DnsAdapterSummary,\n documentationComponent: DnsAdapterDocumentation,\n },\n {\n type: 'dsvhttp',\n displayName: 'DSV File from HTTP',\n formComponent: DSVHTTPAdapterFieldSet,\n summaryComponent: DSVHTTPAdapterSummary,\n documentationComponent: DSVHTTPAdapterDocumentation,\n },\n {\n type: 'httpjsonpath',\n displayName: 'HTTP JSONPath',\n formComponent: HTTPJSONPathAdapterFieldSet,\n summaryComponent: HTTPJSONPathAdapterSummary,\n documentationComponent: HTTPJSONPathAdapterDocumentation,\n },\n ],\n}));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nconst NullCacheFieldSet = () => null;\n\nexport default React.forwardRef(NullCacheFieldSet);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nconst NullCacheSummary = () => (

    This cache has no configuration.

    );\n\nexport default NullCacheSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { Input } from 'components/bootstrap';\nimport { FormikFormGroup, TimeUnitInput } from 'components/common';\nimport type { LookupTableCache, LookupTableCacheConfig } from 'logic/lookup-tables/types';\nimport { getValueFromInput } from 'util/FormsUtils';\n\ntype Props = {\n config: LookupTableCacheConfig,\n};\n\nconst CaffeineCacheFieldSet = ({ config }: Props, ref: any) => {\n const { values, setValues, errors }: { values: Partial, setValues: any, errors: any } = useFormikContext();\n const [stateConfig, setStateConfig] = React.useState({ ...config });\n\n React.useEffect(() => setStateConfig({ ...config }), [config]);\n\n const validateConfig = () => {\n const configErrors: any = {};\n\n if (!values.config.max_size) configErrors.max_size = 'Required';\n if (values.config.max_size < 0) configErrors.max_size = 'Must be 0 or a positive number';\n\n return configErrors;\n };\n\n React.useImperativeHandle(ref, () => ({\n validate: () => (validateConfig()),\n }));\n\n const handleIgnoreNullChange = (event) => {\n const ignoreValue = getValueFromInput(event.target);\n\n const valConfig = { ...values.config, ignore_null: ignoreValue };\n setStateConfig(valConfig);\n setValues({ ...values, config: valConfig });\n };\n\n const handleUpdate = (name: string) => (value: number, unit: string, enabled: boolean) => {\n const auxConfig = { ...stateConfig };\n const auxValConfig = { ...values.config };\n\n auxConfig[name] = enabled ? value : 0;\n auxConfig[`${name}_unit`] = unit;\n auxValConfig[name] = enabled ? value : 0;\n auxValConfig[`${name}_unit`] = unit;\n\n setStateConfig(auxConfig);\n setValues({ ...values, config: auxValConfig });\n };\n\n return (\n
    \n \n 0}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n 0}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n \n \n
    \n );\n};\n\nexport default React.forwardRef(CaffeineCacheFieldSet);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled from 'styled-components';\n\nexport const SummaryContainer = styled.div`\n display: inline-block;\n margin: 16px 0;\n`;\n\nexport const SummaryRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n`;\n\nexport const Title = styled.span`\n font-weight: bold;\n min-width: 180px;\n`;\n\nexport const Value = styled.span`\n padding: 6px 10px;\n width: 100%;\n min-width: 130px;\n`;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { TimeUnit } from 'components/common';\nimport type { LookupTableCache } from 'logic/lookup-tables/types';\n\nimport {\n SummaryContainer,\n SummaryRow,\n Title,\n Value,\n} from './SummaryComponents.styled';\n\ntype Props = {\n cache: LookupTableCache,\n};\n\nconst CaffeineCacheSummary = ({ cache }: Props) => (\n \n \n Maximum entries:\n {cache.config.max_size}\n \n \n Expire after access:\n \n \n \n \n \n Expire after write:\n \n \n \n \n \n TTL for empty results:\n \n \n \n \n \n);\n\nexport default CaffeineCacheSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nconst CaffeineCacheDocumentation = () => (\n
    \n

    The in-memory cache maintains recently used values from data adapters.

    \n

    Please make sure your Graylog servers have enough heap to accomodate the cached entries and monitor the cache efficiency.

    \n\n \n

    The cache is local to each Graylog server, they do not share the entries.

    \n

    For example, if you have two servers, they will maintain a completely independent cache from each other.

    \n
    \n\n
    \n\n

    Cache size

    \n

    Every cache has a maximum number of entries, unbounded caches are not supported.

    \n\n

    Time-based expiration

    \n\n
    Expire after access
    \n

    \n The cache will remove entries after a fixed time since they have been used the last time.
    \n This results in the cache behaving as a space limited least recently used cache.\n

    \n\n
    Expire after write
    \n

    \n The cache will remove entries after a fixed time since they have been entered into the cache.
    \n This results in entries that are never older than the given time, which can be important for\n regularly changing data, such as configuration state of external systems.\n

    \n\n
    \n);\n\nexport default CaffeineCacheDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport NullCacheFieldSet from './NullCacheFieldSet';\nimport NullCacheSummary from './NullCacheSummary';\nimport CaffeineCacheFieldSet from './CaffeineCacheFieldSet';\nimport CaffeineCacheSummary from './CaffeineCacheSummary';\nimport CaffeineCacheDocumentation from './CaffeineCacheDocumentation';\n\nPluginStore.register(new PluginManifest({}, {\n lookupTableCaches: [\n {\n type: 'none',\n displayName: 'Do not cache values',\n formComponent: NullCacheFieldSet,\n summaryComponent: NullCacheSummary,\n documentationComponent: null,\n },\n {\n type: 'guava_cache', // old name kept for backwards compatibility\n displayName: 'Node-local, in-memory cache',\n formComponent: CaffeineCacheFieldSet,\n summaryComponent: CaffeineCacheSummary,\n documentationComponent: CaffeineCacheDocumentation,\n },\n ],\n}));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport { Spinner } from 'components/common';\nimport Routes from 'routing/Routes';\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { ErrorPopover } from 'components/lookup-tables';\nimport { LookupTablesActions } from 'stores/lookup-tables/LookupTablesStore';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport type { LookupTable, LookupTableCache, LookupTableAdapter } from 'logic/lookup-tables/types';\nimport useHistory from 'routing/useHistory';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\ntype Props = {\n table: LookupTable,\n cache: LookupTableCache,\n dataAdapter: LookupTableAdapter,\n errors?: {\n table: string,\n cache: string,\n dataAdapter: string,\n },\n};\n\nconst Actions = styled(ButtonToolbar)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n`;\n\nconst LUTTableEntry = ({ table, cache, dataAdapter, errors }: Props) => {\n const history = useHistory();\n const sendTelemetry = useSendTelemetry();\n\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(table);\n\n const handleDelete = React.useCallback(() => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT.DELETED, {\n app_pathname: 'lut',\n app_section: 'lut',\n });\n\n // eslint-disable-next-line no-alert\n const shouldDelete = window.confirm(\n `Are you sure you want to delete lookup table \"${table.title}\"?`,\n );\n\n if (shouldDelete) {\n LookupTablesActions.delete(table.id).then(() => {\n LookupTablesActions.reloadPage();\n });\n }\n }, [table.id, table.title, sendTelemetry]);\n\n const handleEdit = React.useCallback(() => {\n history.push(Routes.SYSTEM.LOOKUPTABLES.edit(table.name));\n }, [history, table.name]);\n\n return (\n \n \n \n {errors.table && (\n \n )}\n {table.title}\n \n {table.description}\n {table.name}\n \n {errors.cache && (\n \n )}\n {cache.title}\n \n \n {errors.dataAdapter && (\n \n )}\n {dataAdapter.title}\n \n \n {loadingScopePermissions ? : scopePermissions.is_mutable && (\n \n \n \n \n )}\n \n \n \n );\n};\n\nLUTTableEntry.defaultProps = {\n errors: {\n table: null,\n cache: null,\n dataAdapter: null,\n },\n};\n\nexport default LUTTableEntry;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./Overview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./Overview.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport {\n PaginatedList,\n SearchForm,\n Spinner,\n NoSearchResult,\n NoEntitiesExist,\n} from 'components/common';\nimport { Row, Col, Table } from 'components/bootstrap';\nimport LUTTableEntry from 'components/lookup-tables/LUTTableEntry';\nimport withPaginationQueryParameter from 'components/common/withPaginationQueryParameter';\nimport { LookupTablesActions } from 'stores/lookup-tables/LookupTablesStore';\nimport type { LookupTable, LookupTableAdapter, LookupTableCache, PaginationType } from 'logic/lookup-tables/types';\nimport type { PaginationQueryParameterResult } from 'hooks/usePaginationQueryParameter';\nimport QueryHelper from 'components/common/QueryHelper';\n\nimport Styles from './Overview.css';\n\nconst ScrollContainer = styled.div`\n overflow-x: auto;\n`;\nconst queryExample = (\n

    \n Searching without a field name matches against the title field:
    \n geoip
    is the same as
    \n title:geoip\n

    \n);\nconst queryHelpComponent = (\n \n);\n\ntype ItemProps = {\n table: LookupTable,\n caches: LookupTableCache[],\n dataAdapters: LookupTableAdapter[],\n errorStates: { [key: string]: { [key: string]: string } },\n};\n\nconst LUTItem = ({ table, caches, dataAdapters, errorStates }: ItemProps) => {\n const lookupName = (id: string, map: LookupTableCache[] | LookupTableAdapter[]) => {\n const empty = { title: 'none' };\n\n if (!map) return empty;\n\n return map[id] || empty;\n };\n\n const lookupAdapterError = () => {\n if (errorStates.dataAdapters && dataAdapters) {\n const adapter = dataAdapters[table.data_adapter_id];\n\n if (!adapter) return null;\n\n return errorStates.dataAdapters[adapter.name];\n }\n\n return null;\n };\n\n const cache = lookupName(table.cache_id, caches);\n const dataAdapter = lookupName(table.data_adapter_id, dataAdapters);\n const errors = {\n table: errorStates.tables[table.name],\n cache: null,\n dataAdapter: lookupAdapterError(),\n };\n\n return (\n \n );\n};\n\nconst NoResults = ({ query }: { query: string }) => (\n \n \n \n {query\n ? No tables found with title "{query}"\n : There are no data adapters to list}\n \n \n \n);\n\nconst DataRow = ({\n tables,\n caches,\n dataAdapters,\n query,\n errorStates,\n}: {\n tables: LookupTable[],\n caches: LookupTableCache[],\n dataAdapters: LookupTableAdapter[],\n query: string,\n errorStates: { [key: string]: { [key: string]: string } },\n}) => (tables.length > 0\n ? (\n <>\n {tables.map((table: LookupTable) => (\n \n ))}\n \n ) : (\n \n ));\n\ntype Props = {\n tables: LookupTable[],\n caches: LookupTableCache[],\n dataAdapters: LookupTableAdapter[],\n pagination: PaginationType,\n errorStates: { [key: string]: { [key: string]: string } },\n paginationQueryParameter: PaginationQueryParameterResult,\n};\n\nconst LookupTablesOverview = ({\n tables,\n caches,\n dataAdapters,\n pagination,\n errorStates,\n paginationQueryParameter,\n}: Props) => {\n const [loading, setLoading] = React.useState(false);\n const [localPagination, setLocalPagination] = React.useState({\n currentPage: paginationQueryParameter.page || 1,\n currentPageSize: paginationQueryParameter.pageSize || 10,\n currentQuery: pagination.query ? decodeURI(pagination.query) : '',\n resetPage: paginationQueryParameter.resetPage,\n setPagination: paginationQueryParameter.setPagination,\n });\n\n React.useEffect(() => {\n const { currentPage, currentPageSize, currentQuery } = localPagination;\n\n LookupTablesActions.searchPaginated(currentPage, currentPageSize, currentQuery)\n .then(() => setLoading(false));\n }, [localPagination]);\n\n const onPageChange = React.useCallback((newPage: number, newPerPage: number) => {\n setLocalPagination({ ...localPagination, currentPage: newPage, currentPageSize: newPerPage });\n }, [localPagination]);\n\n const onSearch = React.useCallback((query: string) => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: query });\n }, [localPagination]);\n\n const onReset = React.useCallback(() => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: '' });\n }, [localPagination]);\n\n return (\n \n \n

    \n Configured lookup tables {pagination.total} total\n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {loading ? : (\n \n )}\n
    TitleDescriptionNameCacheData AdapterActions
    \n
    \n
    \n \n
    \n );\n};\n\nexport default withPaginationQueryParameter(LookupTablesOverview);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport Routes from 'routing/Routes';\nimport { ButtonToolbar, Row, Col, Button, Input } from 'components/bootstrap';\nimport { Link } from 'components/common/router';\nimport { LookupTablesActions } from 'stores/lookup-tables/LookupTablesStore';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport type { LookupTable, LookupTableCache, LookupTableAdapter } from 'logic/lookup-tables/types';\n\ntype Props = {\n table: LookupTable,\n cache: LookupTableCache,\n dataAdapter: LookupTableAdapter,\n};\n\ntype InputType = { value: string, valid: boolean };\nconst INIT_INPUT = { value: '', valid: false };\n\nconst LookupTableView = ({ table, cache, dataAdapter }: Props) => {\n const navigate = useNavigate();\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(table);\n const [purgeKey, setPurgeKey] = React.useState(INIT_INPUT);\n const [lookupKey, setLookupKey] = React.useState(INIT_INPUT);\n const [lookupResult, setLookupResult] = React.useState(null);\n\n const handleEdit = (tableName: string) => () => {\n navigate(Routes.SYSTEM.LOOKUPTABLES.edit(tableName));\n };\n\n const handleInputOnChange = (event: React.BaseSyntheticEvent) => {\n const newValue = event.target.name === 'purgekey' ? { ...purgeKey } : { ...lookupKey };\n\n newValue.valid = event.target.value\n && event.target.value.replace(/\\s/g, '').length > 0;\n\n newValue.value = event.target.value;\n\n switch (event.target.name) {\n case 'purgekey':\n setPurgeKey(newValue);\n break;\n case 'lookupkey':\n setLookupKey(newValue);\n setLookupResult(null);\n break;\n default:\n break;\n }\n };\n\n const handlePurgeKey = (event: React.SyntheticEvent) => {\n event.preventDefault();\n\n if (purgeKey.valid) {\n LookupTablesActions.purgeKey(table, purgeKey.value).then(() => {\n setPurgeKey(INIT_INPUT);\n });\n }\n };\n\n const hadlePurgeAll = (event: React.SyntheticEvent) => {\n event.preventDefault();\n LookupTablesActions.purgeAll(table);\n };\n\n const handleLookupKey = (event: React.SyntheticEvent) => {\n event.preventDefault();\n\n if (lookupKey.valid) {\n LookupTablesActions.lookup(table.name, lookupKey.value).then((resp: any) => {\n setLookupResult(JSON.stringify(resp, null, 2));\n setLookupKey(INIT_INPUT);\n });\n }\n };\n\n return (\n \n \n

    {table.title}

    \n

    {table.description}

    \n
    \n
    Data adapter
    \n
    \n \n {dataAdapter.title}\n \n
    \n
    Cache
    \n
    \n {cache.title}\n
    \n
    \n {(!loadingScopePermissions && scopePermissions?.is_mutable) && (\n \n )}\n {(table.default_single_value || table.default_multi_value) && (\n
    \n
    Default single value
    \n
    {table.default_single_value}{' '}({table.default_single_value_type.toLowerCase()})
    \n
    Default multi value
    \n
    {table.default_multi_value}{' '}({table.default_multi_value_type.toLowerCase()})
    \n
    \n )}\n
    \n

    Purge Cache

    \n

    You can purge the complete cache for this lookup table or only the cache entry for a single key.

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n

    Test lookup

    \n

    You can manually query the lookup table using this form. The data will be cached as configured by Graylog.

    \n
    \n
    \n \n \n
    \n
    \n {lookupResult && (\n
    \n

    Lookup result

    \n
    {lookupResult}
    \n
    \n )}\n \n
    \n );\n};\n\nexport default LookupTableView;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport { Formik, Form } from 'formik';\nimport PropTypes from 'prop-types';\nimport _omit from 'lodash/omit';\nimport type { LookupTable } from 'src/logic/lookup-tables/types';\n\nimport { LookupTablesActions } from 'stores/lookup-tables/LookupTablesStore';\nimport { Col, Row, Input } from 'components/bootstrap';\nimport { FormikFormGroup, JSONValueInput, FormSubmit } from 'components/common';\nimport { CachesContainer, CachePicker, DataAdaptersContainer, DataAdapterPicker } from 'components/lookup-tables';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport Routes from 'routing/Routes';\nimport useHistory from 'routing/useHistory';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\ntype LookupTableType = LookupTable & {\n enable_single_value: boolean,\n enable_multi_value: boolean,\n}\n\nconst INIT_TABLE_VALUES: LookupTableType = {\n id: undefined,\n title: '',\n description: '',\n name: '',\n cache_id: undefined,\n data_adapter_id: undefined,\n enable_single_value: false,\n default_single_value: '',\n default_single_value_type: 'NULL',\n enable_multi_value: false,\n default_multi_value: '',\n default_multi_value_type: 'NULL',\n content_pack: null,\n};\n\ntype Props = {\n saved: () => void,\n create: boolean,\n table: LookupTableType,\n};\n\nconst LookupTableForm = ({ saved, create, table }: Props) => {\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(table);\n const history = useHistory();\n const sendTelemetry = useSendTelemetry();\n\n const validate = (values: LookupTableType) => {\n const errors = {};\n const requiredFields: (keyof LookupTableType)[] = [\n 'title',\n 'name',\n 'cache_id',\n 'data_adapter_id',\n 'cache_id',\n 'default_single_value',\n 'default_multi_value',\n ];\n\n requiredFields.forEach((requiredField) => {\n if (!values[requiredField]) {\n if (requiredField === 'default_single_value' && !values.enable_single_value) return;\n if (requiredField === 'default_multi_value' && !values.enable_multi_value) return;\n errors[requiredField] = 'Required';\n }\n });\n\n return errors;\n };\n\n const handleSubmit = (values: LookupTableType) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT[create ? 'CREATED' : 'UPDATED'], {\n app_pathname: 'lut',\n app_section: 'lut',\n });\n\n let promise: Promise;\n\n const valuesToSave: LookupTable = _omit(values, ['enable_single_value', 'enable_multi_value']);\n\n if (create) {\n promise = LookupTablesActions.create(valuesToSave);\n } else {\n promise = LookupTablesActions.update(valuesToSave);\n }\n\n return promise.then(() => {\n saved();\n });\n };\n\n const initialValues: LookupTableType = {\n ...INIT_TABLE_VALUES,\n ...table,\n enable_single_value: table.default_single_value !== '',\n enable_multi_value: table.default_multi_value !== '',\n };\n\n const onCancel = () => history.push(Routes.SYSTEM.LOOKUPTABLES.OVERVIEW);\n const updatable = !create && !loadingScopePermissions && scopePermissions?.is_mutable;\n\n return (\n {\n const errors = await formikHelpers.validateForm();\n\n if (Object.keys(errors).length === 0) {\n return handleSubmit(values);\n }\n\n return Promise.resolve();\n }}>\n {({ values, errors, touched, setFieldValue, setFieldTouched, setValues, isSubmitting }) => (\n
    \n
    \n \n\n \n\n \n\n {\n setFieldValue('enable_single_value', !values.enable_single_value);\n\n if (values.enable_single_value) {\n setFieldValue('default_single_value', '');\n setFieldValue('default_single_value_type', 'NULL');\n }\n }} />\n {values.enable_single_value && (\n setFieldTouched('default_single_value', true)}\n update={(value, valueType) => {\n setValues({\n ...values,\n default_single_value: value,\n default_single_value_type: valueType,\n });\n }}\n value={values.default_single_value}\n valueType={values.default_single_value_type || 'NULL'}\n allowedTypes={['STRING', 'NUMBER', 'BOOLEAN', 'NULL']}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n )}\n\n {\n setFieldValue('enable_multi_value', !values.enable_multi_value);\n\n if (values.enable_multi_value) {\n setFieldValue('default_multi_value', '');\n setFieldValue('default_multi_value_type', 'NULL');\n }\n }} />\n {values.enable_multi_value && (\n setFieldTouched('default_multi_value', true)}\n update={(value, valueType) => {\n setValues({\n ...values,\n default_multi_value: value,\n default_multi_value_type: valueType,\n });\n }}\n value={values.default_multi_value}\n valueType={values.default_multi_value_type || 'NULL'}\n allowedTypes={['OBJECT', 'NULL']}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n )}\n
    \n\n \n \n \n\n \n \n \n\n
    \n \n \n {create && (\n \n )}\n {updatable && (\n \n )}\n \n \n
    \n
    \n )}\n
    \n );\n};\n\nLookupTableForm.propTypes = {\n saved: PropTypes.func.isRequired,\n create: PropTypes.bool,\n table: PropTypes.object,\n};\n\nLookupTableForm.defaultProps = {\n create: true,\n table: INIT_TABLE_VALUES,\n};\n\nexport default LookupTableForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport memoize from 'lodash/memoize';\n\nimport useFieldTypes from 'views/logic/fieldtypes/useFieldTypes';\nimport { Col, ControlLabel, FormGroup, HelpBlock, Row } from 'components/bootstrap';\nimport { Select, Spinner } from 'components/common';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport { useStore } from 'stores/connect';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport { ALL_MESSAGES_TIMERANGE } from 'views/Constants';\nimport { LookupTablesActions, LookupTablesStore } from 'stores/lookup-tables/LookupTablesStore';\n\nconst LOOKUP_PERMISSIONS = [\n 'lookuptables:read',\n];\n\ntype Props = {\n onTableNameChange: () => void,\n onKeyChange: () => void,\n selectedTableName: string,\n selectedKeyName: string,\n nameValidation: string,\n keyValidation: string,\n lookupTableNameLabel?: string,\n lookupTableKeyLabel?: string,\n customKeyField?: React.ReactNode,\n};\n\nconst LookupTableFields = ({ onTableNameChange, onKeyChange, selectedTableName, selectedKeyName, nameValidation, keyValidation, lookupTableNameLabel = '', lookupTableKeyLabel = '', customKeyField }: Props) => {\n const { data: allFieldTypes } = useFieldTypes([], ALL_MESSAGES_TIMERANGE);\n const lookupTables = useStore(LookupTablesStore);\n const currentUser = useCurrentUser();\n\n React.useEffect(() => {\n if (!isPermitted(currentUser.permissions, LOOKUP_PERMISSIONS)) {\n return;\n }\n\n LookupTablesActions.searchPaginated(1, 0, undefined, false);\n }, [currentUser.permissions]);\n\n if (!isPermitted(currentUser.permissions, LOOKUP_PERMISSIONS)) {\n return (\n \n \n

    No Lookup Tables found.

    \n \n
    \n );\n }\n\n const formatMessageFields = memoize(\n (fieldTypes) => fieldTypes\n .sort((ftA, ftB) => naturalSortIgnoreCase(ftA.name, ftB.name))\n .map((fieldType) => ({\n label: `${fieldType.name} – ${fieldType.value.type.type}`,\n value: fieldType.name,\n })),\n (fieldTypes) => fieldTypes.map((ft) => ft.name).join('-'),\n );\n\n const formatLookupTables = (tables) => tables\n .sort((lt1, lt2) => naturalSortIgnoreCase(lt1.title, lt2.title))\n .map((table) => ({ label: table.title, value: table.name }));\n\n const isLoading = !allFieldTypes || !lookupTables.tables;\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n \n {lookupTableNameLabel || 'Select Lookup Table'}\n \n \n {keyValidation || 'Message Field name whose value will be used as Lookup Table Key.'}\n \n \n \n )}\n \n );\n};\n\nLookupTableFields.defaultProps = {\n lookupTableNameLabel: undefined,\n lookupTableKeyLabel: undefined,\n customKeyField: null,\n};\n\nexport default LookupTableFields;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col } from 'components/bootstrap';\nimport { LookupTableForm } from 'components/lookup-tables';\n\nclass LookupTableCreate extends React.Component {\n static propTypes = {\n saved: PropTypes.func.isRequired,\n validate: PropTypes.func,\n validationErrors: PropTypes.object,\n };\n\n static defaultProps = {\n validate: null,\n validationErrors: {},\n };\n\n state = {\n table: undefined,\n };\n\n render() {\n return (\n
    \n \n \n \n \n \n
    \n );\n }\n}\n\nexport default LookupTableCreate;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport useHistory from 'routing/useHistory';\nimport { Link } from 'components/common/router';\nimport { Spinner } from 'components/common';\nimport { Button } from 'components/bootstrap';\nimport Routes from 'routing/Routes';\nimport { MetricsMapper, MetricContainer, CounterRate } from 'components/metrics';\nimport NumberUtils from 'util/NumberUtils';\nimport { LookupTableCachesActions } from 'stores/lookup-tables/LookupTableCachesStore';\nimport type { LookupTableCache } from 'logic/lookup-tables/types';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport ButtonToolbar from 'components/bootstrap/ButtonToolbar';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\ntype Props = {\n cache: LookupTableCache,\n};\n\nconst Actions = styled(ButtonToolbar)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n`;\n\nconst CacheTableEntry = ({ cache }: Props) => {\n const history = useHistory();\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(cache);\n const sendTelemetry = useSendTelemetry();\n\n const countMap = {\n requests: `org.graylog2.lookup.caches.${cache.id}.requests`,\n hits: `org.graylog2.lookup.caches.${cache.id}.hits`,\n misses: `org.graylog2.lookup.caches.${cache.id}.misses`,\n };\n\n const entriesMap = {\n count: `org.graylog2.lookup.caches.${cache.id}.entries`,\n };\n\n const computeEntriesMetrics = (metrics: any) => {\n const total = Object.keys(metrics).reduce((acc: number, nodeId: string) => (\n acc + (Number.isNaN(metrics[nodeId].count.metric.value) ? 0 : metrics[nodeId].count.metric.value)\n ), 0);\n\n if (total < 0) return 'N/A';\n\n return NumberUtils.formatNumber(total);\n };\n\n const computeCountMetrics = (metrics: any) => {\n const totalHits = Object.keys(metrics).reduce((acc: number, nodeId: string) => (\n acc + (Number.isNaN(metrics[nodeId].hits.metric.rate.total) ? 0 : metrics[nodeId].hits.metric.rate.total)\n ), 0);\n\n const totalMisses = Object.keys(metrics).reduce((acc: number, nodeId: string) => (\n acc + (Number.isNaN(metrics[nodeId].misses.metric.rate.total) ? 0 : metrics[nodeId].misses.metric.rate.total)\n ), 0);\n\n const total = totalHits + totalMisses;\n if (total < 1) return 'N/A';\n const hitRate = (totalHits * 100.0) / total;\n\n return `${NumberUtils.formatNumber(hitRate)}%`;\n };\n\n const handleEdit = React.useCallback(() => {\n history.push(Routes.SYSTEM.LOOKUPTABLES.CACHES.edit(cache.name));\n }, [history, cache.name]);\n\n const handleDelete = React.useCallback(() => {\n // eslint-disable-next-line no-alert\n const shouldDelete = window.confirm(`Are you sure you want to delete cache \"${cache.title}\"?`);\n\n if (shouldDelete) {\n LookupTableCachesActions.delete(cache.id).then(() => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT.CACHE_DELETED, {\n app_pathname: 'lut',\n app_section: 'lut_cache',\n });\n\n LookupTableCachesActions.reloadPage();\n });\n }\n }, [cache.title, cache.id, sendTelemetry]);\n\n return (\n \n \n \n {cache.title}\n \n {cache.description}\n {cache.name}\n \n \n \n \n \n \n \n \n \n \n \n \n {loadingScopePermissions ? : scopePermissions.is_mutable && (\n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default CacheTableEntry;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { PaginatedList, SearchForm, Spinner, NoSearchResult, NoEntitiesExist } from 'components/common';\nimport { Row, Col, Table } from 'components/bootstrap';\nimport CacheTableEntry from 'components/lookup-tables/CacheTableEntry';\nimport withPaginationQueryParameter from 'components/common/withPaginationQueryParameter';\nimport { LookupTableCachesActions } from 'stores/lookup-tables/LookupTableCachesStore';\nimport type { LookupTableCache, PaginationType } from 'logic/lookup-tables/types';\nimport type { PaginationQueryParameterResult } from 'hooks/usePaginationQueryParameter';\nimport QueryHelper from 'components/common/QueryHelper';\n\nimport Styles from './Overview.css';\n\nconst ScrollContainer = styled.div`\n overflow-x: auto;\n`;\n\nconst queryExamples = (\n <>\n

    \n Find caches by parts of their names:
    \n name:guava
    \n name:gua\n

    \n

    \n Searching without a field name matches against the title field:
    \n guava
    is the same as
    \n title:guava\n

    \n \n);\n\nconst NoResults = ({ query }: { query: string }) => (\n \n \n \n {query\n ? No caches found with title "{query}"\n : There are no caches to list}\n \n \n \n);\n\nconst DataRow = ({ caches, query }: { caches: LookupTableCache[], query: string }) => (caches.length > 0\n ? (\n <>\n {caches.map((cache: LookupTableCache) => (\n \n ))}\n \n ) : (\n \n ));\n\ntype Props = {\n caches: LookupTableCache[],\n pagination: PaginationType,\n paginationQueryParameter: PaginationQueryParameterResult,\n};\n\nconst queryHelpComponent = (\n \n);\n\nconst CachesOverview = ({ caches, pagination, paginationQueryParameter }: Props) => {\n const [loading, setLoading] = React.useState(false);\n const [localPagination, setLocalPagination] = React.useState({\n currentPage: paginationQueryParameter.page || 1,\n currentPageSize: paginationQueryParameter.pageSize || 10,\n currentQuery: pagination.query ? decodeURI(pagination.query) : '',\n resetPage: paginationQueryParameter.resetPage,\n setPagination: paginationQueryParameter.setPagination,\n });\n\n React.useEffect(() => {\n const { currentPage, currentPageSize, currentQuery } = localPagination;\n\n LookupTableCachesActions.searchPaginated(currentPage, currentPageSize, currentQuery)\n .then(() => setLoading(false));\n }, [localPagination]);\n\n const onPageChange = React.useCallback((newPage: number, newPerPage: number) => {\n setLocalPagination({ ...localPagination, currentPage: newPage, currentPageSize: newPerPage });\n }, [localPagination]);\n\n const onSearch = React.useCallback((query: string) => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: query });\n }, [localPagination]);\n\n const onReset = React.useCallback(() => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: '' });\n }, [localPagination]);\n\n return (\n \n \n

    \n Configured lookup Caches {pagination.total} total\n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {loading ? : (\n \n )}\n
    TitleDescriptionNameEntriesHit rateThroughputActions
    \n
    \n
    \n \n
    \n );\n};\n\nexport default withPaginationQueryParameter(CachesOverview);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport Routes from 'routing/Routes';\nimport { Row, Col, Button } from 'components/bootstrap';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport type { LookupTableCache } from 'logic/lookup-tables/types';\n\nimport type { CachePluginType } from './types';\nimport {\n SummaryContainer,\n SummaryRow,\n Title,\n Value,\n} from './caches/SummaryComponents.styled';\n\ntype Props = {\n cache: LookupTableCache,\n};\n\nconst Cache = ({ cache }: Props) => {\n const navigate = useNavigate();\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(cache);\n const plugin = usePluginEntities('lookupTableCaches').find((p: CachePluginType) => p.type === cache.config?.type);\n\n if (!plugin) {\n return

    Unknown cache type {cache.config.type}. Is the plugin missing?

    ;\n }\n\n const handleEdit = (cacheName: string) => () => {\n navigate(Routes.SYSTEM.LOOKUPTABLES.CACHES.edit(cacheName));\n };\n\n return (\n \n \n

    {cache.title} ({plugin.displayName})

    \n \n \n Description:\n {cache.description || No description.}\n \n \n

    Configuration

    \n
    {React.createElement(plugin.summaryComponent, { cache: cache })}
    \n {(!loadingScopePermissions && scopePermissions?.is_mutable) && (\n \n )}\n \n
    \n );\n};\n\nexport default Cache;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { Formik, Form } from 'formik';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\nimport type { LookupTableCache, validationErrorsType } from 'src/logic/lookup-tables/types';\n\nimport { Col, Row } from 'components/bootstrap';\nimport { FormikFormGroup, FormSubmit } from 'components/common';\nimport { LookupTableCachesActions } from 'stores/lookup-tables/LookupTableCachesStore';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport Routes from 'routing/Routes';\nimport useHistory from 'routing/useHistory';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\ntype TitleProps = {\n title: string,\n typeName: string,\n create: boolean,\n};\n\nconst Title = ({ title, typeName, create }: TitleProps) => {\n const TagName = create ? 'h3' : 'h2';\n\n return (\n \n {title} ({typeName})\n \n );\n};\n\nconst INIT_CACHE: LookupTableCache = {\n id: undefined,\n title: '',\n description: '',\n name: '',\n config: {},\n};\n\ntype Props = {\n type: string,\n saved: () => void,\n title: string,\n create?: boolean,\n cache?: LookupTableCache,\n validate?: (arg: LookupTableCache) => void,\n validationErrors?: validationErrorsType,\n};\n\nconst CacheForm = ({ type, saved, title, create, cache, validate, validationErrors }: Props) => {\n const configRef = React.useRef(null);\n const [generateName, setGenerateName] = React.useState(create);\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(cache);\n const sendTelemetry = useSendTelemetry();\n\n const plugin = React.useMemo(() => PluginStore.exports('lookupTableCaches').find((p) => p.type === type), [type]);\n\n const pluginName = React.useMemo(() => (plugin.displayName || type), [plugin, type]);\n const DocComponent = React.useMemo(() => (plugin.documentationComponent), [plugin]);\n const configFieldSet = React.useMemo(() => {\n if (plugin) {\n return React.createElement(\n plugin.formComponent, { config: cache.config, ref: configRef },\n );\n }\n\n return null;\n }, [plugin, cache.config]);\n\n const sanitizeName = (inName: string) => inName.trim().replace(/\\W+/g, '-').toLocaleLowerCase();\n\n const handleTitleChange = (values: LookupTableCache, setValues: any) => (event: React.BaseSyntheticEvent) => {\n if (!generateName) return;\n const safeName = sanitizeName(event.target.value);\n\n setValues({\n ...values,\n title: event.target.value,\n name: safeName,\n });\n };\n\n const handleValidation = (values: LookupTableCache) => {\n const errors: any = {};\n\n if (!values.title) errors.title = 'Required';\n\n if (!values.name) {\n errors.name = 'Required';\n } else {\n validate(values);\n }\n\n if (values.config.type !== 'none') {\n const confErrors = configRef.current?.validate() || {};\n if (!isEmpty(confErrors)) errors.config = confErrors;\n }\n\n return errors;\n };\n\n const handleSubmit = (values: LookupTableCache) => {\n const promise = create\n ? LookupTableCachesActions.create(values)\n : LookupTableCachesActions.update(values);\n\n return promise.then(() => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT[create ? 'CACHE_CREATED' : 'CACHE_UPDATED'], {\n app_pathname: 'lut',\n app_section: 'lut_cache',\n event_details: {\n type: values?.config?.type,\n },\n });\n\n saved();\n });\n };\n\n const history = useHistory();\n const onCancel = () => history.push(Routes.SYSTEM.LOOKUPTABLES.CACHES.OVERVIEW);\n const updatable = !create && !loadingScopePermissions && scopePermissions?.is_mutable;\n\n return (\n <>\n \n <Row>\n <Col lg={6} style={{ marginTop: 10 }}>\n <Formik initialValues={{ ...INIT_CACHE, ...cache }}\n validate={handleValidation}\n validateOnBlur\n validateOnChange={false}\n validateOnMount={!create}\n onSubmit={handleSubmit}\n enableReinitialize>\n {({ errors, values, setValues, isSubmitting }) => (\n <Form className=\"form form-horizontal\">\n <fieldset>\n <FormikFormGroup type=\"text\"\n name=\"title\"\n label=\"* Title\"\n required\n help={errors.title ? null : 'A short title for this cache.'}\n onChange={handleTitleChange(values, setValues)}\n autoFocus\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <FormikFormGroup type=\"text\"\n name=\"description\"\n label=\"Description\"\n help=\"Cache description.\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <FormikFormGroup type=\"text\"\n name=\"name\"\n label=\"* Name\"\n required\n error={validationErrors.name ? validationErrors.name[0] : null}\n onChange={() => setGenerateName(false)}\n help={\n (errors.name || validationErrors.name)\n ? null\n : 'The name that is being used to refer to this cache. Must be unique.'\n }\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n\n </fieldset>\n {configFieldSet}\n <fieldset>\n <Row>\n <Col mdOffset={3} sm={12}>\n {create && (\n <FormSubmit submitButtonText=\"Create cache\"\n submitLoadingText=\"Creating cache...\"\n isSubmitting={isSubmitting}\n isAsyncSubmit\n onCancel={onCancel} />\n )}\n {updatable && (\n <FormSubmit submitButtonText=\"Update cache\"\n submitLoadingText=\"Updating cache...\"\n isAsyncSubmit\n isSubmitting={isSubmitting}\n onCancel={onCancel} />\n )}\n </Col>\n </Row>\n </fieldset>\n </Form>\n )}\n </Formik>\n </Col>\n <Col lg={6} style={{ marginTop: 10 }}>{DocComponent ? <DocComponent /> : null}</Col>\n </Row>\n </>\n );\n};\n\nCacheForm.defaultProps = {\n create: true,\n cache: INIT_CACHE,\n validate: null,\n validationErrors: {},\n};\n\nexport default CacheForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { LookupTableCache, validationErrorsType } from 'src/logic/lookup-tables/types';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport { Row, Col, Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\n\nimport CacheForm from './CacheForm';\nimport type { CachePluginType } from './types';\n\nconst INIT_CACHE: LookupTableCache = {\n id: null,\n title: '',\n name: '',\n description: '',\n config: { type: 'none' },\n};\n\ntype TypesType = { type?: string, lable?: string };\ntype cacheTypeOptionsType = { value: string, label: string }\n\ntype Props = {\n saved: () => void,\n types: TypesType[],\n validate: () => void,\n validationErrors: validationErrorsType,\n};\n\nconst CacheCreate = ({ saved, types, validate, validationErrors }: Props) => {\n const [type, setType] = React.useState<string>(null);\n const cachePlugins = usePluginEntities('lookupTableCaches');\n\n const plugins = React.useMemo(() => (\n cachePlugins.reduce((acc: any, plugin: CachePluginType) => {\n acc[plugin.type] = plugin;\n\n return acc;\n }, {})\n ), [cachePlugins]);\n\n const cacheTypes = React.useMemo(() => (\n Object.values(types)\n .map((inType: TypesType) => ({ value: inType.type, label: plugins[inType.type].displayName }))\n .sort((a: cacheTypeOptionsType, b: cacheTypeOptionsType) => naturalSort(a.label.toLowerCase(), b.label.toLowerCase()))\n ), [types, plugins]);\n\n const cache = React.useMemo(() => {\n if (type) {\n return {\n ...INIT_CACHE,\n config: { ...types[type]?.default_config },\n };\n }\n\n return null;\n }, [type, types]);\n\n const handleSelect = (selectedType: string) => {\n setType(selectedType);\n };\n\n return (\n <>\n <Row className=\"content\">\n <Col lg={6} className=\"form form-horizontal\">\n <Input id=\"cache-type-select\"\n label=\"Cache Type\"\n required\n autoFocus\n help=\"The type of cache to configure.\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select Cache Type\"\n clearable={false}\n options={cacheTypes}\n matchProp=\"label\"\n onChange={handleSelect}\n value={type} />\n </Input>\n </Col>\n </Row>\n {cache && (\n <Row className=\"content\">\n <Col lg={12}>\n <CacheForm cache={cache}\n type={type}\n title=\"Configure Cache\"\n create\n saved={saved}\n validationErrors={validationErrors}\n validate={validate} />\n </Col>\n </Row>\n )}\n </>\n );\n};\n\nexport default CacheCreate;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useField } from 'formik';\nimport type { LookupTableCache } from 'src/logic/lookup-tables/types';\n\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\n\ntype Props = {\n caches: LookupTableCache[],\n}\n\nconst CachePicker = ({ caches }: Props) => {\n const [, { value, touched, error }, { setTouched, setValue }] = useField('cache_id');\n const sortedCaches = caches.map((cache) => ({ value: cache.id, label: `${cache.title} (${cache.name})` })).sort((a, b) => naturalSort(a.label.toLowerCase(), b.label.toLowerCase()));\n\n const errorMessage = touched ? error : '';\n\n return (\n <fieldset>\n <Input id=\"cache-select\"\n label=\"Cache\"\n required\n autoFocus\n bsStyle={errorMessage ? 'error' : undefined}\n help={errorMessage || 'Select an existing cache'}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select a cache\"\n clearable={false}\n options={sortedCaches}\n matchProp=\"label\"\n onBlur={() => setTouched(true)}\n onChange={setValue}\n value={value} />\n </Input>\n </fieldset>\n );\n};\n\nCachePicker.propTypes = {\n caches: PropTypes.array,\n};\n\nCachePicker.defaultProps = {\n caches: [],\n};\n\nexport default CachePicker;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Spinner } from 'components/common';\nimport { LookupTableCachesActions, LookupTableCachesStore } from 'stores/lookup-tables/LookupTableCachesStore';\n\nconst CachesContainer = createReactClass({\n // eslint-disable-next-line\n displayName: 'CachesContainer',\n\n // eslint-disable-next-line\n propTypes: {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n },\n\n mixins: [Reflux.connect(LookupTableCachesStore)],\n\n getDefaultProps() {\n return {\n children: null,\n };\n },\n\n componentDidMount() {\n // TODO the 10k items is bad. we need a searchable/scrollable long list select box\n LookupTableCachesActions.searchPaginated(1, 10000, null);\n },\n\n render() {\n if (!this.state.caches) {\n return <Spinner />;\n }\n\n const childrenWithProps = React.Children.map(this.props.children,\n (child) => React.cloneElement(child,\n { caches: this.state.caches, pagination: this.state.pagination }));\n\n return <div>{childrenWithProps}</div>;\n },\n});\n\nexport default CachesContainer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport { Spinner } from 'components/common';\nimport Routes from 'routing/Routes';\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { ErrorPopover } from 'components/lookup-tables';\nimport { MetricContainer, CounterRate } from 'components/metrics';\nimport { LookupTableDataAdaptersActions } from 'stores/lookup-tables/LookupTableDataAdaptersStore';\nimport type { LookupTableAdapter } from 'logic/lookup-tables/types';\nimport useScopePermissions from 'hooks/useScopePermissions';\nimport useHistory from 'routing/useHistory';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst Actions = styled(ButtonToolbar)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n`;\n\ntype Props = {\n adapter: LookupTableAdapter,\n error: string,\n};\n\nconst DataAdapterTableEntry = ({ adapter, error = null }: Props) => {\n const history = useHistory();\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(adapter);\n const sendTelemetry = useSendTelemetry();\n\n const { name: adapterName, title: adapterTitle, description: adapterDescription, id: adapterId } = adapter;\n\n const _onEdit = React.useCallback(() => {\n history.push(Routes.SYSTEM.LOOKUPTABLES.DATA_ADAPTERS.edit(adapterName));\n }, [history, adapterName]);\n\n const _onDelete = React.useCallback(() => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT.DATA_ADAPTER_DELETED, {\n app_pathname: 'lut',\n app_section: 'lut_data_adapter',\n });\n\n // eslint-disable-next-line no-alert\n if (window.confirm(`Are you sure you want to delete data adapter \"${adapterTitle}\"?`)) {\n LookupTableDataAdaptersActions.delete(adapter.id).then(() => {\n LookupTableDataAdaptersActions.reloadPage();\n });\n }\n }, [adapterTitle, adapter.id, sendTelemetry]);\n\n return (\n <tbody>\n <tr>\n <td>\n {error && <ErrorPopover errorText={error} title=\"Lookup table problem\" placement=\"right\" />}\n <Link to={Routes.SYSTEM.LOOKUPTABLES.DATA_ADAPTERS.show(adapterName)}>{adapterTitle}</Link>\n </td>\n <td>{adapterDescription}</td>\n <td>{adapterName}</td>\n <td>\n <MetricContainer name={`org.graylog2.lookup.adapters.${adapterId}.requests`}>\n <CounterRate suffix=\"lookups/s\" />\n </MetricContainer>\n </td>\n <td>\n {loadingScopePermissions ? <Spinner /> : scopePermissions.is_mutable && (\n <Actions>\n <Button bsSize=\"xsmall\"\n onClick={_onEdit}\n role=\"button\"\n name=\"edit_square\">\n Edit\n </Button>\n <Button bsSize=\"xsmall\"\n bsStyle=\"danger\"\n onClick={_onDelete}\n role=\"button\"\n name=\"delete\">\n Delete\n </Button>\n </Actions>\n )}\n </td>\n </tr>\n </tbody>\n );\n};\n\nexport default DataAdapterTableEntry;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Row, Col, Table } from 'components/bootstrap';\nimport {\n PaginatedList,\n SearchForm,\n Spinner,\n NoSearchResult,\n NoEntitiesExist,\n} from 'components/common';\nimport DataAdapterTableEntry from 'components/lookup-tables/DataAdapterTableEntry';\nimport withPaginationQueryParameter from 'components/common/withPaginationQueryParameter';\nimport { LookupTableDataAdaptersActions } from 'stores/lookup-tables/LookupTableDataAdaptersStore';\nimport type { LookupTableAdapter, PaginationType } from 'logic/lookup-tables/types';\nimport type { PaginationQueryParameterResult } from 'hooks/usePaginationQueryParameter';\nimport QueryHelper from 'components/common/QueryHelper';\n\nimport Styles from './Overview.css';\n\nconst ScrollContainer = styled.div`\n overflow-x: auto;\n`;\n\nconst queryExamples = (\n <>\n <p>\n Find data adapters by parts of their names:<br />\n <kbd>name:geoip</kbd><br />\n <kbd>name:geo</kbd>\n </p>\n <p>\n Searching without a field name matches against the <code>title</code> field:<br />\n <kbd>geoip</kbd> <br />is the same as<br />\n <kbd>title:geoip</kbd>\n </p>\n </>\n);\n\nconst queryHelpComponent = (\n <QueryHelper entityName=\"data adapter\"\n commonFields={['id', 'title', 'name', 'description']}\n example={queryExamples} />\n);\n\nconst NoResults = ({ query }: { query: string }) => (\n <tbody>\n <tr>\n <td colSpan={5}>\n {query\n ? <NoSearchResult>No data adapters found with title "{query}"</NoSearchResult>\n : <NoEntitiesExist>There are no data adapters to list</NoEntitiesExist>}\n </td>\n </tr>\n </tbody>\n);\n\nconst DataRow = ({\n dataAdapters,\n query,\n errors,\n}: {\n dataAdapters: LookupTableAdapter[],\n query: string,\n errors: { [key: string]: string },\n}) => (dataAdapters.length > 0\n ? (\n <>\n {dataAdapters.map((dataAdapter: LookupTableAdapter) => (\n <DataAdapterTableEntry key={dataAdapter.id}\n adapter={dataAdapter}\n error={errors[dataAdapter.name]} />\n ))}\n </>\n ) : (\n <NoResults query={query} />\n ));\n\ntype Props = {\n dataAdapters: LookupTableAdapter[],\n pagination: PaginationType,\n errorStates: { [key: string]: { [key: string]: string } },\n paginationQueryParameter: PaginationQueryParameterResult,\n};\n\nconst DataAdaptersOverview = ({ dataAdapters, pagination, errorStates, paginationQueryParameter }: Props) => {\n const [loading, setLoading] = React.useState(false);\n const [localPagination, setLocalPagination] = React.useState({\n currentPage: paginationQueryParameter.page || 1,\n currentPageSize: paginationQueryParameter.pageSize || 10,\n currentQuery: pagination.query ? decodeURI(pagination.query) : '',\n resetPage: paginationQueryParameter.resetPage,\n setPagination: paginationQueryParameter.setPagination,\n });\n\n React.useEffect(() => {\n const { currentPage, currentPageSize, currentQuery } = localPagination;\n\n LookupTableDataAdaptersActions.searchPaginated(currentPage, currentPageSize, currentQuery)\n .then(() => setLoading(false));\n }, [localPagination]);\n\n const onPageChange = React.useCallback((newPage: number, newPerPage: number) => {\n setLocalPagination({ ...localPagination, currentPage: newPage, currentPageSize: newPerPage });\n }, [localPagination]);\n\n const onSearch = React.useCallback((query: string) => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: query });\n }, [localPagination]);\n\n const onReset = React.useCallback(() => {\n localPagination.resetPage();\n localPagination.setPagination({ page: 1, pageSize: localPagination.currentPageSize });\n setLocalPagination({ ...localPagination, currentPage: 1, currentQuery: '' });\n }, [localPagination]);\n\n return (\n <Row className=\"content\">\n <Col md={12}>\n <h2 style={{ marginBottom: 16 }}>\n Configured lookup Data Adapters <small>{pagination.total} total</small>\n </h2>\n <PaginatedList activePage={localPagination.currentPage}\n pageSize={localPagination.currentPageSize}\n onChange={onPageChange}\n totalItems={pagination.total}>\n <SearchForm onSearch={onSearch} onReset={onReset} queryHelpComponent={queryHelpComponent} />\n <ScrollContainer>\n <Table condensed hover className={Styles.overviewTable}>\n <thead>\n <tr>\n <th className={Styles.rowTitle}>Title</th>\n <th className={Styles.rowDescription}>Description</th>\n <th className={Styles.rowName}>Name</th>\n <th>Throughput</th>\n <th className={Styles.rowActions}>Actions</th>\n </tr>\n </thead>\n {loading ? <Spinner text=\"Loading data adapters\" /> : (\n <DataRow dataAdapters={dataAdapters}\n query={localPagination.currentQuery}\n errors={errorStates.dataAdapters} />\n )}\n </Table>\n </ScrollContainer>\n </PaginatedList>\n </Col>\n </Row>\n );\n};\n\nexport default withPaginationQueryParameter(DataAdaptersOverview);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport styled from 'styled-components';\n\nconst ConfigSummaryDefinitionListWrapper = styled.div`\n dl {\n margin-top: 10px;\n\n dt {\n float: left;\n clear: left;\n }\n\n dd {\n margin-left: 185px;\n word-wrap: break-word;\n\n &:not(:last-child) {\n border-bottom: 1px solid #ececec;\n margin-bottom: 5px;\n padding-bottom: 5px;\n }\n }\n }\n`;\n\nexport default ConfigSummaryDefinitionListWrapper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport { LinkContainer } from 'components/common/router';\nimport { Row, Col, Button, Input } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport Routes from 'routing/Routes';\nimport { LookupTableDataAdaptersActions } from 'stores/lookup-tables/LookupTableDataAdaptersStore';\nimport type { LookupTableAdapter } from 'logic/lookup-tables/types';\nimport useScopePermissions from 'hooks/useScopePermissions';\n\nimport type { DataAdapterPluginType } from './types';\nimport ConfigSummaryDefinitionListWrapper from './ConfigSummaryDefinitionListWrapper';\n\ntype Props = {\n dataAdapter: LookupTableAdapter,\n};\n\nconst DataAdapter = ({ dataAdapter }: Props) => {\n const [lookupKey, setLookupKey] = React.useState('');\n const [lookupResult, setLookupResult] = React.useState(null);\n const { loadingScopePermissions, scopePermissions } = useScopePermissions(dataAdapter);\n\n const _onChange = (event: React.SyntheticEvent) => {\n setLookupKey(getValueFromInput(event.target));\n };\n\n const _lookupKey = (event: React.SyntheticEvent) => {\n event.preventDefault();\n\n LookupTableDataAdaptersActions.lookup(dataAdapter.name, lookupKey).then((result: LookupTableAdapter[]) => {\n setLookupResult(result);\n });\n };\n\n const plugin = usePluginEntities('lookupTableAdapters').find((p: DataAdapterPluginType) => p.type === dataAdapter.config?.type);\n\n if (!plugin) {\n return <p>Unknown data adapter type {dataAdapter.config.type}. Is the plugin missing?</p>;\n }\n\n const { title: adapterTitle, description: adapterDescription, name: adapterName } = dataAdapter;\n const summary = plugin.summaryComponent;\n\n return (\n <Row className=\"content\">\n <Col md={6}>\n <h2>\n {adapterTitle}\n {' '}\n <small>({plugin.displayName})</small>\n </h2>\n <ConfigSummaryDefinitionListWrapper>\n <dl>\n <dt>Description</dt>\n <dd>{adapterDescription || <em>No description.</em>}</dd>\n </dl>\n </ConfigSummaryDefinitionListWrapper>\n <h4>Configuration</h4>\n <ConfigSummaryDefinitionListWrapper>\n {React.createElement(summary, { dataAdapter: dataAdapter })}\n </ConfigSummaryDefinitionListWrapper>\n {(!loadingScopePermissions && scopePermissions?.is_mutable) && (\n <LinkContainer to={Routes.SYSTEM.LOOKUPTABLES.DATA_ADAPTERS.edit(adapterName)}>\n <Button bsStyle=\"success\" role=\"button\" name=\"edit_square\">Edit</Button>\n </LinkContainer>\n )}\n </Col>\n <Col md={6}>\n <h3>Test lookup</h3>\n <p>You can manually trigger the data adapter using this form. The data will be not cached.</p>\n <form onSubmit={_lookupKey}>\n <fieldset>\n <Input type=\"text\"\n id=\"key\"\n name=\"key\"\n label=\"Key\"\n required\n onChange={_onChange}\n help=\"Key to look up a value for.\"\n value={lookupKey} />\n <Button type=\"submit\" bsStyle=\"success\">Look up</Button>\n </fieldset>\n </form>\n {lookupResult && (\n <div>\n <h4>Lookup result</h4>\n <pre>{JSON.stringify(lookupResult, null, 2)}</pre>\n </div>\n )}\n </Col>\n </Row>\n );\n};\n\nexport default DataAdapter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport { TimeUnitInput, FormSubmit } from 'components/common';\nimport { Col, Row, Input } from 'components/bootstrap';\nimport ObjectUtils from 'util/ObjectUtils';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { LookupTableDataAdaptersActions } from 'stores/lookup-tables/LookupTableDataAdaptersStore';\nimport Routes from 'routing/Routes';\nimport withHistory from 'routing/withHistory';\nimport withTelemetry from 'logic/telemetry/withTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nclass DataAdapterForm extends React.Component {\n validationCheckTimer = undefined;\n\n _input = undefined;\n\n static propTypes = {\n type: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n saved: PropTypes.func.isRequired,\n create: PropTypes.bool,\n dataAdapter: PropTypes.object,\n validate: PropTypes.func,\n validationErrors: PropTypes.object,\n sendTelemetry: PropTypes.func,\n history: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n create: true,\n dataAdapter: {\n id: undefined,\n title: '',\n description: '',\n name: '',\n custom_error_ttl_enabled: false,\n custom_error_ttl: null,\n custom_error_ttl_unit: null,\n config: {},\n },\n validate: null,\n validationErrors: {},\n sendTelemetry: () => {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = this._initialState(props.dataAdapter);\n }\n\n componentDidMount() {\n this._input.getInputDOMNode().focus();\n const { create, dataAdapter } = this.props;\n\n if (!create) {\n // Validate when mounted to immediately show errors for invalid objects\n this._validate(dataAdapter);\n }\n }\n\n componentDidUpdate(prevProps) {\n const { type: currentType } = this.props;\n\n if (prevProps.type !== currentType) {\n this._input.getInputDOMNode().focus();\n }\n\n const { dataAdapter } = this.props;\n\n if (isEqual(dataAdapter, prevProps.dataAdapter)) {\n // props haven't changed, don't update our state from them\n return;\n }\n\n this.updateState(dataAdapter);\n }\n\n componentWillUnmount() {\n this._clearTimer();\n }\n\n updateState = (dataAdapter) => {\n this.setState(this._initialState(dataAdapter));\n };\n\n _initialState = (dataAdapter) => {\n const adapter = ObjectUtils.clone(dataAdapter);\n const { create } = this.props;\n\n return {\n // when creating always initially auto-generate the adapter name,\n // this will be false if the user changed the adapter name manually\n generateAdapterName: create,\n isFormDisabled: false,\n dataAdapter: {\n id: adapter.id,\n title: adapter.title,\n description: adapter.description,\n name: adapter.name,\n custom_error_ttl_enabled: adapter.custom_error_ttl_enabled,\n custom_error_ttl: adapter.custom_error_ttl,\n custom_error_ttl_unit: adapter.custom_error_ttl_unit,\n config: adapter.config,\n },\n };\n };\n\n _clearTimer = () => {\n if (this.validationCheckTimer !== undefined) {\n clearTimeout(this.validationCheckTimer);\n this.validationCheckTimer = undefined;\n }\n };\n\n _setIsFormDisabled = (isDisabled) => {\n this.setState({ isFormDisabled: isDisabled });\n };\n\n _validate = (adapter) => {\n const { validate } = this.props;\n\n // first cancel outstanding validation timer, we have new data\n this._clearTimer();\n\n if (validate) {\n this.validationCheckTimer = setTimeout(() => validate(adapter), 500);\n }\n };\n\n _onChange = (event) => {\n const { dataAdapter: dataAdapterState } = this.state;\n const dataAdapter = ObjectUtils.clone(dataAdapterState);\n\n dataAdapter[event.target.name] = getValueFromInput(event.target);\n let { generateAdapterName } = this.state;\n\n if (generateAdapterName && event.target.name === 'title') {\n // generate the name\n dataAdapter.name = this._sanitizeTitle(dataAdapter.title);\n }\n\n if (event.target.name === 'name') {\n // the adapter name has been changed manually, no longer automatically change it\n generateAdapterName = false;\n }\n\n this._validate(dataAdapter);\n this.setState({ dataAdapter: dataAdapter, generateAdapterName: generateAdapterName });\n };\n\n _onConfigChange = (event) => {\n const { dataAdapter: dataAdapterState } = this.state;\n const dataAdapter = ObjectUtils.clone(dataAdapterState);\n\n dataAdapter.config[event.target.name] = getValueFromInput(event.target);\n this._validate(dataAdapter);\n this.setState({ dataAdapter: dataAdapter });\n };\n\n _updateConfig = (newConfig) => {\n const { dataAdapter: dataAdapterState } = this.state;\n const dataAdapter = ObjectUtils.clone(dataAdapterState);\n\n dataAdapter.config = newConfig;\n this._validate(dataAdapter);\n this.setState({ dataAdapter: dataAdapter });\n };\n\n updateCustomErrorTTL = (value, unit, enabled) => {\n this._updateCustomErrorTTL(value, unit, enabled, 'custom_error_ttl');\n };\n\n _updateCustomErrorTTL = (value, unit, enabled, fieldPrefix) => {\n const { dataAdapter: dataAdapterState } = this.state;\n const dataAdapter = ObjectUtils.clone(dataAdapterState);\n\n if (enabled && value) {\n dataAdapter[fieldPrefix] = enabled && value ? value : null;\n dataAdapter[`${fieldPrefix}_enabled`] = enabled;\n } else {\n dataAdapter[fieldPrefix] = null;\n dataAdapter[`${fieldPrefix}_enabled`] = false;\n }\n\n dataAdapter[`${fieldPrefix}_unit`] = enabled ? unit : null;\n this._validate(dataAdapter);\n this.setState({ dataAdapter: dataAdapter });\n };\n\n _save = (event) => {\n if (event) {\n event.preventDefault();\n }\n\n const { dataAdapter } = this.state;\n const { create, saved, sendTelemetry } = this.props;\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.LUT[create ? 'DATA_ADAPTER_CREATED' : 'DATA_ADAPTER_UPDATED'], {\n app_pathname: 'lut',\n app_section: 'lut_data_adapter',\n event_details: {\n type: dataAdapter?.config?.type,\n },\n });\n\n let promise;\n\n if (create) {\n promise = LookupTableDataAdaptersActions.create(dataAdapter);\n } else {\n promise = LookupTableDataAdaptersActions.update(dataAdapter);\n }\n\n promise.then(() => {\n saved();\n });\n };\n\n // eslint-disable-next-line\n _sanitizeTitle = (title) => {\n return title.trim().replace(/\\W+/g, '-').toLocaleLowerCase();\n };\n\n _validationState = (fieldName) => {\n const { validationErrors } = this.props;\n\n if (validationErrors[fieldName]) {\n return 'error';\n }\n\n return null;\n };\n\n _validationMessage = (fieldName, defaultText) => {\n const { validationErrors } = this.props;\n\n if (validationErrors[fieldName]) {\n return (\n <div>\n <span>{defaultText}</span>\n  \n <span><b>{validationErrors[fieldName][0]}</b></span>\n </div>\n );\n }\n\n return <span>{defaultText}</span>;\n };\n\n // eslint-disable-next-line\n _renderTitle = (title, typeName, create) => {\n const TagName = create ? 'h3' : 'h2';\n\n return <TagName>{title} <small>({typeName})</small></TagName>;\n };\n\n render() {\n const { dataAdapter, isFormDisabled } = this.state;\n const { create, type, title, history } = this.props;\n const adapterPlugins = PluginStore.exports('lookupTableAdapters');\n\n const plugin = adapterPlugins.filter((p) => p.type === type);\n const onCancel = () => history.push(Routes.SYSTEM.LOOKUPTABLES.DATA_ADAPTERS.OVERVIEW);\n let configFieldSet = null;\n let documentationComponent = null;\n let pluginDisplayName = dataAdapter.config.type;\n\n if (plugin && plugin.length > 0) {\n const p = plugin[0];\n\n pluginDisplayName = p.displayName;\n\n configFieldSet = React.createElement(p.formComponent, {\n config: dataAdapter.config,\n handleFormEvent: this._onConfigChange,\n updateConfig: this._updateConfig,\n validationMessage: this._validationMessage,\n validationState: this._validationState,\n setDisableFormSubmission: this._setIsFormDisabled,\n });\n\n if (p.documentationComponent) {\n documentationComponent = React.createElement(p.documentationComponent, {\n dataAdapterId: dataAdapter.id,\n });\n }\n }\n\n let documentationColumn = null;\n let formRowWidth = 8; // If there is no documentation component, we don't use the complete page\n\n // width\n if (documentationComponent) {\n formRowWidth = 6;\n\n documentationColumn = (\n <Col lg={formRowWidth}>\n {documentationComponent}\n </Col>\n );\n }\n\n return (\n <>\n <p>\n {this._renderTitle(title, pluginDisplayName, create)}\n </p>\n <Row>\n <Col lg={formRowWidth}>\n <form className=\"form form-horizontal\" onSubmit={this._save}>\n <fieldset>\n <Input type=\"text\"\n id=\"title\"\n name=\"title\"\n label=\"Title\"\n autoFocus\n required\n onChange={this._onChange}\n help=\"A short title for this data adapter.\"\n value={dataAdapter.title}\n labelClassName=\"col-sm-3\"\n ref={(ref) => { this._input = ref; }}\n wrapperClassName=\"col-sm-9\" />\n\n <Input type=\"text\"\n id=\"description\"\n name=\"description\"\n label=\"Description\"\n onChange={this._onChange}\n help=\"Data adapter description.\"\n value={dataAdapter.description}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n\n <Input type=\"text\"\n id=\"name\"\n name=\"name\"\n label=\"Name\"\n required\n onChange={this._onChange}\n help={this._validationMessage('name',\n 'The name that is being used to refer to this data adapter. Must be unique.')}\n value={dataAdapter.name}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\"\n bsStyle={this._validationState('name')} />\n\n <TimeUnitInput label=\"Custom Error TTL\"\n help=\"Define a custom TTL for caching erroneous results. Otherwise the default of 5 seconds is used\"\n update={this.updateCustomErrorTTL}\n value={dataAdapter.custom_error_ttl}\n unit={dataAdapter.custom_error_ttl_unit || 'MINUTES'}\n units={['MILLISECONDS', 'SECONDS', 'MINUTES', 'HOURS', 'DAYS']}\n enabled={dataAdapter.custom_error_ttl_enabled}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n </fieldset>\n {configFieldSet}\n <fieldset>\n <Row>\n <Col mdOffset={3} md={9}>\n <FormSubmit submitButtonText={create ? 'Create adapter' : 'Update adapter'}\n disabledSubmit={isFormDisabled}\n onCancel={onCancel} />\n </Col>\n </Row>\n </fieldset>\n </form>\n </Col>\n {documentationColumn}\n </Row>\n </>\n );\n }\n}\n\nexport default withTelemetry(withHistory(DataAdapterForm));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { Select } from 'components/common';\nimport { Row, Col, Input } from 'components/bootstrap';\nimport { DataAdapterForm } from 'components/lookup-tables';\nimport ObjectUtils from 'util/ObjectUtils';\n\nclass DataAdapterCreate extends React.Component {\n static propTypes = {\n saved: PropTypes.func.isRequired,\n types: PropTypes.object.isRequired,\n validate: PropTypes.func,\n validationErrors: PropTypes.object,\n };\n\n static defaultProps = {\n validate: null,\n validationErrors: {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n dataAdapter: undefined,\n type: undefined,\n };\n }\n\n _onTypeSelect = (adapterType) => {\n const { types } = this.props;\n\n this.setState({\n type: adapterType,\n dataAdapter: {\n id: null,\n title: '',\n name: '',\n description: '',\n config: ObjectUtils.clone(types[adapterType].default_config),\n },\n });\n };\n\n render() {\n const {\n types,\n validate,\n validationErrors,\n saved,\n } = this.props;\n const { type, dataAdapter } = this.state;\n const adapterPlugins = {};\n\n PluginStore.exports('lookupTableAdapters').forEach((p) => {\n adapterPlugins[p.type] = p;\n });\n\n const sortedAdapters = Object.keys(types).map((key) => {\n const typeItem = types[key];\n\n if (adapterPlugins[typeItem.type] === undefined) {\n // eslint-disable-next-line no-console\n console.error(`Plugin component for data adapter type ${typeItem.type} is missing - invalid or missing plugin?`);\n\n return { value: typeItem.type, disabled: true, label: `${typeItem.type} - missing or invalid plugin` };\n }\n\n return { value: typeItem.type, label: adapterPlugins[typeItem.type].displayName };\n }).sort((a, b) => naturalSort(a.label.toLowerCase(), b.label.toLowerCase()));\n\n return (\n <div>\n <Row className=\"content\">\n <Col lg={8}>\n <form className=\"form form-horizontal\" onSubmit={() => {}}>\n <Input id=\"data-adapter-type-select\"\n label=\"Data Adapter Type\"\n required\n autoFocus\n help=\"The type of data adapter to configure.\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select Data Adapter Type\"\n clearable={false}\n options={sortedAdapters}\n matchProp=\"label\"\n onChange={this._onTypeSelect}\n value={null} />\n </Input>\n </form>\n </Col>\n </Row>\n {dataAdapter && (\n <Row className=\"content\">\n <Col lg={12}>\n <DataAdapterForm dataAdapter={dataAdapter}\n type={type}\n create\n title=\"Configure Adapter\"\n validate={validate}\n validationErrors={validationErrors}\n saved={saved} />\n </Col>\n </Row>\n )}\n </div>\n );\n }\n}\n\nexport default DataAdapterCreate;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport { useField } from 'formik';\nimport PropTypes from 'prop-types';\nimport type { LookupTableAdapter } from 'src/logic/lookup-tables/types';\n\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\n\ntype Props = {\n dataAdapters: LookupTableAdapter[],\n}\n\nconst DataAdapterPicker = ({\n dataAdapters,\n}: Props) => {\n const [, { value, touched, error }, { setTouched, setValue }] = useField('data_adapter_id');\n const sortedAdapters = dataAdapters.map((adapter: LookupTableAdapter) => ({ value: adapter.id, label: `${adapter.title} (${adapter.name})` })).sort((a, b) => naturalSort(a.label.toLowerCase(), b.label.toLowerCase()));\n\n const errorMessage = touched ? error : '';\n\n return (\n <fieldset>\n <Input id=\"data-adapter-select\"\n label=\"Data Adapter\"\n required\n autoFocus\n bsStyle={errorMessage ? 'error' : undefined}\n help={errorMessage || 'Select an existing data adapter'}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select a data adapter\"\n clearable={false}\n options={sortedAdapters}\n matchProp=\"label\"\n onBlur={() => setTouched(true)}\n onChange={setValue}\n value={value} />\n </Input>\n </fieldset>\n );\n};\n\nDataAdapterPicker.propTypes = {\n dataAdapters: PropTypes.array,\n};\n\nDataAdapterPicker.defaultProps = {\n dataAdapters: [],\n};\n\nexport default DataAdapterPicker;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Spinner } from 'components/common';\nimport { LookupTableDataAdaptersActions, LookupTableDataAdaptersStore } from 'stores/lookup-tables/LookupTableDataAdaptersStore';\n\nconst DataAdaptersContainer = createReactClass({\n displayName: 'DataAdaptersContainer',\n\n propTypes: {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n },\n\n mixins: [Reflux.connect(LookupTableDataAdaptersStore)],\n\n getDefaultProps() {\n return {\n children: null,\n };\n },\n\n componentDidMount() {\n // TODO the 10k items is bad. we need a searchable/scrollable long list select box\n LookupTableDataAdaptersActions.searchPaginated(1, 10000, null);\n },\n\n render() {\n if (!this.state.dataAdapters) {\n return <Spinner />;\n }\n\n const childrenWithProps = React.Children.map(this.props.children,\n (child) => React.cloneElement(child,\n { dataAdapters: this.state.dataAdapters, pagination: this.state.pagination }));\n\n return <div>{childrenWithProps}</div>;\n },\n});\n\nexport default DataAdaptersContainer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport { OverlayTrigger, Icon } from 'components/common';\n\ntype Props = {\n errorText: string,\n title: string,\n placement: 'bottom' | 'top' | 'right' | 'left',\n};\n\nconst StyledSpan = styled.span`\n margin-right: 5px;\n`;\n\nconst ErrorPopover = ({ errorText, title = 'Error', placement = 'bottom' }: Props) => (\n <OverlayTrigger trigger={['hover', 'focus']} placement={placement} overlay={errorText} title={title} width={400}>\n <StyledSpan>\n <Icon name=\"warning\" className=\"text-danger\" />\n </StyledSpan>\n </OverlayTrigger>\n);\n\nexport default ErrorPopover;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport TimeHelper from 'util/TimeHelper';\n\nclass CounterRate extends React.Component {\n static propTypes = {\n metric: PropTypes.object,\n showTotal: PropTypes.bool,\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n hideOnZero: PropTypes.bool,\n hideOnMissing: PropTypes.bool,\n };\n\n static defaultProps = {\n showTotal: false,\n prefix: null,\n suffix: 'per second',\n hideOnZero: false,\n hideOnMissing: false,\n };\n\n state = {\n prevMetric: null,\n prevTs: null,\n nowTs: TimeHelper.nowInSeconds(),\n };\n\n UNSAFE_componentWillReceiveProps() {\n this.setState({\n prevMetric: this.props.metric,\n prevTs: this.state.nowTs,\n nowTs: TimeHelper.nowInSeconds(),\n });\n }\n\n _checkPrevMetric = () => this.state.prevMetric && this.state.prevMetric.count !== undefined && this.state.prevTs;\n\n _placeholder = () => {\n if (this.props.hideOnZero) {\n return null;\n }\n\n return (<span>{this._prefix()}Calculating...</span>);\n };\n\n _prefix = () => {\n if (this.props.prefix) {\n return `${this.props.prefix} `;\n }\n\n return null;\n };\n\n _suffix = () => {\n if (this.props.suffix) {\n return ` ${this.props.suffix}`;\n }\n\n return null;\n };\n\n render() {\n if (!(this.props.metric && this.props.metric.count !== undefined)) {\n if (this.props.hideOnMissing) {\n return null;\n }\n\n if (!this._checkPrevMetric()) {\n return this._placeholder();\n }\n }\n\n const { count } = this.props.metric;\n\n let rate = null;\n\n if (this._checkPrevMetric()) {\n const rateNum = (count - this.state.prevMetric.count) / (this.state.nowTs - this.state.prevTs);\n\n rate = (<span key=\"rate\" className=\"number-format\">{this._prefix()}{numeral(rateNum).format('0,0')}{this._suffix()}</span>);\n } else {\n return this._placeholder();\n }\n\n if (this.props.hideOnMissing && !rate) {\n return null;\n }\n\n return (\n <span>\n {rate}\n {this.props.showTotal && <span key=\"absolute\" className=\"number-format\"> ({numeral(count).format('0')} total)</span>}\n </span>\n );\n }\n}\n\nexport default CounterRate;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useState } from 'react';\n\nimport { MetricDetails } from 'components/metrics';\nimport { Icon } from 'components/common';\nimport type { Metric as MetricType } from 'stores/metrics/MetricsStore';\n\nconst iconMapping = {\n timer: 'schedule',\n histogram: 'signal_cellular_alt',\n meter: 'play_circle',\n gauge: 'speed',\n counter: 'circle',\n unknown: 'help',\n};\n\nconst _formatIcon = (type: string) => iconMapping[type] ?? iconMapping.unknown;\n\nconst _formatName = (metricName: string, namespace: string) => {\n const split = metricName.split(namespace);\n const unqualifiedMetricName = split.slice(1).join(namespace);\n\n return (\n <span>\n <span className=\"prefix\">{namespace}</span>\n {unqualifiedMetricName}\n </span>\n );\n};\n\ntype Props = {\n metric: MetricType,\n namespace: string,\n nodeId: string,\n}\n\nconst Metric = ({ metric, namespace, nodeId }: Props) => {\n const [expanded, setExpanded] = useState(false);\n const _showDetails = useCallback((e) => {\n e.preventDefault();\n setExpanded((_expanded) => !_expanded);\n }, []);\n\n const details = expanded ? <MetricDetails nodeId={nodeId} metric={metric} /> : null;\n\n return (\n <span>\n <div className=\"name\">\n <Icon name={_formatIcon(metric.type)} />{' '}\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a className=\"open\" href=\"#\" onClick={_showDetails}>{_formatName(metric.full_name, namespace)}</a>\n </div>\n {details}\n </span>\n );\n};\n\nMetric.propTypes = {\n metric: PropTypes.object.isRequired,\n namespace: PropTypes.string.isRequired,\n nodeId: PropTypes.string.isRequired,\n};\n\nexport default Metric;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport TimeHelper from 'util/TimeHelper';\nimport connect from 'stores/connect';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\nimport type { ClusterMetric } from 'stores/metrics/MetricsStore';\nimport type { Store } from 'stores/StoreTypes';\nimport { MetricsActions, MetricsStore } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metrics: ClusterMetric,\n metricsUpdatedAt: number,\n name: string,\n zeroOnMissing: boolean,\n children: React.ReactElement[] | React.ReactElement,\n};\n\nclass MetricContainer extends React.Component<Props> {\n static propTypes = {\n metricsUpdatedAt: PropTypes.number,\n name: PropTypes.string.isRequired,\n zeroOnMissing: PropTypes.bool,\n };\n\n static defaultProps = {\n metricsUpdatedAt: TimeHelper.nowInSeconds(),\n zeroOnMissing: true,\n };\n\n componentDidMount() {\n const { name } = this.props;\n\n MetricsActions.addGlobal(name);\n }\n\n shouldComponentUpdate(nextProps) {\n // Do not render this component and it's children when no metric data has changed.\n // This component and the CounterRate component expect to be rendered every second or less often. When using\n // these components on a page that triggers a re-render more often - e.g. by having another setInterval - the\n // calculation in CounterRate will break.\n const { metricsUpdatedAt } = this.props;\n\n if (metricsUpdatedAt !== null && nextProps.metricsUpdatedAt) {\n return nextProps.metricsUpdatedAt > metricsUpdatedAt;\n }\n\n return true;\n }\n\n componentWillUnmount() {\n const { name } = this.props;\n\n MetricsActions.removeGlobal(name);\n }\n\n render() {\n const { children, metrics, name: fullName, zeroOnMissing } = this.props;\n\n if (!metrics) {\n return (<span>Loading...</span>);\n }\n\n let throughput = Object.keys(metrics)\n .map((nodeId) => MetricsExtractor.getValuesForNode(metrics[nodeId], { throughput: fullName }))\n .reduce((accumulator: { throughput?: number }, currentMetric: { throughput: number | undefined | null }): { throughput?: number } => ({ throughput: (accumulator.throughput || 0) + (currentMetric.throughput || 0) }), {});\n\n if (zeroOnMissing && (!throughput || !throughput.throughput)) {\n throughput = { throughput: 0 };\n }\n\n return (\n <div>\n {\n React.Children.map(children, (child) => React.cloneElement(child, { metric: { full_name: fullName, count: throughput.throughput } }))\n }\n </div>\n );\n }\n}\n\ntype MetricsStoreState = {\n metrics: ClusterMetric,\n metricsUpdatedAt: number,\n};\n\nexport default connect(MetricContainer,\n { metricsStore: MetricsStore as Store<MetricsStoreState> },\n ({ metricsStore, ...otherProps }) => ({\n ...otherProps,\n metrics: metricsStore.metrics,\n metricsUpdatedAt: metricsStore.metricsUpdatedAt,\n }));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport type { CounterMetric } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metric: CounterMetric,\n}\nconst CounterDetails = ({ metric: { metric } }: Props) => (\n <dl className=\"metric-def metric-counter\">\n <dt>Value:</dt>\n <dd><span className=\"number-format\">{numeral(metric.count).format('0,0')}</span></dd>\n </dl>\n);\n\nCounterDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n};\n\nexport default CounterDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport type { GaugeMetric } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metric: GaugeMetric,\n}\nconst GaugeDetails = ({ metric: { metric: gauge } }: Props) => (\n <dl className=\"metric-def metric-gauge\">\n <dt>Value:</dt>\n <dd><span className=\"number-format\">{numeral(gauge.value).format('0,0')}</span></dd>\n </dl>\n);\n\nGaugeDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n};\n\nexport default GaugeDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport type { HistogramMetric } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metric: HistogramMetric,\n};\nconst HistogramDetails = ({ metric: { metric: histogram } }: Props) => (\n <dl className=\"metric-def metric-histogram\">\n <dt>95th percentile:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time['95th_percentile']).format('0,0.[00]')}</span></dd>\n <dt>98th percentile:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time['98th_percentile']).format('0,0.[00]')}</span></dd>\n <dt>99th percentile:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time['99th_percentile']).format('0,0.[00]')}</span></dd>\n <dt>Standard deviation:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time.std_dev).format('0,0.[00]')}</span></dd>\n <dt>Mean:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time.mean).format('0,0.[00]')}</span></dd>\n <dt>Minimum:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time.min).format('0,0.[00]')}</span></dd>\n <dt>Maximum:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.time.max).format('0,0.[00]')}</span></dd>\n <dt>Count:</dt>\n <dd><span className=\"number-format\">{numeral(histogram.count).format('0,0')}</span></dd>\n </dl>\n);\n\nHistogramDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n};\n\nexport default HistogramDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport type { MeterMetric } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metric: MeterMetric,\n}\nconst MeterDetails = ({ metric: { metric: meter } }: Props) => (\n <dl className=\"metric-def metric-meter\">\n <dt>Total:</dt>\n <dd><span className=\"number-format\">{numeral(meter.rate.total).format('0,0')}</span> events</dd>\n <dt>Mean:</dt>\n <dd><span className=\"number-format\">{numeral(meter.rate.mean).format('0,0.[00]')}</span> {meter.rate_unit}</dd>\n <dt>1 minute avg:</dt>\n <dd><span className=\"number-format\">{numeral(meter.rate.one_minute).format('0,0.[00]')}</span> {meter.rate_unit}</dd>\n <dt>5 minute avg:</dt>\n <dd><span className=\"number-format\">{numeral(meter.rate.five_minute).format('0,0.[00]')}</span> {meter.rate_unit}</dd>\n <dt>15 minute avg:</dt>\n <dd><span className=\"number-format\">{numeral(meter.rate.fifteen_minute).format('0,0.[00]')}</span> {meter.rate_unit}</dd>\n </dl>\n);\n\nMeterDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n};\n\nexport default MeterDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\n\nimport type { TimerMetric } from 'stores/metrics/MetricsStore';\n\ntype Props = {\n metric: TimerMetric,\n}\nconst TimerDetails = ({ metric: { metric: { time: timing } } }: Props) => (\n <dl className=\"metric-def metric-timer\">\n <dt>95th percentile:</dt>\n <dd><span>{numeral(timing['95th_percentile']).format('0,0.[00]')}</span>μs</dd>\n\n <dt>98th percentile:</dt>\n <dd><span>{numeral(timing['98th_percentile']).format('0,0.[00]')}</span>μs</dd>\n\n <dt>99th percentile:</dt>\n <dd><span>{numeral(timing['99th_percentile']).format('0,0.[00]')}</span>μs</dd>\n\n <dt>Standard deviation:</dt>\n <dd><span>{numeral(timing.std_dev).format('0,0.[00]')}</span>μs</dd>\n\n <dt>Mean:</dt>\n <dd><span>{numeral(timing.mean).format('0,0.[00]')}</span>μs</dd>\n\n <dt>Minimum:</dt>\n <dd><span>{numeral(timing.min).format('0,0.[00]')}</span>μs</dd>\n\n <dt>Maximum:</dt>\n <dd><span>{numeral(timing.max).format('0,0.[00]')}</span>μs</dd>\n </dl>\n);\n\nTimerDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n};\n\nexport default TimerDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport capitalize from 'lodash/capitalize';\nimport styled from 'styled-components';\n\nimport CounterDetails from 'components/metrics/CounterDetails';\nimport GaugeDetails from 'components/metrics/GaugeDetails';\nimport HistogramDetails from 'components/metrics/HistogramDetails';\nimport MeterDetails from 'components/metrics/MeterDetails';\nimport TimerDetails from 'components/metrics/TimerDetails';\nimport { useStore } from 'stores/connect';\nimport type { Metric } from 'stores/metrics/MetricsStore';\nimport { MetricsActions, MetricsStore } from 'stores/metrics/MetricsStore';\n\nconst DetailsForType = ({ metric }: { metric: Metric }) => {\n switch (metric.type) {\n case 'counter':\n return <CounterDetails metric={metric} />;\n case 'gauge':\n return <GaugeDetails metric={metric} />;\n case 'histogram':\n return <HistogramDetails metric={metric} />;\n case 'meter':\n return <MeterDetails metric={metric} />;\n case 'timer':\n return <TimerDetails metric={metric} />;\n default:\n return <i>Invalid metric type: {metric}</i>;\n }\n};\n\nconst StyledMetricDetail = styled.div`\n dl {\n > dt {\n float: left;\n }\n\n &.metric-timer > dd {\n margin-left: 145px;\n }\n\n &.metric-meter > dd {\n margin-left: 115px;\n }\n\n &.metric-gauge > dd {\n margin-left: 90px;\n }\n\n &.metric-counter > dd {\n margin-left: 90px;\n }\n\n &.metric-histogram > dd {\n margin-left: 145px;\n }\n }\n`;\n\ntype Props = {\n metric: Metric,\n nodeId: string,\n}\n\nconst MetricDetails = ({ nodeId, metric, metric: { full_name: metricName } }: Props) => {\n const metrics = useStore(MetricsStore, (metricsStoreState) => metricsStoreState.metrics);\n\n useEffect(() => {\n MetricsActions.add(nodeId, metricName);\n\n return () => { MetricsActions.remove(nodeId, metricName); };\n }, [metricName, nodeId]);\n\n const currentMetric = metrics?.[nodeId]?.[metricName] ?? metric;\n const type = capitalize(currentMetric.type);\n\n return (\n <div className=\"metric\">\n <h3>{type}</h3>\n <StyledMetricDetail>\n <DetailsForType metric={currentMetric} />\n </StyledMetricDetail>\n </div>\n );\n};\n\nMetricDetails.propTypes = {\n metric: PropTypes.object.isRequired,\n nodeId: PropTypes.string.isRequired,\n};\n\nexport default MetricDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Alert, Col, Row } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport { MetricsList } from 'components/metrics';\nimport SearchForm from 'components/common/SearchForm';\nimport type { Metric } from 'stores/metrics/MetricsStore';\n\nconst StyledWarningDiv = styled.div(({ theme }) => `\n height: 20px;\n margin-bottom: 5px;\n color: ${theme.colors.variant.dark.danger};\n`);\n\ntype Props = {\n names: Array<Metric>,\n namespace: string,\n nodeId: string,\n filter?: string,\n error?: {\n responseMessage: string,\n status: number,\n }\n};\n\nconst safelyFilterNames = (filter: string, names: Array<Metric>) => {\n try {\n const filterRegex = new RegExp(filter, 'i');\n\n return names.filter((metric) => String(metric.full_name).match(filterRegex));\n } catch (e) {\n return [];\n }\n};\n\ntype State = {\n filter: string,\n}\n\nconst MetricsListContainer = styled.div`\n padding-top: 10px;\n width: 100%;\n`;\n\nclass MetricsComponent extends React.Component<Props, State> {\n static propTypes = {\n names: PropTypes.arrayOf(PropTypes.object),\n namespace: PropTypes.string.isRequired,\n nodeId: PropTypes.string.isRequired,\n filter: PropTypes.string,\n error: PropTypes.shape({\n responseMessage: PropTypes.string,\n status: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n names: undefined,\n filter: '',\n error: undefined,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = { filter: props.filter };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (nextProps.filter !== this.props.filter) {\n this.setState({ filter: nextProps.filter });\n }\n }\n\n onFilterChange = (nextFilter: string) => {\n this.setState({ filter: nextFilter });\n };\n\n render() {\n const { filter } = this.state;\n const { names, error } = this.props;\n\n if (!names) {\n return (\n <Row className=\"content\">\n <Col md={12}>\n <Alert bsStyle=\"danger\">\n {error ? (\n <span>\n Could not fetch metrics from node: server returned <em>{error.responseMessage || ''}</em>{' '}\n with a {error.status} status code.\n </span>\n ) : (\n <span>There was a problem fetching node metrics.</span>\n )}\n {' '}Graylog will keep trying to get them in the background.\n </Alert>\n </Col>\n </Row>\n );\n }\n\n const filteredNames = safelyFilterNames(filter, names);\n\n return (\n <Row className=\"content\">\n <Col md={12}>\n <StyledWarningDiv className=\"text-warning\">\n {error && (\n <>\n <Icon name=\"warning\" /> \n Could not fetch metrics from node: server returned <em>{error.responseMessage || ''}</em>{' '}\n with a {error.status} status code. Displaying last metrics available.\n </>\n )}\n </StyledWarningDiv>\n <SearchForm query={filter}\n onSearch={this.onFilterChange}\n queryWidth={300}\n placeholder=\"Type a metric name to filter…\">\n <MetricsListContainer>\n <MetricsList names={filteredNames} namespace={this.props.namespace} nodeId={this.props.nodeId} />\n </MetricsListContainer>\n </SearchForm>\n </Col>\n </Row>\n );\n }\n}\n\nexport default MetricsComponent;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Metric } from 'components/metrics';\nimport type { Metric as MetricType } from 'stores/metrics/MetricsStore';\n\nconst MetricListWrap = styled.ul(({ theme }) => css`\n padding: 0;\n\n li {\n margin-bottom: 5px;\n\n .prefix {\n color: ${theme.colors.gray[70]};\n }\n\n .name {\n font-size: ${theme.fonts.size.body};\n font-family: ${theme.fonts.family.monospace};\n word-break: break-all;\n\n .open:hover {\n text-decoration: none;\n }\n }\n\n .metric {\n margin-left: 10px;\n padding: 10px;\n\n h3 {\n margin-bottom: 5px;\n }\n }\n }\n\n dl {\n margin-top: 0;\n margin-bottom: 0;\n }\n`);\n\nexport type MetricInfo = {\n type: string,\n full_name: string,\n}\ntype Props = {\n namespace: string,\n nodeId: string,\n names: Array<MetricType>,\n}\n\nclass MetricsList extends React.Component<Props> {\n static propTypes = {\n names: PropTypes.arrayOf(PropTypes.object).isRequired,\n namespace: PropTypes.string.isRequired,\n nodeId: PropTypes.string.isRequired,\n };\n\n _formatMetric = (metric: MetricType) => {\n const { namespace, nodeId } = this.props;\n\n return (\n <li key={`li-${metric.full_name}`}>\n <Metric key={metric.full_name} metric={metric} namespace={namespace} nodeId={nodeId} />\n </li>\n );\n };\n\n render() {\n const { names } = this.props;\n const metrics = names\n .sort((m1, m2) => m1.full_name.localeCompare(m2.full_name))\n .map((metric) => this._formatMetric(metric));\n\n return (\n <MetricListWrap>\n {metrics.length > 0 ? metrics : <li>No metrics match the given filter. Please ensure you use a valid regular expression</li>}\n </MetricListWrap>\n );\n }\n}\n\nexport default MetricsList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { MetricsActions, MetricsStore } from 'stores/metrics/MetricsStore';\n\nconst MetricsMapper = createReactClass({\n displayName: 'MetricsMapper',\n\n propTypes: {\n map: PropTypes.object.isRequired,\n computeValue: PropTypes.func.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n getDefaultProps() {\n return {\n };\n },\n\n getInitialState() {\n return {};\n },\n\n UNSAFE_componentWillMount() {\n Object.keys(this.props.map).forEach((name) => MetricsActions.addGlobal(this.props.map[name]));\n },\n\n shouldComponentUpdate(_, nextState) {\n // Only re-render this component if the metric data has changed\n if (this.state.metricsUpdatedAt && nextState.metricsUpdatedAt) {\n return nextState.metricsUpdatedAt > this.state.metricsUpdatedAt;\n }\n\n return true;\n },\n\n componentWillUnmount() {\n Object.keys(this.props.map).forEach((name) => MetricsActions.removeGlobal(this.props.map[name]));\n },\n\n render() {\n if (!this.state.metrics) {\n return null;\n }\n\n const metricsMap = {};\n\n Object.keys(this.state.metrics).forEach((nodeId) => {\n Object.keys(this.props.map).forEach((key) => {\n const metricName = this.props.map[key];\n\n if (this.state.metrics[nodeId][metricName]) {\n // Only create the node entry if we actually have data\n if (!metricsMap[nodeId]) {\n metricsMap[nodeId] = {};\n }\n\n metricsMap[nodeId][key] = this.state.metrics[nodeId][metricName];\n }\n });\n });\n\n const value = this.props.computeValue(metricsMap);\n\n return (\n <span>\n {value}\n </span>\n );\n },\n});\n\nexport default MetricsMapper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nconst GlobalAppNotifications = () => {\n const globalNotifications = PluginStore.exports('globalNotifications')\n .map((notification) => {\n if (!notification.component) {\n // eslint-disable-next-line no-console\n console.error('Missing \"component\" for globalNotification plugin:', notification);\n\n return null;\n }\n\n const Component = notification.component;\n\n if (!notification.key) {\n // eslint-disable-next-line no-console\n console.warn('Missing \"key\" for globalNotification plugin:', notification);\n }\n\n return <Component key={notification.key} />;\n })\n .filter((component) => !!component);\n\n return (<>{globalNotifications}</>);\n};\n\nexport default GlobalAppNotifications;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport PublicNotifications from 'components/common/PublicNotifications';\n\nimport GlobalAppNotifications from './GlobalAppNotifications';\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst WithGlobalNotifications = ({ children }: Props) => (\n <>\n <GlobalAppNotifications />\n <PublicNotifications />\n {children}\n </>\n);\n\nWithGlobalNotifications.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.element,\n ]).isRequired,\n};\n\nexport default WithGlobalNotifications;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\ntype Props = {\n children: React.ReactNode,\n className?: string,\n};\n\nconst Container = styled.div`\n display: flex;\n\n > div:first-child > div {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n > div:last-child > div {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n > div:not(:first-child) > div {\n border-left: 0;\n }\n\n > div:not(:first-child, :last-child) > div {\n border-radius: 0;\n }\n`;\n\nconst SelectGroup = ({ children, className }: Props) => <Container className={className}>{children}</Container>;\n\nSelectGroup.defaultProps = {\n className: undefined,\n};\n\nexport default SelectGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { $PropertyType } from 'utility-types';\nimport styled, { css } from 'styled-components';\n\nimport type Grantee from 'logic/permissions/Grantee';\nimport { Icon } from 'components/common';\n\nconst Container = styled.div(({ theme }) => css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n height: 30px;\n width: 30px;\n\n border-radius: 50%;\n background-color: ${theme.colors.gray[80]};\n`);\n\ntype Props = {\n type: $PropertyType<Grantee, 'type'>,\n};\n\nconst _iconName = (type) => {\n switch (type) {\n case 'global':\n return 'apartment';\n case 'team':\n return 'group';\n case 'error':\n return 'error';\n case 'user':\n default:\n return 'person';\n }\n};\n\nconst GranteeIcon = ({ type, ...rest }: Props) => (\n <Container {...rest}>\n <Icon name={_iconName(type)} />\n </Container>\n);\n\nexport default GranteeIcon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { $PropertyType } from 'utility-types';\nimport { useCallback } from 'react';\nimport { Field } from 'formik';\n\nimport { Select } from 'components/common';\nimport type { CapabilitiesList } from 'logic/permissions/EntityShareState';\nimport type { CapabilityType } from 'logic/permissions/types';\n\nconst _capabilitiesOptions = (capabilities: CapabilitiesList) => (\n capabilities.map((capability) => (\n { label: capability.title, value: capability.id }\n )).toJS()\n);\n\ntype Props = {\n onChange?: (id: $PropertyType<CapabilityType, 'id'>) => void,\n capabilities: CapabilitiesList,\n title?: string,\n};\n\nconst CapabilitySelect = ({ capabilities, onChange, title, ...rest }: Props) => {\n const capabilitiesOptions = _capabilitiesOptions(capabilities);\n\n const handleChange = useCallback((name, capabilityId, onFieldChange) => {\n onFieldChange({ target: { value: capabilityId, name } });\n\n if (typeof onChange === 'function') {\n onChange(capabilityId);\n }\n }, [onChange]);\n\n return (\n <Field name=\"capabilityId\">\n {({ field: { name, value, onChange: onFieldChange } }) => (\n <Select {...rest}\n clearable={false}\n inputProps={{ 'aria-label': title }}\n onChange={(capabilityId) => handleChange(name, capabilityId, onFieldChange)}\n options={capabilitiesOptions}\n placeholder={title}\n value={value} />\n )}\n </Field>\n );\n};\n\nCapabilitySelect.defaultProps = {\n onChange: undefined,\n title: 'Select a capability',\n};\n\nexport default CapabilitySelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { FormikProps } from 'formik';\nimport { Formik, Form, Field } from 'formik';\nimport type { $PropertyType } from 'utility-types';\nimport styled, { css } from 'styled-components';\n\nimport type { GranteesList, CapabilitiesList } from 'logic/permissions/EntityShareState';\nimport type EntityShareState from 'logic/permissions/EntityShareState';\nimport type Capability from 'logic/permissions/Capability';\nimport type Grantee from 'logic/permissions/Grantee';\nimport { Button } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport SelectGroup from 'components/common/SelectGroup';\n\nimport GranteeIcon from './GranteeIcon';\nimport CapabilitySelect from './CapabilitySelect';\n\nexport type SelectionRequest = {\n granteeId: $PropertyType<Grantee, 'id'>,\n capabilityId: $PropertyType<Capability, 'id'>,\n};\n\nexport type FormValues = {\n granteeId: $PropertyType<Grantee, 'id'> | undefined,\n capabilityId: $PropertyType<Capability, 'id'>,\n}\n\ntype Props = {\n availableGrantees: GranteesList,\n availableCapabilities: CapabilitiesList,\n className?: string,\n formRef?: React.Ref<FormikProps<FormValues>>,\n onSubmit: (req: SelectionRequest) => Promise<EntityShareState | null | undefined>,\n};\n\nconst FormElements = styled.div`\n display: flex;\n`;\n\nconst Errors = styled.div(({ theme }) => css`\n width: 100%;\n margin-top: 3px;\n color: ${theme.colors.variant.danger};\n\n > * {\n margin-right: 5px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n`);\n\nconst GranteesSelect = styled(Select)`\n flex: 1;\n`;\n\nconst GranteesSelectOption = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst StyledGranteeIcon = styled(GranteeIcon)`\n margin-right: 5px;\n`;\n\nconst StyledSelectGroup = styled(SelectGroup)`\n flex: 1;\n\n > div:last-child {\n flex: 0.5;\n }\n`;\n\nconst SubmitButton = styled(Button)`\n margin-left: 15px;\n`;\n\nconst _granteesOptions = (grantees: GranteesList) => grantees.map((grantee) => (\n { label: grantee.title, value: grantee.id, granteeType: grantee.type }\n)).toJS();\n\nconst _initialCapabilityId = (capabilities: CapabilitiesList) => {\n const initialCapabilityTitle = 'Viewer';\n\n return capabilities.find((capability) => capability.title === initialCapabilityTitle)?.id;\n};\n\nconst _isRequired = (field) => (value) => (!value ? `The ${field} is required` : undefined);\n\nconst _renderGranteesSelectOption = ({ label, granteeType }: {label: string, granteeType: $PropertyType<Grantee, 'type'> }) => (\n <GranteesSelectOption>\n <StyledGranteeIcon type={granteeType} />\n {label}\n </GranteesSelectOption>\n);\n\nconst GranteesSelector = ({ availableGrantees, availableCapabilities, className, onSubmit, formRef }: Props) => {\n const granteesOptions = _granteesOptions(availableGrantees);\n const initialCapabilityId = _initialCapabilityId(availableCapabilities);\n\n const _handelSubmit = (data, resetForm) => {\n onSubmit(data).then(() => { resetForm(); });\n };\n\n return (\n <div className={className}>\n <Formik onSubmit={(data, { resetForm }) => _handelSubmit(data, resetForm)}\n innerRef={formRef}\n initialValues={{ granteeId: undefined, capabilityId: initialCapabilityId }}>\n {({ isSubmitting, isValid, errors }) => (\n <Form>\n <FormElements>\n <StyledSelectGroup>\n <Field name=\"granteeId\" validate={_isRequired('grantee')}>\n {({ field: { name, value, onChange } }) => (\n <GranteesSelect inputProps={{ 'aria-label': 'Search for users and teams' }}\n onChange={(granteeId) => onChange({ target: { value: granteeId, name } })}\n optionRenderer={_renderGranteesSelectOption}\n options={granteesOptions}\n placeholder=\"Search for users and teams\"\n value={value} />\n )}\n </Field>\n <CapabilitySelect capabilities={availableCapabilities} />\n </StyledSelectGroup>\n <SubmitButton bsStyle=\"success\"\n disabled={isSubmitting || !isValid}\n title=\"Add Collaborator\"\n type=\"submit\">\n Add Collaborator\n </SubmitButton>\n </FormElements>\n {errors && (\n <Errors>\n {Object.entries(errors).map(([fieldKey, value]: [string, unknown]) => (\n <span key={fieldKey}>{String(value)}.</span>\n ))}\n </Errors>\n )}\n </Form>\n )}\n </Formik>\n </div>\n );\n};\n\nGranteesSelector.defaultProps = {\n className: undefined,\n formRef: undefined,\n};\n\nexport default GranteesSelector;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { $PropertyType } from 'utility-types';\nimport { useState } from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\nimport { Formik, Form } from 'formik';\n\nimport type { CapabilitiesList } from 'logic/permissions/EntityShareState';\nimport type EntityShareState from 'logic/permissions/EntityShareState';\nimport type Grantee from 'logic/permissions/Grantee';\nimport { Spinner, IconButton } from 'components/common';\nimport type Capability from 'logic/permissions/Capability';\nimport type { CurrentState as CurrentGranteeState } from 'logic/permissions/SelectedGrantee';\nimport type SelectedGrantee from 'logic/permissions/SelectedGrantee';\n\nimport GranteeIcon from './GranteeIcon';\nimport CapabilitySelect from './CapabilitySelect';\n\nconst currentStateColor = (theme: DefaultTheme, currentState: CurrentGranteeState) => {\n switch (currentState) {\n case 'new':\n return theme.colors.variant.lighter.success;\n case 'changed':\n return theme.colors.variant.lighter.warning;\n default:\n return 'transparent';\n }\n};\n\nconst Container = styled.li<{ $currentState: CurrentGranteeState }>(({ theme, $currentState }) => css`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 5px;\n border-left: 5px solid ${currentStateColor(theme, $currentState)};\n`);\n\nconst GranteeInfo = styled.div`\n display: flex;\n align-items: center;\n flex: 1;\n overflow: hidden;\n margin-right: 10px;\n`;\n\nconst Title = styled.div`\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StyledCapabilitySelect = styled(CapabilitySelect)`\n flex: 0.5;\n`;\n\nconst StyledGranteeIcon = styled(GranteeIcon)`\n margin-right: 5px;\n`;\n\nconst Actions = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 25px;\n margin-left: 10px;\n`;\n\ntype Props = {\n availableCapabilities: CapabilitiesList,\n currentGranteeState: CurrentGranteeState,\n grantee: SelectedGrantee,\n onDelete: (grantee: $PropertyType<Grantee, 'id'>) => Promise<EntityShareState | undefined | null>,\n onCapabilityChange: (payload: {\n granteeId: $PropertyType<Grantee, 'id'>,\n capabilityId: $PropertyType<Capability, 'id'>,\n }) => Promise<EntityShareState | undefined | null>,\n};\n\nconst GranteesListItem = ({ availableCapabilities, currentGranteeState, grantee: { id, capabilityId, type, title }, onDelete, onCapabilityChange }: Props) => {\n const [isDeleting, setIsDeleting] = useState(false);\n\n const handleDelete = () => {\n setIsDeleting(true);\n\n onDelete(id).then(() => setIsDeleting(false));\n };\n\n return (\n <Formik initialValues={{ capabilityId }} onSubmit={() => {}}>\n <Form>\n <Container $currentState={currentGranteeState}>\n <GranteeInfo title={title}>\n <StyledGranteeIcon type={type} />\n <Title>{title}\n \n onCapabilityChange({ granteeId: id, capabilityId: newCapabilityId })}\n capabilities={availableCapabilities}\n title={`Change the capability for ${title}`} />\n \n {isDeleting ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default GranteesListItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport type { $PropertyType } from 'utility-types';\n\nimport type SharedEntity from 'logic/permissions/SharedEntity';\nimport { Alert } from 'components/bootstrap';\nimport { Pagination, PageSizeSelect } from 'components/common';\nimport type { ActiveShares, CapabilitiesList, SelectedGrantees } from 'logic/permissions/EntityShareState';\nimport type EntityShareState from 'logic/permissions/EntityShareState';\nimport type Grantee from 'logic/permissions/Grantee';\nimport type Capability from 'logic/permissions/Capability';\nimport { DEFAULT_PAGE_SIZES } from 'hooks/usePaginationQueryParameter';\n\nimport GranteesListItem from './GranteesListItem';\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 10px;\n`;\n\nconst List = styled.div(({ theme }) => `\n >:nth-child(even) {\n background: ${theme.colors.table.row.backgroundAlt};\n };\n\n >:nth-child(odd) {\n background: ${theme.colors.table.row.background};\n };\n`);\n\nconst PaginationWrapper = styled.ul`\n display: flex;\n justify-content: center;\n\n .pagination {\n margin: 10px 0;\n }\n`;\n\nconst StyledPagination = styled(Pagination)`\n margin-top: 10px;\n margin-bottom: 0;\n`;\n\nconst StyledPageSizeSelect = styled(PageSizeSelect)(({ theme }) => css`\n label {\n font-weight: normal;\n font-size: ${theme.fonts.size.body};\n }\n`);\n\ntype Props = {\n activeShares: ActiveShares,\n availableCapabilities: CapabilitiesList,\n className?: string,\n entityType: $PropertyType,\n onDelete: (GRN) => Promise,\n onCapabilityChange: (payload: {\n granteeId: $PropertyType,\n capabilityId: $PropertyType,\n }) => Promise,\n selectedGrantees: SelectedGrantees,\n title: string,\n entityTypeTitle?: string | null | undefined,\n};\n\nconst _paginatedGrantees = (selectedGrantees: SelectedGrantees, pageSize: number, currentPage: number) => {\n const begin = (pageSize * (currentPage - 1));\n const end = begin + pageSize;\n\n return selectedGrantees.slice(begin, end);\n};\n\nconst GranteesList = ({ activeShares, onDelete, onCapabilityChange, entityType, entityTypeTitle, availableCapabilities, selectedGrantees, className, title }: Props) => {\n const initialPageSize = DEFAULT_PAGE_SIZES[0];\n const [pageSize, setPageSize] = useState(initialPageSize);\n const [currentPage, setCurrentPage] = useState(1);\n const paginatedGrantees = _paginatedGrantees(selectedGrantees, pageSize, currentPage);\n const totalGrantees = selectedGrantees.size;\n const totalPages = Math.ceil(totalGrantees / pageSize);\n const showPageSizeSelect = totalGrantees > initialPageSize;\n\n return (\n
    \n
    \n
    {title}
    \n {showPageSizeSelect && (\n setPageSize(newPageSize)} pageSize={pageSize} />\n )}\n
    \n {paginatedGrantees.size > 0 ? (\n \n {paginatedGrantees.map((grantee) => {\n const currentGranteeState = grantee.currentState(activeShares);\n\n return (\n \n );\n }).toArray()}\n \n ) : (\n This {entityTypeTitle || entityType} has no collaborators.\n )}\n \n \n \n
    \n );\n};\n\nGranteesList.defaultProps = {\n className: undefined,\n entityTypeTitle: undefined,\n};\n\nexport default GranteesList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport StringUtils from 'util/StringUtils';\nimport type { MissingDependencies, GranteesList } from 'logic/permissions/EntityShareState';\nimport { Alert } from 'components/bootstrap';\n\ntype Props = {\n missingDependencies: MissingDependencies,\n availableGrantees: GranteesList,\n};\n\nconst Container = styled(Alert)`\n margin-top: 20px;\n max-height: 240px;\n overflow: auto;\n`;\n\nconst List = styled.ul`\n list-style: initial;\n padding-left: 20px;\n\n ul {\n list-style: circle;\n }\n`;\n\nconst _cap = StringUtils.capitalizeFirstLetter;\n\nconst DependenciesWarning = ({ missingDependencies, availableGrantees }: Props) => (\n \n \n {missingDependencies.entrySeq().map(([granteeGRN, dependencyList]) => {\n const grantee = availableGrantees.find((selectedGrantee) => selectedGrantee.id === granteeGRN);\n\n return (grantee && (\n
  • \n {_cap(grantee.type)} {grantee.title} needs access to\n {dependencyList.map((dependency) => (\n \n
  • \n {_cap(dependency.type)}: {dependency.title}
    \n Owners: {dependency.owners.map((owner, key) => (\n \n {_cap(owner.type)} {owner.title}\n {key !== dependency.owners.size - 1 && ', '}\n \n ))}\n
  • \n
    \n ))}\n \n ));\n }).toArray()}\n \n
    \n);\n\nexport default DependenciesWarning;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport capitalize from 'lodash/capitalize';\n\nimport { Alert } from 'components/bootstrap';\nimport type { GranteesList } from 'logic/permissions/EntityShareState';\nimport type ValidationResult from 'logic/permissions/ValidationResult';\n\nconst Container = styled(Alert)`\n margin-top: 20px;\n max-height: 240px;\n overflow: auto;\n`;\n\nconst List = styled.ul`\n list-style: initial;\n padding-left: 20px;\n\n ul {\n list-style: circle;\n }\n`;\n\ntype Props = {\n validationResult: ValidationResult,\n availableGrantees: GranteesList,\n};\n\nconst ValidationError = ({ validationResult, availableGrantees }: Props) => {\n const pastOwners = validationResult.errorContext.selectedGranteeCapabilities.map(\n (grn) => availableGrantees.find((grantee) => grantee.id === grn),\n );\n\n return (\n \n \n
  • \n Removing the following owners will leave the entity ownerless:
    \n {pastOwners.map((owner, key) => (\n \n {capitalize(owner?.type)} {owner?.title}\n {key !== pastOwners.size - 1 && ', '}\n \n )).toArray()}\n
  • \n
    \n
    \n );\n};\n\nexport default ValidationError;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ClipboardButton, Icon } from 'components/common';\nimport { Alert, FormGroup, InputGroup, FormControl } from 'components/bootstrap';\nimport useShowRouteFromGRN from 'routing/hooks/useShowRouteFromGRN';\n\nconst Container = styled(Alert)`\n display: flex;\n margin-top: 20px;\n`;\n\nconst VerticalCenter = styled.div`\n height: 34px;\n display: flex;\n align-items: center;\n`;\n\nconst URLColumn = styled.div`\n margin-left: 10px;\n flex: 1;\n`;\n\nconst StyledFormControl = styled(FormControl)(({ theme }) => css`\n &[readonly] {\n background-color: ${theme.colors.input.background};\n }\n`);\n\nconst InputGroupAddon = styled(InputGroup.Addon)`\n padding: 0;\n`;\n\nconst StyledClipboardButton = styled(ClipboardButton)`\n border-radius: 0;\n border: 0;\n`;\n\ntype Props = {\n entityGRN: string,\n};\n\nconst ShareableEntityURL = ({ entityGRN }: Props) => {\n const entityRoute = useShowRouteFromGRN(entityGRN);\n const entityUrl = `${window.location.origin.toString()}${entityRoute}`;\n\n return (\n \n \n Sharable URL:\n \n \n \n \n \n \n } />\n \n \n \n
    \n You or anyone authorized to view can access this link.\n
    \n
    \n
    \n );\n};\n\nexport default ShareableEntityURL;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport type { $PropertyType } from 'utility-types';\nimport type { FormikProps } from 'formik';\n\nimport type { GRN } from 'logic/permissions/types';\nimport type EntityShareState from 'logic/permissions/EntityShareState';\nimport type SharedEntity from 'logic/permissions/SharedEntity';\nimport EntityShareDomain from 'domainActions/permissions/EntityShareDomain';\nimport type { EntitySharePayload } from 'actions/permissions/EntityShareActions';\n\nimport type { SelectionRequest, FormValues as GranteesSelectFormValues } from './GranteesSelector';\nimport GranteesSelector from './GranteesSelector';\nimport GranteesList from './GranteesList';\nimport DependenciesWarning from './DependenciesWarning';\nimport ValidationError from './ValidationError';\nimport ShareableEntityURL from './ShareableEntityURL';\n\ntype Props = {\n entityGRN: GRN,\n description: string,\n entityType: $PropertyType,\n entityTitle: $PropertyType,\n entityShareState: EntityShareState,\n setDisableSubmit: (boolean) => void,\n granteesSelectFormRef: React.Ref>,\n showShareableEntityURL?: boolean,\n entityTypeTitle?: string | null | undefined,\n};\n\nconst Section = styled.div`\n margin-bottom: 25px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst GranteesSelectorHeadline = styled.h5`\n margin-bottom: 10px;\n`;\n\nconst _filterAvailableGrantees = (availableGrantees, selectedGranteeCapabilities) => {\n const availableGranteeCapabilitiesUserIds = selectedGranteeCapabilities.entrySeq().map(([granteeGRN]) => granteeGRN);\n\n return availableGrantees.filter((grantee) => !availableGranteeCapabilitiesUserIds.includes(grantee.id));\n};\n\nconst EntityShareSettings = ({\n entityShareState: {\n activeShares,\n availableGrantees,\n availableCapabilities,\n missingDependencies,\n selectedGranteeCapabilities,\n selectedGrantees,\n validationResults,\n },\n description,\n entityGRN,\n entityType,\n entityTitle,\n setDisableSubmit,\n granteesSelectFormRef,\n showShareableEntityURL,\n entityTypeTitle,\n}: Props) => {\n const filteredGrantees = _filterAvailableGrantees(availableGrantees, selectedGranteeCapabilities);\n\n useEffect(() => {\n setDisableSubmit(validationResults?.failed);\n }, [validationResults, setDisableSubmit]);\n\n const _handleSelection = ({ granteeId, capabilityId }: SelectionRequest) => {\n const newSelectedCapabilities = selectedGranteeCapabilities.merge({ [granteeId]: capabilityId });\n\n setDisableSubmit(true);\n\n const payload: EntitySharePayload = {\n selected_grantee_capabilities: newSelectedCapabilities,\n };\n\n return EntityShareDomain.prepare(entityType, entityTitle, entityGRN, payload);\n };\n\n const _handleDeletion = (granteeId: GRN) => {\n const newSelectedGranteeCapabilities = selectedGranteeCapabilities.remove(granteeId);\n\n setDisableSubmit(true);\n\n const payload: EntitySharePayload = {\n selected_grantee_capabilities: newSelectedGranteeCapabilities,\n };\n\n return EntityShareDomain.prepare(entityType, entityTitle, entityGRN, payload);\n };\n\n return (\n <>\n
    \n \n Add collaborator\n \n

    \n {description}\n

    \n \n
    \n
    \n \n
    \n {validationResults?.failed && (\n
    \n \n
    \n )}\n {missingDependencies?.size > 0 && (\n
    \n \n
    \n )}\n {showShareableEntityURL && (\n
    \n \n
    \n )}\n \n );\n};\n\nEntityShareSettings.propTypes = {\n description: PropTypes.string.isRequired,\n entityGRN: PropTypes.string.isRequired,\n entityShareState: PropTypes.object.isRequired,\n setDisableSubmit: PropTypes.func.isRequired,\n showShareableEntityURL: PropTypes.bool,\n entityTypeTitle: PropTypes.string,\n};\n\nEntityShareSettings.defaultProps = {\n showShareableEntityURL: true,\n entityTypeTitle: undefined,\n};\n\nexport default EntityShareSettings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useRef, useEffect, useState } from 'react';\nimport type { FormikProps } from 'formik';\nimport PropTypes from 'prop-types';\nimport upperCase from 'lodash/upperCase';\n\nimport EntityShareDomain from 'domainActions/permissions/EntityShareDomain';\nimport { createGRN } from 'logic/permissions/GRN';\nimport { useStore } from 'stores/connect';\nimport { Spinner } from 'components/common';\nimport { EntityShareStore } from 'stores/permissions/EntityShareStore';\nimport type { EntitySharePayload } from 'actions/permissions/EntityShareActions';\nimport type SharedEntity from 'logic/permissions/SharedEntity';\nimport BootstrapModalConfirm from 'components/bootstrap/BootstrapModalConfirm';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport type { FormValues as GranteesSelectFormValues } from './GranteesSelector';\nimport EntityShareSettings from './EntityShareSettings';\n\ntype Props = {\n description: string,\n entityId: SharedEntity['id'],\n entityTitle: SharedEntity['title'],\n entityType: SharedEntity['type'],\n entityTypeTitle: string | null | undefined,\n onClose: () => void,\n showShareableEntityURL?: boolean\n};\n\nconst EntityShareModal = ({\n description,\n entityId,\n entityType,\n entityTitle,\n entityTypeTitle,\n onClose,\n showShareableEntityURL,\n}: Props) => {\n const { state: entityShareState } = useStore(EntityShareStore);\n const [disableSubmit, setDisableSubmit] = useState(entityShareState?.validationResults?.failed);\n const entityGRN = createGRN(entityType, entityId);\n const granteesSelectFormRef = useRef>();\n const sendTelemetry = useSendTelemetry();\n\n useEffect(() => {\n EntityShareDomain.prepare(entityType, entityTitle, entityGRN);\n }, [entityType, entityTitle, entityGRN]);\n\n const _handleSave = () => {\n setDisableSubmit(true);\n const selectedGranteeId = granteesSelectFormRef.current?.values?.granteeId;\n const payload: EntitySharePayload = {\n selected_grantee_capabilities: entityShareState.selectedGranteeCapabilities,\n };\n\n if (selectedGranteeId) {\n const selectedGrantee = entityShareState?.availableGrantees.find((grantee) => grantee.id === selectedGranteeId);\n\n // eslint-disable-next-line no-alert\n if (!window.confirm(`${selectedGrantee.title ? `\"${selectedGrantee.title}\"` : 'An entity (name not found)'} got selected but was never added as a collaborator. Do you want to continue anyway?`)) {\n setDisableSubmit(false);\n\n return;\n }\n }\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.ENTITYSHARE?.[`ENTITY_${upperCase(entityType)}_SHARED`], {\n app_pathname: entityType,\n });\n\n EntityShareDomain.update(entityType, entityTitle, entityGRN, payload).then(() => {\n setDisableSubmit(true);\n onClose();\n });\n };\n\n return (\n Sharing {entityTypeTitle ?? entityType}: {entityTitle}}>\n {(entityShareState && entityShareState.entity === entityGRN) ? (\n \n ) : (\n \n )}\n \n );\n};\n\nEntityShareModal.propTypes = {\n description: PropTypes.string.isRequired,\n entityId: PropTypes.string.isRequired,\n entityTitle: PropTypes.string.isRequired,\n entityType: PropTypes.string.isRequired,\n entityTypeTitle: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n showShareableEntityURL: PropTypes.bool,\n};\n\nEntityShareModal.defaultProps = {\n entityTypeTitle: undefined,\n showShareableEntityURL: true,\n};\n\nexport default EntityShareModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled, { useTheme } from 'styled-components';\n\nexport const Logo = ({ color }: { color: string }) => (\n \n Graylog Logo\n \n \n \n \n \n \n \n \n \n);\n\nconst Container = styled.div`\n display: inline-flex;\n`;\n\ntype Props = {\n className?: string,\n}\n\nconst DefaultBrand = ({ className }: Props) => {\n const theme = useTheme();\n\n return (\n \n \n \n );\n};\n\nDefaultBrand.defaultProps = {\n className: '',\n};\n\nexport default DefaultBrand;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\nimport type { Perspective } from 'components/perspectives/types';\n\ntype PerspectivesContextType = {\n activePerspective: Perspective,\n availablePerspectives: Array\n setActivePerspective: (perspectiveId: string) => void\n}\n\nconst PerspectivesContext = React.createContext(undefined);\n\nexport default singleton('contexts.PerspectivesContext', () => PerspectivesContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useContext } from 'react';\n\nimport PerspectivesContext from '../contexts/PerspectivesContext';\n\nconst useActivePerspective = () => {\n const perspectivesContextValue = useContext(PerspectivesContext);\n\n if (!perspectivesContextValue) {\n throw new Error('useActivePerspective hook needs to be used inside PerspectivesContext.Provider');\n }\n\n return {\n activePerspective: perspectivesContextValue.activePerspective,\n setActivePerspective: perspectivesContextValue.setActivePerspective,\n };\n};\n\nexport default useActivePerspective;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nconst Title = styled.h3(({ theme }) => css`\n a {\n color: ${theme.colors.global.textDefault};\n }\n\n .label {\n font-size: ${theme.fonts.size.tiny};\n line-height: 200%;\n margin-left: 5px;\n vertical-align: bottom;\n }\n`);\n\nconst MessageDetailsTitle = (props) => (\n \n);\n\nexport default MessageDetailsTitle;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { DropdownButton, MenuItem } from 'components/bootstrap';\nimport DrilldownContext from 'views/components/contexts/DrilldownContext';\nimport SearchLink from 'views/logic/search/SearchLink';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport useLocation from 'routing/useLocation';\n\nimport type { SearchesConfig } from './SearchConfig';\n\nconst buildTimeRangeOptions = ({ surrounding_timerange_options: surroundingTimerangeOptions = {} }: Pick<SearchesConfig, 'surrounding_timerange_options'>) => Object.fromEntries(\n Object.entries(surroundingTimerangeOptions).map(([key, value]) => [moment.duration(key).asSeconds(), value]),\n);\n\nconst buildFilterFields = (messageFields: {\n [x: string]: unknown;\n}, searchConfig: Pick<SearchesConfig, 'surrounding_filter_fields'>) => {\n const { surrounding_filter_fields: surroundingFilterFields = [] } = searchConfig;\n\n return Object.fromEntries(surroundingFilterFields.map((fieldName) => [fieldName, messageFields[fieldName]]));\n};\n\nconst buildSearchLink = (id: string, from: string, to: string, filterFields: {\n [key: string]: unknown;\n}, streams: string[]) => SearchLink.builder()\n .timerange({ type: 'absolute', from, to })\n .streams(streams)\n .filterFields(filterFields)\n .highlightedMessage(id)\n .build()\n .toURL();\n\nconst searchLink = (range: string, timestamp: moment.MomentInput, id: string, messageFields: {\n [key: string]: unknown;\n}, searchConfig: Pick<SearchesConfig, 'surrounding_filter_fields'>, streams: string[]) => {\n const fromTime = moment(timestamp).subtract(Number(range), 'seconds').toISOString();\n const toTime = moment(timestamp).add(Number(range), 'seconds').toISOString();\n const filterFields = buildFilterFields(messageFields, searchConfig);\n\n return buildSearchLink(id, fromTime, toTime, filterFields, streams);\n};\n\ntype Props = {\n searchConfig: Pick<SearchesConfig, 'surrounding_timerange_options' | 'surrounding_filter_fields'>,\n timestamp: string,\n id: string,\n messageFields: { [key: string]: unknown },\n};\n\nconst SurroundingSearchButton = ({ searchConfig, timestamp, id, messageFields }: Props) => {\n const { streams } = useContext(DrilldownContext);\n const timeRangeOptions = buildTimeRangeOptions(searchConfig);\n const location = useLocation();\n const sendTelemetry = useSendTelemetry();\n\n const sendEvent = (range: string) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.SEARCH_MESSAGE_TABLE_SHOW_SURROUNDING_MESSAGE, {\n app_pathname: getPathnameWithoutId(location.pathname),\n app_section: 'search-message-table',\n app_action_value: 'seach-message-table-show-surrounding',\n event_details: {\n range,\n },\n });\n };\n\n const menuItems = Object.keys(timeRangeOptions)\n .sort((a, b) => naturalSort(a, b))\n .map((range) => (\n <MenuItem key={range}\n onClick={() => sendEvent(range)}\n href={searchLink(range, timestamp, id, messageFields, searchConfig, streams)}\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n {timeRangeOptions[range]}\n </MenuItem>\n ));\n\n return (\n <DropdownButton title=\"Show surrounding messages\" bsSize=\"small\" id=\"surrounding-search-dropdown\">\n {menuItems}\n </DropdownButton>\n );\n};\n\nSurroundingSearchButton.propTypes = {\n id: PropTypes.string.isRequired,\n timestamp: PropTypes.string.isRequired,\n searchConfig: PropTypes.object.isRequired,\n messageFields: PropTypes.object.isRequired,\n};\n\nexport default SurroundingSearchButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nexport const NAV_BAR_WIDTH = 200;\n\nfunction leftPosition(isOpen: boolean) {\n if (isOpen) {\n return '20px';\n }\n\n return `${NAV_BAR_WIDTH + 10}px`;\n}\n\nconst NavToggleButton = styled.button<{ $navIsOpen: boolean }>(({ $navIsOpen }) => css`\n position: absolute;\n left: ${leftPosition($navIsOpen)};\n bottom: 20px;\n z-index: 11;\n transition: all 0.33s ease-in-out;\n border-radius: 50%;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 3rem;\n width: 3rem;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n outline: none;\n color: ${({ theme }) => theme.colors.gray[60]};\n font-size: ${({ theme }) => theme.fonts.size.extraLarge};\n padding: 0.5rem;\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.gray[80]};\n }\n\n &:active {\n background-color: ${({ theme }) => theme.colors.gray[70]};\n }\n`);\n\nconst Nav = styled.div<{ $isOpen: boolean }>(({ $isOpen, theme }) => css`\n background-color: ${theme.colors.global.background};\n border-right: 1px solid ${theme.colors.global.contentBackground};\n height: 100%;\n width: ${NAV_BAR_WIDTH}px;\n transition: all 0.33s ease-in-out;\n position: absolute;\n left: ${$isOpen ? '0px' : `-${NAV_BAR_WIDTH}px`};\n z-index: 11;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n`);\n\ntype Props = React.PropsWithChildren<{\n isOpen: boolean,\n toggleIsOpen: () => void,\n}>\n\nconst SideNav = ({ children, isOpen, toggleIsOpen }: Props) => (\n <Nav $isOpen={isOpen}>\n <ul>\n {children}\n </ul>\n <NavToggleButton $navIsOpen={isOpen} onClick={toggleIsOpen}>\n <Icon name={isOpen ? 'chevron_left' : 'crop_square'} />\n </NavToggleButton>\n </Nav>\n);\n\nexport default SideNav;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport styled, { css } from 'styled-components';\n\nimport { NAV_BAR_WIDTH } from './SideNav';\n\nconst ContentArea = styled.div<{ $sideNavIsOpen: boolean; $isSecurityPerspective?: boolean; }>(({ $sideNavIsOpen, $isSecurityPerspective, theme }) => css`\n display: flex;\n flex-direction: column;\n padding-left: ${$sideNavIsOpen ? `${NAV_BAR_WIDTH}px` : '0px'};\n padding-top: ${$isSecurityPerspective ? '0px' : '15px'};\n transition: all 0.33s ease-in-out;\n position: relative;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n z-index: 10;\n top: 0;\n background: ${theme.colors.global.background};\n`);\n\nexport default ContentArea;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport styled from 'styled-components';\n\nconst LayoutContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n position: relative;\n`;\n\nexport default LayoutContainer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport styled, { css } from 'styled-components';\n\nimport type { IconName } from 'components/common/Icon';\nimport Icon from 'components/common/Icon';\n\nconst StyledLink = styled(NavLink)(({ theme }) => css`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 0.6rem;\n transition: all 0.33s ease-in-out;\n padding: 5px 7px;\n margin: 16px 10px;\n border-radius: 5px;\n color: ${theme.colors.gray[30]};\n\n & > svg {\n width: 20px;\n }\n\n &:hover {\n background: ${theme.colors.global.contentBackground};\n text-decoration: none;\n color: ${theme.colors.global.textDefault};\n }\n\n &.active {\n background: ${theme.colors.global.contentBackground};\n color: ${theme.colors.brand.primary};\n }\n`);\n\ntype Props = React.PropsWithChildren<{\n linkTarget: string,\n linkEnd?: boolean,\n iconName: IconName,\n}>\n\nconst SideNavItem = ({ children, linkTarget, linkEnd, iconName }: Props) => (\n <li>\n <StyledLink to={linkTarget} end={linkEnd}>\n <Icon name={iconName} size=\"xs\" />\n {children}\n </StyledLink>\n </li>\n);\n\nSideNavItem.defaultProps = {\n linkEnd: false,\n};\n\nexport default SideNavItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport type { PropsWithChildren } from 'react';\nimport { useState } from 'react';\n\nimport { Alert, Button } from 'components/bootstrap';\nimport { Icon, ConfirmDialog } from 'components/common';\nimport { SideNav, SideNavItem, ContentArea, Container } from 'components/security/page-layout';\nimport Routes from 'routing/Routes';\n\nconst StyledAlert = styled(Alert)`\n padding: ${({ theme }) => theme.spacings.lg};\n margin: ${({ theme }) => theme.spacings.md};\n margin-top: 0;\n`;\n\nconst Banner = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst LeftItems = styled.div`\n display: flex;\n flex-direction: row;\n align-items: baseline;\n gap: ${({ theme }) => theme.spacings.md};\n`;\n\nconst BoldText = styled.h1`\n font-weight: bold;\n color: ${({ theme }) => theme.colors.variant.danger};\n`;\n\nconst Col = styled.div<{ $width?: string, $align?: string, $justify?: string }>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacings.md};\n width: ${({ $width }) => $width || 'auto'};\n align-items: ${({ $align }) => $align || 'flex-start'};\n`;\n\nconst Row = styled.div<{ $justify?: string, $fullWidth?: boolean }>`\n display: flex;\n flex-direction: row;\n ${({ $justify }) => (\n $justify ? css`justify-content: ${$justify};` : css`gap: ${({ theme }) => theme.spacings.md};`\n )}\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n`;\n\nconst StyledIcon = styled(Icon)`\n color: ${({ theme }) => theme.colors.brand.primary};\n`;\n\nconst LEFT_COLUMN_ITEM_LIST = [\n 'Anomaly Detection AI',\n 'Cloud Option',\n 'Achiving',\n 'Audit Logs for Graylog Cloud',\n 'Dynamic Lookup Tables',\n 'Advanced Alerting With Scripting',\n 'Compliance Reporting',\n 'Correlation & Aggregation Events',\n 'Threat Intel Integrations',\n];\n\nconst RIGHT_COLUMN_ITEM_LIST = [\n 'Incident Investigation Workspaces',\n 'Pre-build Security Parser & Dashboards',\n 'Sigma Rules',\n 'Parameterized Dashboarding',\n 'Input & Output Integrations',\n 'Threat Management',\n 'Search Workflow, Temlplates & Filters',\n 'Integrated Search & Alerting',\n 'SOAR Integrations',\n];\n\nconst navItems = [\n {\n path: Routes.SECURITY.OVERVIEW,\n iconName: 'ballot',\n end: true,\n title: 'Overview',\n },\n {\n path: Routes.SECURITY.USER_ACTIVITY,\n iconName: 'person',\n end: false,\n title: 'User Activity',\n },\n {\n path: Routes.SECURITY.HOST_ACTIVITY,\n iconName: 'tv',\n end: false,\n title: 'Host Activity',\n },\n {\n path: Routes.SECURITY.NETWORK_ACTIVITY,\n iconName: 'wifi',\n end: false,\n title: 'Network Activity',\n },\n {\n path: Routes.SECURITY.ANOMALIES,\n iconName: 'zoom_in',\n end: false,\n title: 'Anomalies',\n },\n] as const;\n\nconst TeaserPageLayout = ({ children }: PropsWithChildren) => {\n const [showSideBar, setShowSideBar] = useState(true);\n const [showModal, setShowModal] = useState(true);\n\n return (\n <>\n <Container>\n <SideNav isOpen={showSideBar} toggleIsOpen={() => setShowSideBar((cur) => !cur)}>\n {navItems.map((route) => (\n <SideNavItem key={route.title}\n iconName={route.iconName}\n linkTarget={route.path}\n linkEnd={route.end}>\n {route.title}\n </SideNavItem>\n ))}\n </SideNav>\n <ContentArea $sideNavIsOpen={showSideBar}>\n <StyledAlert bsStyle=\"info\" noIcon>\n <Banner>\n <LeftItems>\n <BoldText>Security Demo</BoldText>\n <span>For more information and booking a full demo of the product visit Graylog website.</span>\n </LeftItems>\n <Button bsStyle=\"primary\" role=\"link\" target=\"_blank\" href=\"https://graylog.org/products/security\">\n Graylog Security <Icon name=\"open_in_new\" />\n </Button>\n </Banner>\n </StyledAlert>\n {children}\n </ContentArea>\n </Container>\n {showModal && (\n <ConfirmDialog show\n title=\"Security Demo\"\n onConfirm={() => setShowModal(false)}\n btnConfirmText=\"Close\">\n <Col>\n <h2 className=\"text-danger\">OVERVIEW</h2>\n <p>\n Graylog Security is designed to revolutionize cybersecurity for IT teams, offering the combined capabilities of SIEM,\n Security Analytics, Incident Investigation, and Anomaly Detection. By using our platform, you can work more efficiently,\n tackling critical tasks quicker, and mitigating risk caused by malicious actors and credential-based attacks.\n </p>\n <Row $justify=\"space-between\" $fullWidth>\n <Col>\n {LEFT_COLUMN_ITEM_LIST.map((item) => (\n <Row key={item}>\n <StyledIcon name=\"check\" />\n <span>{item}</span>\n </Row>\n ))}\n </Col>\n <Col>\n {RIGHT_COLUMN_ITEM_LIST.map((item) => (\n <Row key={item}>\n <StyledIcon name=\"check\" />\n <span>{item}</span>\n </Row>\n ))}\n </Col>\n </Row>\n </Col>\n </ConfirmDialog>\n )}\n </>\n );\n};\n\nexport default TeaserPageLayout;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport loadAsync from 'routing/loadAsync';\n\nconst Overview = loadAsync(() => import('./Overview'));\nconst UserActivity = loadAsync(() => import('./UserActivity'));\nconst HostActivity = loadAsync(() => import('./HostActivity'));\nconst NetworkActivity = loadAsync(() => import('./NetworkActivity'));\nconst Anomalies = loadAsync(() => import('./Anomalies'));\n\nexport {\n Overview,\n UserActivity,\n HostActivity,\n NetworkActivity,\n Anomalies,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { Routes, Route } from 'react-router-dom';\nimport React from 'react';\n\nimport TeaserPageLayout from 'components/security/teaser/TeaserPageLayout';\nimport AppRoutes, { SECURITY_PATH } from 'routing/Routes';\nimport {\n Overview,\n UserActivity,\n HostActivity,\n NetworkActivity,\n Anomalies,\n} from 'components/security/pages';\n\nconst subRoutes = [\n { path: AppRoutes.SECURITY.OVERVIEW, element: <Overview /> },\n { path: AppRoutes.SECURITY.USER_ACTIVITY, element: <UserActivity /> },\n { path: AppRoutes.SECURITY.HOST_ACTIVITY, element: <HostActivity /> },\n { path: AppRoutes.SECURITY.NETWORK_ACTIVITY, element: <NetworkActivity /> },\n { path: AppRoutes.SECURITY.ANOMALIES, element: <Anomalies /> },\n].map((route) => ({ ...route, path: route.path.slice(SECURITY_PATH.length) }));\n\nconst SecurityPage = () => (\n <TeaserPageLayout>\n <Routes>\n {subRoutes.map(({ path, element }) => (\n <Route key={path} path={path} element={element} />\n ))}\n </Routes>\n </TeaserPageLayout>\n);\n\nexport default SecurityPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport SecurityPage from 'components/security/teaser/SecurityPage';\n\nconst SecurityPageEntry = () => {\n const securityPagePlugins = usePluginEntities('securityPage');\n\n if (securityPagePlugins?.length) {\n // eslint-disable-next-line react/no-array-index-key\n return <>{securityPagePlugins.map((Page, index) => <Page key={index} />)}</>;\n }\n\n return (\n <SecurityPage />\n );\n};\n\nexport default SecurityPageEntry;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { PluginExports } from 'graylog-web-plugin/plugin';\n\nimport Routes, { SECURITY_PATH, SECURITY_ROUTE_DESCRIPTION } from 'routing/Routes';\nimport SecurityPageEntry from 'components/security/SecurityPageEntry';\n\nconst routes = [\n { path: `${SECURITY_PATH}/*`, component: SecurityPageEntry, parentComponent: ({ children }) => children },\n];\n\nexport const navigation = {\n description: SECURITY_ROUTE_DESCRIPTION,\n children: [\n { path: Routes.SECURITY.OVERVIEW, description: 'Overview' },\n { path: Routes.SECURITY.USER_ACTIVITY, description: 'User Activity' },\n { path: Routes.SECURITY.HOST_ACTIVITY, description: 'Host Activity' },\n { path: Routes.SECURITY.NETWORK_ACTIVITY, description: 'Network Activity' },\n { path: Routes.SECURITY.ANOMALIES, description: 'Anomalies' },\n ],\n};\n\nconst pluginExports: PluginExports = {\n routes,\n};\n\nexport default pluginExports;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css, useTheme } from 'styled-components';\n\nimport { Label } from 'components/bootstrap';\n\ntype Size = 'normal' | 'small' | 'xsmall';\n\nconst ColorLabelWrap = styled.span<{ $size: Size }>(({ $size, theme }) => {\n const { body, small, tiny } = theme.fonts.size;\n const fontSize = $size === 'small' ? small : body;\n\n return css`\n vertical-align: middle;\n font-size: ${$size === 'xsmall' ? tiny : fontSize};\n`;\n});\n\ntype Props = {\n color: string,\n size?: Size,\n text?: string | React.ReactNode,\n}\n\nconst ColorLabel = ({ color, size, text }: Props) => {\n const theme = useTheme();\n const borderColor = theme.utils.colorLevel(color, 5);\n const textColor = theme.utils.contrastingColor(color);\n\n return (\n <ColorLabelWrap $size={size} className=\"color-label-wrapper\">\n <Label style={{\n backgroundColor: color,\n border: `1px solid ${borderColor}`,\n color: textColor,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '128px',\n marginRight: '4px',\n marginBottom: '4px',\n }}>\n {text}\n </Label>\n </ColorLabelWrap>\n );\n};\n\nColorLabel.propTypes = {\n color: PropTypes.string.isRequired,\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n size: PropTypes.oneOf(['normal', 'small', 'xsmall']),\n};\n\nColorLabel.defaultProps = {\n text: <span> </span>,\n size: 'normal',\n};\n\nexport default ColorLabel;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport type { Stream } from 'views/stores/StreamsStore';\n\ntype Props = {\n stream: Stream,\n};\n\nconst StreamLink = ({ stream }: Props) => {\n const route = Routes.stream_search(stream.id);\n\n return <Link to={route}>{stream.title}</Link>;\n};\n\nexport default StreamLink;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\n\nconst fetchStream = (streamId: string) => {\n const { url } = ApiRoutes.StreamsApiController.get(streamId);\n\n return fetch('GET', qualifyUrl(url));\n};\n\nconst useStream = (streamId: string, { enabled } = { enabled: true }): {\n data: Stream\n refetch: () => void,\n isFetching: boolean,\n isError,\n} => {\n const { data, refetch, isFetching, isError } = useQuery(\n ['streams', streamId],\n () => fetchStream(streamId),\n {\n onError: (errorThrown) => {\n UserNotification.error(`Loading stream failed with status: ${errorThrown}`,\n 'Could not load Stream');\n },\n keepPreviousData: true,\n enabled,\n },\n );\n\n return ({\n data,\n refetch,\n isFetching,\n isError,\n });\n};\n\nexport default useStream;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport DocsHelper from 'util/DocsHelper';\n\nimport Icon from '../common/Icon';\n\nconst Container = styled.a`\n display: inline-flex;\n align-items: center;\n\n &:hover, &:focus {\n text-decoration: none;\n\n .documentation-link-text {\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledIcon = styled(Icon)`\n margin-left: 5px;\n`;\n\ntype Props = {\n page: string;\n text: ReactNode;\n title?: string;\n displayIcon?: boolean\n}\n\nconst DocumentationLink = ({ page, title = '', text, displayIcon }: Props) => (\n <Container href={DocsHelper.toString(page)} title={title} target=\"_blank\">\n <span className=\"documentation-link-text\">{text}</span>\n {displayIcon && (\n <StyledIcon name=\"lightbulb_circle\"\n type=\"regular\"\n size=\"lg\" />\n )}\n </Container>\n);\n\nDocumentationLink.defaultProps = {\n title: '',\n displayIcon: false,\n};\n\nexport default DocumentationLink;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nimport DocumentationLink from './DocumentationLink';\n\nimport DocsHelper from '../../util/DocsHelper';\n\nconst SourcesList = styled.ul`\n margin: 0;\n padding: 0;\n margin-top: 5px;\n`;\n\nconst SupportSources = () => (\n <div className=\"support-sources\">\n <h2>Need help?</h2>\n <p>\n Do not hesitate to consult the Graylog community if your questions are not answered in the{' '}\n <DocumentationLink page={DocsHelper.PAGES.WELCOME} text=\"documentation\" />.\n </p>\n\n <SourcesList>\n <li>\n <Icon name=\"group\" /> \n <a href=\"https://www.graylog.org/community-support/\" target=\"_blank\" rel=\"noopener noreferrer\">Community support</a>\n </li>\n <li>\n <Icon name=\"bug_report\" />  \n <a href=\"https://github.com/Graylog2/graylog2-server/issues\" target=\"_blank\" rel=\"noopener noreferrer\">Issue tracker</a>\n </li>\n <li>\n <Icon name=\"favorite\" /> \n <a href=\"https://www.graylog.org/professional-support\" target=\"_blank\" rel=\"noopener noreferrer\">Professional support</a>\n </li>\n </SourcesList>\n </div>\n);\n\nSupportSources.propTypes = {};\n\nexport default SupportSources;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nimport { Col, Row } from 'components/bootstrap';\n\nimport SupportSources from './SupportSources';\n\nconst ContactUs = () => (\n <Row className=\"content\">\n <Col md={12}>\n <SupportSources />\n </Col>\n </Row>\n);\n\nexport default ContactUs;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport type User from 'logic/users/User';\nimport { singleton } from 'logic/singleton';\n\nconst CurrentUserContext = React.createContext<User | undefined>(undefined);\n\nexport default singleton('contexts.CurrentUserContext', () => CurrentUserContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\nimport type { QueryValidationState } from 'views/components/searchbar/queryvalidation/types';\n\nexport type Warnings = {\n queryString?: QueryValidationState,\n};\n\ninterface FormWarningsContextType {\n warnings: Warnings,\n\n setFieldWarning: <R extends keyof Warnings>(fieldName: R, warning: Warnings[R]) => void,\n}\n\nconst FormWarningsContext = React.createContext<FormWarningsContextType | undefined>(undefined);\n\nexport default singleton('contexts.FormWarningsContext', () => FormWarningsContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useEffect, useRef } from 'react';\n\nconst useIsMountedRef = () => {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n\nexport default useIsMountedRef;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useState, useCallback, useMemo } from 'react';\n\nimport useIsMountedRef from 'hooks/useIsMountedRef';\n\nimport type { Warnings } from './FormWarningsContext';\nimport FormWarningsContext from './FormWarningsContext';\n\ntype Props = {\n children: React.ReactNode\n};\n\nconst FormWarningsProvider = ({ children }: Props) => {\n const isMountedRef = useIsMountedRef();\n const [warnings, setWarnings] = useState<Warnings>({});\n\n const setFieldWarning = useCallback(<T extends keyof Warnings>(fieldName: T, warning: Warnings[T]) => {\n if (isMountedRef.current === true) {\n setWarnings((curWarnings) => ({ ...curWarnings, [fieldName]: warning }));\n }\n }, [isMountedRef]);\n\n const formWarningsContextValue = useMemo(() => ({ warnings, setFieldWarning }), [setFieldWarning, warnings]);\n\n return (\n <FormWarningsContext.Provider value={formWarningsContextValue}>\n {children}\n </FormWarningsContext.Provider>\n );\n};\n\nexport default FormWarningsProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type Immutable from 'immutable';\n\nimport { singleton } from 'logic/singleton';\n\nexport type DefaultScopeName = '*';\nexport type ScopeName = 'general' | 'search' | 'dashboard' | 'scratchpad' | 'query-input';\nexport type ScopeParam = Array<ScopeName> | ScopeName\n\nexport type KeyboardModifiers = {\n alt?: boolean\n ctrl?: boolean\n meta?: boolean\n shift?: boolean\n mod?: boolean\n}\n\nexport type Hotkey = KeyboardModifiers & {\n keys: readonly string[]\n scopes: ScopeName,\n description: string\n}\n\nexport type HotkeysEvent = Hotkey\nexport type FormTags = 'input' | 'textarea' | 'select' | 'INPUT' | 'TEXTAREA' | 'SELECT'\nexport type HotkeyCallback = (keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => void\n\nexport type Trigger = boolean | ((keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => boolean)\nexport type Options = {\n combinationKey?: string // Character to split keys in hotkeys combinations. (Default: +)\n enabled?: Trigger // Main setting that determines if the hotkey is enabled or not. (Default: true)\n enableOnFormTags?: readonly FormTags[] | boolean // Enable hotkeys on a list of tags. (Default: false)\n enableOnContentEditable?: boolean // Enable hotkeys on tags with contentEditable props. (Default: false)\n preventDefault?: Trigger // Prevent default browser behavior? (Default: false)\n displayInOverview?: boolean,\n splitKey?: string,\n}\nexport type ActiveHotkey = {\n options?: Options & { scope: ScopeName },\n}\nexport type ActiveHotkeys = Immutable.Map<`${ScopeName}.${string}`, ActiveHotkey>\nexport type HotkeyCollection = {\n title: string,\n description: string,\n actions: Record<string, { keys: string | Array<string>, description: string, displayKeys?: string }>,\n}\nexport type HotkeyCollections = Record<ScopeName, HotkeyCollection>\n\ntype HotkeysContextType = {\n enabledScopes: Array<ScopeName | DefaultScopeName>,\n hotKeysCollections: HotkeyCollections,\n activeHotkeys: ActiveHotkeys,\n addActiveHotkey: (props: { scope: ScopeName, actionKey: string, options: Options & { scope: ScopeName } }) => void,\n removeActiveHotkey: (props: { scope: ScopeName, actionKey: string }) => void,\n showHotkeysModal: boolean,\n setShowHotkeysModal: React.Dispatch<React.SetStateAction<boolean>>\n}\n\nconst HotkeysContext = React.createContext<HotkeysContextType | undefined>(undefined);\n\nexport default singleton('contexts.HotkeysContext', () => HotkeysContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\nimport type { Input } from 'components/messageloaders/Types';\n\ntype InputsMap = { [id: string]: Input };\nconst InputsContext = React.createContext<InputsMap | undefined>(undefined);\n\nexport default singleton('contexts.InputsContext', () => InputsContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\n\ntype NodeSummary = {\n id: string,\n short_node_id: string,\n hostname: string,\n};\ntype NodesMap = { [id: string]: NodeSummary };\nconst NodesContext = React.createContext<NodesMap | undefined>(undefined);\n\nexport default singleton('contexts.NodesContext', () => NodesContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\nimport type { Stream } from 'views/stores/StreamsStore';\n\nconst StreamsContext = React.createContext<Array<Stream> | undefined>(undefined);\n\nexport default singleton('contexts.StreamsContext', () => StreamsContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { Moment } from 'moment';\n\nimport { singleton } from 'logic/singleton';\nimport type { DateTime, DateTimeFormats } from 'util/DateTime';\n\nexport type UserDateTimeContextType = {\n formatTime: (time: DateTime, format?: DateTimeFormats) => string,\n toUserTimezone: (time: DateTime) => Moment,\n userTimezone: string,\n};\n\nconst UserDateTimeContext = React.createContext<UserDateTimeContextType | undefined>(undefined);\n\nexport default singleton('contexts.UserDateTimeContext', () => UserDateTimeContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { ColorScheme } from '@graylog/sawmill';\n\nimport type { PREFERENCES_THEME_MODE } from 'theme/constants';\n\nimport { singleton } from '../logic/singleton';\n\nexport type UserPreferences = {\n enableSmartSearch: boolean,\n updateUnfocussed: boolean,\n searchSidebarIsPinned?: boolean,\n dashboardSidebarIsPinned?: boolean,\n [PREFERENCES_THEME_MODE]?: ColorScheme,\n};\n\nexport const defaultUserPreferences = {\n enableSmartSearch: true,\n updateUnfocussed: false,\n searchSidebarIsPinned: false,\n dashboardSidebarIsPinned: false,\n};\n\nconst UserPreferencesContext = React.createContext<UserPreferences>(defaultUserPreferences);\nexport default singleton('contexts.UserPreferencesContext', () => UserPreferencesContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\n\ntype WindowDimensions = {\n height: number,\n width: number,\n}\n\nconst WindowDimensionsContext = React.createContext<WindowDimensions | undefined>(undefined);\n\nexport default singleton('contexts.WindowDimensionsContext', () => WindowDimensionsContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport debounce from 'lodash/debounce';\n\nimport WindowDimensionsContext from './WindowDimensionsContext';\n\ntype Props = {\n children: React.ReactNode,\n};\n\nconst getWindowDimension = () => {\n const { innerWidth: width, innerHeight: height } = window;\n\n return { width, height };\n};\n\nconst useWindowDimension = () => {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimension());\n\n useEffect(() => {\n const handleWindowResize = debounce(() => setWindowDimensions(getWindowDimension()), 200);\n window.addEventListener('resize', handleWindowResize);\n\n return () => {\n window.removeEventListener('resize', handleWindowResize);\n };\n });\n\n return windowDimensions;\n};\n\nconst WindowDimensionsContextProvider = ({ children }: Props) => {\n const windowDimensions = useWindowDimension();\n\n return (\n <WindowDimensionsContext.Provider value={windowDimensions}>\n {children}\n </WindowDimensionsContext.Provider>\n );\n};\n\nexport default WindowDimensionsContextProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport UserNotification from 'util/UserNotification';\nimport { createNotFoundError } from 'logic/errors/ReportedErrors';\nimport ErrorsActions from 'actions/errors/ErrorsActions';\n\ntype Notification = {\n title?: string,\n message?: string,\n};\n\nconst _displaySuccessNotification = <T, Args extends Array<T>>(successNotification: (...Args) => Notification, ...args: Args) => {\n const { message, title } = successNotification(...args);\n UserNotification.success(message, title || 'Success');\n};\n\nconst _displayErrorNotification = <T, Args extends Array<T>>(errorNotification: (error: string, ...Args) => Notification, error, ...args: Args) => {\n let errorMessage = String(error);\n\n if ((error?.status === 400 || error?.status === 500) && error?.additional?.body?.message) {\n errorMessage = `${error.additional.body.message} - ${error.message}`;\n }\n\n const { message, title } = errorNotification(errorMessage, ...args);\n UserNotification.error(message, title || 'Error');\n};\n\ntype Props<F extends (...args: Array<any>) => any> = {\n action: F,\n success?: (...args: Parameters<F>) => Notification,\n error: (error: string, ...args: Parameters<F>) => Notification,\n notFoundRedirect?: boolean,\n};\n\ntype PromiseResult<P extends Promise<any>> = P extends Promise<infer R> ? R : never;\n\nconst notifyingAction = <F extends (...args: Array<any>) => Promise<any>>({\n action,\n success: successNotification,\n error: errorNotification,\n notFoundRedirect,\n}: Props<F>) => (...args: Parameters<typeof action>) => action(...args).then((result: PromiseResult<ReturnType<F>>) => {\n if (successNotification) _displaySuccessNotification(successNotification, ...args);\n\n return result;\n }).catch((error) => {\n if (notFoundRedirect && error?.status === 404) {\n ErrorsActions.report(createNotFoundError(error));\n throw error;\n }\n\n _displayErrorNotification(errorNotification, error, ...args);\n\n throw error;\n });\n\nexport default notifyingAction;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { EntityShareActions } from 'stores/permissions/EntityShareStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst prepare = notifyingAction({\n action: EntityShareActions.prepare,\n error: (error, entityName, entityType) => ({\n message: `Preparing shares for ${entityType} \"${entityName}\" failed with status: ${error}`,\n }),\n});\n\nconst update = notifyingAction({\n action: EntityShareActions.update,\n error: (error, entityName, entityType) => ({\n message: `Updating shares for ${entityType} \"${entityName}\" failed with status: ${error}`,\n }),\n success: (entityName, entityType) => ({\n message: `Shares for ${entityType} \"${entityName}\" updated successfully`,\n }),\n});\n\nconst loadUserSharesPaginated = notifyingAction({\n action: EntityShareActions.loadUserSharesPaginated,\n error: (error, userId) => ({\n message: `Loading entities which got shared for user with id \"${userId}\" failed with status: ${error}`,\n }),\n});\n\nexport default {\n prepare,\n update,\n loadUserSharesPaginated,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { UsersActions } from 'stores/users/UsersStore';\n\nimport notifyingAction from '../notifyingAction';\n\nconst create = notifyingAction({\n action: UsersActions.create,\n success: (user) => ({\n message: `User \"${user?.first_name} ${user?.last_name}\" was created successfully`,\n }),\n error: (error, user) => ({\n message: `Creating user \"${user?.first_name} ${user?.last_name}\" failed with status: ${error}`,\n }),\n});\n\nconst load = notifyingAction({\n action: UsersActions.load,\n error: (error, userId) => ({\n message: `Loading user with id \"${userId}\" failed with status: ${error}`,\n }),\n notFoundRedirect: true,\n});\n\nconst loadByUsername = notifyingAction({\n action: UsersActions.loadByUsername,\n error: (error, username) => ({\n message: `Loading user with username \"${username}\" failed with status: ${error}`,\n }),\n notFoundRedirect: true,\n});\n\nconst update = notifyingAction({\n action: UsersActions.update,\n success: (_userId, _payload, fullName) => ({\n message: `User \"${fullName}\" was updated successfully`,\n }),\n error: (error, _userId, _payload, fullName) => ({\n message: `Updating user \"${fullName}\" failed with status: ${error}`,\n }),\n});\n\nconst deleteAction = notifyingAction({\n action: UsersActions.delete,\n success: (_userId, fullName) => ({\n message: `User \"${fullName}\" was deleted successfully`,\n }),\n error: (error, _userId, fullName) => ({\n message: `Deleting user \"${fullName}\" failed with status: ${error}`,\n }),\n});\n\nconst changePassword = notifyingAction({\n action: UsersActions.changePassword,\n success: () => ({\n message: 'Password was changed successfully ',\n }),\n error: (error, userId) => ({\n message: `Changing password for user with id \"${userId}\" failed with status: ${error}`,\n }),\n});\n\nconst createToken = notifyingAction({\n action: UsersActions.createToken,\n success: (_userId, tokenName) => ({\n message: `Token \"${tokenName}\" created successfully`,\n }),\n error: (error, userId, tokenName) => ({\n message: `Creating token \"${tokenName}\" for user with id \"${userId}\" failed with status: ${error}`,\n }),\n});\n\nconst loadTokens = notifyingAction({\n action: UsersActions.loadTokens,\n error: (error, userId) => ({\n message: `Loading tokens for user with id \"${userId}\" failed with status: ${error}`,\n }),\n});\n\nconst deleteToken = notifyingAction({\n action: UsersActions.deleteToken,\n success: (_userId, _tokenId, tokenName) => ({\n message: `Token \"${tokenName}\" deleted successfully`,\n }),\n error: (error, userId, _tokenId, tokenName) => ({\n message: `Deleting token \"${tokenName}\" for user with id \"${userId}\" failed with status: ${error}`,\n }),\n});\n\nconst loadUsers = notifyingAction({\n action: UsersActions.loadUsers,\n error: (error) => ({\n message: `Loading users failed with status: ${error}`,\n }),\n});\n\nconst loadUsersPaginated = notifyingAction({\n action: UsersActions.loadUsersPaginated,\n error: (error) => ({\n message: `Loading users failed with status: ${error}`,\n }),\n});\n\nconst setStatus = notifyingAction({\n action: UsersActions.setStatus,\n success: (userId, accountStatus) => ({\n message: `User \"${userId}\" was set to ${accountStatus}`,\n }),\n error: (error, userId, accountStatus) => ({\n message: `Updating user (\"${userId}\") to ${accountStatus} failed with status: ${error}`,\n }),\n});\n\nexport default {\n create,\n load,\n loadByUsername,\n update,\n delete: deleteAction,\n changePassword,\n createToken,\n loadTokens,\n deleteToken,\n loadUsers,\n loadUsersPaginated,\n setStatus,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useMemo } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport useLocation from 'routing/useLocation';\nimport Routes from 'routing/Routes';\nimport useParams from 'routing/useParams';\nimport type { Event } from 'components/events/events/types';\nimport type { EventDefinitionAggregation } from 'hooks/useEventDefinition';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\n\nconst useAlertAndEventDefinitionData = () => {\n const { pathname: path } = useLocation();\n const { alertId, definitionId } = useParams<{ alertId?: string, definitionId?: string }>();\n const queryClient = useQueryClient();\n const eventData = queryClient.getQueryData(['event-by-id', alertId]) as Event;\n const data = queryClient.getQueryData(['event-definition-by-id', definitionId || eventData?.event_definition_id]) as { eventDefinition: EventDefinition, aggregations: Array<EventDefinitionAggregation>};\n const eventDefinition = data?.eventDefinition;\n const aggregations = data?.aggregations;\n\n return useMemo<{\n alertId: string,\n definitionId: string,\n definitionTitle: string,\n isAlert: boolean,\n isEvent: boolean,\n isEventDefinition: boolean,\n eventData: Event,\n eventDefinition: EventDefinition,\n aggregations: Array<EventDefinitionAggregation>,\n }>(() => ({\n alertId,\n definitionId: eventDefinition?.id,\n definitionTitle: eventDefinition?.title,\n isAlert: (path === Routes.ALERTS.replay_search(alertId)) && eventData && eventData?.alert,\n isEvent: !!alertId && (path === Routes.ALERTS.replay_search(alertId)) && eventData && !eventData?.alert,\n isEventDefinition: !!definitionId && (path === Routes.ALERTS.DEFINITIONS.replay_search(definitionId)) && !!eventDefinition,\n eventData,\n eventDefinition,\n aggregations,\n }), [alertId, eventDefinition, path, eventData, definitionId, aggregations]);\n};\n\nexport default useAlertAndEventDefinitionData;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useContext } from 'react';\n\nimport CurrentUserContext from 'contexts/CurrentUserContext';\n\nconst useCurrentUser = () => {\n const currentUser = useContext(CurrentUserContext);\n\n if (!currentUser) {\n throw new Error('useCurrentUser hook needs to be used inside CurrentUserContext.Provider');\n }\n\n return currentUser;\n};\n\nexport default useCurrentUser;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type * as React from 'react';\nimport { useState, useLayoutEffect } from 'react';\nimport useResizeObserver from '@react-hook/resize-observer';\nimport debounce from 'lodash/debounce';\n\n// Simple hook which provides the width and height of an element by using a ResizeObserver.\nconst useElementDimensions = (target: React.RefObject<HTMLElement> | HTMLElement, debounceDelay = 200) => {\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 });\n const debouncedUpdate = debounce((newDimensions) => setDimensions(newDimensions), debounceDelay);\n\n useLayoutEffect(() => {\n if (target && 'current' in target && target.current) {\n const { width, height } = target.current.getBoundingClientRect();\n setDimensions({ width, height });\n }\n }, [target]);\n\n useResizeObserver(target, ({ contentRect: { width, height } }) => {\n debouncedUpdate({ width, height });\n });\n\n return dimensions;\n};\n\nexport default useElementDimensions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport type { Event } from 'components/events/events/types';\nimport type FetchError from 'logic/errors/FetchError';\n\nexport const eventsUrl = (id) => qualifyUrl(`/events/${id}`);\n\nconst fetchEvent = (eventId: string) => fetch('GET', eventsUrl(eventId)).then((data) => data.event);\n\nconst useEventById = (eventId: string, { onErrorHandler }: { onErrorHandler?: (e: FetchError)=>void} = {}): {\n data: Event,\n refetch: () => void,\n isLoading: boolean,\n isFetched: boolean,\n} => {\n const { data, refetch, isLoading, isFetched } = useQuery<Event>(\n ['event-by-id', eventId],\n () => fetchEvent(eventId),\n {\n onError: (errorThrown: FetchError) => {\n if (onErrorHandler) onErrorHandler(errorThrown);\n\n UserNotification.error(`Loading event or alert failed with status: ${errorThrown}`,\n 'Could not load event or alert');\n },\n keepPreviousData: true,\n enabled: !!eventId,\n },\n );\n\n return ({\n data,\n refetch,\n isLoading,\n isFetched,\n });\n};\n\nexport default useEventById;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport AppConfig from 'util/AppConfig';\n\nconst useFeature = (name: string) => AppConfig.isFeatureEnabled(name);\n\nexport default useFeature;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport type { Options as ReactHotKeysHookOptions } from 'react-hotkeys-hook';\nimport { useHotkeys as originalUseHotkeys } from 'react-hotkeys-hook';\nimport { useEffect, useMemo, useCallback } from 'react';\n\nimport type { ScopeName, HotkeyCollections, Options, HotkeysEvent } from 'contexts/HotkeysContext';\nimport useHotkeysContext from 'hooks/useHotkeysContext';\nimport useFeature from 'hooks/useFeature';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nexport const DEFAULT_SPLIT_KEY = ',';\nexport const DEFAULT_COMBINATION_KEY = '+';\nconst defaultOptions: ReactHotKeysHookOptions & Options = {\n preventDefault: true,\n enabled: true,\n enableOnContentEditable: false,\n combinationKey: DEFAULT_COMBINATION_KEY,\n splitKey: DEFAULT_SPLIT_KEY,\n keyup: undefined,\n keydown: true,\n description: undefined,\n document: undefined,\n ignoreModifiers: false,\n displayInOverview: undefined,\n};\n\nconst catchErrors = (hotKeysCollections: HotkeyCollections, actionKey: string, scope: ScopeName) => {\n if (!hotKeysCollections[scope]) {\n throw Error(`Scope \"${scope}\" does not exist in hotkeys collection.`);\n }\n\n if (!hotKeysCollections[scope].actions[actionKey]) {\n throw Error(`Action \"${actionKey}\" does not exist in hotkeys collection of \"${scope}\" scope.`);\n }\n};\n\nexport type HotkeysProps = {\n actionKey: string,\n callback?: (event: KeyboardEvent, handler: HotkeysEvent) => unknown,\n scope: ScopeName,\n options?: Options,\n dependencies?: Array<unknown>,\n telemetryAppPathname?: string,\n}\n\nconst useHotkey = <T extends HTMLElement>({\n actionKey,\n callback,\n scope,\n options,\n dependencies,\n telemetryAppPathname,\n}: HotkeysProps) => {\n const hasHotkeysFeatureFlag = useFeature('frontend_hotkeys');\n\n if (!hasHotkeysFeatureFlag) {\n return null;\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const location = useLocation();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const sendTelemetry = useSendTelemetry();\n\n const {\n hotKeysCollections,\n addActiveHotkey,\n removeActiveHotkey,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n } = useHotkeysContext();\n\n catchErrors(hotKeysCollections, actionKey, scope);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const mergedOptions = useMemo(() => ({\n ...defaultOptions,\n ...options,\n scopes: scope,\n }), [options, scope]);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const callbackWithTelemetry = useCallback((event: KeyboardEvent, handler: HotkeysEvent) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.SHORTCUT_TYPED, {\n app_pathname: telemetryAppPathname ?? getPathnameWithoutId(location.pathname),\n event_details: { actionKey, scope, keys: hotKeysCollections?.[scope]?.actions?.[actionKey]?.keys },\n });\n\n callback(event, handler);\n }, [actionKey, callback, hotKeysCollections, location.pathname, scope, sendTelemetry, telemetryAppPathname]);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n addActiveHotkey({\n scope,\n actionKey,\n options: {\n scope,\n enabled: mergedOptions.enabled,\n displayInOverview: mergedOptions.displayInOverview,\n combinationKey: mergedOptions.combinationKey,\n splitKey: mergedOptions.splitKey,\n },\n });\n\n return () => removeActiveHotkey({ scope, actionKey });\n }, [actionKey, addActiveHotkey, scope, removeActiveHotkey, mergedOptions.combinationKey, mergedOptions.enabled, mergedOptions.displayInOverview, mergedOptions.splitKey]);\n\n return originalUseHotkeys<T>(\n hotKeysCollections?.[scope]?.actions?.[actionKey]?.keys,\n callbackWithTelemetry,\n mergedOptions,\n dependencies,\n );\n};\n\nexport default useHotkey;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useContext } from 'react';\n\nimport HotkeysContext from 'contexts/HotkeysContext';\n\nconst useHotkeysContext = () => useContext(HotkeysContext);\n\nexport default useHotkeysContext;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useContext } from 'react';\n\nimport InputsContext from 'contexts/InputsContext';\n\nconst useInputs = () => useContext(InputsContext);\nexport default useInputs;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useContext } from 'react';\n\nimport NodesContext from 'contexts/NodesContext';\n\nconst useNodeSummaries = () => useContext(NodesContext);\n\nexport default useNodeSummaries;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport URI from 'urijs';\nimport { useNavigate } from 'react-router-dom';\nimport { useCallback } from 'react';\n\nimport useLocation from 'routing/useLocation';\nimport useQuery from 'routing/useQuery';\n\nexport const DEFAULT_PAGE = 1;\nexport const DEFAULT_PAGE_SIZES = [10, 20, 50, 100];\n\nexport type PaginationQueryParameterResult = {\n page: number;\n resetPage: () => void;\n pageSize: number;\n setPagination: (payload: { page?: number, pageSize?: number }) => void;\n};\n\nconst usePaginationQueryParameter = (\n PAGE_SIZES: number[] = DEFAULT_PAGE_SIZES,\n propsPageSize: number = DEFAULT_PAGE_SIZES[0],\n syncPageSizeFromQuery: boolean = true,\n): PaginationQueryParameterResult => {\n const { page: pageQueryParameter, pageSize: pageSizeQueryParameter } = useQuery();\n const navigate = useNavigate();\n const { search, pathname } = useLocation();\n const query = pathname + search;\n const pageQueryParameterAsNumber = Number(pageQueryParameter);\n const page = (Number.isInteger(pageQueryParameterAsNumber) && pageQueryParameterAsNumber > 0) ? pageQueryParameterAsNumber : DEFAULT_PAGE;\n\n const pageSizeQueryParameterAsNumber = Number(pageSizeQueryParameter);\n\n const determinePageSize = () => {\n if (!syncPageSizeFromQuery) {\n return propsPageSize;\n }\n\n return (Number.isInteger(pageSizeQueryParameterAsNumber) && PAGE_SIZES?.includes(pageSizeQueryParameterAsNumber)) ? pageSizeQueryParameterAsNumber : propsPageSize;\n };\n\n const pageSize = determinePageSize();\n\n const setPagination = useCallback(({ page: newPage = page, pageSize: newPageSize = pageSize }: { page?: number, pageSize?: number }) => {\n const uri = new URI(query).setSearch({ page: newPage, pageSize: syncPageSizeFromQuery ? String(newPageSize) : undefined });\n navigate(uri.toString());\n }, [navigate, page, pageSize, query, syncPageSizeFromQuery]);\n\n const resetPage = useCallback(() => {\n setPagination({ page: DEFAULT_PAGE });\n }, [setPagination]);\n\n return { page, resetPage, pageSize, setPagination };\n};\n\nexport default usePaginationQueryParameter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useMemo } from 'react';\nimport type { PluginExports } from 'graylog-web-plugin/plugin';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nconst usePluginEntities = <S extends keyof PluginExports>(entityKey: S) => useMemo(() => PluginStore.exports(entityKey), [entityKey]);\n\nexport default usePluginEntities;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport UserNotification from 'util/UserNotification';\nimport type { GenericEntityType } from 'logic/lookup-tables/types';\n\ntype ScopeParams = {\n is_mutable: boolean,\n}\n\ntype ScopeName = 'DEFAULT' | 'ILLUMINATE';\n\ntype EntityScopeRecord = Record<ScopeName, ScopeParams>;\n\ntype EntityScopeType = {\n entity_scopes: EntityScopeRecord,\n};\n\nfunction fetchScopePermissions() {\n return fetch('GET', qualifyUrl(ApiRoutes.EntityScopeController.getScope().url));\n}\n\nconst useGetPermissionsByScope = (entity: Partial<GenericEntityType>) => {\n const { data, isLoading, error } = useQuery<EntityScopeType, Error>(\n ['scope-permissions'],\n fetchScopePermissions,\n {\n onError: () => UserNotification.error(error.message),\n retry: 1,\n cacheTime: 1000 * 60 * 60 * 3, // cache for 3 hours\n staleTime: 1000 * 60 * 60 * 3, // data is valid for 3 hours\n },\n );\n\n const scope = entity?._scope?.toUpperCase() || 'DEFAULT';\n const permissions: ScopeParams = isLoading ? { is_mutable: false } : data.entity_scopes[scope];\n\n return {\n loadingScopePermissions: isLoading,\n scopePermissions: permissions,\n };\n};\n\nexport default useGetPermissionsByScope;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useEffect } from 'react';\n\nimport { useStore } from 'stores/connect';\nimport { SearchConfigActions, SearchConfigStore } from 'views/stores/SearchConfigStore';\nimport type { SearchesConfig } from 'components/search/SearchConfig';\n\nconst useSearchConfiguration = (): { config: SearchesConfig, refresh: () => void} => {\n const { searchesClusterConfig } = useStore(SearchConfigStore);\n\n useEffect(() => {\n SearchConfigActions.refresh();\n }, []);\n\n return { config: searchesClusterConfig, refresh: SearchConfigActions.refresh };\n};\n\nexport default useSearchConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useContext } from 'react';\n\nimport UserDateTimeContext from 'contexts/UserDateTimeContext';\n\nconst useUserDateTime = () => {\n const userDateTime = useContext(UserDateTimeContext);\n\n if (!userDateTime) {\n throw new Error('useUserDateTime hook needs to be used inside UserDateTimeContext.Provider');\n }\n\n return userDateTime;\n};\n\nexport default useUserDateTime;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport URI from 'urijs';\n\nimport AppConfig from 'util/AppConfig';\n\n// The webpack-dev-server serves the assets from \"/\"\nconst assetPrefix = AppConfig.gl2DevMode() ? '/' : '/assets/';\n\n// If app prefix was not set, we need to tell webpack to load chunks from root instead of the relative URL path\n// eslint-disable-next-line no-undef\n__webpack_public_path__ = URI.joinPaths(AppConfig.gl2AppPathPrefix(), assetPrefix).path() || assetPrefix;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\n\nimport Button from 'components/bootstrap/Button';\nimport Modal from 'components/bootstrap/Modal';\nimport Well from 'components/bootstrap/Well';\nimport Icon from 'components/common/Icon';\nimport DocumentTitle from 'components/common/DocumentTitle';\nimport { qualifyUrl } from 'util/URLUtils';\nimport LoginChrome from 'components/login/LoginChrome';\nimport type { ServerError } from 'stores/sessions/ServerAvailabilityStore';\n\nconst StyledIcon = styled(Icon)`\n margin-left: 6px;\n`;\n\ntype Props = {\n server: {\n up: false,\n error?: ServerError,\n },\n};\n\nconst ServerUnavailablePage = ({ server }: Props) => {\n const [showDetails, setShowDetails] = useState(false);\n\n const _toggleDetails = () => setShowDetails(!showDetails);\n\n const _formatErrorMessage = () => {\n if (!showDetails) {\n return null;\n }\n\n const noInformationMessage = (\n <div>\n <hr />\n <p>There is no information available.</p>\n </div>\n );\n\n if (!server?.error) {\n return noInformationMessage;\n }\n\n const { error } = server;\n\n const errorDetails = [];\n\n if (error.message) {\n errorDetails.push(<dt key=\"error-title\">Error message</dt>, <dd key=\"error-desc\">{error.message}</dd>);\n }\n\n if (error.originalError) {\n const { originalError } = error;\n\n errorDetails.push(\n <dt key=\"status-original-request-title\">Original Request</dt>,\n <dd key=\"status-original-request-content\">{String(originalError.method)} {String(originalError.url)}</dd>,\n );\n\n errorDetails.push(\n <dt key=\"status-code-title\">Status code</dt>,\n <dd key=\"status-code-desc\">{String(originalError.status)}</dd>,\n );\n\n if (typeof originalError.toString === 'function') {\n errorDetails.push(\n <dt key=\"full-error-title\">Full error message</dt>,\n <dd key=\"full-error-desc\">{originalError.toString()}</dd>,\n );\n }\n }\n\n if (errorDetails.length === 0) {\n return noInformationMessage;\n }\n\n return (\n <div>\n <hr style={{ marginTop: 10, marginBottom: 10 }} />\n <p>This is the last response we received from the server:</p>\n <Well bsSize=\"small\" style={{ whiteSpace: 'pre-line' }}>\n <dl style={{ marginBottom: 0 }}>\n {errorDetails}\n </dl>\n </Well>\n </div>\n );\n };\n\n const modalTitle = 'Server currently unavailable';\n\n return (\n <DocumentTitle title=\"Server unavailable\">\n <LoginChrome>\n <Modal show onHide={() => {}}>\n <Modal.Header>\n <Modal.Title><Icon name=\"warning\" /> {modalTitle}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <div>\n <p>\n We are experiencing problems connecting to the Graylog server running on <i>{qualifyUrl('')}</i>.\n Please verify that the server is healthy and working correctly.\n </p>\n <p>You will be automatically redirected to the previous page once we can connect to the server.</p>\n <p>\n Do you need a hand?{' '}\n <a href=\"https://www.graylog.org/community-support\" rel=\"noopener noreferrer\" target=\"_blank\">We can\n help you\n </a>.\n </p>\n <div>\n <Button bsStyle=\"primary\"\n tabIndex={0}\n onClick={_toggleDetails}\n bsSize=\"sm\">\n {showDetails ? 'Less details' : 'More details'}\n <StyledIcon name={showDetails ? 'expand_less' : 'expand_more'} />\n </Button>\n {_formatErrorMessage()}\n </div>\n </div>\n </Modal.Body>\n </Modal>\n </LoginChrome>\n </DocumentTitle>\n );\n};\n\nServerUnavailablePage.propTypes = {\n server: PropTypes.object,\n};\n\nServerUnavailablePage.defaultProps = {\n server: undefined,\n};\n\nexport default ServerUnavailablePage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useEffect } from 'react';\n\nimport loadAsync from 'routing/loadAsync';\nimport ServerUnavailablePage from 'pages/ServerUnavailablePage';\nimport { useStore } from 'stores/connect';\nimport 'bootstrap/less/bootstrap.less';\nimport 'toastr/toastr.less';\nimport type { Store } from 'stores/StoreTypes';\nimport type { CurrentUserStoreState } from 'stores/users/CurrentUserStore';\nimport { CurrentUserStore } from 'stores/users/CurrentUserStore';\nimport { ServerAvailabilityStore } from 'stores/sessions/ServerAvailabilityStore';\nimport type { SessionStoreState } from 'stores/sessions/SessionStore';\nimport { SessionStore } from 'stores/sessions/SessionStore';\nimport GraylogThemeProvider from 'theme/GraylogThemeProvider';\nimport GlobalThemeStyles from 'theme/GlobalThemeStyles';\n\nconst LoginPage = loadAsync(() => import(/* webpackChunkName: \"LoginPage\" */ 'pages/LoginPage'));\nconst LoadingPage = loadAsync(() => import(/* webpackChunkName: \"LoadingPage\" */ 'pages/LoadingPage'));\nconst LoggedInPage = loadAsync(() => import(/* webpackChunkName: \"LoggedInPage\" */ 'pages/LoggedInPage'));\n\nconst SERVER_PING_TIMEOUT = 20000;\n\nconst LoggedOutThemeProvider = ({ children }: React.PropsWithChildren) => (\n <GraylogThemeProvider userIsLoggedIn={false}>\n <GlobalThemeStyles />\n {children}\n </GraylogThemeProvider>\n);\n\nconst AppFacade = () => {\n const currentUser = useStore(CurrentUserStore as Store<CurrentUserStoreState>, (state) => state?.currentUser);\n const server = useStore(ServerAvailabilityStore, (state) => state?.server);\n const username = useStore(SessionStore as Store<SessionStoreState>, (state) => (state?.username ?? ''));\n\n useEffect(() => {\n const interval = setInterval(ServerAvailabilityStore.ping, SERVER_PING_TIMEOUT);\n\n return () => clearInterval(interval);\n }, []);\n\n if (server.up === false) {\n return (\n <LoggedOutThemeProvider>\n <ServerUnavailablePage server={server} />\n </LoggedOutThemeProvider>\n );\n }\n\n if (!username) {\n return (\n <LoggedOutThemeProvider>\n <LoginPage />\n </LoggedOutThemeProvider>\n );\n }\n\n if (!currentUser) {\n return (\n <LoggedOutThemeProvider>\n <LoadingPage text=\"We are preparing Graylog for you...\" />\n </LoggedOutThemeProvider>\n );\n }\n\n return <LoggedInPage />;\n};\n\nexport default AppFacade;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Reflux from 'reflux';\n\nimport { singletonActions } from 'logic/singleton';\nimport type { RefluxActions } from 'stores/StoreTypes';\n\ntype CustomizationActionsType = RefluxActions<{\n update: (type: string, config: {}) => Promise<unknown>,\n get: (type: string) => Promise<unknown>,\n}>;\n\nconst CustomizationActions: CustomizationActionsType = singletonActions('customization.actions', () => Reflux.createActions({\n update: { asyncResult: true },\n get: { asyncResult: true },\n}));\n\nexport default CustomizationActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Reflux from 'reflux';\n\nimport { qualifyUrl } from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport UserNotification from 'util/UserNotification';\nimport fetch from 'logic/rest/FetchProvider';\nimport { singletonStore } from 'logic/singleton';\nimport CustomizationActions from 'actions/customizations/CustomizationActions';\n\nconst urlPrefix = ApiRoutes.ClusterConfigResource.config().url;\n\nexport type CustomizationsStoreState = {\n customization: {},\n};\n\nconst CustomizationStore = singletonStore('customization.store', () => Reflux.createStore<CustomizationsStoreState>({\n listenables: [CustomizationActions],\n\n customization: {},\n\n getInitialState() {\n return {\n customization: this.customization,\n };\n },\n\n get(type: string) {\n const promise = fetch('GET', this._url(`/${type}`));\n\n promise.then((response) => {\n this.customization = { ...this.customization, [type]: response };\n this.propagateChanges();\n\n return response;\n });\n\n CustomizationActions.get.promise(promise);\n },\n\n update(type: string, config: {}) {\n const promise = fetch('PUT', this._url(`/${type}`), config);\n\n promise.then(\n (response) => {\n this.customization = { ...this.customization, [type]: response };\n this.propagateChanges();\n\n return response;\n },\n (error) => {\n UserNotification.error(`Update failed: ${error}`, `Could not update customization: ${type}`);\n },\n );\n\n CustomizationActions.update.promise(promise);\n },\n\n propagateChanges() {\n this.trigger(this.getState());\n },\n\n getState(): CustomizationsStoreState {\n return {\n customization: this.customization,\n };\n },\n\n _url(path: string): string {\n return qualifyUrl(urlPrefix + path);\n },\n}));\n\nexport default CustomizationStore;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { singleton } from '../logic/singleton';\n\nexport type CustomizationSetting = {\n [key: string]: boolean | string | number,\n};\n\nexport type CustomizationType = {\n [key: string]: CustomizationSetting,\n};\n\nconst defaultCustomization = {};\n\nconst CustomizationContext = React.createContext<CustomizationType>(defaultCustomization);\nexport default singleton('contexts.CustomizationContext', () => CustomizationContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useStore } from 'stores/connect';\nimport CustomizationsStore from 'stores/customizations/CustomizationsStore';\n\nimport CustomizationContext from './CustomizationContext';\n\nconst CustomizationProvider = ({ children }) => {\n const customization = useStore(CustomizationsStore, (state) => state.customization);\n\n return customization\n ? (\n <CustomizationContext.Provider value={customization}>\n {children}\n </CustomizationContext.Provider>\n )\n : children;\n};\n\nCustomizationProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default CustomizationProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport forEach from 'lodash/forEach';\nimport forOwn from 'lodash/forOwn';\nimport Immutable from 'immutable';\n\nexport default {\n convert(result) {\n const fieldNames = Immutable.Map().withMutations((map) => {\n forEach(result.messages, (msg) => {\n forOwn(msg.message, (_value, field) => {\n // add occurrences\n map.mergeWith((oldVal: number, newVal: number) => oldVal + newVal, Immutable.Map([[field, 1]]));\n });\n });\n });\n\n return {\n id: result.id,\n effectiveTimerange: result.effective_timerange,\n type: result.type,\n messages: result.messages,\n total: result.total_results,\n fields: fieldNames, // computed fieldname -> occurrence count\n };\n },\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Immutable from 'immutable';\nimport moment from 'moment';\n\nimport Plot from 'views/components/visualizations/plotly/AsyncPlot';\n\nconst _formatTimestamp = (epoch) => moment.unix(epoch).format('YYYY-MM-DD HH:mm:ss');\n\nconst _generateSeries = (results): Plotly.Data[] => {\n const data = Immutable.OrderedMap<string, number>(results);\n\n return [{\n type: 'bar',\n x: data.keySeq().map(_formatTimestamp).toArray(),\n y: data.valueSeq().toArray(),\n name: 'took_ms',\n }];\n};\n\nexport default function Histogram({ data }) {\n return (\n <Plot data={_generateSeries(data.results)}\n style={{ position: 'absolute' }}\n layout={{\n margin: {\n t: 10,\n pad: 10,\n },\n }}\n config={{ displayModeBar: false }} />\n );\n}\n\nHistogram.propTypes = {\n data: PropTypes.shape({\n config: PropTypes.shape({\n timerange: PropTypes.object.isRequired,\n }).isRequired,\n interval: PropTypes.string.isRequired,\n timerange: PropTypes.object.isRequired,\n results: PropTypes.object.isRequired,\n }).isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport MessagesWidgetConfig, { defaultSortDirection } from 'views/logic/widgets/MessagesWidgetConfig';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\nimport SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport CustomPropTypes from 'views/components/CustomPropTypes';\nimport { SortIcon } from 'components/common';\n\ntype Props = {\n config: MessagesWidgetConfig,\n fieldName: string,\n onSortChange: (newSortConfig: SortConfig[]) => Promise<void>,\n setLoadingState: (loading: boolean) => void,\n};\n\ntype DirectionStrategy = {\n handleSortChange: (changeSort: (direction: Direction) => void) => void,\n tooltip: (fieldName: string) => string,\n};\n\nconst _tooltip = (fieldName: string, newDirection: Direction) => `Sort ${fieldName} ${newDirection.direction}`;\n\nconst _changeSort = (nextDirection: Direction, _config: MessagesWidgetConfig, fieldName: string, onSortChange: (newSortConfig: SortConfig[]) => Promise<void>, setLoadingState: (loading: boolean) => void) => {\n const newSort = [new SortConfig(SortConfig.PIVOT_TYPE, fieldName, nextDirection)];\n\n setLoadingState(true);\n\n onSortChange(newSort).then(() => {\n setLoadingState(false);\n });\n};\n\nconst _isFieldSortActive = (config: MessagesWidgetConfig, fieldName: string) => config.sort && config.sort.length > 0 && config.sort[0].field === fieldName;\n\nconst DirectionStrategyAsc: DirectionStrategy = {\n tooltip: (fieldName: string) => _tooltip(fieldName, Direction.Descending),\n handleSortChange: (changeSort) => changeSort(Direction.Descending),\n};\n\nconst DirectionStrategyDesc: DirectionStrategy = {\n tooltip: (fieldName: string) => _tooltip(fieldName, Direction.Ascending),\n handleSortChange: (changeSort) => changeSort(Direction.Ascending),\n};\n\nconst DirectionStrategyNoSort: DirectionStrategy = {\n tooltip: (fieldName: string) => _tooltip(fieldName, defaultSortDirection),\n handleSortChange: (changeSort) => changeSort(defaultSortDirection),\n};\n\nconst _directionStrategy = (config: MessagesWidgetConfig, fieldName: string) => {\n const fieldSortDirection = _isFieldSortActive(config, fieldName) ? config.sort[0].direction.direction : null;\n\n switch (fieldSortDirection) {\n case Direction.Ascending.direction:\n return DirectionStrategyAsc;\n case Direction.Descending.direction:\n return DirectionStrategyDesc;\n default:\n return DirectionStrategyNoSort;\n }\n};\n\nconst FieldSortIcon = ({ fieldName, config, onSortChange, setLoadingState }: Props) => {\n const changeSort = (nextDirection: Direction) => _changeSort(nextDirection, config, fieldName, onSortChange, setLoadingState);\n\n const activeDirection = _isFieldSortActive(config, fieldName) ? config.sort[0].direction.direction : null;\n const { tooltip, handleSortChange }: DirectionStrategy = _directionStrategy(config, fieldName);\n\n return (\n <SortIcon activeDirection={activeDirection}\n onChange={() => handleSortChange(changeSort)}\n title={tooltip(fieldName)} />\n );\n};\n\nFieldSortIcon.propTypes = {\n config: CustomPropTypes.instanceOf(MessagesWidgetConfig).isRequired,\n fieldName: PropTypes.string.isRequired,\n onSortChange: PropTypes.func.isRequired,\n setLoadingState: PropTypes.func.isRequired,\n};\n\nexport default FieldSortIcon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\n\ntype Props = {\n children: React.ReactElement,\n};\n\nconst MessageTableProviders = ({ children }: Props) => {\n const contextProviders = usePluginEntities('views.components.widgets.messageTable.contextProviders');\n\n if (!contextProviders || contextProviders?.length === 0) {\n return children;\n }\n\n return contextProviders.reduce((nestedChildren, MessageTableContextProvider) => (\n <ErrorBoundary FallbackComponent={() => nestedChildren}>\n <MessageTableContextProvider>\n {nestedChildren}\n </MessageTableContextProvider>\n </ErrorBoundary>\n ), children);\n};\n\nexport default MessageTableProviders;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport * as Immutable from 'immutable';\nimport styled, { css } from 'styled-components';\n\nimport MessageFieldsFilter from 'logic/message/MessageFieldsFilter';\nimport FieldType from 'views/logic/fieldtypes/FieldType';\nimport type FieldTypeMapping from 'views/logic/fieldtypes/FieldTypeMapping';\nimport MessagesWidgetConfig from 'views/logic/widgets/MessagesWidgetConfig';\nimport type SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport CustomPropTypes from 'views/components/CustomPropTypes';\nimport { MessageTableEntry } from 'views/components/messagelist';\nimport type { BackendMessage, Message } from 'views/components/messagelist/Types';\nimport FieldSortIcon from 'views/components/widgets/FieldSortIcon';\nimport Field from 'views/components/Field';\nimport MessageTableProviders from 'views/components/messagelist/MessageTableProviders';\nimport useAutoRefresh from 'views/hooks/useAutoRefresh';\nimport { TableHeaderCell, TableHead } from 'views/components/datatable';\n\nimport InteractiveContext from '../contexts/InteractiveContext';\n\nconst Table = styled.table(({ theme }) => css`\n position: relative;\n font-size: ${theme.fonts.size.small};\n margin: 0;\n border-collapse: collapse;\n width: 100%;\n word-break: break-all;\n\n > tbody > tr > td {\n border-color: ${theme.colors.table.row.border};\n }\n\n @media print {\n font-size: ${theme.fonts.size.body};\n padding-left: 0;\n min-width: 50%;\n\n th {\n font-weight: bold !important;\n font-size: inherit !important;\n white-space: break-spaces !important;\n word-break: break-all !important;\n }\n\n th,\n td {\n border: 1px ${theme.colors.gray[80]} solid !important;\n left: 0;\n padding: 5px !important;\n position: static;\n }\n }\n`);\n\nconst TableWrapper = styled.div(({ theme }) => css`\n display: flex;\n flex-direction: column;\n overflow: auto;\n\n /* Fixes overflow of children with position: fixed */\n clip-path: inset(0 0 0 0);\n\n @media screen and (max-width: ${theme.breakpoints.max.md}) {\n &.table-responsive {\n overflow-y: auto;\n }\n }\n`);\n\ntype Props = {\n activeQueryId: string,\n config: MessagesWidgetConfig,\n fields: Immutable.List<FieldTypeMapping>,\n messages: Array<BackendMessage>,\n onSortChange: (newSortConfig: SortConfig[]) => Promise<void>,\n scrollContainerRef: React.MutableRefObject<HTMLDivElement>,\n setLoadingState: (loading: boolean) => void,\n};\n\nconst _fieldTypeFor = (fieldName: string, fields: Immutable.List<FieldTypeMapping>) => ((fields\n && fields.find((f) => f.name === fieldName)) || { type: FieldType.Unknown }).type;\n\nconst _getFormattedMessages = (messages): Array<Message> => messages.map((m) => ({\n fields: m.message,\n formatted_fields: MessageFieldsFilter.filterFields(m.message),\n id: m.message._id,\n index: m.index,\n highlight_ranges: m.highlight_ranges,\n decoration_stats: m.decoration_stats,\n}));\n\nconst _toggleMessageDetail = (\n id: string,\n expandedMessages: Immutable.Set<string>,\n setExpandedMessages: (newValue: Immutable.Set<string>) => void,\n stopAutoRefresh: () => void,\n) => {\n let newSet;\n\n if (expandedMessages.contains(id)) {\n newSet = expandedMessages.delete(id);\n } else {\n newSet = expandedMessages.add(id);\n stopAutoRefresh();\n }\n\n setExpandedMessages(newSet);\n};\n\nconst MessageTable = ({ fields, activeQueryId, messages, config, onSortChange, setLoadingState, scrollContainerRef }: Props) => {\n const { stopAutoRefresh } = useAutoRefresh();\n const [expandedMessages, setExpandedMessages] = useState(Immutable.Set<string>());\n const formattedMessages = useMemo(() => _getFormattedMessages(messages), [messages]);\n const selectedFields = useMemo(() => Immutable.OrderedSet<string>(config?.fields ?? []), [config?.fields]);\n const toggleDetail = useCallback((id: string) => _toggleMessageDetail(id, expandedMessages, setExpandedMessages, stopAutoRefresh), [expandedMessages, stopAutoRefresh]);\n\n return (\n <MessageTableProviders>\n <TableWrapper className=\"table-responsive\" id=\"sticky-augmentations-container\" ref={scrollContainerRef}>\n <Table className=\"table table-condensed\">\n <TableHead>\n <tr>\n {selectedFields.toSeq().map((selectedFieldName) => {\n const type = _fieldTypeFor(selectedFieldName, fields);\n const isCompound = type.isCompound();\n\n return (\n <TableHeaderCell key={selectedFieldName} $isNumeric={type.isNumeric()}>\n <Field type={type}\n name={selectedFieldName}\n queryId={activeQueryId}>\n {selectedFieldName}\n </Field>\n <InteractiveContext.Consumer>\n {(interactive) => (interactive && !isCompound && (\n <FieldSortIcon fieldName={selectedFieldName}\n onSortChange={onSortChange}\n setLoadingState={setLoadingState}\n config={config} />\n ))}\n </InteractiveContext.Consumer>\n </TableHeaderCell>\n );\n }).toArray()}\n </tr>\n </TableHead>\n {formattedMessages.map((message) => {\n const messageKey = `${message.index}-${message.id}`;\n\n return (\n <MessageTableEntry fields={fields}\n key={messageKey}\n message={message}\n config={config}\n showMessageRow={config?.showMessageRow}\n selectedFields={selectedFields}\n expanded={expandedMessages.contains(messageKey)}\n toggleDetail={toggleDetail}\n expandAllRenderAsync={false} />\n );\n })}\n </Table>\n </TableWrapper>\n </MessageTableProviders>\n );\n};\n\nMessageTable.propTypes = {\n activeQueryId: PropTypes.string.isRequired,\n config: CustomPropTypes.instanceOf(MessagesWidgetConfig).isRequired,\n fields: CustomPropTypes.FieldListType.isRequired,\n messages: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSortChange: PropTypes.func.isRequired,\n setLoadingState: PropTypes.func.isRequired,\n};\n\nexport default React.memo(MessageTable);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport { selectCurrentQueryResults } from 'views/logic/slices/viewSelectors';\nimport useAppSelector from 'stores/useAppSelector';\n\nconst selectCurrentSearchTypeResults = createSelector(selectCurrentQueryResults, (result) => result?.searchTypes);\n\nconst useCurrentSearchTypesResults = () => useAppSelector(selectCurrentSearchTypeResults);\n\nexport default useCurrentSearchTypesResults;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { SearchTypeOptions } from 'views/logic/search/GlobalOverride';\nimport GlobalOverride from 'views/logic/search/GlobalOverride';\nimport type { TimeRange } from 'views/logic/queries/Query';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport type { RootState, SearchExecutionResult, ExtraArguments } from 'views/types';\nimport { selectView } from 'views/logic/slices/viewSelectors';\nimport SearchExecutionState from 'views/logic/search/SearchExecutionState';\nimport {\n selectGlobalOverride,\n selectParameterBindings,\n selectSearchExecutionResult,\n} from 'views/logic/slices/searchExecutionSelectors';\nimport { executeWithExecutionState } from 'views/logic/slices/searchExecutionSlice';\n\nconst reexecuteSearchTypes = (\n searchTypes: SearchTypeOptions,\n effectiveTimerange?: TimeRange,\n) => (dispatch: AppDispatch, getState: () => RootState, { searchExecutors }: ExtraArguments) => {\n const state = getState();\n const globalOverride = selectGlobalOverride(state);\n const globalQuery = globalOverride?.query;\n const parameterBindings = selectParameterBindings(state);\n const view = selectView(state);\n const searchTypeIds = Object.keys(searchTypes);\n\n const newGlobalOverride: GlobalOverride = new GlobalOverride(\n effectiveTimerange,\n globalQuery,\n searchTypeIds,\n searchTypes,\n );\n\n const executionState = new SearchExecutionState(parameterBindings, newGlobalOverride);\n\n const handleSearchResult = (searchExecutionResult: SearchExecutionResult): SearchExecutionResult => {\n const { result: searchResult, widgetMapping } = searchExecutionResult;\n const updatedSearchTypes = searchResult.getSearchTypesFromResponse(searchTypeIds);\n const { result } = selectSearchExecutionResult(getState());\n\n return { result: result.updateSearchTypes(updatedSearchTypes), widgetMapping };\n };\n\n return dispatch(executeWithExecutionState(view, [], executionState, { ...searchExecutors, resultMapper: handleSearchResult }));\n};\n\nexport default reexecuteSearchTypes;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useContext, useState, useEffect, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { WidgetComponentProps, MessageResult } from 'views/types';\nimport { Messages } from 'views/Constants';\nimport type MessagesWidgetConfig from 'views/logic/widgets/MessagesWidgetConfig';\nimport type { SearchTypeOptions } from 'views/logic/search/GlobalOverride';\nimport { PaginatedList } from 'components/common';\nimport MessageTable from 'views/components/widgets/MessageTable';\nimport ErrorWidget from 'views/components/widgets/ErrorWidget';\nimport type SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport type { BackendMessage } from 'views/components/messagelist/Types';\nimport WindowDimensionsContextProvider from 'contexts/WindowDimensionsContextProvider';\nimport { InputsActions } from 'stores/inputs/InputsStore';\nimport useActiveQueryId from 'views/hooks/useActiveQueryId';\nimport useCurrentSearchTypesResults from 'views/components/widgets/useCurrentSearchTypesResults';\nimport useAppDispatch from 'stores/useAppDispatch';\nimport reexecuteSearchTypes from 'views/components/widgets/reexecuteSearchTypes';\nimport useOnSearchExecution from 'views/hooks/useOnSearchExecution';\nimport useAutoRefresh from 'views/hooks/useAutoRefresh';\n\nimport RenderCompletionCallback from './RenderCompletionCallback';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n\n .pagination {\n margin-bottom: 0;\n }\n`;\n\ntype Pagination = {\n pageErrors: Array<{ description: string }>,\n currentPage: number\n}\n\nexport type MessageListResult = {\n messages: Array<BackendMessage>,\n total: number,\n id: string,\n type: 'messages'\n};\n\ntype Props = WidgetComponentProps<MessagesWidgetConfig, MessageListResult> & {\n pageSize?: number,\n};\n\nconst useResetPaginationOnSearchExecution = (setPagination: (pagination: Pagination) => void, currentPage) => {\n const resetPagination = useCallback(() => {\n if (currentPage !== 1) {\n setPagination({ currentPage: 1, pageErrors: [] });\n }\n }, [currentPage, setPagination]);\n useOnSearchExecution(resetPagination);\n};\n\nconst useResetScrollPositionOnPageChange = (currentPage: number) => {\n const scrollContainerRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = 0;\n }\n }, [currentPage, scrollContainerRef]);\n\n return scrollContainerRef;\n};\n\nconst useRenderCompletionCallback = () => {\n const renderCompletionCallback = useContext(RenderCompletionCallback);\n\n useEffect(() => {\n InputsActions.list().then(() => (renderCompletionCallback && renderCompletionCallback()));\n }, [renderCompletionCallback]);\n};\n\nconst MessageList = ({\n config,\n data: { id: searchTypeId, messages, total: totalMessages },\n fields,\n onConfigChange,\n pageSize,\n setLoadingState,\n}: Props) => {\n const [{ currentPage, pageErrors }, setPagination] = useState<Pagination>({\n pageErrors: [],\n currentPage: 1,\n });\n const { stopAutoRefresh } = useAutoRefresh();\n const activeQueryId = useActiveQueryId();\n const searchTypes = useCurrentSearchTypesResults();\n const scrollContainerRef = useResetScrollPositionOnPageChange(currentPage);\n const dispatch = useAppDispatch();\n useResetPaginationOnSearchExecution(setPagination, currentPage);\n useRenderCompletionCallback();\n\n const handlePageChange = useCallback((pageNo: number) => {\n // execute search with new offset\n const { effectiveTimerange } = searchTypes[searchTypeId] as MessageResult;\n const searchTypePayload: SearchTypeOptions<{\n limit: number,\n offset: number,\n }> = {\n [searchTypeId]: {\n limit: pageSize,\n offset: pageSize * (pageNo - 1),\n },\n };\n\n stopAutoRefresh();\n setLoadingState(true);\n\n dispatch(reexecuteSearchTypes(searchTypePayload, effectiveTimerange)).then((response) => {\n const { result } = response.payload;\n setLoadingState(false);\n\n setPagination({\n pageErrors: result.errors,\n currentPage: pageNo,\n });\n });\n }, [dispatch, pageSize, searchTypeId, searchTypes, setLoadingState, stopAutoRefresh]);\n\n const onSortChange = useCallback((newSort: SortConfig[]) => {\n const newConfig = config.toBuilder().sort(newSort).build();\n\n return onConfigChange(newConfig);\n }, [config, onConfigChange]);\n\n return (\n <WindowDimensionsContextProvider>\n <Wrapper>\n <PaginatedList onChange={handlePageChange}\n activePage={Number(currentPage)}\n showPageSizeSelect={false}\n totalItems={totalMessages}\n pageSize={pageSize}\n useQueryParameter={false}>\n {!pageErrors?.length ? (\n <MessageTable activeQueryId={activeQueryId}\n config={config}\n scrollContainerRef={scrollContainerRef}\n fields={fields}\n onSortChange={onSortChange}\n setLoadingState={setLoadingState}\n messages={messages} />\n ) : <ErrorWidget errors={pageErrors} />}\n </PaginatedList>\n </Wrapper>\n </WindowDimensionsContextProvider>\n );\n};\n\nMessageList.propTypes = {\n onConfigChange: PropTypes.func,\n pageSize: PropTypes.number,\n};\n\nMessageList.defaultProps = {\n onConfigChange: () => Promise.resolve(),\n pageSize: Messages.DEFAULT_LIMIT,\n};\n\nexport default MessageList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport MessagesWidget from 'views/logic/widgets/MessagesWidget';\nimport type Widget from 'views/logic/widgets/Widget';\nimport type { ActionHandlerCondition, ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { updateWidgetConfig } from 'views/logic/slices/widgetActions';\n\ntype Contexts = { widget: Widget };\n\nconst AddToTableActionHandler = ({\n field,\n contexts: { widget },\n}: ActionHandlerArguments<{ widget?: Widget }>) => (dispatch: AppDispatch) => {\n const newFields = [].concat(widget.config.fields, [field]);\n const newConfig = widget.config.toBuilder()\n .fields(newFields)\n .build();\n\n return dispatch(updateWidgetConfig(widget.id, newConfig));\n};\n\nconst isEnabled: ActionHandlerCondition<Contexts> = ({ contexts: { widget }, field }) => {\n if (MessagesWidget.isMessagesWidget(widget) && widget.config) {\n const fields = widget.config.fields || [];\n\n return !fields.includes(field);\n }\n\n return false;\n};\n\n/* Hide AddToTableHandler in the sidebar */\nconst isHidden: ActionHandlerCondition<Contexts> = ({ contexts: { widget } }) => !widget;\n\nAddToTableActionHandler.isEnabled = isEnabled;\nAddToTableActionHandler.isHidden = isHidden;\n\nexport default AddToTableActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { updateWidgets } from 'views/logic/slices/widgetActions';\nimport type { GetState } from 'views/types';\nimport { selectWidgets } from 'views/logic/slices/viewSelectors';\nimport MessagesWidget from 'views/logic/widgets/MessagesWidget';\n\nconst AddToAllTablesActionHandler = ({ field }: ActionHandlerArguments<{}>) => async (dispatch: AppDispatch, getState: GetState) => {\n const widgets = selectWidgets(getState());\n const newWidgets = widgets.map((widget) => {\n if (widget.type.toUpperCase() === MessagesWidget.type.toUpperCase()) {\n const newFields = [].concat(widget.config.fields, [field]);\n const newConfig = widget.config.toBuilder()\n .fields(newFields)\n .build();\n\n return widget.toBuilder().config(newConfig).build();\n }\n\n return widget;\n }).toList();\n\n return dispatch(updateWidgets(newWidgets));\n};\n\nexport default AddToAllTablesActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type Widget from '../widgets/Widget';\n\nconst duplicateCommonWidgetSettings = (\n// @ts-ignore\n widgetBuilder: Widget.Builder,\n originalWidget: Widget,\n) => {\n let result = widgetBuilder;\n const { filter, query, streams, timerange } = originalWidget;\n\n if (filter) {\n result = result.filter(filter);\n }\n\n if (query) {\n result = result.query(query);\n }\n\n if (streams) {\n result = result.streams(streams);\n }\n\n if (timerange) {\n result = result.timerange(timerange);\n }\n\n return result;\n};\n\nexport default duplicateCommonWidgetSettings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Widget from 'views/logic/widgets/Widget';\nimport pivotForField from 'views/logic/searchtypes/aggregation/PivotGenerator';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport DataTable from 'views/components/datatable';\nimport type { ThunkActionHandler } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\n\nimport duplicateCommonWidgetSettings from './DuplicateCommonWidgetSettings';\n\nconst AggregateActionHandler: ThunkActionHandler<{ widget?: Widget }> = ({\n field,\n type,\n contexts: { widget = Widget.empty() },\n}) => (dispatch: AppDispatch) => {\n const newWidgetBuilder = AggregationWidget.builder()\n .newId()\n .config(AggregationWidgetConfig.builder()\n .rowPivots([pivotForField(field, type)])\n .series([Series.forFunction('count()'), Series.forFunction('percentage()')])\n .visualization(DataTable.type)\n .build());\n const newWidget = duplicateCommonWidgetSettings(newWidgetBuilder, widget).build();\n\n return dispatch(addWidget(newWidget));\n};\n\nexport default AggregateActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Widget from 'views/logic/widgets/Widget';\nimport pivotForField from 'views/logic/searchtypes/aggregation/PivotGenerator';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport Series, { isFunction } from 'views/logic/aggregationbuilder/Series';\nimport { TIMESTAMP_FIELD } from 'views/Constants';\nimport type { ThunkActionHandler } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\n\nimport duplicateCommonWidgetSettings from './DuplicateCommonWidgetSettings';\n\nimport { FieldTypes } from '../fieldtypes/FieldType';\n\nconst ChartActionHandler: ThunkActionHandler<{ widget?: Widget }> = ({\n field,\n contexts: { widget: origWidget = Widget.empty() },\n}) => (dispatch: AppDispatch) => {\n const series = isFunction(field) ? Series.forFunction(field) : Series.forFunction(`avg(${field})`);\n const config = AggregationWidgetConfig.builder()\n .rowPivots([pivotForField(TIMESTAMP_FIELD, FieldTypes.DATE())])\n .series([series])\n .visualization('line')\n .rollup(true)\n .build();\n const widgetBuilder = AggregationWidget.builder()\n .newId()\n .config(config);\n\n const widget = duplicateCommonWidgetSettings(widgetBuilder, origWidget).build();\n\n return dispatch(addWidget(widget));\n};\n\nexport default ChartActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\n\nimport Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport VisualizationConfig from 'views/logic/aggregationbuilder/visualizations/VisualizationConfig';\n\nimport CustomPropTypes from '../CustomPropTypes';\n\nexport const FieldList = PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n }),\n);\n\nexport const PivotType = CustomPropTypes.instanceOf(Pivot);\nexport const PivotList = PropTypes.arrayOf(PivotType);\nexport const SeriesType = CustomPropTypes.instanceOf(Series);\nexport const SeriesList = PropTypes.arrayOf(SeriesType);\nexport const SortList = PropTypes.arrayOf(PropTypes.string);\nexport const VisualizationType = PropTypes.string;\nexport const VisualizationConfigType = CustomPropTypes.instanceOf(VisualizationConfig);\n\nexport const AggregationType = CustomPropTypes.instanceOf(AggregationWidgetConfig);\nexport const AggregationResult = PropTypes.objectOf(PropTypes.arrayOf(PropTypes.object));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ArrayElement } from 'views/types';\n\nexport const axisTypes = ['linear', 'logarithmic'] as const;\n\nexport type AxisType = ArrayElement<typeof axisTypes>;\n\nexport interface XYVisualization {\n axisType: AxisType;\n}\n\nexport const DEFAULT_AXIS_TYPE: AxisType = 'linear';\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { XYVisualization, AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\n\nimport VisualizationConfig from './VisualizationConfig';\n\nexport const DEFAULT_BARMODE = 'group';\n\nexport type BarMode = 'stack' | 'group' | 'overlay' | 'relative';\n\nexport type BarVisualizationConfigType = {\n barmode: BarMode,\n axisType: AxisType,\n};\n\nexport type BarVisualizationConfigJson = {\n barmode: BarMode,\n axis_type: AxisType,\n};\n\nexport default class BarVisualizationConfig extends VisualizationConfig implements XYVisualization {\n _value: BarVisualizationConfigType;\n\n constructor(barmode: BarMode, axisType: AxisType) {\n super();\n this._value = { barmode, axisType };\n }\n\n get barmode() {\n return this._value.barmode;\n }\n\n get axisType() {\n return this._value.axisType;\n }\n\n get opacity() {\n return this.barmode === 'overlay' ? 0.75 : 1.0;\n }\n\n toBuilder() {\n const { barmode, axisType } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder({ barmode, axisType });\n }\n\n static create(barmode: BarMode, axisType: AxisType = DEFAULT_AXIS_TYPE) {\n return new BarVisualizationConfig(barmode, axisType);\n }\n\n static empty() {\n return BarVisualizationConfig.create(DEFAULT_BARMODE);\n }\n\n toJSON() {\n const { barmode, axisType } = this._value;\n\n return {\n barmode,\n axis_type: axisType,\n };\n }\n\n static fromJSON(_type: string, value: BarVisualizationConfigJson) {\n const { barmode, axis_type } = value;\n\n return BarVisualizationConfig.create(barmode, axis_type);\n }\n}\n\ntype InternalBuilderState = {\n barmode: BarMode,\n axisType: AxisType,\n};\n\nclass Builder {\n private readonly value: InternalBuilderState;\n\n constructor(value: InternalBuilderState) {\n this.value = Object.freeze({ ...value });\n }\n\n barmode(value: BarMode) {\n return new Builder({ ...this.value, barmode: value });\n }\n\n axisType(value: AxisType) {\n return new Builder({ ...this.value, axisType: value });\n }\n\n build() {\n const { barmode, axisType } = this.value;\n\n return new BarVisualizationConfig(barmode, axisType);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport type { ColLeaf, Leaf, Key, Rows } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport type { DateTime, DateTimeFormats } from 'util/DateTime';\nimport { isValidDate } from 'util/DateTime';\n\ntype TimeFormatter = (time: DateTime, format?: DateTimeFormats) => string;\nexport type KeyMapper = (key: Key, field: string) => Key;\n\nconst transformKey = (key: Key, indices: Array<number>, formatTimestamp: TimeFormatter) => {\n if (indices.length === 0) {\n return key;\n }\n\n const newKey: Key = key.slice();\n\n indices.forEach((idx) => {\n if (newKey[idx]) {\n const value = newKey[idx];\n newKey[idx] = isValidDate(value) ? formatTimestamp(newKey[idx], 'internal') : value;\n }\n });\n\n return newKey;\n};\n\nconst findIndices = <T> (ary: Array<T>, predicate: (value: T) => boolean): Array<number> => ary\n .map((value, idx) => ({ value, idx }))\n .filter(({ value }) => predicate(value))\n .map(({ idx }) => idx);\n\nexport default (rowPivots: Array<Pivot>, columnPivots: Array<Pivot>, formatTime: TimeFormatter): (rows: Rows) => Rows => (result = []) => {\n const rowIndices = findIndices(rowPivots, (pivot) => (pivot.type === 'time'));\n const columnIndices = findIndices(columnPivots, (pivot) => (pivot.type === 'time'));\n\n if (rowIndices.length === 0 && columnIndices.length === 0) {\n return result;\n }\n\n return result.map((row) => {\n if (row.source !== 'leaf') {\n return row;\n }\n\n const newRow: Leaf = { ...row };\n\n newRow.key = transformKey(row.key, rowIndices, formatTime);\n\n if (columnIndices.length > 0) {\n newRow.values = row.values.map((values) => {\n if (values.source !== 'col-leaf') {\n return values;\n }\n\n const newValues: ColLeaf = { ...values };\n\n newValues.key = transformKey(values.key, columnIndices, formatTime);\n\n return newValues;\n });\n }\n\n return newRow;\n });\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport flatten from 'lodash/flatten';\nimport flow from 'lodash/flow';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\n\nimport type { Key, Leaf, Row, Rows, Value } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type { DateTime, DateTimeFormats } from 'util/DateTime';\n\nimport type { KeyMapper } from './TransformKeys';\nimport transformKeys from './TransformKeys';\n\nconst keySeparator = '\\u2E31';\nconst humanSeparator = '-';\n\nexport type ChartDefinition = {\n type: string,\n name: string,\n x?: Array<string>,\n y?: Array<any>,\n z?: Array<Array<any>>,\n fill?: string,\n line?: { shape: string },\n hovertemplate?: string,\n mode?: string,\n opacity?: number,\n text?: string[],\n marker?: {\n size: number,\n color: string,\n },\n customdata?: any,\n colorscale?: string,\n colorbar?: { tickfont: { color: string } },\n reversescale?: boolean,\n zmin?: number,\n zmax?: number,\n originalName: string,\n};\n\nexport type ChartData = [any, Array<Key>, Array<any>, Array<Array<any>>];\nexport type ExtractedSeries = Array<ChartData>;\nexport type ValuesBySeries = { [key: string]: Array<number> };\n\nexport type KeyJoiner = (keys: Array<any>) => string;\n\ntype ChartInput = {\n type: string,\n name: string,\n originalName: string,\n labels: Array<string>,\n values: Array<any>,\n data: Array<Array<any>>,\n idx: number,\n total: number,\n config: AggregationWidgetConfig\n};\nexport type Generator = (chartInput: ChartInput) => ChartDefinition;\n\nconst _defaultKeyJoiner = (keys: Array<any>) => keys.join(keySeparator);\n\nconst _defaultChartGenerator = ({ type, name, labels, values, originalName }: ChartInput): ChartDefinition => ({\n type,\n name,\n x: labels,\n y: values,\n originalName,\n});\n\nexport const flattenLeafs = (leafs: Array<Leaf>, matcher: (value: Value) => boolean = ({ source }) => source.endsWith('leaf')): Array<any> => flatten(leafs.map((l) => l.values.filter((value) => matcher(value)).map((v) => [l.key, v])));\n\nexport const formatSeries = ({\n valuesBySeries = {},\n xLabels = [],\n}: { valuesBySeries: ValuesBySeries, xLabels: Array<any> }): ExtractedSeries => Object.keys(valuesBySeries).map((value) => [\n value,\n xLabels,\n valuesBySeries[value],\n [],\n]);\n\nconst isLeaf = (row: Row): row is Leaf => (row.source === 'leaf');\n\nexport const getLeafsFromRows = (rows: Rows): Array<Leaf> => rows.filter(isLeaf);\n\nexport const getXLabelsFromLeafs = (leafs: Array<Leaf>): Array<Array<Key>> => leafs.map(({ key }) => key);\n\nexport const extractSeries = (keyJoiner: KeyJoiner = _defaultKeyJoiner, leafValueMatcher: (value: Value) => boolean = undefined) => (results: Rows) => {\n const leafs = getLeafsFromRows(results);\n const xLabels = getXLabelsFromLeafs(leafs);\n const flatLeafs = flattenLeafs(leafs, leafValueMatcher);\n const valuesBySeries = {};\n\n flatLeafs.forEach(([key, value]) => {\n const joinedKey = keyJoiner(value.key);\n const targetIdx = xLabels.findIndex((l) => isEqual(l, key));\n\n if (value.value !== null && value.value !== undefined) {\n set(valuesBySeries, [joinedKey, targetIdx], value.value);\n }\n });\n\n return { valuesBySeries, xLabels };\n};\n\nexport const generateChart = (\n chartType: string,\n generator: Generator = _defaultChartGenerator,\n config: AggregationWidgetConfig = undefined,\n mapKeys: KeyMapper = (key) => key,\n): ((results: ExtractedSeries) => Array<ChartDefinition>) => {\n const columnFields = config.columnPivots.flatMap((pivot) => pivot.fields);\n\n return (results: ExtractedSeries) => {\n const allCharts = results.map(([value, x, values, z]) => ({\n type: chartType,\n name: value.split(keySeparator).map((key, idx) => (columnFields[idx] ? mapKeys(key, columnFields[idx]) : key)).join(humanSeparator),\n labels: x.map((key) => key.join(keySeparator)),\n values,\n data: z,\n originalName: value,\n }));\n\n return allCharts.map((args, idx) => generator({ ...args, idx, total: allCharts.length, config }));\n };\n};\n\nexport const removeNulls = (): ((series: ExtractedSeries) => ExtractedSeries) => (results: ExtractedSeries) => results.map(([name, keys, values, z]) => {\n const nullIndices = Array.from(values).reduce((indices, value, index) => ((value === null || value === undefined) ? [...indices, index] : indices), []);\n const newKeys = keys.filter((_, idx) => !nullIndices.includes(idx));\n const newValues = values.filter((_, idx) => !nullIndices.includes(idx));\n\n return [name, newKeys, newValues, z];\n});\n\nconst doNotSuffixTraceForSingleSeries = (keys: Array<Key>) => (keys.length > 1 ? keys.slice(0, -1).join(keySeparator) : keys[0]);\n\nexport type ChartDataConfig = {\n widgetConfig: AggregationWidgetConfig,\n chartType: string,\n generator?: Generator,\n seriesFormatter?: (values: { valuesBySeries: ValuesBySeries, xLabels: Array<any> }) => ExtractedSeries,\n leafValueMatcher?: (value: Value) => boolean,\n formatTime: (time: DateTime, format?: DateTimeFormats) => string,\n mapKeys?: (key: Key, field: string) => Key,\n};\n\nexport const chartData = (\n data: Rows,\n {\n chartType,\n widgetConfig: config,\n generator = _defaultChartGenerator,\n seriesFormatter: customSeriesFormatter = formatSeries,\n leafValueMatcher,\n formatTime,\n mapKeys,\n }: ChartDataConfig,\n): Array<ChartDefinition> => {\n const { rowPivots, columnPivots, series } = config;\n\n return flow([\n transformKeys(rowPivots, columnPivots, formatTime),\n extractSeries(series.length === 1 ? doNotSuffixTraceForSingleSeries : undefined, leafValueMatcher),\n customSeriesFormatter,\n removeNulls(),\n generateChart(chartType, generator, config, mapKeys),\n ])(data);\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useCallback, useContext, useMemo } from 'react';\n\nimport type { KeyMapper } from 'views/components/visualizations/TransformKeys';\nimport StreamsContext from 'contexts/StreamsContext';\nimport FieldTypesContext from 'views/components/contexts/FieldTypesContext';\nimport useActiveQueryId from 'views/hooks/useActiveQueryId';\nimport type { Key } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport useInputs from 'hooks/useInputs';\nimport useNodeSummaries from 'hooks/useNodeSummaries';\n\nconst formatNode = (node: { short_node_id: string, hostname: string }) => `${node.short_node_id} / ${node.hostname}`;\n\nconst useMapKeys = (): KeyMapper => {\n const streams = useContext(StreamsContext);\n const streamsMap = useMemo(() => Object.fromEntries(streams?.map((stream) => [stream.id, stream]) ?? []), [streams]);\n const nodes = useNodeSummaries();\n const inputs = useInputs();\n const fieldTypes = useContext(FieldTypesContext);\n const activeQuery = useActiveQueryId();\n const currentFields = useMemo(() => fieldTypes?.queryFields?.get(activeQuery), [activeQuery, fieldTypes?.queryFields]);\n\n return useCallback((key: Key, field: string) => {\n const fieldType = currentFields?.find((type) => type.name === field);\n\n switch (fieldType?.type?.type) {\n case 'node':\n return nodes?.[key] ? formatNode(nodes[key]) : key;\n case 'input':\n return inputs?.[key]?.title ?? key;\n case 'streams':\n return streamsMap?.[key]?.title ?? key;\n default:\n return key;\n }\n }, [currentFields, inputs, nodes, streamsMap]);\n};\n\nexport default useMapKeys;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useMemo } from 'react';\nimport type { Optional } from 'utility-types';\n\nimport type { ChartDataConfig } from 'views/components/visualizations/ChartData';\nimport { chartData } from 'views/components/visualizations/ChartData';\nimport type { Rows } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport useUserDateTime from 'hooks/useUserDateTime';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\n\nconst useChartData = (rows: Rows, config: Optional<ChartDataConfig, 'formatTime'>) => {\n const { formatTime } = useUserDateTime();\n const mapKeys = useMapKeys();\n\n return useMemo(() => chartData(rows, {\n formatTime,\n mapKeys,\n ...config,\n }), [config, formatTime, mapKeys, rows]);\n};\n\nexport default useChartData;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useCallback } from 'react';\n\nimport type { Event } from 'views/logic/searchtypes/events/EventHandler';\nimport EventHandler from 'views/logic/searchtypes/events/EventHandler';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport useUserDateTime from 'hooks/useUserDateTime';\n\nconst useEvents = (config: AggregationWidgetConfig, events: Event[] | undefined) => {\n const { formatTime } = useUserDateTime();\n const formatTimestamp = useCallback((timestamp: string) => formatTime(timestamp, 'internal'), [formatTime]);\n\n return (config.eventAnnotation && events)\n ? EventHandler.toVisualizationData(events, formatTimestamp)\n : { eventChartData: undefined, shapes: undefined };\n};\n\nexport default useEvents;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useContext, useCallback, useMemo, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport chunk from 'lodash/chunk';\n\nimport ColorPicker from 'components/common/ColorPicker';\nimport Value from 'views/components/Value';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport ChartColorContext from 'views/components/visualizations/ChartColorContext';\nimport Popover from 'components/common/Popover';\nimport FieldType from 'views/logic/fieldtypes/FieldType';\nimport { colors as defaultColors } from 'views/components/visualizations/Colors';\nimport { EVENT_COLOR, eventsDisplayName } from 'views/logic/searchtypes/events/EventHandler';\nimport WidgetFocusContext from 'views/components/contexts/WidgetFocusContext';\nimport type { FieldTypes } from 'views/components/contexts/FieldTypesContext';\nimport FieldTypesContext from 'views/components/contexts/FieldTypesContext';\nimport useActiveQueryId from 'views/hooks/useActiveQueryId';\nimport type { ChartDefinition } from 'views/components/visualizations/ChartData';\nimport { keySeparator, humanSeparator } from 'views/Constants';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\nimport type ColorMapper from 'views/components/visualizations/ColorMapper';\nimport type { KeyMapper } from 'views/components/visualizations/TransformKeys';\n\nconst ColorHint = styled.div(({ color }) => css`\n cursor: pointer;\n background-color: ${color} !important; /* Needed for report generation */\n -webkit-print-color-adjust: exact !important; /* Needed for report generation */\n width: 12px;\n height: 12px;\n`);\n\nconst Container = styled.div`\n display: grid;\n grid-template: 4fr auto / 1fr;\n grid-template-areas: '.' '.';\n height: 100%;\n`;\n\nconst LegendContainer = styled.div`\n padding: 5px;\n max-height: 100px;\n overflow: auto;\n`;\n\nconst Legend = styled.div`\n display: table;\n width: 100%;\n`;\n\nconst LegendRow = styled.div`\n display: table-row;\n`;\n\nconst LegendCell = styled.div`\n padding: 4px;\n display: table-cell;\n`;\n\nconst LegendEntry = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ValueContainer = styled.div`\n margin-left: 8px;\n line-height: 1;\n`;\n\ntype Props = {\n children: React.ReactNode,\n config: AggregationWidgetConfig,\n chartData: any,\n labelFields?: (config: Props['config']) => Array<string>,\n labelMapper?: (data: Array<any>) => Array<string> | undefined | null,\n neverHide?: boolean,\n};\n\nconst defaultLabelMapper = (data: Array<Pick<ChartDefinition, 'name' | 'originalName'>>) => data.map(({\n name,\n originalName,\n}) => originalName ?? name);\n\nconst stringLenSort = (s1: string, s2: string) => {\n if (s1.length < s2.length) {\n return -1;\n }\n\n if (s1.length === s2.length) {\n return 0;\n }\n\n return 1;\n};\n\nconst columnPivotsToFields = (config: Props['config']) => config?.columnPivots?.flatMap((pivot) => pivot.fields) ?? [];\n\ntype TableCellProps = {\n value: string,\n fieldTypes: FieldTypes,\n colors: ColorMapper,\n activeQuery: string,\n labelFields: string[],\n mapKeys: KeyMapper,\n setColor: (name: string, newColor: string) => void,\n}\n\nconst TableCell = ({ value, fieldTypes, colors, activeQuery, labelFields, mapKeys, setColor }:TableCellProps) => {\n const [showPopover, setShowPopover] = useState(false);\n const labelsWithField = value.split(keySeparator).map((label, idx) => {\n const field = labelFields[idx];\n const fieldType = fieldTypes?.queryFields?.get(activeQuery)?.find((type) => type.name === field)?.type ?? FieldType.Unknown;\n\n return { label, field, type: fieldType };\n });\n const defaultColor = value === eventsDisplayName ? EVENT_COLOR : undefined;\n const val = labelsWithField.map(({ label, field, type }) => (field\n ? <Value key={`${field}:${label}`} type={type} value={label} field={field} />\n : label));\n const humanLabel = Object.values(labelsWithField).map(({\n label,\n field,\n }) => mapKeys(label, field)).join(humanSeparator);\n\n const _onColorSelect = useCallback((field: string, color: string) => {\n setColor(field, color);\n setShowPopover(false);\n }, [setColor]);\n\n return (\n <LegendCell key={value}>\n <LegendEntry>\n <Popover position=\"top\" withArrow opened={showPopover}>\n <Popover.Target>\n <ColorHint aria-label=\"Color Hint\"\n onClick={() => setShowPopover((show) => !show)}\n color={colors.get(value, defaultColor)} />\n </Popover.Target>\n <Popover.Dropdown title={`Configuration for ${humanLabel}`}>\n <ColorPicker color={colors.get(value, defaultColor)}\n colors={defaultColors}\n onChange={(newColor) => _onColorSelect(value, newColor)} />\n </Popover.Dropdown>\n </Popover>\n <ValueContainer>\n {val}\n </ValueContainer>\n </LegendEntry>\n </LegendCell>\n );\n};\n\nconst PlotLegend = ({\n children,\n config,\n chartData,\n labelMapper = defaultLabelMapper,\n labelFields = columnPivotsToFields,\n neverHide,\n}: Props) => {\n const { columnPivots, series } = config;\n const labels: Array<string> = labelMapper(chartData);\n const { colors, setColor } = useContext(ChartColorContext);\n const { focusedWidget } = useContext(WidgetFocusContext);\n const fieldTypes = useContext(FieldTypesContext);\n const activeQuery = useActiveQueryId();\n const mapKeys = useMapKeys();\n\n const _labelFields = useMemo(() => labelFields(config), [config, labelFields]);\n\n if (!neverHide && (!focusedWidget || !focusedWidget.editing) && series.length <= 1 && columnPivots.length <= 0) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children}</>;\n }\n\n const tableCells = labels.sort(stringLenSort).map((value) => (\n <TableCell key={value}\n colors={colors}\n value={value}\n labelFields={_labelFields}\n setColor={setColor}\n mapKeys={mapKeys}\n fieldTypes={fieldTypes}\n activeQuery={activeQuery} />\n ));\n\n const result = chunk(tableCells, 5).map((cells, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LegendRow key={index}>\n {cells}\n </LegendRow>\n ));\n\n return (\n <Container>\n {children}\n <LegendContainer>\n <Legend>{result}</Legend>\n </LegendContainer>\n </Container>\n );\n};\n\nPlotLegend.defaultProps = {\n labelFields: columnPivotsToFields,\n labelMapper: defaultLabelMapper,\n neverHide: false,\n};\n\nexport default PlotLegend;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport type { AbsoluteTimeRange } from 'views/logic/queries/Query';\nimport View from 'views/logic/views/View';\nimport { adjustFormat, toUTCFromTz } from 'util/DateTime';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { setGlobalOverrideTimerange, execute } from 'views/logic/slices/searchExecutionSlice';\nimport { setTimerange } from 'views/logic/slices/viewSlice';\nimport type { GetState } from 'views/types';\nimport { selectActiveQuery, selectViewType } from 'views/logic/slices/viewSelectors';\n\nconst onZoom = (from: string, to: string, userTz: string) => (dispatch: AppDispatch, getState: GetState) => {\n const activeQuery = selectActiveQuery(getState());\n const viewType = selectViewType(getState());\n const newTimeRange: AbsoluteTimeRange = {\n type: 'absolute',\n from: adjustFormat(toUTCFromTz(from, userTz), 'internal'),\n to: adjustFormat(toUTCFromTz(to, userTz), 'internal'),\n };\n\n if (viewType === View.Type.Dashboard) {\n dispatch(setGlobalOverrideTimerange(newTimeRange)).then(() => dispatch(execute()));\n } else {\n dispatch(setTimerange(activeQuery, newTimeRange));\n }\n\n return false;\n};\n\nexport default onZoom;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type ColorMapper from 'views/components/visualizations/ColorMapper';\nimport PlotLegend from 'views/components/visualizations/PlotLegend';\nimport useUserDateTime from 'hooks/useUserDateTime';\nimport type { AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { axisTypes, DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport assertUnreachable from 'logic/assertUnreachable';\nimport useAppDispatch from 'stores/useAppDispatch';\n\nimport GenericPlot from './GenericPlot';\nimport type { ChartColor, ChartConfig } from './GenericPlot';\nimport OnZoom from './OnZoom';\n\nimport CustomPropTypes from '../CustomPropTypes';\n\nexport type Props = {\n axisType?: AxisType,\n config: AggregationWidgetConfig,\n chartData: any,\n effectiveTimerange?: {\n from: string,\n to: string,\n },\n height?: number;\n setChartColor?: (config: ChartConfig, color: ColorMapper) => ChartColor,\n plotLayout?: any,\n onZoom?: (from: string, to: string, userTimezone: string) => boolean,\n};\n\nconst yLegendPosition = (containerHeight: number) => {\n if (containerHeight < 150) {\n return -0.6;\n }\n\n if (containerHeight < 400) {\n return -0.2;\n }\n\n return -0.14;\n};\n\ntype Layout = {\n yaxis: { fixedrange?: boolean },\n legend?: { y?: number },\n showlegend?: boolean,\n hovermode: 'x',\n};\n\nconst mapAxisType = (axisType: AxisType): 'linear' | 'log' => {\n switch (axisType) {\n case 'linear': return 'linear';\n case 'logarithmic': return 'log';\n default: return assertUnreachable(axisType, 'Unable to parse axis type: ');\n }\n};\n\nconst defaultSetColor = (chart: ChartConfig, colors: ColorMapper) => ({ line: { color: colors.get(chart.originalName ?? chart.name) } });\n\nconst XYPlot = ({\n axisType,\n config,\n chartData,\n effectiveTimerange,\n setChartColor,\n height,\n plotLayout = {},\n onZoom,\n}: Props) => {\n const { formatTime, userTimezone } = useUserDateTime();\n const yaxis = { fixedrange: true, rangemode: 'tozero', tickformat: ',~r', type: mapAxisType(axisType) };\n const defaultLayout: Layout = {\n yaxis,\n hovermode: 'x',\n };\n\n if (height) {\n defaultLayout.legend = { y: yLegendPosition(height) };\n }\n\n const layout = { ...defaultLayout, ...plotLayout };\n const dispatch = useAppDispatch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const _onZoom = useCallback(config.isTimeline\n ? (from: string, to: string) => (onZoom ? onZoom(from, to, userTimezone) : dispatch(OnZoom(from, to, userTimezone)))\n : () => true, [config.isTimeline, onZoom]);\n\n if (config.isTimeline && effectiveTimerange) {\n const normalizedFrom = formatTime(effectiveTimerange.from, 'internal');\n const normalizedTo = formatTime(effectiveTimerange.to, 'internal');\n\n layout.xaxis = {\n range: [normalizedFrom, normalizedTo],\n type: 'date',\n };\n } else {\n layout.xaxis = {\n fixedrange: true,\n /* disable plotly sorting by setting the type of the xaxis to category */\n type: config.sort.length > 0 ? 'category' : undefined,\n };\n }\n\n return (\n <PlotLegend config={config} chartData={chartData}>\n <GenericPlot chartData={chartData}\n layout={layout}\n onZoom={_onZoom}\n setChartColor={setChartColor} />\n </PlotLegend>\n );\n};\n\nXYPlot.propTypes = {\n axisType: PropTypes.oneOf(axisTypes),\n chartData: PropTypes.array.isRequired,\n config: CustomPropTypes.instanceOf(AggregationWidgetConfig).isRequired,\n effectiveTimerange: PropTypes.exact({\n\n type: PropTypes.string.isRequired,\n from: PropTypes.string.isRequired,\n to: PropTypes.string.isRequired,\n }),\n plotLayout: PropTypes.object,\n setChartColor: PropTypes.func,\n onZoom: PropTypes.func,\n};\n\nXYPlot.defaultProps = {\n axisType: DEFAULT_AXIS_TYPE,\n plotLayout: {},\n setChartColor: defaultSetColor,\n effectiveTimerange: undefined,\n onZoom: undefined,\n height: undefined,\n};\n\nexport default XYPlot;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport type { Shapes } from 'views/logic/searchtypes/events/EventHandler';\nimport { DateType } from 'views/logic/aggregationbuilder/Pivot';\nimport BarVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/BarVisualizationConfig';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport useEvents from 'views/components/visualizations/useEvents';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\nimport { keySeparator, humanSeparator } from 'views/Constants';\nimport type { ChartConfig } from 'views/components/visualizations/GenericPlot';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type ColorMapper from 'views/components/visualizations/ColorMapper';\n\nimport type { Generator } from '../ChartData';\nimport XYPlot from '../XYPlot';\n\ntype ChartDefinition = {\n type: string,\n name: string,\n x?: Array<string>,\n y?: Array<any>,\n z?: Array<Array<any>>,\n opacity?: number,\n originalName: string,\n};\n\nconst setChartColor = (chart: ChartConfig, colors: ColorMapper) => ({ marker: { color: colors.get(chart.originalName ?? chart.name) } });\n\nconst defineSingleDateBarWidth = (chartDataResult: ChartDefinition[], config: AggregationWidgetConfig, timeRangeFrom: string, timeRangeTo: string) => {\n const barWidth = 0.03; // width in percentage, relative to chart width\n const minXUnits = 30;\n\n if (config.rowPivots.length !== 1 || config.rowPivots[0].type !== DateType) {\n return chartDataResult;\n }\n\n return chartDataResult.map((data) => {\n if (data?.x?.length === 1) {\n // @ts-ignore\n const timeRangeMS = new Date(timeRangeTo) - new Date(timeRangeFrom);\n const widthXUnits = timeRangeMS * barWidth;\n\n return {\n ...data,\n width: [Math.max(minXUnits, widthXUnits)],\n };\n }\n\n return data;\n });\n};\n\ntype Layout = {\n shapes?: Shapes;\n barmode?: string;\n};\n\nconst BarVisualization = makeVisualization(({\n config,\n data,\n effectiveTimerange,\n height,\n}: VisualizationComponentProps) => {\n const visualizationConfig = (config.visualizationConfig ?? BarVisualizationConfig.empty()) as BarVisualizationConfig;\n const _layout: Layout = {};\n\n if (visualizationConfig && visualizationConfig.barmode) {\n _layout.barmode = visualizationConfig?.barmode;\n }\n\n const opacity = visualizationConfig?.opacity ?? 1.0;\n\n const mapKeys = useMapKeys();\n const rowPivotFields = useMemo(() => config?.rowPivots?.flatMap((pivot) => pivot.fields) ?? [], [config?.rowPivots]);\n const _mapKeys = useCallback((labels: string[]) => labels\n .map((label) => label.split(keySeparator)\n .map((l, i) => mapKeys(l, rowPivotFields[i]))\n .join(humanSeparator),\n ), [mapKeys, rowPivotFields]);\n\n const _seriesGenerator: Generator = useCallback(({ type, name, labels, values, originalName }): ChartDefinition => ({\n type,\n name,\n x: _mapKeys(labels),\n y: values,\n opacity,\n originalName,\n }), [_mapKeys, opacity]);\n\n const rows = useMemo(() => retrieveChartData(data), [data]);\n const _chartDataResult = useChartData(rows, { widgetConfig: config, chartType: 'bar', generator: _seriesGenerator });\n\n const { eventChartData, shapes } = useEvents(config, data.events);\n\n const chartDataResult = eventChartData ? [..._chartDataResult, eventChartData] : _chartDataResult;\n const layout = shapes ? { ..._layout, shapes } : _layout;\n\n return (\n <XYPlot config={config}\n axisType={visualizationConfig.axisType}\n chartData={defineSingleDateBarWidth(chartDataResult, config, effectiveTimerange?.from, effectiveTimerange?.to)}\n effectiveTimerange={effectiveTimerange}\n setChartColor={setChartColor}\n height={height}\n plotLayout={layout} />\n );\n}, 'bar');\n\nBarVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n height: PropTypes.number,\n};\n\nexport default BarVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport { DEFAULT_INTERPOLATION } from 'views/Constants';\nimport type { XYVisualization, AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\n\nimport VisualizationConfig from './VisualizationConfig';\nimport type { InterpolationMode } from './Interpolation';\n\ntype InternalState = {\n interpolation: InterpolationMode,\n axisType: AxisType,\n};\n\nexport type LineVisualizationConfigJSON = {\n interpolation: InterpolationMode,\n axis_type?: AxisType,\n};\n\nexport default class LineVisualizationConfig extends VisualizationConfig implements XYVisualization {\n private readonly _value: InternalState;\n\n constructor(interpolation: InternalState['interpolation'], axisType: InternalState['axisType'] = DEFAULT_AXIS_TYPE) {\n super();\n this._value = { interpolation, axisType };\n }\n\n get interpolation() {\n return this._value.interpolation;\n }\n\n get axisType() {\n return this._value.axisType;\n }\n\n toBuilder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map(this._value));\n }\n\n static create(interpolation: InternalState['interpolation'], axisType: InternalState['axisType'] = DEFAULT_AXIS_TYPE) {\n return new LineVisualizationConfig(interpolation, axisType);\n }\n\n static empty() {\n return new LineVisualizationConfig(DEFAULT_INTERPOLATION, DEFAULT_AXIS_TYPE);\n }\n\n toJSON() {\n const { interpolation, axisType } = this._value;\n\n return {\n interpolation,\n axis_type: axisType,\n };\n }\n\n static fromJSON(_type: string, value: LineVisualizationConfigJSON) {\n return LineVisualizationConfig.create(\n value?.interpolation ?? DEFAULT_INTERPOLATION,\n value?.axis_type ?? DEFAULT_AXIS_TYPE,\n );\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n interpolation(value: InternalState['interpolation']) {\n return new Builder(this.value.set('interpolation', value));\n }\n\n axisType(value: InternalState['axisType']) {\n return new Builder((this.value.set('axisType', value)));\n }\n\n build() {\n const { interpolation, axisType } = this.value.toObject();\n\n return new LineVisualizationConfig(interpolation, axisType);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nexport type InterpolationMode = 'linear' | 'step-after' | 'spline';\n\nconst toPlotly = (value: InterpolationMode) => {\n switch (value) {\n case 'step-after': return 'hv';\n default: return value;\n }\n};\n\nexport default toPlotly;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport LineVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/LineVisualizationConfig';\nimport toPlotly from 'views/logic/aggregationbuilder/visualizations/Interpolation';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport useEvents from 'views/components/visualizations/useEvents';\nimport { DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\nimport { keySeparator, humanSeparator } from 'views/Constants';\n\nimport type { Generator } from '../ChartData';\nimport XYPlot from '../XYPlot';\n\nconst LineVisualization = makeVisualization(({\n config,\n data,\n effectiveTimerange,\n height,\n}: VisualizationComponentProps) => {\n const visualizationConfig = (config.visualizationConfig ?? LineVisualizationConfig.empty()) as LineVisualizationConfig;\n const { interpolation = 'linear', axisType = DEFAULT_AXIS_TYPE } = visualizationConfig;\n const mapKeys = useMapKeys();\n const rowPivotFields = useMemo(() => config?.rowPivots?.flatMap((pivot) => pivot.fields) ?? [], [config?.rowPivots]);\n const _mapKeys = useCallback((labels: string[]) => labels\n .map((label) => label.split(keySeparator)\n .map((l, i) => mapKeys(l, rowPivotFields[i]))\n .join(humanSeparator),\n ), [mapKeys, rowPivotFields]);\n const chartGenerator: Generator = useCallback(({ type, name, labels, values, originalName }) => ({\n type,\n name,\n x: _mapKeys(labels),\n y: values,\n originalName,\n line: { shape: toPlotly(interpolation) },\n }), [_mapKeys, interpolation]);\n\n const rows = useMemo(() => retrieveChartData(data), [data]);\n const _chartDataResult = useChartData(rows, {\n widgetConfig: config,\n chartType: 'scatter',\n generator: chartGenerator,\n });\n\n const { eventChartData, shapes } = useEvents(config, data.events);\n\n const chartDataResult = eventChartData ? [..._chartDataResult, eventChartData] : _chartDataResult;\n const layout = shapes ? { shapes } : {};\n\n return (\n <XYPlot config={config}\n plotLayout={layout}\n axisType={axisType}\n effectiveTimerange={effectiveTimerange}\n height={height}\n chartData={chartDataResult} />\n );\n}, 'line');\n\nLineVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n height: PropTypes.number,\n};\n\nexport default LineVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport VisualizationConfig from './VisualizationConfig';\n\nexport type TrendPreference = 'LOWER' | 'NEUTRAL' | 'HIGHER';\n\ntype InternalState = {\n trend: boolean,\n trendPreference: TrendPreference,\n};\n\nexport type NumberVisualizationConfigJSON = {\n trend: boolean,\n trend_preference: TrendPreference,\n};\n\nexport default class NumberVisualizationConfig extends VisualizationConfig {\n private readonly _value: InternalState;\n\n constructor(\n trend: $PropertyType<InternalState, 'trend'>,\n trendPreference: $PropertyType<InternalState, 'trendPreference'>,\n ) {\n super();\n this._value = { trend, trendPreference };\n }\n\n get trend() {\n return this._value.trend;\n }\n\n get trendPreference() {\n return this._value.trendPreference;\n }\n\n toBuilder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map(this._value));\n }\n\n static create(\n trend: $PropertyType<InternalState, 'trend'> = false,\n lowerIsBetter: $PropertyType<InternalState, 'trendPreference'> = 'NEUTRAL',\n ) {\n return new NumberVisualizationConfig(trend, lowerIsBetter);\n }\n\n static empty() {\n return NumberVisualizationConfig.create(false, 'NEUTRAL');\n }\n\n toJSON(): NumberVisualizationConfigJSON {\n const { trend, trendPreference } = this._value;\n\n return {\n trend,\n trend_preference: trendPreference,\n };\n }\n\n equalsForSearch(other: any) {\n return other && 'trend' in other && other.trend === this.trend;\n }\n\n static fromJSON(_type: string, value: NumberVisualizationConfigJSON) {\n const { trend, trend_preference: trendPreference } = value;\n\n return NumberVisualizationConfig.create(trend, trendPreference);\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n trend(value: $PropertyType<InternalState, 'trend'>) {\n return new Builder(this.value.set('trend', value));\n }\n\n trendPreference(value: $PropertyType<InternalState, 'trendPreference'>): Builder {\n return new Builder(this.value.set('trendPreference', value));\n }\n\n build() {\n const { trend, trendPreference } = this.value.toObject();\n\n return new NumberVisualizationConfig(trend, trendPreference);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\nimport numeral from 'numeral';\n\nimport Icon from 'components/common/Icon';\nimport type { TrendPreference } from 'views/logic/aggregationbuilder/visualizations/NumberVisualizationConfig';\n\ntype TrendDirection = 'good' | 'bad' | 'neutral';\n\ntype Props = {\n current: number,\n previous: number | undefined | null,\n trendPreference: TrendPreference,\n};\n\nconst background = (theme: DefaultTheme, trend: TrendDirection = 'neutral') => ({\n good: theme.colors.variant.success,\n bad: theme.colors.variant.danger,\n neutral: theme.colors.global.contentBackground,\n}[trend]);\n\nconst Background = styled.div<{ trend: TrendDirection | undefined }>(({ theme, trend }) => {\n const bgColor = background(theme, trend);\n\n return css`\n text-align: right;\n ${trend && css`\n background-color: ${bgColor} !important; /* Needed for report generation */\n color: ${theme.utils.contrastingColor(bgColor)} !important /* Needed for report generation */;\n color-adjust: exact !important; /* Needed for report generation */\n`}\n`;\n});\n\nconst TextContainer = styled.div<{ trend: TrendDirection | undefined, ref }>(({ theme, trend }) => {\n const bgColor = background(theme, trend);\n\n return css`\n margin: 5px;\n color: ${theme.utils.contrastingColor(bgColor)} !important /* Needed for report generation */;\n font-family: ${theme.fonts.family.body};\n color-adjust: exact !important; /* Needed for report generation */`;\n});\n\nconst StyledIcon = styled(Icon)<{ trend: TrendDirection | undefined }>(({ theme, trend }) => {\n const bgColor = background(theme, trend);\n\n return css`\n path {\n fill: ${theme.utils.contrastingColor(bgColor)};\n }`;\n});\n\nconst _trendDirection = (delta: number, trendPreference: TrendPreference): TrendDirection => {\n switch (trendPreference) {\n case 'LOWER':\n return delta > 0 ? 'bad' : 'good';\n case 'HIGHER':\n return delta > 0 ? 'good' : 'bad';\n case 'NEUTRAL':\n default:\n return 'neutral';\n }\n};\n\n// eslint-disable-next-line no-nested-ternary\nconst _trendIcon = (delta: number) => (delta === 0\n ? 'arrow_circle_right'\n : delta > 0\n ? 'arrow_circle_up'\n : 'arrow_circle_down');\n\nconst diff = (current: number | undefined, previous: number | undefined): [number, number] => {\n if (typeof current === 'number' && typeof previous === 'number') {\n const difference = current - previous;\n const differencePercent = difference / previous;\n\n return [difference, differencePercent];\n }\n\n return [NaN, NaN];\n};\n\nconst Trend = React.forwardRef<HTMLSpanElement, Props>(({ current, previous, trendPreference }: Props, ref) => {\n const [difference, differencePercent] = diff(current, previous);\n\n const backgroundTrend = _trendDirection(difference, trendPreference);\n const trendIcon = _trendIcon(difference);\n\n const absoluteDifference = Number.isFinite(difference) ? numeral(difference).format('+0,0[.]0[000]') : '--';\n const relativeDifference = Number.isFinite(differencePercent) ? numeral(differencePercent).format('+0[.]0[0]%') : '--';\n\n return (\n <Background trend={backgroundTrend} data-testid=\"trend-background\">\n <TextContainer trend={backgroundTrend} ref={ref}>\n <StyledIcon name={trendIcon} trend={backgroundTrend} data-testid=\"trend-icon\" /> <span data-testid=\"trend-value\" title={`Previous value: ${previous}`}>{absoluteDifference} / {relativeDifference}</span>\n </TextContainer>\n </Background>\n );\n});\n\nexport default Trend;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\n/**\n * This component will calculate the largest possible font size for the provided child.\n * The calculation is based on the ratio of the current dimensions of the child and the dimensions of its container.\n * The font size is being multiplied by this ratio, unless it has a difference to 1 that is smaller than the defined tolerance.\n */\n\nconst TOLERANCE = 0.05;\nconst CHILD_SIZE_RATIO = 0.8; // Proportion of the child size in relation to the container\n\nconst FontSize = styled.div<{ fontSize: number, $center: boolean }>`\n height: 100%;\n width: 100%;\n font-size: ${(props) => css`${props.fontSize}px`};\n ${(props) => (props.$center ? css`\n display: flex;\n justify-content: center;\n align-items: center;\n ` : '')}\n`;\n\ntype ElementWithDimensions = {\n offsetHeight: number;\n offsetWidth: number;\n};\n\ntype Props = {\n children: React.ReactElement,\n target?: React.Ref<any> | ElementWithDimensions,\n height: number,\n width: number,\n center?: boolean,\n};\n\nconst _multiplierForElement = (element, targetWidth, targetHeight) => {\n const contentWidth = element.offsetWidth;\n const contentHeight = element.offsetHeight;\n\n const widthMultiplier = (targetWidth * CHILD_SIZE_RATIO) / contentWidth;\n const heightMultiplier = (targetHeight * CHILD_SIZE_RATIO) / contentHeight;\n\n return Math.min(widthMultiplier, heightMultiplier);\n};\n\nconst isValidFontSize = (fontSize) => fontSize !== 0 && Number.isFinite(fontSize);\n\nconst useAutoFontSize = (target, _container, height, width) => {\n const [fontSize, setFontSize] = useState(20);\n\n useEffect(() => {\n const container = target ? { current: { children: [target] } } : _container;\n const containerChildren = container?.current?.children;\n\n if (!containerChildren || containerChildren.length <= 0) {\n return;\n }\n\n const contentElement = containerChildren[0];\n const multiplier = _multiplierForElement(contentElement, width, height);\n\n if (Math.abs(1 - multiplier) <= TOLERANCE) {\n return;\n }\n\n const newFontSize = Math.floor(fontSize * multiplier);\n\n if (newFontSize !== fontSize && isValidFontSize(newFontSize)) {\n setFontSize(newFontSize);\n }\n }, [target, _container, fontSize, height, width]);\n\n return fontSize;\n};\n\nconst AutoFontSizer = ({ children, target, height, width, center }: Props) => {\n const _container = useRef<HTMLElement | undefined>();\n const fontSize = useAutoFontSize(target, _container, height, width);\n const _mixedContainer: { current } = _container;\n\n return (\n <FontSize $center={center} fontSize={fontSize} ref={_mixedContainer}>\n {children}\n </FontSize>\n );\n};\n\nAutoFontSizer.defaultProps = {\n target: null,\n center: false,\n};\n\nexport default AutoFontSizer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport styled from 'styled-components';\n\nimport type { Rows } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport fieldTypeFor from 'views/logic/fieldtypes/FieldTypeFor';\nimport Value from 'views/components/Value';\nimport DecoratedValue from 'views/components/messagelist/decoration/DecoratedValue';\nimport CustomHighlighting from 'views/components/highlighting/CustomHighlighting';\nimport RenderCompletionCallback from 'views/components/widgets/RenderCompletionCallback';\nimport NumberVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/NumberVisualizationConfig';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport ElementDimensions from 'components/common/ElementDimensions';\n\nimport Trend from './Trend';\nimport AutoFontSizer from './AutoFontSizer';\n\nconst GridContainer = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr auto;\n grid-gap: 0;\n height: 100%;\n width: 100%;\n`;\n\nconst SingleItemGrid = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n grid-gap: 0;\n height: 100%;\n width: 100%;\n`;\n\nconst NumberBox = styled(ElementDimensions)`\n height: 100%;\n width: 100%;\n padding-bottom: 10px;\n`;\n\nconst TrendBox = styled(ElementDimensions)`\n height: 100%;\n width: 100%;\n`;\n\nconst _extractValueAndField = (rows: Rows) => {\n if (!rows || !rows[0]) {\n return { value: undefined, field: undefined };\n }\n\n const results = rows[0];\n\n if (results.source === 'leaf') {\n const leaf = results.values.find((f) => f.source === 'row-leaf');\n\n if (leaf && leaf.source === 'row-leaf') {\n return { value: leaf.value, field: leaf.key[0] };\n }\n }\n\n return { value: undefined, field: undefined };\n};\n\nconst _extractFirstSeriesName = (config) => {\n const { series = [] } = config;\n\n return series.length === 0\n ? undefined\n : series[0].function;\n};\n\nconst NumberVisualization = ({ config, fields, data }: VisualizationComponentProps) => {\n const targetRef = useRef();\n const onRenderComplete = useContext(RenderCompletionCallback);\n const visualizationConfig = (config.visualizationConfig as NumberVisualizationConfig) ?? NumberVisualizationConfig.create();\n\n const field = _extractFirstSeriesName(config);\n\n useEffect(onRenderComplete, [onRenderComplete]);\n const chartRows = retrieveChartData(data);\n const trendRows = data.trend;\n const { value } = _extractValueAndField(chartRows);\n const { value: previousValue } = _extractValueAndField(trendRows || []);\n\n if (!field || (value !== 0 && !value)) {\n return <>N/A</>;\n }\n\n const Container = visualizationConfig.trend ? GridContainer : SingleItemGrid;\n\n return (\n <Container>\n <NumberBox resizeDelay={20}>\n {({ height, width }) => (\n <AutoFontSizer height={height} width={width} center>\n <CustomHighlighting field={field} value={value}>\n <Value field={field}\n type={fieldTypeFor(field, fields)}\n value={value}\n render={DecoratedValue} />\n </CustomHighlighting>\n </AutoFontSizer>\n )}\n </NumberBox>\n {visualizationConfig.trend && (\n <TrendBox>\n {({ height, width }) => (\n <AutoFontSizer height={height} width={width} target={targetRef}>\n <Trend ref={targetRef}\n current={value}\n previous={previousValue}\n trendPreference={visualizationConfig.trendPreference} />\n </AutoFontSizer>\n )}\n </TrendBox>\n )}\n </Container>\n );\n};\n\nconst ConnectedNumberVisualization = makeVisualization(NumberVisualization, 'numeric');\n\nexport default ConnectedNumberVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\ntype Center = [number, number];\ntype Zoom = number;\ntype State = {\n center: Center,\n zoom: Zoom,\n};\n\nexport type ViewportJson = {\n center_x: number,\n center_y: number,\n zoom: number,\n};\n\nexport default class Viewport {\n _value: State;\n\n constructor(center: Center, zoom: Zoom) {\n this._value = { center, zoom };\n }\n\n get center() {\n return this._value.center;\n }\n\n get zoom() {\n return this._value.zoom;\n }\n\n toBuilder() {\n const { center, zoom } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ center, zoom }));\n }\n\n static create(center: Center, zoom: Zoom) {\n return new Viewport(center, zoom);\n }\n\n toJSON(): ViewportJson {\n const { center, zoom } = this._value;\n\n return {\n center_x: center[0],\n center_y: center[1],\n zoom,\n };\n }\n\n static fromJSON(value: ViewportJson) {\n const { center_x, center_y, zoom } = value;\n\n return Viewport.create([center_x, center_y], zoom);\n }\n}\n\ntype InternalBuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n center(value: Center) {\n return new Builder(this.value.set('center', value));\n }\n\n zoom(value: Zoom) {\n return new Builder(this.value.set('zoom', value));\n }\n\n build() {\n const { center, zoom } = this.value.toObject();\n\n return new Viewport(center, zoom);\n }\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./MapVisualization.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./MapVisualization.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n/* eslint-env browser */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { CircleMarker, MapContainer, Popup, TileLayer, useMap, useMapEvents } from 'react-leaflet';\nimport chroma from 'chroma-js';\nimport flatten from 'lodash/flatten';\nimport leafletStyles from 'leaflet/dist/leaflet.css';\n\nimport Viewport from 'views/logic/aggregationbuilder/visualizations/Viewport';\n\nimport style from './MapVisualization.css';\n\nimport InteractiveContext from '../../contexts/InteractiveContext';\n\nconst DEFAULT_VIEWPORT = {\n center: [0, 0],\n zoom: 1,\n};\n\ntype MapVisualizationProps = {\n attribution?: string,\n onRenderComplete?: () => void,\n markerRadiusSize?: number,\n markerRadiusIncrementSize?: number,\n id: string,\n url?: string,\n locked?: boolean,\n viewport?: Viewport,\n height: number,\n width: number,\n onChange: (newViewport: Viewport) => void,\n data: Array<{ keys: any, name: any, values: { [key: string]: number } }>\n};\n\nconst _getBucket = (value: number, bucketCount: number, minValue: number, maxValue: number, increment: number) => {\n // Calculate bucket size based on min/max value and the number of buckets.\n const bucketSize = (maxValue - minValue) / bucketCount;\n // Select bucket for the given value.\n const bucket = value < maxValue ? Math.ceil((value - minValue) / bucketSize) : bucketCount;\n\n return bucket + increment;\n};\n\n// Coordinates are given as \"lat,long\"\ntype MarkerProps = {\n coordinates: string,\n value: number,\n min: number,\n max: number,\n radiusSize: number,\n increment: number,\n color: chroma.Color,\n name: JSX.Element,\n keys: { [s: string]: unknown; } | ArrayLike<unknown>,\n};\n\nconst Marker = ({ coordinates, value, min, max, radiusSize, increment, color, name, keys }: MarkerProps) => {\n // eslint-disable-next-line no-restricted-globals\n const formattedCoordinates = coordinates.split(',').map((component) => Number(component)).filter((n) => !isNaN(n));\n\n if (formattedCoordinates.length !== 2) {\n return null;\n }\n\n const radius = _getBucket(value, radiusSize, min, max, increment);\n const markerKeys = flatten(Object.entries(keys).map(([k, v]) => [<dt key={`dt-${k}-${v}`}>{k}</dt>, <dd key={`dd-${k}-${v}`}>{v as React.ReactNode}</dd>]));\n\n return (\n <CircleMarker key={`${name}-${coordinates}`}\n center={formattedCoordinates as [number, number]}\n radius={radius}\n color={color.hex()}\n fillColor={color.hex()}\n weight={2}\n opacity={0.8}>\n <Popup>\n <dl>\n <dt>Name</dt>\n <dd>{name}</dd>\n {markerKeys}\n <dt>Coordinates:</dt>\n <dd>{coordinates}</dd>\n {value\n && (\n <>\n <dt>Value:</dt>\n <dd>{value}</dd>\n </>\n )}\n </dl>\n </Popup>\n </CircleMarker>\n );\n};\n\nconst MapEvents = ({ onViewportChanged }: { onViewportChanged: React.ComponentProps<typeof MapVisualization>['onChange'] }) => {\n const map = useMap();\n\n const _onViewportChanged = () => {\n const { lat, lng } = map.getCenter();\n\n return onViewportChanged(Viewport.create([lat, lng], map.getZoom()));\n };\n\n useMapEvents({\n dragend: _onViewportChanged,\n zoomend: _onViewportChanged,\n });\n\n return null;\n};\n\nclass MapVisualization extends React.Component<MapVisualizationProps> {\n _isMapReady = false;\n\n _areTilesReady = false;\n\n static propTypes = {\n id: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.object),\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n url: PropTypes.string,\n attribution: PropTypes.string,\n onRenderComplete: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n locked: PropTypes.bool, // Disables zoom and dragging\n markerRadiusSize: PropTypes.number,\n markerRadiusIncrementSize: PropTypes.number,\n viewport: PropTypes.shape({\n center: PropTypes.arrayOf(PropTypes.number),\n zoom: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n data: {},\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n attribution: '© <a href=\"http://osm.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors',\n onRenderComplete: () => {},\n locked: false,\n viewport: DEFAULT_VIEWPORT,\n markerRadiusSize: 10,\n markerRadiusIncrementSize: 10,\n };\n\n componentDidMount() {\n leafletStyles.use();\n }\n\n componentWillUnmount() {\n leafletStyles.unuse();\n }\n\n _handleRenderComplete = () => {\n if (this._areTilesReady && this._isMapReady) {\n const { onRenderComplete } = this.props;\n\n onRenderComplete();\n }\n };\n\n _handleMapReady = () => {\n this._isMapReady = true;\n this._handleRenderComplete();\n };\n\n _handleTilesReady = () => {\n this._areTilesReady = true;\n this._handleRenderComplete();\n };\n\n render() {\n const { data, id, height, width, url, attribution, locked, viewport, onChange, markerRadiusSize, markerRadiusIncrementSize } = this.props;\n\n const noOfKeys = data.length;\n const chromaScale = chroma.scale('Spectral');\n\n const markers = data.flatMap(({ keys, name, values }, idx) => {\n const y = Object.values(values);\n const min = Math.min(...y);\n const max = Math.max(...y);\n const color = chromaScale(idx * (1 / noOfKeys));\n\n return Object.entries(values)\n .map(([coord, value], valueIdx) => (\n\n <Marker key={`${name}-${coord}-${value}`}\n coordinates={coord}\n value={value}\n min={min}\n max={max}\n radiusSize={markerRadiusSize}\n increment={markerRadiusIncrementSize}\n color={color}\n name={name}\n keys={keys[valueIdx]} />\n ));\n });\n\n return (\n <InteractiveContext.Consumer>\n {(interactive) => (\n <div className={locked ? style.mapLocked : ''} style={{ position: 'relative', zIndex: 0 }}>\n {locked && <div className={style.overlay} style={{ height, width }} />}\n <MapContainer center={viewport.center}\n boundsOptions={{ maxZoom: 19, animate: interactive }}\n zoom={viewport.zoom}\n className={style.map}\n fadeAnimation={interactive}\n key={`visualization-${id}-${width}-${height}`}\n id={`visualization-${id}`}\n markerZoomAnimation={interactive}\n scrollWheelZoom\n style={{ height, width }}\n whenReady={this._handleMapReady}\n zoomAnimation={interactive}>\n <MapEvents onViewportChanged={onChange} />\n <TileLayer url={url} attribution={attribution} eventHandlers={{ load: this._handleTilesReady }} />\n {markers}\n </MapContainer>\n </div>\n )}\n </InteractiveContext.Consumer>\n );\n }\n}\n\nexport default MapVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport flow from 'lodash/flow';\nimport fromPairs from 'lodash/fromPairs';\nimport get from 'lodash/get';\nimport zip from 'lodash/zip';\nimport isEmpty from 'lodash/isEmpty';\n\nimport type Viewport from 'views/logic/aggregationbuilder/visualizations/Viewport';\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport type { Rows } from 'views/logic/searchtypes/pivot/PivotHandler';\nimport type Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport useUserDateTime from 'hooks/useUserDateTime';\n\nimport MapVisualization from './MapVisualization';\n\nimport type { ExtractedSeries, ChartData } from '../ChartData';\nimport { extractSeries, formatSeries, getLeafsFromRows, getXLabelsFromLeafs } from '../ChartData';\nimport transformKeys from '../TransformKeys';\nimport RenderCompletionCallback from '../../widgets/RenderCompletionCallback';\n\nconst _arrayToMap = ([name, x, y]: ChartData) => ({ name, x, y });\nconst _lastKey = <T, >(keys: Array<T>) => keys[keys.length - 1];\n\nconst _createSeriesWithoutMetric = (rows: Rows) => {\n const leafs = getLeafsFromRows(rows);\n const xLabels = getXLabelsFromLeafs(leafs);\n\n if (!isEmpty(xLabels)) {\n return { valuesBySeries: { 'No metric defined': xLabels.map(() => null) }, xLabels };\n }\n\n return {};\n};\n\nconst _formatSeriesForMap = (rowPivots: Array<Pivot>) => {\n const fields = rowPivots.flatMap((rowPivot) => rowPivot.fields);\n\n return (result: Array<ReturnType<typeof _arrayToMap>>) => result.map(({ name, x, y }) => {\n const keys = x.map((k) => Object.fromEntries(k.slice(0, -1)\n .map((key, idx) => [fields[idx], key])));\n const newX = x.map(_lastKey);\n\n const values = fromPairs(zip(newX, y).filter(([_, v]) => (v !== undefined)));\n\n return { keys, name, values };\n });\n};\n\nconst WorldMapVisualization = makeVisualization(({\n config,\n data,\n editing,\n onChange,\n width,\n ...rest\n}: VisualizationComponentProps) => {\n const { rowPivots } = config;\n const onRenderComplete = useContext(RenderCompletionCallback);\n const hasMetric = !isEmpty(config.series);\n const markerRadiusSize = !hasMetric ? 1 : undefined;\n const seriesExtractor = hasMetric ? extractSeries() : _createSeriesWithoutMetric;\n const { formatTime } = useUserDateTime();\n\n const pipeline = flow([\n transformKeys(config.rowPivots, config.columnPivots, formatTime),\n seriesExtractor,\n formatSeries,\n (results: ExtractedSeries) => results.map(_arrayToMap),\n _formatSeriesForMap(rowPivots),\n ]);\n\n const rows = retrieveChartData(data);\n\n const series = pipeline(rows);\n\n const viewport = get(config, 'visualizationConfig.viewport');\n\n const _onChange = (newViewport: Viewport) => {\n if (editing) {\n onChange({\n zoom: newViewport.zoom,\n centerX: newViewport.center[0],\n centerY: newViewport.center[1],\n });\n }\n };\n\n return (\n <MapVisualization {...rest}\n data={series}\n id=\"world-map\"\n viewport={viewport}\n width={width}\n onRenderComplete={onRenderComplete}\n markerRadiusSize={markerRadiusSize}\n onChange={_onChange} />\n );\n}, 'map');\n\nWorldMapVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n onChange: PropTypes.func.isRequired,\n width: PropTypes.number.isRequired,\n};\n\nexport default WorldMapVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport _values from 'lodash/values';\nimport merge from 'lodash/merge';\nimport fill from 'lodash/fill';\nimport find from 'lodash/find';\nimport isEmpty from 'lodash/isEmpty';\nimport type { DefaultTheme } from 'styled-components';\nimport { useTheme } from 'styled-components';\n\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport HeatmapVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/HeatmapVisualizationConfig';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport type { KeyMapper } from 'views/components/visualizations/TransformKeys';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\n\nimport type { ChartDefinition, ExtractedSeries, ValuesBySeries, Generator } from '../ChartData';\nimport GenericPlot from '../GenericPlot';\n\nconst _generateSeriesTitles = (config, x, y) => {\n const seriesTitles = config.series.map((s) => s.function);\n const columnSeriesTitles = x.map((xLabel) => {\n if (seriesTitles.length > 1) {\n return seriesTitles.find((title) => xLabel.endsWith(title));\n }\n\n return seriesTitles.toString();\n });\n\n return y.map(() => columnSeriesTitles);\n};\n\nconst _generateSeries = (visualizationConfig: HeatmapVisualizationConfig, mapKeys: KeyMapper, theme: DefaultTheme): Generator => ({\n type,\n name,\n labels,\n values,\n data: z,\n config,\n}): ChartDefinition => {\n const rowPivots = config.rowPivots.flatMap((pivot) => pivot.fields);\n const columnPivots = config.columnPivots.flatMap((pivot) => pivot.fields);\n const xAxisTitle = rowPivots.join('-');\n const yAxisTitle = columnPivots.join('-');\n const zSeriesTitles = _generateSeriesTitles(config, values, labels);\n const hovertemplate = `${xAxisTitle}: %{y}<br>${yAxisTitle}: %{x}<br>%{text}: %{customdata}<extra></extra>`;\n const { colorScale, reverseScale, zMin, zMax } = visualizationConfig;\n const y = labels.map((value) => mapKeys(value, rowPivots[0]));\n const x = values.map((value) => mapKeys(value, columnPivots[0]));\n\n return {\n type,\n name,\n x,\n y,\n z,\n text: zSeriesTitles,\n customdata: z,\n hovertemplate,\n colorscale: colorScale,\n reversescale: reverseScale,\n zmin: zMin,\n zmax: zMax,\n originalName: name,\n colorbar: {\n tickfont: { color: theme.colors.global.textDefault },\n },\n };\n};\n\nconst _fillUpMatrix = (z: Array<Array<any>>, xLabels: Array<any>, defaultValue: number | 'None' = 'None') => z.map((series) => {\n const newSeries = fill(Array(xLabels.length), defaultValue);\n\n return merge(newSeries, series);\n});\n\nconst _transposeMatrix = (z: Array<Array<any>> = []) => {\n if (!z[0]) {\n return z;\n }\n\n return z[0].map((_, c) => z.map((r) => r[c]));\n};\n\nconst _findSmallestValue = (valuesFound: Array<Array<number>>) => valuesFound.reduce((result, valueArray) => valueArray.reduce((acc, value) => (acc > value ? value : acc), result), (valuesFound[0] || [])[0]);\n\nconst _formatSeries = (visualizationConfig: HeatmapVisualizationConfig) => ({\n valuesBySeries,\n xLabels,\n}: { valuesBySeries: ValuesBySeries, xLabels: Array<any> }): ExtractedSeries => {\n const valuesFoundBySeries = _values(valuesBySeries);\n // When using the hovertemplate, we need to provide a value for empty z values.\n // Otherwise, plotly would throw errors when hovering over a field.\n // We need to transpose the z matrix, because we are changing the x and y label in the generator function\n const defaultValue = visualizationConfig.useSmallestAsDefault\n ? _findSmallestValue(valuesFoundBySeries)\n : (visualizationConfig.defaultValue ?? 'None');\n const z = _transposeMatrix(_fillUpMatrix(valuesFoundBySeries, xLabels, defaultValue));\n const yLabels = Object.keys(valuesBySeries);\n\n return [[\n 'Heatmap Chart',\n xLabels,\n yLabels,\n z,\n ]];\n};\n\nconst _axisConfig = (chartHasContent: ChartDefinition) => {\n const axisConfig = {\n type: undefined,\n fixedrange: true,\n };\n\n // Adding the axis type, without provided z data, would hide the empty grid\n if (chartHasContent) {\n axisConfig.type = 'category';\n }\n\n return axisConfig;\n};\n\nconst _chartLayout = (heatmapData: ChartDefinition[]) => {\n const hasContent = find(heatmapData, (series) => !isEmpty(series.z));\n const axisConfig = _axisConfig(hasContent);\n\n return {\n yaxis: axisConfig,\n xaxis: axisConfig,\n margin: {\n b: 40,\n },\n };\n};\n\nconst _leafSourceMatcher = ({ source }: { source: string }) => source.endsWith('leaf') && source !== 'row-leaf';\n\nconst HeatmapVisualization = makeVisualization(({ config, data }: VisualizationComponentProps) => {\n const theme = useTheme();\n const visualizationConfig = (config.visualizationConfig ?? HeatmapVisualizationConfig.empty()) as HeatmapVisualizationConfig;\n const rows = retrieveChartData(data);\n const mapKeys = useMapKeys();\n const heatmapData = useChartData(rows, {\n widgetConfig: config,\n chartType: 'heatmap',\n generator: _generateSeries(visualizationConfig, mapKeys, theme),\n seriesFormatter: _formatSeries(visualizationConfig),\n leafValueMatcher: _leafSourceMatcher,\n });\n const layout = _chartLayout(heatmapData);\n\n return (\n <GenericPlot chartData={heatmapData} layout={layout} />\n );\n}, 'heatmap');\n\nHeatmapVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n};\n\nexport default HeatmapVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport type { AxisType, XYVisualization } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_INTERPOLATION } from 'views/Constants';\n\nimport VisualizationConfig from './VisualizationConfig';\nimport type { InterpolationMode } from './Interpolation';\n\ntype InternalState = {\n interpolation: InterpolationMode,\n axisType: AxisType,\n};\n\nexport type AreaVisualizationConfigJSON = {\n interpolation: InterpolationMode,\n axis_type?: AxisType,\n};\n\nexport default class AreaVisualizationConfig extends VisualizationConfig implements XYVisualization {\n private readonly _value: InternalState;\n\n constructor(interpolation: InternalState['interpolation'], axisType: InternalState['axisType'] = DEFAULT_AXIS_TYPE) {\n super();\n this._value = { interpolation, axisType };\n }\n\n get interpolation() {\n return this._value.interpolation;\n }\n\n get axisType() {\n return this._value.axisType;\n }\n\n toBuilder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map(this._value));\n }\n\n static create(interpolation: InternalState['interpolation'], axisType: InternalState['axisType'] = DEFAULT_AXIS_TYPE) {\n return new AreaVisualizationConfig(interpolation, axisType);\n }\n\n static empty() {\n return AreaVisualizationConfig.create(DEFAULT_INTERPOLATION);\n }\n\n toJSON() {\n const { interpolation, axisType } = this._value;\n\n return {\n interpolation,\n axis_type: axisType,\n };\n }\n\n static fromJSON(_type: string, value: AreaVisualizationConfigJSON) {\n return AreaVisualizationConfig.create(\n value?.interpolation ?? DEFAULT_INTERPOLATION,\n value?.axis_type ?? DEFAULT_AXIS_TYPE,\n );\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n interpolation(value: InternalState['interpolation']) {\n return new Builder(this.value.set('interpolation', value));\n }\n\n build() {\n const { interpolation, axisType } = this.value.toObject();\n\n return new AreaVisualizationConfig(interpolation, axisType);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport styled from 'styled-components';\nimport values from 'lodash/values';\nimport isEmpty from 'lodash/isEmpty';\nimport * as Immutable from 'immutable';\n\nimport Store from 'logic/local-storage/Store';\nimport { widgetDefinition } from 'views/logic/Widgets';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport type { TimeUnits } from 'views/Constants';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport WidgetPosition from 'views/logic/widgets/WidgetPosition';\nimport LineVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/LineVisualizationConfig';\nimport AreaVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/AreaVisualizationConfig';\nimport type { InterpolationMode } from 'views/logic/aggregationbuilder/visualizations/Interpolation';\nimport { Alert, Button, Row, Col } from 'components/bootstrap';\nimport Spinner from 'components/common/Spinner';\nimport { TIMESTAMP_FIELD } from 'views/Constants';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport useAppDispatch from 'stores/useAppDispatch';\nimport { updateViewState } from 'views/logic/slices/viewSlice';\nimport { execute } from 'views/logic/slices/searchExecutionSlice';\nimport type { WidgetPositions, GetState } from 'views/types';\nimport { selectActiveViewState, selectActiveQuery } from 'views/logic/slices/viewSelectors';\n\n// localStorage keys\nconst FIELD_CHARTS_KEY = 'pinned-field-charts';\nconst FIELD_CHARTS_MIGRATED_KEY = 'pinned-field-charts-migrated';\n\ntype LegacySeries = 'mean' | 'max' | 'min' | 'total' | 'count' | 'cardinality';\ntype LegacyInterpolation = 'linear' | 'step-after' | 'basis' | 'bundle' | 'cardinal' | 'monotone';\ntype LegacyInterval = 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\ntype LegacyVisualization = 'bar' | 'area' | 'line' | 'scatterplot';\ntype LegacyFieldChart = {\n field: string,\n renderer: LegacyVisualization,\n interpolation: LegacyInterpolation,\n valuetype: LegacySeries,\n interval: LegacyInterval,\n};\n\nconst Actions = styled.div`\n margin-top: 10px;\n`;\n\nconst mapSeriesFunction = (legacySeries: LegacySeries) => {\n switch (legacySeries) {\n case 'total':\n return 'sum';\n case 'mean':\n return 'avg';\n case 'cardinality':\n return 'card';\n default:\n return legacySeries;\n }\n};\n\nconst mapSeries = (legacySeries: LegacySeries, field: string) => {\n const seriesFunction = mapSeriesFunction(legacySeries);\n\n return `${seriesFunction}(${field})`;\n};\n\nconst mapVisualization = (legacyVisualization: LegacyVisualization) => {\n switch (legacyVisualization) {\n case 'scatterplot':\n return 'scatter';\n case 'line':\n case 'area':\n case 'bar':\n return legacyVisualization;\n default:\n throw new Error(`Unsupported visualization ${legacyVisualization}`);\n }\n};\n\nconst mapTime = (legacyTime: string): { value: number, unit: keyof typeof TimeUnits } => {\n switch (legacyTime) {\n case 'quarter':\n return { unit: 'months', value: 3 };\n default:\n return { unit: `${legacyTime}s` as keyof typeof TimeUnits, value: 1 };\n }\n};\n\nconst mapInterpolation = (legacyInterpolation: LegacyInterpolation): InterpolationMode => {\n switch (legacyInterpolation) {\n case 'basis':\n case 'bundle':\n case 'cardinal':\n case 'monotone':\n return 'spline';\n case 'linear':\n case 'step-after':\n return legacyInterpolation;\n default:\n throw new Error(`Unsupported interpolation ${legacyInterpolation}`);\n }\n};\n\nconst createVisualizationConfig = (legacyInterpolation: LegacyInterpolation, visualization: string) => {\n const interpolation = mapInterpolation(legacyInterpolation);\n\n switch (visualization) {\n case 'line':\n return LineVisualizationConfig.create(interpolation);\n case 'area':\n return AreaVisualizationConfig.create(interpolation);\n default:\n return undefined;\n }\n};\n\nconst _updateExistingWidgetPos = (existingPositions: WidgetPositions, rowOffset: number) => {\n const updatedWidgetPos = { ...existingPositions };\n\n Object.keys(updatedWidgetPos).forEach((widgetId) => {\n const widgetPos = updatedWidgetPos[widgetId];\n\n updatedWidgetPos[widgetId] = widgetPos.toBuilder().row(widgetPos.row + rowOffset).build();\n });\n\n return updatedWidgetPos;\n};\n\nconst _migrateWidgets = (legacyCharts: Array<LegacyFieldChart>) => async (_dispatch: AppDispatch, getState: GetState) => {\n const { defaultHeight } = widgetDefinition(AggregationWidget.type);\n const currentView = selectActiveViewState(getState());\n const activeQuery = selectActiveQuery(getState());\n const newWidgetPositions = {};\n\n const newWidgets = legacyCharts.map((chart: LegacyFieldChart, index: number) => {\n const { field } = chart;\n // The old field charts only have one series per chart.\n // The series always relates to the selected field.\n const series = new Series(mapSeries(chart.valuetype, field));\n // Because all field charts show the results for the defined timerange,\n // the new row pivot always contains the timestamp field.\n const rowPivotConfig = { interval: { type: 'timeunit' as const, ...mapTime(chart.interval) } };\n const rowPivot = Pivot.create([TIMESTAMP_FIELD], 'time', rowPivotConfig);\n const visualization = mapVisualization(chart.renderer);\n const visualizationConfig = createVisualizationConfig(chart.interpolation, visualization);\n // create widget with migrated data\n const widgetConfig = AggregationWidgetConfig.builder()\n .visualization(visualization)\n .visualizationConfig(visualizationConfig)\n .series([series])\n .rowPivots([rowPivot])\n .build();\n const newWidget = AggregationWidget.builder()\n .newId()\n .timerange(undefined)\n .config(widgetConfig)\n .build();\n // create widget position for new widget\n const widgetRowPos = (defaultHeight * index) + 1;\n\n newWidgetPositions[newWidget.id] = new WidgetPosition(1, widgetRowPos, defaultHeight, Infinity);\n\n return newWidget;\n });\n\n const newWidgetsRowOffset = legacyCharts.length * defaultHeight;\n const existingWidgetPos = _updateExistingWidgetPos(currentView.widgetPositions, newWidgetsRowOffset);\n const newViewState = currentView\n .toBuilder()\n .widgets(Immutable.List([\n // @ts-ignore\n ...currentView.widgets,\n ...newWidgets,\n ]))\n .widgetPositions({ ...existingWidgetPos, ...newWidgetPositions })\n .build();\n\n return { newViewState, currentQueryId: activeQuery };\n};\n\nconst _onMigrate = async (dispatch: AppDispatch, legacyCharts: Array<LegacyFieldChart>, setMigrating: (migrating: boolean) => void, setMigrationFinished: (finished: boolean) => void) => {\n setMigrating(true);\n\n const { newViewState, currentQueryId } = await dispatch(_migrateWidgets(legacyCharts));\n await dispatch(updateViewState(currentQueryId, newViewState));\n await dispatch(execute());\n Store.set(FIELD_CHARTS_MIGRATED_KEY, 'finished');\n setMigrating(false);\n setMigrationFinished(true);\n};\n\nconst _onCancel = (setMigrationFinished: (finished: boolean) => void) => {\n Store.set(FIELD_CHARTS_MIGRATED_KEY, 'discarded');\n setMigrationFinished(true);\n};\n\nconst MigrateFieldCharts = () => {\n const [migrating, setMigrating] = useState(false);\n const [migrationFinished, setMigrationFinished] = useState(!!Store.get(FIELD_CHARTS_MIGRATED_KEY));\n const legacyCharts: Array<LegacyFieldChart> = values(Store.get(FIELD_CHARTS_KEY));\n const chartAmount = legacyCharts.length;\n const dispatch = useAppDispatch();\n const onMigrate = useCallback(() => _onMigrate(dispatch, legacyCharts, setMigrating, setMigrationFinished), [dispatch, legacyCharts]);\n\n if (migrationFinished || isEmpty(legacyCharts)) {\n return null;\n }\n\n return (\n <Row>\n <Col>\n <Alert bsStyle=\"warning\" title=\"Migrate existing search page charts\">\n {/* Should we inform the user here about the backend migrations? */}\n <br />\n We found {chartAmount} chart(s), created for an older version of the search.\n Do you want to migrate these chart(s) for the current search?\n <br />\n When you have run the migration and want to keep the newly created charts, you will have to save the current search as a new dashboard.\n Otherwise the charts will get lost, when leaving the search page.\n <br />\n <Actions>\n <Button bsStyle=\"primary\"\n onClick={onMigrate}\n disabled={migrating}\n className=\"save-button-margin\">\n Migrate {migrating && <Spinner text=\"\" />}\n </Button>\n <Button onClick={() => _onCancel(setMigrationFinished)}\n disabled={migrating}>\n Discard charts\n </Button>\n </Actions>\n </Alert>\n </Col>\n </Row>\n );\n};\n\nexport default MigrateFieldCharts;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { Set } from 'immutable';\nimport type { $Shape } from 'utility-types';\n\nimport { parseSeries } from 'views/logic/aggregationbuilder/Series';\nimport type { Definition } from 'views/logic/aggregationbuilder/Series';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type { TimeConfigType, TimeUnitConfig } from 'views/logic/aggregationbuilder/Pivot';\nimport type Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport type NumberVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/NumberVisualizationConfig';\nimport type { TimeUnit } from 'views/Constants';\nimport generateId from 'logic/generateId';\n\nimport type SortConfig from '../../aggregationbuilder/SortConfig';\n\nconst mapTimeunit = (unit: TimeUnit) => {\n switch (unit) {\n case 'seconds':\n return 's';\n case 'minutes':\n return 'm';\n case 'hours':\n return 'h';\n case 'days':\n return 'd';\n case 'weeks':\n return 'w';\n case 'months':\n return 'M';\n default:\n throw new Error(`Invalid time unit: ${unit}`);\n }\n};\n\ntype FormattedInterval = {\n timeunit: string,\n type: string,\n}\n\ntype FormattedPivot = {\n type: string,\n fields: Array<string>,\n interval: FormattedInterval,\n};\n\nconst formatPivot = (pivot: Pivot): FormattedPivot => {\n const { type, fields, config } = pivot;\n const newConfig = { ...config } as unknown;\n\n switch (type) {\n case 'time':\n if ((config as TimeConfigType).interval.type === 'timeunit') {\n const { interval } = config as TimeConfigType;\n\n const { unit, value } = (interval as TimeUnitConfig);\n\n (newConfig as { interval: FormattedInterval }).interval = {\n type: 'timeunit',\n timeunit: `${value}${mapTimeunit(unit)}`,\n };\n }\n\n break;\n default:\n }\n\n return {\n type,\n fields,\n ...(newConfig as { interval: FormattedInterval }),\n } as FormattedPivot;\n};\n\ntype FormattedSeries = $Shape<{\n id: string,\n} & Definition>;\n\nconst generateConfig = (id: string, name: string, {\n rollupForBackendQuery,\n rowPivots,\n columnPivots,\n series,\n sort,\n}: AggregationWidgetConfig) => ({\n id,\n name,\n type: 'pivot',\n config: {\n id: 'vals',\n rollup: rollupForBackendQuery,\n row_groups: rowPivots.map(formatPivot),\n column_groups: columnPivots.map(formatPivot),\n series: series.map<FormattedSeries>((s) => ({ id: s.effectiveName, ...parseSeries(s.function) })),\n sort,\n },\n});\n\nexport default ({ config }: { config: AggregationWidgetConfig }) => {\n const chartConfig = generateConfig(generateId(), 'chart', config);\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const configBuilder = ConfigBuilder.create([chartConfig]);\n\n // TODO: This should go into a visualization config specific function\n if (config.visualization === 'numeric' && config.visualizationConfig && (config.visualizationConfig as NumberVisualizationConfig).trend) {\n const trendConfig = {\n ...(generateConfig(generateId(), 'trend', config)),\n timerange: { type: 'offset', source: 'search_type', id: chartConfig.id },\n };\n\n configBuilder.add(trendConfig);\n }\n\n if (config.eventAnnotation) {\n const eventAnnotationConfig = {\n id: generateId(),\n name: 'events',\n type: 'events',\n };\n\n configBuilder.add(eventAnnotationConfig);\n }\n\n return configBuilder.build();\n};\n\ntype Config = {\n id: string,\n name: string,\n type: string,\n config?: {\n id: string,\n rollup: boolean,\n row_groups: Array<FormattedPivot>,\n column_groups: Array<FormattedPivot>,\n series: Array<FormattedSeries>,\n sort: Array<SortConfig>,\n },\n timerange?: {\n type: string,\n source: string,\n id: string,\n },\n};\n\nclass ConfigBuilder {\n value: Set<Config>;\n\n constructor(values: Array<any>) {\n this.value = Set.of(...values);\n }\n\n add(val: Config) {\n this.value = this.value.add(val);\n\n return this;\n }\n\n build(): Array<Config> {\n return this.value.toArray();\n }\n\n static create(values = []) {\n return new ConfigBuilder(values);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nexport type Key = any;\nexport type Value = any;\n\ntype Keyed = {\n key: Array<Key>,\n};\n\ntype SingleValue = {\n rollup: boolean,\n value: Value,\n};\n\ntype MultiValue = {\n values: Array<Row>,\n};\n\nexport type Leaf = { source: 'leaf' } & Keyed & MultiValue;\n\nexport type NonLeaf = { source: 'non-leaf' } & Keyed & MultiValue;\n\nexport type ColLeaf = { source: 'col-leaf' } & Keyed & SingleValue;\n\nexport type RowLeaf = { source: 'row-leaf' } & Keyed & SingleValue;\n\nexport type RowInner = { source: 'row-inner' } & Keyed & SingleValue;\n\nexport type Row = Leaf | NonLeaf | ColLeaf | RowLeaf | RowInner;\nexport type ResultId = string;\nexport type Rows = Array<Row>;\nexport type Result = {\n id: ResultId,\n rows: Rows,\n total: number,\n type: 'pivot',\n};\n\nexport default {\n convert(result: Result) {\n return result;\n },\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nexport default (data) => data.map((result) => [result.name || result.id, result])\n .reduce((prev, [key, value]) => ({ ...prev, [key]: value }), {});\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport Widget from 'views/logic/widgets/Widget';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport TitleTypes from 'views/stores/TitleTypes';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport type { GetState } from 'views/types';\nimport { addWidget } from 'views/logic/slices/widgetActions';\nimport { setTitle } from 'views/logic/slices/titlesActions';\nimport { selectActiveQuery } from 'views/logic/slices/viewSelectors';\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\n\nimport duplicateCommonWidgetSettings from './DuplicateCommonWidgetSettings';\n\nconst NUMERIC_FIELD_SERIES = ['count', 'sum', 'avg', 'min', 'max', 'stddev', 'variance', 'card', 'percentile'];\nconst NONNUMERIC_FIELD_SERIES = ['count', 'card'];\n\nconst handler = ({\n field,\n type,\n contexts: { widget: origWidget = Widget.empty() },\n}: ActionHandlerArguments<{ widget?: Widget }>) => (dispatch: AppDispatch, getState: GetState) => {\n const activeQuery = selectActiveQuery(getState());\n const series = ((type && type.isNumeric()) ? NUMERIC_FIELD_SERIES : NONNUMERIC_FIELD_SERIES)\n .map((f) => {\n if (f === 'percentile') {\n return `${f}(${field},95)`;\n }\n\n return `${f}(${field})`;\n })\n .map(Series.forFunction);\n const config = AggregationWidgetConfig.builder()\n .series(series)\n .visualization('table')\n .rollup(true)\n .build();\n const widgetBuilder = AggregationWidget.builder()\n .newId()\n .config(config);\n\n const widget = duplicateCommonWidgetSettings(widgetBuilder, origWidget).build();\n\n return dispatch(addWidget(widget))\n .then(() => dispatch(setTitle(activeQuery, TitleTypes.Widget, widget.id, `Field Statistics for ${field}`)));\n};\n\nexport default handler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { escape, addToQuery } from 'views/logic/queries/QueryHelper';\nimport { MISSING_BUCKET_NAME } from 'views/Constants';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport type { RootState } from 'views/types';\nimport { updateQueryString } from 'views/logic/slices/viewSlice';\nimport { selectQueryString } from 'views/logic/slices/viewSelectors';\n\nconst formatNewQuery = (oldQuery: string, field: string, value: any) => {\n const fieldPredicate = value === MISSING_BUCKET_NAME\n ? `_exists_:${field}`\n : `NOT ${field}:${escape(value)}`;\n\n return addToQuery(oldQuery, fieldPredicate);\n};\n\ntype Args = {\n queryId: string,\n field: string,\n value?: string,\n};\n\nconst ExcludeFromQueryHandler = ({ queryId, field, value }: Args) => (dispatch: AppDispatch, getState: () => RootState) => {\n const oldQuery = selectQueryString(queryId)(getState());\n const newQuery = formatNewQuery(oldQuery, field, value);\n\n return dispatch(updateQueryString(queryId, newQuery));\n};\n\nexport default ExcludeFromQueryHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport type * as Immutable from 'immutable';\n\nimport CustomPropTypes from 'views/components/CustomPropTypes';\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\nimport type FieldTypeMapping from 'views/logic/fieldtypes/FieldTypeMapping';\nimport SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport Select from 'components/common/Select';\n\ntype Props = {\n fields: Immutable.List<FieldTypeMapping>,\n onChange: (newSort: Array<SortConfig>) => void,\n sort: Array<SortConfig>,\n};\n\ntype Option = {\n label: string,\n value: number,\n};\n\nconst findOptionByLabel = (options: Array<Option>, label: string) => options.find((option) => option.label === label);\n\nconst findOptionByValue = (options: Array<Option>, value: number) => options.find((option) => option.value === value);\n\nconst currentValue = (sort: Array<SortConfig>, options: Array<Option>) => sort && sort.length > 0 && findOptionByLabel(options, sort[0].field)?.value;\n\nconst sortedOptions = (fields: Immutable.List<FieldTypeMapping>): Array<Option> => fields.sort(\n (field1, field2) => defaultCompare(field1.name, field2.name),\n).map(\n (field, idx) => ({ label: field.name, value: idx }),\n).toArray();\n\nconst onOptionChange = (options: Array<Option>, onChange, value) => {\n const option = findOptionByValue(options, value);\n\n if (!option) {\n return undefined;\n }\n\n const sortConfig = new SortConfig(SortConfig.PIVOT_TYPE, option.label, Direction.Ascending);\n\n return onChange([sortConfig]);\n};\n\nconst FieldSortSelect = ({ fields, onChange, sort }: Props) => {\n const options = useMemo(() => sortedOptions(fields), [fields]);\n\n return (\n <Select placeholder=\"None: click to add fields\"\n onChange={(newValue) => onOptionChange(options, onChange, newValue)}\n options={options}\n clearable={false}\n aria-label=\"Select field for sorting\"\n value={currentValue(sort, options)} />\n );\n};\n\nFieldSortSelect.propTypes = {\n onChange: PropTypes.func.isRequired,\n fields: CustomPropTypes.FieldListType.isRequired,\n sort: PropTypes.array.isRequired,\n};\n\nexport default FieldSortSelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Select from 'components/common/Select';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\ntype Props = {\n direction: string | undefined | null,\n disabled: boolean,\n onChange: (newDirection: Direction) => any,\n};\n\nconst SortDirectionSelect = ({ direction, disabled, onChange }: Props) => (\n <Select disabled={disabled}\n clearable={false}\n options={[\n { label: 'Ascending', value: 'Ascending' },\n { label: 'Descending', value: 'Descending' },\n ]}\n onChange={(value: string) => onChange(Direction.fromString(value))}\n placeholder={disabled ? 'No sorting selected' : 'Click to select direction'}\n value={direction ?? null} />\n);\n\nSortDirectionSelect.propTypes = {\n direction: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\nSortDirectionSelect.defaultProps = {\n direction: undefined,\n disabled: false,\n onChange: () => {},\n};\n\nexport default SortDirectionSelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nconst StyledDescriptionBox = styled.div(({ theme }) => css`\n background-color: ${theme.colors.variant.lightest.default};\n border: 1px solid ${theme.colors.variant.lighter.default};\n padding: 10px;\n margin: 5px;\n border-radius: 6px;\n\n .description {\n padding-bottom: 5px;\n text-transform: uppercase;\n }\n`);\n\ntype Props = React.PropsWithChildren<{\n description: React.ReactNode,\n}>;\n\nconst DescriptionBox = ({ description, children }: Props) => (\n <StyledDescriptionBox>\n <div className=\"description\">\n {description}\n </div>\n {children}\n </StyledDescriptionBox>\n);\n\nDescriptionBox.propTypes = {\n children: PropTypes.node.isRequired,\n description: PropTypes.string.isRequired,\n};\n\nexport default DescriptionBox;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { DecoratorsActions, DecoratorsStore } from 'stores/decorators/DecoratorsStore';\nimport connect from 'stores/connect';\nimport { Spinner } from 'components/common';\nimport type { Decorator } from 'views/logic/widgets/MessagesWidgetConfig';\nimport type { Store } from 'stores/StoreTypes';\n\nimport AddDecoratorButton from './AddDecoratorButton';\nimport DecoratorSummary from './DecoratorSummary';\nimport DecoratorList from './DecoratorList';\nimport DecoratorStyles from './decoratorStyles.css';\n\ntype Props = {\n decorators: Array<Decorator>,\n decoratorTypes: {},\n onChange: (decorators: Array<Decorator>) => void,\n};\n\nclass DecoratorSidebar extends React.Component<Props> {\n static propTypes = {\n decorators: PropTypes.array.isRequired,\n decoratorTypes: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n DecoratorsActions.available();\n }\n\n _formatDecorator = (decorator: Decorator) => {\n const { decorators, decoratorTypes, onChange } = this.props;\n const typeDefinition = decoratorTypes[decorator.type] || {\n requested_configuration: {},\n name: `Unknown type: ${decorator.type}`,\n };\n const deleteDecorator = (decoratorId) => onChange(decorators.filter((_decorator) => _decorator.id !== decoratorId));\n const updateDecorator = (id, updatedDecorator) => onChange(decorators.map((_decorator) => (_decorator.id === id ? updatedDecorator : _decorator)));\n\n return ({\n id: decorator.id,\n title: <DecoratorSummary key={`decorator-${decorator.id}`}\n decorator={decorator}\n decoratorTypes={decoratorTypes}\n onDelete={deleteDecorator}\n onUpdate={updateDecorator}\n typeDefinition={typeDefinition} />,\n });\n };\n\n _updateOrder = (orderedDecorators: Array<Decorator>) => {\n const { decorators, onChange } = this.props;\n\n orderedDecorators.forEach((item, idx) => {\n const decorator = decorators.find((i) => i.id === item.id);\n\n decorator.order = idx;\n });\n\n onChange(decorators);\n };\n\n render() {\n const { decoratorTypes, onChange, decorators } = this.props;\n\n if (!decoratorTypes) {\n return <Spinner />;\n }\n\n const sortedDecorators = decorators\n .sort((d1, d2) => d1.order - d2.order);\n const nextDecoratorOrder = sortedDecorators.length > 0 ? sortedDecorators[sortedDecorators.length - 1].order + 1 : 0;\n const decoratorItems = sortedDecorators.map(this._formatDecorator);\n\n const addDecorator = (decorator: Decorator) => onChange([...decorators, decorator]);\n\n return (\n <div>\n <AddDecoratorButton decoratorTypes={decoratorTypes} nextOrder={nextDecoratorOrder} onCreate={addDecorator} />\n <div className={DecoratorStyles.decoratorListContainer}>\n <DecoratorList decorators={decoratorItems} onReorder={this._updateOrder} />\n </div>\n </div>\n );\n }\n}\n\ntype DecoratorsStoreState = {\n decorators: Array<Decorator>,\n types: {},\n};\n\nexport default connect(DecoratorSidebar,\n { decoratorStore: DecoratorsStore as Store<DecoratorsStoreState> },\n ({ decoratorStore: { types = {} } = {} }) => ({ decoratorTypes: types }));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { EditWidgetComponentProps } from 'views/types';\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport type SortConfig from 'views/logic/aggregationbuilder/SortConfig';\nimport { Row, Col, Checkbox } from 'components/bootstrap';\nimport CustomPropTypes from 'views/components/CustomPropTypes';\nimport FieldSortSelect from 'views/components/widgets/FieldSortSelect';\nimport SortDirectionSelect from 'views/components/widgets/SortDirectionSelect';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type MessagesWidgetConfig from 'views/logic/widgets/MessagesWidgetConfig';\nimport DescriptionBox from 'views/components/aggregationbuilder/DescriptionBox';\nimport DecoratorSidebar from 'views/components/messagelist/decorators/DecoratorSidebar';\nimport { HoverForHelp } from 'components/common';\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport SaveOrCancelButtons from 'views/components/widgets/SaveOrCancelButtons';\nimport StickyBottomActions from 'views/components/widgets/StickyBottomActions';\nimport FieldsConfiguration from 'views/components/widgets/FieldsConfiguration';\n\nconst FullHeightRow = styled(Row)`\n height: 100%;\n padding-bottom: 15px;\n flex: 1;\n`;\n\nconst FullHeightCol = styled(Col)`\n height: 100%;\n`;\n\nconst PreviewOptionCheckbox = styled(Checkbox)`\n label {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nconst _onFieldSelectionChanged = (fields: Array<string>, config: MessagesWidgetConfig, onChange: (newConfig: MessagesWidgetConfig) => void) => {\n const newConfig = config.toBuilder().fields(fields).build();\n\n return onChange(newConfig);\n};\n\nconst _onSortChange = (sort: $PropertyType<AggregationWidgetConfig, 'sort'>, config, onChange) => {\n const newConfig = config.toBuilder().sort(sort).build();\n\n return onChange(newConfig);\n};\n\nconst _onSortDirectionChange = (direction: SortConfig['direction'], config, onChange) => {\n const newConfig = config.toBuilder().sort(config.sort.map((sort) => sort.toBuilder().direction(direction).build())).build();\n\n return onChange(newConfig);\n};\n\nconst EditMessageList = ({ children, config, fields, onChange, onCancel, onSubmit }: EditWidgetComponentProps<MessagesWidgetConfig>) => {\n const { sort } = config;\n const [sortDirection] = (sort || []).map((s) => s.direction);\n const onDecoratorsChange = (newDecorators) => onChange(config.toBuilder().decorators(newDecorators).build());\n const messagePreviewOptions = usePluginEntities('views.components.widgets.messageTable.previewOptions');\n const sortedMessagePreviewOptions = messagePreviewOptions.sort((o1, o2) => defaultCompare(o1.sort, o2.sort));\n\n return (\n <FullHeightRow>\n <FullHeightCol md={3}>\n <StickyBottomActions actions={<SaveOrCancelButtons onCancel={onCancel} onSubmit={onSubmit} />}\n alignActionsAtBottom>\n <DescriptionBox description=\"Fields\">\n <FieldsConfiguration onChange={(newFields) => _onFieldSelectionChanged(newFields, config, onChange)}\n menuPortalTarget={document.body}\n selectedFields={config.fields} />\n\n </DescriptionBox>\n <DescriptionBox description=\"Message Preview\">\n {sortedMessagePreviewOptions.map((option) => (\n <PreviewOptionCheckbox key={option.title} checked={option.isChecked(config)} onChange={() => option.onChange(config, onChange)} disabled={option.isDisabled(config)}>\n {option.title}\n {option.help && (\n <HoverForHelp title={option.title}>\n {option.help}\n </HoverForHelp>\n )}\n </PreviewOptionCheckbox>\n ))}\n </DescriptionBox>\n <DescriptionBox description=\"Sorting\">\n <FieldSortSelect fields={fields} sort={sort} onChange={(data) => _onSortChange(data, config, onChange)} />\n </DescriptionBox>\n <DescriptionBox description=\"Direction\">\n <SortDirectionSelect disabled={!sort || sort.length === 0}\n direction={sortDirection && sortDirection.direction}\n onChange={(data) => _onSortDirectionChange(data, config, onChange)} />\n </DescriptionBox>\n <DescriptionBox description=\"Decorators\">\n <DecoratorSidebar decorators={config.decorators}\n onChange={onDecoratorsChange} />\n </DescriptionBox>\n </StickyBottomActions>\n </FullHeightCol>\n <FullHeightCol md={9}>\n {children}\n </FullHeightCol>\n </FullHeightRow>\n );\n};\n\nEditMessageList.propTypes = {\n children: CustomPropTypes.OneOrMoreChildren.isRequired,\n config: PropTypes.object.isRequired,\n fields: CustomPropTypes.FieldListType.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default EditMessageList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport loadAsync from 'routing/loadAsync';\n\nconst DashboardsPage = loadAsync(() => import(/* webpackChunkname: \"DashboardsPage\" */ './DashboardsPage'));\n\nconst NewSearchPage = loadAsync(() => import(/* webpackChunkName: \"NewSearchPage\" */ './NewSearchPage'));\nconst StreamSearchPage = loadAsync(() => import(/* webpackChunkName: \"StreamSearchPage\" */ './StreamSearchPage'));\nconst NewDashboardPage = loadAsync(() => import(/* webpackChunkName: \"NewDashboardPage\" */ './NewDashboardPage'));\nconst ShowViewPage = loadAsync(() => import(/* webpackChunkName: \"ShowViewPage\" */ './ShowViewPage'));\nconst EventReplaySearchPage = loadAsync(() => import(/* webpackChunkName: \"ShowViewPage\" */ './EventReplaySearchPage'));\nconst EventDefinitionReplaySearchPage = loadAsync(() => import(/* webpackChunkName: \"ShowViewPage\" */ './EventDefinitionReplaySearchPage'));\n\nexport {\n DashboardsPage,\n NewSearchPage,\n ShowViewPage,\n StreamSearchPage,\n NewDashboardPage,\n EventReplaySearchPage,\n EventDefinitionReplaySearchPage,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport NumberVisualization from 'views/components/visualizations/number/NumberVisualization';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport Series from 'views/logic/aggregationbuilder/Series';\nimport SeriesConfig from 'views/logic/aggregationbuilder/SeriesConfig';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\n\nexport const CreateMessageCount = () => {\n const series = Series.forFunction('count()')\n .toBuilder()\n .config(new SeriesConfig('Message Count'))\n .build();\n\n return AggregationWidget.builder()\n .newId()\n .config(AggregationWidgetConfig.builder()\n .series([series])\n .visualization(NumberVisualization.type)\n .build())\n .build();\n};\n\nconst AddMessageCountActionHandler = () => (dispatch: AppDispatch) => dispatch(addWidget(CreateMessageCount()));\n\nexport default AddMessageCountActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { DEFAULT_MESSAGE_FIELDS } from 'views/Constants';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\n\nimport MessagesWidget from '../widgets/MessagesWidget';\nimport MessagesWidgetConfig from '../widgets/MessagesWidgetConfig';\n\nexport const CreateMessagesWidget = () => MessagesWidget.builder()\n .newId()\n .config(\n MessagesWidgetConfig.builder()\n .fields(DEFAULT_MESSAGE_FIELDS)\n .showMessageRow(true)\n .showSummary(true)\n .build(),\n ).build();\n\nexport default () => (dispatch: AppDispatch) => dispatch(addWidget(CreateMessagesWidget()));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport MessagesWidget from 'views/logic/widgets/MessagesWidget';\nimport type Widget from 'views/logic/widgets/Widget';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { updateWidgetConfig } from 'views/logic/slices/widgetActions';\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\n\nimport type { FieldActionHandlerCondition } from './FieldActionHandler';\n\ntype Contexts = { widget: Widget };\n\nconst RemoveFromTableActionHandler = ({\n field,\n contexts: { widget },\n}: ActionHandlerArguments<Contexts>) => (dispatch: AppDispatch) => {\n const newFields = widget.config.fields.filter((f) => (f !== field));\n const newConfig = widget.config.toBuilder()\n .fields(newFields)\n .build();\n\n return dispatch(updateWidgetConfig(widget.id, newConfig));\n};\n\nconst isEnabled: FieldActionHandlerCondition<Contexts> = ({ contexts: { widget }, field }) => {\n if (MessagesWidget.isMessagesWidget(widget) && widget.config) {\n const fields = widget.config.fields || [];\n\n return fields.includes(field);\n }\n\n return false;\n};\n\n/* Hide RemoveFromTableHandler in the sidebar */\nconst isHidden: FieldActionHandlerCondition<Contexts> = ({ contexts: { widget } }): boolean => !widget;\n\nRemoveFromTableActionHandler.isEnabled = isEnabled;\nRemoveFromTableActionHandler.isHidden = isHidden;\n\nexport default RemoveFromTableActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport type { GetState } from 'views/types';\nimport { selectWidgets } from 'views/logic/slices/viewSelectors';\nimport MessagesWidget from 'views/logic/widgets/MessagesWidget';\nimport { updateWidgets } from 'views/logic/slices/widgetActions';\n\nconst RemoveFromAllTablesActionHandler = ({ field }: ActionHandlerArguments<{}>) => (dispatch: AppDispatch, getState: GetState) => {\n const widgets = selectWidgets(getState());\n const newWidgets = widgets.map((widget) => {\n if (widget.type.toUpperCase() === MessagesWidget.type.toUpperCase()) {\n const newFields = widget.config.fields.filter((f) => (f !== field));\n const newConfig = widget.config.toBuilder()\n .fields(newFields)\n .build();\n\n return widget.toBuilder().config(newConfig).build();\n }\n\n return widget;\n }).toList();\n\n return dispatch(updateWidgets(newWidgets));\n};\n\nexport default RemoveFromAllTablesActionHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport View from 'views/logic/views/View';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport DataTable from 'views/components/datatable';\nimport type { CreatorProps } from 'views/components/sidebar/create/AddWidgetButton';\nimport { DEFAULT_TIMERANGE } from 'views/Constants';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\nimport type { GetState } from 'views/types';\nimport { selectView } from 'views/logic/slices/viewSelectors';\n\nexport const CreateCustomAggregation = ({ view }: CreatorProps) => AggregationWidget.builder()\n .newId()\n .timerange(view.type === View.Type.Dashboard ? DEFAULT_TIMERANGE : undefined)\n .config(AggregationWidgetConfig.builder()\n .rowPivots([])\n .series([])\n .visualization(DataTable.type)\n .build())\n .build();\n\nexport default () => (dispatch: AppDispatch, getState: GetState) => {\n const view = selectView(getState());\n\n return dispatch(addWidget(CreateCustomAggregation({ view })));\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ActionContext } from 'views/logic/ActionContext';\nimport ExtractorUtils from 'util/ExtractorUtils';\nimport Select from 'components/common/Select';\nimport { BootstrapModalForm } from 'components/bootstrap';\nimport type { ActionContexts } from 'views/types';\n\nimport type { ActionComponentProps } from '../../components/actions/ActionHandler';\n\ntype State = {\n selectedExtractor: string | undefined | null,\n};\n\nconst _renderOption = ({ label }: { label: string }) => <strong>{label}</strong>;\n\nconst _getExtractorTypes = () => ExtractorUtils.EXTRACTOR_TYPES.map((extractorType) => ({ label: ExtractorUtils.getReadableExtractorTypeName(extractorType), value: extractorType }));\n\nclass SelectExtractorType extends React.Component<ActionComponentProps, State> {\n static propTypes = {\n onClose: PropTypes.func.isRequired,\n };\n\n static contextType = ActionContext;\n\n readonly context: ActionContexts;\n\n extractorRoutes = {};\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedExtractor: undefined,\n };\n }\n\n componentDidMount() {\n const { message } = this.context;\n const { gl2_source_node, gl2_source_input } = message.fields;\n const { field } = this.props;\n\n this.extractorRoutes = ExtractorUtils.getNewExtractorRoutes(gl2_source_node,\n gl2_source_input,\n field,\n message.index,\n message.id);\n }\n\n _onSubmit = () => {\n const { onClose } = this.props;\n\n onClose();\n\n const { selectedExtractor } = this.state;\n\n if (selectedExtractor) {\n const uri = this.extractorRoutes[selectedExtractor];\n const newWindow = window.open(uri, '_blank');\n\n newWindow.focus();\n }\n };\n\n _onChange = (selectedExtractor: string) => {\n this.setState({ selectedExtractor });\n };\n\n render() {\n const { selectedExtractor } = this.state;\n\n return (\n <BootstrapModalForm title=\"Select extractor type\"\n submitButtonDisabled={!selectedExtractor}\n show\n onCancel={this.props.onClose}\n onSubmitForm={this._onSubmit}>\n <Select placeholder=\"Select extractor type\"\n optionRenderer={_renderOption}\n clearable\n onChange={this._onChange}\n options={_getExtractorTypes()} />\n </BootstrapModalForm>\n );\n }\n}\n\nexport default SelectExtractorType;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport VisualizationConfig from './VisualizationConfig';\nimport Viewport from './Viewport';\nimport type { ViewportJson } from './Viewport';\n\ntype State = {\n viewport: Viewport,\n};\n\ntype WorldMapVisualizationConfigJson = {\n viewport: ViewportJson,\n};\n\nexport default class WorldMapVisualizationConfig extends VisualizationConfig {\n _value: State;\n\n constructor(viewport: Viewport) {\n super();\n this._value = { viewport };\n }\n\n get viewport() {\n return this._value.viewport;\n }\n\n toBuilder() {\n const { viewport } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ viewport }));\n }\n\n static create(viewport: Viewport) {\n return new WorldMapVisualizationConfig(viewport);\n }\n\n toJSON() {\n const { viewport } = this._value;\n\n return {\n viewport,\n };\n }\n\n static fromJSON(_type: string, value: WorldMapVisualizationConfigJson) {\n const { viewport } = value;\n\n return WorldMapVisualizationConfig.builder()\n .viewport(Viewport.fromJSON(viewport))\n .build();\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype InternalBuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n viewport(value: Viewport) {\n return new Builder(this.value.set('viewport', value));\n }\n\n build() {\n const { viewport } = this.value.toObject();\n\n return new WorldMapVisualizationConfig(viewport);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { DEFAULT_MESSAGE_FIELDS, MISSING_BUCKET_NAME } from 'views/Constants';\nimport { escape, addToQuery } from 'views/logic/queries/QueryHelper';\nimport TitleTypes from 'views/stores/TitleTypes';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport type { GetState } from 'views/types';\nimport { addWidget } from 'views/logic/slices/widgetActions';\nimport { setTitle } from 'views/logic/slices/titlesActions';\nimport { selectActiveQuery } from 'views/logic/slices/viewSelectors';\n\nimport type { ValuePath } from './ValueActionHandler';\n\nimport MessagesWidget from '../widgets/MessagesWidget';\nimport MessagesWidgetConfig from '../widgets/MessagesWidgetConfig';\nimport type Widget from '../widgets/Widget';\nimport { createElasticsearchQueryString } from '../queries/Query';\nimport duplicateCommonWidgetSettings from '../fieldactions/DuplicateCommonWidgetSettings';\n\ntype Contexts = {\n valuePath: ValuePath,\n widget: Widget,\n};\n\ntype Arguments = {\n contexts: Contexts;\n};\n\nconst extractFieldsFromValuePath = (valuePath: ValuePath): Array<string> => valuePath.map((item) => Object.entries(item)\n .map(([key, value]: [string, string]) => (\n key === '_exists_' ? value : key)))\n .reduce((prev, cur) => [...prev, ...cur], [])\n .reduce((prev, cur) => (prev.includes(cur) ? prev : [...prev, cur]), []);\n\nconst ShowDocumentsHandler = ({\n contexts: { valuePath, widget },\n}: Arguments) => (dispatch: AppDispatch, getState: GetState) => {\n const activeQuery = selectActiveQuery(getState());\n const mergedObject = Object.fromEntries(valuePath.flatMap(Object.entries));\n const widgetQuery = widget && widget.query ? widget.query.query_string : '';\n const valuePathQuery = Object.entries(mergedObject)\n .map(([k, v]) => (v === MISSING_BUCKET_NAME ? `NOT _exists_:${k}` : `${k}:${escape(String(v))}`))\n .reduce((prev: string, next: string) => addToQuery(prev, next), '');\n const query = addToQuery(widgetQuery, valuePathQuery);\n const valuePathFields = extractFieldsFromValuePath(valuePath);\n const messageListFields = new Set<string>([...DEFAULT_MESSAGE_FIELDS, ...valuePathFields]);\n const newWidget = duplicateCommonWidgetSettings(MessagesWidget.builder(), widget)\n .query(createElasticsearchQueryString(query))\n .newId()\n .config(MessagesWidgetConfig.builder()\n // @ts-ignore\n .fields([...messageListFields])\n .showMessageRow(true).build())\n .build();\n\n const title = `Messages for ${valuePathQuery}`;\n\n return dispatch(addWidget(newWidget))\n .then(() => dispatch(setTitle(activeQuery, TitleTypes.Widget, newWidget.id, title)));\n};\n\nShowDocumentsHandler.isEnabled = ({ contexts: { valuePath, widget } }) => (valuePath !== undefined && widget !== undefined);\n\nexport default ShowDocumentsHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionHandlerCondition, ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { createHighlightingRule } from 'views/logic/slices/highlightActions';\nimport type { GetState } from 'views/types';\nimport { selectHighlightingRules } from 'views/logic/slices/highlightSelectors';\n\nconst HighlightValueHandler = ({ field, value }: ActionHandlerArguments) => (dispatch: AppDispatch) => {\n if (value === undefined) {\n return Promise.reject(new Error('Unable to add highlighting for missing value.'));\n }\n\n return dispatch(createHighlightingRule(field, value));\n};\n\nconst isEnabled: ActionHandlerCondition<{}> = ({ field, value }, getState: GetState) => {\n const highlightingRules = selectHighlightingRules(getState());\n\n return highlightingRules.find(({ field: f, value: v }) => (field === f && value === v)) === undefined;\n};\n\nHighlightValueHandler.isEnabled = isEnabled;\n\nexport default HighlightValueHandler;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport type { Token } from 'views/components/searchbar/queryinput/ace-types';\nimport { existsOperator } from 'views/components/searchbar/completions/FieldNameCompletion';\n\nexport const removeFinalColon = (tokenValue: string) => tokenValue.slice(0, -1);\n\nexport const isTypeTerm = (token: Token | undefined) => !!(token && token.type === 'term');\nexport const isTypeString = (token: Token | undefined) => token?.type === 'string';\nexport const isTypeText = (token: Token | undefined) => token?.type === 'text';\nexport const isTypeNumber = (token: Token | undefined) => token?.type === 'constant.numeric';\n\nexport const isTypeKeyword = (token: Token | undefined) => token?.type === 'keyword';\n\nexport const isKeywordOperator = (token: Token | undefined) => token?.type === 'keyword.operator';\n\nexport const isExistsOperator = (token: Token | undefined) => isTypeKeyword(token) && token.value === `${existsOperator.name}:`;\n\nexport const isCompleteFieldName = (token: Token | undefined) => !!(isTypeKeyword(token) && token?.value.endsWith(':'));\n\nexport const isSpace = (token: Token | undefined) => isTypeText(token) && token?.value === ' ';\n\nexport const isLeftParen = (token: Token | undefined) => token?.type === 'paren.lparen';\nexport const isRightParen = (token: Token | undefined) => token?.type === 'paren.rparen';\n\nexport const getFieldNameForFieldValueInBrackets = (tokens: Array<Token>, currentTokenIndex: number) => {\n if (!tokens?.length) {\n return null;\n }\n\n const currentToken = tokens[currentTokenIndex];\n const prevToken = tokens[currentTokenIndex - 1] ?? null;\n\n if (prevToken?.type === 'keyword' && prevToken?.value.endsWith(':') && isLeftParen(currentToken)) {\n return removeFinalColon(prevToken.value);\n }\n\n let fieldNameIndex = null;\n let openingBracketsCount = 0;\n let closingBracketsCount = 0;\n\n for (let i = 0; i < currentTokenIndex; i += 1) {\n if (tokens[i].type === 'keyword' && tokens[i].value.endsWith(':') && isLeftParen(tokens[i + 1])) {\n fieldNameIndex = i;\n }\n\n if (fieldNameIndex !== null && isLeftParen(tokens[i])) {\n openingBracketsCount += 1;\n }\n\n if (fieldNameIndex !== null && isRightParen(tokens[i])) {\n closingBracketsCount += 1;\n }\n\n if (openingBracketsCount && closingBracketsCount && openingBracketsCount === closingBracketsCount) {\n openingBracketsCount = 0;\n closingBracketsCount = 0;\n fieldNameIndex = null;\n }\n }\n\n if (fieldNameIndex !== null) {\n return removeFinalColon(tokens[fieldNameIndex].value);\n }\n\n return null;\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport {\n getFieldNameForFieldValueInBrackets,\n isCompleteFieldName,\n isSpace,\n isTypeTerm,\n isExistsOperator,\n} from 'views/components/searchbar/completions/token-helper';\n\nimport type { CompletionResult, Token } from '../queryinput/ace-types';\nimport type { Completer, CompleterContext } from '../SearchBarAutocompletions';\n\nexport type Suggestion = Readonly<{\n name: string,\n type: Readonly<{\n type: string,\n }>,\n}>;\n\nconst _fieldResult = (field: Suggestion, score: number = 1, valuePosition: boolean = false): CompletionResult => {\n const { name, type } = field;\n\n return {\n name,\n value: `${name}${valuePosition ? '' : ':'}`,\n score,\n meta: type.type,\n };\n};\n\nexport const existsOperator: Suggestion = {\n name: '_exists_',\n type: {\n type: 'operator',\n },\n};\n\nconst _matchesFieldName = (prefix: string) => (field: Readonly<{ name: string, type: Readonly<{type: string}> }>) => {\n const result = field.name.indexOf(prefix);\n\n if (result < 0) {\n return 0;\n }\n\n // If substring occurs at start, return boost\n return result === 0 ? 2 : 1;\n};\n\nconst shouldShowSuggestions = ({ tokens, currentTokenIdx, prefix }: { tokens: Array<Token>, currentTokenIdx: number, prefix: string }) => {\n const currentToken = tokens[currentTokenIdx];\n const prevToken = tokens[currentTokenIdx - 1] ?? null;\n\n if (isCompleteFieldName(currentToken) && prefix) {\n return true;\n }\n\n if (isTypeTerm(currentToken)) {\n if (\n (isCompleteFieldName(prevToken) && !isExistsOperator(prevToken))\n || getFieldNameForFieldValueInBrackets(tokens, currentTokenIdx)\n ) {\n return false;\n }\n\n if (\n !prevToken\n || isSpace(prevToken)\n || isExistsOperator(prevToken)\n ) {\n return true;\n }\n }\n\n return false;\n};\n\nclass FieldNameCompletion implements Completer {\n private readonly staticSuggestions: Array<Suggestion>;\n\n constructor(staticSuggestions: Array<Suggestion> = [existsOperator]) {\n this.staticSuggestions = staticSuggestions;\n }\n\n getCompletions = ({ tokens, currentTokenIdx, prevToken, prefix, fieldTypes }: CompleterContext) => {\n const showSuggestions = shouldShowSuggestions({ tokens, currentTokenIdx, prefix });\n\n if (!showSuggestions) {\n return [];\n }\n\n const matchesFieldName = _matchesFieldName(prefix);\n const { all, query } = fieldTypes;\n const currentQueryFields = Immutable.List(Object.values(query));\n const valuePosition = isExistsOperator(prevToken);\n\n const allButInCurrent = Object.values(all).filter((field) => !query[field.name]);\n const fieldsToMatchIn = valuePosition\n ? [...currentQueryFields.toArray()]\n : [...this.staticSuggestions, ...currentQueryFields.toArray()];\n const currentQuery = fieldsToMatchIn.filter((field) => (matchesFieldName(field) > 0))\n .map((field) => _fieldResult(field, 10 + matchesFieldName(field), valuePosition));\n const allFields = allButInCurrent.filter((field) => (matchesFieldName(field) > 0))\n .map((field) => _fieldResult(field, 1 + matchesFieldName(field), valuePosition))\n .map((result) => ({ ...result, meta: `${result.meta} (not in streams)` }));\n\n return [...currentQuery, ...allFields];\n };\n}\n\nexport default FieldNameCompletion;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport isEqual from 'lodash/isEqual';\n\nimport { SearchSuggestions } from '@graylog/server-api';\nimport type { TimeRange, NoTimeRangeOverride } from 'views/logic/queries/Query';\nimport type FieldTypeMapping from 'views/logic/fieldtypes/FieldTypeMapping';\nimport { normalizeFromSearchBarForBackend } from 'views/logic/queries/NormalizeTimeRange';\nimport { isNoTimeRangeOverride } from 'views/typeGuards/timeRange';\nimport { escape } from 'views/logic/queries/QueryHelper';\nimport {\n getFieldNameForFieldValueInBrackets,\n isCompleteFieldName,\n isTypeString,\n isTypeTerm, isKeywordOperator, isSpace, isTypeNumber, removeFinalColon,\n} from 'views/components/searchbar/completions/token-helper';\n\nimport type { Completer, CompleterContext, FieldTypes } from '../SearchBarAutocompletions';\nimport type { Token, CompletionResult } from '../queryinput/ace-types';\n\nconst SUGGESTIONS_PAGE_SIZE = 50;\n\nconst unquote = (s: string) => s.replace(/^\"(.*(?=\"$))\"$/, '$1');\n\nconst formatValue = (value: string, type: string) => {\n const trimmedValue = value?.trim();\n\n switch (type) {\n case 'constant.numeric': return Number(trimmedValue);\n case 'string': return unquote(trimmedValue);\n case 'keyword.operator': return '';\n case 'paren.lparen': return '';\n default: return trimmedValue;\n }\n};\n\nconst completionCaption = (fieldValue: string, input: string | number, isQuoted: boolean) => {\n const quotedValue = isQuoted ? fieldValue : escape(fieldValue);\n\n if (quotedValue.startsWith(String(input))) {\n return quotedValue;\n }\n\n return `${fieldValue} ⭢ ${input}`;\n};\n\nconst getFieldNameAndInput = ({\n tokens,\n currentToken,\n prevToken,\n currentTokenIdx,\n}: {\n tokens: Array<Token>,\n currentToken: Token | undefined | null,\n prevToken: Token | undefined | null,\n currentTokenIdx: number\n}) => {\n const nextToken = tokens[currentTokenIdx + 1] ?? null;\n\n if (isCompleteFieldName(currentToken) && (!nextToken || isSpace(nextToken))) {\n return {\n fieldName: removeFinalColon(currentToken.value),\n input: '',\n isQuoted: false,\n };\n }\n\n if ((isTypeTerm(currentToken) || isTypeString(currentToken) || isKeywordOperator(currentToken) || isTypeNumber(currentToken)) && isCompleteFieldName(prevToken)) {\n return {\n fieldName: removeFinalColon(prevToken.value),\n input: formatValue(currentToken.value, currentToken.type),\n isQuoted: isTypeString(currentToken),\n };\n }\n\n const fieldNameFromForValueInBrackets = getFieldNameForFieldValueInBrackets(tokens, currentTokenIdx);\n\n if (fieldNameFromForValueInBrackets && !(isSpace(currentToken) && (isTypeTerm(prevToken) || isTypeNumber(prevToken)))) {\n return {\n fieldName: fieldNameFromForValueInBrackets,\n input: formatValue(currentToken.value, currentToken.type),\n isQuoted: false,\n };\n }\n\n return {};\n};\n\nconst isEnumerableField = (field: FieldTypeMapping | undefined) => field?.type.isEnumerable() ?? false;\n\nconst formatSuggestion = (value: string, occurrence: number, input: string | number, isQuoted: boolean, title: string | undefined): CompletionResult => ({\n name: value,\n value: isQuoted ? value : escape(value),\n score: occurrence,\n caption: completionCaption(value, input, isQuoted),\n meta: title ? `${title}: ${occurrence} hits` : `${occurrence} hits`,\n});\n\ntype PreviousSuggestions = Array<{ value: string, occurrence: number, title?: string }> | undefined;\n\nclass FieldValueCompletion implements Completer {\n private previousSuggestions: undefined | {\n furtherSuggestionsCount: number,\n suggestions: PreviousSuggestions,\n fieldName: string,\n input: string | number,\n timeRange: TimeRange | NoTimeRangeOverride | undefined,\n streams: Array<string> | undefined,\n };\n\n // eslint-disable-next-line class-methods-use-this\n private readonly shouldFetchCompletions = (fieldName: string, fieldTypes: FieldTypes) => {\n if (!fieldName) {\n return false;\n }\n\n const queryField = fieldTypes?.query[fieldName];\n\n if (!queryField || !isEnumerableField(queryField)) {\n const allFieldType = fieldTypes?.all[fieldName];\n\n return isEnumerableField(allFieldType);\n }\n\n return true;\n };\n\n private alreadyFetchedAllSuggestions(\n input: string | number,\n fieldName: string,\n streams: Array<string> | undefined,\n timeRange: TimeRange | NoTimeRangeOverride | undefined,\n ) {\n if (!this.previousSuggestions) {\n return false;\n }\n\n const {\n fieldName: prevFieldName,\n streams: prevStreams,\n timeRange: prevTimeRange,\n furtherSuggestionsCount,\n input: prevInput,\n } = this.previousSuggestions;\n\n return String(input).startsWith(String(prevInput))\n && prevFieldName === fieldName\n && isEqual(prevStreams, streams)\n && isEqual(prevTimeRange, timeRange)\n && !furtherSuggestionsCount;\n }\n\n private filterExistingSuggestions(input: string | number, isQuoted: boolean) {\n if (this.previousSuggestions) {\n return this.previousSuggestions.suggestions\n .filter(({ value }) => (isQuoted ? value : escape(value)).startsWith(String(input)))\n .map(({ value, occurrence, title }) => formatSuggestion(value, occurrence, input, isQuoted, title));\n }\n\n return [];\n }\n\n getCompletions = ({\n tokens,\n currentToken,\n currentTokenIdx,\n prevToken,\n timeRange,\n streams,\n fieldTypes,\n userTimezone,\n }: CompleterContext) => {\n const { fieldName, input, isQuoted } = getFieldNameAndInput({\n tokens,\n currentToken,\n currentTokenIdx,\n prevToken,\n });\n\n if (!fieldName) {\n return [];\n }\n\n if (!this.shouldFetchCompletions(fieldName, fieldTypes)) {\n return [];\n }\n\n if (this.alreadyFetchedAllSuggestions(input, fieldName, streams, timeRange)) {\n const existingSuggestions = this.filterExistingSuggestions(input, isQuoted);\n\n if (existingSuggestions.length > 0) {\n return existingSuggestions;\n }\n }\n\n const normalizedTimeRange = (!timeRange || isNoTimeRangeOverride(timeRange)) ? undefined : normalizeFromSearchBarForBackend(timeRange, userTimezone);\n\n return SearchSuggestions.suggestFieldValue({\n field: fieldName,\n input: input as string,\n timerange: normalizedTimeRange,\n streams,\n size: SUGGESTIONS_PAGE_SIZE,\n }).then(({ suggestions, sum_other_docs_count: furtherSuggestionsCount }) => {\n if (!suggestions) {\n return [];\n }\n\n this.previousSuggestions = {\n furtherSuggestionsCount,\n streams,\n timeRange,\n fieldName,\n input,\n suggestions,\n };\n\n return suggestions.map(({ value, occurrence, title }: any) => formatSuggestion(value, occurrence, input, isQuoted, title));\n });\n };\n\n public identifierRegexps = [/[a-zA-Z_0-9$\\\\/\\-\\u00A2-\\u2000\\u2070-\\uFFFF]/];\n}\n\nexport default FieldValueCompletion;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport trim from 'lodash/trim';\n\nimport {\n isKeywordOperator,\n isTypeString,\n isTypeKeyword,\n isTypeText,\n} from 'views/components/searchbar/completions/token-helper';\n\nimport type { Completer, CompleterContext } from '../SearchBarAutocompletions';\nimport type { CompletionResult, Token } from '../queryinput/ace-types';\n\nconst combiningOperators: Array<CompletionResult> = [\n {\n name: 'AND',\n value: 'AND ',\n score: 10,\n meta: 'operator',\n },\n {\n name: 'OR',\n value: 'OR ',\n score: 10,\n meta: 'operator',\n },\n];\n\nconst operators: Array<CompletionResult> = [\n {\n name: 'NOT',\n value: 'NOT ',\n score: 10,\n meta: 'operator',\n },\n];\n\nconst _matchesFieldName = (prefix) => (field) => (field.name.indexOf(prefix) >= 0);\n\nconst _lastNonEmptyToken = (tokens: Array<Token>, currentTokenIdx: number): Token | undefined | null => tokens.slice(0, currentTokenIdx).reverse().find((token) => (token.type !== 'text' || trim(token.value) !== ''));\n\nclass OperatorCompletion implements Completer {\n // eslint-disable-next-line class-methods-use-this\n getCompletions = ({ currentToken, prevToken, prefix, tokens, currentTokenIdx }: CompleterContext): Array<CompletionResult> => {\n if (\n isTypeKeyword(currentToken)\n || isTypeString(currentToken)\n || !tokens?.length\n || !prefix\n || (isKeywordOperator(prevToken) && prevToken.value === 'NOT')\n ) {\n return [];\n }\n\n const lastNonEmptyToken = _lastNonEmptyToken(tokens, currentTokenIdx);\n\n if (!lastNonEmptyToken || (lastNonEmptyToken && (lastNonEmptyToken.type === 'keyword.operator'))) {\n const matchesFieldName = _matchesFieldName(prefix);\n\n return operators.filter(matchesFieldName);\n }\n\n if (prevToken && (isTypeString(prevToken) || isTypeText(prevToken))) {\n const matchesFieldName = _matchesFieldName(prefix);\n\n return [...combiningOperators, ...operators].filter(matchesFieldName);\n }\n\n return [];\n };\n}\n\nexport default OperatorCompletion;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./StyleFixups.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./StyleFixups.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport capitalize from 'lodash/capitalize';\n\nimport type { PluginMetadata, Requirements } from 'views/logic/views/View';\nimport { Col, Row, Button } from 'components/bootstrap';\nimport fixup from 'views/pages/StyleFixups.css';\nimport View from 'views/logic/views/View';\nimport useHistory from 'routing/useHistory';\n\ntype Props = {\n view: View,\n missingRequirements: Requirements,\n};\n\nconst MissingRequirements = ({ view, missingRequirements }: Props) => {\n const history = useHistory();\n\n return (\n <Row className=\"content\">\n <Col md={6} mdOffset={3} className={fixup.bootstrapHeading}>\n <h1>{capitalize(view.type)}: <em>{view.title}</em></h1>\n <p>Unfortunately executing this {view.type?.toLowerCase()} is not possible. It uses the following capabilities\n which are not available:\n </p>\n\n <ul>\n {Object.entries(missingRequirements).map(([require, plugin]: [string, PluginMetadata]) => (\n <li key={require}>\n <strong>{require}</strong> - included in\n <a href={plugin.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\">{plugin.name}\n </a>\n </li>\n ))}\n </ul>\n </Col>\n\n <Col md={1} mdOffset={8}>\n <Button bsStyle=\"success\" onClick={() => history.goBack()}>Back</Button>\n </Col>\n </Row>\n );\n};\n\nMissingRequirements.propTypes = {\n view: PropTypes.instanceOf(View).isRequired,\n missingRequirements: PropTypes.objectOf(PropTypes.shape({\n name: PropTypes.string,\n url: PropTypes.string,\n })).isRequired,\n};\n\nexport default MissingRequirements;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport MissingRequirements from 'views/components/views/MissingRequirements';\nimport type { ViewHook, ViewHookArguments } from 'views/logic/hooks/ViewHook';\nimport type { Requirements } from 'views/logic/views/View';\n\nconst _missingRequirements = (requirements: Requirements, requirementsProvided: string | string[]): Requirements => Object.entries(requirements)\n .filter(([require]) => !requirementsProvided.includes(require))\n .reduce((prev, [key, value]) => ({ ...prev, [key]: value }), {});\n\nconst RequirementsProvided: ViewHook = async ({ view, executionState }: ViewHookArguments) => {\n const providedRequirements = PluginStore.exports('views.requires.provided');\n const missingRequirements = _missingRequirements(view.requires, providedRequirements);\n\n if (Object.keys(missingRequirements).length > 0) {\n const Component = () => <MissingRequirements view={view} missingRequirements={missingRequirements} />;\n\n throw Component;\n }\n\n return [view, executionState];\n};\n\nexport default RequirementsProvided;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport Spinner from 'components/common/Spinner';\nimport queryTitle from 'views/logic/queries/QueryTitle';\nimport useView from 'views/hooks/useView';\nimport useActiveQueryId from 'views/hooks/useActiveQueryId';\n\nconst PositioningWrapper = styled.div`\n padding-left: 20px;\n`;\n\nconst BigDisplayModeHeader = () => {\n const view = useView();\n const activeQuery = useActiveQueryId();\n\n if (!view || !activeQuery) {\n return <Spinner />;\n }\n\n const currentQueryTitle = queryTitle(view, activeQuery);\n\n return (\n <PositioningWrapper>\n <h1>{view.title}</h1>\n <h2>{currentQueryTitle}</h2>\n </PositioningWrapper>\n );\n};\n\nexport default BigDisplayModeHeader;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useEffect } from 'react';\n\nimport useAppDispatch from 'stores/useAppDispatch';\nimport { selectQuery } from 'views/logic/slices/viewSlice';\nimport useView from 'views/hooks/useView';\nimport useActiveQueryId from 'views/hooks/useActiveQueryId';\n\ntype Props = {\n interval: number,\n tabs?: Array<number> | undefined | null,\n};\n\nconst CycleQueryTab = ({ interval, tabs }: Props) => {\n const view = useView();\n const activeQuery = useActiveQueryId();\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n const cycleInterval = setInterval(() => {\n if (!view || !activeQuery) {\n return;\n }\n\n const queryTabs = tabs || view.search.queries.toIndexedSeq().map((_, v) => v).toJS();\n const currentQueryIndex = view.search.queries.toIndexedSeq().findIndex((q) => q.id === activeQuery);\n const currentTabIndex = queryTabs.indexOf(currentQueryIndex);\n const nextQueryIndex = queryTabs[(currentTabIndex + 1) % queryTabs.length];\n const nextQueryId = view.search.queries.toIndexedSeq().get(nextQueryIndex).id;\n\n if (nextQueryId !== activeQuery) {\n dispatch(selectQuery(nextQueryId));\n }\n }, interval * 1000);\n\n return () => clearInterval(cycleInterval);\n }, [interval, view, activeQuery, tabs, dispatch]);\n\n return null;\n};\n\nCycleQueryTab.defaultProps = {\n tabs: undefined,\n};\n\nexport default CycleQueryTab;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport InteractiveContext from 'views/components/contexts/InteractiveContext';\nimport BigDisplayModeHeader from 'views/components/dashboard/BigDisplayModeHeader';\nimport CycleQueryTab from 'views/components/dashboard/bigdisplay/CycleQueryTab';\nimport type { UntypedBigDisplayModeQuery } from 'views/components/dashboard/BigDisplayModeConfiguration';\nimport useAutoRefresh from 'views/hooks/useAutoRefresh';\nimport useQuery from 'routing/useQuery';\n\nimport ShowViewPage from './ShowViewPage';\n\ntype BigDisplayModeQuery = {\n tabs?: Array<number>,\n interval: number,\n refresh: number,\n};\n\nconst castQueryWithDefaults = ({ tabs, interval, refresh }: UntypedBigDisplayModeQuery): BigDisplayModeQuery => ({\n tabs: tabs !== undefined ? tabs.split(',').map((tab) => Number.parseInt(tab, 10)) : undefined,\n interval: interval !== undefined ? Math.max(Number.parseInt(interval, 10), 1) : 30,\n refresh: refresh !== undefined ? Math.max(Number.parseInt(refresh, 10), 1) : 10,\n});\n\nconst BodyPositioningWrapper = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n padding: 10px;\n`;\n\nconst AutoRefreshSearch = ({ refreshInterval }: { refreshInterval: number }) => {\n const { startAutoRefresh, stopAutoRefresh } = useAutoRefresh();\n\n useEffect(() => {\n startAutoRefresh(refreshInterval * 1000);\n\n return () => {\n stopAutoRefresh();\n };\n }, [refreshInterval, startAutoRefresh, stopAutoRefresh]);\n\n return null;\n};\n\nconst ShowDashboardInBigDisplayMode = () => {\n const query = useQuery();\n const configuration = castQueryWithDefaults(query);\n\n return (\n <InteractiveContext.Provider value={false}>\n <BodyPositioningWrapper>\n <ShowViewPage>\n <AutoRefreshSearch refreshInterval={configuration.refresh} />\n <CycleQueryTab interval={configuration.interval} tabs={configuration.tabs} />\n <BigDisplayModeHeader />\n </ShowViewPage>\n </BodyPositioningWrapper>\n </InteractiveContext.Provider>\n );\n};\n\nexport default ShowDashboardInBigDisplayMode;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Shapes } from 'views/logic/searchtypes/events/EventHandler';\nimport toPlotly from 'views/logic/aggregationbuilder/visualizations/Interpolation';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport AreaVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/AreaVisualizationConfig';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport useEvents from 'views/components/visualizations/useEvents';\nimport { keySeparator, humanSeparator } from 'views/Constants';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\n\nimport type { Generator } from '../ChartData';\nimport XYPlot from '../XYPlot';\n\nconst AreaVisualization = makeVisualization(({\n config,\n data,\n effectiveTimerange,\n height,\n}: VisualizationComponentProps) => {\n const visualizationConfig = (config.visualizationConfig || AreaVisualizationConfig.empty()) as AreaVisualizationConfig;\n const { interpolation = 'linear' } = visualizationConfig;\n const mapKeys = useMapKeys();\n const rowPivotFields = useMemo(() => config?.rowPivots?.flatMap((pivot) => pivot.fields) ?? [], [config?.rowPivots]);\n const _mapKeys = useCallback((labels: string[]) => labels\n .map((label) => label.split(keySeparator)\n .map((l, i) => mapKeys(l, rowPivotFields[i]))\n .join(humanSeparator),\n ), [mapKeys, rowPivotFields]);\n const chartGenerator: Generator = useCallback(({ type, name, labels, values, originalName }) => ({\n type,\n name,\n x: _mapKeys(labels),\n y: values,\n fill: 'tozeroy',\n line: { shape: toPlotly(interpolation) },\n originalName,\n }), [_mapKeys, interpolation]);\n\n const rows = useMemo(() => retrieveChartData(data), [data]);\n\n const _chartDataResult = useChartData(rows, {\n widgetConfig: config,\n chartType: 'scatter',\n generator: chartGenerator,\n });\n\n const { eventChartData, shapes } = useEvents(config, data.events);\n\n const chartDataResult = eventChartData ? [..._chartDataResult, eventChartData] : _chartDataResult;\n const layout: { shapes?: Shapes } = shapes ? { shapes } : {};\n\n return (\n <XYPlot config={config}\n axisType={visualizationConfig.axisType}\n plotLayout={layout}\n effectiveTimerange={effectiveTimerange}\n height={height}\n chartData={chartDataResult} />\n );\n}, 'area');\n\nAreaVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n height: PropTypes.number,\n};\n\nexport default AreaVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { WidgetConfigFormValues } from 'views/components/aggregationwizard';\n\nexport const areAtLeastNMetricsConfigured = (formValues: WidgetConfigFormValues, minimumMetrics: number) => formValues.metrics?.length >= minimumMetrics;\nexport const areAtLeastNGroupingsConfigured = (formValues: WidgetConfigFormValues, minimumGroupings: number) => formValues.groupBy?.groupings?.length >= minimumGroupings;\n\nexport const hasAtLeastOneMetric = (name: string) => (formValues: WidgetConfigFormValues) => (!areAtLeastNMetricsConfigured(formValues, 1)\n ? { type: `${name} requires at least one metric` }\n : {});\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport AreaVisualization from 'views/components/visualizations/area/AreaVisualization';\nimport AreaVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/AreaVisualizationConfig';\nimport { hasAtLeastOneMetric } from 'views/components/visualizations/validations';\nimport type { InterpolationType } from 'views/Constants';\nimport { DEFAULT_INTERPOLATION, interpolationTypes } from 'views/Constants';\nimport type { AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { axisTypes, DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\n\ntype AreaVisualizationConfigFormValues = {\n interpolation: InterpolationType;\n axisType: AxisType,\n};\n\nconst validate = hasAtLeastOneMetric('Area chart');\n\nconst areaChart: VisualizationType<typeof AreaVisualization.type, AreaVisualizationConfig, AreaVisualizationConfigFormValues> = {\n type: AreaVisualization.type,\n displayName: 'Area Chart',\n component: AreaVisualization,\n config: {\n createConfig: () => ({ interpolation: DEFAULT_INTERPOLATION, axisType: DEFAULT_AXIS_TYPE }),\n fromConfig: (config: AreaVisualizationConfig) => ({ interpolation: config?.interpolation, axisType: config?.axisType }),\n toConfig: (formValues: AreaVisualizationConfigFormValues) => AreaVisualizationConfig.create(formValues.interpolation, formValues.axisType),\n fields: [{\n name: 'interpolation',\n title: 'Interpolation',\n type: 'select',\n options: interpolationTypes,\n required: true,\n }, {\n name: 'axisType',\n title: 'Axis Type',\n type: 'select',\n options: axisTypes,\n required: true,\n }],\n },\n capabilities: ['event-annotations'],\n validate,\n};\n\nexport default areaChart;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport type { VisualizationType } from 'views/types';\nimport BarVisualization from 'views/components/visualizations/bar/BarVisualization';\nimport BarVisualizationConfig, { DEFAULT_BARMODE } from 'views/logic/aggregationbuilder/visualizations/BarVisualizationConfig';\nimport { hasAtLeastOneMetric } from 'views/components/visualizations/validations';\nimport type { AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { axisTypes, DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\n\ntype BarVisualizationConfigFormValues = {\n barmode: 'group' | 'stack' | 'relative' | 'overlay',\n axisType: AxisType,\n};\n\nconst validate = hasAtLeastOneMetric('Bar chart');\n\nconst barChart: VisualizationType<typeof BarVisualization.type, BarVisualizationConfig, BarVisualizationConfigFormValues> = {\n type: BarVisualization.type,\n displayName: 'Bar Chart',\n component: BarVisualization,\n config: {\n createConfig: () => ({ barmode: DEFAULT_BARMODE, axisType: DEFAULT_AXIS_TYPE }),\n fromConfig: (config: BarVisualizationConfig | undefined) => ({ barmode: config?.barmode ?? DEFAULT_BARMODE, axisType: config?.axisType ?? DEFAULT_AXIS_TYPE }),\n toConfig: (formValues: BarVisualizationConfigFormValues) => BarVisualizationConfig.create(formValues.barmode, formValues.axisType),\n fields: [{\n name: 'barmode',\n title: 'Mode',\n type: 'select',\n options: [['Group', 'group'], ['Stack', 'stack'], ['Relative', 'relative'], ['Overlay', 'overlay']],\n required: true,\n helpComponent: () => {\n const options = {\n group: {\n label: 'Group',\n help: 'Every series is represented by its own bar in the chart.',\n },\n stack: {\n label: 'Stack',\n help: 'All series are stacked upon each other resulting in one bar.',\n },\n relative: {\n label: 'Relative',\n help: 'All series are stacked upon each other resulting in one chart. But negative series are placed below zero.',\n },\n overlay: {\n label: 'Overlay',\n help: 'All series are placed as bars upon each other. To be able to see the bars the opacity is reduced to 75%.'\n + ' It is recommended to use this option with not more than 3 series.',\n },\n };\n\n return (\n <ul>\n {Object.values(options).map(({ label, help }) => (\n <li key={label}>\n <h4>{label}</h4>\n {help}\n </li>\n ))}\n </ul>\n );\n },\n }, {\n name: 'axisType',\n title: 'Axis Type',\n type: 'select',\n options: axisTypes,\n required: true,\n }],\n },\n capabilities: ['event-annotations'],\n validate,\n};\n\nexport default barChart;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport HeatmapVisualization from 'views/components/visualizations/heatmap/HeatmapVisualization';\nimport HeatmapVisualizationConfig, { COLORSCALES } from 'views/logic/aggregationbuilder/visualizations/HeatmapVisualizationConfig';\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport type { WidgetConfigFormValues } from 'views/components/aggregationwizard';\nimport {\n areAtLeastNGroupingsConfigured,\n areAtLeastNMetricsConfigured,\n} from 'views/components/visualizations/validations';\n\ntype HeatMapVisualizationConfigFormValues = {\n colorScale: typeof COLORSCALES[number],\n reverseScale: boolean,\n autoScale: boolean,\n zMin: number,\n zMax: number\n useSmallestAsDefault: boolean,\n defaultValue: number,\n};\n\nconst validate = (formValues: WidgetConfigFormValues) => {\n const errors = [];\n\n if (!areAtLeastNGroupingsConfigured(formValues, 2)) {\n errors.push('Heatmap requires at least two groupings.');\n } else {\n const groupingDirections = formValues.groupBy.groupings.map((grouping) => grouping.direction);\n\n if (!groupingDirections.includes('row') || !groupingDirections.includes('column')) {\n errors.push('Groupings must include row and column groupings.');\n }\n }\n\n if (!areAtLeastNMetricsConfigured(formValues, 1)) {\n errors.push('At least one metric must be configured.');\n }\n\n return errors.length > 0\n ? { type: errors.join(' ') }\n : {};\n};\n\nconst heatmap: VisualizationType<typeof HeatmapVisualization.type, HeatmapVisualizationConfig, HeatMapVisualizationConfigFormValues> = {\n type: HeatmapVisualization.type,\n displayName: 'Heatmap',\n component: HeatmapVisualization,\n config: {\n fromConfig: ({ autoScale, colorScale, reverseScale, defaultValue, useSmallestAsDefault, zMax, zMin }: HeatmapVisualizationConfig = HeatmapVisualizationConfig.empty()) => ({\n autoScale, colorScale, reverseScale, defaultValue, useSmallestAsDefault, zMax, zMin,\n }),\n toConfig: ({ autoScale = false, colorScale, reverseScale = false, useSmallestAsDefault, zMax, zMin, defaultValue }: HeatMapVisualizationConfigFormValues) => {\n const [finalZMin, finalZMax] = autoScale ? [undefined, undefined] : [zMin, zMax];\n\n return HeatmapVisualizationConfig\n .create(colorScale, reverseScale, autoScale, finalZMin, finalZMax, useSmallestAsDefault, defaultValue);\n },\n createConfig: () => ({ colorScale: 'Viridis', autoScale: true }),\n fields: [{\n name: 'colorScale',\n title: 'Color Scale',\n required: true,\n type: 'select',\n options: [...COLORSCALES].sort(defaultCompare),\n }, {\n name: 'reverseScale',\n type: 'boolean',\n title: 'Reverse Scale',\n }, {\n name: 'autoScale',\n type: 'boolean',\n title: 'Auto Scale',\n }, {\n name: 'zMin',\n type: 'numeric',\n title: 'Min',\n required: true,\n isShown: (values: HeatMapVisualizationConfigFormValues) => !values?.autoScale,\n }, {\n name: 'zMax',\n type: 'numeric',\n title: 'Max',\n required: true,\n isShown: (values: HeatMapVisualizationConfigFormValues) => !values?.autoScale,\n }, {\n name: 'useSmallestAsDefault',\n type: 'boolean',\n title: 'Use smallest as default',\n }, {\n name: 'defaultValue',\n type: 'numeric',\n title: 'Default Value',\n isShown: (values: HeatMapVisualizationConfigFormValues) => !values?.useSmallestAsDefault,\n required: false,\n }],\n },\n validate,\n};\n\nexport default heatmap;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport LineVisualization from 'views/components/visualizations/line/LineVisualization';\nimport LineVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/LineVisualizationConfig';\nimport { hasAtLeastOneMetric } from 'views/components/visualizations/validations';\nimport type { AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_AXIS_TYPE, axisTypes } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport type { InterpolationType } from 'views/Constants';\nimport { DEFAULT_INTERPOLATION, interpolationTypes } from 'views/Constants';\n\ntype LineVisualizationConfigFormValues = {\n interpolation: InterpolationType;\n axisType: AxisType;\n};\n\nconst validate = hasAtLeastOneMetric('Line chart');\n\nconst lineChart: VisualizationType<typeof LineVisualization.type, LineVisualizationConfig, LineVisualizationConfigFormValues> = {\n type: LineVisualization.type,\n displayName: 'Line Chart',\n component: LineVisualization,\n config: {\n createConfig: () => ({ interpolation: DEFAULT_INTERPOLATION, axisType: DEFAULT_AXIS_TYPE }),\n fromConfig: (config: LineVisualizationConfig | undefined) => ({\n interpolation: config?.interpolation ?? DEFAULT_INTERPOLATION,\n axisType: config?.axisType ?? DEFAULT_AXIS_TYPE,\n }),\n toConfig: (formValues: LineVisualizationConfigFormValues) => LineVisualizationConfig.create(formValues.interpolation, formValues.axisType),\n fields: [{\n name: 'interpolation',\n title: 'Interpolation',\n type: 'select',\n options: interpolationTypes,\n required: true,\n }, {\n name: 'axisType',\n title: 'Axis Type',\n type: 'select',\n options: axisTypes,\n required: true,\n }],\n },\n capabilities: ['event-annotations'],\n validate,\n};\n\nexport default lineChart;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport type { VisualizationType } from 'views/types';\nimport NumberVisualization from 'views/components/visualizations/number/NumberVisualization';\nimport NumberVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/NumberVisualizationConfig';\n\ntype NumberVisualizationConfigFormValues = {\n trend: boolean,\n trend_preference: 'LOWER' | 'NEUTRAL' | 'HIGHER',\n};\n\nconst singleNumber: VisualizationType<typeof NumberVisualization.type, NumberVisualizationConfig, NumberVisualizationConfigFormValues> = {\n type: NumberVisualization.type,\n displayName: 'Single Number',\n component: NumberVisualization,\n config: {\n fromConfig: (config: NumberVisualizationConfig | undefined) => ({ trend: config?.trend, trend_preference: config?.trendPreference }),\n toConfig: ({ trend = false, trend_preference }: NumberVisualizationConfigFormValues) => NumberVisualizationConfig.create(trend, trend_preference),\n fields: [{\n name: 'trend',\n title: 'Trend',\n type: 'boolean',\n description: 'Show trend information for this number.',\n helpComponent: () => (\n <>\n <p>\n If the user enables trending, a separate box is shown below the current value, indicating the direction of the change\n by an icon as well as the absolute and the relative differences between the current value and the previous one.\n </p>\n\n <p>\n The previous value is calculated by performing two searches in the background, which are completely identical besides\n the timerange. The timerange of the first search is identical to the one configured for this query/this widget,\n the second one is the same timerange, but with an offset of the timerange length shifted to the past.\n </p>\n </>\n ),\n }, {\n name: 'trend_preference',\n title: 'Trend Preference',\n type: 'select',\n options: [['Lower', 'LOWER'], ['Neutral', 'NEUTRAL'], ['Higher', 'HIGHER']],\n required: true,\n isShown: (formValues: NumberVisualizationConfigFormValues) => formValues?.trend === true,\n }],\n },\n};\n\nexport default singleNumber;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\n\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport PlotLegend from 'views/components/visualizations/PlotLegend';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport type { Generator } from 'views/components/visualizations/ChartData';\nimport type ColorMapper from 'views/components/visualizations/ColorMapper';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\nimport type { KeyMapper } from 'views/components/visualizations/TransformKeys';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport { keySeparator, humanSeparator } from 'views/Constants';\n\nimport type { ChartConfig } from '../GenericPlot';\nimport GenericPlot from '../GenericPlot';\n\nconst maxItemsPerRow = 4;\n\nconst _verticalDimensions = (idx: number, total: number) => {\n const rows = Math.ceil(total / maxItemsPerRow);\n const position = Math.floor(idx / maxItemsPerRow);\n\n const sliceSize = 1 / rows;\n const spacer = sliceSize * 0.1;\n\n return [(sliceSize * position) + spacer, (sliceSize * (position + 1)) - spacer];\n};\n\nconst _horizontalDimensions = (idx: number, total: number) => {\n const position = idx % maxItemsPerRow;\n\n const sliceSize = 1 / Math.min(total, maxItemsPerRow);\n const spacer = sliceSize * 0.1;\n\n return [(sliceSize * position) + spacer, (sliceSize * (position + 1)) - spacer];\n};\n\nconst _generateSeries = (mapKeys: KeyMapper): Generator => ({\n type,\n name,\n labels,\n values,\n idx,\n total,\n originalName,\n config,\n}) => {\n const rowPivots = config?.rowPivots?.flatMap((pivot) => pivot.fields) ?? [];\n\n return {\n type,\n name,\n hole: 0.4,\n labels: labels.map((label) => label.split(keySeparator).map((l, i) => mapKeys(l, rowPivots[i])).join(humanSeparator)),\n originalLabels: labels,\n values,\n domain: {\n x: _horizontalDimensions(idx, total),\n y: _verticalDimensions(idx, total),\n },\n originalName,\n };\n};\n\nconst setChartColor = (chart: ChartConfig, colorMap: ColorMapper) => {\n const colors = chart.originalLabels.map((label) => colorMap.get(label));\n\n return { marker: { colors } };\n};\n\nconst labelMapper = (data: Array<{ labels: Array<string>, originalLabels?: Array<string> }>) => [\n ...new Set(data.flatMap(({ labels, originalLabels }) => originalLabels ?? labels)),\n];\n\nconst rowPivotsToFields = (config: AggregationWidgetConfig) => config?.rowPivots?.flatMap((pivot) => pivot.fields);\n\nconst PieVisualization = makeVisualization(({ config, data }: VisualizationComponentProps) => {\n const rows = useMemo(() => retrieveChartData(data), [data]);\n const mapKeys = useMapKeys();\n const transformedData = useChartData(rows, { widgetConfig: config, chartType: 'pie', generator: _generateSeries(mapKeys) });\n\n return (\n <PlotLegend config={config} chartData={transformedData} labelMapper={labelMapper} labelFields={rowPivotsToFields} neverHide>\n <GenericPlot chartData={transformedData}\n setChartColor={setChartColor} />\n </PlotLegend>\n );\n}, 'pie');\n\nPieVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n};\n\nPieVisualization.displayName = 'PieVisualization';\n\nexport default PieVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport PieVisualization from 'views/components/visualizations/pie/PieVisualization';\nimport { hasAtLeastOneMetric } from 'views/components/visualizations/validations';\n\nconst validate = hasAtLeastOneMetric('Pie chart');\n\nconst pieChart: VisualizationType<typeof PieVisualization.type> = {\n type: PieVisualization.type,\n displayName: 'Pie Chart',\n component: PieVisualization,\n validate,\n};\n\nexport default pieChart;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport type { AxisType, XYVisualization } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport VisualizationConfig from 'views/logic/aggregationbuilder/visualizations/VisualizationConfig';\nimport { DEFAULT_AXIS_TYPE } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport LineVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/LineVisualizationConfig';\n\ntype InternalState = {\n axisType: AxisType,\n};\n\nexport type ScatterVisualizationConfigJson = {\n axis_type?: AxisType,\n};\n\nexport default class ScatterVisualizationConfig extends VisualizationConfig implements XYVisualization {\n private readonly _value: InternalState;\n\n constructor(axisType: InternalState['axisType'] = DEFAULT_AXIS_TYPE) {\n super();\n this._value = { axisType };\n }\n\n get axisType() {\n return this._value.axisType;\n }\n\n toBuilder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map(this._value));\n }\n\n static create(axisType: InternalState['axisType']) {\n return new ScatterVisualizationConfig(axisType);\n }\n\n static empty() {\n return new ScatterVisualizationConfig(DEFAULT_AXIS_TYPE);\n }\n\n toJSON() {\n const { axisType } = this._value;\n\n return {\n axis_type: axisType,\n };\n }\n\n static fromJSON(_type: string, value: ScatterVisualizationConfigJson) {\n return ScatterVisualizationConfig.create(\n value?.axis_type ?? DEFAULT_AXIS_TYPE,\n );\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n axisType(value: InternalState['axisType']) {\n return new Builder((this.value.set('axisType', value)));\n }\n\n build() {\n const { interpolation, axisType } = this.value.toObject();\n\n return new LineVisualizationConfig(interpolation, axisType);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Shapes } from 'views/logic/searchtypes/events/EventHandler';\nimport { AggregationType, AggregationResult } from 'views/components/aggregationbuilder/AggregationBuilderPropTypes';\nimport type { VisualizationComponentProps } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport { makeVisualization, retrieveChartData } from 'views/components/aggregationbuilder/AggregationBuilder';\nimport useChartData from 'views/components/visualizations/useChartData';\nimport useEvents from 'views/components/visualizations/useEvents';\nimport ScatterVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/ScatterVisualizationConfig';\nimport type { Generator } from 'views/components/visualizations/ChartData';\nimport useMapKeys from 'views/components/visualizations/useMapKeys';\nimport { keySeparator, humanSeparator } from 'views/Constants';\n\nimport XYPlot from '../XYPlot';\n\nconst seriesGenerator = (mapKeys: (labels: string[]) => string[]): Generator => ({\n type,\n name,\n labels,\n values,\n originalName,\n}) => ({\n type,\n name,\n x: mapKeys(labels),\n y: values,\n mode: 'markers',\n originalName,\n});\n\nconst ScatterVisualization = makeVisualization(({\n config,\n data,\n effectiveTimerange,\n height,\n}: VisualizationComponentProps) => {\n const visualizationConfig = (config.visualizationConfig ?? ScatterVisualizationConfig.empty()) as ScatterVisualizationConfig;\n const mapKeys = useMapKeys();\n const rowPivotFields = useMemo(() => config?.rowPivots?.flatMap((pivot) => pivot.fields) ?? [], [config?.rowPivots]);\n const _mapKeys = useCallback((labels: string[]) => labels\n .map((label) => label.split(keySeparator)\n .map((l, i) => mapKeys(l, rowPivotFields[i]))\n .join(humanSeparator),\n ), [mapKeys, rowPivotFields]);\n const rows = useMemo(() => retrieveChartData(data), [data]);\n const _chartDataResult = useChartData(rows, {\n widgetConfig: config,\n chartType: 'scatter',\n generator: seriesGenerator(_mapKeys),\n });\n const { eventChartData, shapes } = useEvents(config, data.events);\n\n const chartDataResult = eventChartData ? [..._chartDataResult, eventChartData] : _chartDataResult;\n const layout: { shapes?: Shapes } = shapes ? { shapes } : {};\n\n return (\n <XYPlot config={config}\n axisType={visualizationConfig.axisType}\n chartData={chartDataResult}\n plotLayout={layout}\n height={height}\n effectiveTimerange={effectiveTimerange} />\n );\n}, 'scatter');\n\nScatterVisualization.propTypes = {\n config: AggregationType.isRequired,\n data: AggregationResult.isRequired,\n height: PropTypes.number,\n};\n\nexport default ScatterVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport ScatterVisualization from 'views/components/visualizations/scatter/ScatterVisualization';\nimport { hasAtLeastOneMetric } from 'views/components/visualizations/validations';\nimport type { AxisType } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport { DEFAULT_AXIS_TYPE, axisTypes } from 'views/logic/aggregationbuilder/visualizations/XYVisualization';\nimport ScatterVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/ScatterVisualizationConfig';\n\ntype ScatterVisualizationConfigFormValues = {\n axisType: AxisType,\n};\n\nconst validate = hasAtLeastOneMetric('Scatter plot');\n\nconst scatterChart: VisualizationType<typeof ScatterVisualization.type, ScatterVisualizationConfig, ScatterVisualizationConfigFormValues> = {\n type: ScatterVisualization.type,\n displayName: 'Scatter Plot',\n component: ScatterVisualization,\n config: {\n createConfig: () => ({ axisType: DEFAULT_AXIS_TYPE }),\n fromConfig: (config) => ({ axisType: config?.axisType ?? DEFAULT_AXIS_TYPE }),\n toConfig: (formValues) => ScatterVisualizationConfig.create(formValues.axisType),\n fields: [{\n name: 'axisType',\n title: 'Axis Type',\n type: 'select',\n options: axisTypes,\n required: true,\n }],\n },\n capabilities: ['event-annotations'],\n validate,\n};\n\nexport default scatterChart;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport Viewport from 'views/logic/aggregationbuilder/visualizations/Viewport';\nimport WorldMapVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/WorldMapVisualizationConfig';\nimport WorldMapVisualization from 'views/components/visualizations/worldmap/WorldMapVisualization';\n\nexport type WorldMapVisualizationConfigFormValues = {\n zoom: number,\n centerX: number,\n centerY: number,\n};\n\nconst DEFAULT_FORM_VALUES = {\n zoom: 1,\n centerX: 0,\n centerY: 0,\n};\n\nconst worldMap: VisualizationType<typeof WorldMapVisualization.type> = {\n type: WorldMapVisualization.type,\n displayName: 'World Map',\n component: WorldMapVisualization,\n config: {\n createConfig: () => DEFAULT_FORM_VALUES,\n fromConfig: (config: WorldMapVisualizationConfig) => {\n if (!config) {\n return DEFAULT_FORM_VALUES;\n }\n\n return {\n zoom: config.viewport.zoom,\n centerX: config.viewport.center[0],\n centerY: config.viewport.center[1],\n };\n },\n toConfig: (formValues: WorldMapVisualizationConfigFormValues) => WorldMapVisualizationConfig.create(Viewport.create([formValues.centerX, formValues.centerY], formValues.zoom)),\n fields: [\n {\n name: 'zoom',\n title: 'Zoom',\n type: 'numeric',\n required: true,\n },\n {\n name: 'centerX',\n title: 'Latitude',\n type: 'numeric',\n required: true,\n step: 'any',\n },\n {\n name: 'centerY',\n title: 'Longitude',\n type: 'numeric',\n required: true,\n step: 'any',\n },\n ],\n },\n\n};\n\nexport default worldMap;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { VisualizationType } from 'views/types';\nimport { bindings as dataTable } from 'views/components/datatable';\n\nimport areaChart from './area/bindings';\nimport barChart from './bar/bindings';\nimport heatmap from './heatmap/bindings';\nimport lineChart from './line/bindings';\nimport singleNumber from './number/bindings';\nimport pieChart from './pie/bindings';\nimport scatterChart from './scatter/bindings';\nimport worldMap from './worldmap/bindings';\n\nconst visualizationBindings: Array<VisualizationType<any>> = [\n areaChart,\n barChart,\n dataTable,\n heatmap,\n lineChart,\n singleNumber,\n pieChart,\n scatterChart,\n worldMap,\n];\n\nexport default visualizationBindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionDefinition } from 'views/components/actions/ActionHandler';\n\nimport AppConfig from '../AppConfig';\n\nfunction filterValueActions(\n items: Array<ActionDefinition>,\n toExclude: Array<string>,\n): Array<ActionDefinition> {\n return items.filter((item) => !toExclude.includes(item.type));\n}\n\nexport function filterCloudValueActions(\n valueActions: Array<ActionDefinition>,\n toExclude: Array<string>,\n): Array<ActionDefinition> {\n if (!AppConfig.isCloud()) {\n return valueActions;\n }\n\n return filterValueActions(valueActions, toExclude);\n}\n\nexport default filterValueActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport copyToClipboard from 'util/copyToClipboard';\n\nconst CopyValueToClipboard = ({ value }: ActionHandlerArguments) => copyToClipboard(value);\n\nexport default CopyValueToClipboard;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport copyToClipboard from 'util/copyToClipboard';\n\nconst CopyFieldToClipboard = ({ field }: ActionHandlerArguments) => copyToClipboard(field);\n\nexport default CopyFieldToClipboard;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport numeral from 'numeral';\nimport isEmpty from 'lodash/isEmpty';\n\nimport useAppSelector from 'stores/useAppSelector';\nimport { selectCurrentQueryResults } from 'views/logic/slices/viewSelectors';\nimport { Timestamp } from 'components/common';\n\nconst ExecutionInfo = () => {\n const result = useAppSelector(selectCurrentQueryResults);\n\n if (isEmpty(result)) {\n return <i>No query executed yet.</i>;\n }\n\n const total = result?.searchTypes && Object.values(result?.searchTypes)?.find((e) => e.total)?.total;\n\n return (\n <i>\n Query executed in{' '}\n {numeral(result?.duration).format('0,0')}ms at <Timestamp dateTime={result?.timestamp} />\n {' '}Total results: {numeral(total).format('0,0')}\n </i>\n );\n};\n\nexport default ExecutionInfo;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport React, { useCallback, useMemo, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport { Icon } from 'components/common';\nimport { Row } from 'components/bootstrap';\nimport ViewPropertiesModal from 'views/components/dashboard/DashboardPropertiesModal';\nimport onSaveView from 'views/logic/views/OnSaveViewAction';\nimport View from 'views/logic/views/View';\nimport Routes from 'routing/Routes';\nimport useViewTitle from 'views/hooks/useViewTitle';\nimport useView from 'views/hooks/useView';\nimport useAppDispatch from 'stores/useAppDispatch';\nimport FavoriteIcon from 'views/components/FavoriteIcon';\nimport useAlertAndEventDefinitionData from 'hooks/useAlertAndEventDefinitionData';\nimport { updateView } from 'views/logic/slices/viewSlice';\nimport useIsNew from 'views/hooks/useIsNew';\nimport { createGRN } from 'logic/permissions/GRN';\nimport ExecutionInfo from 'views/components/views/ExecutionInfo';\n\nconst links = {\n [View.Type.Dashboard]: ({ id, title }) => [{\n link: Routes.DASHBOARDS,\n label: 'Dashboards',\n },\n {\n label: title || id,\n dataTestId: 'view-title',\n },\n ],\n [View.Type.Search]: ({ id, title }) => [{\n link: Routes.SEARCH,\n label: 'Search',\n },\n {\n label: title || id,\n dataTestId: 'view-title',\n },\n ],\n alert: ({ id }) => [\n {\n link: Routes.ALERTS.LIST,\n label: 'Alerts & Events',\n },\n {\n label: id,\n dataTestId: 'alert-id-title',\n },\n ],\n eventDefinition: ({ id, title }) => [\n {\n link: Routes.ALERTS.DEFINITIONS.LIST,\n label: 'Event definitions',\n },\n {\n link: Routes.ALERTS.DEFINITIONS.show(id),\n label: title || id,\n dataTestId: 'event-definition-title',\n },\n ],\n};\n\nconst Content = styled.div(({ theme }) => css`\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n margin-bottom: ${theme.spacings.xs};\n gap: 4px;\n`);\n\nconst ExecutionInfoContainer = styled.div`\n margin-left: auto;\n`;\n\nconst EditButton = styled.div(({ theme }) => css`\n color: ${theme.colors.gray[60]};\n font-size: ${theme.fonts.size.tiny};\n cursor: pointer;\n`);\n\nconst TitleWrapper = styled.span`\n display: flex;\n gap: 4px;\n align-items: center;\n\n & ${EditButton} {\n display: none;\n }\n\n &:hover ${EditButton} {\n display: block;\n }\n`;\n\nconst StyledIcon = styled(Icon)`\nfont-size: 0.5rem;\n`;\n\nconst CrumbLink = ({ label, link, dataTestId }: { label: string, link: string | undefined, dataTestId?: string}) => (\n link ? <Link target=\"_blank\" to={link} data-testid={dataTestId}>{label}</Link> : <span data-testid={dataTestId}>{label}</span>\n);\n\nCrumbLink.defaultProps = {\n dataTestId: undefined,\n};\n\nconst ViewHeader = () => {\n const view = useView();\n const isNew = useIsNew();\n const isSavedView = view?.id && view?.title && !isNew;\n const [showMetadataEdit, setShowMetadataEdit] = useState<boolean>(false);\n const toggleMetadataEdit = useCallback(() => setShowMetadataEdit((cur) => !cur), [setShowMetadataEdit]);\n\n const { alertId, definitionId, definitionTitle, isAlert, isEventDefinition, isEvent } = useAlertAndEventDefinitionData();\n const dispatch = useAppDispatch();\n const _onSaveView = useCallback(async (updatedView: View) => {\n await dispatch(onSaveView(updatedView));\n await dispatch(updateView(updatedView));\n }, [dispatch]);\n\n const typeText = view?.type?.toLocaleLowerCase();\n const title = useViewTitle();\n const onChangeFavorite = useCallback((newValue: boolean) => dispatch(updateView(view.toBuilder().favorite(newValue).build())), [dispatch, view]);\n\n const breadCrumbs = useMemo(() => {\n if (isAlert || isEvent) return links.alert({ id: alertId });\n if (isEventDefinition) return links.eventDefinition({ id: definitionId, title: definitionTitle });\n\n return links[view.type]({ id: view.id, title });\n }, [alertId, definitionId, definitionTitle, isAlert, isEvent, isEventDefinition, view, title]);\n\n const showExecutionInfo = view.type === 'SEARCH';\n\n return (\n <Row>\n <Content>\n {\n breadCrumbs.map(({ label, link, dataTestId }, index) => {\n const theLast = index === breadCrumbs.length - 1;\n\n return (\n <TitleWrapper key={`${label}_${link}`}>\n <CrumbLink link={link} label={label} dataTestId={dataTestId} />\n {!theLast && <StyledIcon name=\"chevron_right\" />}\n {isSavedView && theLast && (\n <>\n <FavoriteIcon isFavorite={view.favorite} grn={createGRN(view.type, view.id)} onChange={onChangeFavorite} />\n <EditButton onClick={toggleMetadataEdit}\n role=\"button\"\n title={`Edit ${typeText} ${view.title} metadata`}\n tabIndex={0}>\n <Icon name=\"edit_square\" />\n </EditButton>\n </>\n )}\n </TitleWrapper>\n );\n })\n }\n {showMetadataEdit && (\n <ViewPropertiesModal show\n view={view}\n title={`Editing saved ${typeText}`}\n onClose={toggleMetadataEdit}\n onSave={_onSaveView}\n submitButtonText={`Save ${typeText}`} />\n )}\n {showExecutionInfo && <ExecutionInfoContainer><ExecutionInfo /></ExecutionInfoContainer>}\n </Content>\n </Row>\n );\n};\n\nexport default ViewHeader;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { PluginExports } from 'graylog-web-plugin/plugin';\n\nimport { viewSliceReducer } from 'views/logic/slices/viewSlice';\nimport { searchExecutionSliceReducer } from 'views/logic/slices/searchExecutionSlice';\nimport { searchMetadataSliceReducer } from 'views/logic/slices/searchMetadataSlice';\nimport { undoRedoSliceReducer } from 'views/logic/slices/undoRedoSlice';\n\nconst viewsReducers: PluginExports['views.reducers'] = [{\n key: 'view',\n reducer: viewSliceReducer,\n}, {\n key: 'searchExecution',\n reducer: searchExecutionSliceReducer,\n}, {\n key: 'searchMetadata',\n reducer: searchMetadataSliceReducer,\n}, {\n key: 'undoRedo',\n reducer: undoRedoSliceReducer,\n},\n];\n\nexport default viewsReducers;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useCallback, useMemo } from 'react';\nimport mapValues from 'lodash/mapValues';\n\nimport type { Checked } from 'views/logic/valueactions/createEventDefinition/types';\nimport { ExpandableList, ExpandableListItem } from 'components/common';\n\nconst CHECKBOX_STATES = {\n Checked: 'Checked',\n Empty: 'Empty',\n Indeterminate: 'Indeterminate',\n};\n\ntype Props = {\n groupLabel: string,\n checked: Checked,\n labels: { [name: string]: JSX.Element }\n onChange: (Checked) => void\n}\n\nconst CheckBoxGroup = ({ groupLabel, checked, onChange, labels }: Props) => {\n const value = useMemo(() => {\n if (Object.values(checked).every((val) => val)) {\n return CHECKBOX_STATES.Checked;\n }\n\n if (Object.values(checked).some((val) => val)) {\n return CHECKBOX_STATES.Indeterminate;\n }\n\n return CHECKBOX_STATES.Empty;\n }, [checked]);\n\n const groupOnChange = useCallback(() => {\n switch (value) {\n case CHECKBOX_STATES.Checked:\n return onChange(mapValues(checked, () => false));\n case CHECKBOX_STATES.Empty:\n return onChange(mapValues(checked, () => true));\n case CHECKBOX_STATES.Indeterminate:\n return onChange(mapValues(checked, () => true));\n default:\n return onChange(mapValues(checked, () => false));\n }\n }, [checked, onChange, value]);\n\n const itemOnChange = useCallback((key: string | number, _?: React.SyntheticEvent) => {\n onChange({\n ...checked,\n [key]: !checked[key],\n });\n }, [checked, onChange]);\n\n return (\n <ExpandableListItem header={groupLabel}\n expanded\n padded={false}\n checked={value === CHECKBOX_STATES.Checked}\n indetermined={value === CHECKBOX_STATES.Indeterminate}\n onChange={groupOnChange}>\n <ExpandableList>\n {\n Object.entries(checked).map(([key, isChecked]) => (\n <ExpandableListItem expandable={false}\n header={labels[key]}\n padded={false}\n key={key}\n checked={isChecked}\n onChange={(e) => itemOnChange(key, e)} />\n ))\n }\n </ExpandableList>\n </ExpandableListItem>\n );\n};\n\nexport default CheckBoxGroup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport type { ItemKey, StrategyId } from 'views/logic/valueactions/createEventDefinition/types';\n\nexport const labels: { [key in ItemKey]: string} = {\n rowValuePath: 'Query from table row',\n columnValuePath: 'Query from table column',\n columnGroupBy: 'Group by column values',\n rowGroupBy: 'Group by row values',\n aggCondition: 'Condition',\n queryWithReplacedParams: 'Query from search',\n searchFilterQuery: 'Query from search filters',\n streams: 'Streams',\n searchWithinMs: 'Search within ms',\n lutParameters: 'Lookup-table parameters',\n searchFromValue: 'Query from value',\n};\n\nexport const aggregationGroup: Array<ItemKey> = ['columnGroupBy', 'rowGroupBy', 'aggCondition'];\nexport const searchGroup: Array<ItemKey> = ['rowValuePath', 'columnValuePath',\n 'queryWithReplacedParams', 'searchFilterQuery', 'searchFromValue'];\nexport const strategiesLabels: {[key in StrategyId]: { label: string, description: string}} = {\n EXACT: { label: 'Exactly this value', description: 'Strategy includes all search queries, filters, etc which relate to current search view' },\n ROW: { label: 'Any in row', description: 'Strategy includes row pivots' },\n COL: { label: 'Any in column', description: 'Strategy includes column pivots' },\n ALL: { label: 'Any in widget', description: 'Strategy includes all row and column pivot values, related to selected value' },\n CUSTOM: { label: 'Custom', description: 'You can select any search part' },\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Radio } from 'components/bootstrap';\nimport { strategiesLabels } from 'views/logic/valueactions/createEventDefinition/Constants';\nimport type { StrategyId } from 'views/logic/valueactions/createEventDefinition/types';\n\nconst Container = styled.div`\n display: flex;\n gap: 5px;\n align-items: baseline;\n`;\n\ntype Props = {\n strategy: StrategyId,\n onChange: (e: React.FormEvent<Radio>) => void,\n strategyAvailabilities: {[name in StrategyId]: boolean}\n}\n\nconst RadioSection = ({ strategy, onChange, strategyAvailabilities }: Props) => {\n const { description } = strategiesLabels[strategy];\n\n return (\n <>\n <b>Strategy by:</b>\n <Container>\n {\n Object.entries(strategiesLabels).map(([curStrategy, { label }]) => {\n if (!strategyAvailabilities[curStrategy]) return null;\n\n return (\n <Radio id={curStrategy}\n key={curStrategy}\n name=\"strategy\"\n value={curStrategy}\n checked={curStrategy === strategy}\n onChange={onChange}>\n {label}\n </Radio>\n );\n })\n }\n </Container>\n <p>\n <b>Description: </b><i>{description}</i>\n </p>\n </>\n );\n};\n\nexport default RadioSection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useMemo } from 'react';\n\nimport type { Checked, MappedData } from 'views/logic/valueactions/createEventDefinition/types';\nimport type { EventDefinitionLocalStorageConfig } from 'components/event-definitions/hooks/useEventDefinitionConfigFromLocalStorage';\nimport { concatQueryStrings } from 'views/logic/queries/QueryHelper';\n\nconst concatQuery = (queryParts: Array<string>) => concatQueryStrings(queryParts.filter((queryPart) => !!queryPart));\n\nconst useLocalStorageConfigData = ({ mappedData, checked }: { mappedData: MappedData, checked: Checked }) => useMemo<EventDefinitionLocalStorageConfig>(() => {\n const {\n queryWithReplacedParams,\n searchFilterQuery,\n searchFromValue,\n columnValuePath,\n rowValuePath,\n lutParameters,\n searchWithinMs,\n streams,\n aggValue,\n aggFunction,\n aggField,\n columnGroupBy,\n rowGroupBy,\n } = mappedData;\n\n const queries: Array<string> = Object.entries({\n queryWithReplacedParams, searchFilterQuery, searchFromValue, columnValuePath, rowValuePath,\n }).filter(([key]) => checked[key]).map(([_, search]) => search);\n\n const getAggregations = (): Partial<EventDefinitionLocalStorageConfig> => {\n const res: Partial<EventDefinitionLocalStorageConfig> = {};\n\n if (checked.aggCondition) {\n res.agg_field = aggField;\n res.agg_value = aggValue;\n res.agg_function = aggFunction;\n }\n\n if (checked.columnGroupBy) {\n res.group_by = columnGroupBy;\n }\n\n if (checked.rowGroupBy) {\n res.group_by = (rowGroupBy || []).concat(res.group_by || []);\n }\n\n return res;\n };\n\n const getRest = () => {\n const res: Partial<EventDefinitionLocalStorageConfig> = {};\n if (checked.lutParameters && lutParameters && lutParameters.length) res.loc_query_parameters = lutParameters;\n if (checked.searchWithinMs && searchWithinMs) res.search_within_ms = searchWithinMs;\n if (checked.streams && streams && streams.length) res.streams = streams;\n\n return res;\n };\n\n return ({\n type: 'aggregation-v1',\n query: concatQuery(queries),\n ...getAggregations(),\n ...getRest(),\n });\n}, [checked, mappedData]);\n\nexport default useLocalStorageConfigData;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useCallback, useEffect, useMemo, useReducer } from 'react';\nimport objectHas from 'lodash/has';\nimport mapValues from 'lodash/mapValues';\n\nimport type { Checked, ModalData, State } from 'views/logic/valueactions/createEventDefinition/types';\n\nexport const initState: State = {\n strategy: 'EXACT',\n checked: {},\n showDetails: false,\n};\n\nconst updateIfHas = (possibleKeys: Checked, updates:Checked): Checked => {\n const newState = { ...possibleKeys };\n\n Object.entries(updates).forEach(([key, value]) => {\n if (objectHas(possibleKeys, key)) {\n newState[key] = value;\n }\n });\n\n return newState;\n};\n\nconst reducer = (state: State, action: { type: string, payload?: Checked, possibleKeys: Checked}): State => {\n const { type, payload, possibleKeys } = action;\n\n switch (type) {\n case 'SET_ALL_STRATEGY':\n return ({\n strategy: 'ALL',\n showDetails: state.showDetails,\n checked: updateIfHas(possibleKeys, { searchFilterQuery: false, queryWithReplacedParams: false }),\n });\n case 'SET_EXACT_STRATEGY':\n return ({\n strategy: 'EXACT',\n showDetails: state.showDetails,\n checked: possibleKeys,\n });\n case 'SET_ROW_STRATEGY':\n return ({\n strategy: 'ROW',\n showDetails: state.showDetails,\n checked: updateIfHas(possibleKeys, { columnValuePath: false, columnGroupBy: false }),\n });\n case 'SET_COL_STRATEGY':\n return ({\n strategy: 'COL',\n showDetails: state.showDetails,\n checked: updateIfHas(possibleKeys, { rowValuePath: false, rowGroupBy: false }),\n });\n case 'SET_CUSTOM_STRATEGY':\n return ({\n strategy: 'CUSTOM',\n showDetails: true,\n checked: state.checked,\n });\n case 'UPDATE_CHECKED_ITEMS':\n return ({\n strategy: 'CUSTOM',\n showDetails: state.showDetails,\n checked: updateIfHas(state.checked, payload),\n });\n case 'TOGGLE_SHOW_DETAILS':\n return ({\n strategy: state.strategy,\n showDetails: !state.showDetails,\n checked: state.checked,\n });\n default:\n return state;\n }\n};\n\nconst useModalReducer = (modalData : ModalData): [State, ({ type, payload }: { type: string, payload?: Checked }) => void] => {\n const [state, dispatch] = useReducer(reducer, initState);\n const dispatchWithData = useCallback(({ type, payload }: { type: string, payload?: Checked }) => {\n const possibleKeys = mapValues(modalData, (v) => !!v);\n dispatch({ type, payload, possibleKeys });\n }, [modalData]);\n\n useEffect(() => {\n dispatchWithData({ type: 'SET_EXACT_STRATEGY' });\n }, [dispatchWithData]);\n\n return useMemo(() => [state, dispatchWithData], [state, dispatchWithData]);\n};\n\nexport default useModalReducer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useMemo, useCallback } from 'react';\nimport mapValues from 'lodash/mapValues';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\nimport isEmpty from 'lodash/isEmpty';\nimport styled from 'styled-components';\n\nimport Store from 'logic/local-storage/Store';\nimport { Modal, Button } from 'components/bootstrap';\nimport type {\n ItemKey,\n Checked,\n ModalData, MappedData, StrategyId,\n} from 'views/logic/valueactions/createEventDefinition/types';\nimport CheckBoxGroup from 'views/logic/valueactions/createEventDefinition/CheckBoxGroup';\nimport {\n aggregationGroup,\n searchGroup,\n labels,\n} from 'views/logic/valueactions/createEventDefinition/Constants';\nimport RadioSection from 'views/logic/valueactions/createEventDefinition/RadioSection';\nimport { ExpandableList, ExpandableListItem, Icon, LinkButton } from 'components/common';\nimport useLocalStorageConfigData from 'views/logic/valueactions/createEventDefinition/hooks/useLocalStorageConfigData';\nimport Routes from 'routing/Routes';\nimport useModalReducer from 'views/logic/valueactions/createEventDefinition/hooks/useModalReducer';\nimport generateId from 'logic/generateId';\n\nconst Container = styled.div`\n margin-top: 10px;\n`;\nconst CheckboxLabel = ({ itemKey, value }: { itemKey: ItemKey, value: string | number}) => (\n <span>\n <i>{`${labels[itemKey]}: `}</i>\n <b>{value}</b>\n </span>\n);\n\nconst CreateEventDefinitionModal = ({ modalData, mappedData, show, onClose }: { mappedData: MappedData, modalData: ModalData, show: boolean, onClose: () => void }) => {\n const [{ strategy, checked, showDetails }, dispatchWithData] = useModalReducer(modalData);\n const localStorageConfig = useLocalStorageConfigData({ mappedData, checked });\n const sessionId = useMemo(() => `cedfv-${generateId()}`, []);\n const eventDefinitionCreationUrl = `${Routes.ALERTS.DEFINITIONS.CREATE}?step=condition&session-id=${sessionId}`;\n\n const onCheckboxChange = useCallback((updates) => {\n dispatchWithData({ type: 'UPDATE_CHECKED_ITEMS', payload: updates });\n }, [dispatchWithData]);\n\n const onStrategyChange = useCallback((e) => {\n dispatchWithData({ type: `SET_${e.target.value}_STRATEGY` });\n }, [dispatchWithData]);\n const toggleDetailsOpen = useCallback(() => {\n dispatchWithData({ type: 'TOGGLE_SHOW_DETAILS' });\n }, [dispatchWithData]);\n\n const aggregationChecks = useMemo<Partial<Checked>>(() => pick(checked, aggregationGroup), [checked]);\n const searchChecks = useMemo<Partial<Checked>>(() => pick(checked, searchGroup), [checked]);\n const restChecks = useMemo<Partial<Checked>>(() => omit(checked, [...searchGroup, ...aggregationGroup]), [checked]);\n\n const aggregationLabels = useMemo<{ [name: string]: JSX.Element }>(() => mapValues(pick(modalData, aggregationGroup), (value, key: ItemKey) => <CheckboxLabel itemKey={key} value={value} />), [modalData]);\n const searchLabels = useMemo<{ [name: string]: JSX.Element }>(() => mapValues(pick(modalData, searchGroup), (value, key: ItemKey) => (\n <CheckboxLabel itemKey={key} value={value} />\n )), [modalData]);\n\n const restLabels = useMemo<{ [name: string]: JSX.Element }>(() => mapValues(omit(modalData, [...aggregationGroup, ...searchGroup]), (value, key: ItemKey) => (\n <CheckboxLabel itemKey={key} value={value} />\n )), [modalData]);\n\n const strategyAvailabilities = useMemo<{[name in StrategyId]: boolean}>(() => ({\n ALL: true,\n ROW: !!mappedData?.rowValuePath?.length,\n COL: !!mappedData?.columnValuePath?.length,\n CUSTOM: true,\n EXACT: true,\n }), [mappedData?.columnValuePath?.length, mappedData?.rowValuePath?.length]);\n\n const onContinueConfigurationClick = useCallback(() => {\n Store.set(sessionId, localStorageConfig);\n onClose();\n }, [sessionId, localStorageConfig, onClose]);\n\n return (\n <Modal onHide={onClose} show={show}>\n <Modal.Header closeButton>\n <Modal.Title>Configure new event definition</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <RadioSection strategyAvailabilities={strategyAvailabilities} strategy={strategy} onChange={onStrategyChange} />\n <Button bsStyle=\"link\" className=\"btn-text\" bsSize=\"xsmall\" onClick={toggleDetailsOpen}>\n <Icon name={`arrow_${showDetails ? 'drop_down' : 'right'}`} /> \n {showDetails ? 'Hide strategy details' : 'Show strategy details'}\n </Button>\n {\n showDetails && (\n <Container>\n <ExpandableList>\n {!isEmpty(aggregationChecks) && (\n <CheckBoxGroup onChange={onCheckboxChange}\n groupLabel=\"Aggregation\"\n checked={aggregationChecks}\n labels={aggregationLabels} />\n )}\n {!isEmpty(searchChecks) && (\n <CheckBoxGroup onChange={onCheckboxChange}\n groupLabel=\"Search query\"\n checked={searchChecks}\n labels={searchLabels} />\n )}\n {\n Object.entries(restChecks).map(([key, isChecked]) => (\n <ExpandableListItem key={key}\n checked={isChecked}\n onChange={() => onCheckboxChange({ [key]: !isChecked })}\n header={restLabels[key]}\n padded={false}\n expandable={false} />\n ))\n }\n </ExpandableList>\n </Container>\n )\n }\n </Modal.Body>\n <Modal.Footer>\n <LinkButton bsStyle=\"primary\" onClick={onContinueConfigurationClick} to={eventDefinitionCreationUrl} target=\"_blank\">Continue configuration</LinkButton>\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default CreateEventDefinitionModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport Immutable from 'immutable';\n\nimport type { FilterType } from 'views/logic/queries/Query';\nimport type { AggregationHandler } from 'views/logic/valueactions/createEventDefinition/types';\nimport { seriesToMetrics } from 'views/components/aggregationwizard/metric/MetricElement';\nimport type Widget from 'views/logic/widgets/Widget';\nimport type Parameter from 'views/logic/parameters/Parameter';\nimport type ValueParameter from 'views/logic/parameters/ValueParameter';\nimport type LookupTableParameter from 'views/logic/parameters/LookupTableParameter';\nimport type ParameterBinding from 'views/logic/parameters/ParameterBinding';\nimport type { FiltersType } from 'views/types';\nimport type AggregationWidgetConfig from 'views/logic/aggregationbuilder/AggregationWidgetConfig';\nimport type Pivot from 'views/logic/aggregationbuilder/Pivot';\nimport { concatQueryStrings, escape } from 'views/logic/queries/QueryHelper';\n\nexport const getStreams = (filter: FilterType): Array<string> => {\n if (!filter) return [];\n\n return filter.get('filters')\n .filter((curFilter) => curFilter.get('type') === 'stream')\n .map((curFilter) => curFilter.get('id'))\n .toArray();\n};\n\nexport const transformValuePathToQuery = (valuePath: Array<{ [name: string]: string}>) => concatQueryStrings(valuePath.filter((path) => {\n const key = Object.keys(path)[0];\n\n return key !== '_exists_';\n}).map((path) => {\n const [field, value] = Object.entries(path)[0];\n\n return `${field}:${escape(value)}`;\n}), { withBrackets: false });\n\nexport const getFlattenPivots = (pivots: Array<Pivot>): Set<string> => new Set(pivots.flatMap(({ fields }) => fields));\n\nexport const filtratePathsByPivot = ({ flattenPivots, valuePath }: {flattenPivots: Set<string>, valuePath: Array<{ [name: string]: string }>}): Array<{[name:string]: string}> => {\n if (!valuePath) return [];\n const map = valuePath.reduce((res, cur) => {\n const key = Object.keys(cur)[0];\n\n if (!res.has(key) && flattenPivots.has(key)) {\n res.set(key, cur);\n }\n\n return res;\n }, new Map([])) as Map<string, {[name:string]: string}>;\n\n return Array.from(map.values());\n};\n\nexport const aggregationMetricValueHandler: AggregationHandler = ({ widget, value, field, valuePath }) => {\n const curSeries = widget.config.series.find((series) => series.function === field);\n const { field: agg_field, function: agg_function } = seriesToMetrics([curSeries])[0];\n const { rowPivots, columnPivots } = widget.config as AggregationWidgetConfig;\n const flattenRowPivots = getFlattenPivots(rowPivots);\n const flattenColumnPivots = getFlattenPivots(columnPivots);\n const rowPaths = filtratePathsByPivot({ flattenPivots: flattenRowPivots, valuePath });\n const columnPaths = filtratePathsByPivot({ flattenPivots: flattenColumnPivots, valuePath });\n const rowValuePath = transformValuePathToQuery(rowPaths);\n const columnValuePath = transformValuePathToQuery(columnPaths);\n\n return ({\n aggField: agg_field,\n aggFunction: agg_function,\n aggValue: value,\n rowGroupBy: Array.from(flattenRowPivots),\n columnGroupBy: Array.from(flattenColumnPivots),\n rowValuePath,\n columnValuePath,\n });\n};\n\nexport const aggregationValueHandler: AggregationHandler = ({ widget, value, field, valuePath }) => {\n const { rowPivots } = widget.config;\n const flattenRowPivots = getFlattenPivots(rowPivots);\n const rowPaths = filtratePathsByPivot({ flattenPivots: flattenRowPivots, valuePath });\n const rowValuePath = transformValuePathToQuery(rowPaths);\n\n return ({\n searchFromValue: `${field}:${escape(value)}`,\n rowValuePath,\n });\n};\n\nexport const messagesValueHandler: AggregationHandler = ({ value, field }) => ({\n searchFromValue: `${field}:${escape(value)}`,\n});\n\nexport const logsValueHandler: AggregationHandler = ({ value, field }) => ({\n searchFromValue: `${field}:${escape(value)}`,\n});\n\nexport const getAggregationHandler = ({ widget, field }: { widget: Widget, field: string }): AggregationHandler => {\n if (widget.type === 'AGGREGATION') {\n const isMetrics = !!widget.config.series.find((series) => series.function === field);\n\n return isMetrics ? aggregationMetricValueHandler : aggregationValueHandler;\n }\n\n if (widget.type === 'logs') return logsValueHandler;\n if (widget.type === 'messages') return messagesValueHandler;\n\n throw new Error('This widget type has incorrect type or no handler');\n};\n\nexport const getLutParameters = (parameters: Immutable.Set<Parameter>) => parameters.reduce((res, cur) => {\n if (cur.type === 'lut-parameter-v1') {\n const paramJSON = cur.toJSON();\n res.push(paramJSON);\n }\n\n return res;\n}, []);\n\nexport const getRestParameterValues = (\n { parameters, parameterBindings }:\n { parameters: Immutable.Set<ValueParameter | LookupTableParameter>, parameterBindings?: Immutable.Map<string, ParameterBinding>},\n) => parameters.reduce((res, cur) => {\n if (cur.type !== 'lut-parameter-v1') {\n const paramJSON = cur.toJSON();\n const { name } = paramJSON;\n const bindingValue = parameterBindings?.get(name)?.value;\n res[name] = bindingValue ?? paramJSON?.default_value;\n }\n\n return res;\n}, {});\n\nexport const transformSearchFiltersToQuery = (filters: FiltersType = Immutable.List([])) => concatQueryStrings(filters\n .filter((filter) => (filter.queryString && !filter.disabled))\n .map((filter) => `${filter.negation ? 'NOT' : ''}(${filter.queryString})`).toArray(), { withBrackets: false });\n\nexport const replaceParametersInQueryString = ({ query, restParameterValues }: {\n query: string,\n restParameterValues: { [name: string]: string | number }\n}) => {\n let curQuery = query;\n\n Object.entries(restParameterValues).forEach(([parameterName, parameterValue]) => {\n curQuery = curQuery.replace(`$${parameterName}$`, `${parameterValue}`);\n });\n\n return curQuery;\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useMemo } from 'react';\nimport pickBy from 'lodash/pickBy';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport type Immutable from 'immutable';\n\nimport type { MappedData } from 'views/logic/valueactions/createEventDefinition/types';\nimport type { ActionContexts } from 'views/types';\nimport type { RelativeTimeRangeWithEnd } from 'views/logic/queries/Query';\nimport type { ActionComponentProps } from 'views/components/actions/ActionHandler';\nimport {\n getAggregationHandler,\n getLutParameters,\n getRestParameterValues,\n transformSearchFiltersToQuery,\n replaceParametersInQueryString,\n getStreams,\n} from 'views/logic/valueactions/createEventDefinition/hooks/hookHelpers';\nimport type ValueParameter from 'views/logic/parameters/ValueParameter';\nimport type LookupTableParameter from 'views/logic/parameters/LookupTableParameter';\n\ntype HookProps = Pick<ActionComponentProps, 'field' | 'queryId' | 'value'> & { contexts: ActionContexts }\nconst useMappedData = ({ contexts, field, queryId, value }: HookProps) => useMemo<MappedData>(() => {\n const aggregationHandler = getAggregationHandler({ widget: contexts.widget, field: field });\n const curQuery = contexts.view.search.queries.find((query) => query.id === queryId);\n const { parameters, parameterBindings } = contexts;\n const searchWithinMs = curQuery.timerange.type === 'relative' ? (curQuery.timerange as RelativeTimeRangeWithEnd).from * 1000 : undefined;\n const lutParameters = getLutParameters(parameters);\n const restParameterValues = getRestParameterValues({ parameters: parameters as Immutable.Set<ValueParameter | LookupTableParameter>, parameterBindings });\n const searchFilterQuery = transformSearchFiltersToQuery(curQuery.filters);\n const queryWithReplacedParams = replaceParametersInQueryString({ query: curQuery.query.query_string, restParameterValues });\n const streams = getStreams(curQuery.filter);\n const { ...aggregationVales } = aggregationHandler({ valuePath: contexts.valuePath, widget: contexts.widget, value: value, field: field });\n const data: MappedData = {\n searchWithinMs,\n lutParameters,\n searchFilterQuery,\n queryWithReplacedParams,\n streams,\n ...aggregationVales,\n };\n\n return pickBy(data, (v) => {\n if (isArray(v)) {\n return !!v.length;\n }\n\n if (isNumber(v)) {\n return true;\n }\n\n return !!v?.trim();\n });\n}, [contexts, field, queryId, value]);\n\nexport default useMappedData;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { useMemo } from 'react';\n\nimport type { ModalData } from 'views/logic/valueactions/createEventDefinition/types';\nimport type { Stream } from 'views/stores/StreamsStore';\nimport { StreamsStore } from 'views/stores/StreamsStore';\nimport { useStore } from 'stores/connect';\n\nconst useModalData = (mappedData) => {\n const normalizedStreams: {[name: string]: Stream} = useStore(StreamsStore, ({ streams }) => streams.reduce((res, stream) => {\n res[stream.id] = { id: stream.id, title: stream.title };\n\n return res;\n }, {}));\n\n return useMemo<ModalData>(() => {\n const {\n aggField = '',\n aggFunction = '',\n aggValue = '',\n columnGroupBy,\n rowGroupBy,\n streams,\n lutParameters,\n ...rest\n } = mappedData;\n const res: ModalData = { ...rest };\n\n if (aggFunction) {\n res.aggCondition = `${aggFunction}(${aggField}): ${aggValue}`;\n }\n\n if (streams?.length) {\n res.streams = streams.map((id) => normalizedStreams[id].title).join(', ');\n }\n\n Object.entries({ columnGroupBy, rowGroupBy }).forEach(([key, entireValue]) => {\n if (entireValue) {\n res[key] = entireValue.join(', ');\n }\n });\n\n if (lutParameters) {\n res.lutParameters = lutParameters.map((param) => param.name).join(', ');\n }\n\n return res;\n }, [mappedData, normalizedStreams]);\n};\n\nexport default useModalData;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useCallback, useContext, useState } from 'react';\n\nimport type { ActionComponentProps } from 'views/components/actions/ActionHandler';\nimport CreateEventDefinitionModal from 'views/logic/valueactions/createEventDefinition/CreateEventDefinitionModal';\nimport useMappedData from 'views/logic/valueactions/createEventDefinition/hooks/useMappedData';\nimport useModalData from 'views/logic/valueactions/createEventDefinition/hooks/useModalData';\nimport { ActionContext } from 'views/logic/ActionContext';\n\nconst CreateEventDefinition = ({\n value,\n field,\n queryId,\n onClose,\n}: ActionComponentProps) => {\n const contexts = useContext(ActionContext);\n\n const mappedData = useMappedData({ contexts, field, queryId, value });\n const modalData = useModalData(mappedData);\n const [show, setShow] = useState(true);\n const handleOnClose = useCallback(() => {\n setShow(false);\n onClose();\n }, [onClose]);\n\n return show ? <CreateEventDefinitionModal modalData={modalData} mappedData={mappedData} onClose={handleOnClose} show={show} /> : null;\n};\n\nexport default CreateEventDefinition;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useMemo } from 'react';\n\nimport { useStore } from 'stores/connect';\nimport type { Stream } from 'views/stores/StreamsStore';\nimport { StreamsStore } from 'views/stores/StreamsStore';\nimport useCurrentStream from 'views/logic/fieldactions/ChangeFieldType/hooks/useCurrentStream';\n\nconst streamsMapper = ({ streams }) => streams.map((stream: Stream) => ({ indexSet: stream.index_set_id, id: stream.id }));\n\nconst useInitialSelection = () => {\n const currentStreams = useCurrentStream();\n const availableStreams: Array<{ indexSet: string, id: string }> = useStore(StreamsStore, streamsMapper);\n\n return useMemo(() => {\n const currentStreamSet = new Set(currentStreams);\n const filterFn = currentStreamSet.size > 0 ? ({ id }) => currentStreamSet.has(id) : () => true;\n\n return availableStreams.filter(filterFn).map(({ indexSet }) => indexSet);\n }, [availableStreams, currentStreams]);\n};\n\nexport default useInitialSelection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useCallback, useState } from 'react';\n\nimport type { ActionComponentProps, ActionHandlerArguments } from 'views/components/actions/ActionHandler';\nimport ChangeFieldTypeModal from 'views/logic/fieldactions/ChangeFieldType/ChangeFieldTypeModal';\nimport { isFunction } from 'views/logic/aggregationbuilder/Series';\nimport type User from 'logic/users/User';\nimport AppConfig from 'util/AppConfig';\nimport isReservedField from 'views/logic/IsReservedField';\nimport useInitialSelection from 'views/logic/fieldactions/ChangeFieldType/hooks/useInitialSelection';\nimport { isPermitted } from 'util/PermissionsMixin';\n\nconst ChangeFieldType = ({\n field,\n onClose,\n}: ActionComponentProps) => {\n const [show, setShow] = useState(true);\n const handleOnClose = useCallback(() => {\n setShow(false);\n onClose();\n }, [onClose]);\n\n const initialSelection = useInitialSelection();\n\n return show ? (\n <ChangeFieldTypeModal initialSelectedIndexSets={initialSelection}\n onClose={handleOnClose}\n initialData={{ fieldName: field }}\n show />\n ) : null;\n};\n\nconst hasMappingPermission = (currentUser: User) => isPermitted(currentUser?.permissions, 'typemappings:edit');\n\nexport const isChangeFieldTypeEnabled = ({ field, type, contexts }: ActionHandlerArguments) => {\n const { currentUser } = contexts;\n\n return (!isFunction(field) && !type.isDecorated() && !isReservedField(field) && hasMappingPermission(currentUser));\n};\n\nexport const isChangeFieldTypeHidden = () => !AppConfig.isFeatureEnabled('field_types_management');\n\nexport const ChangeFieldTypeHelp = ({ contexts }: ActionHandlerArguments) => {\n const { currentUser } = contexts;\n hasMappingPermission(currentUser);\n\n if (hasMappingPermission(currentUser)) return null;\n\n return ({ title: 'No permission', description: 'You don\\'t have permission to do that action' });\n};\n\nexport default ChangeFieldType;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport type { DirectionJson } from 'views/logic/aggregationbuilder/Direction';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\nexport type EventsWidgetSortConfigJSON = {\n field: string,\n direction: DirectionJson,\n};\n\ntype InternalState = {\n field: string,\n direction: Direction,\n};\n\nexport default class EventsWidgetSortConfig {\n private readonly _value: InternalState;\n\n constructor(field: string, direction: Direction) {\n this._value = { field, direction };\n }\n\n get field() {\n return this._value.field;\n }\n\n get direction() {\n return this._value.direction;\n }\n\n toJSON(): EventsWidgetSortConfigJSON {\n const { field, direction } = this._value;\n\n return {\n field,\n direction: direction as unknown as DirectionJson,\n };\n }\n\n static fromJSON(value: EventsWidgetSortConfigJSON) {\n const { field, direction } = value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder()\n .field(field)\n .direction(Direction.fromJSON(direction))\n .build();\n }\n\n toBuilder(): Builder {\n const { field, direction } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ field, direction }));\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\nexport class Builder {\n private readonly value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n field(value: string) {\n return new Builder(this.value.set('field', value));\n }\n\n direction(value: Direction) {\n return new Builder(this.value.set('direction', value));\n }\n\n build() {\n const { field, direction } = this.value.toObject();\n\n return new EventsWidgetSortConfig(field, direction);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as Immutable from 'immutable';\n\nimport WidgetConfig from 'views/logic/widgets/WidgetConfig';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\nimport type { EventsWidgetSortConfigJSON } from './EventsWidgetSortConfig';\nimport EventsWidgetSortConfig from './EventsWidgetSortConfig';\n\nexport const LIST_MODE = 'List';\nexport const NUMBER_MODE = 'Number';\n\nexport type VisualizationType = typeof LIST_MODE | typeof NUMBER_MODE;\n\nexport type Filter = {\n field: string,\n value: Array<string>,\n}\n\ntype InternalState = {\n fields: Immutable.OrderedSet<string>,\n filters: Immutable.OrderedSet<Filter>,\n sort: EventsWidgetSortConfig,\n mode: VisualizationType,\n};\n\nexport type EventsWidgetConfigJSON = {\n fields: Array<string>,\n filters: Array<Filter>,\n sort: EventsWidgetSortConfigJSON,\n mode: VisualizationType,\n};\n\nexport default class EventsWidgetConfig extends WidgetConfig {\n _value: InternalState;\n\n static defaultFields: InternalState['fields'] = Immutable.OrderedSet(['message', 'event_definition_id', 'alert', 'timestamp']);\n\n static defaultSort: InternalState['sort'] = new EventsWidgetSortConfig('timestamp', Direction.Descending);\n\n static defaultMode: InternalState['mode'] = LIST_MODE;\n\n constructor(\n fields: InternalState['fields'],\n filters: InternalState['filters'],\n sort: InternalState['sort'],\n mode: InternalState['mode'],\n ) {\n super();\n\n this._value = { fields, filters, sort, mode };\n }\n\n get fields() {\n return this._value.fields;\n }\n\n get filters() {\n return this._value.filters;\n }\n\n get sort() {\n return this._value.sort;\n }\n\n get mode() {\n return this._value.mode;\n }\n\n toBuilder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map((this._value)));\n }\n\n toJSON() {\n const {\n fields = Immutable.OrderedSet(),\n filters = Immutable.OrderedSet(),\n sort,\n mode,\n } = this._value;\n\n return {\n fields: fields.toArray(),\n filters: filters.toArray(),\n sort: sort.toJSON(),\n mode,\n };\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder()\n .fields(Immutable.OrderedSet())\n .filters(Immutable.OrderedSet());\n }\n\n static fromJSON(value: EventsWidgetConfigJSON) {\n const { fields, filters, sort, mode } = value;\n\n return new EventsWidgetConfig(Immutable.OrderedSet(fields), Immutable.OrderedSet(filters), EventsWidgetSortConfig.fromJSON(sort), mode);\n }\n\n static createDefault() {\n return new EventsWidgetConfig(\n EventsWidgetConfig.defaultFields,\n Immutable.OrderedSet(),\n EventsWidgetConfig.defaultSort,\n EventsWidgetConfig.defaultMode,\n );\n }\n}\n\ntype BuilderState = Immutable.Map<string, any>;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n fields(value: InternalState['fields']) {\n return new Builder(this.value.set('fields', value));\n }\n\n filters(value: InternalState['filters']) {\n return new Builder(this.value.set('filters', value));\n }\n\n sort(value: InternalState['sort']) {\n return new Builder(this.value.set('sort', value));\n }\n\n mode(value: InternalState['mode']) {\n return new Builder(this.value.set('mode', value));\n }\n\n build() {\n const { fields, filters, sort, mode } = this.value.toObject();\n\n return new EventsWidgetConfig(fields, filters, sort, mode);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { Map } from 'immutable';\n\nimport Widget from 'views/logic/widgets/Widget';\nimport type { WidgetState } from 'views/logic/widgets/Widget';\nimport isDeepEqual from 'stores/isDeepEqual';\nimport isEqualForSearch from 'views/stores/isEqualForSearch';\nimport type { TimeRange, QueryString } from 'views/logic/queries/Query';\nimport type { FiltersType } from 'views/types';\n\nimport EventsWidgetConfig from './EventsWidgetConfig';\n\nexport default class EventsWidget extends Widget {\n constructor(id: string, config: EventsWidgetConfig, filter?: string, timerange?: TimeRange, query?: QueryString, streams?: Array<string>, filters?: FiltersType) {\n super(\n id,\n EventsWidget.type,\n config,\n filter,\n timerange,\n query,\n streams,\n filters,\n );\n }\n\n static type = 'events';\n\n static defaultTitle = 'Untitled Events Overview';\n\n static fromJSON(value: WidgetState) {\n const { id, config, filter, timerange, query, streams, filters } = value;\n\n return new EventsWidget(id, EventsWidgetConfig.fromJSON(config), filter, timerange, query, streams, filters);\n }\n\n equals(other: any) {\n if (other instanceof EventsWidget) {\n return ['id', 'config', 'filter', 'timerange', 'query', 'streams', 'filters'].every((key) => isDeepEqual(this._value[key], other[key]));\n }\n\n return false;\n }\n\n equalsForSearch(other: any) {\n if (other instanceof EventsWidget) {\n return ['id', 'config', 'filter', 'timerange', 'query', 'streams', 'filters'].every((key) => isEqualForSearch(this._value[key], other[key]));\n }\n\n return false;\n }\n\n toBuilder() {\n const { id, config, filter, timerange, query, streams, filters } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Map({ id, config, filter, timerange, query, streams, filters }));\n }\n\n static builder() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\nclass Builder extends Widget.Builder {\n build(): EventsWidget {\n const { id, config, filter, timerange, query, streams, filters } = this.value.toObject();\n\n return new EventsWidget(id, config, filter, timerange, query, streams, filters);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type { AppDispatch } from 'stores/useAppDispatch';\nimport { addWidget } from 'views/logic/slices/widgetActions';\n\nimport EventsWidgetConfig from './EventsWidgetConfig';\nimport EventsWidget from './EventsWidget';\n\nexport const CreateEventsWidget = () => EventsWidget.builder()\n .newId()\n .config(EventsWidgetConfig.createDefault())\n .build();\n\nexport default () => async (dispatch: AppDispatch) => dispatch(addWidget(CreateEventsWidget()));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\ntype EventsListSortConfigJson = {\n field: string,\n direction: 'ASC' | 'DESC',\n};\n\ntype InternalState = {\n field: string,\n direction: Direction,\n};\n\nexport default class EventsListSortConfig {\n _value: InternalState;\n\n constructor(field: string, direction: Direction) {\n this._value = { field, direction };\n }\n\n toJSON(): EventsListSortConfigJson {\n const { field, direction } = this._value;\n\n return {\n field,\n direction: direction === Direction.Ascending ? 'ASC' : 'DESC',\n };\n }\n\n static fromJSON({ field, direction }: EventsListSortConfigJson) {\n const directionJSON = Direction.fromJSON(direction === 'ASC' ? 'Ascending' : 'Descending');\n\n return new EventsListSortConfig(field, directionJSON);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport EventsWidget from 'views/logic/widgets/events/EventsWidget';\n\nimport EventsListSortConfig from './EventsListSortConfig';\n\nconst EventsListConfigGenerator = ({ config: { filters, sort } }: EventsWidget) => [{\n sort: new EventsListSortConfig(sort.field, sort.direction),\n type: EventsWidget.type,\n attributes: filters,\n page: 1,\n per_page: 10,\n}];\n\nexport default EventsListConfigGenerator;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { Field } from 'formik';\n\nimport { Input } from 'components/bootstrap';\n\nconst DirectionOptions = styled.div`\n display: flex;\n \n .radio {\n padding-top: 6px;\n }\n \n div:first-child {\n margin-right: 5px;\n }\n`;\n\ntype Props = {\n name: string,\n onChange: (type: string) => void,\n options: Array<{ label: string, value: string }>,\n}\n\nconst WidgetModeConfiguration = ({ name, onChange: onChangeProp, options }: Props) => (\n <Field name={name}>\n {({ field: { value, onChange, onBlur }, meta: { error } }) => {\n const handleChange = (event: React.ChangeEvent<Input>) => {\n onChangeProp(event.target.value);\n onChange(event);\n };\n\n return (\n <Input id=\"widget-type-configuration\"\n label=\"Type\"\n error={error}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <DirectionOptions>\n {options.map(({ value: optionValue, label }) => (\n <Input checked={value === optionValue}\n key={optionValue}\n formGroupClassName=\"\"\n id={name}\n label={label}\n onBlur={onBlur}\n onChange={handleChange}\n type=\"radio\"\n value={optionValue} />\n ))}\n </DirectionOptions>\n </Input>\n );\n }}\n </Field>\n);\n\nexport default WidgetModeConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\n\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport Select from 'components/common/Select';\nimport type { SelectRef } from 'components/common/Select/Select';\n\ntype Props = {\n ariaLabel?: string,\n autoFocus?: boolean,\n allowCreate?: boolean,\n className?: string,\n clearable?: boolean,\n columns: Array<string>,\n excludedColumns?: Array<string>,\n id: string,\n menuPortalTarget?: HTMLElement,\n name: string,\n onChange: (columnName: string) => void,\n onMenuClose?: () => void,\n openMenuOnFocus?: boolean,\n persistSelection?: boolean,\n placeholder?: string,\n selectRef?: SelectRef,\n value: string | undefined,\n columnTitle: (column: string) => string,\n}\n\nconst ColumnSelect = ({\n ariaLabel,\n autoFocus,\n allowCreate,\n className,\n clearable,\n columns,\n columnTitle,\n id,\n excludedColumns,\n menuPortalTarget,\n name,\n onChange,\n onMenuClose,\n openMenuOnFocus,\n persistSelection,\n placeholder,\n selectRef,\n value,\n}: Props) => {\n const columnOptions = useMemo(() => columns\n .filter((column) => !excludedColumns.includes(column))\n .map((column) => ({\n value: column,\n label: columnTitle(column),\n })).sort(({ label: label1 }, { label: label2 }) => defaultCompare(label1, label2)),\n [columnTitle, columns, excludedColumns]);\n\n return (\n <Select options={columnOptions}\n inputId={`select-${id}`}\n forwardedRef={selectRef}\n allowCreate={allowCreate}\n className={className}\n onMenuClose={onMenuClose}\n openMenuOnFocus={openMenuOnFocus}\n persistSelection={persistSelection}\n clearable={clearable}\n placeholder={placeholder}\n name={name}\n size=\"small\"\n value={value}\n aria-label={ariaLabel}\n autoFocus={autoFocus}\n menuPortalTarget={menuPortalTarget}\n onChange={onChange} />\n );\n};\n\nColumnSelect.defaultProps = {\n allowCreate: false,\n ariaLabel: undefined,\n autoFocus: undefined,\n className: undefined,\n clearable: false,\n excludedColumns: [],\n onMenuClose: undefined,\n openMenuOnFocus: undefined,\n persistSelection: undefined,\n placeholder: undefined,\n selectRef: undefined,\n menuPortalTarget: undefined,\n};\n\nexport default ColumnSelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { OverlayTrigger, Icon } from 'components/common';\n\nconst UnknownFieldTitleContainer = styled.div`\n display: flex;\n gap: 5px;\n`;\n\nconst ErrorIcon = styled(Icon)(({ theme }) => css`\n color: ${theme.colors.variant.warning};\n`);\n\nconst UnknownAttributeTitle = () => (\n <UnknownFieldTitleContainer>\n Unknown\n <OverlayTrigger overlay=\"This attribute is currently not available, because it requires a valid license.\"\n placement=\"bottom\">\n <ErrorIcon name=\"error\" />\n </OverlayTrigger>\n </UnknownFieldTitleContainer>\n);\n\nexport default UnknownAttributeTitle;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useCallback, forwardRef, useMemo } from 'react';\n\nimport { IconButton, SortableList, Icon } from 'components/common';\nimport type { DragHandleProps, DraggableProps } from 'components/common/SortableList';\nimport UnknownAttributeTitle from 'views/components/widgets/events/UnknownAttributeTitle';\n\nconst ListItemContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 3px;\n`;\n\nconst ColumnTitle = styled.div`\n flex: 1;\n`;\n\nconst DragHandle = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 25px;\n margin-right: 5px;\n`;\n\ntype ListItemProps = {\n item: { id: string, title: string },\n draggableProps: DraggableProps,\n dragHandleProps: DragHandleProps,\n className: string,\n onChange: (columnName: string) => void,\n onRemove: () => void,\n selectedColumns: Array<string>,\n testIdPrefix: string,\n}\n\nconst ListItem = forwardRef<HTMLDivElement, ListItemProps>(({\n className,\n dragHandleProps,\n draggableProps,\n item,\n onRemove,\n testIdPrefix,\n}: ListItemProps, ref) => (\n <ListItemContainer className={className} ref={ref} {...(draggableProps ?? {})}>\n <DragHandle {...dragHandleProps} data-testid={`${testIdPrefix}-drag-handle`}>\n <Icon name=\"drag_indicator\" />\n </DragHandle>\n <ColumnTitle>{item.title === 'unknown' ? <UnknownAttributeTitle /> : item.title}</ColumnTitle>\n <div>\n <IconButton name=\"delete\" title={`Remove ${item.title} column`} onClick={onRemove} />\n </div>\n </ListItemContainer>\n));\n\ntype Props = {\n onChange: (newSelectedColumns: Array<string>) => void,\n displayOverlayInPortal?: boolean,\n selectedColumns: Array<string>,\n columnTitle: (column: string) => string,\n testPrefix?: string,\n};\n\nconst SelectedColumnsList = ({ testPrefix, selectedColumns, onChange, displayOverlayInPortal, columnTitle }: Props) => {\n const columnsForList = useMemo(() => selectedColumns?.map((column) => ({ id: column, title: columnTitle(column) })), [columnTitle, selectedColumns]);\n\n const onChangeColumn = useCallback((columnIndex: number, newFieldName: string) => {\n const newColumns = [...selectedColumns];\n newColumns[columnIndex] = newFieldName;\n\n onChange(newColumns);\n }, [onChange, selectedColumns]);\n\n const onRemoveColumn = useCallback((removedFieldName: string) => {\n const newColumns = selectedColumns.filter((columnName) => columnName !== removedFieldName);\n onChange(newColumns);\n }, [onChange, selectedColumns]);\n\n const SortableListItem = useCallback(({ item, index, dragHandleProps, draggableProps, className, ref }) => (\n <ListItem onChange={(newFieldName) => onChangeColumn(index, newFieldName)}\n onRemove={() => onRemoveColumn(item.id)}\n selectedColumns={selectedColumns ?? []}\n item={item}\n testIdPrefix={`${testPrefix}-column-${index}`}\n dragHandleProps={dragHandleProps}\n draggableProps={draggableProps}\n className={className}\n ref={ref} />\n ), [selectedColumns, testPrefix, onChangeColumn, onRemoveColumn]);\n\n const onSortChange = useCallback((newColumnsList: Array<{ id: string, title: string }>) => {\n onChange(newColumnsList.map(({ id }) => id));\n }, [onChange]);\n\n if (!selectedColumns?.length) {\n return null;\n }\n\n return (\n <SortableList items={columnsForList}\n onMoveItem={onSortChange}\n customListItemRender={SortableListItem}\n displayOverlayInPortal={displayOverlayInPortal} />\n );\n};\n\nSelectedColumnsList.defaultProps = {\n displayOverlayInPortal: false,\n testPrefix: undefined,\n};\n\nexport default SelectedColumnsList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport * as React from 'react';\nimport { Field } from 'formik';\nimport * as Immutable from 'immutable';\n\nimport ColumnSelect from './ColumnSelect';\nimport SelectedColumnsList from './SelectedColumnsList';\n\ntype Props = {\n columnTitle: (column: string) => string,\n columns: Array<string>,\n createSelectPlaceholder?: string,\n displaySortableListOverlayInPortal?: boolean,\n menuPortalTarget?: HTMLElement,\n name: string,\n testPrefix?: string,\n}\n\nconst ColumnsConfiguration = ({\n columnTitle,\n columns,\n createSelectPlaceholder,\n displaySortableListOverlayInPortal,\n menuPortalTarget,\n name,\n testPrefix,\n}: Props) => (\n <Field name={name}>\n {({ field: { value, onChange } }) => (\n <>\n <SelectedColumnsList testPrefix={testPrefix}\n selectedColumns={value.toArray()}\n columnTitle={columnTitle}\n displayOverlayInPortal={displaySortableListOverlayInPortal}\n onChange={(newColumns) => onChange({ target: { value: Immutable.OrderedSet(newColumns), name } })} />\n <ColumnSelect id=\"column-create-select\"\n columnTitle={columnTitle}\n columns={columns}\n onChange={(newColumn) => onChange({ target: { value: Immutable.OrderedSet([...value.toArray(), newColumn]), name } })}\n clearable={false}\n persistSelection={false}\n name=\"column-create-select\"\n value={undefined}\n menuPortalTarget={menuPortalTarget}\n excludedColumns={value}\n placeholder={createSelectPlaceholder}\n ariaLabel={createSelectPlaceholder} />\n </>\n )}\n </Field>\n);\n\nColumnsConfiguration.defaultProps = {\n createSelectPlaceholder: 'Add a column',\n displaySortableListOverlayInPortal: false,\n menuPortalTarget: undefined,\n testPrefix: '',\n};\n\nexport default ColumnsConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useMemo } from 'react';\nimport { Field, useFormikContext } from 'formik';\n\nimport { Select } from 'components/common';\nimport { Input } from 'components/bootstrap';\nimport { defaultCompare } from 'logic/DefaultCompare';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\ntype Props = {\n columnTitle?: (column: string) => string,\n columns: Array<string>,\n directionTitle?: (direction: string) => string,\n directions: Array<string>,\n name: string,\n}\n\nconst SortConfiguration = ({ name: attributeName, directions, columns, columnTitle, directionTitle }: Props) => {\n const { values } = useFormikContext();\n const columnOptions = useMemo(() => (\n columns\n .map((col) => ({ value: col, label: columnTitle(col) }))\n .sort(({ label: label1 }, { label: label2 }) => defaultCompare(label1, label2))\n ), [columnTitle, columns]);\n\n const directionOptions = useMemo(() => (\n directions\n .map((col) => ({ value: col, label: directionTitle(col) }))\n .sort(({ label: label1 }, { label: label2 }) => defaultCompare(label1, label2))\n ), [directionTitle, directions]);\n\n const isUnknownColumn = values[attributeName].field && !columns.includes(values[attributeName].field);\n\n return (\n <Container>\n <Field name={`${attributeName}.field`}>\n {({ field: { value, onChange, name } }) => (\n <Input id=\"sort-configuration-column\"\n label=\"Column\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select id=\"sort-configuration-column-select\"\n placeholder=\"Select a column\"\n options={columnOptions}\n matchProp=\"label\"\n menuPortalTarget={document.body}\n clearable={false}\n size=\"small\"\n onChange={(newColumn) => onChange({ target: { value: newColumn, name } })}\n value={isUnknownColumn ? 'Unknown' : value} />\n </Input>\n )}\n </Field>\n\n <Field name={`${attributeName}.direction`}>\n {({ field: { value, onChange, name } }) => (\n <Input id=\"sort-configuration-direction\"\n label=\"Direction\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select id=\"sort-configuration-direction-select\"\n placeholder=\"Select a direction\"\n options={directionOptions}\n menuPortalTarget={document.body}\n matchProp=\"label\"\n clearable={false}\n size=\"small\"\n onChange={(newDirection) => onChange({ target: { value: newDirection, name } })}\n value={value} />\n </Input>\n )}\n </Field>\n </Container>\n );\n};\n\nSortConfiguration.defaultProps = {\n columnTitle: (column: string) => column,\n directionTitle: (direction: string) => direction,\n};\n\nexport default SortConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useMemo, useState, useRef } from 'react';\nimport styled from 'styled-components';\n\nimport { Select } from 'components/common';\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport { Menu } from 'components/bootstrap';\nimport type { FilterComponents, Filter } from 'views/components/widgets/overview-configuration/filters/types';\n\nconst SELECT_TITLE = 'Configure a new filter';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst HiddenButton = styled.button`\n visibility: hidden;\n height: 0;\n padding: 0;\n border: 0;\n`;\n\ntype Props = {\n filterComponents: FilterComponents,\n columnTitle: (column: string) => string,\n onCreate: (column: string, value: string) => void,\n selectedFilters: Array<Filter>,\n}\n\nconst FilterSelect = ({ filterComponents, columnTitle, onCreate, selectedFilters }: Props) => {\n const container = useRef(null);\n const [open, setOpen] = useState(false);\n const [selectedColumn, setSelectedColumn] = useState<string>(null);\n const [createValue, setCreateValue] = React.useState<string>();\n const filterComponent = selectedColumn ? filterComponents.find(({ attribute }) => attribute === selectedColumn) : undefined;\n const selectedValues = selectedColumn ? selectedFilters.find(({ field }) => field === selectedColumn)?.value : [];\n\n const filterOptions = useMemo(() => (\n filterComponents\n .map((filtComp) => ({\n value: filtComp.attribute,\n label: columnTitle(filtComp.attribute),\n disabled: !filtComp.allowMultipleValues && !!selectedFilters.find(({ field }) => field === filtComp.attribute),\n }))\n .sort(({ label: label1 }, { label: label2 }) => defaultCompare(label1, label2))\n ), [columnTitle, filterComponents, selectedFilters]);\n\n const onSelectColumn = (selectedCol: string) => {\n setSelectedColumn(selectedCol);\n setOpen(true);\n };\n\n const onSubmit = (column: string, val: string | undefined) => {\n if (val) {\n onCreate(column, val);\n }\n\n setOpen(false);\n setSelectedColumn(null);\n setCreateValue(null);\n };\n\n const onClose = () => {\n onSubmit(selectedColumn, createValue);\n };\n\n const onChange = (newValue: unknown, shouldSubmit = true) => {\n const normalizedValue = filterComponent?.valueForConfig?.(newValue) ?? newValue as string;\n\n if (shouldSubmit) {\n onSubmit(selectedColumn, normalizedValue);\n } else {\n setCreateValue(normalizedValue);\n }\n };\n\n return (\n <Container ref={container}>\n <Select id=\"filter-select\"\n placeholder={SELECT_TITLE}\n aria-label={SELECT_TITLE}\n options={filterOptions}\n matchProp=\"label\"\n menuPortalTarget={document.body}\n clearable={false}\n size=\"small\"\n onChange={(selectedCol) => onSelectColumn(selectedCol)}\n value={selectedColumn} />\n <Menu position=\"bottom-start\" withinPortal onClose={onClose} opened={open} width={container?.current?.offsetWidth}>\n <Menu.Target>\n <HiddenButton type=\"button\" />\n </Menu.Target>\n <Menu.Dropdown>\n {filterComponent?.configuration(selectedValues ?? [], filterComponent?.valueFromConfig?.(createValue) ?? createValue, onChange)}\n </Menu.Dropdown>\n </Menu>\n </Container>\n );\n};\n\nexport default FilterSelect;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useState } from 'react';\n\nimport { Menu } from 'components/bootstrap';\nimport { IconButton } from 'components/common';\n\nimport type { FilterComponent } from './types';\n\ntype Props = {\n column: string,\n columnTitle: (column: string) => string,\n containerWidth: number\n filterComponent: FilterComponent\n onDelete: () => void,\n onEdit: (value: string) => void,\n selectedValues: Array<string>,\n value: string\n}\n\nconst FilterEditButton = ({ filterComponent, column, value, columnTitle, onEdit, selectedValues, containerWidth, onDelete }: Props) => {\n const [open, setOpen] = useState(false);\n const [editValue, setEditValue] = React.useState<string>(value);\n\n const submitChanges = (newValue: string) => {\n if (newValue) {\n onEdit(newValue);\n } else {\n onDelete();\n }\n\n setEditValue(null);\n setOpen(false);\n };\n\n const onChange = (newValue: unknown, shouldSubmit = true) => {\n const normalizedValue = filterComponent?.valueForConfig?.(newValue) ?? newValue as string;\n\n setEditValue(normalizedValue);\n\n if (shouldSubmit) {\n submitChanges(normalizedValue);\n }\n };\n\n const onClose = () => {\n setOpen(false);\n\n if (filterComponent.submitChangesOnClose) {\n submitChanges(editValue);\n }\n };\n\n if (!filterComponent) {\n return null;\n }\n\n return (\n <Menu position=\"bottom-end\"\n withinPortal\n opened={open}\n width={containerWidth}\n offset={{ alignmentAxis: -25 }}\n onClose={onClose}>\n <Menu.Target>\n <IconButton name=\"edit\"\n title={`Edit ${columnTitle(column)} filter`}\n onClick={() => setOpen(true)} />\n </Menu.Target>\n <Menu.Dropdown>\n {filterComponent.configuration(selectedValues, filterComponent.valueFromConfig?.(editValue) ?? editValue, onChange)}\n </Menu.Dropdown>\n </Menu>\n );\n};\n\nexport default FilterEditButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type * as Immutable from 'immutable';\nimport styled from 'styled-components';\nimport { useRef } from 'react';\n\nimport { Input } from 'components/bootstrap';\nimport { IconButton } from 'components/common';\nimport type { FilterComponents, Filter } from 'views/components/widgets/overview-configuration/filters/types';\nimport FilterEditButton from 'views/components/widgets/overview-configuration/filters/FilterEditButton';\nimport UnknownAttributeTitle from 'views/components/widgets/events/UnknownAttributeTitle';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst FilterContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst FilterValue = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst ValueTitle = styled.div`\n padding-top: 5px;\n`;\n\nconst ValueActions = styled.div`\n margin-top: 2px;\n`;\n\ntype Props = {\n columnTitle: (column: string) => string,\n filterComponents: FilterComponents,\n onDelete: (filterIndex: number, value: string) => void,\n onEdit: (columnIndex: number, valueIndex: number, value: string) => void,\n selectedFilters: Immutable.OrderedSet<Filter>,\n}\n\nconst SelectedFiltersList = ({ selectedFilters, columnTitle, filterComponents, onDelete, onEdit }: Props) => {\n const container = useRef(null);\n\n return (\n <Container ref={container}>\n {selectedFilters.toArray().map(({ field: column, value: values }, filterIndex) => {\n const _columnTitle = columnTitle(column);\n const filterComponent = filterComponents.find(({ attribute }) => attribute === column);\n\n return (\n <FilterContainer key={column}>\n <Input id={`${column}-filter-configuration`}\n label={_columnTitle === 'unknown' ? <UnknownAttributeTitle /> : _columnTitle}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n {values.map((value, valueIndex) => {\n const _onEdit = (newValue: string) => {\n onEdit(filterIndex, valueIndex, newValue);\n };\n\n return (\n <FilterValue key={value}>\n <ValueTitle>\n {filterComponent ? filterComponent.renderValue?.(value) ?? value : ''}\n </ValueTitle>\n <ValueActions>\n {filterComponent && (\n <FilterEditButton filterComponent={filterComponent}\n onEdit={_onEdit}\n onDelete={() => onDelete(filterIndex, value)}\n selectedValues={values}\n columnTitle={columnTitle}\n containerWidth={container.current?.offsetWidth}\n column={column}\n value={value} />\n )}\n <IconButton name=\"delete\"\n onClick={() => onDelete(filterIndex, value)}\n title={`Delete ${_columnTitle} filter`} />\n </ValueActions>\n </FilterValue>\n );\n })}\n </Input>\n </FilterContainer>\n );\n })}\n </Container>\n );\n};\n\nexport default SelectedFiltersList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type * as Immutable from 'immutable';\nimport { Field } from 'formik';\n\nimport FilterSelect\n from 'views/components/widgets/overview-configuration/filters/FilterSelect';\n\nimport SelectedFiltersList from './SelectedFiltersList';\nimport type { FilterComponents, Filter } from './types';\n\ntype Props = {\n columnTitle: (column: string) => string,\n filterComponents: FilterComponents,\n name: string\n}\n\nconst FiltersConfiguration = ({ filterComponents, columnTitle, name }: Props) => (\n <div>\n <Field name={name}>\n {({ field: { value: values, onChange } }) => {\n const changeField = (filtersValue: Immutable.OrderedSet<Filter>) => onChange({ target: { value: filtersValue, name } });\n\n const onCreate = (column: string, value: string) => {\n const filterList = values.toList();\n const filterIndex = values.toList().findIndex(({ field }) => field === column);\n\n if (filterIndex >= 0) {\n const existingColumnFilter = filterList.get(filterIndex);\n const newColumnFilter = { ...existingColumnFilter };\n\n if (!newColumnFilter.value.includes(value)) {\n newColumnFilter.value = [...newColumnFilter.value, value];\n\n return changeField(filterList.set(filterIndex, newColumnFilter).toOrderedSet());\n }\n }\n\n return changeField(filterList.push({ field: column, value: [value] }).toOrderedSet());\n };\n\n const onDelete = (filterIndex: number, value: string) => {\n const filterList = values.toList();\n const filter = filterList.get(filterIndex);\n\n if (filter.value.length === 1) {\n return changeField(filterList.delete(filterIndex).toOrderedSet());\n }\n\n const newFilter = { ...filter, value: filter.value.filter((val) => val !== value) };\n\n return changeField(filterList.set(filterIndex, newFilter).toOrderedSet());\n };\n\n const onEdit = (filterIndex: number, valueIndex: number, newValue: string) => {\n const filterList = values.toList();\n const filter = { ...filterList.get(filterIndex) };\n const newFilterValue = [...filter.value];\n\n newFilterValue[valueIndex] = newValue;\n filter.value = newFilterValue;\n\n changeField(filterList.set(filterIndex, filter).toOrderedSet());\n };\n\n return (\n <>\n <SelectedFiltersList selectedFilters={values}\n columnTitle={columnTitle}\n onDelete={onDelete}\n onEdit={onEdit}\n filterComponents={filterComponents} />\n <FilterSelect selectedFilters={values}\n filterComponents={filterComponents}\n columnTitle={columnTitle}\n onCreate={onCreate} />\n </>\n );\n }}\n </Field>\n </div>\n);\n\nexport default FiltersConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport usePluginEntities from 'hooks/usePluginEntities';\n\nconst useEventAttributes = () => {\n const eventAttributes = usePluginEntities('views.components.widgets.events.attributes');\n\n return eventAttributes.filter(({ useCondition }) => (\n // eslint-disable-next-line react-hooks/rules-of-hooks\n typeof useCondition === 'function' ? useCondition() : true),\n );\n};\n\nexport default useEventAttributes;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\nexport const PAGINATION = {\n INITIAL_PAGE: 1,\n PER_PAGE: 10,\n};\nexport const SORT_DIRECTION_OPTIONS = [Direction.Ascending.direction, Direction.Descending.direction];\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useMemo, useEffect } from 'react';\nimport styled from 'styled-components';\nimport Immutable from 'immutable';\nimport { Formik, Form, useFormikContext } from 'formik';\n\nimport type { EditWidgetComponentProps } from 'views/types';\nimport type { DirectionJson } from 'views/logic/aggregationbuilder/Direction';\nimport Direction from 'views/logic/aggregationbuilder/Direction';\nimport { Row, Col } from 'components/bootstrap';\nimport DescriptionBox from 'views/components/aggregationbuilder/DescriptionBox';\nimport SaveOrCancelButtons from 'views/components/widgets/SaveOrCancelButtons';\nimport StickyBottomActions from 'views/components/widgets/StickyBottomActions';\nimport type { VisualizationType, Filter } from 'views/logic/widgets/events/EventsWidgetConfig';\nimport EventsWidgetConfig, {\n LIST_MODE,\n NUMBER_MODE,\n} from 'views/logic/widgets/events/EventsWidgetConfig';\nimport WidgetModeConfiguration from 'views/components/widgets/overview-configuration/WidgetModeConfiguration';\nimport ColumnsConfiguration from 'views/components/widgets/overview-configuration/ColumnsConfiguration';\nimport SortConfiguration from 'views/components/widgets/overview-configuration/SortConfiguration';\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport FiltersConfiguration from 'views/components/widgets/overview-configuration/filters/FiltersConfiguration';\nimport useEventAttributes from 'views/components/widgets/events/hooks/useEventAttributes';\n\nimport { SORT_DIRECTION_OPTIONS } from './Constants';\n\nconst WIDGET_MODE_OPTIONS = [\n { label: 'List', value: LIST_MODE },\n { label: 'Count', value: NUMBER_MODE },\n];\n\ntype FormValues = {\n mode: VisualizationType,\n fields: Immutable.OrderedSet<string>,\n filters: Immutable.OrderedSet<Filter>,\n sort: { field: string, direction: DirectionJson },\n}\n\nconst StyledForm = styled(Form)`\n display: flex;\n width: 100%;\n`;\n\nconst Container = styled.div`\n height: 100%;\n \n .form-group {\n margin: 0 0 3px;\n \n &:last-child {\n margin: 0;\n }\n \n .control-label {\n padding-left: 0;\n padding-right: 0;\n padding-top: 5px;\n font-weight: normal;\n text-align: left;\n hyphens: auto;\n }\n }\n\n div[class^=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n`;\n\nconst FullHeightRow = styled(Row)`\n height: 100%;\n padding-bottom: 15px;\n flex: 1;\n`;\n\nconst FullHeightCol = styled(Col)`\n height: 100%;\n`;\n\nconst SubmitOnChange = () => {\n const { values, submitForm } = useFormikContext();\n\n useEffect(\n () => {\n submitForm();\n }, [values, submitForm],\n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n};\n\nconst EventsWidgetEdit = ({ children, onCancel, config, onChange, onSubmit }: EditWidgetComponentProps<EventsWidgetConfig>) => {\n const filterComponents = usePluginEntities('views.components.widgets.events.filterComponents');\n const eventAttributes = useEventAttributes();\n\n const initialValues = useMemo(() => ({\n mode: config.mode,\n filters: config.filters,\n fields: config.fields,\n sort: { field: config.sort.field, direction: config.sort.direction.direction },\n }), [config.fields, config.filters, config.sort.direction, config.sort.field, config.mode]);\n\n const _onSubmit = ({ sort, mode, filters, fields }: FormValues) => {\n const newSort = config.sort.toBuilder()\n .field(sort.field)\n .direction(Direction.fromJSON(sort.direction))\n .build();\n\n onChange(\n config.toBuilder()\n .mode(mode)\n .filters(filters)\n .fields(fields)\n .sort(newSort)\n .build(),\n );\n };\n\n const columns = eventAttributes.map(({ attribute }) => attribute);\n const sortableColumns = eventAttributes.filter(({ sortable }) => sortable).map(({ attribute }) => attribute);\n const columnTitle = useCallback((column: string) => eventAttributes.find(({ attribute }) => column === attribute)?.title ?? 'unknown', [eventAttributes]);\n\n return (\n <Formik<FormValues> initialValues={initialValues}\n enableReinitialize\n validateOnChange\n validateOnMount\n onSubmit={_onSubmit}>\n {({ setValues, values }) => {\n const onChangeType = (newMode: VisualizationType) => {\n if (newMode !== values.mode) {\n const defaultSort = {\n field: EventsWidgetConfig.defaultSort.field,\n direction: EventsWidgetConfig.defaultSort.direction.direction,\n };\n\n if (newMode === NUMBER_MODE) {\n setValues({ ...values, fields: Immutable.OrderedSet(), sort: defaultSort });\n }\n\n if (newMode === LIST_MODE) {\n setValues({\n ...values,\n fields: EventsWidgetConfig.defaultFields,\n sort: defaultSort,\n });\n }\n }\n };\n\n return (\n <StyledForm className=\"form form-horizontal\">\n <SubmitOnChange />\n <FullHeightRow>\n <FullHeightCol md={4} lg={3}>\n <Container>\n <StickyBottomActions actions={<SaveOrCancelButtons onCancel={onCancel} onSubmit={onSubmit} />}\n alignActionsAtBottom>\n <DescriptionBox description=\"Visualization\">\n <WidgetModeConfiguration name=\"mode\" onChange={onChangeType} options={WIDGET_MODE_OPTIONS} />\n </DescriptionBox>\n {values.mode === LIST_MODE && (\n <DescriptionBox description=\"Columns\">\n <ColumnsConfiguration columns={columns}\n createSelectPlaceholder=\"Select a new column\"\n name=\"fields\"\n menuPortalTarget={document.body}\n columnTitle={columnTitle} />\n </DescriptionBox>\n )}\n <DescriptionBox description=\"Filter\">\n <FiltersConfiguration columnTitle={columnTitle}\n name=\"filters\"\n filterComponents={filterComponents} />\n </DescriptionBox>\n\n {values.mode === LIST_MODE && (\n <DescriptionBox description=\"Sorting\">\n <SortConfiguration columns={sortableColumns}\n name=\"sort\"\n columnTitle={columnTitle}\n directions={SORT_DIRECTION_OPTIONS} />\n </DescriptionBox>\n )}\n </StickyBottomActions>\n </Container>\n </FullHeightCol>\n <FullHeightCol md={8} lg={9}>\n {children}\n </FullHeightCol>\n </FullHeightRow>\n </StyledForm>\n );\n }}\n </Formik>\n );\n};\n\nexport default EventsWidgetEdit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport UserNotification from 'preflight/util/UserNotification';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\n\nexport const fetchEventDefinitionDetails = async (eventDefinitionId: string): Promise<EventDefinition> => (\n fetch('GET', qualifyUrl(`/events/definitions/${eventDefinitionId}`))\n);\n\nconst useEventDefinition = (eventDefId: string, enabled = true) => {\n const { data, isFetching } = useQuery({\n queryKey: ['get-event-definition-details', eventDefId],\n queryFn: () => fetchEventDefinitionDetails(eventDefId),\n onError: (errorThrown) => {\n UserNotification.error(`Loading archives failed with status: ${errorThrown}`);\n },\n retry: 0,\n keepPreviousData: true,\n enabled: !!eventDefId && enabled,\n });\n\n return { data, isFetching };\n};\n\nexport default useEventDefinition;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { Spinner } from 'components/common';\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport useEventDefinition from 'components/events/events/hooks/useEventDefinition';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport useCurrentUser from 'hooks/useCurrentUser';\n\ntype Props = {\n eventDefinitionId: string,\n displayAsLink?: boolean,\n}\n\nconst EventDefinitionName = ({ eventDefinitionId, displayAsLink }: Props) => {\n const currentUser = useCurrentUser();\n const canViewDefinition = isPermitted(currentUser.permissions, `eventdefinitions:read:${eventDefinitionId}`);\n const { data: eventDefinition, isFetching } = useEventDefinition(eventDefinitionId, canViewDefinition);\n const title = eventDefinition?.title ?? eventDefinitionId;\n\n if (isFetching) {\n return <Spinner />;\n }\n\n if (!displayAsLink || !canViewDefinition) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{title}</>;\n }\n\n if (eventDefinition) {\n return (\n <Link to={Routes.ALERTS.DEFINITIONS.show(eventDefinition.id)} target=\"_blank\">\n {title}\n </Link>\n );\n }\n\n return null;\n};\n\nEventDefinitionName.defaultProps = {\n displayAsLink: true,\n};\n\nexport default EventDefinitionName;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { Timestamp } from 'components/common';\nimport EventDefinitionName from 'views/components/widgets/events/filters/EventDefinitionName';\nimport EventTypeLabel from 'components/events/events/EventTypeLabel';\nimport type { Attributes } from 'views/components/widgets/overview-configuration/filters/types';\nimport PriorityName from 'components/events/events/PriorityName';\n\nconst eventsAttributes: Attributes = [\n {\n attribute: 'timestamp',\n displayValue: (value: string) => <Timestamp dateTime={value} />,\n sortable: true,\n title: 'Created At',\n },\n {\n attribute: 'alert',\n displayValue: (value: boolean) => <EventTypeLabel isAlert={value} />,\n sortable: true,\n title: 'Type',\n },\n {\n attribute: 'event_definition_id',\n displayValue: (value: string) => <EventDefinitionName eventDefinitionId={value} />,\n sortable: true,\n title: 'Event Definition',\n },\n {\n attribute: 'priority',\n displayValue: (value: number) => <PriorityName priority={value} />,\n sortable: true,\n title: 'Priority',\n },\n {\n attribute: 'key',\n title: 'Key',\n },\n {\n attribute: 'message',\n title: 'Description',\n },\n];\n\nexport default eventsAttributes;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { adjustFormat } from 'util/DateTime';\nimport type { IndexRange } from 'views/components/searchbar/queryvalidation/types';\nimport { isSearchingWarmTier } from 'views/components/searchbar/queryvalidation/warmTierValidation';\n\ntype Props = {\n warmTierIndices: IndexRange[]\n}\n\nconst WarmTierErrorMessage = ({ warmTierIndices } : Props) => {\n if (!isSearchingWarmTier(warmTierIndices)) return null;\n\n const formatTimestamp = (timestamp: number) : string => `${adjustFormat(new Date((timestamp)), 'default')}`;\n\n const timestampInfo = warmTierIndices.map((warmTierIndex) => {\n const begin = formatTimestamp(warmTierIndex.begin);\n const end = formatTimestamp(warmTierIndex.end);\n\n return `${begin} to ${end}`;\n });\n\n const timestampString = timestampInfo.join(', ');\n\n return (\n <span>\n The selected time range includes data stored in the Warm Tier, which can be slow to retrieve.\n {timestampString.length > 0 && (` The following interval falls within the Warm Tier: ${timestampString}.`)}\n </span>\n );\n};\n\nexport default WarmTierErrorMessage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport type { QueryValidationState } from 'views/components/searchbar/queryvalidation/types';\nimport { indicesInWarmTier, isSearchingWarmTier } from 'views/components/searchbar/queryvalidation/warmTierValidation';\nimport { Explanation } from 'views/components/searchbar/queryvalidation/QueryValidation';\nimport WarmTierErrorMessage from 'views/components/searchbar/queryvalidation/WarmTierErrorMessage';\n\ntype Props = {\n validationState: QueryValidationState;\n};\n\nconst WarmTierQueryValidation = ({ validationState } : Props) => {\n const warmTierIndices = indicesInWarmTier(validationState);\n\n if (!isSearchingWarmTier(warmTierIndices)) return null;\n\n return (\n <Explanation>\n <span><b>Warm Tier Search</b>: <WarmTierErrorMessage warmTierIndices={warmTierIndices} /></span>\n </Explanation>\n );\n};\n\nexport default WarmTierQueryValidation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport * as Immutable from 'immutable';\n\nimport Parameter from 'views/logic/parameters/Parameter';\nimport ParameterBinding from 'views/logic/parameters/ParameterBinding';\nimport type { ParameterJson } from 'views/logic/parameters/Parameter';\n\ntype InternalBuilderState = Immutable.Map<string, any>;\n\nexport default class ValueParameter extends Parameter {\n static type = 'value-parameter-v1';\n\n static Builder: typeof Builder;\n\n constructor(name: string, title: string, description: string, dataType: string, defaultValue: any, optional: boolean, binding?: ParameterBinding) {\n super(ValueParameter.type, name, title, description, dataType, defaultValue, optional, binding);\n }\n\n static create(name: string, title: string, description: string, dataType: string, defaultValue: any, optional: boolean, binding?: ParameterBinding): ValueParameter {\n return new ValueParameter(name, title, description, dataType, defaultValue, optional, binding);\n }\n\n toBuilder(): Builder {\n const { type, name, title, description, dataType, defaultValue, optional, binding } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ type, name, title, description, dataType, defaultValue, optional, binding }));\n }\n\n toJSON(): ParameterJson {\n const { type, name, title, description, dataType, defaultValue, optional, binding } = this._value;\n\n return {\n type,\n name,\n title,\n description,\n data_type: dataType,\n default_value: defaultValue,\n optional,\n binding: binding ? binding.toJSON() : undefined,\n };\n }\n\n static fromJSON(value: ParameterJson): ValueParameter {\n const { name, title, description, data_type, default_value, optional, binding } = value;\n\n return new ValueParameter(name, title, description, data_type, default_value, optional, ParameterBinding.fromJSON(binding));\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder()\n .type(ValueParameter.type)\n .optional(false)\n .dataType('any')\n .binding(ParameterBinding.empty());\n }\n}\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n type(value: string): Builder {\n return new Builder(this.value.set('type', value));\n }\n\n name(value: string): Builder {\n return new Builder(this.value.set('name', value));\n }\n\n title(value: string): Builder {\n return new Builder(this.value.set('title', value));\n }\n\n description(value: string): Builder {\n return new Builder(this.value.set('description', value));\n }\n\n dataType(value: string): Builder {\n return new Builder(this.value.set('dataType', value));\n }\n\n defaultValue(value: any): Builder {\n return new Builder(this.value.set('defaultValue', value));\n }\n\n optional(value: boolean): Builder {\n return new Builder(this.value.set('optional', value));\n }\n\n binding(value: ParameterBinding): Builder {\n return new Builder(this.value.set('binding', value));\n }\n\n build(): ValueParameter {\n const { name, title, description, dataType, defaultValue, optional, binding } = this.value.toObject();\n\n return new ValueParameter(name, title, description, dataType, defaultValue, optional, binding);\n }\n}\n\nValueParameter.Builder = Builder;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport Direction from 'views/logic/aggregationbuilder/Direction';\n\ntype MessageSortConfigJson = {\n field: string,\n order: 'ASC' | 'DESC',\n};\n\ntype InternalState = {\n field: string,\n direction: Direction,\n};\n\nexport default class MessageSortConfig {\n _value: InternalState;\n\n constructor(field: string, direction: Direction) {\n this._value = { field, direction };\n }\n\n toJSON(): MessageSortConfigJson {\n const { field, direction } = this._value;\n\n return {\n field,\n order: direction === Direction.Ascending ? 'ASC' : 'DESC',\n };\n }\n\n static fromJSON({ field, order }: MessageSortConfigJson) {\n const direction = Direction.fromJSON(order === 'ASC' ? 'Ascending' : 'Descending');\n\n return new MessageSortConfig(field, direction);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport type MessagesWidget from 'views/logic/widgets/MessagesWidget';\nimport MessageSortConfig from 'views/logic/searchtypes/messages/MessageSortConfig';\n\nconst MessageConfigGenerator = (widget: MessagesWidget) => {\n const { config: { decorators, sort: widgetSort } } = widget;\n\n return [{\n type: 'messages',\n decorators,\n sort: widgetSort.map((sort) => new MessageSortConfig(sort.field, sort.direction)),\n }];\n};\n\nexport default MessageConfigGenerator;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport type { EditWidgetComponentProps, WidgetComponentProps } from 'views/types';\nimport { Icon } from 'components/common';\nimport ClipboardButton from 'components/common/ClipboardButton';\n\nconst Container = styled.div`\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst IconContainer = styled.div`\n margin: 3px 15px 0 0;\n`;\n\nconst Description = styled.div`\n max-width: 700px;\n`;\n\nconst Row = styled.div`\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nconst OrderedList = styled.ol`\n padding: 0;\n list-style: decimal inside none;\n`;\n\nconst UnknownWidget: React.ComponentType<WidgetComponentProps & EditWidgetComponentProps> = ({ config, type }: WidgetComponentProps & EditWidgetComponentProps) => (\n <Container>\n <IconContainer>\n <Icon name=\"help\" size=\"3x\" />\n </IconContainer>\n <Description>\n <Row>\n <strong>Unknown Widget: {type}</strong>\n </Row>\n <Row>\n Unfortunately we are not able to render this widget, because we do not know how to handle widgets of\n type <strong>{type}</strong>. This might be caused by one of these situations:\n </Row>\n\n <Row>\n <OrderedList>\n <li>You created this widget using a plugin that is now missing.</li>\n <li>This widget was part of a legacy dashboard and created by a plugin that is not available anymore.</li>\n </OrderedList>\n </Row>\n\n <Row>\n What can you do about it? You can load the plugin again, contact the original plugin author for a plugin that\n works with Graylog 3.2+, or remove the widget if you do not need it anymore.\n </Row>\n <Row>\n Either way, you can copy the widget’s config to the\n clipboard: <ClipboardButton title={<Icon name=\"content_copy\" size=\"sm\" />} text={JSON.stringify(config, null, 2)} bsSize=\"xsmall\" />\n </Row>\n </Description>\n </Container>\n);\n\nexport default UnknownWidget;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport Routes from 'routing/Routes';\nimport useHistory from 'routing/useHistory';\n\nconst NewSearchRedirectPage = () => {\n const history = useHistory();\n const { streamId } = useParams();\n\n useEffect(() => {\n if (streamId) {\n history.push(Routes.stream_search(streamId));\n } else {\n history.push(Routes.SEARCH);\n }\n }, [history, streamId]);\n\n return null;\n};\n\nexport default NewSearchRedirectPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport * as React from 'react';\n\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport useEventById from 'hooks/useEventById';\nimport useEventDefinition from 'components/events/events/hooks/useEventDefinition';\nimport { Spinner } from 'components/common';\nimport DefaultDetails from 'components/events/events/EventDetails';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport useCurrentUser from 'hooks/useCurrentUser';\n\nexport const usePluggableEventDetails = (eventId: string) => {\n const pluggableEventDetails = usePluginEntities('views.components.widgets.events.detailsComponent');\n\n return pluggableEventDetails.filter(\n (perspective) => (perspective.useCondition ? !!perspective.useCondition() : true),\n ).map(\n ({ component: PluggableEventAction, key }) => (\n <PluggableEventAction key={key} eventId={eventId} />\n ),\n );\n};\n\nexport const DefaultDetailsWrapper = ({ eventId }: { eventId: string }) => {\n const { data: event, isLoading } = useEventById(eventId);\n const currentUser = useCurrentUser();\n const canViewDefinition = isPermitted(currentUser.permissions, `eventdefinitions:read:${event?.event_definition_id}`);\n const { data: eventDefinition, isFetching } = useEventDefinition(event?.event_definition_id, canViewDefinition);\n\n if (isFetching) {\n return <Spinner />;\n }\n\n if (isLoading) {\n return <Spinner />;\n }\n\n return <DefaultDetails event={event} eventDefinitionContext={eventDefinition} />;\n};\n\nconst EventDetailsWrapper = ({ eventId }: { eventId: string }) => {\n const puggableEventDetails = usePluggableEventDetails(eventId);\n\n if (puggableEventDetails?.length) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{puggableEventDetails}</>;\n }\n\n return <DefaultDetailsWrapper eventId={eventId} />;\n};\n\nexport default EventDetailsWrapper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\n\nimport { IconButton, ModalSubmit } from 'components/common';\nimport { ButtonToolbar, Modal, Menu, MenuItem } from 'components/bootstrap';\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport Routes from 'routing/Routes';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport useCurrentUser from 'hooks/useCurrentUser';\n\nimport EventDetails from './EventDetails';\n\nconst usePluggableDashboardActions = (eventId: string) => {\n const modalRefs = useRef({});\n const pluggableActions = usePluginEntities('views.components.widgets.events.actions');\n const availableActions = pluggableActions.filter(\n (perspective) => (perspective.useCondition ? !!perspective.useCondition() : true),\n );\n const actions = availableActions.map(({ component: PluggableDashboardAction, key }) => (\n <PluggableDashboardAction key={`event-action-${key}`}\n eventId={eventId}\n modalRef={() => modalRefs.current[key]} />\n ));\n\n const actionModals = availableActions\n .filter(({ modal }) => !!modal)\n .map(({ modal: ActionModal, key }) => (\n <ActionModal key={`event-action-modal-${key}`}\n eventId={eventId}\n ref={(r) => { modalRefs.current[key] = r; }} />\n ));\n\n return ({ actions, actionModals });\n};\n\ntype Props = {\n eventId: string,\n hasReplayInfo: boolean,\n eventDefinitionId: string,\n}\n\nconst RowActions = ({ eventId, hasReplayInfo, eventDefinitionId }: Props) => {\n const user = useCurrentUser();\n const [showDetailsModal, setShowDetailsModal] = useState(false);\n const toggleDetailsModal = () => setShowDetailsModal((cur) => !cur);\n const { actions: pluggableActions, actionModals: pluggableActionModals } = usePluggableDashboardActions(eventId);\n\n const moreActions = [\n (hasReplayInfo && isPermitted(user.permissions, `eventdefinitions:read:${eventDefinitionId}`)) ? (\n <MenuItem href={Routes.ALERTS.replay_search(eventId)} target=\"_blank\" key=\"replay-search\">\n Replay search\n </MenuItem>\n ) : null,\n pluggableActions.length ? pluggableActions : null,\n ].filter(Boolean);\n\n return (\n <>\n <ButtonToolbar>\n <IconButton name=\"open_in_full\" title=\"View event details\" onClick={toggleDetailsModal} />\n {!!moreActions.length && (\n <Menu position=\"bottom-end\">\n <Menu.Target>\n <IconButton name=\"more_vert\" title=\"Toggle event actions\" />\n </Menu.Target>\n <Menu.Dropdown>\n {moreActions}\n </Menu.Dropdown>\n </Menu>\n )}\n </ButtonToolbar>\n {showDetailsModal && (\n <Modal show={showDetailsModal}\n bsSize=\"large\"\n onHide={toggleDetailsModal}>\n <Modal.Header closeButton>\n <Modal.Title>Event details</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <EventDetails eventId={eventId} />\n </Modal.Body>\n <Modal.Footer>\n <ModalSubmit displayCancel={false}\n onSubmit={toggleDetailsModal}\n submitButtonType=\"button\"\n submitButtonText=\"Close\" />\n </Modal.Footer>\n </Modal>\n )}\n {pluggableActionModals}\n </>\n );\n};\n\nexport default RowActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport type * as Immutable from 'immutable';\nimport styled, { css } from 'styled-components';\n\nimport IfInteractive from 'views/components/dashboard/IfInteractive';\nimport type { EventListItem } from 'views/components/widgets/events/types';\nimport RowActions from 'views/components/widgets/events/EventsList/RowActions';\nimport useEventAttributes from 'views/components/widgets/events/hooks/useEventAttributes';\n\nconst Td = styled.td(({ theme }) => css`\n && {\n border-color: ${theme.colors.table.row.border};\n }\n`);\n\ntype Props = {\n event: EventListItem,\n fields: Immutable.OrderedSet<string>,\n}\n\nconst EventsTableRow = ({ event, fields }: Props) => {\n const eventAttributes = useEventAttributes();\n\n return (\n <tr key={event.id}>\n {fields.toArray().map((field) => {\n const value = event[field];\n const columnRenderer = (val: string) => eventAttributes.find(\n ({ attribute }) => attribute === field,\n )?.displayValue?.(val) ?? val;\n\n return (\n <Td key={field}>\n {columnRenderer(value)}\n </Td>\n );\n })}\n <IfInteractive>\n <Td>\n <RowActions eventId={event.id} eventDefinitionId={event.event_definition_id} hasReplayInfo={!!event.replay_info} />\n </Td>\n </IfInteractive>\n </tr>\n );\n};\n\nexport default EventsTableRow;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nimport Direction from 'views/logic/aggregationbuilder/Direction';\nimport { SortIcon } from 'components/common';\n\ntype Props = {\n activeDirection: Direction,\n activeAttribute: string,\n attribute: string,\n attributeTitle: string,\n onSortChange: (attribute: string, nextDirection: Direction) => Promise<unknown>,\n setLoadingState: (loading: boolean) => void,\n};\n\ntype DirectionStrategy = {\n handleSortChange: (changeSort: (direction: Direction, activeSort: boolean) => void) => void,\n tooltip: (attributeTitle: string) => string,\n};\n\nconst _tooltip = (attributeTitle: string, newDirection: Direction) => `Sort ${attributeTitle} ${newDirection.direction}`;\n\nconst _changeSort = (\n nextDirection: Direction,\n attribute: string,\n onSortChange: (attribute: string, nextDirection: Direction) => Promise<unknown>,\n setLoadingState: (loading: boolean) => void,\n) => {\n setLoadingState(true);\n\n onSortChange(attribute, nextDirection).then(() => {\n setLoadingState(false);\n });\n};\n\nconst DirectionStrategyAsc: DirectionStrategy = {\n tooltip: (attributeTitle: string) => _tooltip(attributeTitle, Direction.Descending),\n handleSortChange: (changeSort) => changeSort(Direction.Descending, true),\n};\n\nconst DirectionStrategyDesc: DirectionStrategy = {\n tooltip: (attributeTitle: string) => _tooltip(attributeTitle, Direction.Ascending),\n handleSortChange: (changeSort) => changeSort(Direction.Ascending, true),\n};\n\nconst DirectionStrategyNoSort: DirectionStrategy = {\n tooltip: (attributeTitle: string) => _tooltip(attributeTitle, Direction.Ascending),\n handleSortChange: (changeSort) => changeSort(Direction.Ascending, true),\n};\n\nconst directionStrategy = (activeDirection: Direction | undefined) => {\n switch (activeDirection?.direction) {\n case Direction.Ascending.direction:\n return DirectionStrategyAsc;\n case Direction.Descending.direction:\n return DirectionStrategyDesc;\n default:\n return DirectionStrategyNoSort;\n }\n};\n\nconst AttributeSortIcon = ({ attribute, attributeTitle, onSortChange, setLoadingState, activeDirection, activeAttribute }: Props) => {\n const targetAttributeDirection = activeAttribute === attribute ? activeDirection : undefined;\n const { tooltip, handleSortChange }: DirectionStrategy = directionStrategy(activeDirection);\n const changeSort = (nextDirection: Direction) => _changeSort(nextDirection, attribute, onSortChange, setLoadingState);\n const title = tooltip(attributeTitle);\n\n return (\n <SortIcon onChange={() => handleSortChange(changeSort)} activeDirection={targetAttributeDirection?.direction} title={title} />\n );\n};\n\nexport default AttributeSortIcon;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { useCallback } from 'react';\n\nimport { TableHead, TableHeaderCell } from 'views/components/datatable';\nimport IfInteractive from 'views/components/dashboard/IfInteractive';\nimport type EventsWidgetConfig from 'views/logic/widgets/events/EventsWidgetConfig';\nimport EventsTableRow from 'views/components/widgets/events/EventsList/EventsTableRow';\nimport type { EventListItem } from 'views/components/widgets/events/types';\nimport EventsWidgetSortConfig from 'views/logic/widgets/events/EventsWidgetSortConfig';\nimport useEventAttributes from 'views/components/widgets/events/hooks/useEventAttributes';\nimport UnknownAttributeTitle from 'views/components/widgets/events/UnknownAttributeTitle';\nimport type Direction from 'views/logic/aggregationbuilder/Direction';\n\nimport AttributeSortIcon from '../../overview-configuration/AttributeSortIcon';\n\nconst TableWrapper = styled.div`\n overflow: auto;\n`;\n\nconst ActionsHeader = styled(TableHeaderCell)`\n && {\n min-width: auto;\n width: 35px;\n }\n`;\n\ntype Props = {\n config: EventsWidgetConfig,\n events: Array<EventListItem>,\n onSortChange: (sort: EventsWidgetSortConfig) => Promise<unknown>,\n setLoadingState: (loading: boolean) => void,\n}\n\nconst EventsTable = ({ events, config, onSortChange, setLoadingState }: Props) => {\n const eventAttributes = useEventAttributes();\n const _onSortChange = useCallback((fieldName: string, nextDirection: Direction) => (\n onSortChange(new EventsWidgetSortConfig(fieldName, nextDirection))\n ), [onSortChange]);\n\n return (\n <TableWrapper>\n <table className=\"table table-condensed\">\n <TableHead>\n <tr>\n {config.fields.toArray().map((field) => {\n const eventAttribute = eventAttributes.find(({ attribute }) => field === attribute);\n\n return (\n <TableHeaderCell key={field}>\n {eventAttribute?.title ?? <UnknownAttributeTitle />}\n {eventAttribute?.sortable && (\n <AttributeSortIcon onSortChange={_onSortChange}\n attribute={field}\n attributeTitle={eventAttribute.title}\n activeAttribute={config.sort.field}\n activeDirection={config.sort.direction}\n setLoadingState={setLoadingState} />\n )}\n </TableHeaderCell>\n );\n })}\n <IfInteractive>\n <ActionsHeader />\n </IfInteractive>\n </tr>\n </TableHead>\n <tbody>\n {events?.map((event) => (\n <EventsTableRow key={event.id}\n event={event}\n fields={config.fields} />\n ))}\n </tbody>\n </table>\n </TableWrapper>\n );\n};\n\nexport default EventsTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport styled from 'styled-components';\n\nimport type { WidgetComponentProps } from 'views/types';\nimport { PaginatedList } from 'components/common';\nimport type { SearchTypeOptions } from 'views/logic/search/GlobalOverride';\nimport reexecuteSearchTypes from 'views/components/widgets/reexecuteSearchTypes';\nimport useAppDispatch from 'stores/useAppDispatch';\nimport type EventsWidgetConfig from 'views/logic/widgets/events/EventsWidgetConfig';\nimport type { EventsListResult } from 'views/components/widgets/events/types';\nimport type EventsWidgetSortConfig from 'views/logic/widgets/events/EventsWidgetSortConfig';\nimport useOnSearchExecution from 'views/hooks/useOnSearchExecution';\nimport useAutoRefresh from 'views/hooks/useAutoRefresh';\nimport ErrorWidget from 'views/components/widgets/ErrorWidget';\n\nimport EventsTable from './EventsTable';\n\nimport { PAGINATION } from '../Constants';\n\ntype Pagination = {\n pageErrors: Array<{ description: string }>,\n currentPage: number\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: auto;\n height: 100%;\n`;\n\nconst useResetPaginationOnSearchExecution = (setPagination: (pagination: Pagination) => void, currentPage) => {\n const resetPagination = useCallback(() => {\n if (currentPage !== 1) {\n setPagination({ currentPage: 1, pageErrors: [] });\n }\n }, [currentPage, setPagination]);\n useOnSearchExecution(resetPagination);\n};\n\nconst useHandlePageChange = (searchTypeId: string, setLoadingState: (loading: boolean) => void, setPagination: (pagination: Pagination) => void) => {\n const dispatch = useAppDispatch();\n const { stopAutoRefresh } = useAutoRefresh();\n\n return useCallback((pageNo: number) => {\n // execute search with new offset\n const searchTypePayload: SearchTypeOptions<{\n page: number,\n per_page: number,\n }> = {\n [searchTypeId]: {\n page: pageNo,\n per_page: PAGINATION.PER_PAGE,\n },\n };\n\n stopAutoRefresh();\n setLoadingState(true);\n\n return dispatch(reexecuteSearchTypes(searchTypePayload)).then((response) => {\n const { result } = response.payload;\n setLoadingState(false);\n\n setPagination({\n pageErrors: result.errors,\n currentPage: pageNo,\n });\n });\n }, [dispatch, searchTypeId, setLoadingState, setPagination, stopAutoRefresh]);\n};\n\nconst EventsList = ({ data, config, onConfigChange, setLoadingState }: WidgetComponentProps<EventsWidgetConfig, EventsListResult>) => {\n const [{ currentPage, pageErrors }, setPagination] = useState<Pagination>({\n pageErrors: [],\n currentPage: PAGINATION.INITIAL_PAGE,\n });\n\n useResetPaginationOnSearchExecution(setPagination, currentPage);\n\n const handlePageChange = useHandlePageChange(data.id, setLoadingState, setPagination);\n\n const onSortChange = useCallback((newSort: EventsWidgetSortConfig) => {\n const newConfig = config.toBuilder().sort(newSort).build();\n\n return onConfigChange(newConfig);\n }, [config, onConfigChange]);\n\n return (\n <Container>\n <PaginatedList onChange={handlePageChange}\n useQueryParameter={false}\n activePage={currentPage}\n pageSize={PAGINATION.PER_PAGE}\n showPageSizeSelect={false}\n totalItems={data.totalResults ?? 0}>\n {!pageErrors?.length ? (\n <EventsTable config={config}\n setLoadingState={setLoadingState}\n onSortChange={onSortChange}\n events={data.events} />\n ) : <ErrorWidget errors={pageErrors} />}\n </PaginatedList>\n </Container>\n );\n};\n\nexport default EventsList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport EventsList from './EventsList';\n\nexport default EventsList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport type { WidgetComponentProps } from 'views/types';\nimport AutoFontSizer from 'views/components/visualizations/number/AutoFontSizer';\nimport { ElementDimensions } from 'components/common';\nimport type EventsWidgetConfig from 'views/logic/widgets/events/EventsWidgetConfig';\n\nimport type { EventsListResult } from './types';\n\nconst NumberBox = styled(ElementDimensions)`\n height: 100%;\n width: 100%;\n padding-bottom: 10px;\n`;\n\nconst EventsNumber = ({ data } : WidgetComponentProps<EventsWidgetConfig, EventsListResult>) => (\n <NumberBox resizeDelay={20}>\n {({ height, width }) => (\n <AutoFontSizer height={height} width={width} center>\n <div>\n {data.totalResults}\n </div>\n </AutoFontSizer>\n )}\n </NumberBox>\n);\n\nexport default EventsNumber;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport type { WidgetComponentProps } from 'views/types';\nimport type EventsWidgetConfig from 'views/logic/widgets/events/EventsWidgetConfig';\nimport { LIST_MODE, NUMBER_MODE } from 'views/logic/widgets/events/EventsWidgetConfig';\nimport type { EventsListResult } from 'views/components/widgets/events/types';\nimport EventsList from 'views/components/widgets/events/EventsList';\n\nimport EventsNumber from './EventsNumber';\n\nconst EventsVisualization = (props: WidgetComponentProps<EventsWidgetConfig, EventsListResult>) => {\n const { config } = props;\n\n if (config.mode === LIST_MODE) {\n return <EventsList {...props} />;\n }\n\n if (config.mode === NUMBER_MODE) {\n return <EventsNumber {...props} />;\n }\n\n return <div>Unknown widget visualization type {config.mode ?? 'undefined'}</div>;\n};\n\nexport default EventsVisualization;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { Select, Spinner } from 'components/common';\nimport useEventDefinitions from 'components/event-definitions/hooks/useEventDefinitions';\n\ntype Props = {\n value: string | undefined,\n onSelect: (newValue: string) => void,\n selectedValues: Array<string>,\n}\n\nconst EventDefinitionFilter = ({ value, onSelect, selectedValues }: Props) => {\n const { data: eventDefinitions, isInitialLoading: isLoadingEventDefinitions } = useEventDefinitions({\n query: '',\n page: 1,\n pageSize: 100000,\n sort: { attributeId: 'title', direction: 'asc' },\n });\n\n const eventDefinitionOptions = eventDefinitions?.elements.map(({ title, id }) => ({\n label: title,\n value: id,\n disabled: selectedValues.includes(id),\n }));\n\n if (isLoadingEventDefinitions) {\n return <Spinner />;\n }\n\n return (\n <Select placeholder=\"Select event definition\"\n clearable={false}\n menuIsOpen\n options={eventDefinitionOptions}\n onChange={onSelect}\n value={value} />\n );\n};\n\nexport default EventDefinitionFilter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport { ListGroup, ListGroupItem } from 'components/bootstrap';\n\ntype Props = {\n onSelect: (value: string) => void,\n selectedValues: Array<string>\n}\n\nconst EventTypeFilter = ({ onSelect, selectedValues }: Props) => {\n const disabledAlertOption = selectedValues.includes('true');\n const disabledEventOption = selectedValues.includes('false');\n\n return (\n <ListGroup className=\"no-bm\">\n <ListGroupItem onClick={() => !disabledAlertOption && onSelect('true')}\n disabled={disabledAlertOption}>\n Alert\n </ListGroupItem>\n <ListGroupItem onClick={() => !disabledEventOption && onSelect('false')}\n disabled={disabledEventOption}>\n Event\n </ListGroupItem>\n </ListGroup>\n );\n};\n\nexport default EventTypeFilter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport * as React from 'react';\n\nimport EventDefinitionPriorityEnum from 'logic/alerts/EventDefinitionPriorityEnum';\nimport { ListGroup, ListGroupItem } from 'components/bootstrap';\nimport PriorityName from 'components/events/events/PriorityName';\n\ntype Props = {\n onSelect: (value: string) => void,\n selectedValues: Array<string>\n}\n\nconst EventTypeFilter = ({ onSelect, selectedValues }: Props) => {\n\n return (\n <ListGroup className=\"no-bm\">\n {Object.keys(EventDefinitionPriorityEnum.properties).map((priority) => {\n const disabledOption = selectedValues.includes(priority);\n return <ListGroupItem onClick={() => !disabledOption && onSelect(priority)}\n disabled={disabledOption}\n key={priority}>\n <PriorityName priority={Number(priority)} />\n </ListGroupItem>\n })}\n </ListGroup>\n );\n};\n\nexport default EventTypeFilter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport * as React from 'react';\n\nimport EventDefinitionName from 'views/components/widgets/events/filters/EventDefinitionName';\nimport EventDefinitionFilter from 'views/components/widgets/events/filters/EventDefinitionFilter';\nimport EventTypeFilter from 'views/components/widgets/events/filters/EventTypeFilter';\nimport type { FilterComponents } from 'views/components/widgets/overview-configuration/filters/types';\nimport EventPriorityFilter from 'views/components/widgets/events/filters/EventPriorityFilter';\nimport PriorityName from 'components/events/events/PriorityName';\n\nconst filterComponents: FilterComponents = [\n {\n configuration: (selectedValues, editValue: string, onChange: (newValue: string) => void) => (\n <EventDefinitionFilter value={editValue} onSelect={(newValue) => onChange(newValue)} selectedValues={selectedValues} />\n ),\n attribute: 'event_definition_id',\n renderValue: (value) => <EventDefinitionName eventDefinitionId={value} displayAsLink={false} />,\n allowMultipleValues: true,\n },\n {\n attribute: 'alert',\n configuration: (selectedValues, _editValue: string, onChange: (newValue: string) => void) => (\n <EventTypeFilter onSelect={onChange} selectedValues={selectedValues} />\n ),\n renderValue: (isAlert: 'true' | 'false') => (isAlert === 'true' ? 'Alert' : 'Event'),\n },\n {\n attribute: 'priority',\n configuration: (selectedValues, _editValue: string, onChange: (newValue: string) => void) => (\n <EventPriorityFilter onSelect={onChange} selectedValues={selectedValues} />\n ),\n renderValue: (priority: string) => <PriorityName priority={priority} />,\n },\n];\n\nexport default filterComponents;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport get from 'lodash/get';\nimport type { PluginExports } from 'graylog-web-plugin/plugin';\n\nimport type { WidgetComponentProps } from 'views/types';\nimport Routes from 'routing/Routes';\nimport App from 'routing/App';\nimport { MessageListHandler } from 'views/logic/searchtypes/messages';\nimport { MessageList } from 'views/components/widgets';\nimport AddToTableActionHandler from 'views/logic/fieldactions/AddToTableActionHandler';\nimport AddToAllTablesActionHandler from 'views/logic/fieldactions/AddToAllTablesActionHandler';\nimport AddToQueryHandler from 'views/logic/valueactions/AddToQueryHandler';\nimport AggregateActionHandler from 'views/logic/fieldactions/AggregateActionHandler';\nimport ChartActionHandler from 'views/logic/fieldactions/ChartActionHandler';\nimport AggregationBuilder from 'views/components/aggregationbuilder/AggregationBuilder';\nimport BarVisualization from 'views/components/visualizations/bar/BarVisualization';\nimport LineVisualization from 'views/components/visualizations/line/LineVisualization';\nimport NumberVisualization from 'views/components/visualizations/number/NumberVisualization';\nimport WorldMapVisualization from 'views/components/visualizations/worldmap/WorldMapVisualization';\nimport HeatmapVisualization from 'views/components/visualizations/heatmap/HeatmapVisualization';\nimport MigrateFieldCharts from 'views/components/MigrateFieldCharts';\nimport IfSearch from 'views/components/search/IfSearch';\nimport PivotConfigGenerator from 'views/logic/searchtypes/aggregation/PivotConfigGenerator';\nimport PivotHandler from 'views/logic/searchtypes/pivot/PivotHandler';\nimport PivotTransformer from 'views/logic/searchresulttransformers/PivotTransformer';\nimport EventHandler from 'views/logic/searchtypes/events/EventHandler';\nimport Widget from 'views/logic/widgets/Widget';\nimport AggregationWidget from 'views/logic/aggregationbuilder/AggregationWidget';\nimport MessagesWidget from 'views/logic/widgets/MessagesWidget';\nimport DataTable from 'views/components/datatable';\nimport FieldStatisticsHandler from 'views/logic/fieldactions/FieldStatisticsHandler';\nimport ExcludeFromQueryHandler from 'views/logic/valueactions/ExcludeFromQueryHandler';\nimport { isFunction } from 'views/logic/aggregationbuilder/Series';\nimport EditMessageList from 'views/components/widgets/EditMessageList';\nimport {\n DashboardsPage,\n ShowViewPage,\n NewSearchPage,\n NewDashboardPage,\n StreamSearchPage,\n EventDefinitionReplaySearchPage,\n EventReplaySearchPage,\n} from 'views/pages';\nimport AddMessageCountActionHandler, { CreateMessageCount } from 'views/logic/fieldactions/AddMessageCountActionHandler';\nimport AddMessageTableActionHandler, { CreateMessagesWidget } from 'views/logic/fieldactions/AddMessageTableActionHandler';\nimport RemoveFromTableActionHandler from 'views/logic/fieldactions/RemoveFromTableActionHandler';\nimport RemoveFromAllTablesActionHandler from 'views/logic/fieldactions/RemoveFromAllTablesActionHandler';\nimport AddCustomAggregation, { CreateCustomAggregation } from 'views/logic/creatoractions/AddCustomAggregation';\nimport SelectExtractorType from 'views/logic/valueactions/SelectExtractorType';\nimport VisualizationConfig from 'views/logic/aggregationbuilder/visualizations/VisualizationConfig';\nimport WorldMapVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/WorldMapVisualizationConfig';\nimport BarVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/BarVisualizationConfig';\nimport ShowDocumentsHandler from 'views/logic/valueactions/ShowDocumentsHandler';\nimport HighlightValueHandler from 'views/logic/valueactions/HighlightValueHandler';\nimport FieldNameCompletion from 'views/components/searchbar/completions/FieldNameCompletion';\nimport FieldValueCompletion from 'views/components/searchbar/completions/FieldValueCompletion';\nimport OperatorCompletion from 'views/components/searchbar/completions/OperatorCompletion';\nimport requirementsProvided from 'views/hooks/RequirementsProvided';\nimport bindSearchParamsFromQuery from 'views/hooks/BindSearchParamsFromQuery';\nimport {\n dashboardsPath,\n dashboardsTvPath,\n extendedSearchPath,\n newDashboardsPath,\n showDashboardsPath,\n newSearchPath,\n showSearchPath,\n showViewsPath,\n} from 'views/Constants';\nimport ShowDashboardInBigDisplayMode from 'views/pages/ShowDashboardInBigDisplayMode';\nimport LookupTableParameter from 'views/logic/parameters/LookupTableParameter';\nimport HeatmapVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/HeatmapVisualizationConfig';\nimport visualizationBindings from 'views/components/visualizations/bindings';\nimport { AggregationWizard } from 'views/components/aggregationwizard';\nimport { filterCloudValueActions } from 'util/conditional/filterValueActions';\nimport CopyValueToClipboard from 'views/logic/valueactions/CopyValueToClipboard';\nimport CopyFieldToClipboard from 'views/logic/fieldactions/CopyFieldToClipboard';\nimport DataTableVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/DataTableVisualizationConfig';\nimport ViewHeader from 'views/components/views/ViewHeader';\nimport ScatterVisualizationConfig from 'views/logic/aggregationbuilder/visualizations/ScatterVisualizationConfig';\nimport ScatterVisualization from 'views/components/visualizations/scatter/ScatterVisualization';\nimport Icon from 'components/common/Icon';\nimport viewsReducers from 'views/viewsReducers';\nimport CreateEventDefinition from 'views/logic/valueactions/createEventDefinition/CreateEventDefinition';\nimport ChangeFieldType, {\n ChangeFieldTypeHelp,\n isChangeFieldTypeEnabled,\n isChangeFieldTypeHidden,\n} from 'views/logic/fieldactions/ChangeFieldType/ChangeFieldType';\nimport AddEventsWidgetActionHandler, { CreateEventsWidget } from 'views/logic/widgets/events/AddEventsWidgetActionHandler';\nimport EventsListConfigGenerator from 'views/logic/searchtypes/events/EventsListConfigGenerator';\nimport EventsWidgetEdit from 'views/components/widgets/events/EventsWidgetEdit';\nimport EventsWidget from 'views/logic/widgets/events/EventsWidget';\nimport eventsAttributes from 'views/components/widgets/events/eventsAttributes';\nimport WarmTierQueryValidation from 'views/components/searchbar/queryvalidation/WarmTierQueryValidation';\n\nimport type { ActionHandlerArguments } from './components/actions/ActionHandler';\nimport NumberVisualizationConfig from './logic/aggregationbuilder/visualizations/NumberVisualizationConfig';\nimport AreaVisualization from './components/visualizations/area/AreaVisualization';\nimport LineVisualizationConfig from './logic/aggregationbuilder/visualizations/LineVisualizationConfig';\nimport AreaVisualizationConfig from './logic/aggregationbuilder/visualizations/AreaVisualizationConfig';\nimport Parameter from './logic/parameters/Parameter';\nimport ValueParameter from './logic/parameters/ValueParameter';\nimport MessageConfigGenerator from './logic/searchtypes/messages/MessageConfigGenerator';\nimport UnknownWidget from './components/widgets/UnknownWidget';\nimport NewSearchRedirectPage from './pages/NewSearchRedirectPage';\nimport EventsVisualization from './components/widgets/events/EventsVisualization';\nimport eventsFilterComponents from './components/widgets/events/filters/filterComponents';\n\nWidget.registerSubtype(AggregationWidget.type, AggregationWidget);\nWidget.registerSubtype(MessagesWidget.type, MessagesWidget);\nWidget.registerSubtype(EventsWidget.type, EventsWidget);\nVisualizationConfig.registerSubtype(WorldMapVisualization.type, WorldMapVisualizationConfig);\nVisualizationConfig.registerSubtype(BarVisualization.type, BarVisualizationConfig);\nVisualizationConfig.registerSubtype(NumberVisualization.type, NumberVisualizationConfig);\nVisualizationConfig.registerSubtype(LineVisualization.type, LineVisualizationConfig);\nVisualizationConfig.registerSubtype(AreaVisualization.type, AreaVisualizationConfig);\nVisualizationConfig.registerSubtype(HeatmapVisualization.type, HeatmapVisualizationConfig);\nVisualizationConfig.registerSubtype(DataTable.type, DataTableVisualizationConfig);\nVisualizationConfig.registerSubtype(ScatterVisualization.type, ScatterVisualizationConfig);\n\nParameter.registerSubtype(ValueParameter.type, ValueParameter);\nParameter.registerSubtype(LookupTableParameter.type, LookupTableParameter);\n\nconst isAnalysisDisabled = (field: string, analysisDisabledFields: string[] = []) => analysisDisabledFields.includes(field);\n\nconst exports: PluginExports = {\n pages: {\n search: { component: NewSearchPage },\n },\n routes: [\n { path: newDashboardsPath, component: NewDashboardPage, parentComponent: App },\n { path: dashboardsTvPath, component: ShowDashboardInBigDisplayMode, parentComponent: null },\n { path: dashboardsPath, component: DashboardsPage },\n { path: showDashboardsPath, component: ShowViewPage, parentComponent: App },\n\n { path: newSearchPath, component: NewSearchRedirectPage, parentComponent: null },\n { path: showSearchPath, component: ShowViewPage, parentComponent: App },\n {\n path: `${Routes.unqualified.stream_search(':streamId')}/new`,\n component: NewSearchRedirectPage,\n parentComponent: null,\n },\n { path: Routes.unqualified.stream_search(':streamId'), component: StreamSearchPage, parentComponent: App },\n { path: extendedSearchPath, component: NewSearchPage, parentComponent: App },\n { path: showViewsPath, component: ShowViewPage, parentComponent: App },\n { path: Routes.ALERTS.replay_search(':alertId'), component: EventReplaySearchPage, parentComponent: App },\n { path: Routes.ALERTS.DEFINITIONS.replay_search(':definitionId'), component: EventDefinitionReplaySearchPage, parentComponent: App },\n ],\n enterpriseWidgets: [\n {\n type: 'MESSAGES',\n displayName: 'Message List',\n defaultHeight: 5,\n reportStyle: () => ({ width: 800 }),\n defaultWidth: 6,\n // TODO: Subtyping needs to be taken into account\n visualizationComponent: MessageList as unknown as React.ComponentType<WidgetComponentProps>,\n editComponent: EditMessageList,\n hasEditSubmitButton: true,\n needsControlledHeight: () => false,\n searchResultTransformer: (data: Array<unknown>) => data[0],\n searchTypes: MessageConfigGenerator,\n titleGenerator: () => MessagesWidget.defaultTitle,\n },\n {\n type: 'AGGREGATION',\n displayName: 'Results',\n defaultHeight: 4,\n defaultWidth: 4,\n reportStyle: () => ({ width: 600 }),\n visualizationComponent: AggregationBuilder,\n editComponent: AggregationWizard,\n hasEditSubmitButton: true,\n needsControlledHeight: (widget: Widget) => {\n const widgetVisualization = get(widget, 'config.visualization');\n const flexibleHeightWidgets = [\n DataTable.type,\n ];\n\n return !flexibleHeightWidgets.find((visualization) => visualization === widgetVisualization);\n },\n searchResultTransformer: PivotTransformer,\n searchTypes: PivotConfigGenerator,\n titleGenerator: (widget: Widget) => {\n if (widget.config.rowPivots.length > 0) {\n return `Aggregating ${widget.config.series.map((s) => s.effectiveName).join(', ')} by ${widget.config.rowPivots.flatMap(({ fields }) => fields).join(', ')}`;\n }\n\n if (widget.config.series.length > 0) {\n return `Aggregating ${widget.config.series.map((s) => s.effectiveName).join(', ')}`;\n }\n\n return AggregationWidget.defaultTitle;\n },\n },\n {\n type: 'EVENTS',\n displayName: 'Events',\n defaultHeight: 4,\n defaultWidth: 6,\n hasEditSubmitButton: true,\n visualizationComponent: EventsVisualization,\n editComponent: EventsWidgetEdit,\n searchTypes: EventsListConfigGenerator,\n titleGenerator: () => EventsWidget.defaultTitle,\n needsControlledHeight: () => false,\n searchResultTransformer: (data: Array<unknown>) => data?.[0],\n },\n {\n type: 'default',\n visualizationComponent: UnknownWidget,\n needsControlledHeight: () => true,\n editComponent: UnknownWidget,\n searchTypes: () => [],\n },\n ],\n searchTypes: [\n {\n type: 'messages',\n handler: MessageListHandler,\n defaults: {\n limit: 150,\n offset: 0,\n },\n },\n {\n type: 'pivot',\n handler: PivotHandler,\n defaults: {},\n },\n {\n type: 'events',\n handler: EventHandler,\n defaults: {},\n },\n ],\n fieldActions: [\n {\n type: 'chart',\n title: 'Chart',\n thunk: ChartActionHandler,\n isEnabled: ({ type }) => type.isNumeric(),\n resetFocus: true,\n },\n {\n type: 'aggregate',\n title: 'Show top values',\n thunk: AggregateActionHandler,\n isEnabled: (({\n field,\n type,\n contexts: { analysisDisabledFields },\n }) => (!isFunction(field) && type.isEnumerable() && !type.isDecorated() && !isAnalysisDisabled(field, analysisDisabledFields))),\n resetFocus: true,\n },\n {\n type: 'statistics',\n title: 'Statistics',\n isEnabled: (({\n field,\n type,\n contexts: { analysisDisabledFields },\n }) => (!isFunction(field) && !type.isDecorated() && !isAnalysisDisabled(field, analysisDisabledFields))),\n thunk: FieldStatisticsHandler,\n resetFocus: false,\n },\n {\n type: 'add-to-table',\n title: 'Add to table',\n thunk: AddToTableActionHandler,\n isEnabled: AddToTableActionHandler.isEnabled,\n isHidden: AddToTableActionHandler.isHidden,\n resetFocus: false,\n },\n {\n type: 'remove-from-table',\n title: 'Remove from table',\n thunk: RemoveFromTableActionHandler,\n isEnabled: RemoveFromTableActionHandler.isEnabled,\n isHidden: RemoveFromTableActionHandler.isHidden,\n resetFocus: false,\n },\n {\n type: 'add-to-all-tables',\n title: 'Add to all tables',\n thunk: AddToAllTablesActionHandler,\n isEnabled: ({ field, type }) => (!isFunction(field) && !type.isDecorated()),\n resetFocus: false,\n },\n {\n type: 'remove-from-all-tables',\n title: 'Remove from all tables',\n thunk: RemoveFromAllTablesActionHandler,\n isEnabled: ({ field, type }) => (!isFunction(field) && !type.isDecorated()),\n resetFocus: false,\n },\n {\n type: 'copy-field-to-clipboard',\n title: 'Copy field name to clipboard',\n handler: CopyFieldToClipboard,\n isEnabled: () => true,\n resetFocus: false,\n },\n {\n type: 'change-field-type',\n title: 'Change field type',\n isEnabled: isChangeFieldTypeEnabled,\n isHidden: isChangeFieldTypeHidden,\n resetFocus: false,\n component: ChangeFieldType,\n help: ChangeFieldTypeHelp,\n },\n ],\n valueActions: filterCloudValueActions([\n {\n type: 'exclude',\n title: 'Exclude from results',\n thunk: ExcludeFromQueryHandler,\n isEnabled: ({ field, type }: ActionHandlerArguments) => (!isFunction(field) && !type.isDecorated()),\n resetFocus: false,\n },\n {\n type: 'add-to-query',\n title: 'Add to query',\n thunk: AddToQueryHandler,\n isEnabled: ({ field, type }: ActionHandlerArguments) => (!isFunction(field) && !type.isDecorated()),\n resetFocus: false,\n },\n {\n type: 'show-bucket',\n title: 'Show documents for value',\n thunk: ShowDocumentsHandler,\n isEnabled: ShowDocumentsHandler.isEnabled,\n resetFocus: true,\n },\n {\n type: 'create-extractor',\n title: 'Create extractor',\n isEnabled: ({ type, contexts }) => (!!contexts.message && !type.isDecorated() && !!contexts.isLocalNode),\n component: SelectExtractorType,\n resetFocus: false,\n },\n {\n type: 'highlight-value',\n title: 'Highlight this value',\n thunk: HighlightValueHandler,\n isEnabled: HighlightValueHandler.isEnabled,\n resetFocus: false,\n },\n {\n type: 'copy-value-to-clipboard',\n title: 'Copy value to clipboard',\n handler: CopyValueToClipboard,\n isEnabled: () => true,\n resetFocus: false,\n },\n {\n type: 'create-event-definition-from-value',\n title: 'Create event definition',\n isEnabled: () => true,\n resetFocus: false,\n component: CreateEventDefinition,\n },\n ], ['create-extractor']),\n visualizationTypes: visualizationBindings,\n widgetCreators: [{\n title: 'Message Count',\n func: CreateMessageCount,\n icon: () => <Icon name=\"tag\" />,\n }, {\n title: 'Message Table',\n func: CreateMessagesWidget,\n icon: () => <Icon name=\"list\" />,\n }, {\n title: 'Custom Aggregation',\n func: CreateCustomAggregation,\n icon: () => <Icon name=\"monitoring\" />,\n }, {\n title: 'Events Overview',\n func: CreateEventsWidget,\n icon: () => <Icon name=\"report\" type=\"regular\" />,\n }],\n creators: [\n {\n type: 'preset',\n title: 'Message Count',\n func: AddMessageCountActionHandler,\n },\n {\n type: 'preset',\n title: 'Message Table',\n func: AddMessageTableActionHandler,\n },\n {\n type: 'generic',\n title: 'Aggregation',\n func: AddCustomAggregation,\n },\n {\n type: 'events' as const,\n title: 'Events Overview',\n func: AddEventsWidgetActionHandler,\n },\n ],\n 'views.completers': [\n new FieldNameCompletion(),\n new FieldValueCompletion(),\n new OperatorCompletion(),\n ],\n 'views.hooks.loadingView': [\n requirementsProvided,\n bindSearchParamsFromQuery,\n ],\n 'views.elements.header': [\n () => <IfSearch><MigrateFieldCharts /></IfSearch>,\n ViewHeader,\n ],\n 'views.export.formats': [\n {\n type: 'csv',\n displayName: () => 'Comma-Separated Values (CSV)',\n mimeType: 'text/csv',\n fileExtension: 'csv',\n },\n ],\n 'views.components.widgets.messageTable.previewOptions': [\n {\n title: 'Show message in new row',\n isChecked: (config) => config.showMessageRow,\n isDisabled: () => false,\n onChange: (config, onConfigChange) => {\n const willShowRowMessage = !config.showMessageRow;\n const willShowSummary = !willShowRowMessage ? false : config.showSummary;\n const newConfig = config.toBuilder().showMessageRow(willShowRowMessage).showSummary(willShowSummary).build();\n\n return onConfigChange(newConfig);\n },\n sort: 1,\n },\n ],\n 'views.components.widgets.events.filterComponents': eventsFilterComponents,\n 'views.components.widgets.events.attributes': eventsAttributes,\n 'views.reducers': viewsReducers,\n 'views.elements.validationErrorExplanation': [WarmTierQueryValidation],\n};\n\nexport default exports;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\n\nimport { Button, BootstrapModalForm, Input } from 'components/bootstrap';\nimport { IfPermitted } from 'components/common';\nimport ObjectUtils from 'util/ObjectUtils';\nimport withTelemetry from 'logic/telemetry/withTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst ThreatIntelPluginConfig = createReactClass({\n // eslint-disable-next-line react/no-unused-class-component-methods\n displayName: 'ThreatIntelPluginConfig',\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n propTypes: {\n config: PropTypes.object,\n updateConfig: PropTypes.func.isRequired,\n sendTelemetry: PropTypes.func.isRequired,\n },\n\n getDefaultProps() {\n return {\n config: {\n tor_enabled: false,\n spamhaus_enabled: false,\n abusech_ransom_enabled: false,\n },\n };\n },\n\n getInitialState() {\n const { config } = this.props;\n\n return {\n config: ObjectUtils.clone(config),\n threatintelConfigModal: false,\n };\n },\n\n UNSAFE_componentWillReceiveProps(newProps) {\n this.setState({ config: ObjectUtils.clone(newProps.config) });\n },\n\n _updateConfigField(field, value) {\n const { config } = this.state;\n const update = ObjectUtils.clone(config);\n update[field] = value;\n this.setState({ config: update });\n },\n\n _onCheckboxClick(field, ref) {\n return () => {\n this._updateConfigField(field, this[ref].getChecked());\n };\n },\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n _onSelect(field) {\n return (selection) => {\n this._updateConfigField(field, selection);\n };\n },\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n _onUpdate(field) {\n return (e) => {\n this._updateConfigField(field, e.target.value);\n };\n },\n\n _openModal() {\n this.setState({ threatintelConfigModal: true });\n },\n\n _closeModal() {\n this.setState({ threatintelConfigModal: false });\n },\n\n _resetConfig() {\n // Reset to initial state when the modal is closed without saving.\n this.setState(this.getInitialState());\n },\n\n _saveConfig() {\n const { updateConfig, sendTelemetry } = this.props;\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.THREATINTEL_CONFIGURATION_UPDATED, {\n app_pathname: 'configurations',\n app_section: 'threat-intel',\n });\n\n updateConfig(this.state.config).then(() => {\n this._closeModal();\n });\n },\n\n render() {\n return (\n <div>\n <h3>Threat Intelligence Lookup Configuration</h3>\n\n <p>\n Configuration for threat intelligence lookup plugin.\n </p>\n\n <dl className=\"deflist\">\n <dt>Tor exit nodes:</dt>\n <dd>{this.state.config.tor_enabled === true ? 'Enabled' : 'Disabled'}</dd>\n\n <dt>Spamhaus:</dt>\n <dd>{this.state.config.spamhaus_enabled === true ? 'Enabled' : 'Disabled'}</dd>\n </dl>\n\n <IfPermitted permissions=\"clusterconfigentry:edit\">\n <Button bsStyle=\"info\" bsSize=\"xs\" onClick={this._openModal}>Edit configuration</Button>\n </IfPermitted>\n\n <BootstrapModalForm show={this.state.threatintelConfigModal}\n title=\"Update Threat Intelligence plugin Configuration\"\n onSubmitForm={this._saveConfig}\n onCancel={this._resetConfig}\n submitButtonText=\"Update configuration\">\n <fieldset>\n <Input type=\"checkbox\"\n id=\"tor-checkbox\"\n ref={(elem) => {\n // eslint-disable-next-line react/no-unused-class-component-methods\n this.torEnabled = elem;\n }}\n label=\"Allow Tor exit node lookups?\"\n help=\"Enable to include Tor exit node lookup in global pipeline function, disabling also stops refreshing the data.\"\n name=\"tor_enabled\"\n checked={this.state.config.tor_enabled}\n onChange={this._onCheckboxClick('tor_enabled', 'torEnabled')} />\n\n <Input type=\"checkbox\"\n id=\"spamhaus-checkbox\"\n ref={(elem) => {\n // eslint-disable-next-line react/no-unused-class-component-methods\n this.spamhausEnabled = elem;\n }}\n label=\"Allow Spamhaus DROP/EDROP lookups?\"\n help=\"Enable to include Spamhaus lookup in global pipeline function, disabling also stops refreshing the data.\"\n name=\"tor_enabled\"\n checked={this.state.config.spamhaus_enabled}\n onChange={this._onCheckboxClick('spamhaus_enabled', 'spamhausEnabled')} />\n </fieldset>\n </BootstrapModalForm>\n </div>\n );\n },\n});\n\nexport default withTelemetry(ThreatIntelPluginConfig);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst SpamhausEDROPAdapterDocumentation = () => <div />;\n\nexport default SpamhausEDROPAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SpamhausEDROPAdapterFieldSet = ({ handleFormEvent, validationState, validationMessage, config }) => (\n <fieldset />\n);\n\nSpamhausEDROPAdapterFieldSet.propTypes = {\n config: PropTypes.shape({}).isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n};\n\nexport default SpamhausEDROPAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst SpamhausEDROPAdapterSummary = () => (\n <dl>\n <i>No configuration required.</i>\n </dl>\n);\n\nexport default SpamhausEDROPAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst TorExitNodeAdapterDocumentation = () => <div />;\n\nexport default TorExitNodeAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst TorExitNodeAdapterFieldSet = () => <fieldset />;\n\nexport default TorExitNodeAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst TorExitNodeAdapterSummary = () => <i>No configuration necessary</i>;\n\nexport default TorExitNodeAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nconst WhoisAdapterDocumentation = () => {\n const style = { marginBottom: 10 };\n\n return (\n <div>\n <p style={style}>\n The whois IP lookup data adapter can request network ownership information for an IP address.\n </p>\n\n <h3 style={style}>Configuration</h3>\n\n <h5 style={style}>Connect timeout</h5>\n\n <p style={style}>\n The connection timeout for the socket to the whois server in milliseconds. If you set this to a\n high value, it can affect your processing performance.\n </p>\n\n <h5 style={style}>Read timeout</h5>\n\n <p style={style}>\n The connection read timeout for the socket to the whois server in milliseconds. If you set this to a\n high value, it can affect your processing performance.\n </p>\n </div>\n );\n};\n\nexport default WhoisAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from 'components/bootstrap';\n\nclass WhoisAdapterFieldSet extends React.Component {\n static propTypes = {\n config: PropTypes.shape({\n connect_timeout: PropTypes.number.isRequired,\n read_timeout: PropTypes.number.isRequired,\n }).isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n };\n\n render() {\n const { config } = this.props;\n\n return (\n <fieldset>\n <Input type=\"number\"\n id=\"connect_timeout\"\n name=\"connect_timeout\"\n label=\"Connect timeout\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('connect_timeout', 'WHOIS connection timeout in milliseconds.')}\n bsStyle={this.props.validationState('connect_timeout')}\n value={config.connect_timeout}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"number\"\n id=\"read_timeout\"\n name=\"read_timeout\"\n label=\"Read timeout\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('read_timeout', 'WHOIS connection read timeout in milliseconds.')}\n bsStyle={this.props.validationState('read_timeout')}\n value={config.read_timeout}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n </fieldset>\n );\n }\n}\n\nexport default WhoisAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst WhoisAdapterSummary = ({ dataAdapter }) => {\n const { config } = dataAdapter;\n\n return (\n <dl>\n <dt>Connect timeout</dt>\n <dd>{config.connect_timeout} ms</dd>\n <dt>Read timeout</dt>\n <dd>{config.read_timeout} ms</dd>\n </dl>\n );\n};\n\nWhoisAdapterSummary.propTypes = {\n dataAdapter: PropTypes.shape({\n config: PropTypes.shape({\n connect_timeout: PropTypes.number.isRequired,\n read_timeout: PropTypes.number.isRequired,\n }),\n }).isRequired,\n};\n\nexport default WhoisAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nconst AbuseChRansomAdapterDocumentation = () => (\n <div>\n <Alert style={{ marginBottom: 10 }} bsStyle=\"warning\" title=\"Deprecation Warning\">\n <p>The abuse.ch Ransomware Tracker was shut down on 2019-12-08. This Data Adapter should not be used.</p>\n </Alert>\n </div>\n);\n\nexport default AbuseChRansomAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport ObjectUtils from 'util/ObjectUtils';\nimport { Input } from 'components/bootstrap';\nimport { Select, TimeUnitInput } from 'components/common';\n\nclass AbuseChRansomAdapterFieldSet extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n handleFormEvent: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n validationState: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n validationMessage: PropTypes.func.isRequired,\n };\n\n _update = (value, unit, enabled, name) => {\n const config = ObjectUtils.clone(this.props.config);\n config[name] = enabled ? value : 0;\n config[`${name}_unit`] = unit;\n this.props.updateConfig(config);\n };\n\n updateRefreshInterval = (value, unit, enabled) => {\n this._update(value, unit, enabled, 'refresh_interval');\n };\n\n _onBlocklistTypeSelect = (id) => {\n const config = ObjectUtils.clone(this.props.config);\n config.blocklist_type = id;\n this.props.updateConfig(config);\n };\n\n render() {\n const { config } = this.props;\n const blocklistTypes = [\n { label: 'Domain blocklist', value: 'DOMAINS' },\n { label: 'URL blocklist', value: 'URLS' },\n { label: 'IP blocklist', value: 'IPS' },\n ];\n\n return (\n <fieldset>\n <Input label=\"Blocklist type\"\n id=\"blocklist-type-selector\"\n required\n autoFocus\n help=\"Select the type of the abuse.ch ransomware blocklist\"\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select the type of blocklist\"\n clearable={false}\n options={blocklistTypes}\n matchProp=\"label\"\n onChange={this._onBlocklistTypeSelect}\n value={config.blocklist_type} />\n </Input>\n <TimeUnitInput label=\"Refresh blocklist\"\n help=\"If enabled, the abuse.ch ransomware blocklist is refreshed when it changed.\"\n update={this.updateRefreshInterval}\n value={config.refresh_interval}\n unit={config.refresh_interval_unit || 'MINUTES'}\n defaultEnabled={config.refresh_interval > 0}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n </fieldset>\n );\n }\n}\n\nexport default AbuseChRansomAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { TimeUnit } from 'components/common';\nimport { Alert } from 'components/bootstrap';\n\nclass AbuseChRansomAdapterSummary extends React.Component {\n static propTypes = {\n dataAdapter: PropTypes.object.isRequired,\n };\n\n render() {\n const { config } = this.props.dataAdapter;\n const blocklistType = {\n DOMAINS: 'Domain blocklist',\n URLS: 'URL blocklist',\n IPS: 'IP blocklist',\n };\n\n return (\n <div>\n <dl>\n <dt>Blocklist type</dt>\n <dd>{blocklistType[config.blocklist_type]}</dd>\n <dt>Update interval</dt>\n <dd><TimeUnit value={config.refresh_interval} unit={config.refresh_interval_unit} /></dd>\n </dl>\n <Alert style={{ marginBottom: 10 }} bsStyle=\"warning\" title=\"Deprecation Warning\">\n <p>The abuse.ch Ransomware Tracker was shut down on 2019-12-08. This Data Adapter should not be used.</p>\n </Alert>\n </div>\n );\n }\n}\n\nexport default AbuseChRansomAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n/* eslint-disable react/no-unescaped-entities */\nimport React from 'react';\n\nimport { ExternalLink } from 'components/common';\n\nclass OTXAdapterDocumentation extends React.Component {\n render() {\n const style = { marginBottom: 10 };\n\n return (\n <div>\n <p style={style}>\n The AlienVault OTX data adapter uses the <ExternalLink href=\"https://otx.alienvault.com/api\">OTX API</ExternalLink> to\n lookup indicators for the given key.\n </p>\n\n <h3 style={style}>Configuration</h3>\n\n <h5 style={style}>Indicator</h5>\n\n <p style={style}>\n The OTX API offers several different indicators of compromise (IOCs). You have to select which indicator\n should be used for this data adapter.\n </p>\n <p style={style}>\n The <code>IP Auto-Detect</code> indicator is not an official one. We added that to make it possible to\n auto-detect the IP address type to allow using the same data adapter for IP v4 and v6 addresses.\n </p>\n\n <h5 style={style}>OTX API Key</h5>\n\n <p style={style}>\n The OTX API key is used to authenticate API requests. Requests also work if you don't enter an API key, but\n you will most probably get a smaller request limit. <strong>If you use this data adapter for production traffic,\n please register for an OTX account and get an API key.\n </strong>\n </p>\n\n <h5 style={style}>OTX API URL</h5>\n\n <p style={style}>\n HTTP URL of the OTX API server. The default setting of <code>https://otx.alienvault.com</code> should not be changed\n except if you want to run some tests with a custom server.\n </p>\n\n <h5 style={style}>HTTP User-Agent</h5>\n\n <p style={style}>\n This will set the <code>User-Agent</code> HTTP header for OTX API requests. You can modify this to include\n your contact details so the OTX API operators can contact you if there are problems with your API requests.\n </p>\n\n <h5 style={style}>HTTP Connection Timeout</h5>\n\n <p style={style}>\n The HTTP connection timeout in milliseconds for the OTX API request. If you set this to a high value and\n the OTX API connection is slow, processing performance can be affected.\n </p>\n\n <h5 style={style}>HTTP Write Timeout</h5>\n\n <p style={style}>\n The HTTP write timeout in milliseconds for the OTX API request. If you set this to a high value and\n the OTX API connection is slow, processing performance can be affected.\n </p>\n\n <h5 style={style}>HTTP Read Timeout</h5>\n\n <p style={style}>\n The HTTP read timeout in milliseconds for the OTX API request. If you set this to a high value and\n the OTX API connection is slow, processing performance can be affected.\n </p>\n </div>\n );\n }\n}\n\nexport default OTXAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\n\nconst OTX_INDICATORS = [\n { label: 'IP Auto-Detect', value: 'IPAutoDetect' },\n { label: 'IP v4', value: 'IPv4' },\n { label: 'IP v6', value: 'IPv6' },\n { label: 'Domain', value: 'domain' },\n { label: 'Hostname', value: 'hostname' },\n { label: 'File', value: 'file' },\n { label: 'URL', value: 'url' },\n { label: 'CVE', value: 'cve' },\n { label: 'NIDS', value: 'nids' },\n { label: 'Correlation-Rule', value: 'correlation-rule' },\n];\n\nclass OTXAdapterFieldSet extends React.Component {\n static propTypes = {\n config: PropTypes.shape({\n indicator: PropTypes.string.isRequired,\n api_key: PropTypes.string,\n api_url: PropTypes.string.isRequired,\n http_user_agent: PropTypes.string.isRequired,\n http_connect_timeout: PropTypes.number.isRequired,\n http_write_timeout: PropTypes.number.isRequired,\n http_read_timeout: PropTypes.number.isRequired,\n }).isRequired,\n updateConfig: PropTypes.func.isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n };\n\n handleSelect = (fieldName) => (selectedIndicator) => {\n const config = lodash.cloneDeep(this.props.config);\n config[fieldName] = selectedIndicator;\n this.props.updateConfig(config);\n };\n\n render() {\n const { config } = this.props;\n\n return (\n <fieldset>\n <Input id=\"indicator\"\n label=\"Indicator\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('indicator', 'The OTX indicator type that should be used for lookups.')}\n bsStyle={this.props.validationState('indicator')}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\">\n <Select placeholder=\"Select indicator\"\n clearable={false}\n options={OTX_INDICATORS}\n matchProp=\"label\"\n onChange={this.handleSelect('indicator')}\n value={config.indicator} />\n </Input>\n <Input type=\"text\"\n id=\"api_key\"\n name=\"api_key\"\n label=\"OTX API Key\"\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('api_key', 'Your OTX API key.')}\n bsStyle={this.props.validationState('api_key')}\n value={config.api_key}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"text\"\n id=\"api_url\"\n name=\"api_url\"\n label=\"OTX API URL\"\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('api_url', 'URL of the OTX API server.')}\n bsStyle={this.props.validationState('api_url')}\n value={config.api_url}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"text\"\n id=\"http_user_agent\"\n name=\"http_user_agent\"\n label=\"HTTP User-Agent\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('http_user_agent', 'The User-Agent header that should be used for the HTTP request.')}\n bsStyle={this.props.validationState('http_user_agent')}\n value={config.http_user_agent}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"number\"\n id=\"http_connect_timeout\"\n name=\"http_connect_timeout\"\n label=\"HTTP Connect Timeout\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('http_connect_timeout', 'HTTP connection timeout in milliseconds.')}\n bsStyle={this.props.validationState('http_connect_timeout')}\n value={config.http_connect_timeout}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"number\"\n id=\"http_write_timeout\"\n name=\"http_write_timeout\"\n label=\"HTTP Write Timeout\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('http_write_timeout', 'HTTP write timeout in milliseconds.')}\n bsStyle={this.props.validationState('http_write_timeout')}\n value={config.http_write_timeout}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n <Input type=\"number\"\n id=\"http_read_timeout\"\n name=\"http_read_timeout\"\n label=\"HTTP Read Timeout\"\n required\n onChange={this.props.handleFormEvent}\n help={this.props.validationMessage('http_read_timeout', 'HTTP read timeout in milliseconds.')}\n bsStyle={this.props.validationState('http_read_timeout')}\n value={config.http_read_timeout}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\" />\n </fieldset>\n );\n }\n}\n\nexport default OTXAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nclass OTXAdapterSummary extends React.Component {\n static propTypes = {\n dataAdapter: PropTypes.shape({\n config: PropTypes.shape({\n indicator: PropTypes.string.isRequired,\n api_key: PropTypes.string,\n api_url: PropTypes.string.isRequired,\n http_user_agent: PropTypes.string.isRequired,\n http_connect_timeout: PropTypes.number.isRequired,\n http_write_timeout: PropTypes.number.isRequired,\n http_read_timeout: PropTypes.number.isRequired,\n }),\n }),\n };\n\n render() {\n const { config } = this.props.dataAdapter;\n\n return (\n <dl>\n <dt>Indicator</dt>\n <dd>{config.indicator}</dd>\n <dt>OTX API Key</dt>\n <dd>{config.api_key || 'n/a'}</dd>\n <dt>OTX API URL</dt>\n <dd>{config.api_url}</dd>\n <dt>HTTP User-Agent</dt>\n <dd>{config.http_user_agent}</dd>\n <dt>HTTP Connect Timeout</dt>\n <dd>{config.http_connect_timeout} ms</dd>\n <dt>HTTP Write Timeout</dt>\n <dd>{config.http_write_timeout} ms</dd>\n <dt>HTTP Read Timeout</dt>\n <dd>{config.http_read_timeout} ms</dd>\n </dl>\n );\n }\n}\n\nexport default OTXAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n// eslint-disable-next-line no-unused-vars, no-unused-vars\nimport { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport ThreatIntelPluginConfig from './components/ThreatIntelPluginConfig';\nimport {\n SpamhausEDROPAdapterDocumentation,\n SpamhausEDROPAdapterFieldSet,\n SpamhausEDROPAdapterSummary,\n} from './components/adapters/spamhaus-edrop';\nimport {\n TorExitNodeAdapterDocumentation,\n TorExitNodeAdapterFieldSet,\n TorExitNodeAdapterSummary,\n} from './components/adapters/torexitnode';\nimport {\n WhoisAdapterDocumentation,\n WhoisAdapterFieldSet,\n WhoisAdapterSummary,\n} from './components/adapters/whois/index';\nimport {\n AbuseChRansomAdapterDocumentation,\n AbuseChRansomAdapterFieldSet,\n AbuseChRansomAdapterSummary,\n} from './components/adapters/abusech/index';\nimport { OTXAdapterDocumentation, OTXAdapterFieldSet, OTXAdapterSummary } from './components/adapters/otx';\n\nconst bindings = {\n systemConfigurations: [\n {\n component: ThreatIntelPluginConfig,\n displayName: 'Threat Intelligence Lookup',\n configType: 'org.graylog.plugins.threatintel.ThreatIntelPluginConfiguration',\n },\n ],\n lookupTableAdapters: [\n {\n type: 'spamhaus-edrop',\n displayName: 'Spamhaus (E)DROP',\n formComponent: SpamhausEDROPAdapterFieldSet,\n summaryComponent: SpamhausEDROPAdapterSummary,\n documentationComponent: SpamhausEDROPAdapterDocumentation,\n },\n {\n type: 'torexitnode',\n displayName: 'Tor Exit Node',\n formComponent: TorExitNodeAdapterFieldSet,\n summaryComponent: TorExitNodeAdapterSummary,\n documentationComponent: TorExitNodeAdapterDocumentation,\n },\n {\n type: 'whois',\n displayName: 'Whois for IPs',\n formComponent: WhoisAdapterFieldSet,\n summaryComponent: WhoisAdapterSummary,\n documentationComponent: WhoisAdapterDocumentation,\n },\n {\n type: 'abuse-ch-ransom',\n displayName: '[Deprecated] Ransomware blocklists from abuse.ch',\n formComponent: AbuseChRansomAdapterFieldSet,\n summaryComponent: AbuseChRansomAdapterSummary,\n documentationComponent: AbuseChRansomAdapterDocumentation,\n },\n {\n type: 'otx-api',\n displayName: 'Alienvault OTX API',\n formComponent: OTXAdapterFieldSet,\n summaryComponent: OTXAdapterSummary,\n documentationComponent: OTXAdapterDocumentation,\n },\n ],\n};\n\nexport default bindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nexport const PLUGIN_PACKAGE = 'org.graylog.aws';\nexport const PLUGIN_CONFIG_CLASS_NAME = `${PLUGIN_PACKAGE}.config.AWSPluginConfiguration`;\nexport const PLUGIN_API_ENDPOINT = `/plugins/${PLUGIN_PACKAGE}/config`;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport omit from 'lodash/omit';\n\nimport URLUtils from 'util/URLUtils';\nimport fetch from 'logic/rest/FetchProvider';\nimport { BootstrapModalForm, Button, Input } from 'components/bootstrap';\nimport { IfPermitted } from 'components/common';\nimport { ConfigurationsActions } from 'stores/configurations/ConfigurationsStore';\nimport { getValueFromInput } from 'util/FormsUtils';\n\nimport { PLUGIN_API_ENDPOINT, PLUGIN_CONFIG_CLASS_NAME } from '../Constants';\nimport UserNotification from '../../util/UserNotification';\n\ntype Props = {\n config: {\n lookups_enabled: boolean,\n lookup_regions: string,\n access_key: string,\n secret_key: string,\n proxy_enabled: boolean,\n secret_key_salt?: string\n }\n}\n\nconst _initialState = (config) => omit(config, ['secret_key', 'secret_key_salt']);\n\nconst postConfigUpdate = (update) => {\n const url = URLUtils.qualifyUrl(PLUGIN_API_ENDPOINT);\n\n return fetch('PUT', url, update);\n};\n\nconst AWSPluginConfiguration = ({ config }: Props) => {\n const [updateConfig, setUpdateConfig] = useState(_initialState(config));\n const [showAwsConfigModal, setShowAwsConfigModal] = useState(false);\n\n const updateConfigField = (field, value) => {\n setUpdateConfig({ ...updateConfig, [field]: value });\n };\n\n const onFocusSecretKey = () => {\n setUpdateConfig({ ...updateConfig, secret_key: '' });\n };\n\n const onUpdate = (field) => (value) => {\n if (typeof value === 'object') {\n updateConfigField(field, getValueFromInput(value.target));\n } else {\n updateConfigField(field, value);\n }\n };\n\n const openModal = () => {\n setShowAwsConfigModal(true);\n };\n\n const closeModal = () => {\n setShowAwsConfigModal(false);\n };\n\n const resetConfig = () => {\n setUpdateConfig(_initialState(config));\n closeModal();\n };\n\n const saveConfig = () => {\n postConfigUpdate(updateConfig)\n .then(\n () => {\n ConfigurationsActions.list(PLUGIN_CONFIG_CLASS_NAME);\n closeModal();\n },\n (error) => {\n UserNotification.error(`AWS plugin configuration failed with status: ${error}`,\n 'Could not save AWS plugin configuration.');\n });\n };\n\n return (\n <div>\n <h3>AWS Plugin Configuration</h3>\n\n <p>\n Base configuration for all plugins the AWS module is providing. Note\n that some parameters will be stored in MongoDB without encryption.\n Graylog users with required permissions will be able to read them in\n the configuration dialog on this page.\n </p>\n\n <dl className=\"deflist\">\n <dt>Instance detail lookups:</dt>\n <dd>\n {config.lookups_enabled === true\n ? 'Enabled'\n : 'Disabled'}\n </dd>\n\n <dt>Connect through proxy:</dt>\n <dd>\n {config.proxy_enabled === true\n ? 'Enabled'\n : 'Disabled'}\n </dd>\n\n <dt>Lookup regions:</dt>\n <dd>\n {config.lookup_regions\n ? config.lookup_regions\n : '[not set]'}\n </dd>\n\n <dt>Access Key:</dt>\n <dd>\n {config.access_key ? config.access_key : '[not set]'}\n </dd>\n\n <dt>Secret Key:</dt>\n <dd>\n {config.secret_key ? '***********' : '[not set]'}\n </dd>\n </dl>\n\n <IfPermitted permissions=\"clusterconfigentry:edit\">\n <Button bsStyle=\"info\" bsSize=\"xs\" onClick={openModal}>\n Edit configuration\n </Button>\n </IfPermitted>\n\n <BootstrapModalForm show={showAwsConfigModal}\n title=\"Update AWS Plugin Configuration\"\n onSubmitForm={saveConfig}\n onCancel={resetConfig}\n submitButtonText=\"Update configuration\">\n <fieldset>\n <Input id=\"aws-lookups-enabled\"\n type=\"checkbox\"\n label=\"Run AWS instance detail lookups for IP addresses?\"\n help={(\n <span>\n When enabled, a message processor will try to identify IP\n addresses of your AWS entities (like EC2, ELB, RDS, ...) and\n add additional information abut the service or instance behind\n it. It can take up to a minute for a change of this to take\n effect.\n </span>\n )}\n name=\"lookups_enabled\"\n checked={updateConfig.lookups_enabled}\n onChange={onUpdate('lookups_enabled')} />\n\n <Input id=\"aws-access-key\"\n type=\"text\"\n label=\"AWS Access Key\"\n help={(\n <span>\n Note that this will only be used in encrypted connections but\n stored in plaintext. Please consult the documentation for\n suggested rights to assign to the underlying IAM user.\n </span>\n )}\n name=\"access_key\"\n value={updateConfig.access_key}\n onChange={onUpdate('access_key')} />\n\n <Input id=\"aws-secret-key\"\n type=\"password\"\n label=\"AWS Secret Key\"\n help={(\n <span>\n Note that this will only be used in encrypted connections and will be\n stored encrypted (using the system secret). Please consult the documentation for\n suggested rights to assign to the underlying IAM user.\n </span>\n )}\n name=\"secret_key\"\n value={updateConfig.secret_key !== undefined ? updateConfig.secret_key : config.secret_key}\n onFocus={onFocusSecretKey}\n onChange={onUpdate('secret_key')} />\n\n <Input id=\"aws-lookup-regions\"\n type=\"text\"\n label=\"Lookup regions\"\n help={(\n <span>\n The AWS instance lookup message processor keeps a table of\n instances for fast address translation. Define the AWS regions\n you want to include in the tables. This should be all regions\n you run AWS services in. Remember that your IAM user needs\n permission for these regions or you will see warnings in your\n graylog-server log files.\n </span>\n )}\n name=\"lookup_regions\"\n value={updateConfig.lookup_regions}\n onChange={onUpdate('lookup_regions')} />\n\n <Input id=\"aws-proxy-enabled\"\n type=\"checkbox\"\n label=\"Use HTTP proxy?\"\n help={(\n <span>\n When enabled, we'll access the AWS APIs through the HTTP proxy configured (<code>http_proxy_uri</code>)\n in your Graylog configuration file.<br />\n <em>Important:</em> You have to restart all AWS inputs for this configuration to take effect.\n </span>\n )}\n name=\"proxy_enabled\"\n checked={updateConfig.proxy_enabled}\n onChange={onUpdate('proxy_enabled')} />\n </fieldset>\n </BootstrapModalForm>\n </div>\n );\n};\n\nAWSPluginConfiguration.propTypes = {\n config: PropTypes.shape({\n lookups_enabled: PropTypes.bool,\n lookup_regions: PropTypes.string,\n access_key: PropTypes.string,\n secret_key: PropTypes.string,\n proxy_enabled: PropTypes.bool,\n }),\n};\n\nAWSPluginConfiguration.defaultProps = {\n config: {\n lookups_enabled: false,\n lookup_regions: 'us-east-1,us-west-1,us-west-2,eu-west-1,eu-central-1',\n access_key: '',\n secret_key: '',\n proxy_enabled: false,\n },\n};\n\nexport default AWSPluginConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport AppConfig from 'util/AppConfig';\n\nimport AwsPluginConfiguration from './components/AWSPluginConfiguration';\nimport { PLUGIN_CONFIG_CLASS_NAME } from './Constants';\n\nconst bindings = AppConfig.isCloud() ? {} : {\n systemConfigurations: [\n {\n component: AwsPluginConfiguration,\n displayName: 'Aws',\n configType: PLUGIN_CONFIG_CLASS_NAME,\n },\n ],\n};\n\nexport default bindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nconst Routes = {\n INTEGRATIONS: {\n AWS: {\n CLOUDWATCH: {\n index: '/integrations/aws/cloudwatch',\n },\n },\n },\n};\n\nconst ApiRoutes = {\n INTEGRATIONS: {\n AWS: {\n PERMISSIONS: '/plugins/org.graylog.integrations/aws/permissions',\n REGIONS: '/plugins/org.graylog.integrations/aws/regions',\n CLOUDWATCH: {\n GROUPS: '/plugins/org.graylog.integrations/aws/cloudwatch/log_groups',\n },\n KINESIS: {\n HEALTH_CHECK: '/plugins/org.graylog.integrations/aws/kinesis/health_check',\n STREAMS: '/plugins/org.graylog.integrations/aws/kinesis/streams',\n SAVE: '/plugins/org.graylog.integrations/aws/inputs',\n },\n KINESIS_AUTO_SETUP: {\n CREATE_STREAM: '/plugins/org.graylog.integrations/aws/kinesis/auto_setup/create_stream',\n CREATE_SUBSCRIPTION_POLICY: '/plugins/org.graylog.integrations/aws/kinesis/auto_setup/create_subscription_policy',\n CREATE_SUBSCRIPTION: '/plugins/org.graylog.integrations/aws/kinesis/auto_setup/create_subscription',\n },\n },\n },\n};\n\nconst DocsRoutes = {\n INTEGRATIONS: {\n AWS: {\n AWS_KINESIS_CLOUDWATCH_INPUTS: 'aws-kinesiscloudwatch-input',\n },\n },\n};\n\nexport default Routes;\n\nexport { ApiRoutes, DocsRoutes };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\n\nimport Routes from 'integrations/aws/common/Routes.js';\n\nconst AWSInputConfiguration = ({ url }) => {\n const navigate = useNavigate();\n\n useEffect(() => {\n navigate(url);\n }, [url, navigate]);\n\n return null;\n};\n\nAWSInputConfiguration.propTypes = {\n url: PropTypes.string,\n};\n\nAWSInputConfiguration.defaultProps = {\n url: Routes.INTEGRATIONS.AWS.CLOUDWATCH.index,\n};\n\nexport default AWSInputConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { createContext, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const SidebarContext = createContext();\n\nexport const SidebarProvider = ({ children }) => {\n const [sidebar, setSidebar] = useState(<></>);\n\n const clearSidebar = () => {\n setSidebar(<></>);\n };\n\n return (\n <SidebarContext.Provider value={{ sidebar, clearSidebar, setSidebar }}>\n {children}\n </SidebarContext.Provider>\n );\n};\n\nSidebarProvider.propTypes = {\n children: PropTypes.any.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { createContext, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const FormDataContext = createContext();\n\nexport const FormDataProvider = ({ initialFormData, children }) => {\n const [formData, updateState] = useState(initialFormData);\n\n const setFormData = (id, fieldData) => {\n updateState({\n ...formData,\n [id]: {\n ...formData[id],\n ...fieldData,\n dirty: true,\n },\n });\n };\n\n const clearField = (id) => {\n if (Object.keys(formData).find((field) => field === id)) {\n delete formData[id];\n updateState(formData);\n }\n };\n\n return (\n <FormDataContext.Provider value={{ formData, setFormData, clearField }}>\n {children}\n </FormDataContext.Provider>\n );\n};\n\nFormDataProvider.propTypes = {\n children: PropTypes.any.isRequired,\n initialFormData: PropTypes.object,\n};\n\nFormDataProvider.defaultProps = {\n initialFormData: {},\n};\n\nexport default FormDataProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { createContext, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const StepsContext = createContext();\n\nexport const StepsProvider = ({ children }) => {\n const [currentStep, setCurrentStep] = useState('authorize');\n const [enabledSteps, enableStep] = useState(['authorize']);\n const [availableSteps, setAvailableStep] = useState([]);\n\n const isDisabledStep = (step) => {\n if (!enabledSteps || enabledSteps.length === 0) {\n return true;\n }\n\n return !enabledSteps.includes(step);\n };\n\n const setEnabledStep = (step) => {\n enableStep([...enabledSteps, step]);\n };\n\n return (\n <StepsContext.Provider value={{\n availableSteps,\n currentStep,\n enabledSteps,\n isDisabledStep,\n setAvailableStep,\n setCurrentStep,\n setEnabledStep,\n }}>\n {children}\n </StepsContext.Provider>\n );\n};\n\nStepsProvider.propTypes = {\n children: PropTypes.any.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { createContext, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ApiContext = createContext();\n\nexport const ApiProvider = ({ children }) => {\n const [availableRegions, setRegionsState] = useState([]);\n const [availableStreams, setStreamsState] = useState([]);\n const [availableGroups, setGroupsState] = useState([]);\n const [logData, setLogDataState] = useState(null);\n\n const setRegions = (results) => setRegionsState(results.regions);\n\n const setGroups = (results) => {\n const groups = results.log_groups.map((group) => ({ value: group, label: group }));\n setGroupsState(groups);\n };\n\n const setStreams = (results) => {\n const streams = results.streams.map((stream) => ({ value: stream, label: stream }));\n setStreamsState(streams);\n };\n\n const setLogData = (response) => {\n setLogDataState({\n message: JSON.stringify(response.message_fields, null, 2),\n type: response.input_type,\n additional: response.explanation,\n });\n };\n\n const clearLogData = () => {\n setLogDataState(null);\n };\n\n return (\n <ApiContext.Provider value={{\n availableStreams,\n setStreams,\n availableRegions,\n setRegions,\n logData,\n setLogData,\n clearLogData,\n availableGroups,\n setGroups,\n }}>\n {children}\n </ApiContext.Provider>\n );\n};\n\nApiProvider.propTypes = {\n children: PropTypes.any.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { createContext, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const AdvancedOptionsContext = createContext();\n\nexport const AdvancedOptionsProvider = ({ children }) => {\n const [isAdvancedOptionsVisible, setAdvancedOptionsVisibility] = useState(false);\n const [isAWSCustomEndpointsVisible, setAWSCustomEndpointsVisibility] = useState(false);\n\n return (\n <AdvancedOptionsContext.Provider value={{\n isAdvancedOptionsVisible,\n isAWSCustomEndpointsVisible,\n setAdvancedOptionsVisibility,\n setAWSCustomEndpointsVisibility,\n }}>\n {children}\n </AdvancedOptionsContext.Provider>\n );\n};\n\nAdvancedOptionsProvider.propTypes = {\n children: PropTypes.any.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nconst KINESIS_LOG_TYPES = [\n { value: 'KINESIS_CLOUDWATCH_FLOW_LOGS', label: 'Kinesis CloudWatch Flow Logs' },\n { value: 'KINESIS_CLOUDWATCH_RAW', label: 'Kinesis CloudWatch Raw' },\n { value: 'KINESIS_RAW', label: 'Kinesis Raw' },\n];\n\nconst DEFAULT_KINESIS_LOG_TYPE = 'KINESIS_CLOUDWATCH_FLOW_LOGS';\n\nconst AWS_AUTH_TYPES = {\n automatic: 'Automatic',\n keysecret: 'Key & Secret',\n};\n\nexport {\n AWS_AUTH_TYPES,\n KINESIS_LOG_TYPES,\n DEFAULT_KINESIS_LOG_TYPE,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\n\nimport { AWS_AUTH_TYPES, DEFAULT_KINESIS_LOG_TYPE } from './constants';\n\nexport const toAWSRequest = (formData, options) => {\n const {\n awsAuthenticationType,\n awsCloudWatchAssumeARN,\n awsCloudWatchAwsKey,\n awsCloudWatchAwsSecret,\n awsEndpointCloudWatch,\n awsEndpointIAM,\n awsEndpointDynamoDB,\n awsEndpointKinesis,\n key,\n secret,\n } = formData;\n\n return {\n ...awsAuthenticationType?.value === AWS_AUTH_TYPES.keysecret ? {\n aws_access_key_id: awsCloudWatchAwsKey?.value,\n aws_secret_access_key: awsCloudWatchAwsSecret?.value,\n } : {\n aws_access_key_id: key,\n aws_secret_access_key: secret,\n },\n assume_role_arn: awsCloudWatchAssumeARN?.value,\n cloudwatch_endpoint: awsEndpointCloudWatch?.value,\n dynamodb_endpoint: awsEndpointDynamoDB?.value,\n iam_endpoint: awsEndpointIAM?.value,\n kinesis_endpoint: awsEndpointKinesis?.value,\n ...options,\n };\n};\n\nexport const toGenericInputCreateRequest = ({\n awsAuthenticationType,\n awsCloudWatchAddFlowLogPrefix = { value: undefined },\n awsCloudWatchAssumeARN = { value: undefined },\n awsCloudWatchAwsKey = { value: undefined },\n awsCloudWatchAwsRegion,\n awsCloudWatchBatchSize,\n awsEndpointCloudWatch = { value: undefined },\n awsCloudWatchKinesisInputType = { value: DEFAULT_KINESIS_LOG_TYPE },\n awsCloudWatchKinesisStream,\n awsCloudWatchName,\n awsCloudWatchThrottleEnabled = { value: undefined },\n awsEndpointDynamoDB = { value: undefined },\n awsEndpointIAM = { value: undefined },\n awsEndpointKinesis = { value: undefined },\n awsCloudWatchAwsSecret,\n key,\n secret,\n}) => ({\n type: 'org.graylog.integrations.aws.inputs.AWSInput',\n title: awsCloudWatchName.value,\n configuration: {\n ...awsAuthenticationType?.value === AWS_AUTH_TYPES.keysecret ? {\n aws_access_key: awsCloudWatchAwsKey?.value,\n aws_secret_key: awsCloudWatchAwsSecret?.value,\n } : {\n aws_access_key: key,\n aws_secret_key: secret,\n },\n aws_message_type: awsCloudWatchKinesisInputType.value,\n throttling_allowed: !!awsCloudWatchThrottleEnabled.value,\n aws_flow_log_prefix: !!awsCloudWatchAddFlowLogPrefix.value,\n aws_region: awsCloudWatchAwsRegion.value,\n aws_assume_role_arn: awsCloudWatchAssumeARN?.value,\n cloudwatch_endpoint: awsEndpointCloudWatch?.value,\n dynamodb_endpoint: awsEndpointDynamoDB?.value,\n iam_endpoint: awsEndpointIAM?.value,\n kinesis_endpoint: awsEndpointKinesis?.value,\n kinesis_stream_name: awsCloudWatchKinesisStream.value,\n kinesis_record_batch_size: Number(awsCloudWatchBatchSize.value || awsCloudWatchBatchSize.defaultValue),\n },\n});\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nconst formValidation = {\n checkInputValidity: (input, customErrorMessage) => {\n const { validity } = input;\n const isValid = validity.valid;\n const providedMessage = input.getAttribute('title');\n\n if (isValid) {\n return undefined;\n }\n\n const isEmpty = validity.valueMissing;\n const isIncorrectType = validity.typeMismatch;\n const isIncorrectPattern = validity.patternMismatch;\n const isTooLong = validity.tooLong || validity.rangeOverflow;\n const isTooShort = validity.rangeUnderflow;\n const isInvalidStep = validity.stepMismatch;\n\n const possibleErrors = [\n { invalid: isEmpty, message: providedMessage || 'A value is required.' },\n { invalid: isIncorrectType, message: providedMessage || 'Please verify that your input is the expected type (ie: email address).' },\n { invalid: isIncorrectPattern, message: providedMessage || 'This input does not match the expected value.' },\n { invalid: isTooLong, message: providedMessage || 'Your input is too long.' },\n { invalid: isTooShort, message: providedMessage || 'Your input is too short.' },\n { invalid: isInvalidStep, message: providedMessage || 'Unexpected value.' },\n ];\n\n const errorOutput = possibleErrors.find((error) => error.invalid);\n\n return customErrorMessage || errorOutput.message;\n },\n\n isFormValid: (requiredFields, context) => !!requiredFields.find((field) => (!context[field] || !context[field].value || context[field].error)),\n};\n\nexport default formValidation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Input } from 'components/bootstrap';\nimport formValidation from 'integrations/aws/utils/formValidation';\nimport Icon from 'components/common/Icon';\n\nconst Label = ({ label, error }) => {\n if (error) {\n return (\n <ErrorContainer>\n {label}\n <Error><Icon name=\"warning\" /> {error}</Error>\n </ErrorContainer>\n );\n }\n\n return label;\n};\n\nconst ValidatedInput = ({ className, help, onChange, id, label, fieldData, type, ...restProps }) => {\n const { dirty, error, value } = fieldData;\n\n const checkValidity = (event) => {\n if (dirty) {\n const errorOutput = formValidation.checkInputValidity(event.target);\n\n onChange(event, { error: errorOutput });\n }\n };\n\n return (\n <Input {...restProps}\n id={id}\n type={type}\n onChange={onChange}\n onBlur={checkValidity}\n className={className}\n bsStyle={(error && dirty && 'error') || undefined}\n defaultValue={(type !== 'select' && value) || undefined}\n value={(type === 'select' && value) || undefined}\n label={<Label label={label} error={error} />}\n help={help} />\n );\n};\n\nValidatedInput.propTypes = {\n className: PropTypes.string,\n fieldData: PropTypes.shape({\n error: PropTypes.string,\n dirty: PropTypes.bool,\n value: PropTypes.string,\n }),\n help: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]).isRequired,\n id: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n required: PropTypes.bool,\n type: PropTypes.string.isRequired,\n};\n\nValidatedInput.defaultProps = {\n className: undefined,\n onChange: () => {},\n required: false,\n help: '',\n fieldData: {\n dirty: false,\n error: undefined,\n value: undefined,\n },\n};\n\nconst Error = styled.span`\n display: block;\n font-weight: normal;\n padding-left: 15px;\n font-size: 0.85em;\n`;\n\nconst ErrorContainer = styled.span`\n display: flex;\n align-items: center;\n`;\n\nexport default ValidatedInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport { Button, Panel } from 'components/bootstrap';\nimport Icon from 'components/common/Icon';\n\nexport const ErrorMessage = ({ fullMessage, niceMessage }) => {\n const [expanded, toggleExpanded] = useState(false);\n\n const Header = (\n <>\n <ErrorOutputStyle />\n <ErrorOutput>{niceMessage || fullMessage}</ErrorOutput>\n {niceMessage\n && (\n <ErrorToggleInfo onClick={() => toggleExpanded(!expanded)} expanded={expanded}>\n More Info <MoreIcon name=\"chevron_right\" />\n </ErrorToggleInfo>\n )}\n </>\n );\n\n if (!niceMessage) {\n return <Panel header={Header} bsStyle=\"danger\" />;\n }\n\n return (\n <Panel header={Header}\n bsStyle=\"danger\"\n collapsible\n expanded={expanded}>\n <strong>Additional Information: </strong>{fullMessage}\n </Panel>\n );\n};\n\nErrorMessage.propTypes = {\n fullMessage: PropTypes.string.isRequired,\n niceMessage: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n};\n\nErrorMessage.defaultProps = {\n niceMessage: null,\n};\n\nconst FormWrap = ({\n buttonContent,\n children,\n className,\n disabled,\n description,\n error,\n loading,\n onSubmit,\n title,\n}) => {\n const formRef = useRef();\n const [disabledButton, setDisabledButton] = useState(disabled);\n\n const prevent = (event) => {\n event.preventDefault();\n\n return false;\n };\n\n useEffect(() => {\n setDisabledButton(loading || disabled);\n }, [loading, disabled]);\n\n return (\n <form onSubmit={prevent}\n autoComplete=\"off\"\n noValidate\n className={className}\n ref={formRef}>\n\n {title && ((typeof (title) === 'string') ? <h2>{title}</h2> : title)}\n {description && ((typeof (description) === 'string') ? <p>{description}</p> : description)}\n\n {error && error.full_message && (\n <ErrorMessage fullMessage={error.full_message}\n niceMessage={error.nice_message} />\n )}\n\n {children}\n\n <Button type=\"button\"\n onClick={disabledButton ? null : onSubmit}\n bsStyle=\"primary\"\n disabled={disabledButton}>\n {loading ? 'Loading...' : buttonContent}\n </Button>\n </form>\n );\n};\n\nFormWrap.propTypes = {\n buttonContent: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n children: PropTypes.any.isRequired,\n disabled: PropTypes.bool,\n error: PropTypes.shape({\n full_message: PropTypes.string.isRequired,\n nice_message: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n }),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n loading: PropTypes.bool,\n onSubmit: PropTypes.func,\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n className: PropTypes.string,\n};\n\nFormWrap.defaultProps = {\n buttonContent: 'Submit',\n disabled: false,\n error: null,\n description: null,\n loading: false,\n onSubmit: () => {},\n title: null,\n className: undefined,\n};\n\nconst ErrorOutputStyle = createGlobalStyle`\n /* NOTE: This is to remove Bootstrap styles from the anchor element I can't override in Panel.Header */\n form {\n .panel.panel-danger {\n .panel-heading > a {\n font-size: 14px;\n text-decoration: none;\n color: #ad0707;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n }\n`;\n\nconst ErrorOutput = styled.span`\n display: block;\n`;\n\nconst ErrorToggleInfo = styled.button`\n border: 0;\n background: none;\n color: #1f1f1f;\n font-size: 11px;\n text-transform: uppercase;\n margin: 12px 0 0;\n padding: 0;\n`;\n\nconst MoreIcon = styled(Icon)`\n transform: rotate(${(props) => (props.expanded ? '90deg' : '0deg')});\n transition: 150ms transform ease-in-out;\n`;\n\nexport default FormWrap;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Options({ value, label }) {\n return (\n <option value={value} key={value}>{label}</option>\n );\n}\n\nconst renderOptions = (options = [], label = 'Choose One', loading = false) => {\n if (loading) {\n return Options({ value: '', label: 'Loading...' });\n }\n\n return (\n <>\n <option value=\"\">{label}</option>\n {options.map((option) => Options({ value: option.value, label: option.label }))}\n </>\n );\n};\n\nOptions.propTypes = {\n value: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n};\n\nexport default Options;\n\nexport { renderOptions };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport { useContext, useEffect, useState } from 'react';\n\nimport { qualifyUrl } from 'util/URLUtils';\nimport fetch from 'logic/rest/FetchProvider';\n\nimport { FormDataContext } from '../../context/FormData';\nimport { toAWSRequest } from '../formDataAdapter';\n\n/* useFetch Custom Hook\n\nBecause of [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html) we have to get fancy\nin order to use fetch Promises and hooks.\n\nPARAMETERS:\n - `url`: The url that will be fetched, can be set later with `setUrl` [required, but accepts `null`]\n - `setHook`: that you want to call after fetch [required]\n - `method`: RESTful HTTP method, [`'GET'` optional]\n - `options`: Object of data you'll send with fetch, [`{}` optional]\n - `callback` that will fire any part of your code you need after fetch [`() => {}` optional]\n\nUSE:\n`const [status, setUrl] = useFetch(setNextHook, onFooBar);`\n - `status` will provide the current reducer state `{ loading, error, data }`\n - `setUrl` will be your hook to call as a submit handler within a subfunction, it needs the API route as a string:\n\nEXAMPLES:\n```\n const [fetchRegionsStatus] = useFetch(ApiRoutes.INTEGRATIONS.AWS.REGIONS, setRegions, 'GET');\n const [fetchStreamsStatus, setStreamsFetch] = useFetch(\n null,\n (response) => {\n setStreams(response);\n onSubmit();\n },\n 'POST',\n { region: formData.awsCloudWatchAwsRegion ? formData.awsCloudWatchAwsRegion.value : '' },\n );\n\n const handleSubmit = () => {\n setStreamsFetch(ApiRoutes.INTEGRATIONS.AWS.KINESIS.STREAMS);\n };\n```\n*/\n\nconst parseError = (error) => {\n const fullError = error.additional && error.additional.body && error.additional.body.message;\n\n return fullError || error.message;\n};\n\nconst useFetch = (url, setHook = () => {}, method = 'GET', options = {}) => {\n const { formData } = useContext(FormDataContext);\n const [fetchUrl, setFetchUrl] = useState(url);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [data, setData] = useState(null);\n const qualifiedURL = fetchUrl ? qualifyUrl(fetchUrl) : null;\n\n useEffect(() => {\n let isFetchable = !!qualifiedURL;\n\n const fetchData = async () => {\n let fetcher = Promise.resolve();\n\n if (isFetchable && !data) {\n setLoading(true);\n\n if (method === 'GET') {\n fetcher = fetch(method, qualifiedURL);\n } else {\n fetcher = fetch(method, qualifiedURL, toAWSRequest(formData, options));\n }\n\n fetcher.then((result) => {\n setError(null);\n setData(result);\n setHook(result);\n }).catch((err) => {\n setData(null);\n setError(parseError(err));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n return fetcher;\n };\n\n fetchData();\n\n return () => {\n isFetchable = false;\n };\n }, [qualifiedURL]);\n\n return [{ loading, error, data }, setFetchUrl];\n};\n\nexport default useFetch;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nimport ValidatedInput from './ValidatedInput';\n\nconst MaskedInput = ({ className, label, ...props }) => {\n const [masked, setMasked] = useState(true);\n const toggleLabel = (\n <LabelWrapper>\n {label}\n <ToggleMask onClick={() => setMasked(!masked)} ariaDescription={`Toggle ${label} field input`}>\n <Icon name={masked ? 'visibility_off' : 'visibility'} />\n </ToggleMask>\n </LabelWrapper>\n );\n\n return (\n <ValidatedInput {...props} type={masked ? 'password' : 'text'} label={toggleLabel} formGroupClassName={className} />\n );\n};\n\nMaskedInput.propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]).isRequired,\n className: PropTypes.string,\n};\n\nMaskedInput.defaultProps = {\n className: undefined,\n};\n\nconst LabelWrapper = styled.span`\n display: flex;\n align-items: center;\n`;\n\nconst ToggleMask = styled.button`\n border: 0;\n background: none;\n padding: 0;\n margin: 0 0 0 12px;\n`;\n\nexport default MaskedInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport MaskedInput from 'integrations/aws/common/MaskedInput';\n\nconst KeySecret = ({ onChange, awsKey, awsSecret }) => (\n <>\n <ValidatedInput id=\"awsCloudWatchAwsKey\"\n type=\"text\"\n label=\"AWS Access Key\"\n placeholder=\"AK****************\"\n onChange={onChange}\n fieldData={awsKey}\n autoComplete=\"off\"\n maxLength=\"512\"\n help='Your AWS Key should be a 20-character long, alphanumeric string that starts with the letters \"AK\".'\n required />\n\n <StyledMaskedInput id=\"awsCloudWatchAwsSecret\"\n label=\"AWS Secret Key\"\n placeholder=\"***********\"\n onChange={onChange}\n fieldData={awsSecret}\n autoComplete=\"off\"\n maxLength=\"512\"\n help=\"Your AWS Secret is usually a 40-character long, base-64 encoded string.\"\n required />\n </>\n);\n\nconst StyledMaskedInput = styled(MaskedInput)`\nmargin-bottom: 0;\n`;\n\nKeySecret.propTypes = {\n onChange: PropTypes.func.isRequired,\n awsKey: PropTypes.object,\n awsSecret: PropTypes.object,\n};\n\nKeySecret.defaultProps = {\n awsKey: undefined,\n awsSecret: undefined,\n};\n\nexport default KeySecret;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport styled from 'styled-components';\n\nexport const SectionTitle = styled.p`\n font-weight: bold;\n font-size: 1.2em;\n margin: 0 0 12px;\n`;\n\nexport const SectionNote = styled.p`\n font-style: italic;\n margin: 3px 0 0;\n`;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Table } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport { SectionTitle, SectionNote } from 'integrations/aws/common/sharedStyles';\n\nconst StyledTable = styled(Table)`\n margin: 0;\n`;\n\nconst Automatic = () => (\n <StyledTable condensed>\n <thead>\n <tr>\n <td colSpan=\"2\">\n <SectionTitle>Automatic authentication will attempt each of the following in the listed order.</SectionTitle>\n </td>\n </tr>\n </thead>\n\n <tbody>\n <tr>\n <th>Environment variables</th>\n <td><code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code></td>\n </tr>\n <tr>\n <th>Java system properties</th>\n <td><code>aws.accessKeyId</code> and <code>aws.secretKey</code></td>\n </tr>\n <tr>\n <th>Default credential profiles file</th>\n <td>Typically located at <code>~/.aws/credentials</code></td>\n </tr>\n <tr>\n <th>Amazon ECS container credentials</th>\n <td>Loaded from the Amazon ECS if the environment variable <code>AWS_CONTAINER_CREDENTIALS_RELATIVE_URI</code> is set</td>\n </tr>\n <tr>\n <th>Instance profile credentials</th>\n <td>Used on EC2 instances, and delivered through the Amazon EC2 metadata service</td>\n </tr>\n </tbody>\n\n <tfoot>\n <tr>\n <td colSpan=\"2\">\n <SectionNote>\n For more information, check out the <a href=\"https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html\" target=\"_blank\" rel=\"noopener noreferrer\">AWS Credential Configuration Documentation <Icon name=\"open_in_new\" /></a>\n </SectionNote>\n </td>\n </tr>\n </tfoot>\n </StyledTable>\n);\n\nexport default Automatic;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from 'components/bootstrap';\n\nconst ARN = ({ awsARN, onChange }) => (\n <Input id=\"awsCloudWatchAssumeARN\"\n type=\"text\"\n value={awsARN.value}\n onChange={onChange}\n label=\"AWS Assume Role (ARN)\"\n help=\"Amazon Resource Name with required cross account permission\"\n placeholder=\"arn:aws:sts::123456789012:assumed-role/some-role\"\n maxLength=\"2048\" />\n);\n\nARN.propTypes = {\n awsARN: PropTypes.shape({\n value: PropTypes.string,\n }),\n onChange: PropTypes.func.isRequired,\n};\n\nARN.defaultProps = {\n awsARN: {\n value: '',\n },\n};\n\nexport default ARN;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Input } from 'components/bootstrap';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { AWS_AUTH_TYPES } from 'integrations/aws/common/constants';\nimport AppConfig from 'util/AppConfig';\n\nimport KeySecret from './KeySecret';\nimport Automatic from './Automatic';\nimport ARN from './ARN';\n\nconst AuthWrapper = styled.div(({ theme }) => css`\n margin: 0 0 21px 9px;\n padding: 3px 0 3px 21px;\n border-left: 3px solid ${theme.colors.gray[80]};\n`);\n\nconst AWSAuthenticationTypes = ({ onChange }) => {\n const { clearField, formData } = useContext(FormDataContext);\n\n const {\n awsAuthenticationType,\n awsCloudWatchAwsSecret,\n awsCloudWatchAwsKey,\n awsCloudWatchAssumeARN,\n } = formData;\n\n let defaultAuthTypeValue;\n\n if (AppConfig.isCloud()) {\n defaultAuthTypeValue = AWS_AUTH_TYPES.keysecret;\n } else {\n defaultAuthTypeValue = awsAuthenticationType ? awsAuthenticationType.value : AWS_AUTH_TYPES.automatic;\n }\n\n const [currentType, setCurrenType] = useState(defaultAuthTypeValue);\n\n useEffect(() => {\n onChange({ target: { name: 'awsAuthenticationType', value: defaultAuthTypeValue } });\n }, []);\n\n const isType = (type) => currentType === type;\n\n const handleTypeChange = (e) => {\n setCurrenType(e.target.value);\n onChange({ target: { name: 'awsAuthenticationType', value: e.target.value } });\n\n if (isType(AWS_AUTH_TYPES.automatic)) {\n clearField('awsCloudWatchAwsKey');\n clearField('awsCloudWatchAwsSecret');\n }\n };\n\n return (\n <>\n {AppConfig.isCloud()\n ? (\n <KeySecret awsKey={awsCloudWatchAwsKey}\n awsSecret={awsCloudWatchAwsSecret}\n onChange={onChange} />\n ) : (\n <>\n <Input type=\"select\"\n name=\"awsAuthType\"\n id=\"awsAuthType\"\n onChange={handleTypeChange}\n label=\"AWS Authentication Type\"\n defaultValue={currentType}>\n {Object.keys(AWS_AUTH_TYPES).map((type) => (\n <option value={AWS_AUTH_TYPES[type]}\n key={`option-${type}`}>\n {AWS_AUTH_TYPES[type]}\n </option>\n ))}\n </Input>\n\n <AuthWrapper>\n {isType(AWS_AUTH_TYPES.automatic) && <Automatic />}\n\n {isType(AWS_AUTH_TYPES.keysecret) && (\n <KeySecret awsKey={awsCloudWatchAwsKey}\n awsSecret={awsCloudWatchAwsSecret}\n onChange={onChange} />\n )}\n </AuthWrapper>\n </>\n )}\n <ARN awsARN={awsCloudWatchAssumeARN} onChange={onChange} />\n </>\n );\n};\n\nAWSAuthenticationTypes.propTypes = {\n onChange: PropTypes.func.isRequired,\n};\n\nexport default AWSAuthenticationTypes;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Icon } from 'components/common';\nimport { Button } from 'components/bootstrap';\n\nconst AdditionalFields = ({ children, className, onToggle, title, visible }) => {\n const [fieldsVisible, setFieldsVisible] = useState(visible);\n\n const handleToggle = () => {\n setFieldsVisible(!fieldsVisible);\n onToggle(!fieldsVisible);\n };\n\n return (\n <div className={className}>\n <ToggleAdditionalFields bsStyle=\"link\" bsSize=\"xsmall\" onClick={handleToggle} type=\"button\">\n {title} <Icon name={fieldsVisible ? 'expand_more' : 'chevron_right'} />\n </ToggleAdditionalFields>\n\n <AdditionalFieldsContent visible={fieldsVisible}>\n {children}\n </AdditionalFieldsContent>\n </div>\n );\n};\n\nAdditionalFields.propTypes = {\n children: PropTypes.any.isRequired,\n title: PropTypes.string.isRequired,\n onToggle: PropTypes.func,\n visible: PropTypes.bool,\n className: PropTypes.string,\n};\n\nAdditionalFields.defaultProps = {\n onToggle: () => {},\n visible: false,\n className: undefined,\n};\n\nconst AdditionalFieldsContent = styled.div`\n display: ${(props) => (props.visible ? 'block' : 'none')};\n padding: 0 100px 0 25px;\n`;\n\nconst ToggleAdditionalFields = styled(Button)`\n border: 0;\n display: block;\n font-size: 14px;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nexport default AdditionalFields;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { ExternalLink } from 'components/common';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { AdvancedOptionsContext } from 'integrations/aws/context/AdvancedOptions';\nimport AdditionalFields from 'integrations/aws/common/AdditionalFields';\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport { SectionTitle, SectionNote } from 'integrations/aws/common/sharedStyles';\n\nconst INPUT_PATTERN = 'https://(.*)';\nconst INPUT_MESSAGE = \"Domain should begin with 'https://'\";\nconst INPUT_PLACEHOLDER = 'https://vpce-1234.service.region.vpce.amazonaws.com';\n\nconst StyledAdditionalFields = styled(AdditionalFields)`\nmargin: 0 0 35px;\n`;\n\nconst StyledSectionTitle = styled(SectionTitle)`\nmargin: 12px 0 0;\n`;\n\nconst StyledSectionNote = styled(SectionNote)`\nmargin: 0 0 12px;\n`;\n\nconst AWSCustomEndpoints = ({ onChange }) => {\n const { formData } = useContext(FormDataContext);\n const { isAWSCustomEndpointsVisible, setAWSCustomEndpointsVisibility } = useContext(AdvancedOptionsContext);\n const {\n awsEndpointCloudWatch,\n awsEndpointDynamoDB,\n awsEndpointIAM,\n awsEndpointKinesis,\n } = formData;\n\n const handleToggle = (visible) => {\n setAWSCustomEndpointsVisibility(visible);\n };\n\n return (\n <StyledAdditionalFields title=\"Optional AWS VPC Endpoints\"\n visible={isAWSCustomEndpointsVisible}\n onToggle={handleToggle}>\n\n <StyledSectionTitle>Overrides the default AWS API endpoint URL that Graylog communicates with.</StyledSectionTitle>\n <StyledSectionNote>Only specify these if you are using <ExternalLink href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html\">VPC Endpoints</ExternalLink> for AWS services.</StyledSectionNote>\n\n <ValidatedInput id=\"awsEndpointCloudWatch\"\n type=\"text\"\n fieldData={awsEndpointCloudWatch}\n onChange={onChange}\n label=\"CloudWatch API Endpoint Override\"\n placeholder={INPUT_PLACEHOLDER}\n pattern={INPUT_PATTERN}\n title={INPUT_MESSAGE} />\n\n <ValidatedInput id=\"awsEndpointIAM\"\n type=\"text\"\n fieldData={awsEndpointIAM}\n onChange={onChange}\n label=\"IAM API Endpoint Override\"\n placeholder={INPUT_PLACEHOLDER}\n pattern={INPUT_PATTERN}\n title={INPUT_MESSAGE} />\n\n <ValidatedInput id=\"awsEndpointDynamoDB\"\n type=\"text\"\n fieldData={awsEndpointDynamoDB}\n onChange={onChange}\n label=\"DynamoDB API Endpoint Override\"\n placeholder={INPUT_PLACEHOLDER}\n pattern={INPUT_PATTERN}\n title={INPUT_MESSAGE} />\n\n <ValidatedInput id=\"awsEndpointKinesis\"\n type=\"text\"\n fieldData={awsEndpointKinesis}\n onChange={onChange}\n label=\"Kinesis API Endpoint Override\"\n placeholder={INPUT_PLACEHOLDER}\n pattern={INPUT_PATTERN}\n title={INPUT_MESSAGE} />\n </StyledAdditionalFields>\n );\n};\n\nAWSCustomEndpoints.propTypes = {\n onChange: PropTypes.func.isRequired,\n};\n\nexport default AWSCustomEndpoints;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { ApiContext } from 'integrations/aws/context/Api';\nimport { SidebarContext } from 'integrations/aws/context/Sidebar';\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport { renderOptions } from 'integrations/aws/common/Options';\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport { AWS_AUTH_TYPES } from 'integrations/aws/common/constants';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport formValidation from 'integrations/aws/utils/formValidation';\nimport AWSAuthenticationTypes from 'integrations/aws/authentication/AWSAuthenticationTypes';\nimport AWSCustomEndpoints from 'integrations/aws/authentication/AWSCustomEndpoints';\n\nconst StepAuthorize = ({ onChange, onSubmit, sidebarComponent }) => {\n const { formData } = useContext(FormDataContext);\n const { clearSidebar, setSidebar } = useContext(SidebarContext);\n const { availableRegions, setRegions, setStreams } = useContext(ApiContext);\n const [formError, setFormError] = useState(null);\n const [fetchRegionsStatus] = useFetch(ApiRoutes.INTEGRATIONS.AWS.REGIONS, setRegions, 'GET');\n const [fetchStreamsStatus, setStreamsFetch] = useFetch(\n null,\n (response) => {\n setStreams(response);\n onSubmit();\n },\n 'POST',\n { region: formData.awsCloudWatchAwsRegion ? formData.awsCloudWatchAwsRegion.value : '' },\n );\n\n useEffect(() => {\n setStreamsFetch(null);\n\n if (fetchRegionsStatus.error) {\n setFormError({ full_message: fetchRegionsStatus.error });\n } else if (fetchStreamsStatus.error) {\n const badKey = /security token/g;\n const badSecret = /signing method/g;\n const noStreams = /No Kinesis streams/g;\n\n if (fetchStreamsStatus.error.match(badKey)) {\n setFormError({ full_message: fetchStreamsStatus.error, nice_message: 'Invalid AWS Key, check out your AWS account for the 20-character long, alphanumeric string that usually starts with the letters \"AK\"' });\n } else if (fetchStreamsStatus.error.match(badSecret)) {\n setFormError({ full_message: fetchStreamsStatus.error, nice_message: 'Invalid AWS Secret, it is usually a 40-character long, base-64 encoded string, but you only get to view it once when you create the Key' });\n } else if (fetchStreamsStatus.error.match(noStreams)) {\n // NOTE: If no streams are present we want to move to the KinesisSetup screen\n setStreams({ streams: [] });\n onSubmit();\n } else {\n setFormError({ full_message: fetchStreamsStatus.error });\n }\n }\n\n return () => {\n setFormError(null);\n };\n }, [fetchRegionsStatus.error, fetchStreamsStatus.error]);\n\n const handleSubmit = () => {\n setStreamsFetch(ApiRoutes.INTEGRATIONS.AWS.KINESIS.STREAMS);\n };\n\n useEffect(() => {\n if (sidebarComponent) {\n setSidebar(sidebarComponent);\n }\n\n return () => {\n clearSidebar();\n };\n }, []);\n\n const authType = formData.awsAuthenticationType && formData.awsAuthenticationType.value;\n const isFormValid = formValidation.isFormValid([\n 'awsCloudWatchName',\n 'awsCloudWatchAwsRegion',\n ...authType !== AWS_AUTH_TYPES.automatic ? ['awsCloudWatchAwsKey', 'awsCloudWatchAwsSecret'] : [],\n ], formData);\n\n return (\n <FormWrap onSubmit={handleSubmit}\n buttonContent=\"Authorize & Choose Stream\"\n loading={fetchRegionsStatus.loading || fetchStreamsStatus.loading}\n disabled={isFormValid}\n error={formError}\n title=\"Create Input & Authorize AWS\"\n description=\"This integration allows Graylog to read messages directly from a Kinesis stream. CloudWatch messages can optionally be forwarded to Kinesis via CloudWatch subscriptions and then read by Graylog.\">\n\n <DisappearingInput id=\"name\" type=\"text\" />\n <DisappearingInput id=\"password\" type=\"password\" />\n\n <ValidatedInput id=\"awsCloudWatchName\"\n type=\"text\"\n fieldData={formData.awsCloudWatchName}\n onChange={onChange}\n placeholder=\"Graylog Input Name\"\n label=\"Graylog Input Name\"\n autoComplete=\"off\"\n required />\n\n <AWSAuthenticationTypes onChange={onChange} />\n\n <ValidatedInput id=\"awsCloudWatchAwsRegion\"\n type=\"select\"\n fieldData={formData.awsCloudWatchAwsRegion}\n onChange={onChange}\n label=\"AWS Region\"\n help=\"The AWS Region your service is running in.\"\n disabled={fetchRegionsStatus.loading}\n required>\n {renderOptions(availableRegions, 'Choose AWS Region', fetchRegionsStatus.loading)}\n </ValidatedInput>\n\n <AWSCustomEndpoints onChange={onChange} />\n </FormWrap>\n );\n};\n\nStepAuthorize.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n sidebarComponent: PropTypes.node,\n};\n\nStepAuthorize.defaultProps = {\n sidebarComponent: null,\n};\n\nconst DisappearingInput = styled.input`\n position: fixed;\n top: -500vh;\n left: -500vw;\n`;\n\nexport default StepAuthorize;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Input } from 'components/bootstrap';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { AdvancedOptionsContext } from 'integrations/aws/context/AdvancedOptions';\nimport AdditionalFields from 'integrations/aws/common/AdditionalFields';\n\nconst FormAdvancedOptions = ({ onChange }) => {\n const { formData } = useContext(FormDataContext);\n const { isAdvancedOptionsVisible, setAdvancedOptionsVisibility } = useContext(AdvancedOptionsContext);\n\n const {\n awsCloudWatchBatchSize,\n awsCloudWatchThrottleEnabled,\n awsCloudWatchAddFlowLogPrefix,\n } = formData;\n\n const handleToggle = (visible) => {\n setAdvancedOptionsVisibility(visible);\n };\n\n return (\n <StyledAdditionalFields title=\"Advanced Options\" visible={isAdvancedOptionsVisible} onToggle={handleToggle}>\n <Input id=\"awsCloudWatchThrottleEnabled\"\n type=\"checkbox\"\n value=\"enable-throttling\"\n defaultChecked={awsCloudWatchThrottleEnabled && awsCloudWatchThrottleEnabled.value}\n onChange={onChange}\n label=\"Enable Throttling\"\n help=\"If enabled, no new messages will be read from this input until Graylog catches up with its message load. This is typically useful for inputs reading from files or message queue systems like AMQP or Kafka. If you regularly poll an external system, e.g. via HTTP, you normally want to leave this disabled.\" />\n\n <Input id=\"awsCloudWatchAddFlowLogPrefix\"\n type=\"checkbox\"\n value=\"enable-logprefix\"\n defaultChecked={awsCloudWatchAddFlowLogPrefix && awsCloudWatchAddFlowLogPrefix.value}\n onChange={onChange}\n label=\"Add Flow Log field name prefix\"\n help='Add field with the Flow Log prefix e. g. \"src_addr\" -> \"flow_log_src_addr\".' />\n\n <Input id=\"awsCloudWatchBatchSize\"\n type=\"number\"\n value={awsCloudWatchBatchSize.value || awsCloudWatchBatchSize.defaultValue}\n onChange={onChange}\n label=\"Kinesis Record batch size\"\n help=\"The number of Kinesis records to fetch at a time. Each record may be up to 1MB in size. The AWS default is 10,000. Enter a smaller value to process smaller chunks at a time.\" />\n </StyledAdditionalFields>\n );\n};\n\nFormAdvancedOptions.propTypes = {\n onChange: PropTypes.func.isRequired,\n};\n\nconst StyledAdditionalFields = styled(AdditionalFields)`\nmargin: 0 0 35px;\n`;\n\nexport default FormAdvancedOptions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, Modal, Panel } from 'components/bootstrap';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { ApiContext } from 'integrations/aws/context/Api';\nimport { SidebarContext } from 'integrations/aws/context/Sidebar';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport { ApiRoutes, DocsRoutes } from 'integrations/aws/common/Routes';\nimport { renderOptions } from 'integrations/aws/common/Options';\nimport formValidation from 'integrations/aws/utils/formValidation';\nimport Spinner from 'components/common/Spinner';\n\nimport FormAdvancedOptions from '../FormAdvancedOptions';\n\nconst KinesisStreams = ({ onChange, onSubmit, toggleSetup }) => {\n const { formData } = useContext(FormDataContext);\n const [formError, setFormError] = useState(null);\n const { availableStreams, setLogData } = useContext(ApiContext);\n const { clearSidebar, setSidebar } = useContext(SidebarContext);\n const [logDataStatus, setLogDataUrl] = useFetch(\n null,\n (response) => {\n setLogData(response);\n onSubmit();\n },\n 'POST',\n {\n region: formData.awsCloudWatchAwsRegion.value,\n stream_name: formData.awsCloudWatchKinesisStream ? formData.awsCloudWatchKinesisStream.value : '',\n },\n );\n\n useEffect(() => {\n setSidebar(\n <Panel bsStyle=\"info\" header={<span>Don't see the stream you need?</span>}>\n <AutoSetupContent>\n <p>At least one Kinesis stream must exist in the specified region in order to continue with the setup. The log stream must contain at least a few log messages.</p>\n\n <p>\n Graylog also supports the ability to create a Kinesis stream for you and subscribe it to a CloudWatch log group of your choice. Please be aware that this option will create additional resources in your AWS environment that will incur billing charges.\n </p>\n </AutoSetupContent>\n\n <Button onClick={() => {\n clearSidebar();\n toggleSetup();\n }}\n type=\"button\">\n Setup Kinesis Automatically\n </Button>\n </Panel>,\n );\n }, []);\n\n useEffect(() => {\n if (logDataStatus.error) {\n setLogDataUrl(null);\n\n setFormError({\n full_message: logDataStatus.error,\n nice_message: <span>We were unable to find any logs in this Kinesis stream. Please select a different Kinesis stream.</span>,\n });\n }\n }, [logDataStatus.error]);\n\n const handleSubmit = () => {\n setLogDataUrl(ApiRoutes.INTEGRATIONS.AWS.KINESIS.HEALTH_CHECK);\n };\n\n return (\n <>\n <LoadingModal show={logDataStatus.loading}\n backdrop=\"static\"\n keyboard={false}\n bsSize=\"small\">\n <LoadingContent>\n <StyledSpinner />\n <LoadingMessage>This request may take a few moments.</LoadingMessage>\n </LoadingContent>\n </LoadingModal>\n\n <FormWrap onSubmit={handleSubmit}\n buttonContent=\"Verify Stream & Format\"\n loading={logDataStatus.loading}\n error={formError}\n disabled={formValidation.isFormValid(['awsCloudWatchKinesisStream'], formData)}\n title=\"Select Kinesis Stream\"\n description={(\n <>\n <p>\n Below is a list of all Kinesis streams found within the specified AWS account.\n </p>\n <p>\n Please select the stream you would like to read messages from, or follow the \n <DocumentationLink page={DocsRoutes.INTEGRATIONS.AWS.AWS_KINESIS_CLOUDWATCH_INPUTS} text=\"AWS Kinesis/CloudWatch Input \" />\n documentation for more details on this set up.\n </p>\n </>\n )}>\n\n <ValidatedInput id=\"awsCloudWatchKinesisStream\"\n type=\"select\"\n fieldData={formData.awsCloudWatchKinesisStream}\n onChange={onChange}\n label=\"Select Stream\"\n required>\n {renderOptions(availableStreams, 'Select Kinesis Stream')}\n </ValidatedInput>\n\n <FormAdvancedOptions onChange={onChange} />\n </FormWrap>\n </>\n );\n};\n\nKinesisStreams.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n toggleSetup: PropTypes.func,\n};\n\nKinesisStreams.defaultProps = {\n toggleSetup: () => {\n },\n};\n\nconst AutoSetupContent = styled.div`\n margin-bottom: 9px;\n`;\n\nconst LoadingModal = styled(Modal)`\n > .modal-dialog {\n width: 400px;\n margin-left: auto;\n margin-right: auto;\n }\n`;\n\nconst LoadingContent = styled(Modal.Body)`\n text-align: center;\n`;\n\nconst StyledSpinner = styled(Spinner)`\n font-size: 48px;\n color: #702785;\n`;\n\nconst LoadingMessage = styled.p`\n font-size: 16px;\n font-weight: bold;\n padding-top: 15px;\n color: #a6afbd;\n`;\n\nexport default KinesisStreams;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Agree = ({ groupName, streamName }) => (\n <>\n <p>This auto setup will create the following AWS resources. Click below to acknowledge that you understand that these resources will be created and that you are solely responsible for any associated AWS fees incurred from them. Note that all resources must be manually deleted by you if they are not needed.</p>\n\n <ol>\n <li>Create a Kinesis stream with <strong>1</strong> shard.</li>\n <li>Create an IAM Role and Policy to allow the specified CloudWatch group <strong>{groupName}</strong> to publish log messages to the Kinesis stream <strong>{streamName}</strong></li>\n <li>Create a CloudWatch Subscription, which publishes log messages to the Kinesis stream.</li>\n </ol>\n </>\n);\n\nAgree.propTypes = {\n groupName: PropTypes.string.isRequired,\n streamName: PropTypes.string.isRequired,\n};\n\nexport default Agree;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Icon from 'components/common/Icon';\nimport Spinner from 'components/common/Spinner';\n\nconst KinesisSetupStep = ({ label, progress }) => {\n const { data, error, loading } = progress;\n\n const waitingText = !data && !loading && !error && 'Waiting...';\n const loadingText = loading ? `Creating ${label}` : waitingText;\n const successText = data ? data.result : loadingText;\n const defaultText = error || successText;\n\n return (\n <StepItem>\n <IconWrap>\n {!data && !loading && !error && <Icon name=\"hourglass_bottom\" size=\"2x\" style={{ color: '#dce1e5' }} />}\n {loading && <Spinner name=\"spinner\" size=\"2x\" style={{ color: '#0063be' }} />}\n {data && <Icon name=\"check\" size=\"2x\" style={{ color: '#00ae42' }} />}\n {error && <Icon name=\"times\" size=\"2x\" style={{ color: '#ad0707' }} />}\n </IconWrap>\n\n <Content>\n <StepHeader>Create {label}</StepHeader>\n\n <StepDetails>\n {defaultText}\n </StepDetails>\n </Content>\n </StepItem>\n );\n};\n\nKinesisSetupStep.propTypes = {\n progress: PropTypes.shape({\n data: PropTypes.object,\n error: PropTypes.object,\n loading: PropTypes.bool,\n }).isRequired,\n label: PropTypes.string.isRequired,\n};\n\nconst StepItem = styled.li`\n display: flex;\n margin: 0 0 12px;\n`;\n\nconst IconWrap = styled.div`\n min-width: 36px;\n`;\n\nconst Content = styled.div`\n flex-grow: 1;\n`;\n\nconst StepHeader = styled.span`\n font-size: 18px;\n`;\n\nconst StepDetails = styled.p`\n margin: 3px 0 0;\n`;\n\nexport default KinesisSetupStep;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\n\nimport KinesisSetupStep from './KinesisSetupStep';\n\nconst KinesisSetupSteps = ({ onSuccess, onError }) => {\n const { formData } = useContext(FormDataContext);\n const [streamArn, setStreamArn] = useState(null);\n const [roleArn, setRoleArn] = useState(null);\n\n const [createSubsciptionProgress, setCreateSubsciptionUrl] = useFetch(\n null,\n () => {\n onSuccess();\n },\n 'POST',\n {\n region: formData.awsCloudWatchAwsRegion.value,\n log_group_name: formData.awsCloudWatchAwsGroupName.value,\n filter_name: 'filter-name', // TODO: Use unique filter name\n filter_pattern: '',\n destination_stream_arn: streamArn,\n role_arn: roleArn,\n },\n );\n\n const [createPolicyProgress, setCreatePolicyUrl] = useFetch(\n null,\n (response) => {\n setRoleArn(response.role_arn);\n setCreateSubsciptionUrl(ApiRoutes.INTEGRATIONS.AWS.KINESIS_AUTO_SETUP.CREATE_SUBSCRIPTION);\n },\n 'POST',\n {\n region: formData.awsCloudWatchAwsRegion.value,\n stream_name: formData.awsCloudWatchKinesisStream.value,\n stream_arn: streamArn,\n },\n );\n\n const [createStreamProgress, setCreateStreamUrl] = useFetch(\n null,\n (response) => {\n setStreamArn(response.stream_arn);\n setCreatePolicyUrl(ApiRoutes.INTEGRATIONS.AWS.KINESIS_AUTO_SETUP.CREATE_SUBSCRIPTION_POLICY);\n },\n 'POST',\n {\n region: formData.awsCloudWatchAwsRegion.value,\n stream_name: formData.awsCloudWatchKinesisStream.value,\n },\n );\n\n useEffect(() => {\n setCreateStreamUrl(ApiRoutes.INTEGRATIONS.AWS.KINESIS_AUTO_SETUP.CREATE_STREAM);\n }, []);\n\n useEffect(() => {\n if (createStreamProgress.error || createPolicyProgress.error || createSubsciptionProgress.error) {\n onError();\n }\n }, [createStreamProgress.error, createPolicyProgress.error, createSubsciptionProgress.error]);\n\n return (\n <StepItems>\n <KinesisSetupStep label=\"Kinesis Stream\" progress={createStreamProgress} />\n <KinesisSetupStep label=\"Subscription Policy\" progress={createPolicyProgress} />\n <KinesisSetupStep label=\"Subscription\" progress={createSubsciptionProgress} />\n </StepItems>\n );\n};\n\nKinesisSetupSteps.propTypes = {\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n};\n\nconst StepItems = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nexport default KinesisSetupSteps;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Alert, Button, Modal } from 'components/bootstrap';\n\nimport Agree from './Agree';\nimport KinesisSetupSteps from './KinesisSetupSteps';\n\nconst SetupModal = ({ onSubmit, onCancel, groupName, streamName }) => {\n const [agreed, setAgreed] = useState(false);\n const [success, setSuccess] = useState(false);\n const [error, setError] = useState(false);\n\n const buttonOtherText = (!error && !success) ? 'Creating...' : 'Close';\n const buttonText = success ? 'Continue Setup' : buttonOtherText;\n\n const handleSuccess = () => {\n setSuccess(true);\n setError(false);\n };\n\n const handleError = () => {\n setSuccess(false);\n setError(true);\n };\n\n return (\n <Modal show>\n <Modal.Header>\n <Modal.Title>{agreed ? 'Executing Auto-Setup' : 'Kinesis Auto Setup Agreement'}</Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n {agreed\n ? <KinesisSetupSteps onSuccess={handleSuccess} onError={handleError} />\n : <Agree groupName={groupName} streamName={streamName} />}\n\n {agreed && success && (\n <Alert key=\"delayedLogs\" variant=\"warning\">\n It may take up to ten minutes for the first messages to arrive in the Kinesis stream. The Kinesis Health Check in the following step will not complete successfully until messages are present in the stream. Please see the official <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html\" target=\"_blank\" rel=\"noopener noreferrer\">CloudWatch Subscriptions</a> documentation for more information.\n </Alert>\n )}\n </Modal.Body>\n\n <Modal.Footer>\n {agreed\n ? (\n <Button bsStyle=\"success\"\n onClick={success ? onSubmit : onCancel}\n type=\"button\"\n disabled={!error && !success}>\n {buttonText}\n </Button>\n )\n : (\n <>\n <Button onClick={onCancel}\n type=\"button\">\n Cancel\n </Button>\n <Button onClick={() => (setAgreed(true))}\n type=\"button\"\n bsStyle=\"success\">\n I Agree! Create these AWS resources now.\n </Button>\n </>\n )}\n </Modal.Footer>\n </Modal>\n );\n};\n\nSetupModal.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n groupName: PropTypes.string.isRequired,\n streamName: PropTypes.string.isRequired,\n};\n\nexport default SetupModal;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button } from 'components/bootstrap';\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport { renderOptions } from 'integrations/aws/common/Options';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport formValidation from 'integrations/aws/utils/formValidation';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { ApiContext } from 'integrations/aws/context/Api';\n\nimport SetupModal from './setup-steps/SetupModal';\n\nconst KinesisSetup = ({ onChange, onSubmit, toggleSetup }) => {\n const { availableGroups, setGroups, clearLogData } = useContext(ApiContext);\n const { formData } = useContext(FormDataContext);\n const [formError, setFormError] = useState(null);\n const [disabledForm, setDisabledForm] = useState(false);\n const [disabledGroups, setDisabledGroups] = useState(false);\n const [showTOS, setShowTOS] = useState(false);\n const [groupNamesStatus, setGroupNamesUrl] = useFetch(\n ApiRoutes.INTEGRATIONS.AWS.CLOUDWATCH.GROUPS,\n (response) => {\n setGroups(response);\n },\n 'POST',\n { region: formData.awsCloudWatchAwsRegion.value },\n );\n\n useEffect(() => {\n if (groupNamesStatus.error) {\n setGroupNamesUrl(null);\n\n const noGroups = /No CloudWatch log groups/g;\n\n if (groupNamesStatus.error.match(noGroups)) {\n setFormError({\n full_message: groupNamesStatus.error,\n nice_message: <span>We're unable to find any groups in your chosen region. Please try selecting a different region.</span>,\n });\n\n setDisabledGroups(true);\n } else {\n setFormError({\n full_message: groupNamesStatus.error,\n });\n }\n }\n\n return () => {\n setGroups({ log_groups: [] });\n };\n }, [groupNamesStatus.error]);\n\n const handleAgreeSubmit = () => {\n clearLogData();\n onSubmit();\n };\n\n const handleFormSubmit = () => {\n setDisabledForm(true);\n setShowTOS(true);\n };\n\n const handleAgreeCancel = () => {\n setDisabledForm(false);\n setShowTOS(false);\n };\n\n return (\n <FormWrap onSubmit={handleFormSubmit}\n buttonContent=\"Begin Automated Setup\"\n disabled={formValidation.isFormValid([\n 'awsCloudWatchKinesisStream',\n 'awsCloudWatchAwsGroupName',\n ], formData) || disabledForm}\n loading={groupNamesStatus.loading}\n error={formError}\n title=\"Set Up Kinesis Automatically\"\n description=\"\">\n\n <p>\n Complete the fields below and Graylog will perform the automated Kinesis setup, which performs the following operations within your AWS account. See <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html\">Using CloudWatch Logs Subscription Filters</a> in the AWS documentation for more information.\n </p>\n\n <ol>\n <li>Create a new Kinesis stream with the specified name.</li>\n <li>Create the IAM role/policy needed to subscribe the Kinesis stream to the CloudWatch Log Group.</li>\n <li>Subscribe the new Kinesis stream to the Log Group.</li>\n </ol>\n\n <ValidatedInput id=\"awsCloudWatchKinesisStream\"\n type=\"text\"\n label=\"Kinesis Stream Name\"\n placeholder=\"Stream Name\"\n onChange={onChange}\n fieldData={formData.awsCloudWatchKinesisStream}\n disabled={disabledForm}\n pattern=\"[a-zA-Z0-9_.-]{1,128}$\"\n help=\"1-128 alphanumeric characters and special characters underscore (_), period (.), and hyphen (-).\"\n required />\n\n <ValidatedInput id=\"awsCloudWatchAwsGroupName\"\n type=\"select\"\n fieldData={formData.awsCloudWatchAwsGroupName}\n onChange={onChange}\n label=\"CloudWatch Group Name\"\n required\n disabled={groupNamesStatus.loading || disabledGroups || disabledForm}>\n\n {renderOptions(availableGroups, 'Choose CloudWatch Group', groupNamesStatus.loading)}\n </ValidatedInput>\n\n {toggleSetup\n && (\n <BackButton onClick={toggleSetup}\n type=\"button\"\n disabled={disabledForm}>\n Back to stream Selection\n </BackButton>\n )}\n\n {showTOS && (\n <SetupModal onSubmit={handleAgreeSubmit}\n onCancel={handleAgreeCancel}\n groupName={formData.awsCloudWatchAwsGroupName.value}\n streamName={formData.awsCloudWatchKinesisStream.value} />\n )}\n </FormWrap>\n );\n};\n\nKinesisSetup.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n toggleSetup: PropTypes.func,\n};\n\nKinesisSetup.defaultProps = {\n toggleSetup: null,\n};\n\nconst BackButton = styled(Button)`\n margin-right: 9px;\n`;\n\nexport default KinesisSetup;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ExistingStreams from './kinesis/ExistingStreams';\nimport SetupNewStream from './kinesis/SetupNewStream';\n\nconst StepKinesis = ({ hasStreams, ...restProps }) => {\n const [renderStreams, toggleRenderStreams] = useState(hasStreams);\n\n return (\n <>\n {renderStreams\n ? <ExistingStreams {...restProps} toggleSetup={() => toggleRenderStreams(false)} />\n : <SetupNewStream {...restProps} toggleSetup={hasStreams ? () => toggleRenderStreams(true) : null} />}\n </>\n );\n};\n\nStepKinesis.propTypes = {\n hasStreams: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n\nStepKinesis.defaultProps = {\n hasStreams: false,\n};\n\nexport default StepKinesis;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport AdditionalFields from 'integrations/aws/common/AdditionalFields';\nimport { renderOptions } from 'integrations/aws/common/Options';\nimport ValidatedInput from 'integrations/aws/common/ValidatedInput';\nimport { KINESIS_LOG_TYPES } from 'integrations/aws/common/constants';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\n\nconst SkipHealthCheck = ({ onChange, onSubmit }) => {\n const { formData } = useContext(FormDataContext);\n\n return (\n <AdditionalFields title=\"Skip Health Check\">\n <StyledFormWrap onSubmit={onSubmit}\n buttonContent=\"Confirm\"\n title=\"Choose Log Type & Skip Health Check\"\n disabled={!(formData.awsCloudWatchKinesisInputType && formData.awsCloudWatchKinesisInputType.value)}\n description={(\n <p>If you're sure of the data contained within your new <strong>{formData.awsCloudWatchKinesisStream.value}</strong> stream, then choose your option below to skip our automated check.</p>\n )}>\n\n <ValidatedInput id=\"awsCloudWatchKinesisInputType\"\n type=\"select\"\n fieldData={formData.awsCloudWatchKinesisInputType}\n onChange={onChange}\n label=\"Choose AWS Input Type\"\n required>\n {renderOptions(KINESIS_LOG_TYPES, 'Choose Log Type')}\n </ValidatedInput>\n </StyledFormWrap>\n </AdditionalFields>\n );\n};\n\nSkipHealthCheck.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nconst StyledFormWrap = styled(FormWrap)`\n padding-top: 25px;\n`;\n\nexport default SkipHealthCheck;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { duration } from 'moment';\n\nfunction Countdown({ callback, className, timeInSeconds, paused }) {\n let tickTock = timeInSeconds;\n let logInterval;\n\n const defaultDuration = duration(timeInSeconds, 'seconds').format('mm:ss');\n const [currentTime, setCurrentTime] = useState(defaultDuration);\n\n const startCountdown = () => {\n logInterval = setInterval(() => {\n tickTock -= 1;\n\n const currentDuration = duration(tickTock, 'seconds').format('mm:ss', { trim: false });\n\n if (tickTock < 0) {\n tickTock = timeInSeconds;\n setCurrentTime(defaultDuration);\n clearInterval(logInterval);\n callback();\n } else {\n setCurrentTime(currentDuration);\n }\n }, 1000);\n };\n\n useEffect(() => {\n if (paused) {\n clearInterval(logInterval);\n } else {\n startCountdown();\n }\n\n return () => {\n clearInterval(logInterval);\n };\n }, [paused]);\n\n return (\n <span className={className}>{currentTime}</span>\n );\n}\n\nCountdown.propTypes = {\n timeInSeconds: PropTypes.number.isRequired,\n callback: PropTypes.func,\n className: PropTypes.string,\n paused: PropTypes.bool,\n};\n\nCountdown.defaultProps = {\n callback: () => {},\n className: '',\n paused: false,\n};\n\nexport default Countdown;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, Panel, Input } from 'components/bootstrap';\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport SkipHealthCheck from 'integrations/aws/common/SkipHealthCheck';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport Countdown from 'integrations/aws/common/Countdown';\nimport { DEFAULT_KINESIS_LOG_TYPE, KINESIS_LOG_TYPES } from 'integrations/aws/common/constants';\nimport { ApiContext } from 'integrations/aws/context/Api';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport Icon from 'components/common/Icon';\n\nconst StepHealthCheck = ({ onChange, onSubmit }) => {\n const { logData, setLogData } = useContext(ApiContext);\n const { formData } = useContext(FormDataContext);\n const [pauseCountdown, setPauseCountdown] = useState(false);\n\n const [logDataProgress, setLogDataUrl] = useFetch(\n null,\n (response) => {\n setLogData(response);\n onChange({ target: { name: 'awsCloudWatchKinesisInputType', value: response.type } });\n },\n 'POST',\n {\n region: formData.awsCloudWatchAwsRegion.value,\n stream_name: formData.awsCloudWatchKinesisStream.value,\n },\n );\n\n const checkForLogs = () => {\n setPauseCountdown(true);\n setLogDataUrl(ApiRoutes.INTEGRATIONS.AWS.KINESIS.HEALTH_CHECK);\n };\n\n useEffect(() => {\n if (!logData) {\n checkForLogs();\n }\n }, []);\n\n useEffect(() => {\n if (!logDataProgress.loading && !logDataProgress.data) {\n setPauseCountdown(false);\n setLogDataUrl(null);\n }\n }, [logDataProgress.loading]);\n\n if (!logData) {\n return (\n <Panel bsStyle=\"warning\"\n header={(\n <Notice>\n <Icon name=\"warning\" size=\"2x\" />\n <span>We haven't received a response back from Amazon yet.</span>\n </Notice>\n )}>\n <p>Hang out for a few moments while we keep checking your AWS stream for logs. Amazon's servers parse logs every 10 minutes, so grab a cup of coffee because this may take some time!</p>\n\n <CheckAgain>\n <strong>Checking again in: <Countdown timeInSeconds={120} callback={checkForLogs} paused={pauseCountdown} /></strong>\n\n <Button type=\"button\"\n bsStyle=\"success\"\n bsSize=\"sm\"\n onClick={checkForLogs}\n disabled={logDataProgress.loading}>\n {logDataProgress.loading ? 'Checking...' : 'Check Now'}\n </Button>\n </CheckAgain>\n\n <p><em>Do not refresh your browser, we are continually checking for your logs and this page will automatically refresh when your logs are available.</em></p>\n\n <div>\n <SkipHealthCheck onSubmit={onSubmit} onChange={onChange} />\n </div>\n </Panel>\n );\n }\n\n const knownLog = logData.type === DEFAULT_KINESIS_LOG_TYPE;\n const iconName = knownLog ? 'check_circle' : 'warning';\n const acknowledgment = knownLog ? 'Awesome!' : 'Drats!';\n const bsStyle = knownLog ? 'success' : 'warning';\n const logTypeLabel = KINESIS_LOG_TYPES.find((type) => type.value === logData.type).label;\n const logType = knownLog ? `a ${logTypeLabel}` : 'an unknown';\n\n const handleSubmit = () => {\n onSubmit();\n onChange({ target: { name: 'awsCloudWatchKinesisInputType', value: logData.type } });\n };\n\n return (\n <FormWrap onSubmit={handleSubmit}\n buttonContent=\"Review & Finalize\"\n disabled={false}\n title=\"Create Kinesis Stream\"\n description={<p>We are going to attempt to parse a single log to help you out! If we are unable to, or you would like it parsed differently, head on over to <a href=\"/system/pipelines\">Pipeline Rules</a> to set up your own parser!</p>}>\n\n <Panel bsStyle={bsStyle}\n header={(\n <Notice>\n <Icon name={iconName} size=\"2x\" />\n <span>{acknowledgment} looks like <em>{logType}</em> message type.</span>\n </Notice>\n )}>\n {knownLog ? 'Take a look at what we have parsed so far and you can create Pipeline Rules to handle even more!' : 'Not to worry, Graylog can still read in these log messages. We have parsed what we could and you can build Pipeline Rules to do the rest!'}\n </Panel>\n\n <Input id=\"awsCloudWatchLog\"\n type=\"textarea\"\n label=\"Formatted Log Message\"\n value={logData.message}\n rows={10}\n disabled />\n </FormWrap>\n );\n};\n\nStepHealthCheck.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nconst Notice = styled.span`\n display: flex;\n align-items: center;\n\n > span {\n margin-left: 6px;\n }\n`;\n\nconst CheckAgain = styled.p`\n display: flex;\n align-items: center;\n\n > strong {\n margin-right: 9px;\n }\n`;\n\nexport default StepHealthCheck;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport { Input } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { ApiContext } from 'integrations/aws/context/Api';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport FormWrap from 'integrations/aws/common/FormWrap';\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport { DEFAULT_KINESIS_LOG_TYPE, KINESIS_LOG_TYPES } from 'integrations/aws/common/constants';\n\nconst Default = ({ value }) => (\n <>{value} <small>(default)</small></>\n);\n\nDefault.propTypes = {\n value: PropTypes.string.isRequired,\n};\n\nconst StepReview = ({ onSubmit, onEditClick, externalInputSubmit }) => {\n const [formError, setFormError] = useState(null);\n const { formData } = useContext(FormDataContext);\n const { logData } = useContext(ApiContext);\n const {\n awsAuthenticationType,\n awsCloudWatchAddFlowLogPrefix = { value: undefined },\n awsCloudWatchAssumeARN = { value: undefined },\n awsCloudWatchAwsKey = { value: undefined },\n awsCloudWatchAwsRegion,\n awsCloudWatchBatchSize,\n awsEndpointCloudWatch = { value: undefined },\n awsCloudWatchKinesisInputType = { value: DEFAULT_KINESIS_LOG_TYPE },\n awsCloudWatchKinesisStream,\n awsCloudWatchName,\n awsCloudWatchThrottleEnabled = { value: undefined },\n awsEndpointDynamoDB = { value: undefined },\n awsEndpointIAM = { value: undefined },\n awsEndpointKinesis = { value: undefined },\n } = formData;\n\n const throttleEnabled = !!awsCloudWatchThrottleEnabled.value;\n const addPrefix = !!awsCloudWatchAddFlowLogPrefix.value;\n\n const [fetchSubmitStatus, setSubmitFetch] = useFetch(\n null,\n () => {\n onSubmit();\n },\n 'POST',\n {\n name: awsCloudWatchName.value,\n region: awsCloudWatchAwsRegion.value,\n aws_input_type: awsCloudWatchKinesisInputType.value,\n stream_name: awsCloudWatchKinesisStream.value,\n batch_size: Number(awsCloudWatchBatchSize.value || awsCloudWatchBatchSize.defaultValue),\n enable_throttling: throttleEnabled,\n add_flow_log_prefix: addPrefix,\n },\n );\n\n useEffect(() => {\n if (fetchSubmitStatus.error) {\n setFormError({\n full_message: fetchSubmitStatus.error,\n nice_message: <span>We were unable to save your Input, please try again in a few moments.</span>,\n });\n }\n }, [fetchSubmitStatus.error]);\n\n const handleSubmit = () => {\n if (externalInputSubmit) {\n onSubmit(formData);\n\n return;\n }\n\n setSubmitFetch(ApiRoutes.INTEGRATIONS.AWS.KINESIS.SAVE);\n };\n\n return (\n <FormWrap onSubmit={handleSubmit}\n buttonContent=\"Complete CloudWatch Setup\"\n loading={fetchSubmitStatus.loading}\n error={formError}\n title=\"Final Review\"\n description=\"Check out everything below to make sure it's correct, then click the button below to complete your CloudWatch setup!\">\n\n <Container>\n <Subheader>Setting up CloudWatch <small><EditAnchor onClick={onEditClick('authorize')}>Edit</EditAnchor></small></Subheader>\n <ReviewItems>\n <li>\n <strong>Name</strong>\n <span>{awsCloudWatchName.value}</span>\n </li>\n\n <li>\n <strong>Authorization Type</strong>\n <span>{awsAuthenticationType.value}</span>\n </li>\n\n {awsCloudWatchAwsKey.value && (\n <li>\n <strong>AWS Key</strong>\n <span>{awsCloudWatchAwsKey.value}</span>\n </li>\n )}\n\n {awsCloudWatchAssumeARN.value && (\n <li>\n <strong>AWS Assumed ARN Role</strong>\n <span>{awsCloudWatchAssumeARN.value}</span>\n </li>\n )}\n\n {awsEndpointCloudWatch.value && (\n <li>\n <strong>CloudWatch VPC Endpoint</strong>\n <span>{awsEndpointCloudWatch.value}</span>\n </li>\n )}\n\n {awsEndpointDynamoDB.value && (\n <li>\n <strong>DynamoDB VPC Endpoint</strong>\n <span>{awsEndpointDynamoDB.value}</span>\n </li>\n )}\n\n {awsEndpointIAM.value && (\n <li>\n <strong>IAM VPC Endpoint</strong>\n <span>{awsEndpointIAM.value}</span>\n </li>\n )}\n\n {awsEndpointKinesis.value && (\n <li>\n <strong>Kinesis VPC Endpoint</strong>\n <span>{awsEndpointKinesis.value}</span>\n </li>\n )}\n\n <li>\n <strong>AWS Region</strong>\n <span>{awsCloudWatchAwsRegion.value}</span>\n </li>\n </ReviewItems>\n\n <Subheader>Setting up Kinesis <small><EditAnchor onClick={onEditClick('kinesis-setup')}>Edit</EditAnchor></small></Subheader>\n <ReviewItems>\n <li>\n <strong>Stream</strong>\n <span>{awsCloudWatchKinesisStream.value}</span>\n </li>\n <li>\n <strong>Global Input</strong>\n <span><Icon name=\"done\" /></span>\n </li>\n <li>\n <strong>Record Batch Size</strong>\n <span>\n {\n awsCloudWatchBatchSize.value\n ? awsCloudWatchBatchSize.value\n : <Default value={awsCloudWatchBatchSize.defaultValue} />\n }\n </span>\n </li>\n <li>\n <strong>Enable Throttling</strong>\n <span><Icon name={throttleEnabled ? 'check_circle' : 'cancel'} /></span>\n </li>\n <li>\n <strong>Add Flow Log prefix to field names</strong>\n <span><Icon name={addPrefix ? 'check_circle' : 'cancel'} /></span>\n </li>\n </ReviewItems>\n\n <Subheader>Formatting</Subheader>\n <ReviewItems>\n <li>\n <strong>Log Type</strong>\n <span>{KINESIS_LOG_TYPES.find((type) => type.value === awsCloudWatchKinesisInputType.value).label}</span>\n </li>\n </ReviewItems>\n <p>If you need your logs parsed differently check out our <Link to={Routes.SYSTEM.PIPELINES.RULES}>Pipeline Rule</Link> for additional details and instructions.</p>\n\n <Input id=\"awsCloudWatchLog\"\n type=\"textarea\"\n label=\"\"\n value={(logData && logData.message) || \"We haven't received a response back from Amazon yet.\"}\n rows={10}\n disabled />\n </Container>\n </FormWrap>\n );\n};\n\nStepReview.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onEditClick: PropTypes.func.isRequired,\n externalInputSubmit: PropTypes.bool,\n};\n\nStepReview.defaultProps = {\n externalInputSubmit: false,\n};\n\nconst Container = styled.div`\n border: 1px solid #a6afbd;\n margin: 25px 0;\n padding: 15px;\n border-radius: 4px;\n`;\n\nconst Subheader = styled.h3`\n margin: 0 0 10px;\n`;\n\nconst ReviewItems = styled.ul`\n list-style: none;\n margin: 0 0 25px 10px;\n padding: 0;\n\n li {\n padding: 5px;\n\n &:nth-of-type(odd) {\n background-color: rgb(220 225 229 / 40%);\n }\n }\n\n strong::after {\n content: ':';\n margin-right: 5px;\n }\n`;\n\nconst EditAnchor = styled.a`\n font-size: 12px;\n margin-left: 5px;\n font-style: italic;\n cursor: pointer;\n\n &::before {\n content: '(';\n }\n\n &::after {\n content: ')';\n }\n`;\n\nexport default StepReview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * <http://www.mongodb.com/licensing/server-side-public-license>.\n */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Panel } from 'components/bootstrap';\nimport useFetch from 'integrations/aws/common/hooks/useFetch';\nimport { ApiRoutes } from 'integrations/aws/common/Routes';\nimport Icon from 'components/common/Icon';\n\nfunction Policies({ title, note, policy }) {\n const [opened, setOpened] = useState(false);\n\n const toggleOpen = () => {\n setOpened(!opened);\n };\n\n return (\n <div>\n <Header onClick={toggleOpen}>\n <HeaderContent>\n <Title>{opened ? 'Hide' : 'Show'} {title}\n {note}\n \n\n \n \n\n \n {JSON.stringify(policy, null, 2)}\n \n \n );\n}\n\nPolicies.propTypes = {\n title: PropTypes.string.isRequired,\n note: PropTypes.string.isRequired,\n policy: PropTypes.object.isRequired,\n};\n\nexport default function SidebarPermissions() {\n const [permissionsStatus] = useFetch(ApiRoutes.INTEGRATIONS.AWS.PERMISSIONS);\n\n return (\n AWS Policy Permissions}>\n

    Please verify that you have granted your AWS IAM user sufficient permissions. You can use the following policies for reference.

    \n\n {!permissionsStatus.loading && permissionsStatus.data && (\n <>\n \n\n \n \n )}\n
    \n );\n}\n\nconst Header = styled.header`\n display: flex;\n align-items: center;\n cursor: pointer;\n`;\n\nconst HeaderContent = styled.div`\n flex-grow: 1;\n`;\n\nconst IconContainer = styled.span`\n transform: rotate(${(props) => (props.opened ? '90deg' : '0deg')});\n transition: transform 150ms ease-in-out;\n`;\n\nconst Policy = styled.pre`\n overflow: hidden;\n max-height: ${(props) => (props.opened ? '1000px' : '0')};\n opacity: ${(props) => (props.opened ? '1' : '0')};\n transition: max-height 150ms ease-in-out, opacity 150ms ease-in-out, margin 150ms ease-in-out, padding 150ms ease-in-out;\n margin-bottom: ${(props) => (props.opened ? '12px' : '0')};\n padding: ${(props) => (props.opened ? '9.5px' : '0')};\n`;\n\nconst Title = styled.h4`\n font-weight: bold;\n`;\n\nconst Note = styled.p`\n font-style: italic;\n`;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\n\nimport ConfirmLeaveDialog from 'components/common/ConfirmLeaveDialog';\nimport Wizard from 'components/common/Wizard';\nimport { getValueFromInput } from 'util/FormsUtils.js';\nimport Routes from 'routing/Routes';\nimport StepAuthorize from 'integrations/aws/StepAuthorize';\nimport { StepsContext } from 'integrations/aws/context/Steps';\nimport { FormDataContext } from 'integrations/aws/context/FormData';\nimport { ApiContext } from 'integrations/aws/context/Api';\nimport { SidebarContext } from 'integrations/aws/context/Sidebar';\n// import useHistory from 'routing/useHistory';\n\nimport StepKinesis from './StepKinesis';\nimport StepHealthCheck from './StepHealthCheck';\nimport StepReview from './StepReview';\nimport SidebarPermissions from './SidebarPermissions';\n\nconst CloudWatch = ({ externalInputSubmit, onSubmit }) => {\n const {\n availableSteps,\n currentStep,\n isDisabledStep,\n setAvailableStep,\n setCurrentStep,\n setEnabledStep,\n } = useContext(StepsContext);\n const { setFormData } = useContext(FormDataContext);\n const { availableStreams } = useContext(ApiContext);\n const { sidebar, clearSidebar } = useContext(SidebarContext);\n const [dirty, setDirty] = useState(false);\n const [lastStep, setLastStep] = useState(false);\n // const history = useHistory();\n const navigate = useNavigate();\n\n const handleStepChange = (nextStep) => {\n setCurrentStep(nextStep);\n };\n\n const wizardSteps = useMemo(() => {\n const handleEditClick = (nextStep) => () => {\n setCurrentStep(nextStep);\n };\n\n const handleFieldUpdate = ({ target }, fieldData) => {\n const id = target.name || target.id;\n\n let value = getValueFromInput(target);\n\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n if (!dirty) {\n setDirty(true);\n }\n\n setFormData(id, { ...fieldData, value });\n };\n\n const handleSubmit = (maybeFormData) => {\n clearSidebar();\n const nextStep = availableSteps.indexOf(currentStep) + 1;\n\n if (availableSteps[nextStep]) {\n const key = availableSteps[nextStep];\n\n setCurrentStep(key);\n setEnabledStep(key);\n } else {\n setLastStep(true);\n\n if (externalInputSubmit) {\n onSubmit(maybeFormData);\n } else {\n // history.push(Routes.SYSTEM.INPUTS);\n navigate(Routes.SYSTEM.INPUTS);\n }\n }\n };\n\n return [\n {\n key: 'authorize',\n title: 'AWS Kinesis Authorize',\n component: (} />),\n disabled: isDisabledStep('authorize'),\n },\n {\n key: 'kinesis-setup',\n title: 'AWS Kinesis Setup',\n component: ( 0} />),\n disabled: isDisabledStep('kinesis-setup'),\n },\n {\n key: 'health-check',\n title: 'AWS CloudWatch Health Check',\n component: (),\n disabled: isDisabledStep('health-check'),\n },\n {\n key: 'review',\n title: 'AWS Kinesis Review',\n component: (),\n disabled: isDisabledStep('review'),\n },\n ];\n }, [isDisabledStep, availableStreams.length, externalInputSubmit, setCurrentStep, dirty, setFormData, clearSidebar, availableSteps, currentStep, setEnabledStep, onSubmit, navigate]);\n\n useEffect(() => {\n if (availableSteps.length === 0) {\n setAvailableStep(wizardSteps.map((step) => step.key));\n }\n }, [availableSteps, setAvailableStep, wizardSteps]);\n\n return (\n <>\n {dirty && !lastStep && }\n \n {sidebar}\n \n \n );\n};\n\nCloudWatch.propTypes = {\n externalInputSubmit: PropTypes.bool,\n onSubmit: PropTypes.func,\n};\n\nCloudWatch.defaultProps = {\n externalInputSubmit: false,\n onSubmit: undefined,\n};\n\nexport default CloudWatch;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nconst DEFAULT_SETTINGS = {\n /*\n fieldId: { // Same ID as supplied to \n value: '',\n defaultValue: '', // Update StepReview.jsx & relevant step(s) if you need to output\n }\n */\n\n /* Default Advanced Settings */\n awsCloudWatchBatchSize: {\n defaultValue: '10000',\n },\n awsCloudWatchThrottleEnabled: {\n value: true, // We want to default to true on render, but never compare the default\n },\n awsCloudWatchAddFlowLogPrefix: {\n value: true, // We want to default to true on render, but never compare the default\n },\n};\n\nexport default DEFAULT_SETTINGS;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SidebarProvider } from 'integrations/aws/context/Sidebar';\nimport { FormDataProvider } from 'integrations/aws/context/FormData';\nimport { StepsProvider } from 'integrations/aws/context/Steps';\nimport { ApiProvider } from 'integrations/aws/context/Api';\nimport { AdvancedOptionsProvider } from 'integrations/aws/context/AdvancedOptions';\nimport { toGenericInputCreateRequest } from 'integrations/aws/common/formDataAdapter';\n\nimport CloudWatch from './CloudWatch';\nimport INITIAL_FORMDATA from './_initialFormData';\n\nconst EmbeddedCloudWatchApp = ({ onSubmit }) => {\n const handleSubmit = (formData) => {\n if (!onSubmit) {\n return;\n }\n\n onSubmit(toGenericInputCreateRequest(formData));\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nEmbeddedCloudWatchApp.propTypes = {\n onSubmit: PropTypes.func,\n};\n\nEmbeddedCloudWatchApp.defaultProps = {\n onSubmit: undefined,\n};\n\nexport default EmbeddedCloudWatchApp;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport PageHeader from 'components/common/PageHeader';\n\nimport EmbeddedCloudWatchApp from './EmbeddedCloudWatchApp';\n\nconst CloudWatchApp = () => (\n <>\n \n This feature retrieves log messages from various AWS sources.\n \n \n \n);\n\nCloudWatchApp.propTypes = {};\n\nexport default CloudWatchApp;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ReadOnlyFormGroup } from 'components/common';\n\nconst PagerDutyNotificationDetails = ({ notification }) => (\n <>\n \n \n \n \n \n \n);\n\nPagerDutyNotificationDetails.propTypes = {\n notification: PropTypes.shape({\n config: PropTypes.shape({\n routing_key: PropTypes.string,\n custom_incident: PropTypes.bool,\n key_prefix: PropTypes.string,\n client_name: PropTypes.string,\n client_url: PropTypes.string,\n }).isRequired,\n }).isRequired,\n};\n\nexport default PagerDutyNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { Input } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\n\nclass PagerDutyNotificationForm extends React.Component {\n static propTypes = {\n config: PropTypes.shape({\n client_name: PropTypes.string,\n client_url: PropTypes.string,\n custom_incident: PropTypes.bool,\n key_prefix: PropTypes.string,\n routing_key: PropTypes.string,\n }).isRequired,\n validation: PropTypes.shape({\n failed: PropTypes.bool.isRequired,\n errors: PropTypes.shape({\n client_name: PropTypes.arrayOf(PropTypes.string),\n client_url: PropTypes.arrayOf(PropTypes.string),\n custom_incident: PropTypes.arrayOf(PropTypes.string),\n key_prefix: PropTypes.arrayOf(PropTypes.string),\n routing_key: PropTypes.arrayOf(PropTypes.string),\n }),\n error_context: PropTypes.object,\n }).isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultConfig = {\n client_name: 'Graylog',\n client_url: '',\n custom_incident: true,\n key_prefix: 'Graylog',\n routing_key: '',\n };\n\n propagateChange = (key, value) => {\n const { config, onChange } = this.props;\n const nextConfig = cloneDeep(config);\n nextConfig[key] = value;\n onChange(nextConfig);\n };\n\n handleChange = (event) => {\n const { name } = event.target;\n this.propagateChange(name, getValueFromInput(event.target));\n };\n\n render() {\n const { config, validation } = this.props;\n\n return (\n <>\n \n \n \n \n \n \n );\n }\n}\n\nexport default PagerDutyNotificationForm;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonNotificationSummary.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonNotificationSummary.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Table, Button } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport styles from './CommonNotificationSummary.css';\n\nclass CommonNotificationSummary extends React.Component {\n static propTypes = {\n type: PropTypes.string.isRequired,\n notification: PropTypes.object.isRequired,\n definitionNotification: PropTypes.object.isRequired,\n children: PropTypes.element.isRequired,\n };\n\n state = {\n displayDetails: false,\n };\n\n toggleDisplayDetails = () => {\n const { displayDetails } = this.state;\n\n this.setState({ displayDetails: !displayDetails });\n };\n\n render() {\n const { type, notification, definitionNotification, children } = this.props;\n const { displayDetails } = this.state;\n\n return (\n <>\n

    {notification.title || definitionNotification.notification_id}

    \n
    \n
    {type}
    \n
    \n \n {displayDetails && (\n \n \n \n \n \n \n {children}\n \n
    Description{notification.description || 'No description given'}
    \n )}\n
    \n
    \n \n );\n }\n}\n\nexport default CommonNotificationSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CommonNotificationSummary from 'components/event-notifications/event-notification-types/CommonNotificationSummary';\n\nfunction PagerDutyNotificationSummary({ notification, ...restProps }) {\n return (\n \n \n Routing Key\n {notification?.config?.routing_key}\n \n \n Use Custom Incident Key\n {notification?.config?.custom_incident ? 'Yes' : 'No'}\n \n \n Incident Key Prefix\n {notification?.config?.key_prefix}\n \n \n Client Name\n {notification?.config?.client_name}\n \n \n Client URL\n {notification?.config?.client_url}\n \n \n );\n}\n\nPagerDutyNotificationSummary.propTypes = {\n type: PropTypes.string.isRequired,\n notification: PropTypes.shape({\n config: PropTypes.shape({\n routing_key: PropTypes.string,\n custom_incident: PropTypes.bool,\n key_prefix: PropTypes.string,\n client_name: PropTypes.string,\n client_url: PropTypes.string,\n }).isRequired,\n }).isRequired,\n definitionNotification: PropTypes.shape.isRequired,\n};\n\nexport default PagerDutyNotificationSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ReadOnlyFormGroup } from 'components/common';\nimport { Well } from 'components/bootstrap';\nimport type { SlackNotificationSummaryType } from 'integrations/event-notifications/types';\n\nconst NewExampleWell = styled(Well)(({ theme }) => css`\n margin-bottom: 5px;\n font-family: ${theme.fonts.family.monospace};\n font-size: ${theme.fonts.size.body};\n white-space: pre-wrap;\n word-wrap: break-word;\n`);\n\nconst SlackNotificationDetails: React.FC = ({ notification }) => (\n <>\n \n \n \n {notification.config.custom_message || Empty body}\n \n )} />\n \n \n \n \n \n \n \n \n \n);\n\nexport default SlackNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport camelCase from 'lodash/camelCase';\n\nimport { Col, Input, Button, ControlLabel, FormControl, FormGroup, HelpBlock, InputGroup, Row } from 'components/bootstrap';\nimport { ColorPickerPopover, TimezoneSelect } from 'components/common';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport type { SlackConfigType, SlackValidationType } from 'integrations/event-notifications/types';\n\ntype Props = {\n config: SlackConfigType,\n validation: SlackValidationType,\n onChange: any,\n};\n\nclass SlackNotificationForm extends React.Component {\n static defaultConfig = {\n color: '#FF0000',\n webhook_url: '',\n channel: '#channel',\n /* eslint-disable no-template-curly-in-string */\n custom_message: ''\n + '--- [Event Definition] ---------------------------\\n'\n + 'Title: ${event_definition_title}\\n'\n + 'Type: ${event_definition_type}\\n'\n + '--- [Event] --------------------------------------\\n'\n + 'Alert Replay: ${http_external_uri}alerts/${event.id}/replay-search\\n'\n + 'Timestamp: ${event.timestamp}\\n'\n + 'Message: ${event.message}\\n'\n + 'Source: ${event.source}\\n'\n + 'Key: ${event.key}\\n'\n + 'Priority: ${event.priority}\\n'\n + 'Alert: ${event.alert}\\n'\n + 'Timestamp Processing: ${event.timestamp}\\n'\n + 'Timerange Start: ${event.timerange_start}\\n'\n + 'Timerange End: ${event.timerange_end}\\n'\n + 'Event Fields:\\n'\n + '${foreach event.fields field}\\n'\n + '${field.key}: ${field.value}\\n'\n + '${end}\\n'\n + '${if backlog}\\n'\n + '--- [Backlog] ------------------------------------\\n'\n + 'Last messages accounting for this alert:\\n'\n + '${foreach backlog message}\\n'\n + '${message.timestamp} :: ${message.source} :: ${message.message}\\n'\n + '${message.message}\\n'\n + '${end}'\n + '${end}\\n',\n /* eslint-enable no-template-curly-in-string */\n user_name: 'Graylog',\n notify_channel: false,\n link_names: false,\n icon_url: '',\n icon_emoji: '',\n backlog_size: 0,\n time_zone: 'UTC',\n };\n\n constructor(props) {\n super(props);\n\n const defaultBacklogSize = props.config.backlog_size;\n\n this.state = {\n isBacklogSizeEnabled: defaultBacklogSize > 0,\n backlogSize: defaultBacklogSize,\n };\n }\n\n handleBacklogSizeChange = (event) => {\n const { name } = event.target;\n const value = getValueFromInput(event.target);\n\n this.setState({ [camelCase(name)]: value });\n this.propagateChange(name, getValueFromInput(event.target));\n };\n\n toggleBacklogSize = () => {\n const { isBacklogSizeEnabled, backlogSize } = this.state;\n\n this.setState({ isBacklogSizeEnabled: !isBacklogSizeEnabled });\n this.propagateChange('backlog_size', (isBacklogSizeEnabled ? 0 : backlogSize));\n };\n\n propagateChange = (key, value) => {\n const { config, onChange } = this.props;\n const nextConfig = cloneDeep(config);\n nextConfig[key] = value;\n onChange(nextConfig);\n };\n\n handleColorChange = (color, _, hidePopover) => {\n hidePopover();\n this.propagateChange('color', color);\n };\n\n handleChange = (event) => {\n const { name } = event.target;\n this.propagateChange(name, getValueFromInput(event.target));\n };\n\n handleTimeZoneChange = (nextValue) => {\n this.propagateChange('time_zone', nextValue);\n };\n\n render() {\n const { config, validation } = this.props;\n const { isBacklogSizeEnabled, backlogSize } = this.state;\n const element =

    Custom message to be appended below the alert title. See for more details.

    ;\n\n return (\n <>\n\n \n Configuration color\n
    \n \n
    \n Change color}\n onChange={this.handleColorChange} />\n
    \n
    \n Choose a color to use for this configuration.\n
    \n \n \n \n \n \n \n \n Message Backlog Limit (optional)\n \n \n \n \n \n \n Limit the number of backlog messages sent as part of the Slack notification. If set to 0, no limit will be enforced.\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default SlackNotificationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport CommonNotificationSummary from 'components/event-notifications/event-notification-types/CommonNotificationSummary';\nimport type { SlackNotificationSummaryType } from 'integrations/event-notifications/types';\n\nfunction SlackNotificationSummary({ notification, ...restProps }: SlackNotificationSummaryType) {\n return (\n \n \n Color\n {notification?.config?.color}\n \n \n Webhook URL\n {notification.config.webhook_url}\n \n \n Channel\n {notification.config.channel}\n \n \n Include Title\n {notification.config.include_title}\n \n \n Custom Message\n {notification.config.custom_message}\n \n \n Time Zone\n {notification.config.time_zone}\n \n \n Message Backlog Limit\n {notification.config.backlog_size}\n \n \n User Name\n {notification.config.user_name}\n \n \n Notify Channel\n {notification.config.notify_channel ? 'Yes' : 'No'}\n \n \n Link Names\n {notification.config.link_names ? 'Yes' : 'No'}\n \n \n Icon URL\n {notification.config.icon_url}\n \n \n Icon Emoji\n {notification.config.icon_emoji}\n \n \n );\n}\n\nSlackNotificationSummary.defaultProps = {\n notification: {},\n};\n\nexport default SlackNotificationSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ReadOnlyFormGroup } from 'components/common';\nimport { Well } from 'components/bootstrap';\n\nimport type { TeamsNotificationSummaryType } from '../types';\n\nconst NewExampleWell = styled(Well)(({ theme }) => css`\n margin-bottom: 5px;\n font-family: ${theme.fonts.family.monospace};\n font-size: ${theme.fonts.size.body};\n white-space: pre-wrap;\n word-wrap: break-word;\n`);\n\nconst TeamsNotificationDetails: React.FC = ({ notification }) => (\n <>\n \n \n {notification.config.custom_message || Empty body}\n \n )} />\n \n \n \n \n);\n\nexport default TeamsNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport camelCase from 'lodash/camelCase';\n\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { Input, Button, ControlLabel, FormControl, FormGroup, HelpBlock, InputGroup } from 'components/bootstrap';\nimport { ColorPickerPopover, TimezoneSelect } from 'components/common';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport type { SelectCallback } from 'components/bootstrap/types';\n\nimport type { ConfigType, ValidationType } from '../types';\n\ntype TeamsNotificationFormType = {\n config: ConfigType,\n validation: ValidationType\n onChange: any\n}\n\nclass TeamsNotificationForm extends React.Component {\n static defaultConfig = {\n color: '#FF0000',\n webhook_url: '',\n /* eslint-disable no-template-curly-in-string */\n custom_message: ''\n + '--- [Event Definition] ---\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '
    Title:${event_definition_title}
    Type:${event_definition_type}
    \\n'\n + '\\n'\n + '--- [Event] ---\\n'\n + '
    \\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '\\n'\n + '
    Alert Replay:${http_external_uri}alerts/${event.id}/replay-search
    Timestamp:${event.timestamp}
    Message:${event.message}
    Source:${event.source}
    Key:${event.key}
    Priority:${event.priority}
    Alert:${event.alert}
    Timestamp Processing:${event.timestamp}
    Timerange Start:${event.timerange_start}
    Timerange End:${event.timerange_end}
    \\n'\n + '\\n'\n + 'Event Fields:\\n'\n + '
    \\n'\n + '${foreach event.fields field}\\n'\n + '\\n'\n + '${end}\\n'\n + '
    ${field.key}:${field.value}
    \\n'\n + '\\n'\n + '${if backlog}\\n'\n + '--- [Backlog] ---\\n'\n + '${foreach backlog message}\\n'\n + '

    ${message.timestamp} :: ${message.source} :: ${message.message}

    \\n'\n + '${end}${end}',\n /* eslint-enable no-template-curly-in-string */\n icon_url: '',\n backlog_size: 0,\n time_zone: 'UTC',\n };\n\n constructor(props: TeamsNotificationFormType | Readonly) {\n super(props);\n\n const defaultBacklogSize = props.config.backlog_size;\n\n this.state = {\n isBacklogSizeEnabled: defaultBacklogSize > 0,\n backlogSize: defaultBacklogSize,\n };\n }\n\n handleBacklogSizeChange: SelectCallback = (event: { target: { name: string; }; }) => {\n const { name } = event.target;\n const value = getValueFromInput(event.target);\n\n this.setState({ [camelCase(name)]: value });\n this.propagateChange(name, getValueFromInput(event.target));\n };\n\n toggleBacklogSize = () => {\n const { isBacklogSizeEnabled, backlogSize } = this.state;\n\n this.setState({ isBacklogSizeEnabled: !isBacklogSizeEnabled });\n this.propagateChange('backlog_size', (isBacklogSizeEnabled ? 0 : backlogSize));\n };\n\n propagateChange = (key: string, value: any) => {\n const { config, onChange } = this.props;\n const nextConfig = cloneDeep(config);\n nextConfig[key] = value;\n onChange(nextConfig);\n };\n\n handleColorChange: (color: string, _: any, hidePopover: any) => void = (color, _, hidePopover) => {\n hidePopover();\n this.propagateChange('color', color);\n };\n\n handleTimeZoneChange = (nextValue) => {\n this.propagateChange('time_zone', nextValue);\n };\n\n handleChange = (event: { target: { name: any; }; }) => {\n const { name } = event.target;\n this.propagateChange(name, getValueFromInput(event.target));\n };\n\n render() {\n const { config, validation } = this.props;\n const { isBacklogSizeEnabled, backlogSize } = this.state;\n const url = 'https://docs.graylog.org/docs/alerts#notifications';\n const element =

    Custom message to be appended below the alert title. See docs for more details.

    ;\n\n return (\n <>\n\n \n Configuration color\n
    \n \n
    \n Change color}\n onChange={this.handleColorChange} />\n
    \n
    \n Choose a color to use for this configuration.\n
    \n \n \n\n \n \n \n \n Message Backlog Limit (optional)\n \n \n \n \n \n \n Limit the number of backlog messages sent as part of the Microsoft Teams notification. If set to 0, no limit will be enforced.\n \n\n \n\n \n );\n }\n}\n\nexport default TeamsNotificationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport CommonNotificationSummary from 'components/event-notifications/event-notification-types/CommonNotificationSummary';\n\nimport type { TeamsNotificationSummaryType } from '../types';\n\nfunction TeamsNotificationSummary({ notification, ...restProps }: TeamsNotificationSummaryType) {\n return (\n \n \n Color\n {notification?.config?.color}\n \n \n Webhook URL\n {notification.config.webhook_url}\n \n\n \n Custom Message\n {notification.config.custom_message}\n \n \n Time Zone\n {notification.config.time_zone}\n \n \n Message Backlog Limit\n {notification.config.backlog_size}\n \n \n Icon URL\n {notification.config.icon_url}\n \n \n );\n}\n\nTeamsNotificationSummary.defaultProps = {\n notification: {},\n};\n\nexport default TeamsNotificationSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button, Input } from 'components/bootstrap';\n\nconst GreyNoiseAdapterFieldSet = ({ config, updateConfig, validationMessage, validationState }) => {\n const isCreate = useRef(!config.api_token?.is_set);\n const [showResetPasswordButton, setShowResetPasswordButton] = useState(config.api_token?.is_set === true);\n\n const setUserPassword = useCallback((nextUserPassword) => {\n updateConfig({ ...config, api_token: nextUserPassword });\n }, [updateConfig, config]);\n\n useEffect(() => {\n // Set a default value on `api_token` that the server can deserialize\n if (config.api_token?.is_set !== undefined) {\n // Keeping value is only helpful when editing, but since setting '' as value throws an error during\n // validation, this at least avoids users seeing validation errors constantly.\n setUserPassword({ keep_value: true });\n }\n }, [setUserPassword, config.api_token]);\n\n const handleUserPasswordChange = ({ target }) => {\n const typedPassword = target.value;\n let nextPassword = { set_value: typedPassword };\n\n if (typedPassword === '') {\n nextPassword = { delete_value: true };\n }\n\n setUserPassword(nextPassword);\n };\n\n const toggleUserPasswordReset = () => {\n if (showResetPasswordButton) {\n setUserPassword({ delete_value: true });\n setShowResetPasswordButton(false);\n\n return;\n }\n\n setUserPassword({ keep_value: true });\n setShowResetPasswordButton(true);\n };\n\n return (\n
    \n {showResetPasswordButton ? (\n \n \n \n ) : (\n \n Undo Reset\n \n ) : undefined}\n onChange={handleUserPasswordChange}\n help={validationMessage('api_token', 'The API Token.')}\n bsStyle={validationState('api_token')}\n value={config.api_token?.set_value || ''}\n labelClassName=\"col-sm-3\"\n wrapperClassName=\"col-sm-9\"\n required />\n )}\n
    \n );\n};\n\nGreyNoiseAdapterFieldSet.propTypes = {\n config: PropTypes.shape({\n api_token: PropTypes.object.isRequired,\n }).isRequired,\n updateConfig: PropTypes.func.isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n};\n\nexport default GreyNoiseAdapterFieldSet;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Alert } from 'components/bootstrap';\n\nclass GreyNoiseAdapterSummary extends React.Component {\n static propTypes = {\n dataAdapter: PropTypes.shape({\n config: PropTypes.shape({\n }).isRequired,\n updateConfig: PropTypes.func.isRequired,\n handleFormEvent: PropTypes.func.isRequired,\n validationState: PropTypes.func.isRequired,\n validationMessage: PropTypes.func.isRequired,\n }),\n };\n\n render() {\n return (\n
    \n
    \n
    API Token
    \n
    ******
    \n
    \n \n

    The GreyNoise Community IP Lookup Data Adapter is no longer supported. This Data Adapter should not be used.

    \n
    \n
    \n );\n }\n}\n\nexport default GreyNoiseAdapterSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\n\nimport { ExternalLink } from 'components/common';\n\nclass GreyNoiseAdapterDocumentation extends React.Component {\n render() {\n const style = { marginBottom: 10 };\n\n return (\n
    \n

    \n The GreyNoise Quick IP Lookup data adapter uses the Greynoise API to\n lookup indicators for the given key and returns the values for the IP Quick Context endpoint.\n See IP Quick Context\n

    \n
    \n );\n }\n}\n\nexport default GreyNoiseAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport React from 'react';\n\nimport { Alert } from 'components/bootstrap';\n\nclass GreyNoiseCommunityIpLookupAdapterDocumentation extends React.Component {\n render() {\n return (\n
    \n \n

    The GreyNoise Community IP Lookup Data Adapter is no longer supported. This Data Adapter should not be used.

    \n
    \n
    \n );\n }\n}\n\nexport default GreyNoiseCommunityIpLookupAdapterDocumentation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Routes from 'integrations/aws/common/Routes';\n\nimport AWSInputConfiguration from './aws/AWSInputConfiguration';\nimport AWSCloudWatchApp from './aws/cloudwatch/CloudWatchApp';\nimport EmbeddedCloudWatchApp from './aws/cloudwatch/EmbeddedCloudWatchApp';\nimport PagerDutyNotificationDetails from './pager-duty/PagerDutyNotificationDetails';\nimport PagerDutyNotificationForm from './pager-duty/PagerDutyNotificationForm';\nimport PagerDutyNotificationSummary from './pager-duty/PagerDutyNotificationSummary';\nimport SlackNotificationDetails from './event-notifications/event-notification-details/SlackNotificationDetails';\nimport SlackNotificationForm from './event-notifications/event-notification-types/SlackNotificationForm';\nimport SlackNotificationSummary from './event-notifications/event-notification-types/SlackNotificationSummary';\nimport TeamsNotificationDetails from './event-notifications/event-notification-details/TeamsNotificationDetails';\nimport TeamsNotificationForm from './event-notifications/event-notification-types/TeamsNotificationForm';\nimport TeamsNotificationSummary from './event-notifications/event-notification-types/TeamsNotificationSummary';\nimport GreyNoiseAdapterFieldSet from './dataadapters/GreyNoiseAdapterFieldSet';\nimport GreyNoiseAdapterSummary from './dataadapters/GreyNoiseAdapterSummary';\nimport GreyNoiseAdapterDocumentation from './dataadapters/GreyNoiseAdapterDocumentation';\nimport GreyNoiseCommunityIpLookupAdapterDocumentation\n from './dataadapters/GreyNoiseCommunityIpLookupAdapterDocumentation';\n\nconst bindings = {\n routes: [\n { path: Routes.INTEGRATIONS.AWS.CLOUDWATCH.index, component: AWSCloudWatchApp },\n ],\n inputConfiguration: [\n {\n type: 'org.graylog.integrations.aws.inputs.AWSInput',\n component: AWSInputConfiguration,\n embeddedComponent: EmbeddedCloudWatchApp,\n },\n ],\n eventNotificationTypes: [\n {\n type: 'pagerduty-notification-v2',\n displayName: 'PagerDuty Notification [Official]',\n formComponent: PagerDutyNotificationForm,\n summaryComponent: PagerDutyNotificationSummary,\n detailsComponent: PagerDutyNotificationDetails,\n defaultConfig: PagerDutyNotificationForm.defaultConfig,\n },\n {\n type: 'slack-notification-v1',\n displayName: 'Slack Notification',\n formComponent: SlackNotificationForm,\n summaryComponent: SlackNotificationSummary,\n detailsComponent: SlackNotificationDetails,\n defaultConfig: SlackNotificationForm.defaultConfig,\n },\n {\n type: 'teams-notification-v1',\n displayName: 'Microsoft Teams Notification',\n formComponent: TeamsNotificationForm,\n summaryComponent: TeamsNotificationSummary,\n detailsComponent: TeamsNotificationDetails,\n defaultConfig: TeamsNotificationForm.defaultConfig,\n },\n ],\n lookupTableAdapters: [\n {\n type: 'GreyNoise',\n displayName: 'GreyNoise Quick IP Lookup',\n formComponent: GreyNoiseAdapterFieldSet,\n summaryComponent: GreyNoiseAdapterSummary,\n documentationComponent: GreyNoiseAdapterDocumentation,\n },\n {\n type: 'GreyNoise Community IP Lookup',\n displayName: '[Deprecated] GreyNoise Community IP Lookup',\n formComponent: GreyNoiseAdapterFieldSet,\n summaryComponent: GreyNoiseAdapterSummary,\n documentationComponent: GreyNoiseCommunityIpLookupAdapterDocumentation,\n },\n ],\n};\n\nexport default bindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\nimport URI from 'urijs';\nimport concat from 'lodash/concat';\n\nimport * as URLUtils from 'util/URLUtils';\nimport fetch from 'logic/rest/FetchProvider';\nimport UserNotification from 'util/UserNotification';\nimport Search from 'views/logic/search/Search';\nimport SearchResult from 'views/logic/SearchResult';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const FilterPreviewActions = singletonActions(\n 'core.FilterPreview',\n () => Reflux.createActions({\n create: { asyncResult: true },\n execute: { asyncResult: true },\n search: { asyncResult: true },\n }),\n);\n\nconst delay = (ms) => new Promise((resolve) => {\n setTimeout(resolve, ms);\n});\n\nexport const FilterPreviewStore = singletonStore(\n 'core.FilterPreview',\n () => Reflux.createStore({\n listenables: [FilterPreviewActions],\n sourceUrl: '/views/search',\n searchJob: undefined,\n result: undefined,\n\n getInitialState() {\n return this.getState();\n },\n\n propagateChanges() {\n this.trigger(this.getState());\n },\n\n getState() {\n return {\n searchJob: this.searchJob,\n result: this.result,\n };\n },\n\n resourceUrl({ segments = [], query = {} }) {\n const uri = new URI(this.sourceUrl);\n const nextSegments = concat(uri.segment(), segments);\n\n uri.segmentCoded(nextSegments);\n uri.query(query);\n\n return URLUtils.qualifyUrl(uri.resource());\n },\n\n /**\n * Method that creates a search query in the backend. This method does not execute the search, please call\n * `execute()` once the response of `create()` is resolved to execute the search.\n */\n create(searchRequest) {\n const newSearch = searchRequest.toBuilder()\n .newId()\n .build();\n const promise = fetch('POST', this.resourceUrl({}), JSON.stringify(newSearch));\n\n promise.then((response) => {\n this.searchJob = Search.fromJSON(response);\n this.result = undefined;\n this.propagateChanges();\n\n return response;\n });\n\n FilterPreviewActions.create.promise(promise);\n },\n\n trackJobStatus(job, search) {\n return new Promise((resolve) => {\n if (job && job.execution.done) {\n resolve(new SearchResult(job));\n } else {\n resolve(delay(250)\n .then(() => this.jobStatus(job.id))\n .then((jobStatus) => this.trackJobStatus(jobStatus, search)));\n }\n });\n },\n\n run(search, executionState) {\n return fetch('POST', this.resourceUrl({ segments: [search.id, 'execute'] }), JSON.stringify(executionState));\n },\n\n jobStatus(jobId) {\n return fetch('GET', this.resourceUrl({ segments: ['status', jobId] }));\n },\n\n trackJob(search, executionState) {\n return this.run(search, executionState).then((job) => this.trackJobStatus(job, search));\n },\n\n /**\n * Method that executes a search in the backend and wait until its results are ready.\n * Take into account that you need to create the search before you execute it.\n */\n execute(executionState) {\n if (this.executePromise) {\n this.executePromise.cancel();\n }\n\n if (this.searchJob) {\n this.executePromise = this.trackJob(this.searchJob, executionState)\n .then(\n (result) => {\n this.result = result;\n this.executePromise = undefined;\n this.propagateChanges();\n\n return result;\n },\n () => UserNotification.error('Could not execute search'),\n );\n\n FilterPreviewActions.execute.promise(this.executePromise);\n\n return this.executePromise;\n }\n\n throw new Error('Unable to execute search if no search was created before!');\n },\n\n search(searchRequest, executionState) {\n FilterPreviewActions.create(searchRequest)\n .then(() => FilterPreviewActions.execute(executionState));\n },\n }),\n);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./FilterPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./FilterPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Panel, Table } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\nimport HelpPanel from 'components/event-definitions/common/HelpPanel';\n\nimport styles from './FilterPreview.css';\n\nclass FilterPreview extends React.Component {\n static propTypes = {\n searchResult: PropTypes.object,\n errors: PropTypes.array,\n isFetchingData: PropTypes.bool,\n displayPreview: PropTypes.bool,\n };\n\n static defaultProps = {\n searchResult: {},\n errors: [],\n isFetchingData: false,\n displayPreview: false,\n };\n\n renderMessages = (messages) => messages.map(({ index, message }) => (\n \n {message.timestamp}\n {message.message}\n \n ));\n\n renderSearchResult = (searchResult = {}) => {\n if (!searchResult.messages || searchResult.messages.length === 0) {\n return

    Could not find any messages with the current search criteria.

    ;\n }\n\n return (\n \n \n \n \n \n \n \n \n {this.renderMessages(searchResult.messages)}\n \n
    TimestampMessage
    \n );\n };\n\n render() {\n const { isFetchingData, searchResult, errors, displayPreview } = this.props;\n\n const renderedResults = isFetchingData ? : this.renderSearchResult(searchResult);\n\n return (\n <>\n \n

    \n The Filter & Aggregation Condition will generate different number of Events, depending on how it is\n configured:\n

    \n
      \n
    • Filter: One Event per message matching the filter
    • \n
    • \n Aggregation without groups: One Event every time the aggregation result satisfies\n the condition\n
    • \n
    • \n Aggregation with groups: One Event per group whose aggregation result satisfies\n the condition\n
    • \n
    \n
    \n\n {displayPreview && (\n \n \n Filter Preview\n \n \n {errors.length > 0 ?

    {errors[0].description}

    : renderedResults}\n
    \n
    \n )}\n \n );\n }\n}\n\nexport default FilterPreview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\n\nimport Query from 'views/logic/queries/Query';\nimport Search from 'views/logic/search/Search';\nimport connect from 'stores/connect';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport { CurrentUserStore } from 'stores/users/CurrentUserStore';\nimport { FilterPreviewActions, FilterPreviewStore } from 'stores/event-definitions/FilterPreviewStore';\nimport generateId from 'logic/generateId';\n\nimport FilterPreview from './FilterPreview';\n\nconst isPermittedToSeePreview = (currentUser, config) => {\n const missingPermissions = config?.streams?.some((stream) => !isPermitted(currentUser.permissions, `streams:read:${stream}`));\n\n return !missingPermissions;\n};\n\nclass FilterPreviewContainer extends React.Component {\n fetchSearch = debounce((config) => {\n const { currentUser } = this.props;\n\n if (!isPermittedToSeePreview(currentUser, config)) {\n return;\n }\n\n const { queryId, searchTypeId } = this.state;\n\n const formattedStreams = config?.streams?.map((stream) => ({ type: 'stream', id: stream })) || [];\n\n const queryBuilder = Query.builder()\n .id(queryId)\n .query({ type: 'elasticsearch', query_string: config?.query || '*' })\n .timerange({ type: 'relative', range: (config?.search_within_ms || 0) / 1000 })\n .filter(formattedStreams.length === 0 ? null : { type: 'or', filters: formattedStreams })\n .filters(config.filters)\n .searchTypes([{\n id: searchTypeId,\n type: 'messages',\n limit: 10,\n offset: 0,\n }]);\n\n const query = queryBuilder.build();\n\n const search = Search.create().toBuilder()\n .parameters(config?.query_parameters?.filter((param) => (!param.embryonic)) || [])\n .queries([query])\n .build();\n\n FilterPreviewActions.search(search);\n }, 250);\n\n static propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n filterPreview: PropTypes.object.isRequired,\n currentUser: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n queryId: generateId(),\n searchTypeId: generateId(),\n };\n }\n\n componentDidMount() {\n const { eventDefinition } = this.props;\n\n this.fetchSearch(eventDefinition.config);\n }\n\n componentDidUpdate(prevProps) {\n const { eventDefinition } = this.props;\n\n const {\n query: prevQuery,\n query_parameters: prevQueryParameters,\n streams: prevStreams,\n search_within_ms: prevSearchWithin,\n } = prevProps.eventDefinition.config;\n const {\n query,\n query_parameters: queryParameters,\n streams,\n search_within_ms: searchWithin,\n } = eventDefinition.config;\n\n if (query !== prevQuery || queryParameters !== prevQueryParameters || !isEqual(streams, prevStreams) || searchWithin !== prevSearchWithin) {\n this.fetchSearch(eventDefinition.config);\n }\n }\n\n render() {\n const { eventDefinition, filterPreview, currentUser } = this.props;\n const { queryId, searchTypeId } = this.state;\n const isLoading = !filterPreview.result || !filterPreview.result.forId(queryId);\n let searchResult;\n let errors;\n\n if (!isLoading) {\n searchResult = filterPreview.result.forId(queryId).searchTypes[searchTypeId];\n\n errors = filterPreview.result.errors; // result may not always be set, so I can't use destructuring\n }\n\n return (\n \n );\n }\n}\n\nexport default connect(FilterPreviewContainer, {\n filterPreview: FilterPreviewStore,\n currentUser: CurrentUserStore,\n}, ({ currentUser, ...otherProps }) => ({\n ...otherProps,\n currentUser: currentUser.currentUser,\n}));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nexport const emptyComparisonExpressionConfig = () => ({\n expr: undefined,\n left: {\n expr: 'number-ref',\n ref: undefined,\n },\n right: {\n expr: 'number',\n value: 0,\n },\n});\n\nexport const emptyBooleanExpressionConfig = ({ operator = '&&', left = emptyComparisonExpressionConfig(), right = emptyComparisonExpressionConfig() }) => ({\n expr: operator,\n left: left,\n right: right,\n});\n\nexport const emptyGroupExpressionConfig = ({ operator = '&&', child = emptyComparisonExpressionConfig() }) => ({\n expr: 'group',\n operator: operator,\n child: child,\n});\n\n/**\n * Replaces all boolean expressions inside the current tree, without affecting any internal groups.\n */\nexport const replaceBooleanExpressionOperatorInGroup = (nextOperator, expression) => {\n const nextExpression = { ...expression };\n\n if (expression.expr === '&&' || expression.expr === '||') {\n nextExpression.expr = nextOperator;\n nextExpression.left = replaceBooleanExpressionOperatorInGroup(nextOperator, nextExpression.left);\n nextExpression.right = replaceBooleanExpressionOperatorInGroup(nextOperator, nextExpression.right);\n }\n\n return nextExpression;\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport union from 'lodash/union';\n\nconst flattenValidationTree = (validationTree, errors = []) => {\n if (validationTree.message) {\n return union(errors, [validationTree.message]);\n }\n\n if (validationTree.left) {\n return union(errors, flattenValidationTree(validationTree.left), flattenValidationTree(validationTree.right));\n }\n\n if (validationTree.child) {\n return union(errors, flattenValidationTree(validationTree.child));\n }\n\n return errors;\n};\n\nconst validateExpressionTree = (expression, series, validationTree = {}) => {\n switch (expression.expr) {\n case 'number':\n return (Number.isFinite(expression.value) ? {} : { message: 'Threshold must be a valid number' });\n case 'number-ref':\n /* eslint-disable no-case-declarations */\n const error = { message: 'Function must be set' };\n\n if (!expression.ref) {\n return error;\n }\n\n const selectedSeries = series.find((s) => s.id === expression.ref);\n\n if (selectedSeries?.type === 'percentage' && selectedSeries?.strategy === 'SUM' && !selectedSeries?.field) {\n return { message: 'Field must be set' };\n }\n\n if (!selectedSeries?.field && (selectedSeries?.type === 'avg'\n || selectedSeries?.type === 'card'\n || selectedSeries?.type === 'latest'\n || selectedSeries?.type === 'max'\n || selectedSeries?.type === 'min'\n || selectedSeries?.type === 'percentile'\n || selectedSeries?.type === 'stddev'\n || selectedSeries?.type === 'sum'\n || selectedSeries?.type === 'sumofsquares'\n || selectedSeries?.type === 'variance')) { return { message: 'Field must be set' }; }\n\n return (selectedSeries?.type ? {} : error);\n /* eslint-enable no-case-declarations */\n case '&&':\n case '||':\n case '<':\n case '<=':\n case '>':\n case '>=':\n case '==':\n return {\n left: validateExpressionTree(expression.left, series, validationTree),\n right: validateExpressionTree(expression.right, series, validationTree),\n };\n case 'group':\n return { child: validateExpressionTree(expression.child, series, validationTree) };\n default:\n return { message: 'Condition must be set' };\n }\n};\n\nconst validateExpression = (expression, series) => {\n const validationResults = {};\n\n if (!expression) {\n validationResults.isValid = true;\n\n return validationResults;\n }\n\n validationResults.validationTree = validateExpressionTree(expression, series);\n validationResults.errors = flattenValidationTree(validationResults.validationTree);\n validationResults.isValid = validationResults.errors.length === 0;\n\n return validationResults;\n};\n\nexport default validateExpression;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\n\nexport const internalNodePropType = PropTypes.shape({\n expr: PropTypes.string,\n left: PropTypes.object,\n right: PropTypes.object,\n});\n\nexport const numberExpressionNodePropType = PropTypes.shape({\n expr: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), // Accept string to allow clearing field\n});\n\nexport const numberRefNodePropType = PropTypes.shape({\n expr: PropTypes.string,\n ref: PropTypes.string,\n});\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\n\nimport { Input, Col } from 'components/bootstrap';\nimport * as FormsUtils from 'util/FormsUtils';\nimport { numberExpressionNodePropType } from 'logic/alerts/AggregationExpressionTypes';\n\nconst NumberExpression = ({ expression, onChange, renderLabel, validation }) => {\n const handleChange = (event) => {\n const nextExpression = cloneDeep(expression);\n\n nextExpression.value = event.target.value === '' ? '' : FormsUtils.getValueFromInput(event.target);\n onChange({ conditions: nextExpression });\n };\n\n return (\n \n \n \n );\n};\n\nNumberExpression.propTypes = {\n expression: numberExpressionNodePropType.isRequired,\n onChange: PropTypes.func.isRequired,\n renderLabel: PropTypes.bool.isRequired,\n validation: PropTypes.object,\n};\n\nNumberExpression.defaultProps = {\n validation: {},\n};\n\nexport default NumberExpression;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { Select } from 'components/common';\nimport { Col, ControlLabel, FormGroup, HelpBlock, Row } from 'components/bootstrap';\nimport { numberRefNodePropType } from 'logic/alerts/AggregationExpressionTypes';\n\nimport { percentileOptions, percentageStrategyOptions } from '../../../../views/Constants';\n\nconst formatFunctions = (functions) => functions\n .sort(naturalSort)\n .map((fn) => ({ label: `${fn.toLowerCase()}()`, value: fn }));\n\nconst getSeriesId = (currentSeries) => `${currentSeries.type}-${currentSeries.field ?? ''}`;\n\nconst NumberRefExpression = ({\n aggregationFunctions,\n formattedFields,\n eventDefinition,\n expression,\n onChange,\n renderLabel,\n validation,\n}) => {\n const getSeries = useCallback((seriesId) => eventDefinition?.config?.series?.find((series) => series.id === seriesId), [eventDefinition?.config?.series]);\n\n const createSeries = useCallback(() => ({ id: expression.ref }), [expression.ref]);\n\n const getOrCreateSeries = useCallback((seriesId) => getSeries(seriesId) || createSeries(), [createSeries, getSeries]);\n\n const handleFieldChange = useCallback((key, value) => {\n const series = cloneDeep(eventDefinition?.config?.series);\n const nextSeries = cloneDeep(getOrCreateSeries(expression.ref));\n\n if (value !== undefined) {\n nextSeries[key] = value;\n }\n\n if (key === 'type' && value !== 'percentage') {\n delete nextSeries.strategy;\n }\n\n if (key === 'type' && value !== 'percentage') {\n delete nextSeries.percentile;\n }\n\n const nextSeriesId = getSeriesId(nextSeries);\n nextSeries.id = nextSeriesId;\n\n const seriesIndex = series.findIndex((s) => s.id === nextSeries.id);\n\n if (seriesIndex >= 0) {\n series[seriesIndex] = nextSeries;\n } else {\n series.push(nextSeries);\n }\n\n const nextExpression = cloneDeep(expression);\n\n nextExpression.ref = nextSeriesId;\n\n onChange({\n series: series,\n conditions: nextExpression,\n });\n }, [eventDefinition?.config?.series, expression, getOrCreateSeries, onChange]);\n\n const handleAggregationFunctionChange = useCallback((nextFunction) => {\n handleFieldChange('type', nextFunction);\n }, [handleFieldChange]);\n\n const handleAggregationFieldChange = useCallback((nextField) => {\n handleFieldChange('field', nextField);\n }, [handleFieldChange]);\n\n const series = getSeries(expression.ref) || {};\n\n const elements = ['percentage', 'percentile'].includes(series.type) ? 3 : 2;\n\n return (\n \n \n {renderLabel && If}\n \n \n handleFieldChange('strategy', newValue)}\n options={percentageStrategyOptions}\n value={series.strategy} />\n \n )}\n \n handleFieldChange('percentile', newValue)}\n options={percentileOptions}\n value={series.percentile} />\n \n )}\n \n {validation.message && {validation.message}}\n \n \n );\n};\n\nNumberRefExpression.propTypes = {\n aggregationFunctions: PropTypes.array.isRequired,\n eventDefinition: PropTypes.object.isRequired,\n expression: numberRefNodePropType.isRequired,\n formattedFields: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n renderLabel: PropTypes.bool.isRequired,\n validation: PropTypes.object,\n};\n\nNumberRefExpression.defaultProps = {\n validation: {},\n};\n\nexport default NumberRefExpression;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Col, FormControl, FormGroup } from 'components/bootstrap';\nimport { Select } from 'components/common';\n\nconst OperatorSelector = styled.div(({ theme }) => css`\n margin-bottom: 15px;\n font-size: ${theme.fonts.size.body};\n`);\n\nconst BooleanOperatorSelect = styled(({ isFirstElement: _ignored, ...props }) => )`\n width: 100px;\n margin-left: ${(props) => (props.isFirstElement ? '' : '1em')};\n margin-right: 1em;\n`;\n\nconst BooleanOperatorSelector = ({ initialText, operator, onOperatorChange }) => (\n \n \n {initialText && (\n \n {initialText} \n \n )}\n \n ', value: '>' },\n { label: '>=', value: '>=' },\n { label: '=', value: '==' },\n ]}\n value={expression.expr}\n clearable={false} />\n {validation.message && {validation.message}}\n \n \n \n \n \n );\n};\n\nComparisonExpression.propTypes = {\n expression: internalNodePropType.isRequired,\n level: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n onChildChange: PropTypes.func.isRequired,\n renderLabel: PropTypes.bool.isRequired,\n validation: PropTypes.object,\n};\n\nComparisonExpression.defaultProps = {\n validation: {},\n};\n\nexport default ComparisonExpression;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport styled from 'styled-components';\n\nimport { Clearfix } from 'components/bootstrap';\nimport { internalNodePropType } from 'logic/alerts/AggregationExpressionTypes';\nimport { replaceBooleanExpressionOperatorInGroup } from 'logic/alerts/AggregationExpressionConfig';\n\nimport BooleanOperatorSelector from './BooleanOperatorSelector';\n\n// eslint-disable-next-line import/no-cycle\nimport AggregationConditionExpression from '../AggregationConditionExpression';\n\nconst Group = styled.div`\n padding-left: 40px;\n`;\n\nconst GroupExpression = (props) => {\n const { expression, level, onChange, onChildChange, validation } = props;\n\n const handleOperatorChange = (nextOperator) => {\n const nextExpression = cloneDeep(expression);\n\n nextExpression.operator = nextOperator;\n nextExpression.child = replaceBooleanExpressionOperatorInGroup(nextOperator, nextExpression.child);\n onChange({ conditions: nextExpression });\n };\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nGroupExpression.propTypes = {\n expression: internalNodePropType.isRequired,\n level: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n onChildChange: PropTypes.func.isRequired,\n validation: PropTypes.object,\n};\n\nGroupExpression.defaultProps = {\n validation: {},\n};\n\nexport default GroupExpression;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./AggregationConditionExpression.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./AggregationConditionExpression.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\n\nimport { Icon } from 'components/common';\nimport { Button, ButtonToolbar, Clearfix, Col, FormGroup } from 'components/bootstrap';\nimport { emptyBooleanExpressionConfig, emptyGroupExpressionConfig, replaceBooleanExpressionOperatorInGroup } from 'logic/alerts/AggregationExpressionConfig';\nimport { internalNodePropType } from 'logic/alerts/AggregationExpressionTypes';\n\nimport NumberExpression from './AggregationConditionExpressions/NumberExpression';\nimport NumberRefExpression from './AggregationConditionExpressions/NumberRefExpression';\nimport BooleanOperatorSelector from './AggregationConditionExpressions/BooleanOperatorSelector';\n/* eslint-disable import/no-cycle, import/order */\n// We render the expression tree recursively, so complex expressions need to refer back to this component\nimport BooleanExpression from './AggregationConditionExpressions/BooleanExpression';\nimport ComparisonExpression from './AggregationConditionExpressions/ComparisonExpression';\nimport GroupExpression from './AggregationConditionExpressions/GroupExpression';\n/* eslint-enable import/no-cycle */\n\nimport styles from './AggregationConditionExpression.css';\n\nclass AggregationConditionExpression extends React.Component {\n static propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n validation: PropTypes.object,\n formattedFields: PropTypes.array.isRequired,\n aggregationFunctions: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n expression: internalNodePropType.isRequired,\n parent: internalNodePropType,\n level: PropTypes.number, // Internal use only\n renderLabel: PropTypes.bool,\n };\n\n static defaultProps = {\n level: 0,\n parent: undefined,\n renderLabel: true,\n validation: {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n globalGroupOperator: undefined,\n };\n }\n\n getEffectiveGlobalGroupOperator = () => {\n const { globalGroupOperator } = this.state;\n\n if (globalGroupOperator) {\n return globalGroupOperator;\n }\n\n const { expression } = this.props;\n\n return (expression.expr === '&&' || expression.expr === '||' ? expression.expr : '&&');\n };\n\n // eslint-disable-next-line class-methods-use-this\n getBooleanOperator = (expression, defaultOperator) => {\n if (!expression) {\n return defaultOperator;\n }\n\n const key = expression.expr === 'group' ? 'operator' : 'expr';\n\n return get(expression, key, defaultOperator) === '&&' ? '&&' : '||';\n };\n\n handleAddExpression = () => {\n const { expression, onChange, parent } = this.props;\n const defaultOperator = this.getEffectiveGlobalGroupOperator();\n const prevOperator = this.getBooleanOperator(parent, defaultOperator);\n const nextExpression = emptyBooleanExpressionConfig({ operator: prevOperator, left: expression });\n\n onChange({ conditions: nextExpression });\n };\n\n handleAddGroup = () => {\n const { expression, onChange, parent } = this.props;\n const defaultOperator = this.getEffectiveGlobalGroupOperator();\n const prevOperator = this.getBooleanOperator(parent, defaultOperator);\n const groupOperator = prevOperator === '&&' ? '||' : '&&';\n const groupExpression = emptyGroupExpressionConfig({ operator: groupOperator });\n const nextExpression = emptyBooleanExpressionConfig({ operator: prevOperator, left: expression, right: groupExpression });\n\n onChange({ conditions: nextExpression });\n };\n\n handleDeleteExpression = () => {\n const { onChange } = this.props;\n\n onChange({ conditions: null });\n };\n\n handleChildChange = (branch) => (changes) => {\n const { expression, onChange } = this.props;\n\n if (!Object.keys(changes).includes('conditions')) {\n onChange(changes);\n\n return;\n }\n\n const update = changes.conditions;\n let nextUpdate;\n\n // A null update indicates that one of the branches got removed\n if (update === null) {\n if (branch === 'child') {\n // If this is the last branch of a group, remove the group altogether\n nextUpdate = null;\n } else {\n // Otherwise replace the current tree with the still existing branch\n nextUpdate = expression[(branch === 'left' ? 'right' : 'left')];\n }\n } else if (branch === 'child' && update.expr === 'group') {\n // Avoid that a group's child is another group. Groups should at least have one expression\n nextUpdate = update;\n } else {\n // Propagate the update in the expression tree.\n const nextExpression = cloneDeep(expression);\n\n nextExpression[branch] = update;\n nextUpdate = nextExpression;\n }\n\n onChange({ ...changes, conditions: nextUpdate });\n };\n\n handleOperatorChange = (nextOperator) => {\n const { expression, onChange } = this.props;\n\n this.setState({ globalGroupOperator: nextOperator });\n const nextExpression = replaceBooleanExpressionOperatorInGroup(nextOperator, expression);\n\n onChange({ conditions: nextExpression });\n };\n\n render() {\n const { expression, parent, renderLabel } = this.props;\n let expressionComponent;\n\n switch (expression.expr) {\n case 'number-ref':\n expressionComponent = ;\n break;\n case 'number':\n expressionComponent = ;\n break;\n case 'group':\n expressionComponent = ;\n break;\n case '&&':\n case '||':\n expressionComponent = (\n \n );\n\n break;\n case '<':\n case '<=':\n case '>':\n case '>=':\n case '==':\n default:\n expressionComponent = (\n <>\n \n \n \n
    \n \n \n \n \n \n
    \n
    \n \n \n );\n }\n\n if (!parent && expression.expr !== 'group') {\n return (\n <>\n \n \n {expressionComponent}\n \n );\n }\n\n return expressionComponent;\n }\n}\n\nexport default AggregationConditionExpression;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Expression = ({ expression, series }) => {\n if (!expression) {\n return 'No condition configured';\n }\n\n switch (expression.expr) {\n case 'number':\n return expression.value;\n case 'number-ref':\n // eslint-disable-next-line no-case-declarations\n const selectedSeries = series.find((s) => s.id === expression.ref);\n\n return (selectedSeries && selectedSeries.type\n ? {selectedSeries.type}({selectedSeries.strategy ? `${selectedSeries.strategy}, ` : null}{selectedSeries.field}{selectedSeries.percentile ? `, ${selectedSeries.percentile}` : null})\n : No series selected);\n case '&&':\n case '||':\n return (\n <>\n {' '}\n {expression.expr === '&&' ? 'AND' : 'OR'}{' '}\n \n \n );\n case 'group':\n return [];\n case '<':\n case '<=':\n case '>':\n case '>=':\n case '==':\n return (\n <>\n {' '}\n {expression.expr}{' '}\n \n \n );\n default:\n return 'No condition configured';\n }\n};\n\nExpression.propTypes = {\n expression: PropTypes.object,\n series: PropTypes.array.isRequired,\n};\n\nExpression.defaultProps = {\n expression: null,\n};\n\nconst AggregationConditionSummary = ({ conditions, series }) => ;\n\nAggregationConditionSummary.propTypes = {\n conditions: PropTypes.object.isRequired,\n series: PropTypes.array.isRequired,\n};\n\nexport default AggregationConditionSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, Panel } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport AggregationConditionSummary from './AggregationConditionSummary';\n\nconst StyledPanel = styled(Panel)`\n margin-top: 10px;\n`;\n\nconst StyledButton = styled(Button)`\n margin-left: 15px;\n vertical-align: baseline;\n`;\n\nconst AggregationConditionsFormSummary = (props) => {\n const { conditions, series, expressionValidation, showInlineValidation, toggleShowValidation } = props;\n\n return (\n
    \n \n {expressionValidation.isValid\n ?

     Condition is valid

    \n : (\n

    \n  Condition is not valid\n \n {showInlineValidation ? 'Hide errors' : 'Show errors'}\n \n

    \n )}\n Preview: \n
    \n
    \n );\n};\n\nAggregationConditionsFormSummary.propTypes = {\n conditions: PropTypes.object.isRequired,\n series: PropTypes.array.isRequired,\n expressionValidation: PropTypes.object,\n showInlineValidation: PropTypes.bool,\n toggleShowValidation: PropTypes.func.isRequired,\n};\n\nAggregationConditionsFormSummary.defaultProps = {\n expressionValidation: { isValid: true },\n showInlineValidation: false,\n};\n\nexport default AggregationConditionsFormSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport get from 'lodash/get';\n\nimport { Alert, Row } from 'components/bootstrap';\nimport { emptyComparisonExpressionConfig } from 'logic/alerts/AggregationExpressionConfig';\nimport validateExpression from 'logic/alerts/AggregationExpressionValidation';\n\nimport AggregationConditionExpression from './AggregationConditionExpression';\nimport AggregationConditionsFormSummary from './AggregationConditionsFormSummary';\n\nimport commonStyles from '../common/commonStyles.css';\n\nconst initialEmptyConditionConfig = emptyComparisonExpressionConfig();\n\nconst extractSeriesReferences = (expression, acc = []) => {\n if (expression.expr === 'number-ref') {\n acc.push(expression.ref);\n }\n\n if (expression.left && expression.right) {\n return extractSeriesReferences(expression.left).concat(extractSeriesReferences(expression.right));\n }\n\n if (expression.child) {\n return extractSeriesReferences(expression.child);\n }\n\n return acc;\n};\n\nconst StyledAlert = styled(Alert)`\n margin-bottom: 10px !important;\n`;\n\nclass AggregationConditionsForm extends React.Component {\n static propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n formattedFields: PropTypes.array.isRequired,\n aggregationFunctions: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showInlineValidation: false,\n };\n }\n\n toggleShowInlineValidation = () => {\n const { showInlineValidation } = this.state;\n\n this.setState({ showInlineValidation: !showInlineValidation });\n };\n\n handleChange = (changes) => {\n const { eventDefinition, onChange } = this.props;\n\n if (!Object.keys(changes).includes('conditions')) {\n onChange(changes);\n\n return;\n }\n\n const nextConditions = changes.conditions;\n\n let nextSeries;\n\n if (nextConditions) {\n // Keep series up-to-date with changes in conditions\n const seriesReferences = extractSeriesReferences(nextConditions);\n\n nextSeries = (changes.series || eventDefinition?.config?.series)?.filter((s) => seriesReferences.includes(s.id)) || [];\n } else {\n nextSeries = [];\n }\n\n onChange({\n ...changes,\n conditions: { expression: nextConditions },\n series: nextSeries,\n });\n };\n\n render() {\n const { showInlineValidation } = this.state;\n const { eventDefinition, validation } = this.props;\n const expression = eventDefinition?.config?.conditions?.expression || initialEmptyConditionConfig;\n const expressionValidation = validateExpression(expression, eventDefinition?.config?.series || []);\n\n return (\n <>\n

    Create Events for Definition

    \n {validation.errors.conditions && (\n \n

    {get(validation, 'errors.conditions[0]')}

    \n
    \n )}\n\n \n \n \n\n \n \n );\n }\n}\n\nexport default AggregationConditionsForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport defaultTo from 'lodash/defaultTo';\n\nimport { MultiSelect } from 'components/common';\nimport { Col, ControlLabel, FormGroup, HelpBlock, Row } from 'components/bootstrap';\n// TODO: This should be moved to a general place outside of `views`\nimport { defaultCompare } from 'logic/DefaultCompare';\nimport useFieldTypes from 'views/logic/fieldtypes/useFieldTypes';\nimport { ALL_MESSAGES_TIMERANGE } from 'views/Constants';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport AggregationConditionsForm from './AggregationConditionsForm';\n\nimport commonStyles from '../common/commonStyles.css';\n\ntype EventDefinitionConfig = {\n group_by: Array,\n streams: Array,\n};\n\ntype EventDefinition = {\n config: EventDefinitionConfig,\n};\n\ntype Props = {\n eventDefinition: EventDefinition,\n validation: {},\n aggregationFunctions: Array<{}>,\n onChange: (key: string, newValue: any) => void,\n};\n\nconst AggregationForm = ({ aggregationFunctions, eventDefinition, validation, onChange }: Props) => {\n const { data: allFieldTypes } = useFieldTypes(eventDefinition?.config?.streams ?? [], ALL_MESSAGES_TIMERANGE);\n // Memoize function to only format fields when they change. Use joined fieldNames as cache key.\n const formattedFields = useMemo(() => (allFieldTypes ?? [])\n .sort((ftA, ftB) => defaultCompare(ftA.name, ftB.name))\n .map((fieldType) => ({\n label: `${fieldType.name} – ${fieldType.value.type.type}`,\n value: fieldType.name,\n })), [allFieldTypes]);\n\n const { pathname } = useLocation();\n const sendTelemetry = useSendTelemetry();\n\n const propagateConfigChange = useCallback((update: Partial) => {\n const nextConfig = { ...eventDefinition.config, ...update };\n\n onChange('config', nextConfig);\n }, [eventDefinition.config, onChange]);\n\n const handleGroupByChange = useCallback((selected: string) => {\n const nextValue = selected === '' ? [] : selected.split(',');\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_CONDITION.AGGREGATION_GROUP_BY_FIELD_SELECTED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-condition',\n app_action_value: 'group-by-field-select',\n selection_count: nextValue.length,\n });\n\n propagateConfigChange({ group_by: nextValue });\n }, [pathname, propagateConfigChange, sendTelemetry]);\n\n return (\n
    \n

    Aggregation

    \n

    \n Summarize log messages matching the Filter defined above by using a function. You can optionally group the\n Filter results by identical field values.\n

    \n \n \n \n Group by Field(s) (Optional)\n \n \n Select Fields that Graylog should use to group Filter results when they have identical values.\n {' '}Example:
    \n Assuming you created a Filter with all failed log-in attempts in your network, Graylog could alert you\n when there are more than 5 failed log-in attempts overall. Now, add username as Group by\n Field and Graylog will alert you for each username with more than 5 failed\n log-in attempts.\n
    \n
    \n \n
    \n\n
    \n\n \n
    \n );\n};\n\nAggregationForm.propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n aggregationFunctions: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default AggregationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { Col, ControlLabel, FormGroup, Input, Radio, Row } from 'components/bootstrap';\nimport * as FormsUtils from 'util/FormsUtils';\n\nimport FilterForm from './FilterForm';\nimport FilterPreviewContainer from './FilterPreviewContainer';\nimport AggregationForm from './AggregationForm';\n\nconst conditionTypes = {\n AGGREGATION: 0,\n FILTER: 1,\n};\n\nconst initialFilterConfig = {\n query: '',\n query_parameters: [],\n streams: [],\n filters: [],\n search_within_ms: 5 * 60 * 1000,\n execute_every_ms: 5 * 60 * 1000,\n _is_scheduled: true,\n event_limit: 100,\n};\n\nconst initialAggregationConfig = {\n group_by: [],\n series: [],\n conditions: {},\n};\n\nclass FilterAggregationForm extends React.Component {\n static propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n entityTypes: PropTypes.object.isRequired,\n streams: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n currentUser: PropTypes.object.isRequired,\n };\n\n static defaultConfig = {\n ...initialFilterConfig,\n ...initialAggregationConfig,\n };\n\n constructor(props) {\n super(props);\n\n const { group_by, series, conditions } = props.eventDefinition.config;\n const expression = get(conditions, 'expression', {});\n const defaultConditionType = (isEmpty(group_by) && isEmpty(series) && isEmpty(expression)\n ? conditionTypes.FILTER : conditionTypes.AGGREGATION);\n\n this.state = {\n conditionType: defaultConditionType,\n };\n }\n\n handleConfigChange = (event) => {\n const config = cloneDeep(this.props.eventDefinition.config);\n\n config[event.target.name] = FormsUtils.getValueFromInput(event.target);\n this.propagateConfigChange(config);\n };\n\n propagateConfigChange = (config) => {\n this.props.onChange('config', config);\n };\n\n handleTypeChange = (event) => {\n const stateChange = {};\n const nextConditionType = Number(FormsUtils.getValueFromInput(event.target));\n\n stateChange[event.target.name] = nextConditionType;\n\n if (nextConditionType === conditionTypes.FILTER) {\n const { eventDefinition } = this.props;\n\n // Store existing data temporarily in state, to restore it in case the type change was accidental\n const existingAggregationConfig = {};\n\n Object.keys(initialAggregationConfig).forEach((key) => {\n existingAggregationConfig[key] = eventDefinition.config[key];\n });\n\n stateChange.existingAggregationConfig = existingAggregationConfig;\n\n const nextConfig = { ...eventDefinition.config, ...initialAggregationConfig };\n\n this.propagateConfigChange(nextConfig);\n } else {\n // Reset aggregation data from state if it exists\n const { existingAggregationConfig } = this.state;\n\n if (existingAggregationConfig) {\n const { eventDefinition } = this.props;\n const nextConfig = { ...eventDefinition.config, ...existingAggregationConfig };\n\n this.propagateConfigChange(nextConfig);\n stateChange.existingAggregationConfig = undefined;\n }\n }\n\n this.setState(stateChange);\n };\n\n render() {\n const { conditionType } = this.state;\n const { entityTypes, eventDefinition, streams, validation, currentUser } = this.props;\n\n const onlyFilters = eventDefinition._scope === 'ILLUMINATE';\n\n return (\n <>\n \n \n s.is_editable)}\n currentUser={currentUser}\n onChange={this.props.onChange} />\n\n {onlyFilters || (\n \n Create Events for Definition if...\n \n Filter has results\n \n \n Aggregation of results reaches a threshold\n \n \n )}\n {(conditionType === conditionTypes.FILTER && !onlyFilters) && (\n \n \n \n \n \n )}\n \n \n \n \n \n {(conditionType === conditionTypes.AGGREGATION && !onlyFilters) && (\n \n \n \n \n \n )}\n \n );\n }\n}\n\nexport default FilterAggregationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport { Spinner } from 'components/common';\nimport { StreamsStore } from 'stores/streams/StreamsStore';\n\nexport default function withStreams(WrappedComponent, hiddenStreams = []) {\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n class WithStreams extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n streams: undefined,\n };\n }\n\n componentDidMount() {\n StreamsStore.load((streams) => {\n let filteredStreams = streams.filter((s) => s.is_editable);\n\n if (hiddenStreams.length !== 0) {\n filteredStreams = streams.filter((s) => !hiddenStreams.includes(s.id));\n }\n\n this.setState({ streams: filteredStreams });\n });\n }\n\n render() {\n const { streams } = this.state;\n\n if (!streams) {\n return ;\n }\n\n return ;\n }\n }\n\n WithStreams.displayName = `withStreams(${wrappedComponentName})`;\n\n return WithStreams;\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormWarningsProvider from 'contexts/FormWarningsProvider';\n\nimport FilterAggregationForm from './FilterAggregationForm';\nimport withStreams from './withStreams';\n\ntype Props = {\n action: 'create' | 'edit',\n validation: {},\n eventDefinition: {},\n fieldTypes: {},\n onChange: () => void,\n currentUser: {\n permissions: Array,\n }\n};\n\nconst FilterAggregationFormContainer = (props: Props) => (\n \n \n \n);\n\nFilterAggregationFormContainer.propTypes = {\n action: PropTypes.oneOf(['create', 'edit']).isRequired,\n validation: PropTypes.object.isRequired,\n eventDefinition: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n currentUser: PropTypes.object.isRequired, // Prop is passed down to pluggable entities\n};\n\nexport default withStreams(FilterAggregationFormContainer);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./FilterAggregationSummary.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./FilterAggregationSummary.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport upperFirst from 'lodash/upperFirst';\n\nimport { Link } from 'components/common/router';\nimport { Alert } from 'components/bootstrap';\nimport { extractDurationAndUnit } from 'components/common/TimeUnitInput';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport Routes from 'routing/Routes';\nimport validateExpression from 'logic/alerts/AggregationExpressionValidation';\n\nimport AggregationConditionSummary from './AggregationConditionSummary';\nimport withStreams from './withStreams';\nimport { TIME_UNITS } from './FilterForm';\nimport styles from './FilterAggregationSummary.css';\n\nimport LinkToReplaySearch from '../replay-search/LinkToReplaySearch';\n\nconst formatStreamOrId = (streamOrId) => {\n if (typeof streamOrId === 'string') {\n return {streamOrId};\n }\n\n return (\n \n {streamOrId.title}\n \n );\n};\n\nconst getConditionType = (config) => {\n const { group_by: groupBy, series, conditions } = config;\n\n return (isEmpty(groupBy)\n && (!conditions || isEmpty(conditions) || conditions.expression === null)\n && isEmpty(series)\n ? 'filter' : 'aggregation');\n};\n\nconst renderQueryParameters = (queryParameters) => {\n if (queryParameters.some((p) => p.embryonic)) {\n const undeclaredParameters = queryParameters.filter((p) => p.embryonic)\n .map((p) => p.name)\n .join(', ');\n\n return (\n \n There are undeclared query parameters: {undeclaredParameters}\n \n );\n }\n\n return
    {queryParameters.map((p) => p.name).join(', ')}
    ;\n};\n\nclass FilterAggregationSummary extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n currentUser: PropTypes.object.isRequired,\n streams: PropTypes.array.isRequired,\n };\n\n renderStreams = (streamIds, streamIdsWithMissingPermission) => {\n const { streams } = this.props;\n\n if ((!streamIds || streamIds.length === 0) && streamIdsWithMissingPermission.length <= 0) {\n return 'No Streams selected, searches in all Streams';\n }\n\n const warning = streamIdsWithMissingPermission.length > 0\n ? Missing Stream Permissions for:
    {streamIdsWithMissingPermission.join(', ')}
    \n : null;\n\n const renderedStreams = streamIds\n .map((id) => streams.find((s) => s.id === id) || id)\n .sort((s1, s2) => naturalSortIgnoreCase(s1.title || s1, s2.title || s2))\n .map(formatStreamOrId);\n\n return (\n <>\n {warning}\n {renderedStreams}\n \n );\n };\n\n renderSearchFilters = () => {\n const { filters } = this.props.config;\n\n if (!filters || filters.length === 0) {\n return
    No filters configured
    ;\n }\n\n return (\n
    \n {filters.map((filter) => (\n
    \n {filter.title ? `${filter.title} -> ` : null}{filter.queryString}\n
    \n ))}\n
    \n );\n };\n\n render() {\n const { config, currentUser } = this.props;\n const {\n query,\n query_parameters: queryParameters,\n streams,\n search_within_ms: searchWithinMs,\n execute_every_ms: executeEveryMs,\n _is_scheduled: isScheduled,\n event_limit,\n group_by: groupBy,\n series,\n conditions,\n } = config;\n\n const conditionType = getConditionType(config);\n\n const searchWithin = extractDurationAndUnit(searchWithinMs, TIME_UNITS);\n const executeEvery = extractDurationAndUnit(executeEveryMs, TIME_UNITS);\n\n const effectiveStreamIds = streams?.filter((s) => isPermitted(currentUser.permissions, `streams:read:${s}`));\n const streamIdsWithMissingPermission = streams?.filter((s) => !effectiveStreamIds.includes(s));\n\n const validationResults = validateExpression(conditions.expression, series);\n\n return (\n
    \n
    Type
    \n
    {upperFirst(conditionType)}
    \n
    Search Query
    \n
    {query || '*'}
    \n {queryParameters.length > 0 && renderQueryParameters(queryParameters)}\n
    Search Filters
    \n {this.renderSearchFilters()}\n
    Streams
    \n
    {this.renderStreams(effectiveStreamIds, streamIdsWithMissingPermission)}
    \n
    Search within
    \n
    {searchWithin.duration} {searchWithin.unit.toLowerCase()}
    \n
    Execute search every
    \n
    {executeEvery.duration} {executeEvery.unit.toLowerCase()}
    \n
    Enable scheduling
    \n
    {isScheduled ? 'yes' : 'no'}
    \n {conditionType === 'filter' && (\n <>\n
    Event limit
    \n
    {event_limit}
    \n \n )}\n {conditionType === 'aggregation' && (\n <>\n
    Group by Field(s)
    \n
    {groupBy && groupBy.length > 0 ? groupBy.join(', ') : 'No Group by configured'}
    \n
    Create Events if
    \n
    \n {validationResults.isValid\n ? \n : (\n \n Condition is not valid: {validationResults.errors.join(', ')}\n \n )}\n
    \n \n )}\n
    Actions
    \n
    \n \n
    \n
    \n );\n }\n}\n\nexport default withStreams(FilterAggregationSummary);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport FilterAggregationFormContainer from './FilterAggregationFormContainer';\nimport FilterAggregationForm from './FilterAggregationForm';\nimport FilterAggregationSummary from './FilterAggregationSummary';\n\nexport default {\n eventDefinitionTypes: [\n {\n type: 'aggregation-v1',\n displayName: 'Filter & Aggregation',\n sortOrder: 0, // Sort before conditions working on events\n description: 'Create Events from log messages by filtering them and (optionally) '\n + 'aggregating their results to match a given condition. These Events can be used as input for a Correlation Rule.',\n formComponent: FilterAggregationFormContainer,\n summaryComponent: FilterAggregationSummary,\n defaultConfig: FilterAggregationForm.defaultConfig,\n },\n ],\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useRef } from 'react';\n\nimport Select from 'components/common/Select';\n\ntype Props = React.ComponentProps;\n\nconst PaginatedSelect = (props: Props) => {\n const selectRef = useRef();\n\n return (\n \n );\n\n return (\n this.handleSelectChange('recipients_lut_name', value)}\n onKeyChange={(value) => this.handleSelectChange('recipients_lut_key', value)}\n selectedTableName={config.recipients_lut_name || ''}\n selectedKeyName={config.recipients_lut_key || ''}\n nameValidation={validation.errors.recipients_lut_name}\n keyValidation={validation.errors.recipients_lut_key}\n lookupTableNameLabel=\"Recipients Lookup Table Name\"\n customKeyField={customKeyField} />\n );\n };\n\n senderInput = () => {\n const { config, validation } = this.props;\n\n return (\n Sender (Optional)}\n type=\"text\"\n bsStyle={validation.errors.sender ? 'error' : null}\n help={get(validation, 'errors.sender[0]', 'The email address that should be used as the notification sender. Leave it empty to use the default sender address.')}\n value={config.sender || ''}\n onChange={this.handleChange} />\n );\n };\n\n senderLookupFormGroup = () => {\n const { config, validation } = this.props;\n // eslint-disable-next-line no-template-curly-in-string\n const placeholderText = '${event.group_by_fields.group_by_field}';\n\n const customKeyField = (\n \n );\n\n return (\n this.handleSelectChange('sender_lut_name', value)}\n onKeyChange={(value) => this.handleSelectChange('sender_lut_key', value)}\n selectedTableName={config.sender_lut_name || ''}\n selectedKeyName={config.sender_lut_key || ''}\n nameValidation={validation.errors.sender_lut_name}\n keyValidation={validation.errors.sender_lut_key}\n lookupTableNameLabel=\"Sender Lookup Table Name\"\n customKeyField={customKeyField} />\n );\n };\n\n replyToInput = () => {\n const { config, validation } = this.props;\n\n return (\n \n );\n };\n\n replyToLookupFormGroup = () => {\n const { config, validation } = this.props;\n // eslint-disable-next-line no-template-curly-in-string\n const placeholderText = '${event.group_by_fields.group_by_field}';\n\n const customKeyField = (\n \n );\n\n return (\n this.handleSelectChange('reply_to_lut_name', value)}\n onKeyChange={(value) => this.handleSelectChange('reply_to_lut_key', value)}\n selectedTableName={config.reply_to_lut_name || ''}\n selectedKeyName={config.reply_to_lut_key || ''}\n nameValidation={validation.errors.reply_to_lut_name}\n keyValidation={validation.errors.reply_to_lut_key}\n lookupTableNameLabel=\"Reply To Lookup Table Name\"\n customKeyField={customKeyField} />\n );\n };\n\n render() {\n const { config, validation } = this.props;\n\n return (\n <>\n \n {config.lookup_reply_to_email ? this.replyToLookupFormGroup() : this.replyToInput()}\n \n \n \n \n {config.lookup_sender_email ? this.senderLookupFormGroup() : this.senderInput()}\n \n \n \n \n\n \n \n User recipient(s) (Optional)\n \n \n {get(validation, 'errors.recipients[0]', 'Select Graylog users that will receive this Notification.')}\n \n \n \n {config.lookup_recipient_emails ? this.emailLookupFormGroup() : this.emailRecipientsFormGroup()}\n \n \n \n Time zone for date/time values (Optional)}>\n \n \n \n Body Template\n \n \n {get(validation, 'errors.body[0]', 'The template that will be used to generate the email body.')}\n \n \n \n HTML Body Template\n \n \n {get(validation, 'errors.body[0]', 'The template that will be used to generate the email HTML body.')}\n \n \n \n );\n }\n}\n\nexport default EmailNotificationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport EmailNotificationForm from './EmailNotificationForm';\n\nconst EmailNotificationFormContainer = (props) => ;\n\nEmailNotificationFormContainer.propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default EmailNotificationFormContainer;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./EmailNotificationSummary.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./EmailNotificationSummary.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Well } from 'components/bootstrap';\n\nimport CommonNotificationSummary from './CommonNotificationSummary';\nimport styles from './EmailNotificationSummary.css';\n\nconst EmailNotificationSummary = ({ notification, ...otherProps }) => (\n \n <>\n \n Use Lookup Table for Sender\n {notification.config.lookup_sender_email ? 'Yes' : 'No'}\n \n {notification.config.lookup_sender_email ? (\n <>\n \n Sender Email Lookup Table Name\n {notification.config.sender_lut_name}\n \n \n Sender Email Lookup Table Key\n {notification.config.sender_lut_key}\n \n \n )\n : (\n \n Sender\n {notification.config.sender}\n \n )}\n \n Subject\n {notification.config.subject}\n \n \n Use Lookup Table for Reply-To\n {notification.config.lookup_reply_to_email ? 'Yes' : 'No'}\n \n {notification.config.lookup_reply_to_email ? (\n <>\n \n Reply-To Email Lookup Table Name\n {notification.config.reply_to_lut_name}\n \n \n Reply-To Email Lookup Table Key\n {notification.config.reply_to_lut_key}\n \n \n )\n : (\n \n Reply-To\n {notification.config.reply_to}\n \n )}\n\n \n User Recipients\n {notification.config.user_recipients.join(', ') || 'No users will receive this notification.'}\n \n \n Use Lookup Table for Email Recipients\n {notification.config.lookup_recipient_emails ? 'Yes' : 'No'}\n \n {notification.config.lookup_recipient_emails ? (\n <>\n \n Email Recipients Lookup Table Name\n {notification.config.recipients_lut_name}\n \n \n Email Recipients Lookup Table Key\n {notification.config.recipients_lut_key}\n \n \n )\n : (\n \n Email Recipients\n \n {notification.config.email_recipients.join(', ') || 'No email addresses are configured to receive this notification.'}\n \n \n )}\n \n Email Body\n \n \n {notification.config.body_template || Empty body}\n \n \n \n \n Email HTML Body\n \n \n {notification.config.html_body_template || Empty HTML body}\n \n \n \n \n \n);\n\nEmailNotificationSummary.propTypes = {\n type: PropTypes.string.isRequired,\n notification: PropTypes.object,\n definitionNotification: PropTypes.object.isRequired,\n};\n\nEmailNotificationSummary.defaultProps = {\n notification: {},\n};\n\nexport default EmailNotificationSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport styled from 'styled-components';\n\nimport { URLWhiteListInput } from 'components/common';\nimport { Button, Checkbox, Col, ControlLabel, Input, Row } from 'components/bootstrap';\nimport * as FormsUtils from 'util/FormsUtils';\n\nconst StyledButton = styled(Button)`\n clear: both;\n display: block;\n margin-bottom: 15px;\n`;\n\nclass HttpNotificationForm extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n setIsSubmitEnabled: PropTypes.func,\n };\n\n static defaultConfig = {\n url: '',\n api_key_as_header: false,\n api_key: '',\n api_secret: { keep_value: true },\n basic_auth: { keep_value: true },\n skip_tls_verification: false,\n };\n\n constructor() {\n super();\n\n this.state = {\n api_secret: '',\n basic_auth: '',\n reset: {\n api_secret: false,\n basic_auth: false,\n },\n };\n }\n\n componentDidMount() {\n const { config, onChange } = this.props;\n const nextConfig = cloneDeep(config);\n\n nextConfig.basic_auth = config.basic_auth?.is_set ? { keep_value: true } : null;\n nextConfig.api_secret = config.api_secret?.is_set ? { keep_value: true } : null;\n\n onChange(nextConfig);\n\n this.setState({ basic_auth: config.basic_auth.is_set ? '******' : '' });\n this.setState({ api_secret: config.api_secret.is_set ? '******' : '' });\n }\n\n propagateChange = (key, value) => {\n const { config, onChange } = this.props;\n const nextConfig = cloneDeep(config);\n\n nextConfig[key] = value;\n onChange(nextConfig);\n };\n\n handleChange = (event) => {\n const { name } = event.target;\n const inputValue = FormsUtils.getValueFromInput(event.target);\n\n this.propagateChange(name, inputValue);\n };\n\n handleSecretInputChange = (event) => {\n const { name } = event.target;\n const inputValue = FormsUtils.getValueFromInput(event.target);\n const value = inputValue.length === 0 ? { delete_value: true } : { set_value: inputValue };\n\n this.setState({ [name]: inputValue });\n this.propagateChange(name, value);\n };\n\n onValidationChange = (validationState) => {\n const { setIsSubmitEnabled } = this.props;\n\n setIsSubmitEnabled(validationState !== 'error');\n };\n\n resetSecret = (attribute) => {\n const { reset } = this.state;\n reset[attribute] = true;\n this.setState({ reset });\n\n this.propagateChange(attribute, { delete_value: true });\n this.setState({ [attribute]: '' });\n };\n\n undoResetSecret = (attribute) => {\n const { reset } = this.state;\n reset[attribute] = false;\n this.setState({ reset });\n\n this.propagateChange(attribute, { keep_value: true });\n this.setState({ [attribute]: '******' });\n };\n\n render() {\n const { config, validation } = this.props;\n const { api_secret, basic_auth } = config;\n const { reset } = this.state;\n\n return (\n <>\n \n \n Skip TLS verification\n \n \n \n {basic_auth?.keep_value ? (\n <>\n Basic authentication\n { this.resetSecret('basic_auth'); }}>\n Reset Secret\n \n \n ) : (\n Basic authentication (Optional)}\n name=\"basic_auth\"\n type=\"password\"\n onChange={this.handleSecretInputChange}\n value={this.state.basic_auth || ''}\n help=\"The Basic authentication string needs to follow this format: ':'.\"\n buttonAfter={reset.basic_auth ? (\n \n ) : undefined} />\n )}\n \n \n \n \n API Key (Optional)}\n type=\"text\"\n onChange={this.handleChange}\n bsStyle={validation.errors.api_key ? 'error' : null}\n help={get(validation, 'errors.api_key[0]', 'If an API secret is set, an API key must also be set.')}\n value={config.api_key} />\n \n \n \n \n {api_secret?.keep_value ? (\n <>\n API Secret\n { this.resetSecret('api_secret'); }}>\n Reset Secret\n \n \n ) : (\n API Secret (Optional)}\n name=\"api_secret\"\n type=\"password\"\n onChange={this.handleSecretInputChange}\n bsStyle={validation.errors.api_secret ? 'error' : null}\n help={get(validation, 'errors.api_secret[0]', 'If an API key is set, an API secret must also be set.')}\n value={this.state.api_secret || ''}\n buttonAfter={reset.api_secret ? (\n \n ) : undefined} />\n )}\n \n Send API Key/Secret as Header\n \n \n \n \n );\n }\n}\n\nHttpNotificationForm.defaultProps = {\n setIsSubmitEnabled: () => {},\n};\n\nexport default HttpNotificationForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CommonNotificationSummary from './CommonNotificationSummary';\n\nclass HttpNotificationSummary extends React.Component {\n static propTypes = {\n type: PropTypes.string.isRequired,\n notification: PropTypes.object,\n definitionNotification: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n notification: {},\n };\n\n render() {\n const { notification } = this.props;\n\n return (\n \n <>\n \n URL\n {notification.config.url}\n \n \n \n );\n }\n}\n\nexport default HttpNotificationSummary;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./LegacyNotificationCommonStyles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./LegacyNotificationCommonStyles.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\n\nimport { Alert, ControlLabel, FormGroup, HelpBlock } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport { ConfigurationFormField } from 'components/configurationforms';\n\nimport commonStyles from './LegacyNotificationCommonStyles.css';\n\nconst formatLegacyTypes = (legacyTypes) => Object.keys(legacyTypes)\n .map((typeName) => ({ label: `Legacy ${legacyTypes[typeName].name}`, value: typeName }));\n\nclass LegacyNotificationForm extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n legacyTypes: PropTypes.object.isRequired,\n };\n\n static defaultConfig = {\n callback_type: '',\n configuration: {},\n };\n\n propagateMultiChange = (newValues) => {\n const { config, onChange } = this.props;\n const nextConfig = { ...config, ...newValues };\n\n onChange(nextConfig);\n };\n\n propagateChange = (key, value) => {\n const { config } = this.props;\n const nextConfiguration = { ...config.configuration, [key]: value };\n\n this.propagateMultiChange({ configuration: nextConfiguration });\n };\n\n getDefaultConfiguration = (legacyNotificationType) => {\n const { legacyTypes } = this.props;\n const { configuration } = legacyTypes[legacyNotificationType];\n const defaultConfiguration = {};\n\n Object.keys(configuration).forEach((configKey) => {\n defaultConfiguration[configKey] = configuration[configKey].default_value;\n });\n\n return defaultConfiguration;\n };\n\n handleSelectNotificationChange = (nextLegacyNotificationType) => {\n this.propagateMultiChange({\n callback_type: nextLegacyNotificationType,\n configuration: this.getDefaultConfiguration(nextLegacyNotificationType),\n });\n };\n\n handleFormFieldChange = (key, value) => {\n this.propagateChange(key, value);\n };\n\n renderNotificationForm(config, legacyType) {\n const { configuration } = legacyType;\n\n const configFields = Object.keys(configuration).map((configKey) => {\n const configField = configuration[configKey];\n const configValue = config.configuration[configKey];\n\n return (\n \n );\n });\n\n return (\n
    \n {configFields}\n
    \n );\n }\n\n render() {\n const { config, legacyTypes, validation } = this.props;\n const callbackType = config.callback_type;\n const typeData = legacyTypes[callbackType];\n\n let content;\n\n if (typeData) {\n content = this.renderNotificationForm(config, typeData);\n } else if (callbackType) {\n content = (\n \n Unknown legacy alarm callback type: {callbackType} Please make sure the plugin is installed.\n \n );\n }\n\n return (\n <>\n
    \n \n Choose Legacy Notification\n Basic authentication (Optional)}\n name=\"basic_auth\"\n type=\"password\"\n onChange={this.handleSecretInputChange}\n value={this.state.basic_auth || ''}\n help=\"The Basic authentication string needs to follow this format: ':'\"\n buttonAfter={reset.basic_auth ? (\n \n ) : undefined} />\n )}\n \n \n \n \n API Key (Optional)}\n type=\"text\"\n onChange={this.handleChange}\n bsStyle={validation.errors.api_key ? 'error' : null}\n help={get(validation, 'errors.api_key[0]', 'Must be set if an API secret is set')}\n value={config.api_key} />\n \n Send API Key/Secret as Header\n \n \n \n {api_secret?.keep_value ? (\n <>\n API Secret\n { this.resetSecret('api_secret'); }}>\n Reset Secret\n \n \n ) : (\n API Secret (Optional)}\n name=\"api_secret\"\n type=\"password\"\n onChange={this.handleSecretInputChange}\n bsStyle={validation.errors.api_secret ? 'error' : null}\n help={get(validation, 'errors.api_secret[0]', 'Must be set if an API key is set')}\n value={this.state.api_secret || ''}\n buttonAfter={reset.api_secret ? (\n \n ) : undefined} />\n )}\n \n \n \n \n Headers (Optional)}\n type=\"text\"\n onChange={this.handleChange}\n bsStyle={validation.errors.headers ? 'error' : null}\n help={get(validation, 'errors.headers[0]', 'Semicolon delimited list of HTTP headers to add to the notification')}\n value={config.headers} />\n \n \n \n \n \n \n Time zone for date/time values}>\n \n \n \n \n \n \n {config.method !== 'GET' && (\n \n Body Template\n \n \n {get(validation, 'errors.body_template[0]', helpElement)}\n \n \n )}\n \n \n \n );\n }\n}\n\nexport default HttpNotificationFormV2;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ReadOnlyFormGroup } from 'components/common';\nimport { Well } from 'components/bootstrap';\n\nimport styles from '../event-notification-types/EmailNotificationSummary.css';\n\nconst EmailNotificationDetails = ({ notification }) => {\n const recipients = (\n \n );\n const recipientLookupInfo = (\n <>\n \n \n \n );\n const sender = (\n \n );\n const senderLookupInfo = (\n <>\n \n \n \n );\n const replyTo = (\n \n );\n const replyToLookupInfo = (\n <>\n \n \n \n );\n\n return (\n <>\n \n {notification.config.lookup_sender_email ? senderLookupInfo : sender}\n \n \n {notification.config.lookup_reply_to_email ? replyToLookupInfo : replyTo}\n \n \n {notification.config.lookup_recipient_emails ? recipientLookupInfo : recipients}\n \n \n {notification.config.body_template || Empty body}\n \n )} />\n \n {notification.config.html_body_template || Empty body}\n \n )} />\n \n );\n};\n\nEmailNotificationDetails.propTypes = {\n notification: PropTypes.object.isRequired,\n};\n\nexport default EmailNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ReadOnlyFormGroup } from 'components/common';\n\nconst HttpNotificationDetails = ({ notification }) => {\n const apiKeySet = notification.config.api_secret?.is_set;\n const apiSentAs = notification.config.api_key_as_header ? 'Header' : 'Query Parameter';\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nHttpNotificationDetails.propTypes = {\n notification: PropTypes.object.isRequired,\n};\n\nexport default HttpNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ReadOnlyFormGroup, Spinner } from 'components/common';\nimport { Alert, Well } from 'components/bootstrap';\nimport { EventNotificationsActions } from 'stores/event-notifications/EventNotificationsStore';\n\nimport emailStyles from '../event-notification-types/EmailNotificationSummary.css';\nimport notificationStyles from '../event-notification-types/LegacyNotificationCommonStyles.css';\n\nconst LegacyNotificationDetails = ({ notification }) => {\n const [legacyTypes, setLegacyTypes] = useState();\n const configurationValues = notification.config.configuration;\n const callbackType = notification.config.callback_type;\n const typeData = legacyTypes?.[callbackType];\n\n useEffect(() => {\n EventNotificationsActions.listAllLegacyTypes().then((result) => setLegacyTypes(result.types));\n }, []);\n\n if (!legacyTypes) {\n return

    ;\n }\n\n return (\n <>\n {!typeData && (\n \n Error in {notification.title || 'Legacy Alarm Callback'}: Unknown type {callbackType},\n please ensure the plugin is installed.\n \n )}\n {typeData && Object.entries(typeData.configuration).map(([key, value]) => {\n if (key === 'body' || key === 'script_args') {\n return (\n \n {configurationValues[key] || Empty body}\n \n )} />\n );\n }\n\n return ;\n })}\n \n );\n};\n\nLegacyNotificationDetails.propTypes = {\n notification: PropTypes.object.isRequired,\n};\n\nexport default LegacyNotificationDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { ReadOnlyFormGroup } from 'components/common';\nimport type { HttpEventNotificationV2 } from 'components/event-notifications/types';\nimport { Well } from 'components/bootstrap';\n\nimport styles from '../event-notification-types/EmailNotificationSummary.css';\n\ntype Props = {\n notification: HttpEventNotificationV2,\n}\n\nconst HttpNotificationDetailsV2 = ({ notification } : Props) => {\n const apiKeySet: boolean = notification.config.api_secret?.is_set;\n const apiSentAs: string = notification.config.api_key_as_header ? 'Header' : 'Query Parameter';\n\n return (\n <>\n \n \n \n \n \n \n {notification.config.time_zone && ()}\n {notification.config.content_type && (\n )}\n {notification.config.headers && ()}\n {notification.config.body_template && (\n \n {notification.config.body_template}\n \n )} />\n )}\n \n );\n};\n\nexport default HttpNotificationDetailsV2;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport EmailNotificationFormContainer from './EmailNotificationFormContainer';\nimport EmailNotificationForm from './EmailNotificationForm';\nimport EmailNotificationSummary from './EmailNotificationSummary';\nimport HttpNotificationForm from './HttpNotificationForm';\nimport HttpNotificationSummary from './HttpNotificationSummary';\nimport LegacyNotificationForm from './LegacyNotificationForm';\nimport LegacyNotificationFormContainer from './LegacyNotificationFormContainer';\nimport LegacyNotificationSummaryContainer from './LegacyNotificationSummaryContainer';\nimport HttpNotificationSummaryV2 from './HttpNotificationSummaryV2';\nimport HttpNotificationFormV2 from './HttpNotificationFormV2';\n\nimport EmailNotificationDetails from '../event-notification-details/EmailNotificationDetails';\nimport HttpNotificationDetails from '../event-notification-details/HttpNotificationDetails';\nimport LegacyNotificationDetails from '../event-notification-details/LegacyNotificationDetails';\nimport HttpNotificationDetailsV2 from '../event-notification-details/HttpNotificationDetailsV2';\n\nexport default {\n eventNotificationTypes: [\n {\n type: 'email-notification-v1',\n displayName: 'Email Notification',\n formComponent: EmailNotificationFormContainer,\n summaryComponent: EmailNotificationSummary,\n detailsComponent: EmailNotificationDetails,\n defaultConfig: EmailNotificationForm.defaultConfig,\n },\n {\n type: 'http-notification-v1',\n displayName: 'HTTP Notification',\n formComponent: HttpNotificationForm,\n summaryComponent: HttpNotificationSummary,\n detailsComponent: HttpNotificationDetails,\n defaultConfig: HttpNotificationForm.defaultConfig,\n },\n {\n type: 'http-notification-v2',\n displayName: 'Custom HTTP Notification',\n formComponent: HttpNotificationFormV2,\n summaryComponent: HttpNotificationSummaryV2,\n detailsComponent: HttpNotificationDetailsV2,\n defaultConfig: HttpNotificationFormV2.defaultConfig,\n },\n {\n type: 'legacy-alarm-callback-notification-v1',\n displayName: 'Legacy Alarm Callbacks',\n formComponent: LegacyNotificationFormContainer,\n summaryComponent: LegacyNotificationSummaryContainer,\n detailsComponent: LegacyNotificationDetails,\n defaultConfig: LegacyNotificationForm.defaultConfig,\n },\n ],\n};\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./TemplateFieldValueProviderPreview.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./TemplateFieldValueProviderPreview.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport { Panel } from 'components/bootstrap';\n\nimport styles from './TemplateFieldValueProviderPreview.css';\n\nclass TemplateFieldValueProviderPreview extends React.Component {\n static propTypes = {};\n\n render() {\n return (\n Available Fields in Template}>\n

    \n Graylog lets you enrich generated Events with dynamic values. You can access Fields from the Event context{' '}\n {/* eslint-disable-next-line no-template-curly-in-string */}\n with {'${source.}'}.\n
    \n Available Fields in the Template depend on the condition that created the Event:\n

    \n
      \n
    • Filter: All Fields in the original log message
    • \n
    • Aggregation: Fields set in Group By with their original names
    • \n
    • Correlation: All Fields in the last matched and non-negated Event
    • \n
    \n
    \n );\n }\n}\n\nexport default TemplateFieldValueProviderPreview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { ExternalLink } from 'components/common';\nimport { Checkbox, Col, FormGroup, HelpBlock, Row, Input } from 'components/bootstrap';\nimport * as FormsUtils from 'util/FormsUtils';\n\nimport TemplateFieldValueProviderPreview from './TemplateFieldValueProviderPreview';\n\nclass TemplateFieldValueProviderForm extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n static type = 'template-v1';\n\n static defaultConfig = {\n template: '',\n };\n\n static requiredFields = [\n 'template',\n ];\n\n handleChange = (event) => {\n const { config, onChange } = this.props;\n const { name } = event.target;\n const value = FormsUtils.getValueFromInput(event.target);\n const nextProviders = cloneDeep(config.providers);\n const templateProvider = nextProviders.find((provider) => provider.type === TemplateFieldValueProviderForm.type);\n\n templateProvider[name] = value;\n onChange({ ...config, providers: nextProviders });\n };\n\n render() {\n const { config, validation } = this.props;\n const provider = config.providers.find((p) => p.type === TemplateFieldValueProviderForm.type);\n\n const helpText = (\n \n Type a literal text to set to this Field or use{' '}\n \n JMTE syntax\n \n {' '}to add a dynamic Value.\n \n );\n\n return (\n \n \n \n\n \n \n Require all template values to be set\n \n Check this option to validate that all variables used in the Template have values.\n \n \n \n \n \n \n );\n }\n}\n\nexport default TemplateFieldValueProviderForm;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonFieldValueProviderSummary.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./CommonFieldValueProviderSummary.css\";\n export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Table, Button } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport styles from './CommonFieldValueProviderSummary.css';\n\nclass CommonFieldValueProviderSummary extends React.Component {\n static propTypes = {\n fieldName: PropTypes.string.isRequired,\n config: PropTypes.object.isRequired,\n keys: PropTypes.array.isRequired,\n children: PropTypes.element.isRequired,\n };\n\n state = {\n displayDetails: false,\n };\n\n toggleDisplayDetails = () => {\n const { displayDetails } = this.state;\n\n this.setState({ displayDetails: !displayDetails });\n };\n\n render() {\n const { fieldName, config, keys, children } = this.props;\n const { displayDetails } = this.state;\n\n return (\n
    \n
    {fieldName}
    \n
    \n \n {displayDetails && (\n \n \n \n \n \n \n \n \n \n \n {children}\n \n
    Is Key?{keys.includes(fieldName) ? 'Yes' : 'No'}
    Data Type{config.data_type}
    \n )}\n
    \n
    \n );\n }\n}\n\nexport default CommonFieldValueProviderSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CommonFieldValueProviderSummary from './CommonFieldValueProviderSummary';\n\nclass TemplateFieldValueProviderSummary extends React.Component {\n static propTypes = {\n fieldName: PropTypes.string.isRequired,\n config: PropTypes.object.isRequired,\n keys: PropTypes.array.isRequired,\n };\n\n render() {\n const { config } = this.props;\n\n return (\n \n <>\n \n Value source\n Template\n \n \n Template\n {config.providers[0].template}\n \n \n Validate that all Template values are set\n {config.providers[0].require_values ? 'Yes' : 'No'}\n \n \n \n );\n }\n}\n\nexport default TemplateFieldValueProviderSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { LookupTableFields } from 'components/lookup-tables';\n\nclass LookupTableFieldValueProviderForm extends React.Component {\n static propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n static type = 'lookup-v1';\n\n static defaultConfig = {\n table_name: '',\n key_field: '',\n };\n\n static requiredFields = [\n 'table_name',\n 'key_field',\n ];\n\n propagateChanges = (key, value) => {\n const { config, onChange } = this.props;\n const nextProviders = cloneDeep(config.providers);\n const lookupProvider = nextProviders.find((provider) => provider.type === LookupTableFieldValueProviderForm.type);\n\n lookupProvider[key] = value;\n onChange({ ...config, providers: nextProviders });\n };\n\n handleSelectChange = (key) => (nextLookupTable) => {\n this.propagateChanges(key, nextLookupTable);\n };\n\n render() {\n const { config, validation } = this.props;\n const provider = config.providers.find((p) => p.type === LookupTableFieldValueProviderForm.type);\n\n return (\n \n );\n }\n}\n\nexport default LookupTableFieldValueProviderForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport LookupTableFieldValueProviderForm from './LookupTableFieldValueProviderForm';\n\ntype Props = {\n config: {},\n validation: {},\n currentUser: {\n permissions: Array,\n },\n onChange: () => void,\n}\n\nconst LookupTableFieldValueProviderFormContainer = ({ ...otherProps }: Props) => (\n \n);\n\nLookupTableFieldValueProviderFormContainer.propTypes = {\n config: PropTypes.object.isRequired,\n validation: PropTypes.object.isRequired,\n currentUser: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default LookupTableFieldValueProviderFormContainer;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { IfPermitted } from 'components/common';\n\nimport CommonFieldValueProviderSummary from './CommonFieldValueProviderSummary';\n\nclass LookupTableFieldValueProviderSummary extends React.Component {\n static propTypes = {\n fieldName: PropTypes.string.isRequired,\n config: PropTypes.object.isRequired,\n keys: PropTypes.array.isRequired,\n };\n\n render() {\n const { config } = this.props;\n const provider = config.providers[0];\n\n return (\n \n \n <>\n \n Value source\n Lookup Table\n \n \n Lookup Table\n {provider.table_name}\n \n \n Lookup Table Key Field\n {provider.key_field}\n \n \n \n \n );\n }\n}\n\nexport default LookupTableFieldValueProviderSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport TemplateFieldValueProviderForm from './TemplateFieldValueProviderForm';\nimport TemplateFieldValueProviderSummary from './TemplateFieldValueProviderSummary';\nimport LookupTableFieldValueProviderForm from './LookupTableFieldValueProviderForm';\nimport LookupTableFieldValueProviderFormContainer from './LookupTableFieldValueProviderFormContainer';\nimport LookupTableFieldValueProviderSummary from './LookupTableFieldValueProviderSummary';\n\nexport default {\n fieldValueProviders: [\n {\n type: TemplateFieldValueProviderForm.type,\n displayName: 'Template',\n formComponent: TemplateFieldValueProviderForm,\n summaryComponent: TemplateFieldValueProviderSummary,\n defaultConfig: TemplateFieldValueProviderForm.defaultConfig,\n requiredFields: TemplateFieldValueProviderForm.requiredFields,\n },\n {\n type: LookupTableFieldValueProviderForm.type,\n displayName: 'Lookup Table',\n formComponent: LookupTableFieldValueProviderFormContainer,\n summaryComponent: LookupTableFieldValueProviderSummary,\n defaultConfig: LookupTableFieldValueProviderForm.defaultConfig,\n requiredFields: LookupTableFieldValueProviderForm.requiredFields,\n },\n ],\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport posthog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\nimport { useEffect } from 'react';\n\nimport { useStore } from 'stores/connect';\nimport { TelemetrySettingsStore, TelemetrySettingsActions } from 'stores/telemetry/TelemetrySettingsStore';\nimport AppConfig from 'util/AppConfig';\nimport { CurrentUserStore } from 'stores/users/CurrentUserStore';\n\ntype PostHogSettings = {\n host: string;\n key: string;\n}\n\nconst getPostHogSettings = (): PostHogSettings => {\n const { host, api_key: key } = AppConfig.telemetry() || {};\n\n return {\n host: host,\n key: key,\n };\n};\n\nconst init = (key: string, host: string) => {\n posthog.init(\n key,\n {\n autocapture: false,\n api_host: host,\n capture_pageview: false,\n capture_pageleave: false,\n },\n );\n\n return posthog;\n};\n\nconst TelemetryInit = ({ children }: { children: React.ReactElement }) => {\n const settings = useStore(TelemetrySettingsStore, (state) => state.telemetrySetting);\n const { host, key } = getPostHogSettings();\n const { currentUser } = useStore(CurrentUserStore);\n\n useEffect(() => {\n if (currentUser) {\n TelemetrySettingsActions.get();\n }\n }, [currentUser]);\n\n if ((!settings?.telemetry_enabled) || !host || !key) {\n return children;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default TelemetryInit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\ntype Props = {\n children: React.ReactNode,\n};\n\nconst options = {\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n networkMode: 'always' as const,\n },\n },\n};\n\n/*\n * Use a separate client provider from the default one to be able to clear cached data once the user\n * logs out. Login page is also created by another component than the regular app.\n */\n\nconst LoginQueryClientProvider = ({ children }: Props) => {\n const queryClient = useMemo(() => new QueryClient(options), []);\n\n return (\n \n {children}\n \n );\n};\n\nexport default LoginQueryClientProvider;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport Routes from 'routing/Routes';\n\nimport DefaultBrand from './DefaultBrand';\n\nconst perspectivesBindings = {\n perspectives: [\n {\n id: 'default',\n title: 'General',\n welcomeRoute: Routes.WELCOME,\n brandComponent: DefaultBrand,\n },\n ],\n};\n\nexport default perspectivesBindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport AppConfig from '../AppConfig';\n\ntype MenuItem = {\n path: string,\n};\n\nconst filterMenuItems = (\n menuItems: Array,\n toExclude: Array,\n): Array => menuItems.filter((item) => !toExclude.includes(item.path));\n\nexport const filterCloudMenuItems = (\n menuItems: Array,\n toExclude: Array,\n): Array => {\n if (!AppConfig.isCloud()) {\n return menuItems;\n }\n\n return filterMenuItems(menuItems, toExclude);\n};\n\nexport default filterMenuItems;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport Routes from 'routing/Routes';\nimport filterMenuItems, { filterCloudMenuItems } from 'util/conditional/filterMenuItems';\nimport AppConfig from 'util/AppConfig';\n\nexport const SYSTEM_DROPDOWN_TITLE = 'System';\n\nconst navigationBindings = {\n navigation: [\n {\n path: Routes.unqualified.SEARCH,\n description: 'Search',\n },\n {\n path: Routes.unqualified.STREAMS,\n description: 'Streams',\n },\n {\n path: Routes.unqualified.ALERTS.LIST,\n description: 'Alerts',\n },\n {\n path: Routes.unqualified.DASHBOARDS,\n description: 'Dashboards',\n },\n {\n description: SYSTEM_DROPDOWN_TITLE,\n position: 'last' as const,\n children: filterCloudMenuItems(\n filterMenuItems(\n [\n { path: Routes.unqualified.SYSTEM.OVERVIEW, description: 'Overview' },\n { path: Routes.unqualified.SYSTEM.CONFIGURATIONS, description: 'Configurations', permissions: ['clusterconfigentry:read'] },\n { path: Routes.unqualified.SYSTEM.NODES.LIST, description: 'Nodes' },\n { path: Routes.unqualified.SYSTEM.DATANODES.LIST, description: 'Data Nodes' },\n { path: Routes.unqualified.SYSTEM.INPUTS, description: 'Inputs', permissions: ['inputs:read'] },\n { path: Routes.unqualified.SYSTEM.OUTPUTS, description: 'Outputs', permissions: ['outputs:read'] },\n { path: Routes.unqualified.SYSTEM.INDICES.LIST, description: 'Indices', permissions: ['indices:read'] },\n { path: Routes.unqualified.SYSTEM.LOGGING, description: 'Logging', permissions: ['loggers:read'] },\n { path: Routes.unqualified.SYSTEM.USERS.OVERVIEW, description: 'Users and Teams', permissions: ['users:list'] },\n { path: Routes.unqualified.SYSTEM.AUTHZROLES.OVERVIEW, description: 'Roles', permissions: ['roles:read'] },\n { path: Routes.unqualified.SYSTEM.AUTHENTICATION.BACKENDS.ACTIVE, description: 'Authentication', permissions: ['authentication:edit'] },\n { path: Routes.unqualified.SYSTEM.CONTENTPACKS.LIST, description: 'Content Packs', permissions: ['contentpack:read'] },\n { path: Routes.unqualified.SYSTEM.GROKPATTERNS, description: 'Grok Patterns', permissions: ['grok_pattern:read'] },\n { path: Routes.unqualified.SYSTEM.LOOKUPTABLES.OVERVIEW, description: 'Lookup Tables', permissions: ['lookuptables:read'] },\n { path: Routes.unqualified.SYSTEM.PIPELINES.OVERVIEW, description: 'Pipelines', permissions: ['pipeline:read', 'pipeline_connection:read'] },\n { path: Routes.unqualified.SYSTEM.SIDECARS.OVERVIEW, description: 'Sidecars', permissions: ['sidecars:read'] },\n ],\n AppConfig.isCloud() && !AppConfig.isFeatureEnabled('cloud_inputs') ? [Routes.unqualified.SYSTEM.INPUTS] : [],\n ),\n [Routes.unqualified.SYSTEM.NODES.LIST, Routes.unqualified.SYSTEM.DATANODES.LIST, Routes.unqualified.SYSTEM.OUTPUTS, Routes.unqualified.SYSTEM.LOGGING, Routes.unqualified.SYSTEM.AUTHENTICATION.BACKENDS.ACTIVE],\n ),\n },\n ],\n};\n\nexport default navigationBindings;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// We need to set the app prefix before doing anything else, so it applies to styles too.\nimport 'webpack-entry';\n\nimport * as React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Reflux from 'reflux';\nimport { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport AppFacade from 'routing/AppFacade';\nimport CustomizationProvider from 'contexts/CustomizationProvider';\nimport ViewsBindings from 'views/bindings';\nimport ThreatIntelBindings from 'threatintel/bindings';\nimport AwsBindings from 'aws/bindings';\nimport IntegrationsBindings from 'integrations/bindings';\nimport EventDefinitionsBindings from 'components/event-definitions/event-definition-types/bindings';\nimport EventNotificationsBindings from 'components/event-notifications/event-notification-types/bindings';\nimport FieldValueProvidersBindings from 'components/event-definitions/event-definition-form/field-value-providers/bindings';\nimport CancellablePromise from 'logic/rest/CancellablePromise';\nimport TelemetryInit from 'logic/telemetry/TelemetryInit';\nimport LoginQueryClientProvider from 'contexts/LoginQueryClientProvider';\nimport PerspectivesBindings from 'components/perspectives/bindings';\nimport NavigationBindings from 'components/navigation/bindings';\nimport SecurityBindings from 'components/security/bindings';\n\nimport '@graylog/sawmill/fonts';\nimport '@mantine/core/styles.css';\n\nReflux.setPromiseFactory((handlers) => CancellablePromise.of(new Promise(handlers)));\n\nPluginStore.register(new PluginManifest({}, ViewsBindings));\nPluginStore.register(new PluginManifest({}, ThreatIntelBindings));\nPluginStore.register(new PluginManifest({}, AwsBindings));\nPluginStore.register(new PluginManifest({}, IntegrationsBindings));\nPluginStore.register(new PluginManifest({}, EventDefinitionsBindings));\nPluginStore.register(new PluginManifest({}, EventNotificationsBindings));\nPluginStore.register(new PluginManifest({}, FieldValueProvidersBindings));\nPluginStore.register(new PluginManifest({}, PerspectivesBindings));\nPluginStore.register(new PluginManifest({}, NavigationBindings));\nPluginStore.register(new PluginManifest({}, SecurityBindings));\n\nconst appContainer = document.querySelector('div#app-root');\nconst root = createRoot(appContainer);\n\nroot.render((\n \n \n \n \n \n \n \n));\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n/*\n * Default (string) comparison function used for sorting lists/arrays.\n *\n * This module should be used whenever a consistent, high-performance comparison function for sorting is required. It is\n * especially useful when used instead of `naturalSort` to avoid its excessive usage of regular expressions, but with the\n * `{ numeric: true }` option, a subset (and probably the most desired one) of its functionality can be replaced while\n * being magnitudes faster.\n *\n * The `compare` function returns the comparison function, so it needs to be called before its result is passed to e.g.\n * `sort()`. This is because it instantiates a `Intl.Collator` instance, which is reused in subsequent calls.\n * If only the default options (non-numeric, case-insensitive) are required, `defaultCompare` can be used which does not\n * require to be called before and is therefore a drop-in replacement for `naturalSort`.\n */\n\n/*\n * This generator function can be used to instantiate a comparison method with non-standard options. The usable options\n * are listed here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator -> Syntax\n * -> Parameters -> options\n *\n * The `undefined` parameter when instantiating triggers using the runtime's default locales (i.e. the locales supplied\n * by the browser).\n */\n\nexport const compare = (options: any = {}) => new Intl.Collator(undefined, options).compare;\n\n/*\n * This is the default comparison function. It compares non-numerically and case-insensitive. It can be used as a drop-in\n * replacement for `naturalSort` and is shared across its consumers. If the default options do not match, `compare` must\n * be used instead.\n */\nexport const defaultCompare: (one: any, two: any) => number = compare();\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nconst EventDefinitionPriorityEnum = {\n LOW: 1,\n NORMAL: 2,\n HIGH: 3,\n properties: {\n 1: { name: 'low' },\n 2: { name: 'normal' },\n 3: { name: 'high' },\n },\n};\n\nexport default EventDefinitionPriorityEnum;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nconst serialize = (o: any) => JSON.stringify(o, null, 2);\n\nconst assertUnreachable = (ignored: never, message: string): never => {\n throw new Error(`${message}: ${serialize(ignored)}`);\n};\n\nexport default assertUnreachable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nimport type { $PropertyType } from 'utility-types';\n\nimport type FetchError from 'logic/errors/FetchError';\n\nexport const ReactErrorType = 'ReactError';\nexport const NotFoundErrorType = 'NotFoundError';\nexport const UnauthorizedErrorType = 'UnauthorizedError';\nexport const StreamPermissionErrorType = 'StreamPermissionError';\n\ntype ReactError = {\n error: Error,\n info: { componentStack: string },\n type: 'ReactError',\n};\ntype NotFoundError = {\n error: FetchError,\n type: 'NotFoundError',\n};\ntype UnauthorizedError = {\n error: FetchError,\n type: 'UnauthorizedError',\n};\ntype StreamPermissionError = {\n error: FetchError,\n type: 'StreamPermissionError',\n};\n\nexport type ReportedError = ReactError | NotFoundError | UnauthorizedError | StreamPermissionError;\n\nexport const createReactError = (error: $PropertyType, info: $PropertyType): ReactError => ({\n error,\n info,\n type: ReactErrorType,\n});\nexport const createNotFoundError = (error: $PropertyType): NotFoundError => ({\n error,\n type: NotFoundErrorType,\n});\nexport const createUnauthorizedError = (error: $PropertyType): UnauthorizedError => ({\n error,\n type: UnauthorizedErrorType,\n});\nexport const createStreamPermissionError = (error: $PropertyType): StreamPermissionError => ({\n error,\n type: StreamPermissionErrorType,\n});\n\nexport const createFromFetchError = (error: FetchError) => {\n switch (error.status) {\n case 403:\n return error?.additional?.body?.type === 'MissingStreamPermission' ? createStreamPermissionError(error) : createUnauthorizedError(error);\n case 404:\n return createNotFoundError(error);\n default:\n throw Error(`Provided FetchError is not a valid ReportedError because status code ${error.status} is not supported`);\n }\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { v4 as uuid } from 'uuid';\n\nconst generateId = () => uuid();\n\nexport default generateId;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nconst Store = {\n set(key, value, storage = window.localStorage) {\n storage.setItem(key, JSON.stringify(value));\n },\n\n get(key, storage = window.localStorage) {\n const value = storage.getItem(key);\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n },\n\n delete(key, storage = window.localStorage) {\n storage.removeItem(key);\n },\n\n sessionSet(key, value) {\n return Store.set(key, value, window.sessionStorage);\n },\n\n sessionGet(key) {\n return Store.get(key, window.sessionStorage);\n },\n\n sessionDelete(key) {\n return Store.delete(key, window.sessionStorage);\n },\n};\n\nexport default Store;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport isFilteredField from 'views/logic/IsFilteredField';\n\nconst MessageFieldsFilter = {\n filterFields(fields: T) {\n const result = {};\n\n Object.keys(fields).forEach((field) => {\n if (!isFilteredField(field)) {\n result[field] = fields[field];\n }\n });\n\n return result as T;\n },\n};\n\nexport default MessageFieldsFilter;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { NodeMetric } from 'stores/metrics/MetricsStore';\n\nconst MetricsExtractor = {\n /*\n * Returns an object containing a short name and the metric value for it.\n * Short names are the keys of the metricNames object, which should look like:\n * { shortName: \"metricFullName\" }\n */\n getValuesForNode(nodeMetrics: NodeMetric, metricNames: { [key: string]: string }): { [key: string]: number | undefined | null } {\n if (nodeMetrics === null || nodeMetrics === undefined || Object.keys(nodeMetrics).length === 0) {\n return {};\n }\n\n const metrics = {};\n\n Object.keys(metricNames).forEach((metricShortName) => {\n const metricFullName = metricNames[metricShortName];\n const metricObject = nodeMetrics[metricFullName];\n\n if (metricObject) {\n if (metricObject.type === 'gauge') {\n metrics[metricShortName] = metricObject.metric.value;\n } else if (metricObject.type === 'counter') {\n metrics[metricShortName] = metricObject.metric.count;\n } else if (metricObject.type === 'meter') {\n metrics[metricShortName] = metricObject.metric.rate.total;\n } else if (metricObject.type === 'timer') {\n metrics[metricShortName] = metricObject.metric.rate.total;\n } else {\n metrics[metricShortName] = null;\n }\n }\n });\n\n return metrics;\n },\n};\n\nexport default MetricsExtractor;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { GRN, GRNType } from 'logic/permissions/types';\n\nconst _convertEmptyString = (value: string) => (value === '' ? undefined : value);\n\nexport const createGRN = (type: string, id: string) => `grn::::${type}:${id}`;\n\nexport const getValuesFromGRN = (grn: GRN) => {\n const grnValues = grn.split(':');\n const [resourceNameType, cluster, tenant, scope, type, id] = grnValues.map(_convertEmptyString);\n\n return { resourceNameType, cluster, tenant, scope, type: type as GRNType, id };\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { GranteeType } from 'logic/permissions/types';\n\nimport type { GranteeInterface } from './GranteeInterface';\n\ntype InternalState = GranteeType;\n\nexport default class Grantee implements GranteeInterface {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n title: $PropertyType,\n type: $PropertyType,\n ) {\n this._value = { id, title, type };\n }\n\n get id(): $PropertyType {\n return this._value.id;\n }\n\n get title(): $PropertyType {\n return this._value.title;\n }\n\n get type(): $PropertyType {\n return this._value.type;\n }\n\n toBuilder(): Builder {\n const { id, title, type } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ id, title, type }));\n }\n\n toJSON() {\n const { id, title, type } = this._value;\n\n return { id, title, type };\n }\n\n static fromJSON(value: GranteeType): Grantee {\n const { id, title, type } = value;\n\n return Grantee\n .builder()\n .id(id)\n .title(title)\n .type(type)\n .build();\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype InternalBuilderState = Immutable.Map;\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType): Builder {\n return new Builder(this.value.set('id', value));\n }\n\n title(value: $PropertyType): Builder {\n return new Builder(this.value.set('title', value));\n }\n\n type(value: $PropertyType): Builder {\n return new Builder(this.value.set('type', value));\n }\n\n build(): Grantee {\n const { id, title, type } = this.value.toObject();\n\n return new Grantee(id, title, type);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { SharedEntityType } from 'logic/permissions/types';\n\nimport Grantee from './Grantee';\n\ntype InternalState = {\n id: $PropertyType,\n owners: Immutable.List,\n title: $PropertyType,\n type: $PropertyType,\n};\n\nexport default class SharedEntity {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n owners: $PropertyType,\n title: $PropertyType,\n type: $PropertyType,\n ) {\n this._value = { id, owners, title, type };\n }\n\n get id(): $PropertyType {\n return this._value.id;\n }\n\n get owners(): $PropertyType {\n return this._value.owners;\n }\n\n get title(): $PropertyType {\n return this._value.title;\n }\n\n get type(): $PropertyType {\n return this._value.type;\n }\n\n toBuilder(): Builder {\n const { id, owners, title } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({ id, owners, title }));\n }\n\n toJSON() {\n const { id, owners, title, type } = this._value;\n\n return { id, owners, title, type };\n }\n\n static fromJSON(value: SharedEntityType): SharedEntity {\n const { id, owners, title, type } = value;\n const formattedOwners = Immutable.fromJS(owners.map((o) => Grantee.fromJSON(o)));\n\n return SharedEntity\n .builder()\n .id(id)\n .owners(formattedOwners)\n .title(title)\n .type(type)\n .build();\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype InternalBuilderState = Immutable.Map;\n\nclass Builder {\n value: InternalBuilderState;\n\n constructor(value: InternalBuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType): Builder {\n return new Builder(this.value.set('id', value));\n }\n\n owners(value: $PropertyType): Builder {\n return new Builder(this.value.set('owners', value));\n }\n\n title(value: $PropertyType): Builder {\n return new Builder(this.value.set('title', value));\n }\n\n type(value: $PropertyType): Builder {\n return new Builder(this.value.set('type', value));\n }\n\n build(): SharedEntity {\n const { id, owners, title, type } = this.value.toObject();\n\n return new SharedEntity(id, owners, title, type);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nclass CancellablePromise implements Promise {\n private _isCanceled: boolean;\n\n private _promise: Promise;\n\n private constructor(promise: Promise, isCancelled = false) {\n this._promise = promise;\n this._isCanceled = isCancelled;\n }\n\n [Symbol.toStringTag]: string;\n\n then(onfulfilled?: (value: T) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) {\n return new CancellablePromise(this._promise.then(onfulfilled, onrejected), this._isCanceled);\n }\n\n catch(onrejected?: (reason: any) => TResult | PromiseLike) {\n return new CancellablePromise(this._promise.catch(onrejected), this._isCanceled);\n }\n\n finally(onfinally?: () => void) {\n return new CancellablePromise(this._promise.finally(onfinally), this._isCanceled);\n }\n\n static of(promise: Promise) {\n return new CancellablePromise(promise);\n }\n\n public cancel() {\n this._isCanceled = true;\n\n return this;\n }\n\n public isCancelled() {\n return this._isCanceled;\n }\n}\n\nexport default CancellablePromise;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport isString from 'lodash/isString';\n\ntype Res = {\n text?: string;\n}\n\ntype Additional = {\n status: number;\n body?: any;\n res?: Res;\n}\n\nexport default class FetchError extends Error {\n name: 'FetchError';\n\n responseMessage: string;\n\n additional: Additional;\n\n status: Additional['status'];\n\n constructor(message: string, status: number, additional: any) {\n super(message);\n this.name = 'FetchError';\n\n const details = isString(additional) ? additional : (additional?.message ?? 'Not available');\n this.message = `There was an error fetching a resource: ${message}. Additional information: ${details}`;\n\n this.responseMessage = additional?.message ?? undefined;\n\n this.additional = { body: additional, status, res: { text: isString(additional) && additional } };\n this.status = status; // Shortcut, as this is often used\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport memoize from 'lodash/memoize';\n\nimport FetchError from 'logic/errors/FetchError';\nimport ErrorsActions from 'actions/errors/ErrorsActions';\nimport { createFromFetchError } from 'logic/errors/ReportedErrors';\nimport CancellablePromise from 'logic/rest/CancellablePromise';\nimport { ServerAvailabilityActions } from 'stores/sessions/ServerAvailabilityStore';\n\n// eslint-disable-next-line global-require\nconst importSessionStore = memoize(() => require('stores/sessions/SessionStore'));\n\nconst reportServerSuccess = () => {\n ServerAvailabilityActions.reportSuccess();\n};\n\nconst defaultOnUnauthorizedError = (error: FetchError) => ErrorsActions.report(createFromFetchError(error));\n\nconst emptyToUndefined = (s: any) => (s && s !== '' ? s : undefined);\n\nconst onServerError = async (error: Response | undefined, onUnauthorized = defaultOnUnauthorizedError) => {\n const contentType = error.headers?.get('Content-Type');\n const response = await (contentType?.startsWith('application/json') ? error.json().then((body) => body) : error?.text?.());\n const { SessionStore, SessionActions } = importSessionStore();\n const fetchError = new FetchError(error.statusText, error.status, emptyToUndefined(response));\n\n if (SessionStore.isLoggedIn() && error.status === 401) {\n SessionActions.logout();\n }\n\n // Redirect to the start page if a user is logged in but not allowed to access a certain HTTP API.\n if (SessionStore.isLoggedIn() && error.status === 403) {\n onUnauthorized(fetchError);\n }\n\n if (error && !error.status) {\n ServerAvailabilityActions.reportError(fetchError);\n }\n\n throw fetchError;\n};\n\nconst maybeStringify = (body: any) => (body && typeof body !== 'string' ? JSON.stringify(body) : body);\n\ntype RequestHeaders = {\n Accept?: string,\n 'Content-Type'?: string,\n};\n\nconst defaultResponseHandler = (resp: Response) => {\n if (resp.ok) {\n const { status } = resp;\n const contentLength = Number.parseInt(resp.headers.get('Content-Length'), 10);\n const noContent = status === 204 || contentLength === 0;\n\n reportServerSuccess();\n\n return noContent ? null : resp.json();\n }\n\n throw resp;\n};\n\nconst textResponseHandler = (resp: Response) => {\n if (resp.ok) {\n reportServerSuccess();\n\n return resp.text();\n }\n\n throw resp;\n};\n\nexport class Builder {\n private options = {};\n\n private readonly url: string;\n\n private readonly method: string;\n\n private body: { body: any, mimeType?: string };\n\n private accept: string;\n\n private responseHandler: (response: unknown) => unknown;\n\n private errorHandler: (error: unknown) => unknown;\n\n constructor(method: Method, url: string) {\n this.method = method;\n this.url = url.replace(/([^:])\\/\\//, '$1/');\n\n this.options = {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-Requested-By': 'XMLHttpRequest',\n };\n\n this.responseHandler = (response) => response;\n this.errorHandler = undefined;\n }\n\n setHeader(header, value) {\n this.options = {\n ...this.options,\n [header]: value,\n };\n\n return this;\n }\n\n json(body?: any) {\n this.body = { body: maybeStringify(body), mimeType: 'application/json' };\n this.accept = 'application/json';\n\n this.responseHandler = defaultResponseHandler;\n\n this.errorHandler = (error: Response) => onServerError(error);\n\n return this;\n }\n\n formData(body, acceptedMimeType = 'application/json') {\n this.body = { body };\n\n this.accept = acceptedMimeType;\n\n this.responseHandler = defaultResponseHandler;\n this.errorHandler = (error: Response) => onServerError(error);\n\n return this;\n }\n\n file(body, mimeType) {\n this.body = { body: maybeStringify(body), mimeType: 'application/json' };\n this.accept = mimeType;\n\n this.responseHandler = (resp: { ok: boolean, text: () => string }) => {\n if (resp.ok) {\n reportServerSuccess();\n\n return resp.text();\n }\n\n throw resp;\n };\n\n this.errorHandler = (error: Response) => onServerError(error);\n\n return this;\n }\n\n plaintext(body) {\n this.body = { body, mimeType: 'text/plain' };\n this.accept = 'application/json';\n\n this.responseHandler = defaultResponseHandler;\n\n this.errorHandler = (error: Response) => onServerError(error);\n\n return this;\n }\n\n streamingplaintext(body) {\n this.body = { body, mimeType: 'text/plain' };\n this.accept = 'text/plain';\n\n this.responseHandler = textResponseHandler;\n this.errorHandler = (error: Response) => onServerError(error);\n\n return this;\n }\n\n ignoreUnauthorized() {\n this.errorHandler = (error: Response) => onServerError(error, () => {\n });\n\n return this;\n }\n\n noSessionExtension() {\n this.options = {\n ...this.options,\n 'X-Graylog-No-Session-Extension': 'true',\n };\n\n return this;\n }\n\n build(): Promise {\n const headers: RequestHeaders = this.body && this.body.mimeType\n ? { ...this.options, 'Content-Type': this.body.mimeType }\n : this.options;\n\n if (this.accept) {\n headers.Accept = this.accept;\n }\n\n return CancellablePromise.of(window.fetch(this.url, {\n method: this.method,\n headers,\n body: this.body ? this.body.body : undefined,\n })).then(this.responseHandler, this.errorHandler)\n .catch(this.errorHandler);\n }\n}\n\nfunction queuePromiseIfNotLoggedin(promise: () => Promise): () => Promise {\n const { SessionStore, SessionActions } = importSessionStore();\n\n if (!SessionStore.isLoggedIn()) {\n return () => CancellablePromise.of(new Promise((resolve, reject) => {\n SessionActions.login.completed.listen(() => {\n promise().then(resolve, reject);\n });\n }));\n }\n\n return promise;\n}\n\ntype Method = 'GET' | 'PUT' | 'POST' | 'DELETE';\n\nexport default function fetch(method: Method, url: string, body?: any, requireSession: boolean = true): Promise {\n const promise = () => new Builder(method, url)\n .json(body)\n .build();\n\n if (requireSession) {\n return queuePromiseIfNotLoggedin(promise)();\n }\n\n return promise();\n}\n\nexport function fetchMultiPartFormData(url: string, body?: any, requireSession: boolean = true): Promise {\n const promise = () => new Builder('POST', url)\n .formData(body)\n .build();\n\n if (requireSession) {\n return queuePromiseIfNotLoggedin(promise)();\n }\n\n return promise();\n}\n\nexport function fetchPlainText(method, url, body) {\n const promise = () => new Builder(method, url)\n .plaintext(body)\n .build();\n\n return queuePromiseIfNotLoggedin(promise)();\n}\n\nexport function fetchStreamingPlainText(method, url, body) {\n const promise = () => new Builder(method, url)\n .streamingplaintext(body)\n .build();\n\n return queuePromiseIfNotLoggedin(promise)();\n}\n\nexport function fetchPeriodically(method, url, body?): Promise {\n const promise = () => new Builder(method, url)\n .noSessionExtension()\n .json(body)\n .build();\n\n return queuePromiseIfNotLoggedin(promise)();\n}\n\nexport function fetchFile(method, url, body, mimeType = 'text/csv') {\n const promise = () => new Builder(method, url)\n .file(body, mimeType)\n .build();\n\n return queuePromiseIfNotLoggedin(promise)();\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport $ from 'jquery';\n\nlet initialized = false;\n\nconst UniversalSearch = {\n init() {\n if (initialized) {\n return;\n }\n\n $('#scroll-to-search-hint, #scroll-to-search-hint i').on('click', () => {\n $('html, body').animate({ scrollTop: 0 }, 'fast');\n });\n\n initialized = true;\n },\n escape(source) {\n // Escape all lucene special characters from the source: && || : \\ / + - ! ( ) { } [ ] ^ \" ~ * ?\n return source.replace(/(&&|\\|\\||[:\\\\\\/\\+\\-!\\(\\)\\{\\}\\[\\]\\^\"~*\\?])/g, '\\\\$&');\n },\n _query() {\n const query = $('#universalsearch-query');\n\n return query;\n },\n setQuery(search) {\n const query = this._query();\n\n query.val(search);\n query.effect('bounce');\n this.scrollToSearchbarHint();\n },\n getQuery() {\n return this._query().val();\n },\n submit() {\n $('#universalsearch form').submit();\n },\n createSourceQuery(source) {\n return `source:${this.escape(source)}`;\n },\n queryContainsSegment(segmentInQuestion) {\n // this may look too complicated, but avoids false positives when one segment would be the prefix of another\n const oldQuery = this.getQuery();\n const segments = oldQuery.split(' ');\n\n return segments.some((segment) => segment === segmentInQuestion);\n },\n addSegment(segment, operator) {\n let oldQuery = this.getQuery();\n\n if (this.queryContainsSegment(segment)) {\n return;\n }\n\n if (oldQuery === '*') {\n oldQuery = '';\n }\n\n let newQuery = '';\n\n if (typeof operator !== 'undefined' && oldQuery !== '') {\n newQuery = `${oldQuery} ${operator} `;\n }\n\n newQuery += segment;\n this.setQuery(newQuery);\n },\n andOperator() {\n return 'AND';\n },\n orOperator() {\n return 'OR';\n },\n notOperator() {\n return 'NOT';\n },\n scrollToSearchbarHint() {\n if ($(document).scrollTop() > 50) {\n $('#scroll-to-search-hint').fadeIn('fast')\n .delay(1500)\n .fadeOut('fast');\n }\n },\n substringMatcher(possibleMatches, displayKey, limit) {\n return function findMatches(q, callback) {\n const matches = [];\n\n // code duplication is better than a shitty abstraction\n possibleMatches.forEach((possibleMatch) => {\n if (matches.length < limit && possibleMatch.indexOf(q) === 0) {\n const match = {};\n\n match[displayKey] = possibleMatch;\n matches.push(match);\n }\n });\n\n possibleMatches.forEach((possibleMatch) => {\n if (matches.length < limit && possibleMatch.indexOf(q) !== -1 && possibleMatch.indexOf(q) !== 0) {\n const match = {};\n\n match[displayKey] = possibleMatch;\n matches.push(match);\n }\n });\n\n callback(matches);\n };\n },\n};\n\nexport default UniversalSearch;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\ndeclare global {\n interface Window {\n singletons: { [key: string]: unknown };\n }\n}\n\nconst singleton = (key: string, supplier: () => R): R => {\n if (!window.singletons[key]) {\n window.singletons[key] = supplier();\n }\n\n return window.singletons[key] as R;\n};\n\nconst singletonActions = (key: string, supplier: () => R): R => singleton(`${key}Actions`, supplier);\n\nconst singletonStore = (key: string, supplier: () => R): R => singleton(`${key}Store`, supplier);\n\nif (typeof window.singletons === 'undefined') {\n window.singletons = {};\n}\n\nexport { singleton, singletonActions, singletonStore };\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n\nexport const TELEMETRY_EVENT_TYPE = {\n SEARCH_TIMERANGE_PRESET_SELECTED: 'Search TimeRange Preset Selected',\n SEARCH_TIMERANGE_PICKER_TOGGLED: 'Search TimeRange Picker Toggled',\n SEARCH_TIMERANGE_PICKER_UPDATED: 'Search TimeRange Picker Updated',\n SEARCH_TIMERANGE_PICKER_CANCELED: 'Search TimeRange Picker Canceled',\n SEARCH_TIMERANGE_PICKER_TAB_SELECTED: 'Search TimeRange Picker Tab Selected',\n SEARCH_STREAM_INPUT_CHANGED: 'Search Stream Input Changed',\n SEARCH_REFRESH_CONTROL_PRESET_SELECTED: 'Search Refresh Control Preset Selected',\n SEARCH_REFRESH_CONTROL_TOGGLED: 'Search Refresh Control Toggled',\n SEARCH_BUTTON_CLICKED: 'Search Button Clicked',\n SEARCH_FILTER_CREATE_CLICKED: 'Search Filter Create Clicked',\n SEARCH_FILTER_CREATED: 'Search Filter Created',\n SEARCH_FILTER_UPDATED: 'Search Filter Updated',\n SEARCH_FILTER_DELETED: 'Search Filter Deleted',\n SEARCH_FILTER_LOAD_CLICKED: 'Search Filter Load Clicked',\n SEARCH_FILTER_LOADED: 'Search Filter Loaded',\n SEARCH_FILTER_ITEM_MENU_TOGGLED: 'Search Filter Item Menu Toggled',\n SEARCH_FILTER_ITEM_DISABLED_TOGGLED: 'Search Filter Item Disabled Toggled',\n SEARCH_FILTER_ITEM_SHARE_CLICKED: 'Search Filter Item Share Clicked',\n SEARCH_FILTER_ITEM_EDIT_CLICKED: 'Search Filter Item Edit Clicked',\n SEARCH_FILTER_ITEM_COPIED: 'Search Filter Item Copied',\n SEARCH_FILTER_ITEM_REMOVED: 'Search Filter Item Removed',\n SEARCH_FILTER_ITEM_REFERENCE_REPLACED: 'Search Filter Item Reference Replaced',\n SEARCH_FILTER_ITEM_NEGATION_TOGGLED: 'Search Filter Item Negation Toggled',\n SEARCH_WIDGET_EXPORT_DOWNLOADED: 'Search Widget Export Downloaded',\n SEARCH_TIMERANGE_PRESET_ADD_QUICK_ACCESS: 'Search TimeRange Preset Add Quick Access',\n SEARCH_WIDGET_ACTION: {\n FOCUSED: 'Search Widget Focused',\n DELETED: 'Search Widget Deleted',\n MOVE: 'Search Widget Moved',\n DUPLICATE: 'Search Widget Duplicate',\n COPY_TO_DASHBOARD: 'Search Widget Copy To Dashboard Clicked',\n CREATE_NEW_DASHBOARD: 'Search Widget Create New Dashboard Clicked',\n SEARCH_WIDGET_HORIZONTAL_STRETCH: 'Search Widget Horizontal Width Toggled',\n SEARCH_WIDGET_EXTRA_ACTION: 'Search Widget Extra Action Clicked',\n WIDGET_EDIT_TOGGLED: 'Search Widget Edit Toggled',\n WIDGET_EDIT_CANCEL_CLICKED: 'Search Widget Edit Cancel Clicked',\n WIDGET_CONFIG_UPDATED: 'Search Widget Config Updated',\n },\n SEARCH_WIDGET_CREATE: {\n AGGREGATION: 'Search Widget Aggregation Created',\n MESSAGE_COUNT: 'Search Widget Message Count Created',\n MESSAGE_TABLE: 'Search Widget Message Table Created',\n LOG_VIEW: 'Search Widget Log View Created',\n },\n SEARCH_FIELD_VALUE_ACTION: {\n CHART: 'Search Field Action Chart Clicked',\n STATISTICS: 'Search Field Action Statistics Clicked',\n SHOW_TOP_VALUES: 'Search Field Action Show Top Values Clicked',\n ADD_TO_TABLE: 'Search Field Action Add To Table Clicked',\n REMOVE_FROM_TABLE: 'Search Field Action Remove From Table Clicked',\n ADD_TO_ALL_TABLES: 'Search Field Action Add To All Tables Clicked',\n COPY_FIELD_NAME_TO_CLIPBOARD: 'Search Field Action Copy Field Name To Clipboard Clicked',\n REMOVE_FROM_ALL_TABLES: 'Search Field Action Remove From All Tables Clicked',\n EXCLUDE_FROM_RESULTS: 'Search Value Action Exclude From Results Clicked',\n ADD_TO_QUERY: 'Search Value Action Add To Query Clicked',\n SHOW_DOCUMENT_FOR_VALUE: 'Search Value Action Show Document For Value Clicked',\n CREATE_EXTRACTOR: 'Search Value Action Create Extractor Clicked',\n HIGHLIGHT_THIS_VALUE: 'Search Value Action Highlight This Value Clicked',\n COPY_VALUE_TO_CLIPBOARD: 'Search Value Action Copy Value To Clipboard Clicked',\n CREATE_EVENT_DEFINITION: 'Search Value Action Create Event Definition Clicked',\n INSERT_INTO_DASHBOARD_SEARCH: 'Search Value Action Insert Into Dashboard/Search Clicked',\n CHANGE_FIELD_TYPE_OPENED: 'Search Field Action Change Field Type Opened',\n CHANGE_FIELD_TYPE_CLOSED: 'Search Field Action Change Field Type Closed',\n CHANGE_FIELD_TYPE_CHANGED: 'Search Field Action Change Field Type Changed',\n REMOVE_CUSTOM_FIELD_TYPE_OPENED: 'Search Field Action Removed Custom Field Type Opened',\n REMOVE_CUSTOM_FIELD_TYPE_CLOSED: 'Search Field Action Removed Custom Field Type Closed',\n REMOVE_CUSTOM_FIELD_TYPE_REMOVED: 'Search Field Action Removed Custom Field Type Removed',\n },\n DASHBOARD_FULL_SCREEN_MODE_STARTED: 'Dashboard Fullscreen Mode Started',\n SEARCH_MESSAGE_TABLE_SHOW_SURROUNDING_MESSAGE: 'Search Message Table Show Surrounding Message Clicked ',\n SEARCH_MESSAGE_TABLE_TEST_AGAINST_STREAM: 'Search Message Table Test Against Stream Clicked ',\n SEARCH_MESSAGE_TABLE_DETAILS_TOGGLED: 'Widget Message Table Details Toggled',\n SEARCH_SIDEBAR_TOGGLE: 'Search Sidebar Toggled',\n SEARCH_SIDEBAR_HIGHLIGHT_CREATED: 'Search Sidebar Highlight Created',\n SEARCH_SIDEBAR_HIGHLIGHT_UPDATED: 'Search Sidebar Highlight Updated',\n SEARCH_SIDEBAR_HIGHLIGHT_DELETED: 'Search Sidebar Highlight Deleted',\n SEARCH_SIDEBAR_REDO: 'Search Sidebar Redo',\n SEARCH_SIDEBAR_UNDO: 'Search Sidebar Undo',\n DASHBOARD_ACTION: {\n DASHBOARD_NEW_SAVED: 'Dashboard New Saved',\n DASHBOARD_SAVED: 'Dashboard Saved',\n DASHBOARD_UPDATED: 'Dashboard Updated',\n DASHBOARD_CREATE_CLICKED: 'Dashboard Create Clicked',\n DASHBOARD_CREATE_PAGE: 'Dashboard Create Page Clicked',\n DASHBOARD_PAGE_CONFIGURATION: 'Dashboard Page Configuration Clicked',\n DASHBOARD_PAGE_CONFIGURATION_UPDATED: 'Dashboard Page Configuration Updated',\n DASHBOARD_PAGE_CONFIGURATION_CANCELED: 'Dashboard Page Configuration Update Cancel',\n DASHBOARD_PAGE_CONFIGURATION_SORTING_UPDATED: 'Dashboard Page Configuration Sorting Updated',\n DASHBOARD_PAGE_CONFIGURATION_PAGE_REMOVED: 'Dashboard Page Configuration Page Remove',\n },\n EVENTDEFINITION_LIST: {\n COLUMNS_CHANGED: 'EventDefinition List Columns Changed',\n SORT_CHANGED: 'EventDefinition List Sort Changed',\n PAGE_SIZE_CHANGED: 'EventDefinition List Page Size Changed',\n BULK_ACTION_DELETE_CLICKED: 'EventDefinition List Bulk Delete Clicked',\n BULK_ACTION_ENABLE_CLICKED: 'EventDefinition List Bulk Enable Clicked',\n BULK_ACTION_DISABLE_CLICKED: 'EventDefinition List Bulk Disable Clicked',\n ROW_ACTION_DELETE_CLICKED: 'EventDefinition List Row Delete Clicked',\n ROW_ACTION_ENABLE_CLICKED: 'EventDefinition List Row Enable Clicked',\n ROW_ACTION_DISABLE_CLICKED: 'EventDefinition List Row Disable Clicked',\n ROW_ACTION_COPY_CLICKED: 'EventDefinition List Row Copy Clicked',\n ROW_ACTION_SHARE_CLICKED: 'EventDefinition List Row Share Clicked',\n },\n EVENTDEFINITION_CREATE_BUTTON_CLICKED: 'EventDefinition Create Button Clicked',\n EVENTDEFINITION_DUPLICATED: 'EventDefinition Duplicated',\n EVENTDEFINITION_NEXT_CLICKED: 'EventDefinition Next Clicked',\n EVENTDEFINITION_PREVIOUS_CLICKED: 'EventDefinition Previous Clicked',\n EVENTDEFINITION_DETAILS: {\n STEP_CLICKED: 'EventDefinition Details Step Clicked',\n PRIORITY_CHANGED: 'EventDefinition Details Priority Changed',\n },\n EVENTDEFINITION_CONDITION: {\n STEP_CLICKED: 'EventDefinition Condition Step Clicked',\n TYPE_SELECTED: 'EventDefinition Condition Type Selected',\n FILTER_STREAM_SELECTED: 'EventDefinition Condition Filter Stream Selected',\n FILTER_SEARCH_WITHIN_THE_LAST_UNIT_CHANGED: 'EventDefinition Condition Filter Search Within The Last Unit Changed',\n FILTER_EXECUTE_SEARCH_EVERY_UNIT_CHANGED: 'EventDefinition Condition Filter Execute Search Every Unit Changed',\n FILTER_EXECUTED_AUTOMATICALLY_TOGGLED: 'EventDefinition Condition Filter Executed Automatically Toggled',\n FILTER_EVENT_LIMIT_CHANGED: 'EventDefinition Condition Filter Event Limit Changed',\n AGGREGATION_TOGGLED: 'EventDefinition Aggregation Toggled',\n AGGREGATION_GROUP_BY_FIELD_SELECTED: 'EventDefinition Aggregation Group By Field Selected',\n CORRELATION_WITHIN_THE_LAST_UNIT_CHANGED: 'EventDefinition Condition Correlation Within The Last Unit Changed',\n CORRELATION_EXECUTE_EVERY_UNIT_CHANGED: 'EventDefinition Condition Correlation Execute Every Unit Changed',\n CORRELATION_EXECUTED_AUTOMATICALLY_TOGGLED: 'EventDefinition Condition Correlation Executed Automatically Toggled',\n CORRELATION_EVENT_SELECTED: 'EventDefinition Condition Correlation Event Selected',\n CORRELATION_ADD_EVENT_CLICKED: 'EventDefinition Condition Correlation Add Event Clicked',\n CORRELATION_REMOVE_EVENT_CLICKED: 'EventDefinition Condition Correlation Remove Event Clicked',\n CORRELATION_OCCURRENCE_TIME_CHANGED: 'EventDefinition Condition Correlation Occurrence Time Changed',\n CORRELATION_NO_OCCURRENCE_FOLLOWED_BY_EVENT_SELECTED: 'EventDefinition Condition Correlation No Occurrence Followed By Event Selected',\n CORRELATION_NO_OCCURRENCE_IN_THE_NEXT_SELECTED: 'EventDefinition Condition Correlation No Occurrence In The Next Selected',\n CORRELATION_NO_OCCURRENCE_IN_THE_NEXT_UNIT_CHANGED: 'EventDefinition Condition Correlation No Occurrence In The Next Unit Changed',\n },\n EVENTDEFINITION_FIELDS: {\n STEP_CLICKED: 'EventDefinition Fields Step Clicked',\n ADD_CUSTOM_FIELD_CLICKED: 'EventDefinition Fields Add Custom Field Clicked',\n AS_EVENT_KEY_TOGGLED: 'EventDefinition Fields As Event Key Toggled',\n SET_VALUE_FROM_TEMPLATE_SELECTED: 'EventDefinition Fields Set Value From Template Selected',\n SET_VALUE_FROM_LOOKUP_TABLE_SELECTED: 'EventDefinition Fields Set Value From Lookup Table Selected',\n DONE_CLICKED: 'EventDefinition Fields Done Clicked',\n CANCEL_CLICKED: 'EventDefinition Fields Cancel Clicked',\n },\n EVENTDEFINITION_NOTIFICATIONS: {\n STEP_CLICKED: 'EventDefinition Notifications Step Clicked',\n ADD_CLICKED: 'EventDefinition Notifications Add Clicked',\n MANAGE_LINK_CLICKED: 'EventDefinition Notifications Manage Link Clicked',\n NOTIFICATION_SELECTED: 'EventDefinition Notifications Notification Selected',\n CREATE_NEW_CLICKED: 'EventDefinition Notifications Create New Clicked',\n NOTIFICATION_TYPE_SELECTED: 'EventDefinition Notifications Notification Type Selected',\n DONE_CLICKED: 'EventDefinition Notifications Done Clicked',\n CANCEL_CLICKED: 'EventDefinition Notifications Cancel Clicked',\n },\n EVENTDEFINITION_SUMMARY: {\n STEP_CLICKED: 'EventDefinition Summary Step Clicked',\n CANCEL_CLICKED: 'EventDefinition Summary Cancel Clicked',\n CREATE_CLICKED: 'EventDefinition Summary Create Clicked',\n UPDATE_CLICKED: 'EventDefinition Summary Update Clicked',\n },\n NOTIFICATIONS: {\n CREATE_CLICKED: 'Notifications Create Clicked',\n EDIT_CLICKED: 'Notifications Edit Clicked',\n EXECUTE_TEST_CLICKED: 'Notifications Execute Test Clicked',\n BULK_ACTION_DELETE_CLICKED: 'Notifications Bulk Delete Clicked',\n ROW_ACTION_DELETE_CLICKED: 'Notifications Row Delete Clicked',\n ROW_ACTION_TEST_CLICKED: 'Notifications Row Test Clicked',\n },\n CONTENTSTREAM: {\n PREV_ARROW_CLICKED: 'Content Stream Left Arrow Clicked',\n NEXT_ARROW_CLICKED: 'Content Stream Right Arrow Clicked',\n READ_MORE_CLICKED: 'Content Stream Read More Clicked',\n ARTICLE_CLICKED: 'Content Stream Article Clicked',\n RELESE_ARTICLE_CLICKED: 'Content Stream Release Article Clicked',\n NEWS_OPT_IN_TOGGLED: 'Content Stream News Opt-In Clicked',\n RELEASE_OPT_IN_TOGGLED: 'Content Stream Release Opt-In Clicked',\n },\n STREAMS: {\n CREATE_FORM_MODAL_OPENED: 'Stream Create Form Modal Opened',\n NEW_STREAM_CREATED: 'Stream New Stream Created',\n STREAM_ITEM_UPDATED: 'Stream Item Updated',\n STREAM_ITEM_STATUS_TOGGLED: 'Stream Item Status Toggled',\n STREAM_ITEM_SHARE_MODAL_OPENED: 'Stream Item Share Modal Opened',\n STREAM_ITEM_UPDATE_MODAL_OPENED: 'Stream Item Update Modal Opened',\n STREAM_ITEM_CLONED: 'Stream Item Cloned',\n STREAM_ITEM_RULE_SAVED: 'Stream Item Rule SAVED',\n STREAM_ITEM_DELETED: 'Stream Item Deleted',\n },\n ENTITYSHARE: {\n ENTITY_STREAM_SHARED: 'Entity Share: Entity Stream Shared',\n ENTITY_SEARCH_SHARED: 'Entity Share: Entity Search Shared',\n ENTITY_SEARCH_FILTER_SHARED: 'Entity Share: Entity Filter Shared',\n ENTITY_EVENT_DEFINITION_SHARED: 'Entity Share: Event Definition Shared',\n ENTITY_NOTIFICATION_SHARED: 'Entity Share: Notification Shared',\n ENTITY_DASHBOARD_SHARED: 'Entity Share: Dashboard Shared',\n },\n PIPELINE_RULE_BUILDER: {\n CREATE_RULE_CLICKED: 'Pipeline Create Rule Clicked',\n RUN_RULE_SIMULATION_CLICKED: 'Pipeline Run Rule Simulation Clicked',\n RESET_RULE_SIMULATION_CLICKED: 'Pipeline Reset Rule Simulation Clicked',\n USE_SOURCE_CODE_EDITOR_CLICKED: 'Pipeline RuleBuilder Use Source Code Editor Clicked',\n SWITCH_TO_SOURCE_CODE_EDITOR_CONFIRM_CLICKED: 'Pipeline RuleBuilder Switch to Source Code Editor Confirm Clicked',\n SWITCH_TO_SOURCE_CODE_EDITOR_CANCEL_CLICKED: 'Pipeline RuleBuilder Switch to Source Code Editor Cancel Clicked',\n CREATE_NEW_RULE_FROM_CODE_CLICKED: 'Pipeline RuleBuilder Create New Rule From Code Clicked',\n COPY_CODE_AND_CLOSE_CLICKED: 'Pipeline RuleBuilder Code Copy & Close Clicked',\n NEW_CONDITION_SELECTED: 'Pipeline RuleBuilder New Condition Selected',\n NEW_ACTION_SELECTED: 'Pipeline RuleBuilder New Action Selected',\n ADD_CONDITION_CLICKED: 'Pipeline RuleBuilder Add Condition Clicked',\n ADD_ACTION_CLICKED: 'Pipeline RuleBuilder Add Action Clicked',\n UPDATE_CONDITION_CLICKED: 'Pipeline RuleBuilder Update Condition Clicked',\n UPDATE_ACTION_CLICKED: 'Pipeline RuleBuilder Update Action Clicked',\n CANCEL_CLICKED: 'Pipeline RuleBuilder Cancel Clicked',\n ADD_RULE_CLICKED: 'Pipeline RuleBuilder Add Rule Clicked',\n CONVERT_TO_SOURCE_CODE_CLICKED: 'Pipeline RuleBuilder Convert to Source Code Clicked',\n OPERATOR_AND_CLICKED: 'Pipeline RuleBuilder Operator AND Clicked',\n OPERATOR_OR_CLICKED: 'Pipeline RuleBuilder Operator OR Clicked',\n UPDATE_RULE_CLICKED: 'Pipeline RuleBuilder Update Rule Clicked',\n UPDATE_RULE_AND_CLOSE_CLICKED: 'Pipeline RuleBuilder Update Rule And Close Clicked',\n NEGATE_CONDITION_CLICKED: 'Pipeline RuleBuilder Negate Condition Clicked',\n DUPLICATE_ACTION_CLICKED: 'Pipeline RuleBuilder Duplicate Action Clicked',\n INSERT_ABOVE_ACTION_CLICKED: 'Pipeline RuleBuilder Insert Above Action Clicked',\n INSERT_BELOW_ACTION_CLICKED: 'Pipeline RuleBuilder Insert Below Action Clicked',\n DELETE_CONDITION_CLICKED: 'Pipeline RuleBuilder Delete Condition Clicked',\n DELETE_ACTION_CLICKED: 'Pipeline RuleBuilder Delete Action Clicked',\n EDIT_CONDITION_CLICKED: 'Pipeline RuleBuilder Edit Condition Clicked',\n EDIT_ACTION_CLICKED: 'Pipeline RuleBuilder Edit Action Clicked',\n },\n ILLUMINATE: {\n BUNDLE_UPLOADED: 'Illuminate Bundle Uploaded',\n BUNDLE_DOWNLOADED_AND_INSTALLED: 'Illuminate Bundle Downloaded and Installed',\n PACK_ENABLE_MODAL_TOGGLED: 'Illuminate Pack Enable Modal Toggled',\n PACK_DISABLE_MODAL_TOGGLED: 'Illuminate Pack Modal Toggled',\n PACKS_BULK_UPDATED: 'Illuminate Packs Bulk Updated',\n PACKS_OVERRIDE_FORM_OPENED: 'Illuminate Packs Override Form Opened',\n PACKS_OVERRIDE_SAVED: 'Illuminate Packs Override Saved',\n },\n SECURITY_APP: {\n ASSET_DELETED: 'Security Asset Deleted',\n ASSET_SOURCE_DELETED: 'Security Asset Source Deleted',\n ASSET_CONFIG_REPRIORITIZED: 'Security Asset Config Reprioritized',\n ASSET_CONFIG_CATEGORY_ADDED: 'Security Asset Config Category Added',\n ASSET_CONFIG_CATEGORY_UPDATED: 'Security Asset Config Category Updated',\n ASSET_CONFIG_CATEGORY_DELETED: 'Security Asset Config Category Deleted',\n ASSET_CONFIG_PRIORITY_ADDED: 'Security Asset Config Priority Added',\n ASSET_CONFIG_PRIORITY_UPDATED: 'Security Asset Config Priority Updated',\n ASSET_CONFIG_PRIORITY_DELETED: 'Security Asset Config Priority Deleted',\n INVESTIGATION_UPDATED: 'Security Investigation Update',\n INVESTIGATION_ARCHIVED: 'Security Investigation Archived',\n INVESTIGATION_EDITED: 'Security Investigation Updated',\n INVESTIGATION_RESTORED: 'Security Investigation Restored',\n INVESTIGATION_DELETED: 'Security Investigation Deleted',\n INVESTIGATION_PRIORITY_ADDED: 'Security Investigation Priority Added',\n INVESTIGATION_PRIORITY_UPDATED: 'Security Investigation Priority Updated',\n INVESTIGATION_PRIORITY_DELETED: 'Security Investigation Priority Deleted',\n INVESTIGATION_PRIORITY_REPRIORITIZED: 'Security Investigation Priority Reprioritized',\n INVESTIGATION_PRIORITY_DEFAULT_SET: 'Security Investigation Priority Default Set',\n INVESTIGATION_PRIORITY_DEFAULT_REMOVED: 'Security Investigation Priority Default Removed',\n INVESTIGATION_STATUS_ADDED: 'Security Investigation Status Added',\n INVESTIGATION_STATUS_UPDATED: 'Security Investigation Status Updated',\n INVESTIGATION_STATUS_DELETED: 'Security Investigation Status Deleted',\n INVESTIGATION_STATUS_REPRIORITIZED: 'Security Investigation Status Reprioritized',\n INVESTIGATION_STATUS_DEFAULT_SET: 'Security Investigation Status Default Set',\n INVESTIGATION_STATUS_DEFAULT_REMOVED: 'Security Investigation Status Default Removed',\n INVESTIGATION_DETAILS_UPDATED: 'Security Investigation Details Updated',\n INVESTIGATION_DRAWER_OPENED: 'Security Investigation Drawer Opened',\n INVESTIGATION_DRAWER_CLOSED: 'Security Investigation Drawer Closed',\n INVESTIGATION_DRAWER_COLLAPSE_TOGGLED: 'Security Investigation Drawer Collapse Toggled',\n INVESTIGATION_NOTE_ADDED: 'Security Investigation Note Added',\n INVESTIGATION_NOTE_SAVED: 'Security Investigation Note Saved',\n INVESTIGATION_NOTE_EDIT: 'Security Investigation Note Updated',\n INVESTIGATION_NOTE_DELETED: 'Security Investigation Note Deleted',\n SIGMA_IMPORT_RULES_OPENED: 'Security Sigma Rules Import Opened',\n SIGMA_IMPORT_RULES_IMPORTED: 'Security Sigma Rules Imported',\n SIGMA_RULE_UPDATED: 'Security Sigma Rules Update',\n SIGMA_RULE_CREATED: 'Security Sigma Rules Created',\n ANOMALY_DETECTION_SAVED: 'Security Anomaly Detection Saved',\n ANOMALY_DETECTION_DELETED: 'Security Anomaly Detection Deleted',\n },\n FORWARDER: {\n INPUTPROFILE_FORWARDER_ASSIGNED: 'Forwarder Input Profile Forwarder Assigned',\n FORWARDER_WIZARD_WELCOME_STEP_OPENED: 'Forwarder Wizard Welcome Step Opened',\n FORWARDER_WIZARD_SELECT_FORWARDER_STEP_OPENED: 'Forwarder Wizard Select Forwarder Step Opened',\n FORWARDER_WIZARD_CONFIGURE_FORWARDER_STEP_OPENED: 'Forwarder Wizard Configure Forwarder Step Opened',\n FORWARDER_WIZARD_INPUTS_STEP_OPENED: 'Forwarder Wizard Forwarder Inputs Step Opened',\n FORWARDER_WIZARD_SUMMARY_STEP_OPENED: 'Forwarder Wizard Forwarder Summary Step Opened',\n FORWARDER_WIZARD_CONFIGURE_FORWARDER_SELECTED: 'Forwarder Wizard Configure Forwarder Selected',\n FORWARDER_WIZARD_CONFIGURE_FORWARDER_SAVED: 'Forwarder Wizard Configure Forwarder Saved',\n FORWARDER_WIZARD_INPUT_PROFILE_SELECTED: 'Forwarder Wizard Input Profile Selected',\n FORWARDER_WIZARD_INPUT_PROFILE_SAVED: 'Forwarder Wizard Input Profile Saved',\n FORWARDER_INPUT_PROFILE_CREATED: 'Forwarder Input Profile Created',\n FORWARDER_CREATED: 'Forwarder Created',\n FORWARDER_UPDATED: 'Forwarder Updated',\n FORWARDER_DELETED: 'Forwarder Created',\n FORWARDER_CONFIGURATION_REMOVED: 'Forwarder Configuration Removed',\n FORWARDER_INPUT_PROFILE_UPDATED: 'Forwarder Input Profile Updated',\n FORWARDER_INPUT_PROFILE_FORWARDER_ASSIGNED: 'Forwarder Input Profile Forwarder Assigned',\n FORWARDER_INPUT_PROFILE_CREATE_CANCELED: 'Forwarder Input Profile Create Canceled',\n FORWARDER_INPUT_PROFILE_INPUT_CREATED: 'Forwarder Input Profile Input Created',\n FORWARDER_INPUT_PROFILE_INPUT_UPDATED: 'Forwarder Input Profile Input Updated',\n FORWARDER_INPUT_PROFILE_INPUT_DELETED: 'Forwarder Input Profile Input Deleted',\n FORWARDER_WIZARD_SETUP_CANCELED: 'Forwarder Wizard Setup Canceled',\n },\n ARCHIVE: {\n DELETED: 'Archive Deleted',\n RESTORED: 'Archive Restored',\n CREATED: 'Archive Created',\n ITEM_DETAILS_TOGGLED: 'Archive Item Details Opened',\n BACKEND_CONFIGURATION_UPDATED: 'Archive Backend Configuration Updated',\n BACKEND_CONFIGURATION_CREATED: 'Archive Backend Configuration Created',\n BACKEND_CONFIGURATION_DELETED: 'Archive Backend Configuration Deleted',\n CONFIGURATION_UPDATED: 'Archive Configuration Update',\n },\n LICENSE: {\n VALIDATED: 'License Validated',\n SAVED: 'License Saved',\n DELETED: 'License Deleted',\n },\n REPORT: {\n CONFIGURED: 'Report Configured',\n DELETED: 'Report Deleted',\n SENT: 'Report Sent',\n CREATED: 'Report Created',\n UPDATED: 'Report Updated',\n },\n CUSTOMIZATION: {\n NOTIFICATION_CREATED: 'Customization Notification Created',\n NOTIFICATION_DELETED: 'Customization Notification Deleted',\n NOTIFICATION_BULK_DELETED: 'Customization Notification Bulk Deleted',\n THEME_REVERTED: 'Customization Theme Reverted',\n THEME_RESETED: 'Customization Theme Reseted',\n HEADER_BADGE_UPDATED: 'Customization Header Badge Updated',\n },\n TRAFFIC_VIOLATION_CONFIGURATION_SAVED: 'Traffic Violation Configuration Saved',\n FAILURE_PROCESSING_CONFIGURATION_SAVED: 'Failure Processing Configuration Saved',\n SHORTCUT_TYPED: 'Shortcut Typed',\n CONFIGURATIONS: {\n INDEX_SETS_UPDATED: 'Configurations Index Sets Defaults Updated',\n THREATINTEL_CONFIGURATION_UPDATED: 'Configurations Threat Intel Configuration Updated',\n PERMISSIONS_UPDATED: 'Configurations Permissions Updated',\n SEARCHES_UPDATED: 'Configurations Searches Updated',\n URL_WHITE_LIST_UPDATED: 'Configurations Url White List Updated',\n USER_UPDATED: 'Configurations User Updated',\n CERTIFICATE_RENEWAL_UPDATED: 'Configurations Certificate Renewal Updated',\n CERTIFICATE_RENEWAL_POLICY_UPDATED: 'Configurations Certificate Renewal Policy Updated',\n DECORATORS_UPDATED: 'Configurations Decorators Updated',\n GEOLOCATION_CONFIGURATION_UPDATED: 'Configurations Geolocation Configuration Updated',\n },\n INPUTS: {\n INPUT_SELECTED: 'Inputs Input Selected',\n INPUT_CREATED: 'Inputs Input Created',\n FIND_MORE_CLICKED: 'Inputs Find More Inputs Clicked',\n INPUT_DELETED: 'Inputs Input Deleted',\n INPUT_EDIT_CLICKED: 'Inputs Input Edit Clicked',\n INPUT_UPDATED: 'Inputs Input Updated',\n SHOW_RECEIVED_MESSAGES_CLICKED: 'Inputs Show Received Messages Clicked',\n MANAGE_EXTRACTORS_CLICKED: 'Inputs Manage Extractors Clicked',\n SHOW_METRICS_CLICKED: 'Inputs Show Metrics Clicked',\n INPUT_START_CLICKED: 'Inputs Input Start Clicked',\n INPUT_STOP_CLICKED: 'Inputs Input Stop Clicked',\n },\n OUTPUTS: {\n OUTPUT_CREATED: 'Outputs Output Created',\n OUTPUT_ASSIGNED: 'Outputs Output Assigned',\n OUTPUT_GLOBALLY_REMOVED: 'Outputs Output Globally Removed',\n OUTPUT_FROM_STREAM_REMOVED: 'Outputs Output From Stream Removed',\n OUTPUT_UPDATED: 'Outputs Output Updated',\n },\n INDICES: {\n INDEX_SET_DEFAULT_SET: 'Indices Index Set Default Set',\n INDEX_SET_DELETED: 'Indices Index Set Deleted',\n INDEX_SET_CREATED: 'Indices Index Set Created',\n INDEX_SET_UPDATED: 'Indices Index Set Updated',\n },\n LOGGING: {\n LOG_LEVEL_EDITED: 'Logging Log Level Edited',\n SHOW_LOG_LEVEL_METRICS_TOGGLED: 'Logging Show Log Level Metrics Toggled',\n },\n LUT: {\n DELETED: 'LUT Deleted',\n CREATED: 'LUT Created',\n UPDATED: 'LUT Updated',\n CACHE_TYPE_CHANGED: 'LUT Cache Type Changed',\n CACHE_DELETED: 'LUT Cache Deleted',\n CACHE_CREATED: 'LUT Cache Created',\n CACHE_UPDATED: 'LUT Cache Updated',\n DATA_ADAPTER_DELETED: 'LUT Data Adapter Deleted',\n DATA_ADAPTER_CREATED: 'LUT Data Adapter Created',\n DATA_ADAPTER_UPDATED: 'LUT Data Adapter Updated',\n },\n USERS: {\n USER_CREATED: 'Users User Created',\n USER_DISABLED: 'Users User Disabled',\n USER_ENABLED: 'Users User Enabled',\n USER_DELETED: 'Users User Deleted',\n },\n GROK_PATTERN: {\n CREATED: 'Grok Pattern Created',\n UPDATED: 'Grok Pattern Updated',\n DELETED: 'Grok Pattern Deleted',\n TESTED: 'Grok Pattern Tested',\n IMPORTED: 'Grok Pattern Imported',\n },\n ROLES: {\n USER_ASSIGNED: 'Roles User Assigned',\n USER_UNASSIGNED: 'Roles User Unassigned',\n },\n AUTHENTICATION: {\n CONFIG_UPDATED: 'Authentication Config Updated',\n SERVICE_CREATED: 'Authentication Service Created',\n SERVICE_SELECTED: 'Authentication Service Selected',\n DIRECTORY_SERVER_CONFIG_SAVE_CLICKED: 'Authentication Directory Server Config Save Clicked',\n DIRECTORY_USER_SYNC_SAVE_CLICKED: 'Authentication Directory User Sync Save Clicked',\n DIRECTORY_GROUP_SYNC_SAVE_CLICKED: 'Authentication Directory Group Sync Save Clicked',\n DIRECTORY_NEXT_USER_SYNC_CLICKED: 'Authentication Directory Next User Sync Clicked',\n DIRECTORY_NEXT_GROUP_SYNC_CLICKED: 'Authentication Directory Next Group Sync Clicked',\n OIDC_SERVER_CONFIG_SAVE_CLICKED: 'Authentication OIDC Server Config Save Clicked',\n OIDC_NEXT_GROUP_SYNC_CLICKED: 'Authentication OIDC Next Group Sync Clicked',\n OIDC_PREVIOUS_SERVER_CONFIG_CLICKED: 'Authentication OIDC Previous Server Config Clicked',\n OIDC_GROUP_SYNC_SAVE_CLICKED: 'Authentication OIDC Group Sync Save Clicked',\n },\n SIDECARS: {\n CONFIGURATION_CREATED: 'Sidecar Configuration Created',\n CONFIGURATION_UPDATED: 'Sidecar Configuration Updated',\n CONFIGURATION_CLONED: 'Sidecar Configuration Cloned',\n CONFIGURATION_DELETED: 'Sidecar Configuration Deleted',\n CONFIGURATION_ASSIGNED: 'Sidecar Configuration Assigned',\n PROCESS_ACTION_SET: 'Sidecar Process Action Set',\n LOG_COLLECTOR_CLONED: 'Sidecar Log Collector Cloned',\n LOG_COLLECTOR_CREATED: 'Sidecar Log Collector Created',\n LOG_COLLECTOR_SERVICE_TYPE_CHANGED: 'Sidecar Log Collector Service Type Changed',\n LOG_COLLECTOR_NODE_OPERATING_SYSTEM_CHANGED: 'Sidecar Log Collector Node Operating System Changed',\n LOG_COLLECTOR_UPDATED: 'Sidecar Log Collector Updated',\n LOG_COLLECTOR_DELETED: 'Sidecar Log Collector Deleted',\n },\n SYSTEM_OVERVIEW_OUTGOING_TRAFFIC_DAYS_CHANGED: 'System Overview Outgoing Traffic Days Changed',\n URLWHITELIST_CONFIGURATION_UPDATED: 'Urlwhitelist Configuration Updated',\n CONTENT_PACK: {\n INSTALLED: 'Content Pack Installed',\n DOWNLOADED: 'Content Pack Downloaded',\n ALL_VERSIONS_DELETED: 'Content Pack All Versions Deleted',\n },\n TEAM: {\n CREATED: 'Team Created',\n ASSIGNED: 'Team Assigned',\n UNASSIGNED: 'Team Unassigned',\n DELETED: 'Team Deleted',\n },\n INDEX_SET_FIELD_TYPE_PROFILE: {\n NEW_OPENED: 'Index Set Field Type Profile Creating New Opened',\n NEW_CANCELED: 'Index Set Field Type Profile Creating New Canceled',\n CREATED: 'Index Set Field Type Profile Created',\n EDIT_OPENED: 'Index Set Field Type Profile Edit Opened',\n EDIT_CANCELED: 'Index Set Field Type Profile Edit Canceled',\n EDIT: 'Index Set Field Type Profile Edited',\n CHANGE_FOR_INDEX_OPENED: 'Index Set Field Type Profile Change For Index Opened',\n CHANGE_FOR_INDEX_CANCELED: 'Index Set Field Type Profile Change For Index Canceled',\n CHANGE_FOR_INDEX_CHANGED: 'Index Set Field Type Profile Change For Index Changed',\n CHANGE_FOR_INDEX_REMOVED: 'Index Set Field Type Profile Change For Index Removed',\n CREATE_PROFILE_FROM_SELECTED_RAN: 'Index Set Field Type Profile Create From Selected Ran',\n },\n} as const;\n\ntype ExtractObjectValues = {\n [K in keyof T]: T[K] extends object ? ExtractObjectValues : T[K];\n}[keyof T];\n\nexport type EventType = ExtractObjectValues;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport { singleton } from 'logic/singleton';\nimport type { EventType } from 'logic/telemetry/Constants';\n\nexport type TelemetryEvent = {\n app_path_pattern?: string,\n app_pathname?: string,\n app_section?: string,\n app_action_value?: string\n [key: string]: unknown,\n};\n\nexport type TelemetryEventType = '$pageview' | EventType;\n\ntype ContextType = {\n sendTelemetry: (eventType: TelemetryEventType, event: TelemetryEvent | { [key: string]: unknown }) => void,\n}\nconst TelemetryContext = React.createContext({\n sendTelemetry: () => {\n },\n});\n\nexport default singleton('contexts.TelemetryContext', () => TelemetryContext);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useContext, useMemo } from 'react';\nimport { useLocation, UNSAFE_DataRouterContext as DataRouterContext, matchRoutes } from 'react-router-dom';\n\nimport { singleton } from 'logic/singleton';\n\nconst useRoutePattern = () => {\n const location = useLocation();\n const dataRouterContext = useContext(DataRouterContext);\n\n return useMemo(() => {\n if (dataRouterContext?.router?.routes) {\n const { router: { routes } } = dataRouterContext;\n const matches = matchRoutes(routes, location.pathname);\n const { route } = matches.at(-1);\n\n return route.path;\n }\n\n return undefined;\n }, [location.pathname, dataRouterContext]);\n};\n\nexport default singleton('hooks.useRoutePattern', () => useRoutePattern);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useCallback, useContext } from 'react';\nimport type { Optional } from 'utility-types';\n\nimport type { TelemetryEventType, TelemetryEvent } from 'logic/telemetry/TelemetryContext';\nimport TelemetryContext from 'logic/telemetry/TelemetryContext';\nimport useRoutePattern from 'routing/useRoutePattern';\n\nconst useSendTelemetry = () => {\n const { sendTelemetry } = useContext(TelemetryContext);\n const route = useRoutePattern();\n\n return useCallback((eventType: TelemetryEventType, event: Optional) => sendTelemetry(\n eventType,\n { app_path_pattern: route, ...event },\n ), [sendTelemetry, route]);\n};\n\nexport default useSendTelemetry;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport useSendTelemetry from './useSendTelemetry';\n\nconst withTelemetry = >>(Component: C) => function WrappedComponent(props: any) {\n const sendTelemetry = useSendTelemetry();\n\n return ;\n};\n\nexport default withTelemetry;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as Immutable from 'immutable';\nimport type { $PropertyType } from 'utility-types';\n\nimport type { PreferencesMap } from 'stores/users/PreferencesStore';\n\nimport type { AccountStatus } from './UserOverview';\n\nexport type StartPage = {\n id: string;\n type: 'dashboard' | 'stream' | 'search'\n};\n\nexport type UserJSON = {\n client_address: string;\n email: string;\n external: boolean;\n full_name: string;\n first_name: string;\n last_name: string;\n id: string;\n last_activity: string | null | undefined;\n permissions: string[];\n grn_permissions?: string[];\n preferences: PreferencesMap;\n read_only: boolean;\n roles: string[];\n session_active: boolean;\n session_timeout_ms: number;\n startpage?: StartPage;\n timezone: string | null | undefined;\n username: string;\n account_status: AccountStatus;\n service_account: boolean;\n auth_service_enabled: boolean;\n};\n\ntype InternalState = {\n id: string;\n username: string;\n fullName: string;\n firstName: string;\n lastName: string;\n email: string;\n grnPermissions: Immutable.List;\n permissions: Immutable.List;\n timezone: string | null | undefined;\n preferences: PreferencesMap;\n roles: Immutable.Set;\n readOnly: boolean;\n external: boolean;\n sessionTimeoutMs: number;\n startpage?: StartPage;\n sessionActive: boolean;\n clientAddress: string;\n lastActivity: string | null | undefined;\n accountStatus: AccountStatus;\n serviceAccount: boolean;\n authServiceEnabled: boolean;\n};\n\nexport default class User {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n firstName: $PropertyType,\n lastName: $PropertyType,\n email: $PropertyType,\n permissions: $PropertyType,\n timezone: $PropertyType,\n preferences: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionTimeoutMs: $PropertyType,\n startpage: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n accountStatus: $PropertyType,\n serviceAccount: $PropertyType,\n grnPermissions: $PropertyType,\n authServiceEnabled: $PropertyType,\n ) {\n this._value = {\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n grnPermissions,\n serviceAccount,\n authServiceEnabled,\n };\n }\n\n get id() {\n return this._value.id;\n }\n\n get username() {\n return this._value.username;\n }\n\n get fullName() {\n return this._value.fullName;\n }\n\n get firstName() {\n return this._value.firstName;\n }\n\n get lastName() {\n return this._value.lastName;\n }\n\n get email() {\n return this._value.email;\n }\n\n get grnPermissions() {\n return this._value.grnPermissions;\n }\n\n get permissions() {\n return this._value.permissions;\n }\n\n get timezone() {\n return this._value.timezone;\n }\n\n get preferences() {\n return this._value.preferences;\n }\n\n get roles() {\n return this._value.roles;\n }\n\n get readOnly() {\n return this._value.readOnly;\n }\n\n get external() {\n return this._value.external;\n }\n\n get accountStatus() {\n return this._value.accountStatus;\n }\n\n get serviceAccount() {\n return this._value.serviceAccount;\n }\n\n get sessionTimeoutMs() {\n return this._value.sessionTimeoutMs;\n }\n\n get sessionTimeout() {\n if (!this.sessionTimeoutMs) {\n return undefined;\n }\n\n const MS_DAY = 24 * 60 * 60 * 1000;\n const MS_HOUR = 60 * 60 * 1000;\n const MS_MINUTE = 60 * 1000;\n const MS_SECOND = 1000;\n\n const _estimateUnit = (value): [number, string] => {\n if (value === 0) {\n return [MS_SECOND, 'Seconds'];\n }\n\n if (value % MS_DAY === 0) {\n return [MS_DAY, 'Days'];\n }\n\n if (value % MS_HOUR === 0) {\n return [MS_HOUR, 'Hours'];\n }\n\n if (value % MS_MINUTE === 0) {\n return [MS_MINUTE, 'Minutes'];\n }\n\n return [MS_SECOND, 'Seconds'];\n };\n\n const unit = _estimateUnit(this.sessionTimeoutMs);\n const value = Math.floor(this.sessionTimeoutMs / unit[0]);\n\n return {\n value,\n unitMS: unit[0],\n unitString: unit[1],\n };\n }\n\n get startpage() {\n return this._value.startpage;\n }\n\n get sessionActive() {\n return this._value.sessionActive;\n }\n\n get clientAddress() {\n return this._value.clientAddress;\n }\n\n get lastActivity() {\n return this._value.lastActivity;\n }\n\n get authServiceEnabled() {\n return this._value.authServiceEnabled;\n }\n\n toBuilder() {\n const {\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n grnPermissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n authServiceEnabled,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n timezone,\n grnPermissions,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n authServiceEnabled,\n }));\n }\n\n static create(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n firstName: $PropertyType,\n lastName: $PropertyType,\n email: $PropertyType,\n permissions: $PropertyType,\n timezone: $PropertyType,\n preferences: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionTimeoutMs: $PropertyType,\n startpage: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n accountStatus: $PropertyType,\n serviceAccount: $PropertyType,\n grnPermissions: $PropertyType,\n authServiceEnabled: $PropertyType,\n ) {\n return new User(\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n grnPermissions,\n authServiceEnabled,\n );\n }\n\n static empty() {\n // @ts-ignore\n return User.create('', '', '', '', Immutable.List(), '', {}, Immutable.Set(), false, false, -1, undefined, false, '', '', 'enabled');\n }\n\n toJSON(): UserJSON {\n const {\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n grnPermissions,\n permissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n authServiceEnabled,\n } = this._value;\n\n return {\n id,\n username,\n full_name: fullName,\n first_name: firstName,\n last_name: lastName,\n email,\n grn_permissions: grnPermissions ? grnPermissions.toJS() : [],\n permissions: permissions ? permissions.toArray() : [],\n timezone,\n preferences,\n roles: roles ? roles.toArray() : [],\n read_only: readOnly,\n external,\n session_timeout_ms: sessionTimeoutMs,\n startpage,\n session_active: sessionActive,\n client_address: clientAddress,\n last_activity: lastActivity,\n account_status: accountStatus,\n service_account: serviceAccount,\n auth_service_enabled: authServiceEnabled,\n };\n }\n\n static fromJSON(value: UserJSON) {\n const {\n id,\n username,\n full_name,\n first_name,\n last_name,\n email,\n grn_permissions,\n permissions,\n timezone,\n preferences,\n roles,\n read_only,\n external,\n session_timeout_ms,\n startpage,\n session_active,\n client_address,\n last_activity,\n account_status,\n service_account,\n auth_service_enabled,\n } = value;\n\n return User.create(\n id,\n username,\n full_name,\n first_name,\n last_name,\n email,\n Immutable.List(permissions),\n timezone,\n preferences,\n Immutable.Set(roles),\n read_only,\n external,\n session_timeout_ms,\n startpage,\n session_active,\n client_address,\n last_activity,\n account_status,\n service_account,\n Immutable.List(grn_permissions),\n auth_service_enabled,\n );\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype BuilderState = Immutable.Map;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType) {\n return new Builder(this.value.set('id', value));\n }\n\n username(value: $PropertyType) {\n return new Builder(this.value.set('username', value));\n }\n\n fullName(value: $PropertyType) {\n return new Builder(this.value.set('fullName', value));\n }\n\n firstName(value: $PropertyType) {\n return new Builder(this.value.set('firstName', value));\n }\n\n lastName(value: $PropertyType) {\n return new Builder(this.value.set('lastName', value));\n }\n\n email(value: $PropertyType) {\n return new Builder(this.value.set('email', value));\n }\n\n grnPermissions(value: $PropertyType) {\n return new Builder(this.value.set('grnPermissions', value));\n }\n\n permissions(value: $PropertyType) {\n return new Builder(this.value.set('permissions', value));\n }\n\n timezone(value: $PropertyType) {\n return new Builder(this.value.set('timezone', value));\n }\n\n preferences(value: $PropertyType) {\n return new Builder(this.value.set('preferences', value));\n }\n\n roles(value: $PropertyType) {\n return new Builder(this.value.set('roles', value));\n }\n\n readOnly(value: $PropertyType) {\n return new Builder(this.value.set('readOnly', value));\n }\n\n external(value: $PropertyType) {\n return new Builder(this.value.set('external', value));\n }\n\n sessionTimeoutMs(value: $PropertyType) {\n return new Builder(this.value.set('sessionTimeoutMs', value));\n }\n\n startpage(value: $PropertyType) {\n return new Builder(this.value.set('startpage', value));\n }\n\n sessionActive(value: $PropertyType) {\n return new Builder(this.value.set('sessionActive', value));\n }\n\n clientAddress(value: $PropertyType) {\n return new Builder(this.value.set('clientAddress', value));\n }\n\n lastActivity(value: $PropertyType) {\n return new Builder(this.value.set('lastActivity', value));\n }\n\n accountStatus(value: $PropertyType) {\n return new Builder(this.value.set('accountStatus', value));\n }\n\n serviceAccount(value: $PropertyType) {\n return new Builder(this.value.set('serviceAccount', value));\n }\n\n authServiceEnabled(value: $PropertyType) {\n return new Builder(this.value.set('authServiceEnabled', value));\n }\n\n build() {\n const {\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n grnPermissions,\n authServiceEnabled,\n } = this.value.toObject();\n\n return new User(\n id,\n username,\n fullName,\n firstName,\n lastName,\n email,\n permissions,\n timezone,\n preferences,\n roles,\n readOnly,\n external,\n sessionTimeoutMs,\n startpage,\n sessionActive,\n clientAddress,\n lastActivity,\n accountStatus,\n serviceAccount,\n grnPermissions,\n authServiceEnabled,\n );\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { $PropertyType } from 'utility-types';\nimport * as Immutable from 'immutable';\n\nexport type AccountStatus = 'enabled' | 'disabled' | 'deleted';\n\nexport type UserOverviewJSON = {\n id: string;\n username: string;\n full_name: string;\n email: string;\n external_user: boolean | null | undefined;\n roles: Array;\n read_only: boolean | null | undefined;\n session_active: boolean | null | undefined;\n client_address: string;\n last_activity: string | null | undefined;\n enabled: boolean;\n auth_service_id: string;\n auth_service_uid: string;\n auth_service_enabled: boolean;\n account_status: AccountStatus;\n};\n\ntype InternalState = {\n id: string;\n username: string;\n fullName: string;\n email: string;\n roles: Immutable.Set;\n readOnly: boolean;\n external: boolean;\n sessionActive: boolean;\n clientAddress: string;\n lastActivity: string | null | undefined;\n enabled: boolean;\n authServiceId: string;\n authServiceUid: string;\n authServiceEnabled: boolean;\n accountStatus: AccountStatus;\n};\n\nexport default class UserOverview {\n _value: InternalState;\n\n constructor(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n email: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n enabled: $PropertyType,\n authServiceId: $PropertyType,\n authServiceUid: $PropertyType,\n authServiceEnabled: $PropertyType,\n accountStatus: $PropertyType,\n ) {\n this._value = {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n };\n }\n\n get id() {\n return this._value.id;\n }\n\n get username() {\n return this._value.username;\n }\n\n get name() {\n return this._value.username;\n }\n\n get fullName() {\n return this._value.fullName;\n }\n\n get description() {\n return this._value.fullName;\n }\n\n get email() {\n return this._value.email;\n }\n\n get roles() {\n return this._value.roles;\n }\n\n get readOnly() {\n return this._value.readOnly;\n }\n\n get external() {\n return this._value.external;\n }\n\n get sessionActive() {\n return this._value.sessionActive;\n }\n\n get clientAddress() {\n return this._value.clientAddress;\n }\n\n get lastActivity() {\n return this._value.lastActivity;\n }\n\n get enabled() {\n return this._value.enabled;\n }\n\n get authServiceId() {\n return this._value.authServiceId;\n }\n\n get authServiceUid() {\n return this._value.authServiceUid;\n }\n\n get authServiceEnabled() {\n return this._value.authServiceEnabled;\n }\n\n get accountStatus() {\n return this._value.accountStatus;\n }\n\n toBuilder() {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this._value;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder(Immutable.Map({\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n }));\n }\n\n static create(\n id: $PropertyType,\n username: $PropertyType,\n fullName: $PropertyType,\n email: $PropertyType,\n roles: $PropertyType,\n readOnly: $PropertyType,\n external: $PropertyType,\n sessionActive: $PropertyType,\n clientAddress: $PropertyType,\n lastActivity: $PropertyType,\n enabled: $PropertyType,\n authServiceId: $PropertyType,\n authServiceUid: $PropertyType,\n authServiceEnabled: $PropertyType,\n accountStatus: $PropertyType,\n ) {\n return new UserOverview(\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n );\n }\n\n toJSON(): UserOverviewJSON {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this._value;\n\n return {\n id,\n username,\n full_name: fullName,\n email,\n roles: roles.toArray(),\n read_only: readOnly,\n external_user: external,\n session_active: sessionActive,\n client_address: clientAddress,\n last_activity: lastActivity,\n enabled,\n auth_service_id: authServiceId,\n auth_service_uid: authServiceUid,\n auth_service_enabled: authServiceEnabled,\n account_status: accountStatus,\n };\n }\n\n static fromJSON(value: UserOverviewJSON) {\n const {\n id,\n username,\n full_name: fullName,\n email,\n roles,\n read_only: readOnly,\n external_user: external,\n session_active: sessionActive,\n client_address: clientAddress,\n last_activity: lastActivity,\n enabled,\n auth_service_id: authServiceId,\n auth_service_uid: authServiceUid,\n auth_service_enabled: authServiceEnabled,\n account_status: accountStatus,\n } = value;\n\n return UserOverview.create(id,\n username,\n fullName,\n email,\n Immutable.Set(roles),\n readOnly ?? false,\n external ?? false,\n sessionActive ?? false,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus);\n }\n\n static builder(): Builder {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new Builder();\n }\n}\n\ntype BuilderState = Immutable.Map;\n\nclass Builder {\n value: BuilderState;\n\n constructor(value: BuilderState = Immutable.Map()) {\n this.value = value;\n }\n\n id(value: $PropertyType) {\n return new Builder(this.value.set('id', value));\n }\n\n username(value: $PropertyType) {\n return new Builder(this.value.set('username', value));\n }\n\n fullName(value: $PropertyType) {\n return new Builder(this.value.set('fullName', value));\n }\n\n email(value: $PropertyType) {\n return new Builder(this.value.set('email', value));\n }\n\n roles(value: $PropertyType) {\n return new Builder(this.value.set('roles', value));\n }\n\n readOnly(value: $PropertyType) {\n return new Builder(this.value.set('readOnly', value));\n }\n\n external(value: $PropertyType) {\n return new Builder(this.value.set('external', value));\n }\n\n sessionActive(value: $PropertyType) {\n return new Builder(this.value.set('sessionActive', value));\n }\n\n clientAddress(value: $PropertyType) {\n return new Builder(this.value.set('clientAddress', value));\n }\n\n lastActivity(value: $PropertyType) {\n return new Builder(this.value.set('lastActivity', value));\n }\n\n enabled(value: $PropertyType) {\n return new Builder(this.value.set('enabled', value));\n }\n\n authServiceId(value: $PropertyType) {\n return new Builder(this.value.set('authServiceId', value));\n }\n\n authServiceUid(value: $PropertyType) {\n return new Builder(this.value.set('authServiceUid', value));\n }\n\n authServiceEnabled(value: $PropertyType) {\n return new Builder(this.value.set('authServiceEnabled', value));\n }\n\n accountStatus(value: $PropertyType) {\n return new Builder(this.value.set('accountStatus', value));\n }\n\n build() {\n const {\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n } = this.value.toObject();\n\n return new UserOverview(\n id,\n username,\n fullName,\n email,\n roles,\n readOnly,\n external,\n sessionActive,\n clientAddress,\n lastActivity,\n enabled,\n authServiceId,\n authServiceUid,\n authServiceEnabled,\n accountStatus,\n );\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ErrorPage from 'components/errors/ErrorPage';\n\ntype Props = {\n displayPageLayout?: boolean,\n}\n\nconst NotFoundPage = ({ displayPageLayout }: Props) => {\n const description = (\n <>\n

    The party gorilla was just here, but had another party to rock.

    \n

    Oh, party gorilla! How we miss you! Will we ever see you again?

    \n \n );\n\n return ();\n};\n\nNotFoundPage.propTypes = {\n displayPageLayout: PropTypes.bool,\n};\n\nNotFoundPage.defaultProps = {\n displayPageLayout: true,\n};\n\nexport default NotFoundPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport AppConfig from 'util/AppConfig';\nimport { Icon } from 'components/common';\nimport { Button } from 'components/bootstrap';\nimport ErrorPage from 'components/errors/ErrorPage';\nimport SupportSources from 'components/support/SupportSources';\nimport ClipboardButton from 'components/common/ClipboardButton';\n\nconst ToggleDetails = styled.div`\n font-weight: normal;\n`;\n\nconst description = (\n <>\n

    It seems like the page you navigated to contained an error.

    \n

    You can use the navigation to reach other parts of the product, refresh the page or submit an error report.

    \n \n);\n\ntype Props = {\n error: Error,\n componentStack: string,\n}\n\nconst RuntimeErrorPage = ({ error, componentStack }: Props) => {\n const [showDetails, setShowDetails] = useState(AppConfig.gl2DevMode());\n const errorDetails = `\\n\\nStack Trace:\\n\\n${error.stack}\\n\\nComponent Stack:\\n${componentStack}`;\n\n const _toggleDetails = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setShowDetails((cur) => !cur);\n }, []);\n\n return (\n \n
    \n \n
    \n
    \n
    \n Error:\n \n \n \n
    \n
    \n
    \n            
    \n }\n bsSize=\"sm\"\n text={`${error.message}\\n${errorDetails}`}\n buttonTitle=\"Copy error details to clipboard\" />\n
    \n {error.message}\n {showDetails && errorDetails}\n
    \n
    \n
    \n
    \n );\n};\n\nRuntimeErrorPage.propTypes = {\n error: PropTypes.shape({\n message: PropTypes.string.isRequired,\n stack: PropTypes.string,\n }).isRequired,\n componentStack: PropTypes.string.isRequired,\n};\n\nexport default RuntimeErrorPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type FetchError from 'logic/errors/FetchError';\n\nimport UnauthorizedErrorPage from './UnauthorizedErrorPage';\n\ntype Props = {\n error: FetchError | undefined | null,\n missingStreamIds: string[],\n};\n\nconst StreamPermissionErrorPage = ({ error, missingStreamIds = [] }: Props) => {\n const description = (\n <>\n

    This resource includes streams you do not have permissions for.

    \n

    Please contact your administrator and provide the error details which include a list of streams you need access to.

    \n \n );\n const streamIds = missingStreamIds.length > 0\n ? missingStreamIds\n : error?.additional?.body?.streams;\n const errorDetails = streamIds?.length > 0 ? `You need permissions for streams with the id: ${streamIds.join(', ')}.` : undefined;\n\n return (\n \n );\n};\n\nStreamPermissionErrorPage.propTypes = {\n error: PropTypes.shape({\n message: PropTypes.string.isRequired,\n additional: PropTypes.shape({\n body: PropTypes.shape({\n streams: PropTypes.arrayOf(PropTypes.string),\n }),\n }),\n }).isRequired,\n missingStreamIds: PropTypes.arrayOf(PropTypes.string),\n};\n\nStreamPermissionErrorPage.defaultProps = {\n missingStreamIds: [],\n};\n\nexport default StreamPermissionErrorPage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type FetchError from 'logic/errors/FetchError';\nimport { Icon, ClipboardButton } from 'components/common';\nimport ErrorPage from 'components/errors/ErrorPage';\nimport withLocation from 'routing/withLocation';\nimport type { Location } from 'routing/withLocation';\n\nconst createErrorMessageString = (errorDetails: string | null | undefined, pageDetails: string, errorMessage: string) => {\n const defaultText = `${pageDetails}\\n${errorMessage}`;\n\n if (errorDetails) {\n return `${errorDetails}\\n${defaultText}`;\n }\n\n return defaultText;\n};\n\ntype Props = {\n description?: React.ReactNode,\n error: FetchError,\n errorDetails?: string,\n location: Location,\n title?: string,\n};\n\nconst UnauthorizedErrorPage = ({ error, errorDetails, title, description, location: { pathname } }: Props) => {\n const errorMessage = error?.message ?? JSON.stringify(error);\n const pageDetails = `The permissions check for the following request failed,\\nwhile trying to access ${pathname}.`;\n const defaultDescription = (\n <>\n

    You do not have the required permissions to view this resource.

    \n

    Please contact your administrator and provide the error details.

    \n \n );\n const errorMessageString = createErrorMessageString(errorDetails, pageDetails, errorMessage);\n\n return (\n \n
    \n
    \n
    \n            
    \n }\n bsSize=\"sm\"\n text={errorMessageString}\n buttonTitle=\"Copy error details to clipboard\" />\n
    \n {errorDetails && (\n

    \n {errorDetails}\n

    \n )}\n

    \n {pageDetails}\n

    \n

    \n {errorMessage}\n

    \n
    \n
    \n
    \n
    \n );\n};\n\nUnauthorizedErrorPage.propTypes = {\n description: PropTypes.element,\n errorDetails: PropTypes.string,\n title: PropTypes.string,\n};\n\nUnauthorizedErrorPage.defaultProps = {\n description: undefined,\n errorDetails: undefined,\n title: 'Missing Permissions',\n};\n\nexport default withLocation(UnauthorizedErrorPage);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { notifications } from '@mantine/notifications';\n\nconst UserNotification = {\n error(message: string, title = 'Error') {\n notifications.show({\n message,\n title,\n autoClose: 10000,\n color: 'red',\n });\n },\n warning(message: string, title = 'Attention') {\n notifications.show({\n message,\n title,\n });\n },\n success(message: string, title = 'Success') {\n notifications.show({\n message,\n title,\n color: 'green',\n });\n },\n};\n\nexport default UserNotification;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Qs from 'qs';\n\nimport type { TimeRange } from 'views/logic/queries/Query';\n\ntype SearchQueryString = {\n query: string,\n limit?: number,\n offset?: number,\n sort?: `${string}:${'asc' | 'desc'}`,\n decorate?: boolean,\n fields?: string,\n filter?: string,\n} & Partial;\n\nconst ApiRoutes = {\n AlarmCallbacksApiController: {\n available: () => ({ url: '/alerts/callbacks/types' }),\n create: (streamId: string) => ({ url: `/streams/${streamId}/alarmcallbacks` }),\n delete: (streamId: string, alarmCallbackId: string) => ({ url: `/streams/${streamId}/alarmcallbacks/${alarmCallbackId}` }),\n listAll: () => ({ url: '/alerts/callbacks' }),\n list: (streamId: string) => ({ url: `/streams/${streamId}/alarmcallbacks` }),\n testAlert: (alarmCallbackId: string) => ({ url: `/alerts/callbacks/${alarmCallbackId}/test` }),\n update: (streamId: string, alarmCallbackId: string) => ({ url: `/streams/${streamId}/alarmcallbacks/${alarmCallbackId}` }),\n },\n AlarmCallbackHistoryApiController: {\n list: (streamId: string, alertId: string) => ({ url: `/streams/${streamId}/alerts/${alertId}/history` }),\n },\n AuthenticationController: {\n create: () => ({ url: '/system/authentication/services/backends' }),\n delete: (backendId: string) => ({ url: `/system/authentication/services/backends/${backendId}` }),\n disableUser: (userId: string) => ({ url: `/system/authentication/users/${userId}/disable` }),\n enableUser: (userId: string) => ({ url: `/system/authentication/users/${userId}/enable` }),\n load: (serviceId: string) => ({ url: `/system/authentication/services/backends/${serviceId}` }),\n loadActive: () => ({ url: '/system/authentication/services/active-backend' }),\n loadUsersPaginated: (authBackendId: string) => ({ url: `/system/authentication/services/backends/${authBackendId}/users` }),\n loadActiveBackendType: () => ({ url: '/system/authentication/services/backends/active-backend/type' }),\n servicesPaginated: () => ({ url: '/system/authentication/services/backends' }),\n testConnection: () => ({ url: '/system/authentication/services/test/backend/connection' }),\n testLogin: () => ({ url: '/system/authentication/services/test/backend/login' }),\n update: (serviceId: string) => ({ url: `/system/authentication/services/backends/${serviceId}` }),\n updateConfiguration: () => ({ url: '/system/authentication/services/configuration' }),\n },\n AuthzRolesController: {\n load: (roleId: string) => ({ url: `/authz/roles/${roleId}` }),\n delete: (roleId: string) => ({ url: `/authz/roles/${roleId}` }),\n list: () => ({ url: '/authz/roles' }),\n removeMember: (roleId: string, username: string) => ({ url: `/authz/roles/${roleId}/assignee/${username}` }),\n addMembers: (roleId: string) => ({ url: `/authz/roles/${roleId}/assignees` }),\n loadRolesForUser: (username: string) => ({ url: `/authz/roles/user/${username}` }),\n loadUsersForRole: (roleId: string) => ({ url: `/authz/roles/${roleId}/assignees` }),\n },\n CatalogsController: {\n showEntityIndex: () => ({ url: '/system/catalog' }),\n queryEntities: () => ({ url: '/system/catalog' }),\n },\n CodecTypesController: {\n list: () => ({ url: '/system/codecs/types/all' }),\n },\n ContentPacksController: {\n list: () => ({ url: '/system/content_packs/latest' }),\n get: (contentPackId: string) => ({ url: `/system/content_packs/${contentPackId}` }),\n getRev: (contentPackId: string, revision: string) => ({ url: `/system/content_packs/${contentPackId}/${revision}` }),\n downloadRev: (contentPackId: string, revision: number) => ({ url: `/system/content_packs/${contentPackId}/${revision}/download` }),\n create: () => ({ url: '/system/content_packs' }),\n delete: (contentPackId: string) => ({ url: `/system/content_packs/${contentPackId}` }),\n deleteRev: (contentPackId: string, revision: string) => ({ url: `/system/content_packs/${contentPackId}/${revision}` }),\n install: (contentPackId: string, revision: string) => ({ url: `/system/content_packs/${contentPackId}/${revision}/installations` }),\n installList: (contentPackId: string) => ({ url: `/system/content_packs/${contentPackId}/installations` }),\n uninstall: (contentPackId: string, installId: string) => ({ url: `/system/content_packs/${contentPackId}/installations/${installId}` }),\n uninstallDetails: (contentPackId: string, installId: string) => ({ url: `/system/content_packs/${contentPackId}/installations/${installId}/uninstall_details` }),\n },\n CountsApiController: {\n total: () => ({ url: '/count/total' }),\n indexSetTotal: (indexSetId: string) => ({ url: `/count/${indexSetId}/total` }),\n },\n ClusterApiResource: {\n list: () => ({ url: '/system/cluster/nodes' }),\n node: () => ({ url: '/system/cluster/node' }),\n elasticsearchStats: () => ({ url: '/system/cluster/stats/elasticsearch' }),\n },\n ClusterConfigResource: {\n config: () => ({ url: '/system/cluster_config' }),\n },\n GrokPatternsController: {\n test: () => ({ url: '/system/grok/test' }),\n paginated: () => ({ url: '/system/grok/paginated' }),\n },\n DashboardsApiController: {\n create: () => ({ url: '/dashboards' }),\n index: () => ({ url: '/dashboards' }),\n get: (id) => ({ url: `/dashboards/${id}` }),\n delete: (id) => ({ url: `/dashboards/${id}` }),\n update: (id) => ({ url: `/dashboards/${id}` }),\n addWidget: (id) => ({ url: `/dashboards/${id}/widgets` }),\n removeWidget: (dashboardId: string, widgetId: string) => ({ url: `/dashboards/${dashboardId}/widgets/${widgetId}` }),\n widget: (dashboardId: string, widgetId: string) => ({ url: `/dashboards/${dashboardId}/widgets/${widgetId}` }),\n updateWidget: (dashboardId: string, widgetId: string) => ({ url: `/dashboards/${dashboardId}/widgets/${widgetId}` }),\n widgetValue: (dashboardId: string, widgetId: string) => ({ url: `/dashboards/${dashboardId}/widgets/${widgetId}/value` }),\n updatePositions: (dashboardId: string) => ({ url: `/dashboards/${dashboardId}/positions` }),\n },\n DecoratorsResource: {\n available: () => ({ url: '/search/decorators/available' }),\n create: () => ({ url: '/search/decorators' }),\n get: () => ({ url: '/search/decorators' }),\n remove: (decoratorId: string) => ({ url: `/search/decorators/${decoratorId}` }),\n update: (decoratorId: string) => ({ url: `/search/decorators/${decoratorId}` }),\n },\n DeflectorApiController: {\n cycle: (indexSetId: string) => ({ url: `/cluster/deflector/${indexSetId}/cycle` }),\n list: (indexSetId: string) => ({ url: `/system/deflector/${indexSetId}` }),\n },\n EntityScopeController: {\n getScope: () => ({ url: '/entity_scopes' }),\n },\n EntityShareController: {\n prepare: (entityGRN: string) => ({ url: `/authz/shares/entities/${entityGRN}/prepare` }),\n update: (entityGRN: string) => ({ url: `/authz/shares/entities/${entityGRN}` }),\n userSharesPaginated: (username: string) => ({ url: `/authz/shares/user/${username}` }),\n entityScopes: () => ({ url: '/entity_scopes' }),\n },\n EventDefinitionsApiController: {\n list: () => ({ url: '/events/definitions' }),\n paginated: () => ({ url: '/events/definitions/paginated' }),\n get: (definitionId: string) => ({ url: `/events/definitions/${definitionId}` }),\n create: () => ({ url: '/events/definitions' }),\n bulkDelete: () => ({ url: '/events/definitions/bulk_delete' }),\n bulkSchedule: () => ({ url: '/events/definitions/bulk_schedule' }),\n bulkUnschedule: () => ({ url: '/events/definitions/bulk_unschedule' }),\n update: (definitionId: string) => ({ url: `/events/definitions/${definitionId}` }),\n delete: (definitionId: string) => ({ url: `/events/definitions/${definitionId}` }),\n },\n EventNotificationsApiController: {\n list: () => ({ url: '/events/notifications' }),\n paginated: () => ({ url: '/events/notifications/paginated' }),\n get: (definitionId: string) => ({ url: `/events/notifications/${definitionId}` }),\n create: () => ({ url: '/events/notifications' }),\n bulkDelete: () => ({ url: '/events/notifications/bulk_delete' }),\n bulkSchedule: () => ({ url: '/events/notifications/bulk_schedule' }),\n bulkUnschedule: () => ({ url: '/events/notifications/bulk_unschedule' }),\n update: (definitionId: string) => ({ url: `/events/notifications/${definitionId}` }),\n delete: (definitionId: string) => ({ url: `/events/notifications/${definitionId}` }),\n },\n HTTPHeaderAuthConfigController: {\n load: () => ({ url: '/system/authentication/http-header-auth-config' }),\n update: () => ({ url: '/system/authentication/http-header-auth-config' }),\n },\n IndexerClusterApiController: {\n health: () => ({ url: '/system/indexer/cluster/health' }),\n name: () => ({ url: '/system/indexer/cluster/name' }),\n },\n IndexerFailuresApiController: {\n count: (since: number) => ({ url: `/system/indexer/failures/count?since=${since}` }),\n list: (limit: number, offset: number) => ({ url: `/system/indexer/failures?limit=${limit}&offset=${offset}` }),\n },\n IndexerOverviewApiResource: {\n list: (indexSetId: string) => ({ url: `/system/indexer/overview/${indexSetId}` }),\n },\n IndexRangesApiController: {\n list: () => ({ url: '/system/indices/ranges' }),\n rebuild: (indexSetId: string) => ({ url: `/system/indices/ranges/index_set/${indexSetId}/rebuild` }),\n rebuildSingle: (index: string) => ({ url: `/system/indices/ranges/${index}/rebuild` }),\n },\n IndexSetsApiController: {\n list: (stats) => ({ url: `/system/indices/index_sets?stats=${stats}` }),\n listPaginated: (skip, limit, stats) => ({ url: `/system/indices/index_sets?skip=${skip}&limit=${limit}&stats=${stats}` }),\n get: (indexSetId: string) => ({ url: `/system/indices/index_sets/${indexSetId}` }),\n create: () => ({ url: '/system/indices/index_sets' }),\n delete: (indexSetId: string, deleteIndices) => ({ url: `/system/indices/index_sets/${indexSetId}?delete_indices=${deleteIndices}` }),\n searchPaginated: (searchTerm, skip, limit, stats) => ({ url: `/system/indices/index_sets/search?searchTitle=${searchTerm}&skip=${skip}&limit=${limit}&stats=${stats}` }),\n setDefault: (indexSetId: string) => ({ url: `/system/indices/index_sets/${indexSetId}/default` }),\n stats: () => ({ url: '/system/indices/index_sets/stats' }),\n },\n IndicesApiController: {\n close: (indexName: string) => ({ url: `/system/indexer/indices/${indexName}/close` }),\n delete: (indexName: string) => ({ url: `/system/indexer/indices/${indexName}` }),\n list: (indexSetId: string) => ({ url: `/system/indexer/indices/${indexSetId}/list` }),\n listAll: () => ({ url: '/system/indexer/indices' }),\n listClosed: (indexSetId: string) => ({ url: `/system/indexer/indices/${indexSetId}/closed` }),\n multiple: () => ({ url: '/system/indexer/indices/multiple' }),\n reopen: (indexName: string) => ({ url: `/system/indexer/indices/${indexName}/reopen` }),\n },\n InputsApiController: {\n list: () => ({ url: '/system/inputs' }),\n get: (id: string) => ({ url: `/system/inputs/${id}` }),\n globalRecentMessage: (inputId: string) => ({ url: `/${inputId}` }),\n },\n InputStatesController: {\n start: (inputId: string) => ({ url: `/system/inputstates/${inputId}` }),\n stop: (inputId: string) => ({ url: `/system/inputstates/${inputId}` }),\n },\n ClusterInputStatesController: {\n list: () => ({ url: '/cluster/inputstates' }),\n start: (inputId: string) => ({ url: `/cluster/inputstates/${inputId}` }),\n stop: (inputId: string) => ({ url: `/cluster/inputstates/${inputId}` }),\n },\n ClusterLoggersResource: {\n loggers: () => ({ url: '/cluster/system/loggers' }),\n subsystems: () => ({ url: '/cluster/system/loggers/subsystems' }),\n setSubsystemLoggerLevel: (nodeId: string, subsystem: string, loglevel: string) => ({ url: `/cluster/system/loggers/${nodeId}/subsystems/${subsystem}/level/${loglevel}` }),\n },\n ClusterSupportBundleController: {\n delete: (filename: string) => ({ url: `/cluster/debug/support/bundle/${filename}` }),\n download: (filename: string) => ({ url: `/cluster/debug/support/bundle/download/${filename}` }),\n list: () => ({ url: '/cluster/debug/support/bundle/list' }),\n create: () => ({ url: '/cluster/debug/support/bundle/build' }),\n },\n MessageFieldsApiController: {\n list: () => ({ url: '/system/fields' }),\n types: () => ({ url: 'views/fields' }),\n },\n MetricsApiController: {\n multiple: () => ({ url: '/system/metrics/multiple' }),\n byNamespace: (namespace: string) => ({ url: `/system/metrics/namespace/${namespace}` }),\n },\n ClusterMetricsApiController: {\n multiple: (nodeId: string) => ({ url: `/cluster/${nodeId}/metrics/multiple` }),\n multipleAllNodes: () => ({ url: '/cluster/metrics/multiple' }),\n byNamespace: (nodeId: string, namespace: string) => ({ url: `/cluster/${nodeId}/metrics/namespace/${namespace}` }),\n },\n NotificationsApiController: {\n delete: (type: string) => ({ url: `/system/notifications/${type}` }),\n deleteWithKey: (type: string, key: string) => ({ url: `/system/notifications/${type}/${key}` }),\n list: () => ({ url: '/system/notifications' }),\n getHtmlMessage: (type: string) => ({ url: `/system/notification/message/html/${type.toLocaleUpperCase()}` }),\n getHtmlMessageWithKey: (type: string, key: string) => ({ url: `/system/notification/message/html/${type.toLocaleUpperCase()}/${key}` }),\n },\n OutputsApiController: {\n index: () => ({ url: '/system/outputs' }),\n create: () => ({ url: '/system/outputs' }),\n delete: (outputId: string) => ({ url: `/system/outputs/${outputId}` }),\n update: (outputId: string) => ({ url: `/system/outputs/${outputId}` }),\n availableType: (type: string) => ({ url: `/system/outputs/available/${type}` }),\n availableTypes: () => ({ url: '/system/outputs/available' }),\n },\n RolesApiController: {\n listRoles: () => ({ url: '/roles' }),\n createRole: () => ({ url: '/roles' }),\n updateRole: (rolename: string) => ({ url: `/roles/${rolename}` }),\n deleteRole: (rolename: string) => ({ url: `/roles/${rolename}` }),\n loadMembers: (rolename: string) => ({ url: `/roles/${rolename}/members` }),\n },\n SavedSearchesApiController: {\n create: () => ({ url: '/search/saved' }),\n delete: (savedSearchId: string) => ({ url: `/search/saved/${savedSearchId}` }),\n update: (savedSearchId: string) => ({ url: `/search/saved/${savedSearchId}` }),\n },\n SessionsApiController: {\n validate: () => ({ url: '/system/sessions' }),\n },\n StreamsApiController: {\n index: () => ({ url: '/streams' }),\n paginated: () => ({ url: '/streams/paginated' }),\n get: (streamId: string) => ({ url: `/streams/${streamId}` }),\n bulk_delete: () => ({ url: '/streams/bulk_delete' }),\n bulk_resume: () => ({ url: '/streams/bulk_resume' }),\n bulk_pause: () => ({ url: '/streams/bulk_pause' }),\n create: () => ({ url: '/streams' }),\n update: (streamId: string) => ({ url: `/streams/${streamId}` }),\n cloneStream: (streamId: string) => ({ url: `/streams/${streamId}/clone` }),\n delete: (streamId: string) => ({ url: `/streams/${streamId}` }),\n pause: (streamId: string) => ({ url: `/streams/${streamId}/pause` }),\n resume: (streamId: string) => ({ url: `/streams/${streamId}/resume` }),\n testMatch: (streamId: string) => ({ url: `/streams/${streamId}/testMatch` }),\n },\n StreamOutputsApiController: {\n add: (streamId: string) => ({ url: `/streams/${streamId}/outputs` }),\n index: (streamId: string) => ({ url: `/streams/${streamId}/outputs` }),\n delete: (streamId: string, outputId: string) => ({ url: `/streams/${streamId}/outputs/${outputId}` }),\n },\n StreamRulesApiController: {\n delete: (streamId: string, streamRuleId: string) => ({ url: `/streams/${streamId}/rules/${streamRuleId}` }),\n update: (streamId: string, streamRuleId: string) => ({ url: `/streams/${streamId}/rules/${streamRuleId}` }),\n create: (streamId: string) => ({ url: `/streams/${streamId}/rules` }),\n },\n SystemApiController: {\n info: () => ({ url: '/system' }),\n jvm: () => ({ url: '/system/jvm' }),\n fields: () => ({ url: '/system/fields' }),\n locales: () => ({ url: '/system/locales' }),\n },\n SystemJobsApiController: {\n list: () => ({ url: '/cluster/jobs' }),\n getJob: (jobId: string) => ({ url: `/cluster/jobs/${jobId}` }),\n acknowledgeJob: (jobId: string) => ({ url: `/system/jobs/acknowledge/${jobId}` }),\n cancelJob: (jobId: string) => ({ url: `/cluster/jobs/${jobId}` }),\n },\n SystemMessagesApiController: {\n all: (page: number) => ({ url: `/system/messages?page=${page}` }),\n },\n SystemSearchVersionApiController: {\n satisfiesVersion: (distribution: 'opensearch' | 'elasticsearch', version?: string) => ({ url: `/system/searchVersion/satisfiesVersion/${distribution}${version ? `?version=${version}` : ''}` }),\n },\n ToolsApiController: {\n grokTest: () => ({ url: '/tools/grok_tester' }),\n jsonTest: () => ({ url: '/tools/json_tester' }),\n naturalDateTest: (string, timezone) => ({ url: `/tools/natural_date_tester?string=${string}&timezone=${timezone}` }),\n regexTest: () => ({ url: '/tools/regex_tester' }),\n regexValidate: (regex: string) => ({ url: `/tools/regex_tester/validate?regex=${regex}` }),\n regexReplaceTest: () => ({ url: '/tools/regex_replace_tester' }),\n splitAndIndexTest: () => ({ url: '/tools/split_and_index_tester' }),\n substringTest: () => ({ url: '/tools/substring_tester' }),\n containsStringTest: () => ({ url: '/tools/contains_string_tester' }),\n lookupTableTest: () => ({ url: '/tools/lookup_table_tester' }),\n urlWhitelistCheck: () => ({ url: '/system/urlwhitelist/check' }),\n urlWhitelistGenerateRegex: () => ({ url: '/system/urlwhitelist/generate_regex' }),\n },\n TelemetryApiController: {\n info: () => ({ url: '/telemetry' }),\n setting: () => ({ url: '/telemetry/user/settings' }),\n },\n UniversalSearchApiController: {\n _streamFilter(streamId: string) {\n return (streamId ? { filter: `streams:${streamId}` } : {});\n },\n _buildBaseQueryString(query: string, timerange: TimeRange, streamId): SearchQueryString {\n const queryString: Partial = {};\n\n const streamFilter = this._streamFilter(streamId);\n\n queryString.query = query;\n\n Object.keys(timerange).forEach((key) => {\n queryString[key] = timerange[key];\n });\n\n Object.keys(streamFilter).forEach((key) => {\n queryString[key] = streamFilter[key];\n });\n\n return queryString as SearchQueryString;\n },\n _buildUrl(url: string, queryString: SearchQueryString) {\n return `${url}?${Qs.stringify(queryString)}`;\n },\n search(type: string, query: string, timerange: TimeRange, streamId: string, limit: number, offset: number, sortField: string, sortOrder: 'asc' | 'desc', decorate: boolean) {\n const url = `/search/universal/${type}`;\n const queryString = this._buildBaseQueryString(query, timerange, streamId);\n\n if (limit) {\n queryString.limit = limit;\n }\n\n if (offset) {\n queryString.offset = offset;\n }\n\n if (sortField && sortOrder) {\n queryString.sort = `${sortField}:${sortOrder}`;\n }\n\n if (decorate !== undefined) {\n queryString.decorate = decorate;\n }\n\n return { url: this._buildUrl(url, queryString) };\n },\n export(type: string, query: string, timerange: TimeRange, streamId: string, limit: number, offset: number, fields: Array) {\n const url = `/search/universal/${type}/export`;\n const queryString = this._buildBaseQueryString(query, timerange, streamId);\n\n if (limit) {\n queryString.limit = limit;\n }\n\n if (offset) {\n queryString.offset = offset;\n }\n\n if (fields) {\n queryString.fields = fields.join(',');\n }\n\n return { url: this._buildUrl(url, queryString) };\n },\n },\n UsersApiController: {\n changePassword: (userId: string) => ({ url: `/users/${userId}/password` }),\n create: () => ({ url: '/users' }),\n list: () => ({ url: '/users' }),\n paginated: () => ({ url: '/users/paginated' }),\n load: (userId: string) => ({ url: `/users/id/${userId}` }),\n loadByUsername: (username: string) => ({ url: `/users/${username}` }),\n delete: (id: string) => ({ url: `/users/id/${id}` }),\n update: (userId: string) => ({ url: `/users/${userId}` }),\n create_token: (userId: string, tokenName: string) => ({ url: `/users/${userId}/tokens/${tokenName}` }),\n delete_token: (userId: string, tokenName: string) => ({ url: `/users/${userId}/tokens/${tokenName}` }),\n list_tokens: (userId: string) => ({ url: `/users/${userId}/tokens` }),\n setStatus: (userId: string, accountStatus) => ({ url: `/users/${userId}/status/${accountStatus}` }),\n },\n DashboardsController: {\n show: (id) => ({ url: `/dashboards/${id}` }),\n },\n ExtractorsController: {\n create: (inputId: string) => ({ url: `/system/inputs/${inputId}/extractors` }),\n delete: (inputId: string, extractorId: string) => ({ url: `/system/inputs/${inputId}/extractors/${extractorId}` }),\n order: (inputId: string) => ({ url: `/system/inputs/${inputId}/extractors/order` }),\n update: (inputId: string, extractorId: string) => ({ url: `/system/inputs/${inputId}/extractors/${extractorId}` }),\n },\n MessagesController: {\n analyze: (index: string, string: string) => ({ url: `/messages/${index}/analyze?string=${string}` }),\n parse: () => ({ url: '/messages/parse' }),\n single: (index: string, messageId: string) => ({ url: `/messages/${index}/${messageId}` }),\n exportSearch: ((searchId: string) => ({ url: `/views/search/messages/${searchId}` })),\n exportSearchType: ((searchId: string, searchTypeId: string) => ({ url: `/views/search/messages/${searchId}/${searchTypeId}` })),\n jobResults: ((exportJobId: string, filename: string) => ({ url: `/views/search/messages/job/${exportJobId}/${filename}` })),\n },\n ExportJobsController: {\n exportSearch: ((searchId: string) => ({ url: `/views/export/${searchId}` })),\n exportSearchType: ((searchId: string, searchTypeId: string) => ({ url: `/views/export/${searchId}/${searchTypeId}` })),\n },\n MapDataController: {\n search: () => ({ url: '/search/mapdata' }),\n },\n PipelinesController: {\n list: () => ({ url: '/system/pipelines/pipeline' }),\n paginatedList: () => ({ url: '/system/pipelines/pipeline/paginated' }),\n create: () => ({ url: '/system/pipelines/pipeline' }),\n get: (pipelineId: string) => ({ url: `/system/pipelines/pipeline/${pipelineId}` }),\n update: (pipelineId: string) => ({ url: `/system/pipelines/pipeline/${pipelineId}` }),\n delete: (pipelineId: string) => ({ url: `/system/pipelines/pipeline/${pipelineId}` }),\n parse: () => ({ url: '/system/pipelines/pipeline/parse' }),\n },\n RulesController: {\n list: () => ({ url: '/system/pipelines/rule' }),\n paginatedList: () => ({ url: '/system/pipelines/rule/paginated' }),\n create: () => ({ url: '/system/pipelines/rule' }),\n get: (ruleId: string) => ({ url: `/system/pipelines/rule/${ruleId}` }),\n update: (ruleId: string) => ({ url: `/system/pipelines/rule/${ruleId}` }),\n delete: (ruleId: string) => ({ url: `/system/pipelines/rule/${ruleId}` }),\n multiple: () => ({ url: '/system/pipelines/rule/multiple' }),\n functions: () => ({ url: '/system/pipelines/rule/functions' }),\n parse: () => ({ url: '/system/pipelines/rule/parse' }),\n simulate: () => ({ url: '/system/pipelines/rule/simulate' }),\n metricsConfig: () => ({ url: '/system/pipelines/rule/config/metrics' }),\n },\n RuleBuilderController: {\n create: () => ({ url: '/system/pipelines/rulebuilder' }),\n update: (ruleId: string) => ({ url: `/system/pipelines/rulebuilder/${ruleId}` }),\n validate: () => ({ url: '/system/pipelines/rulebuilder/validate' }),\n simulate: () => ({ url: '/system/pipelines/rulebuilder/simulate' }),\n listConditionsDict: () => ({ url: '/system/pipelines/rulebuilder/conditions' }),\n listActionsDict: () => ({ url: '/system/pipelines/rulebuilder/actions' }),\n },\n ConnectionsController: {\n list: () => ({ url: '/system/pipelines/connections' }),\n to_stream: () => ({ url: '/system/pipelines/connections/to_stream' }),\n to_pipeline: () => ({ url: '/system/pipelines/connections/to_pipeline' }),\n },\n SimulatorController: {\n simulate: () => ({ url: '/system/pipelines/simulate' }),\n },\n ping: () => ({ url: '/' }),\n};\n\nexport default ApiRoutes;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { createContext, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Store from 'logic/local-storage/Store';\nimport useHotkey from 'hooks/useHotkey';\n\nexport const ScratchpadContext = createContext(undefined);\n\ntype Props = {\n children: React.ReactNode,\n loginName: string,\n}\n\nexport const ScratchpadProvider = ({ children, loginName }: Props) => {\n const localStorageItem = `gl-scratchpad-${loginName}`;\n const scratchpadStore = Store.get(localStorageItem) || {};\n const [isScratchpadVisible, setVisibility] = useState(scratchpadStore.opened || false);\n\n const scratchpadContextValue = useMemo(() => {\n const toggleScratchpadVisibility = () => {\n const currentStorage = Store.get(localStorageItem);\n\n Store.set(localStorageItem, { ...currentStorage, opened: !isScratchpadVisible });\n setVisibility(!isScratchpadVisible);\n };\n\n const setScratchpadVisibility = (opened: boolean) => {\n const currentStorage = Store.get(localStorageItem);\n\n Store.set(localStorageItem, { ...currentStorage, opened });\n setVisibility(opened);\n };\n\n return {\n isScratchpadVisible,\n localStorageItem,\n setScratchpadVisibility,\n toggleScratchpadVisibility,\n };\n }, [\n isScratchpadVisible,\n localStorageItem,\n ]);\n\n useHotkey({\n actionKey: 'show-scratchpad-modal',\n callback: () => {\n setVisibility(true);\n },\n scope: 'general',\n });\n\n return (\n \n {children}\n \n );\n};\n\nScratchpadProvider.propTypes = {\n children: PropTypes.node.isRequired,\n loginName: PropTypes.string.isRequired,\n};\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useContext, useState, useEffect, useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport chroma from 'chroma-js';\nimport debounce from 'lodash/debounce';\n\nimport { OverlayTrigger } from 'components/common';\nimport { Alert, Button, ButtonGroup, BootstrapModalConfirm } from 'components/bootstrap';\nimport { ScratchpadContext } from 'contexts/ScratchpadProvider';\nimport InteractableModal from 'components/common/InteractableModal';\nimport Icon from 'components/common/Icon';\nimport Store from 'logic/local-storage/Store';\nimport useHotkey from 'hooks/useHotkey';\nimport copyToClipboard from 'util/copyToClipboard';\n\nconst DEFAULT_SCRATCHDATA = '';\nconst TEXTAREA_ID = 'scratchpad-text-content';\nconst STATUS_CLEARED = 'Cleared.';\nconst STATUS_COPIED = 'Copied!';\nconst STATUS_AUTOSAVED = 'Auto saved.';\nconst STATUS_DEFAULT = '';\n\ntype Position = { x: number, y: number };\ntype ScratchpadSize = { width: string, height: string }\n\nconst ContentArea = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nconst Textarea = styled.textarea<{ $copied: boolean }>(({ $copied, theme }) => css`\n width: 100%;\n padding: 3px;\n resize: none;\n flex: 1;\n margin: 15px 0 7px;\n border: 1px solid ${$copied ? theme.colors.variant.success : theme.colors.variant.lighter.default};\n box-shadow: inset 1px 1px 1px rgb(0 0 0 / 7.5%)${$copied && `, 0 0 8px ${chroma(theme.colors.variant.success).alpha(0.4).css()}`};\n transition: border 150ms ease-in-out, box-shadow 150ms ease-in-out;\n font-family: ${theme.fonts.family.monospace};\n font-size: ${theme.fonts.size.body};\n\n &:focus {\n border-color: ${theme.colors.variant.light.info};\n outline: none;\n }\n`);\n\nconst StyledAlert = styled(Alert)`\n && {\n padding: 6px 12px;\n margin: 6px 0 0;\n display: flex;\n align-items: center;\n }\n`;\n\nconst AlertNote = styled.em`\n margin-left: 6px;\n flex: 1;\n`;\n\nconst Footer = styled.footer(({ theme }) => css`\n display: flex;\n align-items: center;\n padding: 7px 0 9px;\n border-top: 1px solid ${theme.colors.gray[80]};\n`);\n\nconst StatusMessage = styled.span<{ $visible: boolean }>(({ theme, $visible }) => css`\n flex: 1;\n color: ${theme.colors.variant.success};\n font-style: italic;\n opacity: ${$visible ? '1' : '0'};\n transition: opacity 150ms ease-in-out;\n`);\n\nconst Scratchpad = () => {\n const textareaRef = useRef();\n const statusTimeout = useRef>();\n const { setScratchpadVisibility, localStorageItem } = useContext(ScratchpadContext);\n const scratchpadStore = Store.get(localStorageItem) || {};\n const [isSecurityWarningConfirmed, setSecurityWarningConfirmed] = useState(scratchpadStore.securityConfirmed || false);\n const [scratchData, setScratchData] = useState(scratchpadStore.value || DEFAULT_SCRATCHDATA);\n const [size, setSize] = useState(scratchpadStore.size || undefined);\n const [position, setPosition] = useState(scratchpadStore.position || undefined);\n const [statusMessage, setStatusMessage] = useState(STATUS_DEFAULT);\n const [showStatusMessage, setShowStatusMessage] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n const writeData = (newData: Record) => {\n const currentStorage = Store.get(localStorageItem);\n\n Store.set(localStorageItem, { ...currentStorage, ...newData });\n };\n\n const resetStatusTimer = () => {\n if (statusTimeout.current) {\n clearTimeout(statusTimeout.current);\n }\n\n statusTimeout.current = setTimeout(() => {\n setShowStatusMessage(false);\n }, 1000);\n };\n\n const updateStatusMessage = (message: string) => {\n setStatusMessage(message);\n setShowStatusMessage(true);\n resetStatusTimer();\n };\n\n const handleChange = debounce(() => {\n const { value } = textareaRef.current;\n\n setScratchData(value);\n updateStatusMessage(STATUS_AUTOSAVED);\n writeData({ value });\n }, 500);\n\n const handleDrag = (newPosition: Position) => {\n setPosition(newPosition);\n writeData({ position: newPosition });\n };\n\n const handleSize = (newSize: ScratchpadSize) => {\n setSize(newSize);\n writeData({ size: newSize });\n };\n\n const handleGotIt = () => {\n setSecurityWarningConfirmed(true);\n writeData({ securityConfirmed: true });\n };\n\n const openConfirmClear = () => {\n setShowModal(true);\n };\n\n const handleCancelClear = () => {\n setShowModal(false);\n };\n\n const handleClearText = () => {\n setScratchData(DEFAULT_SCRATCHDATA);\n writeData({ value: DEFAULT_SCRATCHDATA });\n handleCancelClear();\n updateStatusMessage(STATUS_CLEARED);\n };\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.focus();\n textareaRef.current.value = scratchData;\n }\n }, [scratchData]);\n\n useHotkey({\n actionKey: 'clear',\n scope: 'scratchpad',\n callback: openConfirmClear,\n options: { enableOnFormTags: true, preventDefault: true },\n });\n\n const copyCallback = () => {\n copyToClipboard(scratchData).then(() => updateStatusMessage(STATUS_COPIED));\n };\n\n useHotkey({\n actionKey: 'copy',\n scope: 'scratchpad',\n callback: copyCallback,\n options: { enableOnFormTags: true },\n });\n\n return (\n setScratchpadVisibility(false)}\n onDrag={handleDrag}\n onResize={handleSize}\n size={size}\n position={position}>\n \n {!isSecurityWarningConfirmed && (\n \n \n We recommend you do not store any sensitive information, such as passwords, in\n this area.\n \n \n \n )}\n\n