visualizations 👉 NP-ready (#47142)

* fix: 🐛 improve visualizations NP-ready plugin

* fix: 🐛 fix imports of visualizations plugin NP-ready

* fix: 🐛 remove dependency on non-existing plugin

* fix: 🐛 remove dependencies on non-existing 'visualizations' pl

* fix: 🐛 use new visualizations plugin NP-ready legacy import
This commit is contained in:
Vadim Dalecky 2019-10-03 12:37:09 +02:00 committed by GitHub
parent c9cd9878d4
commit be13b7d4a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 65 additions and 111 deletions

View file

@ -24,7 +24,7 @@ import { OptionsTab } from './components/editor/options_tab';
import { defaultFeedbackMessage } from 'ui/vis/default_feedback_message';
import { Status } from 'ui/vis/update_status';
import { i18n } from '@kbn/i18n';
import { setup as visualizations } from '../../visualizations/public/legacy';
import { setup as visualizations } from '../../visualizations/public/np_ready/public/legacy';
function InputControlVisProvider() {

View file

@ -23,7 +23,7 @@ import chrome from 'ui/chrome';
import { FilterBarQueryFilterProvider } from 'ui/filter_manager/query_filter';
import { PersistedState } from 'ui/persisted_state';
import { setup as data } from '../../../data/public/legacy';
import { start as visualizations } from '../../../visualizations/public/legacy';
import { start as visualizations } from '../../../visualizations/public/np_ready/public/legacy';
export const visualization = () => ({
name: 'visualization',

View file

@ -17,7 +17,7 @@
* under the License.
*/
import { setup as visualizations } from '../../visualizations/public/legacy';
import { setup as visualizations } from '../../visualizations/public/np_ready/public/legacy';
import histogramVisTypeProvider from './histogram';
import lineVisTypeProvider from './line';

View file

@ -55,7 +55,7 @@ import { SavedObjectSaveModal } from 'ui/saved_objects/components/saved_object_s
import { getEditBreadcrumbs, getCreateBreadcrumbs } from '../breadcrumbs';
import { npStart } from 'ui/new_platform';
import { setup as data } from '../../../../../core_plugins/data/public/legacy';
import { start as visualizations } from '../../../../visualizations/public/legacy';
import { start as visualizations } from '../../../../visualizations/public/np_ready/public/legacy';
import { addHelpMenuToAppChrome } from '../help_menu/help_menu_util';

View file

@ -52,14 +52,14 @@ import {
Container,
EmbeddableOutput,
} from '../../../../../../plugins/embeddable/public';
import { start as visualizations } from '../../../../visualizations/public/legacy';
import { start as visualizations } from '../../../../visualizations/public/np_ready/public/legacy';
import { showNewVisModal } from '../wizard';
import { SavedVisualizations } from '../types';
import { DisabledLabEmbeddable } from './disabled_lab_embeddable';
import { getIndexPattern } from './get_index_pattern';
import { VisualizeEmbeddable, VisualizeInput, VisualizeOutput } from './visualize_embeddable';
import { VISUALIZE_EMBEDDABLE_TYPE } from './constants';
import { TypesStart } from '../../../../visualizations/public/np_ready/types';
import { TypesStart } from '../../../../visualizations/public/np_ready/public/types';
interface VisualizationAttributes extends SavedObjectAttributes {
visState: string;

View file

@ -29,7 +29,7 @@ import { SavedObjectsClientProvider } from 'ui/saved_objects';
import { VisualizeListingTable } from './visualize_listing_table';
import { NewVisModal } from '../wizard/new_vis_modal';
import { VisualizeConstants } from '../visualize_constants';
import { start as visualizations } from '../../../../visualizations/public/legacy';
import { start as visualizations } from '../../../../visualizations/public/np_ready/public/legacy';
import { i18n } from '@kbn/i18n';
const app = uiModules.get('app/visualize', ['ngRoute', 'react']);

View file

@ -21,7 +21,7 @@ import './_saved_vis';
import { uiModules } from 'ui/modules';
import { SavedObjectLoader, SavedObjectsClientProvider } from 'ui/saved_objects';
import { savedObjectManagementRegistry } from '../../management/saved_object_registry';
import { start as visualizations } from '../../../../visualizations/public/legacy';
import { start as visualizations } from '../../../../visualizations/public/np_ready/public/legacy';
import { createVisualizeEditUrl } from '../visualize_constants';
import { findListItems } from './find_list_items';

View file

@ -25,7 +25,7 @@ import { settingsGet } from './new_vis_modal.test.mocks';
import { NewVisModal } from './new_vis_modal';
import { VisType } from 'ui/vis';
import { TypesStart } from '../../../../visualizations/public/np_ready/types';
import { TypesStart } from '../../../../visualizations/public/np_ready/public/types';
describe('NewVisModal', () => {
const defaultVisTypeParams = {

View file

@ -28,7 +28,7 @@ import { VisualizeConstants } from '../visualize_constants';
import { SearchSelection } from './search_selection';
import { TypeSelection } from './type_selection';
import { TypesStart } from '../../../../visualizations/public/np_ready/types';
import { TypesStart } from '../../../../visualizations/public/np_ready/public/types';
interface TypeSelectionProps {
isOpen: boolean;

View file

@ -22,7 +22,7 @@ import ReactDOM from 'react-dom';
import { I18nContext } from 'ui/i18n';
import { NewVisModal } from './new_vis_modal';
import { TypesStart } from '../../../../visualizations/public/np_ready/types';
import { TypesStart } from '../../../../visualizations/public/np_ready/public/types';
interface ShowNewVisModalParams {
editorParams?: string[];

View file

@ -41,7 +41,7 @@ import { VisTypeAlias } from '../../../../../visualizations/public';
import { NewVisHelp } from './new_vis_help';
import { VisHelpText } from './vis_help_text';
import { VisTypeIcon } from './vis_type_icon';
import { TypesStart } from '../../../../../visualizations/public/np_ready/types';
import { TypesStart } from '../../../../../visualizations/public/np_ready/public/types';
interface VisTypeListEntry extends VisType {
highlighted: boolean;

View file

@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const regionMapPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'region_map',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
hacks: [resolve(__dirname, 'public/legacy')],

View file

@ -39,7 +39,7 @@ import afterdatachangePng from './afterdatachange.png';
import afterdatachangeandresizePng from './afterdatachangeandresize.png';
import aftercolorchangePng from './aftercolorchange.png';
import changestartupPng from './changestartup.png';
import { setup as visualizationsSetup } from '../../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../visualizations/public/np_ready/public/legacy';
import { createRegionMapVisualization } from '../region_map_visualization';
import { createRegionMapTypeDefinition } from '../region_map_type';

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { RegionMapPluginSetupDependencies, RegionMapsConfig } from './plugin';
import { LegacyDependenciesPlugin } from './shim';
import { plugin } from '.';

View file

@ -28,7 +28,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const tileMapPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'tile_map',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -33,7 +33,7 @@ import EMS_TILES from '../../../../ui/public/vis/__tests__/map/ems_mocks/sample_
import EMS_STYLE_ROAD_MAP_BRIGHT from '../../../../ui/public/vis/__tests__/map/ems_mocks/sample_style_bright';
import EMS_STYLE_ROAD_MAP_DESATURATED from '../../../../ui/public/vis/__tests__/map/ems_mocks/sample_style_desaturated';
import EMS_STYLE_DARK_MAP from '../../../../ui/public/vis/__tests__/map/ems_mocks/sample_style_dark';
import { setup as visualizationsSetup } from '../../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../visualizations/public/np_ready/public/legacy';
import { createTileMapVisualization } from '../tile_map_visualization';
import { createTileMapTypeDefinition } from '../tile_map_type';

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { TileMapPluginSetupDependencies } from './plugin';
import { LegacyDependenciesPlugin } from './shim';
import { plugin } from '.';

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { plugin } from '.';
import { setup as visualizations } from '../../visualizations/public/legacy';
import { setup as visualizations } from '../../visualizations/public/np_ready/public/legacy';
import { TimelionPluginSetupDependencies, TimelionPluginStartDependencies } from './plugin';
// @ts-ignore
import panelRegistry from './lib/panel_registry';

View file

@ -26,7 +26,7 @@ import {
HttpSetup,
} from 'kibana/public';
import { Plugin as ExpressionsPlugin } from 'src/plugins/expressions/public';
import { VisualizationsSetup } from '../../visualizations/public/np_ready';
import { VisualizationsSetup } from '../../visualizations/public/np_ready/public';
import { getTimelionVisualizationConfig } from './timelion_vis_fn';
import { getTimelionVisualization } from './vis';
import { getTimeChart } from './panels/timechart/timechart';

View file

@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const markdownPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'markdown_vis',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { MarkdownPluginSetupDependencies } from './plugin';
import { plugin } from '.';

View file

@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const metricPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'metric_vis',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { MetricVisPluginSetupDependencies } from './plugin';
import { LegacyDependenciesPlugin } from './shim';
import { plugin } from '.';

View file

@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const tableVisPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'table_vis',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -28,7 +28,7 @@ import { AppStateProvider } from 'ui/state_management/app_state';
import { tabifyAggResponse } from 'ui/agg_response/tabify';
import { createTableVisTypeDefinition } from '../table_vis_type';
import { setup as visualizationsSetup } from '../../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../visualizations/public/np_ready/public/legacy';
describe('Table Vis - Controller', async function () {
let $rootScope;

View file

@ -31,7 +31,7 @@ import { round } from 'lodash';
import { VisFactoryProvider } from 'ui/vis/vis_factory';
import { createTableVisTypeDefinition } from '../../table_vis_type';
import { setup as visualizationsSetup } from '../../../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../../visualizations/public/np_ready/public/legacy';
describe('Table Vis - AggTable Directive', function () {
let $rootScope;

View file

@ -22,7 +22,7 @@ import { npSetup, npStart } from 'ui/new_platform';
import { plugin } from '.';
import { TablePluginSetupDependencies } from './plugin';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { LegacyDependenciesPlugin } from './shim';
const plugins: Readonly<TablePluginSetupDependencies> = {

View file

@ -25,7 +25,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const tagCloudPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'tagcloud',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { TagCloudPluginSetupDependencies } from './plugin';
import { plugin } from '.';

View file

@ -30,7 +30,7 @@ import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy
const metricsPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) =>
new Plugin({
id: 'metrics',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { MetricsPluginSetupDependencies } from './plugin';
import { plugin } from '.';

View file

@ -28,7 +28,7 @@ const vegaPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPlugin
// It is required to change the configuration property
// vega.enableExternalUrls -> vis_type_vega.enableExternalUrls
id: 'vega',
require: ['kibana', 'elasticsearch', 'visualizations', 'interpreter', 'expressions'],
require: ['kibana', 'elasticsearch', 'interpreter', 'expressions'],
publicDir: resolve(__dirname, 'public'),
uiExports: {
styleSheetPaths: resolve(__dirname, 'public/index.scss'),

View file

@ -41,7 +41,7 @@ import vegaMapImage256 from './vega_map_image_256.png';
import { VegaParser } from '../data_model/vega_parser';
import { SearchCache } from '../data_model/search_cache';
import { setup as visualizationsSetup } from '../../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../visualizations/public/np_ready/public/legacy';
import { createVegaTypeDefinition } from '../vega_type';
const THRESHOLD = 0.1;

View file

@ -20,7 +20,7 @@
import { PluginInitializerContext } from 'kibana/public';
import { npSetup, npStart } from 'ui/new_platform';
import { setup as visualizationsSetup } from '../../visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../visualizations/public/np_ready/public/legacy';
import { VegaPluginSetupDependencies } from './plugin';
import { LegacyDependenciesPlugin } from './shim';
import { plugin } from '.';

View file

@ -1,38 +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 { resolve } from 'path';
import { Legacy } from '../../../../kibana';
// eslint-disable-next-line import/no-default-export
export default function VisualizationsPlugin(kibana: any) {
const config: Legacy.PluginSpecOptions = {
id: 'visualizations',
require: ['data'],
publicDir: resolve(__dirname, 'public'),
config: (Joi: any) => {
return Joi.object({
enabled: Joi.boolean().default(true),
}).default();
},
init: (server: Legacy.Server) => ({}),
};
return new kibana.Plugin(config);
}

View file

@ -1,4 +0,0 @@
{
"name": "visualizations",
"version": "kibana"
}

View file

@ -50,7 +50,7 @@ export { Status } from 'ui/vis/update_status';
*
* @public
*/
export * from './np_ready';
export * from './np_ready/public';
// for backwards compatibility with 7.3
export { setup as visualizations } from './legacy';
export { setup as visualizations } from './np_ready/public/legacy';

View file

@ -0,0 +1,10 @@
{
"id": "visualizations",
"version": "kibana",
"server": false,
"ui": true,
"requiredPlugins": [
"data",
"search"
]
}

View file

@ -28,6 +28,7 @@
* in the setup/start interfaces in `plugin.ts`. The remaining items exported here are
* either types, or static code.
*/
import { PluginInitializerContext } from 'src/core/public';
import { VisualizationsPlugin, VisualizationsSetup, VisualizationsStart } from './plugin';

View file

@ -17,27 +17,13 @@
* under the License.
*/
/**
* New Platform Shim
*
* In this file, we import any legacy dependencies we have, and shim them into
* our plugin by manually constructing the values that the new platform will
* eventually be passing to the `setup/start` method of our plugin definition.
*
* The idea is that our `plugin.ts` can stay "pure" and not contain any legacy
* world code. Then when it comes time to migrate to the new platform, we can
* simply delete this shim file.
*
* We are also calling `setup/start` here and exporting our public contract so that
* other legacy plugins are able to import from '../core_plugins/visualizations/legacy'
* and receive the response value of the `setup/start` contract, mimicking the
* data that will eventually be injected by the new platform.
*/
import { PluginInitializerContext } from 'src/core/public';
/* eslint-disable @kbn/eslint/no-restricted-paths */
import { npSetup, npStart } from 'ui/new_platform';
// @ts-ignore
import { VisFiltersProvider, createFilter } from 'ui/vis/vis_filters';
/* eslint-enable @kbn/eslint/no-restricted-paths */
import { plugin } from '.';

View file

@ -22,18 +22,17 @@ jest.mock('ui/vis/default_feedback_message');
jest.mock('ui/vis/index.js');
jest.mock('ui/vis/vis_factory');
jest.mock('ui/registry/vis_types');
jest.mock('./types/vis_type_alias_registry');
import { PluginInitializerContext } from 'src/core/public';
import { VisualizationsSetup, VisualizationsStart } from './';
import { VisualizationsPlugin } from './plugin';
import { coreMock } from '../../../../../../core/public/mocks';
/* eslint-disable */
// @ts-ignore
import { VisFiltersProvider, createFilter } from 'ui/vis/vis_filters';
// @ts-ignore
import { VisProvider as Vis } from 'ui/vis/index.js';
// @ts-ignore
import { VisFactoryProvider } from 'ui/vis/vis_factory';
jest.mock('./types/vis_type_alias_registry');
import { PluginInitializerContext } from 'src/core/public';
import { VisualizationsSetup, VisualizationsStart } from './';
import { VisualizationsPlugin } from './np_ready/plugin';
import { coreMock } from '../../../../core/public/mocks';
/* eslint-enable */
const createSetupContract = (): VisualizationsSetup => ({
filters: {

View file

@ -22,7 +22,7 @@ import ngMock from 'ng_mock';
import expect from '@kbn/expect';
import { VisProvider } from '..';
import FixturesStubbedLogstashIndexPatternProvider from 'fixtures/stubbed_logstash_index_pattern';
import { start as visualizations } from '../../../../core_plugins/visualizations/public/legacy';
import { start as visualizations } from '../../../../core_plugins/visualizations/public/np_ready/public/legacy';
describe('Vis Class', function () {
let indexPattern;

View file

@ -34,7 +34,7 @@ import { AggConfigs } from '../agg_types/agg_configs';
import { PersistedState } from '../persisted_state';
import { updateVisualizationConfig } from './vis_update';
import { SearchSourceProvider } from '../courier/search_source';
import { start as visualizations } from '../../../core_plugins/visualizations/public/legacy';
import { start as visualizations } from '../../../core_plugins/visualizations/public/np_ready/public/legacy';
import '../directives/bind';

View file

@ -31,7 +31,7 @@ import { EventEmitter } from 'events';
import _ from 'lodash';
import { PersistedState } from '../../persisted_state';
import { start as visualizations } from '../../../../core_plugins/visualizations/public/legacy';
import { start as visualizations } from '../../../../core_plugins/visualizations/public/np_ready/public/legacy';
export function VisProvider(indexPatterns, getAppState) {

View file

@ -22,7 +22,7 @@ import { visFactory } from 'ui/vis/vis_factory';
import { SelfChangingEditor } from './self_changing_editor';
import { SelfChangingComponent } from './self_changing_components';
import { setup as visualizations } from '../../../../../../src/legacy/core_plugins/visualizations/public/legacy';
import { setup as visualizations } from '../../../../../../src/legacy/core_plugins/visualizations/public/np_ready/public/legacy';
function SelfChangingVisType() {

View file

@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { setup as visualizationsSetup } from '../../../../../src/legacy/core_plugins/visualizations/public/legacy';
import { setup as visualizationsSetup } from '../../../../../src/legacy/core_plugins/visualizations/public/np_ready/public/legacy';
import { i18n } from '@kbn/i18n';
import { APP_ID, APP_ICON, MAP_BASE_URL } from '../common/constants';