mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
* Move visualize plugin to np * Refactor plugin services * Clean up * Remove legacy style usage * Fix style imports * Fix timelion_options context provider * Fix translations * Change codeowners for visualize * Import styles in legacy for BWC in Browser tests * Get rid of embeddable dependency Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> # Conflicts: # .github/CODEOWNERS # x-pack/plugins/translations/translations/ja-JP.json # x-pack/plugins/translations/translations/zh-CN.json
This commit is contained in:
parent
24cae4356c
commit
334b315848
49 changed files with 259 additions and 390 deletions
|
@ -54,7 +54,8 @@
|
|||
"visTypeVega": "src/legacy/core_plugins/vis_type_vega",
|
||||
"visTypeVislib": "src/legacy/core_plugins/vis_type_vislib",
|
||||
"visTypeXy": "src/legacy/core_plugins/vis_type_xy",
|
||||
"visualizations": "src/plugins/visualizations"
|
||||
"visualizations": "src/plugins/visualizations",
|
||||
"visualize": "src/plugins/visualize"
|
||||
},
|
||||
"exclude": [
|
||||
"src/legacy/ui/ui_render/ui_render_mixin.js"
|
||||
|
|
|
@ -54,11 +54,7 @@ export default function(kibana) {
|
|||
},
|
||||
|
||||
uiExports: {
|
||||
hacks: [
|
||||
'plugins/kibana/discover/legacy',
|
||||
'plugins/kibana/dev_tools',
|
||||
'plugins/kibana/visualize/legacy',
|
||||
],
|
||||
hacks: ['plugins/kibana/discover/legacy', 'plugins/kibana/dev_tools'],
|
||||
app: {
|
||||
id: 'kibana',
|
||||
title: 'Kibana',
|
||||
|
|
|
@ -13,8 +13,10 @@
|
|||
// Discover styles
|
||||
@import 'discover/index';
|
||||
|
||||
// Visualize styles
|
||||
@import './visualize/index';
|
||||
// Visualization styles are imported here for running karma Browser tests
|
||||
// should be somehow included through the "visualizations" plugin initialization
|
||||
@import '../../../../plugins/visualizations/public/index';
|
||||
|
||||
// Has to come after visualize because of some
|
||||
// bad cascading in the Editor layout
|
||||
@import '../../../../plugins/maps_legacy/public/index';
|
||||
|
|
|
@ -43,7 +43,6 @@ import 'uiExports/interpreter';
|
|||
|
||||
import 'ui/autoload/all';
|
||||
import './discover/legacy';
|
||||
import './visualize/legacy';
|
||||
import './management';
|
||||
import './dev_tools';
|
||||
import { showAppRedirectNotification } from '../../../../plugins/kibana_legacy/public';
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
// Visualize plugin styles
|
||||
@import 'np_ready/index';
|
||||
|
||||
// should be removed while moving the visualize into NP
|
||||
@import '../../../../../plugins/vis_default_editor/public/index'
|
|
@ -1,28 +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 { PluginInitializerContext } from 'kibana/public';
|
||||
import { npSetup, npStart } from 'ui/new_platform';
|
||||
import { plugin } from './index';
|
||||
|
||||
const instance = plugin({
|
||||
env: npSetup.plugins.kibanaLegacy.env,
|
||||
} as PluginInitializerContext);
|
||||
instance.setup(npSetup.core, npSetup.plugins);
|
||||
instance.start(npStart.core, npStart.plugins);
|
|
@ -1,36 +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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The imports in this file are static functions and types which still live in legacy folders and are used
|
||||
* within dashboard. To consolidate them all in one place, they are re-exported from this file. Eventually
|
||||
* this list should become empty. Imports from the top level of shimmed or moved plugins can be imported
|
||||
* directly where they are needed.
|
||||
*/
|
||||
|
||||
export { DashboardConstants } from '../../../../../plugins/dashboard/public';
|
||||
export {
|
||||
VisSavedObject,
|
||||
VISUALIZE_EMBEDDABLE_TYPE,
|
||||
} from '../../../../../plugins/visualizations/public/';
|
||||
export {
|
||||
configureAppAngularModule,
|
||||
migrateLegacyQuery,
|
||||
subscribeWithScope,
|
||||
} from '../../../../../plugins/kibana_legacy/public';
|
|
@ -24,7 +24,9 @@ import { VisOptionsProps } from 'src/plugins/vis_default_editor/public';
|
|||
import { VisParams } from './timelion_vis_fn';
|
||||
import { TimelionInterval, TimelionExpressionInput } from './components';
|
||||
|
||||
function TimelionOptions({ stateParams, setValue, setValidity }: VisOptionsProps<VisParams>) {
|
||||
export type TimelionOptionsProps = VisOptionsProps<VisParams>;
|
||||
|
||||
function TimelionOptions({ stateParams, setValue, setValidity }: TimelionOptionsProps) {
|
||||
const setInterval = useCallback((value: VisParams['interval']) => setValue('interval', value), [
|
||||
setValue,
|
||||
]);
|
||||
|
|
|
@ -24,7 +24,7 @@ import { KibanaContextProvider } from '../../../../plugins/kibana_react/public';
|
|||
import { DefaultEditorSize } from '../../../../plugins/vis_default_editor/public';
|
||||
import { getTimelionRequestHandler } from './helpers/timelion_request_handler';
|
||||
import { TimelionVisComponent, TimelionVisComponentProp } from './components';
|
||||
import { TimelionOptions } from './timelion_options';
|
||||
import { TimelionOptions, TimelionOptionsProps } from './timelion_options';
|
||||
import { TimelionVisDependencies } from './plugin';
|
||||
|
||||
export const TIMELION_VIS_NAME = 'timelion';
|
||||
|
@ -53,7 +53,11 @@ export function getTimelionVisDefinition(dependencies: TimelionVisDependencies)
|
|||
),
|
||||
},
|
||||
editorConfig: {
|
||||
optionsTemplate: TimelionOptions,
|
||||
optionsTemplate: (props: TimelionOptionsProps) => (
|
||||
<KibanaContextProvider services={{ ...dependencies }}>
|
||||
<TimelionOptions {...props} />
|
||||
</KibanaContextProvider>
|
||||
),
|
||||
defaultSize: DefaultEditorSize.MEDIUM,
|
||||
},
|
||||
requestHandler: timelionRequestHandler,
|
||||
|
|
|
@ -17,9 +17,3 @@
|
|||
@import './field_editor/index';
|
||||
@import './style_compile/index';
|
||||
@import '../../../plugins/management/public/components/index';
|
||||
|
||||
// The following are prefixed with "vis"
|
||||
|
||||
// Can't import vis folder here because of cascading issues, it's imported in core_plugins/kibana
|
||||
// @import './vis/index';
|
||||
@import './visualize/index';
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
@import '../../../../plugins/visualizations/public/components/index';
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
import React, { useEffect, useRef, useState, useCallback } from 'react';
|
||||
|
||||
import { EditorRenderProps } from 'src/legacy/core_plugins/kibana/public/visualize/np_ready/types';
|
||||
import { EditorRenderProps } from 'src/plugins/visualize/public';
|
||||
import { PanelsContainer, Panel } from '../../kibana_react/public';
|
||||
|
||||
import './vis_type_agg_filter';
|
||||
|
|
|
@ -22,7 +22,7 @@ import { render, unmountComponentAtNode } from 'react-dom';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
import { EditorRenderProps } from 'src/legacy/core_plugins/kibana/public/visualize/np_ready/types';
|
||||
import { EditorRenderProps } from 'src/plugins/visualize/public';
|
||||
import { Vis, VisualizeEmbeddableContract } from 'src/plugins/visualizations/public';
|
||||
import { Storage } from '../../kibana_utils/public';
|
||||
import { KibanaContextProvider } from '../../kibana_react/public';
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
@import 'wizard/index';
|
||||
@import 'embeddable/index';
|
||||
@import 'components/index';
|
||||
|
|
17
src/plugins/visualize/kibana.json
Normal file
17
src/plugins/visualize/kibana.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"id": "visualize",
|
||||
"version": "kibana",
|
||||
"server": false,
|
||||
"ui": true,
|
||||
"requiredPlugins": [
|
||||
"data",
|
||||
"kibanaLegacy",
|
||||
"navigation",
|
||||
"savedObjects",
|
||||
"visualizations"
|
||||
],
|
||||
"optionalPlugins": [
|
||||
"home",
|
||||
"share"
|
||||
]
|
||||
}
|
|
@ -17,16 +17,18 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import './index.scss';
|
||||
|
||||
import angular, { IModule } from 'angular';
|
||||
import { i18nDirective, i18nFilter, I18nProvider } from '@kbn/i18n/angular';
|
||||
|
||||
import { AppMountContext } from 'kibana/public';
|
||||
import { configureAppAngularModule } from '../legacy_imports';
|
||||
import { NavigationPublicPluginStart as NavigationStart } from '../../../../../../plugins/navigation/public';
|
||||
import { NavigationPublicPluginStart as NavigationStart } from 'src/plugins/navigation/public';
|
||||
import {
|
||||
configureAppAngularModule,
|
||||
createTopNavDirective,
|
||||
createTopNavHelper,
|
||||
} from '../../../../../../plugins/kibana_legacy/public';
|
||||
} from '../../../kibana_legacy/public';
|
||||
|
||||
// @ts-ignore
|
||||
import { initVisualizeApp } from './legacy_app';
|
|
@ -24,7 +24,7 @@ import { VisualizeConstants } from './visualize_constants';
|
|||
export function getLandingBreadcrumbs() {
|
||||
return [
|
||||
{
|
||||
text: i18n.translate('kbn.visualize.listing.breadcrumb', {
|
||||
text: i18n.translate('visualize.listing.breadcrumb', {
|
||||
defaultMessage: 'Visualize',
|
||||
}),
|
||||
href: `#${VisualizeConstants.LANDING_PAGE_PATH}`,
|
||||
|
@ -36,7 +36,7 @@ export function getWizardStep1Breadcrumbs() {
|
|||
return [
|
||||
...getLandingBreadcrumbs(),
|
||||
{
|
||||
text: i18n.translate('kbn.visualize.wizard.step1Breadcrumb', {
|
||||
text: i18n.translate('visualize.wizard.step1Breadcrumb', {
|
||||
defaultMessage: 'Create',
|
||||
}),
|
||||
},
|
||||
|
@ -47,7 +47,7 @@ export function getWizardStep2Breadcrumbs() {
|
|||
return [
|
||||
...getLandingBreadcrumbs(),
|
||||
{
|
||||
text: i18n.translate('kbn.visualize.wizard.step2Breadcrumb', {
|
||||
text: i18n.translate('visualize.wizard.step2Breadcrumb', {
|
||||
defaultMessage: 'Create',
|
||||
}),
|
||||
},
|
||||
|
@ -58,7 +58,7 @@ export function getCreateBreadcrumbs() {
|
|||
return [
|
||||
...getLandingBreadcrumbs(),
|
||||
{
|
||||
text: i18n.translate('kbn.visualize.editor.createBreadcrumb', {
|
||||
text: i18n.translate('visualize.editor.createBreadcrumb', {
|
||||
defaultMessage: 'Create',
|
||||
}),
|
||||
},
|
|
@ -80,7 +80,7 @@
|
|||
|
||||
<h1
|
||||
class="euiScreenReaderOnly"
|
||||
i18n-id="kbn.visualize.pageHeading"
|
||||
i18n-id="visualize.pageHeading"
|
||||
i18n-default-message="{chartName} {chartType} visualization"
|
||||
i18n-values="{
|
||||
chartName: savedVis.title,
|
|
@ -31,22 +31,19 @@ import { VisualizeConstants } from '../visualize_constants';
|
|||
import { getEditBreadcrumbs } from '../breadcrumbs';
|
||||
|
||||
import { addHelpMenuToAppChrome } from '../help_menu/help_menu_util';
|
||||
import { unhashUrl, removeQueryParam } from '../../../../../../../plugins/kibana_utils/public';
|
||||
import { MarkdownSimple, toMountPoint } from '../../../../../../../plugins/kibana_react/public';
|
||||
import { addFatalError } from '../../../../../../../plugins/kibana_legacy/public';
|
||||
import { unhashUrl, removeQueryParam } from '../../../../kibana_utils/public';
|
||||
import { MarkdownSimple, toMountPoint } from '../../../../kibana_react/public';
|
||||
import {
|
||||
SavedObjectSaveModal,
|
||||
showSaveModal,
|
||||
} from '../../../../../../../plugins/saved_objects/public';
|
||||
import {
|
||||
esFilters,
|
||||
connectToQueryState,
|
||||
syncQueryStateWithUrl,
|
||||
} from '../../../../../../../plugins/data/public';
|
||||
addFatalError,
|
||||
subscribeWithScope,
|
||||
migrateLegacyQuery,
|
||||
} from '../../../../kibana_legacy/public';
|
||||
import { SavedObjectSaveModal, showSaveModal } from '../../../../saved_objects/public';
|
||||
import { esFilters, connectToQueryState, syncQueryStateWithUrl } from '../../../../data/public';
|
||||
import { DashboardConstants } from '../../../../dashboard/public';
|
||||
|
||||
import { initVisEditorDirective } from './visualization_editor';
|
||||
import { initVisualizationDirective } from './visualization';
|
||||
import { subscribeWithScope, migrateLegacyQuery, DashboardConstants } from '../../legacy_imports';
|
||||
|
||||
import { getServices } from '../../kibana_services';
|
||||
|
||||
|
@ -65,16 +62,13 @@ export function initEditorDirective(app, deps) {
|
|||
|
||||
function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlStateStorage, history) {
|
||||
const {
|
||||
indexPatterns,
|
||||
localStorage,
|
||||
visualizeCapabilities,
|
||||
share,
|
||||
data: { query: queryService },
|
||||
data: { query: queryService, indexPatterns },
|
||||
toastNotifications,
|
||||
chrome,
|
||||
core: { docLinks, fatalErrors },
|
||||
savedQueryService,
|
||||
uiSettings,
|
||||
core: { docLinks, fatalErrors, uiSettings },
|
||||
I18nContext,
|
||||
setActiveUrl,
|
||||
visualizations,
|
||||
|
@ -154,15 +148,12 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
? [
|
||||
{
|
||||
id: 'save',
|
||||
label: i18n.translate('kbn.topNavMenu.saveVisualizationButtonLabel', {
|
||||
label: i18n.translate('visualize.topNavMenu.saveVisualizationButtonLabel', {
|
||||
defaultMessage: 'save',
|
||||
}),
|
||||
description: i18n.translate(
|
||||
'kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel',
|
||||
{
|
||||
defaultMessage: 'Save Visualization',
|
||||
}
|
||||
),
|
||||
description: i18n.translate('visualize.topNavMenu.saveVisualizationButtonAriaLabel', {
|
||||
defaultMessage: 'Save Visualization',
|
||||
}),
|
||||
testId: 'visualizeSaveButton',
|
||||
disableButton() {
|
||||
return Boolean($scope.dirty);
|
||||
|
@ -170,7 +161,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
tooltip() {
|
||||
if ($scope.dirty) {
|
||||
return i18n.translate(
|
||||
'kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip',
|
||||
'visualize.topNavMenu.saveVisualizationDisabledButtonTooltip',
|
||||
{
|
||||
defaultMessage: 'Apply or Discard your changes before saving',
|
||||
}
|
||||
|
@ -205,7 +196,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
|
||||
const confirmButtonLabel = $scope.isAddToDashMode() ? (
|
||||
<FormattedMessage
|
||||
id="kbn.visualize.saveDialog.saveAndAddToDashboardButtonLabel"
|
||||
id="visualize.saveDialog.saveAndAddToDashboardButtonLabel"
|
||||
defaultMessage="Save and add to dashboard"
|
||||
/>
|
||||
) : null;
|
||||
|
@ -229,10 +220,10 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
: []),
|
||||
{
|
||||
id: 'share',
|
||||
label: i18n.translate('kbn.topNavMenu.shareVisualizationButtonLabel', {
|
||||
label: i18n.translate('visualize.topNavMenu.shareVisualizationButtonLabel', {
|
||||
defaultMessage: 'share',
|
||||
}),
|
||||
description: i18n.translate('kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel', {
|
||||
description: i18n.translate('visualize.topNavMenu.shareVisualizationButtonAriaLabel', {
|
||||
defaultMessage: 'Share Visualization',
|
||||
}),
|
||||
testId: 'shareTopNavButton',
|
||||
|
@ -252,13 +243,15 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
isDirty: hasUnappliedChanges || hasUnsavedChanges,
|
||||
});
|
||||
},
|
||||
// disable the Share button if no action specified
|
||||
disableButton: !share,
|
||||
},
|
||||
{
|
||||
id: 'inspector',
|
||||
label: i18n.translate('kbn.topNavMenu.openInspectorButtonLabel', {
|
||||
label: i18n.translate('visualize.topNavMenu.openInspectorButtonLabel', {
|
||||
defaultMessage: 'inspect',
|
||||
}),
|
||||
description: i18n.translate('kbn.visualize.topNavMenu.openInspectorButtonAriaLabel', {
|
||||
description: i18n.translate('visualize.topNavMenu.openInspectorButtonAriaLabel', {
|
||||
defaultMessage: 'Open Inspector for visualization',
|
||||
}),
|
||||
testId: 'openInspectorButton',
|
||||
|
@ -274,7 +267,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
},
|
||||
tooltip() {
|
||||
if (!embeddableHandler.hasInspector || !embeddableHandler.hasInspector()) {
|
||||
return i18n.translate('kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip', {
|
||||
return i18n.translate('visualize.topNavMenu.openInspectorDisabledButtonTooltip', {
|
||||
defaultMessage: `This visualization doesn't support any inspectors.`,
|
||||
});
|
||||
}
|
||||
|
@ -319,7 +312,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
stopAllSyncing();
|
||||
|
||||
toastNotifications.addWarning({
|
||||
title: i18n.translate('kbn.visualize.visualizationTypeInvalidNotificationMessage', {
|
||||
title: i18n.translate('visualize.visualizationTypeInvalidNotificationMessage', {
|
||||
defaultMessage: 'Invalid visualization type',
|
||||
}),
|
||||
text: toMountPoint(<MarkdownSimple>{error.message}</MarkdownSimple>),
|
||||
|
@ -359,7 +352,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
return;
|
||||
}
|
||||
|
||||
savedQueryService.getSavedQuery(savedQueryId).then(savedQuery => {
|
||||
queryService.savedQueries.getSavedQuery(savedQueryId).then(savedQuery => {
|
||||
$scope.$evalAsync(() => {
|
||||
$scope.updateSavedQuery(savedQuery);
|
||||
});
|
||||
|
@ -622,7 +615,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
if (id) {
|
||||
toastNotifications.addSuccess({
|
||||
title: i18n.translate(
|
||||
'kbn.visualize.topNavMenu.saveVisualization.successNotificationText',
|
||||
'visualize.topNavMenu.saveVisualization.successNotificationText',
|
||||
{
|
||||
defaultMessage: `Saved '{visTitle}'`,
|
||||
values: {
|
||||
|
@ -661,15 +654,12 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
// eslint-disable-next-line
|
||||
console.error(error);
|
||||
toastNotifications.addDanger({
|
||||
title: i18n.translate(
|
||||
'kbn.visualize.topNavMenu.saveVisualization.failureNotificationText',
|
||||
{
|
||||
defaultMessage: `Error on saving '{visTitle}'`,
|
||||
values: {
|
||||
visTitle: savedVis.title,
|
||||
},
|
||||
}
|
||||
),
|
||||
title: i18n.translate('visualize.topNavMenu.saveVisualization.failureNotificationText', {
|
||||
defaultMessage: `Error on saving '{visTitle}'`,
|
||||
values: {
|
||||
visTitle: savedVis.title,
|
||||
},
|
||||
}),
|
||||
text: error.message,
|
||||
'data-test-subj': 'saveVisualizationError',
|
||||
});
|
||||
|
@ -692,7 +682,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
});
|
||||
|
||||
toastNotifications.addSuccess(
|
||||
i18n.translate('kbn.visualize.linkedToSearch.unlinkSuccessNotificationText', {
|
||||
i18n.translate('visualize.linkedToSearch.unlinkSuccessNotificationText', {
|
||||
defaultMessage: `Unlinked from saved search '{searchTitle}'`,
|
||||
values: {
|
||||
searchTitle: savedSearch.title,
|
||||
|
@ -704,7 +694,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState
|
|||
$scope.getAdditionalMessage = () => {
|
||||
return (
|
||||
'<i class="kuiIcon fa-flask"></i>' +
|
||||
i18n.translate('kbn.visualize.experimentalVisInfoText', {
|
||||
i18n.translate('visualize.experimentalVisInfoText', {
|
||||
defaultMessage: 'This visualization is marked as experimental.',
|
||||
}) +
|
||||
' ' +
|
|
@ -17,8 +17,8 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import { PersistedState } from '../../../../../../../../plugins/visualizations/public';
|
||||
import { ReduxLikeStateContainer } from '../../../../../../../../plugins/kibana_utils/public';
|
||||
import { PersistedState } from '../../../../../visualizations/public';
|
||||
import { ReduxLikeStateContainer } from '../../../../../kibana_utils/public';
|
||||
import { VisualizeAppState, VisualizeAppStateTransitions } from '../../types';
|
||||
|
||||
/**
|
|
@ -19,15 +19,6 @@
|
|||
|
||||
import { addEmbeddableToDashboardUrl } from './url_helper';
|
||||
|
||||
jest.mock('../../../legacy_imports', () => ({
|
||||
DashboardConstants: {
|
||||
ADD_EMBEDDABLE_ID: 'addEmbeddableId',
|
||||
ADD_EMBEDDABLE_TYPE: 'addEmbeddableType',
|
||||
CREATE_NEW_DASHBOARD_URL: '/dashboard',
|
||||
},
|
||||
VISUALIZE_EMBEDDABLE_TYPE: 'visualization',
|
||||
}));
|
||||
|
||||
describe('', () => {
|
||||
it('addEmbeddableToDashboardUrl when dashboard is not saved', () => {
|
||||
const id = '123eb456cd';
|
|
@ -18,7 +18,8 @@
|
|||
*/
|
||||
|
||||
import { parseUrl, stringify } from 'query-string';
|
||||
import { DashboardConstants, VISUALIZE_EMBEDDABLE_TYPE } from '../../../legacy_imports';
|
||||
import { DashboardConstants } from '../../../../../dashboard/public';
|
||||
import { VISUALIZE_EMBEDDABLE_TYPE } from '../../../../../visualizations/public';
|
||||
|
||||
/** *
|
||||
* Returns relative dashboard URL with added embeddableType and embeddableId query params
|
|
@ -24,7 +24,7 @@ import {
|
|||
createStateContainer,
|
||||
syncState,
|
||||
IKbnUrlStateStorage,
|
||||
} from '../../../../../../../../plugins/kibana_utils/public';
|
||||
} from '../../../../../kibana_utils/public';
|
||||
import { PureVisState, VisualizeAppState, VisualizeAppStateTransitions } from '../../types';
|
||||
|
||||
const STATE_STORAGE_KEY = '_a';
|
|
@ -44,7 +44,6 @@ export function initVisEditorDirective(app, deps) {
|
|||
editor.render({
|
||||
core: deps.core,
|
||||
data: deps.data,
|
||||
embeddable: deps.embeddable,
|
||||
uiState: $scope.uiState,
|
||||
timeRange: $scope.timeRange,
|
||||
filters: $scope.filters,
|
|
@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n';
|
|||
|
||||
export function addHelpMenuToAppChrome(chrome, docLinks) {
|
||||
chrome.setHelpExtension({
|
||||
appName: i18n.translate('kbn.visualize.helpMenu.appName', {
|
||||
appName: i18n.translate('visualize.helpMenu.appName', {
|
||||
defaultMessage: 'Visualize',
|
||||
}),
|
||||
links: [
|
|
@ -25,7 +25,8 @@ import {
|
|||
createKbnUrlStateStorage,
|
||||
redirectWhenMissing,
|
||||
ensureDefaultIndexPattern,
|
||||
} from '../../../../../../plugins/kibana_utils/public';
|
||||
} from '../../../kibana_utils/public';
|
||||
import { createSavedSearchesLoader } from '../../../discover/public';
|
||||
|
||||
import editorTemplate from './editor/editor.html';
|
||||
import visualizeListingTemplate from './listing/visualize_listing.html';
|
||||
|
@ -40,7 +41,6 @@ import {
|
|||
getCreateBreadcrumbs,
|
||||
getEditBreadcrumbs,
|
||||
} from './breadcrumbs';
|
||||
import { createSavedSearchesLoader } from '../../../../../../plugins/discover/public';
|
||||
|
||||
const getResolvedResults = deps => {
|
||||
const { core, data, visualizations, createVisEmbeddableFromObject } = deps;
|
||||
|
@ -93,7 +93,7 @@ export function initVisualizeApp(app, deps) {
|
|||
app.factory('kbnUrlStateStorage', history =>
|
||||
createKbnUrlStateStorage({
|
||||
history,
|
||||
useHash: deps.uiSettings.get('state:storeInSessionStorage'),
|
||||
useHash: deps.core.uiSettings.get('state:storeInSessionStorage'),
|
||||
})
|
||||
);
|
||||
|
||||
|
@ -107,10 +107,10 @@ export function initVisualizeApp(app, deps) {
|
|||
}
|
||||
|
||||
return {
|
||||
text: i18n.translate('kbn.visualize.badge.readOnly.text', {
|
||||
text: i18n.translate('visualize.badge.readOnly.text', {
|
||||
defaultMessage: 'Read only',
|
||||
}),
|
||||
tooltip: i18n.translate('kbn.visualize.badge.readOnly.tooltip', {
|
||||
tooltip: i18n.translate('visualize.badge.readOnly.tooltip', {
|
||||
defaultMessage: 'Unable to save visualizations',
|
||||
}),
|
||||
iconType: 'glasses',
|
||||
|
@ -156,7 +156,7 @@ export function initVisualizeApp(app, deps) {
|
|||
if (shouldHaveIndex && !hasIndex) {
|
||||
throw new Error(
|
||||
i18n.translate(
|
||||
'kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage',
|
||||
'visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage',
|
||||
{
|
||||
defaultMessage: 'You must provide either an indexPattern or a savedSearchId',
|
||||
}
|
|
@ -24,7 +24,7 @@ import { VisualizeConstants } from '../visualize_constants';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import { getServices } from '../../kibana_services';
|
||||
import { syncQueryStateWithUrl } from '../../../../../../../plugins/data/public';
|
||||
import { syncQueryStateWithUrl } from '../../../../data/public';
|
||||
|
||||
export function initListingDirective(app, I18nContext) {
|
||||
app.directive('visualizeListingTable', reactDirective =>
|
||||
|
@ -40,9 +40,8 @@ export function VisualizeListingController($scope, createNewVis, kbnUrlStateStor
|
|||
savedVisualizations,
|
||||
data: { query },
|
||||
toastNotifications,
|
||||
uiSettings,
|
||||
visualizations,
|
||||
core: { docLinks, savedObjects },
|
||||
core: { docLinks, savedObjects, uiSettings },
|
||||
} = getServices();
|
||||
|
||||
// syncs `_g` portion of url with query services
|
||||
|
@ -110,7 +109,7 @@ export function VisualizeListingController($scope, createNewVis, kbnUrlStateStor
|
|||
})
|
||||
).catch(error => {
|
||||
toastNotifications.addError(error, {
|
||||
title: i18n.translate('kbn.visualize.visualizeListingDeleteErrorTitle', {
|
||||
title: i18n.translate('visualize.visualizeListingDeleteErrorTitle', {
|
||||
defaultMessage: 'Error deleting visualization',
|
||||
}),
|
||||
});
|
||||
|
@ -119,7 +118,7 @@ export function VisualizeListingController($scope, createNewVis, kbnUrlStateStor
|
|||
|
||||
chrome.setBreadcrumbs([
|
||||
{
|
||||
text: i18n.translate('kbn.visualize.visualizeListingBreadcrumbsTitle', {
|
||||
text: i18n.translate('visualize.visualizeListingBreadcrumbsTitle', {
|
||||
defaultMessage: 'Visualize',
|
||||
}),
|
||||
},
|
|
@ -21,7 +21,7 @@ import React, { Component, Fragment } from 'react';
|
|||
import PropTypes from 'prop-types';
|
||||
import { FormattedMessage } from '@kbn/i18n/react';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { TableListView } from '../../../../../../../plugins/kibana_react/public';
|
||||
import { TableListView } from '../../../../kibana_react/public';
|
||||
|
||||
import { EuiIcon, EuiBetaBadge, EuiLink, EuiButton, EuiEmptyPrompt } from '@elastic/eui';
|
||||
|
||||
|
@ -33,7 +33,7 @@ class VisualizeListingTable extends Component {
|
|||
}
|
||||
|
||||
render() {
|
||||
const { visualizeCapabilities, uiSettings, toastNotifications } = getServices();
|
||||
const { visualizeCapabilities, core, toastNotifications } = getServices();
|
||||
return (
|
||||
<TableListView
|
||||
headingId="visualizeListingHeading"
|
||||
|
@ -48,17 +48,17 @@ class VisualizeListingTable extends Component {
|
|||
selectable={item => item.canDelete}
|
||||
initialFilter={''}
|
||||
noItemsFragment={this.getNoItemsMessage()}
|
||||
entityName={i18n.translate('kbn.visualize.listing.table.entityName', {
|
||||
entityName={i18n.translate('visualize.listing.table.entityName', {
|
||||
defaultMessage: 'visualization',
|
||||
})}
|
||||
entityNamePlural={i18n.translate('kbn.visualize.listing.table.entityNamePlural', {
|
||||
entityNamePlural={i18n.translate('visualize.listing.table.entityNamePlural', {
|
||||
defaultMessage: 'visualizations',
|
||||
})}
|
||||
tableListTitle={i18n.translate('kbn.visualize.listing.table.listTitle', {
|
||||
tableListTitle={i18n.translate('visualize.listing.table.listTitle', {
|
||||
defaultMessage: 'Visualizations',
|
||||
})}
|
||||
toastNotifications={toastNotifications}
|
||||
uiSettings={uiSettings}
|
||||
uiSettings={core.uiSettings}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ class VisualizeListingTable extends Component {
|
|||
const tableColumns = [
|
||||
{
|
||||
field: 'title',
|
||||
name: i18n.translate('kbn.visualize.listing.table.titleColumnName', {
|
||||
name: i18n.translate('visualize.listing.table.titleColumnName', {
|
||||
defaultMessage: 'Title',
|
||||
}),
|
||||
sortable: true,
|
||||
|
@ -82,7 +82,7 @@ class VisualizeListingTable extends Component {
|
|||
},
|
||||
{
|
||||
field: 'typeTitle',
|
||||
name: i18n.translate('kbn.visualize.listing.table.typeColumnName', {
|
||||
name: i18n.translate('visualize.listing.table.typeColumnName', {
|
||||
defaultMessage: 'Type',
|
||||
}),
|
||||
sortable: true,
|
||||
|
@ -96,7 +96,7 @@ class VisualizeListingTable extends Component {
|
|||
},
|
||||
{
|
||||
field: 'description',
|
||||
name: i18n.translate('kbn.dashboard.listing.table.descriptionColumnName', {
|
||||
name: i18n.translate('visualize.listing.table.descriptionColumnName', {
|
||||
defaultMessage: 'Description',
|
||||
}),
|
||||
sortable: true,
|
||||
|
@ -116,7 +116,7 @@ class VisualizeListingTable extends Component {
|
|||
title={
|
||||
<h1 id="visualizeListingHeading">
|
||||
<FormattedMessage
|
||||
id="kbn.visualize.listing.noItemsMessage"
|
||||
id="visualize.listing.noItemsMessage"
|
||||
defaultMessage="Looks like you don't have any visualizations."
|
||||
/>
|
||||
</h1>
|
||||
|
@ -133,7 +133,7 @@ class VisualizeListingTable extends Component {
|
|||
title={
|
||||
<h1 id="visualizeListingHeading">
|
||||
<FormattedMessage
|
||||
id="kbn.visualize.listing.createNew.title"
|
||||
id="visualize.listing.createNew.title"
|
||||
defaultMessage="Create your first visualization"
|
||||
/>
|
||||
</h1>
|
||||
|
@ -142,7 +142,7 @@ class VisualizeListingTable extends Component {
|
|||
<Fragment>
|
||||
<p>
|
||||
<FormattedMessage
|
||||
id="kbn.visualize.listing.createNew.description"
|
||||
id="visualize.listing.createNew.description"
|
||||
defaultMessage="You can create different visualizations, based on your data."
|
||||
/>
|
||||
</p>
|
||||
|
@ -156,7 +156,7 @@ class VisualizeListingTable extends Component {
|
|||
data-test-subj="createVisualizationPromptButton"
|
||||
>
|
||||
<FormattedMessage
|
||||
id="kbn.visualize.listing.createNew.createButtonLabel"
|
||||
id="visualize.listing.createNew.createButtonLabel"
|
||||
defaultMessage="Create new visualization"
|
||||
/>
|
||||
</EuiButton>
|
||||
|
@ -192,10 +192,10 @@ class VisualizeListingTable extends Component {
|
|||
<EuiBetaBadge
|
||||
className="visListingTable__betaIcon"
|
||||
label="B"
|
||||
title={i18n.translate('kbn.visualize.listing.betaTitle', {
|
||||
title={i18n.translate('visualize.listing.betaTitle', {
|
||||
defaultMessage: 'Beta',
|
||||
})}
|
||||
tooltipContent={i18n.translate('kbn.visualize.listing.betaTooltip', {
|
||||
tooltipContent={i18n.translate('visualize.listing.betaTooltip', {
|
||||
defaultMessage:
|
||||
'This visualization is in beta and is subject to change. The design and code is less mature than official GA ' +
|
||||
'features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA ' +
|
||||
|
@ -208,10 +208,10 @@ class VisualizeListingTable extends Component {
|
|||
<EuiBetaBadge
|
||||
className="visListingTable__experimentalIcon"
|
||||
label="E"
|
||||
title={i18n.translate('kbn.visualize.listing.experimentalTitle', {
|
||||
title={i18n.translate('visualize.listing.experimentalTitle', {
|
||||
defaultMessage: 'Experimental',
|
||||
})}
|
||||
tooltipContent={i18n.translate('kbn.visualize.listing.experimentalTooltip', {
|
||||
tooltipContent={i18n.translate('visualize.listing.experimentalTooltip', {
|
||||
defaultMessage:
|
||||
'This visualization might be changed or removed in a future release and is not subject to the support SLA.',
|
||||
})}
|
|
@ -24,12 +24,9 @@ import {
|
|||
DataPublicPluginStart,
|
||||
SavedQuery,
|
||||
} from 'src/plugins/data/public';
|
||||
import { EmbeddableStart } from 'src/plugins/embeddable/public';
|
||||
import { PersistedState } from 'src/plugins/visualizations/public';
|
||||
import { LegacyCoreStart } from 'kibana/public';
|
||||
import { VisSavedObject } from '../legacy_imports';
|
||||
import { SavedVisState } from '../../../../../../plugins/visualizations/public';
|
||||
import { SavedSearch } from '../../../../../../plugins/discover/public';
|
||||
import { PersistedState, SavedVisState, VisSavedObject } from 'src/plugins/visualizations/public';
|
||||
import { CoreStart } from 'kibana/public';
|
||||
import { SavedSearch } from 'src/plugins/discover/public';
|
||||
|
||||
export type PureVisState = SavedVisState;
|
||||
|
||||
|
@ -59,7 +56,7 @@ export interface VisualizeAppStateTransitions {
|
|||
}
|
||||
|
||||
export interface EditorRenderProps {
|
||||
core: LegacyCoreStart;
|
||||
core: CoreStart;
|
||||
data: DataPublicPluginStart;
|
||||
filters: Filter[];
|
||||
timeRange: TimeRange;
|
|
@ -27,5 +27,5 @@ import { initListingDirective } from './listing/visualize_listing';
|
|||
|
||||
export function initVisualizeAppDirective(app: IModule, deps: VisualizeKibanaServices) {
|
||||
initEditorDirective(app, deps);
|
||||
initListingDirective(app, deps.core.i18n.Context);
|
||||
initListingDirective(app, deps.I18nContext);
|
||||
}
|
|
@ -20,10 +20,9 @@
|
|||
import { PluginInitializerContext } from 'kibana/public';
|
||||
import { VisualizePlugin } from './plugin';
|
||||
|
||||
export * from './np_ready/visualize_constants';
|
||||
export { VisualizeConstants, createVisualizeEditUrl } from './np_ready/visualize_constants';
|
||||
export { EditorRenderProps } from './application/types';
|
||||
export { VisualizeConstants, createVisualizeEditUrl } from './application/visualize_constants';
|
||||
|
||||
// Core will be looking for this when loading our plugin in the new platform
|
||||
export const plugin = (context: PluginInitializerContext) => {
|
||||
return new VisualizePlugin(context);
|
||||
};
|
|
@ -22,21 +22,18 @@ import {
|
|||
CoreStart,
|
||||
SavedObjectsClientContract,
|
||||
ToastsStart,
|
||||
IUiSettingsClient,
|
||||
I18nStart,
|
||||
PluginInitializerContext,
|
||||
I18nStart,
|
||||
} from 'kibana/public';
|
||||
|
||||
import { NavigationPublicPluginStart as NavigationStart } from '../../../../../plugins/navigation/public';
|
||||
import { Storage } from '../../../../../plugins/kibana_utils/public';
|
||||
import { EmbeddableStart } from '../../../../../plugins/embeddable/public';
|
||||
import { SharePluginStart } from '../../../../../plugins/share/public';
|
||||
import { DataPublicPluginStart, IndexPatternsContract } from '../../../../../plugins/data/public';
|
||||
import { VisualizationsStart } from '../../../../../plugins/visualizations/public';
|
||||
import { SavedVisualizations } from './np_ready/types';
|
||||
import { UsageCollectionSetup } from '../../../../../plugins/usage_collection/public';
|
||||
import { KibanaLegacyStart } from '../../../../../plugins/kibana_legacy/public';
|
||||
import { DefaultEditorController } from '../../../../../plugins/vis_default_editor/public';
|
||||
import { NavigationPublicPluginStart as NavigationStart } from '../../navigation/public';
|
||||
import { Storage } from '../../kibana_utils/public';
|
||||
import { SharePluginStart } from '../../share/public';
|
||||
import { DataPublicPluginStart } from '../../data/public';
|
||||
import { VisualizationsStart } from '../../visualizations/public';
|
||||
import { SavedVisualizations } from './application/types';
|
||||
import { KibanaLegacyStart } from '../../kibana_legacy/public';
|
||||
import { DefaultEditorController } from '../../vis_default_editor/public';
|
||||
|
||||
export interface VisualizeKibanaServices {
|
||||
pluginInitializerContext: PluginInitializerContext;
|
||||
|
@ -44,20 +41,15 @@ export interface VisualizeKibanaServices {
|
|||
chrome: ChromeStart;
|
||||
core: CoreStart;
|
||||
data: DataPublicPluginStart;
|
||||
embeddable: EmbeddableStart;
|
||||
indexPatterns: IndexPatternsContract;
|
||||
localStorage: Storage;
|
||||
navigation: NavigationStart;
|
||||
toastNotifications: ToastsStart;
|
||||
savedObjectsClient: SavedObjectsClientContract;
|
||||
savedQueryService: DataPublicPluginStart['query']['savedQueries'];
|
||||
savedVisualizations: SavedVisualizations;
|
||||
share: SharePluginStart;
|
||||
uiSettings: IUiSettingsClient;
|
||||
share?: SharePluginStart;
|
||||
config: KibanaLegacyStart['config'];
|
||||
visualizeCapabilities: any;
|
||||
visualizations: VisualizationsStart;
|
||||
usageCollection?: UsageCollectionSetup;
|
||||
I18nContext: I18nStart['Context'];
|
||||
setActiveUrl: (newUrl: string) => void;
|
||||
DefaultVisualizationEditor: typeof DefaultEditorController;
|
|
@ -27,64 +27,43 @@ import {
|
|||
CoreStart,
|
||||
Plugin,
|
||||
PluginInitializerContext,
|
||||
SavedObjectsClientContract,
|
||||
} from 'kibana/public';
|
||||
|
||||
import { Storage, createKbnUrlTracker } from '../../../../../plugins/kibana_utils/public';
|
||||
import {
|
||||
DataPublicPluginStart,
|
||||
DataPublicPluginSetup,
|
||||
esFilters,
|
||||
} from '../../../../../plugins/data/public';
|
||||
import { EmbeddableStart } from '../../../../../plugins/embeddable/public';
|
||||
import { NavigationPublicPluginStart as NavigationStart } from '../../../../../plugins/navigation/public';
|
||||
import { SharePluginStart } from '../../../../../plugins/share/public';
|
||||
import {
|
||||
KibanaLegacySetup,
|
||||
AngularRenderedAppUpdater,
|
||||
} from '../../../../../plugins/kibana_legacy/public';
|
||||
import { VisualizationsStart } from '../../../../../plugins/visualizations/public';
|
||||
import { VisualizeConstants } from './np_ready/visualize_constants';
|
||||
import { Storage, createKbnUrlTracker } from '../../kibana_utils/public';
|
||||
import { DataPublicPluginStart, DataPublicPluginSetup, esFilters } from '../../data/public';
|
||||
import { NavigationPublicPluginStart as NavigationStart } from '../../navigation/public';
|
||||
import { SharePluginStart } from '../../share/public';
|
||||
import { KibanaLegacySetup, AngularRenderedAppUpdater } from '../../kibana_legacy/public';
|
||||
import { VisualizationsStart } from '../../visualizations/public';
|
||||
import { VisualizeConstants } from './application/visualize_constants';
|
||||
import { setServices, VisualizeKibanaServices } from './kibana_services';
|
||||
import {
|
||||
FeatureCatalogueCategory,
|
||||
HomePublicPluginSetup,
|
||||
} from '../../../../../plugins/home/public';
|
||||
import { UsageCollectionSetup } from '../../../../../plugins/usage_collection/public';
|
||||
import { DefaultEditorController } from '../../../../../plugins/vis_default_editor/public';
|
||||
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '../../home/public';
|
||||
import { DefaultEditorController } from '../../vis_default_editor/public';
|
||||
|
||||
export interface VisualizePluginStartDependencies {
|
||||
data: DataPublicPluginStart;
|
||||
embeddable: EmbeddableStart;
|
||||
navigation: NavigationStart;
|
||||
share: SharePluginStart;
|
||||
share?: SharePluginStart;
|
||||
visualizations: VisualizationsStart;
|
||||
}
|
||||
|
||||
export interface VisualizePluginSetupDependencies {
|
||||
home: HomePublicPluginSetup;
|
||||
home?: HomePublicPluginSetup;
|
||||
kibanaLegacy: KibanaLegacySetup;
|
||||
usageCollection?: UsageCollectionSetup;
|
||||
data: DataPublicPluginSetup;
|
||||
}
|
||||
|
||||
export class VisualizePlugin implements Plugin {
|
||||
private startDependencies: {
|
||||
data: DataPublicPluginStart;
|
||||
embeddable: EmbeddableStart;
|
||||
navigation: NavigationStart;
|
||||
savedObjectsClient: SavedObjectsClientContract;
|
||||
share: SharePluginStart;
|
||||
visualizations: VisualizationsStart;
|
||||
} | null = null;
|
||||
export class VisualizePlugin
|
||||
implements
|
||||
Plugin<void, void, VisualizePluginSetupDependencies, VisualizePluginStartDependencies> {
|
||||
private appStateUpdater = new BehaviorSubject<AngularRenderedAppUpdater>(() => ({}));
|
||||
private stopUrlTracking: (() => void) | undefined = undefined;
|
||||
|
||||
constructor(private initializerContext: PluginInitializerContext) {}
|
||||
|
||||
public async setup(
|
||||
core: CoreSetup,
|
||||
{ home, kibanaLegacy, usageCollection, data }: VisualizePluginSetupDependencies
|
||||
core: CoreSetup<VisualizePluginStartDependencies>,
|
||||
{ home, kibanaLegacy, data }: VisualizePluginSetupDependencies
|
||||
) {
|
||||
const { appMounted, appUnMounted, stop: stopUrlTracker, setActiveUrl } = createKbnUrlTracker({
|
||||
baseUrl: core.http.basePath.prepend('/app/kibana'),
|
||||
|
@ -117,50 +96,34 @@ export class VisualizePlugin implements Plugin {
|
|||
updater$: this.appStateUpdater.asObservable(),
|
||||
navLinkId: 'kibana:visualize',
|
||||
mount: async (params: AppMountParameters) => {
|
||||
const [coreStart] = await core.getStartServices();
|
||||
|
||||
if (this.startDependencies === null) {
|
||||
throw new Error('not started yet');
|
||||
}
|
||||
const [coreStart, pluginsStart] = await core.getStartServices();
|
||||
|
||||
appMounted();
|
||||
const {
|
||||
savedObjectsClient,
|
||||
embeddable,
|
||||
navigation,
|
||||
visualizations,
|
||||
data: dataStart,
|
||||
share,
|
||||
} = this.startDependencies;
|
||||
|
||||
const deps: VisualizeKibanaServices = {
|
||||
pluginInitializerContext: this.initializerContext,
|
||||
addBasePath: coreStart.http.basePath.prepend,
|
||||
core: coreStart,
|
||||
chrome: coreStart.chrome,
|
||||
data: dataStart,
|
||||
embeddable,
|
||||
indexPatterns: dataStart.indexPatterns,
|
||||
localStorage: new Storage(localStorage),
|
||||
navigation,
|
||||
savedObjectsClient,
|
||||
savedVisualizations: visualizations.savedVisualizationsLoader,
|
||||
savedQueryService: dataStart.query.savedQueries,
|
||||
share,
|
||||
toastNotifications: coreStart.notifications.toasts,
|
||||
uiSettings: coreStart.uiSettings,
|
||||
config: kibanaLegacy.config,
|
||||
chrome: coreStart.chrome,
|
||||
data: pluginsStart.data,
|
||||
localStorage: new Storage(localStorage),
|
||||
navigation: pluginsStart.navigation,
|
||||
savedObjectsClient: coreStart.savedObjects.client,
|
||||
savedVisualizations: pluginsStart.visualizations.savedVisualizationsLoader,
|
||||
share: pluginsStart.share,
|
||||
toastNotifications: coreStart.notifications.toasts,
|
||||
visualizeCapabilities: coreStart.application.capabilities.visualize,
|
||||
visualizations,
|
||||
usageCollection,
|
||||
visualizations: pluginsStart.visualizations,
|
||||
I18nContext: coreStart.i18n.Context,
|
||||
setActiveUrl,
|
||||
DefaultVisualizationEditor: DefaultEditorController,
|
||||
createVisEmbeddableFromObject: visualizations.__LEGACY.createVisEmbeddableFromObject,
|
||||
createVisEmbeddableFromObject:
|
||||
pluginsStart.visualizations.__LEGACY.createVisEmbeddableFromObject,
|
||||
};
|
||||
setServices(deps);
|
||||
|
||||
const { renderApp } = await import('./np_ready/application');
|
||||
const { renderApp } = await import('./application/application');
|
||||
const unmount = renderApp(params.element, params.appBasePath, deps);
|
||||
return () => {
|
||||
unmount();
|
||||
|
@ -169,33 +132,23 @@ export class VisualizePlugin implements Plugin {
|
|||
},
|
||||
});
|
||||
|
||||
home.featureCatalogue.register({
|
||||
id: 'visualize',
|
||||
title: 'Visualize',
|
||||
description: i18n.translate('kbn.visualize.visualizeDescription', {
|
||||
defaultMessage:
|
||||
'Create visualizations and aggregate data stores in your Elasticsearch indices.',
|
||||
}),
|
||||
icon: 'visualizeApp',
|
||||
path: `/app/kibana#${VisualizeConstants.LANDING_PAGE_PATH}`,
|
||||
showOnHomePage: true,
|
||||
category: FeatureCatalogueCategory.DATA,
|
||||
});
|
||||
if (home) {
|
||||
home.featureCatalogue.register({
|
||||
id: 'visualize',
|
||||
title: 'Visualize',
|
||||
description: i18n.translate('visualize.visualizeDescription', {
|
||||
defaultMessage:
|
||||
'Create visualizations and aggregate data stores in your Elasticsearch indices.',
|
||||
}),
|
||||
icon: 'visualizeApp',
|
||||
path: `/app/kibana#${VisualizeConstants.LANDING_PAGE_PATH}`,
|
||||
showOnHomePage: true,
|
||||
category: FeatureCatalogueCategory.DATA,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public start(
|
||||
core: CoreStart,
|
||||
{ embeddable, navigation, data, share, visualizations }: VisualizePluginStartDependencies
|
||||
) {
|
||||
this.startDependencies = {
|
||||
data,
|
||||
embeddable,
|
||||
navigation,
|
||||
savedObjectsClient: core.savedObjects.client,
|
||||
share,
|
||||
visualizations,
|
||||
};
|
||||
}
|
||||
public start(core: CoreStart, plugins: VisualizePluginStartDependencies) {}
|
||||
|
||||
stop() {
|
||||
if (this.stopUrlTracking) {
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
import expect from '@kbn/expect';
|
||||
|
||||
import { VisualizeConstants } from '../../../../src/legacy/core_plugins/kibana/public/visualize/np_ready/visualize_constants';
|
||||
import { VisualizeConstants } from '../../../../src/plugins/visualize/public/application/visualize_constants';
|
||||
|
||||
export default function({ getService, getPageObjects }) {
|
||||
const retry = getService('retry');
|
||||
|
|
|
@ -24,7 +24,7 @@ import {
|
|||
AREA_CHART_VIS_NAME,
|
||||
LINE_CHART_VIS_NAME,
|
||||
} from '../../page_objects/dashboard_page';
|
||||
import { VisualizeConstants } from '../../../../src/legacy/core_plugins/kibana/public/visualize/np_ready/visualize_constants';
|
||||
import { VisualizeConstants } from '../../../../src/plugins/visualize/public/application/visualize_constants';
|
||||
|
||||
export default function({ getService, getPageObjects }) {
|
||||
const browser = getService('browser');
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
import { FtrProviderContext } from '../ftr_provider_context';
|
||||
import { VisualizeConstants } from '../../../src/legacy/core_plugins/kibana/public/visualize/np_ready/visualize_constants';
|
||||
import { VisualizeConstants } from '../../../src/plugins/visualize/public/application/visualize_constants';
|
||||
|
||||
export function VisualizePageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
|
|
@ -2007,7 +2007,6 @@
|
|||
"kbn.context.reloadPageDescription.selectValidAnchorDocumentTextMessage": "にアクセスして有効な別のドキュメントを選択してください。",
|
||||
"kbn.context.unableToLoadAnchorDocumentDescription": "別のドキュメントが読み込めません",
|
||||
"kbn.context.unableToLoadDocumentDescription": "ドキュメントが読み込めません",
|
||||
"kbn.dashboard.listing.table.descriptionColumnName": "説明",
|
||||
"kbn.dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "「6.1.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルには想定された列または行フィールドがありません",
|
||||
"kbn.dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "「6.3.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルに必要なフィールドがありません: {key}",
|
||||
"kbn.dashboardTitle": "ダッシュボード",
|
||||
|
@ -2308,45 +2307,6 @@
|
|||
"kbn.management.landing.subhead": "インデックス、インデックスパターン、保存されたオブジェクト、Kibana の設定、その他を管理します。",
|
||||
"kbn.management.landing.text": "すべてのツールの一覧は、左のメニューにあります。",
|
||||
"kbn.managementTitle": "管理",
|
||||
"kbn.topNavMenu.openInspectorButtonLabel": "検査",
|
||||
"kbn.topNavMenu.saveVisualizationButtonLabel": "保存",
|
||||
"kbn.topNavMenu.shareVisualizationButtonLabel": "共有",
|
||||
"kbn.visualize.badge.readOnly.text": "読み込み専用",
|
||||
"kbn.visualize.badge.readOnly.tooltip": "ビジュアライゼーションを保存できません",
|
||||
"kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPattern または savedSearchId が必要です",
|
||||
"kbn.visualize.editor.createBreadcrumb": "作成",
|
||||
"kbn.visualize.experimentalVisInfoText": "このビジュアライゼーションは実験的なものです。",
|
||||
"kbn.visualize.helpMenu.appName": "可視化",
|
||||
"kbn.visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました",
|
||||
"kbn.visualize.listing.betaTitle": "ベータ",
|
||||
"kbn.visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャル GA 機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません",
|
||||
"kbn.visualize.listing.breadcrumb": "可視化",
|
||||
"kbn.visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加",
|
||||
"kbn.visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。",
|
||||
"kbn.visualize.listing.createNew.title": "最初のビジュアライゼーションの作成",
|
||||
"kbn.visualize.listing.experimentalTitle": "実験的",
|
||||
"kbn.visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。",
|
||||
"kbn.visualize.listing.noItemsMessage": "ビジュアライゼーションがないようです。",
|
||||
"kbn.visualize.listing.table.entityName": "ビジュアライゼーション",
|
||||
"kbn.visualize.listing.table.entityNamePlural": "ビジュアライゼーション",
|
||||
"kbn.visualize.listing.table.listTitle": "ビジュアライゼーション",
|
||||
"kbn.visualize.listing.table.titleColumnName": "タイトル",
|
||||
"kbn.visualize.listing.table.typeColumnName": "タイプ",
|
||||
"kbn.visualize.pageHeading": "{chartName} {chartType} ビジュアライゼーション",
|
||||
"kbn.visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存してダッシュボードに追加",
|
||||
"kbn.visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く",
|
||||
"kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。",
|
||||
"kbn.visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました",
|
||||
"kbn.visualize.topNavMenu.saveVisualization.successNotificationText": "「{visTitle}」が保存されました",
|
||||
"kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存",
|
||||
"kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄",
|
||||
"kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有",
|
||||
"kbn.visualize.visualizationTypeInvalidNotificationMessage": "無効なビジュアライゼーションタイプ",
|
||||
"kbn.visualize.visualizeDescription": "ビジュアライゼーションを作成して Elasticsearch インデックスに保存されたデータを集約します。",
|
||||
"kbn.visualize.visualizeListingBreadcrumbsTitle": "可視化",
|
||||
"kbn.visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生",
|
||||
"kbn.visualize.wizard.step1Breadcrumb": "作成",
|
||||
"kbn.visualize.wizard.step2Breadcrumb": "作成",
|
||||
"kbn.visualizeTitle": "可視化",
|
||||
"savedObjectsManagement.indexPattern.confirmOverwriteButton": "上書き",
|
||||
"savedObjectsManagement.indexPattern.confirmOverwriteLabel": "「{title}」に上書きしてよろしいですか?",
|
||||
|
@ -4029,6 +3989,46 @@
|
|||
"visualizations.newVisWizard.visTypeAliasDescription": "Visualize 外で Kibana アプリケーションを開きます。",
|
||||
"visualizations.newVisWizard.visTypeAliasTitle": "Kibana アプリケーション",
|
||||
"visualizations.savedObjectName": "ビジュアライゼーション",
|
||||
"visualize.listing.table.descriptionColumnName": "説明",
|
||||
"visualize.topNavMenu.openInspectorButtonLabel": "検査",
|
||||
"visualize.topNavMenu.saveVisualizationButtonLabel": "保存",
|
||||
"visualize.topNavMenu.shareVisualizationButtonLabel": "共有",
|
||||
"visualize.badge.readOnly.text": "読み込み専用",
|
||||
"visualize.badge.readOnly.tooltip": "ビジュアライゼーションを保存できません",
|
||||
"visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPattern または savedSearchId が必要です",
|
||||
"visualize.editor.createBreadcrumb": "作成",
|
||||
"visualize.experimentalVisInfoText": "このビジュアライゼーションは実験的なものです。",
|
||||
"visualize.helpMenu.appName": "可視化",
|
||||
"visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました",
|
||||
"visualize.listing.betaTitle": "ベータ",
|
||||
"visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャル GA 機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません",
|
||||
"visualize.listing.breadcrumb": "可視化",
|
||||
"visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加",
|
||||
"visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。",
|
||||
"visualize.listing.createNew.title": "最初のビジュアライゼーションの作成",
|
||||
"visualize.listing.experimentalTitle": "実験的",
|
||||
"visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。",
|
||||
"visualize.listing.noItemsMessage": "ビジュアライゼーションがないようです。",
|
||||
"visualize.listing.table.entityName": "ビジュアライゼーション",
|
||||
"visualize.listing.table.entityNamePlural": "ビジュアライゼーション",
|
||||
"visualize.listing.table.listTitle": "ビジュアライゼーション",
|
||||
"visualize.listing.table.titleColumnName": "タイトル",
|
||||
"visualize.listing.table.typeColumnName": "タイプ",
|
||||
"visualize.pageHeading": "{chartName} {chartType} ビジュアライゼーション",
|
||||
"visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存してダッシュボードに追加",
|
||||
"visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く",
|
||||
"visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。",
|
||||
"visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました",
|
||||
"visualize.topNavMenu.saveVisualization.successNotificationText": "「{visTitle}」が保存されました",
|
||||
"visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存",
|
||||
"visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄",
|
||||
"visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有",
|
||||
"visualize.visualizationTypeInvalidNotificationMessage": "無効なビジュアライゼーションタイプ",
|
||||
"visualize.visualizeDescription": "ビジュアライゼーションを作成して Elasticsearch インデックスに保存されたデータを集約します。",
|
||||
"visualize.visualizeListingBreadcrumbsTitle": "可視化",
|
||||
"visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生",
|
||||
"visualize.wizard.step1Breadcrumb": "作成",
|
||||
"visualize.wizard.step2Breadcrumb": "作成",
|
||||
"xpack.actions.actionTypeRegistry.get.missingActionTypeErrorMessage": "アクションタイプ \"{id}\" は登録されていません。",
|
||||
"xpack.actions.actionTypeRegistry.register.duplicateActionTypeErrorMessage": "アクションタイプ \"{id}\" は既に登録されています。",
|
||||
"xpack.actions.appName": "アクション",
|
||||
|
|
|
@ -2008,7 +2008,6 @@
|
|||
"kbn.context.reloadPageDescription.selectValidAnchorDocumentTextMessage": "以选择有效地定位点文档。",
|
||||
"kbn.context.unableToLoadAnchorDocumentDescription": "无法加载该定位点文档",
|
||||
"kbn.context.unableToLoadDocumentDescription": "无法加载文档",
|
||||
"kbn.dashboard.listing.table.descriptionColumnName": "描述",
|
||||
"kbn.dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "无法迁移用于“6.1.0”向后兼容的面板数据,面板不包含所需的列和/或行字段",
|
||||
"kbn.dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "无法迁移用于“6.3.0”向后兼容的面板数据,面板不包含预期字段:{key}",
|
||||
"kbn.dashboardTitle": "仪表板",
|
||||
|
@ -2309,45 +2308,6 @@
|
|||
"kbn.management.landing.subhead": "管理您的索引、索引模式、已保存对象、Kibana 设置等等。",
|
||||
"kbn.management.landing.text": "应用的完整列表位于左侧菜单中。",
|
||||
"kbn.managementTitle": "管理",
|
||||
"kbn.topNavMenu.openInspectorButtonLabel": "检查",
|
||||
"kbn.topNavMenu.saveVisualizationButtonLabel": "保存",
|
||||
"kbn.topNavMenu.shareVisualizationButtonLabel": "共享",
|
||||
"kbn.visualize.badge.readOnly.text": "只读",
|
||||
"kbn.visualize.badge.readOnly.tooltip": "无法保存可视化",
|
||||
"kbn.visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "必须提供 indexPattern 或 savedSearchId",
|
||||
"kbn.visualize.editor.createBreadcrumb": "创建",
|
||||
"kbn.visualize.experimentalVisInfoText": "此可视化标记为“实验”。",
|
||||
"kbn.visualize.helpMenu.appName": "Visualize",
|
||||
"kbn.visualize.linkedToSearch.unlinkSuccessNotificationText": "取消与已保存搜索 “{searchTitle}” 的链接",
|
||||
"kbn.visualize.listing.betaTitle": "公测版",
|
||||
"kbn.visualize.listing.betaTooltip": "此可视化为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束",
|
||||
"kbn.visualize.listing.breadcrumb": "可视化",
|
||||
"kbn.visualize.listing.createNew.createButtonLabel": "新建可视化",
|
||||
"kbn.visualize.listing.createNew.description": "可以根据您的数据创建不同的可视化。",
|
||||
"kbn.visualize.listing.createNew.title": "创建首个可视化",
|
||||
"kbn.visualize.listing.experimentalTitle": "实验性",
|
||||
"kbn.visualize.listing.experimentalTooltip": "未来版本可能会更改或删除此可视化,其不受支持 SLA 的约束。",
|
||||
"kbn.visualize.listing.noItemsMessage": "看起来您还没有任何可视化。",
|
||||
"kbn.visualize.listing.table.entityName": "可视化",
|
||||
"kbn.visualize.listing.table.entityNamePlural": "可视化",
|
||||
"kbn.visualize.listing.table.listTitle": "可视化",
|
||||
"kbn.visualize.listing.table.titleColumnName": "标题",
|
||||
"kbn.visualize.listing.table.typeColumnName": "类型",
|
||||
"kbn.visualize.pageHeading": "{chartName} {chartType}可视化",
|
||||
"kbn.visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存并添加到仪表板",
|
||||
"kbn.visualize.topNavMenu.openInspectorButtonAriaLabel": "打开检查器查看可视化",
|
||||
"kbn.visualize.topNavMenu.openInspectorDisabledButtonTooltip": "此可视化不支持任何检查器。",
|
||||
"kbn.visualize.topNavMenu.saveVisualization.failureNotificationText": "保存 “{visTitle}” 时出错",
|
||||
"kbn.visualize.topNavMenu.saveVisualization.successNotificationText": "已保存“{visTitle}”",
|
||||
"kbn.visualize.topNavMenu.saveVisualizationButtonAriaLabel": "保存可视化",
|
||||
"kbn.visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "应用或放弃所做更改,然后保存",
|
||||
"kbn.visualize.topNavMenu.shareVisualizationButtonAriaLabel": "共享可视化",
|
||||
"kbn.visualize.visualizationTypeInvalidNotificationMessage": "无效的可视化类型",
|
||||
"kbn.visualize.visualizeDescription": "创建可视化并聚合存储在 Elasticsearch 索引中的数据。",
|
||||
"kbn.visualize.visualizeListingBreadcrumbsTitle": "可视化",
|
||||
"kbn.visualize.visualizeListingDeleteErrorTitle": "删除可视化时出错",
|
||||
"kbn.visualize.wizard.step1Breadcrumb": "创建",
|
||||
"kbn.visualize.wizard.step2Breadcrumb": "创建",
|
||||
"kbn.visualizeTitle": "可视化",
|
||||
"savedObjectsManagement.indexPattern.confirmOverwriteButton": "覆盖",
|
||||
"savedObjectsManagement.indexPattern.confirmOverwriteLabel": "确定要覆盖 “{title}”?",
|
||||
|
@ -4030,6 +3990,46 @@
|
|||
"visualizations.newVisWizard.visTypeAliasDescription": "打开 Visualize 外部的 Kibana 应用程序。",
|
||||
"visualizations.newVisWizard.visTypeAliasTitle": "Kibana 应用程序",
|
||||
"visualizations.savedObjectName": "可视化",
|
||||
"visualize.listing.table.descriptionColumnName": "描述",
|
||||
"visualize.topNavMenu.openInspectorButtonLabel": "检查",
|
||||
"visualize.topNavMenu.saveVisualizationButtonLabel": "保存",
|
||||
"visualize.topNavMenu.shareVisualizationButtonLabel": "共享",
|
||||
"visualize.badge.readOnly.text": "只读",
|
||||
"visualize.badge.readOnly.tooltip": "无法保存可视化",
|
||||
"visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "必须提供 indexPattern 或 savedSearchId",
|
||||
"visualize.editor.createBreadcrumb": "创建",
|
||||
"visualize.experimentalVisInfoText": "此可视化标记为“实验”。",
|
||||
"visualize.helpMenu.appName": "Visualize",
|
||||
"visualize.linkedToSearch.unlinkSuccessNotificationText": "取消与已保存搜索 “{searchTitle}” 的链接",
|
||||
"visualize.listing.betaTitle": "公测版",
|
||||
"visualize.listing.betaTooltip": "此可视化为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束",
|
||||
"visualize.listing.breadcrumb": "可视化",
|
||||
"visualize.listing.createNew.createButtonLabel": "新建可视化",
|
||||
"visualize.listing.createNew.description": "可以根据您的数据创建不同的可视化。",
|
||||
"visualize.listing.createNew.title": "创建首个可视化",
|
||||
"visualize.listing.experimentalTitle": "实验性",
|
||||
"visualize.listing.experimentalTooltip": "未来版本可能会更改或删除此可视化,其不受支持 SLA 的约束。",
|
||||
"visualize.listing.noItemsMessage": "看起来您还没有任何可视化。",
|
||||
"visualize.listing.table.entityName": "可视化",
|
||||
"visualize.listing.table.entityNamePlural": "可视化",
|
||||
"visualize.listing.table.listTitle": "可视化",
|
||||
"visualize.listing.table.titleColumnName": "标题",
|
||||
"visualize.listing.table.typeColumnName": "类型",
|
||||
"visualize.pageHeading": "{chartName} {chartType}可视化",
|
||||
"visualize.saveDialog.saveAndAddToDashboardButtonLabel": "保存并添加到仪表板",
|
||||
"visualize.topNavMenu.openInspectorButtonAriaLabel": "打开检查器查看可视化",
|
||||
"visualize.topNavMenu.openInspectorDisabledButtonTooltip": "此可视化不支持任何检查器。",
|
||||
"visualize.topNavMenu.saveVisualization.failureNotificationText": "保存 “{visTitle}” 时出错",
|
||||
"visualize.topNavMenu.saveVisualization.successNotificationText": "已保存“{visTitle}”",
|
||||
"visualize.topNavMenu.saveVisualizationButtonAriaLabel": "保存可视化",
|
||||
"visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "应用或放弃所做更改,然后保存",
|
||||
"visualize.topNavMenu.shareVisualizationButtonAriaLabel": "共享可视化",
|
||||
"visualize.visualizationTypeInvalidNotificationMessage": "无效的可视化类型",
|
||||
"visualize.visualizeDescription": "创建可视化并聚合存储在 Elasticsearch 索引中的数据。",
|
||||
"visualize.visualizeListingBreadcrumbsTitle": "可视化",
|
||||
"visualize.visualizeListingDeleteErrorTitle": "删除可视化时出错",
|
||||
"visualize.wizard.step1Breadcrumb": "创建",
|
||||
"visualize.wizard.step2Breadcrumb": "创建",
|
||||
"xpack.actions.actionTypeRegistry.get.missingActionTypeErrorMessage": "未注册操作类型“{id}”。",
|
||||
"xpack.actions.actionTypeRegistry.register.duplicateActionTypeErrorMessage": "操作类型“{id}”已注册。",
|
||||
"xpack.actions.appName": "操作",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
import expect from '@kbn/expect';
|
||||
import { VisualizeConstants } from '../../../../../../src/legacy/core_plugins/kibana/public/visualize/np_ready/visualize_constants';
|
||||
import { VisualizeConstants } from '../../../../../../src/plugins/visualize/public/application/visualize_constants';
|
||||
import { FtrProviderContext } from '../../../ftr_provider_context';
|
||||
|
||||
export default function({ getPageObjects, getService }: FtrProviderContext) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue