{"version":3,"file":"FieldLinkList.mjs","sources":["../../../../src/components/DataLinks/FieldLinkList.tsx"],"sourcesContent":["import { css } from '@emotion/css';\n\nimport { Field, GrafanaTheme2, LinkModel } from '@grafana/data';\n\nimport { useStyles2 } from '../../themes';\nimport { Trans } from '../../utils/i18n';\nimport { Icon } from '../Icon/Icon';\n\nimport { DataLinkButton } from './DataLinkButton';\n\ntype Props = {\n  links: Array<LinkModel<Field>>;\n};\n\n/**\n * @internal\n */\nexport function FieldLinkList({ links }: Props) {\n  const styles = useStyles2(getStyles);\n\n  if (links.length === 1) {\n    return <DataLinkButton link={links[0]} />;\n  }\n\n  const externalLinks = links.filter((link) => link.target === '_blank');\n  const internalLinks = links.filter((link) => link.target === '_self');\n\n  return (\n    <>\n      {internalLinks.map((link, i) => {\n        return <DataLinkButton key={i} link={link} />;\n      })}\n      <div className={styles.wrapper}>\n        <p className={styles.externalLinksHeading}>\n          <Trans i18nKey=\"grafana-ui.field-link-list.external-links-heading\">External links</Trans>\n        </p>\n        {externalLinks.map((link, i) => (\n          <a key={i} href={link.href} target={link.target} className={styles.externalLink}>\n            <Icon name=\"external-link-alt\" />\n            {link.title}\n          </a>\n        ))}\n      </div>\n    </>\n  );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  wrapper: css({\n    flexBasis: '150px',\n    width: '100px',\n    marginTop: theme.spacing(1),\n  }),\n  externalLinksHeading: css({\n    color: theme.colors.text.secondary,\n    fontWeight: theme.typography.fontWeightRegular,\n    fontSize: theme.typography.size.sm,\n    margin: 0,\n  }),\n  externalLink: css({\n    color: theme.colors.text.link,\n    fontWeight: theme.typography.fontWeightRegular,\n    display: 'block',\n    whiteSpace: 'nowrap',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n\n    '&:hover': {\n      textDecoration: 'underline',\n    },\n\n    div: {\n      marginRight: theme.spacing(1),\n    },\n  }),\n});\n"],"names":[],"mappings":";;;;;;;;;;;;AAiBgB,SAAA,aAAA,CAAc,EAAE,KAAA,EAAgB,EAAA;AAC9C,EAAM,MAAA,MAAA,GAAS,WAAW,SAAS,CAAA;AAEnC,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAA,uBAAQ,GAAA,CAAA,cAAA,EAAA,EAAe,IAAM,EAAA,KAAA,CAAM,CAAC,CAAG,EAAA,CAAA;AAAA;AAGzC,EAAA,MAAM,gBAAgB,KAAM,CAAA,MAAA,CAAO,CAAC,IAAS,KAAA,IAAA,CAAK,WAAW,QAAQ,CAAA;AACrE,EAAA,MAAM,gBAAgB,KAAM,CAAA,MAAA,CAAO,CAAC,IAAS,KAAA,IAAA,CAAK,WAAW,OAAO,CAAA;AAEpE,EAAA,uBAEK,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAc,aAAA,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,CAAM,KAAA;AAC9B,MAAO,uBAAA,GAAA,CAAC,cAAuB,EAAA,EAAA,IAAA,EAAA,EAAH,CAAe,CAAA;AAAA,KAC5C,CAAA;AAAA,oBACA,IAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,OACrB,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,GAAA,EAAA,EAAE,WAAW,MAAO,CAAA,oBAAA,EACnB,8BAAC,KAAM,EAAA,EAAA,OAAA,EAAQ,mDAAoD,EAAA,QAAA,EAAA,gBAAA,EAAc,CACnF,EAAA,CAAA;AAAA,MACC,aAAc,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,sBACvB,IAAA,CAAA,GAAA,EAAA,EAAU,IAAM,EAAA,IAAA,CAAK,MAAM,MAAQ,EAAA,IAAA,CAAK,MAAQ,EAAA,SAAA,EAAW,OAAO,YACjE,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,IAAA,EAAA,EAAK,MAAK,mBAAoB,EAAA,CAAA;AAAA,QAC9B,IAAK,CAAA;AAAA,OAAA,EAAA,EAFA,CAGR,CACD;AAAA,KACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAA0B,MAAA;AAAA,EAC3C,SAAS,GAAI,CAAA;AAAA,IACX,SAAW,EAAA,OAAA;AAAA,IACX,KAAO,EAAA,OAAA;AAAA,IACP,SAAA,EAAW,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,GAC3B,CAAA;AAAA,EACD,sBAAsB,GAAI,CAAA;AAAA,IACxB,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,SAAA;AAAA,IACzB,UAAA,EAAY,MAAM,UAAW,CAAA,iBAAA;AAAA,IAC7B,QAAA,EAAU,KAAM,CAAA,UAAA,CAAW,IAAK,CAAA,EAAA;AAAA,IAChC,MAAQ,EAAA;AAAA,GACT,CAAA;AAAA,EACD,cAAc,GAAI,CAAA;AAAA,IAChB,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,IAAA;AAAA,IACzB,UAAA,EAAY,MAAM,UAAW,CAAA,iBAAA;AAAA,IAC7B,OAAS,EAAA,OAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA,QAAA;AAAA,IACV,YAAc,EAAA,UAAA;AAAA,IAEd,SAAW,EAAA;AAAA,MACT,cAAgB,EAAA;AAAA,KAClB;AAAA,IAEA,GAAK,EAAA;AAAA,MACH,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA;AAC9B,GACD;AACH,CAAA,CAAA;;;;"}