UNPKG

@grafana/ui

Version:
1 lines 8.37 kB
{"version":3,"file":"DataLinksListItemBase.mjs","sources":["../../../../../src/components/DataLinks/DataLinksInlineEditor/DataLinksListItemBase.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { Draggable } from '@hello-pangea/dnd';\n\nimport { Action, DataFrame, DataLink, GrafanaTheme2 } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { useStyles2 } from '../../../themes/ThemeContext';\nimport { Badge } from '../../Badge/Badge';\nimport { Icon } from '../../Icon/Icon';\nimport { IconButton } from '../../IconButton/IconButton';\n\nexport interface DataLinksListItemBaseProps<T extends DataLink | Action> {\n index: number;\n item: T;\n data: DataFrame[];\n onChange: (index: number, item: T) => void;\n onEdit: () => void;\n onRemove: () => void;\n isEditing?: boolean;\n itemKey: string;\n}\n\n/** @internal */\nexport function DataLinksListItemBase<T extends DataLink | Action>({\n item,\n onEdit,\n onRemove,\n index,\n itemKey,\n}: DataLinksListItemBaseProps<T>) {\n const styles = useStyles2(getDataLinkListItemStyles);\n const { title = '', oneClick = false } = item;\n\n const url = ('type' in item ? item[item.type]?.url : item.url) ?? '';\n const hasTitle = title.trim() !== '';\n const hasUrl = url.trim() !== '';\n\n return (\n <Draggable key={itemKey} draggableId={itemKey} index={index}>\n {(provided) => (\n <div\n className={cx(styles.wrapper, styles.dragRow)}\n ref={provided.innerRef}\n {...provided.draggableProps}\n key={index}\n >\n <div className={styles.linkDetails}>\n <div className={cx(styles.url, !hasTitle && styles.notConfigured)}>\n {hasTitle ? title : t('grafana-ui.data-links-inline-editor.title-not-provided', 'Title not provided')}\n </div>\n <div className={cx(styles.url, !hasUrl && styles.notConfigured)} title={url}>\n {hasUrl ? url : t('grafana-ui.data-links-inline-editor.url-not-provided', 'Data link url not provided')}\n </div>\n </div>\n <div className={styles.icons}>\n {oneClick && (\n <Badge\n color=\"blue\"\n text={t('grafana-ui.data-links-inline-editor.one-click', 'One click')}\n tooltip={t('grafana-ui.data-links-inline-editor.one-click-enabled', 'One click enabled')}\n />\n )}\n <IconButton\n name=\"pen\"\n onClick={onEdit}\n className={styles.icon}\n tooltip={t('grafana-ui.data-links-inline-editor.tooltip-edit', 'Edit')}\n />\n <IconButton\n name=\"trash-alt\"\n onClick={onRemove}\n className={styles.icon}\n tooltip={t('grafana-ui.data-links-inline-editor.tooltip-remove', 'Remove')}\n />\n <div className={styles.dragIcon} {...provided.dragHandleProps}>\n <Icon name=\"draggabledots\" size=\"lg\" />\n </div>\n </div>\n </div>\n )}\n </Draggable>\n );\n}\n\nconst getDataLinkListItemStyles = (theme: GrafanaTheme2) => {\n return {\n wrapper: css({\n display: 'flex',\n flexGrow: 1,\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '5px 0 5px 10px',\n borderRadius: theme.shape.radius.default,\n background: theme.colors.background.secondary,\n gap: 8,\n }),\n linkDetails: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n maxWidth: `calc(100% - 100px)`,\n }),\n errored: css({\n color: theme.colors.error.text,\n fontStyle: 'italic',\n }),\n notConfigured: css({\n fontStyle: 'italic',\n }),\n title: css({\n color: theme.colors.text.primary,\n fontSize: theme.typography.size.sm,\n fontWeight: theme.typography.fontWeightMedium,\n }),\n url: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.size.sm,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n dragRow: css({\n position: 'relative',\n margin: '8px',\n }),\n icons: css({\n display: 'flex',\n padding: 6,\n alignItems: 'center',\n gap: 8,\n }),\n dragIcon: css({\n cursor: 'grab',\n color: theme.colors.text.secondary,\n margin: theme.spacing(0, 0.5),\n }),\n icon: css({\n color: theme.colors.text.secondary,\n }),\n };\n};\n"],"names":[],"mappings":"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"}