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

web-interface.assets.0c1a66a2-35.1ec71fc30880f2142b45.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.5
Show newest version
{"version":3,"sources":["webpack:///./src/components/sidecars/common/CollectorIndicator.jsx","webpack:///./src/components/sidecars/common/SidecarSearchForm.css?1080","webpack:///./src/components/sidecars/common/SidecarSearchForm.css","webpack:///./src/components/sidecars/common/StatusIndicator.jsx","webpack:///./src/components/sidecars/administration/CollectorConfigurationSelector.jsx","webpack:///./src/components/sidecars/administration/CollectorProcessControl.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationActions.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationFilters.jsx","webpack:///./src/components/sidecars/administration/FiltersSummary.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministration.jsx","webpack:///./src/components/sidecars/administration/CollectorsAdministrationContainer.jsx","webpack:///./src/pages/SidecarAdministrationPage.jsx","webpack:///./src/components/sidecars/common/SidecarSearchForm.jsx","webpack:///./src/components/sidecars/common/CommonSidecarStyles.css?d0b7","webpack:///./src/components/sidecars/administration/FiltersSummary.css?79a5","webpack:///./src/components/sidecars/common/OperatingSystemIcon.jsx","webpack:///./src/components/sidecars/common/StatusIndicator.css","webpack:///./src/util/SortUtils.js","webpack:///./src/components/sidecars/common/StatusIndicator.css?0400","webpack:///./src/components/sidecars/administration/CollectorsAdministration.css?dd0c","webpack:///./src/components/sidecars/administration/FiltersSummary.css","webpack:///./src/logic/sidecar/SidecarStatusEnum.js","webpack:///./src/components/sidecars/common/ColorLabel.jsx","webpack:///./src/components/sidecars/common/CommonSidecarStyles.css","webpack:///./src/components/sidecars/administration/CollectorsAdministration.css"],"names":["CollectorIndicator","createReactClass","propTypes","collector","PropTypes","string","isRequired","operatingSystem","getDefaultProps","undefined","render","this","props","lodash","upperFirst","content","module","i","options","transform","locals","exports","push","StatusIndicator","icon","className","text","SidecarStatusEnum","toString","status","lastSeenDateTime","DateTime","lastSeen","message","RUNNING","FAILING","STOPPED","toRelativeString","id","tooltip","placement","overlay","rootClose","style","indicator","name","fixedWidth","React","Component","number","CollectorConfigurationSelector","selectedSidecarCollectorPairs","configurations","map","sidecar","reduce","accumulator","concat","assignments","assignment","find","configuration","configuration_id","configurationIds","hideCallback","nextAssignedConfigurations","filter","c","includes","setState","modal","open","doneCallback","onConfigurationSelectionChange","state","configurationId","collectors","b","collector_id","ColorLabel","color","size","node_operating_system","actionSummary","exampleSidecarCollectorPair","collectorIndicator","length","formattedSummary","node_name","join","ref","title","onConfirm","confirmConfigurationChange","onCancel","cancelConfigurationChange","selectedLogCollectors","uniq","triggerNode","bsSize","bsStyle","items","displayDataFilter","disabled","sort","c1","c2","naturalSortIgnoreCase","assignedConfigurations","getAssignedConfigurations","itemFormatter","configurationFormatter","onItemSelect","handleConfigurationSelect","selectedItems","config","filterPlaceholder","renderConfigurationSummary","array","func","PROCESS_ACTIONS","CollectorProcessControl","onProcessAction","getInitialState","selectedAction","isConfigurationWarningHidden","resetSelectedAction","handleProcessActionSelect","processAction","confirmProcessAction","cancelProcessAction","hideConfigurationWarning","renderSummaryContent","selectedSidecars","singular","plural","value","renderConfigurationWarning","header","capitalize","onClick","renderProcessActionSummary","allHaveConfigurationsAssigned","every","some","shouldShowConfigurationWarning","confirmButtonDisabled","action","CollectorsAdministrationActions","CollectorsAdministrationFilters","filters","object","onFilterChange","callback","getCollectorsFilter","collectorFilter","collectorMapper","collectorItems","collectorId","split","getConfigurationFilter","configurationFilter","configurationMapper","configurationItems","getOSFilter","operatingSystems","osFilter","os","getStatusFilter","Object","keys","properties","key","String","statusFilter","statusCode","FiltersSummary","type","filterKey","formatFilter","onResetFilters","isEmpty","md","formatFilters","deleteButton","CollectorsAdministration","sidecarCollectorPairs","pagination","query","onPageChange","onFilter","onQueryChange","onConfigurationChange","enabledCollectors","getEnabledCollectors","selected","componentWillReceiveProps","nextProps","isEqual","filterSelectedCollectors","componentDidUpdate","setSelectAllCheckboxState","selectAllInput","selectAllCheckbox","getInputDOMNode","indeterminate","isAllSelected","sidecarCollectorId","node_id","filteredSidecarCollectorIds","handleConfigurationChange","selectedConfigurations","handleProcessAction","selectedCollectors","forEach","formatHeader","headerMenu","selectedSidecarCollectorId","Header","headerComponentsWrapper","label","checked","onChange","toggleSelectAll","wrapperClassName","handleSidecarCollectorSelect","event","newSelection","target","union","without","formatSidecarNoCollectors","Item","collectorEntry","disabledCollector","alignedInformation","OperatingSystemIcon","node_details","operating_system","formatCollector","configAssignment","collectorStatus","result","e","lg","xs","additionalContent","last_seen","to","Routes","SYSTEM","SIDECARS","EDIT_CONFIGURATION","formatSidecar","active","commonStyle","greyedOut","handleSearch","handleReset","handleResetFilters","formattedCollectors","sidecarToMap","sidecarCollectors","paginatedList","activePage","page","pageSize","pageSizes","totalItems","total","SidecarSearchForm","onSearch","onReset","CombinedProvider","get","CollectorsStore","CollectorsActions","SidecarsAdministrationStore","SidecarsAdministrationActions","CollectorConfigurationsStore","CollectorConfigurationsActions","SidecarsActions","CollectorsAdministrationContainer","nodeId","mixins","Reflux","connect","componentDidMount","loadData","interval","setInterval","reloadSidecars","prevProps","componentWillUnmount","clearInterval","all","list","sidecars","refreshList","handlePageChange","effectivePage","handleFilter","property","newFilters","cloneDeep","handleQueryChange","assignConfigurations","then","response","setAction","s1","s2","compatibleCollectorIds","compatibleCollector","SidecarAdministrationPage","location","DocumentationLink","DocsHelper","PAGES","COLLECTOR","OVERVIEW","ADMINISTRATION","CONFIGURATION","children","queryHelpPopover","popoverWide","condensed","queryHelp","trigger","searchButtonLabel","placeholder","queryWidth","queryHelpComponent","topMargin","useLoadingState","element","SidecarIcon","styled","Icon","iconName","prefix","trim","toLowerCase","indexOf","defaultProps","sortByDate","d1","d2","sortOrder","effectiveSortOrder","d1Time","moment","d2Time","isBefore","naturalSort","UNKNOWN","0","1","2","3","isValidStatusCode","toStatusCode","stringStatus","lowerCase","toNumber","ColorLabelWrap","span","theme","backgroundColor","d3","hsl","borderColor","darker","textColor","l","rgb","global","textDefault","textAlt","border","oneOfType","oneOf","shape","withTheme"],"mappings":"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","file":"0c1a66a2-35.1ec71fc30880f2142b45.js","sourcesContent":["import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport OperatingSystemIcon from './OperatingSystemIcon';\n\nconst CollectorIndicator = createReactClass({\n  propTypes: {\n    collector: PropTypes.string.isRequired,\n    operatingSystem: PropTypes.string,\n  },\n\n  getDefaultProps() {\n    return {\n      operatingSystem: undefined,\n    };\n  },\n\n  render() {\n    const { collector, operatingSystem } = this.props;\n    return (\n      \n         {collector}\n        {operatingSystem &&  on {lodash.upperFirst(operatingSystem)}}\n      \n    );\n  },\n});\n\nexport default CollectorIndicator;\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./SidecarSearchForm.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./SidecarSearchForm.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./SidecarSearchForm.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".popover._3sRe_wQ02Pd9knIm1N-b3T{max-width:500px}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"popoverWide\": \"_3sRe_wQ02Pd9knIm1N-b3T\"\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Tooltip, OverlayTrigger } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\nimport DateTime from 'logic/datetimes/DateTime';\n\nimport style from './StatusIndicator.css';\n\nclass StatusIndicator extends React.Component {\n  static propTypes = {\n    id: PropTypes.string,\n    lastSeen: PropTypes.string,\n    message: PropTypes.string,\n    status: PropTypes.number,\n  };\n\n  static defaultProps = {\n    id: '',\n    lastSeen: undefined,\n    message: '',\n    status: -1,\n  };\n\n  render() {\n    const text = lodash.upperFirst(SidecarStatusEnum.toString(this.props.status));\n    const lastSeenDateTime = new DateTime(this.props.lastSeen);\n\n    let icon;\n    let className;\n    let { message } = this.props;\n\n    switch (this.props.status) {\n      case SidecarStatusEnum.RUNNING:\n        className = 'text-success';\n        icon = 'play';\n        break;\n      case SidecarStatusEnum.FAILING:\n        className = 'text-danger';\n        icon = 'exclamation-triangle';\n        break;\n      case SidecarStatusEnum.STOPPED:\n        className = 'text-danger';\n        icon = 'stop';\n        break;\n      default:\n        className = 'text-info';\n        icon = 'question-circle';\n        message += ` (${lastSeenDateTime.toRelativeString()})`;\n    }\n\n    if (this.props.message && this.props.id) {\n      const tooltip = {message};\n      return (\n        \n          \n             {text}\n          \n        \n      );\n    }\n    return (\n      \n         {text}\n      \n    );\n  }\n}\n\nexport default StatusIndicator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Button } from 'components/graylog';\nimport { SelectPopover } from 'components/common';\nimport { BootstrapModalConfirm } from 'components/bootstrap';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport CollectorIndicator from 'components/sidecars/common/CollectorIndicator';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\n\nclass CollectorConfigurationSelector extends React.Component {\n  static propTypes = {\n    collectors: PropTypes.array.isRequired,\n    configurations: PropTypes.array.isRequired,\n    selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n    onConfigurationSelectionChange: PropTypes.func.isRequired,\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      nextAssignedConfigurations: [],\n    };\n  }\n\n  getAssignedConfigurations = (selectedSidecarCollectorPairs, configurations) => {\n    const assignments = selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar).reduce((accumulator, sidecar) => accumulator.concat(sidecar.assignments), []);\n    return assignments.map((assignment) => configurations.find((configuration) => configuration.id === assignment.configuration_id));\n  };\n\n  handleConfigurationSelect = (configurationIds, hideCallback) => {\n    const { configurations } = this.props;\n\n    hideCallback();\n    const nextAssignedConfigurations = configurations.filter((c) => configurationIds.includes(c.id));\n    this.setState({ nextAssignedConfigurations }, this.modal.open);\n  };\n\n  confirmConfigurationChange = (doneCallback) => {\n    const { onConfigurationSelectionChange } = this.props;\n    const { nextAssignedConfigurations } = this.state;\n\n    onConfigurationSelectionChange(nextAssignedConfigurations, doneCallback);\n  };\n\n  cancelConfigurationChange = () => {\n    this.setState({ nextAssignedConfigurations: [] });\n  };\n\n  configurationFormatter = (configurationId) => {\n    const { configurations, collectors } = this.props;\n    const configuration = configurations.find((c) => c.id === configurationId);\n    const collector = collectors.find((b) => b.id === configuration.collector_id);\n    return (\n      \n         {configuration.name} \n        \n          {collector\n            ? (\n              \n            )\n            : Unknown collector}\n        \n      \n    );\n  };\n\n  renderConfigurationSummary = (nextAssignedConfigurations, selectedSidecarCollectorPairs) => {\n    const exampleSidecarCollectorPair = selectedSidecarCollectorPairs[0];\n    const collectorIndicator = (\n      \n        \n      \n    );\n\n    let actionSummary;\n    if (nextAssignedConfigurations.length === 0) {\n      actionSummary = You are going to remove the configuration for collector {collectorIndicator} from:;\n    } else {\n      actionSummary = You are going to apply the {nextAssignedConfigurations[0].name} configuration for collector {collectorIndicator} to:;\n    }\n\n    const formattedSummary = selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar.node_name).join(', ');\n\n    return (\n       { this.modal = c; }}\n                             title=\"Configuration summary\"\n                             onConfirm={this.confirmConfigurationChange}\n                             onCancel={this.cancelConfigurationChange}>\n        
\n

{actionSummary}

\n

{formattedSummary}

\n

Are you sure you want to proceed with this action?

\n
\n
\n );\n };\n\n render() {\n const { nextAssignedConfigurations } = this.state;\n const { configurations, selectedSidecarCollectorPairs } = this.props;\n\n // Do not allow configuration changes when more than one log collector type is selected\n const selectedLogCollectors = lodash.uniq(selectedSidecarCollectorPairs.map(({ collector }) => collector));\n if (selectedLogCollectors.length > 1) {\n return (\n Configure }\n items={[`Cannot change configurations of ${selectedLogCollectors.map((collector) => collector.name).join(', ')} collectors simultaneously`]}\n displayDataFilter={false}\n disabled />\n );\n }\n\n const configurationIds = configurations\n .filter((configuration) => selectedLogCollectors[0].id === configuration.collector_id)\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n .map((c) => c.id);\n\n if (configurationIds.length === 0) {\n return (\n Configure }\n items={['No configurations available for the selected log collector']}\n displayDataFilter={false}\n disabled />\n );\n }\n\n const assignedConfigurations = this.getAssignedConfigurations(selectedSidecarCollectorPairs, configurations)\n .filter((configuration) => selectedLogCollectors[0].id === configuration.collector_id);\n\n return (\n \n Configure }\n items={configurationIds}\n itemFormatter={this.configurationFormatter}\n onItemSelect={this.handleConfigurationSelect}\n selectedItems={assignedConfigurations.map((config) => config.id)}\n filterPlaceholder=\"Filter by configuration\" />\n {this.renderConfigurationSummary(nextAssignedConfigurations, selectedSidecarCollectorPairs)}\n \n );\n }\n}\n\nexport default CollectorConfigurationSelector;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Button, Panel } from 'components/graylog';\nimport { Pluralize, SelectPopover } from 'components/common';\nimport { BootstrapModalConfirm } from 'components/bootstrap';\n\nconst PROCESS_ACTIONS = ['start', 'restart', 'stop'];\n\nconst CollectorProcessControl = createReactClass({\n propTypes: {\n selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n selectedAction: undefined,\n isConfigurationWarningHidden: false,\n };\n },\n\n resetSelectedAction() {\n this.setState({ selectedAction: undefined });\n },\n\n handleProcessActionSelect(processAction, hideCallback) {\n hideCallback();\n this.setState({ selectedAction: processAction ? processAction[0] : undefined }, this.modal.open);\n },\n\n confirmProcessAction(doneCallback) {\n const { onProcessAction, selectedSidecarCollectorPairs } = this.props;\n const { selectedAction } = this.state;\n\n const callback = () => {\n doneCallback();\n this.resetSelectedAction();\n };\n\n onProcessAction(selectedAction, selectedSidecarCollectorPairs, callback);\n },\n\n cancelProcessAction() {\n this.resetSelectedAction();\n },\n\n hideConfigurationWarning() {\n this.setState({ isConfigurationWarningHidden: true });\n },\n\n\n renderSummaryContent(selectedAction, selectedSidecars) {\n return (\n <>\n

\n You are going to {selectedAction} log collectors in \n :\n

\n

{selectedSidecars.join(', ')}

\n

Are you sure you want to proceed with this action?

\n \n );\n },\n\n renderConfigurationWarning(selectedAction) {\n return (\n \n

\n At least one selected Collector is not configured yet. To start a new Collector, assign a\n Configuration to it and the Sidecar will start the process for you.\n

\n

\n {lodash.capitalize(selectedAction)}ing a Collector without Configuration will have no effect.\n

\n \n
\n );\n },\n\n renderProcessActionSummary(selectedSidecarCollectorPairs, selectedAction) {\n const { isConfigurationWarningHidden } = this.state;\n const selectedSidecars = lodash.uniq(selectedSidecarCollectorPairs.map(({ sidecar }) => sidecar.node_name));\n\n // Check if all selected collectors have assigned configurations\n const allHaveConfigurationsAssigned = selectedSidecarCollectorPairs.every(({ collector, sidecar }) => {\n // eslint-disable-next-line camelcase\n return sidecar.assignments.some(({ collector_id }) => collector_id === collector.id);\n });\n\n const shouldShowConfigurationWarning = !isConfigurationWarningHidden && !allHaveConfigurationsAssigned;\n\n return (\n { this.modal = c; }}\n title=\"Process action summary\"\n confirmButtonDisabled={shouldShowConfigurationWarning}\n onConfirm={this.confirmProcessAction}\n onCancel={this.cancelProcessAction}>\n
\n {shouldShowConfigurationWarning\n ? this.renderConfigurationWarning(selectedAction)\n : this.renderSummaryContent(selectedAction, selectedSidecars)}\n
\n
\n );\n },\n\n render() {\n const { selectedSidecarCollectorPairs } = this.props;\n const { selectedAction } = this.state;\n\n const actionFormatter = (action) => lodash.capitalize(action);\n\n return (\n \n Process \n \n)}\n items={PROCESS_ACTIONS}\n itemFormatter={actionFormatter}\n selectedItems={selectedAction ? [selectedAction] : []}\n displayDataFilter={false}\n onItemSelect={this.handleProcessActionSelect} />\n {this.renderProcessActionSummary(selectedSidecarCollectorPairs, selectedAction)}\n \n );\n },\n});\n\nexport default CollectorProcessControl;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport { ButtonToolbar } from 'components/graylog';\n\nimport CollectorConfigurationSelector from './CollectorConfigurationSelector';\nimport CollectorProcessControl from './CollectorProcessControl';\n\nconst CollectorsAdministrationActions = createReactClass({\n propTypes: {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n selectedSidecarCollectorPairs: PropTypes.array.isRequired,\n onConfigurationSelectionChange: PropTypes.func.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n render() {\n const { collectors, configurations, selectedSidecarCollectorPairs, onConfigurationSelectionChange, onProcessAction } = this.props;\n return (\n \n \n \n \n );\n },\n});\n\nexport default CollectorsAdministrationActions;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\nimport { Button, ButtonToolbar } from 'components/graylog';\n\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\nimport { SelectPopover } from 'components/common';\nimport CollectorIndicator from 'components/sidecars/common/CollectorIndicator';\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\n\nconst CollectorsAdministrationFilters = createReactClass({\n propTypes: {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n filters: PropTypes.object.isRequired,\n filter: PropTypes.func.isRequired,\n },\n\n onFilterChange(name, value, callback) {\n const { filter } = this.props;\n\n filter(name, value);\n callback();\n },\n\n getCollectorsFilter() {\n const { collectors, filters } = this.props;\n const collectorMapper = (collector) => `${collector.id};${collector.name}`;\n\n const collectorItems = collectors\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n // TODO: Hack to be able to filter in SelectPopover. We should change that to avoid this hack.\n .map(collectorMapper);\n\n const collectorFormatter = (collectorId) => {\n const [id] = collectorId.split(';');\n const collector = lodash.find(collectors, { id: id });\n return ;\n };\n\n const filter = ([collectorId], callback) => {\n const [id] = collectorId ? collectorId.split(';') : [];\n this.onFilterChange('collector', id, callback);\n };\n\n let collectorFilter;\n if (filters.collector) {\n const collector = collectors.find((c) => c.id === filters.collector);\n collectorFilter = collector ? collectorMapper(collector) : undefined;\n }\n\n return (\n Collector }\n items={collectorItems}\n itemFormatter={collectorFormatter}\n onItemSelect={filter}\n selectedItems={collectorFilter ? [collectorFilter] : []}\n filterPlaceholder=\"Filter by collector\" />\n );\n },\n\n getConfigurationFilter() {\n const { configurations, filters } = this.props;\n\n const configurationMapper = (configuration) => `${configuration.id};${configuration.name}`;\n const configurationItems = configurations\n .sort((c1, c2) => naturalSortIgnoreCase(c1.name, c2.name))\n // TODO: Hack to be able to filter in SelectPopover. We should change that to avoid this hack.\n .map(configurationMapper);\n\n const configurationFormatter = (configurationId) => {\n const [id] = configurationId.split(';');\n const configuration = lodash.find(configurations, { id: id });\n return {configuration.name};\n };\n\n const filter = ([configurationId], callback) => {\n const [id] = configurationId ? configurationId.split(';') : [];\n this.onFilterChange('configuration', id, callback);\n };\n\n let configurationFilter;\n if (filters.configuration) {\n const configuration = configurations.find((c) => c.id === filters.configuration);\n configurationFilter = configuration ? configurationMapper(configuration) : undefined;\n }\n\n return (\n Configuration }\n items={configurationItems}\n itemFormatter={configurationFormatter}\n onItemSelect={filter}\n selectedItems={configurationFilter ? [configurationFilter] : []}\n filterPlaceholder=\"Filter by configuration\" />\n );\n },\n\n getOSFilter() {\n const { collectors, filters } = this.props;\n\n const operatingSystems = lodash\n .uniq(collectors.map((collector) => lodash.upperFirst(collector.node_operating_system)))\n .sort(naturalSortIgnoreCase);\n\n const filter = ([os], callback) => this.onFilterChange('os', os, callback);\n\n const osFilter = filters.os;\n\n return (\n OS }\n items={operatingSystems}\n onItemSelect={filter}\n selectedItems={osFilter ? [osFilter] : []}\n filterPlaceholder=\"Filter by OS\" />\n );\n },\n\n getStatusFilter() {\n const { filters } = this.props;\n const status = Object.keys(SidecarStatusEnum.properties).map((key) => String(key));\n const filter = ([statusCode], callback) => this.onFilterChange('status', statusCode, callback);\n\n const statusFilter = filters.status;\n const statusFormatter = (statusCode) => lodash.upperFirst(SidecarStatusEnum.toString(statusCode));\n\n return (\n Collector Status }\n items={status}\n itemFormatter={statusFormatter}\n onItemSelect={filter}\n selectedItems={statusFilter ? [statusFilter] : []}\n filterPlaceholder=\"Filter by collector status\" />\n );\n },\n\n render() {\n return (\n \n {this.getCollectorsFilter()}\n {this.getConfigurationFilter()}\n {this.getStatusFilter()}\n {this.getOSFilter()}\n \n );\n },\n});\n\nexport default CollectorsAdministrationFilters;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { Button, Col, Row } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\n\nimport style from './FiltersSummary.css';\n\nclass FiltersSummary extends React.Component {\n static propTypes = {\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n filters: PropTypes.object.isRequired,\n onResetFilters: PropTypes.func.isRequired,\n };\n\n formatFilter = (type, value) => {\n const { collectors, configurations } = this.props;\n\n if (type === 'collector') {\n // Get collector name\n const collector = collectors.find((c) => c.id === value);\n return `${collector.name} on ${collector.node_operating_system}`;\n } if (type === 'configuration') {\n // Get configuration name\n return configurations.find((c) => c.id === value).name;\n } if (type === 'status') {\n // Convert status code to string\n return SidecarStatusEnum.toString(value);\n }\n\n return value;\n };\n\n formatFilters = (filters) => {\n return Object.keys(filters).map((filterKey) => {\n return
  • {filterKey}: {this.formatFilter(filterKey, filters[filterKey])}
  • ;\n });\n };\n\n render() {\n const { filters, onResetFilters } = this.props;\n\n if (lodash.isEmpty(filters)) {\n return null;\n }\n\n return (\n \n \n
      \n
    • Filters
    • \n {this.formatFilters(filters)}\n
    • \n \n
    • \n
    \n \n
    \n );\n }\n}\n\nexport default FiltersSummary;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\nimport { Col, Row } from 'components/graylog';\nimport { Link } from 'react-router';\nimport Routes from 'routing/Routes';\n\nimport { ControlledTableList, PaginatedList } from 'components/common';\nimport { Input } from 'components/bootstrap';\n\nimport ColorLabel from 'components/sidecars/common/ColorLabel';\nimport OperatingSystemIcon from 'components/sidecars/common/OperatingSystemIcon';\nimport SidecarSearchForm from 'components/sidecars/common/SidecarSearchForm';\nimport StatusIndicator from 'components/sidecars/common/StatusIndicator';\n\nimport commonStyle from 'components/sidecars/common/CommonSidecarStyles.css';\n\nimport CollectorsAdministrationActions from './CollectorsAdministrationActions';\nimport CollectorsAdministrationFilters from './CollectorsAdministrationFilters';\nimport FiltersSummary from './FiltersSummary';\n\nimport style from './CollectorsAdministration.css';\n\nconst CollectorsAdministration = createReactClass({\n propTypes: {\n sidecarCollectorPairs: PropTypes.array.isRequired,\n collectors: PropTypes.array.isRequired,\n configurations: PropTypes.array.isRequired,\n pagination: PropTypes.object.isRequired,\n query: PropTypes.string.isRequired,\n filters: PropTypes.object.isRequired,\n onPageChange: PropTypes.func.isRequired,\n onFilter: PropTypes.func.isRequired,\n onQueryChange: PropTypes.func.isRequired,\n onConfigurationChange: PropTypes.func.isRequired,\n onProcessAction: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n const { sidecarCollectorPairs } = this.props;\n return {\n enabledCollectors: this.getEnabledCollectors(sidecarCollectorPairs),\n selected: [],\n };\n },\n\n componentWillReceiveProps(nextProps) {\n if (!lodash.isEqual(this.props.sidecarCollectorPairs, nextProps.sidecarCollectorPairs)) {\n this.setState({\n enabledCollectors: this.getEnabledCollectors(nextProps.sidecarCollectorPairs),\n selected: this.filterSelectedCollectors(nextProps.sidecarCollectorPairs),\n });\n }\n },\n\n componentDidUpdate() {\n this.setSelectAllCheckboxState(this.selectAllInput, this.state.enabledCollectors, this.state.selected);\n },\n\n // Filter out sidecars with no compatible collectors\n getEnabledCollectors(collectors) {\n return collectors.filter(({ collector }) => !lodash.isEmpty(collector));\n },\n\n setSelectAllCheckboxState(selectAllInput, collectors, selected) {\n const selectAllCheckbox = selectAllInput ? selectAllInput.getInputDOMNode() : undefined;\n if (!selectAllCheckbox) {\n return;\n }\n // Set the select all checkbox as indeterminate if some but not all items are selected.\n selectAllCheckbox.indeterminate = selected.length > 0 && !this.isAllSelected(collectors, selected);\n },\n\n sidecarCollectorId(sidecar, collector) {\n return `${sidecar.node_id}-${collector.name}`;\n },\n\n filterSelectedCollectors(collectors) {\n const filteredSidecarCollectorIds = collectors.map(({ collector, sidecar }) => this.sidecarCollectorId(sidecar, collector));\n return this.state.selected.filter((sidecarCollectorId) => filteredSidecarCollectorIds.includes(sidecarCollectorId));\n },\n\n handleConfigurationChange(selectedConfigurations, doneCallback) {\n const { selected, enabledCollectors } = this.state;\n\n const selectedSidecars = enabledCollectors\n .filter(({ sidecar, collector }) => selected.includes(this.sidecarCollectorId(sidecar, collector)));\n\n this.props.onConfigurationChange(selectedSidecars, selectedConfigurations, doneCallback);\n },\n\n handleProcessAction(action, selectedSidecarCollectorPairs, doneCallback) {\n const selectedCollectors = {};\n selectedSidecarCollectorPairs.forEach(({ sidecar, collector }) => {\n if (selectedCollectors[sidecar.node_id]) {\n selectedCollectors[sidecar.node_id].push(collector.id);\n } else {\n selectedCollectors[sidecar.node_id] = [collector.id];\n }\n });\n this.props.onProcessAction(action, selectedCollectors, doneCallback);\n },\n\n formatHeader() {\n const { collectors, configurations, sidecarCollectorPairs } = this.props;\n const { selected, enabledCollectors } = this.state;\n const selectedItems = this.state.selected.length;\n\n const selectedSidecarCollectorPairs = selected.map((selectedSidecarCollectorId) => {\n return sidecarCollectorPairs.find(({ sidecar, collector }) => this.sidecarCollectorId(sidecar, collector) === selectedSidecarCollectorId);\n });\n\n let headerMenu;\n if (selectedItems === 0) {\n headerMenu = (\n \n );\n } else {\n headerMenu = (\n \n );\n }\n\n return (\n \n
    {headerMenu}
    \n\n { this.selectAllInput = c; }}\n id=\"select-all-checkbox\"\n type=\"checkbox\"\n label={selectedItems === 0 ? 'Select all' : `${selectedItems} selected`}\n disabled={enabledCollectors.length === 0}\n checked={this.isAllSelected(enabledCollectors, selected)}\n onChange={this.toggleSelectAll}\n wrapperClassName=\"form-group-inline\" />\n
    \n );\n },\n\n handleSidecarCollectorSelect(sidecarCollectorId) {\n return (event) => {\n const newSelection = (event.target.checked\n ? lodash.union(this.state.selected, [sidecarCollectorId])\n : lodash.without(this.state.selected, sidecarCollectorId));\n this.setState({ selected: newSelection });\n };\n },\n\n isAllSelected(collectors, selected) {\n return collectors.length > 0 && collectors.length === selected.length;\n },\n\n toggleSelectAll(event) {\n const newSelection = (event.target.checked\n ? this.state.enabledCollectors.map(({ sidecar, collector }) => this.sidecarCollectorId(sidecar, collector))\n : []);\n this.setState({ selected: newSelection });\n },\n\n formatSidecarNoCollectors(sidecar) {\n return (\n \n
    \n \n \n

    \n {sidecar.node_name} \n  {sidecar.node_id}\n

    \n \n
    \n \n \n \n No collectors compatible with {sidecar.node_details.operating_system}\n \n \n \n
    \n
    \n );\n },\n\n formatCollector(sidecar, collector, configurations) {\n const sidecarCollectorId = this.sidecarCollectorId(sidecar, collector);\n const configAssignment = sidecar.assignments.find((assignment) => assignment.collector_id === collector.id) || {};\n const configuration = configurations.find((config) => config.id === configAssignment.configuration_id);\n let collectorStatus = { status: null, message: null, id: null };\n try {\n const result = sidecar.node_details.status.collectors.find((c) => c.collector_id === collector.id);\n if (result) {\n collectorStatus = {\n status: result.status,\n message: result.message,\n id: result.collector_id,\n };\n }\n } catch (e) {\n // Do nothing\n }\n\n return (\n \n \n \n \n \n \n {configuration && (\n \n )}\n \n \n \n \n {configuration && }\n \n \n \n );\n },\n\n formatSidecar(sidecar, collectors, configurations) {\n if (collectors.length === 0) {\n return this.formatSidecarNoCollectors(sidecar);\n }\n\n return (\n \n
    \n \n \n

    \n {sidecar.node_name} \n  {sidecar.node_id} {!sidecar.active && — inactive}\n

    \n \n
    \n {collectors.map((collector) => this.formatCollector(sidecar, collector, configurations))}\n
    \n
    \n );\n },\n\n handleSearch(query, callback) {\n this.props.onQueryChange(query, callback());\n },\n\n handleReset() {\n this.props.onQueryChange();\n },\n\n handleResetFilters() {\n this.props.onFilter();\n },\n\n render() {\n const { configurations, collectors, onPageChange, pagination, query, sidecarCollectorPairs, filters } = this.props;\n\n let formattedCollectors;\n if (sidecarCollectorPairs.length === 0) {\n formattedCollectors = (\n \n {sidecarCollectorPairs.length === 0 ? 'There are no collectors to display' : 'Filters do not match any collectors'}\n \n );\n } else {\n const sidecars = lodash.uniq(sidecarCollectorPairs.map(({ sidecar }) => sidecar));\n formattedCollectors = sidecars.map((sidecarToMap) => {\n const sidecarCollectors = sidecarCollectorPairs\n .filter(({ sidecar }) => sidecar.node_id === sidecarToMap.node_id)\n .map(({ collector }) => collector)\n .filter((collector) => !lodash.isEmpty(collector));\n return this.formatSidecar(sidecarToMap, sidecarCollectors, configurations);\n });\n }\n\n return (\n
    \n \n \n \n \n \n \n {this.formatHeader()}\n {formattedCollectors}\n \n \n \n \n
    \n );\n },\n});\n\nexport default CollectorsAdministration;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\nimport Reflux from 'reflux';\nimport lodash from 'lodash';\nimport { naturalSortIgnoreCase } from 'util/SortUtils';\n\nimport CombinedProvider from 'injection/CombinedProvider';\nimport { Spinner } from 'components/common';\nimport CollectorsAdministration from './CollectorsAdministration';\n\nconst { CollectorsStore, CollectorsActions } = CombinedProvider.get('Collectors');\nconst { SidecarsAdministrationStore, SidecarsAdministrationActions } = CombinedProvider.get('SidecarsAdministration');\nconst { CollectorConfigurationsStore, CollectorConfigurationsActions } = CombinedProvider.get('CollectorConfigurations');\nconst { SidecarsActions } = CombinedProvider.get('Sidecars');\n\nconst CollectorsAdministrationContainer = createReactClass({\n propTypes: {\n nodeId: PropTypes.string,\n },\n\n mixins: [Reflux.connect(CollectorsStore, 'collectors'), Reflux.connect(SidecarsAdministrationStore, 'sidecars'), Reflux.connect(CollectorConfigurationsStore, 'configurations')],\n\n getDefaultProps() {\n return {\n nodeId: undefined,\n };\n },\n\n componentDidMount() {\n this.loadData(this.props.nodeId);\n this.interval = setInterval(this.reloadSidecars, 5000);\n },\n\n componentDidUpdate(prevProps) {\n if (prevProps.nodeId !== this.props.nodeId) {\n // This means the user changed the URL, so we don't need to keep the previous state.\n this.loadData(this.props.nodeId);\n }\n },\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n },\n\n loadData(nodeId) {\n const query = nodeId ? `node_id:${nodeId}` : '';\n\n CollectorsActions.all();\n SidecarsAdministrationActions.list({ query: query });\n CollectorConfigurationsActions.all();\n },\n\n reloadSidecars() {\n if (this.state.sidecars) {\n SidecarsAdministrationActions.refreshList();\n }\n },\n\n handlePageChange(page, pageSize) {\n const { filters, pagination, query } = this.state.sidecars;\n const effectivePage = pagination.pageSize !== pageSize ? 1 : page;\n SidecarsAdministrationActions.list({ query: query, filters: filters, page: effectivePage, pageSize: pageSize });\n },\n\n handleFilter(property, value) {\n const { filters, pagination, query } = this.state.sidecars;\n let newFilters;\n if (property) {\n newFilters = lodash.cloneDeep(filters);\n newFilters[property] = value;\n } else {\n newFilters = {};\n }\n SidecarsAdministrationActions.list({ query: query, filters: newFilters, pageSize: pagination.pageSize });\n },\n\n handleQueryChange(query = '', callback = () => {}) {\n const { filters, pagination } = this.state.sidecars;\n SidecarsAdministrationActions.list({ query: query, filters: filters, pageSize: pagination.pageSize }).finally(callback);\n },\n\n handleConfigurationChange(selectedSidecars, selectedConfigurations, doneCallback) {\n SidecarsActions.assignConfigurations(selectedSidecars, selectedConfigurations).then((response) => {\n doneCallback();\n const { query, filters, pagination } = this.state.sidecars;\n SidecarsAdministrationActions.list({ query: query, filters: filters, pageSize: pagination.pageSize, page: pagination.page });\n return response;\n });\n },\n\n handleProcessAction(action, selectedCollectors, doneCallback) {\n SidecarsAdministrationActions.setAction(action, selectedCollectors).then((response) => {\n doneCallback();\n return response;\n });\n },\n\n render() {\n const { collectors, configurations, sidecars } = this.state;\n if (!collectors || !collectors.collectors || !sidecars || !sidecars.sidecars || !configurations || !configurations.configurations) {\n return ;\n }\n\n const sidecarCollectors = [];\n sidecars.sidecars\n .sort((s1, s2) => naturalSortIgnoreCase(s1.node_name, s2.node_name))\n .forEach((sidecar) => {\n const compatibleCollectorIds = sidecar.collectors;\n if (lodash.isEmpty(compatibleCollectorIds)) {\n sidecarCollectors.push({ collector: {}, sidecar: sidecar });\n return;\n }\n\n compatibleCollectorIds\n .map((id) => lodash.find(collectors.collectors, { id: id }))\n .forEach((compatibleCollector) => {\n sidecarCollectors.push({ collector: compatibleCollector, sidecar: sidecar });\n });\n });\n\n return (\n \n );\n },\n});\n\nexport default CollectorsAdministrationContainer;\n","import React from 'react';\nimport createReactClass from 'create-react-class';\nimport PropTypes from 'prop-types';\n\nimport { LinkContainer } from 'react-router-bootstrap';\n\nimport { ButtonToolbar, Col, Row, Button } from 'components/graylog';\nimport DocsHelper from 'util/DocsHelper';\n\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport Routes from 'routing/Routes';\nimport DocumentationLink from 'components/support/DocumentationLink';\n\nimport CollectorsAdministrationContainer from 'components/sidecars/administration/CollectorsAdministrationContainer';\n\nconst SidecarAdministrationPage = createReactClass({\n propTypes: {\n location: PropTypes.object.isRequired,\n },\n\n render() {\n const nodeId = this.props.location.query.node_id;\n\n return (\n \n \n \n \n The Graylog collectors can reliably forward contents of log files or Windows EventLog from your servers.\n \n\n \n Read more about collectors and how to set them up in the\n {' '}.\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n );\n },\n});\n\nexport default SidecarAdministrationPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { OverlayTrigger, Popover, Table, Button } from 'components/graylog';\nimport { SearchForm, Icon } from 'components/common';\n\nimport style from './SidecarSearchForm.css';\n\nclass SidecarSearchForm extends React.Component {\n static propTypes = {\n query: PropTypes.string.isRequired,\n onSearch: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n children: PropTypes.element,\n };\n\n static defaultProps = {\n children: undefined,\n };\n\n render() {\n const { query, onSearch, onReset, children } = this.props;\n\n const queryHelpPopover = (\n \n

    Available search fields

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    FieldDescription
    nameSidecar name
    statusStatus of the sidecar as it appears in the list, i.e. running, failing, or unknown
    operating_systemOperating system the sidecar is running on
    last_seenDate and time when the sidecar last communicated with Graylog
    node_idIdentifier of the sidecar
    sidecar_versionSidecar version
    \n

    Examples

    \n

    \n Find sidecars that did not communicate with Graylog since a date:
    \n {'last_seen:<=2018-04-10'}
    \n

    \n

    \n Find sidecars with failing or unknown status:
    \n status:failing status:unknown
    \n

    \n
    \n );\n\n const queryHelp = (\n \n \n \n );\n\n return (\n \n {children}\n \n );\n }\n}\n\nexport default SidecarSearchForm;\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CommonSidecarStyles.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CommonSidecarStyles.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CommonSidecarStyles.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./FiltersSummary.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./FiltersSummary.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./FiltersSummary.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nconst SidecarIcon = styled(Icon)`\n margin-right: 5px;\n margin-left: 2px;\n`;\n\nconst OperatingSystemIcon = ({ operatingSystem }) => {\n let iconName = 'question-circle';\n let prefix = 'fas';\n\n if (operatingSystem) {\n const os = operatingSystem.trim().toLowerCase();\n if (os.indexOf('darwin') !== -1 || os.indexOf('mac os') !== -1) {\n iconName = 'apple';\n prefix = 'fab';\n } else if (os.indexOf('linux') !== -1) {\n iconName = 'linux';\n prefix = 'fab';\n } else if (os.indexOf('win') !== -1) {\n iconName = 'windows';\n prefix = 'fab';\n }\n }\n\n return (\n \n );\n};\n\nOperatingSystemIcon.propTypes = {\n operatingSystem: PropTypes.string,\n};\n\nOperatingSystemIcon.defaultProps = {\n operatingSystem: undefined,\n};\n\nexport default OperatingSystemIcon;\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3Sgvgq03Fbtxaews5JjAB7{white-space:nowrap}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"indicator\": \"_3Sgvgq03Fbtxaews5JjAB7\"\n};","import moment from 'moment';\nimport naturalSort from 'javascript-natural-sort';\n\n// sortOrder: \"asc\"|\"desc\"\nexport function sortByDate(d1, d2, sortOrder) {\n const effectiveSortOrder = sortOrder || 'asc';\n const d1Time = moment(d1);\n const d2Time = moment(d2);\n\n if (effectiveSortOrder === 'asc') {\n return (d1Time.isBefore(d2Time) ? -1 : d2Time.isBefore(d1Time) ? 1 : 0);\n }\n return (d2Time.isBefore(d1Time) ? -1 : d1Time.isBefore(d2Time) ? 1 : 0);\n}\n\nexport function naturalSortIgnoreCase(s1, s2, sortOrder) {\n const effectiveSortOrder = sortOrder || 'asc';\n return (effectiveSortOrder === 'asc' ? naturalSort(s1.toLowerCase(), s2.toLowerCase()) : naturalSort(s2.toLowerCase(), s1.toLowerCase()));\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./StatusIndicator.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./StatusIndicator.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./StatusIndicator.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CollectorsAdministration.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CollectorsAdministration.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--10-1!./CollectorsAdministration.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tiCXHINw5FhL95elixSWH{vertical-align:baseline}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"deleteButton\": \"tiCXHINw5FhL95elixSWH\"\n};","import lodash from 'lodash';\n\nconst SidecarStatusEnum = {\n RUNNING: 0,\n UNKNOWN: 1,\n FAILING: 2,\n STOPPED: 3,\n properties: {\n 0: { name: 'running' },\n 1: { name: 'unknown' },\n 2: { name: 'failing' },\n 3: { name: 'stopped' },\n },\n\n isValidStatusCode(statusCode) {\n return Object.keys(this.properties).includes(String(statusCode));\n },\n\n toStatusCode(stringStatus) {\n const status = lodash.lowerCase(stringStatus);\n if (status === this.properties[this.RUNNING].name) {\n return this.RUNNING;\n }\n if (status === this.properties[this.FAILING].name) {\n return this.FAILING;\n }\n if (status === this.properties[this.STOPPED].name) {\n return this.STOPPED;\n }\n return this.UNKNOWN;\n },\n\n toString(statusCode) {\n switch (lodash.toNumber(statusCode)) {\n case this.RUNNING:\n return 'running';\n case this.FAILING:\n return 'failing';\n case this.STOPPED:\n return 'stopped';\n default:\n return 'unknown';\n }\n },\n};\n\nexport default SidecarStatusEnum;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { withTheme } from 'styled-components';\nimport d3 from 'd3';\n\nimport { Label } from 'components/graylog';\n\nconst ColorLabelWrap = styled.span(({ size }) => {\n const fontSize = size === 'small' ? '0.75em' : '1em';\n\n return `\n vertical-align: middle;\n font-size: ${size === 'xsmall' ? '0.5em' : fontSize};\n `;\n});\n\nconst ColorLabel = ({ color, size, text, theme }) => {\n const backgroundColor = d3.hsl(color);\n const borderColor = backgroundColor.darker();\n // Use dark font on brighter backgrounds and light font in darker backgrounds\n const textColor = backgroundColor.l > 0.6 ? d3.rgb(theme.color.global.textDefault) : d3.rgb(theme.color.global.textAlt);\n\n return (\n \n \n \n );\n};\n\nColorLabel.propTypes = {\n color: PropTypes.string.isRequired,\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n size: PropTypes.oneOf(['normal', 'small', 'xsmall']),\n theme: PropTypes.shape({\n color: PropTypes.object,\n }).isRequired,\n};\n\nColorLabel.defaultProps = {\n text: ,\n size: 'normal',\n};\n\nexport default withTheme(ColorLabel);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1pVJPUdHOb45SK5hc0hXTn{margin-top:10px}._1pVJPUdHOb45SK5hc0hXTn dt{float:left;clear:left}._1pVJPUdHOb45SK5hc0hXTn dd{margin-left:160px}._2ZzLPBkvPLC0JBZ3GIX4UQ{margin-top:10px}._375TbNmUzMbpdN35jJ1veU{opacity:.5;z-index:20}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"deflist\": \"_1pVJPUdHOb45SK5hc0hXTn\",\n\t\"topMargin\": \"_2ZzLPBkvPLC0JBZ3GIX4UQ\",\n\t\"greyedOut\": \"_375TbNmUzMbpdN35jJ1veU\"\n};","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1GrhBmQtBtzEn3qXoaTOeH{color:#aaa;font-size:.9em}._1LnCmCMpxYfYFTSIuuqOUH{color:#aaa}._Vn9tzrtX6xraV1wb7E26 .row{margin-bottom:5px}._Vn9tzrtX6xraV1wb7E26 .form-group{display:inline-block;margin:0 10px 0 0}._Vn9tzrtX6xraV1wb7E26 .checkbox{margin-top:5px;margin-bottom:5px}._Vn9tzrtX6xraV1wb7E26 .checkbox label{font-size:1.1em}.AybgC3KjSSWmbR1w3BO7g{margin-left:20px}._226XH3Zw_qHrG7hSwoicH2{float:right;margin:5px 0}._226XH3Zw_qHrG7hSwoicH2 .btn-link{color:#666}._230v1Zjg2ayBr_4e6zGOZT{display:block;height:20px;margin:5px 0}._1wwNBJSHPR8i4vzXOhE2QT .page-size{padding-top:4px}._1wwNBJSHPR8i4vzXOhE2QT .search{margin-bottom:15px}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"sidecarId\": \"_1GrhBmQtBtzEn3qXoaTOeH\",\n\t\"disabledCollector\": \"_1LnCmCMpxYfYFTSIuuqOUH\",\n\t\"collectorEntry\": \"_Vn9tzrtX6xraV1wb7E26\",\n\t\"alignedInformation\": \"AybgC3KjSSWmbR1w3BO7g\",\n\t\"headerComponentsWrapper\": \"_226XH3Zw_qHrG7hSwoicH2\",\n\t\"additionalContent\": \"_230v1Zjg2ayBr_4e6zGOZT\",\n\t\"paginatedList\": \"_1wwNBJSHPR8i4vzXOhE2QT\"\n};"],"sourceRoot":""}




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy