From c2aeb9882d8cb7d4fbc25788dc66d49c086b67af Mon Sep 17 00:00:00 2001 From: Sarah Zinger Date: Mon, 14 Aug 2023 12:18:58 -0400 Subject: [PATCH] Cloudwatch: reorg files in components (#73176) --- .betterer.results | 5 +--- .../cloudwatch/annotationSupport.ts | 2 +- .../AnnotationQueryEditor.test.tsx | 6 ++-- .../AnnotationQueryEditor.tsx | 12 ++++---- .../{ => CheatSheet}/LogsCheatSheet.tsx | 4 +-- .../{ => ConfigEditor}/ConfigEditor.test.tsx | 7 ++--- .../{ => ConfigEditor}/ConfigEditor.tsx | 8 ++--- .../{ => ConfigEditor}/XrayLinkConfig.tsx | 0 .../{ => Errors}/ThrottlingErrorMessage.tsx | 0 .../cloudwatch/components/Forms.tsx | 29 ------------------- .../{ => MetaInspector}/MetaInspector.tsx | 5 ++-- .../LogsQueryEditor}/CloudWatchLink.test.tsx | 8 ++--- .../LogsQueryEditor}/CloudWatchLink.tsx | 6 ++-- .../LogsQueryEditor}/LogsQueryEditor.tsx | 9 +++--- .../LogsQueryEditor}/LogsQueryField.tsx | 15 +++++----- .../LogsQueryEditor/LogsQueryFieldOld.tsx} | 11 ++++--- .../DynamicLabelsField.tsx | 8 ++--- .../MathExpressionQueryField.tsx | 8 ++--- .../MetricsQueryEditor.test.tsx | 6 ++-- .../MetricsQueryEditor/MetricsQueryEditor.tsx | 15 ++++++---- .../SQLBuilderEditor.test.tsx | 9 +++--- .../SQLBuilderEditor/SQLBuilderEditor.tsx | 10 +++---- .../SQLBuilderSelectRow.test.tsx | 6 ++-- .../SQLBuilderEditor/SQLBuilderSelectRow.tsx | 10 +++---- .../SQLBuilderEditor/SQLFilter.tsx | 16 ++++++---- .../SQLBuilderEditor/SQLGroupBy.test.tsx | 6 ++-- .../SQLBuilderEditor/SQLGroupBy.tsx | 12 +++++--- .../SQLBuilderEditor/SQLOrderByGroup.tsx | 8 ++--- .../SQLBuilderEditor/index.tsx | 0 .../SQLBuilderEditor/utils.ts | 6 ++-- .../MetricsQueryEditor}/SQLCodeEditor.tsx | 8 ++--- .../{ => QueryEditor}/QueryEditor.test.tsx | 12 ++++---- .../{ => QueryEditor}/QueryEditor.tsx | 8 ++--- .../{ => QueryEditor}/QueryHeader.test.tsx | 6 ++-- .../{ => QueryEditor}/QueryHeader.tsx | 10 +++---- .../VariableQueryEditor.tsx | 4 +-- .../datasource/cloudwatch/components/index.ts | 7 ----- .../components/{ => shared}/Account.test.tsx | 0 .../components/{ => shared}/Account.tsx | 0 .../Dimensions/Dimensions.test.tsx | 7 +++-- .../{ => shared}/Dimensions/Dimensions.tsx | 4 +-- .../{ => shared}/Dimensions/FilterItem.tsx | 6 ++-- .../LogGroups/LogGroupsField.test.tsx | 2 +- .../{ => shared}/LogGroups/LogGroupsField.tsx | 11 +++---- .../LogGroups/LogGroupsSelector.test.tsx | 2 +- .../LogGroups/LogGroupsSelector.tsx | 9 +++--- .../{ => shared/LogGroups}/Search.test.tsx | 2 +- .../shared/LogGroups}/Search.tsx | 0 .../LogGroups/SelectedLogGroups.test.tsx | 2 +- .../LogGroups/SelectedLogGroups.tsx | 4 +-- .../MetricStatEditor.test.tsx | 9 +++--- .../MetricStatEditor/MetricStatEditor.tsx | 19 ++++++------ .../{ => shared}/MetricStatEditor/index.ts | 0 .../plugins/datasource/cloudwatch/module.tsx | 8 ++--- .../CloudWatchMetricsQueryRunner.ts | 2 +- .../datasource/cloudwatch/variables.ts | 2 +- 56 files changed, 182 insertions(+), 209 deletions(-) rename public/app/plugins/datasource/cloudwatch/components/{ => AnnotationQueryEditor}/AnnotationQueryEditor.test.tsx (94%) rename public/app/plugins/datasource/cloudwatch/components/{ => AnnotationQueryEditor}/AnnotationQueryEditor.tsx (90%) rename public/app/plugins/datasource/cloudwatch/components/{ => CheatSheet}/LogsCheatSheet.tsx (99%) rename public/app/plugins/datasource/cloudwatch/components/{ => ConfigEditor}/ConfigEditor.test.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => ConfigEditor}/ConfigEditor.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => ConfigEditor}/XrayLinkConfig.tsx (100%) rename public/app/plugins/datasource/cloudwatch/components/{ => Errors}/ThrottlingErrorMessage.tsx (100%) delete mode 100644 public/app/plugins/datasource/cloudwatch/components/Forms.tsx rename public/app/plugins/datasource/cloudwatch/components/{ => MetaInspector}/MetaInspector.tsx (86%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/LogsQueryEditor}/CloudWatchLink.test.tsx (92%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/LogsQueryEditor}/CloudWatchLink.tsx (89%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/LogsQueryEditor}/LogsQueryEditor.tsx (89%) rename public/app/plugins/datasource/cloudwatch/components/{LogsQueryField => QueryEditor/LogsQueryEditor}/LogsQueryField.tsx (88%) rename public/app/plugins/datasource/cloudwatch/components/{LogsQueryField.tsx => QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx} (92%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/DynamicLabelsField.tsx (88%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/MathExpressionQueryField.tsx (91%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/MetricsQueryEditor/MetricsQueryEditor.test.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/MetricsQueryEditor/MetricsQueryEditor.tsx (93%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLBuilderEditor.test.tsx (95%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLBuilderEditor.tsx (89%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx (96%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLBuilderSelectRow.tsx (94%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLFilter.tsx (91%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLGroupBy.test.tsx (93%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLGroupBy.tsx (91%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/SQLOrderByGroup.tsx (87%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/index.tsx (100%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLBuilderEditor/utils.ts (98%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor/MetricsQueryEditor}/SQLCodeEditor.tsx (83%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/QueryEditor.test.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/QueryEditor.tsx (88%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/QueryHeader.test.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => QueryEditor}/QueryHeader.tsx (93%) delete mode 100644 public/app/plugins/datasource/cloudwatch/components/index.ts rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/Account.test.tsx (100%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/Account.tsx (100%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/Dimensions/Dimensions.test.tsx (96%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/Dimensions/Dimensions.tsx (97%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/Dimensions/FilterItem.tsx (95%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/LogGroupsField.test.tsx (98%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/LogGroupsField.tsx (89%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/LogGroupsSelector.test.tsx (99%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/LogGroupsSelector.tsx (98%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared/LogGroups}/Search.test.tsx (97%) rename public/app/plugins/datasource/cloudwatch/{ => components/shared/LogGroups}/Search.tsx (100%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/SelectedLogGroups.test.tsx (98%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/LogGroups/SelectedLogGroups.tsx (96%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/MetricStatEditor/MetricStatEditor.test.tsx (98%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/MetricStatEditor/MetricStatEditor.tsx (92%) rename public/app/plugins/datasource/cloudwatch/components/{ => shared}/MetricStatEditor/index.ts (100%) diff --git a/.betterer.results b/.betterer.results index 7017aa6a84f..0f7f4e90366 100644 --- a/.betterer.results +++ b/.betterer.results @@ -3513,10 +3513,7 @@ exports[`better eslint`] = { "public/app/plugins/datasource/cloud-monitoring/types/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "public/app/plugins/datasource/cloudwatch/components/ConfigEditor.test.tsx:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "public/app/plugins/datasource/cloudwatch/components/LogsQueryField.tsx:5381": [ + "public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx:5381": [ [0, 0, 0, "Do not use any type assertions.", "0"] ], "public/app/plugins/datasource/cloudwatch/datasource.ts:5381": [ diff --git a/public/app/plugins/datasource/cloudwatch/annotationSupport.ts b/public/app/plugins/datasource/cloudwatch/annotationSupport.ts index 08d4659a707..bf3659a020a 100644 --- a/public/app/plugins/datasource/cloudwatch/annotationSupport.ts +++ b/public/app/plugins/datasource/cloudwatch/annotationSupport.ts @@ -1,6 +1,6 @@ import { AnnotationQuery } from '@grafana/data'; -import { AnnotationQueryEditor } from './components/AnnotationQueryEditor'; +import { AnnotationQueryEditor } from './components/AnnotationQueryEditor/AnnotationQueryEditor'; import { DEFAULT_ANNOTATIONS_QUERY } from './defaultQueries'; import { isCloudWatchAnnotation } from './guards'; import { CloudWatchAnnotationQuery, CloudWatchQuery, LegacyAnnotationQuery } from './types'; diff --git a/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.test.tsx similarity index 94% rename from public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.test.tsx index 65de0fc59f7..e5b62bac9b0 100644 --- a/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.test.tsx @@ -4,9 +4,9 @@ import '@testing-library/jest-dom'; import { QueryEditorProps } from '@grafana/data'; -import { setupMockedDataSource } from '../__mocks__/CloudWatchDataSource'; -import { CloudWatchDatasource } from '../datasource'; -import { CloudWatchAnnotationQuery, CloudWatchJsonData, CloudWatchMetricsQuery, CloudWatchQuery } from '../types'; +import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; +import { CloudWatchDatasource } from '../../datasource'; +import { CloudWatchAnnotationQuery, CloudWatchJsonData, CloudWatchMetricsQuery, CloudWatchQuery } from '../../types'; import { AnnotationQueryEditor } from './AnnotationQueryEditor'; diff --git a/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.tsx similarity index 90% rename from public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.tsx index 9d6f8405d47..a88bdf61eb4 100644 --- a/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor/AnnotationQueryEditor.tsx @@ -4,15 +4,15 @@ import { QueryEditorProps } from '@grafana/data'; import { EditorField, EditorHeader, EditorRow, EditorSwitch, InlineSelect, Space } from '@grafana/experimental'; import { Alert, Input } from '@grafana/ui'; -import { CloudWatchDatasource } from '../datasource'; -import { isCloudWatchAnnotationQuery } from '../guards'; -import { useRegions } from '../hooks'; -import { CloudWatchJsonData, CloudWatchQuery, MetricStat } from '../types'; - -import { MetricStatEditor } from './MetricStatEditor'; +import { CloudWatchDatasource } from '../../datasource'; +import { isCloudWatchAnnotationQuery } from '../../guards'; +import { useRegions } from '../../hooks'; +import { CloudWatchJsonData, CloudWatchQuery, MetricStat } from '../../types'; +import { MetricStatEditor } from '../shared/MetricStatEditor/MetricStatEditor'; export type Props = QueryEditorProps; +// Dashboard Settings -> Annotations -> New Query export const AnnotationQueryEditor = (props: Props) => { const { query, onChange, datasource } = props; const [regions, regionIsLoading] = useRegions(datasource); diff --git a/public/app/plugins/datasource/cloudwatch/components/LogsCheatSheet.tsx b/public/app/plugins/datasource/cloudwatch/components/CheatSheet/LogsCheatSheet.tsx similarity index 99% rename from public/app/plugins/datasource/cloudwatch/components/LogsCheatSheet.tsx rename to public/app/plugins/datasource/cloudwatch/components/CheatSheet/LogsCheatSheet.tsx index 880639b00b3..7bd477ba0f0 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogsCheatSheet.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/CheatSheet/LogsCheatSheet.tsx @@ -6,8 +6,8 @@ import React, { useState } from 'react'; import { Collapse } from '@grafana/ui'; import { flattenTokens } from '@grafana/ui/src/slate-plugins/slate-prism'; -import tokenizer from '../language/cloudwatch-logs/syntax'; -import { CloudWatchQuery } from '../types'; +import tokenizer from '../../language/cloudwatch-logs/syntax'; +import { CloudWatchQuery } from '../../types'; interface QueryExample { category: string; diff --git a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.test.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/ConfigEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.test.tsx index 92354c0460c..4384b834a4b 100644 --- a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.test.tsx @@ -7,8 +7,8 @@ import { AwsAuthType } from '@grafana/aws-sdk'; import { PluginContextProvider, PluginMeta, PluginMetaInfo, PluginType } from '@grafana/data'; import { configureStore } from 'app/store/configureStore'; -import { CloudWatchSettings, setupMockedDataSource } from '../__mocks__/CloudWatchDataSource'; -import { CloudWatchDatasource } from '../datasource'; +import { CloudWatchSettings, setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; +import { CloudWatchDatasource } from '../../datasource'; import { ConfigEditor, Props } from './ConfigEditor'; @@ -107,9 +107,6 @@ const setup = (optionOverrides?: Partial) => { describe('Render', () => { beforeEach(() => { - (window as any).grafanaBootData = { - settings: {}, - }; jest.resetAllMocks(); putMock.mockImplementation(async () => ({ datasource: setupMockedDataSource().datasource })); getMock.mockImplementation(async () => ({ datasource: setupMockedDataSource().datasource })); diff --git a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.tsx index 7ef5462197d..8e91fc344a7 100644 --- a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor/ConfigEditor.tsx @@ -18,11 +18,11 @@ import { createWarningNotification } from 'app/core/copy/appNotification'; import { getDatasourceSrv } from 'app/features/plugins/datasource_srv'; import { store } from 'app/store/store'; -import { CloudWatchDatasource } from '../datasource'; -import { SelectableResourceValue } from '../resources/types'; -import { CloudWatchJsonData, CloudWatchSecureJsonData } from '../types'; +import { CloudWatchDatasource } from '../../datasource'; +import { SelectableResourceValue } from '../../resources/types'; +import { CloudWatchJsonData, CloudWatchSecureJsonData } from '../../types'; +import { LogGroupsField } from '../shared/LogGroups/LogGroupsField'; -import { LogGroupsField } from './LogGroups/LogGroupsField'; import { XrayLinkConfig } from './XrayLinkConfig'; export type Props = DataSourcePluginOptionsEditorProps; diff --git a/public/app/plugins/datasource/cloudwatch/components/XrayLinkConfig.tsx b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor/XrayLinkConfig.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/XrayLinkConfig.tsx rename to public/app/plugins/datasource/cloudwatch/components/ConfigEditor/XrayLinkConfig.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/ThrottlingErrorMessage.tsx b/public/app/plugins/datasource/cloudwatch/components/Errors/ThrottlingErrorMessage.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/ThrottlingErrorMessage.tsx rename to public/app/plugins/datasource/cloudwatch/components/Errors/ThrottlingErrorMessage.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/Forms.tsx b/public/app/plugins/datasource/cloudwatch/components/Forms.tsx deleted file mode 100644 index 7d5dffb63bb..00000000000 --- a/public/app/plugins/datasource/cloudwatch/components/Forms.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React, { InputHTMLAttributes } from 'react'; - -import { InlineFormLabel } from '@grafana/ui'; - -export interface Props extends InputHTMLAttributes { - label: string; - tooltip?: string; - children?: React.ReactNode; -} - -export const QueryField = ({ label, tooltip, children }: Partial) => ( - <> - - {label} - - {children} - -); - -export const QueryInlineField = ({ ...props }: Props) => { - return ( -
- -
-
-
-
- ); -}; diff --git a/public/app/plugins/datasource/cloudwatch/components/MetaInspector.tsx b/public/app/plugins/datasource/cloudwatch/components/MetaInspector/MetaInspector.tsx similarity index 86% rename from public/app/plugins/datasource/cloudwatch/components/MetaInspector.tsx rename to public/app/plugins/datasource/cloudwatch/components/MetaInspector/MetaInspector.tsx index 923e79c6118..12ca89d98a2 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MetaInspector.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/MetaInspector/MetaInspector.tsx @@ -3,11 +3,12 @@ import React, { useMemo } from 'react'; import { MetadataInspectorProps } from '@grafana/data'; -import { CloudWatchDatasource } from '../datasource'; -import { CloudWatchQuery, CloudWatchJsonData } from '../types'; +import { CloudWatchDatasource } from '../../datasource'; +import { CloudWatchQuery, CloudWatchJsonData } from '../../types'; export type Props = MetadataInspectorProps; +// To view: Query Editor in Dashboard -> Query Inspector -> Meta Data export function MetaInspector({ data = [] }: Props) { const rows = useMemo(() => groupBy(data, 'refId'), [data]); diff --git a/public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.test.tsx similarity index 92% rename from public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.test.tsx index 27266cd26df..d19f98a6e68 100644 --- a/public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.test.tsx @@ -3,10 +3,10 @@ import React from 'react'; import { LoadingState } from '@grafana/data'; -import { setupMockedDataSource } from '../__mocks__/CloudWatchDataSource'; -import { RequestMock } from '../__mocks__/Request'; -import { validLogsQuery } from '../__mocks__/queries'; -import { CloudWatchLogsQuery } from '../types'; +import { setupMockedDataSource } from '../../../__mocks__/CloudWatchDataSource'; +import { RequestMock } from '../../../__mocks__/Request'; +import { validLogsQuery } from '../../../__mocks__/queries'; +import { CloudWatchLogsQuery } from '../../../types'; import { CloudWatchLink } from './CloudWatchLink'; diff --git a/public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.tsx similarity index 89% rename from public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.tsx index 2ba3364df49..f7087e70654 100644 --- a/public/app/plugins/datasource/cloudwatch/components/CloudWatchLink.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/CloudWatchLink.tsx @@ -4,9 +4,9 @@ import { usePrevious } from 'react-use'; import { PanelData } from '@grafana/data'; import { Icon } from '@grafana/ui'; -import { AwsUrl, encodeUrl } from '../aws_url'; -import { CloudWatchDatasource } from '../datasource'; -import { CloudWatchLogsQuery } from '../types'; +import { AwsUrl, encodeUrl } from '../../../aws_url'; +import { CloudWatchDatasource } from '../../../datasource'; +import { CloudWatchLogsQuery } from '../../../types'; interface Props { query: CloudWatchLogsQuery; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogsQueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryEditor.tsx similarity index 89% rename from public/app/plugins/datasource/cloudwatch/components/LogsQueryEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryEditor.tsx index 33422c1fd5b..4daf3a5aa66 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogsQueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryEditor.tsx @@ -1,4 +1,3 @@ -// Libraries import { css } from '@emotion/css'; import React, { memo } from 'react'; @@ -6,12 +5,12 @@ import { AbsoluteTimeRange, QueryEditorProps } from '@grafana/data'; import { config } from '@grafana/runtime'; import { InlineFormLabel } from '@grafana/ui'; -import { CloudWatchDatasource } from '../datasource'; -import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../types'; +import { CloudWatchDatasource } from '../../../datasource'; +import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../../../types'; import { CloudWatchLink } from './CloudWatchLink'; -import CloudWatchLogsQueryField from './LogsQueryField'; -import CloudWatchLogsQueryFieldMonaco from './LogsQueryField/LogsQueryField'; +import CloudWatchLogsQueryFieldMonaco from './LogsQueryField'; +import CloudWatchLogsQueryField from './LogsQueryFieldOld'; type Props = QueryEditorProps & { query: CloudWatchLogsQuery; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogsQueryField/LogsQueryField.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryField.tsx similarity index 88% rename from public/app/plugins/datasource/cloudwatch/components/LogsQueryField/LogsQueryField.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryField.tsx index 5a1b4c36fc6..a4dd667af17 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogsQueryField/LogsQueryField.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryField.tsx @@ -4,14 +4,13 @@ import React, { ReactNode, useCallback } from 'react'; import { QueryEditorProps } from '@grafana/data'; import { CodeEditor, Monaco, Themeable2, withTheme2 } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import language from '../../language/logs/definition'; -import { TRIGGER_SUGGEST } from '../../language/monarch/commands'; -import { registerLanguage } from '../../language/monarch/register'; -import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../../types'; -import { getStatsGroups } from '../../utils/query/getStatsGroups'; - -import { LogGroupsField } from './../LogGroups/LogGroupsField'; +import { CloudWatchDatasource } from '../../../datasource'; +import language from '../../../language/logs/definition'; +import { TRIGGER_SUGGEST } from '../../../language/monarch/commands'; +import { registerLanguage } from '../../../language/monarch/register'; +import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../../../types'; +import { getStatsGroups } from '../../../utils/query/getStatsGroups'; +import { LogGroupsField } from '../../shared/LogGroups/LogGroupsField'; export interface CloudWatchLogsQueryFieldProps extends QueryEditorProps, diff --git a/public/app/plugins/datasource/cloudwatch/components/LogsQueryField.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx similarity index 92% rename from public/app/plugins/datasource/cloudwatch/components/LogsQueryField.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx index f31b8c26283..16601fabb53 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogsQueryField.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/LogsQueryEditor/LogsQueryFieldOld.tsx @@ -16,12 +16,11 @@ import { // Utils & Services // dom also includes Element polyfills -import { CloudWatchDatasource } from '../datasource'; -import syntax from '../language/cloudwatch-logs/syntax'; -import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../types'; -import { getStatsGroups } from '../utils/query/getStatsGroups'; - -import { LogGroupsField } from './LogGroups/LogGroupsField'; +import { CloudWatchDatasource } from '../../../datasource'; +import syntax from '../../../language/cloudwatch-logs/syntax'; +import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../../../types'; +import { getStatsGroups } from '../../../utils/query/getStatsGroups'; +import { LogGroupsField } from '../../shared/LogGroups/LogGroupsField'; export interface CloudWatchLogsQueryFieldProps extends QueryEditorProps, diff --git a/public/app/plugins/datasource/cloudwatch/components/DynamicLabelsField.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/DynamicLabelsField.tsx similarity index 88% rename from public/app/plugins/datasource/cloudwatch/components/DynamicLabelsField.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/DynamicLabelsField.tsx index 2c60cbbd7a1..7c5f9198825 100644 --- a/public/app/plugins/datasource/cloudwatch/components/DynamicLabelsField.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/DynamicLabelsField.tsx @@ -4,10 +4,10 @@ import React, { useCallback, useRef } from 'react'; import { CodeEditor, getInputStyles, Monaco, useTheme2 } from '@grafana/ui'; -import { DynamicLabelsCompletionItemProvider } from '../language/dynamic-labels/CompletionItemProvider'; -import language from '../language/dynamic-labels/definition'; -import { TRIGGER_SUGGEST } from '../language/monarch/commands'; -import { registerLanguage } from '../language/monarch/register'; +import { DynamicLabelsCompletionItemProvider } from '../../../language/dynamic-labels/CompletionItemProvider'; +import language from '../../../language/dynamic-labels/definition'; +import { TRIGGER_SUGGEST } from '../../../language/monarch/commands'; +import { registerLanguage } from '../../../language/monarch/register'; const dynamicLabelsCompletionItemProvider = new DynamicLabelsCompletionItemProvider(); diff --git a/public/app/plugins/datasource/cloudwatch/components/MathExpressionQueryField.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MathExpressionQueryField.tsx similarity index 91% rename from public/app/plugins/datasource/cloudwatch/components/MathExpressionQueryField.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MathExpressionQueryField.tsx index be9c0ffa7e0..110d8171c10 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MathExpressionQueryField.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MathExpressionQueryField.tsx @@ -3,10 +3,10 @@ import React, { useCallback, useRef } from 'react'; import { CodeEditor, Monaco } from '@grafana/ui'; -import { CloudWatchDatasource } from '../datasource'; -import language from '../language/metric-math/definition'; -import { TRIGGER_SUGGEST } from '../language/monarch/commands'; -import { registerLanguage } from '../language/monarch/register'; +import { CloudWatchDatasource } from '../../../datasource'; +import language from '../../../language/metric-math/definition'; +import { TRIGGER_SUGGEST } from '../../../language/monarch/commands'; +import { registerLanguage } from '../../../language/monarch/register'; export interface Props { onChange: (query: string) => void; diff --git a/public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.test.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.test.tsx index 907e91d574c..5ea445672a0 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.test.tsx @@ -7,9 +7,9 @@ import * as ui from '@grafana/ui'; import { TimeSrv } from 'app/features/dashboard/services/TimeSrv'; import { TemplateSrv } from 'app/features/templating/template_srv'; -import { CustomVariableModel, initialVariableModelState } from '../../../../../features/variables/types'; -import { CloudWatchDatasource } from '../../datasource'; -import { CloudWatchJsonData, MetricEditorMode, MetricQueryType } from '../../types'; +import { CustomVariableModel, initialVariableModelState } from '../../../../../../features/variables/types'; +import { CloudWatchDatasource } from '../../../datasource'; +import { CloudWatchJsonData, MetricEditorMode, MetricQueryType } from '../../../types'; import { MetricsQueryEditor, Props } from './MetricsQueryEditor'; diff --git a/public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.tsx similarity index 93% rename from public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.tsx index e6196131ea2..83c0a2f6ef7 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MetricsQueryEditor/MetricsQueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/MetricsQueryEditor.tsx @@ -4,9 +4,8 @@ import { QueryEditorProps, SelectableValue } from '@grafana/data'; import { EditorField, EditorRow, InlineSelect, Space } from '@grafana/experimental'; import { ConfirmModal, Input, RadioButtonGroup } from '@grafana/ui'; -import { MathExpressionQueryField, MetricStatEditor, SQLBuilderEditor } from '../'; -import { CloudWatchDatasource } from '../../datasource'; -import useMigratedMetricsQuery from '../../migrations/useMigratedMetricsQuery'; +import { CloudWatchDatasource } from '../../../datasource'; +import useMigratedMetricsQuery from '../../../migrations/useMigratedMetricsQuery'; import { CloudWatchJsonData, CloudWatchMetricsQuery, @@ -14,9 +13,13 @@ import { MetricEditorMode, MetricQueryType, MetricStat, -} from '../../types'; -import { DynamicLabelsField } from '../DynamicLabelsField'; -import { SQLCodeEditor } from '../SQLCodeEditor'; +} from '../../../types'; +import { MetricStatEditor } from '../../shared/MetricStatEditor'; + +import { DynamicLabelsField } from './DynamicLabelsField'; +import { MathExpressionQueryField } from './MathExpressionQueryField'; +import { SQLBuilderEditor } from './SQLBuilderEditor'; +import { SQLCodeEditor } from './SQLCodeEditor'; export interface Props extends QueryEditorProps { query: CloudWatchMetricsQuery; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.test.tsx similarity index 95% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.test.tsx index c9bc216a967..13bf64016d4 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.test.tsx @@ -1,10 +1,11 @@ import { render, screen, waitFor } from '@testing-library/react'; import React from 'react'; -import { SQLBuilderEditor } from '..'; -import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; -import { QueryEditorExpressionType, QueryEditorPropertyType } from '../../expressions'; -import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../types'; +import { setupMockedDataSource } from '../../../../__mocks__/CloudWatchDataSource'; +import { QueryEditorExpressionType, QueryEditorPropertyType } from '../../../../expressions'; +import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../../../types'; + +import { SQLBuilderEditor } from './SQLBuilderEditor'; const { datasource } = setupMockedDataSource(); diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.tsx similarity index 89% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.tsx index 44b086659c1..9191fbe0abf 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderEditor.tsx @@ -3,9 +3,9 @@ import React, { useCallback, useEffect, useState } from 'react'; import { EditorField, EditorRow, EditorRows } from '@grafana/experimental'; import { Input } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import SQLGenerator from '../../language/cloudwatch-sql/SQLGenerator'; -import { CloudWatchMetricsQuery } from '../../types'; +import { CloudWatchDatasource } from '../../../../datasource'; +import SQLGenerator from '../../../../language/cloudwatch-sql/SQLGenerator'; +import { CloudWatchMetricsQuery } from '../../../../types'; import SQLBuilderSelectRow from './SQLBuilderSelectRow'; import SQLFilter from './SQLFilter'; @@ -19,7 +19,7 @@ export type Props = { onChange: (value: CloudWatchMetricsQuery) => void; }; -export function SQLBuilderEditor({ query, datasource, onChange }: React.PropsWithChildren) { +export const SQLBuilderEditor = ({ query, datasource, onChange }: React.PropsWithChildren) => { const sql = query.sql ?? {}; const onQueryChange = useCallback( @@ -86,4 +86,4 @@ export function SQLBuilderEditor({ query, datasource, onChange }: React.PropsWit )} ); -} +}; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx similarity index 96% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx index 7e9f61025b7..8c2c7f74366 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.test.tsx @@ -2,9 +2,9 @@ import { act, render, screen } from '@testing-library/react'; import React from 'react'; import { selectOptionInTest } from 'test/helpers/selectOptionInTest'; -import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; -import { QueryEditorExpressionType, QueryEditorPropertyType } from '../../expressions'; -import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../types'; +import { setupMockedDataSource } from '../../../../__mocks__/CloudWatchDataSource'; +import { QueryEditorExpressionType, QueryEditorPropertyType } from '../../../../expressions'; +import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../../../types'; import SQLBuilderSelectRow from './SQLBuilderSelectRow'; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.tsx similarity index 94% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.tsx index 7c090dac070..d22070a9279 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLBuilderSelectRow.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLBuilderSelectRow.tsx @@ -4,11 +4,11 @@ import { SelectableValue, toOption } from '@grafana/data'; import { EditorField, EditorFieldGroup, EditorSwitch } from '@grafana/experimental'; import { Select } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import { useDimensionKeys, useMetrics, useNamespaces } from '../../hooks'; -import { STATISTICS } from '../../language/cloudwatch-sql/language'; -import { CloudWatchMetricsQuery } from '../../types'; -import { appendTemplateVariables } from '../../utils/utils'; +import { CloudWatchDatasource } from '../../../../datasource'; +import { useDimensionKeys, useMetrics, useNamespaces } from '../../../../hooks'; +import { STATISTICS } from '../../../../language/cloudwatch-sql/language'; +import { CloudWatchMetricsQuery } from '../../../../types'; +import { appendTemplateVariables } from '../../../../utils/utils'; import { getMetricNameFromExpression, diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLFilter.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLFilter.tsx similarity index 91% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLFilter.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLFilter.tsx index 473026a8778..079c67d0efe 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLFilter.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLFilter.tsx @@ -5,12 +5,16 @@ import { SelectableValue, toOption } from '@grafana/data'; import { AccessoryButton, EditorList, InputGroup } from '@grafana/experimental'; import { Select } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import { QueryEditorExpressionType, QueryEditorOperatorExpression, QueryEditorPropertyType } from '../../expressions'; -import { useDimensionKeys } from '../../hooks'; -import { COMPARISON_OPERATORS, EQUALS } from '../../language/cloudwatch-sql/language'; -import { CloudWatchMetricsQuery } from '../../types'; -import { appendTemplateVariables } from '../../utils/utils'; +import { CloudWatchDatasource } from '../../../../datasource'; +import { + QueryEditorExpressionType, + QueryEditorOperatorExpression, + QueryEditorPropertyType, +} from '../../../../expressions'; +import { useDimensionKeys } from '../../../../hooks'; +import { COMPARISON_OPERATORS, EQUALS } from '../../../../language/cloudwatch-sql/language'; +import { CloudWatchMetricsQuery } from '../../../../types'; +import { appendTemplateVariables } from '../../../../utils/utils'; import { getFlattenedFilters, diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.test.tsx similarity index 93% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.test.tsx index 7ba7fa8d925..dcd2bd57f82 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.test.tsx @@ -3,9 +3,9 @@ import userEvent from '@testing-library/user-event'; import React from 'react'; import selectEvent from 'react-select-event'; -import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; -import { createArray, createGroupBy } from '../../__mocks__/sqlUtils'; -import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../types'; +import { setupMockedDataSource } from '../../../../__mocks__/CloudWatchDataSource'; +import { createArray, createGroupBy } from '../../../../__mocks__/sqlUtils'; +import { CloudWatchMetricsQuery, MetricEditorMode, MetricQueryType, SQLExpression } from '../../../../types'; import SQLGroupBy from './SQLGroupBy'; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.tsx similarity index 91% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.tsx index 760d0410303..72fa72a2316 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLGroupBy.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLGroupBy.tsx @@ -4,10 +4,14 @@ import { SelectableValue, toOption } from '@grafana/data'; import { AccessoryButton, EditorList, InputGroup } from '@grafana/experimental'; import { Select } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import { QueryEditorExpressionType, QueryEditorGroupByExpression, QueryEditorPropertyType } from '../../expressions'; -import { useDimensionKeys } from '../../hooks'; -import { CloudWatchMetricsQuery } from '../../types'; +import { CloudWatchDatasource } from '../../../../datasource'; +import { + QueryEditorExpressionType, + QueryEditorGroupByExpression, + QueryEditorPropertyType, +} from '../../../../expressions'; +import { useDimensionKeys } from '../../../../hooks'; +import { CloudWatchMetricsQuery } from '../../../../types'; import { getFlattenedGroupBys, diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLOrderByGroup.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLOrderByGroup.tsx similarity index 87% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLOrderByGroup.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLOrderByGroup.tsx index 711d375fe61..62891e19caf 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/SQLOrderByGroup.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/SQLOrderByGroup.tsx @@ -4,10 +4,10 @@ import { SelectableValue, toOption } from '@grafana/data'; import { AccessoryButton, EditorField, EditorFieldGroup, InputGroup } from '@grafana/experimental'; import { Select } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import { ASC, DESC, STATISTICS } from '../../language/cloudwatch-sql/language'; -import { CloudWatchMetricsQuery } from '../../types'; -import { appendTemplateVariables } from '../../utils/utils'; +import { CloudWatchDatasource } from '../../../../datasource'; +import { ASC, DESC, STATISTICS } from '../../../../language/cloudwatch-sql/language'; +import { CloudWatchMetricsQuery } from '../../../../types'; +import { appendTemplateVariables } from '../../../../utils/utils'; import { setOrderBy, setSql } from './utils'; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/index.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/index.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/index.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/index.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/utils.ts b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/utils.ts similarity index 98% rename from public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/utils.ts rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/utils.ts index 50585c684f2..b1d72e0e6cf 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLBuilderEditor/utils.ts +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLBuilderEditor/utils.ts @@ -7,9 +7,9 @@ import { QueryEditorArrayExpression, QueryEditorOperatorExpression, QueryEditorGroupByExpression, -} from '../../expressions'; -import { SCHEMA } from '../../language/cloudwatch-sql/language'; -import { SQLExpression, CloudWatchMetricsQuery, Dimensions } from '../../types'; +} from '../../../../expressions'; +import { SCHEMA } from '../../../../language/cloudwatch-sql/language'; +import { SQLExpression, CloudWatchMetricsQuery, Dimensions } from '../../../../types'; export function getMetricNameFromExpression(selectExpression: SQLExpression['select']): string | undefined { return selectExpression?.parameters?.[0].name; diff --git a/public/app/plugins/datasource/cloudwatch/components/SQLCodeEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLCodeEditor.tsx similarity index 83% rename from public/app/plugins/datasource/cloudwatch/components/SQLCodeEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLCodeEditor.tsx index e33cd23de6d..6fb14be0da3 100644 --- a/public/app/plugins/datasource/cloudwatch/components/SQLCodeEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/MetricsQueryEditor/SQLCodeEditor.tsx @@ -3,10 +3,10 @@ import React, { useCallback, useEffect } from 'react'; import { CodeEditor, Monaco } from '@grafana/ui'; -import { CloudWatchDatasource } from '../datasource'; -import language from '../language/cloudwatch-sql/definition'; -import { TRIGGER_SUGGEST } from '../language/monarch/commands'; -import { registerLanguage } from '../language/monarch/register'; +import { CloudWatchDatasource } from '../../../datasource'; +import language from '../../../language/cloudwatch-sql/definition'; +import { TRIGGER_SUGGEST } from '../../../language/monarch/commands'; +import { registerLanguage } from '../../../language/monarch/register'; export interface Props { region: string; diff --git a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.test.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/QueryEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.test.tsx index c1b2acd9752..03747a4c472 100644 --- a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.test.tsx @@ -5,16 +5,16 @@ import React from 'react'; import { QueryEditorProps } from '@grafana/data'; import { config } from '@grafana/runtime'; -import { setupMockedDataSource } from '../__mocks__/CloudWatchDataSource'; +import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; import { validLogsQuery, validMetricQueryBuilderQuery, validMetricQueryCodeQuery, validMetricSearchBuilderQuery, validMetricSearchCodeQuery, -} from '../__mocks__/queries'; -import { CloudWatchDatasource } from '../datasource'; -import { CloudWatchQuery, CloudWatchJsonData, MetricEditorMode, MetricQueryType } from '../types'; +} from '../../__mocks__/queries'; +import { CloudWatchDatasource } from '../../datasource'; +import { CloudWatchQuery, CloudWatchJsonData, MetricEditorMode, MetricQueryType } from '../../types'; import { QueryEditor } from './QueryEditor'; @@ -34,7 +34,7 @@ const props: QueryEditorProps ({ +jest.mock('./MetricsQueryEditor/SQLCodeEditor', () => ({ SQLCodeEditor: ({ sql, onChange }: { sql: string; onChange: (val: string) => void }) => { return ( <> @@ -45,7 +45,7 @@ jest.mock('./SQLCodeEditor', () => ({ }, })); -export { SQLCodeEditor } from './SQLCodeEditor'; +export { SQLCodeEditor } from './MetricsQueryEditor/SQLCodeEditor'; describe('QueryEditor should render right editor', () => { describe('when using grafana 6.3.0 metric query', () => { diff --git a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.tsx similarity index 88% rename from public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.tsx index bb5fc239f1c..7810e357a5b 100644 --- a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryEditor.tsx @@ -2,11 +2,11 @@ import React, { useCallback, useEffect, useState } from 'react'; import { QueryEditorProps } from '@grafana/data'; -import { CloudWatchDatasource } from '../datasource'; -import { isCloudWatchLogsQuery, isCloudWatchMetricsQuery } from '../guards'; -import { CloudWatchJsonData, CloudWatchQuery } from '../types'; +import { CloudWatchDatasource } from '../../datasource'; +import { isCloudWatchLogsQuery, isCloudWatchMetricsQuery } from '../../guards'; +import { CloudWatchJsonData, CloudWatchQuery } from '../../types'; -import LogsQueryEditor from './LogsQueryEditor'; +import LogsQueryEditor from './LogsQueryEditor/LogsQueryEditor'; import { MetricsQueryEditor } from './MetricsQueryEditor/MetricsQueryEditor'; import QueryHeader from './QueryHeader'; diff --git a/public/app/plugins/datasource/cloudwatch/components/QueryHeader.test.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.test.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/QueryHeader.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.test.tsx index 489757365b0..3b5c309d13a 100644 --- a/public/app/plugins/datasource/cloudwatch/components/QueryHeader.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.test.tsx @@ -4,9 +4,9 @@ import selectEvent from 'react-select-event'; import { config } from '@grafana/runtime'; -import { setupMockedDataSource } from '../__mocks__/CloudWatchDataSource'; -import { validLogsQuery, validMetricSearchBuilderQuery } from '../__mocks__/queries'; -import { DEFAULT_LOGS_QUERY_STRING } from '../defaultQueries'; +import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; +import { validLogsQuery, validMetricSearchBuilderQuery } from '../../__mocks__/queries'; +import { DEFAULT_LOGS_QUERY_STRING } from '../../defaultQueries'; import QueryHeader from './QueryHeader'; diff --git a/public/app/plugins/datasource/cloudwatch/components/QueryHeader.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.tsx similarity index 93% rename from public/app/plugins/datasource/cloudwatch/components/QueryHeader.tsx rename to public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.tsx index 9a859387e5a..d697131a905 100644 --- a/public/app/plugins/datasource/cloudwatch/components/QueryHeader.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor/QueryHeader.tsx @@ -5,11 +5,11 @@ import { EditorHeader, InlineSelect, FlexItem } from '@grafana/experimental'; import { config } from '@grafana/runtime'; import { Badge, Button } from '@grafana/ui'; -import { CloudWatchDatasource } from '../datasource'; -import { DEFAULT_LOGS_QUERY_STRING } from '../defaultQueries'; -import { isCloudWatchLogsQuery, isCloudWatchMetricsQuery } from '../guards'; -import { useIsMonitoringAccount, useRegions } from '../hooks'; -import { CloudWatchJsonData, CloudWatchQuery, CloudWatchQueryMode, MetricQueryType } from '../types'; +import { CloudWatchDatasource } from '../../datasource'; +import { DEFAULT_LOGS_QUERY_STRING } from '../../defaultQueries'; +import { isCloudWatchLogsQuery, isCloudWatchMetricsQuery } from '../../guards'; +import { useIsMonitoringAccount, useRegions } from '../../hooks'; +import { CloudWatchJsonData, CloudWatchQuery, CloudWatchQueryMode, MetricQueryType } from '../../types'; export interface Props extends QueryEditorProps { extraHeaderElementLeft?: JSX.Element; diff --git a/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.tsx index 24e0eb72a41..b337ef7ca1b 100644 --- a/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.tsx @@ -4,12 +4,12 @@ import { QueryEditorProps, SelectableValue } from '@grafana/data'; import { config } from '@grafana/runtime'; import { InlineField } from '@grafana/ui'; -import { Dimensions } from '..'; import { CloudWatchDatasource } from '../../datasource'; import { useAccountOptions, useDimensionKeys, useMetrics, useNamespaces, useRegions } from '../../hooks'; import { migrateVariableQuery } from '../../migrations/variableQueryMigrations'; import { CloudWatchJsonData, CloudWatchQuery, VariableQuery, VariableQueryType } from '../../types'; -import { ALL_ACCOUNTS_OPTION } from '../Account'; +import { ALL_ACCOUNTS_OPTION } from '../shared/Account'; +import { Dimensions } from '../shared/Dimensions/Dimensions'; import { MultiFilter } from './MultiFilter'; import { VariableQueryField } from './VariableQueryField'; diff --git a/public/app/plugins/datasource/cloudwatch/components/index.ts b/public/app/plugins/datasource/cloudwatch/components/index.ts deleted file mode 100644 index 9ea328575b4..00000000000 --- a/public/app/plugins/datasource/cloudwatch/components/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { Dimensions } from './Dimensions/Dimensions'; -export { QueryInlineField, QueryField } from './Forms'; -export { QueryEditor as PanelQueryEditor } from './QueryEditor'; -export { CloudWatchLogsQueryEditor } from './LogsQueryEditor'; -export { MetricStatEditor } from './MetricStatEditor'; -export { SQLBuilderEditor } from './SQLBuilderEditor'; -export { MathExpressionQueryField } from './MathExpressionQueryField'; diff --git a/public/app/plugins/datasource/cloudwatch/components/Account.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/Account.test.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/Account.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/Account.test.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/Account.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/Account.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/Account.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/Account.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.test.tsx similarity index 96% rename from public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.test.tsx index 6132944f607..d0b545a63c2 100644 --- a/public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.test.tsx @@ -2,9 +2,10 @@ import { fireEvent, render, screen, within } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { Dimensions } from '..'; -import { setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; -import { CloudWatchMetricsQuery } from '../../types'; +import { setupMockedDataSource } from '../../../__mocks__/CloudWatchDataSource'; +import { CloudWatchMetricsQuery } from '../../../types'; + +import { Dimensions } from './Dimensions'; const ds = setupMockedDataSource({ variables: [], diff --git a/public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.tsx index c95365b3430..9ca9b1cbc27 100644 --- a/public/app/plugins/datasource/cloudwatch/components/Dimensions/Dimensions.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/Dimensions.tsx @@ -4,8 +4,8 @@ import React, { useMemo, useState } from 'react'; import { SelectableValue } from '@grafana/data'; import { EditorList } from '@grafana/experimental'; -import { CloudWatchDatasource } from '../../datasource'; -import { Dimensions as DimensionsType, MetricStat } from '../../types'; +import { CloudWatchDatasource } from '../../../datasource'; +import { Dimensions as DimensionsType, MetricStat } from '../../../types'; import { FilterItem } from './FilterItem'; diff --git a/public/app/plugins/datasource/cloudwatch/components/Dimensions/FilterItem.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/FilterItem.tsx similarity index 95% rename from public/app/plugins/datasource/cloudwatch/components/Dimensions/FilterItem.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/FilterItem.tsx index 4c52712cfe8..e05e89ca115 100644 --- a/public/app/plugins/datasource/cloudwatch/components/Dimensions/FilterItem.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/Dimensions/FilterItem.tsx @@ -6,9 +6,9 @@ import { GrafanaTheme2, SelectableValue, toOption } from '@grafana/data'; import { AccessoryButton, InputGroup } from '@grafana/experimental'; import { Select, stylesFactory, useTheme2 } from '@grafana/ui'; -import { CloudWatchDatasource } from '../../datasource'; -import { Dimensions, MetricStat } from '../../types'; -import { appendTemplateVariables } from '../../utils/utils'; +import { CloudWatchDatasource } from '../../../datasource'; +import { Dimensions, MetricStat } from '../../../types'; +import { appendTemplateVariables } from '../../../utils/utils'; import { DimensionFilterCondition } from './Dimensions'; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.test.tsx similarity index 98% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.test.tsx index 05d1a336897..9425f9b0d92 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.test.tsx @@ -5,7 +5,7 @@ import React from 'react'; import { config } from '@grafana/runtime'; -import { logGroupNamesVariable, setupMockedDataSource } from '../../__mocks__/CloudWatchDataSource'; +import { logGroupNamesVariable, setupMockedDataSource } from '../../../__mocks__/CloudWatchDataSource'; import { LogGroupsField } from './LogGroupsField'; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.tsx similarity index 89% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.tsx index efb53a7c8fb..acb7b7b2ac9 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsField.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsField.tsx @@ -1,11 +1,11 @@ import { css } from '@emotion/css'; import React, { useEffect, useState } from 'react'; -import { CloudWatchDatasource } from '../../datasource'; -import { useAccountOptions } from '../../hooks'; -import { DescribeLogGroupsRequest } from '../../resources/types'; -import { LogGroup } from '../../types'; -import { isTemplateVariable } from '../../utils/templateVariableUtils'; +import { CloudWatchDatasource } from '../../../datasource'; +import { useAccountOptions } from '../../../hooks'; +import { DescribeLogGroupsRequest } from '../../../resources/types'; +import { LogGroup } from '../../../types'; +import { isTemplateVariable } from '../../../utils/templateVariableUtils'; import { LogGroupsSelector } from './LogGroupsSelector'; import { SelectedLogGroups } from './SelectedLogGroups'; @@ -24,6 +24,7 @@ const rowGap = css` gap: 3px; `; +// used in Config Editor and in Log Query Editor export const LogGroupsField = ({ datasource, onChange, diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.test.tsx similarity index 99% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.test.tsx index 96745674be9..3d89c73ba0e 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.test.tsx @@ -5,7 +5,7 @@ import lodash from 'lodash'; import React from 'react'; import selectEvent from 'react-select-event'; -import { ResourceResponse, LogGroupResponse } from '../../resources/types'; +import { ResourceResponse, LogGroupResponse } from '../../../resources/types'; import { LogGroupsSelector } from './LogGroupsSelector'; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.tsx similarity index 98% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.tsx index 7e9bc683044..225f56e8432 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/LogGroupsSelector.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/LogGroupsSelector.tsx @@ -4,11 +4,12 @@ import { SelectableValue } from '@grafana/data'; import { EditorField, Space } from '@grafana/experimental'; import { Button, Checkbox, Icon, Label, LoadingPlaceholder, Modal, Select, useStyles2 } from '@grafana/ui'; -import Search from '../../Search'; -import { DescribeLogGroupsRequest, ResourceResponse, LogGroupResponse } from '../../resources/types'; -import { LogGroup } from '../../types'; +import { DescribeLogGroupsRequest, ResourceResponse, LogGroupResponse } from '../../../resources/types'; +import { LogGroup } from '../../../types'; +import getStyles from '../../styles'; import { Account, ALL_ACCOUNTS_OPTION } from '../Account'; -import getStyles from '../styles'; + +import Search from './Search'; type CrossAccountLogsQueryProps = { selectedLogGroups?: LogGroup[]; diff --git a/public/app/plugins/datasource/cloudwatch/components/Search.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/Search.test.tsx similarity index 97% rename from public/app/plugins/datasource/cloudwatch/components/Search.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/Search.test.tsx index 6312770e21a..43443dfaa90 100644 --- a/public/app/plugins/datasource/cloudwatch/components/Search.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/Search.test.tsx @@ -4,7 +4,7 @@ import userEvent from '@testing-library/user-event'; import lodash from 'lodash'; import React from 'react'; -import Search from '../Search'; +import Search from './Search'; const defaultProps = { searchPhrase: '', diff --git a/public/app/plugins/datasource/cloudwatch/Search.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/Search.tsx similarity index 100% rename from public/app/plugins/datasource/cloudwatch/Search.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/Search.tsx diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.test.tsx similarity index 98% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.test.tsx index 01dcae351f9..9666d1d6186 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.test.tsx @@ -2,7 +2,7 @@ import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { LogGroup } from '../../types'; +import { LogGroup } from '../../../types'; import { SelectedLogGroups } from './SelectedLogGroups'; diff --git a/public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.tsx similarity index 96% rename from public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.tsx index faad8731ca2..83a5a3c63ab 100644 --- a/public/app/plugins/datasource/cloudwatch/components/LogGroups/SelectedLogGroups.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/LogGroups/SelectedLogGroups.tsx @@ -2,8 +2,8 @@ import React, { useEffect, useState } from 'react'; import { Button, ConfirmModal, useStyles2 } from '@grafana/ui'; -import { LogGroup } from '../../types'; -import getStyles from '../styles'; +import { LogGroup } from '../../../types'; +import getStyles from '../../styles'; type CrossAccountLogsQueryProps = { selectedLogGroups?: LogGroup[]; diff --git a/public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.test.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.test.tsx similarity index 98% rename from public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.test.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.test.tsx index f405361efb9..0dee6c581aa 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.test.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.test.tsx @@ -5,10 +5,11 @@ import selectEvent from 'react-select-event'; import { config } from '@grafana/runtime'; -import { MetricStatEditor } from '..'; -import { setupMockedDataSource, statisticVariable } from '../../__mocks__/CloudWatchDataSource'; -import { validMetricSearchBuilderQuery } from '../../__mocks__/queries'; -import { MetricStat } from '../../types'; +import { setupMockedDataSource, statisticVariable } from '../../../__mocks__/CloudWatchDataSource'; +import { validMetricSearchBuilderQuery } from '../../../__mocks__/queries'; +import { MetricStat } from '../../../types'; + +import { MetricStatEditor } from './MetricStatEditor'; const originalFeatureToggleValue = config.featureToggles.cloudWatchCrossAccountQuerying; const ds = setupMockedDataSource({ diff --git a/public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.tsx similarity index 92% rename from public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.tsx rename to public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.tsx index f6daaafc528..bb57b58a872 100644 --- a/public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/MetricStatEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/MetricStatEditor.tsx @@ -5,13 +5,13 @@ import { EditorField, EditorFieldGroup, EditorRow, EditorRows, EditorSwitch } fr import { config } from '@grafana/runtime'; import { Select } from '@grafana/ui'; -import { Dimensions } from '..'; -import { CloudWatchDatasource } from '../../datasource'; -import { useAccountOptions, useDimensionKeys, useMetrics, useNamespaces } from '../../hooks'; -import { standardStatistics } from '../../standardStatistics'; -import { MetricStat } from '../../types'; -import { appendTemplateVariables, toOption } from '../../utils/utils'; +import { CloudWatchDatasource } from '../../../datasource'; +import { useAccountOptions, useDimensionKeys, useMetrics, useNamespaces } from '../../../hooks'; +import { standardStatistics } from '../../../standardStatistics'; +import { MetricStat } from '../../../types'; +import { appendTemplateVariables, toOption } from '../../../utils/utils'; import { Account } from '../Account'; +import { Dimensions } from '../Dimensions/Dimensions'; export type Props = { refId: string; @@ -25,13 +25,14 @@ const percentileSyntaxRE = /^(p|tm|tc|ts|wm)\d{2}(?:\.\d{1,2})?$/; const boundariesInnerParenthesesSyntax = `\\d*(\\.\\d+)?%?:\\d*(\\.\\d+)?%?`; const boundariesSyntaxRE = new RegExp(`^(PR|TM|TC|TS|WM)\\((${boundariesInnerParenthesesSyntax})\\)$`); -export function MetricStatEditor({ +// used in both Metric Query editor and in Annotations Editor +export const MetricStatEditor = ({ refId, metricStat, datasource, disableExpressions = false, onChange, -}: React.PropsWithChildren) { +}: React.PropsWithChildren) => { const namespaces = useNamespaces(datasource); const metrics = useMetrics(datasource, metricStat); const dimensionKeys = useDimensionKeys(datasource, { ...metricStat, dimensionFilters: metricStat.dimensions }); @@ -164,4 +165,4 @@ export function MetricStatEditor({ ); -} +}; diff --git a/public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/index.ts b/public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/index.ts similarity index 100% rename from public/app/plugins/datasource/cloudwatch/components/MetricStatEditor/index.ts rename to public/app/plugins/datasource/cloudwatch/components/shared/MetricStatEditor/index.ts diff --git a/public/app/plugins/datasource/cloudwatch/module.tsx b/public/app/plugins/datasource/cloudwatch/module.tsx index c8a62b1a134..3195cbd8022 100644 --- a/public/app/plugins/datasource/cloudwatch/module.tsx +++ b/public/app/plugins/datasource/cloudwatch/module.tsx @@ -1,10 +1,10 @@ import { DashboardLoadedEvent, DataSourcePlugin } from '@grafana/data'; import { getAppEvents } from '@grafana/runtime'; -import { ConfigEditor } from './components/ConfigEditor'; -import LogsCheatSheet from './components/LogsCheatSheet'; -import { MetaInspector } from './components/MetaInspector'; -import { QueryEditor } from './components/QueryEditor'; +import LogsCheatSheet from './components/CheatSheet/LogsCheatSheet'; +import { ConfigEditor } from './components/ConfigEditor/ConfigEditor'; +import { MetaInspector } from './components/MetaInspector/MetaInspector'; +import { QueryEditor } from './components/QueryEditor/QueryEditor'; import { CloudWatchDatasource } from './datasource'; import { onDashboardLoadedHandler } from './tracking'; import { CloudWatchJsonData, CloudWatchQuery } from './types'; diff --git a/public/app/plugins/datasource/cloudwatch/query-runner/CloudWatchMetricsQueryRunner.ts b/public/app/plugins/datasource/cloudwatch/query-runner/CloudWatchMetricsQueryRunner.ts index 8b7f4ca7d5a..761b2525ff1 100644 --- a/public/app/plugins/datasource/cloudwatch/query-runner/CloudWatchMetricsQueryRunner.ts +++ b/public/app/plugins/datasource/cloudwatch/query-runner/CloudWatchMetricsQueryRunner.ts @@ -20,7 +20,7 @@ import { TemplateSrv } from 'app/features/templating/template_srv'; import { store } from 'app/store/store'; import { AppNotificationTimeout } from 'app/types'; -import { ThrottlingErrorMessage } from '../components/ThrottlingErrorMessage'; +import { ThrottlingErrorMessage } from '../components/Errors/ThrottlingErrorMessage'; import memoizedDebounce from '../memoizedDebounce'; import { migrateMetricQuery } from '../migrations/metricQueryMigrations'; import { diff --git a/public/app/plugins/datasource/cloudwatch/variables.ts b/public/app/plugins/datasource/cloudwatch/variables.ts index 43209b47efd..d912987b820 100644 --- a/public/app/plugins/datasource/cloudwatch/variables.ts +++ b/public/app/plugins/datasource/cloudwatch/variables.ts @@ -9,8 +9,8 @@ import { SelectableValue, } from '@grafana/data'; -import { ALL_ACCOUNTS_OPTION } from './components/Account'; import { VariableQueryEditor } from './components/VariableQueryEditor/VariableQueryEditor'; +import { ALL_ACCOUNTS_OPTION } from './components/shared/Account'; import { CloudWatchDatasource } from './datasource'; import { DEFAULT_VARIABLE_QUERY } from './defaultQueries'; import { migrateVariableQuery } from './migrations/variableQueryMigrations';