2025-05-11 17:47:30 +05:30
|
|
|
import './QueryBuilderV2.styles.scss';
|
|
|
|
|
|
2025-05-16 02:48:03 +05:30
|
|
|
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
|
|
|
|
|
import { DataSource } from 'types/common/queryBuilder';
|
2025-05-11 17:47:30 +05:30
|
|
|
|
2025-05-16 02:48:03 +05:30
|
|
|
import MetricsAggregateSection from './Metrics/MerticsAggregateSection/MetricsAggregateSection';
|
|
|
|
|
import { MetricsSelect } from './Metrics/MetricsSelect/MetricsSelect';
|
2025-05-11 17:47:30 +05:30
|
|
|
import QueryAddOns from './QueryAddOns/QueryAddOns';
|
2025-05-13 16:31:37 +05:30
|
|
|
import QueryAggregation from './QueryAggregation/QueryAggregation';
|
2025-05-14 16:43:28 +05:30
|
|
|
import { QueryBuilderV2Provider } from './QueryBuilderV2Context';
|
2025-05-11 17:47:30 +05:30
|
|
|
import QuerySearch from './QuerySearch/QuerySearch';
|
2025-04-26 23:53:30 +05:30
|
|
|
|
2025-05-16 02:48:03 +05:30
|
|
|
type QueryBuilderV2Props = {
|
|
|
|
|
source: DataSource;
|
|
|
|
|
query: IBuilderQuery;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function QueryBuilderV2Main({
|
|
|
|
|
source,
|
|
|
|
|
query,
|
|
|
|
|
}: QueryBuilderV2Props): JSX.Element {
|
|
|
|
|
const isMetricsDataSource = query.dataSource === DataSource.METRICS;
|
2025-05-11 17:47:30 +05:30
|
|
|
|
2025-04-26 23:53:30 +05:30
|
|
|
return (
|
|
|
|
|
<div className="query-builder-v2">
|
2025-05-16 02:48:03 +05:30
|
|
|
{isMetricsDataSource && (
|
|
|
|
|
<MetricsSelect query={query} index={0} version="v4" />
|
|
|
|
|
)}
|
|
|
|
|
|
2025-05-11 17:47:30 +05:30
|
|
|
<QuerySearch />
|
2025-05-16 02:48:03 +05:30
|
|
|
|
|
|
|
|
{isMetricsDataSource ? (
|
|
|
|
|
<MetricsAggregateSection query={query} index={0} version="v4" />
|
|
|
|
|
) : (
|
|
|
|
|
<QueryAggregation source={source} />
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<QueryAddOns query={query} version="v3" isListViewPanel={false} />
|
2025-04-26 23:53:30 +05:30
|
|
|
</div>
|
|
|
|
|
);
|
2025-04-26 20:44:43 +05:30
|
|
|
}
|
|
|
|
|
|
2025-05-16 02:48:03 +05:30
|
|
|
function QueryBuilderV2(props: QueryBuilderV2Props): JSX.Element {
|
|
|
|
|
const { source, query } = props;
|
|
|
|
|
|
2025-05-14 16:43:28 +05:30
|
|
|
return (
|
|
|
|
|
<QueryBuilderV2Provider>
|
2025-05-16 02:48:03 +05:30
|
|
|
<QueryBuilderV2Main source={source} query={query} />
|
2025-05-14 16:43:28 +05:30
|
|
|
</QueryBuilderV2Provider>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-04-26 20:44:43 +05:30
|
|
|
export default QueryBuilderV2;
|