@grafana/ui
Version:
Grafana Components Library
75 lines (70 loc) • 2.42 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var data = require('@grafana/data');
var Badge = require('../Badge/Badge.cjs');
;
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