@fullcalendar/mui 7.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +22 -0
- package/README.md +79 -0
- package/breezy/theme.css +987 -0
- package/cjs/breezy/EventCalendar.cjs +62 -0
- package/cjs/breezy/EventCalendarContainer.cjs +35 -0
- package/cjs/breezy/EventCalendarToolbar.cjs +65 -0
- package/cjs/breezy/EventCalendarViews.cjs +283 -0
- package/cjs/breezy/ResourceTimeGrid.cjs +57 -0
- package/cjs/breezy/ResourceTimeline.cjs +54 -0
- package/cjs/breezy/SchedulerViews.cjs +70 -0
- package/cjs/breezy/icons.cjs +37 -0
- package/cjs/classic/EventCalendar.cjs +62 -0
- package/cjs/classic/EventCalendarContainer.cjs +22 -0
- package/cjs/classic/EventCalendarToolbar.cjs +62 -0
- package/cjs/classic/EventCalendarViews.cjs +230 -0
- package/cjs/classic/ResourceTimeGrid.cjs +57 -0
- package/cjs/classic/ResourceTimeline.cjs +54 -0
- package/cjs/classic/SchedulerViews.cjs +74 -0
- package/cjs/classic/icons.cjs +37 -0
- package/cjs/forma/EventCalendar.cjs +62 -0
- package/cjs/forma/EventCalendarContainer.cjs +35 -0
- package/cjs/forma/EventCalendarToolbar.cjs +64 -0
- package/cjs/forma/EventCalendarViews.cjs +251 -0
- package/cjs/forma/ResourceTimeGrid.cjs +57 -0
- package/cjs/forma/ResourceTimeline.cjs +54 -0
- package/cjs/forma/SchedulerViews.cjs +62 -0
- package/cjs/forma/icons.cjs +37 -0
- package/cjs/monarch/EventCalendar.cjs +62 -0
- package/cjs/monarch/EventCalendarContainer.cjs +35 -0
- package/cjs/monarch/EventCalendarToolbar.cjs +62 -0
- package/cjs/monarch/EventCalendarViews.cjs +252 -0
- package/cjs/monarch/ResourceTimeGrid.cjs +57 -0
- package/cjs/monarch/ResourceTimeline.cjs +54 -0
- package/cjs/monarch/SchedulerViews.cjs +83 -0
- package/cjs/monarch/icons.cjs +37 -0
- package/cjs/pulse/EventCalendar.cjs +62 -0
- package/cjs/pulse/EventCalendarContainer.cjs +22 -0
- package/cjs/pulse/EventCalendarToolbar.cjs +62 -0
- package/cjs/pulse/EventCalendarViews.cjs +268 -0
- package/cjs/pulse/ResourceTimeGrid.cjs +57 -0
- package/cjs/pulse/ResourceTimeline.cjs +54 -0
- package/cjs/pulse/SchedulerViews.cjs +58 -0
- package/cjs/pulse/icons.cjs +37 -0
- package/classic/theme.css +811 -0
- package/esm/breezy/EventCalendar.d.ts +15 -0
- package/esm/breezy/EventCalendar.js +49 -0
- package/esm/breezy/EventCalendarContainer.d.ts +15 -0
- package/esm/breezy/EventCalendarContainer.js +26 -0
- package/esm/breezy/EventCalendarToolbar.d.ts +16 -0
- package/esm/breezy/EventCalendarToolbar.js +51 -0
- package/esm/breezy/EventCalendarViews.d.ts +33 -0
- package/esm/breezy/EventCalendarViews.js +250 -0
- package/esm/breezy/ResourceTimeGrid.d.ts +15 -0
- package/esm/breezy/ResourceTimeGrid.js +45 -0
- package/esm/breezy/ResourceTimeline.d.ts +15 -0
- package/esm/breezy/ResourceTimeline.js +43 -0
- package/esm/breezy/SchedulerViews.d.ts +8 -0
- package/esm/breezy/SchedulerViews.js +62 -0
- package/esm/breezy/icons.d.ts +11 -0
- package/esm/breezy/icons.js +22 -0
- package/esm/classic/EventCalendar.d.ts +15 -0
- package/esm/classic/EventCalendar.js +49 -0
- package/esm/classic/EventCalendarContainer.d.ts +11 -0
- package/esm/classic/EventCalendarContainer.js +13 -0
- package/esm/classic/EventCalendarToolbar.d.ts +17 -0
- package/esm/classic/EventCalendarToolbar.js +48 -0
- package/esm/classic/EventCalendarViews.d.ts +31 -0
- package/esm/classic/EventCalendarViews.js +205 -0
- package/esm/classic/ResourceTimeGrid.d.ts +15 -0
- package/esm/classic/ResourceTimeGrid.js +45 -0
- package/esm/classic/ResourceTimeline.d.ts +15 -0
- package/esm/classic/ResourceTimeline.js +43 -0
- package/esm/classic/SchedulerViews.d.ts +8 -0
- package/esm/classic/SchedulerViews.js +66 -0
- package/esm/classic/icons.d.ts +11 -0
- package/esm/classic/icons.js +22 -0
- package/esm/forma/EventCalendar.d.ts +15 -0
- package/esm/forma/EventCalendar.js +49 -0
- package/esm/forma/EventCalendarContainer.d.ts +15 -0
- package/esm/forma/EventCalendarContainer.js +26 -0
- package/esm/forma/EventCalendarToolbar.d.ts +16 -0
- package/esm/forma/EventCalendarToolbar.js +50 -0
- package/esm/forma/EventCalendarViews.d.ts +30 -0
- package/esm/forma/EventCalendarViews.js +221 -0
- package/esm/forma/ResourceTimeGrid.d.ts +15 -0
- package/esm/forma/ResourceTimeGrid.js +45 -0
- package/esm/forma/ResourceTimeline.d.ts +15 -0
- package/esm/forma/ResourceTimeline.js +43 -0
- package/esm/forma/SchedulerViews.d.ts +8 -0
- package/esm/forma/SchedulerViews.js +54 -0
- package/esm/forma/icons.d.ts +11 -0
- package/esm/forma/icons.js +22 -0
- package/esm/monarch/EventCalendar.d.ts +15 -0
- package/esm/monarch/EventCalendar.js +49 -0
- package/esm/monarch/EventCalendarContainer.d.ts +15 -0
- package/esm/monarch/EventCalendarContainer.js +26 -0
- package/esm/monarch/EventCalendarToolbar.d.ts +16 -0
- package/esm/monarch/EventCalendarToolbar.js +48 -0
- package/esm/monarch/EventCalendarViews.d.ts +27 -0
- package/esm/monarch/EventCalendarViews.js +225 -0
- package/esm/monarch/ResourceTimeGrid.d.ts +15 -0
- package/esm/monarch/ResourceTimeGrid.js +45 -0
- package/esm/monarch/ResourceTimeline.d.ts +15 -0
- package/esm/monarch/ResourceTimeline.js +43 -0
- package/esm/monarch/SchedulerViews.d.ts +8 -0
- package/esm/monarch/SchedulerViews.js +75 -0
- package/esm/monarch/icons.d.ts +11 -0
- package/esm/monarch/icons.js +22 -0
- package/esm/pulse/EventCalendar.d.ts +15 -0
- package/esm/pulse/EventCalendar.js +49 -0
- package/esm/pulse/EventCalendarContainer.d.ts +11 -0
- package/esm/pulse/EventCalendarContainer.js +13 -0
- package/esm/pulse/EventCalendarToolbar.d.ts +17 -0
- package/esm/pulse/EventCalendarToolbar.js +48 -0
- package/esm/pulse/EventCalendarViews.d.ts +29 -0
- package/esm/pulse/EventCalendarViews.js +239 -0
- package/esm/pulse/ResourceTimeGrid.d.ts +15 -0
- package/esm/pulse/ResourceTimeGrid.js +45 -0
- package/esm/pulse/ResourceTimeline.d.ts +15 -0
- package/esm/pulse/ResourceTimeline.js +43 -0
- package/esm/pulse/SchedulerViews.d.ts +8 -0
- package/esm/pulse/SchedulerViews.js +50 -0
- package/esm/pulse/icons.d.ts +11 -0
- package/esm/pulse/icons.js +22 -0
- package/forma/theme.css +936 -0
- package/monarch/theme.css +1014 -0
- package/package.json +371 -0
- package/pulse/theme.css +913 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FullCalendar from '@fullcalendar/react';
|
|
3
|
+
import { joinClassNames } from '@fullcalendar/core';
|
|
4
|
+
import { Box } from '@mui/material';
|
|
5
|
+
import { EventCalendarCloseIcon } from './icons.js';
|
|
6
|
+
import '@mui/icons-material/ChevronLeft';
|
|
7
|
+
import '@mui/icons-material/ChevronRight';
|
|
8
|
+
import '@mui/icons-material/Close';
|
|
9
|
+
import '@mui/icons-material/ExpandMore';
|
|
10
|
+
|
|
11
|
+
// outline
|
|
12
|
+
const outlineWidthClass = "fc-pulse-bAU";
|
|
13
|
+
const outlineWidthFocusClass = "fc-pulse-Tid";
|
|
14
|
+
const outlineWidthGroupFocusClass = "fc-pulse-14w";
|
|
15
|
+
const outlineOffsetClass = "fc-pulse-fKI";
|
|
16
|
+
const outlineInsetClass = "fc-pulse-bzG";
|
|
17
|
+
const tertiaryOutlineColorClass = "fc-pulse-sVX";
|
|
18
|
+
// strongest (25%)
|
|
19
|
+
const strongestSolidBgActiveClass = "fc-pulse-lS3";
|
|
20
|
+
// stronger (20%)
|
|
21
|
+
const strongerBgActiveClass = "fc-pulse-iWk";
|
|
22
|
+
const strongerSolidBgHoverClass = "fc-pulse-fEn";
|
|
23
|
+
// strong (16%)
|
|
24
|
+
const strongBgHoverClass = "fc-pulse-XCy";
|
|
25
|
+
const strongBgFocusClass = "fc-pulse-WPX";
|
|
26
|
+
const strongBgActiveClass = "fc-pulse-kup";
|
|
27
|
+
const strongSolidBgClass = "fc-pulse-5V9";
|
|
28
|
+
const strongSolidPressableClass = `${strongSolidBgClass} ${strongerSolidBgHoverClass} ${strongestSolidBgActiveClass}`;
|
|
29
|
+
// muted (8%)
|
|
30
|
+
const mutedBgClass = "fc-pulse-VxY";
|
|
31
|
+
const mutedBgHoverClass = "fc-pulse-znR";
|
|
32
|
+
const mutedBgActiveClass = "fc-pulse-cmB";
|
|
33
|
+
const mutedPressableClass = `${mutedBgClass} ${strongBgHoverClass} ${strongerBgActiveClass}`;
|
|
34
|
+
const mutedHoverPressableClass = `${mutedBgHoverClass} ${strongBgFocusClass} ${strongBgActiveClass}`;
|
|
35
|
+
// faint (4%)
|
|
36
|
+
const faintBgClass = "fc-pulse-IKt";
|
|
37
|
+
const faintBgHoverClass = "fc-pulse-iAr";
|
|
38
|
+
const faintBgFocusClass = "fc-pulse-r6h";
|
|
39
|
+
const faintHoverPressableClass = `${faintBgHoverClass} ${faintBgFocusClass} ${mutedBgActiveClass}`;
|
|
40
|
+
const faintSolidBgClass = "fc-pulse-MfJ";
|
|
41
|
+
// tertiary (it's actually MUI's "secondary", like an accent color)
|
|
42
|
+
const tertiaryClass = "fc-pulse-s3B fc-pulse-BIe";
|
|
43
|
+
const tertiaryPressableClass = `${tertiaryClass} fc-pulse-Ry9 fc-pulse-ra6`;
|
|
44
|
+
const tertiaryPressableGroupClass = `${tertiaryClass} fc-pulse-BVo fc-pulse-3U0`;
|
|
45
|
+
// usually 11px font / 12px line-height
|
|
46
|
+
const xxsTextClass = "fc-pulse-HRt";
|
|
47
|
+
// transparent resizer for mouse
|
|
48
|
+
const blockPointerResizerClass = "fc-pulse-YA2 fc-pulse-C9h fc-pulse-ZkV";
|
|
49
|
+
const rowPointerResizerClass = `${blockPointerResizerClass} fc-pulse-8ZZ fc-pulse-1lj`;
|
|
50
|
+
const columnPointerResizerClass = `${blockPointerResizerClass} fc-pulse-xX5 fc-pulse-433`;
|
|
51
|
+
// circle resizer for touch
|
|
52
|
+
const blockTouchResizerClass = `fc-pulse-YA2 fc-pulse-tEU fc-pulse-UZp fc-pulse-qvz fc-pulse-Y27 fc-pulse-IdG`;
|
|
53
|
+
const rowTouchResizerClass = `${blockTouchResizerClass} fc-pulse-if4 fc-pulse-NN9`;
|
|
54
|
+
const columnTouchResizerClass = `${blockTouchResizerClass} fc-pulse-Z2g fc-pulse-RWU`;
|
|
55
|
+
const tallDayCellBottomClass = "fc-pulse-iJ1";
|
|
56
|
+
const getShortDayCellBottomClass = (data) => joinClassNames(!data.isNarrow && "fc-pulse-s9U");
|
|
57
|
+
const dayRowCommonClasses = {
|
|
58
|
+
/* Day Row > List-Item Event
|
|
59
|
+
----------------------------------------------------------------------------------------------- */
|
|
60
|
+
listItemEventClass: (data) => joinClassNames("fc-pulse-mwm fc-pulse-df6 fc-pulse-dpa", data.isNarrow ? "fc-pulse-qK4" : "fc-pulse-MOr", data.isSelected
|
|
61
|
+
? mutedBgClass
|
|
62
|
+
: data.isInteractive
|
|
63
|
+
? mutedHoverPressableClass
|
|
64
|
+
: mutedBgHoverClass),
|
|
65
|
+
listItemEventInnerClass: (data) => joinClassNames("fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-Klj", data.isNarrow
|
|
66
|
+
? `fc-pulse-h2r ${xxsTextClass}`
|
|
67
|
+
: "fc-pulse-vvo fc-pulse-17F"),
|
|
68
|
+
listItemEventTimeClass: (data) => joinClassNames(data.isNarrow ? "fc-pulse-OKV" : "fc-pulse-55Y", "fc-pulse-V3u fc-pulse-JTJ fc-pulse-O5O fc-pulse-qbn"),
|
|
69
|
+
listItemEventTitleClass: (data) => joinClassNames(data.isNarrow ? "fc-pulse-OKV" : "fc-pulse-55Y", "fc-pulse-kIZ fc-pulse-JTJ fc-pulse-O5O fc-pulse-nGI", data.timeText && "fc-pulse-yGY"),
|
|
70
|
+
/* Day Row > Row Event
|
|
71
|
+
----------------------------------------------------------------------------------------------- */
|
|
72
|
+
rowEventClass: (data) => joinClassNames(data.isStart && (data.isNarrow ? "fc-pulse-GSF" : "fc-pulse-fpO"), data.isEnd && (data.isNarrow ? "fc-pulse-Jha" : "fc-pulse-hCF")),
|
|
73
|
+
rowEventInnerClass: (data) => data.isNarrow ? "fc-pulse-h2r" : "fc-pulse-vvo",
|
|
74
|
+
/* Day Row > More-Link
|
|
75
|
+
----------------------------------------------------------------------------------------------- */
|
|
76
|
+
rowMoreLinkClass: (data) => joinClassNames("fc-pulse-mwm fc-pulse-UZp fc-pulse-dpa", data.isNarrow
|
|
77
|
+
? `fc-pulse-qK4 fc-pulse-R95 ${mutedHoverPressableClass}`
|
|
78
|
+
: `fc-pulse-rK9 fc-pulse-MOr fc-pulse-lqW ${mutedPressableClass}`),
|
|
79
|
+
rowMoreLinkInnerClass: (data) => joinClassNames(data.isNarrow
|
|
80
|
+
? `fc-pulse-df6 ${xxsTextClass}`
|
|
81
|
+
: "fc-pulse-KbZ fc-pulse-17F", "fc-pulse-HBk"),
|
|
82
|
+
};
|
|
83
|
+
function EventCalendarViews({ className, liquidHeight, height, views: userViews, ...restOptions }) {
|
|
84
|
+
const borderlessX = restOptions.borderlessX ?? restOptions.borderless;
|
|
85
|
+
const borderlessBottom = restOptions.borderlessBottom ?? restOptions.borderless;
|
|
86
|
+
return (React.createElement(Box, { className: className, sx: {
|
|
87
|
+
bgcolor: "background.paper",
|
|
88
|
+
borderStyle: "solid",
|
|
89
|
+
borderColor: "divider",
|
|
90
|
+
borderLeftWidth: borderlessX ? 0 : 1,
|
|
91
|
+
borderRightWidth: borderlessX ? 0 : 1,
|
|
92
|
+
borderTopWidth: 1,
|
|
93
|
+
borderBottomWidth: borderlessBottom ? 0 : 1,
|
|
94
|
+
...((borderlessX || borderlessBottom) ? {} : {
|
|
95
|
+
borderRadius: 1,
|
|
96
|
+
overflow: "fc-pulse-C9h",
|
|
97
|
+
}),
|
|
98
|
+
...(liquidHeight ? { flexGrow: 1, minHeight: 0 } : {}),
|
|
99
|
+
} },
|
|
100
|
+
React.createElement(FullCalendar, { className: "fc-pulse-ND7", height: liquidHeight ? "100%" : height,
|
|
101
|
+
/* Abstract Event
|
|
102
|
+
----------------------------------------------------------------------------------------- */
|
|
103
|
+
eventShortHeight: 50, eventColor: "var(--mui-palette-primary-main)", eventContrastColor: "var(--mui-palette-primary-contrastText)", eventClass: (data) => joinClassNames(data.isSelected
|
|
104
|
+
? joinClassNames(outlineWidthClass, data.isDragging && "fc-pulse-ACR")
|
|
105
|
+
: outlineWidthFocusClass, tertiaryOutlineColorClass),
|
|
106
|
+
/* Background Event
|
|
107
|
+
----------------------------------------------------------------------------------------- */
|
|
108
|
+
backgroundEventColor: "var(--mui-palette-secondary-main)", backgroundEventClass: "fc-pulse-Z7B", backgroundEventTitleClass: (data) => joinClassNames("fc-pulse-F6C fc-pulse-dra fc-pulse-HBk", (data.isNarrow || data.isShort)
|
|
109
|
+
? `fc-pulse-xbC ${xxsTextClass}`
|
|
110
|
+
: "fc-pulse-aS8 fc-pulse-17F"),
|
|
111
|
+
/* List-Item Event
|
|
112
|
+
----------------------------------------------------------------------------------------- */
|
|
113
|
+
listItemEventTitleClass: "fc-pulse-HBk", listItemEventTimeClass: "fc-pulse-Znt",
|
|
114
|
+
/* Block Event
|
|
115
|
+
----------------------------------------------------------------------------------------- */
|
|
116
|
+
blockEventClass: (data) => joinClassNames("fc-pulse-ytQ fc-pulse-vPs fc-pulse-lqW fc-pulse-iVS fc-pulse-n4P fc-pulse-82y fc-pulse-NNx", data.isInteractive && "fc-pulse-CdS", (data.isDragging && !data.isSelected) && "fc-pulse-0HG"), blockEventInnerClass: "fc-pulse-P9J fc-pulse-Nt8", blockEventTimeClass: "fc-pulse-JTJ fc-pulse-O5O fc-pulse-qbn", blockEventTitleClass: "fc-pulse-JTJ fc-pulse-O5O fc-pulse-nGI",
|
|
117
|
+
/* Row Event
|
|
118
|
+
----------------------------------------------------------------------------------------- */
|
|
119
|
+
rowEventClass: (data) => joinClassNames("fc-pulse-mwm fc-pulse-3WQ", data.isStart && "fc-pulse-fdR fc-pulse-riW", data.isEnd && "fc-pulse-Ea4 fc-pulse-EWl"), rowEventBeforeClass: (data) => joinClassNames(data.isStartResizable && joinClassNames(data.isSelected ? rowTouchResizerClass : rowPointerResizerClass, "fc-pulse-BD7")), rowEventAfterClass: (data) => joinClassNames(data.isEndResizable && joinClassNames(data.isSelected ? rowTouchResizerClass : rowPointerResizerClass, "fc-pulse-8rg")), rowEventInnerClass: (data) => joinClassNames("fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU", data.isNarrow ? xxsTextClass : "fc-pulse-17F"), rowEventTimeClass: (data) => (data.isNarrow ? "fc-pulse-qNU" : "fc-pulse-I6e"), rowEventTitleClass: (data) => joinClassNames(data.isNarrow ? "fc-pulse-55Y" : "fc-pulse-qB7", "fc-pulse-kIZ"),
|
|
120
|
+
/* Column Event
|
|
121
|
+
----------------------------------------------------------------------------------------- */
|
|
122
|
+
columnEventClass: (data) => joinClassNames("fc-pulse-zDQ fc-pulse-z3l fc-pulse-bLM", data.isStart && joinClassNames("fc-pulse-srs fc-pulse-dUI", data.isNarrow ? "fc-pulse-CSA" : "fc-pulse-IgY"), data.isEnd && joinClassNames("fc-pulse-QTT fc-pulse-etO", data.isNarrow ? "fc-pulse-mwm" : "fc-pulse-DE9")), columnEventBeforeClass: (data) => joinClassNames(data.isStartResizable && joinClassNames(data.isSelected ? columnTouchResizerClass : columnPointerResizerClass, "fc-pulse-f4s")), columnEventAfterClass: (data) => joinClassNames(data.isEndResizable && joinClassNames(data.isSelected ? columnTouchResizerClass : columnPointerResizerClass, "fc-pulse-I8n")), columnEventInnerClass: (data) => joinClassNames("fc-pulse-Hhr", data.isShort
|
|
123
|
+
? "fc-pulse-uEy fc-pulse-gfU fc-pulse-RVT fc-pulse-xbC"
|
|
124
|
+
: joinClassNames("fc-pulse-bXY", data.isNarrow ? "fc-pulse-qB7 fc-pulse-vvo" : "fc-pulse-ybQ fc-pulse-ztx"), (data.isNarrow || data.isShort) ? xxsTextClass : "fc-pulse-17F"), columnEventTimeClass: (data) => joinClassNames(!data.isShort && (data.isNarrow ? "fc-pulse-zvv" : "fc-pulse-q8O")), columnEventTitleClass: (data) => joinClassNames(!data.isShort && (data.isNarrow ? "fc-pulse-vvo" : "fc-pulse-ztx"), "fc-pulse-kIZ"),
|
|
125
|
+
/* More-Link
|
|
126
|
+
----------------------------------------------------------------------------------------- */
|
|
127
|
+
moreLinkClass: `${outlineWidthFocusClass} ${tertiaryOutlineColorClass}`, moreLinkInnerClass: "fc-pulse-JTJ fc-pulse-O5O", columnMoreLinkClass: `fc-pulse-kOE fc-pulse-UZp fc-pulse-lqW fc-pulse-ePV fc-pulse-UPi ${strongSolidPressableClass} fc-pulse-82y fc-pulse-z3l fc-pulse-bLM`, columnMoreLinkInnerClass: (data) => joinClassNames(data.isNarrow
|
|
128
|
+
? `fc-pulse-KbZ ${xxsTextClass}`
|
|
129
|
+
: "fc-pulse-xbC fc-pulse-17F", "fc-pulse-HBk"),
|
|
130
|
+
/* Day Header
|
|
131
|
+
----------------------------------------------------------------------------------------- */
|
|
132
|
+
dayHeaderClass: (data) => joinClassNames("fc-pulse-a65", data.inPopover ? "fc-pulse-QTT fc-pulse-G56" :
|
|
133
|
+
data.isMajor && "fc-pulse-UZp fc-pulse-I55"), dayHeaderInnerClass: (data) => joinClassNames("fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU", data.isNarrow ? "fc-pulse-17F" : "fc-pulse-gEy", data.inPopover ? joinClassNames("fc-pulse-RQK fc-pulse-qB7 fc-pulse-vvo fc-pulse-dpa fc-pulse-RKK fc-pulse-HBk", data.hasNavLink && mutedHoverPressableClass) : !data.dayNumberText ? joinClassNames("fc-pulse-qK4 fc-pulse-SrN fc-pulse-vvo fc-pulse-qMw fc-pulse-dpa fc-pulse-Znt", data.hasNavLink && mutedHoverPressableClass) : !data.isToday ? joinClassNames("fc-pulse-NoV fc-pulse-NqZ fc-pulse-6U1 fc-pulse-qMw fc-pulse-dpa fc-pulse-Znt", data.hasNavLink && mutedHoverPressableClass) : ("fc-pulse-ytQ fc-pulse-NoV fc-pulse-j5m fc-pulse-sgX fc-pulse-3jE")), dayHeaderContent: (data) => ((data.inPopover || !data.dayNumberText || !data.isToday) ? (React.createElement(React.Fragment, null, data.text)) : (React.createElement(React.Fragment, null, data.textParts.map((textPart, i) => (React.createElement("span", { key: i, className: joinClassNames("fc-pulse-csg", (textPart.type === "day" && data.isToday)
|
|
134
|
+
? joinClassNames("fc-pulse-F8v fc-pulse-cl4 fc-pulse-GRI fc-pulse-IdG fc-pulse-RKK fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-a65", data.hasNavLink
|
|
135
|
+
? joinClassNames(tertiaryPressableGroupClass, outlineWidthGroupFocusClass, outlineOffsetClass, tertiaryOutlineColorClass)
|
|
136
|
+
: tertiaryClass)
|
|
137
|
+
: "fc-pulse-Znt") }, textPart.value)))))),
|
|
138
|
+
/* Day Cell
|
|
139
|
+
----------------------------------------------------------------------------------------- */
|
|
140
|
+
dayCellClass: (data) => joinClassNames("fc-pulse-UZp", data.isMajor
|
|
141
|
+
? "fc-pulse-I55"
|
|
142
|
+
: "fc-pulse-G56"), dayCellTopClass: (data) => joinClassNames(data.isNarrow ? "fc-pulse-s9U" : "fc-pulse-naH", "fc-pulse-Hhr fc-pulse-uEy fc-pulse-RhI"), dayCellTopInnerClass: (data) => joinClassNames("fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU", data.isNarrow
|
|
143
|
+
? `fc-pulse-8in fc-pulse-cL9 ${xxsTextClass}`
|
|
144
|
+
: "fc-pulse-19X fc-pulse-6U1 fc-pulse-gEy", !data.isToday
|
|
145
|
+
? joinClassNames("fc-pulse-fdR fc-pulse-JTJ", !data.isOther && "fc-pulse-RKK", data.isNarrow ? "fc-pulse-qB7" : "fc-pulse-ybQ", data.monthText ? "fc-pulse-HBk" : "fc-pulse-Znt", data.hasNavLink && mutedHoverPressableClass)
|
|
146
|
+
: joinClassNames("fc-pulse-ytQ fc-pulse-3jE", data.isNarrow
|
|
147
|
+
? "fc-pulse-6gf"
|
|
148
|
+
: "fc-pulse-NoV")), dayCellTopContent: (data) => (!data.isToday ? (React.createElement(React.Fragment, null, data.text)) : (React.createElement(React.Fragment, null, data.textParts.map((textPart, i) => (React.createElement("span", { key: i, className: joinClassNames("fc-pulse-csg", (textPart.type === "day" && data.isToday)
|
|
149
|
+
? joinClassNames("fc-pulse-IdG fc-pulse-RKK fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-a65", data.isNarrow
|
|
150
|
+
? "fc-pulse-yFV"
|
|
151
|
+
: "fc-pulse-Fzs fc-pulse-F8v fc-pulse-cl4", data.hasNavLink
|
|
152
|
+
? joinClassNames(tertiaryPressableGroupClass, outlineWidthGroupFocusClass, outlineOffsetClass, tertiaryOutlineColorClass)
|
|
153
|
+
: tertiaryClass)
|
|
154
|
+
: (data.monthText ? "fc-pulse-HBk" : "fc-pulse-Znt")) }, textPart.value)))))), dayCellInnerClass: (data) => joinClassNames(data.inPopover && "fc-pulse-aS8"),
|
|
155
|
+
/* Popover
|
|
156
|
+
----------------------------------------------------------------------------------------- */
|
|
157
|
+
popoverClass: "fc-pulse-HBk fc-pulse-Y27 fc-pulse-DC1 fc-pulse-8Kl fc-pulse-O5O fc-pulse-uPX fc-pulse-c0k fc-pulse-nhl fc-pulse-ND7", popoverCloseClass: `fc-pulse-ytQ fc-pulse-YA2 fc-pulse-rzf fc-pulse-lvE fc-pulse-KbZ fc-pulse-dpa ${mutedHoverPressableClass} ${outlineWidthFocusClass} ${tertiaryOutlineColorClass} fc-pulse-om0`, popoverCloseContent: () => React.createElement(EventCalendarCloseIcon, null), dayLaneClass: (data) => joinClassNames("fc-pulse-UZp", data.isMajor ? "fc-pulse-I55" : "fc-pulse-G56", data.isDisabled && faintBgClass), dayLaneInnerClass: (data) => (data.isStack
|
|
158
|
+
? "fc-pulse-JQD"
|
|
159
|
+
: data.isNarrow ? "fc-pulse-6gf" : "fc-pulse-qK4"), slotLaneClass: (data) => joinClassNames("fc-pulse-UZp fc-pulse-G56", data.isMinor && "fc-pulse-M5N"), listDayClass: "fc-pulse-pLN fc-pulse-Hhr fc-pulse-bXY", listDayHeaderClass: `fc-pulse-QTT fc-pulse-G56 ${faintSolidBgClass} fc-pulse-HBk fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-Klj`, listDayHeaderInnerClass: (data) => joinClassNames("fc-pulse-RQK fc-pulse-qMw fc-pulse-vvo fc-pulse-dpa fc-pulse-gEy", !data.level && "fc-pulse-RKK", (!data.level && data.isToday)
|
|
160
|
+
? data.hasNavLink
|
|
161
|
+
? joinClassNames(tertiaryPressableClass, outlineOffsetClass)
|
|
162
|
+
: tertiaryClass
|
|
163
|
+
: data.hasNavLink && mutedHoverPressableClass), listDayEventsClass: `fc-pulse-RmH fc-pulse-G56 fc-pulse-qMw fc-pulse-KyB fc-pulse-ODb`,
|
|
164
|
+
/* Single Month (in Multi-Month)
|
|
165
|
+
----------------------------------------------------------------------------------------- */
|
|
166
|
+
singleMonthClass: "fc-pulse-sr2", singleMonthHeaderClass: (data) => joinClassNames(data.isSticky && "fc-pulse-QTT fc-pulse-G56 fc-pulse-Y27", data.colCount > 1 ? "fc-pulse-hw7" : "fc-pulse-ztx", "fc-pulse-gfU"), singleMonthHeaderInnerClass: (data) => joinClassNames("fc-pulse-qMw fc-pulse-vvo fc-pulse-dpa fc-pulse-PuF fc-pulse-HBk fc-pulse-RKK", data.hasNavLink && mutedHoverPressableClass),
|
|
167
|
+
/* Misc Table
|
|
168
|
+
----------------------------------------------------------------------------------------- */
|
|
169
|
+
tableHeaderClass: (data) => joinClassNames(data.isSticky && "fc-pulse-Y27"), fillerClass: "fc-pulse-UZp fc-pulse-G56 fc-pulse-F6C", dayNarrowWidth: 100, dayHeaderRowClass: "fc-pulse-UZp fc-pulse-G56", dayRowClass: "fc-pulse-UZp fc-pulse-G56", slotHeaderRowClass: "fc-pulse-UZp fc-pulse-G56", slotHeaderInnerClass: "fc-pulse-Znt",
|
|
170
|
+
/* Misc Content
|
|
171
|
+
----------------------------------------------------------------------------------------- */
|
|
172
|
+
navLinkClass: `${outlineWidthFocusClass} ${tertiaryOutlineColorClass}`, inlineWeekNumberClass: (data) => joinClassNames("fc-pulse-YA2 fc-pulse-9o9 fc-pulse-JTJ fc-pulse-Ea4 fc-pulse-Znt", data.isNarrow
|
|
173
|
+
? `fc-pulse-RWe fc-pulse-8in fc-pulse-KbZ ${xxsTextClass}`
|
|
174
|
+
: "fc-pulse-CdJ fc-pulse-xbC fc-pulse-17F", data.hasNavLink && mutedHoverPressableClass), highlightClass: "fc-pulse-gKu", nonBusinessClass: faintBgClass, nowIndicatorLineClass: "fc-pulse-7VH fc-pulse-v0S fc-pulse-R3n", nowIndicatorDotClass: "fc-pulse-xny fc-pulse-uDX fc-pulse-R3n fc-pulse-UmK fc-pulse-IdG fc-pulse-fo8 fc-pulse-bLM",
|
|
175
|
+
/* View-Specific Options
|
|
176
|
+
----------------------------------------------------------------------------------------- */
|
|
177
|
+
views: {
|
|
178
|
+
...userViews,
|
|
179
|
+
dayGrid: {
|
|
180
|
+
...dayRowCommonClasses,
|
|
181
|
+
dayHeaderAlign: (data) => data.inPopover ? "start" : data.isNarrow ? "center" : "end",
|
|
182
|
+
dayHeaderDividerClass: `fc-pulse-QTT fc-pulse-G56`,
|
|
183
|
+
dayCellBottomClass: getShortDayCellBottomClass,
|
|
184
|
+
...userViews?.dayGrid,
|
|
185
|
+
},
|
|
186
|
+
multiMonth: {
|
|
187
|
+
...dayRowCommonClasses,
|
|
188
|
+
dayHeaderAlign: (data) => data.inPopover ? "start" : data.isNarrow ? "center" : "end",
|
|
189
|
+
dayHeaderDividerClass: (data) => joinClassNames(data.isSticky && `fc-pulse-QTT fc-pulse-G56`),
|
|
190
|
+
dayCellBottomClass: getShortDayCellBottomClass,
|
|
191
|
+
viewClass: faintBgClass,
|
|
192
|
+
tableBodyClass: `fc-pulse-UZp fc-pulse-G56 fc-pulse-Y27 fc-pulse-dpa fc-pulse-O5O`,
|
|
193
|
+
...userViews?.multiMonth,
|
|
194
|
+
},
|
|
195
|
+
timeGrid: {
|
|
196
|
+
...dayRowCommonClasses,
|
|
197
|
+
dayHeaderAlign: (data) => data.inPopover ? "start" : "center",
|
|
198
|
+
dayHeaderDividerClass: (data) => joinClassNames("fc-pulse-QTT", data.options.allDaySlot
|
|
199
|
+
? "fc-pulse-G56"
|
|
200
|
+
: "fc-pulse-I55 fc-pulse-5jb"),
|
|
201
|
+
dayCellBottomClass: tallDayCellBottomClass,
|
|
202
|
+
/* TimeGrid > Week Number Header
|
|
203
|
+
------------------------------------------------------------------------------------- */
|
|
204
|
+
weekNumberHeaderClass: "fc-pulse-gfU fc-pulse-RhI",
|
|
205
|
+
weekNumberHeaderInnerClass: (data) => joinClassNames("fc-pulse-qK4 fc-pulse-6U1 fc-pulse-qMw fc-pulse-Znt fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-dpa", data.isNarrow ? "fc-pulse-17F" : "fc-pulse-gEy", data.hasNavLink && mutedHoverPressableClass),
|
|
206
|
+
/* TimeGrid > All-Day Header
|
|
207
|
+
------------------------------------------------------------------------------------- */
|
|
208
|
+
allDayHeaderClass: "fc-pulse-gfU",
|
|
209
|
+
allDayHeaderInnerClass: (data) => joinClassNames("fc-pulse-aS8 fc-pulse-Znt", data.isNarrow ? xxsTextClass : "fc-pulse-17F"),
|
|
210
|
+
allDayDividerClass: `fc-pulse-QTT fc-pulse-I55 fc-pulse-5jb`,
|
|
211
|
+
/* TimeGrid > Slot Header
|
|
212
|
+
------------------------------------------------------------------------------------- */
|
|
213
|
+
slotHeaderClass: "fc-pulse-RhI",
|
|
214
|
+
slotHeaderInnerClass: (data) => joinClassNames("fc-pulse-vPs fc-pulse-aS8", data.isNarrow
|
|
215
|
+
? `fc-pulse-byi ${xxsTextClass}`
|
|
216
|
+
: "fc-pulse-IWs fc-pulse-17F", data.isFirst && "fc-pulse-C9h"),
|
|
217
|
+
slotHeaderDividerClass: `fc-pulse-EWl fc-pulse-G56`,
|
|
218
|
+
...userViews?.timeGrid,
|
|
219
|
+
},
|
|
220
|
+
list: {
|
|
221
|
+
/* List-View > List-Item Event
|
|
222
|
+
------------------------------------------------------------------------------------- */
|
|
223
|
+
listItemEventClass: (data) => joinClassNames("fc-pulse-ytQ fc-pulse-ztx fc-pulse-dpa", data.isInteractive
|
|
224
|
+
? joinClassNames(faintHoverPressableClass, outlineInsetClass)
|
|
225
|
+
: "fc-pulse-iAr"),
|
|
226
|
+
listItemEventBeforeClass: "fc-pulse-4AD fc-pulse-n4P fc-pulse-IdG",
|
|
227
|
+
listItemEventInnerClass: "fc-pulse-QDv",
|
|
228
|
+
listItemEventTimeClass: "fc-pulse-f5K fc-pulse-yvz fc-pulse-8Ko fc-pulse-rcn fc-pulse-jQ9 fc-pulse-KyB fc-pulse-JTJ fc-pulse-O5O fc-pulse-yGY fc-pulse-gEy",
|
|
229
|
+
listItemEventTitleClass: (data) => joinClassNames("fc-pulse-oee fc-pulse-qbd fc-pulse-jQ9 fc-pulse-KyB fc-pulse-JTJ fc-pulse-O5O fc-pulse-gEy", data.event.url && "fc-pulse-YdZ"),
|
|
230
|
+
/* No-Events Screen
|
|
231
|
+
------------------------------------------------------------------------------------- */
|
|
232
|
+
noEventsClass: "fc-pulse-oee fc-pulse-Hhr fc-pulse-bXY fc-pulse-gfU fc-pulse-a65",
|
|
233
|
+
noEventsInnerClass: "fc-pulse-UyD",
|
|
234
|
+
...userViews?.list,
|
|
235
|
+
},
|
|
236
|
+
}, ...restOptions })));
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export { dayRowCommonClasses, EventCalendarViews as default, faintBgClass, faintHoverPressableClass, faintSolidBgClass, getShortDayCellBottomClass, mutedBgClass, mutedHoverPressableClass, outlineInsetClass, outlineOffsetClass, outlineWidthClass, outlineWidthFocusClass, outlineWidthGroupFocusClass, rowPointerResizerClass, rowTouchResizerClass, strongSolidPressableClass, tallDayCellBottomClass, tertiaryClass, tertiaryOutlineColorClass, tertiaryPressableClass, tertiaryPressableGroupClass };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CalendarOptions } from '@fullcalendar/core';
|
|
3
|
+
|
|
4
|
+
interface ResourceTimeGridProps extends Omit<CalendarOptions, 'class'> {
|
|
5
|
+
availableViews?: string[];
|
|
6
|
+
addButton?: {
|
|
7
|
+
isPrimary?: boolean;
|
|
8
|
+
text?: string;
|
|
9
|
+
hint?: string;
|
|
10
|
+
click?: (ev: MouseEvent) => void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare function ResourceTimeGrid({ availableViews, addButton, className, height, contentHeight, direction, plugins: userPlugins, ...restOptions }: ResourceTimeGridProps): React.JSX.Element;
|
|
14
|
+
|
|
15
|
+
export { ResourceTimeGridProps, ResourceTimeGrid as default };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCalendarController } from '@fullcalendar/react';
|
|
3
|
+
import adaptivePlugin from '@fullcalendar/adaptive';
|
|
4
|
+
import interactionPlugin from '@fullcalendar/interaction';
|
|
5
|
+
import scrollGridPlugin from '@fullcalendar/scrollgrid';
|
|
6
|
+
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
|
|
7
|
+
import EventCalendarToolbar from './EventCalendarToolbar.js';
|
|
8
|
+
import SchedulerViews from './SchedulerViews.js';
|
|
9
|
+
import EventCalendarContainer from './EventCalendarContainer.js';
|
|
10
|
+
import '@mui/material/Box';
|
|
11
|
+
import '@mui/material/Button';
|
|
12
|
+
import '@mui/material/IconButton';
|
|
13
|
+
import '@mui/material/Typography';
|
|
14
|
+
import '@mui/material/ToggleButtonGroup';
|
|
15
|
+
import '@mui/material/ToggleButton';
|
|
16
|
+
import './icons.js';
|
|
17
|
+
import '@fullcalendar/core';
|
|
18
|
+
import '@mui/icons-material/ChevronLeft';
|
|
19
|
+
import '@mui/icons-material/ChevronRight';
|
|
20
|
+
import '@mui/icons-material/Close';
|
|
21
|
+
import '@mui/icons-material/ExpandMore';
|
|
22
|
+
import './EventCalendarViews.js';
|
|
23
|
+
import '@mui/material';
|
|
24
|
+
|
|
25
|
+
const plugins = [
|
|
26
|
+
adaptivePlugin,
|
|
27
|
+
interactionPlugin,
|
|
28
|
+
scrollGridPlugin,
|
|
29
|
+
resourceTimeGridPlugin,
|
|
30
|
+
];
|
|
31
|
+
const defaultAvailableViews = [
|
|
32
|
+
'resourceTimeGridDay',
|
|
33
|
+
'resourceTimeGridWeek',
|
|
34
|
+
];
|
|
35
|
+
const navLinkDayClick = 'resourceTimeGridDay';
|
|
36
|
+
const navLinkWeekClick = 'resourceTimeGridWeek';
|
|
37
|
+
function ResourceTimeGrid({ availableViews = defaultAvailableViews, addButton, className, height, contentHeight, direction, plugins: userPlugins = [], ...restOptions }) {
|
|
38
|
+
const controller = useCalendarController();
|
|
39
|
+
const autoHeight = height === 'auto' || contentHeight === 'auto';
|
|
40
|
+
return (React.createElement(EventCalendarContainer, { direction: direction, className: className, height: height },
|
|
41
|
+
React.createElement(EventCalendarToolbar, { controller: controller, availableViews: availableViews, addButton: addButton, borderlessX: restOptions.borderlessX ?? restOptions.borderless }),
|
|
42
|
+
React.createElement(SchedulerViews, { liquidHeight: !autoHeight && height !== undefined, height: autoHeight ? 'auto' : contentHeight, initialView: availableViews[0], navLinkDayClick: navLinkDayClick, navLinkWeekClick: navLinkWeekClick, controller: controller, plugins: [...plugins, ...userPlugins], ...restOptions })));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { ResourceTimeGrid as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CalendarOptions } from '@fullcalendar/core';
|
|
3
|
+
|
|
4
|
+
interface ResourceTimelineProps extends Omit<CalendarOptions, 'class'> {
|
|
5
|
+
availableViews?: string[];
|
|
6
|
+
addButton?: {
|
|
7
|
+
isPrimary?: boolean;
|
|
8
|
+
text?: string;
|
|
9
|
+
hint?: string;
|
|
10
|
+
click?: (ev: MouseEvent) => void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare function ResourceTimeline({ availableViews, addButton, className, height, contentHeight, direction, plugins: userPlugins, ...restOptions }: ResourceTimelineProps): React.JSX.Element;
|
|
14
|
+
|
|
15
|
+
export { ResourceTimelineProps, ResourceTimeline as default };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCalendarController } from '@fullcalendar/react';
|
|
3
|
+
import adaptivePlugin from '@fullcalendar/adaptive';
|
|
4
|
+
import resourceTimelinePlugin from '@fullcalendar/resource-timeline';
|
|
5
|
+
import interactionPlugin from '@fullcalendar/interaction';
|
|
6
|
+
import EventCalendarToolbar from './EventCalendarToolbar.js';
|
|
7
|
+
import SchedulerViews from './SchedulerViews.js';
|
|
8
|
+
import EventCalendarContainer from './EventCalendarContainer.js';
|
|
9
|
+
import '@mui/material/Box';
|
|
10
|
+
import '@mui/material/Button';
|
|
11
|
+
import '@mui/material/IconButton';
|
|
12
|
+
import '@mui/material/Typography';
|
|
13
|
+
import '@mui/material/ToggleButtonGroup';
|
|
14
|
+
import '@mui/material/ToggleButton';
|
|
15
|
+
import './icons.js';
|
|
16
|
+
import '@fullcalendar/core';
|
|
17
|
+
import '@mui/icons-material/ChevronLeft';
|
|
18
|
+
import '@mui/icons-material/ChevronRight';
|
|
19
|
+
import '@mui/icons-material/Close';
|
|
20
|
+
import '@mui/icons-material/ExpandMore';
|
|
21
|
+
import './EventCalendarViews.js';
|
|
22
|
+
import '@mui/material';
|
|
23
|
+
|
|
24
|
+
const plugins = [
|
|
25
|
+
adaptivePlugin,
|
|
26
|
+
interactionPlugin,
|
|
27
|
+
resourceTimelinePlugin,
|
|
28
|
+
];
|
|
29
|
+
const defaultAvailableViews = [
|
|
30
|
+
'resourceTimelineDay',
|
|
31
|
+
'resourceTimelineWeek',
|
|
32
|
+
];
|
|
33
|
+
const navLinkDayClick = 'resourceTimelineDay';
|
|
34
|
+
const navLinkWeekClick = 'resourceTimelineWeek';
|
|
35
|
+
function ResourceTimeline({ availableViews = defaultAvailableViews, addButton, className, height, contentHeight, direction, plugins: userPlugins = [], ...restOptions }) {
|
|
36
|
+
const controller = useCalendarController();
|
|
37
|
+
const autoHeight = height === 'auto' || contentHeight === 'auto';
|
|
38
|
+
return (React.createElement(EventCalendarContainer, { direction: direction, className: className, height: height },
|
|
39
|
+
React.createElement(EventCalendarToolbar, { controller: controller, availableViews: availableViews, addButton: addButton, borderlessX: restOptions.borderlessX ?? restOptions.borderless }),
|
|
40
|
+
React.createElement(SchedulerViews, { liquidHeight: !autoHeight && height !== undefined, height: autoHeight ? 'auto' : contentHeight, initialView: availableViews[0], navLinkDayClick: navLinkDayClick, navLinkWeekClick: navLinkWeekClick, controller: controller, plugins: [...plugins, ...userPlugins], ...restOptions })));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { ResourceTimeline as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { EventCalendarViewsProps } from './EventCalendarViews.js';
|
|
3
|
+
|
|
4
|
+
interface SchedulerViewsProps extends EventCalendarViewsProps {
|
|
5
|
+
}
|
|
6
|
+
declare function SchedulerViews({ views: userViews, ...restOptions }: SchedulerViewsProps): React.JSX.Element;
|
|
7
|
+
|
|
8
|
+
export { SchedulerViewsProps, SchedulerViews as default };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { joinClassNames } from '@fullcalendar/core';
|
|
3
|
+
import EventCalendarViews, { mutedBgClass, mutedHoverPressableClass, outlineWidthFocusClass, tertiaryOutlineColorClass, strongSolidPressableClass } from './EventCalendarViews.js';
|
|
4
|
+
import { EventCalendarExpanderIcon } from './icons.js';
|
|
5
|
+
import '@fullcalendar/react';
|
|
6
|
+
import '@mui/material';
|
|
7
|
+
import '@mui/icons-material/ChevronLeft';
|
|
8
|
+
import '@mui/icons-material/ChevronRight';
|
|
9
|
+
import '@mui/icons-material/Close';
|
|
10
|
+
import '@mui/icons-material/ExpandMore';
|
|
11
|
+
|
|
12
|
+
function SchedulerViews({ views: userViews, ...restOptions }) {
|
|
13
|
+
return (React.createElement(EventCalendarViews
|
|
14
|
+
/* Resource Day Header
|
|
15
|
+
------------------------------------------------------------------------------------------- */
|
|
16
|
+
, {
|
|
17
|
+
/* Resource Day Header
|
|
18
|
+
------------------------------------------------------------------------------------------- */
|
|
19
|
+
resourceDayHeaderAlign: "center", resourceDayHeaderClass: (data) => joinClassNames(data.isMajor && "fc-pulse-UZp fc-pulse-I55"), resourceDayHeaderInnerClass: (data) => joinClassNames("fc-pulse-aS8 fc-pulse-Hhr fc-pulse-uEy fc-pulse-gfU fc-pulse-Znt", data.isNarrow ? "fc-pulse-17F" : "fc-pulse-gEy"),
|
|
20
|
+
/* Resource Data Grid
|
|
21
|
+
------------------------------------------------------------------------------------------- */
|
|
22
|
+
resourceColumnHeaderClass: "fc-pulse-UZp fc-pulse-G56 fc-pulse-a65", resourceColumnHeaderInnerClass: "fc-pulse-aS8 fc-pulse-HBk fc-pulse-gEy", resourceColumnResizerClass: "fc-pulse-YA2 fc-pulse-8ZZ fc-pulse-Ahl fc-pulse-W3O", resourceGroupHeaderClass: `fc-pulse-UZp fc-pulse-G56 ${mutedBgClass}`, resourceGroupHeaderInnerClass: "fc-pulse-aS8 fc-pulse-HBk fc-pulse-gEy", resourceCellClass: "fc-pulse-UZp fc-pulse-G56", resourceCellInnerClass: "fc-pulse-aS8 fc-pulse-HBk fc-pulse-gEy", resourceIndentClass: "fc-pulse-fpO fc-pulse-aCj fc-pulse-a65", resourceExpanderClass: `fc-pulse-ytQ fc-pulse-KbZ fc-pulse-dpa ${mutedHoverPressableClass} ${outlineWidthFocusClass} ${tertiaryOutlineColorClass}`, resourceExpanderContent: (data) => (React.createElement(EventCalendarExpanderIcon, { isExpanded: data.isExpanded })), resourceHeaderRowClass: "fc-pulse-UZp fc-pulse-G56", resourceRowClass: "fc-pulse-UZp fc-pulse-G56", resourceColumnDividerClass: "fc-pulse-EWl fc-pulse-I55",
|
|
23
|
+
/* Timeline Lane
|
|
24
|
+
------------------------------------------------------------------------------------------- */
|
|
25
|
+
resourceGroupLaneClass: `fc-pulse-UZp fc-pulse-G56 ${mutedBgClass}`, resourceLaneClass: "fc-pulse-UZp fc-pulse-G56", resourceLaneBottomClass: (data) => joinClassNames(data.options.eventOverlap && "fc-pulse-433"), timelineBottomClass: "fc-pulse-433",
|
|
26
|
+
/* View-Specific Options
|
|
27
|
+
------------------------------------------------------------------------------------------- */
|
|
28
|
+
views: {
|
|
29
|
+
...userViews,
|
|
30
|
+
timeline: {
|
|
31
|
+
/* Timeline > Row Event
|
|
32
|
+
--------------------------------------------------------------------------------------- */
|
|
33
|
+
rowEventClass: (data) => joinClassNames(data.isEnd && "fc-pulse-bpq"),
|
|
34
|
+
rowEventInnerClass: (data) => data.options.eventOverlap ? "fc-pulse-ztx" : "fc-pulse-KyB",
|
|
35
|
+
/* Timeline > More-Link
|
|
36
|
+
--------------------------------------------------------------------------------------- */
|
|
37
|
+
rowMoreLinkClass: `fc-pulse-bpq fc-pulse-mwm fc-pulse-UZp fc-pulse-lqW fc-pulse-ePV fc-pulse-dpa ${strongSolidPressableClass} fc-pulse-82y`,
|
|
38
|
+
rowMoreLinkInnerClass: `fc-pulse-xbC fc-pulse-HBk fc-pulse-17F`,
|
|
39
|
+
/* Timeline > Slot Header
|
|
40
|
+
--------------------------------------------------------------------------------------- */
|
|
41
|
+
slotHeaderAlign: (data) => data.isTime ? "start" : "center",
|
|
42
|
+
slotHeaderClass: (data) => joinClassNames(data.level > 0 && "fc-pulse-UZp fc-pulse-G56", "fc-pulse-a65"),
|
|
43
|
+
slotHeaderInnerClass: (data) => joinClassNames("fc-pulse-aS8 fc-pulse-gEy", data.isTime && joinClassNames("fc-pulse-vPs fc-pulse-WvE", data.isFirst && "fc-pulse-C9h"), data.hasNavLink && "fc-pulse-jaW"),
|
|
44
|
+
slotHeaderDividerClass: `fc-pulse-QTT fc-pulse-I55 fc-pulse-5jb`,
|
|
45
|
+
...userViews?.timeline,
|
|
46
|
+
},
|
|
47
|
+
}, ...restOptions }));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { SchedulerViews as default };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
declare function EventCalendarPrevIcon(): React.JSX.Element;
|
|
4
|
+
declare function EventCalendarNextIcon(): React.JSX.Element;
|
|
5
|
+
declare function EventCalendarCloseIcon(): React.JSX.Element;
|
|
6
|
+
interface EventCalendarExpanderIconProps {
|
|
7
|
+
isExpanded: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function EventCalendarExpanderIcon({ isExpanded }: EventCalendarExpanderIconProps): React.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export { EventCalendarCloseIcon, EventCalendarExpanderIcon, EventCalendarExpanderIconProps, EventCalendarNextIcon, EventCalendarPrevIcon };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { joinClassNames } from '@fullcalendar/core';
|
|
3
|
+
import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
|
|
4
|
+
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
|
|
5
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
6
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
7
|
+
|
|
8
|
+
const pressableIconClass = "fc-pulse-5Kh fc-pulse-HHp fc-pulse-La2";
|
|
9
|
+
function EventCalendarPrevIcon() {
|
|
10
|
+
return React.createElement(ChevronLeftIcon, { className: "fc-pulse-AAt" });
|
|
11
|
+
}
|
|
12
|
+
function EventCalendarNextIcon() {
|
|
13
|
+
return React.createElement(ChevronRightIcon, { className: "fc-pulse-AAt" });
|
|
14
|
+
}
|
|
15
|
+
function EventCalendarCloseIcon() {
|
|
16
|
+
return (React.createElement(CloseIcon, { sx: { fontSize: 18, margin: "1px" }, className: pressableIconClass }));
|
|
17
|
+
}
|
|
18
|
+
function EventCalendarExpanderIcon({ isExpanded }) {
|
|
19
|
+
return (React.createElement(ExpandMoreIcon, { sx: { fontSize: 18, margin: "1px" }, className: joinClassNames(pressableIconClass, !isExpanded && "fc-pulse-doO fc-pulse-Bzb") }));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { EventCalendarCloseIcon, EventCalendarExpanderIcon, EventCalendarNextIcon, EventCalendarPrevIcon };
|