ivt
Version:
Ivt Components Library
318 lines (302 loc) • 14.6 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import React__default from 'react';
import { S as ShowSkeletonProps } from '../chunks/ShowSkeleton-enwVHCqE.js';
declare const ChildContainer: ({ children, className, }: {
children: React__default.ReactNode;
className?: string;
}) => react_jsx_runtime.JSX.Element;
declare const Container: ({ children, className, }: {
children: React__default.ReactNode;
className?: string;
}) => react_jsx_runtime.JSX.Element;
type MenuItemConfig = {
value: string;
label: string;
path?: string;
onClick?: () => void;
subItems?: {
label: string;
onClick: () => void;
}[];
/** Função customizada para determinar se o item está ativo */
isActive?: (pathname: string) => boolean;
};
interface StepNavigatorProps {
/** Índice atual do passo */
currentIndex: number;
/** Total de passos */
totalSteps: number;
/** Ação ao clicar em "Anterior" */
onPrev: () => void;
/** Ação ao clicar em "Próximo" */
onNext: () => void;
/** Desabilita os botões (ex: loading) */
disabled?: boolean;
/** Personalização opcional dos rótulos */
prevLabel?: string;
nextLabel?: string;
/** Controla se deve ocultar os botões ao chegar nas extremidades */
hideEdgeButtons?: boolean;
className?: string;
}
interface CrudCreatePageProps {
/** Propriedades de cabeçalho e metadados da página */
metadata: {
/** Título da página (tag `<title>`) */
title: string;
/** Título principal exibido no cabeçalho (Header) da página */
headerTitle: string;
/** Descrição exibida abaixo do título no cabeçalho */
headerDescription: string;
};
/** Ações e controles da página (ex: barra de ferramentas) */
actions: {
/** Indica se há uma ação pendente (ex: salvando dados), desabilitando botões */
isPendingAction?: boolean;
/** Referência para o formulário principal, usado para submissão via botão de ação do layout */
formRef: React__default.RefObject<HTMLFormElement | null>;
/** Rótulo personalizado para a ação principal (opcional) */
actionLabel?: string;
/** Elementos React adicionais para renderizar na área de ações (botões extras) */
actions?: React__default.ReactNode;
};
/** Conteúdo principal da página (títulos, formulário, abas, etc.) */
content: {
/** Título exibido no corpo da página (acima do formulário/conteúdo) */
pageTitle: string;
/** Descrição exibida no corpo da página */
pageDescription: string;
/** Elementos de abas (tabs) a serem exibidos */
tabs?: React__default.ReactNode;
/** Informações extras a serem exibidas no corpo da página */
extraInfo?: React__default.ReactNode;
/** O componente de formulário em si a ser renderizado */
form: React__default.ReactNode;
/** Elementos filhos adicionais a serem renderizados */
children?: React__default.ReactNode;
/** Classes CSS adicionais para o container principal da página */
pageClassName?: string;
};
/** Configurações do menu de navegação e breadcrumbs (opcional) */
menu?: {
/** Caminho (URL) atual para destacar o item ativo no menu */
currentPath: string;
/** Lista de itens de configuração do menu */
menuItems: MenuItemConfig[];
/** Função de callback acionada ao navegar pelo menu */
onNavigate: (path: string) => void;
};
/** Indica se a página está carregando os dados iniciais (exibe skeleton) */
isLoading?: boolean;
}
declare function CrudCreatePage({ metadata, actions, content, menu, isLoading, }: CrudCreatePageProps): react_jsx_runtime.JSX.Element;
interface CrudEditPageProps {
/** Propriedades de cabeçalho e metadados da página */
metadata: {
/** Título da página (tag `<title>`) */
title: string;
/** Título principal exibido no cabeçalho (Header) da página */
headerTitle: string;
/** Descrição exibida abaixo do título no cabeçalho */
headerDescription: string;
};
/** Ações e controles da página (ex: salvar, excluir) */
actions: {
/** Indica se há uma ação pendente (ex: salvando ou excluindo dados), desabilitando botões */
isPendingAction?: boolean;
/** Referência para o formulário principal, usado para submissão via botão de ação do layout */
formRef: React__default.RefObject<HTMLFormElement | null>;
/** ID numérico da entidade atual sendo editada (se null, assume-se que não foi encontrada) */
entityId?: number | null;
/** Função de callback acionada ao confirmar a exclusão do registro */
onDelete?: (id: number) => void;
/** Título da modal de confirmação de exclusão */
titleModal?: string;
/** Descrição da modal de confirmação de exclusão */
descriptionModal?: string;
/** Elementos React adicionais para renderizar na área de ações (botões extras) */
customActions?: React__default.ReactNode;
};
/** Conteúdo principal da página (títulos, formulário, abas, etc.) */
content: {
/** Título exibido no corpo da página (acima do formulário/conteúdo) */
pageTitle: string;
/** Descrição exibida no corpo da página */
pageDescription: string;
/** Elementos de abas (tabs) a serem exibidos */
tabs?: React__default.ReactNode;
/** Informações extras a serem exibidas no corpo da página */
extraInfo?: React__default.ReactNode;
/** O componente de formulário em si a ser renderizado */
form: React__default.ReactNode;
/** Elementos filhos adicionais a serem renderizados */
children?: React__default.ReactNode;
/** Classes CSS adicionais para o wrapper principal de listagem do page content */
pageClassName?: string;
/** Título exibido quando o registro não é encontrado (`entityId` ausente) */
notFoundTitle?: string;
/** Descrição exibida quando o registro não é encontrado (`entityId` ausente) */
notFoundDescription?: string;
};
/** Configurações do menu de navegação e breadcrumbs (opcional) */
menu?: {
/** Caminho (URL) atual para destacar o item ativo no menu */
currentPath: string;
/** Lista de itens de configuração do menu */
menuItems: MenuItemConfig[];
/** Função de callback acionada ao navegar pelo menu */
onNavigate: (path: string) => void;
};
/** Indica se os dados do registro ainda estão sendo carregados (exibe skeleton caso sim) */
isLoading?: boolean;
}
declare function CrudEditPage({ metadata, actions, content, menu, isLoading }: CrudEditPageProps): react_jsx_runtime.JSX.Element;
interface CrudListPageProps {
/** Propriedades de cabeçalho e metadados da página */
metadata: {
/** Título da página web (inserido na tag `<title>`) */
pageTitle: string;
/** Título principal exibido no cabeçalho (Header) da aplicação */
headerTitle: string;
/** Descrição exibida abaixo do título no cabeçalho */
headerDescription?: string;
};
/** Ações e componentes no topo da tabela / barra de ferramentas */
actions: {
/** Define se a tabela está em carregamento (desabilita navegação e ações) */
isLoadingTable?: boolean;
/** Botões ou elementos de ação (ex: botão de Criar, Exportar) a renderizar ao lado direito */
actions?: React__default.ReactNode;
/** Componente da área de importação, posicionado logo abaixo da barra de ações */
importArea?: React__default.ReactNode;
};
/** Conteúdo principal da listagem (filtros, tabelas, etc.) */
content: {
/** O conteúdo que compõe a página (normalmente o componente DataTable e seus contêineres e filtros) */
children: React__default.ReactNode;
};
/** Configurações do menu de navegação superior/lateral (opcional) */
menu?: {
/** Caminho atual da rota, usado para identificar a aba/menu ativo */
currentPath: string;
/** Estrutura que mapeia as opções / abas de navegação do menu */
menuItems: MenuItemConfig[];
/** Função chamada quando o usuário clica em algum dos itens de menu */
onNavigate: (path: string) => void;
};
}
declare function CrudListPage({ metadata, actions, content, menu }: CrudListPageProps): react_jsx_runtime.JSX.Element;
interface CrudShowPageProps<TId extends string | number = string | number> {
/** Propriedades de cabeçalho e metadados da página */
metadata: {
/** Título da página (tag `<title>`) */
title: string;
/** Título principal exibido no cabeçalho (Header) da página */
headerTitle: string;
/** Descrição exibida abaixo do título no cabeçalho */
headerDescription: string;
};
/** Ações e controles de registro na visualização (ex: editar, excluir) */
actions: {
/** Indica se há uma ação pendente ativada, desabilitando a maioria dos cliques em botões de ação */
isPendingAction?: boolean;
/** ID do registro a ser visualizado. Se omitido/nulo, a página exibirá estado de Not Found */
entityId?: TId | null | undefined;
/** Função de callback acionada na exclusão do registro */
onDelete?: (id: TId) => void;
/** Função de callback acionada ao solicitar edição (navega/abre modal de edição) */
onEdit?: (id: TId) => void;
/** Título da modal de expurgação do registro (confirmação da deleção) */
titleModal?: string;
/** Descrição informativa que aparece na modal de expurgação do registro */
descriptionModal?: string;
/** Bôtões/Links extras que você deseja incorporar diretamente na barra de menus, substituindo os actions padrão se os providos não atenderem (código arbitrário de barra de ferramentas) */
customActions?: React__default.ReactNode;
};
/** Conteúdo e estados principais para visualização */
content: {
/** Componente customizado Skeleton exibido durante carregamento (substitui inteiramente o Skeleton padrão da lib) */
skeleton?: React__default.ReactNode;
/** Propriedades que parametrizam o componente integrado ShowSkeleton do ivt-lib caso você não informe seu próprio skeleton na prop acima. */
skeletonProps?: ShowSkeletonProps;
/** Título do componente `ShowNotFound` exibido se não encontrado nenhum entityId ou o registro estiver faltando */
notFoundTitle: string;
/** Descrição para detalhar o tipo de NotFound (`Registro xyz requisitado na url... não encontrado`) */
notFoundDescription: string;
/** Cabeçalho interno informando a aba ativa (Visualização dos Detalhes, etc) a sobre o form-group */
pageTitle: string;
/** Breve descrição interna contextualizando os campos detalhados exibidos pelo ShowPage */
pageDescription: string;
/** Área opcional alinhada no corpo da página para componentes soltos/parágrafos extras antes dos child nodes principais (Detalhes do registro) */
extraInfo?: React__default.ReactNode;
/** Conteúdo minucioso renderizado (os detalhes dos campos da View/Registro) */
children?: React__default.ReactNode;
};
/** Configurações de seções de menus/rotas para a Entidade corrente (opcional) */
menu?: {
/** Caminho base ativado sublinhado entre navegações do MenuBar */
currentPath: string;
/** As demais aberturas tabuladas por url configurados no header/menubar local. Array limitando acesso e seções do menu */
menuItems: MenuItemConfig[];
/** Dispara ação de clique num tablink de seções paralelas contiguas para tal entidade */
onNavigate: (path: string) => void;
};
/** Define se a tela carrega do backend seus dados; O Skeleton fará a cobertura visual caso true */
isLoading?: boolean;
}
declare function CrudShowPage<TId extends string | number = string | number>({ metadata, actions, content, menu, isLoading, }: CrudShowPageProps<TId>): react_jsx_runtime.JSX.Element;
interface LayoutActionsProps {
children: React__default.ReactNode;
className?: string;
}
declare function LayoutActions({ children, className }: LayoutActionsProps): react_jsx_runtime.JSX.Element;
interface ListItemProps {
title: string;
value: any;
linkHref?: string;
isBoolean?: boolean;
className?: string;
hasTooltip?: boolean;
tooltipContent?: React__default.ReactNode;
}
declare const ListItem: React__default.FC<ListItemProps>;
interface PageComponentProps {
title: string;
description: string;
children?: React__default.ReactNode;
extraInfo?: React__default.ReactNode;
extraDescription?: React__default.ReactNode;
tabs?: React__default.ReactNode;
form?: React__default.ReactNode;
className?: string;
classNames?: {
container?: string;
childContainer?: string;
sectionInfo?: string;
contentWrapper?: string;
tabsWrapper?: string;
};
}
declare const PageComponent: React__default.FC<PageComponentProps>;
interface SectionInfoProps {
title?: string;
description?: string;
className?: string;
extraDescription?: React__default.ReactNode;
}
declare const SectionInfo: React__default.FC<SectionInfoProps>;
interface ShowDetailsItem extends ListItemProps {
isVisible?: boolean;
}
interface ShowDetailsProps extends React__default.HTMLAttributes<HTMLElement> {
items?: ShowDetailsItem[];
stepNavigator?: StepNavigatorProps;
}
declare const ShowDetails: React__default.FC<ShowDetailsProps>;
interface ShowNotFoundProps {
title: string;
description: string;
}
declare const ShowNotFound: React__default.FC<ShowNotFoundProps>;
export { ChildContainer, Container, CrudCreatePage, CrudEditPage, CrudListPage, CrudShowPage, LayoutActions, ListItem, PageComponent, SectionInfo, ShowDetails, ShowNotFound };
export type { CrudCreatePageProps, CrudEditPageProps, CrudListPageProps, CrudShowPageProps, LayoutActionsProps, ListItemProps, PageComponentProps, ShowDetailsItem, ShowDetailsProps };