Import

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

NuiScheduler

Termine in der Monats-, Wochen-, Tages- oder Agendaansicht oder auf einer Timeline.

NuiScheduler: Eigenschaften
NameTypStandardwertBeschreibung
eventsPropNuiSchedulerEvent<T>[][]Die anzuzeigenden Termine.
resourcesPropNuiSchedulerResource[][]Räume, Personen oder Maschinen: Zeilen der Timeline und Spalten von Tag und Woche.
view
defaultView
onViewChangeState
'month' | 'week' | 'day' | 'agenda' | 'timeline''week'Die angezeigte Ansicht.
viewsPropNuiSchedulerView[]allDie Ansichten, zwischen denen man wechseln kann. Standardmäßig alle, die Timeline nur mit Ressourcen.
timelineSpanProp'day' | 'week' | 'month''day'Was die Timeline zeigt: einen Tag nach Zeitfenstern oder eine Woche oder einen Monat nach Tagen.
date
defaultDate
onDateChangeState
NuiDatetodayDer angezeigte Tag, auf dem auch der Tastaturfokus steht. Übergib defaultDate, wenn ein Server den Terminplaner rendert: Für den Server ist heute vielleicht ein anderer Tag als für den Leser.
slotMinutesPropnumber30Minuten pro Zeile des Zeitrasters oder pro Spalte der Timeline eines Tages.
snapMinutesPropnumberslotMinutesDie Schrittweite, in der sich Termine verschieben und in der Dauer ändern.
dayStart, dayEndPropnumber0, 24Von welcher bis zu welcher Stunde das Zeitraster reicht.
scrollHourPropnumber8Die Stunde, die das Zeitraster beim Öffnen zeigt.
agendaDaysPropnumber30Wie viele Tage die Agenda vorausschaut.
businessHoursPropNuiSchedulerHours[]Arbeitszeiten, etwa { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' }. Die übrige Zeit wird schattiert.
weekendsPropbooleantrueZeigt das Wochenende. Ohne diese Option blendet jede Ansicht das Wochenende der Locale aus.
weekNumbersPropbooleanfalseZeigt ISO-Kalenderwochen im Monat und über den Uhrzeiten.
editablePropbooleanfalseTermine lassen sich verschieben und in der Dauer ändern, per Zeiger und per Tastatur.
selectablePropbooleanfalseIm Grid lässt sich Zeit markieren, um Termine anzulegen.
allowProp(time) => booleanEntscheidet, ob ein Verschieben, eine Änderung der Dauer oder eine Zeitauswahl erlaubt ist.
toolbarPropboolean | ((toolbar: NuiSchedulerToolbar) => ReactNode)trueZeigt die Toolbar, oder deine Funktion zeichnet aus dem, was sie bekommt, eine eigene.
firstDayProp1 … 7Der erste Tag der Woche, 1 für Montag. Standardmäßig der aus der Locale.
headingLevelPropnumber2Die Überschriftenebene des Titels; die Tage der Agenda liegen eine Ebene tiefer.
localePropstring'en-US'Formatiert Tage und Uhrzeiten.
labelsPropPartial<NuiSchedulerLabels>Alle Texte, die der Terminplaner anzeigt oder ansagt, zum Übersetzen.
cornersPropNuiCornersDie Form der Ecken: round, squircle, bevel, scoop, notch oder square.
radiusPropNuiRadiusWie groß die Ecken sind: none, small, medium, large oder full.
densityPropNuiDensityWie viel Platz die Komponente einnimmt: compact, regular oder roomy.
renderEventRender-Prop(event, { time }) => ReactNodeDamit zeichnest du Termine selbst, aus dem Termin und seiner Zeit als Text.
renderResourceRender-Prop(resource) => ReactNodeDamit zeichnest du die Kopfzellen der Ressourcen selbst.
onEventClickCallback(event: NuiSchedulerEvent<T>) => voidWird mit einem angeklickten oder mit Enter geöffneten Termin aufgerufen.
onEventChangeCallback({ event, start, end, resource? }) => voidWird nach dem Verschieben oder Ändern der Dauer mit den neuen Zeiten eines Termins aufgerufen, und mit seinen Ressourcen, wenn sie sich geändert haben. Aktualisiere events, um die Änderung zu übernehmen.
onSlotSelectCallback({ start, end, allDay, resource? }) => voidWird mit der im Grid markierten Zeit und ihrer Ressource aufgerufen.
onRangeChangeCallback({ start, end }) => voidWird mit dem ersten und letzten angezeigten Tag aufgerufen, wenn sie sich ändern, damit du ihre Termine laden kannst.
refPropRef<NuiSchedulerHandle>Was du über die ref des Terminplaners erreichst: das Blättern, für eine eigene Toolbar.
previous, next, goTodayMethode() => voidZeigen die vorherige oder nächste Seite oder heute, für eine eigene Toolbar.
titleEigenschaftstringWas angezeigt wird, so wie es der Titel der Toolbar sagt.

State funktioniert wie bei Formularfeldern in React: Übergib einen Wert und aktualisiere ihn in seinem on…Change-Callback, oder übergib einen default…-Wert und überlass ihn der Komponente.

Anpassungs-Props, die du nicht setzt, richten sich nach dem nächstgelegenen data-nui-*-Attribut. Mehr dazu in der Anleitung zur Anpassung.

NuiSchedulerToolbar

Was eine toolbar-Funktion bekommt, um eine eigene Toolbar zu zeichnen.

NuiSchedulerToolbar: Eigenschaften
NameTypStandardwertBeschreibung
titleEigenschaftstringWas angezeigt wird, so wie es der Titel der Toolbar sagt.
view, viewsEigenschaftNuiSchedulerView, NuiSchedulerView[]Die angezeigte Ansicht und die angebotenen Ansichten.
setView, previous, next, goTodayMethode(view?) => voidWechseln die Ansicht oder zeigen die vorherige oder nächste Seite oder heute.

NuiSchedulerEvent

Ein Termin. Das Ende eines Termins mit Uhrzeit ist nicht eingeschlossen; bei einem ganztägigen Termin ist das Ende sein letzter Tag.

NuiSchedulerEvent: Eigenschaften
NameTypStandardwertBeschreibung
id, titleEigenschaftstringSein Schlüssel und was er anzeigt.
start, endEigenschaftNuiDateTime | NuiDateDatum mit Uhrzeit oder, bei ganztägigen Terminen, nur das Datum.
allDayEigenschaftbooleanStandardmäßig gesetzt, wenn start keine Uhrzeit hat.
toneEigenschaft'accent' | 'neutral' | 'success' | 'warning' | 'danger''accent'Seine Farbpalette.
color, classEigenschaftstringEine beliebige CSS-Farbe, die Vorrang vor seinem Farbton hat, und Klassen, mit denen du ihn gestaltest.
resourceEigenschaftstring | string[]Die Ressourcen, zu denen er gehört.
rruleEigenschaftstringEine Wiederholungsregel nach RFC 5545, etwa FREQ=WEEKLY;BYDAY=MO.
exdateEigenschaftstring[]Die Beginnzeiten von Vorkommen, die ausfallen.
recurrenceIdEigenschaftNuiDateTime | NuiDateAn einem Vorkommen, das der Terminplaner meldet: der Beginn, den ihm seine Regel gab.
editableEigenschaftbooleanOb er sich verschieben lässt, unabhängig davon, was der Terminplaner vorgibt.
dataEigenschaftTAlles Weitere, das du mit ihm aufbewahren willst.

NuiSchedulerResource

Eine Ressource, zu der Termine gehören: ein Raum, eine Person oder eine Maschine.

NuiSchedulerResource: Eigenschaften
NameTypStandardwertBeschreibung
id, titleEigenschaftstringIhr Schlüssel und der Name, den sie anzeigt.
tone, colorEigenschaftNuiSchedulerTone, stringDie Farben ihrer Termine, sofern diese keine eigenen haben.
businessHoursEigenschaftNuiSchedulerHours[]Wann sie verfügbar ist, statt der Arbeitszeiten des Terminplaners.
dataEigenschaftRAlles Weitere, das du mit ihr aufbewahren willst.

Helpers

Funktionen für wiederkehrende Termine und iCalendar-Dateien.

Helpers: Eigenschaften
NameTypStandardwertBeschreibung
nuiSchedulerOccurrencesMethode(event, first, last) => NuiSchedulerEvent[]Ein Termin, wie er an den angegebenen Tagen erscheint: jedes Vorkommen, wenn er sich wiederholt.
nuiSchedulerRuleMethode(text: string) => NuiSchedulerRule | nullLiest eine Wiederholungsregel oder gibt null zurück.
nuiSchedulerToIcsMethode(events, options?) => stringSchreibt Termine als iCalendar-Datei.
nuiSchedulerFromIcsMethode(text, { timeZone? }) => NuiSchedulerEvent[]Liest die Termine einer iCalendar-Datei, mit ihren Zeiten in einer einzigen Zeitzone.