@mantine-vue/schedule 3.1.0 → 3.3.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/cjs/index.cjs +6765 -3783
- package/cjs/index.cjs.map +1 -1
- package/esm/index.mjs +6724 -3793
- package/esm/index.mjs.map +1 -1
- package/lib/component-props.d.ts +197 -215
- package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts +8 -114
- package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.types.d.ts +89 -0
- package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.vue.d.ts +20 -0
- package/lib/components/DayView/DayView.d.ts +10 -212
- package/lib/components/DayView/DayView.types.d.ts +65 -0
- package/lib/components/DayView/DayView.vue.d.ts +51 -0
- package/lib/components/DragContext/DragContext.d.ts +43 -5
- package/lib/components/MobileMonthView/MobileMonthView.d.ts +10 -171
- package/lib/components/MobileMonthView/MobileMonthView.types.d.ts +110 -0
- package/lib/components/MobileMonthView/MobileMonthView.vue.d.ts +44 -0
- package/lib/components/MonthView/MonthView.d.ts +10 -174
- package/lib/components/MonthView/MonthView.types.d.ts +125 -0
- package/lib/components/MonthView/MonthView.vue.d.ts +56 -0
- package/lib/components/MoreEvents/MoreEvents.d.ts +9 -65
- package/lib/components/MoreEvents/MoreEvents.types.d.ts +62 -0
- package/lib/components/MoreEvents/MoreEvents.vue.d.ts +23 -0
- package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +10 -346
- package/lib/components/ResourcesDayView/ResourcesDayView.types.d.ts +314 -0
- package/lib/components/ResourcesDayView/ResourcesDayView.vue.d.ts +53 -0
- package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +10 -279
- package/lib/components/ResourcesMonthView/ResourcesMonthView.types.d.ts +239 -0
- package/lib/components/ResourcesMonthView/ResourcesMonthView.vue.d.ts +55 -0
- package/lib/components/ResourcesMonthView/get-resources-month-view-layout/get-resources-month-view-layout.d.ts +54 -0
- package/lib/components/ResourcesMonthView/index.d.ts +1 -0
- package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +9 -201
- package/lib/components/ResourcesSchedule/ResourcesSchedule.types.d.ts +161 -0
- package/lib/components/ResourcesSchedule/ResourcesSchedule.vue.d.ts +44 -0
- package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +10 -412
- package/lib/components/ResourcesWeekView/ResourcesWeekView.types.d.ts +320 -0
- package/lib/components/ResourcesWeekView/ResourcesWeekView.vue.d.ts +58 -0
- package/lib/components/Schedule/Schedule.d.ts +9 -134
- package/lib/components/Schedule/Schedule.types.d.ts +155 -0
- package/lib/components/Schedule/Schedule.vue.d.ts +50 -0
- package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.d.ts +3 -0
- package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.types.d.ts +24 -0
- package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.vue.d.ts +15 -0
- package/lib/components/ScheduleBackgroundEvent/index.d.ts +1 -0
- package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +11 -88
- package/lib/components/ScheduleEvent/ScheduleEvent.types.d.ts +109 -0
- package/lib/components/ScheduleEvent/ScheduleEvent.vue.d.ts +24 -0
- package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +36 -0
- package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.types.d.ts +44 -0
- package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.vue.d.ts +14 -0
- package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderNext.vue.d.ts +11 -0
- package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderPrevious.vue.d.ts +11 -0
- package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderToday.vue.d.ts +11 -0
- package/lib/components/ScheduleHeader/HeaderControl/index.d.ts +1 -2
- package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.d.ts +8 -0
- package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.types.d.ts +70 -0
- package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.vue.d.ts +21 -0
- package/lib/components/ScheduleHeader/MonthYearSelect/index.d.ts +1 -2
- package/lib/components/ScheduleHeader/ScheduleHeader.context.d.ts +12 -0
- package/lib/components/ScheduleHeader/ScheduleHeader.d.ts +20 -364
- package/lib/components/ScheduleHeader/ScheduleHeader.types.d.ts +28 -0
- package/lib/components/ScheduleHeader/ScheduleHeader.vue.d.ts +11 -0
- package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +37 -75
- package/lib/components/ScheduleHeader/ScheduleHeaderBase.types.d.ts +54 -0
- package/lib/components/ScheduleHeader/ScheduleHeaderBase.vue.d.ts +21 -0
- package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.d.ts +8 -0
- package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.types.d.ts +39 -0
- package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.vue.d.ts +16 -0
- package/lib/components/ScheduleHeader/ViewSelect/index.d.ts +1 -2
- package/lib/components/ScheduleHeader/index.d.ts +4 -0
- package/lib/components/WeekView/WeekView.d.ts +10 -294
- package/lib/components/WeekView/WeekView.types.d.ts +129 -0
- package/lib/components/WeekView/WeekView.vue.d.ts +60 -0
- package/lib/components/WeekView/get-week-view-events/find-available-column.d.ts +6 -3
- package/lib/components/YearView/YearView.d.ts +10 -151
- package/lib/components/YearView/YearView.types.d.ts +100 -0
- package/lib/components/YearView/YearView.vue.d.ts +42 -0
- package/lib/components/shared.d.ts +71 -141
- package/lib/components/use-slot-drag-select.d.ts +7 -9
- package/lib/components/use-slot-drop-target.d.ts +42 -0
- package/lib/hooks/use-event-resize.d.ts +2 -1
- package/lib/hooks/use-horizontal-event-resize.d.ts +3 -156
- package/lib/index.d.mts +2 -0
- package/lib/index.d.ts +2 -0
- package/lib/types.d.ts +1 -1
- package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +11 -1
- package/package.json +4 -4
- package/styles.css +527 -384
- package/styles.layer.css +527 -384
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { VNodeChild } from 'vue';
|
|
2
|
+
import type { BoxProps, Factory } from '@mantine-vue/core';
|
|
3
|
+
import type { StylesApiProps } from '@mantine-vue/core/styles-api';
|
|
4
|
+
import type { BaseViewEmits, BaseViewOwnProps, NativeButtonProps, ScheduleEventRenderProps } from '../../component-props';
|
|
5
|
+
import type { DateLabelFormat, DateStringValue, DayOfWeek, ScheduleEventData, ScheduleMode } from '../../types';
|
|
6
|
+
export type MobileMonthViewStylesNames = 'mobileMonthView' | 'mobileMonthViewHeader' | 'mobileMonthViewHeaderBackButton' | 'mobileMonthViewHeaderLabel' | 'mobileMonthViewCalendar' | 'mobileMonthViewWeekdays' | 'mobileMonthViewWeekday' | 'mobileMonthViewWeekdaysCorner' | 'mobileMonthViewWeek' | 'mobileMonthViewWeekNumber' | 'mobileMonthViewDay' | 'mobileMonthViewDayIndicators' | 'mobileMonthViewDayIndicator' | 'mobileMonthViewEventsList' | 'mobileMonthViewEventsHeader' | 'mobileMonthViewEvent' | 'mobileMonthViewEventBody' | 'mobileMonthViewEventColor' | 'mobileMonthViewEventTitle' | 'mobileMonthViewEventTime' | 'mobileMonthViewNoEvents';
|
|
7
|
+
export type MobileMonthViewCssVariables = {
|
|
8
|
+
mobileMonthView: '--mobile-month-view-radius';
|
|
9
|
+
};
|
|
10
|
+
/** Payload of the `header` slot and of the `renderHeader` prop. */
|
|
11
|
+
export interface MobileMonthViewHeaderPayload {
|
|
12
|
+
/** Interaction mode of the view. */
|
|
13
|
+
mode: ScheduleMode;
|
|
14
|
+
/** Month currently displayed. */
|
|
15
|
+
date: Date | DateStringValue;
|
|
16
|
+
/** The header the view would render, so a custom one can reuse parts of it. */
|
|
17
|
+
defaultHeader: VNodeChild;
|
|
18
|
+
}
|
|
19
|
+
export interface MobileMonthViewSlots {
|
|
20
|
+
/** Replaces every event in the list. Takes precedence over `renderEvent`. */
|
|
21
|
+
event?: (props: ScheduleEventRenderProps & {
|
|
22
|
+
event: ScheduleEventData;
|
|
23
|
+
}) => VNodeChild;
|
|
24
|
+
/** Replaces the header above the calendar. Takes precedence over `renderHeader`. */
|
|
25
|
+
header?: (props: MobileMonthViewHeaderPayload) => VNodeChild;
|
|
26
|
+
}
|
|
27
|
+
/** Props declared by `MobileMonthView` itself. See `MobileMonthViewProps` for the full public type. */
|
|
28
|
+
export interface MobileMonthViewOwnProps extends BaseViewOwnProps, StylesApiProps<MobileMonthViewFactory> {
|
|
29
|
+
/** Selected day, bound with `v-model:selected-date`. */
|
|
30
|
+
selectedDate?: Date | DateStringValue | null;
|
|
31
|
+
/** Day selected on the first render when `selectedDate` is not set. @default today */
|
|
32
|
+
defaultSelectedDate?: Date | DateStringValue | null;
|
|
33
|
+
/**
|
|
34
|
+
* If set, week numbers are displayed in the first column.
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
withWeekNumbers?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* If set, weekday names are displayed above the grid.
|
|
40
|
+
* @default true
|
|
41
|
+
*/
|
|
42
|
+
withWeekDays?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Day the week starts on, `0` – Sunday.
|
|
45
|
+
* @default 1
|
|
46
|
+
*/
|
|
47
|
+
firstDayOfWeek?: DayOfWeek;
|
|
48
|
+
/**
|
|
49
|
+
* Format of the weekday names above the grid.
|
|
50
|
+
* @default 'dd'
|
|
51
|
+
*/
|
|
52
|
+
weekdayFormat?: DateLabelFormat;
|
|
53
|
+
/**
|
|
54
|
+
* Days marked as weekend, `0` – Sunday.
|
|
55
|
+
* @default [0, 6]
|
|
56
|
+
*/
|
|
57
|
+
weekendDays?: DayOfWeek[];
|
|
58
|
+
/** Returns extra props for the control of the week that starts on the given day. */
|
|
59
|
+
getWeekNumberProps?: (weekStartDate: DateStringValue) => NativeButtonProps;
|
|
60
|
+
/** Returns extra props for the control of the given day. */
|
|
61
|
+
getDayProps?: (date: DateStringValue) => NativeButtonProps;
|
|
62
|
+
/**
|
|
63
|
+
* If set, every month renders six weeks so the grid height never changes.
|
|
64
|
+
* @default true
|
|
65
|
+
*/
|
|
66
|
+
consistentWeeks?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* If set, today is highlighted.
|
|
69
|
+
* @default true
|
|
70
|
+
*/
|
|
71
|
+
highlightToday?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* If set, days of the neighbouring months are rendered.
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
withOutsideDays?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Format of the heading above the event list.
|
|
79
|
+
* @default 'dddd, MMMM D'
|
|
80
|
+
*/
|
|
81
|
+
eventsHeaderFormat?: DateLabelFormat;
|
|
82
|
+
/**
|
|
83
|
+
* Replaces the header above the calendar. Can also be set with the `header` slot,
|
|
84
|
+
* which takes precedence over the prop.
|
|
85
|
+
*/
|
|
86
|
+
renderHeader?: (payload: MobileMonthViewHeaderPayload) => VNodeChild;
|
|
87
|
+
}
|
|
88
|
+
export interface MobileMonthViewProps extends Omit<BoxProps, keyof MobileMonthViewOwnProps>, MobileMonthViewOwnProps {
|
|
89
|
+
}
|
|
90
|
+
export interface MobileMonthViewEmits extends BaseViewEmits {
|
|
91
|
+
/** Emitted when another day is selected, bound with `v-model:selected-date`. */
|
|
92
|
+
'update:selectedDate': [date: DateStringValue | null];
|
|
93
|
+
/** Emitted when another day is selected. */
|
|
94
|
+
selectedDateChange: [date: DateStringValue | null];
|
|
95
|
+
/** Emitted when a day is clicked. */
|
|
96
|
+
dayClick: [date: DateStringValue, nativeEvent: MouseEvent];
|
|
97
|
+
/** Emitted when a week number is clicked. */
|
|
98
|
+
weekNumberClick: [date: DateStringValue, nativeEvent: MouseEvent];
|
|
99
|
+
/** Emitted when the year control in the header is clicked. */
|
|
100
|
+
yearClick: [];
|
|
101
|
+
}
|
|
102
|
+
export type MobileMonthViewFactory = Factory<{
|
|
103
|
+
props: Omit<MobileMonthViewProps, 'rootRef'>;
|
|
104
|
+
slots: MobileMonthViewSlots;
|
|
105
|
+
emits: MobileMonthViewEmits;
|
|
106
|
+
ref: HTMLDivElement;
|
|
107
|
+
element: 'div';
|
|
108
|
+
stylesNames: MobileMonthViewStylesNames;
|
|
109
|
+
vars: MobileMonthViewCssVariables;
|
|
110
|
+
}>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ScheduleEventData } from '../../types';
|
|
2
|
+
import type { MobileMonthViewSlots } from './MobileMonthView.types';
|
|
3
|
+
import type { MobileMonthViewOwnProps } from './MobileMonthView.types';
|
|
4
|
+
declare const defaultProps: {
|
|
5
|
+
mode: "default";
|
|
6
|
+
recurrenceExpansionLimit: number;
|
|
7
|
+
withHeader: true;
|
|
8
|
+
withWeekDays: true;
|
|
9
|
+
firstDayOfWeek: 1;
|
|
10
|
+
weekdayFormat: string;
|
|
11
|
+
weekendDays: (0 | 6)[];
|
|
12
|
+
consistentWeeks: true;
|
|
13
|
+
highlightToday: true;
|
|
14
|
+
eventsHeaderFormat: string;
|
|
15
|
+
};
|
|
16
|
+
declare const MAX_DAY_INDICATORS = 3;
|
|
17
|
+
declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
|
|
18
|
+
export { defaultProps, varsResolver, MAX_DAY_INDICATORS };
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MobileMonthViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
dateChange: (date: string) => any;
|
|
23
|
+
dayClick: (date: string, nativeEvent: MouseEvent) => any;
|
|
24
|
+
eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
|
|
25
|
+
viewChange: (view: import("../..").ScheduleViewLevel) => any;
|
|
26
|
+
"update:selectedDate": (date: string | null) => any;
|
|
27
|
+
selectedDateChange: (date: string | null) => any;
|
|
28
|
+
weekNumberClick: (date: string, nativeEvent: MouseEvent) => any;
|
|
29
|
+
yearClick: () => any;
|
|
30
|
+
}, string, import("vue").PublicProps, Readonly<MobileMonthViewOwnProps> & Readonly<{
|
|
31
|
+
onDateChange?: ((date: string) => any) | undefined;
|
|
32
|
+
onDayClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
|
|
33
|
+
onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
|
|
34
|
+
onViewChange?: ((view: import("../..").ScheduleViewLevel) => any) | undefined;
|
|
35
|
+
"onUpdate:selectedDate"?: ((date: string | null) => any) | undefined;
|
|
36
|
+
onSelectedDateChange?: ((date: string | null) => any) | undefined;
|
|
37
|
+
onWeekNumberClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
|
|
38
|
+
onYearClick?: (() => any) | undefined;
|
|
39
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, MobileMonthViewSlots>;
|
|
40
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
41
|
+
new (): {
|
|
42
|
+
$slots: S;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
@@ -1,174 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type: PropType<DateLabelFormat>;
|
|
12
|
-
default: string;
|
|
13
|
-
};
|
|
14
|
-
weekendDays: {
|
|
15
|
-
type: PropType<DayOfWeek[]>;
|
|
16
|
-
default: () => number[];
|
|
17
|
-
};
|
|
18
|
-
withWeekNumbers: BooleanConstructor;
|
|
19
|
-
withWeekDays: {
|
|
20
|
-
type: BooleanConstructor;
|
|
21
|
-
default: boolean;
|
|
22
|
-
};
|
|
23
|
-
consistentWeeks: {
|
|
24
|
-
type: BooleanConstructor;
|
|
25
|
-
default: boolean;
|
|
26
|
-
};
|
|
27
|
-
highlightToday: {
|
|
28
|
-
type: BooleanConstructor;
|
|
29
|
-
default: boolean;
|
|
30
|
-
};
|
|
31
|
-
withOutsideDays: {
|
|
32
|
-
type: BooleanConstructor;
|
|
33
|
-
default: boolean;
|
|
34
|
-
};
|
|
35
|
-
maxEventsPerDay: {
|
|
36
|
-
type: NumberConstructor;
|
|
37
|
-
default: number;
|
|
38
|
-
};
|
|
39
|
-
getDayProps: PropType<MonthViewProps["getDayProps"]>;
|
|
40
|
-
getWeekNumberProps: PropType<MonthViewProps["getWeekNumberProps"]>;
|
|
41
|
-
onDayClick: PropType<MonthViewProps["onDayClick"]>;
|
|
42
|
-
onWeekNumberClick: PropType<MonthViewProps["onWeekNumberClick"]>;
|
|
43
|
-
withEventsDragAndDrop: BooleanConstructor;
|
|
44
|
-
onEventDrop: PropType<MonthViewProps["onEventDrop"]>;
|
|
45
|
-
canDragEvent: PropType<MonthViewProps["canDragEvent"]>;
|
|
46
|
-
onEventDragStart: PropType<MonthViewProps["onEventDragStart"]>;
|
|
47
|
-
onEventDragEnd: PropType<MonthViewProps["onEventDragEnd"]>;
|
|
48
|
-
onExternalEventDrop: PropType<MonthViewProps["onExternalEventDrop"]>;
|
|
49
|
-
withDragSlotSelect: BooleanConstructor;
|
|
50
|
-
onSlotDragEnd: PropType<MonthViewProps["onSlotDragEnd"]>;
|
|
51
|
-
date: {
|
|
52
|
-
type: PropType<Date | import("../..").DateStringValue>;
|
|
53
|
-
required: boolean;
|
|
54
|
-
};
|
|
55
|
-
onDateChange: PropType<(date: import("../..").DateStringValue) => void>;
|
|
56
|
-
events: PropType<import("../..").ScheduleEventData[]>;
|
|
57
|
-
locale: StringConstructor;
|
|
58
|
-
radius: PropType<string | number>;
|
|
59
|
-
labels: ObjectConstructor;
|
|
60
|
-
mode: {
|
|
61
|
-
type: PropType<import("../..").ScheduleMode>;
|
|
62
|
-
default: string;
|
|
63
|
-
};
|
|
64
|
-
withHeader: {
|
|
65
|
-
type: BooleanConstructor;
|
|
66
|
-
default: boolean;
|
|
67
|
-
};
|
|
68
|
-
onViewChange: PropType<(view: import("../..").ScheduleViewLevel) => void>;
|
|
69
|
-
previousControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
70
|
-
nextControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
71
|
-
todayControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
72
|
-
viewSelectProps: ObjectConstructor;
|
|
73
|
-
renderEventBody: PropType<import("../ScheduleEvent").RenderEventBody>;
|
|
74
|
-
renderEvent: PropType<import("../ScheduleEvent").RenderEvent>;
|
|
75
|
-
onEventClick: PropType<(event: import("../..").ScheduleEventData, nativeEvent: MouseEvent) => void>;
|
|
76
|
-
recurrenceExpansionLimit: {
|
|
77
|
-
type: NumberConstructor;
|
|
78
|
-
default: number;
|
|
79
|
-
};
|
|
80
|
-
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
81
|
-
[key: string]: any;
|
|
82
|
-
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
83
|
-
firstDayOfWeek: {
|
|
84
|
-
type: PropType<DayOfWeek>;
|
|
85
|
-
default: number;
|
|
86
|
-
};
|
|
87
|
-
weekdayFormat: {
|
|
88
|
-
type: PropType<DateLabelFormat>;
|
|
89
|
-
default: string;
|
|
90
|
-
};
|
|
91
|
-
weekendDays: {
|
|
92
|
-
type: PropType<DayOfWeek[]>;
|
|
93
|
-
default: () => number[];
|
|
94
|
-
};
|
|
95
|
-
withWeekNumbers: BooleanConstructor;
|
|
96
|
-
withWeekDays: {
|
|
97
|
-
type: BooleanConstructor;
|
|
98
|
-
default: boolean;
|
|
99
|
-
};
|
|
100
|
-
consistentWeeks: {
|
|
101
|
-
type: BooleanConstructor;
|
|
102
|
-
default: boolean;
|
|
103
|
-
};
|
|
104
|
-
highlightToday: {
|
|
105
|
-
type: BooleanConstructor;
|
|
106
|
-
default: boolean;
|
|
107
|
-
};
|
|
108
|
-
withOutsideDays: {
|
|
109
|
-
type: BooleanConstructor;
|
|
110
|
-
default: boolean;
|
|
111
|
-
};
|
|
112
|
-
maxEventsPerDay: {
|
|
113
|
-
type: NumberConstructor;
|
|
114
|
-
default: number;
|
|
115
|
-
};
|
|
116
|
-
getDayProps: PropType<MonthViewProps["getDayProps"]>;
|
|
117
|
-
getWeekNumberProps: PropType<MonthViewProps["getWeekNumberProps"]>;
|
|
118
|
-
onDayClick: PropType<MonthViewProps["onDayClick"]>;
|
|
119
|
-
onWeekNumberClick: PropType<MonthViewProps["onWeekNumberClick"]>;
|
|
120
|
-
withEventsDragAndDrop: BooleanConstructor;
|
|
121
|
-
onEventDrop: PropType<MonthViewProps["onEventDrop"]>;
|
|
122
|
-
canDragEvent: PropType<MonthViewProps["canDragEvent"]>;
|
|
123
|
-
onEventDragStart: PropType<MonthViewProps["onEventDragStart"]>;
|
|
124
|
-
onEventDragEnd: PropType<MonthViewProps["onEventDragEnd"]>;
|
|
125
|
-
onExternalEventDrop: PropType<MonthViewProps["onExternalEventDrop"]>;
|
|
126
|
-
withDragSlotSelect: BooleanConstructor;
|
|
127
|
-
onSlotDragEnd: PropType<MonthViewProps["onSlotDragEnd"]>;
|
|
128
|
-
date: {
|
|
129
|
-
type: PropType<Date | import("../..").DateStringValue>;
|
|
130
|
-
required: boolean;
|
|
131
|
-
};
|
|
132
|
-
onDateChange: PropType<(date: import("../..").DateStringValue) => void>;
|
|
133
|
-
events: PropType<import("../..").ScheduleEventData[]>;
|
|
134
|
-
locale: StringConstructor;
|
|
135
|
-
radius: PropType<string | number>;
|
|
136
|
-
labels: ObjectConstructor;
|
|
137
|
-
mode: {
|
|
138
|
-
type: PropType<import("../..").ScheduleMode>;
|
|
139
|
-
default: string;
|
|
140
|
-
};
|
|
141
|
-
withHeader: {
|
|
142
|
-
type: BooleanConstructor;
|
|
143
|
-
default: boolean;
|
|
144
|
-
};
|
|
145
|
-
onViewChange: PropType<(view: import("../..").ScheduleViewLevel) => void>;
|
|
146
|
-
previousControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
147
|
-
nextControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
148
|
-
todayControlProps: PropType<import("../../component-props").NativeButtonProps>;
|
|
149
|
-
viewSelectProps: ObjectConstructor;
|
|
150
|
-
renderEventBody: PropType<import("../ScheduleEvent").RenderEventBody>;
|
|
151
|
-
renderEvent: PropType<import("../ScheduleEvent").RenderEvent>;
|
|
152
|
-
onEventClick: PropType<(event: import("../..").ScheduleEventData, nativeEvent: MouseEvent) => void>;
|
|
153
|
-
recurrenceExpansionLimit: {
|
|
154
|
-
type: NumberConstructor;
|
|
155
|
-
default: number;
|
|
156
|
-
};
|
|
157
|
-
}>> & Readonly<{}>, {
|
|
158
|
-
mode: import("../..").ScheduleMode;
|
|
159
|
-
withHeader: boolean;
|
|
160
|
-
firstDayOfWeek: DayOfWeek;
|
|
161
|
-
highlightToday: boolean;
|
|
162
|
-
weekendDays: DayOfWeek[];
|
|
163
|
-
weekdayFormat: DateLabelFormat;
|
|
164
|
-
withWeekNumbers: boolean;
|
|
165
|
-
consistentWeeks: boolean;
|
|
166
|
-
withOutsideDays: boolean;
|
|
167
|
-
recurrenceExpansionLimit: number;
|
|
168
|
-
withEventsDragAndDrop: boolean;
|
|
169
|
-
withDragSlotSelect: boolean;
|
|
170
|
-
withWeekDays: boolean;
|
|
171
|
-
maxEventsPerDay: number;
|
|
172
|
-
}, SlotsType<EventSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
173
|
-
export type { MonthViewProps };
|
|
174
|
-
export type MonthViewStylesNames = 'monthView' | 'monthViewWeekdays' | 'monthViewWeek' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdaysCorner' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewBackgroundEvent' | 'monthViewEvents';
|
|
1
|
+
export declare const MonthView: import("@mantine-vue/core").MantineComponent<{
|
|
2
|
+
props: Omit<import("./MonthView.types").MonthViewProps, "rootRef">;
|
|
3
|
+
slots: import("./MonthView.types").MonthViewSlots;
|
|
4
|
+
emits: import("./MonthView.types").MonthViewEmits;
|
|
5
|
+
ref: HTMLDivElement;
|
|
6
|
+
element: "div";
|
|
7
|
+
stylesNames: import("./MonthView.types").MonthViewStylesNames;
|
|
8
|
+
vars: import("./MonthView.types").MonthViewCssVariables;
|
|
9
|
+
}>;
|
|
10
|
+
export type { MonthViewCssVariables, MonthViewEmits, MonthViewFactory, MonthViewOwnProps, MonthViewOwnStylesNames, MonthViewProps, MonthViewSlots, MonthViewStylesNames, } from './MonthView.types';
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { BoxProps, Factory, ScrollAreaProps } from '@mantine-vue/core';
|
|
2
|
+
import type { StylesApiProps } from '@mantine-vue/core/styles-api';
|
|
3
|
+
import type { BaseViewEmits, BaseViewOwnProps, EventDropData, EventSlots, ForwardedProps, NativeButtonProps } from '../../component-props';
|
|
4
|
+
import type { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData } from '../../types';
|
|
5
|
+
import type { MoreEventsEmits, MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents.types';
|
|
6
|
+
import type { ScheduleEventStylesNames } from '../ScheduleEvent/ScheduleEvent.types';
|
|
7
|
+
import type { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader.types';
|
|
8
|
+
import type { MonthYearSelectEmits, MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect.types';
|
|
9
|
+
export type MonthViewOwnStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | 'monthViewBackgroundEvent';
|
|
10
|
+
/**
|
|
11
|
+
* `MonthView` forwards `classNames` and `styles` to the components it renders, so their
|
|
12
|
+
* selectors are part of its Styles API.
|
|
13
|
+
*/
|
|
14
|
+
export type MonthViewStylesNames = MonthViewOwnStylesNames | MoreEventsStylesNames | ScheduleEventStylesNames | CombinedScheduleHeaderStylesNames;
|
|
15
|
+
export type MonthViewCssVariables = {
|
|
16
|
+
monthView: '--month-view-radius' | '--month-view-max-events';
|
|
17
|
+
};
|
|
18
|
+
export type MonthViewSlots = EventSlots;
|
|
19
|
+
/** Props declared by `MonthView` itself. See `MonthViewProps` for the full public type. */
|
|
20
|
+
export interface MonthViewOwnProps extends BaseViewOwnProps, StylesApiProps<MonthViewFactory> {
|
|
21
|
+
/**
|
|
22
|
+
* Day the week starts on, `0` – Sunday.
|
|
23
|
+
* @default 1
|
|
24
|
+
*/
|
|
25
|
+
firstDayOfWeek?: DayOfWeek;
|
|
26
|
+
/**
|
|
27
|
+
* Format of the weekday names above the grid.
|
|
28
|
+
* @default 'ddd'
|
|
29
|
+
*/
|
|
30
|
+
weekdayFormat?: DateLabelFormat;
|
|
31
|
+
/**
|
|
32
|
+
* Days marked as weekend, `0` – Sunday.
|
|
33
|
+
* @default [0, 6]
|
|
34
|
+
*/
|
|
35
|
+
weekendDays?: DayOfWeek[];
|
|
36
|
+
/**
|
|
37
|
+
* If set, week numbers are displayed in the first column.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
withWeekNumbers?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* If set, weekday names are displayed above the grid.
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
withWeekDays?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* If set, every month renders six weeks so the grid height never changes.
|
|
48
|
+
* @default true
|
|
49
|
+
*/
|
|
50
|
+
consistentWeeks?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* If set, today is highlighted.
|
|
53
|
+
* @default true
|
|
54
|
+
*/
|
|
55
|
+
highlightToday?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* If set, days of the neighbouring months are rendered.
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
withOutsideDays?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Number of events shown per day before the rest collapse into a "more" control.
|
|
63
|
+
* Clamped to the `1` – `10` range.
|
|
64
|
+
* @default 2
|
|
65
|
+
*/
|
|
66
|
+
maxEventsPerDay?: number;
|
|
67
|
+
/** Returns extra props for the control of the given day. */
|
|
68
|
+
getDayProps?: (date: DateStringValue) => NativeButtonProps;
|
|
69
|
+
/** Returns extra props for the control of the week that starts on the given day. */
|
|
70
|
+
getWeekNumberProps?: (weekStartDate: DateStringValue) => NativeButtonProps;
|
|
71
|
+
/**
|
|
72
|
+
* If set, events can be dragged onto another day.
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
withEventsDragAndDrop?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Returns whether the given event may be dragged.
|
|
78
|
+
* @default () => true
|
|
79
|
+
*/
|
|
80
|
+
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
81
|
+
/**
|
|
82
|
+
* If set, items dragged in from outside the schedule can be dropped on a day, which emits
|
|
83
|
+
* `externalEventDrop`. Enabling event drag and drop turns this on as well.
|
|
84
|
+
* @default false
|
|
85
|
+
*/
|
|
86
|
+
withExternalEventDrop?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* If set, dragging across days selects a range.
|
|
89
|
+
* @default false
|
|
90
|
+
*/
|
|
91
|
+
withDragSlotSelect?: boolean;
|
|
92
|
+
/** Props passed to the month/year select in the header. */
|
|
93
|
+
monthYearSelectProps?: ForwardedProps<MonthYearSelectProps, MonthYearSelectEmits>;
|
|
94
|
+
/** Props passed to the `MoreEvents` control of every day. */
|
|
95
|
+
moreEventsProps?: ForwardedProps<MoreEventsProps, MoreEventsEmits>;
|
|
96
|
+
/** Props passed to the `ScrollArea` that wraps the grid. */
|
|
97
|
+
scrollAreaProps?: ForwardedProps<ScrollAreaProps>;
|
|
98
|
+
}
|
|
99
|
+
export interface MonthViewProps extends Omit<BoxProps, keyof MonthViewOwnProps>, MonthViewOwnProps {
|
|
100
|
+
}
|
|
101
|
+
export interface MonthViewEmits extends BaseViewEmits {
|
|
102
|
+
/** Emitted when a day is clicked. */
|
|
103
|
+
dayClick: [date: DateStringValue, nativeEvent: MouseEvent];
|
|
104
|
+
/** Emitted when a week number is clicked. */
|
|
105
|
+
weekNumberClick: [date: DateStringValue, nativeEvent: MouseEvent];
|
|
106
|
+
/** Emitted when an event is dropped on another day. */
|
|
107
|
+
eventDrop: [data: EventDropData];
|
|
108
|
+
/** Emitted when a drag of an event starts. */
|
|
109
|
+
eventDragStart: [event: ScheduleEventData];
|
|
110
|
+
/** Emitted when a drag of an event ends. */
|
|
111
|
+
eventDragEnd: [];
|
|
112
|
+
/** Emitted when an item from outside the schedule is dropped on a day. */
|
|
113
|
+
externalEventDrop: [dataTransfer: DataTransfer, date: DateStringValue];
|
|
114
|
+
/** Emitted when a day range is selected by dragging. */
|
|
115
|
+
slotDragEnd: [rangeStart: DateTimeStringValue, rangeEnd: DateTimeStringValue];
|
|
116
|
+
}
|
|
117
|
+
export type MonthViewFactory = Factory<{
|
|
118
|
+
props: Omit<MonthViewProps, 'rootRef'>;
|
|
119
|
+
slots: MonthViewSlots;
|
|
120
|
+
emits: MonthViewEmits;
|
|
121
|
+
ref: HTMLDivElement;
|
|
122
|
+
element: 'div';
|
|
123
|
+
stylesNames: MonthViewStylesNames;
|
|
124
|
+
vars: MonthViewCssVariables;
|
|
125
|
+
}>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ScheduleEventData } from '../../types';
|
|
2
|
+
import type { MonthViewOwnProps } from './MonthView.types';
|
|
3
|
+
declare const defaultProps: {
|
|
4
|
+
mode: "default";
|
|
5
|
+
withHeader: true;
|
|
6
|
+
recurrenceExpansionLimit: number;
|
|
7
|
+
firstDayOfWeek: 1;
|
|
8
|
+
weekdayFormat: string;
|
|
9
|
+
weekendDays: (0 | 6)[];
|
|
10
|
+
withWeekDays: true;
|
|
11
|
+
consistentWeeks: true;
|
|
12
|
+
highlightToday: true;
|
|
13
|
+
withOutsideDays: true;
|
|
14
|
+
maxEventsPerDay: number;
|
|
15
|
+
};
|
|
16
|
+
/** Vertical offset of the first event row, past the day label, in px. */
|
|
17
|
+
declare const EVENTS_TOP_OFFSET = 28;
|
|
18
|
+
/** Vertical step between stacked event rows, in px. */
|
|
19
|
+
declare const EVENT_ROW_HEIGHT = 22;
|
|
20
|
+
/** Group name of the month grid for slot drag selection – a month has a single grid. */
|
|
21
|
+
declare const MONTH_SLOT_GROUP = "month";
|
|
22
|
+
declare const COLUMNS = 7;
|
|
23
|
+
/** `maxEventsPerDay` is clamped so the CSS grid keeps a workable row height. */
|
|
24
|
+
declare function clampMaxEvents(value: number): number;
|
|
25
|
+
declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
|
|
26
|
+
export { defaultProps, varsResolver, clampMaxEvents, EVENTS_TOP_OFFSET, EVENT_ROW_HEIGHT, MONTH_SLOT_GROUP, COLUMNS, };
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
28
|
+
export default _default;
|
|
29
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MonthViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
30
|
+
dateChange: (date: string) => any;
|
|
31
|
+
dayClick: (date: string, nativeEvent: MouseEvent) => any;
|
|
32
|
+
eventDragStart: (event: ScheduleEventData) => any;
|
|
33
|
+
eventDragEnd: () => any;
|
|
34
|
+
eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
|
|
35
|
+
viewChange: (view: import("../..").ScheduleViewLevel) => any;
|
|
36
|
+
eventDrop: (data: import("../..").EventDropData) => any;
|
|
37
|
+
slotDragEnd: (rangeStart: string, rangeEnd: string) => any;
|
|
38
|
+
externalEventDrop: (dataTransfer: DataTransfer, date: string) => any;
|
|
39
|
+
weekNumberClick: (date: string, nativeEvent: MouseEvent) => any;
|
|
40
|
+
}, string, import("vue").PublicProps, Readonly<MonthViewOwnProps> & Readonly<{
|
|
41
|
+
onDateChange?: ((date: string) => any) | undefined;
|
|
42
|
+
onDayClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
|
|
43
|
+
onEventDragStart?: ((event: ScheduleEventData) => any) | undefined;
|
|
44
|
+
onEventDragEnd?: (() => any) | undefined;
|
|
45
|
+
onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
|
|
46
|
+
onViewChange?: ((view: import("../..").ScheduleViewLevel) => any) | undefined;
|
|
47
|
+
onEventDrop?: ((data: import("../..").EventDropData) => any) | undefined;
|
|
48
|
+
onSlotDragEnd?: ((rangeStart: string, rangeEnd: string) => any) | undefined;
|
|
49
|
+
onExternalEventDrop?: ((dataTransfer: DataTransfer, date: string) => any) | undefined;
|
|
50
|
+
onWeekNumberClick?: ((date: string, nativeEvent: MouseEvent) => any) | undefined;
|
|
51
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, import("../..").EventSlots>;
|
|
52
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
53
|
+
new (): {
|
|
54
|
+
$slots: S;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -1,65 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
moreEventsCount: {
|
|
12
|
-
type: NumberConstructor;
|
|
13
|
-
required: true;
|
|
14
|
-
};
|
|
15
|
-
radius: PropType<string | number>;
|
|
16
|
-
modalTitle: StringConstructor;
|
|
17
|
-
dropdownType: {
|
|
18
|
-
type: PropType<MoreEventsDropdownType>;
|
|
19
|
-
default: string;
|
|
20
|
-
};
|
|
21
|
-
popoverProps: PropType<Record<string, unknown>>;
|
|
22
|
-
modalProps: PropType<Record<string, unknown>>;
|
|
23
|
-
onDropdownClose: PropType<() => void>;
|
|
24
|
-
renderEventBody: PropType<RenderEventBody>;
|
|
25
|
-
renderEvent: PropType<RenderEvent>;
|
|
26
|
-
labels: PropType<ScheduleLabelsOverride>;
|
|
27
|
-
mode: {
|
|
28
|
-
type: PropType<ScheduleMode>;
|
|
29
|
-
default: string;
|
|
30
|
-
};
|
|
31
|
-
onEventClick: PropType<(event: ScheduleEventData, nativeEvent: MouseEvent) => void>;
|
|
32
|
-
}>, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}> | null)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
35
|
-
events: {
|
|
36
|
-
type: PropType<ScheduleEventData[]>;
|
|
37
|
-
required: true;
|
|
38
|
-
};
|
|
39
|
-
moreEventsCount: {
|
|
40
|
-
type: NumberConstructor;
|
|
41
|
-
required: true;
|
|
42
|
-
};
|
|
43
|
-
radius: PropType<string | number>;
|
|
44
|
-
modalTitle: StringConstructor;
|
|
45
|
-
dropdownType: {
|
|
46
|
-
type: PropType<MoreEventsDropdownType>;
|
|
47
|
-
default: string;
|
|
48
|
-
};
|
|
49
|
-
popoverProps: PropType<Record<string, unknown>>;
|
|
50
|
-
modalProps: PropType<Record<string, unknown>>;
|
|
51
|
-
onDropdownClose: PropType<() => void>;
|
|
52
|
-
renderEventBody: PropType<RenderEventBody>;
|
|
53
|
-
renderEvent: PropType<RenderEvent>;
|
|
54
|
-
labels: PropType<ScheduleLabelsOverride>;
|
|
55
|
-
mode: {
|
|
56
|
-
type: PropType<ScheduleMode>;
|
|
57
|
-
default: string;
|
|
58
|
-
};
|
|
59
|
-
onEventClick: PropType<(event: ScheduleEventData, nativeEvent: MouseEvent) => void>;
|
|
60
|
-
}>> & Readonly<{}>, {
|
|
61
|
-
mode: ScheduleMode;
|
|
62
|
-
dropdownType: MoreEventsDropdownType;
|
|
63
|
-
}, SlotsType<EventSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
64
|
-
export type { MoreEventsDropdownType, MoreEventsProps };
|
|
65
|
-
export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsDropdown' | 'moreEventsList';
|
|
1
|
+
export declare const MoreEvents: import("@mantine-vue/core").MantineComponent<{
|
|
2
|
+
props: Omit<import("./MoreEvents.types").MoreEventsProps, "rootRef">;
|
|
3
|
+
slots: import("./MoreEvents.types").MoreEventsSlots;
|
|
4
|
+
emits: import("./MoreEvents.types").MoreEventsEmits;
|
|
5
|
+
ref: HTMLButtonElement;
|
|
6
|
+
element: "button";
|
|
7
|
+
stylesNames: import("./MoreEvents.types").MoreEventsStylesNames;
|
|
8
|
+
}>;
|
|
9
|
+
export type { MoreEventsDropdownType, MoreEventsEmits, MoreEventsFactory, MoreEventsOwnProps, MoreEventsProps, MoreEventsSlots, MoreEventsStylesNames, } from './MoreEvents.types';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { BoxProps, Factory, ModalProps, PopoverProps } from '@mantine-vue/core';
|
|
2
|
+
import type { StylesApiProps } from '@mantine-vue/core/styles-api';
|
|
3
|
+
import type { EventSlots, ForwardedProps, RenderEvent, RenderEventBody } from '../../component-props';
|
|
4
|
+
import type { ScheduleLabelsOverride } from '../../labels';
|
|
5
|
+
import type { ScheduleEventData, ScheduleMode } from '../../types';
|
|
6
|
+
export type MoreEventsStylesNames = 'moreEventsButton' | 'moreEventsDropdown' | 'moreEventsList';
|
|
7
|
+
/** How the hidden events are revealed. */
|
|
8
|
+
export type MoreEventsDropdownType = 'popover' | 'modal';
|
|
9
|
+
export type MoreEventsSlots = EventSlots;
|
|
10
|
+
/** Props declared by `MoreEvents` itself. See `MoreEventsProps` for the full public type. */
|
|
11
|
+
export interface MoreEventsOwnProps extends StylesApiProps<MoreEventsFactory> {
|
|
12
|
+
/** Events listed in the dropdown. */
|
|
13
|
+
events: ScheduleEventData[];
|
|
14
|
+
/** Number of events hidden behind the control, used to build its label. */
|
|
15
|
+
moreEventsCount: number;
|
|
16
|
+
/** Key of `theme.radius` or any valid CSS value to set `border-radius`. */
|
|
17
|
+
radius?: string | number;
|
|
18
|
+
/** Title of the modal, used only when `dropdownType` is `modal`. */
|
|
19
|
+
modalTitle?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the hidden events open in a popover or in a modal.
|
|
22
|
+
* @default 'popover'
|
|
23
|
+
*/
|
|
24
|
+
dropdownType?: MoreEventsDropdownType;
|
|
25
|
+
/** Props passed to the underlying `Popover`. */
|
|
26
|
+
popoverProps?: ForwardedProps<PopoverProps>;
|
|
27
|
+
/** Props passed to the underlying `Modal`. */
|
|
28
|
+
modalProps?: ForwardedProps<ModalProps>;
|
|
29
|
+
/**
|
|
30
|
+
* Replaces the body of every listed event. Can also be set with the `eventBody` slot,
|
|
31
|
+
* which takes precedence over the prop.
|
|
32
|
+
*/
|
|
33
|
+
renderEventBody?: RenderEventBody;
|
|
34
|
+
/**
|
|
35
|
+
* Replaces every listed event entirely. Can also be set with the `event` slot,
|
|
36
|
+
* which takes precedence over the prop.
|
|
37
|
+
*/
|
|
38
|
+
renderEvent?: RenderEvent;
|
|
39
|
+
/** Label overrides, used for the control text and accessible names. */
|
|
40
|
+
labels?: ScheduleLabelsOverride;
|
|
41
|
+
/**
|
|
42
|
+
* Interaction mode. `static` keeps the control visible but non-interactive.
|
|
43
|
+
* @default 'default'
|
|
44
|
+
*/
|
|
45
|
+
mode?: ScheduleMode;
|
|
46
|
+
}
|
|
47
|
+
export interface MoreEventsProps extends Omit<BoxProps, keyof MoreEventsOwnProps>, MoreEventsOwnProps {
|
|
48
|
+
}
|
|
49
|
+
export interface MoreEventsEmits {
|
|
50
|
+
/** Emitted when the dropdown closes. */
|
|
51
|
+
dropdownClose: [];
|
|
52
|
+
/** Emitted when a listed event is clicked. */
|
|
53
|
+
eventClick: [event: ScheduleEventData, nativeEvent: MouseEvent];
|
|
54
|
+
}
|
|
55
|
+
export type MoreEventsFactory = Factory<{
|
|
56
|
+
props: Omit<MoreEventsProps, 'rootRef'>;
|
|
57
|
+
slots: MoreEventsSlots;
|
|
58
|
+
emits: MoreEventsEmits;
|
|
59
|
+
ref: HTMLButtonElement;
|
|
60
|
+
element: 'button';
|
|
61
|
+
stylesNames: MoreEventsStylesNames;
|
|
62
|
+
}>;
|