drizzle-cube
Version:
Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.
64 lines (63 loc) • 2.17 kB
TypeScript
import { default as React, HTMLAttributes, ReactNode, CSSProperties, ComponentType } from 'react';
import { DashboardFilter, PortletConfig } from '../types';
import { ColorPalette } from '../utils/colorPalettes';
interface DashboardPortletCardProps {
portlet: PortletConfig;
editable: boolean;
isEditMode: boolean;
selectedFilterId: string | null;
debugData?: {
chartConfig: any;
displayConfig: any;
queryObject: any;
data: any[];
chartType: string;
};
dashboardFilters?: DashboardFilter[];
configEagerLoad?: boolean;
loadingComponent?: ReactNode;
colorPalette?: ColorPalette;
containerProps?: HTMLAttributes<HTMLDivElement>;
headerProps?: HTMLAttributes<HTMLDivElement>;
onToggleFilter: (portletId: string, filterId: string) => void;
onRefresh: (portletId: string) => void;
onDuplicate: (portletId: string) => void;
onEdit: (portlet: PortletConfig) => void;
onDelete: (portletId: string) => void;
onOpenFilterConfig: (portlet: PortletConfig) => void;
onDebugDataReady: (portletId: string, data: {
chartConfig: any;
displayConfig: any;
queryObject: any;
data: any[];
chartType: string;
}) => void;
setPortletRef: (portletId: string, element: HTMLDivElement | null) => void;
setPortletComponentRef: (portletId: string, element: {
refresh: () => void;
} | null) => void;
icons: {
RefreshIcon: ComponentType<{
className?: string;
style?: CSSProperties;
}>;
EditIcon: ComponentType<{
className?: string;
style?: CSSProperties;
}>;
DeleteIcon: ComponentType<{
className?: string;
style?: CSSProperties;
}>;
CopyIcon: ComponentType<{
className?: string;
style?: CSSProperties;
}>;
FilterIcon: ComponentType<{
className?: string;
style?: CSSProperties;
}>;
};
}
declare const DashboardPortletCard: React.NamedExoticComponent<DashboardPortletCardProps>;
export default DashboardPortletCard;