diff --git a/src/platform/plugins/shared/discover/kibana.jsonc b/src/platform/plugins/shared/discover/kibana.jsonc index 2f72a39c27883..3f0f4f26540ad 100644 --- a/src/platform/plugins/shared/discover/kibana.jsonc +++ b/src/platform/plugins/shared/discover/kibana.jsonc @@ -56,7 +56,8 @@ "kibanaReact", "unifiedSearch", "savedObjects", - "presentationPanel" + "presentationPanel", + "esql" ], "extraPublicDirs": ["common"] } diff --git a/src/platform/plugins/shared/discover/moon.yml b/src/platform/plugins/shared/discover/moon.yml index f514a485455d2..53335ff12562a 100644 --- a/src/platform/plugins/shared/discover/moon.yml +++ b/src/platform/plugins/shared/discover/moon.yml @@ -132,6 +132,7 @@ dependsOn: - '@kbn/shared-ux-error-boundary' - '@kbn/core-chrome-app-menu' - '@kbn/es-query-constants' + - '@kbn/esql' tags: - plugin - prod diff --git a/src/platform/plugins/shared/discover/public/application/main/components/top_nav/discover_topnav.tsx b/src/platform/plugins/shared/discover/public/application/main/components/top_nav/discover_topnav.tsx index 1743a9ec09d3a..f9ccea807d09d 100644 --- a/src/platform/plugins/shared/discover/public/application/main/components/top_nav/discover_topnav.tsx +++ b/src/platform/plugins/shared/discover/public/application/main/components/top_nav/discover_topnav.tsx @@ -15,6 +15,7 @@ import { prepareDataViewForEditing, } from '@kbn/discover-utils'; import type { ESQLEditorRestorableState } from '@kbn/esql-editor'; +import { useESQLQueryStats } from '@kbn/esql/public'; import { type Filter, type Query, @@ -41,7 +42,6 @@ import { useInternalStateSelector, } from '../../state_management/redux'; import { DiscoverTopNavMenu } from './discover_topnav_menu'; -import { useESQLQueryStats } from './use_esql_query_stats'; import { ESQLToDataViewTransitionModal } from './esql_dataview_transition'; import { onSaveDiscoverSession } from './save_discover_session'; import { useDiscoverTopNav } from './use_discover_topnav'; diff --git a/src/platform/plugins/shared/discover/tsconfig.json b/src/platform/plugins/shared/discover/tsconfig.json index 419d7fe913f5b..82b330c0bf2f9 100644 --- a/src/platform/plugins/shared/discover/tsconfig.json +++ b/src/platform/plugins/shared/discover/tsconfig.json @@ -126,6 +126,7 @@ "@kbn/shared-ux-error-boundary", "@kbn/core-chrome-app-menu", "@kbn/es-query-constants", + "@kbn/esql", ], "exclude": ["target/**/*"] } diff --git a/src/platform/plugins/shared/esql/moon.yml b/src/platform/plugins/shared/esql/moon.yml index 1110530e2a8b2..6bd094048caff 100644 --- a/src/platform/plugins/shared/esql/moon.yml +++ b/src/platform/plugins/shared/esql/moon.yml @@ -48,6 +48,7 @@ dependsOn: - '@kbn/file-upload-plugin' - '@kbn/discover-utils' - '@kbn/kql' + - '@kbn/inspector-plugin' tags: - plugin - prod diff --git a/src/platform/plugins/shared/discover/public/application/main/components/top_nav/use_esql_query_stats.test.ts b/src/platform/plugins/shared/esql/public/hooks/use_esql_query_stats.test.ts similarity index 100% rename from src/platform/plugins/shared/discover/public/application/main/components/top_nav/use_esql_query_stats.test.ts rename to src/platform/plugins/shared/esql/public/hooks/use_esql_query_stats.test.ts diff --git a/src/platform/plugins/shared/discover/public/application/main/components/top_nav/use_esql_query_stats.ts b/src/platform/plugins/shared/esql/public/hooks/use_esql_query_stats.ts similarity index 96% rename from src/platform/plugins/shared/discover/public/application/main/components/top_nav/use_esql_query_stats.ts rename to src/platform/plugins/shared/esql/public/hooks/use_esql_query_stats.ts index 636671b3b21fc..9b603719501af 100644 --- a/src/platform/plugins/shared/discover/public/application/main/components/top_nav/use_esql_query_stats.ts +++ b/src/platform/plugins/shared/esql/public/hooks/use_esql_query_stats.ts @@ -29,7 +29,7 @@ export function useESQLQueryStats( durationInMs: stats.queryTime?.value, totalDocumentsProcessed: stats.documentsProcessed?.value, }; - setQueryStats((currentStats) => { + setQueryStats((currentStats: ESQLQueryStats | undefined) => { if (!isEqual(currentStats, updatedStats)) { return updatedStats; } diff --git a/src/platform/plugins/shared/esql/public/index.ts b/src/platform/plugins/shared/esql/public/index.ts index 0732399e6d46f..6a58de4f6a700 100644 --- a/src/platform/plugins/shared/esql/public/index.ts +++ b/src/platform/plugins/shared/esql/public/index.ts @@ -11,6 +11,7 @@ import type { PluginInitializerContext } from '@kbn/core/public'; import { EsqlPlugin, type EsqlPluginStart } from './plugin'; export { ESQLLangEditor } from './create_editor'; +export { useESQLQueryStats } from './hooks/use_esql_query_stats'; export type { ESQLEditorProps, DataErrorsControl } from '@kbn/esql-editor'; export type { EsqlPluginStart }; diff --git a/src/platform/plugins/shared/esql/tsconfig.json b/src/platform/plugins/shared/esql/tsconfig.json index 1315e587c6028..5521826c9bf9c 100644 --- a/src/platform/plugins/shared/esql/tsconfig.json +++ b/src/platform/plugins/shared/esql/tsconfig.json @@ -39,6 +39,7 @@ "@kbn/file-upload-plugin", "@kbn/discover-utils", "@kbn/kql", + "@kbn/inspector-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/platform/plugins/shared/lens/public/editor_frame_service/editor_frame/config_panel/esql_editor.tsx b/x-pack/platform/plugins/shared/lens/public/editor_frame_service/editor_frame/config_panel/esql_editor.tsx index 76779d0b5953f..7ef285ff81c2a 100644 --- a/x-pack/platform/plugins/shared/lens/public/editor_frame_service/editor_frame/config_panel/esql_editor.tsx +++ b/x-pack/platform/plugins/shared/lens/public/editor_frame_service/editor_frame/config_panel/esql_editor.tsx @@ -15,8 +15,8 @@ import type { CoreStart, IUiSettingsClient } from '@kbn/core/public'; import { isEqual } from 'lodash'; import type { MutableRefObject } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { ESQLLangEditor } from '@kbn/esql/public'; -import { type ESQLControlVariable } from '@kbn/esql-types'; +import { ESQLLangEditor, useESQLQueryStats } from '@kbn/esql/public'; +import { type ESQLControlVariable, type ESQLQueryStats } from '@kbn/esql-types'; import { i18n } from '@kbn/i18n'; import React from 'react'; import type { DataViewSpec } from '@kbn/data-views-plugin/common'; @@ -116,6 +116,7 @@ export function ESQLEditor({ const previousAdapters = useRef | undefined>(lensAdapters); const { esqlVariables } = useFetchContext({ uuid: panelId, parentApi }); + const esqlQueryStats = useESQLQueryStats(isTextBasedLanguage, lensAdapters?.requests); const dispatch = useLensDispatch(); @@ -213,6 +214,7 @@ export function ESQLEditor({ isVisualizationLoading={isVisualizationLoading} setIsVisualizationLoading={setIsVisualizationLoading} esqlVariables={esqlVariables} + queryStats={esqlQueryStats} closeFlyout={closeFlyout} panelId={panelId} attributes={attributes} @@ -260,6 +262,7 @@ type InnerEditorProps = Simplify< suggestsLimitedColumns: boolean; adHocDataViews: DataViewSpec[]; esqlVariables: ESQLControlVariable[] | undefined; + queryStats?: ESQLQueryStats; } & Pick >; @@ -278,6 +281,7 @@ function InnerESQLEditor({ prevQuery, runQuery, esqlVariables, + queryStats, }: InnerEditorProps) { const { euiTheme } = useEuiTheme(); const { onSaveControl, onCancelControl } = useESQLVariables({ @@ -325,6 +329,7 @@ function InnerESQLEditor({ onCancelControl, }} esqlVariables={esqlVariables} + queryStats={queryStats} />