diff --git a/examples/controls_example/public/app/app.tsx b/examples/controls_example/public/app/app.tsx index 9c6df503700b6..9659b0fa47749 100644 --- a/examples/controls_example/public/app/app.tsx +++ b/examples/controls_example/public/app/app.tsx @@ -48,7 +48,7 @@ const App = ({ } return ( - + diff --git a/examples/controls_example/public/app/react_control_example/react_control_example.tsx b/examples/controls_example/public/app/react_control_example/react_control_example.tsx index 7ba409e83c0e3..30111c21f1927 100644 --- a/examples/controls_example/public/app/react_control_example/react_control_example.tsx +++ b/examples/controls_example/public/app/react_control_example/react_control_example.tsx @@ -315,10 +315,7 @@ export const ReactControlExample = ({ {JSON.stringify(controlGroupApi?.serializeState(), null, 2)} , - { - theme: core.theme, - i18n: core.i18n, - } + core ) ); }} diff --git a/examples/discover_customization_examples/public/plugin.tsx b/examples/discover_customization_examples/public/plugin.tsx index 6dc6e8f48da58..21c1af505d7d9 100644 --- a/examples/discover_customization_examples/public/plugin.tsx +++ b/examples/discover_customization_examples/public/plugin.tsx @@ -52,11 +52,11 @@ export class DiscoverCustomizationExamplesPlugin implements Plugin { title: PLUGIN_NAME, visibleIn: [], mount: async (appMountParams) => { - const [_, { discover, data }] = await core.getStartServices(); + const [{ userProfile }, { discover, data }] = await core.getStartServices(); ReactDOM.render( - + diff --git a/examples/embeddable_examples/public/app/app.tsx b/examples/embeddable_examples/public/app/app.tsx index f59169849e9f0..97389830552a8 100644 --- a/examples/embeddable_examples/public/app/app.tsx +++ b/examples/embeddable_examples/public/app/app.tsx @@ -81,7 +81,7 @@ const App = ({ }, [pages]); return ( - + diff --git a/examples/embeddable_examples/public/react_embeddables/data_table/data_table_react_embeddable.tsx b/examples/embeddable_examples/public/react_embeddables/data_table/data_table_react_embeddable.tsx index 40bb9186e16a5..647c3884b4d0f 100644 --- a/examples/embeddable_examples/public/react_embeddables/data_table/data_table_react_embeddable.tsx +++ b/examples/embeddable_examples/public/react_embeddables/data_table/data_table_react_embeddable.tsx @@ -99,7 +99,7 @@ export const getDataTableFactory = ( width: 100%; `} > - + , - { - theme: core.theme, - i18n: core.i18n, - } + core ), { type: isCreate ? 'overlay' : 'push', diff --git a/examples/expressions_explorer/public/app.tsx b/examples/expressions_explorer/public/app.tsx index 638767ed72a35..0f5f1775fca86 100644 --- a/examples/expressions_explorer/public/app.tsx +++ b/examples/expressions_explorer/public/app.tsx @@ -24,6 +24,7 @@ import { I18nStart, IUiSettingsClient, ThemeServiceStart, + UserProfileService, } from '@kbn/core/public'; import { ExpressionsStart } from '@kbn/expressions-plugin/public'; import { Start as InspectorStart } from '@kbn/inspector-plugin/public'; @@ -41,6 +42,7 @@ interface Props { inspector: InspectorStart; actions: UiActionsStart; uiSettings: IUiSettingsClient; + userProfile: UserProfileService; settings: SettingsStart; theme: ThemeServiceStart; i18n: I18nStart; @@ -54,13 +56,14 @@ const ExpressionsExplorer = ({ settings, i18n, theme, + userProfile, }: Props) => { const { Provider: KibanaReactContextProvider } = createKibanaReactContext({ uiSettings, settings, theme, }); - const startServices = { i18n, theme }; + const startServices = { i18n, theme, userProfile }; return ( diff --git a/examples/expressions_explorer/public/plugin.tsx b/examples/expressions_explorer/public/plugin.tsx index b0030d1c00aaa..d03008bb16534 100644 --- a/examples/expressions_explorer/public/plugin.tsx +++ b/examples/expressions_explorer/public/plugin.tsx @@ -58,6 +58,7 @@ export class ExpressionsExplorerPlugin implements Plugin, - { - theme: coreStart.theme, - i18n: coreStart.i18n, - } + coreStart ) ); }); diff --git a/examples/portable_dashboards_example/public/app.tsx b/examples/portable_dashboards_example/public/app.tsx index c68b612c31193..04a42de836904 100644 --- a/examples/portable_dashboards_example/public/app.tsx +++ b/examples/portable_dashboards_example/public/app.tsx @@ -56,7 +56,7 @@ const PortableDashboardsDemos = ({ history: AppMountParameters['history']; }) => { return ( - + diff --git a/examples/resizable_layout_examples/public/application.tsx b/examples/resizable_layout_examples/public/application.tsx index 7637cf2a79c66..90065dc3f704d 100644 --- a/examples/resizable_layout_examples/public/application.tsx +++ b/examples/resizable_layout_examples/public/application.tsx @@ -8,7 +8,7 @@ */ import { KibanaThemeProvider } from '@kbn/react-kibana-context-theme'; -import type { AppMountParameters } from '@kbn/core/public'; +import type { AppMountParameters, CoreStart } from '@kbn/core/public'; import { I18nProvider } from '@kbn/i18n-react'; import React, { ReactNode, useState } from 'react'; import ReactDOM from 'react-dom'; @@ -98,10 +98,10 @@ const ResizableSection = ({ ); }; -export const renderApp = ({ element, theme$ }: AppMountParameters) => { +export const renderApp = (coreStart: CoreStart, { element }: AppMountParameters) => { ReactDOM.render( - +
{ + const [coreStart] = await core.getStartServices(); // Load application bundle const { renderApp } = await import('./application'); // Render the application - return renderApp(params); + return renderApp(coreStart, params); }, }); diff --git a/examples/search_examples/public/search/app.tsx b/examples/search_examples/public/search/app.tsx index 6639d446e80ec..c1ffceb561fe4 100644 --- a/examples/search_examples/public/search/app.tsx +++ b/examples/search_examples/public/search/app.tsx @@ -43,7 +43,10 @@ import { PLUGIN_ID, PLUGIN_NAME, SERVER_SEARCH_ROUTE_PATH } from '../../common'; import { IMyStrategyResponse } from '../../common/types'; interface SearchExamplesAppDeps - extends Pick { + extends Pick< + CoreStart, + 'notifications' | 'http' | 'analytics' | 'i18n' | 'theme' | 'userProfile' + > { navigation: NavigationPublicPluginStart; data: DataPublicPluginStart; unifiedSearch: UnifiedSearchPublicPluginStart; @@ -230,13 +233,8 @@ export const SearchExamplesApp = ({ ); notifications.toasts.addSuccess( - { - title: 'Query result', - text: toMountPoint(message, startServices), - }, - { - toastLifeTimeMs: 300000, - } + { title: 'Query result', text: toMountPoint(message, startServices) }, + { toastLifeTimeMs: 300000 } ); if (res.warning) { notifications.toasts.addWarning({ diff --git a/examples/search_examples/public/search_sessions/app.tsx b/examples/search_examples/public/search_sessions/app.tsx index 5fcb0e326c8b8..aca66a3953524 100644 --- a/examples/search_examples/public/search_sessions/app.tsx +++ b/examples/search_examples/public/search_sessions/app.tsx @@ -56,6 +56,7 @@ interface SearchSessionsExampleAppDeps { analytics: CoreStart['analytics']; i18n: CoreStart['i18n']; theme: CoreStart['theme']; + userProfile: CoreStart['userProfile']; navigation: NavigationPublicPluginStart; data: DataPublicPluginStart; unifiedSearch: UnifiedSearchPublicPluginStart; @@ -674,6 +675,7 @@ function doSearch( analytics: CoreStart['analytics']; i18n: CoreStart['i18n']; theme: CoreStart['theme']; + userProfile: CoreStart['userProfile']; } ): Promise<{ request: IEsSearchRequest; response: IEsSearchResponse; tookMs?: number }> { if (!dataView) return Promise.reject('Select a data view'); diff --git a/examples/unified_field_list_examples/public/application.tsx b/examples/unified_field_list_examples/public/application.tsx index 6cbdc8242b6be..fa1a936d66893 100644 --- a/examples/unified_field_list_examples/public/application.tsx +++ b/examples/unified_field_list_examples/public/application.tsx @@ -18,11 +18,11 @@ import { UnifiedFieldListExampleApp } from './example_app'; export const renderApp = ( core: CoreStart, deps: AppPluginStartDependencies, - { element, theme$ }: AppMountParameters + { element }: AppMountParameters ) => { ReactDOM.render( - + ; +export type StartServices = Pick; export type ExpressionXyPluginSetup = void; export type ExpressionXyPluginStart = void; diff --git a/src/plugins/controls/public/control_group/open_edit_control_group_flyout.tsx b/src/plugins/controls/public/control_group/open_edit_control_group_flyout.tsx index 459913d98de0b..52a19aef8b1e0 100644 --- a/src/plugins/controls/public/control_group/open_edit_control_group_flyout.tsx +++ b/src/plugins/controls/public/control_group/open_edit_control_group_flyout.tsx @@ -92,10 +92,7 @@ export const openEditControlGroupFlyout = ( onDeleteAll={() => onDeleteAll(overlay)} onCancel={() => closeOverlay(overlay)} />, - { - theme: coreServices.theme, - i18n: coreServices.i18n, - } + coreServices ), { 'aria-label': i18n.translate('controls.controlGroup.manageControl', { diff --git a/src/plugins/controls/public/controls/data_controls/open_data_control_editor.tsx b/src/plugins/controls/public/controls/data_controls/open_data_control_editor.tsx index c01f9aa83cea9..c34af20001de8 100644 --- a/src/plugins/controls/public/controls/data_controls/open_data_control_editor.tsx +++ b/src/plugins/controls/public/controls/data_controls/open_data_control_editor.tsx @@ -91,10 +91,7 @@ export const openDataControlEditor = < onSave({ type: selectedControlType, state }); }} />, - { - theme: coreServices.theme, - i18n: coreServices.i18n, - } + coreServices ), { size: 'm', diff --git a/src/plugins/dashboard/public/dashboard_actions/copy_to_dashboard_action.tsx b/src/plugins/dashboard/public/dashboard_actions/copy_to_dashboard_action.tsx index 10b21fc36edcc..9b3e9a536a86a 100644 --- a/src/plugins/dashboard/public/dashboard_actions/copy_to_dashboard_action.tsx +++ b/src/plugins/dashboard/public/dashboard_actions/copy_to_dashboard_action.tsx @@ -83,12 +83,11 @@ export class CopyToDashboardAction implements Action { public async execute({ embeddable }: EmbeddableApiContext) { if (!apiIsCompatible(embeddable)) throw new IncompatibleActionError(); - const { theme, i18n } = coreServices; const session = coreServices.overlays.openModal( - toMountPoint( session.close()} api={embeddable} />, { - theme, - i18n, - }), + toMountPoint( + session.close()} api={embeddable} />, + coreServices + ), { maxWidth: 400, 'data-test-subj': 'copyToDashboardPanel', diff --git a/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx index 3ad35d34b7fd1..d68c4a76e9f78 100644 --- a/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx +++ b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx @@ -49,7 +49,7 @@ export const DashboardNoMatch = ({ history }: { history: RouteComponentProps['hi />

, - { analytics: coreServices.analytics, i18n: coreServices.i18n, theme: coreServices.theme } + coreServices ) ); diff --git a/src/plugins/dashboard/public/dashboard_app/top_nav/editor_menu.tsx b/src/plugins/dashboard/public/dashboard_app/top_nav/editor_menu.tsx index cf7f9c65c6618..6d052225d6fba 100644 --- a/src/plugins/dashboard/public/dashboard_app/top_nav/editor_menu.tsx +++ b/src/plugins/dashboard/public/dashboard_app/top_nav/editor_menu.tsx @@ -57,7 +57,7 @@ export const EditorMenu = ({ createNewVisType, isDisabled }: EditorMenuProps) => /> ); }), - { analytics: coreServices.analytics, theme: coreServices.theme, i18n: coreServices.i18n } + coreServices ); dashboardApi.openOverlay( diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/api/open_settings_flyout.tsx b/src/plugins/dashboard/public/dashboard_container/embeddable/api/open_settings_flyout.tsx index 867e6ae9d0477..0f78bcc96a975 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/api/open_settings_flyout.tsx +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/api/open_settings_flyout.tsx @@ -27,7 +27,7 @@ export function openSettingsFlyout(dashboardApi: DashboardApi) { }} /> , - { analytics: coreServices.analytics, i18n: coreServices.i18n, theme: coreServices.theme } + coreServices ), { size: 's', diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx index 99f4fb7c2fa90..eb3b9e514293d 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx @@ -461,11 +461,7 @@ export class DashboardContainer this.domNode.className = 'dashboardContainer'; ReactDOM.render( - + diff --git a/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx b/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx index f3dac2e9bb624..a2adea2470abb 100644 --- a/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx +++ b/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx @@ -112,7 +112,7 @@ export const confirmCreateWithUnsaved = (
, - { analytics: coreServices.analytics, i18n: coreServices.i18n, theme: coreServices.theme } + coreServices ), { 'data-test-subj': 'dashboardCreateConfirmModal', diff --git a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts index 458171e64a1d3..ab6a4c67d6727 100644 --- a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts +++ b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts @@ -47,6 +47,7 @@ import type { IUiSettingsClient, ThemeServiceStart, ToastsSetup, + UserProfileService, } from '@kbn/core/public'; import { BatchedFunc, BfetchPublicSetup, DISABLE_BFETCH } from '@kbn/bfetch-plugin/public'; @@ -135,6 +136,7 @@ export class SearchInterceptor { analytics: Pick; i18n: I18nStart; theme: Pick; + userProfile: UserProfileService; }; /* @@ -144,10 +146,10 @@ export class SearchInterceptor { this.deps.http.addLoadingCountSource(this.pendingCount$); this.deps.startServices.then(([coreStart, depsStart]) => { - const { application, docLinks, analytics, i18n: i18nStart, theme } = coreStart; + const { application, docLinks, analytics, i18n: i18nStart, theme, userProfile } = coreStart; this.application = application; this.docLinks = docLinks; - this.startRenderServices = { analytics, i18n: i18nStart, theme }; + this.startRenderServices = { analytics, i18n: i18nStart, theme, userProfile }; this.inspector = (depsStart as SearchServiceStartDependencies).inspector; }); diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index 279e9cddc8986..3a3c756cd1f00 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -231,6 +231,7 @@ export class SearchService implements Plugin { http, theme, uiSettings, + userProfile, chrome, application, notifications, @@ -259,6 +260,7 @@ export class SearchService implements Plugin { inspector, notifications, theme, + userProfile, }; const searchSourceDependencies: SearchSourceDependencies = { @@ -314,7 +316,7 @@ export class SearchService implements Plugin { tourDisabled: screenshotMode.isScreenshotMode(), }) ), - { analytics, i18n: i18nStart, theme } + { analytics, i18n: i18nStart, theme, userProfile } ), }); } diff --git a/src/plugins/data/public/search/session/sessions_mgmt/application/render.tsx b/src/plugins/data/public/search/session/sessions_mgmt/application/render.tsx index f786819044061..4c375be8534c4 100644 --- a/src/plugins/data/public/search/session/sessions_mgmt/application/render.tsx +++ b/src/plugins/data/public/search/session/sessions_mgmt/application/render.tsx @@ -16,7 +16,7 @@ import { SearchSessionsMgmtMain } from '../components/main'; export const renderApp = ( elem: HTMLElement | null, - { i18n, uiSettings, ...homeDeps }: AppDependencies + { uiSettings, ...homeDeps }: AppDependencies ) => { if (!elem) { return () => undefined; @@ -28,7 +28,7 @@ export const renderApp = ( }); render( - + diff --git a/src/plugins/data_view_management/public/types.ts b/src/plugins/data_view_management/public/types.ts index 161ee3b1e21de..eaee8b28d6145 100644 --- a/src/plugins/data_view_management/public/types.ts +++ b/src/plugins/data_view_management/public/types.ts @@ -33,7 +33,7 @@ import { SharePluginStart } from '@kbn/share-plugin/public'; import type { IndexPatternManagementStart } from '.'; import type { DataViewMgmtService } from './management_app/data_view_management_service'; -export type StartServices = Pick; +export type StartServices = Pick; export interface IndexPatternManagmentContext extends StartServices { dataViewMgmtService: DataViewMgmtService; diff --git a/src/plugins/discover/public/application/main/discover_main_route.tsx b/src/plugins/discover/public/application/main/discover_main_route.tsx index 205926cf4943b..c88774d6f9e11 100644 --- a/src/plugins/discover/public/application/main/discover_main_route.tsx +++ b/src/plugins/discover/public/application/main/discover_main_route.tsx @@ -206,7 +206,7 @@ export function DiscoverMainRoute({ onBeforeRedirect() { services.urlTracker.setTrackedUrl('/'); }, - theme: core.theme, + ...core, })(e); } else { setError(e); @@ -222,8 +222,7 @@ export function DiscoverMainRoute({ services, chrome.recentlyAccessed, history, - core.application.navigateToApp, - core.theme, + core, basePath, toastNotifications, ] diff --git a/src/plugins/discover/public/build_services.ts b/src/plugins/discover/public/build_services.ts index df194bc03fa0f..43f8e934511fc 100644 --- a/src/plugins/discover/public/build_services.ts +++ b/src/plugins/discover/public/build_services.ts @@ -97,6 +97,7 @@ export interface DiscoverServices { getScopedHistory: () => ScopedHistory | undefined; setHeaderActionMenu: AppMountParameters['setHeaderActionMenu']; theme: CoreStart['theme']; + userProfile: CoreStart['userProfile']; filterManager: FilterManager; fieldFormats: FieldFormatsStart; dataViews: DataViewsContract; @@ -185,6 +186,7 @@ export const buildServices = memoize( embeddable: plugins.embeddable, i18n: core.i18n, theme: core.theme, + userProfile: core.userProfile, fieldFormats: plugins.fieldFormats, filterManager: plugins.data.query.filterManager, history, diff --git a/src/plugins/expression_error/public/expression_renderers/__stories__/error_renderer.stories.tsx b/src/plugins/expression_error/public/expression_renderers/__stories__/error_renderer.stories.tsx index b7f789f873de3..ea28ff903582c 100644 --- a/src/plugins/expression_error/public/expression_renderers/__stories__/error_renderer.stories.tsx +++ b/src/plugins/expression_error/public/expression_renderers/__stories__/error_renderer.stories.tsx @@ -19,7 +19,5 @@ storiesOf('renderers/error', module).add('default', () => { error: thrownError, }; - return ( - - ); + return ; }); diff --git a/src/plugins/expression_error/public/expression_renderers/debug_renderer.tsx b/src/plugins/expression_error/public/expression_renderers/debug_renderer.tsx index 29fa69aa736b4..e26aa7c4a5160 100644 --- a/src/plugins/expression_error/public/expression_renderers/debug_renderer.tsx +++ b/src/plugins/expression_error/public/expression_renderers/debug_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition } from '@kbn/expressions-plugin/common'; import { i18n } from '@kbn/i18n'; import { withSuspense } from '@kbn/presentation-util-plugin/public'; @@ -36,25 +35,24 @@ const strings = { }), }; -export const getDebugRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ - name: 'debug', - displayName: strings.getDisplayName(), - help: strings.getHelpDescription(), - reuseDomNode: true, - render(domNode, config, handlers) { - handlers.onDestroy(() => unmountComponentAtNode(domNode)); - render( - - - - - - - , - domNode - ); - }, - }); +export const getDebugRenderer = (core: CoreStart) => (): ExpressionRenderDefinition => ({ + name: 'debug', + displayName: strings.getDisplayName(), + help: strings.getHelpDescription(), + reuseDomNode: true, + render(domNode, config, handlers) { + handlers.onDestroy(() => unmountComponentAtNode(domNode)); + render( + + + + + + + , + domNode + ); + }, +}); -export const debugRendererFactory = (core: CoreSetup) => getDebugRenderer(core.theme.theme$); +export const debugRendererFactory = (core: CoreStart) => getDebugRenderer(core); diff --git a/src/plugins/expression_error/public/expression_renderers/error_renderer.tsx b/src/plugins/expression_error/public/expression_renderers/error_renderer.tsx index 4ba3daa15d08c..9d352926bd9d4 100644 --- a/src/plugins/expression_error/public/expression_renderers/error_renderer.tsx +++ b/src/plugins/expression_error/public/expression_renderers/error_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { I18nProvider } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import { @@ -38,7 +37,7 @@ const errorStrings = { const ErrorComponent = withSuspense(LazyErrorRenderComponent); export const getErrorRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'error', displayName: errorStrings.getDisplayName(), help: errorStrings.getHelpDescription(), @@ -55,7 +54,7 @@ export const getErrorRenderer = render( - + @@ -67,4 +66,4 @@ export const getErrorRenderer = }, }); -export const errorRendererFactory = (core: CoreSetup) => getErrorRenderer(core.theme.theme$); +export const errorRendererFactory = (core: CoreStart) => getErrorRenderer(core); diff --git a/src/plugins/expression_error/public/plugin.ts b/src/plugins/expression_error/public/plugin.ts index 66b5209267599..180a6209f4da5 100755 --- a/src/plugins/expression_error/public/plugin.ts +++ b/src/plugins/expression_error/public/plugin.ts @@ -26,8 +26,10 @@ export class ExpressionErrorPlugin implements Plugin { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionErrorPluginSetup { - expressions.registerRenderer(errorRendererFactory(core)); - expressions.registerRenderer(debugRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerRenderer(errorRendererFactory(start)); + expressions.registerRenderer(debugRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionErrorPluginStart {} diff --git a/src/plugins/expression_image/public/expression_renderers/__stories__/image_renderer.stories.tsx b/src/plugins/expression_image/public/expression_renderers/__stories__/image_renderer.stories.tsx index 07fb4db558bd5..1577ee8b7fabf 100644 --- a/src/plugins/expression_image/public/expression_renderers/__stories__/image_renderer.stories.tsx +++ b/src/plugins/expression_image/public/expression_renderers/__stories__/image_renderer.stories.tsx @@ -23,7 +23,7 @@ const Renderer = ({ elasticLogo }: { elasticLogo: string }) => { return ( ) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'image', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -62,7 +61,7 @@ export const getImageRenderer = render( - +
@@ -73,4 +72,4 @@ export const getImageRenderer = }, }); -export const imageRendererFactory = (core: CoreSetup) => getImageRenderer(core.theme.theme$); +export const imageRendererFactory = (core: CoreStart) => getImageRenderer(core); diff --git a/src/plugins/expression_image/public/plugin.ts b/src/plugins/expression_image/public/plugin.ts index 4ee0b457b4f61..e9fac6f9215c6 100755 --- a/src/plugins/expression_image/public/plugin.ts +++ b/src/plugins/expression_image/public/plugin.ts @@ -27,8 +27,10 @@ export class ExpressionImagePlugin implements Plugin { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionImagePluginSetup { - expressions.registerFunction(imageFunction); - expressions.registerRenderer(imageRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerFunction(imageFunction); + expressions.registerRenderer(imageRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionImagePluginStart {} diff --git a/src/plugins/expression_metric/public/expression_renderers/__stories__/metric_renderer.stories.tsx b/src/plugins/expression_metric/public/expression_renderers/__stories__/metric_renderer.stories.tsx index 5438bb4b4287a..9c8e5d17dc3bb 100644 --- a/src/plugins/expression_metric/public/expression_renderers/__stories__/metric_renderer.stories.tsx +++ b/src/plugins/expression_metric/public/expression_renderers/__stories__/metric_renderer.stories.tsx @@ -38,7 +38,7 @@ const metricFontSpec: CSSProperties = { color: '#b83c6f', }; -const theme$ = coreMock.createStart().theme.theme$; +const core = coreMock.createStart(); storiesOf('renderers/Metric', module) .add('with null metric', () => { @@ -49,7 +49,7 @@ storiesOf('renderers/Metric', module) label: '', metricFormat: '', }; - return ; + return ; }) .add('with number metric', () => { const config: MetricRendererConfig = { @@ -59,7 +59,7 @@ storiesOf('renderers/Metric', module) label: '', metricFormat: '', }; - return ; + return ; }) .add('with string metric', () => { const config: MetricRendererConfig = { @@ -69,7 +69,7 @@ storiesOf('renderers/Metric', module) label: '', metricFormat: '', }; - return ; + return ; }) .add('with label', () => { const config: MetricRendererConfig = { @@ -79,7 +79,7 @@ storiesOf('renderers/Metric', module) label: 'Average price', metricFormat: '', }; - return ; + return ; }) .add('with number metric and a specified format', () => { const config: MetricRendererConfig = { @@ -89,7 +89,7 @@ storiesOf('renderers/Metric', module) label: 'Average price', metricFormat: '0.00%', }; - return ; + return ; }) .add('with formatted string metric and a specified format', () => { const config: MetricRendererConfig = { @@ -99,7 +99,7 @@ storiesOf('renderers/Metric', module) label: 'Total Revenue', metricFormat: '$0a', }; - return ; + return ; }) .add('with invalid metricFont', () => { const config: MetricRendererConfig = { @@ -109,5 +109,5 @@ storiesOf('renderers/Metric', module) label: 'Total Revenue', metricFormat: '$0a', }; - return ; + return ; }); diff --git a/src/plugins/expression_metric/public/expression_renderers/metric_renderer.tsx b/src/plugins/expression_metric/public/expression_renderers/metric_renderer.tsx index db4b8575d5e26..315cf1fca32a2 100644 --- a/src/plugins/expression_metric/public/expression_renderers/metric_renderer.tsx +++ b/src/plugins/expression_metric/public/expression_renderers/metric_renderer.tsx @@ -9,9 +9,8 @@ import React, { CSSProperties } from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition, IInterpreterRenderHandlers, @@ -33,7 +32,7 @@ const strings = { }; export const getMetricRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'metric', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -51,7 +50,7 @@ export const getMetricRenderer = render( - + getMetricRenderer(core.theme.theme$); +export const metricRendererFactory = (core: CoreStart) => getMetricRenderer(core); diff --git a/src/plugins/expression_metric/public/plugin.ts b/src/plugins/expression_metric/public/plugin.ts index ce5bd9069ca21..0bcf71a93b484 100755 --- a/src/plugins/expression_metric/public/plugin.ts +++ b/src/plugins/expression_metric/public/plugin.ts @@ -27,8 +27,10 @@ export class ExpressionMetricPlugin implements Plugin { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionMetricPluginSetup { - expressions.registerFunction(metricFunction); - expressions.registerRenderer(metricRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerFunction(metricFunction); + expressions.registerRenderer(metricRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionMetricPluginStart {} diff --git a/src/plugins/expression_repeat_image/public/expression_renderers/__stories__/repeat_image_renderer.stories.tsx b/src/plugins/expression_repeat_image/public/expression_renderers/__stories__/repeat_image_renderer.stories.tsx index a5f58b97970cf..31ae794d234a4 100644 --- a/src/plugins/expression_repeat_image/public/expression_renderers/__stories__/repeat_image_renderer.stories.tsx +++ b/src/plugins/expression_repeat_image/public/expression_renderers/__stories__/repeat_image_renderer.stories.tsx @@ -32,7 +32,7 @@ const Renderer = ({ return ( diff --git a/src/plugins/expression_repeat_image/public/expression_renderers/repeat_image_renderer.tsx b/src/plugins/expression_repeat_image/public/expression_renderers/repeat_image_renderer.tsx index 9a35459880889..9aed56e999c3f 100644 --- a/src/plugins/expression_repeat_image/public/expression_renderers/repeat_image_renderer.tsx +++ b/src/plugins/expression_repeat_image/public/expression_renderers/repeat_image_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition, IInterpreterRenderHandlers, @@ -35,7 +34,7 @@ const strings = { }; export const getRepeatImageRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'repeatImage', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -60,7 +59,7 @@ export const getRepeatImageRenderer = render( - + @@ -72,5 +71,4 @@ export const getRepeatImageRenderer = }, }); -export const repeatImageRendererFactory = (core: CoreSetup) => - getRepeatImageRenderer(core.theme.theme$); +export const repeatImageRendererFactory = (core: CoreStart) => getRepeatImageRenderer(core); diff --git a/src/plugins/expression_repeat_image/public/plugin.ts b/src/plugins/expression_repeat_image/public/plugin.ts index c9421c76895ba..f66ae96a8b7c1 100755 --- a/src/plugins/expression_repeat_image/public/plugin.ts +++ b/src/plugins/expression_repeat_image/public/plugin.ts @@ -33,8 +33,10 @@ export class ExpressionRepeatImagePlugin > { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionRepeatImagePluginSetup { - expressions.registerFunction(repeatImageFunction); - expressions.registerRenderer(repeatImageRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerFunction(repeatImageFunction); + expressions.registerRenderer(repeatImageRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionRepeatImagePluginStart {} diff --git a/src/plugins/expression_reveal_image/public/expression_renderers/__stories__/reveal_image_renderer.stories.tsx b/src/plugins/expression_reveal_image/public/expression_renderers/__stories__/reveal_image_renderer.stories.tsx index 664cc97117791..32ea7edd04765 100644 --- a/src/plugins/expression_reveal_image/public/expression_renderers/__stories__/reveal_image_renderer.stories.tsx +++ b/src/plugins/expression_reveal_image/public/expression_renderers/__stories__/reveal_image_renderer.stories.tsx @@ -29,12 +29,7 @@ const Renderer = ({ percent: 0.45, }; - return ( - - ); + return ; }; storiesOf('renderers/revealImage', module).add( diff --git a/src/plugins/expression_reveal_image/public/expression_renderers/reveal_image_renderer.tsx b/src/plugins/expression_reveal_image/public/expression_renderers/reveal_image_renderer.tsx index fbfe479225ece..3190a7c90c112 100644 --- a/src/plugins/expression_reveal_image/public/expression_renderers/reveal_image_renderer.tsx +++ b/src/plugins/expression_reveal_image/public/expression_renderers/reveal_image_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition, IInterpreterRenderHandlers, @@ -34,7 +33,7 @@ export const strings = { }; export const getRevealImageRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'revealImage', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -52,7 +51,7 @@ export const getRevealImageRenderer = render( - + @@ -64,5 +63,4 @@ export const getRevealImageRenderer = }, }); -export const revealImageRendererFactory = (core: CoreSetup) => - getRevealImageRenderer(core.theme.theme$); +export const revealImageRendererFactory = (core: CoreStart) => getRevealImageRenderer(core); diff --git a/src/plugins/expression_reveal_image/public/plugin.ts b/src/plugins/expression_reveal_image/public/plugin.ts index e41fea42bf1e2..66e802f4cf448 100755 --- a/src/plugins/expression_reveal_image/public/plugin.ts +++ b/src/plugins/expression_reveal_image/public/plugin.ts @@ -33,8 +33,10 @@ export class ExpressionRevealImagePlugin > { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionRevealImagePluginSetup { - expressions.registerFunction(revealImageFunction); - expressions.registerRenderer(revealImageRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerFunction(revealImageFunction); + expressions.registerRenderer(revealImageRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionRevealImagePluginStart {} diff --git a/src/plugins/expression_shape/public/expression_renderers/__stories__/progress_renderer.stories.tsx b/src/plugins/expression_shape/public/expression_renderers/__stories__/progress_renderer.stories.tsx index 0f93314ee0816..79e975bf2d46e 100644 --- a/src/plugins/expression_shape/public/expression_renderers/__stories__/progress_renderer.stories.tsx +++ b/src/plugins/expression_shape/public/expression_renderers/__stories__/progress_renderer.stories.tsx @@ -31,7 +31,5 @@ storiesOf('renderers/progress', module).add('default', () => { valueWeight: 15, }; - return ( - - ); + return ; }); diff --git a/src/plugins/expression_shape/public/expression_renderers/__stories__/shape_renderer.stories.tsx b/src/plugins/expression_shape/public/expression_renderers/__stories__/shape_renderer.stories.tsx index d089174c60325..f69f5d765484c 100644 --- a/src/plugins/expression_shape/public/expression_renderers/__stories__/shape_renderer.stories.tsx +++ b/src/plugins/expression_shape/public/expression_renderers/__stories__/shape_renderer.stories.tsx @@ -24,7 +24,5 @@ storiesOf('renderers/shape', module).add('default', () => { maintainAspect: true, }; - return ( - - ); + return ; }); diff --git a/src/plugins/expression_shape/public/expression_renderers/progress_renderer.tsx b/src/plugins/expression_shape/public/expression_renderers/progress_renderer.tsx index ed7629a7d87a0..17118625e9157 100644 --- a/src/plugins/expression_shape/public/expression_renderers/progress_renderer.tsx +++ b/src/plugins/expression_shape/public/expression_renderers/progress_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition, IInterpreterRenderHandlers, @@ -34,7 +33,7 @@ const strings = { }; export const getProgressRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'progress', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -52,7 +51,7 @@ export const getProgressRenderer = render( - + @@ -64,4 +63,4 @@ export const getProgressRenderer = }, }); -export const progressRendererFactory = (core: CoreSetup) => getProgressRenderer(core.theme.theme$); +export const progressRendererFactory = (core: CoreStart) => getProgressRenderer(core); diff --git a/src/plugins/expression_shape/public/expression_renderers/shape_renderer.tsx b/src/plugins/expression_shape/public/expression_renderers/shape_renderer.tsx index 650033aa4542d..a41e359eec00d 100644 --- a/src/plugins/expression_shape/public/expression_renderers/shape_renderer.tsx +++ b/src/plugins/expression_shape/public/expression_renderers/shape_renderer.tsx @@ -9,9 +9,8 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { Observable } from 'rxjs'; -import { CoreSetup, CoreTheme } from '@kbn/core/public'; +import { CoreStart } from '@kbn/core/public'; import { ExpressionRenderDefinition, IInterpreterRenderHandlers, @@ -34,7 +33,7 @@ const strings = { }; export const getShapeRenderer = - (theme$: Observable) => (): ExpressionRenderDefinition => ({ + (core: CoreStart) => (): ExpressionRenderDefinition => ({ name: 'shape', displayName: strings.getDisplayName(), help: strings.getHelpDescription(), @@ -52,7 +51,7 @@ export const getShapeRenderer = render( - + @@ -65,4 +64,4 @@ export const getShapeRenderer = }, }); -export const shapeRendererFactory = (core: CoreSetup) => getShapeRenderer(core.theme.theme$); +export const shapeRendererFactory = (core: CoreStart) => getShapeRenderer(core); diff --git a/src/plugins/expression_shape/public/plugin.ts b/src/plugins/expression_shape/public/plugin.ts index 0acb611d363d6..4d4ea8d9b35cb 100755 --- a/src/plugins/expression_shape/public/plugin.ts +++ b/src/plugins/expression_shape/public/plugin.ts @@ -27,10 +27,12 @@ export class ExpressionShapePlugin implements Plugin { public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionShapePluginSetup { - expressions.registerFunction(shapeFunction); - expressions.registerFunction(progressFunction); - expressions.registerRenderer(shapeRendererFactory(core)); - expressions.registerRenderer(progressRendererFactory(core)); + core.getStartServices().then(([start]) => { + expressions.registerFunction(shapeFunction); + expressions.registerFunction(progressFunction); + expressions.registerRenderer(shapeRendererFactory(start)); + expressions.registerRenderer(progressRendererFactory(start)); + }); } public start(core: CoreStart): ExpressionShapePluginStart {} diff --git a/src/plugins/image_embeddable/public/components/image_editor/open_image_editor.tsx b/src/plugins/image_embeddable/public/components/image_editor/open_image_editor.tsx index f730147cb0d2c..9454dab4b9236 100644 --- a/src/plugins/image_embeddable/public/components/image_editor/open_image_editor.tsx +++ b/src/plugins/image_embeddable/public/components/image_editor/open_image_editor.tsx @@ -28,7 +28,7 @@ export const openImageEditor = async ({ }): Promise => { const { ImageEditorFlyout } = await import('./image_editor_flyout'); - const { overlays, theme, i18n, http, security } = coreServices; + const { overlays, http, security, ...startServices } = coreServices; const user = await security.authc.getCurrentUser(); const filesClient = filesService.filesClientFactory.asUnscoped(); @@ -73,7 +73,7 @@ export const openImageEditor = async ({ /> , - { theme, i18n } + startServices ), { onClose: () => { diff --git a/src/plugins/links/public/editor/open_editor_flyout.tsx b/src/plugins/links/public/editor/open_editor_flyout.tsx index 87b1ab4e21ff8..32e9cc92be849 100644 --- a/src/plugins/links/public/editor/open_editor_flyout.tsx +++ b/src/plugins/links/public/editor/open_editor_flyout.tsx @@ -133,7 +133,7 @@ export async function openEditorFlyout({ parentDashboardId={parentDashboardId} isByReference={Boolean(initialState?.savedObjectId)} />, - { theme: coreServices.theme, i18n: coreServices.i18n } + coreServices ), { id: flyoutId, diff --git a/src/plugins/presentation_panel/public/panel_actions/customize_panel_action/open_customize_panel.tsx b/src/plugins/presentation_panel/public/panel_actions/customize_panel_action/open_customize_panel.tsx index 8fa2fd0658e56..b33a1f6014ea8 100644 --- a/src/plugins/presentation_panel/public/panel_actions/customize_panel_action/open_customize_panel.tsx +++ b/src/plugins/presentation_panel/public/panel_actions/customize_panel_action/open_customize_panel.tsx @@ -42,7 +42,7 @@ export const openCustomizePanelFlyout = ({ }} /> , - { theme: core.theme, i18n: core.i18n } + core ), { size: 's', diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.test.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.test.tsx index 6ba1df5f92e99..52a5c80a0d5a9 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.test.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.test.tsx @@ -43,6 +43,7 @@ describe('', () => { theme: { euiTheme: {} as unknown as EuiThemeComputed<{}>, colorMode: 'DARK', + highContrastMode: false, modifications: [], } as UseEuiTheme<{}>, filter: { @@ -90,6 +91,7 @@ describe('', () => { theme: { euiTheme: {} as unknown as EuiThemeComputed<{}>, colorMode: 'DARK', + highContrastMode: false, modifications: [], } as UseEuiTheme<{}>, filter: { @@ -125,6 +127,7 @@ describe('', () => { theme: { euiTheme: {} as unknown as EuiThemeComputed<{}>, colorMode: 'DARK', + highContrastMode: false, modifications: [], } as UseEuiTheme<{}>, filter: { diff --git a/src/plugins/unified_search/public/plugin.ts b/src/plugins/unified_search/public/plugin.ts index 151b8f6d6fabb..2b8aa8b9f8e3d 100755 --- a/src/plugins/unified_search/public/plugin.ts +++ b/src/plugins/unified_search/public/plugin.ts @@ -14,7 +14,14 @@ import { APPLY_FILTER_TRIGGER } from '@kbn/data-plugin/public'; import { createQueryStringInput } from './query_string_input/get_query_string_input'; import { UPDATE_FILTER_REFERENCES_TRIGGER, updateFilterReferencesTrigger } from './triggers'; import type { ConfigSchema } from '../server/config'; -import { setIndexPatterns, setTheme, setOverlays, setAnalytics, setI18n } from './services'; +import { + setIndexPatterns, + setTheme, + setOverlays, + setAnalytics, + setI18n, + setUserProfile, +} from './services'; import { AutocompleteService } from './autocomplete/autocomplete_service'; import { createSearchBar } from './search_bar/create_search_bar'; import { createIndexPatternSelect } from './index_pattern_select'; @@ -75,6 +82,7 @@ export class UnifiedSearchPublicPlugin setAnalytics(core.analytics); setI18n(core.i18n); setTheme(core.theme); + setUserProfile(core.userProfile); setOverlays(core.overlays); setIndexPatterns(dataViews); const autocompleteStart = this.autocomplete.start(); diff --git a/src/plugins/unified_search/public/query_string_input/query_string_input.tsx b/src/plugins/unified_search/public/query_string_input/query_string_input.tsx index 2e76341ae6071..12e6a6884a5cc 100644 --- a/src/plugins/unified_search/public/query_string_input/query_string_input.tsx +++ b/src/plugins/unified_search/public/query_string_input/query_string_input.tsx @@ -56,7 +56,7 @@ import { SuggestionsComponent } from '../typeahead'; import { onRaf } from '../utils'; import { FilterButtonGroup } from '../filter_bar/filter_button_group/filter_button_group'; import { AutocompleteService, QuerySuggestion, QuerySuggestionTypes } from '../autocomplete'; -import { getAnalytics, getI18n, getTheme } from '../services'; +import { getAnalytics, getI18n, getTheme, getUserProfile } from '../services'; import './query_string_input.scss'; export const strings = { @@ -568,7 +568,12 @@ export default class QueryStringInputUI extends PureComponent
, - { analytics: getAnalytics(), i18n: getI18n(), theme: getTheme() } + { + analytics: getAnalytics(), + i18n: getI18n(), + theme: getTheme(), + userProfile: getUserProfile(), + } ), }); } diff --git a/src/plugins/unified_search/public/services.ts b/src/plugins/unified_search/public/services.ts index 152c987d84e6e..b5bf67209a898 100644 --- a/src/plugins/unified_search/public/services.ts +++ b/src/plugins/unified_search/public/services.ts @@ -8,6 +8,7 @@ */ import { + UserProfileService, ThemeServiceStart, OverlayStart, AnalyticsServiceStart, @@ -25,4 +26,7 @@ export const [getI18n, setI18n] = createGetterSetter('I18n'); export const [getTheme, setTheme] = createGetterSetter('Theme'); +export const [getUserProfile, setUserProfile] = + createGetterSetter('UserProfile'); + export const [getOverlays, setOverlays] = createGetterSetter('Overlays'); diff --git a/src/plugins/unified_search/public/types.ts b/src/plugins/unified_search/public/types.ts index 08c8b282d23b9..f9d0556447778 100755 --- a/src/plugins/unified_search/public/types.ts +++ b/src/plugins/unified_search/public/types.ts @@ -96,6 +96,7 @@ export interface IUnifiedSearchPluginServices extends Partial { analytics: CoreStart['analytics']; i18n: CoreStart['i18n']; theme: CoreStart['theme']; + userProfile: CoreStart['userProfile']; storage: IStorageWrapper; docLinks: DocLinksStart; data: DataPublicPluginStart; diff --git a/src/plugins/vis_default_editor/public/default_editor_controller.tsx b/src/plugins/vis_default_editor/public/default_editor_controller.tsx index 5b141282b9a1e..f78acaaac7a7f 100644 --- a/src/plugins/vis_default_editor/public/default_editor_controller.tsx +++ b/src/plugins/vis_default_editor/public/default_editor_controller.tsx @@ -15,7 +15,7 @@ import { EuiErrorBoundary, EuiLoadingChart } from '@elastic/eui'; import { Vis, VisualizeEmbeddableContract } from '@kbn/visualizations-plugin/public'; import { IEditorController, EditorRenderProps } from '@kbn/visualizations-plugin/public'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; -import { getAnalytics, getI18n, getTheme } from './services'; +import { getAnalytics, getI18n, getTheme, getUserProfile } from './services'; // @ts-ignore const DefaultEditor = lazy(() => import('./default_editor')); @@ -30,7 +30,12 @@ class DefaultEditorController implements IEditorController { render(props: EditorRenderProps) { render( - + ('AnalyticsService'); export const [getI18n, setI18n] = createGetterSetter('I18nService'); export const [getTheme, setTheme] = createGetterSetter('ThemeService'); +export const [getUserProfile, setUserProfile] = + createGetterSetter('UserProfileService'); diff --git a/src/plugins/vis_types/timeseries/public/plugin.ts b/src/plugins/vis_types/timeseries/public/plugin.ts index 248f43e73a818..1728e2322fd77 100644 --- a/src/plugins/vis_types/timeseries/public/plugin.ts +++ b/src/plugins/vis_types/timeseries/public/plugin.ts @@ -29,6 +29,7 @@ import { metricsVisDefinition } from './metrics_type'; import { setUISettings, setI18n, + setUserProfile, setFieldFormats, setCoreStart, setDataStart, @@ -109,6 +110,7 @@ export class MetricsPlugin implements Plugin { ) { setCharts(charts); setI18n(core.i18n); + setUserProfile(core.userProfile); setFieldFormats(fieldFormats); setDataStart(data); setUnifiedSearchStart(unifiedSearch); diff --git a/src/plugins/vis_types/timeseries/public/services.ts b/src/plugins/vis_types/timeseries/public/services.ts index d2c5647013684..af0e56d3c3301 100644 --- a/src/plugins/vis_types/timeseries/public/services.ts +++ b/src/plugins/vis_types/timeseries/public/services.ts @@ -15,6 +15,7 @@ import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public'; import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; +import type { UserProfileService } from '@kbn/core-user-profile-browser'; export const [getUISettings, setUISettings] = createGetterSetter('UISettings'); @@ -32,6 +33,9 @@ export const [getDataViewsStart, setDataViewsStart] = export const [getI18n, setI18n] = createGetterSetter('I18n'); +export const [getUserProfile, setUserProfile] = + createGetterSetter('UserProfile'); + export const [getCharts, setCharts] = createGetterSetter('ChartsPluginStart'); export const [getUsageCollectionStart, setUsageCollectionStart] = diff --git a/src/plugins/vis_types/timeseries/tsconfig.json b/src/plugins/vis_types/timeseries/tsconfig.json index 2ac2cc6798ded..c0864fea11d54 100644 --- a/src/plugins/vis_types/timeseries/tsconfig.json +++ b/src/plugins/vis_types/timeseries/tsconfig.json @@ -48,6 +48,7 @@ "@kbn/code-editor", "@kbn/shared-ux-markdown", "@kbn/react-kibana-context-render", + "@kbn/core-user-profile-browser", ], "exclude": [ "target/**/*", diff --git a/src/plugins/vis_types/vislib/public/plugin.ts b/src/plugins/vis_types/vislib/public/plugin.ts index 47ba0306b5393..b04151c12d05b 100644 --- a/src/plugins/vis_types/vislib/public/plugin.ts +++ b/src/plugins/vis_types/vislib/public/plugin.ts @@ -18,7 +18,7 @@ import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public'; import { LEGACY_HEATMAP_CHARTS_LIBRARY } from '@kbn/vis-type-heatmap-plugin/common'; import { LEGACY_GAUGE_CHARTS_LIBRARY } from '@kbn/vis-type-gauge-plugin/common'; import type { VislibPublicConfig } from '../server/config'; -import { setAnalytics, setI18n, setUsageCollectionStart } from './services'; +import { setAnalytics, setI18n, setUsageCollectionStart, setUserProfile } from './services'; import { heatmapVisTypeDefinition } from './heatmap'; import { createVisTypeVislibVisFn } from './vis_type_vislib_vis_fn'; @@ -92,6 +92,7 @@ export class VisTypeVislibPlugin setAnalytics(core.analytics); setI18n(core.i18n); setTheme(core.theme); + setUserProfile(core.userProfile); if (usageCollection) { setUsageCollectionStart(usageCollection); } diff --git a/src/plugins/vis_types/vislib/public/services.ts b/src/plugins/vis_types/vislib/public/services.ts index 4193af3329fc0..60a6de537dcb1 100644 --- a/src/plugins/vis_types/vislib/public/services.ts +++ b/src/plugins/vis_types/vislib/public/services.ts @@ -12,6 +12,7 @@ import { createGetterSetter } from '@kbn/kibana-utils-plugin/public'; import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import { UsageCollectionStart } from '@kbn/usage-collection-plugin/public'; +import { UserProfileService } from '@kbn/core-user-profile-browser'; export const [getDataActions, setDataActions] = createGetterSetter('vislib data.actions'); @@ -23,6 +24,9 @@ export const [getAnalytics, setAnalytics] = createGetterSetter('vislib theme service'); export const [getI18n, setI18n] = createGetterSetter('vislib theme service'); export const [getTheme, setTheme] = createGetterSetter('vislib theme service'); +export const [getUserProfile, setUserProfile] = createGetterSetter( + 'vislib user profile service' +); export const [getUsageCollectionStart, setUsageCollectionStart] = createGetterSetter('UsageCollection', false); diff --git a/src/plugins/vis_types/vislib/public/vis_controller.tsx b/src/plugins/vis_types/vislib/public/vis_controller.tsx index 89a7a4125d3c2..380d61713c253 100644 --- a/src/plugins/vis_types/vislib/public/vis_controller.tsx +++ b/src/plugins/vis_types/vislib/public/vis_controller.tsx @@ -136,7 +136,7 @@ export const createVislibVisController = ( } mountLegend( - startServices: Pick, + startServices: Pick, visData: unknown, visParams: BasicVislibParams, fireEvent: IInterpreterRenderHandlers['event'], diff --git a/src/plugins/vis_types/vislib/public/vislib/partials/touchdown_template.tsx b/src/plugins/vis_types/vislib/public/vislib/partials/touchdown_template.tsx index 0ceca90442e2f..4be915740bdc7 100644 --- a/src/plugins/vis_types/vislib/public/vislib/partials/touchdown_template.tsx +++ b/src/plugins/vis_types/vislib/public/vislib/partials/touchdown_template.tsx @@ -11,7 +11,7 @@ import React from 'react'; import ReactDOM from 'react-dom/server'; import { EuiIcon } from '@elastic/eui'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; -import { getAnalytics, getI18n, getTheme } from '../../services'; +import { getAnalytics, getI18n, getTheme, getUserProfile } from '../../services'; interface Props { wholeBucket: boolean; @@ -19,7 +19,12 @@ interface Props { export const touchdownTemplate = ({ wholeBucket }: Props) => { return ReactDOM.renderToStaticMarkup( - +

diff --git a/src/plugins/vis_types/vislib/tsconfig.json b/src/plugins/vis_types/vislib/tsconfig.json index 9cbe0dce7e68f..35789749de4d9 100644 --- a/src/plugins/vis_types/vislib/tsconfig.json +++ b/src/plugins/vis_types/vislib/tsconfig.json @@ -38,6 +38,7 @@ "@kbn/config-schema", "@kbn/react-kibana-mount", "@kbn/react-kibana-context-render", + "@kbn/core-user-profile-browser", ], "exclude": [ "target/**/*", diff --git a/src/plugins/visualizations/public/embeddable/save_to_library.ts b/src/plugins/visualizations/public/embeddable/save_to_library.ts index ae92252565aaa..416eda1f277a3 100644 --- a/src/plugins/visualizations/public/embeddable/save_to_library.ts +++ b/src/plugins/visualizations/public/embeddable/save_to_library.ts @@ -9,7 +9,7 @@ import { Reference } from '../../common/content_management'; import { PersistedState } from '../persisted_state'; -import { getAnalytics, getI18n, getOverlays, getTheme } from '../services'; +import { getAnalytics, getI18n, getOverlays, getTheme, getUserProfile } from '../services'; import { saveVisualization } from '../utils/saved_visualize_utils'; import { VisualizeOutputState } from './types'; @@ -63,6 +63,7 @@ export const saveToLibrary = async ({ i18n: getI18n(), overlays: getOverlays(), theme: getTheme(), + userProfile: getUserProfile(), }, references ?? [] ); diff --git a/src/plugins/visualizations/public/embeddable/state.ts b/src/plugins/visualizations/public/embeddable/state.ts index 52641703e04b6..79a3bc841a999 100644 --- a/src/plugins/visualizations/public/embeddable/state.ts +++ b/src/plugins/visualizations/public/embeddable/state.ts @@ -22,6 +22,7 @@ import { getSearch, getSpaces, getTheme, + getUserProfile, } from '../services'; import { deserializeReferences, @@ -137,6 +138,7 @@ export const deserializeSavedObjectState = async ({ overlays: getOverlays(), analytics: getAnalytics(), theme: getTheme(), + userProfile: getUserProfile(), }, savedObjectId ); diff --git a/src/plugins/visualizations/public/plugin.ts b/src/plugins/visualizations/public/plugin.ts index fcb3dc5137161..241a08e9f06d4 100644 --- a/src/plugins/visualizations/public/plugin.ts +++ b/src/plugins/visualizations/public/plugin.ts @@ -105,6 +105,7 @@ import { setAnalytics, setI18n, setTheme, + setUserProfile, setExecutionContext, setFieldFormats, setSavedObjectTagging, @@ -465,6 +466,7 @@ export class VisualizationsPlugin const types = this.types.start(); setTypes(types); setI18n(core.i18n); + setUserProfile(core.userProfile); setEmbeddable(embeddable); setApplication(core.application); setCapabilities(core.application.capabilities); diff --git a/src/plugins/visualizations/public/services.ts b/src/plugins/visualizations/public/services.ts index 3b383abe52a35..a4f94647dabff 100644 --- a/src/plugins/visualizations/public/services.ts +++ b/src/plugins/visualizations/public/services.ts @@ -21,6 +21,7 @@ import type { ExecutionContextSetup, AnalyticsServiceStart, I18nStart, + UserProfileService, } from '@kbn/core/public'; import type { DataPublicPluginStart, TimefilterContract } from '@kbn/data-plugin/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; @@ -42,6 +43,8 @@ export const [getUISettings, setUISettings] = createGetterSetter('Analytics'); export const [getI18n, setI18n] = createGetterSetter('I18n'); export const [getTheme, setTheme] = createGetterSetter('Theme'); +export const [getUserProfile, setUserProfile] = + createGetterSetter('UserProfile'); export const [getCapabilities, setCapabilities] = createGetterSetter('Capabilities'); diff --git a/src/plugins/visualizations/public/types.ts b/src/plugins/visualizations/public/types.ts index 2ccb5c648f79e..5ff4d462426f9 100644 --- a/src/plugins/visualizations/public/types.ts +++ b/src/plugins/visualizations/public/types.ts @@ -34,6 +34,7 @@ export type StartServices = Pick< | 'analytics' | 'i18n' | 'theme' + | 'userProfile' >; export type { Vis, SerializedVis, VisParams }; diff --git a/src/plugins/visualizations/public/visualize_app/utils/utils.ts b/src/plugins/visualizations/public/visualize_app/utils/utils.ts index b12c249284373..0af00b444f1d5 100644 --- a/src/plugins/visualizations/public/visualize_app/utils/utils.ts +++ b/src/plugins/visualizations/public/visualize_app/utils/utils.ts @@ -70,9 +70,7 @@ export const redirectToSavedObjectPage = ( savedVisualizationsId?: string ) => { const { - history, setActiveUrl, - toastNotifications, http: { basePath }, application: { navigateToApp }, } = services; @@ -81,9 +79,7 @@ export const redirectToSavedObjectPage = ( path: `kibana/objects/savedVisualizations/${savedVisualizationsId}`, }; redirectWhenMissing({ - history, navigateToApp, - toastNotifications, basePath, mapping: { visualization: VisualizeConstants.LANDING_PAGE_PATH, @@ -94,7 +90,7 @@ export const redirectToSavedObjectPage = ( onBeforeRedirect() { setActiveUrl(VisualizeConstants.LANDING_PAGE_PATH); }, - theme: services.theme, + ...services, })(error); }; diff --git a/src/plugins/visualizations/public/wizard/show_new_vis.tsx b/src/plugins/visualizations/public/wizard/show_new_vis.tsx index 64fe4cb07b9f9..251101519ea59 100644 --- a/src/plugins/visualizations/public/wizard/show_new_vis.tsx +++ b/src/plugins/visualizations/public/wizard/show_new_vis.tsx @@ -21,6 +21,7 @@ import { getTheme, getContentManagement, getUISettings, + getUserProfile, } from '../services'; import type { BaseVisType } from '../vis_types'; @@ -94,7 +95,7 @@ export function showNewVisModal({ ); }), - { analytics: getAnalytics(), i18n: getI18n(), theme: getTheme() } + { analytics: getAnalytics(), i18n: getI18n(), theme: getTheme(), userProfile: getUserProfile() } ); unmount = mount(container); diff --git a/x-pack/examples/embedded_lens_example/public/mount.tsx b/x-pack/examples/embedded_lens_example/public/mount.tsx index 6ff43709d3f89..f791c115be636 100644 --- a/x-pack/examples/embedded_lens_example/public/mount.tsx +++ b/x-pack/examples/embedded_lens_example/public/mount.tsx @@ -22,11 +22,8 @@ export const mount = const defaultDataView = await plugins.data.indexPatterns.getDefault(); const { formula } = await plugins.lens.stateHelperApi(); - const { analytics, i18n, theme } = core; - const startServices = { analytics, i18n, theme }; - const reactElement = ( - + {defaultDataView && defaultDataView.isTimeBased() ? ( ) : ( diff --git a/x-pack/plugins/canvas/shareable_runtime/components/__snapshots__/app.test.tsx.snap b/x-pack/plugins/canvas/shareable_runtime/components/__snapshots__/app.test.tsx.snap index 447771435a1dc..e04718bcf2518 100644 --- a/x-pack/plugins/canvas/shareable_runtime/components/__snapshots__/app.test.tsx.snap +++ b/x-pack/plugins/canvas/shareable_runtime/components/__snapshots__/app.test.tsx.snap @@ -1,3 +1,3 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[` App renders properly 1`] = `"

markdown mock
markdown mock

Page level controls

My Canvas Workpad

There is a new region landmark with page level controls at the end of the document.

"`; +exports[` App renders properly 1`] = `"
markdown mock
markdown mock

Page level controls

My Canvas Workpad

There is a new region landmark with page level controls at the end of the document.

"`; diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_app_state.tsx b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_app_state.tsx index 24c995ec0652d..e1d525a0250d7 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_app_state.tsx +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_app_state.tsx @@ -88,9 +88,17 @@ export const DataDriftDetectionAppState: FC = ( charts, unifiedSearch, }; - const startServices = pick(coreStart, 'analytics', 'i18n', 'theme'); + const startServices = pick(coreStart, 'analytics', 'i18n', 'theme', 'userProfile'); const datePickerDeps = { - ...pick(services, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(services, [ + 'data', + 'http', + 'notifications', + 'i18n', + 'theme', + 'userProfile', + 'uiSettings', + ]), uiSettingsKeys: UI_SETTINGS, }; const location = useLocation(); diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_wrapper.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_wrapper.tsx index d991f02fb3958..f80766ae1ee78 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_wrapper.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/field_stats_wrapper.tsx @@ -150,7 +150,7 @@ const FieldStatisticsWrapper = (props: FieldStatisticTableEmbeddableProps) => { const { overridableServices } = props; const kibanaRenderServices = useMemo( - () => pick(coreStart, 'analytics', 'i18n', 'theme'), + () => pick(coreStart, 'analytics', 'i18n', 'theme', 'userProfile'), // eslint-disable-next-line react-hooks/exhaustive-deps [] ); @@ -168,6 +168,7 @@ const FieldStatisticsWrapper = (props: FieldStatisticTableEmbeddableProps) => { 'notifications', 'theme', 'uiSettings', + 'userProfile', 'i18n', ]), uiSettingsKeys: UI_SETTINGS, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx index 8a5e34f58a10f..a9fa92ac39ce8 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx @@ -329,9 +329,17 @@ export const IndexDataVisualizer: FC = ({ unifiedSearch, }; - const startServices = pick(coreStart, 'analytics', 'i18n', 'theme'); + const startServices = pick(coreStart, 'analytics', 'i18n', 'theme', 'userProfile'); const datePickerDeps: DatePickerDependencies = { - ...pick(services, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(services, [ + 'data', + 'http', + 'notifications', + 'theme', + 'uiSettings', + 'userProfile', + 'i18n', + ]), uiSettingsKeys: UI_SETTINGS, showFrozenDataTierChoice, }; diff --git a/x-pack/plugins/graph/public/components/workspace_layout/workspace_top_nav_menu.tsx b/x-pack/plugins/graph/public/components/workspace_layout/workspace_top_nav_menu.tsx index f4dc33f73176c..0473f23643026 100644 --- a/x-pack/plugins/graph/public/components/workspace_layout/workspace_top_nav_menu.tsx +++ b/x-pack/plugins/graph/public/components/workspace_layout/workspace_top_nav_menu.tsx @@ -165,7 +165,7 @@ export const WorkspaceTopNavMenu = (props: WorkspaceTopNavMenuProps) => { , - { theme: props.coreStart.theme, i18n: props.coreStart.i18n } + props.coreStart ), { size: 'm', diff --git a/x-pack/plugins/graph/public/helpers/saved_objects_utils/check_for_duplicate_title.ts b/x-pack/plugins/graph/public/helpers/saved_objects_utils/check_for_duplicate_title.ts index c4ea22344a459..0524c0bc5c1b3 100644 --- a/x-pack/plugins/graph/public/helpers/saved_objects_utils/check_for_duplicate_title.ts +++ b/x-pack/plugins/graph/public/helpers/saved_objects_utils/check_for_duplicate_title.ts @@ -27,7 +27,7 @@ export async function checkForDuplicateTitle( onTitleDuplicate: (() => void) | undefined, services: { contentClient: ContentClient; - } & Pick + } & Pick ): Promise { const { contentClient, ...startServices } = services; // Don't check for duplicates if user has already confirmed save with duplicate title diff --git a/x-pack/plugins/graph/public/helpers/saved_objects_utils/confirm_modal_promise.tsx b/x-pack/plugins/graph/public/helpers/saved_objects_utils/confirm_modal_promise.tsx index c1d8899c34076..7e7464754fd4d 100644 --- a/x-pack/plugins/graph/public/helpers/saved_objects_utils/confirm_modal_promise.tsx +++ b/x-pack/plugins/graph/public/helpers/saved_objects_utils/confirm_modal_promise.tsx @@ -15,7 +15,7 @@ export function confirmModalPromise( message = '', title = '', confirmBtnText = '', - startServices: Pick + startServices: Pick ): Promise { return new Promise((resolve, reject) => { const cancelButtonText = i18n.translate('xpack.graph.confirmModal.cancelButtonLabel', { diff --git a/x-pack/plugins/graph/public/helpers/saved_objects_utils/display_duplicate_title_confirm_modal.ts b/x-pack/plugins/graph/public/helpers/saved_objects_utils/display_duplicate_title_confirm_modal.ts index 4256d3bc0267d..eec216fceb15f 100644 --- a/x-pack/plugins/graph/public/helpers/saved_objects_utils/display_duplicate_title_confirm_modal.ts +++ b/x-pack/plugins/graph/public/helpers/saved_objects_utils/display_duplicate_title_confirm_modal.ts @@ -13,7 +13,7 @@ import { confirmModalPromise } from './confirm_modal_promise'; export function displayDuplicateTitleConfirmModal( savedObject: Pick, - startServices: Pick + startServices: Pick ): Promise { const confirmTitle = i18n.translate('xpack.graph.confirmModal.saveDuplicateConfirmationTitle', { defaultMessage: `This visualization already exists`, diff --git a/x-pack/plugins/graph/public/helpers/saved_objects_utils/save_with_confirmation.ts b/x-pack/plugins/graph/public/helpers/saved_objects_utils/save_with_confirmation.ts index 75b846ca076a3..a9b85e544834f 100644 --- a/x-pack/plugins/graph/public/helpers/saved_objects_utils/save_with_confirmation.ts +++ b/x-pack/plugins/graph/public/helpers/saved_objects_utils/save_with_confirmation.ts @@ -34,7 +34,7 @@ export async function saveWithConfirmation( options: SavedObjectsCreateOptions, services: { contentClient: ContentClient } & Pick< CoreStart, - 'overlays' | 'analytics' | 'i18n' | 'theme' + 'overlays' | 'analytics' | 'i18n' | 'theme' | 'userProfile' > ): Promise<{ item: GraphSavedObject }> { const { contentClient, ...startServices } = services; diff --git a/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts b/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts index 5a2546d122e58..566d9f26be301 100644 --- a/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts +++ b/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts @@ -167,7 +167,7 @@ export async function saveSavedWorkspace( }: SavedObjectSaveOpts = {}, services: { contentClient: ContentClient; - } & Pick + } & Pick ) { let attributes: SavedObjectAttributes = {}; diff --git a/x-pack/plugins/graph/public/services/save_modal.tsx b/x-pack/plugins/graph/public/services/save_modal.tsx index baf6a96405164..e05800ec20ddb 100644 --- a/x-pack/plugins/graph/public/services/save_modal.tsx +++ b/x-pack/plugins/graph/public/services/save_modal.tsx @@ -14,7 +14,7 @@ import { GraphWorkspaceSavedObject, GraphSavePolicy } from '../types'; import { SaveModal, OnSaveGraphProps } from '../components/save_modal'; export interface SaveWorkspaceServices - extends Pick { + extends Pick { contentClient: ContentClient; } diff --git a/x-pack/plugins/graph/public/state_management/store.ts b/x-pack/plugins/graph/public/state_management/store.ts index 60b44ed234e02..a150ad59336ea 100644 --- a/x-pack/plugins/graph/public/state_management/store.ts +++ b/x-pack/plugins/graph/public/state_management/store.ts @@ -40,7 +40,7 @@ export interface GraphState { } export interface GraphStoreDependencies - extends Pick { + extends Pick { addBasePath: (url: string) => string; indexPatternProvider: IndexPatternProvider; createWorkspace: (index: string, advancedSettings: AdvancedSettings) => Workspace; diff --git a/x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx b/x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx index f1ccacc37db53..f287e4426eaaa 100644 --- a/x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx +++ b/x-pack/plugins/lens/public/app_plugin/save_modal_container.tsx @@ -52,6 +52,7 @@ export type SaveModalContainerProps = { | 'analytics' | 'i18n' | 'theme' + | 'userProfile' | 'stateTransfer' | 'savedObjectStore' >; @@ -238,6 +239,7 @@ export type SaveVisualizationProps = Simplify< | 'analytics' | 'i18n' | 'theme' + | 'userProfile' | 'notifications' | 'stateTransfer' | 'attributeService' diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/layer_actions.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/layer_actions.tsx index 2ab2c8e78890c..9140c90f67d60 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/layer_actions.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/layer_actions.tsx @@ -59,7 +59,7 @@ export const getSharedActions = ({ isTextBasedLanguage?: boolean; hasLayerSettings: boolean; openLayerSettings: () => void; - core: Pick; + core: Pick; customRemoveModalText?: { title?: string; description?: string }; }) => [ getOpenLayerSettingsAction({ diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index d6dbccc492a6b..f6d4edc02e16d 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -73,6 +73,7 @@ export type StartServices = Pick< | 'analytics' | 'i18n' | 'theme' + | 'userProfile' >; export interface IndexPatternRef { @@ -662,6 +663,7 @@ export type DatasourceDimensionEditorProps = DatasourceDimensionPro | 'analytics' | 'i18n' | 'theme' + | 'userProfile' | 'docLinks' >; dateRange: DateRange; diff --git a/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx b/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx index 7593374ca83c5..61408286af1db 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx +++ b/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx @@ -36,7 +36,10 @@ export const getRevertChangesAction = ({ state: XYState; layer: XYByReferenceAnnotationLayerConfig; setState: StateSetter; - core: Pick; + core: Pick< + CoreStart, + 'overlays' | 'analytics' | 'i18n' | 'theme' | 'notifications' | 'userProfile' + >; }): LayerAction => { return { displayName: i18n.translate('xpack.lens.xyChart.annotations.revertChanges', { diff --git a/x-pack/plugins/maps/public/kibana_services.ts b/x-pack/plugins/maps/public/kibana_services.ts index ea31df8734ade..417cadc6ae35a 100644 --- a/x-pack/plugins/maps/public/kibana_services.ts +++ b/x-pack/plugins/maps/public/kibana_services.ts @@ -91,6 +91,7 @@ export const getNavigateToUrl = () => coreStart.application.navigateToUrl; export const getSavedObjectsTagging = () => pluginsStart.savedObjectsTagging; export const getSpacesApi = () => pluginsStart.spaces; export const getTheme = () => coreStart.theme; +export const getUserProfile = () => coreStart.userProfile; export const getApplication = () => coreStart.application; export const getUsageCollection = () => pluginsStart.usageCollection; export const getContentManagement = () => pluginsStart.contentManagement; diff --git a/x-pack/plugins/maps/public/legacy_visualizations/region_map/region_map_renderer.tsx b/x-pack/plugins/maps/public/legacy_visualizations/region_map/region_map_renderer.tsx index 3e09a7e0fd81d..0711c5313f5f0 100644 --- a/x-pack/plugins/maps/public/legacy_visualizations/region_map/region_map_renderer.tsx +++ b/x-pack/plugins/maps/public/legacy_visualizations/region_map/region_map_renderer.tsx @@ -12,7 +12,7 @@ import { dynamic } from '@kbn/shared-ux-utility'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import type { RegionMapVisRenderValue } from './region_map_fn'; import { REGION_MAP_RENDER } from './types'; -import { getAnalytics, getCoreI18n, getTheme } from '../../kibana_services'; +import { getAnalytics, getCoreI18n, getTheme, getUserProfile } from '../../kibana_services'; const Component = dynamic(async () => { const { RegionMapVisualization } = await import('./region_map_visualization'); @@ -44,6 +44,7 @@ export const regionMapRenderer = { analytics={getAnalytics()} i18n={getCoreI18n()} theme={getTheme()} + userProfile={getUserProfile()} >
, diff --git a/x-pack/plugins/maps/public/legacy_visualizations/tile_map/tile_map_renderer.tsx b/x-pack/plugins/maps/public/legacy_visualizations/tile_map/tile_map_renderer.tsx index 9bc828e617bb6..d0fbc872d1479 100644 --- a/x-pack/plugins/maps/public/legacy_visualizations/tile_map/tile_map_renderer.tsx +++ b/x-pack/plugins/maps/public/legacy_visualizations/tile_map/tile_map_renderer.tsx @@ -12,7 +12,7 @@ import { dynamic } from '@kbn/shared-ux-utility'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import type { TileMapVisRenderValue } from './tile_map_fn'; import { TILE_MAP_RENDER } from './types'; -import { getAnalytics, getCoreI18n, getTheme } from '../../kibana_services'; +import { getAnalytics, getCoreI18n, getTheme, getUserProfile } from '../../kibana_services'; const Component = dynamic(async () => { const { TileMapVisualization } = await import('./tile_map_visualization'); @@ -44,6 +44,7 @@ export const tileMapRenderer = { analytics={getAnalytics()} i18n={getCoreI18n()} theme={getTheme()} + userProfile={getUserProfile()} >
, diff --git a/x-pack/plugins/maps/public/lens/choropleth_chart/expression_renderer.tsx b/x-pack/plugins/maps/public/lens/choropleth_chart/expression_renderer.tsx index 6e7e9a2da4222..54bf26ad3b79e 100644 --- a/x-pack/plugins/maps/public/lens/choropleth_chart/expression_renderer.tsx +++ b/x-pack/plugins/maps/public/lens/choropleth_chart/expression_renderer.tsx @@ -15,7 +15,7 @@ import type { KibanaExecutionContext } from '@kbn/core-execution-context-common' import { ChartSizeEvent } from '@kbn/chart-expressions-common'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import type { MapsPluginStartDependencies } from '../../plugin'; -import { getAnalytics, getCoreI18n, getTheme } from '../../kibana_services'; +import { getAnalytics, getCoreI18n, getTheme, getUserProfile } from '../../kibana_services'; import type { ChoroplethChartProps } from './types'; export const RENDERER_ID = 'lens_choropleth_chart_renderer'; @@ -103,6 +103,7 @@ export function getExpressionRenderer(coreSetup: CoreSetup +