Importación

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

NuiScheduler

Eventos en un mes, una semana, un día, una agenda o una línea de tiempo.

NuiScheduler: Propiedades
NombreTipoPredeterminadoDescripción
eventsPropNuiSchedulerEvent<T>[][]Los eventos que se muestran.
resourcesPropNuiSchedulerResource[][]Salas, personas o máquinas: filas de la línea de tiempo y columnas del día y la semana.
view
defaultView
onViewChangeEstado
'month' | 'week' | 'day' | 'agenda' | 'timeline''week'La vista que se muestra.
viewsPropNuiSchedulerView[]allLas vistas entre las que se puede cambiar. Por defecto, todas; la línea de tiempo, solo con recursos.
timelineSpanProp'day' | 'week' | 'month''day'Lo que muestra la línea de tiempo: un día por franjas, o una semana o un mes por días.
date
defaultDate
onDateChangeEstado
NuiDatetodayEl día que se muestra, donde también está el foco del teclado. Pasa defaultDate cuando un servidor renderice el planificador: el día de hoy del servidor puede no ser el de quien lee.
slotMinutesPropnumber30Minutos por fila de la cuadrícula horaria, o por columna de la línea de tiempo de un día.
snapMinutesPropnumberslotMinutesEl paso con el que se mueven y redimensionan los eventos.
dayStart, dayEndPropnumber0, 24Desde qué hora y hasta qué hora muestra la cuadrícula horaria.
scrollHourPropnumber8La hora en la que se abre la cuadrícula horaria.
agendaDaysPropnumber30Cuántos días por delante muestra la agenda.
businessHoursPropNuiSchedulerHours[]El horario laboral, como { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' }. El resto del tiempo aparece sombreado.
weekendsPropbooleantrueMuestra el fin de semana. Sin él, todas las vistas omiten el fin de semana de la configuración regional.
weekNumbersPropbooleanfalseMuestra los números de semana ISO en el mes y encima de las horas.
editablePropbooleanfalseLos eventos se pueden mover y redimensionar, con el puntero y con el teclado.
selectablePropbooleanfalseSe puede elegir un intervalo en la cuadrícula, para crear eventos.
allowProp(time) => booleanDecide si se permite mover o redimensionar un evento, o elegir un intervalo.
toolbarPropboolean | ((toolbar: NuiSchedulerToolbar) => ReactNode)trueMuestra la barra de herramientas, o dibuja una propia a partir de lo que recibe.
firstDayProp1 … 7El primer día de la semana, 1 para el lunes. Por defecto, el de la configuración regional.
headingLevelPropnumber2El nivel de encabezado del título; los días de la agenda bajan un nivel más.
localePropstring'en-US'Da formato a los días y las horas.
labelsPropPartial<NuiSchedulerLabels>Todos los textos que el planificador muestra o anuncia, para traducirlos.
cornersPropNuiCornersLa forma de sus esquinas: round, squircle, bevel, scoop, notch o square.
radiusPropNuiRadiusEl tamaño de sus esquinas: none, small, medium, large o full.
densityPropNuiDensityCuánto espacio ocupa: compact, regular o roomy.
renderEventRender prop(event, { time }) => ReactNodeDibuja tú los eventos, a partir del evento y su horario como texto.
renderResourceRender prop(resource) => ReactNodeDibuja tú los encabezados de los recursos.
onEventClickCallback(event: NuiSchedulerEvent<T>) => voidSe llama con el evento en el que se hace clic, o que se abre con Intro.
onEventChangeCallback({ event, start, end, resource? }) => voidSe llama con las horas nuevas de un evento tras moverlo o redimensionarlo, y sus recursos si han cambiado. Actualiza events para conservar el cambio.
onSlotSelectCallback({ start, end, allDay, resource? }) => voidSe llama con el intervalo elegido en la cuadrícula y su recurso.
onRangeChangeCallback({ start, end }) => voidSe llama con el primer y el último día que se muestran cuando cambian, para cargar sus eventos.
refPropRef<NuiSchedulerHandle>Lo que expone la ref del planificador: el cambio de página, para una barra de herramientas propia.
previous, next, goTodayMétodo() => voidMuestran la página anterior o siguiente, o la de hoy, para una barra de herramientas propia.
titlePropiedadstringLo que se muestra, tal como lo dice el título de la barra de herramientas.

El estado funciona como en los campos de formulario de React: pasa un valor y actualízalo desde su callback on…Change, o pasa un valor default… y deja que el componente lo guarde.

Las props de personalización que no definas siguen el atributo data-nui-* más cercano. Consulta la guía de personalización.

NuiSchedulerToolbar

Lo que recibe una función toolbar, para dibujar una barra de herramientas propia.

NuiSchedulerToolbar: Propiedades
NombreTipoPredeterminadoDescripción
titlePropiedadstringLo que se muestra, tal como lo dice el título de la barra de herramientas.
view, viewsPropiedadNuiSchedulerView, NuiSchedulerView[]La vista que se muestra y las vistas que se ofrecen.
setView, previous, next, goTodayMétodo(view?) => voidCambian la vista, o muestran la página anterior o siguiente, o la de hoy.

NuiSchedulerEvent

Un evento. El final de un evento con hora no se incluye; el de un evento de todo el día es su último día.

NuiSchedulerEvent: Propiedades
NombreTipoPredeterminadoDescripción
id, titlePropiedadstringSu clave, y lo que muestra.
start, endPropiedadNuiDateTime | NuiDateFechas y horas, o solo fechas para los eventos de todo el día.
allDayPropiedadbooleanPor defecto, si start no tiene hora.
tonePropiedad'accent' | 'neutral' | 'success' | 'warning' | 'danger''accent'Su paleta.
color, classPropiedadstringCualquier color CSS, que se impone a su tono, y clases para darle estilo.
resourcePropiedadstring | string[]Los recursos a los que pertenece.
rrulePropiedadstringUna regla de repetición según RFC 5545, como FREQ=WEEKLY;BYDAY=MO.
exdatePropiedadstring[]Los inicios de las repeticiones que no tienen lugar.
recurrenceIdPropiedadNuiDateTime | NuiDateEn una repetición que comunica el planificador: el inicio que le dio su regla.
editablePropiedadbooleanSi se puede mover, diga lo que diga el planificador.
dataPropiedadTCualquier otra cosa que quieras guardar con él.

NuiSchedulerResource

Una sala, una persona o una máquina a la que pertenecen eventos.

NuiSchedulerResource: Propiedades
NombreTipoPredeterminadoDescripción
id, titlePropiedadstringSu clave, y el nombre que muestra.
tone, colorPropiedadNuiSchedulerTone, stringLos colores de sus eventos, salvo que tengan los suyos.
businessHoursPropiedadNuiSchedulerHours[]Cuándo está disponible, en lugar del horario laboral del planificador.
dataPropiedadRCualquier otra cosa que quieras guardar con él.

Helpers

Funciones para eventos que se repiten y archivos iCalendar.

Helpers: Propiedades
NombreTipoPredeterminadoDescripción
nuiSchedulerOccurrencesMétodo(event, first, last) => NuiSchedulerEvent[]Un evento tal como aparece en los días dados: cada repetición, si se repite.
nuiSchedulerRuleMétodo(text: string) => NuiSchedulerRule | nullLee una regla de repetición, o devuelve null.
nuiSchedulerToIcsMétodo(events, options?) => stringEscribe eventos como un archivo iCalendar.
nuiSchedulerFromIcsMétodo(text, { timeZone? }) => NuiSchedulerEvent[]Lee los eventos de un archivo iCalendar, con sus horas en una sola zona horaria.