@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,148 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CalendarView, ViewType, UseCalendarAppReturn } from './core';
|
|
3
|
+
import { WeekEvent } from './event';
|
|
4
|
+
import { EventLayout } from './layout';
|
|
5
|
+
/**
|
|
6
|
+
* 视图组件通用Props接口
|
|
7
|
+
* 所有视图组件的基础属性
|
|
8
|
+
*/
|
|
9
|
+
export interface BaseViewProps {
|
|
10
|
+
app: UseCalendarAppReturn['app'];
|
|
11
|
+
currentDate: Date;
|
|
12
|
+
currentView: ViewType;
|
|
13
|
+
events: WeekEvent[];
|
|
14
|
+
onEventUpdate: (event: WeekEvent) => void;
|
|
15
|
+
onEventDelete: (eventId: number) => void;
|
|
16
|
+
onEventCreate: (event: WeekEvent) => void;
|
|
17
|
+
onDateChange: (date: Date) => void;
|
|
18
|
+
onViewChange: (view: ViewType) => void;
|
|
19
|
+
config: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Day视图特定Props
|
|
23
|
+
*/
|
|
24
|
+
export interface DayViewProps extends BaseViewProps {
|
|
25
|
+
showMiniCalendar?: boolean;
|
|
26
|
+
showAllDay?: boolean;
|
|
27
|
+
scrollToCurrentTime?: boolean;
|
|
28
|
+
selectedEvent?: WeekEvent | null;
|
|
29
|
+
onEventSelect?: (event: WeekEvent | null) => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Week视图特定Props
|
|
33
|
+
*/
|
|
34
|
+
export interface WeekViewProps extends BaseViewProps {
|
|
35
|
+
showWeekends?: boolean;
|
|
36
|
+
showAllDay?: boolean;
|
|
37
|
+
startOfWeek?: number;
|
|
38
|
+
scrollToCurrentTime?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Month视图特定Props
|
|
42
|
+
*/
|
|
43
|
+
export interface MonthViewProps extends BaseViewProps {
|
|
44
|
+
showOtherMonth?: boolean;
|
|
45
|
+
weekHeight?: number;
|
|
46
|
+
showWeekNumbers?: boolean;
|
|
47
|
+
enableVirtualScroll?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 视图工厂配置接口
|
|
51
|
+
* 创建视图时的基础配置
|
|
52
|
+
*/
|
|
53
|
+
export interface ViewFactoryConfig {
|
|
54
|
+
enableDrag?: boolean;
|
|
55
|
+
enableResize?: boolean;
|
|
56
|
+
enableCreate?: boolean;
|
|
57
|
+
dragConfig?: Record<string, any>;
|
|
58
|
+
eventsConfig?: Record<string, any>;
|
|
59
|
+
virtualScrollConfig?: Record<string, any>;
|
|
60
|
+
viewConfig?: Record<string, any>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Day视图工厂配置
|
|
64
|
+
*/
|
|
65
|
+
export interface DayViewConfig extends ViewFactoryConfig {
|
|
66
|
+
showMiniCalendar?: boolean;
|
|
67
|
+
showAllDay?: boolean;
|
|
68
|
+
scrollToCurrentTime?: boolean;
|
|
69
|
+
hourHeight?: number;
|
|
70
|
+
firstHour?: number;
|
|
71
|
+
lastHour?: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Week视图工厂配置
|
|
75
|
+
*/
|
|
76
|
+
export interface WeekViewConfig extends ViewFactoryConfig {
|
|
77
|
+
showWeekends?: boolean;
|
|
78
|
+
showAllDay?: boolean;
|
|
79
|
+
startOfWeek?: number;
|
|
80
|
+
scrollToCurrentTime?: boolean;
|
|
81
|
+
hourHeight?: number;
|
|
82
|
+
firstHour?: number;
|
|
83
|
+
lastHour?: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Month视图工厂配置
|
|
87
|
+
*/
|
|
88
|
+
export interface MonthViewConfig extends ViewFactoryConfig {
|
|
89
|
+
showOtherMonth?: boolean;
|
|
90
|
+
weekHeight?: number;
|
|
91
|
+
showWeekNumbers?: boolean;
|
|
92
|
+
enableVirtualScroll?: boolean;
|
|
93
|
+
initialWeeksToLoad?: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Year视图工厂配置
|
|
97
|
+
*/
|
|
98
|
+
export interface YearViewConfig extends ViewFactoryConfig {
|
|
99
|
+
enableVirtualScroll?: boolean;
|
|
100
|
+
showDebugInfo?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 视图适配器Props
|
|
104
|
+
* 用于包装原始组件的适配器属性
|
|
105
|
+
*/
|
|
106
|
+
export interface ViewAdapterProps {
|
|
107
|
+
viewType: ViewType;
|
|
108
|
+
originalComponent: React.ComponentType<any>;
|
|
109
|
+
app: UseCalendarAppReturn['app'];
|
|
110
|
+
config: ViewFactoryConfig;
|
|
111
|
+
className?: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* 拖拽集成Props
|
|
115
|
+
* 为视图集成拖拽功能的属性
|
|
116
|
+
*/
|
|
117
|
+
export interface DragIntegrationProps {
|
|
118
|
+
app: UseCalendarAppReturn['app'];
|
|
119
|
+
viewType: ViewType;
|
|
120
|
+
calendarRef: React.RefObject<HTMLDivElement>;
|
|
121
|
+
allDayRowRef?: React.RefObject<HTMLDivElement>;
|
|
122
|
+
events: WeekEvent[];
|
|
123
|
+
onEventsUpdate: (updateFunc: (events: WeekEvent[]) => WeekEvent[]) => void;
|
|
124
|
+
onEventCreate: (event: WeekEvent) => void;
|
|
125
|
+
calculateNewEventLayout?: (dayIndex: number, startHour: number, endHour: number) => EventLayout | null;
|
|
126
|
+
calculateDragLayout?: (event: WeekEvent, targetDay: number, targetStartHour: number, targetEndHour: number) => EventLayout | null;
|
|
127
|
+
currentWeekStart: Date;
|
|
128
|
+
formatTime?: (hour: number) => string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* 虚拟滚动集成Props
|
|
132
|
+
* 为视图集成虚拟滚动功能的属性
|
|
133
|
+
*/
|
|
134
|
+
export interface VirtualScrollIntegrationProps {
|
|
135
|
+
app: UseCalendarAppReturn['app'];
|
|
136
|
+
currentDate: Date;
|
|
137
|
+
weekHeight?: number;
|
|
138
|
+
onCurrentMonthChange?: (month: string, year: number) => void;
|
|
139
|
+
initialWeeksToLoad?: number;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 工厂函数返回类型
|
|
143
|
+
* 视图工厂函数的类型定义
|
|
144
|
+
*/
|
|
145
|
+
export interface ViewFactory<TConfig = ViewFactoryConfig> {
|
|
146
|
+
(config?: TConfig): CalendarView;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/Old/src/types/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAE5B,GAAG,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAGjC,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IAGpB,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAG1C,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAGvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IAEjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAElD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IAEnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAEhC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG1C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IACvG,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAClI,gBAAgB,EAAE,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,iBAAiB;IACtD,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;CAClC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Root } from 'react-dom/client';
|
|
3
|
+
import { WeekEvent } from './event';
|
|
4
|
+
import { EventLayout } from './layout';
|
|
5
|
+
import { UnifiedDragRef, MonthDragState, WeekDayDragState, useDragProps } from './dragIndicator';
|
|
6
|
+
/**
|
|
7
|
+
* 虚拟滚动项接口(YearView)
|
|
8
|
+
*/
|
|
9
|
+
export interface VirtualItem {
|
|
10
|
+
index: number;
|
|
11
|
+
year: number;
|
|
12
|
+
top: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 虚拟滚动Hook参数接口(YearView)
|
|
17
|
+
*/
|
|
18
|
+
export interface UseVirtualScrollProps {
|
|
19
|
+
currentDate: Date;
|
|
20
|
+
yearHeight: number;
|
|
21
|
+
onCurrentYearChange?: (year: number) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 虚拟滚动Hook返回值接口(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
|
+
* 拖拽状态Hook返回值
|
|
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: WeekEvent[]) => WeekEvent[], dragState?: string) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 拖拽通用工具Hook返回值
|
|
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
|
+
* 拖拽管理Hook返回值
|
|
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
|
+
* 拖拽处理Hook返回值
|
|
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: WeekEvent) => void;
|
|
91
|
+
handleResizeStart: (e: React.MouseEvent, event: WeekEvent, direction: string) => void;
|
|
92
|
+
handleUniversalDragMove: (e: MouseEvent) => void;
|
|
93
|
+
handleUniversalDragEnd: () => void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 拖拽处理Hook参数
|
|
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/Old/src/types/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Old/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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { WeekEvent } from './event';
|
|
2
|
+
/**
|
|
3
|
+
* 事件布局配置常量
|
|
4
|
+
* 控制事件在日历中的视觉呈现
|
|
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
|
+
* 事件布局接口
|
|
18
|
+
* 定义事件在UI中的位置和样式
|
|
19
|
+
*/
|
|
20
|
+
export interface EventLayout {
|
|
21
|
+
id: number;
|
|
22
|
+
left: number;
|
|
23
|
+
width: number;
|
|
24
|
+
zIndex: number;
|
|
25
|
+
level: number;
|
|
26
|
+
isPrimary: boolean;
|
|
27
|
+
indentOffset: number;
|
|
28
|
+
importance: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 嵌套层级接口
|
|
32
|
+
* 表示事件的层级关系
|
|
33
|
+
*/
|
|
34
|
+
export interface NestedLayer {
|
|
35
|
+
events: WeekEvent[];
|
|
36
|
+
level: number;
|
|
37
|
+
parentEvent?: WeekEvent;
|
|
38
|
+
timeSlot?: {
|
|
39
|
+
start: number;
|
|
40
|
+
end: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 事件组接口
|
|
45
|
+
* 表示一组相关的事件及其嵌套结构
|
|
46
|
+
*/
|
|
47
|
+
export interface EventGroup {
|
|
48
|
+
events: WeekEvent[];
|
|
49
|
+
startHour: number;
|
|
50
|
+
endHour: number;
|
|
51
|
+
primaryEvent?: WeekEvent;
|
|
52
|
+
nestedStructure: NestedLayer[];
|
|
53
|
+
specialLayoutRules?: SpecialLayoutRule[];
|
|
54
|
+
originalBranchMap?: Map<number, WeekEvent>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 事件关系信息接口
|
|
58
|
+
* 描述事件在嵌套结构中的关系
|
|
59
|
+
*/
|
|
60
|
+
export interface EventRelations {
|
|
61
|
+
directChildren: WeekEvent[];
|
|
62
|
+
allDescendants: WeekEvent[];
|
|
63
|
+
directParent: WeekEvent | null;
|
|
64
|
+
layer: NestedLayer | null;
|
|
65
|
+
subtreeSize: number;
|
|
66
|
+
isLeaf: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 子树分析接口
|
|
70
|
+
* 用于分析事件树的结构信息
|
|
71
|
+
*/
|
|
72
|
+
export interface SubtreeAnalysis {
|
|
73
|
+
rootEvent: WeekEvent;
|
|
74
|
+
allDescendants: WeekEvent[];
|
|
75
|
+
timeSpan: {
|
|
76
|
+
start: number;
|
|
77
|
+
end: number;
|
|
78
|
+
duration: number;
|
|
79
|
+
};
|
|
80
|
+
descendantCount: number;
|
|
81
|
+
maxDepth: number;
|
|
82
|
+
branchPath: WeekEvent[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 平衡策略接口
|
|
86
|
+
* 用于优化事件布局的平衡算法
|
|
87
|
+
*/
|
|
88
|
+
export interface BalanceStrategy {
|
|
89
|
+
type: 'count_balance' | 'timespan_balance';
|
|
90
|
+
transfers: TransferOperation[];
|
|
91
|
+
specialLayoutRules: SpecialLayoutRule[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 转移操作接口
|
|
95
|
+
* 描述事件在布局优化中的移动
|
|
96
|
+
*/
|
|
97
|
+
export interface TransferOperation {
|
|
98
|
+
event: WeekEvent;
|
|
99
|
+
fromParent: WeekEvent;
|
|
100
|
+
toParent: WeekEvent;
|
|
101
|
+
reason: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 特殊布局规则接口
|
|
105
|
+
* 定义特定事件的布局约束
|
|
106
|
+
*/
|
|
107
|
+
export interface SpecialLayoutRule {
|
|
108
|
+
eventId: number;
|
|
109
|
+
layoutType: 'align_with_ancestor' | 'full_width' | 'full_width_from_level' | 'align_with_sibling';
|
|
110
|
+
referenceEvent?: WeekEvent;
|
|
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/Old/src/types/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;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,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,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,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,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,SAAS,CAAC;IACrB,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,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,SAAS,EAAE,CAAC;CACzB;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,SAAS,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,qBAAqB,GAAG,YAAY,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;IAClG,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
};
|
|
18
|
+
scrollElementRef: React.RefObject<HTMLDivElement | null>;
|
|
19
|
+
handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
|
|
20
|
+
scrollToDate: (targetDate: Date, smooth?: boolean) => void;
|
|
21
|
+
handlePreviousMonth: () => void;
|
|
22
|
+
handleNextMonth: () => void;
|
|
23
|
+
handleToday: () => void;
|
|
24
|
+
setScrollTop: React.Dispatch<React.SetStateAction<number>>;
|
|
25
|
+
setContainerHeight: React.Dispatch<React.SetStateAction<number>>;
|
|
26
|
+
setCurrentMonth: React.Dispatch<React.SetStateAction<string>>;
|
|
27
|
+
setCurrentYear: React.Dispatch<React.SetStateAction<number>>;
|
|
28
|
+
setIsScrolling: React.Dispatch<React.SetStateAction<boolean>>;
|
|
29
|
+
cache: WeekDataCache;
|
|
30
|
+
scrollElementRefCallback: (element: HTMLDivElement | null) => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const VIRTUAL_MONTH_SCROLL_CONFIG: {
|
|
33
|
+
readonly OVERSCAN: 6;
|
|
34
|
+
readonly BUFFER_SIZE: 100;
|
|
35
|
+
readonly MIN_YEAR: 1900;
|
|
36
|
+
readonly MAX_YEAR: 2200;
|
|
37
|
+
readonly SCROLL_THROTTLE: 8;
|
|
38
|
+
readonly SCROLL_DEBOUNCE: 150;
|
|
39
|
+
readonly CACHE_CLEANUP_THRESHOLD: 200;
|
|
40
|
+
readonly MOBILE_WEEK_HEIGHT: 80;
|
|
41
|
+
readonly TABLET_WEEK_HEIGHT: 90;
|
|
42
|
+
readonly WEEK_HEIGHT: 119;
|
|
43
|
+
};
|
|
44
|
+
export interface VirtualWeekItem {
|
|
45
|
+
index: number;
|
|
46
|
+
weekData: WeeksData;
|
|
47
|
+
top: number;
|
|
48
|
+
height: number;
|
|
49
|
+
}
|
|
50
|
+
export declare class WeekDataCache {
|
|
51
|
+
private cache;
|
|
52
|
+
private accessOrder;
|
|
53
|
+
private maxSize;
|
|
54
|
+
constructor(maxSize?: number);
|
|
55
|
+
private getKey;
|
|
56
|
+
get(weekStartDate: Date): WeeksData | undefined;
|
|
57
|
+
set(weekStartDate: Date, data: WeeksData): void;
|
|
58
|
+
private updateAccessOrder;
|
|
59
|
+
getSize(): number;
|
|
60
|
+
clear(): void;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=monthView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monthView.d.ts","sourceRoot":"","sources":["../../../../src/Old/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;KACjC,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;CACpE;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 { WeekEvent } from './event';
|
|
3
|
+
import { EventLayout } from './layout';
|
|
4
|
+
import { ViewType } from './core';
|
|
5
|
+
import { MonthDragState, WeekDayDragState } from './dragIndicator';
|
|
6
|
+
/**
|
|
7
|
+
* 事件服务接口
|
|
8
|
+
* 提供事件管理的各种功能
|
|
9
|
+
*/
|
|
10
|
+
export interface EventsService {
|
|
11
|
+
getAll: () => WeekEvent[];
|
|
12
|
+
getById: (id: number) => WeekEvent | undefined;
|
|
13
|
+
add: (event: WeekEvent) => void;
|
|
14
|
+
update: (id: number, updates: Partial<WeekEvent>) => WeekEvent;
|
|
15
|
+
delete: (id: number) => void;
|
|
16
|
+
getByDate: (date: Date) => WeekEvent[];
|
|
17
|
+
getByDateRange: (startDate: Date, endDate: Date) => WeekEvent[];
|
|
18
|
+
getByDay: (dayIndex: number, weekStart: Date) => WeekEvent[];
|
|
19
|
+
getAllDayEvents: (dayIndex: number, events: WeekEvent[]) => WeekEvent[];
|
|
20
|
+
recalculateEventDays: (events: WeekEvent[], weekStart: Date) => WeekEvent[];
|
|
21
|
+
validateEvent: (event: Partial<WeekEvent>) => string[];
|
|
22
|
+
filterEvents: (events: WeekEvent[], filter: (event: WeekEvent) => boolean) => WeekEvent[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 事件插件配置
|
|
26
|
+
*/
|
|
27
|
+
export interface EventsPluginConfig {
|
|
28
|
+
enableAutoRecalculate?: boolean;
|
|
29
|
+
enableValidation?: boolean;
|
|
30
|
+
defaultEvents?: WeekEvent[];
|
|
31
|
+
maxEventsPerDay?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 拖拽Hook选项
|
|
35
|
+
*/
|
|
36
|
+
export interface DragHookOptions {
|
|
37
|
+
calendarRef: React.RefObject<HTMLDivElement>;
|
|
38
|
+
allDayRowRef?: React.RefObject<HTMLDivElement | null>;
|
|
39
|
+
viewType: ViewType;
|
|
40
|
+
onEventsUpdate: (updateFunc: (events: WeekEvent[]) => WeekEvent[]) => void;
|
|
41
|
+
onEventCreate: (event: WeekEvent) => void;
|
|
42
|
+
onEventEdit: (event: WeekEvent) => void;
|
|
43
|
+
currentWeekStart: Date;
|
|
44
|
+
events: WeekEvent[];
|
|
45
|
+
calculateNewEventLayout?: (dayIndex: number, startHour: number, endHour: number) => EventLayout | null;
|
|
46
|
+
calculateDragLayout?: (event: WeekEvent, targetDay: number, targetStartHour: number, targetEndHour: number) => EventLayout | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 拖拽Hook返回值
|
|
50
|
+
*/
|
|
51
|
+
export interface DragHookReturn {
|
|
52
|
+
handleMoveStart: (e: React.MouseEvent, event: WeekEvent) => void;
|
|
53
|
+
handleCreateStart: (e: React.MouseEvent, ...args: (Date | number)[]) => void;
|
|
54
|
+
handleResizeStart: (e: React.MouseEvent, event: WeekEvent, direction: string) => void;
|
|
55
|
+
handleCreateAllDayEvent?: (e: React.MouseEvent, dayIndex: number) => void;
|
|
56
|
+
dragState: MonthDragState | WeekDayDragState;
|
|
57
|
+
isDragging: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 拖拽插件配置
|
|
61
|
+
*/
|
|
62
|
+
export interface DragPluginConfig {
|
|
63
|
+
enableDrag: boolean;
|
|
64
|
+
enableResize: boolean;
|
|
65
|
+
enableCreate: boolean;
|
|
66
|
+
enableAllDayCreate: boolean;
|
|
67
|
+
supportedViews: ViewType[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 拖拽服务接口
|
|
71
|
+
* 为视图提供拖拽能力
|
|
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/Old/src/types/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 格式化日期为 DD/MM/YYYY 格式
|
|
3
|
+
* 确保服务端和客户端渲染一致
|
|
4
|
+
*/
|
|
5
|
+
export declare const formatDateConsistent: (date?: Date) => string;
|
|
6
|
+
/**
|
|
7
|
+
* 格式化月份年份为一致格式
|
|
8
|
+
*/
|
|
9
|
+
export declare const formatMonthYear: (date: Date) => string;
|
|
10
|
+
/**
|
|
11
|
+
* 格式化时间为 HH:MM 格式
|
|
12
|
+
* @deprecated 使用 time.ts 中的 formatTime 代替
|
|
13
|
+
*/
|
|
14
|
+
export declare const formatTimeFromHour: (hour: number) => string;
|
|
15
|
+
//# sourceMappingURL=dateFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateFormat.d.ts","sourceRoot":"","sources":["../../../../src/Old/src/utils/dateFormat.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,IAAI,KAAG,MAMlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,MAM5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAIjD,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { DayData, WeekEvent, WeeksData } from '@/types';
|
|
2
|
+
/**
|
|
3
|
+
* 生成唯一键(使用时间戳和随机数组合)
|
|
4
|
+
* @returns 唯一键字符串
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateUniKey(): string;
|
|
7
|
+
export declare const getEventColorClass: (color: string) => string;
|
|
8
|
+
export declare const getSelectedBgColor: (color: string) => string;
|
|
9
|
+
export declare const getLineColor: (color: string) => string;
|
|
10
|
+
export declare const TIME_STEP = 0.25;
|
|
11
|
+
export declare const formatTime: (hours: number, minutes?: number) => string;
|
|
12
|
+
export declare const formatEventTimeRange: (event: WeekEvent) => string;
|
|
13
|
+
export declare const roundToTimeStep: (hour: number) => number;
|
|
14
|
+
export declare const weekDays: string[];
|
|
15
|
+
export declare const weekDaysFullName: string[];
|
|
16
|
+
export declare const monthNames: string[];
|
|
17
|
+
export declare const shortMonthNames: string[];
|
|
18
|
+
export declare const getWeekRange: (date: Date) => {
|
|
19
|
+
monday: Date;
|
|
20
|
+
sunday: Date;
|
|
21
|
+
};
|
|
22
|
+
export declare const getCurrentWeekDates: () => {
|
|
23
|
+
date: number;
|
|
24
|
+
month: string;
|
|
25
|
+
isToday: boolean;
|
|
26
|
+
}[];
|
|
27
|
+
export declare const generateDayData: (date: string | number | Date) => {
|
|
28
|
+
date: Date;
|
|
29
|
+
day: number;
|
|
30
|
+
month: number;
|
|
31
|
+
year: number;
|
|
32
|
+
monthName: string;
|
|
33
|
+
shortMonthName: string;
|
|
34
|
+
isToday: boolean;
|
|
35
|
+
};
|
|
36
|
+
export declare const generateWeekData: (startDate: string | number | Date) => {
|
|
37
|
+
days: {
|
|
38
|
+
date: Date;
|
|
39
|
+
day: number;
|
|
40
|
+
month: number;
|
|
41
|
+
year: number;
|
|
42
|
+
monthName: string;
|
|
43
|
+
shortMonthName: string;
|
|
44
|
+
isToday: boolean;
|
|
45
|
+
}[];
|
|
46
|
+
startDate: Date;
|
|
47
|
+
monthYear: {
|
|
48
|
+
month: string;
|
|
49
|
+
monthIndex: number;
|
|
50
|
+
year: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export declare const getMonthYearOfWeek: (days: DayData[]) => {
|
|
54
|
+
month: string;
|
|
55
|
+
monthIndex: number;
|
|
56
|
+
year: number;
|
|
57
|
+
};
|
|
58
|
+
export declare const generateWeeksData: (centralDate: Date, monthsToLoad?: number) => {
|
|
59
|
+
days: {
|
|
60
|
+
date: Date;
|
|
61
|
+
day: number;
|
|
62
|
+
month: number;
|
|
63
|
+
year: number;
|
|
64
|
+
monthName: string;
|
|
65
|
+
shortMonthName: string;
|
|
66
|
+
isToday: boolean;
|
|
67
|
+
}[];
|
|
68
|
+
startDate: Date;
|
|
69
|
+
monthYear: {
|
|
70
|
+
month: string;
|
|
71
|
+
monthIndex: number;
|
|
72
|
+
year: number;
|
|
73
|
+
};
|
|
74
|
+
}[];
|
|
75
|
+
export declare function generateWeekRange(centerDate: Date, totalWeeks: number): WeeksData[];
|
|
76
|
+
export declare const getEventsForDay: (dayIndex: number, events: WeekEvent[]) => WeekEvent[];
|
|
77
|
+
export declare const getAllDayEventsForDay: (dayIndex: number, events: WeekEvent[]) => WeekEvent[];
|
|
78
|
+
export declare const getDateByDayIndex: (weekStart: Date, dayIndex: number) => Date;
|
|
79
|
+
export declare const updateEventDateAndDay: (event: WeekEvent, newDayIndex: number, weekStart: Date) => WeekEvent;
|
|
80
|
+
export declare const createEventWithDate: (eventData: Omit<WeekEvent, "date">, weekStart: Date) => WeekEvent;
|
|
81
|
+
export declare const calculateDayIndex: (eventDate: Date, weekStart: Date) => number;
|
|
82
|
+
export declare const isEventInWeek: (eventDate: Date, weekStart: Date) => boolean;
|
|
83
|
+
export declare const recalculateEventDays: (events: WeekEvent[], weekStart: Date) => WeekEvent[];
|
|
84
|
+
export declare const getDayIndexByDate: (weekStart: Date, targetDate: Date) => number;
|
|
85
|
+
export declare const getEventsForWeek: (events: WeekEvent[], weekStart: Date) => WeekEvent[];
|
|
86
|
+
export declare const createEventWithRealDate: (eventData: Omit<WeekEvent, "date">, weekStart: Date) => WeekEvent;
|
|
87
|
+
export declare const updateEventWithRealDate: (event: WeekEvent, newDayIndex: number, weekStart: Date) => WeekEvent;
|
|
88
|
+
export declare function getTestEvents(): WeekEvent[];
|
|
89
|
+
//# sourceMappingURL=helpers.d.ts.map
|