"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.BytesPercentageUsage = BytesPercentageUsage; exports.BytesUsage = BytesUsage; exports.ClusterItemContainer = ClusterItemContainer; exports.DisabledIfNoDataAndInSetupModeLink = DisabledIfNoDataAndInSetupModeLink; exports.HealthLabel = HealthLabel; exports.HealthStatusIndicator = HealthStatusIndicator; var _eui = require("@elastic/eui"); var _i18n = require("@kbn/i18n"); var _lodash = require("lodash"); var _react = _interopRequireDefault(require("react")); var _legacy_shims = require("../../../legacy_shims"); var _format_number = require("../../../lib/format_number"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ function HealthLabel(props) { if (props.status === 'green') { return _i18n.i18n.translate('xpack.monitoring.cluster.health.healthy', { defaultMessage: 'Healthy' }); } const { product, status } = props; if (product === 'es') { if (props.status === 'yellow') { return _i18n.i18n.translate('xpack.monitoring.cluster.health.replicaShards', { defaultMessage: 'Missing replica shards' }); } if (props.status === 'red') { return _i18n.i18n.translate('xpack.monitoring.cluster.health.primaryShards', { defaultMessage: 'Missing primary shards' }); } } // TODO: Use the actual service level statuses instead of converting them to colors if (product === 'kb' && (status === 'yellow' || status === 'red')) { return /*#__PURE__*/_react.default.createElement(_eui.EuiText, null, _i18n.i18n.translate('xpack.monitoring.cluster.health.pluginIssues', { defaultMessage: 'Some plugins may be experiencing issues. Please check ' }), /*#__PURE__*/_react.default.createElement(_eui.EuiLink, { href: `${_legacy_shims.Legacy.shims.getBasePath()}/status` }, "the Kibana status page"), "."); } return 'N/A'; } function HealthStatusIndicator(props) { const statusColorMap = { green: 'success', yellow: 'warning', red: 'danger' }; const statusColor = statusColorMap[props.status] || 'n/a'; return /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { alignItems: "center", gutterSize: "s" }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiHealth, { color: statusColor, "data-test-subj": "status" }, /*#__PURE__*/_react.default.createElement(HealthLabel, props)))); } const PanelExtras = ({ extras }) => { if (extras === undefined) { return null; } // mimic the spacing of an EuiHealth which this is adjacent to return /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, extras); }; function ClusterItemContainer(props) { const iconMap = { elasticsearch: 'logoElasticsearch', kibana: 'logoKibana', logstash: 'logoLogstash', beats: 'logoBeats', apm: 'apmApp', enterprise_search: 'logoEnterpriseSearch' }; const icon = iconMap[props.url]; return /*#__PURE__*/_react.default.createElement("div", { "data-test-subj": `clusterItemContainer${props.title}` }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { gutterSize: "m", alignItems: "center" }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { gutterSize: "m", alignItems: "center" }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiIcon, { type: icon, size: "l" })), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiTitle, null, /*#__PURE__*/_react.default.createElement("h2", null, props.title))))), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, props.statusIndicator), /*#__PURE__*/_react.default.createElement(PanelExtras, { extras: props.extras })), /*#__PURE__*/_react.default.createElement(_eui.EuiSpacer, { size: "m" }), props.children, /*#__PURE__*/_react.default.createElement(_eui.EuiSpacer, { size: "xxl" })); } function BytesUsage({ usedBytes, maxBytes }) { if (usedBytes && maxBytes) { return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_eui.EuiText, null, (0, _format_number.formatBytesUsage)(usedBytes, maxBytes))); } else if (usedBytes) { return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_eui.EuiText, null, (0, _format_number.formatNumber)(usedBytes, 'byte'))); } return null; } function BytesPercentageUsage({ usedBytes, maxBytes }) { if (usedBytes && maxBytes) { return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_eui.EuiText, null, (0, _format_number.formatPercentageUsage)(usedBytes, maxBytes)), /*#__PURE__*/_react.default.createElement(_eui.EuiText, { color: "subdued", size: "s" }, (0, _format_number.formatBytesUsage)(usedBytes, maxBytes))); } return /*#__PURE__*/_react.default.createElement(_eui.EuiText, null, "0"); } function DisabledIfNoDataAndInSetupModeLink({ setupModeEnabled, setupModeData, children, ...props }) { if (setupModeEnabled && (0, _lodash.get)(setupModeData, 'totalUniqueInstanceCount', 0) === 0) { return children; } return /*#__PURE__*/_react.default.createElement(_eui.EuiLink, props, children); }