UNPKG

@grafana/ui

Version:
1 lines 4.8 kB
{"version":3,"file":"PluginSignatureBadge.cjs","sources":["../../../../src/components/PluginSignatureBadge/PluginSignatureBadge.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react';\n\nimport { PluginSignatureStatus, PluginSignatureType } from '@grafana/data';\n\nimport { type IconName } from '../../types/icon';\nimport { Badge, type 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 * https://developers.grafana.com/ui/latest/index.html?path=/docs/information-pluginsignaturebadge--docs\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":["PluginSignatureType","jsx","Badge","PluginSignatureStatus"],"mappings":";;;;;;;;;AAOA,MAAM,eAAA,GAA4C;AAAA,EAChD,CAACA,wBAAA,CAAoB,OAAO,GAAG,SAAA;AAAA,EAC/B,CAACA,wBAAA,CAAoB,UAAU,GAAG,QAAA;AAAA,EAClC,CAACA,wBAAA,CAAoB,SAAS,GAAG,QAAA;AAAA,EACjC,OAAA,EAAS;AACX,CAAA;AAgBO,MAAM,uBAAuB,CAAC;AAAA,EACnC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAiC;AAC/B,EAAA,MAAM,OAAA,GAAU,wBAAA,CAAyB,MAAA,EAAQ,aAAA,EAAe,YAAY,CAAA;AAC5E,EAAA,uBACEC,cAAA,CAACC,WAAA,EAAA,EAAM,IAAA,EAAM,OAAA,CAAQ,MAAM,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAU,GAAG,UAAA,EAAY,CAAA;AAEnH;AAEA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,SAAS,wBAAA,CACP,SAAA,EACA,aAAA,EACA,YAAA,EACY;AACZ,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,SAAA,GAAYC,0BAAA,CAAsB,OAAA;AAAA,EACpC;AAEA,EAAA,MAAM,aAAA,GAAgB,eAAA,CAAgB,aAAA,IAAiB,EAAE,KAAK,eAAA,CAAgB,OAAA;AAE9E,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAKA,0BAAA,CAAsB,QAAA;AACzB,MAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,SAAS,0CAAA,EAA2C;AAAA,IAC5F,KAAKA,0BAAA,CAAsB,KAAA;AACzB,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,gBAAgB,aAAA,GAAgB,QAAA;AAAA,QACtC,IAAA,EAAM,gBAAgB,aAAA,GAAgB,MAAA;AAAA,QACtC,KAAA,EAAO,OAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAKA,0BAAA,CAAsB,OAAA;AACzB,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,mBAAA;AAAA,QACN,IAAA,EAAM,sBAAA;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAKA,0BAAA,CAAsB,QAAA;AACzB,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,oBAAA;AAAA,QACN,IAAA,EAAM,sBAAA;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAKA,0BAAA,CAAsB,OAAA;AACzB,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,mBAAA;AAAA,QACN,IAAA,EAAM,sBAAA;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,IACF;AACE,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,UAAA;AAAA,QACN,IAAA,EAAM,sBAAA;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA;AAEN;;;;"}