.implementado itens desativados nos selects

This commit is contained in:
Luiz Silva 2026-06-16 18:14:15 -03:00
parent 900a5f3c5c
commit 84383c3bbf
18 changed files with 1645 additions and 1567 deletions

View file

@ -297,13 +297,56 @@ opcoes: {
```typescript
opcoes: {
rotulo: string;
// Função que retorna itens ou promise de itens.
// Função que retorna itens ou promise de itens.
// IMPORTANTE: Itens devem ser objetos { chave: string, rotulo: string }
itens: () => Array<{ chave: string; rotulo: string }> | Promise<Array<{ chave: string; rotulo: string }>>;
// Lista de chaves que devem aparecer desativadas no menu.
// Os itens ficam visíveis mas não podem ser selecionados.
desativado?: string[];
limpavel?: boolean;
erro?: boolean;
mensagensErro?: string | string[];
dica?: string;
dicaPersistente?: boolean;
densidade?: "default" | "comfortable" | "compact";
variante?: "outlined" | "filled" | "underlined" | "solo" | "plain";
}
```
**EliEntradaSelecaoMultipla**
```typescript
// value: string[] | null | undefined
opcoes: {
rotulo: string;
// Mesma API de itens que EliEntradaSelecao
itens: () => Array<{ chave: string; rotulo: string }> | Promise<Array<{ chave: string; rotulo: string }>>;
// Lista de chaves que devem aparecer desativadas no menu.
desativado?: string[];
limpavel?: boolean;
erro?: boolean;
mensagensErro?: string | string[];
dica?: string;
dicaPersistente?: boolean;
densidade?: "default" | "comfortable" | "compact";
variante?: "outlined" | "filled" | "underlined" | "solo" | "plain";
}
```
> **Itens desativados**: a prop `desativado` recebe um array de `chave`s. Os itens correspondentes aparecem no menu mas não podem ser clicados (estilo esmaecido do Vuetify).
>
> ```typescript
> // Exemplo: desativar opções específicas dinamicamente
> opcoes: {
> rotulo: "Status",
> itens: async () => [
> { chave: "ativo", rotulo: "Ativo" },
> { chave: "inativo", rotulo: "Inativo" },
> { chave: "suspenso", rotulo: "Suspenso" },
> ],
> desativado: ["suspenso"], // "Suspenso" aparece mas não é selecionável
> }
> ```
**EliEntradaCoordenadas**
```typescript
// value: { formato: "decimal", datum: "EPSG:4326", latitude: number, longitude: number }