import { css } from '@emotion/css'; import { GrafanaTheme2 } from '@grafana/data/src'; import { useTheme2 } from '@grafana/ui/src'; import { LogsTableActiveFields } from './LogsTableActiveFields'; import { LogsTableAvailableFields } from './LogsTableAvailableFields'; import { FieldNameMeta } from './LogsTableWrap'; function getStyles(theme: GrafanaTheme2) { return { sidebarWrap: css({ overflowY: 'scroll', height: 'calc(100% - 50px)', /* Hide scrollbar for Chrome, Safari, and Opera */ '&::-webkit-scrollbar': { display: 'none', }, /* Hide scrollbar for Firefox */ scrollbarWidth: 'none', }), columnHeaderButton: css({ appearance: 'none', background: 'none', border: 'none', fontSize: theme.typography.pxToRem(11), }), columnHeader: css({ display: 'flex', justifyContent: 'space-between', fontSize: theme.typography.h6.fontSize, background: theme.colors.background.secondary, position: 'sticky', top: 0, left: 0, paddingTop: theme.spacing(0.75), paddingRight: theme.spacing(0.75), paddingBottom: theme.spacing(0.75), paddingLeft: theme.spacing(1.5), zIndex: 3, marginBottom: theme.spacing(2), }), }; } export const LogsTableMultiSelect = (props: { toggleColumn: (columnName: string) => void; filteredColumnsWithMeta: Record | undefined; columnsWithMeta: Record; clear: () => void; reorderColumn: (oldIndex: number, newIndex: number) => void; }) => { const theme = useTheme2(); const styles = getStyles(theme); return (
{/* Sidebar columns */} <>
Selected fields
props.columnsWithMeta[value]?.active ?? false} id={'selected-fields'} />
Fields
!props.columnsWithMeta[value]?.active} />
); };