mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Select: Don't portal by default * Select: Portal all the Selects * Fix indendentation in this comment * Select: Remove @example docs until formatting is correct * Docs: Add some documentation for the Select changes * Update docs/sources/whatsnew/whats-new-in-v8-1.md Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update docs/sources/whatsnew/whats-new-in-v8-1.md Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update packages/grafana-ui/src/components/Select/types.ts Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/prepareTimeSeries/PrepareTimeSeriesEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Docs: Variants instead of varients * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
90 lines
2.1 KiB
TypeScript
90 lines
2.1 KiB
TypeScript
import React, { FC } from 'react';
|
|
import { SelectableValue } from '@grafana/data';
|
|
import { HorizontalGroup, InlineLabel, PopoverContent, Select, InlineField } from '@grafana/ui';
|
|
import { css } from '@emotion/css';
|
|
import { INNER_LABEL_WIDTH, LABEL_WIDTH } from '../constants';
|
|
|
|
interface VariableQueryFieldProps {
|
|
onChange: (value: string) => void;
|
|
options: SelectableValue[];
|
|
value: string;
|
|
label: string;
|
|
allowCustomValue?: boolean;
|
|
}
|
|
|
|
export const VariableQueryField: FC<VariableQueryFieldProps> = ({
|
|
label,
|
|
onChange,
|
|
value,
|
|
options,
|
|
allowCustomValue = false,
|
|
}) => {
|
|
return (
|
|
<InlineField label={label} labelWidth={20}>
|
|
<Select
|
|
menuShouldPortal
|
|
width={25}
|
|
allowCustomValue={allowCustomValue}
|
|
value={value}
|
|
onChange={({ value }) => onChange(value!)}
|
|
options={options}
|
|
/>
|
|
</InlineField>
|
|
);
|
|
};
|
|
|
|
export interface Props {
|
|
children: React.ReactNode;
|
|
tooltip?: PopoverContent;
|
|
label?: React.ReactNode;
|
|
className?: string;
|
|
noFillEnd?: boolean;
|
|
labelWidth?: number;
|
|
fillComponent?: React.ReactNode;
|
|
}
|
|
|
|
export const QueryEditorRow: FC<Props> = ({
|
|
children,
|
|
label,
|
|
tooltip,
|
|
fillComponent,
|
|
noFillEnd = false,
|
|
labelWidth = LABEL_WIDTH,
|
|
...rest
|
|
}) => {
|
|
return (
|
|
<div className="gf-form" {...rest}>
|
|
{label && (
|
|
<InlineLabel width={labelWidth} tooltip={tooltip}>
|
|
{label}
|
|
</InlineLabel>
|
|
)}
|
|
<div
|
|
className={css`
|
|
margin-right: 4px;
|
|
`}
|
|
>
|
|
<HorizontalGroup spacing="xs" width="auto">
|
|
{children}
|
|
</HorizontalGroup>
|
|
</div>
|
|
<div className={'gf-form--grow'}>
|
|
{noFillEnd || <div className={'gf-form-label gf-form-label--grow'}>{fillComponent}</div>}
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export const QueryEditorField: FC<Props> = ({ children, label, tooltip, labelWidth = INNER_LABEL_WIDTH, ...rest }) => {
|
|
return (
|
|
<>
|
|
{label && (
|
|
<InlineLabel width={labelWidth} tooltip={tooltip} {...rest}>
|
|
{label}
|
|
</InlineLabel>
|
|
)}
|
|
{children}
|
|
</>
|
|
);
|
|
};
|