import { SharePluginStart , SharePluginSetup } from '../../../src/plugins/share/public' ; import { Plugin , CoreSetup , AppMountParameters , AppNavLinkStatus } from '../../../src/core/public' ; import { HelloLocator , HelloLocatorDefinition } from './locator' ; interface SetupDeps { share : SharePluginSetup ; } interface StartDeps { share : SharePluginStart ; } export interface LocatorExamplesSetup { locator : HelloLocator ; } export class LocatorExamplesPlugin implements Plugin < LocatorExamplesSetup , void , SetupDeps , StartDeps > { public setup ( core , plugins ) { const locator = plugins . share . url . locators . create ( new HelloLocatorDefinition ( ) ) ; core . application . register ( { id : 'locatorExamples' , title : 'Access links examples' , navLinkStatus : AppNavLinkStatus . hidden , async mount ( params ) { const { renderApp } = await import ( './app' ) ; return renderApp ( { appBasePath : params . appBasePath , } , params ) ; } , } ) ; return { locator , } ; } public start ( ) { } public stop ( ) { } }