DevArch.Blazor.Components 0.2.0
DevArch.Blazor.Components
Componentes Blazor padronizados (Radzen) para listagem e cadastro, independentes de qualquer projeto específico.
Instalação
// Program.cs — TFeedback é a implementação de IUiFeedback do host (toasts)
builder.Services.AddDevArchComponents<MeuUiFeedback>();
O host deve carregar o tema/CSS do Radzen normalmente; a lib não embute assets.
ListagemGrid<TItem>
Grid paginado server-side com seleção por checkbox, persistência de settings em localStorage (com versionamento), popup de configurações, botões CRUD e ações plugáveis.
<ListagemGrid TItem="MeuDto"
CarregarDados="carregador"
ChaveItem="@(x => x.Id)"
ChaveSettings="MinhaListagem"
OnAdicionar="Adicionar" OnEditar="Editar" ShowDeleteButton="false"
Acoes="acoes">
<ColumnsContent>
<RadzenDataGridColumn TItem="MeuDto" Title="Nome" Property="Nome" />
</ColumnsContent>
</ListagemGrid>
CarregarDados:Func<ParametrosListagem, Task<ResultadoPagina<TItem>>>— a página monta o delegate chamando seu backend (MediatR, HTTP…). Alternativa manual:Dados/Count/OnLoadData.Acoes: lista deAcaoListagem<TItem>— ações globais (EscopoAcao.Global) ou vinculadas à seleção (Selecao/SelecaoUnica), comVisivel,Habilitada, recarga e limpeza de seleção automáticas configuráveis.FiltrosContent: filtros externos acima do grid;HeaderContent: botões extras no header.VersaoSettings: incremente para invalidar settings persistidas de layouts antigos.- Exportação XLSX (MiniExcel): habilitada por padrão em toda listagem — exporta todas as linhas do filtro/ordenação atuais, com as colunas visíveis como cabeçalho.
PermitirExportar="false"desabilita;NomeArquivoExportacaodefine o nome do arquivo;OnExportarsubstitui a exportação padrão por uma customizada.
EditorCadastro<TModel>
Esqueleto do ciclo Carregar/Salvar/Sair de páginas ou dialogs de cadastro.
<EditorCadastro TModel="MeuDto" Id="Id" IsDialog="IsDialog" RotaListagem="/minha-listagem"
CarregarAsync="Carregar" SalvarAsync="Salvar">
<ChildContent Context="model">
<RadzenTextBox @bind-Value="model.Nome" />
</ChildContent>
</EditorCadastro>
CarregarAsync(chamado quandoId > 0) retornanullem falha — o consumidor mostra a mensagem; o editor apenas fecha/navega.SalvarAsyncretornaResultadoOperacao— falha vira aviso e mantém aberto; sucesso fecha o dialog (true) ou navega paraRotaListagem.PodeSalvarfaz gating do botão Salvar (permissões).
DialogAcao
Dialog de confirmação/ação: conteúdo + Confirmar/Cancelar, com ConfirmarAsync retornando ResultadoOperacao (falha mantém aberto).
Publicação
Version no csproj (SemVer manual). Do repositório raiz: ./publicar-componentes.sh (exige BAGET_API_KEY).
No packages depend on DevArch.Blazor.Components.
.NET 10.0
- MiniExcel (>= 1.41.2)
- Radzen.Blazor (>= 11.0.4)