Importação

import-scheduler.tsx
import { NuiScheduler, type NuiSchedulerHandle } from '@needless-ui/react/scheduler';

NuiScheduler

Eventos em um mês, uma semana, um dia, uma agenda ou uma timeline.

NuiScheduler: Propriedades
NomeTipoPadrãoDescrição
eventsPropNuiSchedulerEvent<T>[][]Os eventos a exibir.
resourcesPropNuiSchedulerResource[][]Salas, pessoas ou máquinas: linhas da timeline e colunas do dia e da semana.
view
defaultView
onViewChangeEstado
'month' | 'week' | 'day' | 'agenda' | 'timeline''week'A visualização exibida.
viewsPropNuiSchedulerView[]allAs visualizações entre as quais é possível alternar. Por padrão, todas; a timeline, só com recursos.
timelineSpanProp'day' | 'week' | 'month''day'O que a timeline mostra: um dia por faixas de horário, ou uma semana ou um mês por dias.
date
defaultDate
onDateChangeEstado
NuiDatetodayO dia exibido, onde também está o foco do teclado. Passe defaultDate quando um servidor renderizar o agendador: o dia de hoje no servidor pode não ser o mesmo de quem lê.
slotMinutesPropnumber30Minutos por linha da grade de horários, ou por coluna da timeline de um dia.
snapMinutesPropnumberslotMinutesO passo com que os eventos se movem e são redimensionados.
dayStart, dayEndPropnumber0, 24As horas em que a grade de horários começa e termina.
scrollHourPropnumber8A hora em que a grade de horários abre.
agendaDaysPropnumber30Quantos dias à frente a agenda mostra.
businessHoursPropNuiSchedulerHours[]O horário de trabalho, como { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' }. O resto do tempo fica sombreado.
weekendsPropbooleantrueMostra o fim de semana. Sem ele, todas as visualizações ocultam o fim de semana da localidade.
weekNumbersPropbooleanfalseMostra os números de semana ISO no mês e acima dos horários.
editablePropbooleanfalseOs eventos podem ser movidos e redimensionados, com o ponteiro e com o teclado.
selectablePropbooleanfalseÉ possível escolher um horário na grade, para criar eventos.
allowProp(time) => booleanDecide se um evento pode ser movido ou redimensionado, ou um horário escolhido.
toolbarPropboolean | ((toolbar: NuiSchedulerToolbar) => ReactNode)trueMostra a barra de ferramentas, ou uma função desenha a sua a partir do que recebe.
firstDayProp1 … 7O primeiro dia da semana, 1 para segunda-feira. Por padrão, o da localidade.
headingLevelPropnumber2O nível do título; os dias da agenda ficam um nível abaixo.
localePropstring'en-US'Formata dias e horários.
labelsPropPartial<NuiSchedulerLabels>Todo texto que o agendador mostra ou anuncia, para traduzir.
cornersPropNuiCornersO formato dos cantos: round, squircle, bevel, scoop, notch ou square.
radiusPropNuiRadiusO tamanho dos cantos: none, small, medium, large ou full.
densityPropNuiDensityQuanto espaço ele ocupa: compact, regular ou roomy.
renderEventRender prop(event, { time }) => ReactNodeDesenhe você mesmo os eventos, a partir do evento e do horário dele como texto.
renderResourceRender prop(resource) => ReactNodeDesenhe você mesmo os cabeçalhos dos recursos.
onEventClickCallback(event: NuiSchedulerEvent<T>) => voidChamado com um evento clicado, ou aberto com Enter.
onEventChangeCallback({ event, start, end, resource? }) => voidChamado com os novos horários de um evento depois de movê-lo ou redimensioná-lo, e os recursos dele quando mudaram. Atualize events para manter a mudança.
onSlotSelectCallback({ start, end, allDay, resource? }) => voidChamado com o horário escolhido na grade e o recurso dele.
onRangeChangeCallback({ start, end }) => voidChamado com o primeiro e o último dia exibidos quando eles mudam, para carregar os eventos deles.
refPropRef<NuiSchedulerHandle>O que a ref do agendador expõe: a troca de página, para uma barra de ferramentas própria.
previous, next, goTodayMétodo() => voidMostram a página anterior ou seguinte, ou a de hoje, para uma barra de ferramentas própria.
titlePropriedadestringO que está sendo exibido, como diz o título da barra de ferramentas.

O estado funciona como nos campos de formulário do React: passe um valor e atualize-o pelo callback on…Change dele, ou passe um valor default… e deixe o componente guardá-lo.

As props de personalização que você não definir seguem o atributo data-nui-* mais próximo. Veja o guia de personalização.

NuiSchedulerToolbar

O que uma função toolbar recebe, para desenhar uma barra de ferramentas própria.

NuiSchedulerToolbar: Propriedades
NomeTipoPadrãoDescrição
titlePropriedadestringO que está sendo exibido, como diz o título da barra de ferramentas.
view, viewsPropriedadeNuiSchedulerView, NuiSchedulerView[]A visualização exibida e as visualizações oferecidas.
setView, previous, next, goTodayMétodo(view?) => voidTrocam a visualização, ou mostram a página anterior ou seguinte, ou a de hoje.

NuiSchedulerEvent

Um evento. O fim de um evento com horário não é incluído; o de um evento de dia inteiro é o último dia dele.

NuiSchedulerEvent: Propriedades
NomeTipoPadrãoDescrição
id, titlePropriedadestringA chave dele, e o que ele mostra.
start, endPropriedadeNuiDateTime | NuiDateDatas e horários, ou só datas para eventos de dia inteiro.
allDayPropriedadebooleanPor padrão, se start não tem horário.
tonePropriedade'accent' | 'neutral' | 'success' | 'warning' | 'danger''accent'A paleta dele.
color, classPropriedadestringQualquer cor CSS, que prevalece sobre o tom, e classes para estilizá-lo.
resourcePropriedadestring | string[]Os recursos aos quais ele pertence.
rrulePropriedadestringUma regra de repetição da RFC 5545, como FREQ=WEEKLY;BYDAY=MO.
exdatePropriedadestring[]Os inícios das ocorrências que não acontecem.
recurrenceIdPropriedadeNuiDateTime | NuiDateEm uma ocorrência informada pelo agendador: o início que a regra deu a ela.
editablePropriedadebooleanSe ele pode ser movido, independentemente do que diz o agendador.
dataPropriedadeTQualquer outra coisa para guardar junto com ele.

NuiSchedulerResource

Uma sala, uma pessoa ou uma máquina à qual pertencem eventos.

NuiSchedulerResource: Propriedades
NomeTipoPadrãoDescrição
id, titlePropriedadestringA chave dele, e o nome que ele mostra.
tone, colorPropriedadeNuiSchedulerTone, stringAs cores dos eventos dele, a menos que tenham cores próprias.
businessHoursPropriedadeNuiSchedulerHours[]Quando ele está disponível, em vez do horário de trabalho do agendador.
dataPropriedadeRQualquer outra coisa para guardar junto com ele.

Helpers

Funções para eventos que se repetem e arquivos iCalendar.

Helpers: Propriedades
NomeTipoPadrãoDescrição
nuiSchedulerOccurrencesMétodo(event, first, last) => NuiSchedulerEvent[]Um evento como aparece nos dias dados: cada ocorrência, se ele se repete.
nuiSchedulerRuleMétodo(text: string) => NuiSchedulerRule | nullLê uma regra de repetição, ou retorna null.
nuiSchedulerToIcsMétodo(events, options?) => stringEscreve eventos como um arquivo iCalendar.
nuiSchedulerFromIcsMétodo(text, { timeZone? }) => NuiSchedulerEvent[]Lê os eventos de um arquivo iCalendar, com os horários em um só fuso horário.