@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.
Files changed (304) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +392 -0
  3. package/dist/Old/MonthView.d.ts +8 -0
  4. package/dist/Old/MonthView.d.ts.map +1 -0
  5. package/dist/Old/monthView/MonthDragIndicator.d.ts +13 -0
  6. package/dist/Old/monthView/MonthDragIndicator.d.ts.map +1 -0
  7. package/dist/Old/monthView/MultiDayEvent.d.ts +26 -0
  8. package/dist/Old/monthView/MultiDayEvent.d.ts.map +1 -0
  9. package/dist/Old/monthView/WeekComponent.d.ts +43 -0
  10. package/dist/Old/monthView/WeekComponent.d.ts.map +1 -0
  11. package/dist/Old/monthView/util.d.ts +6 -0
  12. package/dist/Old/monthView/util.d.ts.map +1 -0
  13. package/dist/Old/src/app/layout.d.ts +7 -0
  14. package/dist/Old/src/app/layout.d.ts.map +1 -0
  15. package/dist/Old/src/app/page.d.ts +2 -0
  16. package/dist/Old/src/app/page.d.ts.map +1 -0
  17. package/dist/Old/src/app/test/page.d.ts +2 -0
  18. package/dist/Old/src/app/test/page.d.ts.map +1 -0
  19. package/dist/Old/src/components/EventLayout.d.ts +134 -0
  20. package/dist/Old/src/components/EventLayout.d.ts.map +1 -0
  21. package/dist/Old/src/components/common/TodayBox.d.ts +8 -0
  22. package/dist/Old/src/components/common/TodayBox.d.ts.map +1 -0
  23. package/dist/Old/src/components/monthView/MonthDragIndicator.d.ts +13 -0
  24. package/dist/Old/src/components/monthView/MonthDragIndicator.d.ts.map +1 -0
  25. package/dist/Old/src/components/monthView/MultiDayEvent.d.ts +26 -0
  26. package/dist/Old/src/components/monthView/MultiDayEvent.d.ts.map +1 -0
  27. package/dist/Old/src/components/monthView/WeekComponent.d.ts +43 -0
  28. package/dist/Old/src/components/monthView/WeekComponent.d.ts.map +1 -0
  29. package/dist/Old/src/components/monthView/util.d.ts +6 -0
  30. package/dist/Old/src/components/monthView/util.d.ts.map +1 -0
  31. package/dist/Old/src/components/weekView/CalendarEvent.d.ts +29 -0
  32. package/dist/Old/src/components/weekView/CalendarEvent.d.ts.map +1 -0
  33. package/dist/Old/src/components/weekView/DragIndicator/DefaultDragIndicator.d.ts +3 -0
  34. package/dist/Old/src/components/weekView/DragIndicator/DefaultDragIndicator.d.ts.map +1 -0
  35. package/dist/Old/src/components/weekView/DragIndicator/DragIndicatorComponent.d.ts +8 -0
  36. package/dist/Old/src/components/weekView/DragIndicator/DragIndicatorComponent.d.ts.map +1 -0
  37. package/dist/Old/src/core/CalendarApp.d.ts +29 -0
  38. package/dist/Old/src/core/CalendarApp.d.ts.map +1 -0
  39. package/dist/Old/src/core/CalendarRenderer.d.ts +9 -0
  40. package/dist/Old/src/core/CalendarRenderer.d.ts.map +1 -0
  41. package/dist/Old/src/core/config.d.ts +61 -0
  42. package/dist/Old/src/core/config.d.ts.map +1 -0
  43. package/dist/Old/src/core/index.d.ts +8 -0
  44. package/dist/Old/src/core/index.d.ts.map +1 -0
  45. package/dist/Old/src/core/useCalendarAdapter.d.ts +4 -0
  46. package/dist/Old/src/core/useCalendarAdapter.d.ts.map +1 -0
  47. package/dist/Old/src/core/useCalendarApp.d.ts +3 -0
  48. package/dist/Old/src/core/useCalendarApp.d.ts.map +1 -0
  49. package/dist/Old/src/factories/ViewAdapter.d.ts +5 -0
  50. package/dist/Old/src/factories/ViewAdapter.d.ts.map +1 -0
  51. package/dist/Old/src/factories/createDayView.d.ts +12 -0
  52. package/dist/Old/src/factories/createDayView.d.ts.map +1 -0
  53. package/dist/Old/src/factories/createMonthView.d.ts +16 -0
  54. package/dist/Old/src/factories/createMonthView.d.ts.map +1 -0
  55. package/dist/Old/src/factories/createWeekView.d.ts +15 -0
  56. package/dist/Old/src/factories/createWeekView.d.ts.map +1 -0
  57. package/dist/Old/src/factories/createYearView.d.ts +10 -0
  58. package/dist/Old/src/factories/createYearView.d.ts.map +1 -0
  59. package/dist/Old/src/factories/index.d.ts +18 -0
  60. package/dist/Old/src/factories/index.d.ts.map +1 -0
  61. package/dist/Old/src/hooks/drag/index.d.ts +8 -0
  62. package/dist/Old/src/hooks/drag/index.d.ts.map +1 -0
  63. package/dist/Old/src/hooks/drag/useDrag.d.ts +3 -0
  64. package/dist/Old/src/hooks/drag/useDrag.d.ts.map +1 -0
  65. package/dist/Old/src/hooks/drag/useDragCommon.d.ts +3 -0
  66. package/dist/Old/src/hooks/drag/useDragCommon.d.ts.map +1 -0
  67. package/dist/Old/src/hooks/drag/useDragHandlers.d.ts +3 -0
  68. package/dist/Old/src/hooks/drag/useDragHandlers.d.ts.map +1 -0
  69. package/dist/Old/src/hooks/drag/useDragManager.d.ts +3 -0
  70. package/dist/Old/src/hooks/drag/useDragManager.d.ts.map +1 -0
  71. package/dist/Old/src/hooks/drag/useDragState.d.ts +3 -0
  72. package/dist/Old/src/hooks/drag/useDragState.d.ts.map +1 -0
  73. package/dist/Old/src/hooks/drag/useMonthDrag.d.ts +3 -0
  74. package/dist/Old/src/hooks/drag/useMonthDrag.d.ts.map +1 -0
  75. package/dist/Old/src/hooks/drag/useWeekDayDrag.d.ts +3 -0
  76. package/dist/Old/src/hooks/drag/useWeekDayDrag.d.ts.map +1 -0
  77. package/dist/Old/src/hooks/virtualScroll/index.d.ts +3 -0
  78. package/dist/Old/src/hooks/virtualScroll/index.d.ts.map +1 -0
  79. package/dist/Old/src/hooks/virtualScroll/useVirtualMonthScroll.d.ts +8 -0
  80. package/dist/Old/src/hooks/virtualScroll/useVirtualMonthScroll.d.ts.map +1 -0
  81. package/dist/Old/src/hooks/virtualScroll/useVirtualScroll.d.ts +49 -0
  82. package/dist/Old/src/hooks/virtualScroll/useVirtualScroll.d.ts.map +1 -0
  83. package/dist/Old/src/plugins/dragPlugin.d.ts +6 -0
  84. package/dist/Old/src/plugins/dragPlugin.d.ts.map +1 -0
  85. package/dist/Old/src/plugins/eventsPlugin.d.ts +4 -0
  86. package/dist/Old/src/plugins/eventsPlugin.d.ts.map +1 -0
  87. package/dist/Old/src/plugins/index.d.ts +7 -0
  88. package/dist/Old/src/plugins/index.d.ts.map +1 -0
  89. package/dist/Old/src/types/calendar.d.ts +27 -0
  90. package/dist/Old/src/types/calendar.d.ts.map +1 -0
  91. package/dist/Old/src/types/config.d.ts +20 -0
  92. package/dist/Old/src/types/config.d.ts.map +1 -0
  93. package/dist/Old/src/types/core.d.ts +148 -0
  94. package/dist/Old/src/types/core.d.ts.map +1 -0
  95. package/dist/Old/src/types/dragIndicator.d.ts +141 -0
  96. package/dist/Old/src/types/dragIndicator.d.ts.map +1 -0
  97. package/dist/Old/src/types/event.d.ts +27 -0
  98. package/dist/Old/src/types/event.d.ts.map +1 -0
  99. package/dist/Old/src/types/factory.d.ts +148 -0
  100. package/dist/Old/src/types/factory.d.ts.map +1 -0
  101. package/dist/Old/src/types/hook.d.ts +104 -0
  102. package/dist/Old/src/types/hook.d.ts.map +1 -0
  103. package/dist/Old/src/types/index.d.ts +11 -0
  104. package/dist/Old/src/types/index.d.ts.map +1 -0
  105. package/dist/Old/src/types/layout.d.ts +114 -0
  106. package/dist/Old/src/types/layout.d.ts.map +1 -0
  107. package/dist/Old/src/types/monthView.d.ts +62 -0
  108. package/dist/Old/src/types/monthView.d.ts.map +1 -0
  109. package/dist/Old/src/types/plugin.d.ts +78 -0
  110. package/dist/Old/src/types/plugin.d.ts.map +1 -0
  111. package/dist/Old/src/utils/dateFormat.d.ts +15 -0
  112. package/dist/Old/src/utils/dateFormat.d.ts.map +1 -0
  113. package/dist/Old/src/utils/helpers.d.ts +89 -0
  114. package/dist/Old/src/utils/helpers.d.ts.map +1 -0
  115. package/dist/Old/src/utils/index.d.ts +3 -0
  116. package/dist/Old/src/utils/index.d.ts.map +1 -0
  117. package/dist/Old/src/views/DayView.d.ts +8 -0
  118. package/dist/Old/src/views/DayView.d.ts.map +1 -0
  119. package/dist/Old/src/views/MonthView.d.ts +8 -0
  120. package/dist/Old/src/views/MonthView.d.ts.map +1 -0
  121. package/dist/Old/src/views/WeekView.d.ts +8 -0
  122. package/dist/Old/src/views/WeekView.d.ts.map +1 -0
  123. package/dist/Old/src/views/YearView.d.ts +8 -0
  124. package/dist/Old/src/views/YearView.d.ts.map +1 -0
  125. package/dist/Old/useVirtualMonthScroll.d.ts +8 -0
  126. package/dist/Old/useVirtualMonthScroll.d.ts.map +1 -0
  127. package/dist/components/EventLayout.d.ts +134 -0
  128. package/dist/components/EventLayout.d.ts.map +1 -0
  129. package/dist/components/common/ColorPicker.d.ts +17 -0
  130. package/dist/components/common/ColorPicker.d.ts.map +1 -0
  131. package/dist/components/common/DefaultEventDetailDialog.d.ts +9 -0
  132. package/dist/components/common/DefaultEventDetailDialog.d.ts.map +1 -0
  133. package/dist/components/common/DefaultEventDetailPanel.d.ts +8 -0
  134. package/dist/components/common/DefaultEventDetailPanel.d.ts.map +1 -0
  135. package/dist/components/common/EventDetailPanelWithContent.d.ts +12 -0
  136. package/dist/components/common/EventDetailPanelWithContent.d.ts.map +1 -0
  137. package/dist/components/common/RangePicker.d.ts +24 -0
  138. package/dist/components/common/RangePicker.d.ts.map +1 -0
  139. package/dist/components/common/TodayBox.d.ts +8 -0
  140. package/dist/components/common/TodayBox.d.ts.map +1 -0
  141. package/dist/components/common/ViewHeader.d.ts +28 -0
  142. package/dist/components/common/ViewHeader.d.ts.map +1 -0
  143. package/dist/components/common/ViewSwitcher.d.ts +9 -0
  144. package/dist/components/common/ViewSwitcher.d.ts.map +1 -0
  145. package/dist/components/monthView/MonthDragIndicator.d.ts +13 -0
  146. package/dist/components/monthView/MonthDragIndicator.d.ts.map +1 -0
  147. package/dist/components/monthView/MultiDayEvent.d.ts +26 -0
  148. package/dist/components/monthView/MultiDayEvent.d.ts.map +1 -0
  149. package/dist/components/monthView/WeekComponent.d.ts +46 -0
  150. package/dist/components/monthView/WeekComponent.d.ts.map +1 -0
  151. package/dist/components/monthView/util.d.ts +12 -0
  152. package/dist/components/monthView/util.d.ts.map +1 -0
  153. package/dist/components/sidebar/DefaultCalendarSidebar.d.ts +5 -0
  154. package/dist/components/sidebar/DefaultCalendarSidebar.d.ts.map +1 -0
  155. package/dist/components/weekView/CalendarEvent.d.ts +43 -0
  156. package/dist/components/weekView/CalendarEvent.d.ts.map +1 -0
  157. package/dist/components/weekView/DragIndicator/DefaultDragIndicator.d.ts +3 -0
  158. package/dist/components/weekView/DragIndicator/DefaultDragIndicator.d.ts.map +1 -0
  159. package/dist/components/weekView/DragIndicator/DragIndicatorComponent.d.ts +8 -0
  160. package/dist/components/weekView/DragIndicator/DragIndicatorComponent.d.ts.map +1 -0
  161. package/dist/core/CalendarApp.d.ts +43 -0
  162. package/dist/core/CalendarApp.d.ts.map +1 -0
  163. package/dist/core/CalendarRenderer.d.ts +15 -0
  164. package/dist/core/CalendarRenderer.d.ts.map +1 -0
  165. package/dist/core/DayFlowCalendar.d.ts +15 -0
  166. package/dist/core/DayFlowCalendar.d.ts.map +1 -0
  167. package/dist/core/calendarRegistry.d.ts +104 -0
  168. package/dist/core/calendarRegistry.d.ts.map +1 -0
  169. package/dist/core/config.d.ts +61 -0
  170. package/dist/core/config.d.ts.map +1 -0
  171. package/dist/core/index.d.ts +7 -0
  172. package/dist/core/index.d.ts.map +1 -0
  173. package/dist/core/useCalendarAdapter.d.ts +4 -0
  174. package/dist/core/useCalendarAdapter.d.ts.map +1 -0
  175. package/dist/core/useCalendarApp.d.ts +3 -0
  176. package/dist/core/useCalendarApp.d.ts.map +1 -0
  177. package/dist/factories/ViewAdapter.d.ts +5 -0
  178. package/dist/factories/ViewAdapter.d.ts.map +1 -0
  179. package/dist/factories/createDayView.d.ts +12 -0
  180. package/dist/factories/createDayView.d.ts.map +1 -0
  181. package/dist/factories/createMonthView.d.ts +16 -0
  182. package/dist/factories/createMonthView.d.ts.map +1 -0
  183. package/dist/factories/createWeekView.d.ts +15 -0
  184. package/dist/factories/createWeekView.d.ts.map +1 -0
  185. package/dist/factories/createYearView.d.ts +10 -0
  186. package/dist/factories/createYearView.d.ts.map +1 -0
  187. package/dist/factories/index.d.ts +18 -0
  188. package/dist/factories/index.d.ts.map +1 -0
  189. package/dist/hooks/drag/index.d.ts +8 -0
  190. package/dist/hooks/drag/index.d.ts.map +1 -0
  191. package/dist/hooks/drag/useDrag.d.ts +3 -0
  192. package/dist/hooks/drag/useDrag.d.ts.map +1 -0
  193. package/dist/hooks/drag/useDragCommon.d.ts +3 -0
  194. package/dist/hooks/drag/useDragCommon.d.ts.map +1 -0
  195. package/dist/hooks/drag/useDragHandlers.d.ts +3 -0
  196. package/dist/hooks/drag/useDragHandlers.d.ts.map +1 -0
  197. package/dist/hooks/drag/useDragManager.d.ts +3 -0
  198. package/dist/hooks/drag/useDragManager.d.ts.map +1 -0
  199. package/dist/hooks/drag/useDragState.d.ts +3 -0
  200. package/dist/hooks/drag/useDragState.d.ts.map +1 -0
  201. package/dist/hooks/drag/useMonthDrag.d.ts +3 -0
  202. package/dist/hooks/drag/useMonthDrag.d.ts.map +1 -0
  203. package/dist/hooks/drag/useWeekDayDrag.d.ts +3 -0
  204. package/dist/hooks/drag/useWeekDayDrag.d.ts.map +1 -0
  205. package/dist/hooks/useEventCreator.d.ts +63 -0
  206. package/dist/hooks/useEventCreator.d.ts.map +1 -0
  207. package/dist/hooks/virtualScroll/index.d.ts +3 -0
  208. package/dist/hooks/virtualScroll/index.d.ts.map +1 -0
  209. package/dist/hooks/virtualScroll/useVirtualMonthScroll.d.ts +8 -0
  210. package/dist/hooks/virtualScroll/useVirtualMonthScroll.d.ts.map +1 -0
  211. package/dist/hooks/virtualScroll/useVirtualScroll.d.ts +49 -0
  212. package/dist/hooks/virtualScroll/useVirtualScroll.d.ts.map +1 -0
  213. package/dist/index.d.ts +35 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.esm.js +125 -0
  216. package/dist/index.esm.js.map +1 -0
  217. package/dist/index.js +126 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/plugins/dragPlugin.d.ts +6 -0
  220. package/dist/plugins/dragPlugin.d.ts.map +1 -0
  221. package/dist/plugins/eventsPlugin.d.ts +4 -0
  222. package/dist/plugins/eventsPlugin.d.ts.map +1 -0
  223. package/dist/plugins/index.d.ts +7 -0
  224. package/dist/plugins/index.d.ts.map +1 -0
  225. package/dist/setupTests.d.ts +2 -0
  226. package/dist/setupTests.d.ts.map +1 -0
  227. package/dist/styles/calendarClassNames.d.ts +155 -0
  228. package/dist/styles/calendarClassNames.d.ts.map +1 -0
  229. package/dist/styles/classNames.d.ts +297 -0
  230. package/dist/styles/classNames.d.ts.map +1 -0
  231. package/dist/styles.css +1 -0
  232. package/dist/types/calendar.d.ts +27 -0
  233. package/dist/types/calendar.d.ts.map +1 -0
  234. package/dist/types/calendarTypes.d.ts +69 -0
  235. package/dist/types/calendarTypes.d.ts.map +1 -0
  236. package/dist/types/config.d.ts +20 -0
  237. package/dist/types/config.d.ts.map +1 -0
  238. package/dist/types/core.d.ts +192 -0
  239. package/dist/types/core.d.ts.map +1 -0
  240. package/dist/types/dragIndicator.d.ts +155 -0
  241. package/dist/types/dragIndicator.d.ts.map +1 -0
  242. package/dist/types/event.d.ts +17 -0
  243. package/dist/types/event.d.ts.map +1 -0
  244. package/dist/types/eventDetail.d.ts +73 -0
  245. package/dist/types/eventDetail.d.ts.map +1 -0
  246. package/dist/types/factory.d.ts +154 -0
  247. package/dist/types/factory.d.ts.map +1 -0
  248. package/dist/types/hook.d.ts +104 -0
  249. package/dist/types/hook.d.ts.map +1 -0
  250. package/dist/types/index.d.ts +13 -0
  251. package/dist/types/index.d.ts.map +1 -0
  252. package/dist/types/layout.d.ts +114 -0
  253. package/dist/types/layout.d.ts.map +1 -0
  254. package/dist/types/monthView.d.ts +64 -0
  255. package/dist/types/monthView.d.ts.map +1 -0
  256. package/dist/types/plugin.d.ts +78 -0
  257. package/dist/types/plugin.d.ts.map +1 -0
  258. package/dist/utils/calendarDataUtils.d.ts +84 -0
  259. package/dist/utils/calendarDataUtils.d.ts.map +1 -0
  260. package/dist/utils/colorResolver.d.ts +33 -0
  261. package/dist/utils/colorResolver.d.ts.map +1 -0
  262. package/dist/utils/colorUtils.d.ts +27 -0
  263. package/dist/utils/colorUtils.d.ts.map +1 -0
  264. package/dist/utils/compat.d.ts +60 -0
  265. package/dist/utils/compat.d.ts.map +1 -0
  266. package/dist/utils/dateConstants.d.ts +23 -0
  267. package/dist/utils/dateConstants.d.ts.map +1 -0
  268. package/dist/utils/dateFormat.d.ts +16 -0
  269. package/dist/utils/dateFormat.d.ts.map +1 -0
  270. package/dist/utils/dateRangeUtils.d.ts +25 -0
  271. package/dist/utils/dateRangeUtils.d.ts.map +1 -0
  272. package/dist/utils/dateTimeUtils.d.ts +50 -0
  273. package/dist/utils/dateTimeUtils.d.ts.map +1 -0
  274. package/dist/utils/eventHelpers.d.ts +144 -0
  275. package/dist/utils/eventHelpers.d.ts.map +1 -0
  276. package/dist/utils/eventUtils.d.ts +109 -0
  277. package/dist/utils/eventUtils.d.ts.map +1 -0
  278. package/dist/utils/helpers.d.ts +27 -0
  279. package/dist/utils/helpers.d.ts.map +1 -0
  280. package/dist/utils/index.d.ts +7 -0
  281. package/dist/utils/index.d.ts.map +1 -0
  282. package/dist/utils/logger.d.ts +16 -0
  283. package/dist/utils/logger.d.ts.map +1 -0
  284. package/dist/utils/rangePicker.d.ts +9 -0
  285. package/dist/utils/rangePicker.d.ts.map +1 -0
  286. package/dist/utils/temporal.d.ts +101 -0
  287. package/dist/utils/temporal.d.ts.map +1 -0
  288. package/dist/utils/temporalTypeGuards.d.ts +64 -0
  289. package/dist/utils/temporalTypeGuards.d.ts.map +1 -0
  290. package/dist/utils/testDataUtils.d.ts +15 -0
  291. package/dist/utils/testDataUtils.d.ts.map +1 -0
  292. package/dist/utils/timeUtils.d.ts +39 -0
  293. package/dist/utils/timeUtils.d.ts.map +1 -0
  294. package/dist/utils/utilityFunctions.d.ts +12 -0
  295. package/dist/utils/utilityFunctions.d.ts.map +1 -0
  296. package/dist/views/DayView.d.ts +14 -0
  297. package/dist/views/DayView.d.ts.map +1 -0
  298. package/dist/views/MonthView.d.ts +14 -0
  299. package/dist/views/MonthView.d.ts.map +1 -0
  300. package/dist/views/WeekView.d.ts +14 -0
  301. package/dist/views/WeekView.d.ts.map +1 -0
  302. package/dist/views/YearView.d.ts +8 -0
  303. package/dist/views/YearView.d.ts.map +1 -0
  304. 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":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,WAAW,EAAE,CAAC;KAC7B,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,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,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;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAG1D,SAAS,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAC7C,YAAY,EAAE,KAAK,CAAC,QAAQ,CAC1B,KAAK,CAAC,cAAc,CAAC,cAAc,GAAG,gBAAgB,CAAC,CACxD,CAAC;IAGF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,CAClB,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,EACxC,SAAS,CAAC,EAAE,MAAM,KACf,IAAI,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC;IACrD,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,yBAAyB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAG7E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC3C,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,EAAE,CACnB,IAAI,EAAE,cAAc,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,WAAW,KACxB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAC3D,IAAI,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,iBAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC7E,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7D,iBAAiB,EAAE,CACjB,CAAC,EAAE,KAAK,CAAC,UAAU,EACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;IACV,uBAAuB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,oBAAoB,CAAC;CAC/B"}
@@ -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"}