@tlmgo/tui-calendar 2.2.0
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/README.md +183 -0
- package/dist/toastui-calendar.css +1123 -0
- package/dist/toastui-calendar.ie11.js +27300 -0
- package/dist/toastui-calendar.ie11.min.js +9 -0
- package/dist/toastui-calendar.js +19597 -0
- package/dist/toastui-calendar.min.css +6 -0
- package/dist/toastui-calendar.min.js +9 -0
- package/dist/toastui-calendar.mjs +10600 -0
- package/package.json +108 -0
- package/types/factory/calendar.d.ts +14 -0
- package/types/factory/calendarCore.d.ts +504 -0
- package/types/factory/day.d.ts +7 -0
- package/types/factory/month.d.ts +11 -0
- package/types/factory/week.d.ts +7 -0
- package/types/index.d.ts +11 -0
- package/types/time/date.d.ts +206 -0
- package/types/types/eventBus.d.ts +40 -0
- package/types/types/events.d.ts +141 -0
- package/types/types/options.d.ts +82 -0
- package/types/types/template.d.ts +97 -0
- package/types/types/theme.d.ts +140 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Date Class to handle timezone offset.
|
|
3
|
+
*
|
|
4
|
+
* For more information, see {@link https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/tzdate.md|TZDate} in guide.
|
|
5
|
+
*
|
|
6
|
+
* @class TZDate
|
|
7
|
+
* @param {number|TZDate|Date|string} date - date value to be converted. If date is number or string, it should be eligible to parse by Date constructor.
|
|
8
|
+
*/
|
|
9
|
+
export default class TZDate {
|
|
10
|
+
private tzOffset;
|
|
11
|
+
private d;
|
|
12
|
+
constructor(...args: any[]);
|
|
13
|
+
/**
|
|
14
|
+
* Get the string representation of the date.
|
|
15
|
+
* @returns {string} string representation of the date.
|
|
16
|
+
*/
|
|
17
|
+
toString(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Add years to the instance.
|
|
20
|
+
* @param {number} y - number of years to be added.
|
|
21
|
+
* @returns {TZDate} - returns the instance itself.
|
|
22
|
+
*/
|
|
23
|
+
addFullYear(y: number): TZDate;
|
|
24
|
+
/**
|
|
25
|
+
* Add months to the instance.
|
|
26
|
+
* @param {number} m - number of months to be added.
|
|
27
|
+
* @returns {TZDate} - returns the instance itself.
|
|
28
|
+
*/
|
|
29
|
+
addMonth(m: number): TZDate;
|
|
30
|
+
/**
|
|
31
|
+
* Add dates to the instance.
|
|
32
|
+
* @param {number} d - number of days to be added.
|
|
33
|
+
* @returns {TZDate} - returns the instance itself.
|
|
34
|
+
*/
|
|
35
|
+
addDate(d: number): TZDate;
|
|
36
|
+
/**
|
|
37
|
+
* Add hours to the instance.
|
|
38
|
+
* @param {number} h - number of hours to be added.
|
|
39
|
+
* @returns {TZDate} - returns the instance itself.
|
|
40
|
+
*/
|
|
41
|
+
addHours(h: number): TZDate;
|
|
42
|
+
/**
|
|
43
|
+
* Add minutes to the instance.
|
|
44
|
+
* @param {number} M - number of minutes to be added.
|
|
45
|
+
* @returns {TZDate} - returns the instance itself.
|
|
46
|
+
*/
|
|
47
|
+
addMinutes(M: number): TZDate;
|
|
48
|
+
/**
|
|
49
|
+
* Add seconds to the instance.
|
|
50
|
+
* @param {number} s - number of seconds to be added.
|
|
51
|
+
* @returns {TZDate} - returns the instance itself.
|
|
52
|
+
*/
|
|
53
|
+
addSeconds(s: number): TZDate;
|
|
54
|
+
/**
|
|
55
|
+
* Add milliseconds to the instance.
|
|
56
|
+
* @param {number} ms - number of milliseconds to be added.
|
|
57
|
+
* @returns {TZDate} - returns the instance itself.
|
|
58
|
+
*/
|
|
59
|
+
addMilliseconds(ms: number): TZDate;
|
|
60
|
+
/**
|
|
61
|
+
* Set the date and time all at once.
|
|
62
|
+
* @param {number} y - year
|
|
63
|
+
* @param {number} m - month
|
|
64
|
+
* @param {number} d - date
|
|
65
|
+
* @param {number} h - hours
|
|
66
|
+
* @param {number} M - minutes
|
|
67
|
+
* @param {number} s - seconds
|
|
68
|
+
* @param {number} ms - milliseconds
|
|
69
|
+
* @returns {TZDate} - returns the instance itself.
|
|
70
|
+
*/
|
|
71
|
+
setWithRaw(y: number, m: number, d: number, h: number, M: number, s: number, ms: number): TZDate;
|
|
72
|
+
/**
|
|
73
|
+
* Convert the instance to the native `Date` object.
|
|
74
|
+
* @returns {Date} - The native `Date` object.
|
|
75
|
+
*/
|
|
76
|
+
toDate(): Date;
|
|
77
|
+
/**
|
|
78
|
+
* Get the value of the date. (milliseconds since 1970-01-01 00:00:00 (UTC+0))
|
|
79
|
+
* @returns {number} - value of the date.
|
|
80
|
+
*/
|
|
81
|
+
valueOf(): number;
|
|
82
|
+
/**
|
|
83
|
+
* Get the timezone offset from UTC in minutes.
|
|
84
|
+
* @returns {number} - timezone offset in minutes.
|
|
85
|
+
*/
|
|
86
|
+
getTimezoneOffset(): number;
|
|
87
|
+
/**
|
|
88
|
+
* Get milliseconds which is converted by timezone
|
|
89
|
+
* @returns {number} milliseconds
|
|
90
|
+
*/
|
|
91
|
+
getTime(): number;
|
|
92
|
+
/**
|
|
93
|
+
* Get the year of the instance.
|
|
94
|
+
* @returns {number} - full year
|
|
95
|
+
*/
|
|
96
|
+
getFullYear(): number;
|
|
97
|
+
/**
|
|
98
|
+
* Get the month of the instance. (zero-based)
|
|
99
|
+
* @returns {number} - month
|
|
100
|
+
*/
|
|
101
|
+
getMonth(): number;
|
|
102
|
+
/**
|
|
103
|
+
* Get the date of the instance.
|
|
104
|
+
* @returns {number} - date
|
|
105
|
+
*/
|
|
106
|
+
getDate(): number;
|
|
107
|
+
/**
|
|
108
|
+
* Get the hours of the instance.
|
|
109
|
+
* @returns {number} - hours
|
|
110
|
+
*/
|
|
111
|
+
getHours(): number;
|
|
112
|
+
/**
|
|
113
|
+
* Get the minutes of the instance.
|
|
114
|
+
* @returns {number} - minutes
|
|
115
|
+
*/
|
|
116
|
+
getMinutes(): number;
|
|
117
|
+
/**
|
|
118
|
+
* Get the seconds of the instance.
|
|
119
|
+
* @returns {number} - seconds
|
|
120
|
+
*/
|
|
121
|
+
getSeconds(): number;
|
|
122
|
+
/**
|
|
123
|
+
* Get the milliseconds of the instance.
|
|
124
|
+
* @returns {number} - milliseconds
|
|
125
|
+
*/
|
|
126
|
+
getMilliseconds(): number;
|
|
127
|
+
/**
|
|
128
|
+
* Get the day of the week of the instance.
|
|
129
|
+
* @returns {number} - day of the week
|
|
130
|
+
*/
|
|
131
|
+
getDay(): number;
|
|
132
|
+
/**
|
|
133
|
+
* Sets the instance to the time represented by a number of milliseconds since 1970-01-01 00:00:00 (UTC+0).
|
|
134
|
+
* @param {number} t - number of milliseconds
|
|
135
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
136
|
+
*/
|
|
137
|
+
setTime(t: number): number;
|
|
138
|
+
/**
|
|
139
|
+
* Sets the year-month-date of the instance. Equivalent to calling `setFullYear` of `Date` object.
|
|
140
|
+
* @param {number} y - year
|
|
141
|
+
* @param {number} m - month (zero-based)
|
|
142
|
+
* @param {number} d - date
|
|
143
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
144
|
+
*/
|
|
145
|
+
setFullYear(y: number, m?: number, d?: number): number;
|
|
146
|
+
/**
|
|
147
|
+
* Sets the month of the instance. Equivalent to calling `setMonth` of `Date` object.
|
|
148
|
+
* @param {number} m - month (zero-based)
|
|
149
|
+
* @param {number} d - date
|
|
150
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
151
|
+
*/
|
|
152
|
+
setMonth(m: number, d?: number): number;
|
|
153
|
+
/**
|
|
154
|
+
* Sets the date of the instance. Equivalent to calling `setDate` of `Date` object.
|
|
155
|
+
* @param {number} d - date
|
|
156
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
157
|
+
*/
|
|
158
|
+
setDate(d: number): number;
|
|
159
|
+
/**
|
|
160
|
+
* Sets the hours of the instance. Equivalent to calling `setHours` of `Date` object.
|
|
161
|
+
* @param {number} h - hours
|
|
162
|
+
* @param {number} M - minutes
|
|
163
|
+
* @param {number} s - seconds
|
|
164
|
+
* @param {number} ms - milliseconds
|
|
165
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
166
|
+
*/
|
|
167
|
+
setHours(h: number, M?: number, s?: number, ms?: number): number;
|
|
168
|
+
/**
|
|
169
|
+
* Sets the minutes of the instance. Equivalent to calling `setMinutes` of `Date` object.
|
|
170
|
+
* @param {number} M - minutes
|
|
171
|
+
* @param {number} s - seconds
|
|
172
|
+
* @param {number} ms - milliseconds
|
|
173
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
174
|
+
*/
|
|
175
|
+
setMinutes(M: number, s?: number, ms?: number): number;
|
|
176
|
+
/**
|
|
177
|
+
* Sets the seconds of the instance. Equivalent to calling `setSeconds` of `Date` object.
|
|
178
|
+
* @param {number} s - seconds
|
|
179
|
+
* @param {number} ms - milliseconds
|
|
180
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
181
|
+
*/
|
|
182
|
+
setSeconds(s: number, ms?: number): number;
|
|
183
|
+
/**
|
|
184
|
+
* Sets the milliseconds of the instance. Equivalent to calling `setMilliseconds` of `Date` object.
|
|
185
|
+
* @param {number} ms - milliseconds
|
|
186
|
+
* @returns {number} - Passed milliseconds of the instance since 1970-01-01 00:00:00 (UTC+0).
|
|
187
|
+
*/
|
|
188
|
+
setMilliseconds(ms: number): number;
|
|
189
|
+
/**
|
|
190
|
+
* Set the timezone offset of the instance.
|
|
191
|
+
* @param {string|number} tzValue - The name of timezone(IANA name) or timezone offset(in minutes).
|
|
192
|
+
* @returns {TZDate} - New instance with the timezone offset.
|
|
193
|
+
*/
|
|
194
|
+
tz(tzValue: string | 'Local' | number): TZDate;
|
|
195
|
+
/**
|
|
196
|
+
* Get the new instance following the system's timezone.
|
|
197
|
+
* If the system timezone is different from the timezone of the instance,
|
|
198
|
+
* the instance is converted to the system timezone.
|
|
199
|
+
*
|
|
200
|
+
* Instance's `tzOffset` property will be ignored if there is a `tzValue` parameter.
|
|
201
|
+
*
|
|
202
|
+
* @param {string|number} tzValue - The name of timezone(IANA name) or timezone offset(in minutes).
|
|
203
|
+
* @returns {TZDate} - New instance with the system timezone.
|
|
204
|
+
*/
|
|
205
|
+
local(tzValue?: string | number): TZDate;
|
|
206
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { EventObject, EventObjectWithDefaultValues } from "./events";
|
|
2
|
+
export declare type AnyFunc = (...args: any[]) => any;
|
|
3
|
+
export interface SelectDateTimeInfo {
|
|
4
|
+
start: Date;
|
|
5
|
+
end: Date;
|
|
6
|
+
isAllday: boolean;
|
|
7
|
+
nativeEvent?: MouseEvent;
|
|
8
|
+
gridSelectionElements: Element[];
|
|
9
|
+
}
|
|
10
|
+
export interface UpdatedEventInfo {
|
|
11
|
+
event: EventObjectWithDefaultValues;
|
|
12
|
+
changes: EventObject;
|
|
13
|
+
}
|
|
14
|
+
export interface DayNameInfo {
|
|
15
|
+
date: string;
|
|
16
|
+
}
|
|
17
|
+
export interface EventInfo {
|
|
18
|
+
event: EventObjectWithDefaultValues;
|
|
19
|
+
nativeEvent: MouseEvent;
|
|
20
|
+
}
|
|
21
|
+
export interface MoreEventsButton {
|
|
22
|
+
date: Date;
|
|
23
|
+
target: HTMLDivElement;
|
|
24
|
+
}
|
|
25
|
+
export declare type ScrollBehaviorOptions = ScrollToOptions['behavior'];
|
|
26
|
+
export declare type ExternalEventTypes = {
|
|
27
|
+
selectDateTime: (info: SelectDateTimeInfo) => void;
|
|
28
|
+
beforeCreateEvent: (event: EventObject) => void;
|
|
29
|
+
beforeUpdateEvent: (updatedEventInfo: UpdatedEventInfo) => void;
|
|
30
|
+
beforeDeleteEvent: (event: EventObjectWithDefaultValues) => void;
|
|
31
|
+
afterRenderEvent: (event: EventObjectWithDefaultValues) => void;
|
|
32
|
+
clickDayName: (dayNameInfo: DayNameInfo) => void;
|
|
33
|
+
clickEvent: (eventInfo: EventInfo) => void;
|
|
34
|
+
clickMoreEventsBtn: (moreEventsBtnInfo: MoreEventsButton) => void;
|
|
35
|
+
clickTimezonesCollapseBtn: (prevCollapsedState: boolean) => void;
|
|
36
|
+
[eventName: string]: AnyFunc;
|
|
37
|
+
};
|
|
38
|
+
export declare type InternalEventTypes = {
|
|
39
|
+
scrollToNow: (scrollBehavior?: ScrollBehaviorOptions) => void;
|
|
40
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { MarkOptional } from 'ts-essentials';
|
|
2
|
+
import type EventModel from "../model/eventModel";
|
|
3
|
+
import type EventUIModel from "../model/eventUIModel";
|
|
4
|
+
import type TZDate from "../time/date";
|
|
5
|
+
import type Collection from "../utils/collection";
|
|
6
|
+
import type { StyleProp } from "./components/common";
|
|
7
|
+
import type { CalendarInfo } from "./options";
|
|
8
|
+
export declare type Matrix<T> = T[][];
|
|
9
|
+
export declare type Matrix3d<T> = Matrix<T>[];
|
|
10
|
+
export declare type CollisionGroup = Matrix<number>;
|
|
11
|
+
export declare type DayGridEventMatrix = Matrix3d<EventUIModel>;
|
|
12
|
+
export declare type TimeGridEventMatrix = Record<string, Matrix3d<EventUIModel>>;
|
|
13
|
+
export declare type EventModelMap = {
|
|
14
|
+
milestone: EventUIModel[];
|
|
15
|
+
allday: EventUIModel[];
|
|
16
|
+
task: EventUIModel[];
|
|
17
|
+
time: EventUIModel[];
|
|
18
|
+
};
|
|
19
|
+
export declare type EventGroupMap = Record<keyof EventModelMap, DayGridEventMatrix | TimeGridEventMatrix>;
|
|
20
|
+
export declare type DateType = Date | string | number | TZDate;
|
|
21
|
+
export declare type IDS_OF_DAY = Record<string, number[]>;
|
|
22
|
+
export interface CalendarData {
|
|
23
|
+
calendars: CalendarInfo[];
|
|
24
|
+
events: Collection<EventModel>;
|
|
25
|
+
idsOfDay: IDS_OF_DAY;
|
|
26
|
+
}
|
|
27
|
+
export declare type EventCategory = 'milestone' | 'task' | 'allday' | 'time';
|
|
28
|
+
export declare type EventState = 'Busy' | 'Free';
|
|
29
|
+
export declare type EventObjectWithDefaultValues = MarkOptional<Required<EventObject>, 'color' | 'borderColor' | 'backgroundColor' | 'dragBackgroundColor'> & {
|
|
30
|
+
start: TZDate;
|
|
31
|
+
end: TZDate;
|
|
32
|
+
__cid: number;
|
|
33
|
+
};
|
|
34
|
+
export interface EventObject {
|
|
35
|
+
/**
|
|
36
|
+
* `Optional` unique id for various use
|
|
37
|
+
*/
|
|
38
|
+
id?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Calendar ID
|
|
41
|
+
*/
|
|
42
|
+
calendarId?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Title for the event
|
|
45
|
+
*/
|
|
46
|
+
title?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Body for the event
|
|
49
|
+
*/
|
|
50
|
+
body?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Determine if the event is an all-day event
|
|
53
|
+
*/
|
|
54
|
+
isAllday?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* When the event starts
|
|
57
|
+
*/
|
|
58
|
+
start?: DateType;
|
|
59
|
+
/**
|
|
60
|
+
* When the event ends
|
|
61
|
+
*/
|
|
62
|
+
end?: DateType;
|
|
63
|
+
/**
|
|
64
|
+
* Travel time which is taken to go
|
|
65
|
+
*/
|
|
66
|
+
goingDuration?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Travel time which is taken to come back
|
|
69
|
+
*/
|
|
70
|
+
comingDuration?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Location of the event
|
|
73
|
+
*/
|
|
74
|
+
location?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Attendees of the event
|
|
77
|
+
*/
|
|
78
|
+
attendees?: string[];
|
|
79
|
+
/**
|
|
80
|
+
* Category of the event (milestone, task, allday, time)
|
|
81
|
+
*/
|
|
82
|
+
category?: EventCategory;
|
|
83
|
+
/**
|
|
84
|
+
* Classification of work events (before work, before lunch, before work)
|
|
85
|
+
*/
|
|
86
|
+
dueDateClass?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Recurrence rule of the event
|
|
89
|
+
*/
|
|
90
|
+
recurrenceRule?: string;
|
|
91
|
+
/**
|
|
92
|
+
* State of the event. The default is 'Busy'
|
|
93
|
+
*/
|
|
94
|
+
state?: EventState;
|
|
95
|
+
/**
|
|
96
|
+
* Determine whether the event is shown or hidden
|
|
97
|
+
*/
|
|
98
|
+
isVisible?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Determine whether something is in progress
|
|
101
|
+
*/
|
|
102
|
+
isPending?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Determine whether the event is focused
|
|
105
|
+
*/
|
|
106
|
+
isFocused?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Determine whether the event is read-only
|
|
109
|
+
*/
|
|
110
|
+
isReadOnly?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Determine whether the event is private
|
|
113
|
+
*/
|
|
114
|
+
isPrivate?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Text color of the event element
|
|
117
|
+
*/
|
|
118
|
+
color?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Background color of the event element
|
|
121
|
+
*/
|
|
122
|
+
backgroundColor?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Background color of the dragging event element
|
|
125
|
+
*/
|
|
126
|
+
dragBackgroundColor?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Left border color of the event element
|
|
129
|
+
*/
|
|
130
|
+
borderColor?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Custom style for the event element
|
|
133
|
+
*/
|
|
134
|
+
customStyle?: StyleProp;
|
|
135
|
+
/**
|
|
136
|
+
* Raw data for the event
|
|
137
|
+
*/
|
|
138
|
+
raw?: any;
|
|
139
|
+
}
|
|
140
|
+
export declare type BooleanKeyOfEventObject = 'isPrivate' | 'isAllday' | 'isPending' | 'isFocused' | 'isVisible' | 'isReadOnly';
|
|
141
|
+
export declare type TimeUnit = 'second' | 'minute' | 'hour' | 'date' | 'month' | 'year';
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ComponentType } from 'preact';
|
|
2
|
+
import type { DeepPartial } from 'ts-essentials';
|
|
3
|
+
import type { EventObject, EventObjectWithDefaultValues } from "./events";
|
|
4
|
+
import type { TemplateConfig } from "./template";
|
|
5
|
+
import type { ThemeState } from "./theme";
|
|
6
|
+
export declare type EventView = 'allday' | 'time';
|
|
7
|
+
export declare type TaskView = 'milestone' | 'task';
|
|
8
|
+
export interface CollapseDuplicateEventsOptions {
|
|
9
|
+
getDuplicateEvents: (targetEvent: EventObjectWithDefaultValues, events: EventObjectWithDefaultValues[]) => EventObjectWithDefaultValues[];
|
|
10
|
+
getMainEvent: (events: EventObjectWithDefaultValues[]) => EventObjectWithDefaultValues;
|
|
11
|
+
}
|
|
12
|
+
export interface WeekOptions {
|
|
13
|
+
startDayOfWeek?: number;
|
|
14
|
+
dayNames?: [string, string, string, string, string, string, string] | [];
|
|
15
|
+
narrowWeekend?: boolean;
|
|
16
|
+
workweek?: boolean;
|
|
17
|
+
showNowIndicator?: boolean;
|
|
18
|
+
showTimezoneCollapseButton?: boolean;
|
|
19
|
+
timezonesCollapsed?: boolean;
|
|
20
|
+
hourStart?: number;
|
|
21
|
+
hourEnd?: number;
|
|
22
|
+
eventView?: boolean | EventView[];
|
|
23
|
+
taskView?: boolean | TaskView[];
|
|
24
|
+
collapseDuplicateEvents?: boolean | Partial<CollapseDuplicateEventsOptions>;
|
|
25
|
+
}
|
|
26
|
+
export interface MonthOptions {
|
|
27
|
+
dayNames?: [string, string, string, string, string, string, string] | [];
|
|
28
|
+
startDayOfWeek?: number;
|
|
29
|
+
narrowWeekend?: boolean;
|
|
30
|
+
visibleWeeksCount?: number;
|
|
31
|
+
isAlways6Weeks?: boolean;
|
|
32
|
+
workweek?: boolean;
|
|
33
|
+
visibleEventCount?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface GridSelectionOptions {
|
|
36
|
+
enableDblClick?: boolean;
|
|
37
|
+
enableClick?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface TimezoneConfig {
|
|
40
|
+
timezoneName: string;
|
|
41
|
+
displayLabel?: string;
|
|
42
|
+
tooltip?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface TimezoneOptions {
|
|
45
|
+
zones?: TimezoneConfig[];
|
|
46
|
+
customOffsetCalculator?: (timezoneName: string, timestamp: number) => number;
|
|
47
|
+
}
|
|
48
|
+
export interface CalendarColor {
|
|
49
|
+
color?: string;
|
|
50
|
+
backgroundColor?: string;
|
|
51
|
+
dragBackgroundColor?: string;
|
|
52
|
+
borderColor?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface CalendarInfo extends CalendarColor {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
}
|
|
58
|
+
export declare type ViewType = 'month' | 'week' | 'day';
|
|
59
|
+
export interface Options {
|
|
60
|
+
defaultView?: ViewType;
|
|
61
|
+
theme?: DeepPartial<ThemeState>;
|
|
62
|
+
template?: TemplateConfig;
|
|
63
|
+
week?: WeekOptions;
|
|
64
|
+
month?: MonthOptions;
|
|
65
|
+
calendars?: CalendarInfo[];
|
|
66
|
+
useFormPopup?: boolean;
|
|
67
|
+
useDetailPopup?: boolean;
|
|
68
|
+
gridSelection?: boolean | GridSelectionOptions;
|
|
69
|
+
isReadOnly?: boolean;
|
|
70
|
+
usageStatistics?: boolean;
|
|
71
|
+
eventFilter?: (event: EventObject) => boolean;
|
|
72
|
+
timezone?: TimezoneOptions;
|
|
73
|
+
}
|
|
74
|
+
export interface ViewInfoUserInput {
|
|
75
|
+
component: ComponentType<any>;
|
|
76
|
+
router?: {
|
|
77
|
+
linkTitle: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export declare type ViewListMap = {
|
|
81
|
+
[key: string]: ViewInfoUserInput;
|
|
82
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { VNode } from 'preact';
|
|
2
|
+
import type TZDate from "../time/date";
|
|
3
|
+
import type { EventObjectWithDefaultValues, TimeUnit } from "./events";
|
|
4
|
+
export interface TemplateTimeGridHourLabel {
|
|
5
|
+
hidden: boolean;
|
|
6
|
+
hour: number;
|
|
7
|
+
minutes: number;
|
|
8
|
+
}
|
|
9
|
+
export interface TemplateNow {
|
|
10
|
+
unit: TimeUnit;
|
|
11
|
+
time: TZDate;
|
|
12
|
+
format: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TemplateMonthGrid {
|
|
15
|
+
date: string;
|
|
16
|
+
day: number;
|
|
17
|
+
hiddenEventCount: number;
|
|
18
|
+
isOtherMonth: boolean;
|
|
19
|
+
isToday: boolean;
|
|
20
|
+
month: number;
|
|
21
|
+
ymd: string;
|
|
22
|
+
}
|
|
23
|
+
export interface TemplateMoreTitleDate {
|
|
24
|
+
ymd: string;
|
|
25
|
+
date: number;
|
|
26
|
+
day: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TemplateWeekDayName {
|
|
29
|
+
date: number;
|
|
30
|
+
day: number;
|
|
31
|
+
dayName: string;
|
|
32
|
+
isToday: boolean;
|
|
33
|
+
renderDate: string;
|
|
34
|
+
dateInstance: TZDate;
|
|
35
|
+
}
|
|
36
|
+
export interface TemplateMonthDayName {
|
|
37
|
+
day: number;
|
|
38
|
+
label: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* If display label does not exist in the timezone options,
|
|
42
|
+
* timezone offset based on timezone name will be passed
|
|
43
|
+
*/
|
|
44
|
+
export declare type TemplateTimezone = {
|
|
45
|
+
displayLabel: string;
|
|
46
|
+
timezoneOffset: null;
|
|
47
|
+
} | {
|
|
48
|
+
displayLabel: null;
|
|
49
|
+
timezoneOffset: number;
|
|
50
|
+
};
|
|
51
|
+
export declare type TemplateReturnType = string | VNode<{
|
|
52
|
+
className: string;
|
|
53
|
+
}>;
|
|
54
|
+
export interface Template {
|
|
55
|
+
milestoneTitle: () => TemplateReturnType;
|
|
56
|
+
milestone: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
57
|
+
taskTitle: () => TemplateReturnType;
|
|
58
|
+
task: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
59
|
+
alldayTitle: () => TemplateReturnType;
|
|
60
|
+
allday: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
61
|
+
time: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
62
|
+
goingDuration: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
63
|
+
comingDuration: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
64
|
+
monthMoreTitleDate: (moreTitle: TemplateMoreTitleDate) => TemplateReturnType;
|
|
65
|
+
monthMoreClose: () => TemplateReturnType;
|
|
66
|
+
monthGridHeader: (cellData: TemplateMonthGrid) => TemplateReturnType;
|
|
67
|
+
monthGridHeaderExceed: (hiddenEventsCount: number) => TemplateReturnType;
|
|
68
|
+
monthGridFooter: (cellData: TemplateMonthGrid) => TemplateReturnType;
|
|
69
|
+
monthGridFooterExceed: (hiddenEventsCount: number) => TemplateReturnType;
|
|
70
|
+
monthDayName: (monthDayNameData: TemplateMonthDayName) => TemplateReturnType;
|
|
71
|
+
weekDayName: (weekDayNameData: TemplateWeekDayName) => TemplateReturnType;
|
|
72
|
+
weekGridFooterExceed: (hiddenEventsCount: number) => TemplateReturnType;
|
|
73
|
+
collapseBtnTitle: () => TemplateReturnType;
|
|
74
|
+
timezoneDisplayLabel: (props: TemplateTimezone) => TemplateReturnType;
|
|
75
|
+
timegridDisplayPrimaryTime: (props: TemplateNow) => TemplateReturnType;
|
|
76
|
+
timegridDisplayTime: (props: TemplateNow) => TemplateReturnType;
|
|
77
|
+
timegridNowIndicatorLabel: (props: TemplateNow) => TemplateReturnType;
|
|
78
|
+
popupIsAllday: () => TemplateReturnType;
|
|
79
|
+
popupStateFree: () => TemplateReturnType;
|
|
80
|
+
popupStateBusy: () => TemplateReturnType;
|
|
81
|
+
titlePlaceholder: () => TemplateReturnType;
|
|
82
|
+
locationPlaceholder: () => TemplateReturnType;
|
|
83
|
+
startDatePlaceholder: () => TemplateReturnType;
|
|
84
|
+
endDatePlaceholder: () => TemplateReturnType;
|
|
85
|
+
popupSave: () => TemplateReturnType;
|
|
86
|
+
popupUpdate: () => TemplateReturnType;
|
|
87
|
+
popupDetailTitle: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
88
|
+
popupDetailDate: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
89
|
+
popupDetailLocation: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
90
|
+
popupDetailAttendees: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
91
|
+
popupDetailState: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
92
|
+
popupDetailRecurrenceRule: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
93
|
+
popupDetailBody: (event: EventObjectWithDefaultValues) => TemplateReturnType;
|
|
94
|
+
popupEdit: () => TemplateReturnType;
|
|
95
|
+
popupDelete: () => TemplateReturnType;
|
|
96
|
+
}
|
|
97
|
+
export declare type TemplateConfig = Partial<Template>;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { DeepPartial } from 'ts-essentials';
|
|
2
|
+
export declare type CommonTheme = {
|
|
3
|
+
backgroundColor: string;
|
|
4
|
+
border: string;
|
|
5
|
+
gridSelection: {
|
|
6
|
+
backgroundColor: string;
|
|
7
|
+
border: string;
|
|
8
|
+
};
|
|
9
|
+
dayName: {
|
|
10
|
+
color: string;
|
|
11
|
+
};
|
|
12
|
+
holiday: {
|
|
13
|
+
color: string;
|
|
14
|
+
};
|
|
15
|
+
saturday: {
|
|
16
|
+
color: string;
|
|
17
|
+
};
|
|
18
|
+
today: {
|
|
19
|
+
color: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare type WeekDayNameTheme = {
|
|
23
|
+
borderLeft: string;
|
|
24
|
+
borderTop: string;
|
|
25
|
+
borderBottom: string;
|
|
26
|
+
backgroundColor: string;
|
|
27
|
+
};
|
|
28
|
+
export declare type MonthDayNameTheme = {
|
|
29
|
+
borderLeft: string;
|
|
30
|
+
backgroundColor: string;
|
|
31
|
+
};
|
|
32
|
+
export declare type DayGridTheme = {
|
|
33
|
+
borderRight: string;
|
|
34
|
+
backgroundColor: string;
|
|
35
|
+
};
|
|
36
|
+
export declare type DayGridLeftTheme = {
|
|
37
|
+
borderRight: string;
|
|
38
|
+
backgroundColor: string;
|
|
39
|
+
width: string;
|
|
40
|
+
};
|
|
41
|
+
export declare type TimeGridLeftTheme = {
|
|
42
|
+
borderRight: string;
|
|
43
|
+
backgroundColor: string;
|
|
44
|
+
width: string;
|
|
45
|
+
};
|
|
46
|
+
export declare type WeekTheme = {
|
|
47
|
+
dayName: WeekDayNameTheme;
|
|
48
|
+
dayGrid: DayGridTheme;
|
|
49
|
+
dayGridLeft: DayGridLeftTheme;
|
|
50
|
+
timeGrid: {
|
|
51
|
+
borderRight: string;
|
|
52
|
+
};
|
|
53
|
+
timeGridLeft: TimeGridLeftTheme;
|
|
54
|
+
timeGridLeftAdditionalTimezone: {
|
|
55
|
+
backgroundColor: string;
|
|
56
|
+
};
|
|
57
|
+
timeGridHalfHourLine: {
|
|
58
|
+
borderBottom: string;
|
|
59
|
+
};
|
|
60
|
+
timeGridHourLine: {
|
|
61
|
+
borderBottom: string;
|
|
62
|
+
};
|
|
63
|
+
nowIndicatorLabel: {
|
|
64
|
+
color: string;
|
|
65
|
+
};
|
|
66
|
+
nowIndicatorPast: {
|
|
67
|
+
border: string;
|
|
68
|
+
};
|
|
69
|
+
nowIndicatorBullet: {
|
|
70
|
+
backgroundColor: string;
|
|
71
|
+
};
|
|
72
|
+
nowIndicatorToday: {
|
|
73
|
+
border: string;
|
|
74
|
+
};
|
|
75
|
+
nowIndicatorFuture: {
|
|
76
|
+
border: string;
|
|
77
|
+
};
|
|
78
|
+
pastTime: {
|
|
79
|
+
color: string;
|
|
80
|
+
};
|
|
81
|
+
futureTime: {
|
|
82
|
+
color: string;
|
|
83
|
+
};
|
|
84
|
+
weekend: {
|
|
85
|
+
backgroundColor: string;
|
|
86
|
+
};
|
|
87
|
+
today: {
|
|
88
|
+
color: string;
|
|
89
|
+
backgroundColor: string;
|
|
90
|
+
};
|
|
91
|
+
pastDay: {
|
|
92
|
+
color: string;
|
|
93
|
+
};
|
|
94
|
+
panelResizer: {
|
|
95
|
+
border: string;
|
|
96
|
+
};
|
|
97
|
+
gridSelection: {
|
|
98
|
+
color: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
export declare type MonthTheme = {
|
|
102
|
+
dayExceptThisMonth: {
|
|
103
|
+
color: string;
|
|
104
|
+
};
|
|
105
|
+
dayName: MonthDayNameTheme;
|
|
106
|
+
holidayExceptThisMonth: {
|
|
107
|
+
color: string;
|
|
108
|
+
};
|
|
109
|
+
moreView: {
|
|
110
|
+
backgroundColor: string;
|
|
111
|
+
border: string;
|
|
112
|
+
boxShadow: string;
|
|
113
|
+
width: number | null;
|
|
114
|
+
height: number | null;
|
|
115
|
+
};
|
|
116
|
+
moreViewTitle: {
|
|
117
|
+
backgroundColor: string;
|
|
118
|
+
};
|
|
119
|
+
gridCell: {
|
|
120
|
+
headerHeight: number | null;
|
|
121
|
+
footerHeight: number | null;
|
|
122
|
+
};
|
|
123
|
+
weekend: {
|
|
124
|
+
backgroundColor: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
export declare type ThemeState = {
|
|
128
|
+
common: CommonTheme;
|
|
129
|
+
week: WeekTheme;
|
|
130
|
+
month: MonthTheme;
|
|
131
|
+
};
|
|
132
|
+
export declare type ThemeDispatchers = {
|
|
133
|
+
setTheme: (theme: DeepPartial<ThemeState>) => void;
|
|
134
|
+
setCommonTheme: (commonTheme: DeepPartial<CommonTheme>) => void;
|
|
135
|
+
setWeekTheme: (weekTheme: DeepPartial<WeekTheme>) => void;
|
|
136
|
+
setMonthTheme: (monthTheme: DeepPartial<MonthTheme>) => void;
|
|
137
|
+
};
|
|
138
|
+
export declare type ThemeStore = ThemeState & {
|
|
139
|
+
dispatch: ThemeDispatchers;
|
|
140
|
+
};
|