Skip to content

LxCalendar

Visão geral

O componente LxCalendar permite exibir um calendário interativo com suporte a seleção de datas, visualização por semana ou mês, e diversas opções de personalização. Quando o mesmo é montado, ele emite o @getDays que pode ser usado para disparar a chamada da API para popular os dias a partir do período selecionado. Esse mesmo evento é disparado quando a seleção de semana muda, permitindo buscar novamente para uma busca mais precisa.

Dom
Seg
Ter
Qua
Qui
Sex
Sáb
Clique para visualizar o código
vue
<script setup>
import { ref } from 'vue';
import { LxCalendar } from '@lde/lxcomponents';

const selected = ref(null);
</script>

<template>
	<LxCalendar id="lx-calendar" v-model="selected" selectable>
		<!-- Slots possíveis: -->
		<!-- <template #header>header</template> -->
		<!-- O slot day irá se repetir por todos os dias e seu conteúdo pode se basear pela date enviada de dentro do LxCalendar -->
		<!-- <template #day="{ date }">
			<div class="d-flex flex-column gap-1">Conteúdo do dia {{ date.getDate() }}</div>
		</template> -->
		<!-- <template #footer>footer</template> -->
	</LxCalendar>
</template>

Propriedades

NomeDescriçãoTipoPadrão
id⚠️ obrigatório Identificador único do calendário.Stringlx-calendar
modelValueData selecionada no calendário, se selectable for verdadeiro.
Nota: Utilizar a implementação padrão com o v-model.
Datenull
highlightDateData a ser destacada no calendário. Por padrão exibe o dia atual. Pode ser enviado null se não desejar ter nenhum dia em destaqueDatenew Date()
monthMês a ser exibido no calendário { month, year }. Se não passar nenhum valor, será automaticamente calculado a partir do highlightDate. O componente LxDatePicker com a prop month-picker está preparado para gerar o objeto necessário.Objectnull
weekSemana a ser exibida no calendário, considerando seu índice desde o início do ano { week, year }. Se não passar nenhum valor, será automaticamente calculado a partir da data selecionada (modelValue) ou highlightDate. O componente LxDatePicker com a prop week-picker está preparado para gerar o objeto necessário.Objectnull
showWeekDefine se o calendário deve exibir apenas os 7 dias da semana definida pela propriedade week.Booleanfalse
selectableDefine se as datas no calendário são selecionáveis.Booleanfalse

Emissões

NomeDescrição
update:modelValueEmite a data selecionada quando uma data é selecionada.
update:weekEmite a semana selecionada quando a semana é alterada.
update:monthEmite o mês selecionado quando o mês é alterado.
getDaysEmite o período de dias atualmente exibido no calendário permitindo requisitar na API os valores para popular o calendário

Slots

NomeDescrição
headerConteúdo personalizado para o cabeçalho do calendário.
dayConteúdo personalizado para cada dia do calendário. Recebe a data como parâmetro.
footerConteúdo personalizado para o rodapé do calendário.

Classes Padrão

O componente LxCalendar utiliza uma série de classes CSS padrão que podem ser personalizadas. Essas classes permitem que você estilize qualquer parte do calendário usando :deep com a classe desejada.

NomeDescrição
lx-calendarClasse base do calendário.

Exemplo de Personalização

Você pode personalizar o estilo do calendário utilizando as classes padrão com o seletor :deep. Veja um exemplo de como alterar o estilo do calendário:

Clique para visualizar o código
css
:deep .lx-calendar {
  background-color: #f0f0f0;
}

Playground

Dom
Seg
Ter
Qua
Qui
Sex
Sáb