@govbr-ds/webcomponents
Version:
Biblioteca de Web Components baseado no GovBR-DS
116 lines (115 loc) • 4.02 kB
TypeScript
/**
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).
*
* @example
* ```html
* <br-avatar src="/img/avatar.png" alt="Usuário"></br-avatar>
* ```
*/
export declare class Avatar {
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrAvatarElement;
/**
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
*/
density: 'small' | 'medium' | 'large';
/**
* Identificador único.
* Caso não seja fornecido, um ID gerado automaticamente será usado.
*/
readonly customId: string;
/**
* URL da imagem a ser exibida no avatar do tipo 'fotográfico'.
* Deve ser uma URL válida que aponta para a imagem desejada.
*/
readonly src: string;
/**
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.
* Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: "Foto de perfil de João Silva".
*/
readonly alt = "Foto de perfil do usu\u00E1rio";
/**
* Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).
* Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.
*/
readonly isIconic: boolean;
/**
* Conteúdo textual do avatar.
* Apenas o primeiro caractere será exibido em maiúscula.
*/
readonly text: string;
/**
* Define se o avatar está desabilitado
*/
readonly disabled = false;
/**
* Cor de fundo personalizada para o avatar do tipo texto
*/
readonly textBackgroundColor: string;
private hasError;
/**
* Observa mudanças na propriedade density para validação e sincronização com atributo DOM.
* Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.
*/
handleDensityChange(newValue: 'small' | 'medium' | 'large'): void;
componentWillLoad(): void;
componentDidUpdate(): void;
/**
* Gera um mapa de classes CSS com base nas propriedades do componente.
* @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.
*/
private getCssClassMap;
/**
* Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).
* @param value - String a ser verificada
* @returns {boolean} true se a string possui conteúdo
*/
private hasContent;
private readonly handleImageError;
/**
* Obtém as classes CSS para o elemento content.
* @returns {string} Classes CSS do content
*/
private getContentClasses;
/**
* Define a variável CSS para cor de fundo personalizada para o avatar texto.
*/
private setCustomBackgroundColor;
/**
* Gera aria-label apropriado baseado no tipo de avatar
* Prioriza aria-label do host, senão gera automaticamente
*/
private getAriaLabel;
/**
* Obtém o valor do token do DS para altura do ícone
*/
private getIconSize;
/**
* Obtém o valor do token do DS para largura do ícone (altura + 8px)
*/
private getIconWidth;
/**
* Renderiza o avatar do tipo 'letra/texto'.
* Exibe a primeira letra do texto em maiúscula.
*/
private renderTextAvatar;
/**
* Renderiza o avatar do tipo 'fotográfico/imagem'.
* Exibe uma imagem carregada via URL.
*/
private renderImageAvatar;
/**
* Renderiza o avatar do tipo 'icônico'.
* Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.
*/
private renderIconAvatar;
/**
* Método principal de renderização do avatar.
* Prioridade: isIconic > texto > imagem > ícone (padrão)
*/
private renderAvatar;
render(): any;
}