Import

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

NuiScheduler

กิจกรรมในมุมมองเดือน สัปดาห์ วัน กำหนดการ หรือไทม์ไลน์

NuiScheduler: พร็อพเพอร์ตี
ชื่อชนิดค่าเริ่มต้นคำอธิบาย
eventsPropNuiSchedulerEvent<T>[][]กิจกรรมที่จะแสดง
resourcesPropNuiSchedulerResource[][]ห้อง บุคคล หรือเครื่องจักร ซึ่งเป็นแถวของไทม์ไลน์ และเป็นคอลัมน์ของมุมมองวันและสัปดาห์
view
defaultView
onViewChangeสถานะ
'month' | 'week' | 'day' | 'agenda' | 'timeline''week'มุมมองที่แสดงอยู่
viewsPropNuiSchedulerView[]allมุมมองที่ผู้ใช้สลับไปมาได้ ค่าเริ่มต้นคือทุกมุมมอง โดยไทม์ไลน์จะมีเฉพาะเมื่อมีทรัพยากร
timelineSpanProp'day' | 'week' | 'month''day'สิ่งที่ไทม์ไลน์แสดง คือหนึ่งวันตามช่องเวลา หรือหนึ่งสัปดาห์หรือหนึ่งเดือนตามวัน
date
defaultDate
onDateChangeสถานะ
NuiDatetodayวันที่แสดงอยู่ และตำแหน่งของโฟกัสคีย์บอร์ด เมื่อเซิร์ฟเวอร์เรนเดอร์ Scheduler ให้ส่ง defaultDate เพราะวันนี้ของเซิร์ฟเวอร์อาจไม่ใช่วันนี้ของผู้อ่าน
slotMinutesPropnumber30จำนวนนาทีต่อแถวในตารางเวลา หรือต่อคอลัมน์ในไทม์ไลน์ของหนึ่งวัน
snapMinutesPropnumberslotMinutesระยะที่กิจกรรมเลื่อนและปรับขนาดในแต่ละครั้ง
dayStart, dayEndPropnumber0, 24ชั่วโมงเริ่มต้นและชั่วโมงสิ้นสุดที่ตารางเวลาแสดง
scrollHourPropnumber8ชั่วโมงที่ตารางเวลาแสดงเมื่อเปิดขึ้นมา
agendaDaysPropnumber30จำนวนวันข้างหน้าที่กำหนดการแสดง
businessHoursPropNuiSchedulerHours[]เวลาทำงาน เช่น { days: [1, 2, 3, 4, 5], start: '09:00', end: '17:00' } เวลาที่เหลือจะถูกแรเงา
weekendsPropbooleantrueแสดงวันหยุดสุดสัปดาห์ หากไม่ใช้ ทุกมุมมองจะซ่อนวันหยุดสุดสัปดาห์ตาม locale
weekNumbersPropbooleanfalseแสดงหมายเลขสัปดาห์แบบ ISO ในมุมมองเดือน และเหนือคอลัมน์เวลา
editablePropbooleanfalseย้ายและปรับขนาดกิจกรรมได้ ทั้งด้วยตัวชี้และคีย์บอร์ด
selectablePropbooleanfalseเลือกเวลาบนตารางได้ เพื่อสร้างกิจกรรม
allowProp(time) => booleanตัดสินว่าการย้าย การปรับขนาด หรือการเลือกเวลาจะเกิดขึ้นได้หรือไม่
toolbarPropboolean | ((toolbar: NuiSchedulerToolbar) => ReactNode)trueแสดงแถบเครื่องมือ หรือวาดแถบเครื่องมือของคุณเองจากสิ่งที่ได้รับ
firstDayProp1 … 7วันแรกของสัปดาห์ โดย 1 คือวันจันทร์ ค่าเริ่มต้นเป็นไปตาม locale
headingLevelPropnumber2ระดับหัวข้อของหัวเรื่อง ส่วนวันในกำหนดการจะลึกลงไปอีกหนึ่งระดับ
localePropstring'en-US'ใช้จัดรูปแบบวันและเวลา
labelsPropPartial<NuiSchedulerLabels>ข้อความทุกส่วนที่ Scheduler แสดงหรือประกาศ สำหรับการแปล
cornersPropNuiCornersรูปทรงของมุม: round squircle bevel scoop notch หรือ square
radiusPropNuiRadiusขนาดของมุม: none small medium large หรือ full
densityPropNuiDensityพื้นที่ที่ใช้: compact regular หรือ roomy
renderEventRender prop(event, { time }) => ReactNodeวาดกิจกรรมเองจากตัวกิจกรรมและเวลาในรูปแบบข้อความ
renderResourceRender prop(resource) => ReactNodeวาดส่วนหัวของทรัพยากรเอง
onEventClickCallback(event: NuiSchedulerEvent<T>) => voidถูกเรียกพร้อมกิจกรรมที่ถูกคลิกหรือถูกเปิดด้วย Enter
onEventChangeCallback({ event, start, end, resource? }) => voidถูกเรียกพร้อมเวลาใหม่ของกิจกรรมหลังการย้ายหรือปรับขนาด รวมถึงทรัพยากรเมื่อมีการเปลี่ยน ให้อัปเดต events เพื่อเก็บการเปลี่ยนแปลงไว้
onSlotSelectCallback({ start, end, allDay, resource? }) => voidถูกเรียกพร้อมเวลาที่เลือกบนตารางและทรัพยากรของเวลานั้น
onRangeChangeCallback({ start, end }) => voidถูกเรียกพร้อมวันแรกและวันสุดท้ายที่แสดงเมื่อมีการเปลี่ยนแปลง เพื่อโหลดกิจกรรมของช่วงนั้น
refPropRef<NuiSchedulerHandle>สิ่งที่เข้าถึงได้ผ่าน ref ของ Scheduler คือการเปลี่ยนหน้า สำหรับแถบเครื่องมือที่คุณสร้างเอง
previous, next, goTodayเมธอด() => voidแสดงหน้าก่อนหน้าหรือถัดไป หรือวันนี้ สำหรับแถบเครื่องมือที่คุณสร้างเอง
titleพร็อพเพอร์ตีstringสิ่งที่กำลังแสดงอยู่ ตามที่หัวเรื่องของแถบเครื่องมือบอก

