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

web-interface.assets.26.746b58959a350aa1ebcf.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.6
Show newest version
{"version":3,"sources":["webpack:///26.746b58959a350aa1ebcf.js","webpack:///./src/components/streamrules/StreamRuleForm.jsx","webpack:///./src/components/streamrules/HumanReadableStreamRule.jsx","webpack:///./src/components/streamrules/StreamRuleList.jsx","webpack:///./src/components/streamrules/StreamRule.jsx","webpack:///./src/components/messageloaders/LoaderTabs.jsx","webpack:///./src/components/messageloaders/RawMessageLoader.jsx","webpack:///./src/components/messageloaders/RecentMessageLoader.jsx","webpack:///./src/pages/StreamEditPage.jsx","webpack:///./src/components/streamrules/StreamRulesEditor.jsx","webpack:///./src/components/streams/MatchingTypeSwitcher.jsx","webpack:///delegated ./node_modules/react-addons-linked-state-mixin/index.js from dll-reference __vendor","webpack:///./src/components/extractors/MessageLoader.jsx","webpack:///./src/components/inputs/InputDropdown.jsx"],"names":["webpackJsonp","1006","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_propTypes","_propTypes2","_react","_react2","_reactBootstrap","_reactAddonsLinkedStateMixin","_reactAddonsLinkedStateMixin2","_bootstrap","_BootstrapModalForm","_BootstrapModalForm2","_common","_support","_DocsHelper","_DocsHelper2","_Version","_Version2","_HumanReadableStreamRule","_HumanReadableStreamRule2","StreamRuleForm","createClass","displayName","propTypes","onSubmit","func","isRequired","streamRule","object","streamRuleTypes","array","title","string","mixins","getDefaultProps","field","type","inverted","description","getInitialState","this","props","FIELD_PRESENCE_RULE_TYPE","ALWAYS_MATCH_RULE_TYPE","_resetValues","setState","_onSubmit","state","id","refs","modal","close","_formatStreamRuleType","streamRuleType","createElement","key","short_desc","open","render","map","fieldBox","String","TypeAheadFieldInput","ref","required","label","valueLink","linkState","autoFocus","valueBox","Input","name","onSubmitForm","submitButtonText","formProps","Col","md","checkedLink","className","href","getMajorAndMinorVersion","target","DocumentationLink","page","PAGES","STREAMS","text","1007","HumanReadableStreamRule","EMPTY_TAG","_getTypeForInteger","filter","_formatRuleValue","_formatRuleField","negation","longDesc","long_desc","1081","_StreamRule","_StreamRule2","StreamRuleList","matchData","onDelete","permissions","stream","_formatStreamRules","streamRules","_this","length","rules","Spinner","1082","_PermissionsMixin","_PermissionsMixin2","_StreamRuleForm","_StreamRuleForm2","_StoreProvider","_StoreProvider2","_UserNotification","_UserNotification2","StreamRulesStore","getStore","StreamRule","_onEdit","event","preventDefault","streamRuleForm","_onDelete","window","confirm","remove","success","streamRuleId","data","_this2","update","_formatActionItems","onClick","style","marginRight","_getMatchDataClassNames","actionItems","isPermitted","1094","_reflux","_reflux2","_immutable","_immutable2","_ActionsProvider","_ActionsProvider2","_MessageShow","_MessageShow2","_MessageLoader","_MessageLoader2","_RawMessageLoader","_RawMessageLoader2","_RecentMessageLoader","_RecentMessageLoader2","InputsStore","StreamsStore","InputsActions","getActions","LoaderTabs","tabs","oneOfType","oneOf","arrayOf","messageId","index","onMessageLoaded","selectedInputId","customFieldActions","node","disableMessagePreview","bool","listenTo","activeTab","undefined","message","inputs","componentDidMount","loadData","messageLoader","submit","TAB_KEYS","recent","raw","_formatInputs","inputsAsMap","Map","list","listStreams","then","response","streams","forEach","_isTabVisible","tabKey","indexOf","_getActiveTab","_changeActiveTab","selectedTab","_formatMessageLoaders","messageLoaders","push","Tab","eventKey","marginBottom","marginTop","hidden","hideText","displayMessage","disableTestAgainstStream","disableSurroundingSearch","disableFieldActions","Tabs","activeKey","onSelect","animation","1095","_configurationforms","MessagesActions","CodecTypesActions","CodecTypesStore","RawMessageLoader","inputIdSelector","connect","loading","remoteAddress","codec","codecConfiguration","inputId","DEFAULT_REMOTE_ADDRESS","_loadMessage","_state","promise","loadRawMessage","triggerPromise","loadedMessage","finally","_bindValue","newState","_formatSelectOptions","codecTypes","disabled","codecTypesIds","keys","sort","codecA","codecB","toLowerCase","localeCompare","_formatInputSelectOptions","_this3","inputIds","inputA","inputB","_onCodecSelect","selectedCodec","_onInputSelect","selectedInput","_onCodecConfigurationChange","newConfiguration","assign","_formatConfigField","configField","typeName","elementKey","TextField","onChange","NumberField","BooleanField","DropdownField","_isSubmitDisabled","_this4","codecConfigurationOptions","requested_configuration","keyA","keyB","is_optional","help","Select","placeholder","options","matchProp","Row","rows","Button","bsStyle","1096","_InputDropdown","_InputDropdown2","UniversalSearchStore","RecentMessageLoader","get","error","search","range","total_results","messages","helpMessage","preselectedInputId","onLoadMessage","1353","_StreamRulesEditor","_StreamRulesEditor2","CurrentUserStore","StreamEditPage","params","location","streamId","_isLoading","currentUser","content","query","message_id","is_default","Alert","DocumentTitle","PageHeader","1354","_reactRouterBootstrap","_Routes","_Routes2","_LoaderTabs","_LoaderTabs2","_MatchingTypeSwitcher","_MatchingTypeSwitcher2","_StreamRuleList","_StreamRuleList2","_Spinner","_Spinner2","StreamRulesEditor","componentWillUnmount","unregister","testMatch","fields","resultData","types","_onStreamRuleFormSubmit","create","_onAddStreamRule","newStreamRuleForm","_getListClassName","matches","_explainMatchResult","color","styles","display","LinkContainer","to","marginLeft","1355","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_createClass","defineProperties","i","descriptor","protoProps","staticProps","MatchingTypeSwitcher","_Component","getPrototypeOf","apply","arguments","checked","matching_type","handleTypeChangeToAnd","bind","handleTypeChangeToOr","handleTypeChange","newValue","Component","927","956","MessageLoader","toggleMessageForm","_focusMessageLoaderForm","focus","loadMessage","submitButton","click","explanatoryText","loadMessageForm","957","InputDropdown","PLACEHOLDER","_formatInput","input","_sortByTitle","input1","input2","_onLoadMessage","_formatStaticInput","float","width","toArray"],"mappings":"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","file":"26.746b58959a350aa1ebcf.js","sourcesContent":["webpackJsonp([26],{\n\n/***/ 1006:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _reactAddonsLinkedStateMixin = __webpack_require__(927);\n\nvar _reactAddonsLinkedStateMixin2 = _interopRequireDefault(_reactAddonsLinkedStateMixin);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _BootstrapModalForm = __webpack_require__(266);\n\nvar _BootstrapModalForm2 = _interopRequireDefault(_BootstrapModalForm);\n\nvar _common = __webpack_require__(46);\n\nvar _support = __webpack_require__(926);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nvar _Version = __webpack_require__(1003);\n\nvar _Version2 = _interopRequireDefault(_Version);\n\nvar _HumanReadableStreamRule = __webpack_require__(1007);\n\nvar _HumanReadableStreamRule2 = _interopRequireDefault(_HumanReadableStreamRule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar StreamRuleForm = _react2.default.createClass({\n  displayName: 'StreamRuleForm',\n\n  propTypes: {\n    onSubmit: _propTypes2.default.func.isRequired,\n    streamRule: _propTypes2.default.object,\n    streamRuleTypes: _propTypes2.default.array.isRequired,\n    title: _propTypes2.default.string.isRequired\n  },\n  mixins: [_reactAddonsLinkedStateMixin2.default],\n  getDefaultProps: function getDefaultProps() {\n    return {\n      streamRule: { field: '', type: 1, value: '', inverted: false, description: '' }\n    };\n  },\n  getInitialState: function getInitialState() {\n    return this.props.streamRule;\n  },\n\n  FIELD_PRESENCE_RULE_TYPE: 5,\n  ALWAYS_MATCH_RULE_TYPE: 7,\n  _resetValues: function _resetValues() {\n    this.setState(this.props.streamRule);\n  },\n  _onSubmit: function _onSubmit() {\n    if (this.state.type === this.ALWAYS_MATCH_RULE_TYPE) {\n      this.state.field = '';\n    }\n    if (this.state.type === this.FIELD_PRESENCE_RULE_TYPE || this.state.type === this.ALWAYS_MATCH_RULE_TYPE) {\n      this.state.value = '';\n    }\n    this.props.onSubmit(this.props.streamRule.id, this.state);\n    this.refs.modal.close();\n  },\n  _formatStreamRuleType: function _formatStreamRuleType(streamRuleType) {\n    return _react2.default.createElement(\n      'option',\n      { key: 'streamRuleType' + streamRuleType.id,\n        value: streamRuleType.id },\n      streamRuleType.short_desc\n    );\n  },\n  open: function open() {\n    this._resetValues();\n    this.refs.modal.open();\n  },\n  close: function close() {\n    this.refs.modal.close();\n  },\n  render: function render() {\n    var streamRuleTypes = this.props.streamRuleTypes.map(this._formatStreamRuleType);\n    var fieldBox = String(this.state.type) !== String(this.ALWAYS_MATCH_RULE_TYPE) ? _react2.default.createElement(_common.TypeAheadFieldInput, { ref: 'fieldInput', type: 'text', required: true, label: 'Field', valueLink: this.linkState('field'), autoFocus: true }) : '';\n    var valueBox = String(this.state.type) !== String(this.FIELD_PRESENCE_RULE_TYPE) && String(this.state.type) !== String(this.ALWAYS_MATCH_RULE_TYPE) ? _react2.default.createElement(_bootstrap.Input, { id: 'Value', type: 'text', required: true, label: 'Value', name: 'Value', valueLink: this.linkState('value') }) : '';\n    return _react2.default.createElement(\n      _BootstrapModalForm2.default,\n      { ref: 'modal',\n        title: this.props.title,\n        onSubmitForm: this._onSubmit,\n        submitButtonText: 'Save',\n        formProps: { id: 'StreamRuleForm' } },\n      _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 8 },\n          fieldBox,\n          _react2.default.createElement(\n            _bootstrap.Input,\n            { id: 'Type', type: 'select', required: true, label: 'Type', name: 'Type', valueLink: this.linkState('type') },\n            streamRuleTypes\n          ),\n          valueBox,\n          _react2.default.createElement(_bootstrap.Input, { id: 'Inverted', type: 'checkbox', label: 'Inverted', name: 'Inverted', checkedLink: this.linkState('inverted') }),\n          _react2.default.createElement(_bootstrap.Input, { id: 'Description', type: 'textarea', label: 'Description (optional)', name: 'Description', valueLink: this.linkState('description') }),\n          _react2.default.createElement(\n            'p',\n            null,\n            _react2.default.createElement(\n              'strong',\n              null,\n              'Result:'\n            ),\n            ' ',\n            _react2.default.createElement(_HumanReadableStreamRule2.default, { streamRule: this.state, streamRuleTypes: this.props.streamRuleTypes })\n          )\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 4 },\n          _react2.default.createElement(\n            'div',\n            { className: 'well well-sm matcher-github' },\n            'The server will try to convert to strings or numbers based on the matcher type as good as it can.',\n            _react2.default.createElement('br', null),\n            _react2.default.createElement('br', null),\n            _react2.default.createElement('i', { className: 'fa fa-github' }),\n            _react2.default.createElement(\n              'a',\n              { href: 'https://github.com/Graylog2/graylog2-server/tree/' + _Version2.default.getMajorAndMinorVersion() + '/graylog2-server/src/main/java/org/graylog2/streams/matchers',\n                target: '_blank' },\n              ' Take a look at the matcher code on GitHub'\n            ),\n            _react2.default.createElement('br', null),\n            _react2.default.createElement('br', null),\n            'Regular expressions use Java syntax. ',\n            _react2.default.createElement(_support.DocumentationLink, { page: _DocsHelper2.default.PAGES.STREAMS,\n              title: 'More information',\n              text: _react2.default.createElement('i', { className: 'fa fa-lightbulb-o' }) })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = StreamRuleForm;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1007:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HumanReadableStreamRule = _react2.default.createClass({\n  displayName: 'HumanReadableStreamRule',\n\n  propTypes: {\n    streamRule: _propTypes2.default.object.isRequired,\n    streamRuleTypes: _propTypes2.default.array.isRequired\n  },\n  EMPTY_TAG: '',\n  FIELD_PRESENCE_RULE_TYPE: 5,\n  ALWAYS_MATCH_RULE_TYPE: 7,\n  _getTypeForInteger: function _getTypeForInteger(type, streamRuleTypes) {\n    if (streamRuleTypes) {\n      return streamRuleTypes.filter(function (streamRuleType) {\n        return String(streamRuleType.id) === String(type);\n      })[0];\n    }\n    return undefined;\n  },\n  _formatRuleValue: function _formatRuleValue(streamRule) {\n    if (String(streamRule.type) !== String(this.FIELD_PRESENCE_RULE_TYPE)) {\n      if (streamRule.value) {\n        return streamRule.value;\n      }\n      return this.EMPTY_TAG;\n    }\n\n    return null;\n  },\n  _formatRuleField: function _formatRuleField(streamRule) {\n    if (streamRule.field) {\n      return streamRule.field;\n    }\n    return this.EMPTY_TAG;\n  },\n  render: function render() {\n    var streamRule = this.props.streamRule;\n    var streamRuleType = this._getTypeForInteger(streamRule.type, this.props.streamRuleTypes);\n    var negation = streamRule.inverted ? 'not ' : null;\n    var longDesc = streamRuleType ? streamRuleType.long_desc : null;\n    if (String(streamRule.type) === String(this.ALWAYS_MATCH_RULE_TYPE)) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        'Rule always matches'\n      );\n    }\n    return _react2.default.createElement(\n      'span',\n      null,\n      'Field ',\n      _react2.default.createElement(\n        'em',\n        null,\n        this._formatRuleField(streamRule)\n      ),\n      ' must ',\n      negation,\n      longDesc,\n      ' ',\n      _react2.default.createElement(\n        'em',\n        null,\n        this._formatRuleValue(streamRule)\n      )\n    );\n  }\n});\n\nexports.default = HumanReadableStreamRule;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1081:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _StreamRule = __webpack_require__(1082);\n\nvar _StreamRule2 = _interopRequireDefault(_StreamRule);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar StreamRuleList = _react2.default.createClass({\n  displayName: 'StreamRuleList',\n\n  propTypes: {\n    matchData: _propTypes2.default.object,\n    onSubmit: _propTypes2.default.func,\n    onDelete: _propTypes2.default.func,\n    permissions: _propTypes2.default.array.isRequired,\n    stream: _propTypes2.default.object.isRequired,\n    streamRuleTypes: _propTypes2.default.array.isRequired\n  },\n\n  _formatStreamRules: function _formatStreamRules(streamRules) {\n    var _this = this;\n\n    if (streamRules && streamRules.length > 0) {\n      return streamRules.map(function (streamRule) {\n        return _react2.default.createElement(_StreamRule2.default, { key: streamRule.id, permissions: _this.props.permissions, matchData: _this.props.matchData,\n          onSubmit: _this.props.onSubmit, onDelete: _this.props.onDelete,\n          stream: _this.props.stream, streamRule: streamRule, streamRuleTypes: _this.props.streamRuleTypes });\n      });\n    }\n    return _react2.default.createElement(\n      'li',\n      null,\n      'No rules defined.'\n    );\n  },\n  render: function render() {\n    if (this.props.stream) {\n      var streamRules = this._formatStreamRules(this.props.stream.rules);\n      return _react2.default.createElement(\n        'ul',\n        { className: 'streamrules-list' },\n        streamRules\n      );\n    }\n    return _react2.default.createElement(_common.Spinner, null);\n  }\n});\n\nexports.default = StreamRuleList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1082:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _PermissionsMixin = __webpack_require__(167);\n\nvar _PermissionsMixin2 = _interopRequireDefault(_PermissionsMixin);\n\nvar _StreamRuleForm = __webpack_require__(1006);\n\nvar _StreamRuleForm2 = _interopRequireDefault(_StreamRuleForm);\n\nvar _HumanReadableStreamRule = __webpack_require__(1007);\n\nvar _HumanReadableStreamRule2 = _interopRequireDefault(_HumanReadableStreamRule);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _UserNotification = __webpack_require__(6);\n\nvar _UserNotification2 = _interopRequireDefault(_UserNotification);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar StreamRulesStore = _StoreProvider2.default.getStore('StreamRules');\n\nvar StreamRule = _react2.default.createClass({\n  displayName: 'StreamRule',\n\n  propTypes: {\n    matchData: _propTypes2.default.array,\n    onDelete: _propTypes2.default.func,\n    onSubmit: _propTypes2.default.func,\n    permissions: _propTypes2.default.array.isRequired,\n    stream: _propTypes2.default.object.isRequired,\n    streamRule: _propTypes2.default.object.isRequired,\n    streamRuleTypes: _propTypes2.default.array.isRequired\n  },\n  mixins: [_PermissionsMixin2.default],\n  _onEdit: function _onEdit(event) {\n    event.preventDefault();\n    this.refs.streamRuleForm.open();\n  },\n  _onDelete: function _onDelete(event) {\n    var _this = this;\n\n    event.preventDefault();\n    if (window.confirm('Do you really want to delete this stream rule?')) {\n      StreamRulesStore.remove(this.props.stream.id, this.props.streamRule.id, function () {\n        if (_this.props.onDelete) {\n          _this.props.onDelete(_this.props.streamRule.id);\n        }\n        _UserNotification2.default.success('Stream rule has been successfully deleted.', 'Success');\n      });\n    }\n  },\n  _onSubmit: function _onSubmit(streamRuleId, data) {\n    var _this2 = this;\n\n    StreamRulesStore.update(this.props.stream.id, streamRuleId, data, function () {\n      if (_this2.props.onSubmit) {\n        _this2.props.onSubmit(streamRuleId, data);\n      }\n      _UserNotification2.default.success('Stream rule has been successfully updated.', 'Success');\n    });\n  },\n  _formatActionItems: function _formatActionItems() {\n    return _react2.default.createElement(\n      'span',\n      null,\n      _react2.default.createElement(\n        'a',\n        { href: '#', onClick: this._onDelete, style: { marginRight: 5 } },\n        _react2.default.createElement('i', { className: 'fa fa-trash-o' })\n      ),\n      _react2.default.createElement(\n        'a',\n        { href: '#', onClick: this._onEdit, style: { marginRight: 5 } },\n        _react2.default.createElement('i', { className: 'fa fa-edit' })\n      )\n    );\n  },\n  _getMatchDataClassNames: function _getMatchDataClassNames() {\n    return this.props.matchData.rules[this.props.streamRule.id] ? 'alert-success' : 'alert-danger';\n  },\n  render: function render() {\n    var streamRule = this.props.streamRule;\n    var streamRuleTypes = this.props.streamRuleTypes;\n    var actionItems = this.isPermitted(this.props.permissions, ['streams:edit:' + this.props.stream.id]) ? this._formatActionItems() : null;\n    var className = this.props.matchData ? this._getMatchDataClassNames() : null;\n    var description = this.props.streamRule.description ? _react2.default.createElement(\n      'small',\n      null,\n      ' ',\n      '(',\n      this.props.streamRule.description,\n      ')'\n    ) : null;\n    return _react2.default.createElement(\n      'li',\n      { className: className },\n      actionItems,\n      _react2.default.createElement(_HumanReadableStreamRule2.default, { streamRule: streamRule, streamRuleTypes: streamRuleTypes }),\n      _react2.default.createElement(_StreamRuleForm2.default, { ref: 'streamRuleForm', streamRule: streamRule, streamRuleTypes: streamRuleTypes,\n        title: 'Edit Stream Rule', onSubmit: this._onSubmit }),\n      description\n    );\n  }\n});\n\nexports.default = StreamRule;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1094:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _immutable = __webpack_require__(54);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _MessageShow = __webpack_require__(1074);\n\nvar _MessageShow2 = _interopRequireDefault(_MessageShow);\n\nvar _MessageLoader = __webpack_require__(956);\n\nvar _MessageLoader2 = _interopRequireDefault(_MessageLoader);\n\nvar _RawMessageLoader = __webpack_require__(1095);\n\nvar _RawMessageLoader2 = _interopRequireDefault(_RawMessageLoader);\n\nvar _RecentMessageLoader = __webpack_require__(1096);\n\nvar _RecentMessageLoader2 = _interopRequireDefault(_RecentMessageLoader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar InputsStore = _StoreProvider2.default.getStore('Inputs');\nvar StreamsStore = _StoreProvider2.default.getStore('Streams');\n\nvar InputsActions = _ActionsProvider2.default.getActions('Inputs');\n\nvar LoaderTabs = _react2.default.createClass({\n  displayName: 'LoaderTabs',\n\n  propTypes: {\n    tabs: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['recent', 'messageId', 'raw']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['recent', 'messageId', 'raw']))]),\n    messageId: _propTypes2.default.string,\n    index: _propTypes2.default.string,\n    onMessageLoaded: _propTypes2.default.func,\n    selectedInputId: _propTypes2.default.string,\n    customFieldActions: _propTypes2.default.node,\n    disableMessagePreview: _propTypes2.default.bool\n  },\n\n  mixins: [_reflux2.default.listenTo(InputsStore, '_formatInputs')],\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      tabs: ['recent', 'messageId']\n    };\n  },\n  getInitialState: function getInitialState() {\n    return {\n      activeTab: undefined,\n      message: undefined,\n      inputs: undefined\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    this.loadData();\n    if (this.props.messageId && this.props.index) {\n      this.refs.messageLoader.submit(this.props.messageId, this.props.index);\n    }\n  },\n  onMessageLoaded: function onMessageLoaded(message) {\n    this.setState({ message: message });\n    if (this.props.onMessageLoaded) {\n      this.props.onMessageLoaded(message);\n    }\n  },\n\n\n  TAB_KEYS: {\n    recent: 1,\n    messageId: 2,\n    raw: 3\n  },\n\n  _formatInputs: function _formatInputs(state) {\n    var inputs = InputsStore.inputsAsMap(state.inputs);\n    this.setState({ inputs: _immutable2.default.Map(inputs) });\n  },\n  loadData: function loadData() {\n    var _this = this;\n\n    InputsActions.list();\n    StreamsStore.listStreams().then(function (response) {\n      var streams = {};\n      response.forEach(function (stream) {\n        streams[stream.id] = stream;\n      });\n      _this.setState({ streams: _immutable2.default.Map(streams) });\n    });\n  },\n  _isTabVisible: function _isTabVisible(tabKey) {\n    return this.props.tabs === tabKey || this.props.tabs.indexOf(tabKey) !== -1;\n  },\n  _getActiveTab: function _getActiveTab() {\n    if (this.state.activeTab) {\n      return this.state.activeTab;\n    }\n\n    if (this._isTabVisible('messageId') && this.props.messageId && this.props.index) {\n      return this.TAB_KEYS.messageId;\n    }\n\n    if (this._isTabVisible('recent')) {\n      return this.TAB_KEYS.recent;\n    }\n    if (this._isTabVisible('messageId')) {\n      return this.TAB_KEYS.messageId;\n    }\n    return this.TAB_KEYS.raw;\n  },\n  _changeActiveTab: function _changeActiveTab(selectedTab) {\n    if (this.state.activeTab !== selectedTab) {\n      this.setState({ activeTab: selectedTab, message: undefined });\n    }\n  },\n  _formatMessageLoaders: function _formatMessageLoaders() {\n    var messageLoaders = [];\n\n    if (this._isTabVisible('recent')) {\n      messageLoaders.push(_react2.default.createElement(\n        _reactBootstrap.Tab,\n        { key: 'recent', eventKey: this.TAB_KEYS.recent, title: 'Recent Message', style: { marginBottom: 10 } },\n        _react2.default.createElement(_RecentMessageLoader2.default, { inputs: this.state.inputs,\n          selectedInputId: this.props.selectedInputId,\n          onMessageLoaded: this.onMessageLoaded })\n      ));\n    }\n\n    if (this._isTabVisible('messageId')) {\n      messageLoaders.push(_react2.default.createElement(\n        _reactBootstrap.Tab,\n        { key: 'messageId', eventKey: this.TAB_KEYS.messageId, title: 'Message ID', style: { marginBottom: 10 } },\n        _react2.default.createElement(\n          'div',\n          { style: { marginTop: 5, marginBottom: 15 } },\n          'Please provide the id and index of the message that you want to load in this form:'\n        ),\n        _react2.default.createElement(_MessageLoader2.default, { ref: 'messageLoader', onMessageLoaded: this.onMessageLoaded, hidden: false, hideText: true })\n      ));\n    }\n\n    if (this._isTabVisible('raw')) {\n      messageLoaders.push(_react2.default.createElement(\n        _reactBootstrap.Tab,\n        { key: 'raw', eventKey: this.TAB_KEYS.raw, title: 'Raw Message', style: { marginBottom: 10 } },\n        _react2.default.createElement(\n          'div',\n          { style: { marginTop: 5, marginBottom: 15 } },\n          'Load a message from text, as if it was sent by a log source.'\n        ),\n        _react2.default.createElement(_RawMessageLoader2.default, { onMessageLoaded: this.onMessageLoaded })\n      ));\n    }\n\n    return messageLoaders;\n  },\n  render: function render() {\n    var displayMessage = void 0;\n    if (this.state.message && this.state.inputs && !this.props.disableMessagePreview) {\n      displayMessage = _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(_MessageShow2.default, { message: this.state.message, inputs: this.state.inputs,\n          streams: this.state.streams,\n          disableTestAgainstStream: true,\n          disableSurroundingSearch: true,\n          disableFieldActions: !this.props.customFieldActions,\n          customFieldActions: this.props.customFieldActions })\n      );\n    }\n\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Tabs,\n        { id: 'loaderTabs', activeKey: this._getActiveTab(), onSelect: this._changeActiveTab, animation: false },\n        this._formatMessageLoaders()\n      ),\n      displayMessage\n    );\n  }\n});\n\nexports.default = LoaderTabs;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1095:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _common = __webpack_require__(46);\n\nvar _configurationforms = __webpack_require__(919);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MessagesActions = _ActionsProvider2.default.getActions('Messages');\nvar CodecTypesActions = _ActionsProvider2.default.getActions('CodecTypes');\nvar InputsActions = _ActionsProvider2.default.getActions('Inputs');\n\n// eslint-disable-next-line no-unused-vars\nvar MessagesStore = _StoreProvider2.default.getStore('Messages');\nvar CodecTypesStore = _StoreProvider2.default.getStore('CodecTypes');\nvar InputsStore = _StoreProvider2.default.getStore('Inputs');\n\nvar RawMessageLoader = _react2.default.createClass({\n  displayName: 'RawMessageLoader',\n\n  propTypes: {\n    onMessageLoaded: _propTypes2.default.func.isRequired,\n    inputIdSelector: _propTypes2.default.bool\n  },\n\n  mixins: [_reflux2.default.connect(CodecTypesStore), _reflux2.default.connect(InputsStore)],\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      inputIdSelector: false\n    };\n  },\n  getInitialState: function getInitialState() {\n    return {\n      loading: false,\n      message: '',\n      remoteAddress: '',\n      codec: '',\n      codecConfiguration: {},\n      inputId: undefined\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    CodecTypesActions.list();\n    if (this.props.inputIdSelector) {\n      InputsActions.list();\n    }\n  },\n\n\n  DEFAULT_REMOTE_ADDRESS: '127.0.0.1',\n\n  _loadMessage: function _loadMessage(event) {\n    var _this = this;\n\n    event.preventDefault();\n\n    var _state = this.state,\n        message = _state.message,\n        remoteAddress = _state.remoteAddress,\n        codec = _state.codec,\n        codecConfiguration = _state.codecConfiguration,\n        inputId = _state.inputId;\n\n    this.setState({ loading: true });\n    var promise = MessagesActions.loadRawMessage.triggerPromise(message, remoteAddress || this.DEFAULT_REMOTE_ADDRESS, codec, codecConfiguration);\n    promise.then(function (loadedMessage) {\n      _this.props.onMessageLoaded(loadedMessage, {\n        message: message,\n        remoteAddress: remoteAddress,\n        codec: codec,\n        codecConfiguration: codecConfiguration,\n        inputId: inputId\n      });\n    });\n    promise.finally(function () {\n      return _this.setState({ loading: false });\n    });\n  },\n  _bindValue: function _bindValue(event) {\n    var newState = {};\n    newState[event.target.name] = event.target.value;\n    this.setState(newState);\n  },\n  _formatSelectOptions: function _formatSelectOptions() {\n    var _this2 = this;\n\n    if (!this.state.codecTypes) {\n      return [{ value: 'none', label: 'Loading codec types...', disabled: true }];\n    }\n\n    var codecTypesIds = Object.keys(this.state.codecTypes);\n    if (codecTypesIds.length === 0) {\n      return [{ value: 'none', label: 'No codecs available' }];\n    }\n\n    return codecTypesIds.filter(function (id) {\n      return id !== 'random-http-msg';\n    }) // Skip Random HTTP codec, as nobody wants to enter a raw random message.\n    .map(function (id) {\n      var name = _this2.state.codecTypes[id].name;\n      // Add id as label on codecs not having a descriptor name\n      return { value: id, label: name === '' ? id : name };\n    }).sort(function (codecA, codecB) {\n      return codecA.label.toLowerCase().localeCompare(codecB.label.toLowerCase());\n    });\n  },\n  _formatInputSelectOptions: function _formatInputSelectOptions() {\n    var _this3 = this;\n\n    if (!this.state.inputs) {\n      return [{ value: 'none', label: 'Loading inputs...', disabled: true }];\n    }\n\n    var inputIds = Object.keys(this.state.inputs);\n    if (inputIds.length === 0) {\n      return [{ value: 'none', label: 'No inputs available' }];\n    }\n\n    return inputIds.map(function (id) {\n      var inputId = _this3.state.inputs[id].id;\n      var label = inputId + ' / ' + _this3.state.inputs[id].title + ' / ' + _this3.state.inputs[id].name;\n      return { value: inputId, label: label };\n    }).sort(function (inputA, inputB) {\n      return inputA.label.toLowerCase().localeCompare(inputB.label.toLowerCase());\n    });\n  },\n  _onCodecSelect: function _onCodecSelect(selectedCodec) {\n    this._bindValue({ target: { name: 'codec', value: selectedCodec } });\n    this.setState({ codecConfiguration: {} });\n  },\n  _onInputSelect: function _onInputSelect(selectedInput) {\n    this.setState({ inputId: selectedInput });\n  },\n  _onCodecConfigurationChange: function _onCodecConfigurationChange(field, value) {\n    var newConfiguration = Object.assign(this.state.codecConfiguration);\n    newConfiguration[field] = value;\n    this._bindValue({ target: { name: 'codecConfiguration', value: newConfiguration } });\n  },\n  _formatConfigField: function _formatConfigField(key, configField) {\n    var value = this.state.codecConfiguration[key];\n    var typeName = 'RawMessageLoader';\n    var elementKey = typeName + '-' + key;\n\n    switch (configField.type) {\n      case 'text':\n        return _react2.default.createElement(_configurationforms.TextField, { key: elementKey, typeName: typeName, title: key, field: configField,\n          value: value, onChange: this._onCodecConfigurationChange });\n      case 'number':\n        return _react2.default.createElement(_configurationforms.NumberField, { key: elementKey, typeName: typeName, title: key, field: configField,\n          value: value, onChange: this._onCodecConfigurationChange });\n      case 'boolean':\n        return _react2.default.createElement(_configurationforms.BooleanField, { key: elementKey, typeName: typeName, title: key, field: configField,\n          value: value, onChange: this._onCodecConfigurationChange });\n      case 'dropdown':\n        return _react2.default.createElement(_configurationforms.DropdownField, { key: elementKey, typeName: typeName, title: key, field: configField,\n          value: value, onChange: this._onCodecConfigurationChange });\n      default:\n        return null;\n    }\n  },\n  _isSubmitDisabled: function _isSubmitDisabled() {\n    return !this.state.message || !this.state.codec || this.state.loading;\n  },\n  render: function render() {\n    var _this4 = this;\n\n    var codecConfigurationOptions = void 0;\n    if (this.state.codecTypes && this.state.codec) {\n      var codecConfiguration = this.state.codecTypes[this.state.codec].requested_configuration;\n      codecConfigurationOptions = Object.keys(codecConfiguration).sort(function (keyA, keyB) {\n        return codecConfiguration[keyA].is_optional - codecConfiguration[keyB].is_optional;\n      }).map(function (key) {\n        return _this4._formatConfigField(key, codecConfiguration[key]);\n      });\n    }\n\n    var inputIdSelector = void 0;\n    if (this.props.inputIdSelector) {\n      inputIdSelector = _react2.default.createElement(\n        _bootstrap.Input,\n        { id: 'input', name: 'input', label: _react2.default.createElement(\n            'span',\n            null,\n            'Message input ',\n            _react2.default.createElement(\n              'small',\n              null,\n              '(optional)'\n            )\n          ),\n          help: 'Select the message input ID that should be assigned to the parsed message.' },\n        _react2.default.createElement(_common.Select, { id: 'input', placeholder: 'Select input', options: this._formatInputSelectOptions(),\n          matchProp: 'label', onChange: this._onInputSelect, value: this.state.inputId })\n      );\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 7 },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this._loadMessage },\n          _react2.default.createElement(\n            'fieldset',\n            null,\n            _react2.default.createElement(_bootstrap.Input, { id: 'message', name: 'message', type: 'textarea', label: 'Raw message',\n              value: this.state.message, onChange: this._bindValue, rows: 3, required: true }),\n            _react2.default.createElement(_bootstrap.Input, { id: 'remoteAddress', name: 'remoteAddress', type: 'text',\n              label: _react2.default.createElement(\n                'span',\n                null,\n                'Source IP address ',\n                _react2.default.createElement(\n                  'small',\n                  null,\n                  '(optional)'\n                )\n              ),\n              help: 'Remote IP address to use as message source. Graylog will use ' + this.DEFAULT_REMOTE_ADDRESS + ' by default.',\n              value: this.state.remoteAddress, onChange: this._bindValue })\n          ),\n          inputIdSelector,\n          _react2.default.createElement(\n            'fieldset',\n            null,\n            _react2.default.createElement(\n              'legend',\n              null,\n              'Codec configuration'\n            ),\n            _react2.default.createElement(\n              _bootstrap.Input,\n              { id: 'codec', name: 'codec', label: 'Message codec',\n                help: 'Select the codec that should be used to decode the message.', required: true },\n              _react2.default.createElement(_common.Select, { id: 'codec', placeholder: 'Select codec', options: this._formatSelectOptions(),\n                matchProp: 'label', onChange: this._onCodecSelect, value: this.state.codec })\n            ),\n            codecConfigurationOptions\n          ),\n          _react2.default.createElement(\n            _reactBootstrap.Button,\n            { type: 'submit', bsStyle: 'info', disabled: this._isSubmitDisabled() },\n            this.state.loading ? 'Loading message...' : 'Load message'\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = RawMessageLoader;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1096:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _InputDropdown = __webpack_require__(957);\n\nvar _InputDropdown2 = _interopRequireDefault(_InputDropdown);\n\nvar _UserNotification = __webpack_require__(6);\n\nvar _UserNotification2 = _interopRequireDefault(_UserNotification);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar UniversalSearchStore = _StoreProvider2.default.getStore('UniversalSearch');\n\nvar RecentMessageLoader = _react2.default.createClass({\n  displayName: 'RecentMessageLoader',\n\n  propTypes: {\n    inputs: _propTypes2.default.object,\n    onMessageLoaded: _propTypes2.default.func.isRequired,\n    selectedInputId: _propTypes2.default.string\n  },\n  getInitialState: function getInitialState() {\n    return {\n      loading: false\n    };\n  },\n  onClick: function onClick(inputId) {\n    var _this = this;\n\n    var input = this.props.inputs.get(inputId);\n    if (!input) {\n      _UserNotification2.default.error('Invalid input selected: ' + inputId, 'Could not load message from invalid Input ' + inputId);\n    }\n    this.setState({ loading: true });\n    var promise = UniversalSearchStore.search('relative', 'gl2_source_input:' + inputId + ' OR gl2_source_radio_input:' + inputId, { range: 3600 }, undefined, 1, undefined, undefined, undefined, false);\n    promise.then(function (response) {\n      if (response.total_results > 0) {\n        _this.props.onMessageLoaded(response.messages[0]);\n      } else {\n        _UserNotification2.default.error('Input did not return a recent message.');\n        _this.props.onMessageLoaded(undefined);\n      }\n    });\n    promise.finally(function () {\n      return _this.setState({ loading: false });\n    });\n  },\n  render: function render() {\n    var helpMessage = void 0;\n    if (this.props.selectedInputId) {\n      helpMessage = 'Click on \"Load Message\" to load the most recent message received by this input within the last hour.';\n    } else {\n      helpMessage = 'Select an Input from the list below and click \"Load Message\" to load the most recent message received by this input within the last hour.';\n    }\n    return _react2.default.createElement(\n      'div',\n      { style: { marginTop: 5 } },\n      helpMessage,\n      _react2.default.createElement(_InputDropdown2.default, { inputs: this.props.inputs, preselectedInputId: this.props.selectedInputId,\n        onLoadMessage: this.onClick, title: this.state.loading ? 'Loading message...' : 'Load Message',\n        disabled: this.state.loading })\n    );\n  }\n});\n\nexports.default = RecentMessageLoader;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1353:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StreamRulesEditor = __webpack_require__(1354);\n\nvar _StreamRulesEditor2 = _interopRequireDefault(_StreamRulesEditor);\n\nvar _common = __webpack_require__(46);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CurrentUserStore = _StoreProvider2.default.getStore('CurrentUser');\nvar StreamsStore = _StoreProvider2.default.getStore('Streams');\n\nvar StreamEditPage = _react2.default.createClass({\n  displayName: 'StreamEditPage',\n\n  propTypes: {\n    params: _propTypes2.default.object.isRequired,\n    location: _propTypes2.default.object.isRequired\n  },\n  mixins: [_reflux2.default.connect(CurrentUserStore)],\n\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    StreamsStore.get(this.props.params.streamId, function (stream) {\n      _this.setState({ stream: stream });\n    });\n  },\n  _isLoading: function _isLoading() {\n    return !this.state.currentUser || !this.state.stream;\n  },\n  render: function render() {\n    if (this._isLoading()) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n\n    var content = _react2.default.createElement(_StreamRulesEditor2.default, { currentUser: this.state.currentUser, streamId: this.props.params.streamId,\n      messageId: this.props.location.query.message_id, index: this.props.location.query.index });\n    if (this.state.stream.is_default) {\n      content = _react2.default.createElement(\n        'div',\n        { className: 'row content' },\n        _react2.default.createElement(\n          'div',\n          { className: 'col-md-12' },\n          _react2.default.createElement(\n            _reactBootstrap.Alert,\n            { bsStyle: 'danger' },\n            'The default stream cannot be edited.'\n          )\n        )\n      );\n    }\n    return _react2.default.createElement(\n      _common.DocumentTitle,\n      { title: 'Rules of Stream ' + this.state.stream.title },\n      _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          _common.PageHeader,\n          { title: _react2.default.createElement(\n              'span',\n              null,\n              'Rules of Stream \\xBB',\n              this.state.stream.title,\n              '\\xBB'\n            ) },\n          _react2.default.createElement(\n            'span',\n            null,\n            'This screen is dedicated to an easy and comfortable creation and manipulation of stream rules. You can',\n            ' ',\n            'see the effect configured stream rules have on message matching here.'\n          )\n        ),\n        content\n      )\n    );\n  }\n});\n\nexports.default = StreamEditPage;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1354:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _reactRouterBootstrap = __webpack_require__(915);\n\nvar _Routes = __webpack_require__(76);\n\nvar _Routes2 = _interopRequireDefault(_Routes);\n\nvar _LoaderTabs = __webpack_require__(1094);\n\nvar _LoaderTabs2 = _interopRequireDefault(_LoaderTabs);\n\nvar _MatchingTypeSwitcher = __webpack_require__(1355);\n\nvar _MatchingTypeSwitcher2 = _interopRequireDefault(_MatchingTypeSwitcher);\n\nvar _StreamRuleList = __webpack_require__(1081);\n\nvar _StreamRuleList2 = _interopRequireDefault(_StreamRuleList);\n\nvar _StreamRuleForm = __webpack_require__(1006);\n\nvar _StreamRuleForm2 = _interopRequireDefault(_StreamRuleForm);\n\nvar _Spinner = __webpack_require__(265);\n\nvar _Spinner2 = _interopRequireDefault(_Spinner);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar StreamsStore = _StoreProvider2.default.getStore('Streams');\nvar StreamRulesStore = _StoreProvider2.default.getStore('StreamRules');\n\nvar StreamRulesEditor = _react2.default.createClass({\n  displayName: 'StreamRulesEditor',\n  propTypes: function propTypes() {\n    return {\n      currentUser: _propTypes2.default.object.isRequired,\n      streamId: _propTypes2.default.string.isRequired,\n      messageId: _propTypes2.default.string,\n      index: _propTypes2.default.string\n    };\n  },\n  getInitialState: function getInitialState() {\n    return {};\n  },\n  componentDidMount: function componentDidMount() {\n    this.loadData();\n    StreamsStore.onChange(this.loadData);\n    StreamRulesStore.onChange(this.loadData);\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    StreamsStore.unregister(this.loadData);\n    StreamRulesStore.unregister(this.loadData);\n  },\n  onMessageLoaded: function onMessageLoaded(message) {\n    var _this = this;\n\n    this.setState({ message: message });\n    if (message !== undefined) {\n      StreamsStore.testMatch(this.props.streamId, { message: message.fields }, function (resultData) {\n        _this.setState({ matchData: resultData });\n      });\n    } else {\n      this.setState({ matchData: undefined });\n    }\n  },\n  loadData: function loadData() {\n    var _this2 = this;\n\n    StreamRulesStore.types().then(function (types) {\n      _this2.setState({ streamRuleTypes: types });\n    });\n\n    StreamsStore.get(this.props.streamId, function (stream) {\n      _this2.setState({ stream: stream });\n    });\n\n    if (this.state.message) {\n      this.onMessageLoaded(this.state.message);\n    }\n  },\n  _onStreamRuleFormSubmit: function _onStreamRuleFormSubmit(streamRuleId, data) {\n    StreamRulesStore.create(this.props.streamId, data, function () {});\n  },\n  _onAddStreamRule: function _onAddStreamRule(event) {\n    event.preventDefault();\n    this.refs.newStreamRuleForm.open();\n  },\n  _getListClassName: function _getListClassName(matchData) {\n    return matchData.matches ? 'success' : 'danger';\n  },\n  _explainMatchResult: function _explainMatchResult() {\n    if (this.state.matchData) {\n      if (this.state.matchData.matches) {\n        return _react2.default.createElement(\n          'span',\n          null,\n          _react2.default.createElement('i', { className: 'fa fa-check', style: { color: 'green' } }),\n          ' This message would be routed to this stream.'\n        );\n      }\n      return _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement('i', { className: 'fa fa-remove', style: { color: 'red' } }),\n        ' This message would not be routed to this stream.'\n      );\n    }\n    return 'Please load a message to check if it would match against these rules and therefore be routed into this stream.';\n  },\n  render: function render() {\n    var styles = this.state.matchData ? this._getListClassName(this.state.matchData) : 'info';\n    if (this.state.stream && this.state.streamRuleTypes) {\n      return _react2.default.createElement(\n        'div',\n        { className: 'row content' },\n        _react2.default.createElement(\n          'div',\n          { className: 'col-md-12 streamrule-sample-message' },\n          _react2.default.createElement(\n            'h2',\n            null,\n            '1. Load a message to test rules'\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'stream-loader' },\n            _react2.default.createElement(_LoaderTabs2.default, { messageId: this.props.messageId, index: this.props.index, onMessageLoaded: this.onMessageLoaded })\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'spinner', style: { display: 'none' } },\n            _react2.default.createElement(\n              'h2',\n              null,\n              _react2.default.createElement('i', {\n                className: 'fa fa-spinner fa-spin' }),\n              ' \\xA0Loading message'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'sample-message-display', style: { display: 'none', marginTop: '5px' } },\n            _react2.default.createElement(\n              'strong',\n              null,\n              'Next step:'\n            ),\n            'Add/delete/modify stream rules in step 2 and see if the example message would have been routed into the stream or not. Use the button on the right to add a stream rule.'\n          ),\n          _react2.default.createElement('hr', null),\n          _react2.default.createElement(\n            'div',\n            { className: 'buttons pull-right' },\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-success show-stream-rule', onClick: this._onAddStreamRule },\n              'Add stream rule'\n            ),\n            _react2.default.createElement(_StreamRuleForm2.default, { ref: 'newStreamRuleForm', title: 'New Stream Rule',\n              streamRuleTypes: this.state.streamRuleTypes, onSubmit: this._onStreamRuleFormSubmit })\n          ),\n          _react2.default.createElement(\n            'h2',\n            null,\n            '2. Manage stream rules'\n          ),\n          this._explainMatchResult(),\n          _react2.default.createElement(_MatchingTypeSwitcher2.default, { stream: this.state.stream, onChange: this.loadData }),\n          _react2.default.createElement(\n            _reactBootstrap.Alert,\n            { ref: 'well', bsStyle: styles },\n            _react2.default.createElement(_StreamRuleList2.default, { stream: this.state.stream, streamRuleTypes: this.state.streamRuleTypes,\n              permissions: this.props.currentUser.permissions, matchData: this.state.matchData })\n          ),\n          _react2.default.createElement(\n            'p',\n            { style: { marginTop: '10px' } },\n            _react2.default.createElement(\n              _reactRouterBootstrap.LinkContainer,\n              { to: _Routes2.default.STREAMS },\n              _react2.default.createElement(\n                _reactBootstrap.Button,\n                { bsStyle: 'success' },\n                'I\\'m done!'\n              )\n            )\n          )\n        )\n      );\n    }\n    return _react2.default.createElement(\n      'div',\n      { className: 'row content' },\n      _react2.default.createElement(\n        'div',\n        { style: { marginLeft: 10 } },\n        _react2.default.createElement(_Spinner2.default, null)\n      )\n    );\n  }\n});\n\nexports.default = StreamRulesEditor;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1355:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _UserNotification = __webpack_require__(6);\n\nvar _UserNotification2 = _interopRequireDefault(_UserNotification);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StreamsStore = _StoreProvider2.default.getStore('Streams');\n\nvar MatchingTypeSwitcher = function (_Component) {\n  _inherits(MatchingTypeSwitcher, _Component);\n\n  function MatchingTypeSwitcher() {\n    _classCallCheck(this, MatchingTypeSwitcher);\n\n    return _possibleConstructorReturn(this, (MatchingTypeSwitcher.__proto__ || Object.getPrototypeOf(MatchingTypeSwitcher)).apply(this, arguments));\n  }\n\n  _createClass(MatchingTypeSwitcher, [{\n    key: 'render',\n    value: function render() {\n      return _react2.default.createElement(\n        'div',\n        { className: 'streamrule-connector-type-form' },\n        _react2.default.createElement(\n          'div',\n          null,\n          _react2.default.createElement(_bootstrap.Input, { type: 'radio', label: 'A message must match all of the following rules',\n            checked: this.props.stream.matching_type === 'AND', onChange: this.handleTypeChangeToAnd.bind(this) }),\n          _react2.default.createElement(_bootstrap.Input, { type: 'radio', label: 'A message must match at least one of the following rules',\n            checked: this.props.stream.matching_type === 'OR', onChange: this.handleTypeChangeToOr.bind(this) })\n        )\n      );\n    }\n  }, {\n    key: 'handleTypeChangeToAnd',\n    value: function handleTypeChangeToAnd() {\n      this.handleTypeChange('AND');\n    }\n  }, {\n    key: 'handleTypeChangeToOr',\n    value: function handleTypeChangeToOr() {\n      this.handleTypeChange('OR');\n    }\n  }, {\n    key: 'handleTypeChange',\n    value: function handleTypeChange(newValue) {\n      var _this2 = this;\n\n      if (window.confirm('You are about to change how rules are applied to this stream, do you want to continue? Changes will take effect immediately.')) {\n        StreamsStore.update(this.props.stream.id, { matching_type: newValue }, function (response) {\n          _this2.props.onChange();\n          _UserNotification2.default.success('Messages will now be routed into the stream when ' + (newValue === 'AND' ? 'all' : 'any') + ' rules are matched', 'Success');\n          return response;\n        });\n      }\n    }\n  }]);\n\n  return MatchingTypeSwitcher;\n}(_react.Component);\n\nMatchingTypeSwitcher.propTypes = {\n  stream: _propTypes2.default.object.isRequired,\n  onChange: _propTypes2.default.func.isRequired\n};\nexports.default = MatchingTypeSwitcher;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 927:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = (__webpack_require__(11))(336);\n\n/***/ }),\n\n/***/ 956:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MessagesActions = _ActionsProvider2.default.getActions('Messages');\n\n// eslint-disable-next-line no-unused-vars\nvar MessagesStore = _StoreProvider2.default.getStore('Messages');\n\nvar MessageLoader = _react2.default.createClass({\n  displayName: 'MessageLoader',\n\n  propTypes: {\n    hidden: _propTypes2.default.bool,\n    hideText: _propTypes2.default.bool,\n    onMessageLoaded: _propTypes2.default.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      loading: false\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    this.setState({ loading: true });\n    var promise = MessagesActions.loadMessage.triggerPromise(index, messageId);\n    promise.then(function (data) {\n      return _this.props.onMessageLoaded(data);\n    });\n    promise.finally(function () {\n      return _this.setState({ loading: false });\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 = void 0;\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 message-id-input', 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', disabled: this.state.loading },\n          this.state.loading ? 'Loading message...' : '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/***/ }),\n\n/***/ 957:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactAddonsLinkedStateMixin = __webpack_require__(927);\n\nvar _reactAddonsLinkedStateMixin2 = _interopRequireDefault(_reactAddonsLinkedStateMixin);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _Spinner = __webpack_require__(265);\n\nvar _Spinner2 = _interopRequireDefault(_Spinner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar InputDropdown = _react2.default.createClass({\n  displayName: 'InputDropdown',\n\n  propTypes: {\n    inputs: _propTypes2.default.object,\n    title: _propTypes2.default.string,\n    preselectedInputId: _propTypes2.default.string,\n    onLoadMessage: _propTypes2.default.func,\n    disabled: _propTypes2.default.bool\n  },\n  mixins: [_reactAddonsLinkedStateMixin2.default],\n  getInitialState: function getInitialState() {\n    return {\n      selectedInput: this.props.preselectedInputId || this.PLACEHOLDER\n    };\n  },\n\n  PLACEHOLDER: 'placeholder',\n  _formatInput: function _formatInput(input) {\n    return _react2.default.createElement(\n      'option',\n      { key: input.id, value: input.id },\n      input.title,\n      ' (',\n      input.type,\n      ')'\n    );\n  },\n  _sortByTitle: function _sortByTitle(input1, input2) {\n    return input1.title.localeCompare(input2.title);\n  },\n  _onLoadMessage: function _onLoadMessage() {\n    this.props.onLoadMessage(this.state.selectedInput);\n  },\n  _formatStaticInput: function _formatStaticInput(input) {\n    return _react2.default.createElement(\n      _bootstrap.Input,\n      { type: 'select', style: { float: 'left', width: 400, marginRight: 10 }, disabled: true },\n      _react2.default.createElement(\n        'option',\n        null,\n        input.title + ' (' + input.type + ')'\n      )\n    );\n  },\n  render: function render() {\n    // When an input is pre-selected, show a static dropdown\n    if (this.props.inputs && this.props.preselectedInputId) {\n      return _react2.default.createElement(\n        'div',\n        null,\n        this._formatStaticInput(this.props.inputs.get(this.props.preselectedInputId)),\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', disabled: this.state.selectedInput === this.PLACEHOLDER,\n            onClick: this._onLoadMessage },\n          this.props.title\n        )\n      );\n    }\n\n    if (this.props.inputs) {\n      var inputs = this.props.inputs.sort(this._sortByTitle).map(this._formatInput);\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          _bootstrap.Input,\n          { type: 'select', style: { float: 'left', width: 400, marginRight: 10 },\n            valueLink: this.linkState('selectedInput'), placeholder: this.PLACEHOLDER },\n          _react2.default.createElement(\n            'option',\n            { value: this.PLACEHOLDER },\n            'Select an input'\n          ),\n          inputs.toArray()\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info', disabled: this.props.disabled || this.state.selectedInput === this.PLACEHOLDER,\n            onClick: this._onLoadMessage },\n          this.props.title\n        )\n      );\n    }\n\n    return _react2.default.createElement(_Spinner2.default, null);\n  }\n});\n\nexports.default = InputDropdown;\nmodule.exports = exports['default'];\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 26.746b58959a350aa1ebcf.js","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Col } from 'react-bootstrap';\nimport LinkedStateMixin from 'react-addons-linked-state-mixin';\n\nimport { Input } from 'components/bootstrap';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport { TypeAheadFieldInput } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\nimport Version from 'util/Version';\n\nimport HumanReadableStreamRule from 'components/streamrules//HumanReadableStreamRule';\n\nconst StreamRuleForm = React.createClass({\n  propTypes: {\n    onSubmit: PropTypes.func.isRequired,\n    streamRule: PropTypes.object,\n    streamRuleTypes: PropTypes.array.isRequired,\n    title: PropTypes.string.isRequired,\n  },\n  mixins: [LinkedStateMixin],\n  getDefaultProps() {\n    return {\n      streamRule: { field: '', type: 1, value: '', inverted: false, description: '' },\n    };\n  },\n  getInitialState() {\n    return this.props.streamRule;\n  },\n  FIELD_PRESENCE_RULE_TYPE: 5,\n  ALWAYS_MATCH_RULE_TYPE: 7,\n  _resetValues() {\n    this.setState(this.props.streamRule);\n  },\n  _onSubmit() {\n    if (this.state.type === this.ALWAYS_MATCH_RULE_TYPE) {\n      this.state.field = '';\n    }\n    if (this.state.type === this.FIELD_PRESENCE_RULE_TYPE || this.state.type === this.ALWAYS_MATCH_RULE_TYPE) {\n      this.state.value = '';\n    }\n    this.props.onSubmit(this.props.streamRule.id, this.state);\n    this.refs.modal.close();\n  },\n  _formatStreamRuleType(streamRuleType) {\n    return (\n      \n    );\n  },\n  open() {\n    this._resetValues();\n    this.refs.modal.open();\n  },\n  close() {\n    this.refs.modal.close();\n  },\n  render() {\n    const streamRuleTypes = this.props.streamRuleTypes.map(this._formatStreamRuleType);\n    const fieldBox = (String(this.state.type) !== String(this.ALWAYS_MATCH_RULE_TYPE) ?\n       : '');\n    const valueBox = (String(this.state.type) !== String(this.FIELD_PRESENCE_RULE_TYPE) && String(this.state.type) !== String(this.ALWAYS_MATCH_RULE_TYPE) ?\n       : '');\n    return (\n      \n        
\n \n {fieldBox}\n \n {streamRuleTypes}\n \n {valueBox}\n \n\n \n\n

\n Result:\n {' '}\n \n

\n \n \n
\n The server will try to convert to strings or numbers based on the matcher type as good as it\n can.\n\n

\n \n Take a look at the matcher code on GitHub\n \n

\n Regular expressions use Java syntax. } />\n
\n \n
\n
\n );\n },\n});\n\nexport default StreamRuleForm;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/streamrules/StreamRuleForm.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst HumanReadableStreamRule = React.createClass({\n propTypes: {\n streamRule: PropTypes.object.isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n },\n EMPTY_TAG: '',\n FIELD_PRESENCE_RULE_TYPE: 5,\n ALWAYS_MATCH_RULE_TYPE: 7,\n _getTypeForInteger(type, streamRuleTypes) {\n if (streamRuleTypes) {\n return streamRuleTypes.filter((streamRuleType) => {\n return String(streamRuleType.id) === String(type);\n })[0];\n }\n return undefined;\n },\n _formatRuleValue(streamRule) {\n if (String(streamRule.type) !== String(this.FIELD_PRESENCE_RULE_TYPE)) {\n if (streamRule.value) {\n return streamRule.value;\n }\n return this.EMPTY_TAG;\n }\n\n return null;\n },\n _formatRuleField(streamRule) {\n if (streamRule.field) {\n return streamRule.field;\n }\n return this.EMPTY_TAG;\n },\n render() {\n const streamRule = this.props.streamRule;\n const streamRuleType = this._getTypeForInteger(streamRule.type, this.props.streamRuleTypes);\n const negation = (streamRule.inverted ? 'not ' : null);\n const longDesc = (streamRuleType ? streamRuleType.long_desc : null);\n if (String(streamRule.type) === String(this.ALWAYS_MATCH_RULE_TYPE)) {\n return (\n Rule always matches\n );\n }\n return (\n Field {this._formatRuleField(streamRule)} must {negation}{longDesc} {this._formatRuleValue(streamRule)}\n );\n },\n});\n\nexport default HumanReadableStreamRule;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/streamrules/HumanReadableStreamRule.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport StreamRule from 'components/streamrules/StreamRule';\nimport { Spinner } from 'components/common';\n\nconst StreamRuleList = React.createClass({\n propTypes: {\n matchData: PropTypes.object,\n onSubmit: PropTypes.func,\n onDelete: PropTypes.func,\n permissions: PropTypes.array.isRequired,\n stream: PropTypes.object.isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n },\n\n _formatStreamRules(streamRules) {\n if (streamRules && streamRules.length > 0) {\n return streamRules.map((streamRule) => {\n return (\n \n );\n });\n }\n return
  • No rules defined.
  • ;\n },\n render() {\n if (this.props.stream) {\n const streamRules = this._formatStreamRules(this.props.stream.rules);\n return (\n
      \n {streamRules}\n
    \n );\n }\n return (\n \n );\n },\n});\n\nexport default StreamRuleList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/streamrules/StreamRuleList.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PermissionsMixin from 'util/PermissionsMixin';\nimport StreamRuleForm from 'components/streamrules/StreamRuleForm';\nimport HumanReadableStreamRule from 'components/streamrules//HumanReadableStreamRule';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst StreamRulesStore = StoreProvider.getStore('StreamRules');\n\nimport UserNotification from 'util/UserNotification';\n\nconst StreamRule = React.createClass({\n propTypes: {\n matchData: PropTypes.array,\n onDelete: PropTypes.func,\n onSubmit: PropTypes.func,\n permissions: PropTypes.array.isRequired,\n stream: PropTypes.object.isRequired,\n streamRule: PropTypes.object.isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n },\n mixins: [PermissionsMixin],\n _onEdit(event) {\n event.preventDefault();\n this.refs.streamRuleForm.open();\n },\n _onDelete(event) {\n event.preventDefault();\n if (window.confirm('Do you really want to delete this stream rule?')) {\n StreamRulesStore.remove(this.props.stream.id, this.props.streamRule.id, () => {\n if (this.props.onDelete) {\n this.props.onDelete(this.props.streamRule.id);\n }\n UserNotification.success('Stream rule has been successfully deleted.', 'Success');\n });\n }\n },\n _onSubmit(streamRuleId, data) {\n StreamRulesStore.update(this.props.stream.id, streamRuleId, data, () => {\n if (this.props.onSubmit) {\n this.props.onSubmit(streamRuleId, data);\n }\n UserNotification.success('Stream rule has been successfully updated.', 'Success');\n });\n },\n _formatActionItems() {\n return (\n \n \n \n \n \n \n \n \n );\n },\n _getMatchDataClassNames() {\n return (this.props.matchData.rules[this.props.streamRule.id] ? 'alert-success' : 'alert-danger');\n },\n render() {\n const streamRule = this.props.streamRule;\n const streamRuleTypes = this.props.streamRuleTypes;\n const actionItems = (this.isPermitted(this.props.permissions, [`streams:edit:${this.props.stream.id}`]) ? this._formatActionItems() : null);\n const className = (this.props.matchData ? this._getMatchDataClassNames() : null);\n const description = this.props.streamRule.description ? {' '}({this.props.streamRule.description}) : null;\n return (\n
  • \n {actionItems}\n \n \n {description}\n
  • \n );\n },\n});\n\nexport default StreamRule;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/streamrules/StreamRule.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Reflux from 'reflux';\nimport { Tab, Tabs, Col } from 'react-bootstrap';\nimport Immutable from 'immutable';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst InputsStore = StoreProvider.getStore('Inputs');\nconst StreamsStore = StoreProvider.getStore('Streams');\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst InputsActions = ActionsProvider.getActions('Inputs');\n\nimport MessageShow from 'components/search/MessageShow';\nimport MessageLoader from 'components/extractors/MessageLoader';\nimport RawMessageLoader from './RawMessageLoader';\nimport RecentMessageLoader from './RecentMessageLoader';\n\nconst LoaderTabs = React.createClass({\n propTypes: {\n tabs: PropTypes.oneOfType([\n PropTypes.oneOf(['recent', 'messageId', 'raw']),\n PropTypes.arrayOf(PropTypes.oneOf(['recent', 'messageId', 'raw'])),\n ]),\n messageId: PropTypes.string,\n index: PropTypes.string,\n onMessageLoaded: PropTypes.func,\n selectedInputId: PropTypes.string,\n customFieldActions: PropTypes.node,\n disableMessagePreview: PropTypes.bool,\n },\n\n mixins: [Reflux.listenTo(InputsStore, '_formatInputs')],\n\n getDefaultProps() {\n return {\n tabs: ['recent', 'messageId'],\n };\n },\n\n getInitialState() {\n return {\n activeTab: undefined,\n message: undefined,\n inputs: undefined,\n };\n },\n componentDidMount() {\n this.loadData();\n if (this.props.messageId && this.props.index) {\n this.refs.messageLoader.submit(this.props.messageId, this.props.index);\n }\n },\n\n onMessageLoaded(message) {\n this.setState({ message: message });\n if (this.props.onMessageLoaded) {\n this.props.onMessageLoaded(message);\n }\n },\n\n TAB_KEYS: {\n recent: 1,\n messageId: 2,\n raw: 3,\n },\n\n _formatInputs(state) {\n const inputs = InputsStore.inputsAsMap(state.inputs);\n this.setState({ inputs: Immutable.Map(inputs) });\n },\n\n loadData() {\n InputsActions.list();\n StreamsStore.listStreams().then((response) => {\n const streams = {};\n response.forEach((stream) => {\n streams[stream.id] = stream;\n });\n this.setState({ streams: Immutable.Map(streams) });\n });\n },\n\n _isTabVisible(tabKey) {\n return this.props.tabs === tabKey || this.props.tabs.indexOf(tabKey) !== -1;\n },\n\n _getActiveTab() {\n if (this.state.activeTab) {\n return this.state.activeTab;\n }\n\n if (this._isTabVisible('messageId') && this.props.messageId && this.props.index) {\n return this.TAB_KEYS.messageId;\n }\n\n if (this._isTabVisible('recent')) {\n return this.TAB_KEYS.recent;\n }\n if (this._isTabVisible('messageId')) {\n return this.TAB_KEYS.messageId;\n }\n return this.TAB_KEYS.raw;\n },\n\n _changeActiveTab(selectedTab) {\n if (this.state.activeTab !== selectedTab) {\n this.setState({ activeTab: selectedTab, message: undefined });\n }\n },\n\n _formatMessageLoaders() {\n const messageLoaders = [];\n\n if (this._isTabVisible('recent')) {\n messageLoaders.push(\n \n \n ,\n );\n }\n\n if (this._isTabVisible('messageId')) {\n messageLoaders.push(\n \n
    \n Please provide the id and index of the message that you want to load in this form:\n
    \n\n
    ,\n );\n }\n\n if (this._isTabVisible('raw')) {\n messageLoaders.push(\n \n
    \n Load a message from text, as if it was sent by a log source.\n
    \n\n \n
    ,\n );\n }\n\n return messageLoaders;\n },\n\n render() {\n let displayMessage;\n if (this.state.message && this.state.inputs && !this.props.disableMessagePreview) {\n displayMessage = (\n \n \n \n );\n }\n\n return (\n
    \n \n {this._formatMessageLoaders()}\n \n {displayMessage}\n
    \n );\n },\n});\n\nexport default LoaderTabs;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/messageloaders/LoaderTabs.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Reflux from 'reflux';\nimport { Button, Col, Row } from 'react-bootstrap';\n\nimport { Input } from 'components/bootstrap';\nimport { Select } from 'components/common';\nimport { BooleanField, DropdownField, NumberField, TextField } from 'components/configurationforms';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst MessagesActions = ActionsProvider.getActions('Messages');\nconst CodecTypesActions = ActionsProvider.getActions('CodecTypes');\nconst InputsActions = ActionsProvider.getActions('Inputs');\n\nimport StoreProvider from 'injection/StoreProvider';\n// eslint-disable-next-line no-unused-vars\nconst MessagesStore = StoreProvider.getStore('Messages');\nconst CodecTypesStore = StoreProvider.getStore('CodecTypes');\nconst InputsStore = StoreProvider.getStore('Inputs');\n\nconst RawMessageLoader = React.createClass({\n propTypes: {\n onMessageLoaded: PropTypes.func.isRequired,\n inputIdSelector: PropTypes.bool,\n },\n\n mixins: [Reflux.connect(CodecTypesStore), Reflux.connect(InputsStore)],\n\n getDefaultProps() {\n return {\n inputIdSelector: false,\n };\n },\n\n getInitialState() {\n return {\n loading: false,\n message: '',\n remoteAddress: '',\n codec: '',\n codecConfiguration: {},\n inputId: undefined,\n };\n },\n\n componentDidMount() {\n CodecTypesActions.list();\n if (this.props.inputIdSelector) {\n InputsActions.list();\n }\n },\n\n DEFAULT_REMOTE_ADDRESS: '127.0.0.1',\n\n _loadMessage(event) {\n event.preventDefault();\n\n const { message, remoteAddress, codec, codecConfiguration, inputId } = this.state;\n this.setState({ loading: true });\n const promise = MessagesActions.loadRawMessage.triggerPromise(message, remoteAddress || this.DEFAULT_REMOTE_ADDRESS,\n codec, codecConfiguration);\n promise.then((loadedMessage) => {\n this.props.onMessageLoaded(\n loadedMessage,\n {\n message: message,\n remoteAddress: remoteAddress,\n codec: codec,\n codecConfiguration: codecConfiguration,\n inputId: inputId,\n });\n });\n promise.finally(() => this.setState({ loading: false }));\n },\n\n _bindValue(event) {\n const newState = {};\n newState[event.target.name] = event.target.value;\n this.setState(newState);\n },\n\n _formatSelectOptions() {\n if (!this.state.codecTypes) {\n return [{ value: 'none', label: 'Loading codec types...', disabled: true }];\n }\n\n const codecTypesIds = Object.keys(this.state.codecTypes);\n if (codecTypesIds.length === 0) {\n return [{ value: 'none', label: 'No codecs available' }];\n }\n\n return codecTypesIds\n .filter(id => id !== 'random-http-msg') // Skip Random HTTP codec, as nobody wants to enter a raw random message.\n .map((id) => {\n const name = this.state.codecTypes[id].name;\n // Add id as label on codecs not having a descriptor name\n return { value: id, label: name === '' ? id : name };\n })\n .sort((codecA, codecB) => codecA.label.toLowerCase().localeCompare(codecB.label.toLowerCase()));\n },\n\n _formatInputSelectOptions() {\n if (!this.state.inputs) {\n return [{ value: 'none', label: 'Loading inputs...', disabled: true }];\n }\n\n const inputIds = Object.keys(this.state.inputs);\n if (inputIds.length === 0) {\n return [{ value: 'none', label: 'No inputs available' }];\n }\n\n return inputIds\n .map((id) => {\n const inputId = this.state.inputs[id].id;\n const label = `${inputId} / ${this.state.inputs[id].title} / ${this.state.inputs[id].name}`;\n return { value: inputId, label: label };\n })\n .sort((inputA, inputB) => inputA.label.toLowerCase().localeCompare(inputB.label.toLowerCase()));\n },\n\n _onCodecSelect(selectedCodec) {\n this._bindValue({ target: { name: 'codec', value: selectedCodec } });\n this.setState({ codecConfiguration: {} });\n },\n\n _onInputSelect(selectedInput) {\n this.setState({ inputId: selectedInput });\n },\n\n _onCodecConfigurationChange(field, value) {\n const newConfiguration = Object.assign(this.state.codecConfiguration);\n newConfiguration[field] = value;\n this._bindValue({ target: { name: 'codecConfiguration', value: newConfiguration } });\n },\n\n _formatConfigField(key, configField) {\n const value = this.state.codecConfiguration[key];\n const typeName = 'RawMessageLoader';\n const elementKey = `${typeName}-${key}`;\n\n switch (configField.type) {\n case 'text':\n return ();\n case 'number':\n return ();\n case 'boolean':\n return ();\n case 'dropdown':\n return ();\n default:\n return null;\n }\n },\n\n _isSubmitDisabled() {\n return !this.state.message || !this.state.codec || this.state.loading;\n },\n\n render() {\n let codecConfigurationOptions;\n if (this.state.codecTypes && this.state.codec) {\n const codecConfiguration = this.state.codecTypes[this.state.codec].requested_configuration;\n codecConfigurationOptions = Object.keys(codecConfiguration)\n .sort((keyA, keyB) => codecConfiguration[keyA].is_optional - codecConfiguration[keyB].is_optional)\n .map(key => this._formatConfigField(key, codecConfiguration[key]));\n }\n\n let inputIdSelector;\n if (this.props.inputIdSelector) {\n inputIdSelector = (\n Message input (optional)}\n help=\"Select the message input ID that should be assigned to the parsed message.\">\n \n Source IP address (optional)}\n help={`Remote IP address to use as message source. Graylog will use ${this.DEFAULT_REMOTE_ADDRESS} by default.`}\n value={this.state.remoteAddress} onChange={this._bindValue} />\n \n {inputIdSelector}\n
    \n Codec configuration\n \n \n \n
    \n \n );\n }\n\n handleTypeChangeToAnd() {\n this.handleTypeChange('AND');\n }\n\n handleTypeChangeToOr() {\n this.handleTypeChange('OR');\n }\n\n handleTypeChange(newValue) {\n if (window.confirm('You are about to change how rules are applied to this stream, do you want to continue? Changes will take effect immediately.')) {\n StreamsStore.update(this.props.stream.id, { matching_type: newValue }, (response) => {\n this.props.onChange();\n UserNotification.success(`Messages will now be routed into the stream when ${newValue === 'AND' ? 'all' : 'any'} rules are matched`,\n 'Success');\n return response;\n });\n }\n }\n}\n\nexport default MatchingTypeSwitcher;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/streams/MatchingTypeSwitcher.jsx","module.exports = (__webpack_require__(11))(336);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/react-addons-linked-state-mixin/index.js from dll-reference __vendor\n// module id = 927\n// module chunks = 4 5 6 17 20 23 24 26 29","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst MessagesActions = ActionsProvider.getActions('Messages');\n\nimport StoreProvider from 'injection/StoreProvider';\n// eslint-disable-next-line no-unused-vars\nconst MessagesStore = StoreProvider.getStore('Messages');\n\nconst MessageLoader = React.createClass({\n propTypes: {\n hidden: PropTypes.bool,\n hideText: PropTypes.bool,\n onMessageLoaded: PropTypes.func,\n },\n getDefaultProps() {\n return {\n hidden: true,\n };\n },\n getInitialState() {\n return ({\n hidden: this.props.hidden,\n loading: false,\n });\n },\n\n toggleMessageForm() {\n this.setState({ hidden: !this.state.hidden }, this._focusMessageLoaderForm);\n },\n _focusMessageLoaderForm() {\n if (!this.state.hidden) {\n this.refs.messageId.focus();\n }\n },\n loadMessage(event) {\n const messageId = this.refs.messageId.value;\n const index = this.refs.index.value;\n if (messageId === '' || index === '') {\n return;\n }\n this.setState({ loading: true });\n const promise = MessagesActions.loadMessage.triggerPromise(index, messageId);\n promise.then(data => this.props.onMessageLoaded(data));\n promise.finally(() => this.setState({ loading: false }));\n\n event.preventDefault();\n },\n submit(messageId, index) {\n this.refs.messageId.value = messageId;\n this.refs.index.value = index;\n this.refs.submitButton.click();\n },\n render() {\n let explanatoryText;\n if (!this.props.hideText) {\n explanatoryText = (\n

    \n Wrong example? You can{' '}\n .\n

    \n );\n }\n const loadMessageForm = (\n
    \n
    \n \n \n \n
    \n
    \n );\n return (\n
    \n {explanatoryText}\n {this.state.hidden ? null : loadMessageForm}\n
    \n );\n },\n});\n\nexport default MessageLoader;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/extractors/MessageLoader.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport LinkedStateMixin from 'react-addons-linked-state-mixin';\nimport { Button } from 'react-bootstrap';\n\nimport { Input } from 'components/bootstrap';\nimport Spinner from 'components/common/Spinner';\n\nconst InputDropdown = React.createClass({\n propTypes: {\n inputs: PropTypes.object,\n title: PropTypes.string,\n preselectedInputId: PropTypes.string,\n onLoadMessage: PropTypes.func,\n disabled: PropTypes.bool,\n },\n mixins: [LinkedStateMixin],\n getInitialState() {\n return {\n selectedInput: this.props.preselectedInputId || this.PLACEHOLDER,\n };\n },\n PLACEHOLDER: 'placeholder',\n _formatInput(input) {\n return ;\n },\n _sortByTitle(input1, input2) {\n return input1.title.localeCompare(input2.title);\n },\n _onLoadMessage() {\n this.props.onLoadMessage(this.state.selectedInput);\n },\n _formatStaticInput(input) {\n return (\n \n \n \n );\n },\n render() {\n // When an input is pre-selected, show a static dropdown\n if (this.props.inputs && this.props.preselectedInputId) {\n return (\n
    \n {this._formatStaticInput(this.props.inputs.get(this.props.preselectedInputId))}\n\n \n
    \n );\n }\n\n if (this.props.inputs) {\n const inputs = this.props.inputs.sort(this._sortByTitle).map(this._formatInput);\n return (\n
    \n \n \n {inputs.toArray()}\n \n\n \n
    \n );\n }\n\n return ;\n },\n});\n\nexport default InputDropdown;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/inputs/InputDropdown.jsx"],"sourceRoot":""}