import { css } from '@emotion/css'; import { GrafanaTheme2 } from '@grafana/data'; import { AdHocFiltersVariable, GroupByVariable } from '@grafana/scenes'; import { useStyles2 } from '@grafana/ui'; import { VariableValueSelectWrapper } from './VariableControls'; interface DrilldownControlsProps { adHocVar: AdHocFiltersVariable; groupByVar: GroupByVariable; } /** * DrilldownControls renders the AdHoc and GroupBy variables in a single row above the other variables. */ export function DrilldownControls({ adHocVar, groupByVar }: DrilldownControlsProps) { const styles = useStyles2(getStyles); return (
); } const getStyles = (theme: GrafanaTheme2) => ({ drilldownRow: css({ display: 'flex', flexWrap: 'nowrap', [theme.breakpoints.down('xl')]: { flexWrap: 'wrap', }, gap: theme.spacing(1), width: '100%', }), adHocContainer: css({ flex: '7 1 0%', // 70% of available space minWidth: 0, [theme.breakpoints.down('xl')]: { // Force full width, causing groupBy to wrap flex: '1 1 100%', }, display: 'flex', // Make the wrapper and its children take full width '& > div': { alignItems: 'flex-start', width: '100%', flex: 1, }, }), groupByContainer: css({ flex: '3 1 0%', // 30% of available space minWidth: 0, display: 'flex', // Make the wrapper and its children take full width '& > div': { alignItems: 'flex-start', width: '100%', flex: 1, }, [theme.breakpoints.down('sm')]: { minWidth: '200px', }, }), clearAllButton: css({ alignSelf: 'flex-start', fontSize: theme.typography.bodySmall.fontSize, padding: theme.spacing(0.5, 0.5), marginBottom: theme.spacing(1), }), });