UNPKG

@grafana/ui

Version:
75 lines (70 loc) 2.42 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var data = require('@grafana/data'); var Badge = require('../Badge/Badge.cjs'); "use strict"; const SIGNATURE_ICONS = { [data.PluginSignatureType.grafana]: "grafana", [data.PluginSignatureType.commercial]: "shield", [data.PluginSignatureType.community]: "shield", DEFAULT: "shield-exclamation" }; const PluginSignatureBadge = ({ status, color, signatureType, signatureOrg, ...otherProps }) => { const display = getSignatureDisplayModel(status, signatureType, signatureOrg); return /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { text: display.text, color: display.color, icon: display.icon, tooltip: display.tooltip, ...otherProps }); }; PluginSignatureBadge.displayName = "PluginSignatureBadge"; function getSignatureDisplayModel(signature, signatureType, signatureOrg) { if (!signature) { signature = data.PluginSignatureStatus.invalid; } const signatureIcon = SIGNATURE_ICONS[signatureType || ""] || SIGNATURE_ICONS.DEFAULT; switch (signature) { case data.PluginSignatureStatus.internal: return { text: "Core", color: "blue", tooltip: "Core plugin that is bundled with Grafana" }; case data.PluginSignatureStatus.valid: return { text: signatureType ? signatureType : "Signed", icon: signatureType ? signatureIcon : "lock", color: "green", tooltip: "Signed and verified plugin" }; case data.PluginSignatureStatus.invalid: return { text: "Invalid signature", icon: "exclamation-triangle", color: "red", tooltip: "Invalid plugin signature" }; case data.PluginSignatureStatus.modified: return { text: "Modified signature", icon: "exclamation-triangle", color: "red", tooltip: "Valid signature but content has been modified" }; case data.PluginSignatureStatus.missing: return { text: "Missing signature", icon: "exclamation-triangle", color: "red", tooltip: "Missing plugin signature" }; default: return { text: "Unsigned", icon: "exclamation-triangle", color: "red", tooltip: "Unsigned external plugin" }; } } exports.PluginSignatureBadge = PluginSignatureBadge; //# sourceMappingURL=PluginSignatureBadge.cjs.map