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

web-interface.assets.6e61897c-10.472622149827c1587209.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
{"version":3,"sources":["webpack:///./src/components/messageloaders/useForwarderMessageLoaders.ts","webpack:///./src/components/search/MessageFieldDescription.jsx","webpack:///./src/components/search/MessageField.jsx","webpack:///./src/components/search/MessageFields.jsx","webpack:///./src/components/search/MessageDetail.jsx","webpack:///./src/components/search/MessageShow.jsx","webpack:///./src/components/search/MessageFieldExtractorActions.jsx","webpack:///./src/components/messageloaders/RawMessageLoader.tsx"],"names":["useForwarderMessageLoaders","PluginStore","exports","messageLoaders","ForwarderInputDropdown","undefined","MessageTerms","styled","span","theme","css","fonts","family","monospace","MessageFieldDescription","props","state","messageTerms","size","map","term","key","customFieldActions","fieldName","message","React","cloneElement","Immutable","List","this","renderForDisplay","className","MESSAGE_FIELD","FULL_MESSAGE_FIELD","_getFormattedFieldActions","_shouldShowTerms","bsStyle","onDismiss","setState","Map","_getFormattedTerms","Component","PropTypes","object","isRequired","string","func","node","SPECIAL_FIELDS","MessageField","value","innerValue","indexOf","fields","fieldValue","propTypes","any","defaultProps","MessageFields","Object","keys","sort","formattedFields","formatted_fields","_formatFields","MessageDetail","inputId","input","inputs","get","style","wordBreak","title","nodeId","nodeInformation","nodes","nodeURL","Routes","nodeContent","name","short_node_id","hostname","AppConfig","isCloud","href","bsSize","messageUrl","index","message_show","id","text","streamIds","Set","stream_ids","streams","stream","StreamLink","viaRadio","source_radio_id","_inputName","source_radio_input_id","_nodeName","rawTimestamp","timestamp","dateTime","receivedBy","source_input_id","source_node_id","messageTitle","to","md","_formatMessageActions","MessageDetailsTitle","MessageShow","StringUtils","stringify","_getImmutableProps","nextProps","showTimestamp","MessageFieldExtractorActions","newExtractorRoutes","ExtractorUtils","getNewExtractorRoutes","extractorType","getReadableExtractorTypeName","_refreshExtractorRoutes","pullRight","EXTRACTOR_TYPES","_formatExtractorMenuItem","disabled","MessagesActions","CombinedProvider","CodecTypesActions","CodecTypesStore","InputsActions","InputsStore","DEFAULT_REMOTE_ADDRESS","ServerInputSelect","selectedInputId","onInputSelect","label","help","aria-label","placeholder","options","formattedInputs","inputA","inputB","toLowerCase","localeCompare","forEach","push","_formatInputSelectOptions","matchProp","onChange","ForwarderInputSelect","onLoadMessage","autoLoadMessage","InputSelect","show","useState","selectedInputType","setSelectedInputType","type","e","target","RawMessageLoader","onMessageLoaded","inputIdSelector","codecTypes","loading","setLoading","setMessage","remoteAddress","setRemoteAddress","codec","setCodec","codecConfiguration","setCodecConfiguration","setInputId","useEffect","list","codecConfigurationOptions","_onCodecConfigurationChange","field","newConfiguration","_isSubmitDisabled","currentCodecConfiguration","requested_configuration","keyA","keyB","is_optional","configField","typeName","elementKey","_formatConfigField","onSubmit","event","preventDefault","promise","loadRawMessage","then","loadedMessage","getValueFromInput","rows","required","selectedInput","codecTypesIds","length","filter","codecA","codecB","_formatSelectOptions","selectedCodec","bool","connect","inputsAsMap"],"mappings":"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","file":"6e61897c-10.472622149827c1587209.js","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 */\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nconst useForwarderMessageLoaders = () => {\n  const messageLoaders = PluginStore.exports('forwarder')?.[0]?.messageLoaders;\n\n  return messageLoaders || { ForwarderInputDropdown: undefined };\n};\n\nexport default useForwarderMessageLoaders;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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 styled, { css } from 'styled-components';\n\nimport { Alert } from 'components/graylog';\nimport { FULL_MESSAGE_FIELD, MESSAGE_FIELD } from 'views/Constants';\n\nconst MessageTerms = styled.span(({ theme }) => css`\n  margin-right: 8px;\n  font-family: ${theme.fonts.family.monospace};\n`);\n\nclass MessageFieldDescription extends React.Component {\n  static propTypes = {\n    message: PropTypes.object.isRequired,\n    fieldName: PropTypes.string.isRequired,\n    renderForDisplay: PropTypes.func.isRequired,\n    customFieldActions: PropTypes.node,\n  };\n\n  static defaultProps = {\n    customFieldActions: undefined,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      messageTerms: Immutable.List(),\n    };\n  }\n\n  _shouldShowTerms = () => {\n    const { messageTerms } = this.state;\n\n    return messageTerms.size !== 0;\n  };\n\n  _getFormattedTerms = () => {\n    const { messageTerms } = this.state;\n\n    return messageTerms.map((term) => {term});\n  };\n\n  _getFormattedFieldActions = () => {\n    const { customFieldActions, fieldName, message } = this.props;\n\n    return customFieldActions ? React.cloneElement(customFieldActions, { fieldName, message }) : null;\n  };\n\n  render() {\n    const { fieldName, renderForDisplay } = this.props;\n    const className = fieldName === MESSAGE_FIELD || fieldName === FULL_MESSAGE_FIELD ? 'message-field' : '';\n\n    return (\n      
\n {this._getFormattedFieldActions()}\n
{renderForDisplay(fieldName)}
\n {this._shouldShowTerms()\n && (\n this.setState({ messageTerms: Immutable.Map() })}>\n Field terms:  {this._getFormattedTerms()}\n \n )}\n
\n );\n }\n}\n\nexport default MessageFieldDescription;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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 { MessageFieldDescription } from 'components/search';\nimport { FULL_MESSAGE_FIELD } from 'views/Constants';\n\nconst SPECIAL_FIELDS = [FULL_MESSAGE_FIELD, 'level'];\n\nconst MessageField = ({ message, value, fieldName, customFieldActions, renderForDisplay }) => {\n const innerValue = SPECIAL_FIELDS.indexOf(fieldName) !== -1 ? message.fields[fieldName] : value;\n\n return (\n \n
{fieldName}
\n \n
\n );\n};\n\nMessageField.propTypes = {\n customFieldActions: PropTypes.node,\n fieldName: PropTypes.string.isRequired,\n message: PropTypes.object.isRequired,\n renderForDisplay: PropTypes.func.isRequired,\n value: PropTypes.any.isRequired,\n};\n\nMessageField.defaultProps = {\n customFieldActions: undefined,\n};\n\nexport default MessageField;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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 { MessageField } from 'components/search';\nimport { MessageDetailsDefinitionList } from 'components/graylog';\n\nclass MessageFields extends React.Component {\n static propTypes = {\n customFieldActions: PropTypes.node,\n message: PropTypes.object.isRequired,\n renderForDisplay: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n customFieldActions: undefined,\n };\n\n _formatFields = (fields) => {\n return Object.keys(fields)\n .sort()\n .map((key) => {\n return (\n \n );\n });\n };\n\n render() {\n const { message } = this.props;\n const formattedFields = message.formatted_fields;\n const fields = this._formatFields(formattedFields);\n\n return (\n \n {fields}\n \n );\n }\n}\n\nexport default MessageFields;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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';\n\nimport { Link } from 'components/graylog/router';\nimport { Button, ButtonGroup, Col, Label, MessageDetailsDefinitionList, Row } from 'components/graylog';\nimport { ClipboardButton, Icon, Timestamp } from 'components/common';\nimport StreamLink from 'components/streams/StreamLink';\nimport MessageFields from 'components/search/MessageFields';\nimport MessageDetailsTitle from 'components/search/MessageDetailsTitle';\nimport Routes from 'routing/Routes';\nimport AppConfig from 'util/AppConfig';\n\nclass MessageDetail extends React.Component {\n static propTypes = {\n renderForDisplay: PropTypes.func.isRequired,\n inputs: PropTypes.object,\n nodes: PropTypes.object,\n message: PropTypes.object.isRequired,\n streams: PropTypes.object.isRequired,\n customFieldActions: PropTypes.node,\n };\n\n static defaultProps = {\n inputs: undefined,\n nodes: undefined,\n customFieldActions: undefined,\n };\n\n _inputName = (inputId) => {\n const { inputs } = this.props;\n const input = inputs.get(inputId);\n\n return input ? {input.title} : 'deleted input';\n };\n\n _nodeName = (nodeId) => {\n const { nodes } = this.props;\n const node = nodes.get(nodeId);\n let nodeInformation;\n\n if (node) {\n const nodeURL = Routes.node(nodeId);\n\n const nodeContent = (\n <>\n \n  \n {node.short_node_id} / \n {node.hostname}\n \n );\n\n nodeInformation = AppConfig.isCloud()\n ? nodeContent\n : {nodeContent};\n } else {\n nodeInformation = stopped node;\n }\n\n return nodeInformation;\n };\n\n _formatMessageActions = () => {\n const { message, customFieldActions } = this.props;\n\n if (!customFieldActions) {\n return ;\n }\n\n const messageUrl = message.index ? Routes.message_show(message.index, message.id) : '#';\n\n return (\n \n \n\n \n \n );\n };\n\n render() {\n const { renderForDisplay, nodes, message, customFieldActions } = this.props;\n const streamIds = Immutable.Set(message.stream_ids);\n const streams = streamIds.map((id) => {\n // eslint-disable-next-line react/destructuring-assignment\n const stream = this.props.streams.get(id);\n\n if (stream !== undefined) {\n return
  • ;\n }\n\n return null;\n });\n\n // Legacy\n const viaRadio = message.source_radio_id\n ? (\n \n via {this._inputName(message.source_radio_input_id)} on\n radio {this._nodeName(message.source_radio_id)}\n \n )\n : null;\n\n const rawTimestamp = message.fields.timestamp;\n const timestamp = [\n
    Timestamp
    ,\n
    ,\n ];\n\n const receivedBy = message.source_input_id && message.source_node_id && nodes\n ? (\n
    \n
    Received by
    \n
    \n {this._inputName(message.source_input_id)}{' '}\n on {this._nodeName(message.source_node_id)}\n {viaRadio &&
    }\n {viaRadio}\n
    \n
    \n )\n : null;\n\n const messageTitle = message.index\n ? (\n \n {message.id}\n \n )\n : {message.id} ;\n\n return (\n
    \n \n \n {this._formatMessageActions()}\n \n \n  \n {messageTitle}\n \n \n \n \n \n \n {timestamp}\n {receivedBy}\n\n
    Stored in index
    \n
    {message.index ? message.index : 'Message is not stored'}
    \n\n {streamIds.size > 0 &&
    Routed into streams
    }\n {streamIds.size > 0\n && (\n
    \n
      \n {streams}\n
    \n
    \n )}\n
    \n \n \n
    \n \n
    \n \n
    \n
    \n );\n }\n}\n\nexport default MessageDetail;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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';\n\nimport { Col, Row } from 'components/graylog';\nimport StringUtils from 'util/StringUtils';\n\nimport MessageDetail from './MessageDetail';\n\nclass MessageShow extends React.Component {\n static propTypes = {\n message: PropTypes.object.isRequired,\n inputs: PropTypes.object,\n streams: PropTypes.object.isRequired,\n nodes: PropTypes.object,\n };\n\n static defaultProps = {\n inputs: undefined,\n nodes: undefined,\n };\n\n constructor(props) {\n super(props);\n\n this.state = this._getImmutableProps(props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState(this._getImmutableProps(nextProps));\n }\n\n _getImmutableProps = (props) => {\n return {\n streams: props.streams ? Immutable.Map(props.streams) : props.streams,\n nodes: props.nodes ? Immutable.Map(props.nodes) : props.nodes,\n };\n };\n\n renderForDisplay = (fieldName) => {\n // No highlighting for the message details view.\n const { message } = this.props;\n\n return StringUtils.stringify(message.fields[fieldName]);\n };\n\n render() {\n const { inputs, message } = this.props;\n const { streams, nodes } = this.state;\n\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default MessageShow;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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 { LinkContainer } from 'components/graylog/router';\nimport { DropdownButton, MenuItem } from 'components/graylog';\nimport ExtractorUtils from 'util/ExtractorUtils';\n\nclass MessageFieldExtractorActions extends React.Component {\n static propTypes = {\n fieldName: PropTypes.string.isRequired,\n message: PropTypes.object.isRequired,\n };\n\n UNSAFE_componentWillMount() {\n this._refreshExtractorRoutes(this.props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this._refreshExtractorRoutes(nextProps);\n }\n\n _refreshExtractorRoutes = (props) => {\n this.newExtractorRoutes = ExtractorUtils.getNewExtractorRoutes(props.message.source_node_id,\n props.message.source_input_id, props.fieldName, props.message.index, props.message.id);\n };\n\n _formatExtractorMenuItem = (extractorType) => {\n return (\n \n \n {ExtractorUtils.getReadableExtractorTypeName(extractorType)}\n \n \n );\n };\n\n render() {\n const { fieldName, message } = this.props;\n const messageField = message.fields[fieldName];\n\n if (typeof messageField === 'string') {\n return (\n
    \n \n {ExtractorUtils.EXTRACTOR_TYPES.map((extractorType) => this._formatExtractorMenuItem(extractorType))}\n \n
    \n );\n }\n\n return (\n
    \n \n \n Extractors can only be used with string fields.\n \n \n
    \n );\n }\n}\n\nexport default MessageFieldExtractorActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\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, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as Immutable from 'immutable';\nimport { Subtract } from 'utility-types';\n\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { Col, Row, Button } from 'components/graylog';\nimport { Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport { BooleanField, DropdownField, NumberField, TextField } from 'components/configurationforms';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport connect from 'stores/connect';\nimport type { Message } from 'views/components/messagelist/Types';\nimport useForwarderMessageLoaders from 'components/messageloaders/useForwarderMessageLoaders';\nimport AppConfig from 'util/AppConfig';\n\nimport type { Input as InputType, CodecTypes } from './Types';\n\nconst { MessagesActions } = CombinedProvider.get('Messages');\nconst { CodecTypesActions, CodecTypesStore } = CombinedProvider.get('CodecTypes');\nconst { InputsActions, InputsStore } = CombinedProvider.get('Inputs');\nconst DEFAULT_REMOTE_ADDRESS = '127.0.0.1';\n\ntype InputSelectProps = {\n inputs: Immutable.Map,\n selectedInputId: string | undefined,\n onInputSelect: (selectedInputId: string) => void,\n show: boolean,\n};\n\nconst ServerInputSelect = ({ inputs, selectedInputId, onInputSelect }: Subtract) => {\n const _formatInputSelectOptions = () => {\n if (!inputs) {\n return [{ value: 'none', label: 'Loading inputs...', disabled: true }];\n }\n\n if (inputs.size === 0) {\n return [{ value: 'none', label: 'No inputs available' }];\n }\n\n const formattedInputs = [];\n\n inputs\n .sort((inputA, inputB) => inputA.title.toLowerCase().localeCompare(inputB.title.toLowerCase()))\n .forEach((input, id) => {\n const label = `${id} / ${input.title} / ${input.name}`;\n\n formattedInputs.push({ value: id, label: label });\n });\n\n return formattedInputs;\n };\n\n return (\n Message input (optional)}\n help=\"Select the message input ID that should be assigned to the parsed message.\">\n setSelectedInputType(e.target.value)}>\n \n \n \n \n\n {selectedInputType === 'server' && (\n \n )}\n {selectedInputType === 'forwarder' && (\n \n )}\n \n ) : (\n \n );\n};\n\ntype OptionsType = {\n message: string,\n remoteAddress: string,\n codec: string,\n codecConfiguration: {\n [key: string]: string,\n },\n inputId?: string,\n};\n\ntype Props = {\n inputs?: Immutable.Map,\n codecTypes: CodecTypes,\n onMessageLoaded: (message: Message | undefined, option: OptionsType) => void,\n inputIdSelector?: boolean,\n};\n\nconst RawMessageLoader = ({ onMessageLoaded, inputIdSelector, codecTypes, inputs }: Props) => {\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState('');\n const [remoteAddress, setRemoteAddress] = useState(DEFAULT_REMOTE_ADDRESS);\n const [codec, setCodec] = useState('');\n const [codecConfiguration, setCodecConfiguration] = useState({});\n const [inputId, setInputId] = useState();\n\n useEffect(() => {\n CodecTypesActions.list();\n }, []);\n\n useEffect(() => {\n if (inputIdSelector) {\n InputsActions.list();\n }\n }, [inputIdSelector]);\n\n const _loadMessage = (event: React.SyntheticEvent) => {\n event.preventDefault();\n\n setLoading(true);\n const promise = MessagesActions.loadRawMessage(message, remoteAddress,\n codec, codecConfiguration);\n\n promise.then((loadedMessage) => {\n onMessageLoaded(\n loadedMessage,\n {\n message: message,\n remoteAddress: remoteAddress,\n codec: codec,\n codecConfiguration: codecConfiguration,\n inputId: inputId,\n },\n );\n });\n\n promise.finally(() => setLoading(false));\n };\n\n const _formatSelectOptions = () => {\n if (!codecTypes) {\n return [{ value: 'none', label: 'Loading codec types...', disabled: true }];\n }\n\n const codecTypesIds = Object.keys(codecTypes);\n\n if (codecTypesIds.length === 0) {\n return [{ value: 'none', label: 'No codecs available' }];\n }\n\n return codecTypesIds\n .filter((id) => id !== 'random-http-msg') // Skip Random HTTP codec, as nobody wants to enter a raw random message.\n .map((id) => {\n const { name } = codecTypes[id];\n\n // Add id as label on codecs not having a descriptor name\n return { value: id, label: name === '' ? id : name };\n })\n .sort((codecA, codecB) => codecA.label.toLowerCase().localeCompare(codecB.label.toLowerCase()));\n };\n\n const _onCodecSelect = (selectedCodec: string) => {\n setCodec(selectedCodec);\n setCodecConfiguration({});\n };\n\n const _onInputSelect = (selectedInput: string) => {\n setInputId(selectedInput);\n };\n\n const _onMessageChange = (event: React.SyntheticEvent) => {\n setMessage(getValueFromInput(event.target));\n };\n\n const _onRemoteAddressChange = (event: React.SyntheticEvent) => {\n setRemoteAddress(getValueFromInput(event.target));\n };\n\n const _onCodecConfigurationChange = (field: string, value: string) => {\n const newConfiguration = { ...codecConfiguration, [field]: value };\n setCodecConfiguration(newConfiguration);\n };\n\n const _formatConfigField = (key: string, configField) => {\n const value = codecConfiguration[key];\n const typeName = 'RawMessageLoader';\n const elementKey = `${typeName}-${key}`;\n\n switch (configField.type) {\n case 'text':\n return (\n \n );\n case 'number':\n return (\n \n );\n case 'boolean':\n return (\n \n );\n case 'dropdown':\n return (\n \n );\n default:\n return null;\n }\n };\n\n const _isSubmitDisabled = !message || !codec || loading;\n\n let codecConfigurationOptions;\n\n if (codecTypes && codec) {\n const currentCodecConfiguration = codecTypes[codec].requested_configuration;\n\n codecConfigurationOptions = Object.keys(currentCodecConfiguration)\n .sort((keyA, keyB) => currentCodecConfiguration[keyA].is_optional - currentCodecConfiguration[keyB].is_optional)\n .map((key) => _formatConfigField(key, currentCodecConfiguration[key]));\n }\n\n return (\n \n \n
    \n
    \n \n Source IP address (optional)}\n help={`Remote IP address to use as message source. Graylog will use ${DEFAULT_REMOTE_ADDRESS} by default.`}\n value={remoteAddress}\n onChange={_onRemoteAddressChange} />\n
    \n \n
    \n Codec configuration\n \n