@dayflow/core 0.1.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/LICENSE +21 -0
- package/README.md +392 -0
- package/dist/Old/MonthView.d.ts +8 -0
- package/dist/Old/MonthView.d.ts.map +1 -0
- package/dist/Old/monthView/MonthDragIndicator.d.ts +13 -0
- package/dist/Old/monthView/MonthDragIndicator.d.ts.map +1 -0
- package/dist/Old/monthView/MultiDayEvent.d.ts +26 -0
- package/dist/Old/monthView/MultiDayEvent.d.ts.map +1 -0
- package/dist/Old/monthView/WeekComponent.d.ts +43 -0
- package/dist/Old/monthView/WeekComponent.d.ts.map +1 -0
- package/dist/Old/monthView/util.d.ts +6 -0
- package/dist/Old/monthView/util.d.ts.map +1 -0
- package/dist/Old/src/app/layout.d.ts +7 -0
- package/dist/Old/src/app/layout.d.ts.map +1 -0
- package/dist/Old/src/app/page.d.ts +2 -0
- package/dist/Old/src/app/page.d.ts.map +1 -0
- package/dist/Old/src/app/test/page.d.ts +2 -0
- package/dist/Old/src/app/test/page.d.ts.map +1 -0
- package/dist/Old/src/components/EventLayout.d.ts +134 -0
- package/dist/Old/src/components/EventLayout.d.ts.map +1 -0
- package/dist/Old/src/components/common/TodayBox.d.ts +8 -0
- package/dist/Old/src/components/common/TodayBox.d.ts.map +1 -0
- package/dist/Old/src/components/monthView/MonthDragIndicator.d.ts +13 -0
- package/dist/Old/src/components/monthView/MonthDragIndicator.d.ts.map +1 -0
- package/dist/Old/src/components/monthView/MultiDayEvent.d.ts +26 -0
- package/dist/Old/src/components/monthView/MultiDayEvent.d.ts.map +1 -0
- package/dist/Old/src/components/monthView/WeekComponent.d.ts +43 -0
- package/dist/Old/src/components/monthView/WeekComponent.d.ts.map +1 -0
- package/dist/Old/src/components/monthView/util.d.ts +6 -0
- package/dist/Old/src/components/monthView/util.d.ts.map +1 -0
- package/dist/Old/src/components/weekView/CalendarEvent.d.ts +29 -0
- package/dist/Old/src/components/weekView/CalendarEvent.d.ts.map +1 -0
- package/dist/Old/src/components/weekView/DragIndicator/DefaultDragIndicator.d.ts +3 -0
- package/dist/Old/src/components/weekView/DragIndicator/DefaultDragIndicator.d.ts.map +1 -0
- package/dist/Old/src/components/weekView/DragIndicator/DragIndicatorComponent.d.ts +8 -0
- package/dist/Old/src/components/weekView/DragIndicator/DragIndicatorComponent.d.ts.map +1 -0
- package/dist/Old/src/core/CalendarApp.d.ts +29 -0
- package/dist/Old/src/core/CalendarApp.d.ts.map +1 -0
- package/dist/Old/src/core/CalendarRenderer.d.ts +9 -0
- package/dist/Old/src/core/CalendarRenderer.d.ts.map +1 -0
- package/dist/Old/src/core/config.d.ts +61 -0
- package/dist/Old/src/core/config.d.ts.map +1 -0
- package/dist/Old/src/core/index.d.ts +8 -0
- package/dist/Old/src/core/index.d.ts.map +1 -0
- package/dist/Old/src/core/useCalendarAdapter.d.ts +4 -0
- package/dist/Old/src/core/useCalendarAdapter.d.ts.map +1 -0
- package/dist/Old/src/core/useCalendarApp.d.ts +3 -0
- package/dist/Old/src/core/useCalendarApp.d.ts.map +1 -0
- package/dist/Old/src/factories/ViewAdapter.d.ts +5 -0
- package/dist/Old/src/factories/ViewAdapter.d.ts.map +1 -0
- package/dist/Old/src/factories/createDayView.d.ts +12 -0
- package/dist/Old/src/factories/createDayView.d.ts.map +1 -0
- package/dist/Old/src/factories/createMonthView.d.ts +16 -0
- package/dist/Old/src/factories/createMonthView.d.ts.map +1 -0
- package/dist/Old/src/factories/createWeekView.d.ts +15 -0
- package/dist/Old/src/factories/createWeekView.d.ts.map +1 -0
- package/dist/Old/src/factories/createYearView.d.ts +10 -0
- package/dist/Old/src/factories/createYearView.d.ts.map +1 -0
- package/dist/Old/src/factories/index.d.ts +18 -0
- package/dist/Old/src/factories/index.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/index.d.ts +8 -0
- package/dist/Old/src/hooks/drag/index.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useDrag.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useDrag.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useDragCommon.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useDragCommon.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useDragHandlers.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useDragHandlers.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useDragManager.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useDragManager.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useDragState.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useDragState.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useMonthDrag.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useMonthDrag.d.ts.map +1 -0
- package/dist/Old/src/hooks/drag/useWeekDayDrag.d.ts +3 -0
- package/dist/Old/src/hooks/drag/useWeekDayDrag.d.ts.map +1 -0
- package/dist/Old/src/hooks/virtualScroll/index.d.ts +3 -0
- package/dist/Old/src/hooks/virtualScroll/index.d.ts.map +1 -0
- package/dist/Old/src/hooks/virtualScroll/useVirtualMonthScroll.d.ts +8 -0
- package/dist/Old/src/hooks/virtualScroll/useVirtualMonthScroll.d.ts.map +1 -0
- package/dist/Old/src/hooks/virtualScroll/useVirtualScroll.d.ts +49 -0
- package/dist/Old/src/hooks/virtualScroll/useVirtualScroll.d.ts.map +1 -0
- package/dist/Old/src/plugins/dragPlugin.d.ts +6 -0
- package/dist/Old/src/plugins/dragPlugin.d.ts.map +1 -0
- package/dist/Old/src/plugins/eventsPlugin.d.ts +4 -0
- package/dist/Old/src/plugins/eventsPlugin.d.ts.map +1 -0
- package/dist/Old/src/plugins/index.d.ts +7 -0
- package/dist/Old/src/plugins/index.d.ts.map +1 -0
- package/dist/Old/src/types/calendar.d.ts +27 -0
- package/dist/Old/src/types/calendar.d.ts.map +1 -0
- package/dist/Old/src/types/config.d.ts +20 -0
- package/dist/Old/src/types/config.d.ts.map +1 -0
- package/dist/Old/src/types/core.d.ts +148 -0
- package/dist/Old/src/types/core.d.ts.map +1 -0
- package/dist/Old/src/types/dragIndicator.d.ts +141 -0
- package/dist/Old/src/types/dragIndicator.d.ts.map +1 -0
- package/dist/Old/src/types/event.d.ts +27 -0
- package/dist/Old/src/types/event.d.ts.map +1 -0
- package/dist/Old/src/types/factory.d.ts +148 -0
- package/dist/Old/src/types/factory.d.ts.map +1 -0
- package/dist/Old/src/types/hook.d.ts +104 -0
- package/dist/Old/src/types/hook.d.ts.map +1 -0
- package/dist/Old/src/types/index.d.ts +11 -0
- package/dist/Old/src/types/index.d.ts.map +1 -0
- package/dist/Old/src/types/layout.d.ts +114 -0
- package/dist/Old/src/types/layout.d.ts.map +1 -0
- package/dist/Old/src/types/monthView.d.ts +62 -0
- package/dist/Old/src/types/monthView.d.ts.map +1 -0
- package/dist/Old/src/types/plugin.d.ts +78 -0
- package/dist/Old/src/types/plugin.d.ts.map +1 -0
- package/dist/Old/src/utils/dateFormat.d.ts +15 -0
- package/dist/Old/src/utils/dateFormat.d.ts.map +1 -0
- package/dist/Old/src/utils/helpers.d.ts +89 -0
- package/dist/Old/src/utils/helpers.d.ts.map +1 -0
- package/dist/Old/src/utils/index.d.ts +3 -0
- package/dist/Old/src/utils/index.d.ts.map +1 -0
- package/dist/Old/src/views/DayView.d.ts +8 -0
- package/dist/Old/src/views/DayView.d.ts.map +1 -0
- package/dist/Old/src/views/MonthView.d.ts +8 -0
- package/dist/Old/src/views/MonthView.d.ts.map +1 -0
- package/dist/Old/src/views/WeekView.d.ts +8 -0
- package/dist/Old/src/views/WeekView.d.ts.map +1 -0
- package/dist/Old/src/views/YearView.d.ts +8 -0
- package/dist/Old/src/views/YearView.d.ts.map +1 -0
- package/dist/Old/useVirtualMonthScroll.d.ts +8 -0
- package/dist/Old/useVirtualMonthScroll.d.ts.map +1 -0
- package/dist/components/EventLayout.d.ts +134 -0
- package/dist/components/EventLayout.d.ts.map +1 -0
- package/dist/components/common/ColorPicker.d.ts +17 -0
- package/dist/components/common/ColorPicker.d.ts.map +1 -0
- package/dist/components/common/DefaultEventDetailDialog.d.ts +9 -0
- package/dist/components/common/DefaultEventDetailDialog.d.ts.map +1 -0
- package/dist/components/common/DefaultEventDetailPanel.d.ts +8 -0
- package/dist/components/common/DefaultEventDetailPanel.d.ts.map +1 -0
- package/dist/components/common/EventDetailPanelWithContent.d.ts +12 -0
- package/dist/components/common/EventDetailPanelWithContent.d.ts.map +1 -0
- package/dist/components/common/RangePicker.d.ts +24 -0
- package/dist/components/common/RangePicker.d.ts.map +1 -0
- package/dist/components/common/TodayBox.d.ts +8 -0
- package/dist/components/common/TodayBox.d.ts.map +1 -0
- package/dist/components/common/ViewHeader.d.ts +28 -0
- package/dist/components/common/ViewHeader.d.ts.map +1 -0
- package/dist/components/common/ViewSwitcher.d.ts +9 -0
- package/dist/components/common/ViewSwitcher.d.ts.map +1 -0
- package/dist/components/monthView/MonthDragIndicator.d.ts +13 -0
- package/dist/components/monthView/MonthDragIndicator.d.ts.map +1 -0
- package/dist/components/monthView/MultiDayEvent.d.ts +26 -0
- package/dist/components/monthView/MultiDayEvent.d.ts.map +1 -0
- package/dist/components/monthView/WeekComponent.d.ts +46 -0
- package/dist/components/monthView/WeekComponent.d.ts.map +1 -0
- package/dist/components/monthView/util.d.ts +12 -0
- package/dist/components/monthView/util.d.ts.map +1 -0
- package/dist/components/sidebar/DefaultCalendarSidebar.d.ts +5 -0
- package/dist/components/sidebar/DefaultCalendarSidebar.d.ts.map +1 -0
- package/dist/components/weekView/CalendarEvent.d.ts +43 -0
- package/dist/components/weekView/CalendarEvent.d.ts.map +1 -0
- package/dist/components/weekView/DragIndicator/DefaultDragIndicator.d.ts +3 -0
- package/dist/components/weekView/DragIndicator/DefaultDragIndicator.d.ts.map +1 -0
- package/dist/components/weekView/DragIndicator/DragIndicatorComponent.d.ts +8 -0
- package/dist/components/weekView/DragIndicator/DragIndicatorComponent.d.ts.map +1 -0
- package/dist/core/CalendarApp.d.ts +43 -0
- package/dist/core/CalendarApp.d.ts.map +1 -0
- package/dist/core/CalendarRenderer.d.ts +15 -0
- package/dist/core/CalendarRenderer.d.ts.map +1 -0
- package/dist/core/DayFlowCalendar.d.ts +15 -0
- package/dist/core/DayFlowCalendar.d.ts.map +1 -0
- package/dist/core/calendarRegistry.d.ts +104 -0
- package/dist/core/calendarRegistry.d.ts.map +1 -0
- package/dist/core/config.d.ts +61 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/useCalendarAdapter.d.ts +4 -0
- package/dist/core/useCalendarAdapter.d.ts.map +1 -0
- package/dist/core/useCalendarApp.d.ts +3 -0
- package/dist/core/useCalendarApp.d.ts.map +1 -0
- package/dist/factories/ViewAdapter.d.ts +5 -0
- package/dist/factories/ViewAdapter.d.ts.map +1 -0
- package/dist/factories/createDayView.d.ts +12 -0
- package/dist/factories/createDayView.d.ts.map +1 -0
- package/dist/factories/createMonthView.d.ts +16 -0
- package/dist/factories/createMonthView.d.ts.map +1 -0
- package/dist/factories/createWeekView.d.ts +15 -0
- package/dist/factories/createWeekView.d.ts.map +1 -0
- package/dist/factories/createYearView.d.ts +10 -0
- package/dist/factories/createYearView.d.ts.map +1 -0
- package/dist/factories/index.d.ts +18 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/hooks/drag/index.d.ts +8 -0
- package/dist/hooks/drag/index.d.ts.map +1 -0
- package/dist/hooks/drag/useDrag.d.ts +3 -0
- package/dist/hooks/drag/useDrag.d.ts.map +1 -0
- package/dist/hooks/drag/useDragCommon.d.ts +3 -0
- package/dist/hooks/drag/useDragCommon.d.ts.map +1 -0
- package/dist/hooks/drag/useDragHandlers.d.ts +3 -0
- package/dist/hooks/drag/useDragHandlers.d.ts.map +1 -0
- package/dist/hooks/drag/useDragManager.d.ts +3 -0
- package/dist/hooks/drag/useDragManager.d.ts.map +1 -0
- package/dist/hooks/drag/useDragState.d.ts +3 -0
- package/dist/hooks/drag/useDragState.d.ts.map +1 -0
- package/dist/hooks/drag/useMonthDrag.d.ts +3 -0
- package/dist/hooks/drag/useMonthDrag.d.ts.map +1 -0
- package/dist/hooks/drag/useWeekDayDrag.d.ts +3 -0
- package/dist/hooks/drag/useWeekDayDrag.d.ts.map +1 -0
- package/dist/hooks/useEventCreator.d.ts +63 -0
- package/dist/hooks/useEventCreator.d.ts.map +1 -0
- package/dist/hooks/virtualScroll/index.d.ts +3 -0
- package/dist/hooks/virtualScroll/index.d.ts.map +1 -0
- package/dist/hooks/virtualScroll/useVirtualMonthScroll.d.ts +8 -0
- package/dist/hooks/virtualScroll/useVirtualMonthScroll.d.ts.map +1 -0
- package/dist/hooks/virtualScroll/useVirtualScroll.d.ts +49 -0
- package/dist/hooks/virtualScroll/useVirtualScroll.d.ts.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +125 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/dragPlugin.d.ts +6 -0
- package/dist/plugins/dragPlugin.d.ts.map +1 -0
- package/dist/plugins/eventsPlugin.d.ts +4 -0
- package/dist/plugins/eventsPlugin.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/setupTests.d.ts +2 -0
- package/dist/setupTests.d.ts.map +1 -0
- package/dist/styles/calendarClassNames.d.ts +155 -0
- package/dist/styles/calendarClassNames.d.ts.map +1 -0
- package/dist/styles/classNames.d.ts +297 -0
- package/dist/styles/classNames.d.ts.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types/calendar.d.ts +27 -0
- package/dist/types/calendar.d.ts.map +1 -0
- package/dist/types/calendarTypes.d.ts +69 -0
- package/dist/types/calendarTypes.d.ts.map +1 -0
- package/dist/types/config.d.ts +20 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/core.d.ts +192 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/dragIndicator.d.ts +155 -0
- package/dist/types/dragIndicator.d.ts.map +1 -0
- package/dist/types/event.d.ts +17 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/eventDetail.d.ts +73 -0
- package/dist/types/eventDetail.d.ts.map +1 -0
- package/dist/types/factory.d.ts +154 -0
- package/dist/types/factory.d.ts.map +1 -0
- package/dist/types/hook.d.ts +104 -0
- package/dist/types/hook.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/layout.d.ts +114 -0
- package/dist/types/layout.d.ts.map +1 -0
- package/dist/types/monthView.d.ts +64 -0
- package/dist/types/monthView.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +78 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/utils/calendarDataUtils.d.ts +84 -0
- package/dist/utils/calendarDataUtils.d.ts.map +1 -0
- package/dist/utils/colorResolver.d.ts +33 -0
- package/dist/utils/colorResolver.d.ts.map +1 -0
- package/dist/utils/colorUtils.d.ts +27 -0
- package/dist/utils/colorUtils.d.ts.map +1 -0
- package/dist/utils/compat.d.ts +60 -0
- package/dist/utils/compat.d.ts.map +1 -0
- package/dist/utils/dateConstants.d.ts +23 -0
- package/dist/utils/dateConstants.d.ts.map +1 -0
- package/dist/utils/dateFormat.d.ts +16 -0
- package/dist/utils/dateFormat.d.ts.map +1 -0
- package/dist/utils/dateRangeUtils.d.ts +25 -0
- package/dist/utils/dateRangeUtils.d.ts.map +1 -0
- package/dist/utils/dateTimeUtils.d.ts +50 -0
- package/dist/utils/dateTimeUtils.d.ts.map +1 -0
- package/dist/utils/eventHelpers.d.ts +144 -0
- package/dist/utils/eventHelpers.d.ts.map +1 -0
- package/dist/utils/eventUtils.d.ts +109 -0
- package/dist/utils/eventUtils.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +27 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/rangePicker.d.ts +9 -0
- package/dist/utils/rangePicker.d.ts.map +1 -0
- package/dist/utils/temporal.d.ts +101 -0
- package/dist/utils/temporal.d.ts.map +1 -0
- package/dist/utils/temporalTypeGuards.d.ts +64 -0
- package/dist/utils/temporalTypeGuards.d.ts.map +1 -0
- package/dist/utils/testDataUtils.d.ts +15 -0
- package/dist/utils/testDataUtils.d.ts.map +1 -0
- package/dist/utils/timeUtils.d.ts +39 -0
- package/dist/utils/timeUtils.d.ts.map +1 -0
- package/dist/utils/utilityFunctions.d.ts +12 -0
- package/dist/utils/utilityFunctions.d.ts.map +1 -0
- package/dist/views/DayView.d.ts +14 -0
- package/dist/views/DayView.d.ts.map +1 -0
- package/dist/views/MonthView.d.ts +14 -0
- package/dist/views/MonthView.d.ts.map +1 -0
- package/dist/views/WeekView.d.ts +14 -0
- package/dist/views/WeekView.d.ts.map +1 -0
- package/dist/views/YearView.d.ts +8 -0
- package/dist/views/YearView.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CalendarView, ViewType, UseCalendarAppReturn } from './core';
|
|
3
|
+
import { Event } from './event';
|
|
4
|
+
import { EventLayout } from './layout';
|
|
5
|
+
import { EventDetailContentRenderer, EventDetailDialogRenderer } from './eventDetail';
|
|
6
|
+
import { ViewSwitcherMode } from '@/components/common/ViewHeader';
|
|
7
|
+
/**
|
|
8
|
+
* Common Props interface for view components
|
|
9
|
+
* Base properties for all view components
|
|
10
|
+
*/
|
|
11
|
+
export interface BaseViewProps {
|
|
12
|
+
app: UseCalendarAppReturn['app'];
|
|
13
|
+
currentDate: Date;
|
|
14
|
+
currentView: ViewType;
|
|
15
|
+
events: Event[];
|
|
16
|
+
onEventUpdate: (event: Event) => void;
|
|
17
|
+
onEventDelete: (eventId: string) => void;
|
|
18
|
+
onEventCreate: (event: Event) => void;
|
|
19
|
+
onDateChange: (date: Date) => void;
|
|
20
|
+
onViewChange: (view: ViewType) => void;
|
|
21
|
+
config: Record<string, any>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Day view specific Props
|
|
25
|
+
*/
|
|
26
|
+
export interface DayViewProps extends BaseViewProps {
|
|
27
|
+
showMiniCalendar?: boolean;
|
|
28
|
+
showAllDay?: boolean;
|
|
29
|
+
scrollToCurrentTime?: boolean;
|
|
30
|
+
selectedEvent?: Event | null;
|
|
31
|
+
onEventSelect?: (event: Event | null) => void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Week view specific Props
|
|
35
|
+
*/
|
|
36
|
+
export interface WeekViewProps extends BaseViewProps {
|
|
37
|
+
showWeekends?: boolean;
|
|
38
|
+
showAllDay?: boolean;
|
|
39
|
+
startOfWeek?: number;
|
|
40
|
+
scrollToCurrentTime?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Month view specific Props
|
|
44
|
+
*/
|
|
45
|
+
export interface MonthViewProps extends BaseViewProps {
|
|
46
|
+
showOtherMonth?: boolean;
|
|
47
|
+
weekHeight?: number;
|
|
48
|
+
showWeekNumbers?: boolean;
|
|
49
|
+
enableVirtualScroll?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* View factory configuration interface
|
|
53
|
+
* Base configuration for creating views
|
|
54
|
+
*/
|
|
55
|
+
export interface ViewFactoryConfig {
|
|
56
|
+
enableDrag?: boolean;
|
|
57
|
+
enableResize?: boolean;
|
|
58
|
+
enableCreate?: boolean;
|
|
59
|
+
dragConfig?: Record<string, any>;
|
|
60
|
+
eventsConfig?: Record<string, any>;
|
|
61
|
+
virtualScrollConfig?: Record<string, any>;
|
|
62
|
+
viewConfig?: Record<string, any>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Day view factory configuration
|
|
66
|
+
*/
|
|
67
|
+
export interface DayViewConfig extends ViewFactoryConfig {
|
|
68
|
+
showMiniCalendar?: boolean;
|
|
69
|
+
showAllDay?: boolean;
|
|
70
|
+
scrollToCurrentTime?: boolean;
|
|
71
|
+
hourHeight?: number;
|
|
72
|
+
firstHour?: number;
|
|
73
|
+
lastHour?: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Week view factory configuration
|
|
77
|
+
*/
|
|
78
|
+
export interface WeekViewConfig extends ViewFactoryConfig {
|
|
79
|
+
showWeekends?: boolean;
|
|
80
|
+
showAllDay?: boolean;
|
|
81
|
+
startOfWeek?: number;
|
|
82
|
+
scrollToCurrentTime?: boolean;
|
|
83
|
+
hourHeight?: number;
|
|
84
|
+
firstHour?: number;
|
|
85
|
+
lastHour?: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Month view factory configuration
|
|
89
|
+
*/
|
|
90
|
+
export interface MonthViewConfig extends ViewFactoryConfig {
|
|
91
|
+
showOtherMonth?: boolean;
|
|
92
|
+
weekHeight?: number;
|
|
93
|
+
showWeekNumbers?: boolean;
|
|
94
|
+
enableVirtualScroll?: boolean;
|
|
95
|
+
initialWeeksToLoad?: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Year view factory configuration
|
|
99
|
+
*/
|
|
100
|
+
export interface YearViewConfig extends ViewFactoryConfig {
|
|
101
|
+
enableVirtualScroll?: boolean;
|
|
102
|
+
showDebugInfo?: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* View adapter Props
|
|
106
|
+
* Adapter properties for wrapping original components
|
|
107
|
+
*/
|
|
108
|
+
export interface ViewAdapterProps {
|
|
109
|
+
viewType: ViewType;
|
|
110
|
+
originalComponent: React.ComponentType<any>;
|
|
111
|
+
app: UseCalendarAppReturn['app'];
|
|
112
|
+
config: ViewFactoryConfig;
|
|
113
|
+
className?: string;
|
|
114
|
+
customDetailPanelContent?: EventDetailContentRenderer;
|
|
115
|
+
customEventDetailDialog?: EventDetailDialogRenderer;
|
|
116
|
+
calendarRef: React.RefObject<HTMLDivElement>;
|
|
117
|
+
switcherMode?: ViewSwitcherMode;
|
|
118
|
+
meta?: Record<string, any>;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Drag integration Props
|
|
122
|
+
* Properties for integrating drag functionality into views
|
|
123
|
+
*/
|
|
124
|
+
export interface DragIntegrationProps {
|
|
125
|
+
app: UseCalendarAppReturn['app'];
|
|
126
|
+
viewType: ViewType;
|
|
127
|
+
calendarRef: React.RefObject<HTMLDivElement>;
|
|
128
|
+
allDayRowRef?: React.RefObject<HTMLDivElement>;
|
|
129
|
+
events: Event[];
|
|
130
|
+
onEventsUpdate: (updateFunc: (events: Event[]) => Event[]) => void;
|
|
131
|
+
onEventCreate: (event: Event) => void;
|
|
132
|
+
calculateNewEventLayout?: (dayIndex: number, startHour: number, endHour: number) => EventLayout | null;
|
|
133
|
+
calculateDragLayout?: (event: Event, targetDay: number, targetStartHour: number, targetEndHour: number) => EventLayout | null;
|
|
134
|
+
currentWeekStart: Date;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Virtual scroll integration Props
|
|
138
|
+
* Properties for integrating virtual scroll functionality into views
|
|
139
|
+
*/
|
|
140
|
+
export interface VirtualScrollIntegrationProps {
|
|
141
|
+
app: UseCalendarAppReturn['app'];
|
|
142
|
+
currentDate: Date;
|
|
143
|
+
weekHeight?: number;
|
|
144
|
+
onCurrentMonthChange?: (month: string, year: number) => void;
|
|
145
|
+
initialWeeksToLoad?: number;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Factory function return type
|
|
149
|
+
* Type definition for view factory functions
|
|
150
|
+
*/
|
|
151
|
+
export interface ViewFactory<TConfig = ViewFactoryConfig> {
|
|
152
|
+
(config?: TConfig): CalendarView;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/types/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Root } from 'react-dom/client';
|
|
3
|
+
import { Event } from './event';
|
|
4
|
+
import { EventLayout } from './layout';
|
|
5
|
+
import { UnifiedDragRef, MonthDragState, WeekDayDragState, useDragProps } from './dragIndicator';
|
|
6
|
+
/**
|
|
7
|
+
* Virtual scroll item interface (YearView)
|
|
8
|
+
*/
|
|
9
|
+
export interface VirtualItem {
|
|
10
|
+
index: number;
|
|
11
|
+
year: number;
|
|
12
|
+
top: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Virtual scroll Hook parameters interface (YearView)
|
|
17
|
+
*/
|
|
18
|
+
export interface UseVirtualScrollProps {
|
|
19
|
+
currentDate: Date;
|
|
20
|
+
yearHeight: number;
|
|
21
|
+
onCurrentYearChange?: (year: number) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Virtual scroll Hook return value interface (YearView)
|
|
25
|
+
*/
|
|
26
|
+
export interface UseVirtualScrollReturn {
|
|
27
|
+
scrollTop: number;
|
|
28
|
+
containerHeight: number;
|
|
29
|
+
currentYear: number;
|
|
30
|
+
isScrolling: boolean;
|
|
31
|
+
virtualData: {
|
|
32
|
+
totalHeight: number;
|
|
33
|
+
visibleItems: VirtualItem[];
|
|
34
|
+
};
|
|
35
|
+
scrollElementRef: React.RefObject<HTMLDivElement>;
|
|
36
|
+
handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
|
|
37
|
+
scrollToYear: (targetYear: number, smooth?: boolean) => void;
|
|
38
|
+
handlePreviousYear: () => void;
|
|
39
|
+
handleNextYear: () => void;
|
|
40
|
+
handleToday: () => void;
|
|
41
|
+
setScrollTop: React.Dispatch<React.SetStateAction<number>>;
|
|
42
|
+
setContainerHeight: React.Dispatch<React.SetStateAction<number>>;
|
|
43
|
+
setCurrentYear: React.Dispatch<React.SetStateAction<number>>;
|
|
44
|
+
setIsScrolling: React.Dispatch<React.SetStateAction<boolean>>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Drag state Hook return value
|
|
48
|
+
*/
|
|
49
|
+
export interface UseDragStateReturn {
|
|
50
|
+
dragRef: React.RefObject<UnifiedDragRef>;
|
|
51
|
+
currentDragRef: React.RefObject<{
|
|
52
|
+
x: number;
|
|
53
|
+
y: number;
|
|
54
|
+
}>;
|
|
55
|
+
dragState: MonthDragState | WeekDayDragState;
|
|
56
|
+
setDragState: React.Dispatch<React.SetStateAction<MonthDragState | WeekDayDragState>>;
|
|
57
|
+
resetDragState: () => void;
|
|
58
|
+
throttledSetEvents: (updateFunc: (events: Event[]) => Event[], dragState?: string) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Drag common utilities Hook return value
|
|
62
|
+
*/
|
|
63
|
+
export interface UseDragCommonReturn {
|
|
64
|
+
pixelYToHour: (y: number) => number;
|
|
65
|
+
getColumnDayIndex: (x: number) => number;
|
|
66
|
+
checkIfInAllDayArea: (clientY: number) => boolean;
|
|
67
|
+
handleDirectScroll: (clientY: number) => void;
|
|
68
|
+
daysDifference: (date1: Date, date2: Date) => number;
|
|
69
|
+
addDaysToDate: (date: Date, days: number) => Date;
|
|
70
|
+
getTargetDateFromPosition: (clientX: number, clientY: number) => Date | null;
|
|
71
|
+
ONE_DAY_MS: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Drag management Hook return value
|
|
75
|
+
*/
|
|
76
|
+
export interface UseDragManagerReturn {
|
|
77
|
+
dragIndicatorRef: React.RefObject<HTMLDivElement | null>;
|
|
78
|
+
reactRootRef: React.RefObject<Root | null>;
|
|
79
|
+
removeDragIndicator: () => void;
|
|
80
|
+
createDragIndicator: (drag: UnifiedDragRef, color?: string, title?: string, layout?: EventLayout | null, sourceElement?: HTMLElement) => void;
|
|
81
|
+
updateDragIndicator: (...args: (number | boolean | EventLayout | null | undefined)[]) => void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Drag handler Hook return value
|
|
85
|
+
*/
|
|
86
|
+
export interface UseDragHandlersReturn {
|
|
87
|
+
handleDragMove: (e: MouseEvent) => void;
|
|
88
|
+
handleDragEnd: (e: MouseEvent) => void;
|
|
89
|
+
handleCreateStart: (e: React.MouseEvent, ...args: (Date | number)[]) => void;
|
|
90
|
+
handleMoveStart: (e: React.MouseEvent, event: Event) => void;
|
|
91
|
+
handleResizeStart: (e: React.MouseEvent, event: Event, direction: string) => void;
|
|
92
|
+
handleUniversalDragMove: (e: MouseEvent) => void;
|
|
93
|
+
handleUniversalDragEnd: () => void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Drag handler Hook parameters
|
|
97
|
+
*/
|
|
98
|
+
export interface UseDragHandlersParams {
|
|
99
|
+
options: useDragProps;
|
|
100
|
+
common: UseDragCommonReturn;
|
|
101
|
+
state: UseDragStateReturn;
|
|
102
|
+
manager: UseDragManagerReturn;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/types/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './core';
|
|
2
|
+
export * from './calendar';
|
|
3
|
+
export * from './event';
|
|
4
|
+
export * from './layout';
|
|
5
|
+
export * from './dragIndicator';
|
|
6
|
+
export * from './monthView';
|
|
7
|
+
export * from './factory';
|
|
8
|
+
export * from './plugin';
|
|
9
|
+
export * from './config';
|
|
10
|
+
export * from './hook';
|
|
11
|
+
export * from './eventDetail';
|
|
12
|
+
export * from './calendarTypes';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,iBAAiB,CAAC;AAGhC,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,eAAe,CAAC;AAG9B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Event } from './event';
|
|
2
|
+
/**
|
|
3
|
+
* Event layout configuration constants
|
|
4
|
+
* Controls visual presentation of events in the calendar
|
|
5
|
+
*/
|
|
6
|
+
export declare const LAYOUT_CONFIG: {
|
|
7
|
+
readonly INDENT_STEP: 2;
|
|
8
|
+
readonly MIN_WIDTH: 25;
|
|
9
|
+
readonly MARGIN_BETWEEN: 2;
|
|
10
|
+
readonly CONTAINER_WIDTH: 320;
|
|
11
|
+
readonly OVERLAP_THRESHOLD: 0.25;
|
|
12
|
+
readonly EDGE_MARGIN: 3;
|
|
13
|
+
readonly MAX_LOAD_IMBALANCE: 0;
|
|
14
|
+
readonly REBALANCE_THRESHOLD: 2;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Event layout interface
|
|
18
|
+
* Defines position and styling of events in the UI
|
|
19
|
+
*/
|
|
20
|
+
export interface EventLayout {
|
|
21
|
+
id: string;
|
|
22
|
+
left: number;
|
|
23
|
+
width: number;
|
|
24
|
+
zIndex: number;
|
|
25
|
+
level: number;
|
|
26
|
+
isPrimary: boolean;
|
|
27
|
+
indentOffset: number;
|
|
28
|
+
importance: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Nested layer interface
|
|
32
|
+
* Represents hierarchical relationships of events
|
|
33
|
+
*/
|
|
34
|
+
export interface NestedLayer {
|
|
35
|
+
events: Event[];
|
|
36
|
+
level: number;
|
|
37
|
+
parentEvent?: Event;
|
|
38
|
+
timeSlot?: {
|
|
39
|
+
start: number;
|
|
40
|
+
end: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Event group interface
|
|
45
|
+
* Represents a group of related events and their nested structure
|
|
46
|
+
*/
|
|
47
|
+
export interface EventGroup {
|
|
48
|
+
events: Event[];
|
|
49
|
+
startHour: number;
|
|
50
|
+
endHour: number;
|
|
51
|
+
primaryEvent?: Event;
|
|
52
|
+
nestedStructure: NestedLayer[];
|
|
53
|
+
specialLayoutRules?: SpecialLayoutRule[];
|
|
54
|
+
originalBranchMap?: Map<string, Event>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Event relationship information interface
|
|
58
|
+
* Describes relationships of events in nested structures
|
|
59
|
+
*/
|
|
60
|
+
export interface EventRelations {
|
|
61
|
+
directChildren: Event[];
|
|
62
|
+
allDescendants: Event[];
|
|
63
|
+
directParent: Event | null;
|
|
64
|
+
layer: NestedLayer | null;
|
|
65
|
+
subtreeSize: number;
|
|
66
|
+
isLeaf: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Subtree analysis interface
|
|
70
|
+
* Used to analyze structural information of event trees
|
|
71
|
+
*/
|
|
72
|
+
export interface SubtreeAnalysis {
|
|
73
|
+
rootEvent: Event;
|
|
74
|
+
allDescendants: Event[];
|
|
75
|
+
timeSpan: {
|
|
76
|
+
start: number;
|
|
77
|
+
end: number;
|
|
78
|
+
duration: number;
|
|
79
|
+
};
|
|
80
|
+
descendantCount: number;
|
|
81
|
+
maxDepth: number;
|
|
82
|
+
branchPath: Event[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Balance strategy interface
|
|
86
|
+
* Used for balance algorithms to optimize event layouts
|
|
87
|
+
*/
|
|
88
|
+
export interface BalanceStrategy {
|
|
89
|
+
type: 'count_balance' | 'timespan_balance';
|
|
90
|
+
transfers: TransferOperation[];
|
|
91
|
+
specialLayoutRules: SpecialLayoutRule[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Transfer operation interface
|
|
95
|
+
* Describes movement of events in layout optimization
|
|
96
|
+
*/
|
|
97
|
+
export interface TransferOperation {
|
|
98
|
+
event: Event;
|
|
99
|
+
fromParent: Event;
|
|
100
|
+
toParent: Event;
|
|
101
|
+
reason: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Special layout rule interface
|
|
105
|
+
* Defines layout constraints for specific events
|
|
106
|
+
*/
|
|
107
|
+
export interface SpecialLayoutRule {
|
|
108
|
+
eventId: string;
|
|
109
|
+
layoutType: 'align_with_ancestor' | 'full_width' | 'full_width_from_level' | 'align_with_sibling';
|
|
110
|
+
referenceEvent?: Event;
|
|
111
|
+
targetLevel?: number;
|
|
112
|
+
reason?: string;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/types/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAShB,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,KAAK,CAAC;IACjB,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAAC;IAC3C,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EACN,qBAAqB,GACrB,YAAY,GACZ,uBAAuB,GACvB,oBAAoB,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { WeeksData } from '.';
|
|
2
|
+
export interface UseVirtualMonthScrollProps {
|
|
3
|
+
currentDate: Date;
|
|
4
|
+
weekHeight: number;
|
|
5
|
+
onCurrentMonthChange?: (month: string, year: number) => void;
|
|
6
|
+
initialWeeksToLoad?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface UseVirtualMonthScrollReturn {
|
|
9
|
+
scrollTop: number;
|
|
10
|
+
containerHeight: number;
|
|
11
|
+
currentMonth: string;
|
|
12
|
+
currentYear: number;
|
|
13
|
+
isScrolling: boolean;
|
|
14
|
+
virtualData: {
|
|
15
|
+
totalHeight: number;
|
|
16
|
+
visibleItems: VirtualWeekItem[];
|
|
17
|
+
displayStartIndex: number;
|
|
18
|
+
};
|
|
19
|
+
scrollElementRef: React.RefObject<HTMLDivElement | null>;
|
|
20
|
+
handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
|
|
21
|
+
scrollToDate: (targetDate: Date, smooth?: boolean) => void;
|
|
22
|
+
handlePreviousMonth: () => void;
|
|
23
|
+
handleNextMonth: () => void;
|
|
24
|
+
handleToday: () => void;
|
|
25
|
+
setScrollTop: React.Dispatch<React.SetStateAction<number>>;
|
|
26
|
+
setContainerHeight: React.Dispatch<React.SetStateAction<number>>;
|
|
27
|
+
setCurrentMonth: React.Dispatch<React.SetStateAction<string>>;
|
|
28
|
+
setCurrentYear: React.Dispatch<React.SetStateAction<number>>;
|
|
29
|
+
setIsScrolling: React.Dispatch<React.SetStateAction<boolean>>;
|
|
30
|
+
cache: WeekDataCache;
|
|
31
|
+
scrollElementRefCallback: (element: HTMLDivElement | null) => void;
|
|
32
|
+
weeksData: WeeksData[];
|
|
33
|
+
}
|
|
34
|
+
export declare const VIRTUAL_MONTH_SCROLL_CONFIG: {
|
|
35
|
+
readonly OVERSCAN: 6;
|
|
36
|
+
readonly BUFFER_SIZE: 100;
|
|
37
|
+
readonly MIN_YEAR: 1900;
|
|
38
|
+
readonly MAX_YEAR: 2200;
|
|
39
|
+
readonly SCROLL_THROTTLE: 8;
|
|
40
|
+
readonly SCROLL_DEBOUNCE: 150;
|
|
41
|
+
readonly CACHE_CLEANUP_THRESHOLD: 200;
|
|
42
|
+
readonly MOBILE_WEEK_HEIGHT: 80;
|
|
43
|
+
readonly TABLET_WEEK_HEIGHT: 90;
|
|
44
|
+
readonly WEEK_HEIGHT: 119;
|
|
45
|
+
};
|
|
46
|
+
export interface VirtualWeekItem {
|
|
47
|
+
index: number;
|
|
48
|
+
weekData: WeeksData;
|
|
49
|
+
top: number;
|
|
50
|
+
height: number;
|
|
51
|
+
}
|
|
52
|
+
export declare class WeekDataCache {
|
|
53
|
+
private cache;
|
|
54
|
+
private accessOrder;
|
|
55
|
+
private maxSize;
|
|
56
|
+
constructor(maxSize?: number);
|
|
57
|
+
private getKey;
|
|
58
|
+
get(weekStartDate: Date): WeeksData | undefined;
|
|
59
|
+
set(weekStartDate: Date, data: WeeksData): void;
|
|
60
|
+
private updateAccessOrder;
|
|
61
|
+
getSize(): number;
|
|
62
|
+
clear(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=monthView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monthView.d.ts","sourceRoot":"","sources":["../../src/types/monthView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAGD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,eAAe,EAAE,CAAC;QAChC,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,KAAK,EAAE,aAAa,CAAC;IACrB,wBAAwB,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAGD,eAAO,MAAM,2BAA2B;;;;;;;;;;;CAW9B,CAAC;AAGX,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAgD;IAIrE,OAAO,CAAC,MAAM;IAId,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS;IAU/C,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAc/C,OAAO,CAAC,iBAAiB;IAQzB,OAAO,IAAI,MAAM;IAIjB,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Event } from './event';
|
|
3
|
+
import { EventLayout } from './layout';
|
|
4
|
+
import { ViewType } from './core';
|
|
5
|
+
import { MonthDragState, WeekDayDragState } from './dragIndicator';
|
|
6
|
+
/**
|
|
7
|
+
* Events service interface
|
|
8
|
+
* Provides various event management functions
|
|
9
|
+
*/
|
|
10
|
+
export interface EventsService {
|
|
11
|
+
getAll: () => Event[];
|
|
12
|
+
getById: (id: string) => Event | undefined;
|
|
13
|
+
add: (event: Event) => void;
|
|
14
|
+
update: (id: string, updates: Partial<Event>) => Event;
|
|
15
|
+
delete: (id: string) => void;
|
|
16
|
+
getByDate: (date: Date) => Event[];
|
|
17
|
+
getByDateRange: (startDate: Date, endDate: Date) => Event[];
|
|
18
|
+
getByDay: (dayIndex: number, weekStart: Date) => Event[];
|
|
19
|
+
getAllDayEvents: (dayIndex: number, events: Event[]) => Event[];
|
|
20
|
+
recalculateEventDays: (events: Event[], weekStart: Date) => Event[];
|
|
21
|
+
validateEvent: (event: Partial<Event>) => string[];
|
|
22
|
+
filterEvents: (events: Event[], filter: (event: Event) => boolean) => Event[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Events plugin configuration
|
|
26
|
+
*/
|
|
27
|
+
export interface EventsPluginConfig {
|
|
28
|
+
enableAutoRecalculate?: boolean;
|
|
29
|
+
enableValidation?: boolean;
|
|
30
|
+
defaultEvents?: Event[];
|
|
31
|
+
maxEventsPerDay?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Drag Hook options
|
|
35
|
+
*/
|
|
36
|
+
export interface DragHookOptions {
|
|
37
|
+
calendarRef: React.RefObject<HTMLDivElement | null>;
|
|
38
|
+
allDayRowRef?: React.RefObject<HTMLDivElement | null>;
|
|
39
|
+
viewType: ViewType;
|
|
40
|
+
onEventsUpdate: (updateFunc: (events: Event[]) => Event[]) => void;
|
|
41
|
+
onEventCreate: (event: Event) => void;
|
|
42
|
+
onEventEdit: (event: Event) => void;
|
|
43
|
+
currentWeekStart: Date;
|
|
44
|
+
events: Event[];
|
|
45
|
+
calculateNewEventLayout?: (dayIndex: number, startHour: number, endHour: number) => EventLayout | null;
|
|
46
|
+
calculateDragLayout?: (event: Event, targetDay: number, targetStartHour: number, targetEndHour: number) => EventLayout | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Drag Hook return value
|
|
50
|
+
*/
|
|
51
|
+
export interface DragHookReturn {
|
|
52
|
+
handleMoveStart: (e: React.MouseEvent, event: Event) => void;
|
|
53
|
+
handleCreateStart: (e: React.MouseEvent, ...args: (Date | number)[]) => void;
|
|
54
|
+
handleResizeStart: (e: React.MouseEvent, event: Event, direction: string) => void;
|
|
55
|
+
handleCreateAllDayEvent?: (e: React.MouseEvent, dayIndex: number) => void;
|
|
56
|
+
dragState: MonthDragState | WeekDayDragState;
|
|
57
|
+
isDragging: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Drag plugin configuration
|
|
61
|
+
*/
|
|
62
|
+
export interface DragPluginConfig {
|
|
63
|
+
enableDrag: boolean;
|
|
64
|
+
enableResize: boolean;
|
|
65
|
+
enableCreate: boolean;
|
|
66
|
+
enableAllDayCreate: boolean;
|
|
67
|
+
supportedViews: ViewType[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Drag service interface
|
|
71
|
+
* Provides drag capability for views
|
|
72
|
+
*/
|
|
73
|
+
export interface DragService {
|
|
74
|
+
getConfig: () => DragPluginConfig;
|
|
75
|
+
updateConfig: (updates: Partial<DragPluginConfig>) => void;
|
|
76
|
+
isViewSupported: (viewType: ViewType) => boolean;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar Data Generation Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for generating calendar data structures
|
|
5
|
+
* including days, weeks, and month/year metadata.
|
|
6
|
+
*/
|
|
7
|
+
import { DayData, WeeksData } from '@/types';
|
|
8
|
+
/**
|
|
9
|
+
* Generate day data object from a date
|
|
10
|
+
* @param date Date to generate data for
|
|
11
|
+
* @returns Day data with date, day, month, year, and isToday flag
|
|
12
|
+
*/
|
|
13
|
+
export declare const generateDayData: (date: string | number | Date) => {
|
|
14
|
+
date: Date;
|
|
15
|
+
day: number;
|
|
16
|
+
month: number;
|
|
17
|
+
year: number;
|
|
18
|
+
monthName: string;
|
|
19
|
+
shortMonthName: string;
|
|
20
|
+
isToday: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Generate week data (7 days starting from given date)
|
|
24
|
+
* @param startDate Week start date
|
|
25
|
+
* @returns Week data with days array, startDate, and monthYear
|
|
26
|
+
*/
|
|
27
|
+
export declare const generateWeekData: (startDate: string | number | Date) => {
|
|
28
|
+
days: {
|
|
29
|
+
date: Date;
|
|
30
|
+
day: number;
|
|
31
|
+
month: number;
|
|
32
|
+
year: number;
|
|
33
|
+
monthName: string;
|
|
34
|
+
shortMonthName: string;
|
|
35
|
+
isToday: boolean;
|
|
36
|
+
}[];
|
|
37
|
+
startDate: Date;
|
|
38
|
+
monthYear: {
|
|
39
|
+
month: string;
|
|
40
|
+
monthIndex: number;
|
|
41
|
+
year: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Determine which month and year a week belongs to (based on majority of days)
|
|
46
|
+
* @param days Array of day data
|
|
47
|
+
* @returns Month name, month index, and year
|
|
48
|
+
*/
|
|
49
|
+
export declare const getMonthYearOfWeek: (days: DayData[]) => {
|
|
50
|
+
month: string;
|
|
51
|
+
monthIndex: number;
|
|
52
|
+
year: number;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Generate weeks data around a central date
|
|
56
|
+
* @param centralDate Central date for range
|
|
57
|
+
* @param monthsToLoad Number of months to load (default: 3)
|
|
58
|
+
* @returns Array of week data
|
|
59
|
+
*/
|
|
60
|
+
export declare const generateWeeksData: (centralDate: Date, monthsToLoad?: number) => {
|
|
61
|
+
days: {
|
|
62
|
+
date: Date;
|
|
63
|
+
day: number;
|
|
64
|
+
month: number;
|
|
65
|
+
year: number;
|
|
66
|
+
monthName: string;
|
|
67
|
+
shortMonthName: string;
|
|
68
|
+
isToday: boolean;
|
|
69
|
+
}[];
|
|
70
|
+
startDate: Date;
|
|
71
|
+
monthYear: {
|
|
72
|
+
month: string;
|
|
73
|
+
monthIndex: number;
|
|
74
|
+
year: number;
|
|
75
|
+
};
|
|
76
|
+
}[];
|
|
77
|
+
/**
|
|
78
|
+
* Generate week range around a center date
|
|
79
|
+
* @param centerDate Center date for range
|
|
80
|
+
* @param totalWeeks Total number of weeks to generate
|
|
81
|
+
* @returns Array of weeks data
|
|
82
|
+
*/
|
|
83
|
+
export declare function generateWeekRange(centerDate: Date, totalWeeks: number): WeeksData[];
|
|
84
|
+
//# sourceMappingURL=calendarDataUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendarDataUtils.d.ts","sourceRoot":"","sources":["../../src/utils/calendarDataUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQ7C;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI;;;;;;;;CAmB3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;CAejE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,OAAO,EAAE;;;;CA0BjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,aAAa,IAAI,EAAE,qBAAgB;;;;;;;;;;;;;;;;GAoBpE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,MAAM,GACjB,SAAS,EAAE,CAsBb"}
|