Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@kaos/dashboard-pro / dist / index.d.ts
Size: Mime:
/// <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 };