Skip to content

Commit 7451288

Browse files
authored
Remove src/plugins/visualizations -> src/plugins/visualize cyclic dependencies (#87797)
* Remove src/plugins/visualizations -> src/plugins/visualize cyclic dependencies Part of #84750 * fix types
1 parent 46083c0 commit 7451288

File tree

14 files changed

+73
-55
lines changed

14 files changed

+73
-55
lines changed

src/dev/run_find_plugins_with_circular_deps.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ interface Options {
3131
type CircularDepList = Set<string>;
3232

3333
const allowedList: CircularDepList = new Set([
34-
'src/plugins/visualizations -> src/plugins/visualize',
3534
'x-pack/plugins/actions -> x-pack/plugins/case',
3635
'x-pack/plugins/case -> x-pack/plugins/security_solution',
3736
'x-pack/plugins/apm -> x-pack/plugins/infra',

src/plugins/vis_default_editor/public/default_editor.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ import 'brace/mode/json';
2323
import React, { useEffect, useRef, useState, useCallback } from 'react';
2424
import { EventEmitter } from 'events';
2525

26-
import { EditorRenderProps } from 'src/plugins/visualize/public';
27-
import { Vis, VisualizeEmbeddableContract } from 'src/plugins/visualizations/public';
26+
import {
27+
Vis,
28+
VisualizeEmbeddableContract,
29+
EditorRenderProps,
30+
} from 'src/plugins/visualizations/public';
2831
import { KibanaContextProvider, PanelsContainer, Panel } from '../../kibana_react/public';
2932
import { Storage } from '../../kibana_utils/public';
3033

src/plugins/vis_default_editor/public/default_editor_controller.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ import { render, unmountComponentAtNode } from 'react-dom';
2222
import { EventEmitter } from 'events';
2323
import { EuiErrorBoundary, EuiLoadingChart } from '@elastic/eui';
2424

25-
import { EditorRenderProps, IEditorController } from 'src/plugins/visualize/public';
26-
import { Vis, VisualizeEmbeddableContract } from 'src/plugins/visualizations/public';
25+
import {
26+
Vis,
27+
IEditorController,
28+
EditorRenderProps,
29+
VisualizeEmbeddableContract,
30+
} from 'src/plugins/visualizations/public';
2731

2832
// @ts-ignore
2933
const DefaultEditor = lazy(() => import('./default_editor'));

src/plugins/visualizations/public/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ export type {
4444
ReactVisTypeOptions,
4545
Schema,
4646
ISchemas,
47+
VisEditorConstructor,
48+
IEditorController,
49+
EditorRenderProps,
4750
} from './vis_types';
4851
export { VisParams, SerializedVis, SerializedVisData, VisData } from './vis';
4952
export type VisualizeEmbeddableFactoryContract = PublicContract<VisualizeEmbeddableFactory>;

src/plugins/visualizations/public/vis_types/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
export * from './types_service';
2121
export { Schemas } from './schemas';
2222
export { VisGroups } from './types';
23-
export type { VisType, ISchemas, Schema } from './types';
23+
export type {
24+
VisType,
25+
ISchemas,
26+
Schema,
27+
IEditorController,
28+
VisEditorConstructor,
29+
EditorRenderProps,
30+
} from './types';
2431
export type { BaseVisTypeOptions } from './base_vis_type';
2532
export type { ReactVisTypeOptions } from './react_vis_type';

src/plugins/visualizations/public/vis_types/types.ts

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,24 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
19+
import { EventEmitter } from 'events';
2020
import { IconType } from '@elastic/eui';
2121
import React, { ReactNode } from 'react';
2222
import { Adapters } from 'src/plugins/inspector';
23-
import { VisEditorConstructor } from 'src/plugins/visualize/public';
24-
import { IndexPattern, AggGroupNames, AggParam, AggGroupName } from '../../../data/public';
23+
import { CoreStart } from 'src/core/public';
24+
import { SavedObject } from 'src/plugins/saved_objects/public';
25+
import {
26+
IndexPattern,
27+
AggGroupNames,
28+
AggParam,
29+
AggGroupName,
30+
DataPublicPluginStart,
31+
Filter,
32+
TimeRange,
33+
Query,
34+
} from '../../../data/public';
2535
import { Vis, VisParams, VisToExpressionAst, VisualizationControllerConstructor } from '../types';
36+
import { PersistedState, VisualizeEmbeddableContract } from '../index';
2637

2738
export interface VisTypeOptions {
2839
showTimePicker: boolean;
@@ -152,3 +163,29 @@ export interface VisType<TVisParams = unknown> {
152163
readonly editorConfig: Record<string, any>;
153164
readonly visConfig: Record<string, any>;
154165
}
166+
167+
export type VisEditorConstructor = new (
168+
element: HTMLElement,
169+
vis: Vis,
170+
eventEmitter: EventEmitter,
171+
embeddableHandler: VisualizeEmbeddableContract
172+
) => IEditorController;
173+
174+
export interface IEditorController {
175+
render(props: EditorRenderProps): Promise<void> | void;
176+
destroy(): void;
177+
}
178+
179+
export interface EditorRenderProps {
180+
core: CoreStart;
181+
data: DataPublicPluginStart;
182+
filters: Filter[];
183+
timeRange: TimeRange;
184+
query?: Query;
185+
savedSearch?: SavedObject;
186+
uiState: PersistedState;
187+
/**
188+
* Flag to determine if visualiztion is linked to the saved search
189+
*/
190+
linked: boolean;
191+
}

src/plugins/visualize/public/application/types.ts

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@
1818
*/
1919

2020
import { History } from 'history';
21-
import { TimeRange, Query, Filter, DataPublicPluginStart } from 'src/plugins/data/public';
21+
import { Query, Filter, DataPublicPluginStart } from 'src/plugins/data/public';
2222
import {
23-
PersistedState,
2423
SavedVisState,
2524
VisualizationsStart,
2625
Vis,
@@ -45,7 +44,6 @@ import { SharePluginStart } from 'src/plugins/share/public';
4544
import { SavedObjectsStart, SavedObject } from 'src/plugins/saved_objects/public';
4645
import { EmbeddableStart, EmbeddableStateTransfer } from 'src/plugins/embeddable/public';
4746
import { UrlForwardingStart } from 'src/plugins/url_forwarding/public';
48-
import { EventEmitter } from 'events';
4947
import { DashboardStart } from '../../../dashboard/public';
5048
import type { SavedObjectsTaggingApi } from '../../../saved_objects_tagging_oss/public';
5149

@@ -80,20 +78,6 @@ export type VisualizeAppStateContainer = ReduxLikeStateContainer<
8078
VisualizeAppStateTransitions
8179
>;
8280

83-
export interface EditorRenderProps {
84-
core: CoreStart;
85-
data: DataPublicPluginStart;
86-
filters: Filter[];
87-
timeRange: TimeRange;
88-
query?: Query;
89-
savedSearch?: SavedObject;
90-
uiState: PersistedState;
91-
/**
92-
* Flag to determine if visualiztion is linked to the saved search
93-
*/
94-
linked: boolean;
95-
}
96-
9781
export interface VisualizeServices extends CoreStart {
9882
stateTransferService: EmbeddableStateTransfer;
9983
embeddable: EmbeddableStart;
@@ -135,15 +119,3 @@ export interface ByValueVisInstance {
135119
}
136120

137121
export type VisualizeEditorVisInstance = SavedVisInstance | ByValueVisInstance;
138-
139-
export type VisEditorConstructor = new (
140-
element: HTMLElement,
141-
vis: Vis,
142-
eventEmitter: EventEmitter,
143-
embeddableHandler: VisualizeEmbeddableContract
144-
) => IEditorController;
145-
146-
export interface IEditorController {
147-
render(props: EditorRenderProps): Promise<void> | void;
148-
destroy(): void;
149-
}

src/plugins/visualize/public/application/utils/use/use_editor_updates.test.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,8 @@ import { renderHook, act } from '@testing-library/react-hooks';
2121
import { EventEmitter } from 'events';
2222

2323
import { useEditorUpdates } from './use_editor_updates';
24-
import {
25-
VisualizeServices,
26-
VisualizeAppStateContainer,
27-
SavedVisInstance,
28-
IEditorController,
29-
} from '../../types';
24+
import { VisualizeServices, VisualizeAppStateContainer, SavedVisInstance } from '../../types';
25+
import type { IEditorController } from '../../../../../visualizations/public';
3026
import { visualizeAppStateStub } from '../stubs';
3127
import { createVisualizeServicesMock } from '../mocks';
3228

src/plugins/visualize/public/application/utils/use/use_editor_updates.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ import {
2525
VisualizeServices,
2626
VisualizeAppState,
2727
VisualizeAppStateContainer,
28-
IEditorController,
2928
VisualizeEditorVisInstance,
3029
} from '../../types';
30+
import type { IEditorController } from '../../../../../visualizations/public';
3131

3232
export const useEditorUpdates = (
3333
services: VisualizeServices,

src/plugins/visualize/public/application/utils/use/use_saved_vis_instance.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ import { redirectWhenMissing } from '../../../../../kibana_utils/public';
2626

2727
import { getVisualizationInstance } from '../get_visualization_instance';
2828
import { getEditBreadcrumbs, getCreateBreadcrumbs } from '../breadcrumbs';
29-
import { SavedVisInstance, IEditorController, VisualizeServices } from '../../types';
29+
import { SavedVisInstance, VisualizeServices } from '../../types';
3030
import { VisualizeConstants } from '../../visualize_constants';
3131
import { getDefaultEditor } from '../../../services';
32+
import type { IEditorController } from '../../../../../visualizations/public';
3233

3334
/**
3435
* This effect is responsible for instantiating a saved vis or creating a new one

0 commit comments

Comments
 (0)