mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
This commit is contained in:
@@ -1,18 +1,16 @@
|
||||
// Libraries
|
||||
import React, { PureComponent } from 'react';
|
||||
import { connect, ConnectedProps } from 'react-redux';
|
||||
|
||||
// Utils and services
|
||||
import { AngularComponent, getAngularLoader } from '@grafana/runtime';
|
||||
|
||||
// Types
|
||||
import { PanelModel, DashboardModel } from '../../state';
|
||||
import { PanelPlugin, PanelPluginMeta } from '@grafana/data';
|
||||
import { changePanelPlugin } from 'app/features/panel/state/actions';
|
||||
import { StoreState } from 'app/types';
|
||||
import { getSectionOpenState, saveSectionOpenState } from './state/utils';
|
||||
import { AngularComponent, getAngularLoader } from '@grafana/runtime';
|
||||
import { PanelCtrl } from 'app/angular/panel/panel_ctrl';
|
||||
import { changePanelPlugin } from 'app/features/panel/state/actions';
|
||||
import { getPanelStateForModel } from 'app/features/panel/state/selectors';
|
||||
import { StoreState } from 'app/types';
|
||||
|
||||
import { PanelModel, DashboardModel } from '../../state';
|
||||
|
||||
import { getSectionOpenState, saveSectionOpenState } from './state/utils';
|
||||
|
||||
interface OwnProps {
|
||||
panel: PanelModel;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
import { css, cx } from '@emotion/css';
|
||||
import React from 'react';
|
||||
// @ts-ignore
|
||||
import Highlighter from 'react-highlight-words';
|
||||
|
||||
import {
|
||||
DynamicConfigValue,
|
||||
FieldConfigOptionsRegistry,
|
||||
@@ -5,11 +10,9 @@ import {
|
||||
FieldOverrideContext,
|
||||
GrafanaTheme,
|
||||
} from '@grafana/data';
|
||||
import React from 'react';
|
||||
import { Counter, Field, HorizontalGroup, IconButton, Label, stylesFactory, useTheme } from '@grafana/ui';
|
||||
import { css, cx } from '@emotion/css';
|
||||
|
||||
import { OptionsPaneCategory } from './OptionsPaneCategory';
|
||||
import Highlighter from 'react-highlight-words';
|
||||
|
||||
interface DynamicConfigValueEditorProps {
|
||||
property: DynamicConfigValue;
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import React from 'react';
|
||||
import { GrafanaTheme } from '@grafana/data';
|
||||
import { useStyles } from '@grafana/ui';
|
||||
import { css } from '@emotion/css';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { VisualizationButton } from './VisualizationButton';
|
||||
import { OptionsPaneOptions } from './OptionsPaneOptions';
|
||||
import React from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
|
||||
import { GrafanaTheme } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { useStyles } from '@grafana/ui';
|
||||
import { StoreState } from 'app/types';
|
||||
|
||||
import { OptionsPaneOptions } from './OptionsPaneOptions';
|
||||
import { VisualizationButton } from './VisualizationButton';
|
||||
import { VisualizationSelectPane } from './VisualizationSelectPane';
|
||||
import { usePanelLatestData } from './usePanelLatestData';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
import { usePanelLatestData } from './usePanelLatestData';
|
||||
|
||||
export const OptionsPane: React.FC<OptionPaneRenderProps> = ({
|
||||
plugin,
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import React, { FC, ReactNode, useCallback, useEffect, useState, useRef } from 'react';
|
||||
import { css, cx } from '@emotion/css';
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Counter, useStyles2 } from '@grafana/ui';
|
||||
import { PANEL_EDITOR_UI_STATE_STORAGE_KEY } from './state/reducers';
|
||||
import React, { FC, ReactNode, useCallback, useEffect, useState, useRef } from 'react';
|
||||
import { useLocalStorage } from 'react-use';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { Counter, useStyles2 } from '@grafana/ui';
|
||||
import { useQueryParams } from 'app/core/hooks/useQueryParams';
|
||||
import { CollapseToggle } from 'app/features/alerting/unified/components/CollapseToggle';
|
||||
|
||||
import { PANEL_EDITOR_UI_STATE_STORAGE_KEY } from './state/reducers';
|
||||
|
||||
export interface OptionsPaneCategoryProps {
|
||||
id: string;
|
||||
title?: string;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import React from 'react';
|
||||
|
||||
import { OptionsPaneCategory } from './OptionsPaneCategory';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import React, { ReactNode } from 'react';
|
||||
// @ts-ignore
|
||||
import Highlighter from 'react-highlight-words';
|
||||
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { Field, Label } from '@grafana/ui';
|
||||
import React, { ReactNode } from 'react';
|
||||
import Highlighter from 'react-highlight-words';
|
||||
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemOverrides } from './OptionsPaneItemOverrides';
|
||||
import { OptionPaneItemOverrideInfo } from './types';
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import React from 'react';
|
||||
import { Tooltip, useStyles2 } from '@grafana/ui';
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { css, CSSObject } from '@emotion/css';
|
||||
import React from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Tooltip, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { OptionPaneItemOverrideInfo } from './types';
|
||||
|
||||
export interface Props {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import React from 'react';
|
||||
import { fireEvent, render, screen, within } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import configureMockStore from 'redux-mock-store';
|
||||
|
||||
import {
|
||||
FieldConfigSource,
|
||||
FieldType,
|
||||
@@ -9,15 +12,14 @@ import {
|
||||
standardFieldConfigEditorRegistry,
|
||||
toDataFrame,
|
||||
} from '@grafana/data';
|
||||
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { OptionsPaneOptions } from './OptionsPaneOptions';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { Provider } from 'react-redux';
|
||||
import configureMockStore from 'redux-mock-store';
|
||||
import { getPanelPlugin } from 'app/features/plugins/__mocks__/pluginMocks';
|
||||
import { dataOverrideTooltipDescription, overrideRuleTooltipDescription } from './state/getOptionOverrides';
|
||||
import { getAllOptionEditors, getAllStandardFieldConfigs } from 'app/core/components/editors/registry';
|
||||
import { getPanelPlugin } from 'app/features/plugins/__mocks__/pluginMocks';
|
||||
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
|
||||
import { OptionsPaneOptions } from './OptionsPaneOptions';
|
||||
import { dataOverrideTooltipDescription, overrideRuleTooltipDescription } from './state/getOptionOverrides';
|
||||
|
||||
standardEditorsRegistry.setInit(getAllOptionEditors);
|
||||
standardFieldConfigEditorRegistry.setInit(getAllStandardFieldConfigs);
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
import { css } from '@emotion/css';
|
||||
import React, { useMemo, useState } from 'react';
|
||||
|
||||
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
|
||||
import { CustomScrollbar, FilterInput, RadioButtonGroup, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
||||
|
||||
import { AngularPanelOptions } from './AngularPanelOptions';
|
||||
import { OptionsPaneCategory } from './OptionsPaneCategory';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { getFieldOverrideCategories } from './getFieldOverrideElements';
|
||||
import { getLibraryPanelOptionsCategory } from './getLibraryPanelOptions';
|
||||
import { getPanelFrameCategory } from './getPanelFrameOptions';
|
||||
import { getVisualizationOptions } from './getVisualizationOptions';
|
||||
import { css } from '@emotion/css';
|
||||
import { OptionsPaneCategory } from './OptionsPaneCategory';
|
||||
import { getFieldOverrideCategories } from './getFieldOverrideElements';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionSearchEngine } from './state/OptionSearchEngine';
|
||||
import { AngularPanelOptions } from './AngularPanelOptions';
|
||||
import { getRecentOptions } from './state/getRecentOptions';
|
||||
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
||||
import { getLibraryPanelOptionsCategory } from './getLibraryPanelOptions';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
|
||||
export const OptionsPaneOptions: React.FC<OptionPaneRenderProps> = (props) => {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { css } from '@emotion/css';
|
||||
import React, { FC } from 'react';
|
||||
|
||||
import { FieldConfigOptionsRegistry, GrafanaTheme, ConfigOverrideRule } from '@grafana/data';
|
||||
import { HorizontalGroup, Icon, IconButton, useStyles } from '@grafana/ui';
|
||||
import { FieldMatcherUIRegistryItem } from '@grafana/ui/src/components/MatchersUI/types';
|
||||
import { css } from '@emotion/css';
|
||||
|
||||
interface OverrideCategoryTitleProps {
|
||||
isExpanded: boolean;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { css } from '@emotion/css';
|
||||
import React, { PureComponent } from 'react';
|
||||
import { connect, ConnectedProps } from 'react-redux';
|
||||
import AutoSizer from 'react-virtualized-auto-sizer';
|
||||
import { css } from '@emotion/css';
|
||||
import { Subscription } from 'rxjs';
|
||||
|
||||
import { FieldConfigSource, GrafanaTheme } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import {
|
||||
HorizontalGroup,
|
||||
InlineSwitch,
|
||||
@@ -15,34 +16,19 @@ import {
|
||||
stylesFactory,
|
||||
ToolbarButton,
|
||||
} from '@grafana/ui';
|
||||
|
||||
import { SplitPaneWrapper } from 'app/core/components/SplitPaneWrapper/SplitPaneWrapper';
|
||||
import config from 'app/core/config';
|
||||
import { appEvents } from 'app/core/core';
|
||||
import { calculatePanelSize } from './utils';
|
||||
|
||||
import { PanelEditorTabs } from './PanelEditorTabs';
|
||||
import { DashNavTimeControls } from '../DashNav/DashNavTimeControls';
|
||||
import { OptionsPane } from './OptionsPane';
|
||||
import { SubMenuItems } from 'app/features/dashboard/components/SubMenu/SubMenuItems';
|
||||
import { SplitPaneWrapper } from 'app/core/components/SplitPaneWrapper/SplitPaneWrapper';
|
||||
import { SaveDashboardProxy } from '../SaveDashboard/SaveDashboardProxy';
|
||||
import { DashboardPanel } from '../../dashgrid/DashboardPanel';
|
||||
|
||||
import { discardPanelChanges, initPanelEditor, updatePanelEditorUIState } from './state/actions';
|
||||
|
||||
import { updateTimeZoneForSession } from 'app/features/profile/state/reducers';
|
||||
import { toggleTableView } from './state/reducers';
|
||||
|
||||
import { getPanelEditorTabs } from './state/selectors';
|
||||
|
||||
import { StoreState } from 'app/types';
|
||||
import { DisplayMode, displayModes, PanelEditorTab } from './types';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { VisualizationButton } from './VisualizationButton';
|
||||
import { PanelOptionsChangedEvent, ShowModalReactEvent } from 'app/types/events';
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import { UnlinkModal } from '../../../library-panels/components/UnlinkModal/UnlinkModal';
|
||||
import { SaveLibraryPanelModal } from 'app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal';
|
||||
import { PanelModelWithLibraryPanel } from 'app/features/library-panels/types';
|
||||
import { getPanelStateForModel } from 'app/features/panel/state/selectors';
|
||||
import { updateTimeZoneForSession } from 'app/features/profile/state/reducers';
|
||||
import { StoreState } from 'app/types';
|
||||
import { PanelOptionsChangedEvent, ShowModalReactEvent } from 'app/types/events';
|
||||
|
||||
import { notifyApp } from '../../../../core/actions';
|
||||
import { UnlinkModal } from '../../../library-panels/components/UnlinkModal/UnlinkModal';
|
||||
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
||||
import { getLibraryPanelConnectedDashboards } from '../../../library-panels/state/api';
|
||||
import {
|
||||
@@ -50,11 +36,21 @@ import {
|
||||
createPanelLibrarySuccessNotification,
|
||||
saveAndRefreshLibraryPanel,
|
||||
} from '../../../library-panels/utils';
|
||||
import { notifyApp } from '../../../../core/actions';
|
||||
import { PanelEditorTableView } from './PanelEditorTableView';
|
||||
import { PanelModelWithLibraryPanel } from 'app/features/library-panels/types';
|
||||
import { getPanelStateForModel } from 'app/features/panel/state/selectors';
|
||||
import { getVariablesByKey } from '../../../variables/state/selectors';
|
||||
import { DashboardPanel } from '../../dashgrid/DashboardPanel';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { DashNavTimeControls } from '../DashNav/DashNavTimeControls';
|
||||
import { SaveDashboardProxy } from '../SaveDashboard/SaveDashboardProxy';
|
||||
|
||||
import { OptionsPane } from './OptionsPane';
|
||||
import { PanelEditorTableView } from './PanelEditorTableView';
|
||||
import { PanelEditorTabs } from './PanelEditorTabs';
|
||||
import { VisualizationButton } from './VisualizationButton';
|
||||
import { discardPanelChanges, initPanelEditor, updatePanelEditorUIState } from './state/actions';
|
||||
import { toggleTableView } from './state/reducers';
|
||||
import { getPanelEditorTabs } from './state/selectors';
|
||||
import { DisplayMode, displayModes, PanelEditorTab } from './types';
|
||||
import { calculatePanelSize } from './utils';
|
||||
|
||||
interface OwnProps {
|
||||
dashboard: DashboardModel;
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import { QueryGroup } from 'app/features/query/components/QueryGroup';
|
||||
import { PanelModel } from '../../state';
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import { QueryGroupDataSource, QueryGroupOptions } from 'app/types';
|
||||
|
||||
import { DataQuery, getDataSourceRef } from '@grafana/data';
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import { getDatasourceSrv } from 'app/features/plugins/datasource_srv';
|
||||
import { QueryGroup } from 'app/features/query/components/QueryGroup';
|
||||
import { QueryGroupDataSource, QueryGroupOptions } from 'app/types';
|
||||
|
||||
import { PanelModel } from '../../state';
|
||||
|
||||
interface Props {
|
||||
/** Current panel */
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import { PanelChrome } from '@grafana/ui';
|
||||
import { PanelRenderer } from 'app/features/panel/components/PanelRenderer';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { usePanelLatestData } from './usePanelLatestData';
|
||||
import { PanelOptions } from 'app/plugins/panel/table/models.gen';
|
||||
|
||||
import { RefreshEvent } from '@grafana/runtime';
|
||||
import { PanelChrome } from '@grafana/ui';
|
||||
import { applyPanelTimeOverrides } from 'app/features/dashboard/utils/panel';
|
||||
import { getTimeSrv } from '../../services/TimeSrv';
|
||||
import { PanelRenderer } from 'app/features/panel/components/PanelRenderer';
|
||||
import { PanelOptions } from 'app/plugins/panel/table/models.gen';
|
||||
|
||||
import PanelHeaderCorner from '../../dashgrid/PanelHeader/PanelHeaderCorner';
|
||||
import { getTimeSrv } from '../../services/TimeSrv';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
|
||||
import { usePanelLatestData } from './usePanelLatestData';
|
||||
|
||||
interface Props {
|
||||
width: number;
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import React, { FC, useEffect } from 'react';
|
||||
import { css } from '@emotion/css';
|
||||
import { IconName, Tab, TabContent, TabsBar, useForceUpdate, useStyles2 } from '@grafana/ui';
|
||||
import { TransformationsEditor } from '../TransformationsEditor/TransformationsEditor';
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { PanelEditorTab, PanelEditorTabId } from './types';
|
||||
import React, { FC, useEffect } from 'react';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { PanelQueriesChangedEvent, PanelTransformationsChangedEvent } from 'app/types/events';
|
||||
import { PanelEditorQueries } from './PanelEditorQueries';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { config } from '@grafana/runtime';
|
||||
import { IconName, Tab, TabContent, TabsBar, useForceUpdate, useStyles2 } from '@grafana/ui';
|
||||
import AlertTabIndex from 'app/features/alerting/AlertTabIndex';
|
||||
import { PanelAlertTab } from 'app/features/alerting/unified/PanelAlertTab';
|
||||
import { PanelQueriesChangedEvent, PanelTransformationsChangedEvent } from 'app/types/events';
|
||||
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
import { TransformationsEditor } from '../TransformationsEditor/TransformationsEditor';
|
||||
|
||||
import { PanelEditorQueries } from './PanelEditorQueries';
|
||||
import { PanelEditorTab, PanelEditorTabId } from './types';
|
||||
|
||||
interface PanelEditorTabsProps {
|
||||
panel: PanelModel;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import React from 'react';
|
||||
|
||||
import { locationService } from '@grafana/runtime';
|
||||
|
||||
import { PanelNotSupported, Props } from './PanelNotSupported';
|
||||
import { PanelEditorTabId } from './types';
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import React, { useCallback } from 'react';
|
||||
import { Button, VerticalGroup } from '@grafana/ui';
|
||||
|
||||
import { Layout } from '@grafana/ui/src/components/Layout/Layout';
|
||||
import { PanelEditorTabId } from './types';
|
||||
import { locationService } from '@grafana/runtime';
|
||||
import { Button, VerticalGroup } from '@grafana/ui';
|
||||
import { Layout } from '@grafana/ui/src/components/Layout/Layout';
|
||||
|
||||
import { PanelEditorTabId } from './types';
|
||||
|
||||
export interface Props {
|
||||
message: string;
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
import React, { FC } from 'react';
|
||||
import { css } from '@emotion/css';
|
||||
import React, { FC } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
|
||||
import { GrafanaTheme } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { ToolbarButton, ButtonGroup, useStyles } from '@grafana/ui';
|
||||
import { StoreState } from 'app/types';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { setPanelEditorUIState, toggleVizPicker } from './state/reducers';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
|
||||
import { PanelModel } from '../../state';
|
||||
import { getPanelPluginWithFallback } from '../../state/selectors';
|
||||
|
||||
import { setPanelEditorUIState, toggleVizPicker } from './state/reducers';
|
||||
|
||||
type Props = {
|
||||
panel: PanelModel;
|
||||
};
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { css } from '@emotion/css';
|
||||
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useLocalStorage } from 'react-use';
|
||||
|
||||
import { GrafanaTheme, PanelData, SelectableValue } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { Button, CustomScrollbar, FilterInput, RadioButtonGroup, useStyles } from '@grafana/ui';
|
||||
import { Field } from '@grafana/ui/src/components/Forms/Field';
|
||||
import { LS_VISUALIZATION_SELECT_TAB_KEY } from 'app/core/constants';
|
||||
import { PanelLibraryOptionsGroup } from 'app/features/library-panels/components/PanelLibraryOptionsGroup/PanelLibraryOptionsGroup';
|
||||
import { VisualizationSuggestions } from 'app/features/panel/components/VizTypePicker/VisualizationSuggestions';
|
||||
import { VizTypeChangeDetails } from 'app/features/panel/components/VizTypePicker/types';
|
||||
|
||||
import { VizTypePicker } from '../../../panel/components/VizTypePicker/VizTypePicker';
|
||||
import { changePanelPlugin } from '../../../panel/state/actions';
|
||||
import { PanelModel } from '../../state/PanelModel';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { VizTypePicker } from '../../../panel/components/VizTypePicker/VizTypePicker';
|
||||
import { Field } from '@grafana/ui/src/components/Forms/Field';
|
||||
import { PanelLibraryOptionsGroup } from 'app/features/library-panels/components/PanelLibraryOptionsGroup/PanelLibraryOptionsGroup';
|
||||
import { toggleVizPicker } from './state/reducers';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { getPanelPluginWithFallback } from '../../state/selectors';
|
||||
import { VizTypeChangeDetails } from 'app/features/panel/components/VizTypePicker/types';
|
||||
import { VisualizationSuggestions } from 'app/features/panel/components/VizTypePicker/VisualizationSuggestions';
|
||||
import { useLocalStorage } from 'react-use';
|
||||
|
||||
import { toggleVizPicker } from './state/reducers';
|
||||
import { VisualizationSelectPaneTab } from './types';
|
||||
import { LS_VISUALIZATION_SELECT_TAB_KEY } from 'app/core/constants';
|
||||
|
||||
interface Props {
|
||||
panel: PanelModel;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import React from 'react';
|
||||
import { css } from '@emotion/css';
|
||||
import { cloneDeep } from 'lodash';
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
FieldConfigOptionsRegistry,
|
||||
SelectableValue,
|
||||
@@ -10,13 +12,13 @@ import {
|
||||
GrafanaTheme2,
|
||||
} from '@grafana/data';
|
||||
import { fieldMatchersUI, useStyles2, ValuePicker } from '@grafana/ui';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { DynamicConfigValueEditor } from './DynamicConfigValueEditor';
|
||||
import { getDataLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';
|
||||
|
||||
import { DynamicConfigValueEditor } from './DynamicConfigValueEditor';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OverrideCategoryTitle } from './OverrideCategoryTitle';
|
||||
import { css } from '@emotion/css';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
|
||||
export function getFieldOverrideCategories(
|
||||
props: OptionPaneRenderProps,
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
import { Input } from '@grafana/ui';
|
||||
import React from 'react';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
||||
|
||||
import { Input } from '@grafana/ui';
|
||||
import { LibraryPanelInformation } from 'app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo';
|
||||
|
||||
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
||||
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
|
||||
export function getLibraryPanelOptionsCategory(props: OptionPaneRenderProps): OptionsPaneCategoryDescriptor {
|
||||
const { panel, onPanelConfigChange, dashboard } = props;
|
||||
const descriptor = new OptionsPaneCategoryDescriptor({
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import React from 'react';
|
||||
|
||||
import { DataLinksInlineEditor, Input, RadioButtonGroup, Select, Switch, TextArea } from '@grafana/ui';
|
||||
import { getPanelLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';
|
||||
import React from 'react';
|
||||
|
||||
import { RepeatRowSelect } from '../RepeatRowSelect/RepeatRowSelect';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
|
||||
export function getPanelFrameCategory(props: OptionPaneRenderProps): OptionsPaneCategoryDescriptor {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { EventBusSrv, FieldType, getDefaultTimeRange, LoadingState, toDataFrame } from '@grafana/data';
|
||||
|
||||
import { getStandardEditorContext } from './getVisualizationOptions';
|
||||
|
||||
describe('getStandardEditorContext', () => {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { get as lodashGet } from 'lodash';
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
EventBus,
|
||||
InterpolateFunction,
|
||||
@@ -6,19 +8,19 @@ import {
|
||||
StandardEditorContext,
|
||||
VariableSuggestionsScope,
|
||||
} from '@grafana/data';
|
||||
import { get as lodashGet } from 'lodash';
|
||||
import { getDataLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
import { setOptionImmutably, updateDefaultFieldConfigValue } from './utils';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
|
||||
import {
|
||||
isNestedPanelOptions,
|
||||
NestedValueAccess,
|
||||
PanelOptionsEditorBuilder,
|
||||
} from '@grafana/data/src/utils/OptionsUIBuilders';
|
||||
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
|
||||
import { getDataLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';
|
||||
|
||||
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
||||
import { getOptionOverrides } from './state/getOptionOverrides';
|
||||
import { OptionPaneRenderProps } from './types';
|
||||
import { setOptionImmutably, updateDefaultFieldConfigValue } from './utils';
|
||||
|
||||
type categoryGetter = (categoryNames?: string[]) => OptionsPaneCategoryDescriptor;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { OptionsPaneCategoryDescriptor } from '../OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from '../OptionsPaneItemDescriptor';
|
||||
|
||||
import { OptionSearchEngine } from './OptionSearchEngine';
|
||||
|
||||
describe('OptionSearchEngine', () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { OptionsPaneItemDescriptor } from '../OptionsPaneItemDescriptor';
|
||||
import { OptionsPaneCategoryDescriptor } from '../OptionsPaneCategoryDescriptor';
|
||||
import { OptionsPaneItemDescriptor } from '../OptionsPaneItemDescriptor';
|
||||
|
||||
export interface OptionSearchResults {
|
||||
optionHits: OptionsPaneItemDescriptor[];
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { thunkTester } from '../../../../../../test/core/thunk/thunkTester';
|
||||
import { closeEditor, initialState, PanelEditorState } from './reducers';
|
||||
import { exitPanelEditor, initPanelEditor, skipPanelUpdate } from './actions';
|
||||
import { panelModelAndPluginReady, removePanel } from 'app/features/panel/state/reducers';
|
||||
import { DashboardModel, PanelModel } from '../../../state';
|
||||
import { getPanelPlugin } from 'app/features/plugins/__mocks__/pluginMocks';
|
||||
|
||||
import { thunkTester } from '../../../../../../test/core/thunk/thunkTester';
|
||||
import { DashboardModel, PanelModel } from '../../../state';
|
||||
|
||||
import { exitPanelEditor, initPanelEditor, skipPanelUpdate } from './actions';
|
||||
import { closeEditor, initialState, PanelEditorState } from './reducers';
|
||||
|
||||
describe('panelEditor actions', () => {
|
||||
describe('initPanelEditor', () => {
|
||||
it('initPanelEditor should create edit panel model as clone', async () => {
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
import { pick } from 'lodash';
|
||||
import { ThunkResult } from 'app/types';
|
||||
|
||||
import store from 'app/core/store';
|
||||
import { panelModelAndPluginReady } from 'app/features/panel/state/reducers';
|
||||
import { cleanUpPanelState, initPanelState } from 'app/features/panel/state/actions';
|
||||
import { panelModelAndPluginReady } from 'app/features/panel/state/reducers';
|
||||
import { ThunkResult } from 'app/types';
|
||||
|
||||
import { DashboardModel, PanelModel } from '../../../state';
|
||||
|
||||
import {
|
||||
closeEditor,
|
||||
PANEL_EDITOR_UI_STATE_STORAGE_KEY,
|
||||
@@ -11,7 +15,6 @@ import {
|
||||
setPanelEditorUIState,
|
||||
updateEditorInitState,
|
||||
} from './reducers';
|
||||
import { DashboardModel, PanelModel } from '../../../state';
|
||||
|
||||
export function initPanelEditor(sourcePanel: PanelModel, dashboard: DashboardModel): ThunkResult<void> {
|
||||
return async (dispatch) => {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { DataFrame, FieldConfigPropertyItem, FieldConfigSource } from '@grafana/data';
|
||||
import { get as lodashGet } from 'lodash';
|
||||
|
||||
import { DataFrame, FieldConfigPropertyItem, FieldConfigSource } from '@grafana/data';
|
||||
|
||||
import { OptionPaneItemOverrideInfo } from '../types';
|
||||
|
||||
export const dataOverrideTooltipDescription =
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
||||
import { PanelModel } from '../../../state/PanelModel';
|
||||
|
||||
import { getDefaultTimeRange, LoadingState, PanelData } from '@grafana/data';
|
||||
import { DisplayMode } from '../types';
|
||||
|
||||
import store from '../../../../../core/store';
|
||||
import { PanelModel } from '../../../state/PanelModel';
|
||||
import { DisplayMode } from '../types';
|
||||
|
||||
export const PANEL_EDITOR_UI_STATE_STORAGE_KEY = 'grafana.dashboard.editor.ui';
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import { getPanelEditorTabs } from './selectors';
|
||||
import { PanelPlugin } from '@grafana/data';
|
||||
import { PanelEditorTabId } from '../types';
|
||||
import { updateConfig } from '../../../../../core/config';
|
||||
import { contextSrv } from 'app/core/services/context_srv';
|
||||
|
||||
import { updateConfig } from '../../../../../core/config';
|
||||
import { PanelEditorTabId } from '../types';
|
||||
|
||||
import { getPanelEditorTabs } from './selectors';
|
||||
|
||||
jest.mock('app/core/services/context_srv');
|
||||
|
||||
const mocks = {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import memoizeOne from 'memoize-one';
|
||||
|
||||
import { PanelPlugin } from '@grafana/data';
|
||||
import { PanelEditorTab, PanelEditorTabId } from '../types';
|
||||
import { getConfig } from 'app/core/config';
|
||||
import { getRulesPermissions } from 'app/features/alerting/unified/utils/access-control';
|
||||
import { contextSrv } from 'app/core/services/context_srv';
|
||||
import { getRulesPermissions } from 'app/features/alerting/unified/utils/access-control';
|
||||
import { GRAFANA_RULES_SOURCE_NAME } from 'app/features/alerting/unified/utils/datasource';
|
||||
|
||||
import { PanelEditorTab, PanelEditorTabId } from '../types';
|
||||
|
||||
export const getPanelEditorTabs = memoizeOne((tab?: string, plugin?: PanelPlugin) => {
|
||||
const tabs: PanelEditorTab[] = [];
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { DataFrame, FieldConfigSource, PanelData, PanelPlugin } from '@grafana/data';
|
||||
|
||||
import { DashboardModel, PanelModel } from '../../state';
|
||||
|
||||
export interface PanelEditorTab {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { DataQueryError, LoadingState, PanelData } from '@grafana/data';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { PanelModel } from '../../state';
|
||||
import { Unsubscribable } from 'rxjs';
|
||||
|
||||
import { DataQueryError, LoadingState, PanelData } from '@grafana/data';
|
||||
|
||||
import { GetDataOptions } from '../../../query/state/PanelQueryRunner';
|
||||
import { PanelModel } from '../../state';
|
||||
|
||||
interface UsePanelLatestData {
|
||||
data?: PanelData;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { FieldConfig, FieldConfigSource, PanelPlugin, standardFieldConfigEditorRegistry } from '@grafana/data';
|
||||
|
||||
import { setOptionImmutably, supportsDataQuery, updateDefaultFieldConfigValue } from './utils';
|
||||
|
||||
describe('standardFieldConfigEditorRegistry', () => {
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { omit } from 'lodash';
|
||||
|
||||
import { FieldConfigSource, PanelPlugin } from '@grafana/data';
|
||||
import { PanelModel } from '../../state/PanelModel';
|
||||
import { DisplayMode } from './types';
|
||||
import { GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from 'app/core/constants';
|
||||
|
||||
import { PanelModel } from '../../state/PanelModel';
|
||||
|
||||
import { DisplayMode } from './types';
|
||||
|
||||
export function calculatePanelSize(mode: DisplayMode, width: number, height: number, panel: PanelModel) {
|
||||
if (mode === DisplayMode.Fill) {
|
||||
return { width, height };
|
||||
|
||||
Reference in New Issue
Block a user