mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Imports updates
This commit is contained in:
parent
529c1ea53d
commit
d4c40e4360
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { ColorPickerProps } from './ColorPicker';
|
import { ColorPickerProps } from './ColorPickerPopover';
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
import { debounce } from 'lodash';
|
import debounce from 'lodash/debounce';
|
||||||
|
|
||||||
interface ColorInputState {
|
interface ColorInputState {
|
||||||
previousColor: string;
|
previousColor: string;
|
||||||
|
@ -1,32 +1,11 @@
|
|||||||
import React, { Component, createRef } from 'react';
|
import React, { Component, createRef } from 'react';
|
||||||
import { PopperController } from '../Tooltip/PopperController';
|
import { PopperController } from '../Tooltip/PopperController';
|
||||||
import {Popper} from '../Tooltip/Popper';
|
import {Popper} from '../Tooltip/Popper';
|
||||||
import { ColorPickerPopover } from './ColorPickerPopover';
|
import { ColorPickerPopover, ColorPickerProps, ColorPickerChangeHandler } from './ColorPickerPopover';
|
||||||
import { Themeable } from '../../types';
|
|
||||||
import { getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
|
import { getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
|
||||||
import { SeriesColorPickerPopover } from './SeriesColorPickerPopover';
|
import { SeriesColorPickerPopover } from './SeriesColorPickerPopover';
|
||||||
import propDeprecationWarning from '../../utils/propDeprecationWarning';
|
|
||||||
import { withTheme } from '../../themes/ThemeContext';
|
import { withTheme } from '../../themes/ThemeContext';
|
||||||
type ColorPickerChangeHandler = (color: string) => void;
|
|
||||||
|
|
||||||
export interface ColorPickerProps extends Themeable {
|
|
||||||
color: string;
|
|
||||||
onChange: ColorPickerChangeHandler;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Use onChange instead
|
|
||||||
*/
|
|
||||||
onColorChange?: ColorPickerChangeHandler;
|
|
||||||
enableNamedColors?: boolean;
|
|
||||||
children?: JSX.Element;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const warnAboutColorPickerPropsDeprecation = (componentName: string, props: ColorPickerProps) => {
|
|
||||||
const { onColorChange } = props;
|
|
||||||
if (onColorChange) {
|
|
||||||
propDeprecationWarning(componentName, 'onColorChange', 'onChange');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const colorPickerFactory = <T extends ColorPickerProps>(
|
export const colorPickerFactory = <T extends ColorPickerProps>(
|
||||||
popover: React.ComponentType<T>,
|
popover: React.ComponentType<T>,
|
||||||
|
@ -3,7 +3,7 @@ import { mount, ReactWrapper } from 'enzyme';
|
|||||||
import { ColorPickerPopover } from './ColorPickerPopover';
|
import { ColorPickerPopover } from './ColorPickerPopover';
|
||||||
import { getColorDefinitionByName, getNamedColorPalette } from '../../utils/namedColorsPalette';
|
import { getColorDefinitionByName, getNamedColorPalette } from '../../utils/namedColorsPalette';
|
||||||
import { ColorSwatch } from './NamedColorsGroup';
|
import { ColorSwatch } from './NamedColorsGroup';
|
||||||
import { flatten } from 'lodash';
|
import flatten from 'lodash/flatten';
|
||||||
import { GrafanaThemeType } from '../../types';
|
import { GrafanaThemeType } from '../../types';
|
||||||
import { getTheme } from '../../themes';
|
import { getTheme } from '../../themes';
|
||||||
|
|
||||||
|
@ -1,23 +1,37 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { NamedColorsPalette } from './NamedColorsPalette';
|
import { NamedColorsPalette } from './NamedColorsPalette';
|
||||||
import { getColorName, getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
|
import { getColorName, getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
|
||||||
import { ColorPickerProps, warnAboutColorPickerPropsDeprecation } from './ColorPicker';
|
|
||||||
import { PopperContentProps } from '../Tooltip/PopperController';
|
import { PopperContentProps } from '../Tooltip/PopperController';
|
||||||
import SpectrumPalette from './SpectrumPalette';
|
import SpectrumPalette from './SpectrumPalette';
|
||||||
import { GrafanaThemeType } from '../../types/theme';
|
import { GrafanaThemeType, Themeable } from '../../types/theme';
|
||||||
|
import { warnAboutColorPickerPropsDeprecation } from './warnAboutColorPickerPropsDeprecation';
|
||||||
|
|
||||||
|
export type ColorPickerChangeHandler = (color: string) => void;
|
||||||
|
|
||||||
|
export interface ColorPickerProps extends Themeable {
|
||||||
|
color: string;
|
||||||
|
onChange: ColorPickerChangeHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use onChange instead
|
||||||
|
*/
|
||||||
|
onColorChange?: ColorPickerChangeHandler;
|
||||||
|
enableNamedColors?: boolean;
|
||||||
|
children?: JSX.Element;
|
||||||
|
}
|
||||||
export interface Props<T> extends ColorPickerProps, PopperContentProps {
|
export interface Props<T> extends ColorPickerProps, PopperContentProps {
|
||||||
customPickers?: T;
|
customPickers?: T;
|
||||||
}
|
}
|
||||||
|
|
||||||
type PickerType = 'palette' | 'spectrum';
|
type PickerType = 'palette' | 'spectrum';
|
||||||
|
|
||||||
interface CustomPickersDescriptor {
|
export interface CustomPickersDescriptor {
|
||||||
[key: string]: {
|
[key: string]: {
|
||||||
tabComponent: React.ComponentType<ColorPickerProps>;
|
tabComponent: React.ComponentType<ColorPickerProps>;
|
||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
interface State<T> {
|
interface State<T> {
|
||||||
activePicker: PickerType | keyof T;
|
activePicker: PickerType | keyof T;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@ import React, { FunctionComponent } from 'react';
|
|||||||
import { Themeable } from '../../types';
|
import { Themeable } from '../../types';
|
||||||
import { ColorDefinition, getColorForTheme } from '../../utils/namedColorsPalette';
|
import { ColorDefinition, getColorForTheme } from '../../utils/namedColorsPalette';
|
||||||
import { Color } from 'csstype';
|
import { Color } from 'csstype';
|
||||||
import { find, upperFirst } from 'lodash';
|
import upperFirst from 'lodash/upperFirst';
|
||||||
|
import find from 'lodash/find';
|
||||||
import { selectThemeVariant } from '../../themes/selectThemeVariant';
|
import { selectThemeVariant } from '../../themes/selectThemeVariant';
|
||||||
|
|
||||||
type ColorChangeHandler = (color: ColorDefinition) => void;
|
type ColorChangeHandler = (color: ColorDefinition) => void;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import React, { FunctionComponent } from 'react';
|
import React, { FunctionComponent } from 'react';
|
||||||
|
|
||||||
import { ColorPickerPopover } from './ColorPickerPopover';
|
import { ColorPickerPopover, ColorPickerProps } from './ColorPickerPopover';
|
||||||
import { ColorPickerProps } from './ColorPicker';
|
|
||||||
import { PopperContentProps } from '../Tooltip/PopperController';
|
import { PopperContentProps } from '../Tooltip/PopperController';
|
||||||
import { Switch } from '../Switch/Switch';
|
import { Switch } from '../Switch/Switch';
|
||||||
import { withTheme } from '../../themes/ThemeContext';
|
import { withTheme } from '../../themes/ThemeContext';
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
import propDeprecationWarning from '../../utils/propDeprecationWarning';
|
||||||
|
import { ColorPickerProps } from './ColorPickerPopover';
|
||||||
|
|
||||||
|
export const warnAboutColorPickerPropsDeprecation = (componentName: string, props: ColorPickerProps) => {
|
||||||
|
const { onColorChange } = props;
|
||||||
|
if (onColorChange) {
|
||||||
|
propDeprecationWarning(componentName, 'onColorChange', 'onChange');
|
||||||
|
}
|
||||||
|
};
|
@ -1,5 +1,5 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
import _ from 'lodash';
|
import isNil from 'lodash/isNil';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import Scrollbars from 'react-custom-scrollbars';
|
import Scrollbars from 'react-custom-scrollbars';
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ export class CustomScrollbar extends PureComponent<Props> {
|
|||||||
updateScroll() {
|
updateScroll() {
|
||||||
const ref = this.ref.current;
|
const ref = this.ref.current;
|
||||||
|
|
||||||
if (ref && !_.isNil(this.props.scrollTop)) {
|
if (ref && !isNil(this.props.scrollTop)) {
|
||||||
if (this.props.scrollTop > 10000) {
|
if (this.props.scrollTop > 10000) {
|
||||||
ref.scrollToBottom();
|
ref.scrollToBottom();
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React, { InputHTMLAttributes, FunctionComponent } from 'react';
|
import React, { InputHTMLAttributes, FunctionComponent } from 'react';
|
||||||
import { FormLabel } from '..';
|
import { FormLabel } from '../FormLabel/FormLabel';
|
||||||
|
|
||||||
export interface Props extends InputHTMLAttributes<HTMLInputElement> {
|
export interface Props extends InputHTMLAttributes<HTMLInputElement> {
|
||||||
label: string;
|
label: string;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
|
||||||
import { ValueMapping, Threshold, BasicGaugeColor, GrafanaThemeType } from '../../types';
|
|
||||||
import { getMappedValue } from '../../utils/valueMappings';
|
import { getMappedValue } from '../../utils/valueMappings';
|
||||||
import { getColorFromHexRgbOrName, getValueFormat } from '../../utils';
|
import { getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
|
||||||
import { Themeable } from '../../index';
|
import { Themeable, GrafanaThemeType } from '../../types/theme';
|
||||||
|
import { ValueMapping, Threshold, BasicGaugeColor } from '../../types/panel';
|
||||||
|
import { getValueFormat } from '../../utils/valueFormats/valueFormats';
|
||||||
|
|
||||||
type TimeSeriesValue = string | number | null;
|
type TimeSeriesValue = string | number | null;
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import SelectOptionGroup from './SelectOptionGroup';
|
|||||||
import IndicatorsContainer from './IndicatorsContainer';
|
import IndicatorsContainer from './IndicatorsContainer';
|
||||||
import NoOptionsMessage from './NoOptionsMessage';
|
import NoOptionsMessage from './NoOptionsMessage';
|
||||||
import resetSelectStyles from './resetSelectStyles';
|
import resetSelectStyles from './resetSelectStyles';
|
||||||
import { CustomScrollbar } from '..';
|
import { CustomScrollbar } from '../CustomScrollbar/CustomScrollbar';
|
||||||
|
|
||||||
export interface SelectOptionItem {
|
export interface SelectOptionItem {
|
||||||
label?: string;
|
label?: string;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
import _ from 'lodash';
|
import uniqueId from 'lodash/uniqueId';
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
label: string;
|
label: string;
|
||||||
@ -17,7 +17,7 @@ export interface State {
|
|||||||
|
|
||||||
export class Switch extends PureComponent<Props, State> {
|
export class Switch extends PureComponent<Props, State> {
|
||||||
state = {
|
state = {
|
||||||
id: _.uniqueId('check-'),
|
id: uniqueId(),
|
||||||
};
|
};
|
||||||
|
|
||||||
internalOnChange = (event: React.FormEvent<HTMLInputElement>) => {
|
internalOnChange = (event: React.FormEvent<HTMLInputElement>) => {
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import React, { ChangeEvent, PureComponent } from 'react';
|
import React, { ChangeEvent, PureComponent } from 'react';
|
||||||
|
|
||||||
import { MappingType, ValueMapping } from '../../types';
|
import { MappingType, ValueMapping } from '../../types';
|
||||||
import { FormField, FormLabel, Select } from '..';
|
import { Select } from '../Select/Select';
|
||||||
|
import { FormField } from '../FormField/FormField';
|
||||||
|
import { FormLabel } from '../FormLabel/FormLabel';
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
valueMapping: ValueMapping;
|
valueMapping: ValueMapping;
|
||||||
|
@ -2,7 +2,7 @@ import React, { PureComponent } from 'react';
|
|||||||
|
|
||||||
import MappingRow from './MappingRow';
|
import MappingRow from './MappingRow';
|
||||||
import { MappingType, ValueMapping } from '../../types';
|
import { MappingType, ValueMapping } from '../../types';
|
||||||
import { PanelOptionsGroup } from '..';
|
import { PanelOptionsGroup } from '../PanelOptionsGroup/PanelOptionsGroup';
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
valueMappings: ValueMapping[];
|
valueMappings: ValueMapping[];
|
||||||
|
@ -2,4 +2,3 @@ export * from './components';
|
|||||||
export * from './types';
|
export * from './types';
|
||||||
export * from './utils';
|
export * from './utils';
|
||||||
export * from './themes';
|
export * from './themes';
|
||||||
export * from './themes/ThemeContext';
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { GrafanaThemeType, Themeable } from '../types';
|
|
||||||
import { getTheme } from './index';
|
import { getTheme } from './index';
|
||||||
|
import { GrafanaThemeType, Themeable } from '../types/theme';
|
||||||
|
|
||||||
type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
||||||
type Subtract<T, K> = Omit<T, keyof K>;
|
type Subtract<T, K> = Omit<T, keyof K>;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import darkTheme from './dark';
|
import darkTheme from './dark';
|
||||||
import lightTheme from './light';
|
import lightTheme from './light';
|
||||||
import { GrafanaTheme } from '../types/theme';
|
import { GrafanaTheme } from '../types/theme';
|
||||||
|
import { ThemeContext, withTheme } from './ThemeContext';
|
||||||
|
|
||||||
let themeMock: ((name?: string) => GrafanaTheme) | null;
|
let themeMock: ((name?: string) => GrafanaTheme) | null;
|
||||||
|
|
||||||
@ -12,3 +13,5 @@ export const mockTheme = (mock: (name?: string) => GrafanaTheme) => {
|
|||||||
themeMock = null;
|
themeMock = null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export { ThemeContext, withTheme };
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
import _ from 'lodash';
|
import map from 'lodash/map';
|
||||||
|
import sortBy from 'lodash/sortBy';
|
||||||
|
import flattenDeep from 'lodash/flattenDeep';
|
||||||
|
import chunk from 'lodash/chunk';
|
||||||
|
import zip from 'lodash/zip';
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
|
|
||||||
export const PALETTE_ROWS = 4;
|
export const PALETTE_ROWS = 4;
|
||||||
@ -69,16 +73,16 @@ export const colors = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
function sortColorsByHue(hexColors: string[]) {
|
function sortColorsByHue(hexColors: string[]) {
|
||||||
const hslColors = _.map(hexColors, hexToHsl);
|
const hslColors = map(hexColors, hexToHsl);
|
||||||
|
|
||||||
const sortedHSLColors = _.sortBy(hslColors, ['h']);
|
const sortedHSLColors = sortBy(hslColors, ['h']);
|
||||||
const chunkedHSLColors = _.chunk(sortedHSLColors, PALETTE_ROWS);
|
const chunkedHSLColors = chunk(sortedHSLColors, PALETTE_ROWS);
|
||||||
const sortedChunkedHSLColors = _.map(chunkedHSLColors, chunk => {
|
const sortedChunkedHSLColors = map(chunkedHSLColors, chunk => {
|
||||||
return _.sortBy(chunk, 'l');
|
return sortBy(chunk, 'l');
|
||||||
});
|
});
|
||||||
const flattenedZippedSortedChunkedHSLColors = _.flattenDeep(_.zip(...sortedChunkedHSLColors));
|
const flattenedZippedSortedChunkedHSLColors = flattenDeep(zip(...sortedChunkedHSLColors));
|
||||||
|
|
||||||
return _.map(flattenedZippedSortedChunkedHSLColors, hslToHex);
|
return map(flattenedZippedSortedChunkedHSLColors, hslToHex);
|
||||||
}
|
}
|
||||||
|
|
||||||
function hexToHsl(color: string) {
|
function hexToHsl(color: string) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { flatten } from 'lodash';
|
import flatten from 'lodash/flatten';
|
||||||
import { GrafanaThemeType } from '../types';
|
import { GrafanaThemeType } from '../types/theme';
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
|
|
||||||
type Hue = 'green' | 'yellow' | 'red' | 'blue' | 'orange' | 'purple';
|
type Hue = 'green' | 'yellow' | 'red' | 'blue' | 'orange' | 'purple';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Libraries
|
// Libraries
|
||||||
import _ from 'lodash';
|
import isNumber from 'lodash/isNumber';
|
||||||
|
|
||||||
import { colors } from './colors';
|
import { colors } from './colors';
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ export function processTimeSeries({ timeSeries, nullValueMode }: Options): TimeS
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (currentValue !== null) {
|
if (currentValue !== null) {
|
||||||
if (_.isNumber(currentValue)) {
|
if (isNumber(currentValue)) {
|
||||||
total += currentValue;
|
total += currentValue;
|
||||||
allIsNull = false;
|
allIsNull = false;
|
||||||
nonNulls++;
|
nonNulls++;
|
||||||
|
@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import { RenderFunction } from '@storybook/react';
|
import { RenderFunction } from '@storybook/react';
|
||||||
import { ThemeContext } from '../../themes/ThemeContext';
|
import { ThemeContext } from '../../themes/ThemeContext';
|
||||||
import { select } from '@storybook/addon-knobs';
|
import { select } from '@storybook/addon-knobs';
|
||||||
import { getTheme } from '../../themes';
|
import { getTheme } from '../../themes/index';
|
||||||
import { GrafanaThemeType } from '../../types';
|
import { GrafanaThemeType } from '../../types';
|
||||||
|
|
||||||
const ThemableStory: React.FunctionComponent<{}> = ({ children }) => {
|
const ThemableStory: React.FunctionComponent<{}> = ({ children }) => {
|
||||||
|
@ -11,7 +11,7 @@ import { colors } from '@grafana/ui';
|
|||||||
import TableModel, { mergeTablesIntoModel } from 'app/core/table_model';
|
import TableModel, { mergeTablesIntoModel } from 'app/core/table_model';
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
import { RawTimeRange, IntervalValues, DataQuery, DataSourceApi } from '@grafana/ui/src/types';
|
import { RawTimeRange, IntervalValues, DataQuery, DataSourceApi } from '@grafana/ui';
|
||||||
import TimeSeries from 'app/core/time_series2';
|
import TimeSeries from 'app/core/time_series2';
|
||||||
import {
|
import {
|
||||||
ExploreUrlState,
|
ExploreUrlState,
|
||||||
|
Loading…
Reference in New Issue
Block a user