React Calendar Overview
O componente Calendário Ignite UI for React é leve e fácil de configurar. É usado para mostrar datas e dias da semana. É também a melhor maneira de fornecer visualizações mensais ou anuais aos usuários finais. O controle Calendário Ignite UI for React permite restringir os intervalos de datas mínimo e máximo pelos quais as pessoas podem navegar.
O Ignite UI para Ignite UI for React Calendário fornece uma maneira fácil e intuitiva de exibir informações de data. Ele inclui diferentes recursos, como modos de seleção de data única ou múltipla, destacar e selecionar intervalo de datas, navegação pelo teclado, ativação de números de semana, opções de tamanho e espaçamento e muito mais.
React Calendar Example
O exemplo de componente React IgrCalendar
a seguir mostra um calendário básico com um modo de seleção de dia único. Veja como funciona ou inspecione o código por trás.
How To Create a Calendar in React with Ignite UI
Primeiro, você precisa instalar o pacote npm Ignite UI for React correspondente executando o seguinte comando:
npm install igniteui-react
Em seguida, você precisará importar o Ignite UI for React IgrCalendar
, seu CSS necessário e registrar seu módulo, assim:
import { IgrCalendarModule, IgrCalendar } from 'igniteui-react';
import 'igniteui-webcomponents/themes/light/bootstrap.css';
IgrCalendarModule.register();
Para obter uma introdução completa ao Ignite UI for React, leia o tópico Introdução.
A maneira mais simples de começar a usar o Ignite UI for React IgrCalendar
é a seguinte:
<IgrCalendar />
Selection Modes
Os usuários podem escolher entre três modos de seleção diferentes - seleção única, seleção múltipla ou seleção de intervalo. Por padrão, o Ignite UI for React IgrCalendar
está usando o modo de seleção única, mas você pode alterá-lo definindo a selection
propriedade conforme mostrado neste exemplo.
<IgrCalendar selection="multiple" />
Range Selection
Seguindo a mesma abordagem, podemos alternar selection
para o modo de intervalo:
<IgrCalendar selection="range" />
Active View and Date
O componente Calendário Ignite UI for React permite alternar entre três visualizações diferentes: dias, meses e anos. A activeView
propriedade do componente reflete a exibição atual. Por padrão, o Calendário exibe a data atual quando carregado inicialmente. Você pode modificar isso definindo a activeDate
propriedade. A activeDate
propriedade também reflete as alterações da data visível no momento feitas pelo usuário final.
Week numbers
Você pode usar a showWeekNumbers
propriedade para mostrar os números das semanas do componente Calendário. Você pode fazer isso usando seu atributo show-week-numbers
booleano correspondente assim:
<IgrCalendar showWeekNumbers={true} />
A demonstração a seguir ilustra um calendário com números de semana habilitados:
Multiple Months
Usando a visibleMonths
propriedade, você pode exibir mais de um mês quando o Calendário está em days
exibição. Quando vários meses são exibidos, você pode configurar se deseja empilhá-los vertical ou horizontalmente usando a orientation
propriedade. Por padrão, a orientation
propriedade é definida como horizontal
.
O Calendário exibe as datas iniciais e finais dos meses anteriores e seguintes. Você pode ocultar essas datas definindo a hideOutsideDays
propriedade como true ou usando seu atributo hideOutsideDays
booleano correspondente.
<IgrCalendar visibleMonths={2} hideOutsideDays={true} />
O exemplo a seguir demonstra a configuração de vários meses:
Tamanho
Você pode controlar o tamanho e o espaçamento dos elementos internos do calendário usando a variável CSS--ig-size
. O tamanho padrão do componente é grande.
Eventos
O componente Calendar emite o evento Change
quando as datas selecionadas são alteradas pelo usuário final. Você pode assinar o evento assim:
<IgrCalendar change={this.onCalendarChange} />
public onCalendarChange(calendar: IgrCalendar, e: IgrComponentDataValueChangedEventArgs) {
}
Navegação pelo teclado
Se você percorrer a página usando a Tab chave, lembre-se de que, com base nas recomendações de acessibilidade do W3, o IgrCalendar
introduz as seguintes paradas de tabulação:
- Botão de seleção de mês
- Botão de seleção de ano
- Botão anterior
- Botão Avançar
- Elemento de data ativo
Quando um dia/mês/ano no IgrCalendar
componente estiver focado, use:
- Tecla PageUp para mover para a página do mês/ano/anos anterior.
- Tecla PageDown para mover para a próxima página do mês/ano/anos.
- Tecla Home para focar o primeiro dia do mês atual/primeiro mês em exibição/primeiro ano em exibição.
- Tecla End para focar o último dia do mês atual/último mês em exibição/último ano em exibição.
- Teclas de seta para navegar pelos dias/meses/anos. Navegar antes do primeiro item e depois do último item alternará a visualização para a página do mês/ano/anos seguinte/anterior.
Quando um dia dentro da visualização days
estiver focado, use:
- Teclas Shift + PageUp para ir para o ano anterior.
- Teclas Shift + PageDown para avançar para o próximo ano.
- Pressione a tecla Espaço ou Enter para selecionar o dia em foco no momento.
Quando um mês dentro da visualização months
estiver em foco, use:
- Space ou Enter para alterar o
activeDate
para o mês focado no momento e alternar paradays
visualizar.
Quando um ano dentro da visualização years
estiver focado, use:
- Space ou Enter para alterar o
activeDate
ano atualmente focado e mudar paramonths
visualizar.
Quando os botões anterior ou seguinte (no subtítulo) estiverem em foco, use:
- Tecla de espaço ou Enter para alternar para a página do mês/ano/anos anterior/seguinte.
Quando o botão do mês (no subtítulo) estiver em destaque, use:
- Pressione a tecla Espaço ou Enter para alternar para a visualização
months
.
Quando o botão do ano (no subtítulo) estiver em foco, use:
- Pressione a tecla Espaço ou Enter para alternar para a visualização
years
.
Styling
O IgrCalendar
componente expõe partes CSS para quase todos os seus elementos internos. A tabela a seguir lista todas as partes CSS expostas:
Nome | Descrição |
---|---|
header |
O elemento de cabeçalho. |
header-title |
O elemento de título do cabeçalho. |
header-date |
O elemento de data do cabeçalho. |
content |
O elemento de conteúdo que contém as visualizações e os elementos de navegação. |
navigation |
O elemento do contêiner de navegação. |
months-navigation |
O elemento do botão de navegação dos meses. |
years-navigation |
O elemento do botão de navegação de anos. |
years-range |
O elemento de intervalo de anos. |
navigation-buttons |
O contêiner de botões de navegação. |
navigation-button |
Botão de navegação anterior/próximo. |
days-view-container |
O elemento contêiner de visualização de dias. |
days-view |
Elemento de visualização de dias. |
months-view |
O elemento de visualização de meses. |
years-view |
O elemento de visualização de anos. |
days-row |
Elemento da linha Days. |
label |
Elemento de rótulo do cabeçalho da semana. |
week-number |
Elemento do número da semana. |
week-number-inner |
Elemento interno do número da semana. |
date |
Elemento de data. |
date-inner |
Elemento interno de data. |
first |
O primeiro elemento de data selecionado. |
last |
O último elemento de data selecionado. |
inactive |
Elemento de data inativo. |
hidden |
Elemento de data oculto. |
weekend |
Elemento de data de fim de semana. |
range |
Intervalo do elemento selecionado. |
special |
Elemento de data especial. |
disabled |
Elemento de data desabilitado. |
single |
Elemento de data selecionado individualmente. |
preview |
Elemento de data de pré-visualização da seleção de intervalo. |
month |
Elemento mês. |
month-inner |
Elemento interno do mês. |
year |
Elemento ano. |
year-inner |
Ano elemento interno. |
selected |
Indica o estado selecionado. Aplica-se a elementos de data, mês e ano. |
current |
Indica o estado atual. Aplica-se a elementos de data, mês e ano. |
Usando essas partes CSS, podemos personalizar a IgrCalendar
aparência do componente assim:
igc-calendar::part(date-inner selected),
igc-calendar::part(month-inner selected),
igc-calendar::part(year-inner selected),
igc-calendar::part(month-inner selected):focus,
igc-calendar::part(year-inner selected):focus {
background: var(--ig-primary-500);
border-color: var(--ig-primary-800);
}
igc-calendar::part(date-inner selected):hover,
igc-calendar::part(month-inner selected):hover,
igc-calendar::part(year-inner selected):hover {
background: var(--ig-primary-500);
border-color: var(--ig-primary-800);
}
igc-calendar::part(label),
igc-calendar::part(navigation-button),
igc-calendar::part(months-navigation):hover,
igc-calendar::part(months-navigation):focus,
igc-calendar::part(years-navigation):hover,
igc-calendar::part(years-navigation):focus {
color: var(--ig-primary-300);
}
igc-calendar::part(navigation-button):hover,
igc-calendar::part(navigation-button):focus {
color: var(--ig-primary-800);
}
O exemplo a seguir demonstra a configuração CSS acima:
API References
IgrCalendar
IgrRadio
IgrRadioGroup
activeDate
activeView
DateRangeDescriptor
dateRange
Styling & Themes