UNPKG

@grafana/ui

Version:
1 lines 4.06 kB
{"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';\nimport { Trans } from '@grafana/i18n';\n\nimport { useStyles2 } from '../../themes/ThemeContext';\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":";;;;;;;;AAiBO,SAAS,aAAA,CAAc,EAAE,KAAA,EAAM,EAAU;AAC9C,EAAA,MAAM,MAAA,GAAS,WAAW,SAAS,CAAA;AAEnC,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,uBAAO,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAM,KAAA,CAAM,CAAC,CAAA,EAAG,CAAA;AAAA,EACzC;AAEA,EAAA,MAAM,gBAAgB,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,WAAW,QAAQ,CAAA;AACrE,EAAA,MAAM,gBAAgB,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,WAAW,OAAO,CAAA;AAEpE,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,aAAA,CAAc,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AAC9B,MAAA,uBAAO,GAAA,CAAC,cAAA,EAAA,EAAuB,IAAA,EAAA,EAAH,CAAe,CAAA;AAAA,IAC7C,CAAC,CAAA;AAAA,oBACD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,OAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,GAAA,EAAA,EAAE,WAAW,MAAA,CAAO,oBAAA,EACnB,8BAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,mDAAA,EAAoD,QAAA,EAAA,gBAAA,EAAc,CAAA,EACnF,CAAA;AAAA,MACC,aAAA,CAAc,GAAA,CAAI,CAAC,IAAA,EAAM,sBACxB,IAAA,CAAC,GAAA,EAAA,EAAU,IAAA,EAAM,IAAA,CAAK,MAAM,MAAA,EAAQ,IAAA,CAAK,MAAA,EAAQ,SAAA,EAAW,OAAO,YAAA,EACjE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAK,mBAAA,EAAoB,CAAA;AAAA,QAC9B,IAAA,CAAK;AAAA,OAAA,EAAA,EAFA,CAGR,CACD;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,MAAM,SAAA,GAAY,CAAC,KAAA,MAA0B;AAAA,EAC3C,SAAS,GAAA,CAAI;AAAA,IACX,SAAA,EAAW,OAAA;AAAA,IACX,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC3B,CAAA;AAAA,EACD,sBAAsB,GAAA,CAAI;AAAA,IACxB,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,SAAA;AAAA,IACzB,UAAA,EAAY,MAAM,UAAA,CAAW,iBAAA;AAAA,IAC7B,QAAA,EAAU,KAAA,CAAM,UAAA,CAAW,IAAA,CAAK,EAAA;AAAA,IAChC,MAAA,EAAQ;AAAA,GACT,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,IAAA;AAAA,IACzB,UAAA,EAAY,MAAM,UAAA,CAAW,iBAAA;AAAA,IAC7B,OAAA,EAAS,OAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,YAAA,EAAc,UAAA;AAAA,IAEd,SAAA,EAAW;AAAA,MACT,cAAA,EAAgB;AAAA,KAClB;AAAA,IAEA,GAAA,EAAK;AAAA,MACH,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AAC9B,GACD;AACH,CAAA,CAAA;;;;"}