import { type ObjRef, type ObjRefInScope } from "../objRef/index.js"; /** * Insight widget drill definition * @public */ export type InsightDrillDefinition = IDrillToInsight | IDrillToDashboard | IDrillToCustomUrl | IDrillToAttributeUrl | ICrossFiltering | IKeyDriveAnalysis; /** * Kpi widget drill definition * @public */ export type KpiDrillDefinition = IDrillToLegacyDashboard; /** * Widget drill definition * @public */ export type DrillDefinition = InsightDrillDefinition | KpiDrillDefinition; /** * Drill origin type * @public */ export type DrillOriginType = "drillFromMeasure" | "drillFromAttribute"; /** * Drill origin * @public */ export type DrillOrigin = IDrillFromMeasure | IDrillFromAttribute; /** * Drill transition * @public */ export type DrillTransition = "pop-up" | "in-place" | "new-window"; /** * Drill type * @public */ export type DrillType = "drillToInsight" | "drillToDashboard" | "drillToLegacyDashboard" | "drillToCustomUrl" | "drillToAttributeUrl" | "keyDriveAnalysis" | "crossFiltering"; /** * Drill origin base type * @public */ export interface IDrillOrigin { /** * Drill origin type */ type: DrillOriginType; } /** * Drill to custom url target * @public */ export interface IDrillToCustomUrlTarget { /** * Custom url to drill to */ url: string; } /** * Drill to attribute url target * @public */ export interface IDrillToAttributeUrlTarget { /** * Original attribute display form on the insight */ displayForm: ObjRef; /** * Target attribute display form (must be of type `Hyperlink`), which contains elements with destination URL */ hyperlinkDisplayForm: ObjRef; } /** * Drill target * @alpha */ export type IDrillTarget = ObjRef | IDrillToCustomUrlTarget | IDrillToAttributeUrlTarget; /** * Drill from measure * @public */ export interface IDrillFromMeasure extends IDrillOrigin { /** * Drill origin type */ type: "drillFromMeasure"; /** * Measure object ref */ measure: ObjRefInScope; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillFromMeasure}. * @alpha */ export declare function isDrillFromMeasure(obj: DrillOrigin): obj is IDrillFromMeasure; /** * Drill from attribute * @public */ export interface IDrillFromAttribute extends IDrillOrigin { /** * Drill origin type */ type: "drillFromAttribute"; /** * Attribute object ref */ attribute: ObjRefInScope; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillFromAttribute}. * @alpha */ export declare function isDrillFromAttribute(obj: DrillOrigin): obj is IDrillFromAttribute; /** * Drill base type * @public */ export interface IDrill { /** * The identifier of the drill */ localIdentifier?: string; /** * Drill type */ type: DrillType; /** * Drill transition */ transition: DrillTransition; /** * Drill origin */ origin: DrillOrigin; /** * Local identifiers of the attribute display forms to ignore * in the drill intersection. * * Values of these display forms won't be included * in the drill intersection. */ drillIntersectionIgnoredAttributes?: string[]; } /** * Drill to PP dashboard * @public */ export interface IDrillToLegacyDashboard extends IDrill { /** * Drill type */ type: "drillToLegacyDashboard"; /** * Drill transition */ transition: "in-place"; /** * Target dashboard tab */ tab: string; /** * Target legacy dashboard ref */ target: ObjRef; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillToLegacyDashboard}. * @alpha */ export declare function isDrillToLegacyDashboard(obj: unknown): obj is IDrillToLegacyDashboard; /** * Drill to dashboard * @public */ export interface IDrillToDashboard extends IDrill { /** * Drill type */ type: "drillToDashboard"; /** * Drill transition */ transition: "in-place"; /** * Target dashboard ref. If not specified, then this is a drill to self - activating such * drill will not switch to a different dashboard but will instead set dashboard filters to * 'focus' on the drilled attribute element IF a filter for that attribute is defined for * the dashboard. * * Example: dashboard shows several for company departments. It is possible to filter the entire * dashboard by department. A column chart showing cost by department has drill to dashboard set * without 'target'. When user clicks a column, the dashboard's department filter will be set * to the department that the clicked column represents. */ target?: ObjRef; /** * Target tab identifier within the dashboard. When specified, the drill will navigate * to the specific tab. If not specified, the dashboard will open with its default/first tab. * * @alpha */ targetTabLocalIdentifier?: string; /** * Dashboard-level filters that should be excluded (opt-out). */ ignoredDashboardFilters?: string[]; /** * Source insight filters that are explicitly included (opt-in). */ includedSourceInsightFiltersObjRefs?: SourceInsightFilterObjRef[]; /** * Source measure-level filters that are explicitly included (opt-in). */ includedSourceMeasureFiltersObjRefs?: SourceMeasureFilterObjRef[]; } /** * Source insight attribute filter reference. * @public */ export interface ISourceInsightAttributeFilterRef { type: "attributeFilter"; label: ObjRefInScope; } /** * Source insight date filter reference. * @public */ export interface ISourceInsightDateFilterRef { type: "dateFilter"; dataSet: ObjRefInScope; } /** * Source insight measure value filter reference. * @public */ export interface ISourceInsightMeasureValueFilterRef { type: "measureValueFilter"; measure: ObjRefInScope; } /** * Source insight ranking filter reference. * @public */ export interface ISourceInsightRankingFilterRef { type: "rankingFilter"; measure: ObjRefInScope; } /** * Source insight filter reference. * @public */ export type SourceInsightFilterObjRef = ISourceInsightAttributeFilterRef | ISourceInsightDateFilterRef | ISourceInsightMeasureValueFilterRef | ISourceInsightRankingFilterRef; /** * Source measure-level filter reference. * @public */ export type SourceMeasureFilterObjRef = Extract; /** * Type-guard testing whether the provided object is an instance of {@link IDrillToDashboard}. * @alpha */ export declare function isDrillToDashboard(obj: unknown): obj is IDrillToDashboard; /** * Drill to insight * @public */ export interface IDrillToInsight extends IDrill { /** * Drill type */ type: "drillToInsight"; /** * Drill transition */ transition: "pop-up"; /** * Target insight ref */ target: ObjRef; /** * Dashboard-level filters that should be excluded (opt-out). */ ignoredDashboardFilters?: string[]; /** * Source insight filters that are explicitly included (opt-in). */ includedSourceInsightFiltersObjRefs?: SourceInsightFilterObjRef[]; /** * Source measure-level filters that are explicitly included (opt-in). */ includedSourceMeasureFiltersObjRefs?: SourceMeasureFilterObjRef[]; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillToInsight}. * @alpha */ export declare function isDrillToInsight(obj: unknown): obj is IDrillToInsight; /** * Drill to custom url * @public */ export interface IDrillToCustomUrl extends IDrill { /** * Drill type */ type: "drillToCustomUrl"; /** * Drill transition */ transition: "new-window"; /** * Target url */ target: IDrillToCustomUrlTarget; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillToCustomUrl}. * @alpha */ export declare function isDrillToCustomUrl(obj: unknown): obj is IDrillToCustomUrl; /** * Drill to attribute url * @public */ export interface IDrillToAttributeUrl extends IDrill { /** * Drill type */ type: "drillToAttributeUrl"; /** * Drill transition */ transition: "new-window"; /** * Target display form and hyperlink display form */ target: IDrillToAttributeUrlTarget; } /** * Type-guard testing whether the provided object is an instance of {@link IDrillToAttributeUrl}. * @alpha */ export declare function isDrillToAttributeUrl(obj: unknown): obj is IDrillToAttributeUrl; /** * * @alpha */ export interface IAttributeHierarchyReference { type: "attributeHierarchyReference"; attributeHierarchy: ObjRef; attribute: ObjRef; } /** * * @alpha */ export interface IDateHierarchyReference { type: "dateHierarchyReference"; dateHierarchyTemplate: ObjRef; dateDatasetAttribute: ObjRef; } /** * Type-guard testing whether the provided object is an instance of {@link IAttributeHierarchyReference}. * @alpha */ export declare function isAttributeHierarchyReference(obj: unknown): obj is IAttributeHierarchyReference; /** * Type-guard testing whether the provided object is an instance of {@link IDateHierarchyReference}. * @alpha */ export declare function isDateHierarchyReference(obj: unknown): obj is IDateHierarchyReference; /** * * @alpha */ export type IDrillDownReference = IAttributeHierarchyReference | IDateHierarchyReference; /** * Returns the attribute hierarchy reference for the provided drill down reference. * @alpha */ export declare function drillDownReferenceHierarchyRef(drillDownReference: IDrillDownReference): ObjRef; /** * Returns the attribute or date dataset attribute reference for the provided drill down reference. * @alpha */ export declare function drillDownReferenceAttributeRef(drillDownReference: IDrillDownReference): ObjRef; /** * Cross-filtering * @public */ export interface ICrossFiltering extends IDrill { /** * Drill type */ type: "crossFiltering"; } /** * Type-guard testing whether the provided object is an instance of {@link ICrossFiltering}. * @alpha */ export declare function isCrossFiltering(obj: unknown): obj is ICrossFiltering; /** * Key drive analysis * @public */ export interface IKeyDriveAnalysis extends IDrill { /** * Drill type */ type: "keyDriveAnalysis"; } /** * Type-guard testing whether the provided object is an instance of {@link IKeyDriveAnalysis}. * @alpha */ export declare function isKeyDriveAnalysis(obj: unknown): obj is IKeyDriveAnalysis; //# sourceMappingURL=drill.d.ts.map