Импорт
import { NuiScheduler, type NuiSchedulerHandle } from '@needless-ui/react/scheduler';NuiScheduler
События в виде месяца, недели, дня, повестки дня или таймлайна.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
eventsПроп | NuiSchedulerEvent<T>[] | [] | Показываемые события. |
resourcesПроп | NuiSchedulerResource[] | [] | Комнаты, люди или оборудование: строки таймлайна и столбцы дня и недели. |
viewdefaultViewonViewChangeСостояние | 'month' | 'week' | 'day' | 'agenda' | 'timeline' | 'week' | Показанный вид. |
viewsПроп | NuiSchedulerView[] | all | Виды, между которыми можно переключаться. По умолчанию — все, а таймлайн — только при наличии ресурсов. |
timelineSpanПроп | 'day' | 'week' | 'month' | 'day' | Что показывает таймлайн: день по слотам или неделю либо месяц по дням. |
datedefaultDateonDateChangeСостояние | NuiDate | today | Показанный день; на нём же находится фокус клавиатуры. Если планировщик рендерит сервер, передайте defaultDate: у сервера может быть другое «сегодня», чем у читателя. |
slotMinutesПроп | number | 30 | Минут в строке временной сетки или в столбце таймлайна дня. |
snapMinutesПроп | number | slotMinutes | Шаг, с которым события переносятся и меняют длительность. |
dayStart, dayEndПроп | number | 0, 24 | С какого и до какого часа показывается временная сетка. |
scrollHourПроп | number | 8 | Час, с которого открывается временная сетка. |
agendaDaysПроп | number | 30 | Сколько дней вперёд охватывает повестка дня. |
businessHoursПроп | NuiSchedulerHours[] | Рабочие часы, например { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' }. Остальное время затеняется. | |
weekendsПроп | boolean | true | Показывает выходные. Без него все виды скрывают выходные дни, принятые в локали. |
weekNumbersПроп | boolean | false | Показывает номера недель по ISO — в месяце и над столбцом времени. |
editableПроп | boolean | false | События можно переносить и менять их длительность — указателем и с клавиатуры. |
selectableПроп | boolean | false | В сетке можно выбирать время, чтобы создавать события. |
allowПроп | (time) => boolean | Решает, можно ли перенести событие, изменить его длительность или выбрать время. | |
toolbarПроп | boolean | ((toolbar: NuiSchedulerToolbar) => ReactNode) | true | Показывает панель инструментов или, если передана функция, рисует вашу по полученным данным. |
firstDayПроп | 1 … 7 | Первый день недели, 1 — понедельник. По умолчанию — как в локали. | |
headingLevelПроп | number | 2 | Уровень заголовка; дни в повестке дня — на уровень глубже. |
localeПроп | string | 'en-US' | Форматирует дни и время. |
labelsПроп | Partial<NuiSchedulerLabels> | Все показываемые и озвучиваемые планировщиком тексты — для перевода. | |
cornersПроп | NuiCorners | Форма углов: round, squircle, bevel, scoop, notch или square. | |
radiusПроп | NuiRadius | Радиус скругления углов: none, small, medium, large или full. | |
densityПроп | NuiDensity | Сколько места занимает компонент: compact, regular или roomy. | |
renderEventРендер-проп | (event, { time }) => ReactNode | Своя отрисовка событий: из события и его времени в виде текста. | |
renderResourceРендер-проп | (resource) => ReactNode | Своя отрисовка заголовков ресурсов. | |
onEventClickКолбэк | (event: NuiSchedulerEvent<T>) => void | Вызывается с событием, по которому кликнули или которое открыли клавишей Enter. | |
onEventChangeКолбэк | ({ event, start, end, resource? }) => void | Вызывается с новым временем события после переноса или изменения длительности, а если менялись ресурсы — и с ними. Чтобы сохранить изменение, обновите events. | |
onSlotSelectКолбэк | ({ start, end, allDay, resource? }) => void | Вызывается с выбранным в сетке временем и его ресурсом. | |
onRangeChangeКолбэк | ({ start, end }) => void | Вызывается с первым и последним показанными днями, когда они меняются, — чтобы загрузить их события. | |
refПроп | Ref<NuiSchedulerHandle> | Что доступно через ref планировщика: листание страниц — для своей панели инструментов. | |
previous, next, goTodayМетод | () => void | Показывают предыдущую или следующую страницу либо сегодняшний день — для своей панели инструментов. | |
titleСвойство | string | Показанный период — так, как он записан в заголовке панели инструментов. |
Состояние работает как у полей ввода в React: передайте значение и обновляйте его в колбэке on…Change или передайте значение default…, и его будет хранить компонент.
Если проп настройки не задан, компонент берёт его значение из ближайшего атрибута data-nui-*. Подробнее — в руководстве по настройке.
NuiSchedulerToolbar
Что получает функция toolbar, чтобы нарисовать свою панель инструментов.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
titleСвойство | string | Показанный период — так, как он записан в заголовке панели инструментов. | |
view, viewsСвойство | NuiSchedulerView, NuiSchedulerView[] | Показанный вид и доступные виды. | |
setView, previous, next, goTodayМетод | (view?) => void | Переключают вид, показывают предыдущую или следующую страницу либо сегодняшний день. |
NuiSchedulerEvent
Событие. Конец события со временем в него не входит, а конец события на весь день — это его последний день.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
id, titleСвойство | string | Ключ события и показываемый текст. | |
start, endСвойство | NuiDateTime | NuiDate | Дата и время или, для событий на весь день, только даты. | |
allDayСвойство | boolean | По умолчанию — да, если в start нет времени. | |
toneСвойство | 'accent' | 'neutral' | 'success' | 'warning' | 'danger' | 'accent' | Его палитра. |
color, classСвойство | string | Любой цвет CSS, который перекрывает тон, и классы для оформления. | |
resourceСвойство | string | string[] | Ресурсы, к которым относится событие. | |
rruleСвойство | string | Правило повторения по RFC 5545, например FREQ=WEEKLY;BYDAY=MO. | |
exdateСвойство | string[] | Начала экземпляров, которых не будет. | |
recurrenceIdСвойство | NuiDateTime | NuiDate | У экземпляра, о котором сообщает планировщик: начало, которое дало ему правило. | |
editableСвойство | boolean | Можно ли переносить это событие, независимо от настройки планировщика. | |
dataСвойство | T | Любые другие данные, которые нужно хранить вместе с ним. |
NuiSchedulerResource
Комната, человек или оборудование, к которым относятся события.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
id, titleСвойство | string | Ключ ресурса и показываемое имя. | |
tone, colorСвойство | NuiSchedulerTone, string | Цвета его событий, если у них нет своих. | |
businessHoursСвойство | NuiSchedulerHours[] | Когда ресурс доступен — вместо рабочих часов планировщика. | |
dataСвойство | R | Любые другие данные, которые нужно хранить вместе с ним. |
Helpers
Функции для повторяющихся событий и файлов iCalendar.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
nuiSchedulerOccurrencesМетод | (event, first, last) => NuiSchedulerEvent[] | Событие так, как оно показывается в заданные дни: у повторяющегося — каждый экземпляр. | |
nuiSchedulerRuleМетод | (text: string) => NuiSchedulerRule | null | Читает правило повторения или возвращает null. | |
nuiSchedulerToIcsМетод | (events, options?) => string | Записывает события в файл iCalendar. | |
nuiSchedulerFromIcsМетод | (text, { timeZone? }) => NuiSchedulerEvent[] | Читает события из файла iCalendar, приводя их время к одному часовому поясу. |