mirror of https://github.com/grafana/grafana.git
Alerting: Consistently order member imports in alerting code (#97688)
* Lint import member orders within alerting * Consistently order member imports in alerting code
This commit is contained in:
parent
e2365ce1c5
commit
4f7ffafe98
|
@ -251,6 +251,7 @@ module.exports = [
|
|||
},
|
||||
files: ['public/app/features/alerting/**/*.{ts,tsx,js,jsx}'],
|
||||
rules: {
|
||||
'sort-imports': ['error', { ignoreDeclarationSort: true }],
|
||||
'dot-notation': 'error',
|
||||
'prefer-const': 'error',
|
||||
'react/no-unused-prop-types': 'error',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
|
||||
|
||||
import { hiddenReducerTypes, ThresholdMapper } from './ThresholdMapper';
|
||||
import { ThresholdMapper, hiddenReducerTypes } from './ThresholdMapper';
|
||||
import alertDef from './alertDef';
|
||||
|
||||
const visibleReducerTypes = alertDef.reducerTypes
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { isArray, reduce } from 'lodash';
|
||||
|
||||
import { IconName } from '@grafana/ui';
|
||||
import { QueryPartDef, QueryPart } from 'app/features/alerting/state/query_part';
|
||||
import { QueryPart, QueryPartDef } from 'app/features/alerting/state/query_part';
|
||||
|
||||
const alertQueryDef = new QueryPartDef({
|
||||
type: 'query',
|
||||
|
|
|
@ -9,9 +9,9 @@ import {
|
|||
initialState,
|
||||
loadAlertRules,
|
||||
loadedAlertRules,
|
||||
notificationChannelLoaded,
|
||||
notificationChannelReducer,
|
||||
setSearchQuery,
|
||||
notificationChannelLoaded,
|
||||
} from './reducers';
|
||||
|
||||
describe('Alert rules', () => {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
||||
import { PayloadAction, createSlice } from '@reduxjs/toolkit';
|
||||
|
||||
import { dateTime } from '@grafana/data';
|
||||
import {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { AlertRulesState, StoreState } from 'app/types';
|
||||
|
||||
import { getSearchQuery, getAlertRuleItems } from './selectors';
|
||||
import { getAlertRuleItems, getSearchQuery } from './selectors';
|
||||
|
||||
describe('Get search query', () => {
|
||||
it('should get search query', () => {
|
||||
|
|
|
@ -8,11 +8,11 @@ import { AccessControlAction } from 'app/types';
|
|||
import AlertGroups from './AlertGroups';
|
||||
import { fetchAlertGroups } from './api/alertmanager';
|
||||
import {
|
||||
MockDataSourceSrv,
|
||||
grantUserPermissions,
|
||||
mockAlertGroup,
|
||||
mockAlertmanagerAlert,
|
||||
mockDataSource,
|
||||
MockDataSourceSrv,
|
||||
} from './mocks';
|
||||
import { AlertmanagerProvider } from './state/AlertmanagerContext';
|
||||
import { DataSourceType } from './utils/datasource';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Fragment, useEffect } from 'react';
|
||||
|
||||
import { Alert, LoadingPlaceholder, Text, Box } from '@grafana/ui';
|
||||
import { Alert, Box, LoadingPlaceholder, Text } from '@grafana/ui';
|
||||
import { useQueryParams } from 'app/core/hooks/useQueryParams';
|
||||
import { useDispatch } from 'app/types';
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useEffect, useState } from 'react';
|
|||
import { useDebounce } from 'react-use';
|
||||
|
||||
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
|
||||
import { Card, FilterInput, Icon, Pagination, Select, TagList, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Card, FilterInput, Icon, Pagination, Select, Stack, TagList, useStyles2 } from '@grafana/ui';
|
||||
import { DEFAULT_PER_PAGE_PAGINATION } from 'app/core/constants';
|
||||
import { getQueryParamValue } from 'app/core/utils/query';
|
||||
import { FolderState, useDispatch } from 'app/types';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { dateTime } from '@grafana/data';
|
||||
import { getBackendSrv } from '@grafana/runtime';
|
||||
|
||||
import { isNewUser, USER_CREATION_MIN_DAYS } from './Analytics';
|
||||
import { USER_CREATION_MIN_DAYS, isNewUser } from './Analytics';
|
||||
|
||||
jest.mock('@grafana/runtime', () => ({
|
||||
...jest.requireActual('@grafana/runtime'),
|
||||
|
|
|
@ -9,7 +9,7 @@ import { RuleNamespace } from '../../../types/unified-alerting';
|
|||
import { RulerRulesConfigDTO } from '../../../types/unified-alerting-dto';
|
||||
|
||||
import { FilterType } from './components/rules/central-state-history/EventListSceneObject';
|
||||
import { getSearchFilterFromQuery, RulesFilter } from './search/rulesSearchParser';
|
||||
import { RulesFilter, getSearchFilterFromQuery } from './search/rulesSearchParser';
|
||||
import { RuleFormType } from './types/rule-form';
|
||||
|
||||
export const USER_CREATION_MIN_DAYS = 7;
|
||||
|
|
|
@ -14,13 +14,13 @@ import {
|
|||
RulerRuleDTO,
|
||||
} from '../../../types/unified-alerting-dto';
|
||||
|
||||
import { cloneRuleDefinition, CloneRuleEditor } from './CloneRuleEditor';
|
||||
import { CloneRuleEditor, cloneRuleDefinition } from './CloneRuleEditor';
|
||||
import { ExpressionEditorProps } from './components/rule-editor/ExpressionEditor';
|
||||
import { mockFeatureDiscoveryApi, setupMswServer } from './mockApi';
|
||||
import {
|
||||
MockDataSourceSrv,
|
||||
grantUserPermissions,
|
||||
mockDataSource,
|
||||
MockDataSourceSrv,
|
||||
mockRulerAlertingRule,
|
||||
mockRulerGrafanaRule,
|
||||
mockRulerRuleGroup,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { render, waitFor, screen } from 'test/test-utils';
|
||||
import { render, screen, waitFor } from 'test/test-utils';
|
||||
|
||||
import { DataSourceRef } from '@grafana/schema';
|
||||
import { AlertQuery } from 'app/types/unified-alerting-dto';
|
||||
|
|
|
@ -12,10 +12,10 @@ import { CombinedRule } from 'app/types/unified-alerting';
|
|||
import { AlertDataQuery, AlertQuery } from '../../../types/unified-alerting-dto';
|
||||
import { isExpressionQuery } from '../../expressions/guards';
|
||||
import {
|
||||
downsamplingTypes,
|
||||
ExpressionQuery,
|
||||
ExpressionQueryType,
|
||||
ReducerMode,
|
||||
downsamplingTypes,
|
||||
reducerModes,
|
||||
reducerTypes,
|
||||
thresholdFunctions,
|
||||
|
@ -26,7 +26,7 @@ import alertDef, { EvalFunction } from '../state/alertDef';
|
|||
import { Spacer } from './components/Spacer';
|
||||
import { WithReturnButton } from './components/WithReturnButton';
|
||||
import { ExpressionResult } from './components/expressions/Expression';
|
||||
import { getThresholdsForQueries, ThresholdDefinition } from './components/rule-editor/util';
|
||||
import { ThresholdDefinition, getThresholdsForQueries } from './components/rule-editor/util';
|
||||
import { RuleViewerVisualization } from './components/rule-viewer/RuleViewerVisualization';
|
||||
import { DatasourceModelPreview } from './components/rule-viewer/tabs/Query/DataSourceModelPreview';
|
||||
import { AlertRuleAction, useAlertRuleAbility } from './hooks/useAbilities';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { InitialEntry } from 'history';
|
||||
import { last } from 'lodash';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { render, within, userEvent, screen } from 'test/test-utils';
|
||||
import { render, screen, userEvent, within } from 'test/test-utils';
|
||||
import { byTestId } from 'testing-library-selector';
|
||||
|
||||
import { config } from '@grafana/runtime';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { selectOptionInTest } from 'test/helpers/selectOptionInTest';
|
||||
import { render, screen, waitFor, userEvent } from 'test/test-utils';
|
||||
import { render, screen, userEvent, waitFor } from 'test/test-utils';
|
||||
|
||||
import {
|
||||
PROVISIONED_MIMIR_ALERTMANAGER_UID,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { lazy, Suspense } from 'react';
|
||||
import { Suspense, lazy } from 'react';
|
||||
|
||||
import { config } from '@grafana/runtime';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Routes, Route } from 'react-router-dom-v5-compat';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
|
||||
import { withErrorBoundary } from '@grafana/ui';
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ import {
|
|||
|
||||
import { ExportFormats } from '../components/export/providers';
|
||||
import { Folder } from '../types/rule-form';
|
||||
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME, isGrafanaRulesSource } from '../utils/datasource';
|
||||
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid, isGrafanaRulesSource } from '../utils/datasource';
|
||||
import { arrayKeyValuesToObject } from '../utils/labels';
|
||||
import { isCloudRuleIdentifier, isGrafanaRulerRule, isPrometheusRuleIdentifier } from '../utils/rules';
|
||||
|
||||
import { alertingApi, WithNotificationOptions } from './alertingApi';
|
||||
import { WithNotificationOptions, alertingApi } from './alertingApi';
|
||||
import {
|
||||
FetchPromRulesFilter,
|
||||
getRulesFilterSearchParams,
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
TestReceiversResult,
|
||||
} from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
|
||||
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
|
||||
|
||||
// "grafana" for grafana-managed, otherwise a datasource name
|
||||
export async function fetchAlertManagerConfig(alertManagerSourceName: string): Promise<AlertManagerCortexConfig> {
|
||||
|
|
|
@ -9,7 +9,7 @@ import {
|
|||
} from 'app/types/unified-alerting-dto';
|
||||
|
||||
import { RULER_NOT_SUPPORTED_MSG } from '../utils/constants';
|
||||
import { getDataSourceByName, getRulesDataSourceByUID, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
|
||||
import { GRAFANA_RULES_SOURCE_NAME, getDataSourceByName, getRulesDataSourceByUID } from '../utils/datasource';
|
||||
|
||||
import { fetchRules } from './prometheus';
|
||||
import { fetchTestRulerRulesGroup } from './ruler';
|
||||
|
|
|
@ -6,9 +6,9 @@ import {
|
|||
RulesSourceApplication,
|
||||
} from '../../../../types/unified-alerting-dto';
|
||||
import {
|
||||
GRAFANA_RULES_SOURCE_NAME,
|
||||
getDataSourceUID,
|
||||
getRulesDataSourceByUID,
|
||||
GRAFANA_RULES_SOURCE_NAME,
|
||||
isGrafanaRulesSource,
|
||||
} from '../utils/datasource';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { lastValueFrom } from 'rxjs';
|
||||
|
||||
import { getBackendSrv } from '@grafana/runtime';
|
||||
import { ContactPointsState, ReceiversStateDTO, ReceiverState } from 'app/types';
|
||||
import { ContactPointsState, ReceiverState, ReceiversStateDTO } from 'app/types';
|
||||
|
||||
import { getDatasourceAPIUid } from '../utils/datasource';
|
||||
|
||||
|
|
|
@ -2,20 +2,20 @@ import { Observable, of } from 'rxjs';
|
|||
import { catchError, map, share } from 'rxjs/operators';
|
||||
|
||||
import {
|
||||
dataFrameFromJSON,
|
||||
DataFrameJSON,
|
||||
getDefaultTimeRange,
|
||||
LoadingState,
|
||||
PanelData,
|
||||
dataFrameFromJSON,
|
||||
getDefaultTimeRange,
|
||||
withLoadingIndicator,
|
||||
} from '@grafana/data';
|
||||
import { getBackendSrv, toDataQueryError } from '@grafana/runtime';
|
||||
|
||||
import {
|
||||
isCloudPreviewRequest,
|
||||
isGrafanaPreviewRequest,
|
||||
PreviewRuleRequest,
|
||||
PreviewRuleResponse,
|
||||
isCloudPreviewRequest,
|
||||
isGrafanaPreviewRequest,
|
||||
} from '../types/preview';
|
||||
import { RuleFormType } from '../types/rule-form';
|
||||
import { GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
|
||||
|
|
|
@ -7,11 +7,11 @@ import { RuleGroup, RuleIdentifier, RuleNamespace } from 'app/types/unified-aler
|
|||
import {
|
||||
PromAlertingRuleState,
|
||||
PromRuleGroupDTO,
|
||||
PromRulesResponse,
|
||||
PromRuleType,
|
||||
PromRulesResponse,
|
||||
} from 'app/types/unified-alerting-dto';
|
||||
|
||||
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
|
||||
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
|
||||
import { isCloudRuleIdentifier, isPrometheusRuleIdentifier } from '../utils/rules';
|
||||
|
||||
export interface FetchPromRulesFilter {
|
||||
|
|
|
@ -7,7 +7,7 @@ import { RulerRuleGroupDTO, RulerRulesConfigDTO } from 'app/types/unified-alerti
|
|||
|
||||
import { containsPathSeparator } from '../components/rule-editor/util';
|
||||
import { RULER_NOT_SUPPORTED_MSG } from '../utils/constants';
|
||||
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
|
||||
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
|
||||
|
||||
import { getRulesFilterSearchParams } from './prometheus';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { forwardRef, FC } from 'react';
|
||||
import { createFilter, GroupBase, OptionsOrGroups } from 'react-select';
|
||||
import { FC, forwardRef } from 'react';
|
||||
import { GroupBase, OptionsOrGroups, createFilter } from 'react-select';
|
||||
|
||||
import { SelectableValue } from '@grafana/data';
|
||||
import { Field, Select, useStyles2 } from '@grafana/ui';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { screen, render, waitFor } from '@testing-library/react';
|
||||
import { render, screen, waitFor } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
|
||||
import { AlertLabels } from './AlertLabels';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { useMemo, ComponentProps } from 'react';
|
||||
import { ComponentProps, useMemo } from 'react';
|
||||
|
||||
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
|
||||
import { InlineField, Select, SelectMenuOptions, useStyles2 } from '@grafana/ui';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { HTMLAttributes } from 'react';
|
||||
|
||||
import { IconSize, Button } from '@grafana/ui';
|
||||
import { Button, IconSize } from '@grafana/ui';
|
||||
|
||||
interface Props extends HTMLAttributes<HTMLButtonElement> {
|
||||
isCollapsed: boolean;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { cloneElement, forwardRef, Ref } from 'react';
|
||||
import { Ref, cloneElement, forwardRef } from 'react';
|
||||
|
||||
interface ConditionalWrapProps {
|
||||
shouldWrap: boolean;
|
||||
|
|
|
@ -5,7 +5,7 @@ import { Editor } from 'slate-react';
|
|||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { promqlGrammar } from '@grafana/prometheus';
|
||||
import { makeValue, SlatePrism, useStyles2 } from '@grafana/ui';
|
||||
import { SlatePrism, makeValue, useStyles2 } from '@grafana/ui';
|
||||
import LogqlSyntax from 'app/plugins/datasource/loki/syntax';
|
||||
import { RulesSource } from 'app/types/unified-alerting';
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { Placement } from '@popperjs/core';
|
||||
import classnames from 'classnames';
|
||||
import { cloneElement, ReactElement, ReactNode, useRef } from 'react';
|
||||
import { ReactElement, ReactNode, cloneElement, useRef } from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Popover as GrafanaPopover, PopoverController, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Popover as GrafanaPopover, PopoverController, Stack, useStyles2 } from '@grafana/ui';
|
||||
|
||||
export interface PopupCardProps {
|
||||
children: ReactElement;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { css, cx } from '@emotion/css';
|
||||
import { ComponentProps, HTMLAttributes } from 'react';
|
||||
|
||||
import { Icon, IconName, useStyles2, Text, Stack } from '@grafana/ui';
|
||||
import { Icon, IconName, Stack, Text, useStyles2 } from '@grafana/ui';
|
||||
|
||||
interface Props extends HTMLAttributes<HTMLDivElement> {
|
||||
icon?: IconName;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { forwardRef, Ref } from 'react';
|
||||
import { Ref, forwardRef } from 'react';
|
||||
|
||||
import { Button, ButtonProps, Icon, Stack } from '@grafana/ui';
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { screen, render } from 'test/test-utils';
|
||||
import { render, screen } from 'test/test-utils';
|
||||
|
||||
import { setupMswServer } from 'app/features/alerting/unified/mockApi';
|
||||
|
||||
import { SupportedPlugin } from '../types/pluginBridges';
|
||||
|
||||
import { createBridgeURL, PluginBridge } from './PluginBridge';
|
||||
import { PluginBridge, createBridgeURL } from './PluginBridge';
|
||||
const NON_EXISTING_PLUGIN = '__does_not_exist__';
|
||||
setupMswServer();
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import { GrafanaTheme2 } from '@grafana/data';
|
|||
import { Badge, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { PopupCard } from './HoverCard';
|
||||
import { keywords as KEYWORDS, builtinFunctions as FUNCTIONS } from './receivers/editor/language';
|
||||
import { builtinFunctions as FUNCTIONS, keywords as KEYWORDS } from './receivers/editor/language';
|
||||
|
||||
const VARIABLES = ['$', '.', '"'];
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { cx, css } from '@emotion/css';
|
||||
import { css, cx } from '@emotion/css';
|
||||
import * as React from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
|
|
|
@ -3,7 +3,7 @@ import { css } from '@emotion/css';
|
|||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { LinkButton, useStyles2 } from '@grafana/ui';
|
||||
import { contextSrv } from 'app/core/services/context_srv';
|
||||
import { AlertmanagerAlert, AlertState } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { AlertState, AlertmanagerAlert } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { AccessControlAction } from 'app/types';
|
||||
|
||||
import { AlertmanagerAction } from '../../hooks/useAbilities';
|
||||
|
|
|
@ -2,7 +2,7 @@ import { css } from '@emotion/css';
|
|||
import { useState } from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { useStyles2, Stack, TextLink } from '@grafana/ui';
|
||||
import { Stack, TextLink, useStyles2 } from '@grafana/ui';
|
||||
import { AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { createContactPointSearchLink } from '../../utils/misc';
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useState } from 'react';
|
|||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Button, useStyles2 } from '@grafana/ui';
|
||||
import { useQueryParams } from 'app/core/hooks/useQueryParams';
|
||||
import { AlertmanagerGroup, AlertState } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { AlertState, AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { getFiltersFromUrlParams } from '../../utils/misc';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import pluralize from 'pluralize';
|
||||
|
||||
import { useStyles2 } from '@grafana/ui';
|
||||
import { AlertmanagerGroup, AlertState } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { AlertState, AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { getNotificationsTextColors } from '../../styles/notifications';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { SelectableValue } from '@grafana/data';
|
||||
import { RadioButtonGroup, Label, Tooltip, Icon } from '@grafana/ui';
|
||||
import { Icon, Label, RadioButtonGroup, Tooltip } from '@grafana/ui';
|
||||
import { AlertState } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
interface Props {
|
||||
|
|
|
@ -5,7 +5,7 @@ import { useDebounce } from 'react-use';
|
|||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Field, Icon, Input, Label, Stack, Tooltip, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { logInfo, LogMessages } from '../../Analytics';
|
||||
import { LogMessages, logInfo } from '../../Analytics';
|
||||
import { parsePromQLStyleMatcherLoose } from '../../utils/matchers';
|
||||
|
||||
interface Props {
|
||||
|
|
|
@ -2,7 +2,7 @@ import { css } from '@emotion/css';
|
|||
import { groupBy, size, upperFirst } from 'lodash';
|
||||
import { Fragment, ReactNode } from 'react';
|
||||
|
||||
import { dateTime, GrafanaTheme2 } from '@grafana/data';
|
||||
import { GrafanaTheme2, dateTime } from '@grafana/data';
|
||||
import { Icon, Stack, Text, Tooltip, useStyles2 } from '@grafana/ui';
|
||||
import { Trans } from 'app/core/internationalization';
|
||||
import { PrimaryText } from 'app/features/alerting/unified/components/common/TextVariants';
|
||||
|
@ -19,7 +19,7 @@ import { ReceiverMetadataBadge } from '../receivers/grafanaAppReceivers/Receiver
|
|||
import { ReceiverPluginMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
|
||||
|
||||
import { RECEIVER_META_KEY, RECEIVER_PLUGIN_META_KEY, RECEIVER_STATUS_KEY } from './constants';
|
||||
import { ContactPointWithMetadata, getReceiverDescription, ReceiverConfigWithMetadata } from './utils';
|
||||
import { ContactPointWithMetadata, ReceiverConfigWithMetadata, getReceiverDescription } from './utils';
|
||||
|
||||
interface ContactPointProps {
|
||||
contactPoint: ContactPointWithMetadata;
|
||||
|
|
|
@ -3,7 +3,7 @@ import { Fragment, useState } from 'react';
|
|||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Dropdown, LinkButton, Menu, Stack, Text, TextLink, Tooltip, useStyles2 } from '@grafana/ui';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
import ConditionalWrap from 'app/features/alerting/unified/components/ConditionalWrap';
|
||||
import { useExportContactPoint } from 'app/features/alerting/unified/components/contact-points/useExportContactPoint';
|
||||
import { ManagePermissionsDrawer } from 'app/features/alerting/unified/components/permissions/ManagePermissions';
|
||||
|
|
|
@ -15,7 +15,7 @@ import {
|
|||
withErrorBoundary,
|
||||
} from '@grafana/ui';
|
||||
import { contextSrv } from 'app/core/core';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
import { shouldUseK8sApi } from 'app/features/alerting/unified/utils/k8s/utils';
|
||||
import { makeAMLink, stringifyErrorLike } from 'app/features/alerting/unified/utils/misc';
|
||||
import { AccessControlAction } from 'app/types';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import 'core-js/stable/structured-clone';
|
||||
import { Routes, Route } from 'react-router-dom-v5-compat';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { clickSelectOption } from 'test/helpers/selectOptionInTest';
|
||||
import { render, screen } from 'test/test-utils';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { http, HttpResponse } from 'msw';
|
||||
import { HttpResponse, http } from 'msw';
|
||||
import { SetupServer } from 'msw/node';
|
||||
|
||||
import { AlertManagerCortexConfig } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { http, HttpResponse } from 'msw';
|
||||
import { HttpResponse, http } from 'msw';
|
||||
import { SetupServer } from 'msw/node';
|
||||
|
||||
import { AlertmanagerStatus } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
|
|
@ -17,7 +17,7 @@ import { OnCallIntegrationDTO } from '../../api/onCallApi';
|
|||
import { computeInheritedTree } from '../../utils/notification-policies';
|
||||
import { extractReceivers } from '../../utils/receivers';
|
||||
import { ReceiverTypes } from '../receivers/grafanaAppReceivers/onCall/onCall';
|
||||
import { getOnCallMetadata, ReceiverPluginMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
|
||||
import { ReceiverPluginMetadata, getOnCallMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
|
||||
|
||||
import { RECEIVER_META_KEY, RECEIVER_PLUGIN_META_KEY, RECEIVER_STATUS_KEY } from './constants';
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import AutoSizer from 'react-virtualized-auto-sizer';
|
|||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Alert, Button, ClipboardButton, CodeEditor, TextLink, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { allGrafanaExportProviders, ExportFormats, ExportProvider, ProvisioningType } from './providers';
|
||||
import { ExportFormats, ExportProvider, ProvisioningType, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface FileExportPreviewProps {
|
||||
format: ExportFormats;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import * as React from 'react';
|
||||
import { Routes, Route } from 'react-router-dom-v5-compat';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { Props } from 'react-virtualized-auto-sizer';
|
||||
import { render, waitFor, waitForElementToBeRemoved, userEvent } from 'test/test-utils';
|
||||
import { render, userEvent, waitFor, waitForElementToBeRemoved } from 'test/test-utils';
|
||||
import { byRole, byTestId, byText } from 'testing-library-selector';
|
||||
|
||||
import { mockExportApi, setupMswServer } from '../../mockApi';
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
interface MuteTimingsExporterPreviewProps {
|
||||
exportFormat: ExportFormats;
|
||||
onClose: () => void;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
interface GrafanaPoliciesPreviewProps {
|
||||
exportFormat: ExportFormats;
|
||||
onClose: () => void;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaReceiverExportPreviewProps {
|
||||
exportFormat: ExportFormats;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaReceiversExportPreviewProps {
|
||||
exportFormat: ExportFormats;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaRuleExportPreviewProps {
|
||||
alertUid: string;
|
||||
|
|
|
@ -7,7 +7,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaRuleFolderExporterProps {
|
||||
folder: FolderDTO;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaRuleGroupExporterProps {
|
||||
folderUid: string;
|
||||
|
|
|
@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
|
|||
|
||||
import { FileExportPreview } from './FileExportPreview';
|
||||
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
|
||||
import { allGrafanaExportProviders, ExportFormats } from './providers';
|
||||
import { ExportFormats, allGrafanaExportProviders } from './providers';
|
||||
|
||||
interface GrafanaRulesExporterProps {
|
||||
onClose: () => void;
|
||||
|
|
|
@ -3,8 +3,8 @@ import { uniqueId } from 'lodash';
|
|||
import { FC, useCallback, useState } from 'react';
|
||||
import { useFormContext } from 'react-hook-form';
|
||||
|
||||
import { DataFrame, dateTimeFormat, GrafanaTheme2, isTimeSeriesFrames, LoadingState, PanelData } from '@grafana/data';
|
||||
import { Alert, AutoSizeInput, Button, clearButtonStyles, IconButton, Stack, Text, useStyles2 } from '@grafana/ui';
|
||||
import { DataFrame, GrafanaTheme2, LoadingState, PanelData, dateTimeFormat, isTimeSeriesFrames } from '@grafana/data';
|
||||
import { Alert, AutoSizeInput, Button, IconButton, Stack, Text, clearButtonStyles, useStyles2 } from '@grafana/ui';
|
||||
import { ClassicConditions } from 'app/features/expressions/components/ClassicConditions';
|
||||
import { Math } from 'app/features/expressions/components/Math';
|
||||
import { Reduce } from 'app/features/expressions/components/Reduce';
|
||||
|
|
|
@ -8,7 +8,7 @@ import { Button, Field, FieldSet, Icon, InlineSwitch, Input, Stack, useStyles2 }
|
|||
|
||||
import { useAlertmanager } from '../../state/AlertmanagerContext';
|
||||
import { MuteTimingFields } from '../../types/mute-timing-form';
|
||||
import { DAYS_OF_THE_WEEK, defaultTimeInterval, MONTHS, validateArrayField } from '../../utils/mute-timings';
|
||||
import { DAYS_OF_THE_WEEK, MONTHS, defaultTimeInterval, validateArrayField } from '../../utils/mute-timings';
|
||||
|
||||
import { MuteTimingTimeRange } from './MuteTimingTimeRange';
|
||||
import { TimezoneSelect } from './timezones';
|
||||
|
|
|
@ -2,7 +2,7 @@ import { css, cx, keyframes } from '@emotion/css';
|
|||
import { useMemo, useState } from 'react';
|
||||
|
||||
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
|
||||
import { Select, SelectCommonProps, Stack, Alert, IconButton, Text, useStyles2 } from '@grafana/ui';
|
||||
import { Alert, IconButton, Select, SelectCommonProps, Stack, Text, useStyles2 } from '@grafana/ui';
|
||||
import { ContactPointReceiverSummary } from 'app/features/alerting/unified/components/contact-points/ContactPoint';
|
||||
import { useAlertmanager } from 'app/features/alerting/unified/state/AlertmanagerContext';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { ReactNode, useState } from 'react';
|
||||
import { useForm, Controller } from 'react-hook-form';
|
||||
import { Controller, useForm } from 'react-hook-form';
|
||||
|
||||
import { Collapse, Field, Link, MultiSelect, useStyles2 } from '@grafana/ui';
|
||||
import { ContactPointSelector } from 'app/features/alerting/unified/components/notification-policies/ContactPointSelector';
|
||||
|
@ -13,8 +13,8 @@ import {
|
|||
mapMultiSelectValueToStrings,
|
||||
promDurationValidator,
|
||||
repeatIntervalValidator,
|
||||
stringsToSelectableValues,
|
||||
stringToSelectableValue,
|
||||
stringsToSelectableValues,
|
||||
} from '../../utils/amroutes';
|
||||
import { makeAMLink } from '../../utils/misc';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { ReactNode, useState } from 'react';
|
||||
import { useForm, Controller, useFieldArray } from 'react-hook-form';
|
||||
import { Controller, useFieldArray, useForm } from 'react-hook-form';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { take, takeRight, uniqueId } from 'lodash';
|
|||
import { FC } from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { getTagColorsFromName, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Stack, getTagColorsFromName, useStyles2 } from '@grafana/ui';
|
||||
import { ObjectMatcher } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { MatcherFormatter, matcherFormatter } from '../../utils/matchers';
|
||||
|
|
|
@ -3,7 +3,7 @@ import { FC, useCallback, useMemo, useState } from 'react';
|
|||
|
||||
import { Button, Icon, Modal, ModalProps, Spinner, Stack } from '@grafana/ui';
|
||||
import { Trans } from 'app/core/internationalization';
|
||||
import { AlertmanagerGroup, AlertState, ObjectMatcher, RouteWithID } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { AlertState, AlertmanagerGroup, ObjectMatcher, RouteWithID } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
import { FormAmRoute } from '../../types/amroutes';
|
||||
import { MatcherFormatter } from '../../utils/matchers';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { renderHook, screen, within } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { first, noop } from 'lodash';
|
||||
import { Routes, Route } from 'react-router-dom-v5-compat';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { render } from 'test/test-utils';
|
||||
|
||||
import { config } from '@grafana/runtime';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Alert } from '@grafana/ui';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
|
||||
import { stringifyErrorLike } from '../../utils/misc';
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
|
|||
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
|
||||
import { useSelector } from 'app/types';
|
||||
|
||||
import { logInfo, LogMessages } from '../../Analytics';
|
||||
import { LogMessages, logInfo } from '../../Analytics';
|
||||
import { panelToRuleFormValues } from '../../utils/rule-form';
|
||||
|
||||
interface Props {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { useState, ComponentProps } from 'react';
|
||||
import { ComponentProps, useState } from 'react';
|
||||
|
||||
import { Button, Drawer } from '@grafana/ui';
|
||||
import { Permissions } from 'app/core/components/AccessControl';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
|
||||
type ButtonProps = { onClick: () => void };
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ import { FixedSizeList } from 'react-window';
|
|||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import {
|
||||
Button,
|
||||
clearButtonStyles,
|
||||
FilterInput,
|
||||
Icon,
|
||||
LoadingPlaceholder,
|
||||
Modal,
|
||||
Tooltip,
|
||||
useStyles2,
|
||||
Icon,
|
||||
Tag,
|
||||
Tooltip,
|
||||
clearButtonStyles,
|
||||
useStyles2,
|
||||
} from '@grafana/ui';
|
||||
import { AlertmanagerAlert, TestTemplateAlert } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { useForm, FormProvider } from 'react-hook-form';
|
||||
import { FormProvider, useForm } from 'react-hook-form';
|
||||
|
||||
import { Alert, Button, Stack, LinkButton } from '@grafana/ui';
|
||||
import { Alert, Button, LinkButton, Stack } from '@grafana/ui';
|
||||
import { useCleanup } from 'app/core/hooks/useCleanup';
|
||||
import { AlertManagerCortexConfig } from 'app/plugins/datasource/alertmanager/types';
|
||||
import { useDispatch } from 'app/types';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Routes, Route } from 'react-router-dom-v5-compat';
|
||||
import { Route, Routes } from 'react-router-dom-v5-compat';
|
||||
import { render, screen } from 'test/test-utils';
|
||||
import { byLabelText, byPlaceholderText, byRole, byTestId } from 'testing-library-selector';
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import { Link } from 'react-router-dom-v5-compat';
|
|||
import { useToggle } from 'react-use';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Button, Dropdown, Icon, Menu, MenuItem, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Button, Dropdown, Icon, Menu, MenuItem, Stack, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { GrafanaReceiversExporter } from '../export/GrafanaReceiversExporter';
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import { css } from '@emotion/css';
|
|||
import * as React from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { useStyles2, Stack } from '@grafana/ui';
|
||||
import { Stack, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { PopupCard } from '../HoverCard';
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* It includes auto-complete for template data and syntax highlighting
|
||||
*/
|
||||
import { editor, IDisposable } from 'monaco-editor';
|
||||
import { IDisposable, editor } from 'monaco-editor';
|
||||
import { useEffect, useRef } from 'react';
|
||||
|
||||
import { CodeEditor } from '@grafana/ui';
|
||||
|
|
|
@ -26,7 +26,7 @@ import {
|
|||
} from '@grafana/ui';
|
||||
import { useAppNotification } from 'app/core/copy/appNotification';
|
||||
import { useCleanup } from 'app/core/hooks/useCleanup';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
import { ActiveTab as ContactPointsActiveTabs } from 'app/features/alerting/unified/components/contact-points/ContactPoints';
|
||||
import { TestTemplateAlert } from 'app/plugins/datasource/alertmanager/types';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { default as React } from 'react';
|
||||
import { FormProvider, useForm } from 'react-hook-form';
|
||||
import { Provider } from 'react-redux';
|
||||
import { screen, render, waitFor } from 'test/test-utils';
|
||||
import { render, screen, waitFor } from 'test/test-utils';
|
||||
import { byRole } from 'testing-library-selector';
|
||||
|
||||
import { Components } from '@grafana/e2e-selectors';
|
||||
|
@ -10,12 +10,12 @@ import { configureStore } from 'app/store/configureStore';
|
|||
|
||||
import { TemplatePreviewResponse } from '../../api/templateApi';
|
||||
import {
|
||||
REJECTED_PREVIEW_RESPONSE,
|
||||
mockPreviewTemplateResponse,
|
||||
mockPreviewTemplateResponseRejected,
|
||||
REJECTED_PREVIEW_RESPONSE,
|
||||
} from '../../mocks/templatesApi';
|
||||
|
||||
import { defaults, TemplateFormValues } from './TemplateForm';
|
||||
import { TemplateFormValues, defaults } from './TemplateForm';
|
||||
import { TemplatePreview } from './TemplatePreview';
|
||||
|
||||
jest.mock(
|
||||
|
|
|
@ -3,7 +3,7 @@ import { Fragment, useState } from 'react';
|
|||
import { logError } from '@grafana/runtime';
|
||||
import { Badge, ConfirmModal, Tooltip, useStyles2 } from '@grafana/ui';
|
||||
import { useAppNotification } from 'app/core/copy/appNotification';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
import { CodeText } from 'app/features/alerting/unified/components/common/TextVariants';
|
||||
import { GRAFANA_RULES_SOURCE_NAME } from 'app/features/alerting/unified/utils/datasource';
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import { concat } from 'lodash';
|
||||
import type { languages, editor, Position, IRange, IDisposable } from 'monaco-editor/esm/vs/editor/editor.api';
|
||||
import type { IDisposable, IRange, Position, editor, languages } from 'monaco-editor/esm/vs/editor/editor.api';
|
||||
|
||||
import type { Monaco } from '@grafana/ui';
|
||||
|
||||
import { getAlertManagerSuggestions } from './alertManagerSuggestions';
|
||||
import { SuggestionDefinition } from './suggestionDefinition';
|
||||
import {
|
||||
getAlertsSuggestions,
|
||||
getAlertSuggestions,
|
||||
getAlertsSuggestions,
|
||||
getGlobalSuggestions,
|
||||
getKeyValueSuggestions,
|
||||
getSnippetsSuggestions,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { FieldError, DeepMap, useFormContext } from 'react-hook-form';
|
||||
import { DeepMap, FieldError, useFormContext } from 'react-hook-form';
|
||||
|
||||
import { Button, useStyles2 } from '@grafana/ui';
|
||||
import { useControlledFieldArray } from 'app/features/alerting/unified/hooks/useControlledFieldArray';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { useState } from 'react';
|
||||
import { FieldError, DeepMap, useFormContext } from 'react-hook-form';
|
||||
import { DeepMap, FieldError, useFormContext } from 'react-hook-form';
|
||||
|
||||
import { Button, useStyles2 } from '@grafana/ui';
|
||||
import { NotificationChannelOption, NotificationChannelSecureFields } from 'app/types';
|
||||
|
|
|
@ -12,7 +12,7 @@ import { PROVENANCE_NONE } from 'app/features/alerting/unified/utils/k8s/constan
|
|||
import { DEFAULT_TEMPLATES } from 'app/features/alerting/unified/utils/template-constants';
|
||||
import { AccessControlAction, NotificationChannelOption } from 'app/types';
|
||||
|
||||
import { getTemplateOptions, TemplatesPicker } from './TemplateSelector';
|
||||
import { TemplatesPicker, getTemplateOptions } from './TemplateSelector';
|
||||
import { parseTemplates } from './utils';
|
||||
|
||||
const alertmanagerConfigMock = getAlertmanagerConfig(GRAFANA_RULES_SOURCE_NAME);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { css } from '@emotion/css';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Icon, LinkButton, Tooltip, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Icon, LinkButton, Stack, Tooltip, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { ReceiverPluginMetadata } from './useReceiversMetadata';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { renderHook, waitFor, getWrapper } from 'test/test-utils';
|
||||
import { getWrapper, renderHook, waitFor } from 'test/test-utils';
|
||||
|
||||
import { setupMswServer } from 'app/features/alerting/unified/mockApi';
|
||||
import { disablePlugin } from 'app/features/alerting/unified/mocks/server/configure';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { FieldArrayWithId, useFormContext, Controller } from 'react-hook-form';
|
||||
import { Controller, FieldArrayWithId, useFormContext } from 'react-hook-form';
|
||||
|
||||
import { Text, Stack } from '@grafana/ui';
|
||||
import { Stack, Text } from '@grafana/ui';
|
||||
|
||||
import { RuleFormValues } from '../../types/rule-form';
|
||||
import { Annotation, annotationDescriptions, annotationLabels } from '../../utils/constants';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import userEvent from '@testing-library/user-event';
|
||||
import { FormProvider, useForm } from 'react-hook-form';
|
||||
import { screen, render, within } from 'test/test-utils';
|
||||
import { render, screen, within } from 'test/test-utils';
|
||||
import { byRole, byTestId } from 'testing-library-selector';
|
||||
|
||||
import { DashboardSearchItemType } from '../../../../search/types';
|
||||
|
|
|
@ -6,7 +6,7 @@ import { useToggle } from 'react-use';
|
|||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Button, Field, Input, Stack, Text, TextArea, useStyles2 } from '@grafana/ui';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
|
||||
import { DashboardModel } from '../../../../dashboard/state/DashboardModel';
|
||||
import { RuleFormValues } from '../../types/rule-form';
|
||||
|
@ -15,7 +15,7 @@ import { isGrafanaManagedRuleByType } from '../../utils/rules';
|
|||
|
||||
import AnnotationHeaderField from './AnnotationHeaderField';
|
||||
import DashboardAnnotationField from './DashboardAnnotationField';
|
||||
import { DashboardPicker, getVisualPanels, PanelDTO } from './DashboardPicker';
|
||||
import { DashboardPicker, PanelDTO, getVisualPanels } from './DashboardPicker';
|
||||
import { NeedHelpInfo } from './NeedHelpInfo';
|
||||
import { RuleEditorSection } from './RuleEditorSection';
|
||||
import { useDashboardQuery } from './useDashboardQuery';
|
||||
|
|
|
@ -9,12 +9,12 @@ import { GrafanaTheme2 } from '@grafana/data/src';
|
|||
import {
|
||||
Alert,
|
||||
Button,
|
||||
clearButtonStyles,
|
||||
FilterInput,
|
||||
Icon,
|
||||
LoadingPlaceholder,
|
||||
Modal,
|
||||
Tooltip,
|
||||
clearButtonStyles,
|
||||
useStyles2,
|
||||
} from '@grafana/ui';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { render, screen, userEvent } from 'test/test-utils';
|
||||
|
||||
import { getEvaluationGroupOptions, EvaluationGroupQuickPick } from './EvaluationGroupQuickPick';
|
||||
import { EvaluationGroupQuickPick, getEvaluationGroupOptions } from './EvaluationGroupQuickPick';
|
||||
|
||||
describe('EvaluationGroupQuickPick', () => {
|
||||
it('should render the correct default preset, set active element and allow selecting another option', async () => {
|
||||
|
|
|
@ -21,11 +21,11 @@ import {
|
|||
Tooltip,
|
||||
useStyles2,
|
||||
} from '@grafana/ui';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
import { CombinedRuleGroup, CombinedRuleNamespace } from 'app/types/unified-alerting';
|
||||
import { RulerRuleGroupDTO, RulerRulesConfigDTO } from 'app/types/unified-alerting-dto';
|
||||
|
||||
import { logInfo, LogMessages } from '../../Analytics';
|
||||
import { LogMessages, logInfo } from '../../Analytics';
|
||||
import { alertRuleApi } from '../../api/alertRuleApi';
|
||||
import { GRAFANA_RULER_CONFIG } from '../../api/featureDiscoveryApi';
|
||||
import { useCombinedRuleNamespaces } from '../../hooks/useCombinedRuleNamespaces';
|
||||
|
|
|
@ -2,7 +2,7 @@ import { useState } from 'react';
|
|||
import { useFormContext } from 'react-hook-form';
|
||||
|
||||
import { Stack, Text } from '@grafana/ui';
|
||||
import { t, Trans } from 'app/core/internationalization';
|
||||
import { Trans, t } from 'app/core/internationalization';
|
||||
|
||||
import { KBObjectArray, RuleFormValues } from '../../types/rule-form';
|
||||
import { GRAFANA_RULES_SOURCE_NAME } from '../../utils/datasource';
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { useMemo } from 'react';
|
||||
import { useFormContext, Controller } from 'react-hook-form';
|
||||
import { Controller, useFormContext } from 'react-hook-form';
|
||||
|
||||
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
|
||||
import { Field, useStyles2, VirtualizedSelect } from '@grafana/ui';
|
||||
import { Field, VirtualizedSelect, useStyles2 } from '@grafana/ui';
|
||||
|
||||
import { RuleFormValues } from '../../types/rule-form';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { css } from '@emotion/css';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { Icon, Text, Toggletip, useStyles2, Stack } from '@grafana/ui';
|
||||
import { Icon, Stack, Text, Toggletip, useStyles2 } from '@grafana/ui';
|
||||
|
||||
interface NeedHelpInfoProps {
|
||||
contentText: string | JSX.Element;
|
||||
|
|
|
@ -5,7 +5,7 @@ import { useFormContext } from 'react-hook-form';
|
|||
import { useMountedState } from 'react-use';
|
||||
import { takeWhile } from 'rxjs/operators';
|
||||
|
||||
import { dateTimeFormatISO, GrafanaTheme2, LoadingState } from '@grafana/data';
|
||||
import { GrafanaTheme2, LoadingState, dateTimeFormatISO } from '@grafana/data';
|
||||
import { getDataSourceSrv } from '@grafana/runtime';
|
||||
import { Alert, Button, Stack, useStyles2 } from '@grafana/ui';
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { css } from '@emotion/css';
|
||||
import { useState } from 'react';
|
||||
|
||||
import { dateTime, getDefaultRelativeTimeRange, GrafanaTheme2, RelativeTimeRange } from '@grafana/data';
|
||||
import { GrafanaTheme2, RelativeTimeRange, dateTime, getDefaultRelativeTimeRange } from '@grafana/data';
|
||||
import { relativeToTimeRange } from '@grafana/data/src/datetime/rangeutil';
|
||||
import { clearButtonStyles, Icon, InlineField, RelativeTimeRangePicker, Toggletip, useStyles2 } from '@grafana/ui';
|
||||
import { Icon, InlineField, RelativeTimeRangePicker, Toggletip, clearButtonStyles, useStyles2 } from '@grafana/ui';
|
||||
import { AlertQuery } from 'app/types/unified-alerting-dto';
|
||||
|
||||
import { AlertQueryOptions, MaxDataPointsOption, MinIntervalOption } from './QueryWrapper';
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import { DragDropContext, Droppable, DropResult } from '@hello-pangea/dnd';
|
||||
import { DragDropContext, DropResult, Droppable } from '@hello-pangea/dnd';
|
||||
import { omit } from 'lodash';
|
||||
import { PureComponent, useState } from 'react';
|
||||
|
||||
import {
|
||||
DataQuery,
|
||||
DataSourceInstanceSettings,
|
||||
getDataSourceRef,
|
||||
LoadingState,
|
||||
PanelData,
|
||||
rangeUtil,
|
||||
RelativeTimeRange,
|
||||
getDataSourceRef,
|
||||
rangeUtil,
|
||||
} from '@grafana/data';
|
||||
import { getDataSourceSrv } from '@grafana/runtime';
|
||||
import { Button, Card, Icon, Stack } from '@grafana/ui';
|
||||
|
|
|
@ -2,7 +2,7 @@ import { css } from '@emotion/css';
|
|||
import { FC, useEffect, useState } from 'react';
|
||||
import { useAsync } from 'react-use';
|
||||
|
||||
import { PanelData, CoreApp, GrafanaTheme2, LoadingState } from '@grafana/data';
|
||||
import { CoreApp, GrafanaTheme2, LoadingState, PanelData } from '@grafana/data';
|
||||
import { getDataSourceSrv } from '@grafana/runtime';
|
||||
import { DataQuery } from '@grafana/schema';
|
||||
import { useStyles2 } from '@grafana/ui';
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue