インポート
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' | タイムラインに表示する範囲。1日を時間枠ごとに、または1週間か1か月を日ごとに表示します。 |
datedefaultDateonDateChange状態 | NuiDate | today | 表示する日。キーボードのフォーカスがある日でもあります。サーバーでスケジューラーをレンダリングする場合は defaultDate を渡してください。サーバーの「今日」がユーザーの今日と同じとは限りません。 |
slotMinutesプロップ | number | 30 | タイムグリッドの1行、または1日のタイムラインの1列あたりの分数。 |
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 | タイトルの見出しレベル。予定リストの日の見出しは、その1つ下になります。 |
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… の値を渡してコンポーネントに保持させます。
カスタマイズ用の props のうち、設定しなかったものは最も近い data-nui-* 属性に従います。詳しくはカスタマイズガイドをご覧ください。
NuiSchedulerToolbar
toolbar 関数が受け取るもの。独自のツールバーの描画に使います。
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
titleプロパティ | string | 表示中の期間を、ツールバーのタイトルと同じ表現で表したもの。 | |
view, viewsプロパティ | NuiSchedulerView, NuiSchedulerView[] | 表示中のビューと、切り替えられるビュー。 | |
setView, previous, next, goTodayメソッド | (view?) => void | ビューを切り替えるか、前または次のページ、あるいは今日を表示します。 |
NuiSchedulerEvent
1件の予定。時刻付きの予定では終了時刻を含まず、終日の予定では終了日が最終日になります。
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
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 | FREQ=WEEKLY;BYDAY=MO のような、RFC 5545 の繰り返しルール。 | |
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 ファイルの予定を読み込みます。時刻は1つのタイムゾーンにそろえます。 |