الاستيراد

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

NuiScheduler

أحداث في شهر أو أسبوع أو يوم أو جدول أعمال أو خط زمني.

NuiScheduler: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
eventsخاصية (prop)NuiSchedulerEvent<T>[][]الأحداث المراد عرضها.
resourcesخاصية (prop)NuiSchedulerResource[][]القاعات أو الأشخاص أو الآلات: صفوف الخط الزمني، وأعمدة اليوم والأسبوع.
view
defaultView
onViewChangeحالة
'month' | 'week' | 'day' | 'agenda' | 'timeline''week'طريقة العرض الحالية.
viewsخاصية (prop)NuiSchedulerView[]allطرق العرض التي يمكن للمستخدمين التبديل بينها. افتراضيًا كلها، والخط الزمني فقط حين توجد موارد.
timelineSpanخاصية (prop)'day' | 'week' | 'month''day'ما يعرضه الخط الزمني: يومًا بفتراته الزمنية، أو أسبوعًا أو شهرًا بأيامه.
date
defaultDate
onDateChangeحالة
NuiDatetodayاليوم المعروض، وموضع تركيز لوحة المفاتيح. مرّر defaultDate حين يعرض خادمٌ المُجدوِل، لأن «اليوم» عند الخادم قد لا يكون «اليوم» عند القارئ.
slotMinutesخاصية (prop)number30عدد الدقائق في كل صف من شبكة الأوقات، أو في كل عمود من الخط الزمني لليوم.
snapMinutesخاصية (prop)numberslotMinutesمقدار الخطوة التي تتحرك بها الأحداث وتتغير بها مدتها.
dayStart, dayEndخاصية (prop)number0, 24الساعة التي تبدأ بها شبكة الأوقات، والساعة التي تنتهي عندها.
scrollHourخاصية (prop)number8الساعة التي تُفتح عندها شبكة الأوقات.
agendaDaysخاصية (prop)number30عدد الأيام القادمة التي يعرضها جدول الأعمال.
businessHoursخاصية (prop)NuiSchedulerHours[]ساعات العمل، مثل { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' }. ويُظلَّل الوقت الآخر.
weekendsخاصية (prop)booleantrueيعرض عطلة نهاية الأسبوع. وعند تعطيله، تستبعد كل طرق العرض عطلة نهاية الأسبوع التي تعتمدها اللغة والمنطقة.
weekNumbersخاصية (prop)booleanfalseيعرض أرقام الأسابيع بمعيار ISO في عرض الشهر، وفوق الأوقات.
editableخاصية (prop)booleanfalseيمكن نقل الأحداث وتغيير مدتها، بالمؤشر وبلوحة المفاتيح.
selectableخاصية (prop)booleanfalseيمكن اختيار وقت على الشبكة، لإنشاء الأحداث.
allowخاصية (prop)(time) => booleanيقرر ما إذا كان النقل أو تغيير المدة أو اختيار الوقت ممكنًا.
toolbarخاصية (prop)boolean | ((toolbar: NuiSchedulerToolbar) => ReactNode)trueيعرض شريط الأدوات، أو يرسم شريطًا من صنعك بما يتلقاه.
firstDayخاصية (prop)1 … 7أول أيام الأسبوع، و1 هو الاثنين. وافتراضيًا، اليوم الذي تعتمده اللغة والمنطقة.
headingLevelخاصية (prop)number2مستوى العنوان الرئيسي؛ وعناوين الأيام في جدول الأعمال أعمق بمستوى واحد.
localeخاصية (prop)string'en-US'يُنسّق الأيام والأوقات.
labelsخاصية (prop)Partial<NuiSchedulerLabels>كل نص يعرضه المُجدوِل أو يُعلنه، لترجمته.
cornersخاصية (prop)NuiCornersشكل زواياه: round أو squircle أو bevel أو scoop أو notch أو square.
radiusخاصية (prop)NuiRadiusحجم زواياه: none أو small أو medium أو large أو full.
densityخاصية (prop)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خاصية (prop)Ref<NuiSchedulerHandle>ما يصل إليه ref المُجدوِل: التنقل بين الصفحات، لشريط أدوات من صنعك.
previous, next, goTodayدالة() => voidتعرض الصفحة السابقة أو التالية، أو اليوم، لشريط أدوات من صنعك.
titleخاصيةstringما هو معروض، كما يذكره عنوان شريط الأدوات.

تعمل الحالة كما تعمل عناصر الإدخال في React نفسها: مرّر قيمة وحدّثها من دالة رد النداء on…Change الخاصة بها، أو مرّر قيمة default… ودع المكوّن يحتفظ بها.

خصائص التخصيص التي تتركها دون ضبط تتبع أقرب سمة data-nui-*. راجع دليل التخصيص.

NuiSchedulerToolbar

ما تتلقاه دالة toolbar، لترسم شريط أدوات من صنعك.

NuiSchedulerToolbar: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
titleخاصيةstringما هو معروض، كما يذكره عنوان شريط الأدوات.
view, viewsخاصيةNuiSchedulerView, NuiSchedulerView[]طريقة العرض الحالية، وطرق العرض المتاحة.
setView, previous, next, goTodayدالة(view?) => voidتبدّل طريقة العرض، أو تعرض الصفحة السابقة أو التالية، أو اليوم.

NuiSchedulerEvent

حدث واحد. لا تدخل نهاية الحدث المحدد بوقت ضمنه؛ أما نهاية الحدث الذي يستغرق اليوم كله فهي آخر أيامه.

NuiSchedulerEvent: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
id, titleخاصيةstringمفتاحه، وما يعرضه.
start, endخاصيةNuiDateTime | NuiDateتواريخ وأوقات، أو تواريخ فقط للأحداث التي تستغرق اليوم كله.
allDayخاصيةbooleanافتراضيًا، ما إذا كان start بلا وقت.
toneخاصية'accent' | 'neutral' | 'success' | 'warning' | 'danger''accent'لوحة ألوانه.
color, classخاصيةstringأي لون في CSS، وله الأولوية على لوحة ألوانه، وأصناف (classes) لتنسيقه.
resourceخاصيةstring | string[]الموارد التي ينتمي إليها.
rruleخاصيةstringقاعدة تكرار من RFC 5545، مثل FREQ=WEEKLY;BYDAY=MO.
exdateخاصيةstring[]أوقات بدء التكرارات التي لا تحدث.
recurrenceIdخاصيةNuiDateTime | NuiDateفي التكرار الذي يُبلغ عنه المُجدوِل: البداية التي منحته إياها قاعدته.
editableخاصيةbooleanما إذا كان يمكن نقله، أيًّا كان ما يحدده المُجدوِل.
dataخاصيةTأي شيء آخر يُحفظ معه.

NuiSchedulerResource

قاعة أو شخص أو آلة تنتمي إليها الأحداث.

NuiSchedulerResource: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
id, titleخاصيةstringمفتاحه، والاسم الذي يعرضه.
tone, colorخاصيةNuiSchedulerTone, stringألوان أحداثه، ما لم تكن لها ألوانها الخاصة.
businessHoursخاصيةNuiSchedulerHours[]أوقات توفّره، بدلًا من ساعات عمل المُجدوِل.
dataخاصيةRأي شيء آخر يُحفظ معه.

Helpers

دوال للأحداث المتكررة وملفات iCalendar.

Helpers: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
nuiSchedulerOccurrencesدالة(event, first, last) => NuiSchedulerEvent[]الحدث كما يظهر في الأيام المعطاة: كل تكرار من تكرارات الحدث المتكرر.
nuiSchedulerRuleدالة(text: string) => NuiSchedulerRule | nullيقرأ قاعدة تكرار، أو يُعيد null.
nuiSchedulerToIcsدالة(events, options?) => stringيكتب الأحداث في ملف iCalendar.
nuiSchedulerFromIcsدالة(text, { timeZone? }) => NuiSchedulerEvent[]يقرأ أحداث ملف iCalendar، بأوقاتها في منطقة زمنية واحدة.