สถานะทำงานเหมือน input ของ React เอง คือส่งค่าเข้าไปแล้วอัปเดตจาก callback on…Change ของค่านั้น หรือส่งค่า default… แล้วปล่อยให้คอมโพเนนต์เก็บค่าไว้เอง

Prop สำหรับการปรับแต่งที่ไม่ได้กำหนดค่าไว้ จะใช้ค่าตาม attribute 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 ใดก็ได้ ซึ่งมีผลเหนือโทนสี และคลาสสำหรับกำหนดสไตล์ของกิจกรรม
resourceพร็อพเพอร์ตีstring | string[]ทรัพยากรที่กิจกรรมนี้สังกัด
rruleพร็อพเพอร์ตีstringกฎการเกิดซ้ำตาม RFC 5545 เช่น FREQ=WEEKLY;BYDAY=MO
exdateพร็อพเพอร์ตีstring[]เวลาเริ่มของครั้งที่ไม่เกิดขึ้น
recurrenceIdพร็อพเพอร์ตีNuiDateTime | NuiDateมีในแต่ละครั้งที่ Scheduler รายงาน คือเวลาเริ่มที่กฎกำหนดให้ครั้งนั้น
editableพร็อพเพอร์ตีbooleanย้ายกิจกรรมนี้ได้หรือไม่ ไม่ว่า Scheduler จะตั้งค่าไว้อย่างไร
dataพร็อพเพอร์ตีTข้อมูลอื่นที่ต้องการเก็บไว้กับกิจกรรม

NuiSchedulerResource

ห้อง บุคคล หรือเครื่องจักรที่กิจกรรมสังกัดอยู่

NuiSchedulerResource: พร็อพเพอร์ตี
ชื่อชนิดค่าเริ่มต้นคำอธิบาย
id, titleพร็อพเพอร์ตีstringคีย์ของทรัพยากร และชื่อที่แสดง
tone, colorพร็อพเพอร์ตีNuiSchedulerTone, stringสีของกิจกรรมในทรัพยากรนี้ เว้นแต่กิจกรรมจะมีสีของตัวเอง
businessHoursพร็อพเพอร์ตีNuiSchedulerHours[]ช่วงเวลาที่ทรัพยากรนี้ว่าง ใช้แทนเวลาทำงานของ Scheduler
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 โดยให้เวลาอยู่ในเขตเวลาเดียว