{"version":3,"file":"PluginSignatureBadge.cjs","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 * 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;;;;"}