web-interface.assets.07ba022f-5208.0d9fd21186b56602db11.js.map Maven / Gradle / Ivy
{"version":3,"file":"07ba022f-5208.0d9fd21186b56602db11.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/simulator/SimulationResults.lazy.css","webpack://graylog-web-interface/./src/components/simulator/SimulationTrace.lazy.css","webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/pipelines/PipelinesPageNavigation.tsx","webpack://graylog-web-interface/./src/stores/simulator/SimulatorStore.js","webpack://graylog-web-interface/./src/components/simulator/SimulationChanges.jsx","webpack://graylog-web-interface/./src/components/simulator/SimulationPreview.jsx","webpack://graylog-web-interface/./src/components/simulator/SimulationTrace.lazy.css?a62d","webpack://graylog-web-interface/./src/components/simulator/SimulationTrace.jsx","webpack://graylog-web-interface/./src/components/simulator/SimulationResults.lazy.css?7116","webpack://graylog-web-interface/./src/components/simulator/SimulationResults.jsx","webpack://graylog-web-interface/./src/components/simulator/ProcessorSimulator.jsx","webpack://graylog-web-interface/./src/pages/SimulatorPage.tsx"],"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, `.message-preview-wrapper {\n margin-left: 15px;\n margin-right: 15px;\n}\n\n.message-preview-wrapper dl {\n margin-top: 5px;\n margin-bottom: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/simulator/SimulationResults.lazy.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;AACpB\",\"sourcesContent\":[\".message-preview-wrapper {\\n margin-left: 15px;\\n margin-right: 15px;\\n}\\n\\n.message-preview-wrapper dl {\\n margin-top: 5px;\\n margin-bottom: 0;\\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, `.dl-simulation-trace {\n padding-top: 15px;\n}\n\n.dl-simulation-trace dt {\n width: 80px;\n}\n\n.dl-simulation-trace dd {\n margin-left: 100px;\n margin-bottom: 5px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/simulator/SimulationTrace.lazy.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;AACrB;;AAEA;IACI,WAAW;AACf;;AAEA;IACI,kBAAkB;IAClB,kBAAkB;AACtB\",\"sourcesContent\":[\".dl-simulation-trace {\\n padding-top: 15px;\\n}\\n\\n.dl-simulation-trace dt {\\n width: 80px;\\n}\\n\\n.dl-simulation-trace dd {\\n margin-left: 100px;\\n margin-bottom: 5px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {};\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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n font-family: ${theme.fonts.family.navigation};\n font-size: ${theme.fonts.size.navigation};\n\n &&&& {\n color: ${theme.colors.variant.darker.default};\n \n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > div {\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n }\n }\n\n &:hover {\n ${hoverIndicatorStyles(theme)}\n }\n\n &.active {\n color: ${theme.colors.global.textDefault};\n\n ${activeIndicatorStyles(theme)}\n\n &:hover,\n &:focus {\n ${activeIndicatorStyles(theme)}\n }\n }\n }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n /**\n * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n * By default, an item is active if the current URL starts with the item URL.\n * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n */\n items: Array<{\n title: string,\n path: string,\n permissions?: string | Array\n exactPathMatch?: boolean,\n }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n \n {items.map(({ path, title, permissions, exactPathMatch }) => {\n if (!path) {\n return null;\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n );\n })}\n \n);\n\nexport default PageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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 PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst NAV_ITEMS = [\n { title: 'Manage pipelines', path: Routes.SYSTEM.PIPELINES.OVERVIEW, exactPathMatch: true },\n { title: 'Manage rules', path: Routes.SYSTEM.PIPELINES.RULES },\n { title: 'Simulator', path: Routes.SYSTEM.PIPELINES.SIMULATOR },\n];\n\nconst EventsPageNavigation = () => (\n \n \n
\n);\n\nexport default EventsPageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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 * as URLUtils from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport fetch from 'logic/rest/FetchProvider';\nimport MessageFormatter from 'logic/message/MessageFormatter';\nimport ObjectUtils from 'util/ObjectUtils';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const SimulatorActions = singletonActions(\n 'core.Simulator',\n () => Reflux.createActions({\n simulate: { asyncResult: true },\n }),\n);\n\nexport const SimulatorStore = singletonStore(\n 'core.Simulator',\n () => Reflux.createStore({\n listenables: [SimulatorActions],\n\n simulate(stream, messageFields, inputId) {\n const url = URLUtils.qualifyUrl(ApiRoutes.SimulatorController.simulate().url);\n const simulation = {\n stream_id: stream.id,\n message: messageFields,\n input_id: inputId,\n };\n\n let promise = fetch('POST', url, simulation);\n\n promise = promise.then((response) => {\n const formattedResponse = ObjectUtils.clone(response);\n\n formattedResponse.messages = response.messages.map((msg) => MessageFormatter.formatMessageSummary(msg));\n\n return formattedResponse;\n });\n\n SimulatorActions.simulate.promise(promise);\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 PropTypes from 'prop-types';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\n\nimport { Col, Row } from 'components/bootstrap';\nimport { Pluralize } from 'components/common';\n\nconst SimulationChangesWrap = styled.div`\n padding-top: 15px;\n\n dl {\n margin-bottom: 10px;\n margin-top: 5px;\n }\n\n dd {\n padding: 1px 9px 3px;\n }\n\n dt {\n margin-top: 1px;\n padding: 3px 9px 1px;\n\n &::after {\n content: ': ';\n }\n\n &:first-child {\n border-radius: 4px 4px 0 0;\n }\n\n ~ dd:last-child {\n border-radius: 0 0 4px 4px;\n }\n }\n`;\n\nconst OriginalChanges = styled.div`\n margin-top: 10px;\n`;\n\nconst FieldResultWrap = styled.div(({ resultType, theme }) => {\n const { success, danger, info } = theme.colors.variant.light;\n const types = {\n added: success,\n removed: danger,\n mutated: info,\n };\n\n return `\n dt,\n dd {\n background-color: ${types[resultType]};\n color: ${theme.utils.contrastingColor(types[resultType])};\n }\n `;\n});\n\nconst FieldValue = styled.dd(({ removed, theme }) => css`\n font-family: ${theme.fonts.family.monospace};\n\n ${removed && css`\n text-decoration: line-through;\n font-style: italic;\n `}\n`);\n\nconst SimulationChanges = createReactClass({\n displayName: 'SimulationChanges',\n\n propTypes: {\n originalMessage: PropTypes.object.isRequired,\n simulationResults: PropTypes.object.isRequired,\n },\n\n _isOriginalMessageRemoved(originalMessage, processedMessages) {\n return !processedMessages.find((message) => message.id === originalMessage.id);\n },\n\n _formatFieldTitle(field) {\n return {field} ;\n },\n\n _formatFieldValue(field, value, isRemoved = false) {\n return {String(value)} ;\n },\n\n _formatAddedFields(addedFields) {\n const keys = Object.keys(addedFields);\n\n if (keys.length === 0) {\n return null;\n }\n\n const formattedFields = [];\n\n keys.sort().forEach((field) => {\n formattedFields.push(this._formatFieldTitle(field));\n formattedFields.push(this._formatFieldValue(field, addedFields[field]));\n });\n\n return (\n \n Added fields
\n \n {formattedFields}\n
\n \n );\n },\n\n _formatRemovedFields(removedFields) {\n const keys = Object.keys(removedFields);\n\n if (keys.length === 0) {\n return null;\n }\n\n const formattedFields = [];\n\n keys.sort().forEach((field) => {\n formattedFields.push(this._formatFieldTitle(field));\n formattedFields.push(this._formatFieldValue(field, removedFields[field]));\n });\n\n return (\n \n Removed fields
\n \n {formattedFields}\n
\n \n );\n },\n\n _formatMutatedFields(mutatedFields) {\n const keys = Object.keys(mutatedFields);\n\n if (keys.length === 0) {\n return null;\n }\n\n const formattedFields = [];\n\n keys.sort().forEach((field) => {\n formattedFields.push(this._formatFieldTitle(field));\n formattedFields.push(this._formatFieldValue(`${field}-original`, mutatedFields[field].before, true));\n formattedFields.push(this._formatFieldValue(field, mutatedFields[field].after));\n });\n\n return (\n \n Mutated fields
\n \n {formattedFields}\n
\n \n );\n },\n\n _getOriginalMessageChanges() {\n const { originalMessage, simulationResults } = this.props;\n const processedMessages = simulationResults.messages;\n\n if (this._isOriginalMessageRemoved(originalMessage, processedMessages)) {\n return Original message would be dropped during processing.
;\n }\n\n const processedMessage = processedMessages.find((message) => message.id === originalMessage.id);\n\n const formattedAddedFields = this._formatAddedFields(processedMessage.decoration_stats.added_fields);\n const formattedRemovedFields = this._formatRemovedFields(processedMessage.decoration_stats.removed_fields);\n const formattedMutatedFields = this._formatMutatedFields(processedMessage.decoration_stats.changed_fields);\n\n if (!formattedAddedFields && !formattedRemovedFields && !formattedMutatedFields) {\n return Original message would be not be modified during processing.
;\n }\n\n return (\n \n {formattedAddedFields}\n {formattedRemovedFields}\n {formattedMutatedFields}\n \n );\n },\n\n _formatOriginalMessageChanges() {\n const { originalMessage } = this.props;\n\n return (\n \n \n \n Changes in original message{' '}\n {originalMessage.id}\n
\n {this._getOriginalMessageChanges()}\n \n
\n );\n },\n\n _formatOtherChanges() {\n const { originalMessage, simulationResults } = this.props;\n\n const createdMessages = simulationResults.messages.filter((message) => message.id !== originalMessage.id);\n\n if (createdMessages.length === 0) {\n return null;\n }\n\n return (\n \n \n Other changes
\n \n There would be {createdMessages.length}{' '}\n created.{' '}\n Switch to the Results preview view option to see{' '}\n .\n
\n \n
\n );\n },\n\n render() {\n return (\n \n {this._formatOriginalMessageChanges()}\n {this._formatOtherChanges()}\n \n );\n },\n});\n\nexport default SimulationChanges;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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 { Alert } from 'components/bootstrap';\nimport MessageShow from 'components/search/MessageShow';\n\nconst SimulationPreview = ({ simulationResults, streams }) => {\n const { messages } = simulationResults;\n\n if (messages.length === 0) {\n return (\n \n \n The pipeline processor would drop such a message. That means that the message\n would not be stored, and would not be available for searches, alerts, outputs, or dashboards.\n
\n \n );\n }\n\n const formattedMessages = messages.map((message) => (\n \n ));\n\n return {formattedMessages};\n};\n\nSimulationPreview.propTypes = {\n simulationResults: PropTypes.object.isRequired,\n streams: PropTypes.object.isRequired,\n};\n\nexport default SimulationPreview;\n","\n var exported = {};\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[5].use[1]!./SimulationTrace.lazy.css\";\n \n if (content && content.locals) {\n exported.locals = content.locals;\n }\n \n\nvar refs = 0;\nvar update;\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\nexported.use = function(insertOptions) {\n options.options = insertOptions || {};\n\n if (!(refs++)) {\n update = API(content, options);\n }\n\n return exported;\n};\nexported.unuse = function() {\n if (refs > 0 && !--refs) {\n update();\n update = null;\n }\n};\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!./SimulationTrace.lazy.css\";\n export default exported;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\n\nimport NumberUtils from 'util/NumberUtils';\n\nimport style from './SimulationTrace.lazy.css';\n\nconst SimulationTrace = createReactClass({\n displayName: 'SimulationTrace',\n\n propTypes: {\n simulationResults: PropTypes.object.isRequired,\n },\n\n componentDidMount() {\n style.use();\n },\n\n componentWillUnmount() {\n style.unuse();\n },\n\n render() {\n const { simulationResults } = this.props;\n\n const simulationTrace = simulationResults.simulation_trace;\n\n const traceEntries = [];\n\n simulationTrace.forEach((trace, idx) => {\n // eslint-disable-next-line react/no-array-index-key\n traceEntries.push({NumberUtils.formatNumber(trace.time)} μs );\n // eslint-disable-next-line react/no-array-index-key\n traceEntries.push({trace.message} );\n });\n\n return (\n \n {traceEntries}\n
\n );\n },\n});\n\nexport default SimulationTrace;\n","\n var exported = {};\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[5].use[1]!./SimulationResults.lazy.css\";\n \n if (content && content.locals) {\n exported.locals = content.locals;\n }\n \n\nvar refs = 0;\nvar update;\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\nexported.use = function(insertOptions) {\n options.options = insertOptions || {};\n\n if (!(refs++)) {\n update = API(content, options);\n }\n\n return exported;\n};\nexported.unuse = function() {\n if (refs > 0 && !--refs) {\n update();\n update = null;\n }\n};\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!./SimulationResults.lazy.css\";\n export default exported;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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 { Alert, Col, DropdownButton, MenuItem, Row } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\nimport MessageShow from 'components/search/MessageShow';\nimport NumberUtils from 'util/NumberUtils';\n\nimport SimulationChanges from './SimulationChanges';\nimport SimulationPreview from './SimulationPreview';\nimport SimulationTrace from './SimulationTrace';\nimport style from './SimulationResults.lazy.css';\n\nconst VIEW_OPTIONS = {\n SIMULATION_PREVIEW: 1,\n SIMULATION_SUMMARY: 2,\n SIMULATION_TRACE: 3,\n};\n\nclass SimulationResults extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n viewOption: VIEW_OPTIONS.SIMULATION_SUMMARY,\n };\n }\n\n componentDidMount() {\n style.use();\n }\n\n componentWillUnmount() {\n style.unuse();\n }\n\n _changeViewOptions = (eventKey) => {\n const selectedOption = Object.keys(VIEW_OPTIONS).find((key) => VIEW_OPTIONS[key] === eventKey);\n\n this.setState({ viewOption: VIEW_OPTIONS[selectedOption] });\n };\n\n _getViewOptionsMenuItems = () => [\n this._getViewOptionsMenuItem(VIEW_OPTIONS.SIMULATION_SUMMARY, 'Changes summary'),\n this._getViewOptionsMenuItem(VIEW_OPTIONS.SIMULATION_PREVIEW, 'Results preview'),\n this._getViewOptionsMenuItem(VIEW_OPTIONS.SIMULATION_TRACE, 'Simulation trace'),\n ];\n\n _getViewOptionsMenuItem = (option, text) => {\n const { viewOption } = this.state;\n\n return (\n \n );\n };\n\n _getViewComponent = (streams) => {\n const { simulationResults, isLoading, originalMessage } = this.props;\n\n if (isLoading || !simulationResults) {\n return ;\n }\n\n const { viewOption } = this.state;\n\n switch (viewOption) {\n case VIEW_OPTIONS.SIMULATION_PREVIEW:\n return ;\n case VIEW_OPTIONS.SIMULATION_SUMMARY:\n return (\n \n );\n case VIEW_OPTIONS.SIMULATION_TRACE:\n return ;\n default:\n // it should never happen™\n }\n\n return null;\n };\n\n render() {\n const { stream, simulationResults, isLoading, error, originalMessage } = this.props;\n\n if (!originalMessage && !simulationResults) {\n return null;\n }\n\n const streams = {\n [stream.id]: stream,\n };\n\n // eslint-disable-next-line no-nested-ternary\n const originalMessagePreview = isLoading\n ? \n : originalMessage\n ? (\n \n )\n : null;\n\n const errorMessage = error\n ? (\n \n \n Could not simulate processing of message {originalMessage.id} in stream{' '}\n {stream.title}.\n
\n Please try loading the message again, or use another message for the simulation.\n
\n \n )\n : null;\n\n return (\n \n \n
\n \n \n Original message
\n This is the original message loaded from Graylog.
\n \n {originalMessagePreview}\n \n \n \n \n \n {this._getViewOptionsMenuItems()}\n \n \n Simulation results
\n \n {isLoading\n ? 'Simulating message processing, please wait a moment.'\n : `These are the results of processing the loaded message. Processing took ${NumberUtils.formatNumber(simulationResults?.took_microseconds)} µs.`}\n
\n {errorMessage}\n {this._getViewComponent(streams)}\n \n
\n );\n }\n}\n\nSimulationResults.propTypes = {\n stream: PropTypes.object.isRequired,\n originalMessage: PropTypes.object,\n simulationResults: PropTypes.object,\n isLoading: PropTypes.bool,\n error: PropTypes.object,\n};\n\nSimulationResults.defaultProps = {\n originalMessage: undefined,\n simulationResults: undefined,\n isLoading: false,\n error: undefined,\n};\n\nexport default SimulationResults;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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 { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { Link } from 'components/common/router';\nimport { Col, ControlLabel, FormGroup, HelpBlock, Panel, Row } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport RawMessageLoader from 'components/messageloaders/RawMessageLoader';\nimport Routes from 'routing/Routes';\nimport { SimulatorActions } from 'stores/simulator/SimulatorStore';\n\nimport SimulationResults from './SimulationResults';\n\nconst DEFAULT_STREAM_ID = '000000000000000000000001';\n\nclass ProcessorSimulator extends React.Component {\n static propTypes = {\n streams: PropTypes.array.isRequired,\n };\n\n constructor(props) {\n super(props);\n // The default stream could not be present in a system. In that case we fallback to the first available stream.\n this.defaultStream = props.streams.find((s) => s.id === DEFAULT_STREAM_ID) || props.streams[0];\n\n this.state = {\n message: undefined,\n stream: this.defaultStream,\n simulation: undefined,\n loading: false,\n error: undefined,\n };\n }\n\n _onMessageLoad = (message, options) => {\n this.setState({ message: message, simulation: undefined, loading: true, error: undefined });\n\n SimulatorActions.simulate\n .triggerPromise(this.state.stream, message.fields, options.inputId)\n .then(\n (response) => {\n this.setState({ simulation: response, loading: false });\n },\n (error) => {\n this.setState({ loading: false, error: error });\n },\n );\n };\n\n _getFormattedStreams = (streams) => {\n if (!streams) {\n return [];\n }\n\n return streams\n .map((stream) => ({ value: stream.id, label: stream.title }))\n .sort((s1, s2) => naturalSort(s1.label, s2.label));\n };\n\n _onStreamSelect = (selectedStream) => {\n const stream = this.props.streams.find((s) => s.id.toLowerCase() === selectedStream.toLowerCase());\n\n this.setState({ stream: stream });\n };\n\n render() {\n if (this.props.streams.length === 0) {\n return (\n \n \n \n \n Pipelines operate on streams, but your system currently has no streams. Please{' '}\n create a stream{' '}\n and come back here later to test pipelines processing messages in your new stream.\n \n \n
\n \n );\n }\n\n const streamHelp = (\n \n Select a stream to use during simulation, the {this.defaultStream.title} stream is used by default.\n \n );\n\n return (\n \n \n \n Load a message
\n \n Build an example message that will be used in the simulation.{' '}\n No real messages stored in Graylog will be changed. All actions are purely simulated on the\n temporary input you provide below.\n \n
\n \n \n \n Stream \n \n {streamHelp} \n \n \n
\n \n \n
\n \n \n );\n }\n}\n\nexport default ProcessorSimulator;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\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';\n\nimport { Col, Row } from 'components/bootstrap';\nimport { DocumentTitle, PageHeader, Spinner } from 'components/common';\nimport ProcessorSimulator from 'components/simulator/ProcessorSimulator';\nimport DocsHelper from 'util/DocsHelper';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport StreamsStore from 'stores/streams/StreamsStore';\nimport PipelinesPageNavigation from 'components/pipelines/PipelinesPageNavigation';\n\nconst SimulatorPage = () => {\n const [streams, setStreams] = useState | undefined>();\n\n useEffect(() => {\n StreamsStore.listStreams().then((result) => {\n const filteredStreams = result.filter((s) => s.is_editable);\n\n setStreams(filteredStreams);\n });\n }, []);\n\n const content = !streams ? : ;\n\n return (\n \n \n \n \n Processing messages can be complex. Use this page to simulate the result of processing an incoming\n message using your current set of pipelines and rules.\n \n \n\n \n \n {content}\n \n
\n \n );\n};\n\nexport default SimulatorPage;\n"],"names":["___CSS_LOADER_EXPORT___","module","Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","NAV_ITEMS","SimulatorActions","singleton","SimulatorStore","stream","messageFields","inputId","url","URLUtils","ApiRoutes","simulation","promise","response","formattedResponse","ObjectUtils","msg","MessageFormatter","SimulationChangesWrap","OriginalChanges","FieldResultWrap","resultType","success","danger","info","types","FieldValue","removed","originalMessage","processedMessages","message","field","value","isRemoved","addedFields","keys","formattedFields","removedFields","mutatedFields","simulationResults","processedMessage","formattedAddedFields","formattedRemovedFields","formattedMutatedFields","createdMessages","SimulationPreview","streams","messages","formattedMessages","MessageShow","exported","refs","update","options","insertOptions","simulationTrace","traceEntries","trace","idx","NumberUtils","VIEW_OPTIONS","SimulationResults","props","eventKey","selectedOption","key","option","text","viewOption","isLoading","error","originalMessagePreview","errorMessage","DEFAULT_STREAM_ID","ProcessorSimulator","s1","s2","selectedStream","s","Routes","streamHelp","RawMessageLoader","setStreams","StreamsStore","result","filteredStreams","content","PipelinesPageNavigation","DocsHelper"],"sourceRoot":""}