Skip to content

LxInputNumber

Visão geral

O componente LxInputNumber é utilizado para exibir um campo de entrada de números com diversas opções de personalização, incluindo rótulo, mensagens de erro, texto de ajuda, e validações. Ele também suporta slots para customização do conteúdo do rótulo, mensagem de erro e texto de ajuda.

Clique para visualizar o código
vue
<script setup>
import { ref } from 'vue';
import { LxInputNumber } from '@lde/lxcomponents';

const value = ref('');
</script>

<template>
	<LxInputNumber id="'input-number-example'" v-model="value" />
</template>

Propriedades

NomeDescriçãoTipoPadrão
idIdentificador único do campo de entrada.StringRequired
modelValueValor do campo de entrada. .
Nota: Utilizar a implementação padrão com o v-model.
String ou NumberRequired
labelRótulo do campo de entrada.String''
errorTextTexto de erro exibido quando o campo é inválido.String''
isInvalidIndica se o campo está em estado inválido.Booleanfalse
helpTextTexto de ajuda exibido abaixo do campo de entrada.String''
requiredIndica se o campo é obrigatório.Booleanfalse
bidirectionalAltera o modelValue em eager mode.
Nota: Seta um watch em modelValue, caso esteja fora do padrão solicitado (Ex: onlyNumbers), atualiza o modelValue sem que o usuario precise interagir com o input.
Booleantrue
sizeTamanho do campo de entrada ('sm', 'md', 'lg').String'md'

Eventos

NomeDescrição
update:modelValueEmitido quando o valor do campo de entrada é atualizado.
Nota: Utilizar a implementação padrão com o v-model.

Slots

NomeDescrição
label-contentConteúdo personalizado para o rótulo do campo de entrada.
error-contentConteúdo personalizado para a mensagem de erro.
help-contentConteúdo personalizado para o texto de ajuda.

Atributos

O componente LxInputNumber permite que você passe atributos personalizados para o campo de entrada utilizando fallthrough attributes do Vue. Isso é feito através do uso de useAttrs para herdar atributos não reconhecidos e aplicá-los ao elemento de entrada. Esses atributos serão passados diretamente para o input.

Exemplo de Uso

Veja um exemplo de como passar um placeholder e uma class personalizada para o campo de entrada:

Clique para visualizar o código
vue
<template>
  <LxInputNumber
    id="custom-input"
    v-model="inputValue"
    placeholder="Digite seu texto aqui"
    class="custom-input-class"
  />
</template>

Classes Padrão

O componente LxInputNumber utiliza uma série de classes CSS padrão que podem ser personalizadas. Essas classes permitem que você estilize qualquer parte do campo de entrada usando ::v-deep com a classe desejada.

NomeDescrição
lx-input-number-wrapperConteúdo personalizado para o container.
lx-input-number-labelConteúdo personalizado para o rótulo.
lx-input-numberConteúdo personalizado para o input.
lx-input-number-invalid-messageConteúdo personalizado para a mensagem de erro.
lx-input-number-help-messageConteúdo personalizado para o texto de ajuda.

Exemplo de Personalização

Você pode personalizar o estilo do campo de entrada utilizando as classes padrão com o seletor ::v-deep. Veja um exemplo de como alterar o estilo do rótulo do campo de entrada:

Clique para visualizar o código
vue
<style scoped>
::v-deep(.lx-input-number-label) {
  color: #007bff;
  font-weight: bold;
}
</style>

Playground

Texto de ajuda