diff --git a/src/legacy/core_plugins/data/public/index.ts b/src/legacy/core_plugins/data/public/index.ts index 481349463fc56..c9ce825f3596e 100644 --- a/src/legacy/core_plugins/data/public/index.ts +++ b/src/legacy/core_plugins/data/public/index.ts @@ -30,12 +30,7 @@ export function plugin() { export { DataStart }; export { Field, FieldType, IFieldList, IndexPattern } from './index_patterns'; -export { SearchBar, SearchBarProps } from './search'; -export { - SavedQueryAttributes, - SavedQuery, - SavedQueryTimeFilter, -} from '../../../../plugins/data/public'; +export { SavedQuery, SavedQueryTimeFilter } from '../../../../plugins/data/public'; /** @public static code */ export * from '../common'; diff --git a/src/legacy/core_plugins/data/public/plugin.ts b/src/legacy/core_plugins/data/public/plugin.ts index a4fdfd7482f74..676904faf6f2f 100644 --- a/src/legacy/core_plugins/data/public/plugin.ts +++ b/src/legacy/core_plugins/data/public/plugin.ts @@ -18,10 +18,7 @@ */ import { CoreSetup, CoreStart, Plugin } from 'kibana/public'; -import { createSearchBar, StatetfulSearchBarProps } from './search'; -import { Storage, IStorageWrapper } from '../../../../../src/plugins/kibana_utils/public'; import { DataPublicPluginStart } from '../../../../plugins/data/public'; -import { initLegacyModule } from './shim/legacy_module'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { setFieldFormats } from '../../../../plugins/data/public/services'; @@ -35,11 +32,8 @@ export interface DataPluginStartDependencies { * * @public */ -export interface DataStart { - ui: { - SearchBar: React.ComponentType; - }; -} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface DataStart {} /** * Data Plugin - public @@ -54,28 +48,12 @@ export interface DataStart { */ export class DataPlugin implements Plugin { - private storage!: IStorageWrapper; - - public setup(core: CoreSetup) { - this.storage = new Storage(window.localStorage); - } + public setup(core: CoreSetup) {} public start(core: CoreStart, { data }: DataPluginStartDependencies): DataStart { // This is required for when Angular code uses Field and FieldList. setFieldFormats(data.fieldFormats); - initLegacyModule(data.indexPatterns); - - const SearchBar = createSearchBar({ - core, - data, - storage: this.storage, - }); - - return { - ui: { - SearchBar, - }, - }; + return {}; } public stop() {} diff --git a/src/legacy/core_plugins/data/public/search/index.ts b/src/legacy/core_plugins/data/public/search/index.ts index 24ffa939a746e..9880b336e76e5 100644 --- a/src/legacy/core_plugins/data/public/search/index.ts +++ b/src/legacy/core_plugins/data/public/search/index.ts @@ -16,5 +16,3 @@ * specific language governing permissions and limitations * under the License. */ - -export * from './search_bar'; diff --git a/src/legacy/core_plugins/data/public/search/search_bar/components/index.tsx b/src/legacy/core_plugins/data/public/search/search_bar/components/index.tsx deleted file mode 100644 index accaac163acfc..0000000000000 --- a/src/legacy/core_plugins/data/public/search/search_bar/components/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export * from './search_bar'; -export * from './create_search_bar'; diff --git a/src/legacy/core_plugins/data/public/shim/legacy_module.ts b/src/legacy/core_plugins/data/public/shim/legacy_module.ts deleted file mode 100644 index 1916097b0335c..0000000000000 --- a/src/legacy/core_plugins/data/public/shim/legacy_module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { once } from 'lodash'; - -// @ts-ignore -import { uiModules } from 'ui/modules'; -import { IndexPatternsContract } from 'src/plugins/data/public'; - -/** @internal */ -export const initLegacyModule = once((indexPatterns: IndexPatternsContract): void => { - uiModules.get('kibana/index_patterns').value('indexPatterns', indexPatterns); -}); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/index.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/index.js index 833ca8467292e..fd92987614283 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/index.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/index.js @@ -20,7 +20,7 @@ import { SavedObjectsClientProvider } from 'ui/saved_objects'; import uiRoutes from 'ui/routes'; import angularTemplate from './angular_template.html'; -import 'ui/index_patterns'; +import { npStart } from 'ui/new_platform'; import { setup as managementSetup } from '../../../../../../management/public/legacy'; import { getCreateBreadcrumbs } from '../breadcrumbs'; @@ -41,7 +41,7 @@ uiRoutes.when('/management/kibana/index_pattern', { const services = { config: $injector.get('config'), es: $injector.get('es'), - indexPatterns: $injector.get('indexPatterns'), + indexPatterns: npStart.plugins.data.indexPatterns, $http: $injector.get('$http'), savedObjectsClient: Private(SavedObjectsClientProvider), indexPatternCreationType, diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js index 5f0994abc11e4..f1c2d6598b134 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js @@ -23,6 +23,7 @@ import { docTitle } from 'ui/doc_title'; import { KbnUrlProvider } from 'ui/url'; import uiRoutes from 'ui/routes'; import { toastNotifications } from 'ui/notify'; +import { npStart } from 'ui/new_platform'; import template from './create_edit_field.html'; import { getEditFieldBreadcrumbs, getCreateFieldBreadcrumbs } from '../../breadcrumbs'; @@ -96,7 +97,8 @@ uiRoutes }); }, resolve: { - indexPattern: function ($route, Promise, redirectWhenMissing, indexPatterns) { + indexPattern: function ($route, Promise, redirectWhenMissing) { + const { indexPatterns } = npStart.plugins.data; return Promise.resolve(indexPatterns.get($route.current.params.indexPatternId)) .catch(redirectWhenMissing('/management/kibana/index_patterns')); } diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js index 150fae6e87dde..c5ffa0826f10e 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js @@ -36,6 +36,7 @@ import { IndexedFieldsTable } from './indexed_fields_table'; import { ScriptedFieldsTable } from './scripted_fields_table'; import { i18n } from '@kbn/i18n'; import { I18nContext } from 'ui/i18n'; +import { npStart } from 'ui/new_platform'; import { getEditBreadcrumbs } from '../breadcrumbs'; @@ -168,7 +169,8 @@ uiRoutes.when('/management/kibana/index_patterns/:indexPatternId', { template, k7Breadcrumbs: getEditBreadcrumbs, resolve: { - indexPattern: function ($route, Promise, redirectWhenMissing, indexPatterns) { + indexPattern: function ($route, Promise, redirectWhenMissing) { + const { indexPatterns } = npStart.plugins.data; return Promise.resolve(indexPatterns.get($route.current.params.indexPatternId)).catch( redirectWhenMissing('/management/kibana/index_patterns') ); @@ -179,7 +181,7 @@ uiRoutes.when('/management/kibana/index_patterns/:indexPatternId', { uiModules .get('apps/management') .controller('managementIndexPatternsEdit', function ( - $scope, $location, $route, Promise, config, indexPatterns, Private, AppState, confirmModal) { + $scope, $location, $route, Promise, config, Private, AppState, confirmModal) { const $state = $scope.state = new AppState(); $scope.fieldWildcardMatcher = (...args) => fieldWildcardMatcher(...args, config.get('metaFields')); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.js b/src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.js index 32cdce1bb4ac4..bd3aa20d097c9 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.js @@ -36,7 +36,7 @@ const REACT_OBJECTS_TABLE_DOM_ELEMENT_ID = 'reactSavedObjectsTable'; function updateObjectsTable($scope, $injector) { const Private = $injector.get('Private'); - const indexPatterns = $injector.get('indexPatterns'); + const indexPatterns = npStart.plugins.data.indexPatterns; const $http = $injector.get('$http'); const kbnUrl = $injector.get('kbnUrl'); const config = $injector.get('config'); diff --git a/src/legacy/core_plugins/navigation/public/legacy.ts b/src/legacy/core_plugins/navigation/public/legacy.ts index 1783514e6fbdc..8a2fdb5ea4964 100644 --- a/src/legacy/core_plugins/navigation/public/legacy.ts +++ b/src/legacy/core_plugins/navigation/public/legacy.ts @@ -18,7 +18,6 @@ */ import { npSetup, npStart } from 'ui/new_platform'; -import { start as dataShim } from '../../data/public/legacy'; import { plugin } from '.'; const navPlugin = plugin(); @@ -26,5 +25,5 @@ const navPlugin = plugin(); export const setup = navPlugin.setup(npSetup.core); export const start = navPlugin.start(npStart.core, { - data: dataShim, + data: npStart.plugins.data, }); diff --git a/src/legacy/core_plugins/navigation/public/plugin.ts b/src/legacy/core_plugins/navigation/public/plugin.ts index 65a0902dec986..27533e6c8fcf6 100644 --- a/src/legacy/core_plugins/navigation/public/plugin.ts +++ b/src/legacy/core_plugins/navigation/public/plugin.ts @@ -18,10 +18,10 @@ */ import { CoreSetup, CoreStart, Plugin } from 'kibana/public'; +import { DataPublicPluginStart } from 'src/plugins/data/public'; import { TopNavMenuExtensionsRegistry, TopNavMenuExtensionsRegistrySetup } from './top_nav_menu'; import { createTopNav } from './top_nav_menu/create_top_nav_menu'; import { TopNavMenuProps } from './top_nav_menu/top_nav_menu'; -import { DataStart } from '../../data/public'; /** * Interface for this plugin's returned `setup` contract. @@ -44,7 +44,7 @@ export interface NavigationStart { } export interface NavigationPluginStartDependencies { - data: DataStart; + data: DataPublicPluginStart; } export class NavigationPlugin implements Plugin { diff --git a/src/legacy/core_plugins/navigation/public/top_nav_menu/create_top_nav_menu.tsx b/src/legacy/core_plugins/navigation/public/top_nav_menu/create_top_nav_menu.tsx index fa0e5fcac7407..0b3b7b5b2a272 100644 --- a/src/legacy/core_plugins/navigation/public/top_nav_menu/create_top_nav_menu.tsx +++ b/src/legacy/core_plugins/navigation/public/top_nav_menu/create_top_nav_menu.tsx @@ -18,11 +18,11 @@ */ import React from 'react'; +import { DataPublicPluginStart } from 'src/plugins/data/public'; import { TopNavMenuProps, TopNavMenu } from './top_nav_menu'; import { TopNavMenuData } from './top_nav_menu_data'; -import { DataStart } from '../../../../core_plugins/data/public'; -export function createTopNav(data: DataStart, extraConfig: TopNavMenuData[]) { +export function createTopNav(data: DataPublicPluginStart, extraConfig: TopNavMenuData[]) { return (props: TopNavMenuProps) => { const config = (props.config || []).concat(extraConfig); diff --git a/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.test.tsx b/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.test.tsx index 9077de8910327..4e2ea44bf7642 100644 --- a/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.test.tsx +++ b/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.test.tsx @@ -22,8 +22,6 @@ import { TopNavMenu } from './top_nav_menu'; import { TopNavMenuData } from './top_nav_menu_data'; import { shallowWithIntl } from 'test_utils/enzyme_helpers'; -jest.mock('ui/new_platform'); - const mockTimeHistory = { add: () => {}, get: () => { diff --git a/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.tsx b/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.tsx index 14599e76470c0..d5f951ea3eeea 100644 --- a/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.tsx +++ b/src/legacy/core_plugins/navigation/public/top_nav_menu/top_nav_menu.tsx @@ -24,13 +24,13 @@ import { I18nProvider } from '@kbn/i18n/react'; import { TopNavMenuData } from './top_nav_menu_data'; import { TopNavMenuItem } from './top_nav_menu_item'; -import { SearchBarProps, DataStart } from '../../../../core_plugins/data/public'; +import { SearchBarProps, DataPublicPluginStart } from '../../../../../plugins/data/public'; export type TopNavMenuProps = Partial & { appName: string; config?: TopNavMenuData[]; showSearchBar?: boolean; - data?: DataStart; + data?: DataPublicPluginStart; }; /* diff --git a/src/legacy/core_plugins/timelion/public/directives/timelion_expression_suggestions/arg_value_suggestions.js b/src/legacy/core_plugins/timelion/public/directives/timelion_expression_suggestions/arg_value_suggestions.js index 81d459f70a5e1..dc3a5be40dff4 100644 --- a/src/legacy/core_plugins/timelion/public/directives/timelion_expression_suggestions/arg_value_suggestions.js +++ b/src/legacy/core_plugins/timelion/public/directives/timelion_expression_suggestions/arg_value_suggestions.js @@ -18,11 +18,11 @@ */ import _ from 'lodash'; -import { SavedObjectsClientProvider } from 'ui/saved_objects'; +import { npStart } from 'ui/new_platform'; -export function ArgValueSuggestionsProvider(Private, indexPatterns) { - - const savedObjectsClient = Private(SavedObjectsClientProvider); +export function ArgValueSuggestionsProvider() { + const { indexPatterns } = npStart.plugins.data; + const { client: savedObjectsClient } = npStart.core.savedObjects; async function getIndexPattern(functionArgs) { const indexPatternArg = functionArgs.find(argument => { diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index f8850d1691cdd..6a1ee9663e805 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -153,8 +153,10 @@ export const npStart = { getProvider: sinon.fake(), }, getSuggestions: sinon.fake(), + indexPatterns: sinon.fake(), ui: { IndexPatternSelect: mockComponent, + SearchBar: mockComponent, }, query: { filterManager: { diff --git a/src/legacy/ui/public/saved_objects/__tests__/saved_object.js b/src/legacy/ui/public/saved_objects/__tests__/saved_object.js index 55d0f800ae7ff..720fc63fb89e7 100644 --- a/src/legacy/ui/public/saved_objects/__tests__/saved_object.js +++ b/src/legacy/ui/public/saved_objects/__tests__/saved_object.js @@ -24,7 +24,7 @@ import Bluebird from 'bluebird'; import { createSavedObjectClass } from '../saved_object'; import StubIndexPattern from 'test_utils/stub_index_pattern'; -import { SavedObjectsClientProvider } from '../saved_objects_client_provider'; +import { npStart } from 'ui/new_platform'; import { InvalidJSONProperty } from '../../../../../plugins/kibana_utils/public'; import { mockUiSettings } from '../../new_platform/new_platform.karma_mock'; @@ -82,6 +82,10 @@ describe('Saved Object', function () { return savedObject.init(); } + function restoreIfWrapped(obj, fName) { + obj[fName].restore && obj[fName].restore(); + } + const mock409FetchError = { res: { status: 409 } }; @@ -96,13 +100,21 @@ describe('Saved Object', function () { }) ); - beforeEach(ngMock.inject(function (es, Private, $window) { - savedObjectsClientStub = Private(SavedObjectsClientProvider); + beforeEach(ngMock.inject(function (es, $window) { + savedObjectsClientStub = npStart.core.savedObjects.client; SavedObject = createSavedObjectClass({ savedObjectsClient: savedObjectsClientStub }); esDataStub = es; window = $window; })); + afterEach(ngMock.inject(function () { + restoreIfWrapped(savedObjectsClientStub, 'create'); + restoreIfWrapped(savedObjectsClientStub, 'get'); + restoreIfWrapped(savedObjectsClientStub, 'update'); + restoreIfWrapped(savedObjectsClientStub, 'find'); + restoreIfWrapped(savedObjectsClientStub, 'bulkGet'); + })); + describe('save', function () { describe('with confirmOverwrite', function () { function stubConfirmOverwrite() { diff --git a/src/plugins/data/public/index_patterns/index_patterns/index_pattern.test.ts b/src/plugins/data/public/index_patterns/index_patterns/index_pattern.test.ts index f56f94fa8c260..1f83e4bd5b80c 100644 --- a/src/plugins/data/public/index_patterns/index_patterns/index_pattern.test.ts +++ b/src/plugins/data/public/index_patterns/index_patterns/index_pattern.test.ts @@ -33,8 +33,6 @@ import { setNotifications, setFieldFormats } from '../../services'; import { notificationServiceMock } from '../../../../../core/public/notifications/notifications_service.mock'; import { FieldFormatRegisty } from '../../field_formats_provider'; -jest.mock('ui/new_platform'); - jest.mock('../../../../kibana_utils/public', () => { const originalModule = jest.requireActual('../../../../kibana_utils/public'); @@ -50,19 +48,6 @@ jest.mock('../../../../kibana_utils/public', () => { }; }); -jest.mock('ui/notify', () => ({ - toastNotifications: { - addDanger: jest.fn(), - addError: jest.fn(), - }, -})); - -jest.mock('ui/saved_objects', () => { - return { - findObjectByTitle: jest.fn(), - }; -}); - let mockFieldsFetcherResponse: any[] = []; jest.mock('./_fields_fetcher', () => ({ diff --git a/src/plugins/data/public/mocks.ts b/src/plugins/data/public/mocks.ts index 058e6c0e2f5c5..03d3dad61ed05 100644 --- a/src/plugins/data/public/mocks.ts +++ b/src/plugins/data/public/mocks.ts @@ -74,6 +74,7 @@ const createStartContract = (): Start => { query: queryStartMock, ui: { IndexPatternSelect: jest.fn(), + SearchBar: jest.fn(), }, indexPatterns: {} as IndexPatternsContract, }; diff --git a/src/plugins/data/public/plugin.ts b/src/plugins/data/public/plugin.ts index 2a37be7f3f46a..cd55048ca527f 100644 --- a/src/plugins/data/public/plugin.ts +++ b/src/plugins/data/public/plugin.ts @@ -18,7 +18,7 @@ */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from 'src/core/public'; -import { Storage } from '../../kibana_utils/public'; +import { Storage, IStorageWrapper } from '../../kibana_utils/public'; import { DataPublicPluginSetup, DataPublicPluginStart, @@ -35,24 +35,26 @@ import { IndexPatterns } from './index_patterns'; import { setNotifications, setFieldFormats, setOverlays, setIndexPatterns } from './services'; import { createFilterAction, GLOBAL_APPLY_FILTER_ACTION } from './actions'; import { APPLY_FILTER_TRIGGER } from '../../embeddable/public'; +import { createSearchBar } from './ui/search_bar/create_search_bar'; export class DataPublicPlugin implements Plugin { private readonly autocomplete = new AutocompleteProviderRegister(); private readonly searchService: SearchService; private readonly fieldFormatsService: FieldFormatsService; private readonly queryService: QueryService; + private readonly storage: IStorageWrapper; constructor(initializerContext: PluginInitializerContext) { this.searchService = new SearchService(initializerContext); this.queryService = new QueryService(); this.fieldFormatsService = new FieldFormatsService(); + this.storage = new Storage(window.localStorage); } public setup(core: CoreSetup, { uiActions }: DataSetupDependencies): DataPublicPluginSetup { - const storage = new Storage(window.localStorage); const queryService = this.queryService.setup({ uiSettings: core.uiSettings, - storage, + storage: this.storage, }); uiActions.registerAction( @@ -79,16 +81,27 @@ export class DataPublicPlugin implements Plugin; + SearchBar: React.ComponentType; }; } diff --git a/src/plugins/data/public/ui/index.ts b/src/plugins/data/public/ui/index.ts index 8bfccd49bdff3..cd4ec3c3bf74b 100644 --- a/src/plugins/data/public/ui/index.ts +++ b/src/plugins/data/public/ui/index.ts @@ -21,8 +21,8 @@ export { SuggestionsComponent } from './typeahead/suggestions_component'; export { IndexPatternSelect } from './index_pattern_select'; export { FilterBar } from './filter_bar'; export { QueryStringInput } from './query_string_input/query_string_input'; +export { SearchBar, SearchBarProps } from './search_bar'; // temp export - will be removed as final components are migrated to NP -export { QueryBarTopRow } from './query_string_input/query_bar_top_row'; export { SavedQueryManagementComponent } from './saved_query_management'; export { SaveQueryForm, SavedQueryMeta } from './saved_query_form'; diff --git a/src/plugins/data/public/ui/query_string_input/__snapshots__/query_string_input.test.tsx.snap b/src/plugins/data/public/ui/query_string_input/__snapshots__/query_string_input.test.tsx.snap index 80a5ede567054..4de883295bd8a 100644 --- a/src/plugins/data/public/ui/query_string_input/__snapshots__/query_string_input.test.tsx.snap +++ b/src/plugins/data/public/ui/query_string_input/__snapshots__/query_string_input.test.tsx.snap @@ -209,6 +209,7 @@ exports[`QueryStringInput Should disable autoFocus on EuiFieldText when disableA }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { @@ -829,6 +830,7 @@ exports[`QueryStringInput Should disable autoFocus on EuiFieldText when disableA }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { @@ -1437,6 +1439,7 @@ exports[`QueryStringInput Should pass the query language to the language switche }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { @@ -2054,6 +2057,7 @@ exports[`QueryStringInput Should pass the query language to the language switche }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { @@ -2662,6 +2666,7 @@ exports[`QueryStringInput Should render the given query 1`] = ` }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { @@ -3279,6 +3284,7 @@ exports[`QueryStringInput Should render the given query 1`] = ` }, "ui": Object { "IndexPatternSelect": [MockFunction], + "SearchBar": [MockFunction], }, }, "docLinks": Object { diff --git a/src/legacy/core_plugins/data/public/search/search_bar/components/create_search_bar.tsx b/src/plugins/data/public/ui/search_bar/create_search_bar.tsx similarity index 82% rename from src/legacy/core_plugins/data/public/search/search_bar/components/create_search_bar.tsx rename to src/plugins/data/public/ui/search_bar/create_search_bar.tsx index 125c6b8dad006..6f1be2825dd01 100644 --- a/src/legacy/core_plugins/data/public/search/search_bar/components/create_search_bar.tsx +++ b/src/plugins/data/public/ui/search_bar/create_search_bar.tsx @@ -21,29 +21,29 @@ import React, { useState, useEffect } from 'react'; import { Subscription } from 'rxjs'; import { CoreStart } from 'src/core/public'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { KibanaContextProvider } from '../../../../../../../../src/plugins/kibana_react/public'; -import { SearchBar } from '../../../'; -import { SearchBarOwnProps } from '.'; -import { DataPublicPluginStart, esFilters } from '../../../../../../../plugins/data/public'; +import { KibanaContextProvider } from '../../../../kibana_react/public'; +import { DataPublicPluginStart, esFilters } from '../..'; +import { QueryStart } from '../../query'; +import { SearchBarOwnProps, SearchBar } from './search_bar'; interface StatefulSearchBarDeps { core: CoreStart; - data: DataPublicPluginStart; + data: Omit; storage: IStorageWrapper; } -export type StatetfulSearchBarProps = SearchBarOwnProps & { +export type StatefulSearchBarProps = SearchBarOwnProps & { appName: string; }; -const defaultFiltersUpdated = (data: DataPublicPluginStart) => { +const defaultFiltersUpdated = (query: QueryStart) => { return (filters: esFilters.Filter[]) => { - data.query.filterManager.setFilters(filters); + query.filterManager.setFilters(filters); }; }; -const defaultOnRefreshChange = (data: DataPublicPluginStart) => { - const { timefilter } = data.query.timefilter; +const defaultOnRefreshChange = (query: QueryStart) => { + const { timefilter } = query.timefilter; return (options: { isPaused: boolean; refreshInterval: number }) => { timefilter.setRefreshInterval({ value: options.refreshInterval, @@ -55,7 +55,7 @@ const defaultOnRefreshChange = (data: DataPublicPluginStart) => { export function createSearchBar({ core, storage, data }: StatefulSearchBarDeps) { // App name should come from the core application service. // Until it's available, we'll ask the user to provide it for the pre-wired component. - return (props: StatetfulSearchBarProps) => { + return (props: StatefulSearchBarProps) => { const { filterManager, timefilter } = data.query; const tfRefreshInterval = timefilter.timefilter.getRefreshInterval(); const fmFilters = filterManager.getFilters(); @@ -98,7 +98,7 @@ export function createSearchBar({ core, storage, data }: StatefulSearchBarDeps) isSubscribed = false; subscriptions.unsubscribe(); }; - }, []); + }, [filterManager, timefilter.timefilter]); return ( diff --git a/src/legacy/core_plugins/data/public/search/search_bar/index.tsx b/src/plugins/data/public/ui/search_bar/index.tsx similarity index 93% rename from src/legacy/core_plugins/data/public/search/search_bar/index.tsx rename to src/plugins/data/public/ui/search_bar/index.tsx index faf6e24aa6ed5..4aa7f5fe2b040 100644 --- a/src/legacy/core_plugins/data/public/search/search_bar/index.tsx +++ b/src/plugins/data/public/ui/search_bar/index.tsx @@ -17,4 +17,4 @@ * under the License. */ -export * from './components'; +export { SearchBar, SearchBarProps } from './search_bar'; diff --git a/src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.test.tsx b/src/plugins/data/public/ui/search_bar/search_bar.test.tsx similarity index 96% rename from src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.test.tsx rename to src/plugins/data/public/ui/search_bar/search_bar.test.tsx index 5752d6a502225..56d444761153f 100644 --- a/src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.test.tsx +++ b/src/plugins/data/public/ui/search_bar/search_bar.test.tsx @@ -19,15 +19,15 @@ import React from 'react'; import { SearchBar } from './search_bar'; -import { IndexPattern } from '../../../index_patterns'; import { KibanaContextProvider } from 'src/plugins/kibana_react/public'; import { I18nProvider } from '@kbn/i18n/react'; -import { coreMock } from '../../../../../../../../src/core/public/mocks'; +import { coreMock } from '../../../../../core/public/mocks'; const startMock = coreMock.createStart(); import { mount } from 'enzyme'; +import { IIndexPattern } from '../..'; const mockTimeHistory = { get: () => { @@ -35,9 +35,14 @@ const mockTimeHistory = { }, }; -jest.mock('../../../../../../../plugins/data/public', () => { +jest.mock('../..', () => { return { FilterBar: () =>
, + }; +}); + +jest.mock('../query_string_input/query_bar_top_row', () => { + return { QueryBarTopRow: () =>
, }; }); @@ -74,7 +79,7 @@ const mockIndexPattern = { searchable: true, }, ], -} as IndexPattern; +} as IIndexPattern; const kqlQuery = { query: 'response:200', diff --git a/src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.tsx b/src/plugins/data/public/ui/search_bar/search_bar.tsx similarity index 98% rename from src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.tsx rename to src/plugins/data/public/ui/search_bar/search_bar.tsx index f547fada4a3b1..ceaeb24e7fe7c 100644 --- a/src/legacy/core_plugins/data/public/search/search_bar/components/search_bar.tsx +++ b/src/plugins/data/public/ui/search_bar/search_bar.tsx @@ -24,10 +24,7 @@ import React, { Component } from 'react'; import ResizeObserver from 'resize-observer-polyfill'; import { get, isEqual } from 'lodash'; -import { - withKibana, - KibanaReactContextValue, -} from '../../../../../../../plugins/kibana_react/public'; +import { withKibana, KibanaReactContextValue } from '../../../../kibana_react/public'; import { IDataPluginServices, TimeRange, @@ -37,12 +34,12 @@ import { TimeHistoryContract, FilterBar, SavedQuery, - SavedQueryAttributes, SavedQueryMeta, SaveQueryForm, SavedQueryManagementComponent, - QueryBarTopRow, -} from '../../../../../../../plugins/data/public'; + SavedQueryAttributes, +} from '../..'; +import { QueryBarTopRow } from '../query_string_input/query_bar_top_row'; interface SearchBarInjectedDeps { kibana: KibanaReactContextValue; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js index 941694c19ad56..fc47ea6c36a01 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js @@ -25,10 +25,8 @@ import { i18n } from '@kbn/i18n'; import { indexPatternService } from '../../../kibana_services'; import { GlobalFilterCheckbox } from '../../../components/global_filter_checkbox'; -import { start as data } from '../../../../../../../../src/legacy/core_plugins/data/public/legacy'; -const { SearchBar } = data.ui; - import { npStart } from 'ui/new_platform'; +const { SearchBar } = npStart.plugins.data.ui; export class FilterEditor extends Component { state = { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js index fb09ed342b8d3..4fc1eba1f1e2f 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js @@ -13,8 +13,8 @@ import { EuiFormHelpText, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { SearchBar } from 'plugins/data'; import { npStart } from 'ui/new_platform'; +const { SearchBar } = npStart.plugins.data.ui; export class WhereExpression extends Component { diff --git a/x-pack/legacy/plugins/siem/public/components/query_bar/index.test.tsx b/x-pack/legacy/plugins/siem/public/components/query_bar/index.test.tsx index ce102d7ade53b..10b769e2a791c 100644 --- a/x-pack/legacy/plugins/siem/public/components/query_bar/index.test.tsx +++ b/x-pack/legacy/plugins/siem/public/components/query_bar/index.test.tsx @@ -7,8 +7,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { SearchBar } from '../../../../../../../src/legacy/core_plugins/data/public'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import { FilterManager, SearchBar } from '../../../../../../../src/plugins/data/public'; import { uiSettingsServiceMock } from '../../../../../../../src/core/public/ui_settings/ui_settings_service.mock'; import { useKibanaCore } from '../../lib/compose/kibana_core'; import { TestProviders, mockIndexPattern } from '../../mock'; diff --git a/x-pack/legacy/plugins/siem/public/components/query_bar/index.tsx b/x-pack/legacy/plugins/siem/public/components/query_bar/index.tsx index bf440e238c2a3..9f706790bec67 100644 --- a/x-pack/legacy/plugins/siem/public/components/query_bar/index.tsx +++ b/x-pack/legacy/plugins/siem/public/components/query_bar/index.tsx @@ -8,7 +8,6 @@ import { isEqual } from 'lodash/fp'; import React, { memo, useState, useEffect, useMemo, useCallback } from 'react'; import { IndexPattern } from 'ui/index_patterns'; -import { SavedQuery, SearchBar } from '../../../../../../../src/legacy/core_plugins/data/public'; import { esFilters, IIndexPattern, @@ -16,6 +15,8 @@ import { Query, TimeHistory, TimeRange, + SavedQuery, + SearchBar, SavedQueryTimeFilter, } from '../../../../../../../src/plugins/data/public'; import { Storage } from '../../../../../../../src/plugins/kibana_utils/public'; diff --git a/x-pack/legacy/plugins/siem/public/components/search_bar/index.tsx b/x-pack/legacy/plugins/siem/public/components/search_bar/index.tsx index fa9ff1e16ddb7..3d02cff7b72e8 100644 --- a/x-pack/legacy/plugins/siem/public/components/search_bar/index.tsx +++ b/x-pack/legacy/plugins/siem/public/components/search_bar/index.tsx @@ -16,7 +16,6 @@ import { SavedQuery } from 'src/legacy/core_plugins/data/public'; import { OnTimeChangeProps } from '@elastic/eui'; import { npStart } from 'ui/new_platform'; -import { start as data } from '../../../../../../../src/legacy/core_plugins/data/public/legacy'; import { inputsActions } from '../../store/inputs'; import { InputsRange } from '../../store/inputs/model'; @@ -37,12 +36,9 @@ import { import { timelineActions, hostsActions, networkActions } from '../../store/actions'; import { TimeRange, Query, esFilters } from '../../../../../../../src/plugins/data/public'; -const { - ui: { SearchBar }, -} = data; - export const siemFilterManager = npStart.plugins.data.query.filterManager; export const savedQueryService = npStart.plugins.data.query.savedQueries; +const { SearchBar } = npStart.plugins.data.ui; interface SiemSearchBarRedux { end: number;