Repository URL to install this package:
Version:
0.2.0-dev.8 ▾
|
/// <reference types="react" />
import { CardProps } from '@mui/material';
import { ActionsProps, apiObject, ContainerPaginationProps, IUseApiResults, objectWithStringKeys, SideMenuDrawerProps, DrawerMenuItemProps } from '@kaos/dashboard';
import React$1, { MouseEvent, ReactNode, ReactElement } from 'react';
import { To, LinkProps } from 'react-router-dom';
import { KeyedMutator, SWRConfiguration } from 'swr';
import { Box } from '@mui/system';
import { GridColumns, DataGridProps } from '@mui/x-data-grid';
interface GalleryViewItemProps extends XViewItemProps, Omit<CardProps, 'onClick' | 'title'> {
}
declare const GalleryViewItemSkeleton: ({ ...rest }: {
[x: string]: any;
}) => JSX.Element;
declare const GalleryViewItem: ({ actions, avatar, title, subtitle, metaItems, meta, children, footer, isLoading, to, onClick, linkProps, ...rest }: GalleryViewItemProps) => JSX.Element;
interface XViewItemProps {
actions?: ActionsProps;
avatar?: React$1.ReactNode;
title?: React$1.ReactNode;
subtitle?: React$1.ReactNode;
metaItems?: React$1.ReactNode[];
meta?: React$1.ReactNode;
children?: React$1.ReactNode;
footer?: React$1.ReactNode;
isLoading?: boolean;
to?: To;
onClick?: (e?: MouseEvent<HTMLButtonElement>) => void;
linkProps?: Partial<LinkProps>;
}
type itemRenderer = (item: apiObject, props: React$1.ComponentProps<any>) => React$1.ReactNode;
interface XViewProps {
data: apiObject[];
isLoading?: boolean;
error?: any;
refresh?: KeyedMutator<any>;
isRefreshing?: boolean;
renderItem: itemRenderer;
renderSkeleton?: itemRenderer | null;
pageSize?: number;
gap?: number;
getItemKey?: (item: apiObject) => string;
}
interface GalleryViewProps extends XViewProps {
cols?: number;
}
declare const GalleryView: ({ data, isLoading, refresh, renderItem, renderSkeleton, pageSize, gap, cols, getItemKey, ...rest }: GalleryViewProps) => JSX.Element;
interface ListViewProps extends XViewProps {
}
declare const ListView: ({ gap, ...rest }: ListViewProps) => JSX.Element;
interface IDownstreamProps extends ContainerPaginationProps {
apiResults: IUseApiResults;
}
interface PaginatedDataContainerProps extends React$1.ComponentProps<typeof Box> {
useListApi: (page: number, pageSize?: number, listApiParams?: objectWithStringKeys, options?: SWRConfiguration) => IUseApiResults;
listApiParams?: objectWithStringKeys;
swrConfig?: SWRConfiguration;
setApiResults?: (apiResults: IUseApiResults) => void;
defaultPageSize: number;
verboseName: string;
verboseNamePlural?: string;
getCount?: (data: apiObject) => number | undefined;
getResults?: (data: apiObject) => apiObject[] | undefined;
renderError?: ((error?: any) => React$1.ReactNode) | null;
renderIsLoading?: (() => React$1.ReactNode) | null;
renderView: (props: IDownstreamProps) => React$1.ReactNode;
renderPagination?: ((props: IDownstreamProps) => React$1.ReactNode) | null;
}
declare const PaginatedDataContainer: ({ useListApi, listApiParams, swrConfig, setApiResults, defaultPageSize, verboseName, verboseNamePlural, getCount, getResults, renderError, renderIsLoading, renderView, renderPagination, ...rest }: PaginatedDataContainerProps) => JSX.Element;
interface XViewContainerProps extends Omit<PaginatedDataContainerProps, 'renderView' | 'defaultPageSize'> {
defaultPageSize?: number;
getItemKey?: XViewProps['getItemKey'];
}
interface GalleryViewContainerProps$1 extends XViewContainerProps {
renderItem: GalleryViewProps['renderItem'];
renderSkeleton?: GalleryViewProps['renderSkeleton'];
galleyViewProps?: Partial<GalleryViewProps>;
}
declare const GalleryViewContainer: ({ defaultPageSize, renderItem, renderSkeleton, getItemKey, galleyViewProps, ...rest }: GalleryViewContainerProps$1) => JSX.Element;
interface ListViewContainerProps extends Omit<GalleryViewContainerProps$1, 'galleryViewProps'> {
listViewProps?: GalleryViewContainerProps$1['galleyViewProps'];
}
declare const ListViewContainer: ({ defaultPageSize, renderItem, renderSkeleton, getItemKey, listViewProps, ...rest }: ListViewContainerProps) => JSX.Element;
interface GalleryViewContainerProps extends XViewContainerProps {
columns: GridColumns;
dataGridProps?: Partial<Omit<DataGridProps, 'columns'>>;
}
declare const TableViewContainer: ({ columns, getItemKey, defaultPageSize, dataGridProps, ...rest }: GalleryViewContainerProps) => JSX.Element;
type viewId = string | number;
interface SavedViewsPanelProps {
savedViewType: string;
getCurrentViewJson: () => apiObject;
setViewJsonToCurrent: (json: apiObject) => void;
resetCurrentView?: () => void;
useSavedViews: (viewType: string) => IUseApiResults;
requestSaveView?: (id: viewId | null, name: string | null, type: string | null, postData: apiObject) => Promise<any>;
getViewId?: (view: apiObject) => viewId;
getViewName?: (view: apiObject) => string;
}
declare const SavedViewsPanel: ({ savedViewType, getCurrentViewJson, setViewJsonToCurrent, resetCurrentView, useSavedViews, requestSaveView, getViewId, getViewName, }: SavedViewsPanelProps) => JSX.Element;
type DetailPageContainerProps = {
lookup: string;
useDetailApi: (lookupValue: any, params?: Record<string, any>) => IUseApiResults;
detailApiParams?: Record<string, any>;
verboseName: string;
defaultTitle?: string;
getTitle: (obj: Record<string, any>) => string | void;
errorMessage?: string;
frameComponent: React.ElementType;
headComponent: React.ElementType;
errorBoxComponent?: React.ElementType;
loadingIndicatorComponent?: React.ElementType;
};
declare const DetailPageContainer: ({ lookup, useDetailApi, detailApiParams, verboseName, defaultTitle, getTitle, errorMessage, frameComponent: FrameComponent, headComponent: Head, errorBoxComponent: ErrorBox, loadingIndicatorComponent: LoadingIndicator, }: DetailPageContainerProps) => JSX.Element;
type IFrontendSettingsItem = {
value: any;
set: (value: any) => void;
};
type IFrontendSettings = {
themeMode: IFrontendSettingsItem;
isSideMenuOpen: IFrontendSettingsItem;
};
interface DashboardLayoutProps {
renderSideMenu?: (isOpen: boolean, handleToggle: () => void, isDesktop: boolean) => ReactNode;
sideMenuHeader?: SideMenuDrawerProps['header'];
sideMenuHeaderText?: SideMenuDrawerProps['headerText'];
menuItems?: {
header?: string;
items: DrawerMenuItemProps[];
}[];
sideMenuSettings?: ReactElement;
frontendSettings?: IFrontendSettings;
renderAppBar?: (handleToggle: () => void) => ReactNode;
appBarContent?: ReactNode;
children: ReactNode;
}
declare const DashboardLayout: ({ renderSideMenu, sideMenuHeader, sideMenuHeaderText, menuItems, sideMenuSettings, frontendSettings, renderAppBar, appBarContent, children, }: DashboardLayoutProps) => JSX.Element;
export { DashboardLayout, DashboardLayoutProps, DetailPageContainer, DetailPageContainerProps, GalleryView, GalleryViewContainer, GalleryViewContainerProps$1 as GalleryViewContainerProps, GalleryViewItem, GalleryViewItemProps, GalleryViewItemSkeleton, GalleryViewProps, IDownstreamProps, IFrontendSettings, IFrontendSettingsItem, ListView, ListViewContainer, ListViewContainerProps, ListViewProps, PaginatedDataContainer, PaginatedDataContainerProps, SavedViewsPanel, SavedViewsPanelProps, TableViewContainer, GalleryViewContainerProps as TableViewContainerProps, XViewItemProps, XViewProps, itemRenderer, viewId };