import { AppMountParameters , AppNavLinkStatus , CoreSetup , CoreStart , Plugin , } from '../../../src/core/public' ; import { AppPluginSetupDependencies , AppPluginStartDependencies , SearchExamplesPluginSetup , SearchExamplesPluginStart , } from './types' ; import { SearchSessionsExamplesAppLocatorDefinition } from './search_sessions/app_locator' ; import { PLUGIN_NAME } from '../common' ; import img from './search_examples.png' ; export class SearchExamplesPlugin implements Plugin < SearchExamplesPluginSetup , SearchExamplesPluginStart , AppPluginSetupDependencies , AppPluginStartDependencies > { public setup ( core , { developerExamples , share } ) { core . application . register ( { id : 'searchExamples' , title : PLUGIN_NAME , navLinkStatus : AppNavLinkStatus . hidden , mount : async ( params ) => { const { renderApp } = await import ( './application' ) ; const [ coreStart , depsStart ] = await core . getStartServices ( ) ; return renderApp ( coreStart , depsStart , params ) ; } , } ) ; developerExamples . register ( { appId : 'searchExamples' , title : 'Search Examples' , description : `Examples on searching elasticsearch using data plugin: low-level search client (data.search.search), high-level search client (SearchSource), search sessions (data.search.sessions)` , image : img , links : [ { label : 'README' , href : 'https://github.com/elastic/kibana/tree/main/src/plugins/data/README.mdx' , iconType : 'logoGithub' , target : '_blank' , size : 's' , } , ] , } ) ; const getAppBasePath = ( ) => core . getStartServices ( ) . then ( ( [ coreStart ] ) => coreStart . http . basePath . get ( ) ) ; share . url . locators . create ( new SearchSessionsExamplesAppLocatorDefinition ( getAppBasePath ) ) ; return { } ; } public start ( core ) { return { } ; } public stop ( ) { } }