import { type ComponentType, type ReactElement } from "react"; import { type DashboardAttributeFilterItem, type IDashboardDateFilter, type IDashboardMeasureValueFilter, type IFilter, type IInsight, type IKpi, type ObjRef } from "@gooddata/sdk-model"; import { type ICustomWidget } from "../../model/types/layoutTypes.js"; import { type ILayoutItemPath, type ILayoutSectionPath } from "../../types.js"; /** * @internal */ export type DraggableContentItemType = "attributeFilter" | "dateFilter" | "parameter" | "measureValueFilter" | "attributeFilter-placeholder" | "insightListItem" | "insight" | "insight-placeholder" | "kpi" | "kpi-placeholder" | "richText" | "richTextListItem" | "visualizationSwitcher" | "visualizationSwitcherListItem" | "dashboardLayout" | "dashboardLayoutListItem" | "custom"; /** * @internal */ export type DraggableInternalItemType = "internal-width-resizer" | "internal-height-resizer"; /** * @internal */ export declare function isDraggableInternalItemType(type: string): type is DraggableInternalItemType; /** * @internal */ export type DraggableItemType = DraggableContentItemType | DraggableInternalItemType; /** * @internal */ export type AttributeFilterDraggableItem = { type: "attributeFilter"; filter: DashboardAttributeFilterItem; filterIndex: number; }; /** * @internal */ export declare function isAttributeFilterDraggableItem(item: DraggableContentItem): item is AttributeFilterDraggableItem; /** * @internal */ export type DateFilterDraggableItem = { type: "dateFilter"; filter: IDashboardDateFilter; filterIndex: number; }; /** * @internal */ export declare function isDateFilterDraggableItem(item: DraggableContentItem): item is DateFilterDraggableItem; /** * @internal */ export type ParameterDraggableItem = { type: "parameter"; ref: ObjRef; }; /** * @internal */ export declare function isParameterDraggableItem(item: DraggableContentItem): item is ParameterDraggableItem; /** * @internal */ export type MeasureValueFilterDraggableItem = { type: "measureValueFilter"; filter: IDashboardMeasureValueFilter; filterIndex: number; }; /** * @internal */ export declare function isMeasureValueFilterDraggableItem(item: DraggableContentItem): item is MeasureValueFilterDraggableItem; /** * @internal */ export type BaseDraggableLayoutItemSize = { gridWidth: number; gridHeight: number; }; /** * @internal */ export type BaseDraggableLayoutItem = { size: BaseDraggableLayoutItemSize; }; /** * @internal */ export declare function isBaseDraggableLayoutItem(item: any): item is BaseDraggableMovingItem; /** * @internal */ export type BaseDraggableMovingItem = BaseDraggableLayoutItem & { title: string; isOnlyItemInSection: boolean; sectionIndex: number; itemIndex: number; layoutPath?: ILayoutItemPath; }; /** * @internal */ export declare function isBaseDraggableMovingItem(item: any): item is BaseDraggableMovingItem; /** * @internal */ export type InsightDraggableItem = BaseDraggableMovingItem & { type: "insight"; insight: IInsight; }; /** * @internal */ export declare function isInsightDraggableItem(item: any): item is InsightDraggableItem; /** * @internal */ export type KpiDraggableItem = BaseDraggableMovingItem & { type: "kpi"; kpi: IKpi; }; /** * @internal */ export declare function isKpiDraggableItem(item: any): item is KpiDraggableItem; /** * @internal */ export type RichTextDraggableItem = BaseDraggableMovingItem & { type: "richText"; }; /** * @internal */ export declare function isRichTextDraggableItem(item: any): item is InsightDraggableItem; /** * @internal */ export type RichTextDraggableListItem = BaseDraggableLayoutItem & { type: "richTextListItem"; }; /** * @internal */ export declare function isRichTextDraggableListItem(item: any): item is RichTextDraggableListItem; /** * @internal */ export type VisualizationSwitcherDraggableItem = BaseDraggableMovingItem & { type: "visualizationSwitcher"; }; /** * @internal */ export declare function isVisualizationSwitcherDraggableItem(item: any): item is VisualizationSwitcherDraggableItem; /** * @internal */ export type VisualizationSwitcherDraggableListItem = BaseDraggableLayoutItem & { type: "visualizationSwitcherListItem"; }; /** * @internal */ export declare function isVisualizationSwitcherDraggableListItem(item: any): item is VisualizationSwitcherDraggableListItem; /** * @internal */ export type DashboardLayoutDraggableItem = BaseDraggableMovingItem & { type: "dashboardLayout"; }; /** * @internal */ export declare function isDashboardLayoutDraggableItem(item: any): item is DashboardLayoutDraggableItem; /** * @internal */ export type DashboardLayoutDraggableListItem = BaseDraggableLayoutItem & { type: "dashboardLayoutListItem"; }; /** * @internal */ export declare function isDashboardLayoutDraggableListItem(item: any): item is DashboardLayoutDraggableListItem; /** * @internal */ export type CustomWidgetDraggableItem = BaseDraggableMovingItem & { type: "customWidget"; widget: ICustomWidget; }; /** * @internal */ export type AttributeFilterPlaceholderDraggableItem = { type: "attributeFilter-placeholder"; }; /** * @internal */ export declare function isAttributeFilterPlaceholderDraggableItem(item: any): item is AttributeFilterPlaceholderDraggableItem; /** * @internal */ export type KpiPlaceholderDraggableItem = BaseDraggableLayoutItem & { type: "kpi-placeholder"; }; /** * @internal */ export declare function isKpiPlaceholderDraggableItem(item: any): item is KpiPlaceholderDraggableItem; /** * @internal */ export type InsightPlaceholderDraggableItem = BaseDraggableLayoutItem & { type: "insight-placeholder"; }; /** * @internal */ export declare function isInsightPlaceholderDraggableItem(item: any): item is InsightPlaceholderDraggableItem; /** * @internal */ export type InsightDraggableListItem = BaseDraggableLayoutItem & { type: "insightListItem"; insight: IInsight; }; /** * @internal */ export declare function isInsightDraggableListItem(item: any): item is InsightDraggableListItem; /** * @internal */ export type CustomDraggableItem = { type: "custom"; [key: string]: any; }; /** * @internal */ export type DraggableContentItem = AttributeFilterDraggableItem | AttributeFilterPlaceholderDraggableItem | DateFilterDraggableItem | ParameterDraggableItem | MeasureValueFilterDraggableItem | InsightDraggableItem | InsightDraggableListItem | InsightPlaceholderDraggableItem | KpiDraggableItem | KpiPlaceholderDraggableItem | RichTextDraggableItem | RichTextDraggableListItem | VisualizationSwitcherDraggableItem | VisualizationSwitcherDraggableListItem | DashboardLayoutDraggableItem | DashboardLayoutDraggableListItem | CustomWidgetDraggableItem | CustomDraggableItem; /** * @internal */ export type DraggableLayoutItem = InsightDraggableItem | KpiDraggableItem | RichTextDraggableItem | VisualizationSwitcherDraggableItem | DashboardLayoutDraggableItem | CustomWidgetDraggableItem; /** * @internal */ export type DraggableInternalItem = IHeightResizerDragItem | IWidthResizerDragItem; /** * @internal */ export type DraggableItem = DraggableContentItem | DraggableInternalItem; /** * @internal */ export type DraggableItemTypeMapping = DraggableItemComponentTypeMapping & DraggableItemInternalTypeMapping; /** * @internal */ export type DraggableItemComponentTypeMapping = { attributeFilter: AttributeFilterDraggableItem; dateFilter: DateFilterDraggableItem; measureValueFilter: MeasureValueFilterDraggableItem; parameter: ParameterDraggableItem; "attributeFilter-placeholder": AttributeFilterPlaceholderDraggableItem; insight: InsightDraggableItem; insightListItem: InsightDraggableListItem; "insight-placeholder": InsightPlaceholderDraggableItem; kpi: KpiDraggableItem; "kpi-placeholder": KpiPlaceholderDraggableItem; richText: RichTextDraggableItem; richTextListItem: RichTextDraggableListItem; visualizationSwitcher: VisualizationSwitcherDraggableItem; visualizationSwitcherListItem: VisualizationSwitcherDraggableListItem; dashboardLayout: DashboardLayoutDraggableItem; dashboardLayoutListItem: DashboardLayoutDraggableListItem; custom: CustomDraggableItem; }; /** * @internal */ export interface IHeightResizerDragItem { type: "internal-height-resizer"; sectionIndex: number; sectionPath?: ILayoutSectionPath; itemIndexes: number[]; widgetHeights: number[]; initialLayoutDimensions: DOMRect; minLimit: number; maxLimit: number; } /** * @internal */ export interface IWidthResizerDragItem { type: "internal-width-resizer"; sectionIndex: number; itemIndex: number; layoutPath?: ILayoutItemPath; gridColumnWidth: number; gridColumnHeightInPx: number; currentWidth: number; initialLayoutDimensions: DOMRect; minLimit: number; maxLimit: number; rowIndex?: number; } /** * @internal */ export type DraggableItemInternalTypeMapping = { "internal-width-resizer": IWidthResizerDragItem; "internal-height-resizer": IHeightResizerDragItem; }; /** * @internal */ export type CustomDashboardInsightListItemComponentProps = { isLocked?: boolean; title?: string; description?: string; updated?: string; type?: string; className?: string; showDescriptionPanel?: boolean; onDescriptionPanelOpen?: () => void; metadataTimeZone?: string; filters?: IFilter[]; useRichText?: boolean; useReferences?: boolean; LoadingComponent?: ComponentType; width?: number; }; /** * @internal */ export type CustomDashboardInsightListItemComponent = ComponentType; /** * @internal */ export type IWrapCreatePanelItemWithDragProps = { children: ReactElement; dragItem: DraggableItem; hideDefaultPreview?: boolean; disabled?: boolean; onDragStart?: (item: DraggableItem) => void; }; /** * @internal */ export type IWrapCreatePanelItemWithDragInnerProps = { children: ReactElement; dragItem: DraggableItem; hideDefaultPreview?: boolean; disabled?: boolean; canDrag: boolean; onDragStart?: (item: DraggableItem) => void; onDragEnd?: (didDrop: boolean) => void; }; /** * @internal */ export type IWrapCreatePanelItemWithDragComponent = ComponentType; /** * @internal */ export interface IWrapInsightListItemWithDragProps { children: ReactElement; insight: IInsight; onDragStart?: (item: DraggableItem) => void; } /** * @internal */ export type IWrapInsightListItemWithDragComponent = ComponentType; //# sourceMappingURL=types.d.ts.map