// (C) 2019-2020 GoodData Corporation import { DrillTarget, DrillToDashboardTarget, NewWindowDrillTarget } from "../../model/DrillDefinition"; export type SchemaDrillDefinition = | ISchemaDrillToVisualization | ISchemaDrillToDashboard | ISchemaDrillToCustomUrl | ISchemaDrillToAttributeUrl; export interface ISchemaDrillToVisualization { drillToVisualization: { target: DrillTarget; from: string; toVisualization: string; }; } export function isSchemaDrillToVisualization( drillDefinitionSchema: SchemaDrillDefinition, ): drillDefinitionSchema is ISchemaDrillToVisualization { return (drillDefinitionSchema as ISchemaDrillToVisualization).drillToVisualization !== undefined; } export interface ISchemaDrillToDashboard { drillToDashboard: { target: DrillToDashboardTarget; from: string; toDashboard: string; }; } export function isSchemaDrillToDashboard( drillDefinitionSchema: SchemaDrillDefinition, ): drillDefinitionSchema is ISchemaDrillToDashboard { return (drillDefinitionSchema as ISchemaDrillToDashboard).drillToDashboard !== undefined; } export interface ISchemaDrillToCustomUrl { drillToCustomUrl: { target: NewWindowDrillTarget; from: string; customUrl: string; }; } export function isSchemaDrillToCustomUrl( drillDefinitionSchema: SchemaDrillDefinition, ): drillDefinitionSchema is ISchemaDrillToCustomUrl { return (drillDefinitionSchema as ISchemaDrillToCustomUrl).drillToCustomUrl !== undefined; } export interface ISchemaDrillToAttributeUrl { drillToAttributeUrl: { target: NewWindowDrillTarget; from: string; insightAttributeDisplayForm: string; drillToAttributeDisplayForm: string; }; } export function isSchemaDrillToAttributeUrl( drillDefinitionSchema: SchemaDrillDefinition, ): drillDefinitionSchema is ISchemaDrillToAttributeUrl { return (drillDefinitionSchema as ISchemaDrillToAttributeUrl).drillToAttributeUrl !== undefined; }