Commit d4c40e43 by Dominik Prokop

Imports updates

parent 529c1ea5
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;
......
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';
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) => { import { withTheme } from '../../themes/ThemeContext';
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'; ...@@ -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';
......
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'; ...@@ -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;
......
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';
......
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');
}
};
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> { ...@@ -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 {
......
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;
......
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'; ...@@ -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;
......
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 { ...@@ -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>) => {
......
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'; ...@@ -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'; ...@@ -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';
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>;
......
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) => { ...@@ -12,3 +13,5 @@ export const mockTheme = (mock: (name?: string) => GrafanaTheme) => {
themeMock = null; themeMock = null;
}; };
}; };
export { ThemeContext, withTheme };
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 = [ ...@@ -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) {
......
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';
......
// 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 ...@@ -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'; ...@@ -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'; ...@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment