import React from 'react'; import { css } from 'emotion'; import { DataQuery, DataSourceApi, GrafanaTheme } from '@grafana/data'; import { HorizontalGroup, stylesFactory, useTheme } from '@grafana/ui'; interface QueryEditorRowTitleProps { query: DataQuery; datasource: DataSourceApi; inMixedMode: boolean; disabled: boolean; onClick: (e: React.MouseEvent) => void; collapsedText: string; } export const QueryEditorRowTitle: React.FC = ({ datasource, inMixedMode, disabled, query, onClick, collapsedText, }) => { const theme = useTheme(); const styles = getQueryEditorRowTitleStyles(theme); return (
{query.refId} {inMixedMode && ({datasource.name})} {disabled && Disabled}
{collapsedText && (
{collapsedText}
)}
); }; const getQueryEditorRowTitleStyles = stylesFactory((theme: GrafanaTheme) => { return { refId: css` font-weight: ${theme.typography.weight.semibold}; color: ${theme.colors.textBlue}; cursor: pointer; display: flex; align-items: center; `, collapsedText: css` font-weight: ${theme.typography.weight.regular}; font-size: ${theme.typography.size.sm}; color: ${theme.colors.textWeak}; padding: 0 10px; display: flex; align-items: center; flex-grow: 1; overflow: hidden; font-style: italic; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: 0; `, contextInfo: css` font-size: ${theme.typography.size.sm}; font-style: italic; color: ${theme.colors.textWeak}; padding-left: 10px; `, }; });