diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/expression_types/embeddable.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/expression_types/embeddable.ts
index e1cdd16a6bad4..6a46d20572bd3 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/expression_types/embeddable.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/expression_types/embeddable.ts
@@ -6,14 +6,12 @@
*/
import { ExpressionTypeDefinition } from '@kbn/expressions-plugin/common';
-import { EmbeddableInput } from '../../types';
import { EmbeddableTypes } from './embeddable_types';
export const EmbeddableExpressionType = 'embeddable';
-export type { EmbeddableInput };
export { EmbeddableTypes };
-export interface EmbeddableExpression {
+export interface EmbeddableExpression {
/**
* The type of the expression result
*/
@@ -21,7 +19,7 @@ export interface EmbeddableExpression {
/**
* The input to be passed to the embeddable
*/
- input: Input;
+ input: Record;
/**
* The type of embeddable
*/
@@ -35,11 +33,11 @@ export interface EmbeddableExpression {
export const embeddableType = (): ExpressionTypeDefinition<
typeof EmbeddableExpressionType,
- EmbeddableExpression
+ EmbeddableExpression
> => ({
name: EmbeddableExpressionType,
to: {
- render: (embeddableExpression: EmbeddableExpression) => {
+ render: (embeddableExpression: EmbeddableExpression) => {
return {
type: 'render',
as: EmbeddableExpressionType,
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/embeddable.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/embeddable.ts
index aee62f2c3de2a..9010ced179fb7 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/embeddable.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/embeddable.ts
@@ -13,7 +13,7 @@ import {
} from '@kbn/expressions-plugin/common';
import { MigrateFunction, MigrateFunctionsObject } from '@kbn/kibana-utils-plugin/common';
import { SavedObjectReference } from '@kbn/core/types';
-import { ExpressionValueFilter, EmbeddableInput } from '../../../types';
+import { ExpressionValueFilter } from '../../../types';
import { EmbeddableExpressionType, EmbeddableExpression } from '../../expression_types';
import { getFunctionHelp } from '../../../i18n';
import { getQueryFilters } from '../../../common/lib/build_embeddable_filters';
@@ -36,13 +36,11 @@ const baseEmbeddableInput = {
renderMode: 'noInteractivity',
};
-type Return = EmbeddableExpression;
-
type EmbeddableFunction = ExpressionFunctionDefinition<
'embeddable',
ExpressionValueFilter | null,
Arguments,
- Return
+ EmbeddableExpression
>;
export function embeddableFunctionFactory({
@@ -56,7 +54,7 @@ export function embeddableFunctionFactory({
migrateFn: MigrateFunction
): MigrateFunction =>
(state: ExpressionAstFunction): ExpressionAstFunction => {
- const embeddableInput = decode(state.arguments.config[0] as string) as EmbeddableInput;
+ const embeddableInput = decode(state.arguments.config[0] as string);
const embeddableType = state.arguments.type[0];
@@ -92,7 +90,7 @@ export function embeddableFunctionFactory({
fn: (input, args) => {
const filters = input ? input.and : [];
- const embeddableInput = decode(args.config) as EmbeddableInput;
+ const embeddableInput = decode(args.config);
return {
type: EmbeddableExpressionType,
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_lens.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_lens.ts
index a69ecb724a641..347b6ec0eb37f 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_lens.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_lens.ts
@@ -11,7 +11,7 @@ import { Filter as DataFilter } from '@kbn/es-query';
import type { TimeRange } from '@kbn/es-query';
import { SavedObjectReference } from '@kbn/core/types';
import { getQueryFilters } from '../../../common/lib/build_embeddable_filters';
-import { ExpressionValueFilter, EmbeddableInput, TimeRange as TimeRangeArg } from '../../../types';
+import { ExpressionValueFilter, TimeRange as TimeRangeArg } from '../../../types';
import {
EmbeddableTypes,
EmbeddableExpressionType,
@@ -25,25 +25,24 @@ interface Arguments {
palette?: PaletteOutput;
}
-export type SavedLensInput = EmbeddableInput & {
+export interface SavedLensInput {
+ title?: string;
savedObjectId: string;
timeRange?: TimeRange;
filters: DataFilter[];
palette?: PaletteOutput;
-};
+}
const defaultTimeRange = {
from: 'now-15m',
to: 'now',
};
-type Return = EmbeddableExpression;
-
export function savedLens(): ExpressionFunctionDefinition<
'savedLens',
ExpressionValueFilter | null,
Arguments,
- Return
+ EmbeddableExpression
> {
const { help, args: argHelp } = getFunctionHelp().savedLens;
return {
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_map.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_map.ts
index 41ea76e4905cc..cdb70a11d359f 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_map.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_map.ts
@@ -6,7 +6,6 @@
*/
import { ExpressionFunctionDefinition } from '@kbn/expressions-plugin/common';
-import type { MapSerializedState } from '@kbn/maps-plugin/public';
import { SavedObjectReference } from '@kbn/core/types';
import { ExpressionValueFilter, MapCenter, TimeRange as TimeRangeArg } from '../../../types';
import {
@@ -29,13 +28,11 @@ const defaultTimeRange = {
to: 'now',
};
-type Output = EmbeddableExpression;
-
export function savedMap(): ExpressionFunctionDefinition<
'savedMap',
ExpressionValueFilter | null,
Arguments,
- Output
+ EmbeddableExpression
> {
const { help, args: argHelp } = getFunctionHelp().savedMap;
return {
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_search.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_search.ts
index 089d39ea6299e..8883f59d22561 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_search.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_search.ts
@@ -6,10 +6,7 @@
*/
import type { ExpressionFunctionDefinition } from '@kbn/expressions-plugin/common';
-import type { SearchEmbeddableSerializedState } from '@kbn/discover-plugin/public';
import type { SavedObjectReference } from '@kbn/core/types';
-import type { Filter } from '@kbn/es-query';
-import type { ViewMode } from '@kbn/presentation-publishing';
import {
EmbeddableTypes,
EmbeddableExpressionType,
@@ -24,19 +21,11 @@ interface Arguments {
id: string;
}
-type Output = EmbeddableExpression<
- Partial & {
- id: string;
- filters?: Filter[];
- viewMode?: ViewMode;
- }
->;
-
export function savedSearch(): ExpressionFunctionDefinition<
'savedSearch',
ExpressionValueFilter | null,
Arguments,
- Output
+ EmbeddableExpression
> {
const { help, args: argHelp } = getFunctionHelp().savedSearch;
return {
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_visualization.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_visualization.ts
index 7efb620634c03..3100442e7df85 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_visualization.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/functions/external/saved_visualization.ts
@@ -26,8 +26,6 @@ interface Arguments {
title: string | null;
}
-type Output = EmbeddableExpression;
-
const defaultTimeRange = {
from: 'now-15m',
to: 'now',
@@ -37,7 +35,7 @@ export function savedVisualization(): ExpressionFunctionDefinition<
'savedVisualization',
ExpressionValueFilter | null,
Arguments,
- Output
+ EmbeddableExpression
> {
const { help, args: argHelp } = getFunctionHelp().savedVisualization;
return {
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx
index 834fec6247705..b10d6332e2d80 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable.tsx
@@ -22,12 +22,7 @@ import {
import { BehaviorSubject } from 'rxjs';
import { CANVAS_EMBEDDABLE_CLASSNAME } from '../../../common/lib';
import { RendererStrings } from '../../../i18n';
-import {
- CanvasContainerApi,
- EmbeddableInput,
- RendererFactory,
- RendererHandlers,
-} from '../../../types';
+import { CanvasContainerApi, RendererFactory, RendererHandlers } from '../../../types';
import { EmbeddableExpression } from '../../expression_types/embeddable';
import { StartDeps } from '../../plugin';
import { embeddableInputToExpression } from './embeddable_input_to_expression';
@@ -46,7 +41,7 @@ const renderReactEmbeddable = ({
}: {
type: string;
uuid: string;
- input: EmbeddableInput;
+ input: { filters?: Filter[] };
container: CanvasContainerApi;
handlers: RendererHandlers;
core: CoreStart;
@@ -75,7 +70,7 @@ const renderReactEmbeddable = ({
key={`${type}_${uuid}`}
onAnyStateChange={(newState) => {
const newExpression = embeddableInputToExpression(
- newState.rawState as unknown as EmbeddableInput,
+ newState.rawState,
type,
undefined,
true
@@ -117,7 +112,7 @@ const renderReactEmbeddable = ({
export const embeddableRendererFactory = (
core: CoreStart,
plugins: StartDeps
-): RendererFactory & { canvasApi: CanvasContainerApi }> => {
+): RendererFactory => {
return () => ({
name: 'embeddable',
displayName: strings.getDisplayName(),
@@ -146,7 +141,7 @@ export const embeddableRendererFactory = (
return ReactDOM.unmountComponentAtNode(domNode);
});
} else {
- api.setFilters(input.filters);
+ api.setFilters((input as { filters?: Filter[] }).filters);
}
},
});
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable_input_to_expression.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable_input_to_expression.ts
index 05bfeec448ab2..f4e6075f64edc 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable_input_to_expression.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/embeddable_input_to_expression.ts
@@ -6,7 +6,7 @@
*/
import type { PaletteRegistry } from '@kbn/coloring';
-import { EmbeddableTypes, EmbeddableInput } from '../../expression_types';
+import { EmbeddableTypes } from '../../expression_types';
import { toExpression as mapToExpression } from './input_type_to_expression/map';
import { toExpression as visualizationToExpression } from './input_type_to_expression/visualization';
import { toExpression as lensToExpression } from './input_type_to_expression/lens';
@@ -25,7 +25,7 @@ export function embeddableInputToExpression<
UseGenericEmbeddable extends boolean,
ConditionalReturnType = UseGenericEmbeddable extends true ? string : string | undefined
>(
- input: Omit,
+ input: object,
embeddableType: string,
palettes?: PaletteRegistry,
useGenericEmbeddable?: UseGenericEmbeddable
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.test.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.test.ts
index 3e0d4a1c890af..0ad0f239d9f79 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.test.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.test.ts
@@ -6,7 +6,6 @@
*/
import { toExpression } from './embeddable';
-import { EmbeddableInput } from '../../../../types';
import { decode } from '../../../../common/lib/embeddable_dataurl';
import { fromExpression } from '@kbn/interpreter';
@@ -19,7 +18,7 @@ describe('toExpression', () => {
};
it('converts to an embeddable expression', () => {
- const input: EmbeddableInput = baseEmbeddableInput;
+ const input = baseEmbeddableInput;
const expression = toExpression(input, 'visualization');
const ast = fromExpression(expression);
@@ -34,7 +33,7 @@ describe('toExpression', () => {
});
it('includes optional input values', () => {
- const input: EmbeddableInput = {
+ const input = {
...baseEmbeddableInput,
title: 'title',
timeRange: {
@@ -55,7 +54,7 @@ describe('toExpression', () => {
});
it('includes empty panel title', () => {
- const input: EmbeddableInput = {
+ const input = {
...baseEmbeddableInput,
title: '',
};
@@ -76,7 +75,7 @@ describe('toExpression', () => {
filters: [],
};
it('converts to an embeddable expression', () => {
- const input: EmbeddableInput = baseEmbeddableInput;
+ const input = baseEmbeddableInput;
const expression = toExpression(input, 'visualization');
const ast = fromExpression(expression);
@@ -91,7 +90,7 @@ describe('toExpression', () => {
});
it('includes optional input values', () => {
- const input: EmbeddableInput = {
+ const input = {
...baseEmbeddableInput,
title: 'title',
timeRange: {
@@ -112,7 +111,7 @@ describe('toExpression', () => {
});
it('includes empty panel title', () => {
- const input: EmbeddableInput = {
+ const input = {
...baseEmbeddableInput,
title: '',
};
diff --git a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.ts b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.ts
index 584c0925fe416..b2e5939480017 100644
--- a/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.ts
+++ b/x-pack/platform/plugins/private/canvas/canvas_plugin_src/renderers/embeddable/input_type_to_expression/embeddable.ts
@@ -6,8 +6,7 @@
*/
import { encode } from '../../../../common/lib/embeddable_dataurl';
-import { EmbeddableInput } from '../../../expression_types';
-export function toExpression(input: Omit, embeddableType: string): string {
+export function toExpression(input: object, embeddableType: string): string {
return `embeddable config="${encode(input)}" type="${embeddableType}" | render`;
}
diff --git a/x-pack/platform/plugins/private/canvas/public/components/hooks/use_canvas_api.tsx b/x-pack/platform/plugins/private/canvas/public/components/hooks/use_canvas_api.tsx
index ad218bb9dc672..3744c0839447e 100644
--- a/x-pack/platform/plugins/private/canvas/public/components/hooks/use_canvas_api.tsx
+++ b/x-pack/platform/plugins/private/canvas/public/components/hooks/use_canvas_api.tsx
@@ -9,7 +9,6 @@ import { useCallback, useMemo } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { BehaviorSubject, Subject } from 'rxjs';
-import { EmbeddableInput } from '@kbn/embeddable-plugin/common';
import { ViewMode } from '@kbn/presentation-publishing';
import { embeddableInputToExpression } from '../../../canvas_plugin_src/renderers/embeddable/embeddable_input_to_expression';
@@ -28,7 +27,7 @@ export const useCanvasApi: () => CanvasContainerApi = () => {
const dispatch = useDispatch();
const createNewEmbeddable = useCallback(
- (type: string, embeddableInput: EmbeddableInput) => {
+ (type: string, embeddableInput: object) => {
if (trackCanvasUiMetric) {
trackCanvasUiMetric(METRIC_TYPE.CLICK, type);
}
@@ -60,7 +59,7 @@ export const useCanvasApi: () => CanvasContainerApi = () => {
initialState,
}: {
panelType: string;
- initialState: EmbeddableInput;
+ initialState: object;
}) => {
createNewEmbeddable(panelType, initialState);
},
diff --git a/x-pack/platform/plugins/private/canvas/tsconfig.json b/x-pack/platform/plugins/private/canvas/tsconfig.json
index f408562de24ef..7dc039bccbf35 100644
--- a/x-pack/platform/plugins/private/canvas/tsconfig.json
+++ b/x-pack/platform/plugins/private/canvas/tsconfig.json
@@ -31,7 +31,6 @@
"@kbn/charts-plugin",
"@kbn/data-plugin",
"@kbn/share-plugin",
- "@kbn/discover-plugin",
"@kbn/embeddable-plugin",
"@kbn/expressions-plugin",
"@kbn/expression-error-plugin",
diff --git a/x-pack/platform/plugins/private/canvas/types/embeddables.ts b/x-pack/platform/plugins/private/canvas/types/embeddables.ts
index 142dde0cfc61d..5a91a92d8a100 100644
--- a/x-pack/platform/plugins/private/canvas/types/embeddables.ts
+++ b/x-pack/platform/plugins/private/canvas/types/embeddables.ts
@@ -5,9 +5,6 @@
* 2.0.
*/
-import type { TimeRange } from '@kbn/es-query';
-import { Filter } from '@kbn/es-query';
-import { EmbeddableInput as Input } from '@kbn/embeddable-plugin/common';
import type {
HasAppContext,
HasDisableTriggers,
@@ -18,12 +15,6 @@ import type {
} from '@kbn/presentation-publishing';
import type { CanAddNewPanel, HasSerializedChildState } from '@kbn/presentation-containers';
-export type EmbeddableInput = Input & {
- timeRange?: TimeRange;
- filters?: Filter[];
- savedObjectId?: string;
-};
-
export type CanvasContainerApi = PublishesViewMode &
CanAddNewPanel &
HasDisableTriggers &