UNPKG

@grafana/ui

Version:
1 lines 4.59 kB
{"version":3,"file":"PluginSignatureBadge.mjs","sources":["../../../../src/components/PluginSignatureBadge/PluginSignatureBadge.tsx"],"sourcesContent":["import { HTMLAttributes } from 'react';\n\nimport { PluginSignatureStatus, PluginSignatureType } from '@grafana/data';\n\nimport { IconName } from '../../types/icon';\nimport { Badge, BadgeProps } from '../Badge/Badge';\n\nconst SIGNATURE_ICONS: Record<string, IconName> = {\n [PluginSignatureType.grafana]: 'grafana',\n [PluginSignatureType.commercial]: 'shield',\n [PluginSignatureType.community]: 'shield',\n DEFAULT: 'shield-exclamation',\n};\n\n/**\n * @public\n */\nexport interface PluginSignatureBadgeProps extends HTMLAttributes<HTMLDivElement> {\n status?: PluginSignatureStatus;\n signatureType?: PluginSignatureType;\n signatureOrg?: string;\n}\n\n/**\n * @public\n */\nexport const PluginSignatureBadge = ({\n status,\n color,\n signatureType,\n signatureOrg,\n ...otherProps\n}: PluginSignatureBadgeProps) => {\n const display = getSignatureDisplayModel(status, signatureType, signatureOrg);\n return (\n <Badge text={display.text} color={display.color} icon={display.icon} tooltip={display.tooltip} {...otherProps} />\n );\n};\n\nPluginSignatureBadge.displayName = 'PluginSignatureBadge';\n\nfunction getSignatureDisplayModel(\n signature?: PluginSignatureStatus,\n signatureType?: PluginSignatureType,\n signatureOrg?: string\n): BadgeProps {\n if (!signature) {\n signature = PluginSignatureStatus.invalid;\n }\n\n const signatureIcon = SIGNATURE_ICONS[signatureType || ''] || SIGNATURE_ICONS.DEFAULT;\n\n switch (signature) {\n case PluginSignatureStatus.internal:\n return { text: 'Core', color: 'blue', tooltip: 'Core plugin that is bundled with Grafana' };\n case PluginSignatureStatus.valid:\n return {\n text: signatureType ? signatureType : 'Signed',\n icon: signatureType ? signatureIcon : 'lock',\n color: 'green',\n tooltip: 'Signed and verified plugin',\n };\n case PluginSignatureStatus.invalid:\n return {\n text: 'Invalid signature',\n icon: 'exclamation-triangle',\n color: 'red',\n tooltip: 'Invalid plugin signature',\n };\n case PluginSignatureStatus.modified:\n return {\n text: 'Modified signature',\n icon: 'exclamation-triangle',\n color: 'red',\n tooltip: 'Valid signature but content has been modified',\n };\n case PluginSignatureStatus.missing:\n return {\n text: 'Missing signature',\n icon: 'exclamation-triangle',\n color: 'red',\n tooltip: 'Missing plugin signature',\n };\n default:\n return {\n text: 'Unsigned',\n icon: 'exclamation-triangle',\n color: 'red',\n tooltip: 'Unsigned external plugin',\n };\n }\n}\n"],"names":[],"mappings":";;;;AAOA,MAAM,eAA4C,GAAA;AAAA,EAChD,CAAC,mBAAoB,CAAA,OAAO,GAAG,SAAA;AAAA,EAC/B,CAAC,mBAAoB,CAAA,UAAU,GAAG,QAAA;AAAA,EAClC,CAAC,mBAAoB,CAAA,SAAS,GAAG,QAAA;AAAA,EACjC,OAAS,EAAA;AACX,CAAA;AAcO,MAAM,uBAAuB,CAAC;AAAA,EACnC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAG;AACL,CAAiC,KAAA;AAC/B,EAAA,MAAM,OAAU,GAAA,wBAAA,CAAyB,MAAQ,EAAA,aAA2B,CAAA;AAC5E,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA,EAAM,IAAM,EAAA,OAAA,CAAQ,MAAM,KAAO,EAAA,OAAA,CAAQ,KAAO,EAAA,IAAA,EAAM,QAAQ,IAAM,EAAA,OAAA,EAAS,OAAQ,CAAA,OAAA,EAAU,GAAG,UAAY,EAAA,CAAA;AAEnH;AAEA,oBAAA,CAAqB,WAAc,GAAA,sBAAA;AAEnC,SAAS,wBAAA,CACP,SACA,EAAA,aAAA,EACA,YACY,EAAA;AACZ,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,SAAA,GAAY,qBAAsB,CAAA,OAAA;AAAA;AAGpC,EAAA,MAAM,aAAgB,GAAA,eAAA,CAAgB,aAAiB,IAAA,EAAE,KAAK,eAAgB,CAAA,OAAA;AAE9E,EAAA,QAAQ,SAAW;AAAA,IACjB,KAAK,qBAAsB,CAAA,QAAA;AACzB,MAAA,OAAO,EAAE,IAAM,EAAA,MAAA,EAAQ,KAAO,EAAA,MAAA,EAAQ,SAAS,0CAA2C,EAAA;AAAA,IAC5F,KAAK,qBAAsB,CAAA,KAAA;AACzB,MAAO,OAAA;AAAA,QACL,IAAA,EAAM,gBAAgB,aAAgB,GAAA,QAAA;AAAA,QACtC,IAAA,EAAM,gBAAgB,aAAgB,GAAA,MAAA;AAAA,QACtC,KAAO,EAAA,OAAA;AAAA,QACP,OAAS,EAAA;AAAA,OACX;AAAA,IACF,KAAK,qBAAsB,CAAA,OAAA;AACzB,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,mBAAA;AAAA,QACN,IAAM,EAAA,sBAAA;AAAA,QACN,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA;AAAA,OACX;AAAA,IACF,KAAK,qBAAsB,CAAA,QAAA;AACzB,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,oBAAA;AAAA,QACN,IAAM,EAAA,sBAAA;AAAA,QACN,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA;AAAA,OACX;AAAA,IACF,KAAK,qBAAsB,CAAA,OAAA;AACzB,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,mBAAA;AAAA,QACN,IAAM,EAAA,sBAAA;AAAA,QACN,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA;AAAA,OACX;AAAA,IACF;AACE,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,UAAA;AAAA,QACN,IAAM,EAAA,sBAAA;AAAA,QACN,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA;AAAA,OACX;AAAA;AAEN;;;;"}