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

web-interface.assets.8.8.362ba12fc38f8705dbe5.js Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
webpackJsonp([8],{78:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar MessagesStore = _injectionStoreProvider2['default'].getStore('Messages');\n\nvar MessageLoader = _react2['default'].createClass({\n  displayName: 'MessageLoader',\n\n  propTypes: {\n    hidden: _react.PropTypes.bool,\n    hideText: _react.PropTypes.bool,\n    onMessageLoaded: _react.PropTypes.func\n  },\n  getDefaultProps: function getDefaultProps() {\n    return {\n      hidden: true\n    };\n  },\n  getInitialState: function getInitialState() {\n    return {\n      hidden: this.props.hidden\n    };\n  },\n\n  toggleMessageForm: function toggleMessageForm() {\n    this.setState({ hidden: !this.state.hidden }, this._focusMessageLoaderForm);\n  },\n  _focusMessageLoaderForm: function _focusMessageLoaderForm() {\n    if (!this.state.hidden) {\n      this.refs.messageId.focus();\n    }\n  },\n  loadMessage: function loadMessage(event) {\n    var _this = this;\n\n    var messageId = this.refs.messageId.value;\n    var index = this.refs.index.value;\n    if (messageId === '' || index === '') {\n      return;\n    }\n    var promise = MessagesStore.loadMessage(index, messageId);\n    promise.then(function (data) {\n      return _this.props.onMessageLoaded(data);\n    });\n\n    event.preventDefault();\n  },\n  submit: function submit(messageId, index) {\n    this.refs.messageId.value = messageId;\n    this.refs.index.value = index;\n    this.refs.submitButton.click();\n  },\n  render: function render() {\n    var explanatoryText = undefined;\n    if (!this.props.hideText) {\n      explanatoryText = _react2['default'].createElement(\n        'p',\n        null,\n        'Wrong example? You can',\n        ' ',\n        _react2['default'].createElement(\n          'button',\n          { className: 'btn btn-link btn-small btn-text', onClick: this.toggleMessageForm },\n          'load another message'\n        ),\n        '.'\n      );\n    }\n    var loadMessageForm = _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        'form',\n        { className: 'form-inline message-loader-form', onSubmit: this.loadMessage },\n        _react2['default'].createElement('input', { type: 'text', ref: 'messageId', className: 'form-control', placeholder: 'Message ID', required: true }),\n        _react2['default'].createElement('input', { type: 'text', ref: 'index', className: 'form-control', placeholder: 'Index', required: true }),\n        _react2['default'].createElement(\n          'button',\n          { ref: 'submitButton', type: 'submit', className: 'btn btn-info' },\n          'Load message'\n        )\n      )\n    );\n    return _react2['default'].createElement(\n      'div',\n      { className: 'message-loader' },\n      explanatoryText,\n      this.state.hidden ? null : loadMessageForm\n    );\n  }\n});\n\nexports['default'] = MessageLoader;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"MessageLoader.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/MessageLoader.jsx\n ** module id = 78\n ** module chunks = 7 8 19 20\n **/\n//# sourceURL=webpack:///./src/components/extractors/MessageLoader.jsx?")},202:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _ExtractorExampleMessage = __webpack_require__(205);\n\nvar _ExtractorExampleMessage2 = _interopRequireDefault(_ExtractorExampleMessage);\n\nvar _EditExtractorConfiguration = __webpack_require__(203);\n\nvar _EditExtractorConfiguration2 = _interopRequireDefault(_EditExtractorConfiguration);\n\nvar _EditExtractorConverters = __webpack_require__(204);\n\nvar _EditExtractorConverters2 = _interopRequireDefault(_EditExtractorConverters);\n\nvar _injectionActionsProvider = __webpack_require__(6);\n\nvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar ExtractorsActions = _injectionActionsProvider2['default'].getActions('Extractors');\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar EditExtractor = _react2['default'].createClass({\n  displayName: 'EditExtractor',\n\n  propTypes: {\n    action: _react.PropTypes.oneOf(['create', 'edit']).isRequired,\n    extractor: _react.PropTypes.object.isRequired,\n    inputId: _react.PropTypes.string.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onSave: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      updatedExtractor: this.props.extractor,\n      conditionTestResult: undefined,\n      exampleMessage: this.props.exampleMessage\n    };\n  },\n\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    if (this.props.exampleMessage !== nextProps.exampleMessage) {\n      this._updateExampleMessage(nextProps.exampleMessage);\n    }\n  },\n\n  _updateExampleMessage: function _updateExampleMessage(nextExample) {\n    this.setState({ exampleMessage: nextExample });\n  },\n\n  // Ensures the target field only contains alphanumeric characters and underscores\n  _onTargetFieldChange: function _onTargetFieldChange(event) {\n    var value = event.target.value;\n    var newValue = value.replace(/[^\\w\\d_]/g, '');\n\n    if (value !== newValue) {\n      this.refs.targetField.getInputDOMNode().value = newValue;\n    }\n\n    this._onFieldChange('target_field')(event);\n  },\n  _onFieldChange: function _onFieldChange(key) {\n    var _this = this;\n\n    return function (event) {\n      var nextState = {};\n      var updatedExtractor = _this.state.updatedExtractor;\n      updatedExtractor[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      nextState.updatedExtractor = updatedExtractor;\n\n      // Reset result of testing condition after a change in the input\n      if (key === 'condition_value') {\n        nextState.conditionTestResult = undefined;\n      }\n\n      _this.setState(nextState);\n    };\n  },\n  _onConfigurationChange: function _onConfigurationChange(newConfiguration) {\n    var updatedExtractor = this.state.updatedExtractor;\n    updatedExtractor.extractor_config = newConfiguration;\n    this.setState({ updatedExtractor: updatedExtractor });\n  },\n  _onConverterChange: function _onConverterChange(converterType, newConverter) {\n    var updatedExtractor = this.state.updatedExtractor;\n    var previousConverter = updatedExtractor.converters.filter(function (converter) {\n      return converter.type === converterType;\n    })[0];\n\n    if (previousConverter) {\n      // Remove converter from the list\n      var position = updatedExtractor.converters.indexOf(previousConverter);\n      updatedExtractor.converters.splice(position, 1);\n    }\n\n    if (newConverter) {\n      updatedExtractor.converters.push(newConverter);\n    }\n\n    this.setState({ updatedExtractor: updatedExtractor });\n  },\n  _testCondition: function _testCondition() {\n    var _this2 = this;\n\n    var promise = ToolsStore.testRegex(this.state.updatedExtractor.condition_value, this.state.exampleMessage);\n    promise.then(function (result) {\n      return _this2.setState({ conditionTestResult: result.matched });\n    });\n  },\n  _tryButtonDisabled: function _tryButtonDisabled() {\n    return this.state.updatedExtractor.condition_value === '' || !this.state.exampleMessage;\n  },\n  _getExtractorConditionControls: function _getExtractorConditionControls() {\n    if (!this.state.updatedExtractor.condition_type || this.state.updatedExtractor.condition_type === 'none') {\n      return _react2['default'].createElement('div', null);\n    }\n\n    var conditionInputLabel = undefined;\n    var conditionInputHelp = undefined;\n\n    if (this.state.updatedExtractor.condition_type === 'string') {\n      conditionInputLabel = 'Field contains string';\n      conditionInputHelp = 'Type a string that the field should contain in order to attempt the extraction.';\n    } else {\n      conditionInputLabel = 'Field matches regular expression';\n      conditionInputHelp = 'Type a regular expression that the field should contain in order to attempt the extraction.';\n    }\n\n    var inputStyle = undefined;\n    if (this.state.conditionTestResult === true) {\n      inputStyle = 'success';\n      conditionInputHelp = 'Matches! Extractor would run against this example.';\n    } else if (this.state.conditionTestResult === false) {\n      inputStyle = 'error';\n      conditionInputHelp = 'Does not match! Extractor would not run.';\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { id: 'condition_value', label: conditionInputLabel,\n          bsStyle: inputStyle,\n          labelClassName: 'col-md-2',\n          wrapperClassName: 'col-md-10',\n          help: conditionInputHelp },\n        _react2['default'].createElement(\n          _reactBootstrap.Row,\n          { className: 'row-sm' },\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 11 },\n            _react2['default'].createElement('input', { type: 'text', id: 'condition_value', className: 'form-control',\n              defaultValue: this.state.updatedExtractor.condition_value,\n              onChange: this._onFieldChange('condition_value'), required: true })\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 1, className: 'text-right' },\n            _react2['default'].createElement(\n              _reactBootstrap.Button,\n              { bsStyle: 'info', onClick: this._testCondition,\n                disabled: this._tryButtonDisabled() },\n              'Try'\n            )\n          )\n        )\n      )\n    );\n  },\n  _saveExtractor: function _saveExtractor(event) {\n    var _this3 = this;\n\n    event.preventDefault();\n    ExtractorsActions.save.triggerPromise(this.props.inputId, this.state.updatedExtractor).then(function () {\n      return _this3.props.onSave();\n    });\n  },\n  render: function render() {\n    var conditionTypeHelpMessage = 'Extracting only from messages that match a certain condition helps you ' + 'avoiding wrong or unnecessary extractions and can also save CPU resources.';\n\n    var cursorStrategyHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Do you want to copy or cut from source? You cannot use the cutting feature on standard fields like',\n      ' ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'message'\n      ),\n      ' and ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'source'\n      ),\n      '.'\n    );\n\n    var targetFieldHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Choose a field name to store the extracted value. It can only contain ',\n      _react2['default'].createElement(\n        'b',\n        null,\n        'alphanumeric characters and',\n        ' ',\n        'underscores'\n      ),\n      '. Example: ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'http_response_code'\n      ),\n      '.'\n    );\n\n    var storeAsFieldInput = undefined;\n    // Grok and JSON extractors create their required fields, so no need to add an input for them\n    if (this.state.updatedExtractor.type !== _utilExtractorUtils2['default'].ExtractorTypes.GROK && this.state.updatedExtractor.type !== _utilExtractorUtils2['default'].ExtractorTypes.JSON) {\n      storeAsFieldInput = _react2['default'].createElement(_reactBootstrap.Input, { type: 'text', ref: 'targetField', id: 'target_field', label: 'Store as field',\n        defaultValue: this.state.updatedExtractor.target_field,\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        onChange: this._onTargetFieldChange,\n        required: true,\n        help: targetFieldHelpMessage });\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'content extractor-list' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 12 },\n          _react2['default'].createElement(\n            'h2',\n            null,\n            'Example message'\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Row,\n            { style: { marginTop: 5 } },\n            _react2['default'].createElement(\n              _reactBootstrap.Col,\n              { md: 12 },\n              _react2['default'].createElement(_ExtractorExampleMessage2['default'], { field: this.state.updatedExtractor.source_field,\n                example: this.state.exampleMessage,\n                onExampleLoad: this._updateExampleMessage })\n            )\n          ),\n          _react2['default'].createElement(\n            'h2',\n            null,\n            'Extractor configuration'\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Row,\n            null,\n            _react2['default'].createElement(\n              _reactBootstrap.Col,\n              { md: 8 },\n              _react2['default'].createElement(\n                'form',\n                { className: 'extractor-form form-horizontal', method: 'POST', onSubmit: this._saveExtractor },\n                _react2['default'].createElement(_reactBootstrap.FormControls.Static, { label: 'Extractor type',\n                  value: _utilExtractorUtils2['default'].getReadableExtractorTypeName(this.state.updatedExtractor.type),\n                  labelClassName: 'col-md-2', wrapperClassName: 'col-md-10' }),\n                _react2['default'].createElement(_reactBootstrap.FormControls.Static, { label: 'Source field', value: this.state.updatedExtractor.source_field,\n                  labelClassName: 'col-md-2', wrapperClassName: 'col-md-10' }),\n                _react2['default'].createElement(_EditExtractorConfiguration2['default'], { ref: 'extractorConfiguration',\n                  extractorType: this.state.updatedExtractor.type,\n                  configuration: this.state.updatedExtractor.extractor_config,\n                  onChange: this._onConfigurationChange,\n                  exampleMessage: this.state.exampleMessage }),\n                _react2['default'].createElement(\n                  _reactBootstrap.Input,\n                  { label: 'Condition', labelClassName: 'col-md-2', wrapperClassName: 'col-md-10',\n                    help: conditionTypeHelpMessage },\n                  _react2['default'].createElement(\n                    'div',\n                    { className: 'radio' },\n                    _react2['default'].createElement(\n                      'label',\n                      null,\n                      _react2['default'].createElement('input', { type: 'radio', name: 'condition_type', value: 'none',\n                        onChange: this._onFieldChange('condition_type'),\n                        defaultChecked: !this.state.updatedExtractor.condition_type || this.state.updatedExtractor.condition_type === 'none' }),\n                      'Always try to extract'\n                    )\n                  ),\n                  _react2['default'].createElement(\n                    'div',\n                    { className: 'radio' },\n                    _react2['default'].createElement(\n                      'label',\n                      null,\n                      _react2['default'].createElement('input', { type: 'radio', name: 'condition_type', value: 'string',\n                        onChange: this._onFieldChange('condition_type'),\n                        defaultChecked: this.state.updatedExtractor.condition_type === 'string' }),\n                      'Only attempt extraction if field contains string'\n                    )\n                  ),\n                  _react2['default'].createElement(\n                    'div',\n                    { className: 'radio' },\n                    _react2['default'].createElement(\n                      'label',\n                      null,\n                      _react2['default'].createElement('input', { type: 'radio', name: 'condition_type', value: 'regex',\n                        onChange: this._onFieldChange('condition_type'),\n                        defaultChecked: this.state.updatedExtractor.condition_type === 'regex' }),\n                      'Only attempt extraction if field matches regular expression'\n                    )\n                  )\n                ),\n                this._getExtractorConditionControls(),\n                storeAsFieldInput,\n                _react2['default'].createElement(\n                  _reactBootstrap.Input,\n                  { label: 'Extraction strategy', labelClassName: 'col-md-2', wrapperClassName: 'col-md-10',\n                    help: cursorStrategyHelpMessage },\n                  _react2['default'].createElement(\n                    'label',\n                    { className: 'radio-inline' },\n                    _react2['default'].createElement('input', { type: 'radio', name: 'cursor_strategy', value: 'copy',\n                      onChange: this._onFieldChange('cursor_strategy'),\n                      defaultChecked: !this.state.updatedExtractor.cursor_strategy || this.state.updatedExtractor.cursor_strategy === 'copy' }),\n                    'Copy'\n                  ),\n                  _react2['default'].createElement(\n                    'label',\n                    { className: 'radio-inline' },\n                    _react2['default'].createElement('input', { type: 'radio', name: 'cursor_strategy', value: 'cut',\n                      onChange: this._onFieldChange('cursor_strategy'),\n                      defaultChecked: this.state.updatedExtractor.cursor_strategy === 'cut' }),\n                    'Cut'\n                  )\n                ),\n                _react2['default'].createElement(_reactBootstrap.Input, { type: 'text', id: 'title', label: 'Extractor title',\n                  defaultValue: this.state.updatedExtractor.title,\n                  labelClassName: 'col-md-2',\n                  wrapperClassName: 'col-md-10',\n                  onChange: this._onFieldChange('title'),\n                  required: true,\n                  help: 'A descriptive name for this extractor.' }),\n                _react2['default'].createElement(\n                  'div',\n                  { style: { marginBottom: 20 } },\n                  _react2['default'].createElement(_EditExtractorConverters2['default'], { extractorType: this.state.updatedExtractor.type,\n                    converters: this.state.updatedExtractor.converters,\n                    onChange: this._onConverterChange })\n                ),\n                _react2['default'].createElement(\n                  _reactBootstrap.Input,\n                  { wrapperClassName: 'col-md-offset-2 col-md-10' },\n                  _react2['default'].createElement(\n                    _reactBootstrap.Button,\n                    { type: 'submit', bsStyle: 'success' },\n                    this.props.action === 'create' ? 'Create extractor' : 'Update extractor'\n                  )\n                )\n              )\n            )\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = EditExtractor;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"EditExtractor.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/EditExtractor.jsx\n ** module id = 202\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/EditExtractor.jsx?")},203:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsExtractorsExtractors_configuration = __webpack_require__(226);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar EditExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'EditExtractorConfiguration',\n\n  propTypes: {\n    extractorType: _react.PropTypes.oneOf(_utilExtractorUtils2['default'].EXTRACTOR_TYPES).isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired,\n    exampleMessage: _react.PropTypes.string\n  },\n  getInitialState: function getInitialState() {\n    return {\n      extractorPreview: undefined\n    };\n  },\n  _onExtractorPreviewLoad: function _onExtractorPreviewLoad(extractorPreviewNode) {\n    this.setState({ extractorPreview: extractorPreviewNode });\n  },\n  render: function render() {\n    var extractorConfiguration = undefined;\n\n    switch (this.props.extractorType) {\n      case _utilExtractorUtils2['default'].ExtractorTypes.COPY_INPUT:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.CopyInputExtractorConfiguration, null);\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.GROK:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.GrokExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.JSON:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.JSONExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.REGEX:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.RegexExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.REGEX_REPLACE:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.RegexReplaceExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.SUBSTRING:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.SubstringExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      case _utilExtractorUtils2['default'].ExtractorTypes.SPLIT_AND_INDEX:\n        extractorConfiguration = _react2['default'].createElement(_componentsExtractorsExtractors_configuration.SplitAndIndexExtractorConfiguration, { configuration: this.props.configuration,\n          exampleMessage: this.props.exampleMessage,\n          onChange: this.props.onChange,\n          onExtractorPreviewLoad: this._onExtractorPreviewLoad });\n        break;\n      default:\n        console.warn('Unsupported extractor type ' + this.props.extractorType);\n    }\n\n    var extractorPreview = undefined;\n\n    if (this.state.extractorPreview !== undefined) {\n      extractorPreview = _react2['default'].createElement(\n        'div',\n        { className: 'form-group' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 10, mdOffset: 2 },\n          _react2['default'].createElement(\n            _reactBootstrap.Panel,\n            { header: 'Extractor preview', bsStyle: 'info' },\n            this.state.extractorPreview === '' ? _react2['default'].createElement(\n              'em',\n              null,\n              'Nothing will be extracted'\n            ) : this.state.extractorPreview\n          )\n        )\n      );\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      extractorConfiguration,\n      extractorPreview\n    );\n  }\n});\n\nexports['default'] = EditExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"EditExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/EditExtractorConfiguration.jsx\n ** module id = 203\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/EditExtractorConfiguration.jsx?")},204:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar _componentsExtractorsConverters_configuration = __webpack_require__(218);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar EditExtractorConverters = _react2['default'].createClass({\n  displayName: 'EditExtractorConverters',\n\n  propTypes: {\n    extractorType: _react.PropTypes.string.isRequired,\n    converters: _react.PropTypes.array.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      displayedConverters: this.props.converters.map(function (converter) {\n        return converter.type;\n      }),\n      disabledConverters: {}, // Keep disabled converters configuration, so the user doesn't need to type it again\n      selectedConverter: undefined\n    };\n  },\n  _onConverterSelect: function _onConverterSelect(newValue) {\n    this.setState({ selectedConverter: newValue });\n  },\n  _onConverterAdd: function _onConverterAdd() {\n    var newDisplayedConverters = this.state.displayedConverters;\n    newDisplayedConverters.push(this.state.selectedConverter);\n    this.setState({ selectedConverter: undefined, converters: newDisplayedConverters });\n  },\n  _onConverterChange: function _onConverterChange(converterType, converter) {\n    if (converter) {\n      var newDisabledConverters = this.state.disabledConverters;\n      if (newDisabledConverters.hasOwnProperty(converterType)) {\n        delete newDisabledConverters[converterType];\n        this.setState({ disabledConverters: newDisabledConverters });\n      }\n    } else {\n      var newDisabledConverters = this.state.disabledConverters;\n      newDisabledConverters[converterType] = this._getConverterByType(converterType);\n      this.setState({ disabledConverters: newDisabledConverters });\n    }\n\n    this.props.onChange(converterType, converter);\n  },\n  _getConverterOptions: function _getConverterOptions() {\n    var _this = this;\n\n    var converterOptions = [];\n    Object.keys(_utilExtractorUtils2['default'].ConverterTypes).forEach(function (converterType) {\n      var type = _utilExtractorUtils2['default'].ConverterTypes[converterType];\n      var disabled = _this.state.displayedConverters.indexOf(type) !== -1;\n      converterOptions.push({\n        value: type,\n        label: _utilExtractorUtils2['default'].getReadableConverterTypeName(type),\n        disabled: disabled\n      });\n    });\n\n    return converterOptions;\n  },\n  _getConverterByType: function _getConverterByType(converterType) {\n    var currentConverter = this.props.converters.filter(function (converter) {\n      return converter.type === converterType;\n    })[0];\n    return currentConverter ? currentConverter.config : {};\n  },\n  _getConvertersConfiguration: function _getConvertersConfiguration() {\n    var _this2 = this;\n\n    var controls = this.state.displayedConverters.map(function (converterType) {\n      // Get converter configuration from disabledConverters if it was disabled\n      var converterConfig = _this2._getConverterByType(converterType);\n      if (Object.keys(converterConfig).length === 0 && _this2.state.disabledConverters.hasOwnProperty(converterType)) {\n        converterConfig = _this2.state.disabledConverters[converterType];\n      }\n\n      switch (converterType) {\n        case _utilExtractorUtils2['default'].ConverterTypes.NUMERIC:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.NumericConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.DATE:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.DateConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.HASH:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.HashConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.SPLIT_AND_COUNT:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.SplitAndCountConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.IP_ANONYMIZER:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.IpAnonymizerConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.SYSLOG_PRI_LEVEL:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.SyslogPriLevelConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.SYSLOG_PRI_FACILITY:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.SyslogPriFacilityConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.TOKENIZER:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.TokenizerConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.CSV:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.CSVConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.LOWERCASE:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.LowercaseConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.UPPERCASE:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.UppercaseConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        case _utilExtractorUtils2['default'].ConverterTypes.FLEXDATE:\n          return _react2['default'].createElement(_componentsExtractorsConverters_configuration.FlexdateConverterConfiguration, { key: converterType,\n            type: converterType,\n            configuration: converterConfig,\n            onChange: _this2._onConverterChange });\n        default:\n          console.warn('Converter type ' + converterType + ' is not supported.');\n      }\n    });\n\n    return controls;\n  },\n  render: function render() {\n    if (this.props.extractorType === _utilExtractorUtils2['default'].ExtractorTypes.GROK || this.props.extractorType === _utilExtractorUtils2['default'].ExtractorTypes.JSON) {\n      return _react2['default'].createElement(\n        'div',\n        { className: 'form-group' },\n        _react2['default'].createElement(\n          'div',\n          { className: 'col-md-offset-2 col-md-10' },\n          _react2['default'].createElement(\n            _reactBootstrap.Panel,\n            { bsStyle: 'info', style: { marginBottom: 0 } },\n            'Cannot add converters to',\n            ' ',\n            _react2['default'].createElement(\n              'em',\n              null,\n              _utilExtractorUtils2['default'].getReadableExtractorTypeName(this.props.extractorType)\n            ),\n            ' extractors.'\n          )\n        )\n      );\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { id: 'add-converter',\n          label: 'Add converter',\n          labelClassName: 'col-md-2',\n          wrapperClassName: 'col-md-10',\n          help: 'Add converters to transform the extracted value.' },\n        _react2['default'].createElement(\n          _reactBootstrap.Row,\n          { className: 'row-sm' },\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 11 },\n            _react2['default'].createElement(_componentsCommon.Select, { ref: 'addConverter',\n              id: 'add-converter',\n              placeholder: 'Select a converter',\n              options: this._getConverterOptions(),\n              value: this.state.selectedConverter,\n              onChange: this._onConverterSelect })\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 1, className: 'text-right' },\n            _react2['default'].createElement(\n              _reactBootstrap.Button,\n              { bsStyle: 'info', onClick: this._onConverterAdd, disabled: !this.state.selectedConverter },\n              'Add'\n            )\n          )\n        )\n      ),\n      this._getConvertersConfiguration()\n    );\n  }\n});\n\nexports['default'] = EditExtractorConverters;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"EditExtractorConverters.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/EditExtractorConverters.jsx\n ** module id = 204\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/EditExtractorConverters.jsx?");
},205:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _MessageLoader = __webpack_require__(78);\n\nvar _MessageLoader2 = _interopRequireDefault(_MessageLoader);\n\nvar ExtractorExampleMessage = _react2['default'].createClass({\n  displayName: 'ExtractorExampleMessage',\n\n  propTypes: {\n    field: _react.PropTypes.string.isRequired,\n    example: _react.PropTypes.string,\n    onExampleLoad: _react.PropTypes.func\n  },\n  _onExampleLoad: function _onExampleLoad(message) {\n    var newExample = message.fields[this.props.field];\n    this.props.onExampleLoad(newExample);\n  },\n  render: function render() {\n    var originalMessage = _react2['default'].createElement(\n      'span',\n      { id: 'xtrc-original-example', style: { display: 'none' } },\n      this.props.example\n    );\n    var messagePreview = undefined;\n\n    if (this.props.example) {\n      messagePreview = _react2['default'].createElement(\n        'div',\n        { className: 'well well-sm xtrc-new-example' },\n        _react2['default'].createElement(\n          'span',\n          { id: 'xtrc-example' },\n          this.props.example\n        )\n      );\n    } else {\n      messagePreview = _react2['default'].createElement(\n        'div',\n        { className: 'alert alert-warning xtrc-no-example' },\n        'Could not load an example of field \\'',\n        this.props.field,\n        '\\'. It is not possible to test the extractor before updating it.'\n      );\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      originalMessage,\n      messagePreview,\n      _react2['default'].createElement(_MessageLoader2['default'], { onMessageLoaded: this._onExampleLoad })\n    );\n  }\n});\n\nexports['default'] = ExtractorExampleMessage;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"ExtractorExampleMessage.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/ExtractorExampleMessage.jsx\n ** module id = 205\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/ExtractorExampleMessage.jsx?")},206:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar CSVConverterConfiguration = _react2['default'].createClass({\n  displayName: 'CSVConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject(configuration) {\n    return { type: this.props.type, config: configuration || this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      var newConfig = _this.props.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(_this.props.type, _this._getConverterObject(newConfig));\n    };\n  },\n  render: function render() {\n    var separatorHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'For example ',\n      _react2['default'].createElement(\n        'code',\n        null,\n        ','\n      ),\n      ', ',\n      _react2['default'].createElement(\n        'code',\n        null,\n        '\\\\n'\n      ),\n      ', and ',\n      _react2['default'].createElement(\n        'code',\n        null,\n        '\\\\t'\n      ),\n      ' will be translated to a single character.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        ref: 'converterEnabled',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Add CSV columns as fields',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter }),\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'row-sm' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 9, mdOffset: 2 },\n          _react2['default'].createElement(\n            'div',\n            { className: 'xtrc-converter-subfields' },\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_column_header',\n              label: 'Field names',\n              defaultValue: this.props.configuration.column_header,\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              placeholder: 'field1,field2,field3',\n              onChange: this._onChange('column_header'),\n              required: this.refs.converterEnabled && this.refs.converterEnabled.getChecked() }),\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_separator',\n              label: 'Separator character',\n              defaultValue: this.props.configuration.separator || ',',\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              maxLength: '2',\n              onChange: this._onChange('separator'),\n              help: separatorHelpMessage }),\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_quote_char',\n              label: 'Quote character',\n              defaultValue: this.props.configuration.quote_char || '\"',\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              maxLength: '1',\n              onChange: this._onChange('quote_char') }),\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_escape_char',\n              label: 'Escape character',\n              defaultValue: this.props.configuration.escape_char || '\\\\',\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              maxLength: '1',\n              onChange: this._onChange('escape_char'),\n              help: 'Character used to escape the separator and quote characters.' }),\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n              id: this.props.type + '_converter_strict_quotes',\n              label: 'Use strict quotes',\n              wrapperClassName: 'col-md-offset-3 col-md-9',\n              defaultChecked: this.props.configuration.strict_quotes,\n              onChange: this._onChange('strict_quotes'),\n              help: 'Ignore content outside of quotes.' }),\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n              id: this.props.type + '_converter_trim_leading_whitespace',\n              label: 'Trim leading whitespace',\n              wrapperClassName: 'col-md-offset-3 col-md-9',\n              defaultChecked: this.props.configuration.trim_leading_whitespace,\n              onChange: this._onChange('trim_leading_whitespace') })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = CSVConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"CSVConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/CSVConverterConfiguration.jsx\n ** module id = 206\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/CSVConverterConfiguration.jsx?")},207:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar _componentsSupportDocumentationLink = __webpack_require__(24);\n\nvar _componentsSupportDocumentationLink2 = _interopRequireDefault(_componentsSupportDocumentationLink);\n\nvar _utilDocsHelper = __webpack_require__(17);\n\nvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar DateConverterConfiguration = _react2['default'].createClass({\n  displayName: 'DateConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject(configuration) {\n    return { type: this.props.type, config: configuration || this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (data) {\n      var newConfig = _this.props.configuration;\n      // data can be an event or a value, we need to check its type :sick:\n      newConfig[key] = typeof data === 'object' ? _utilFormsUtils2['default'].getValueFromInput(data.target) : data;\n      _this.props.onChange(_this.props.type, _this._getConverterObject(newConfig));\n    };\n  },\n  render: function render() {\n    var dateFormatHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'String format the date uses. Read more in the ',\n      _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], {\n        page: _utilDocsHelper2['default'].PAGES.PAGE_STANDARD_DATE_CONVERTER, text: 'documentation' }),\n      '.'\n    );\n\n    var timezoneHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Time zone to apply to date. Read more in the ',\n      _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], {\n        page: _utilDocsHelper2['default'].PAGES.PAGE_STANDARD_DATE_CONVERTER, text: 'documentation' }),\n      '.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        ref: 'converterEnabled',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Convert to date type',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter }),\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'row-sm' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 9, mdOffset: 2 },\n          _react2['default'].createElement(\n            'div',\n            { className: 'xtrc-converter-subfields' },\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_date_format',\n              label: 'Format string',\n              defaultValue: this.props.configuration.date_format,\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              placeholder: 'yyyy-MM-dd HH:mm:ss.SSS',\n              onChange: this._onChange('date_format'),\n              required: this.refs.converterEnabled && this.refs.converterEnabled.getChecked(),\n              help: dateFormatHelpMessage }),\n            _react2['default'].createElement(\n              _reactBootstrap.Input,\n              { label: 'Time Zone',\n                id: this.props.type + '_converter_timezone',\n                labelClassName: 'col-sm-3',\n                wrapperClassName: 'col-sm-9',\n                help: timezoneHelpMessage },\n              _react2['default'].createElement(_componentsCommon.TimezoneSelect, { ref: 'timezone',\n                id: this.props.type + '_converter_timezone',\n                className: 'timezone-select',\n                value: this.props.configuration.time_zone,\n                onChange: this._onChange('time_zone') })\n            )\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = DateConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"DateConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/DateConverterConfiguration.jsx\n ** module id = 207\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/DateConverterConfiguration.jsx?")},208:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar _componentsSupportDocumentationLink = __webpack_require__(24);\n\nvar _componentsSupportDocumentationLink2 = _interopRequireDefault(_componentsSupportDocumentationLink);\n\nvar _utilDocsHelper = __webpack_require__(17);\n\nvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar FlexdateConverterConfiguration = _react2['default'].createClass({\n  displayName: 'FlexdateConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject(configuration) {\n    return { type: this.props.type, config: configuration || this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (data) {\n      var newConfig = _this.props.configuration;\n      // data can be an event or a value, we need to check its type :sick:\n      newConfig[key] = typeof data === 'object' ? _utilFormsUtils2['default'].getValueFromInput(data.target) : data;\n      _this.props.onChange(_this.props.type, _this._getConverterObject(newConfig));\n    };\n  },\n  render: function render() {\n    var timezoneHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Time zone to apply to date. Read more in the ',\n      _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], {\n        page: _utilDocsHelper2['default'].PAGES.PAGE_FLEXIBLE_DATE_CONVERTER, text: 'documentation' }),\n      '.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Flexibly parse date',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter }),\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'row-sm' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 9, mdOffset: 2 },\n          _react2['default'].createElement(\n            'div',\n            { className: 'xtrc-converter-subfields' },\n            _react2['default'].createElement(\n              _reactBootstrap.Input,\n              { label: 'Time Zone',\n                id: this.props.type + '_converter_timezone',\n                labelClassName: 'col-sm-3',\n                wrapperClassName: 'col-sm-9',\n                help: timezoneHelpMessage },\n              _react2['default'].createElement(_componentsCommon.TimezoneSelect, { ref: 'timezone',\n                id: this.props.type + '_converter_timezone',\n                className: 'timezone-select',\n                value: this.props.configuration.time_zone,\n                onChange: this._onChange('time_zone') })\n            )\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = FlexdateConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"FlexdateConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/FlexdateConverterConfiguration.jsx\n ** module id = 208\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/FlexdateConverterConfiguration.jsx?")},209:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar HashConverterConfiguration = _react2['default'].createClass({\n  displayName: 'HashConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Build MD5 hash from value',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = HashConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"HashConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/HashConverterConfiguration.jsx\n ** module id = 209\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/HashConverterConfiguration.jsx?")},210:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar IpAnonymizerConverterConfiguration = _react2['default'].createClass({\n  displayName: 'IpAnonymizerConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Anonymize IPv4 addresses by replacing last octet',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = IpAnonymizerConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"IpAnonymizerConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/IpAnonymizerConverterConfiguration.jsx\n ** module id = 210\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/IpAnonymizerConverterConfiguration.jsx?")},211:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar LowercaseConverterConfiguration = _react2['default'].createClass({\n  displayName: 'LowercaseConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Transform value to lowercase',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = LowercaseConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"LowercaseConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/LowercaseConverterConfiguration.jsx\n ** module id = 211\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/LowercaseConverterConfiguration.jsx?");
},212:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar NumericConverterConfiguration = _react2['default'].createClass({\n  displayName: 'NumericConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Convert to numeric value',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = NumericConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"NumericConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/NumericConverterConfiguration.jsx\n ** module id = 212\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/NumericConverterConfiguration.jsx?")},213:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar SplitAndCountConverterConfiguration = _react2['default'].createClass({\n  displayName: 'SplitAndCountConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject(configuration) {\n    return { type: this.props.type, config: configuration || this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      var newConfig = _this.props.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(_this.props.type, _this._getConverterObject(newConfig));\n    };\n  },\n  render: function render() {\n    var splitByHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'The Split & Count converter is splitting the extracted part by the defined character and stores the token',\n      ' ',\n      'count as field. ',\n      _react2['default'].createElement(\n        'strong',\n        null,\n        'Example:'\n      ),\n      ' ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        '?fields=first_name,last_name,zip'\n      ),\n      ' split by ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        ','\n      ),\n      ' ',\n      'results in ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        '3'\n      ),\n      '. You just counted the requested fields of a GET user REST request.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        ref: 'converterEnabled',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Split & Count',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter }),\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'row-sm' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { md: 9, mdOffset: 2 },\n          _react2['default'].createElement(\n            'div',\n            { className: 'xtrc-converter-subfields' },\n            _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n              id: this.props.type + '_converter_split_by',\n              label: 'Split by',\n              defaultValue: this.props.configuration.split_by,\n              labelClassName: 'col-md-3',\n              wrapperClassName: 'col-md-9',\n              onChange: this._onChange('split_by'),\n              required: this.refs.converterEnabled && this.refs.converterEnabled.getChecked(),\n              help: splitByHelpMessage })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = SplitAndCountConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SplitAndCountConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/SplitAndCountConverterConfiguration.jsx\n ** module id = 213\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/SplitAndCountConverterConfiguration.jsx?")},214:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar SyslogPriFacilityConverterConfiguration = _react2['default'].createClass({\n  displayName: 'SyslogPriFacilityConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Convert from PRI to syslog facility',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = SyslogPriFacilityConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SyslogPriFacilityConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/SyslogPriFacilityConverterConfiguration.jsx\n ** module id = 214\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/SyslogPriFacilityConverterConfiguration.jsx?")},215:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar SyslogPriLevelConverterConfiguration = _react2['default'].createClass({\n  displayName: 'SyslogPriLevelConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Convert from PRI to syslog level',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = SyslogPriLevelConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SyslogPriLevelConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/SyslogPriLevelConverterConfiguration.jsx\n ** module id = 215\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/SyslogPriLevelConverterConfiguration.jsx?")},216:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar TokenizerConverterConfiguration = _react2['default'].createClass({\n  displayName: 'TokenizerConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Add Key=Value pairs as fields',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = TokenizerConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"TokenizerConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/TokenizerConverterConfiguration.jsx\n ** module id = 216\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/TokenizerConverterConfiguration.jsx?")},217:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar UppercaseConverterConfiguration = _react2['default'].createClass({\n  displayName: 'UppercaseConverterConfiguration',\n\n  propTypes: {\n    type: _react.PropTypes.string.isRequired,\n    configuration: _react.PropTypes.object.isRequired,\n    onChange: _react.PropTypes.func.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.props.type, this._getConverterObject());\n  },\n  _getConverterObject: function _getConverterObject() {\n    return { type: this.props.type, config: this.props.configuration };\n  },\n  _toggleConverter: function _toggleConverter(event) {\n    var converter = undefined;\n    if (_utilFormsUtils2['default'].getValueFromInput(event.target) === true) {\n      converter = this._getConverterObject();\n    }\n\n    this.props.onChange(this.props.type, converter);\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'xtrc-converter' },\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'enable-' + this.props.type + '-converter',\n        label: 'Transform value to uppercase',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: true,\n        onChange: this._toggleConverter })\n    );\n  }\n});\n\nexports['default'] = UppercaseConverterConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"UppercaseConverterConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/UppercaseConverterConfiguration.jsx\n ** module id = 217\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/UppercaseConverterConfiguration.jsx?")},218:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _CSVConverterConfiguration2 = __webpack_require__(206);\n\nvar _CSVConverterConfiguration3 = _interopRequireDefault(_CSVConverterConfiguration2);\n\nexports.CSVConverterConfiguration = _CSVConverterConfiguration3['default'];\n\nvar _DateConverterConfiguration2 = __webpack_require__(207);\n\nvar _DateConverterConfiguration3 = _interopRequireDefault(_DateConverterConfiguration2);\n\nexports.DateConverterConfiguration = _DateConverterConfiguration3['default'];\n\nvar _FlexdateConverterConfiguration2 = __webpack_require__(208);\n\nvar _FlexdateConverterConfiguration3 = _interopRequireDefault(_FlexdateConverterConfiguration2);\n\nexports.FlexdateConverterConfiguration = _FlexdateConverterConfiguration3['default'];\n\nvar _HashConverterConfiguration2 = __webpack_require__(209);\n\nvar _HashConverterConfiguration3 = _interopRequireDefault(_HashConverterConfiguration2);\n\nexports.HashConverterConfiguration = _HashConverterConfiguration3['default'];\n\nvar _IpAnonymizerConverterConfiguration2 = __webpack_require__(210);\n\nvar _IpAnonymizerConverterConfiguration3 = _interopRequireDefault(_IpAnonymizerConverterConfiguration2);\n\nexports.IpAnonymizerConverterConfiguration = _IpAnonymizerConverterConfiguration3['default'];\n\nvar _LowercaseConverterConfiguration2 = __webpack_require__(211);\n\nvar _LowercaseConverterConfiguration3 = _interopRequireDefault(_LowercaseConverterConfiguration2);\n\nexports.LowercaseConverterConfiguration = _LowercaseConverterConfiguration3['default'];\n\nvar _NumericConverterConfiguration2 = __webpack_require__(212);\n\nvar _NumericConverterConfiguration3 = _interopRequireDefault(_NumericConverterConfiguration2);\n\nexports.NumericConverterConfiguration = _NumericConverterConfiguration3['default'];\n\nvar _SplitAndCountConverterConfiguration2 = __webpack_require__(213);\n\nvar _SplitAndCountConverterConfiguration3 = _interopRequireDefault(_SplitAndCountConverterConfiguration2);\n\nexports.SplitAndCountConverterConfiguration = _SplitAndCountConverterConfiguration3['default'];\n\nvar _SyslogPriFacilityConverterConfiguration2 = __webpack_require__(214);\n\nvar _SyslogPriFacilityConverterConfiguration3 = _interopRequireDefault(_SyslogPriFacilityConverterConfiguration2);\n\nexports.SyslogPriFacilityConverterConfiguration = _SyslogPriFacilityConverterConfiguration3['default'];\n\nvar _SyslogPriLevelConverterConfiguration2 = __webpack_require__(215);\n\nvar _SyslogPriLevelConverterConfiguration3 = _interopRequireDefault(_SyslogPriLevelConverterConfiguration2);\n\nexports.SyslogPriLevelConverterConfiguration = _SyslogPriLevelConverterConfiguration3['default'];\n\nvar _TokenizerConverterConfiguration2 = __webpack_require__(216);\n\nvar _TokenizerConverterConfiguration3 = _interopRequireDefault(_TokenizerConverterConfiguration2);\n\nexports.TokenizerConverterConfiguration = _TokenizerConverterConfiguration3['default'];\n\nvar _UppercaseConverterConfiguration2 = __webpack_require__(217);\n\nvar _UppercaseConverterConfiguration3 = _interopRequireDefault(_UppercaseConverterConfiguration2);\n\nexports.UppercaseConverterConfiguration = _UppercaseConverterConfiguration3['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"index.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/converters_configuration/index.jsx\n ** module id = 218\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/converters_configuration/index.jsx?")},219:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar CopyInputExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'CopyInputExtractorConfiguration',\n\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      { className: 'form-group' },\n      _react2['default'].createElement(\n        'div',\n        { className: 'col-md-offset-2 col-md-10' },\n        _react2['default'].createElement(\n          _reactBootstrap.Panel,\n          { bsStyle: 'info', style: { marginBottom: 0 } },\n          'The entire input will be copied verbatim.'\n        )\n      )\n    );\n  }\n});\nexports['default'] = CopyInputExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"CopyInputExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/CopyInputExtractorConfiguration.jsx\n ** module id = 219\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/CopyInputExtractorConfiguration.jsx?");
},220:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _reactRouterBootstrap = __webpack_require__(19);\n\nvar _routingRoutes = __webpack_require__(13);\n\nvar _routingRoutes2 = _interopRequireDefault(_routingRoutes);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar GrokExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'GrokExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false\n    };\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.props.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    var promise = ToolsStore.testGrok(this.props.configuration.grok_pattern, this.props.exampleMessage);\n    promise.then(function (result) {\n      if (!result.matched) {\n        _utilUserNotification2['default'].warning('We were not able to run the grok extraction. Please check your parameters.');\n        return;\n      }\n\n      var matches = [];\n      result.matches.map(function (match) {\n        matches.push(_react2['default'].createElement(\n          'dt',\n          { key: match.name + '-name' },\n          match.name\n        ));\n        matches.push(_react2['default'].createElement(\n          'dd',\n          { key: match.name + '-value' },\n          _react2['default'].createElement(\n            'samp',\n            null,\n            match.match\n          )\n        ));\n      });\n\n      var preview = matches.length === 0 ? '' : _react2['default'].createElement(\n        'dl',\n        null,\n        matches\n      );\n      _this2.props.onExtractorPreviewLoad(preview);\n    });\n\n    promise['finally'](function () {\n      return _this2.setState({ trying: false });\n    });\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    return this.state.trying || !this.props.configuration.grok_pattern || !this.props.exampleMessage;\n  },\n  render: function render() {\n    var helpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Matches the field against the current Grok pattern list, use ',\n      _react2['default'].createElement(\n        'b',\n        null,\n        '%{PATTERN-NAME}'\n      ),\n      ' to refer to a',\n      ' ',\n      _react2['default'].createElement(\n        _reactRouterBootstrap.LinkContainer,\n        { to: _routingRoutes2['default'].SYSTEM.GROKPATTERNS },\n        _react2['default'].createElement(\n          'a',\n          null,\n          'stored pattern'\n        )\n      ),\n      '.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { id: 'grok_pattern',\n          label: 'Grok pattern',\n          labelClassName: 'col-md-2',\n          wrapperClassName: 'col-md-10',\n          help: helpMessage },\n        _react2['default'].createElement(\n          _reactBootstrap.Row,\n          { className: 'row-sm' },\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 11 },\n            _react2['default'].createElement('input', { type: 'text', id: 'grok_pattern', className: 'form-control',\n              defaultValue: this.props.configuration.grok_pattern,\n              onChange: this._onChange('grok_pattern'),\n              required: true })\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 1, className: 'text-right' },\n            _react2['default'].createElement(\n              _reactBootstrap.Button,\n              { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n              this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n            )\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = GrokExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"GrokExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/GrokExtractorConfiguration.jsx\n ** module id = 220\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/GrokExtractorConfiguration.jsx?")},221:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar JSONExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'JSONExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false,\n      configuration: this._getEffectiveConfiguration(this.props.configuration)\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.state.configuration);\n  },\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    this.setState({ configuration: this._getEffectiveConfiguration(nextProps.configuration) });\n  },\n  DEFAULT_CONFIGURATION: { list_separator: ', ', key_separator: '_', kv_separator: '=' },\n  _getEffectiveConfiguration: function _getEffectiveConfiguration(configuration) {\n    return _utilExtractorUtils2['default'].getEffectiveConfiguration(this.DEFAULT_CONFIGURATION, configuration);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.state.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    var configuration = this.state.configuration;\n    var promise = ToolsStore.testJSON(configuration.flatten, configuration.list_separator, configuration.key_separator, configuration.kv_separator, this.props.exampleMessage);\n\n    promise.then(function (result) {\n      var matches = [];\n      for (var match in result.matches) {\n        if (result.matches.hasOwnProperty(match)) {\n          matches.push(_react2['default'].createElement(\n            'dt',\n            { key: match + '-name' },\n            match\n          ));\n          matches.push(_react2['default'].createElement(\n            'dd',\n            { key: match + '-value' },\n            _react2['default'].createElement(\n              'samp',\n              null,\n              result.matches[match]\n            )\n          ));\n        }\n      }\n\n      var preview = matches.length === 0 ? '' : _react2['default'].createElement(\n        'dl',\n        null,\n        matches\n      );\n      _this2.props.onExtractorPreviewLoad(preview);\n    });\n\n    promise['finally'](function () {\n      return _this2.setState({ trying: false });\n    });\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    return this.state.trying || !this.props.exampleMessage;\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'flatten',\n        label: 'Flatten structures',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: this.state.configuration.flatten,\n        onChange: this._onChange('flatten'),\n        help: 'Whether to flatten JSON objects into a single message field or to expand into multiple fields.' }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'list_separator',\n        label: 'List item separator',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.list_separator,\n        required: true,\n        onChange: this._onChange('list_separator'),\n        help: 'What string to use to concatenate items of a JSON list.' }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'key_separator',\n        label: 'Key separator',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.key_separator,\n        required: true,\n        onChange: this._onChange('key_separator'),\n        help: _react2['default'].createElement(\n          'span',\n          null,\n          'What string to use to concatenate different keys of a nested JSON object (only used if ',\n          _react2['default'].createElement(\n            'em',\n            null,\n            'not'\n          ),\n          ' flattened).'\n        ) }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'kv_separator',\n        label: 'Key/value separator',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.kv_separator,\n        required: true,\n        onChange: this._onChange('kv_separator'),\n        help: 'What string to use when concatenating key/value pairs of a JSON object (only used if flattened).' }),\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { wrapperClassName: 'col-md-offset-2 col-md-10' },\n        _react2['default'].createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n          this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = JSONExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"JSONExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/JSONExtractorConfiguration.jsx\n ** module id = 221\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/JSONExtractorConfiguration.jsx?")},222:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsSupportDocumentationLink = __webpack_require__(24);\n\nvar _componentsSupportDocumentationLink2 = _interopRequireDefault(_componentsSupportDocumentationLink);\n\nvar _utilDocsHelper = __webpack_require__(17);\n\nvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar RegexExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'RegexExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false\n    };\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.props.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    var promise = ToolsStore.testRegex(this.props.configuration.regex_value, this.props.exampleMessage);\n    promise.then(function (result) {\n      if (!result.matched) {\n        _utilUserNotification2['default'].warning('Regular expression did not match.');\n        return;\n      }\n\n      if (!result.match) {\n        _utilUserNotification2['default'].warning('Regular expression does not contain any matcher group to extract.');\n        return;\n      }\n\n      var preview = result.match.match ? _react2['default'].createElement(\n        'samp',\n        null,\n        result.match.match\n      ) : '';\n      _this2.props.onExtractorPreviewLoad(preview);\n    });\n\n    promise['finally'](function () {\n      return _this2.setState({ trying: false });\n    });\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    return this.state.trying || !this.props.configuration.regex_value || !this.props.exampleMessage;\n  },\n  render: function render() {\n    var helpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'The regular expression used for extraction. First matcher group is used.',\n      ' ',\n      'Learn more in the ',\n      _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], { page: _utilDocsHelper2['default'].PAGES.EXTRACTORS, text: 'documentation' }),\n      '.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { label: 'Regular expression',\n          labelClassName: 'col-md-2',\n          wrapperClassName: 'col-md-10',\n          help: helpMessage },\n        _react2['default'].createElement(\n          _reactBootstrap.Row,\n          { className: 'row-sm' },\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 11 },\n            _react2['default'].createElement('input', { type: 'text', id: 'regex_value', className: 'form-control',\n              defaultValue: this.props.configuration.regex_value,\n              placeholder: '^.*string(.+)$',\n              onChange: this._onChange('regex_value'),\n              required: true })\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { md: 1, className: 'text-right' },\n            _react2['default'].createElement(\n              _reactBootstrap.Button,\n              { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n              this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n            )\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = RegexExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"RegexExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/RegexExtractorConfiguration.jsx\n ** module id = 222\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/RegexExtractorConfiguration.jsx?")},223:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsSupportDocumentationLink = __webpack_require__(24);\n\nvar _componentsSupportDocumentationLink2 = _interopRequireDefault(_componentsSupportDocumentationLink);\n\nvar _utilDocsHelper = __webpack_require__(17);\n\nvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar RegexReplaceExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'RegexReplaceExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false\n    };\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.props.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    var configuration = this.props.configuration;\n    var promise = ToolsStore.testRegexReplace(configuration.regex, configuration.replacement, configuration.replace_all, this.props.exampleMessage);\n    promise.then(function (result) {\n      if (!result.matched) {\n        _utilUserNotification2['default'].warning('Regular expression did not match.');\n        return;\n      }\n\n      if (!result.match) {\n        _utilUserNotification2['default'].warning('Regular expression does not contain any matcher group to extract.');\n        return;\n      }\n\n      var preview = result.match.match ? _react2['default'].createElement(\n        'samp',\n        null,\n        result.match.match\n      ) : '';\n      _this2.props.onExtractorPreviewLoad(preview);\n    });\n\n    promise['finally'](function () {\n      return _this2.setState({ trying: false });\n    });\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    return this.state.trying || !this.props.configuration.regex || !this.props.configuration.replacement || !this.props.exampleMessage;\n  },\n  render: function render() {\n    var regexHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'The regular expression used for extraction.',\n      ' ',\n      'Learn more in the ',\n      _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], { page: _utilDocsHelper2['default'].PAGES.EXTRACTORS, text: 'documentation' }),\n      '.'\n    );\n\n    var replacementHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'The replacement used for the matching text. Please refer to the',\n      ' ',\n      _react2['default'].createElement(\n        'a',\n        { target: '_blank',\n          href: 'https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#replaceAll(java.lang.String)' },\n        'Matcher'\n      ),\n      ' ',\n      'API documentation for the possible options.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'regex',\n        label: 'Regular expression',\n        labelClassName: 'col-md-2',\n        placeholder: '^.*string(.+)$',\n        onChange: this._onChange('regex'),\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.props.configuration.regex,\n        required: true,\n        help: regexHelpMessage }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'replacement',\n        label: 'Replacement',\n        labelClassName: 'col-md-2',\n        placeholder: '$1',\n        onChange: this._onChange('replacement'),\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.props.configuration.replacement,\n        required: true,\n        help: replacementHelpMessage }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'checkbox',\n        id: 'replace_all',\n        label: 'Replace all occurrences of the pattern',\n        wrapperClassName: 'col-md-offset-2 col-md-10',\n        defaultChecked: this.props.configuration.replace_all,\n        onChange: this._onChange('replace_all'),\n        help: 'Whether to replace all occurrences of the given pattern or only the first occurrence.' }),\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { wrapperClassName: 'col-md-offset-2 col-md-10' },\n        _react2['default'].createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n          this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = RegexReplaceExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"RegexReplaceExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/RegexReplaceExtractorConfiguration.jsx\n ** module id = 223\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/RegexReplaceExtractorConfiguration.jsx?")},224:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar SplitAndIndexExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'SplitAndIndexExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false,\n      configuration: this._getEffectiveConfiguration(this.props.configuration)\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.state.configuration);\n  },\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    this.setState({ configuration: this._getEffectiveConfiguration(nextProps.configuration) });\n  },\n  DEFAULT_CONFIGURATION: { index: 1 },\n  _getEffectiveConfiguration: function _getEffectiveConfiguration(configuration) {\n    return _utilExtractorUtils2['default'].getEffectiveConfiguration(this.DEFAULT_CONFIGURATION, configuration);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.state.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    var promise = ToolsStore.testSplitAndIndex(this.state.configuration.split_by, this.state.configuration.index, this.props.exampleMessage);\n\n    promise.then(function (result) {\n      if (!result.successful) {\n        _utilUserNotification2['default'].warning('We were not able to run the split and index extraction. Please check your parameters.');\n        return;\n      }\n\n      var preview = result.cut ? _react2['default'].createElement(\n        'samp',\n        null,\n        result.cut\n      ) : '';\n      _this2.props.onExtractorPreviewLoad(preview);\n    });\n\n    promise['finally'](function () {\n      return _this2.setState({ trying: false });\n    });\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    var configuration = this.state.configuration;\n    return this.state.trying || configuration.split_by === '' || configuration.index === undefined || configuration.index < 1 || !this.props.exampleMessage;\n  },\n  render: function render() {\n    var splitByHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'What character to split on. ',\n      _react2['default'].createElement(\n        'strong',\n        null,\n        'Example:'\n      ),\n      ' A whitespace character will split',\n      ' ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'foo bar baz'\n      ),\n      ' to ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        '[foo,bar,baz]'\n      ),\n      '.'\n    );\n\n    var indexHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'What part of the split string to you want to use? ',\n      _react2['default'].createElement(\n        'strong',\n        null,\n        'Example:'\n      ),\n      ' ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        '2'\n      ),\n      ' selects ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'bar'\n      ),\n      ' ',\n      'from ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'foo bar baz'\n      ),\n      ' when split by whitespace.'\n    );\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n        id: 'split_by',\n        label: 'Split by',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.split_by,\n        onChange: this._onChange('split_by'),\n        required: true,\n        help: splitByHelpMessage }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n        id: 'index',\n        label: 'Target index',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.index,\n        onChange: this._onChange('index'),\n        min: '1',\n        required: true,\n        help: indexHelpMessage }),\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { wrapperClassName: 'col-md-offset-2 col-md-10' },\n        _react2['default'].createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n          this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = SplitAndIndexExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SplitAndIndexExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/SplitAndIndexExtractorConfiguration.jsx\n ** module id = 224\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/SplitAndIndexExtractorConfiguration.jsx?");
},225:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilExtractorUtils = __webpack_require__(39);\n\nvar _utilExtractorUtils2 = _interopRequireDefault(_utilExtractorUtils);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar ToolsStore = _injectionStoreProvider2['default'].getStore('Tools');\n\nvar SubstringExtractorConfiguration = _react2['default'].createClass({\n  displayName: 'SubstringExtractorConfiguration',\n\n  propTypes: {\n    configuration: _react.PropTypes.object.isRequired,\n    exampleMessage: _react.PropTypes.string,\n    onChange: _react.PropTypes.func.isRequired,\n    onExtractorPreviewLoad: _react.PropTypes.func.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      trying: false,\n      configuration: this._getEffectiveConfiguration(this.props.configuration)\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    this.props.onChange(this.state.configuration);\n  },\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    this.setState({ configuration: this._getEffectiveConfiguration(nextProps.configuration) });\n  },\n  DEFAULT_CONFIGURATION: { begin_index: 0, end_index: 1 },\n  _getEffectiveConfiguration: function _getEffectiveConfiguration(configuration) {\n    return _utilExtractorUtils2['default'].getEffectiveConfiguration(this.DEFAULT_CONFIGURATION, configuration);\n  },\n  _onChange: function _onChange(key) {\n    var _this = this;\n\n    return function (event) {\n      _this.props.onExtractorPreviewLoad(undefined);\n      var newConfig = _this.state.configuration;\n      newConfig[key] = _utilFormsUtils2['default'].getValueFromInput(event.target);\n      _this.props.onChange(newConfig);\n    };\n  },\n  _verifySubstringInputs: function _verifySubstringInputs() {\n    var beginIndex = this.refs.beginIndex.getInputDOMNode();\n    var endIndex = this.refs.endIndex.getInputDOMNode();\n\n    if (this.state.configuration.begin_index === undefined || this.state.configuration.begin_index < 0) {\n      beginIndex.value = 0;\n      this._onChange('begin_index')({ target: beginIndex });\n    }\n\n    if (this.state.configuration.end_index === undefined || this.state.configuration.end_index < 0) {\n      endIndex.value = 0;\n      this._onChange('end_index')({ target: endIndex });\n    }\n\n    if (this.state.configuration.begin_index > this.state.configuration.end_index) {\n      beginIndex.value = this.state.configuration.end_index;\n      this._onChange('begin_index')({ target: beginIndex });\n    }\n  },\n  _onTryClick: function _onTryClick() {\n    var _this2 = this;\n\n    this.setState({ trying: true });\n\n    this._verifySubstringInputs();\n\n    if (this.state.configuration.begin_index === this.state.configuration.end_index) {\n      this.props.onExtractorPreviewLoad('');\n      this.setState({ trying: false });\n    } else {\n      var promise = ToolsStore.testSubstring(this.state.configuration.begin_index, this.state.configuration.end_index, this.props.exampleMessage);\n\n      promise.then(function (result) {\n        if (!result.successful) {\n          _utilUserNotification2['default'].warning('We were not able to run the substring extraction. Please check index boundaries.');\n          return;\n        }\n        _this2.props.onExtractorPreviewLoad(_react2['default'].createElement(\n          'samp',\n          null,\n          result.cut\n        ));\n      });\n\n      promise['finally'](function () {\n        return _this2.setState({ trying: false });\n      });\n    }\n  },\n  _isTryButtonDisabled: function _isTryButtonDisabled() {\n    var configuration = this.state.configuration;\n    return this.state.trying || configuration.begin_index === undefined || configuration.begin_index < 0 || configuration.end_index === undefined || configuration.end_index < 0 || !this.props.exampleMessage;\n  },\n  render: function render() {\n    var endIndexHelpMessage = _react2['default'].createElement(\n      'span',\n      null,\n      'Where to end extracting. (Exclusive)',\n      ' ',\n      _react2['default'].createElement(\n        'strong',\n        null,\n        'Example:'\n      ),\n      ' ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        '1,5'\n      ),\n      ' cuts ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'love'\n      ),\n      ' from the string ',\n      _react2['default'].createElement(\n        'em',\n        null,\n        'ilovelogs'\n      ),\n      '.'\n    );\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n        ref: 'beginIndex',\n        id: 'begin_index',\n        label: 'Begin index',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.begin_index,\n        onChange: this._onChange('begin_index'),\n        min: '0',\n        required: true,\n        help: 'Character position from where to start extracting. (Inclusive)' }),\n      _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n        ref: 'endIndex',\n        id: 'end_index',\n        label: 'End index',\n        labelClassName: 'col-md-2',\n        wrapperClassName: 'col-md-10',\n        defaultValue: this.state.configuration.end_index,\n        onChange: this._onChange('end_index'),\n        min: '0',\n        required: true,\n        help: endIndexHelpMessage }),\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { wrapperClassName: 'col-md-offset-2 col-md-10' },\n        _react2['default'].createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', onClick: this._onTryClick, disabled: this._isTryButtonDisabled() },\n          this.state.trying ? _react2['default'].createElement('i', { className: 'fa fa-spin fa-spinner' }) : 'Try'\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = SubstringExtractorConfiguration;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SubstringExtractorConfiguration.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/SubstringExtractorConfiguration.jsx\n ** module id = 225\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/SubstringExtractorConfiguration.jsx?")},226:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _CopyInputExtractorConfiguration2 = __webpack_require__(219);\n\nvar _CopyInputExtractorConfiguration3 = _interopRequireDefault(_CopyInputExtractorConfiguration2);\n\nexports.CopyInputExtractorConfiguration = _CopyInputExtractorConfiguration3['default'];\n\nvar _GrokExtractorConfiguration2 = __webpack_require__(220);\n\nvar _GrokExtractorConfiguration3 = _interopRequireDefault(_GrokExtractorConfiguration2);\n\nexports.GrokExtractorConfiguration = _GrokExtractorConfiguration3['default'];\n\nvar _JSONExtractorConfiguration2 = __webpack_require__(221);\n\nvar _JSONExtractorConfiguration3 = _interopRequireDefault(_JSONExtractorConfiguration2);\n\nexports.JSONExtractorConfiguration = _JSONExtractorConfiguration3['default'];\n\nvar _RegexExtractorConfiguration2 = __webpack_require__(222);\n\nvar _RegexExtractorConfiguration3 = _interopRequireDefault(_RegexExtractorConfiguration2);\n\nexports.RegexExtractorConfiguration = _RegexExtractorConfiguration3['default'];\n\nvar _RegexReplaceExtractorConfiguration2 = __webpack_require__(223);\n\nvar _RegexReplaceExtractorConfiguration3 = _interopRequireDefault(_RegexReplaceExtractorConfiguration2);\n\nexports.RegexReplaceExtractorConfiguration = _RegexReplaceExtractorConfiguration3['default'];\n\nvar _SplitAndIndexExtractorConfiguration2 = __webpack_require__(224);\n\nvar _SplitAndIndexExtractorConfiguration3 = _interopRequireDefault(_SplitAndIndexExtractorConfiguration2);\n\nexports.SplitAndIndexExtractorConfiguration = _SplitAndIndexExtractorConfiguration3['default'];\n\nvar _SubstringExtractorConfiguration2 = __webpack_require__(225);\n\nvar _SubstringExtractorConfiguration3 = _interopRequireDefault(_SubstringExtractorConfiguration2);\n\nexports.SubstringExtractorConfiguration = _SubstringExtractorConfiguration3['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"index.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/extractors/extractors_configuration/index.jsx\n ** module id = 226\n ** module chunks = 7 8\n **/\n//# sourceURL=webpack:///./src/components/extractors/extractors_configuration/index.jsx?")},964:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(4);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _componentsCommonSpinner = __webpack_require__(23);\n\nvar _componentsCommonSpinner2 = _interopRequireDefault(_componentsCommonSpinner);\n\nvar _componentsCommonPageHeader = __webpack_require__(38);\n\nvar _componentsCommonPageHeader2 = _interopRequireDefault(_componentsCommonPageHeader);\n\nvar _componentsSupportDocumentationLink = __webpack_require__(24);\n\nvar _componentsSupportDocumentationLink2 = _interopRequireDefault(_componentsSupportDocumentationLink);\n\nvar _componentsExtractorsEditExtractor = __webpack_require__(202);\n\nvar _componentsExtractorsEditExtractor2 = _interopRequireDefault(_componentsExtractorsEditExtractor);\n\nvar _utilDocsHelper = __webpack_require__(17);\n\nvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\nvar _routingRoutes = __webpack_require__(13);\n\nvar _routingRoutes2 = _interopRequireDefault(_routingRoutes);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _injectionActionsProvider = __webpack_require__(6);\n\nvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\nvar ExtractorsStore = _injectionStoreProvider2['default'].getStore('Extractors');\nvar InputsStore = _injectionStoreProvider2['default'].getStore('Inputs');\nvar MessagesStore = _injectionStoreProvider2['default'].getStore('Messages');\n\nvar InputsActions = _injectionActionsProvider2['default'].getActions('Inputs');\n\nvar CreateExtractorsPage = _react2['default'].createClass({\n  displayName: 'CreateExtractorsPage',\n\n  propTypes: {\n    params: _react.PropTypes.object.isRequired,\n    location: _react.PropTypes.object.isRequired,\n    history: _react.PropTypes.object.isRequired\n  },\n  mixins: [_reflux2['default'].connect(InputsStore)],\n  getInitialState: function getInitialState() {\n    var query = this.props.location.query;\n\n    return {\n      extractor: ExtractorsStore['new'](query.extractor_type, query.field),\n      input: undefined,\n      exampleMessage: undefined,\n      extractorType: query.extractor_type,\n      field: query.field,\n      exampleIndex: query.example_index,\n      exampleId: query.example_id\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    InputsActions.get.triggerPromise(this.props.params.inputId);\n    MessagesStore.loadMessage(this.state.exampleIndex, this.state.exampleId).then(function (message) {\n      return _this.setState({ exampleMessage: message });\n    });\n  },\n  _isLoading: function _isLoading() {\n    return !(this.state.input && this.state.exampleMessage);\n  },\n  _extractorSaved: function _extractorSaved() {\n    var url = undefined;\n    if (this.state.input.global) {\n      url = _routingRoutes2['default'].global_input_extractors(this.props.params.inputId);\n    } else {\n      url = _routingRoutes2['default'].local_input_extractors(this.props.params.nodeId, this.props.params.inputId);\n    }\n\n    this.props.history.pushState(null, url);\n  },\n  render: function render() {\n    if (this._isLoading()) {\n      return _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n    }\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _componentsCommonPageHeader2['default'],\n        { title: _react2['default'].createElement(\n            'span',\n            null,\n            'New extractor for input ',\n            _react2['default'].createElement(\n              'em',\n              null,\n              this.state.input.title\n            )\n          ) },\n        _react2['default'].createElement(\n          'span',\n          null,\n          'Extractors are applied on every message that is received by an input. Use them to extract and transform',\n          ' ',\n          'any text data into fields that allow you easy filtering and analysis later on.'\n        ),\n        _react2['default'].createElement(\n          'span',\n          null,\n          'Find more information about extractors in the',\n          ' ',\n          _react2['default'].createElement(_componentsSupportDocumentationLink2['default'], { page: _utilDocsHelper2['default'].PAGES.EXTRACTORS, text: 'documentation' }),\n          '.'\n        )\n      ),\n      _react2['default'].createElement(_componentsExtractorsEditExtractor2['default'], { action: 'create',\n        extractor: this.state.extractor,\n        inputId: this.state.input.id,\n        exampleMessage: this.state.exampleMessage.fields[this.state.field],\n        onSave: this._extractorSaved })\n    );\n  }\n});\n\nexports['default'] = CreateExtractorsPage;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"CreateExtractorsPage.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader!./~/babel-loader!./src/pages/CreateExtractorsPage.jsx\n ** module id = 964\n ** module chunks = 8\n **/\n//# sourceURL=webpack:///./src/pages/CreateExtractorsPage.jsx?./~/react-hot-loader!./~/babel-loader")}});




© 2015 - 2024 Weber Informatics LLC | Privacy Policy