diff --git a/src/plugins/saved_objects_tagging_oss/public/api.ts b/src/plugins/saved_objects_tagging_oss/public/api.ts index 3f4dac2d9c29f..5008e074917c2 100644 --- a/src/plugins/saved_objects_tagging_oss/public/api.ts +++ b/src/plugins/saved_objects_tagging_oss/public/api.ts @@ -72,7 +72,7 @@ export interface SavedObjectsTaggingApiUi { * * @param object */ - hasTagDecoration(object: SavedObjectClass): object is TagDecoratedSavedObject; + hasTagDecoration(object: SavedObjectClass | any): object is TagDecoratedSavedObject; /** * Return a filter that can be used to filter by tag with `EuiSearchBar` or EUI tables using `EuiSearchBar`. diff --git a/src/plugins/saved_objects_tagging_oss/public/decorator/index.ts b/src/plugins/saved_objects_tagging_oss/public/decorator/index.ts index c24df234b19e0..84f8903944c88 100644 --- a/src/plugins/saved_objects_tagging_oss/public/decorator/index.ts +++ b/src/plugins/saved_objects_tagging_oss/public/decorator/index.ts @@ -12,8 +12,9 @@ import { InternalTagDecoratedSavedObject } from './types'; export { TagDecoratedSavedObject } from './types'; -export const tagDecoratorConfig: SavedObjectDecoratorConfig | any = { - id: decoratorId, - priority: 100, - factory: tagDecoratorFactory, -}; +export const tagDecoratorConfig: SavedObjectDecoratorConfig | any = + { + id: decoratorId, + priority: 100, + factory: tagDecoratorFactory, + }; diff --git a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts index 6e93dca87d281..c72b8618dc199 100644 --- a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts +++ b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts @@ -27,57 +27,59 @@ import { VISUALIZE_ENABLE_LABS_SETTING } from '../../common/constants'; import { IndexPattern } from '../../../data/public'; import { createVisualizeEmbeddableAsync } from './visualize_embeddable_async'; -export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDeps) => async ( - vis: Vis, - input: Partial & { id: string }, - attributeService?: AttributeService< - VisualizeSavedObjectAttributes, - VisualizeByValueInput, - VisualizeByReferenceInput - >, - parent?: IContainer -): Promise => { - try { - const visId = vis.id as string; +export const createVisEmbeddableFromObject = + (deps: VisualizeEmbeddableFactoryDeps) => + async ( + vis: Vis, + input: Partial & { id: string }, + attributeService?: AttributeService< + VisualizeSavedObjectAttributes, + VisualizeByValueInput, + VisualizeByReferenceInput + >, + parent?: IContainer + ): Promise => { + try { + const visId = vis.id as string; - const editPath = visId ? urlFor(visId) : '#/edit_by_value'; + const editPath = visId ? urlFor(visId) : '#/edit_by_value'; - const editUrl = visId ? getHttp().basePath.prepend(`/app/visualize${urlFor(visId)}`) : ''; - const isLabsEnabled = getUISettings().get(VISUALIZE_ENABLE_LABS_SETTING); + const editUrl = visId ? getHttp().basePath.prepend(`/app/visualize${urlFor(visId)}`) : ''; + const isLabsEnabled = getUISettings().get(VISUALIZE_ENABLE_LABS_SETTING); - if (!isLabsEnabled && vis.type.stage === 'experimental') { - return new DisabledLabEmbeddable(vis.title, input); - } + if (!isLabsEnabled && vis.type.stage === 'experimental') { + return new DisabledLabEmbeddable(vis.title, input); + } - let indexPatterns: IndexPattern[] = []; + let indexPatterns: IndexPattern[] = []; - if (vis.type.getUsedIndexPattern) { - indexPatterns = await vis.type.getUsedIndexPattern(vis.params); - } else if (vis.data.indexPattern) { - indexPatterns = [vis.data.indexPattern]; - } + if (vis.type.getUsedIndexPattern) { + indexPatterns = await vis.type.getUsedIndexPattern(vis.params); + } else if (vis.data.indexPattern) { + indexPatterns = [vis.data.indexPattern]; + } - const capabilities = { - visualizeSave: Boolean(getCapabilities().visualize.save), - dashboardSave: Boolean(getCapabilities().dashboard?.showWriteControls), - }; + const capabilities = { + visualizeSave: Boolean(getCapabilities().visualize.save), + dashboardSave: Boolean(getCapabilities().dashboard?.showWriteControls), + }; - return createVisualizeEmbeddableAsync( - getTimeFilter(), - { - vis, - indexPatterns, - editPath, - editUrl, - deps, - capabilities, - }, - input, - attributeService, - parent - ); - } catch (e) { - console.error(e); // eslint-disable-line no-console - return new ErrorEmbeddable(e, input, parent); - } -}; + return createVisualizeEmbeddableAsync( + getTimeFilter(), + { + vis, + indexPatterns, + editPath, + editUrl, + deps, + capabilities, + }, + input, + attributeService, + parent + ); + } catch (e) { + console.error(e); // eslint-disable-line no-console + return new ErrorEmbeddable(e, input, parent); + } + }; diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx b/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx index 6bcc3f61bb683..99e33c0aa1924 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx @@ -69,7 +69,8 @@ export class VisualizeEmbeddableFactory VisualizeOutput | EmbeddableOutput, VisualizeEmbeddable | DisabledLabEmbeddable, VisualizationAttributes - > { + > +{ public readonly type = VISUALIZE_EMBEDDABLE_TYPE; private attributeService?: AttributeService< @@ -219,7 +220,7 @@ export class VisualizeEmbeddableFactory savedVis.copyOnSave = false; savedVis.description = ''; savedVis.searchSourceFields = visObj?.data.searchSource?.getSerializedFields(); - const serializedVis = ((visObj as unknown) as Vis).serialize(); + const serializedVis = (visObj as unknown as Vis).serialize(); const { params, data } = serializedVis; savedVis.visState = { title, @@ -270,7 +271,7 @@ export class VisualizeEmbeddableFactory } public inject(_state: EmbeddableStateWithType, references: SavedObjectReference[]) { - const state = (_state as unknown) as VisualizeInput; + const state = _state as unknown as VisualizeInput; const { type, params } = state.savedVis ?? {}; @@ -283,7 +284,7 @@ export class VisualizeEmbeddableFactory } public extract(_state: EmbeddableStateWithType) { - const state = (_state as unknown) as VisualizeInput; + const state = _state as unknown as VisualizeInput; const references = []; if (state.savedVis?.data.searchSource) { diff --git a/src/plugins/visualizations/public/index.ts b/src/plugins/visualizations/public/index.ts index f34071f8728c6..8b9831bbb4689 100644 --- a/src/plugins/visualizations/public/index.ts +++ b/src/plugins/visualizations/public/index.ts @@ -56,5 +56,5 @@ export { saveVisualization, findListItems, urlFor, - getFullPath + getFullPath, } from './utils/saved_visualize_utils'; diff --git a/src/plugins/visualizations/public/plugin.ts b/src/plugins/visualizations/public/plugin.ts index 16c1d384b7ff2..8ea69d684ee34 100644 --- a/src/plugins/visualizations/public/plugin.ts +++ b/src/plugins/visualizations/public/plugin.ts @@ -42,10 +42,7 @@ import { createSavedVisLoader, SavedVisualizationsLoader } from './saved_visuali import type { SerializedVis, Vis } from './vis'; import { showNewVisModal } from './wizard'; -import { - convertFromSerializedVis, - convertToSerializedVis, -} from './utils/saved_visualize_utils'; +import { convertFromSerializedVis, convertToSerializedVis } from './utils/saved_visualize_utils'; import { createSavedSearchesLoader } from '../../discover/public'; diff --git a/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.test.ts b/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.test.ts index 9c832414e7f00..ee0e3d481929d 100644 --- a/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.test.ts +++ b/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.test.ts @@ -115,11 +115,11 @@ describe('injectReferences', () => { }); test('injects references into context', () => { - const context = ({ + const context = { id: '1', title: 'test', savedSearchRefName: 'search_0', - visState: ({ + visState: { type: 'input_control_vis', params: { controls: [ @@ -132,8 +132,8 @@ describe('injectReferences', () => { }, ], }, - } as unknown) as SavedVisState, - } as unknown) as VisSavedObject; + } as unknown as SavedVisState, + } as unknown as VisSavedObject; const references = [ { name: 'search_0', @@ -182,10 +182,10 @@ describe('injectReferences', () => { }); test(`fails when it can't find the index pattern reference in the array`, () => { - const context = ({ + const context = { id: '1', title: 'test', - visState: ({ + visState: { type: 'input_control_vis', params: { controls: [ @@ -195,8 +195,8 @@ describe('injectReferences', () => { }, ], }, - } as unknown) as SavedVisState, - } as unknown) as VisSavedObject; + } as unknown as SavedVisState, + } as unknown as VisSavedObject; expect(() => injectReferences(context, [])).toThrowErrorMatchingInlineSnapshot( `"Could not find index pattern reference \\"control_0_index_pattern\\""` ); diff --git a/src/plugins/visualizations/public/utils/saved_visualize_utils.ts b/src/plugins/visualizations/public/utils/saved_visualize_utils.ts index 0dfe3a122ffb6..6ce19008fda5b 100644 --- a/src/plugins/visualizations/public/utils/saved_visualize_utils.ts +++ b/src/plugins/visualizations/public/utils/saved_visualize_utils.ts @@ -327,10 +327,8 @@ export async function saveVisualization( const references: any = []; if (savedObject.searchSource) { - const { - searchSourceJSON, - references: searchSourceReferences, - } = savedObject.searchSource.serialize(); + const { searchSourceJSON, references: searchSourceReferences } = + savedObject.searchSource.serialize(); attributes.kibanaSavedObjectMeta = { searchSourceJSON }; references.push(...searchSourceReferences); } @@ -344,7 +342,7 @@ export async function saveVisualization( references.push(...searchSourceReferences); } - let extractedRefs = config.extractReferences({ attributes, references }); + const extractedRefs = config.extractReferences({ attributes, references }); if (!extractedRefs.references) { throw new Error('References not returned from extractReferences'); diff --git a/src/plugins/visualize/public/application/components/visualize_editor_common.tsx b/src/plugins/visualize/public/application/components/visualize_editor_common.tsx index 04232d9cdd2f7..04b427d037b4c 100644 --- a/src/plugins/visualize/public/application/components/visualize_editor_common.tsx +++ b/src/plugins/visualize/public/application/components/visualize_editor_common.tsx @@ -82,7 +82,7 @@ export const VisualizeEditorCommon = ({ } aliasMatchRedirect(); - }, [visInstance?.savedVis.sharingSavedObjectProps, services]); + }, [visInstance?.savedVis.sharingSavedObjectProps, visInstance?.vis?.type.title, services]); const getLegacyUrlConflictCallout = useCallback(() => { // This function returns a callout component *if* we have encountered a "legacy URL conflict" scenario diff --git a/src/plugins/visualize/public/application/components/visualize_listing.tsx b/src/plugins/visualize/public/application/components/visualize_listing.tsx index 8b432c26d0298..32f792947c9d9 100644 --- a/src/plugins/visualize/public/application/components/visualize_listing.tsx +++ b/src/plugins/visualize/public/application/components/visualize_listing.tsx @@ -31,7 +31,6 @@ export const VisualizeListing = () => { chrome, dashboard, history, - savedVisualizations, toastNotifications, visualizations, stateTransferService, @@ -114,7 +113,7 @@ export const VisualizeListing = () => { const isLabsEnabled = uiSettings.get(VISUALIZE_ENABLE_LABS_SETTING); return findListItems(savedObjects.client, searchTerm, listingLimit, references).then( - ({ total, hits }: { total: number; hits: Record[] }) => ({ + ({ total, hits }: { total: number; hits: Array> }) => ({ total, hits: hits.filter( (result: any) => isLabsEnabled || result.type?.stage !== 'experimental' @@ -122,7 +121,7 @@ export const VisualizeListing = () => { }) ); }, - [listingLimit, savedVisualizations, uiSettings, savedObjectsTagging] + [listingLimit, uiSettings, savedObjectsTagging, savedObjects.client] ); const deleteItems = useCallback( diff --git a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx index 087f22fd8e986..36193a49dea4e 100644 --- a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx +++ b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx @@ -68,7 +68,7 @@ const SavedObjectSaveModalDashboard = withSuspense(LazySavedObjectSaveModalDashb export const showPublicUrlSwitch = (anonymousUserCapabilities: Capabilities) => { if (!anonymousUserCapabilities.visualize) return false; - const visualize = (anonymousUserCapabilities.visualize as unknown) as VisualizeCapabilities; + const visualize = anonymousUserCapabilities.visualize as unknown as VisualizeCapabilities; return !!visualize.show; }; diff --git a/src/plugins/visualize/public/application/utils/get_visualization_instance.ts b/src/plugins/visualize/public/application/utils/get_visualization_instance.ts index deca4defa1870..bae1845f5e87e 100644 --- a/src/plugins/visualize/public/application/utils/get_visualization_instance.ts +++ b/src/plugins/visualize/public/application/utils/get_visualization_instance.ts @@ -34,12 +34,8 @@ const createVisualizeEmbeddableAndLinkSavedSearch = async ( vis: Vis, visualizeServices: VisualizeServices ) => { - const { - data, - createVisEmbeddableFromObject, - savedObjects, - savedObjectsPublic, - } = visualizeServices; + const { data, createVisEmbeddableFromObject, savedObjects, savedObjectsPublic } = + visualizeServices; const embeddableHandler = (await createVisEmbeddableFromObject(vis, { id: '', timeRange: data.query.timefilter.timefilter.getTime(), @@ -50,7 +46,7 @@ const createVisualizeEmbeddableAndLinkSavedSearch = async ( embeddableHandler.getOutput$().subscribe((output) => { if (output.error && !isErrorRelatedToRuntimeFields(output.error)) { data.search.showError( - ((output.error as unknown) as ExpressionValueError['error']).original || output.error + (output.error as unknown as ExpressionValueError['error']).original || output.error ); } });