@timelinekit/core 1.0.0 → 1.0.3

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 (232) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +200 -0
  3. package/dist/__tests__/calendar/sidebar/calendar-list.test.d.ts +1 -0
  4. package/dist/__tests__/calendar/sidebar/mini-calendar.test.d.ts +1 -0
  5. package/dist/__tests__/calendar/test-helpers.d.ts +169 -0
  6. package/dist/__tests__/calendar/tooltip/calendar-tooltip-renderer.test.d.ts +1 -0
  7. package/dist/__tests__/calendar/validation.test.d.ts +1 -0
  8. package/dist/__tests__/calendar/views/agenda-view.test.d.ts +1 -0
  9. package/dist/__tests__/calendar/views/day-view.test.d.ts +1 -0
  10. package/dist/__tests__/calendar/views/drag-handlers.test.d.ts +1 -0
  11. package/dist/__tests__/calendar/views/keyboard-navigation.test.d.ts +1 -0
  12. package/dist/__tests__/calendar/views/month-view.test.d.ts +1 -0
  13. package/dist/__tests__/calendar/views/swipe-navigation-handler.test.d.ts +1 -0
  14. package/dist/__tests__/calendar/views/time-grid-helper.test.d.ts +1 -0
  15. package/dist/__tests__/calendar/views/view-utils.test.d.ts +1 -0
  16. package/dist/__tests__/calendar/views/week-view.test.d.ts +1 -0
  17. package/dist/__tests__/ganttchart/model/dependency-evaluator.test.d.ts +1 -0
  18. package/dist/__tests__/ganttchart/model/task-filters.test.d.ts +1 -0
  19. package/dist/__tests__/ganttchart/model/task-link.test.d.ts +1 -0
  20. package/dist/calendar/clipboard/calendar-clipboard.d.ts +19 -0
  21. package/dist/calendar/eventcalendar-context.d.ts +157 -0
  22. package/dist/calendar/eventcalendar-engine.d.ts +80 -0
  23. package/dist/calendar/eventcalendar-events.d.ts +40 -0
  24. package/dist/calendar/eventcalendar-settings.d.ts +30 -0
  25. package/dist/calendar/export/calendar-data-exporter.d.ts +32 -0
  26. package/dist/calendar/export/calendar-icalendar-exporter.d.ts +24 -0
  27. package/dist/calendar/export/calendar-image-exporter.d.ts +17 -0
  28. package/dist/calendar/export/calendar-pdf-exporter.d.ts +30 -0
  29. package/dist/calendar/import/calendar-icalendar-importer.d.ts +30 -0
  30. package/dist/calendar/model/calendar-data.d.ts +34 -0
  31. package/dist/calendar/model/calendar-entry.d.ts +44 -0
  32. package/dist/calendar/model/calendar-item.d.ts +151 -0
  33. package/dist/calendar/model/calendar.d.ts +29 -0
  34. package/dist/calendar/model/recurrence-editor.d.ts +25 -0
  35. package/dist/calendar/model/recurrence-exception.d.ts +34 -0
  36. package/dist/calendar/model/recurrence-expander.d.ts +17 -0
  37. package/dist/calendar/model/recurrence-rule.d.ts +42 -0
  38. package/dist/calendar/sidebar/calendar-list.d.ts +13 -0
  39. package/dist/calendar/sidebar/mini-calendar.d.ts +20 -0
  40. package/dist/calendar/themes/dark-theme.d.ts +4 -0
  41. package/dist/calendar/themes/eventcalendar-theme.d.ts +156 -0
  42. package/dist/calendar/themes/light-theme.d.ts +4 -0
  43. package/dist/calendar/tooltip/calendar-tooltip-renderer.d.ts +8 -0
  44. package/dist/calendar/views/agenda-view.d.ts +12 -0
  45. package/dist/calendar/views/base-view.d.ts +23 -0
  46. package/dist/calendar/views/day-view.d.ts +11 -0
  47. package/dist/calendar/views/handlers/allday-drag-handler.d.ts +14 -0
  48. package/dist/calendar/views/handlers/allday-entry-drag-handler.d.ts +18 -0
  49. package/dist/calendar/views/handlers/month-drag-handler.d.ts +14 -0
  50. package/dist/calendar/views/handlers/month-entry-drag-handler.d.ts +18 -0
  51. package/dist/calendar/views/handlers/swipe-navigation-handler.d.ts +14 -0
  52. package/dist/calendar/views/handlers/time-grid-drag-handler.d.ts +14 -0
  53. package/dist/calendar/views/handlers/time-grid-entry-drag-handler.d.ts +18 -0
  54. package/dist/calendar/views/month-view.d.ts +13 -0
  55. package/dist/calendar/views/time-grid-helper.d.ts +36 -0
  56. package/dist/calendar/views/view-utils.d.ts +38 -0
  57. package/dist/calendar/views/week-view.d.ts +16 -0
  58. package/dist/common/base-background-renderer.d.ts +9 -6
  59. package/dist/common/base-chart-handler.d.ts +19 -13
  60. package/dist/common/base-chart-handlers.d.ts +34 -0
  61. package/dist/common/base-chart-scroll-handler.d.ts +5 -3
  62. package/dist/common/base-chart.d.ts +98 -0
  63. package/dist/common/base-divider.d.ts +2 -0
  64. package/dist/common/base-engine.d.ts +112 -0
  65. package/dist/common/base-export-renderer.d.ts +26 -0
  66. package/dist/common/base-header-renderer.d.ts +8 -6
  67. package/dist/common/base-markers-renderer.d.ts +9 -6
  68. package/dist/common/base-theme.d.ts +107 -0
  69. package/dist/common/base-tooltip-renderer.d.ts +7 -0
  70. package/dist/common/chart-time-axis.d.ts +32 -0
  71. package/dist/common/common.d.ts +12 -2
  72. package/dist/common/custom-properties-container.d.ts +14 -0
  73. package/dist/common/drawing.d.ts +8 -2
  74. package/dist/common/export-utils.d.ts +34 -7
  75. package/dist/common/functions.d.ts +1 -1
  76. package/dist/common/locale.d.ts +101 -0
  77. package/dist/common/marker.d.ts +13 -0
  78. package/dist/common/subscription-manager.d.ts +17 -0
  79. package/dist/common/text.d.ts +9 -9
  80. package/dist/common/theme-utils.d.ts +5 -0
  81. package/dist/common/timeline-theme.d.ts +107 -0
  82. package/dist/common/undo-manager.d.ts +22 -0
  83. package/dist/common/working-calendar.d.ts +57 -0
  84. package/dist/ganttchart/chart/chart-scroll-handler.d.ts +1 -1
  85. package/dist/ganttchart/chart/chart-time-axis.d.ts +2 -32
  86. package/dist/ganttchart/chart/chart.d.ts +10 -4
  87. package/dist/ganttchart/chart/handlers/add-task-part.d.ts +14 -7
  88. package/dist/ganttchart/chart/handlers/connector-dots-handler.d.ts +10 -8
  89. package/dist/ganttchart/chart/handlers/gantt-drag-handler.d.ts +32 -0
  90. package/dist/ganttchart/chart/handlers/handler.d.ts +7 -4
  91. package/dist/ganttchart/chart/handlers/handlers.d.ts +5 -10
  92. package/dist/ganttchart/chart/handlers/move-milestone.d.ts +9 -7
  93. package/dist/ganttchart/chart/handlers/move-task-part.d.ts +9 -7
  94. package/dist/ganttchart/chart/handlers/resize-task-part.d.ts +18 -7
  95. package/dist/ganttchart/chart/handlers/select-link.d.ts +8 -6
  96. package/dist/ganttchart/chart/handlers/select-task.d.ts +13 -11
  97. package/dist/ganttchart/chart/handlers/set-task-progress.d.ts +14 -7
  98. package/dist/ganttchart/chart/renderers/chart-background-renderer.d.ts +3 -2
  99. package/dist/ganttchart/chart/renderers/chart-header-renderer.d.ts +2 -2
  100. package/dist/ganttchart/chart/renderers/chart-links-renderer.d.ts +4 -3
  101. package/dist/ganttchart/chart/renderers/chart-markers-renderer.d.ts +2 -2
  102. package/dist/ganttchart/chart/renderers/chart-tasks-renderer.d.ts +9 -9
  103. package/dist/ganttchart/chart/renderers/renderer-base.d.ts +2 -1
  104. package/dist/ganttchart/chart/tooltip/chart-tooltip-renderer.d.ts +4 -6
  105. package/dist/ganttchart/clipboard.d.ts +10 -3
  106. package/dist/ganttchart/divider/divider.d.ts +1 -1
  107. package/dist/ganttchart/export/data-exporter.d.ts +12 -7
  108. package/dist/ganttchart/export/export-common.d.ts +16 -16
  109. package/dist/ganttchart/export/image-exporter.d.ts +5 -4
  110. package/dist/ganttchart/export/pdf-exporter.d.ts +7 -6
  111. package/dist/ganttchart/ganttchart-engine.d.ts +134 -40
  112. package/dist/ganttchart/locale.d.ts +2 -66
  113. package/dist/ganttchart/model/dependency-evaluator.d.ts +16 -0
  114. package/dist/ganttchart/model/lag.d.ts +11 -0
  115. package/dist/ganttchart/model/length.d.ts +13 -2
  116. package/dist/ganttchart/model/marker.d.ts +1 -7
  117. package/dist/ganttchart/model/rate.d.ts +7 -1
  118. package/dist/ganttchart/model/resource-list.d.ts +11 -0
  119. package/dist/ganttchart/model/resource.d.ts +15 -1
  120. package/dist/ganttchart/model/task-filters.d.ts +10 -0
  121. package/dist/ganttchart/model/task-link.d.ts +15 -2
  122. package/dist/ganttchart/model/task-list-adapter.d.ts +22 -0
  123. package/dist/ganttchart/model/task-list.d.ts +55 -2
  124. package/dist/ganttchart/model/task-part.d.ts +20 -0
  125. package/dist/ganttchart/model/task-parts-manager.d.ts +44 -0
  126. package/dist/ganttchart/model/task-resource.d.ts +11 -0
  127. package/dist/ganttchart/model/task-serializer.d.ts +5 -0
  128. package/dist/ganttchart/model/task-warnings.d.ts +4 -0
  129. package/dist/ganttchart/model/task.d.ts +92 -19
  130. package/dist/ganttchart/model/work.d.ts +14 -1
  131. package/dist/ganttchart/model/working-calendar.d.ts +2 -32
  132. package/dist/ganttchart/sheet/renderers/sheet-icons-cell-renderer.d.ts +2 -0
  133. package/dist/ganttchart/sheet/sheet.d.ts +12 -7
  134. package/dist/ganttchart/themes/theme.d.ts +63 -108
  135. package/dist/ganttchart/undo-manager.d.ts +1 -13
  136. package/dist/index.d.ts +77 -8
  137. package/dist/index.js +6 -1
  138. package/dist/licensing/features.d.ts +3 -1
  139. package/dist/licensing/license-key.d.ts +1 -0
  140. package/dist/licensing/license-manager.d.ts +4 -1
  141. package/dist/licensing/watermark.d.ts +1 -0
  142. package/dist/locales/cs.d.ts +1 -1
  143. package/dist/locales/cs.js +1 -0
  144. package/dist/locales/de.d.ts +1 -1
  145. package/dist/locales/de.js +1 -0
  146. package/dist/locales/es.d.ts +1 -1
  147. package/dist/locales/es.js +1 -0
  148. package/dist/locales/fr.d.ts +1 -1
  149. package/dist/locales/fr.js +1 -0
  150. package/dist/locales/it.d.ts +1 -1
  151. package/dist/locales/it.js +1 -0
  152. package/dist/locales/ja.d.ts +1 -1
  153. package/dist/locales/ja.js +1 -0
  154. package/dist/locales/ko.d.ts +1 -1
  155. package/dist/locales/ko.js +1 -0
  156. package/dist/locales/nl.d.ts +1 -1
  157. package/dist/locales/nl.js +1 -0
  158. package/dist/locales/pl.d.ts +1 -1
  159. package/dist/locales/pl.js +1 -0
  160. package/dist/locales/pt.d.ts +1 -1
  161. package/dist/locales/pt.js +1 -0
  162. package/dist/locales/ru.d.ts +1 -1
  163. package/dist/locales/ru.js +1 -0
  164. package/dist/locales/sv.d.ts +1 -1
  165. package/dist/locales/sv.js +1 -0
  166. package/dist/locales/zh.d.ts +1 -1
  167. package/dist/locales/zh.js +1 -0
  168. package/dist/resourcescheduler/chart/handlers/add-event.d.ts +15 -8
  169. package/dist/resourcescheduler/chart/handlers/move-event.d.ts +10 -8
  170. package/dist/resourcescheduler/chart/handlers/resize-event.d.ts +21 -8
  171. package/dist/resourcescheduler/chart/handlers/scheduler-drag-handler.d.ts +32 -0
  172. package/dist/resourcescheduler/chart/handlers/scheduler-handler.d.ts +5 -3
  173. package/dist/resourcescheduler/chart/handlers/scheduler-handlers.d.ts +9 -10
  174. package/dist/resourcescheduler/chart/handlers/select-event.d.ts +10 -8
  175. package/dist/resourcescheduler/chart/renderers/scheduler-background-renderer.d.ts +2 -1
  176. package/dist/resourcescheduler/chart/renderers/scheduler-events-renderer.d.ts +2 -1
  177. package/dist/resourcescheduler/chart/renderers/scheduler-renderer-base.d.ts +1 -0
  178. package/dist/resourcescheduler/chart/scheduler-chart.d.ts +9 -4
  179. package/dist/resourcescheduler/chart/tooltip/scheduler-tooltip-renderer.d.ts +2 -4
  180. package/dist/resourcescheduler/clipboard.d.ts +8 -0
  181. package/dist/resourcescheduler/export/scheduler-data-exporter.d.ts +5 -0
  182. package/dist/resourcescheduler/export/scheduler-export-common.d.ts +12 -7
  183. package/dist/resourcescheduler/export/scheduler-image-exporter.d.ts +2 -1
  184. package/dist/resourcescheduler/export/scheduler-pdf-exporter.d.ts +3 -1
  185. package/dist/resourcescheduler/model/scheduler-data-adapter.d.ts +1 -0
  186. package/dist/resourcescheduler/model/scheduler-data.d.ts +45 -2
  187. package/dist/resourcescheduler/model/scheduler-event.d.ts +22 -2
  188. package/dist/resourcescheduler/model/scheduler-layout-calculator.d.ts +18 -0
  189. package/dist/resourcescheduler/model/scheduler-resource.d.ts +21 -2
  190. package/dist/resourcescheduler/resourcescheduler-engine.d.ts +134 -42
  191. package/dist/resourcescheduler/sheet/renderers/scheduler-icon-cell-renderer.d.ts +2 -0
  192. package/dist/resourcescheduler/sheet/scheduler-sheet.d.ts +11 -6
  193. package/dist/resourcescheduler/themes/scheduler-themes.d.ts +13 -0
  194. package/dist/styles/ec.css +1 -0
  195. package/dist/styles/gc.css +1 -1
  196. package/dist/styles/index.css +1 -0
  197. package/dist/styles/rs.css +1 -0
  198. package/dist/table/editors/input-editor.d.ts +1 -0
  199. package/dist/table/table-column.d.ts +7 -1
  200. package/dist/table/table-data-source.d.ts +2 -0
  201. package/dist/table/table-rows-selection.d.ts +1 -0
  202. package/dist/table/table.d.ts +11 -0
  203. package/dist/table/tree-table.d.ts +2 -0
  204. package/package.json +17 -6
  205. package/styles/_common.scss +12 -1
  206. package/styles/ec.scss +1225 -0
  207. package/styles/index.scss +3 -0
  208. package/dist/ganttchart/model/sheet-column.d.ts +0 -27
  209. package/dist/ganttchart/sheet/editors/cell-editor.d.ts +0 -23
  210. package/dist/ganttchart/sheet/editors/currency-editor.d.ts +0 -6
  211. package/dist/ganttchart/sheet/editors/date-editor.d.ts +0 -6
  212. package/dist/ganttchart/sheet/editors/decimal-editor.d.ts +0 -6
  213. package/dist/ganttchart/sheet/editors/dialog-editor.d.ts +0 -17
  214. package/dist/ganttchart/sheet/editors/input-editor.d.ts +0 -19
  215. package/dist/ganttchart/sheet/editors/integer-editor.d.ts +0 -6
  216. package/dist/ganttchart/sheet/editors/percent-editor.d.ts +0 -6
  217. package/dist/ganttchart/sheet/editors/text-editor.d.ts +0 -5
  218. package/dist/ganttchart/sheet/sheet-keyboard-navigation.d.ts +0 -26
  219. package/dist/ganttchart/sheet/sheet-rows-selection.d.ts +0 -24
  220. /package/dist/__tests__/{critical-path-calculator.test.d.ts → calendar/calendar-clipboard.test.d.ts} +0 -0
  221. /package/dist/__tests__/{model/lag.test.d.ts → calendar/eventcalendar-engine.test.d.ts} +0 -0
  222. /package/dist/__tests__/{model/length.test.d.ts → calendar/export/calendar-data-export.test.d.ts} +0 -0
  223. /package/dist/__tests__/{model/resource-list.test.d.ts → calendar/export/calendar-export.test.d.ts} +0 -0
  224. /package/dist/__tests__/{model/resource.test.d.ts → calendar/export/calendar-icalendar.test.d.ts} +0 -0
  225. /package/dist/__tests__/{model/task-list.test.d.ts → calendar/model/calendar-data.test.d.ts} +0 -0
  226. /package/dist/__tests__/{model/task-part.test.d.ts → calendar/model/calendar-item-recurrence.test.d.ts} +0 -0
  227. /package/dist/__tests__/{model/task-resource.test.d.ts → calendar/model/calendar-item-types.test.d.ts} +0 -0
  228. /package/dist/__tests__/{model/task-warnings.test.d.ts → calendar/model/calendar-occurrence.test.d.ts} +0 -0
  229. /package/dist/__tests__/{model/task.test.d.ts → calendar/model/calendar.test.d.ts} +0 -0
  230. /package/dist/__tests__/{model/work.test.d.ts → calendar/model/recurrence-editor.test.d.ts} +0 -0
  231. /package/dist/__tests__/{model/working-calendar.test.d.ts → calendar/model/recurrence-expander.test.d.ts} +0 -0
  232. /package/dist/__tests__/{undo-manager.test.d.ts → calendar/model/recurrence-rule.test.d.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ import { CalendarData } from "./model/calendar-data";
2
+ import { CalendarEntry } from "./model/calendar-entry";
3
+ import { type ViewMode, type EntryRenderFn, type EntryTooltipFn } from "./eventcalendar-context";
4
+ import { EventCalendarEvents } from "./eventcalendar-events";
5
+ import { EventCalendarSettings } from "./eventcalendar-settings";
6
+ import { type CalendarImageExportOptions } from "./export/calendar-image-exporter";
7
+ import { type CalendarPdfExportOptions } from "./export/calendar-pdf-exporter";
8
+ import { type CalendarIcsExportOptions } from "./export/calendar-icalendar-exporter";
9
+ import { type CalendarIcsImportOptions, type CalendarIcsImportResult } from "./import/calendar-icalendar-importer";
10
+ import { type CalendarCsvExportOptions, type CalendarExcelExportOptions } from "./export/calendar-data-exporter";
11
+ /** Main public API for the EventCalendar component. */
12
+ export declare class EventCalendarEngine {
13
+ #private;
14
+ constructor(hostElement: HTMLElement);
15
+ get data(): CalendarData;
16
+ get events(): EventCalendarEvents;
17
+ get settings(): EventCalendarSettings;
18
+ get viewMode(): ViewMode;
19
+ set viewMode(value: ViewMode);
20
+ get currentDate(): Date;
21
+ set currentDate(value: Date);
22
+ get selectedEntries(): CalendarEntry[];
23
+ set selectedEntries(value: CalendarEntry[]);
24
+ get selectedEntry(): CalendarEntry | null;
25
+ set selectedEntry(value: CalendarEntry | null);
26
+ get canEdit(): boolean;
27
+ set canEdit(v: boolean);
28
+ get sidebarVisible(): boolean;
29
+ set sidebarVisible(v: boolean);
30
+ /** Custom entry rendering function. Set to override default entry rendering, or null for default. */
31
+ get entryRendering(): EntryRenderFn | null;
32
+ set entryRendering(value: EntryRenderFn | null);
33
+ /** Custom tooltip content function. Set to override default tooltip, or null for default. */
34
+ get entryTooltip(): EntryTooltipFn | null;
35
+ set entryTooltip(value: EntryTooltipFn | null);
36
+ /** Copy selected entries to the clipboard. */
37
+ copyEntries(entries?: CalendarEntry[]): Promise<void>;
38
+ /** Cut selected entries to the clipboard. */
39
+ cutEntries(entries?: CalendarEntry[]): Promise<void>;
40
+ /** Paste entries from the clipboard at the current date. */
41
+ pasteEntries(): Promise<void>;
42
+ /** Export the current view as an image (PNG or JPEG). Requires html2canvas. */
43
+ exportToImage(options?: CalendarImageExportOptions): Promise<Blob>;
44
+ /** Export the current view as a PDF document. Requires jspdf and html2canvas. */
45
+ exportToPdf(options?: CalendarPdfExportOptions): Promise<Blob>;
46
+ /** Export calendar items to iCalendar (.ics) format. Returns a Blob with MIME type text/calendar. */
47
+ exportToIcs(options?: CalendarIcsExportOptions): Blob;
48
+ /** Export calendar items to iCalendar (.ics) format. Returns the raw text string. */
49
+ exportToIcsText(options?: CalendarIcsExportOptions): string;
50
+ /** Import calendar items from iCalendar (.ics) text. */
51
+ importFromIcs(text: string, options?: CalendarIcsImportOptions): CalendarIcsImportResult;
52
+ /** Export all calendar items as a CSV string. */
53
+ exportToCsv(options?: CalendarCsvExportOptions): string;
54
+ /** Export all calendar items as an Excel workbook. Requires the `exceljs` package. */
55
+ exportToExcel(options?: CalendarExcelExportOptions): Promise<Blob>;
56
+ /** Check which optional export dependencies are available. */
57
+ static checkExportDependencies(): Promise<{
58
+ html2canvas: boolean;
59
+ jspdf: boolean;
60
+ exceljs: boolean;
61
+ }>;
62
+ today(): void;
63
+ next(): void;
64
+ previous(): void;
65
+ goToDate(date: Date): void;
66
+ undo(): void;
67
+ redo(): void;
68
+ get canUndo$(): import("rxjs").BehaviorSubject<boolean>;
69
+ get canRedo$(): import("rxjs").BehaviorSubject<boolean>;
70
+ save(): string;
71
+ load(text: string): void;
72
+ destroy(): void;
73
+ }
74
+ /** Serialized state shape for save/load. */
75
+ export interface EventCalendarSerialized {
76
+ calendars: any[];
77
+ items: any[];
78
+ currentDate?: string;
79
+ viewMode?: ViewMode;
80
+ }
@@ -0,0 +1,40 @@
1
+ import { Subject } from "rxjs";
2
+ import type { CalendarEventArgs } from "./model/calendar";
3
+ import type { CalendarItemEventArgs } from "./model/calendar-item";
4
+ import type { CalendarEntry } from "./model/calendar-entry";
5
+ import type { EventCalendarContext, ViewMode, EntryEventArgs, EntryContextMenuArgs, DateClickArgs, DateContextMenuArgs, MoreClickArgs, EntryMovingArgs, EntryResizingArgs, EntryCreatingArgs, EntryDeletingArgs, CalendarRemovingArgs } from "./eventcalendar-context";
6
+ /** Public event emitters for EventCalendar. Consumers subscribe to these. */
7
+ export declare class EventCalendarEvents {
8
+ #private;
9
+ calendarAdded$: Subject<CalendarEventArgs>;
10
+ calendarChanged$: Subject<CalendarEventArgs>;
11
+ calendarRemoved$: Subject<CalendarEventArgs>;
12
+ calendarAddRequested$: Subject<void>;
13
+ calendarRemoving$: Subject<CalendarRemovingArgs>;
14
+ itemAdded$: Subject<CalendarItemEventArgs>;
15
+ itemChanged$: Subject<CalendarItemEventArgs>;
16
+ itemRemoved$: Subject<CalendarItemEventArgs>;
17
+ entryClick$: Subject<EntryEventArgs>;
18
+ entryDblClick$: Subject<EntryEventArgs>;
19
+ entryContextMenu$: Subject<EntryContextMenuArgs>;
20
+ dateClick$: Subject<DateClickArgs>;
21
+ dateContextMenu$: Subject<DateContextMenuArgs>;
22
+ moreClick$: Subject<MoreClickArgs>;
23
+ entryMoving$: Subject<EntryMovingArgs>;
24
+ entryResizing$: Subject<EntryResizingArgs>;
25
+ entryCreating$: Subject<EntryCreatingArgs>;
26
+ entryDeleting$: Subject<EntryDeletingArgs>;
27
+ viewModeChanged$: Subject<ViewMode>;
28
+ currentDateChanged$: Subject<Date>;
29
+ viewDateRangeChanged$: Subject<{
30
+ start: Date;
31
+ end: Date;
32
+ }>;
33
+ selectedEntriesChanged$: Subject<CalendarEntry[]>;
34
+ /** Last selected entry, or null. For backwards compatibility. */
35
+ selectedEntryChanged$: Subject<CalendarEntry | null>;
36
+ undone$: Subject<void>;
37
+ redone$: Subject<void>;
38
+ constructor(ec: EventCalendarContext);
39
+ destroy(): void;
40
+ }
@@ -0,0 +1,30 @@
1
+ import { Subject } from "rxjs";
2
+ import type { TimelineKitLocale } from "../common/locale";
3
+ import type { EventCalendarContext } from "./eventcalendar-context";
4
+ import type { EventCalendarTheme } from "./themes/eventcalendar-theme";
5
+ /** Configuration container for EventCalendar. Changes are emitted via `changed$`. */
6
+ export declare class EventCalendarSettings {
7
+ #private;
8
+ changed$: Subject<void>;
9
+ constructor(ctx: EventCalendarContext);
10
+ get locale(): TimelineKitLocale;
11
+ set locale(value: TimelineKitLocale);
12
+ get theme(): EventCalendarTheme;
13
+ set theme(value: EventCalendarTheme);
14
+ get firstDayOfWeek(): number;
15
+ set firstDayOfWeek(value: number);
16
+ get showWeekNumbers(): boolean;
17
+ set showWeekNumbers(value: boolean);
18
+ get slotDuration(): number;
19
+ set slotDuration(value: number);
20
+ get workingHours(): {
21
+ start: number;
22
+ end: number;
23
+ };
24
+ set workingHours(value: {
25
+ start: number;
26
+ end: number;
27
+ });
28
+ get agendaDays(): number;
29
+ set agendaDays(value: number);
30
+ }
@@ -0,0 +1,32 @@
1
+ import { EventCalendarContext } from "../eventcalendar-context";
2
+ /** Options for CSV export of calendar data. */
3
+ export interface CalendarCsvExportOptions {
4
+ /** Column delimiter. Default: ',' */
5
+ delimiter?: ',' | ';' | '\t';
6
+ /** Include column headers? Default: true */
7
+ includeHeaders?: boolean;
8
+ /** Include a separate calendars section? Default: false */
9
+ includeCalendars?: boolean;
10
+ /** Export only items from these calendar IDs. Default: all */
11
+ calendarIds?: string[];
12
+ }
13
+ /** Options for Excel (.xlsx) export of calendar data. */
14
+ export interface CalendarExcelExportOptions {
15
+ /** Name of the events sheet. Default: locale-dependent ('Events') */
16
+ eventsSheetName?: string;
17
+ /** Include a sheet with calendars? Default: true */
18
+ includeCalendarsSheet?: boolean;
19
+ /** Apply cell formatting (bold headers, column widths, frozen header row)? Default: true */
20
+ includeFormatting?: boolean;
21
+ /** Export only items from these calendar IDs. Default: all */
22
+ calendarIds?: string[];
23
+ }
24
+ /** Exports calendar data to CSV and Excel formats. */
25
+ export declare class CalendarDataExporter {
26
+ #private;
27
+ constructor(ctx: EventCalendarContext);
28
+ /** Export all calendar items (and optionally calendars) as a CSV string. */
29
+ exportToCsv(options?: CalendarCsvExportOptions): string;
30
+ /** Export all calendar items and calendars as an Excel workbook. Requires the `exceljs` package. */
31
+ exportToExcel(options?: CalendarExcelExportOptions): Promise<Blob>;
32
+ }
@@ -0,0 +1,24 @@
1
+ import type { CalendarData } from "../model/calendar-data";
2
+ export interface CalendarIcsExportOptions {
3
+ /** Which calendars to export. If omitted, all calendars are exported. */
4
+ calendarIds?: string[];
5
+ /** Product identifier for PRODID. Default: '-//TimelineKit//EventCalendar//EN'. */
6
+ prodId?: string;
7
+ /** Whether to include X-TIMELINEKIT-TYPE custom property. Default: true. */
8
+ includeCustomType?: boolean;
9
+ }
10
+ /** Exports calendar items to iCalendar (.ics) format (RFC 5545). */
11
+ export declare class CalendarIcsExporter {
12
+ #private;
13
+ constructor(data: CalendarData);
14
+ exportToIcs(options?: CalendarIcsExportOptions): Blob;
15
+ exportToIcsText(options?: CalendarIcsExportOptions): string;
16
+ }
17
+ /** Format Date as iCalendar UTC datetime: 20261231T235959Z */
18
+ export declare function formatIcsDateTime(d: Date): string;
19
+ /** Format Date as iCalendar date-only: 20261231 */
20
+ export declare function formatIcsDate(d: Date): string;
21
+ /** Escape text for iCalendar property values. */
22
+ export declare function escapeIcsText(text: string): string;
23
+ /** Fold long lines per RFC 5545 (max 75 octets). */
24
+ export declare function foldLines(lines: string[]): string[];
@@ -0,0 +1,17 @@
1
+ import type { EventCalendarContext } from "../eventcalendar-context";
2
+ export interface CalendarImageExportOptions {
3
+ /** Image format. Default: 'png'. */
4
+ format?: 'png' | 'jpeg';
5
+ /** JPEG quality (0-1). Default: 0.92. Only used when format is 'jpeg'. */
6
+ quality?: number;
7
+ /** Pixel scale factor for higher resolution output. Default: 2. */
8
+ scale?: number;
9
+ /** Whether to include the sidebar. Default: false. */
10
+ includeSidebar?: boolean;
11
+ }
12
+ /** Exports the current calendar view as a raster image. */
13
+ export declare class CalendarImageExporter {
14
+ #private;
15
+ constructor(ec: EventCalendarContext, hostElement: HTMLElement);
16
+ exportToImage(options?: CalendarImageExportOptions): Promise<Blob>;
17
+ }
@@ -0,0 +1,30 @@
1
+ import type { EventCalendarContext } from "../eventcalendar-context";
2
+ export interface CalendarPdfExportOptions {
3
+ /** Page format. Default: 'A4'. */
4
+ pageSize?: 'A4' | 'A3' | 'Letter' | 'Legal';
5
+ /** Page orientation. Default: 'landscape'. */
6
+ orientation?: 'portrait' | 'landscape';
7
+ /** Page margins in mm. Default: 10mm on all sides. */
8
+ margin?: {
9
+ top: number;
10
+ right: number;
11
+ bottom: number;
12
+ left: number;
13
+ };
14
+ /** Header text on each page. */
15
+ header?: string | ((pageNumber: number, totalPages: number) => string);
16
+ /** Footer text on each page. */
17
+ footer?: string | ((pageNumber: number, totalPages: number) => string);
18
+ /** Image quality (0-1). Default: 0.92. */
19
+ quality?: number;
20
+ /** Pixel scale factor for the captured image. Default: 2. */
21
+ scale?: number;
22
+ /** Whether to include the sidebar. Default: false. */
23
+ includeSidebar?: boolean;
24
+ }
25
+ /** Exports the current calendar view as a PDF document. */
26
+ export declare class CalendarPdfExporter {
27
+ #private;
28
+ constructor(ec: EventCalendarContext, hostElement: HTMLElement);
29
+ exportToPdf(options?: CalendarPdfExportOptions): Promise<Blob>;
30
+ }
@@ -0,0 +1,30 @@
1
+ import { Calendar } from "../model/calendar";
2
+ import { CalendarItem, CalendarItemType } from "../model/calendar-item";
3
+ export interface CalendarIcsImportOptions {
4
+ /** Calendar ID to assign to imported items. If omitted, uses X-TIMELINEKIT-CALENDAR or null. */
5
+ calendarId?: string;
6
+ /** Whether to create a Calendar object from VCALENDAR metadata. Default: true. */
7
+ createCalendar?: boolean;
8
+ /** Default item type when X-TIMELINEKIT-TYPE is not present. Default: 'appointment'. */
9
+ defaultType?: CalendarItemType;
10
+ }
11
+ export interface CalendarIcsImportResult {
12
+ /** Created calendar (if createCalendar was true and metadata was present). */
13
+ calendar: Calendar | null;
14
+ /** Imported items (master events only, with exceptions attached). */
15
+ items: CalendarItem[];
16
+ /** Non-fatal warnings encountered during parsing. */
17
+ warnings: string[];
18
+ /** Count of components that were skipped (unsupported types, parse errors). */
19
+ skippedCount: number;
20
+ }
21
+ /** Imports iCalendar (.ics) text into CalendarItem instances. */
22
+ export declare class CalendarIcsImporter {
23
+ importFromIcs(text: string, options?: CalendarIcsImportOptions): CalendarIcsImportResult;
24
+ }
25
+ /** Parse iCalendar date or datetime value. */
26
+ export declare function parseIcsDateTimeValue(value: string, tzid?: string | null): Date | null;
27
+ /** Unfold RFC 5545 continuation lines. */
28
+ export declare function unfoldLines(text: string): string;
29
+ /** Unescape iCalendar text property values. */
30
+ export declare function unescapeIcsText(text: string): string;
@@ -0,0 +1,34 @@
1
+ import { Subject } from "rxjs";
2
+ import { Calendar, CalendarEventArgs } from "./calendar";
3
+ import { CalendarItem, CalendarItemEventArgs } from "./calendar-item";
4
+ import { CalendarEntry } from "./calendar-entry";
5
+ import { TimeRange } from "./recurrence-expander";
6
+ import { ColorValue } from "../../common/base-theme";
7
+ export declare class CalendarData {
8
+ #private;
9
+ calendarAdded$: Subject<CalendarEventArgs>;
10
+ calendarChanged$: Subject<CalendarEventArgs>;
11
+ calendarRemoved$: Subject<CalendarEventArgs>;
12
+ calendarVisibilityChanged$: Subject<CalendarEventArgs>;
13
+ itemAdded$: Subject<CalendarItemEventArgs>;
14
+ itemChanged$: Subject<CalendarItemEventArgs>;
15
+ itemRemoved$: Subject<CalendarItemEventArgs>;
16
+ get calendarsLength(): number;
17
+ getCalendar(index: number): Calendar;
18
+ getCalendarById(id: string): Calendar | null;
19
+ addCalendar(calendar: Calendar): void;
20
+ removeCalendar(calendar: Calendar): void;
21
+ get defaultCalendar(): Calendar | null;
22
+ assignCalendars(calendars: Calendar[]): void;
23
+ get itemsLength(): number;
24
+ getItem(index: number): CalendarItem;
25
+ getItemById(id: string): CalendarItem | null;
26
+ getItemsForCalendar(calendarId: string): CalendarItem[];
27
+ addItem(item: CalendarItem): void;
28
+ removeItem(item: CalendarItem): void;
29
+ assignItems(items: CalendarItem[]): void;
30
+ clear(): void;
31
+ getEntries(range: TimeRange): CalendarEntry[];
32
+ getItemColor(item: CalendarItem): ColorValue;
33
+ getEntryColor(entry: CalendarEntry): ColorValue;
34
+ }
@@ -0,0 +1,44 @@
1
+ import { CalendarItem, CalendarItemType, ResponseStatus } from "./calendar-item";
2
+ import { RecurrenceException } from "./recurrence-exception";
3
+ import { ColorValue } from "../../common/base-theme";
4
+ /**
5
+ * A rendered calendar entry — the universal unit for the view layer.
6
+ *
7
+ * Every CalendarItem (recurring or not) is wrapped into one or more CalendarEntry
8
+ * instances by the RecurrenceExpander. The rendering layer always works exclusively
9
+ * with CalendarEntry, never with CalendarItem directly.
10
+ *
11
+ * For recurring items: multiple entries per item (one per visible occurrence).
12
+ * For non-recurring items: exactly one entry per item.
13
+ *
14
+ * Properties are resolved as: exception overrides > item values.
15
+ */
16
+ export declare class CalendarEntry {
17
+ readonly item: CalendarItem;
18
+ readonly originalStartTime: Date;
19
+ readonly exception: RecurrenceException | null;
20
+ constructor(item: CalendarItem, originalStartTime: Date, exception: RecurrenceException | null);
21
+ get id(): string;
22
+ get type(): CalendarItemType;
23
+ get calendarId(): string | null;
24
+ get startTime(): Date;
25
+ get endTime(): Date;
26
+ get title(): string | null;
27
+ get description(): string | null;
28
+ get location(): string | null;
29
+ get color(): ColorValue;
30
+ get isAllDay(): boolean;
31
+ get timeZone(): string | null;
32
+ get tags(): string[] | null;
33
+ get visibility(): import("./calendar-item").CalendarItemVisibility;
34
+ get hasReminders(): boolean;
35
+ get externalSource(): string | null;
36
+ get data(): any;
37
+ get isRecurring(): boolean;
38
+ get isException(): boolean;
39
+ get isCancelled(): boolean;
40
+ get responseStatus(): ResponseStatus;
41
+ get isCompleted(): boolean;
42
+ get completedAt(): Date | null;
43
+ getPropertyValue(name: string): any;
44
+ }
@@ -0,0 +1,151 @@
1
+ import { Subject } from "rxjs";
2
+ import { CustomProperty } from "../../common/custom-property";
3
+ import { RecurrenceRule } from "./recurrence-rule";
4
+ import { RecurrenceException } from "./recurrence-exception";
5
+ import { ColorValue } from "../../common/base-theme";
6
+ export declare abstract class CalendarItem {
7
+ #private;
8
+ abstract readonly type: CalendarItemType;
9
+ get id(): string;
10
+ get calendarId(): string | null;
11
+ set calendarId(value: string | null);
12
+ get startTime(): Date | null;
13
+ set startTime(value: Date | null);
14
+ get endTime(): Date | null;
15
+ set endTime(value: Date | null);
16
+ get timeZone(): string | null;
17
+ set timeZone(value: string | null);
18
+ get isAllDay(): boolean;
19
+ set isAllDay(value: boolean);
20
+ get title(): string | null;
21
+ set title(value: string | null);
22
+ get description(): string | null;
23
+ set description(value: string | null);
24
+ get location(): string | null;
25
+ set location(value: string | null);
26
+ /** Color index into the theme's taskColors array, or a custom color definition. */
27
+ get color(): ColorValue;
28
+ set color(value: ColorValue);
29
+ get visibility(): CalendarItemVisibility;
30
+ set visibility(value: CalendarItemVisibility);
31
+ get recurrenceRule(): RecurrenceRule | null;
32
+ set recurrenceRule(value: RecurrenceRule | null);
33
+ get recurrenceExceptions(): readonly RecurrenceException[];
34
+ get isRecurring(): boolean;
35
+ get hasReminders(): boolean;
36
+ set hasReminders(value: boolean);
37
+ get externalSource(): ExternalSource | string | null;
38
+ set externalSource(value: ExternalSource | string | null);
39
+ get tags(): string[] | null;
40
+ set tags(value: string[] | null);
41
+ setException(exception: RecurrenceException): void;
42
+ removeException(originalStartTime: Date): void;
43
+ cancelOccurrence(originalStartTime: Date): void;
44
+ getException(originalStartTime: Date): RecurrenceException | null;
45
+ clearExceptions(): void;
46
+ data: any;
47
+ abstract clone(newId: string | null): CalendarItem;
48
+ changed$: Subject<CalendarItemEventArgs>;
49
+ startTimeChanged$: Subject<CalendarItemEventArgs>;
50
+ endTimeChanged$: Subject<CalendarItemEventArgs>;
51
+ constructor(id: string | null);
52
+ addProperty(property: CustomProperty): void;
53
+ removeProperty(property: CustomProperty): void;
54
+ getPropertyByName(name: string): CustomProperty | null;
55
+ getPropertyValue(name: string): any;
56
+ setPropertyValue(name: string, value: any): void;
57
+ protected applyFromAny(data: any): void;
58
+ toAny(): any;
59
+ protected emitChanged(): void;
60
+ }
61
+ export type CalendarItemType = 'meeting' | 'appointment' | 'task' | 'deadline' | 'availabilityBlock' | 'holiday' | 'birthday' | 'reminder' | 'resourceBooking';
62
+ export type CalendarItemVisibility = 'public' | 'private' | 'confidential';
63
+ export type ExternalSource = 'native' | 'google' | 'outlook' | 'apple' | 'caldav' | 'ical' | 'office365' | 'exchange';
64
+ export interface CalendarItemEventArgs {
65
+ item: CalendarItem;
66
+ }
67
+ export type ResponseStatus = 'accepted' | 'tentative' | 'declined' | 'needsAction';
68
+ export type AvailabilityStatus = 'busy' | 'free' | 'tentative' | 'outOfOffice' | 'workingElsewhere' | 'focus';
69
+ export declare class Meeting extends CalendarItem {
70
+ #private;
71
+ readonly type: "meeting";
72
+ get responseStatus(): ResponseStatus;
73
+ set responseStatus(value: ResponseStatus);
74
+ get attendeeCount(): number;
75
+ set attendeeCount(value: number);
76
+ get hasConference(): boolean;
77
+ set hasConference(value: boolean);
78
+ get organizer(): string | null;
79
+ set organizer(value: string | null);
80
+ protected applyFromAny(data: any): void;
81
+ toAny(): any;
82
+ clone(newId: string | null): Meeting;
83
+ static fromAny(data: any): Meeting;
84
+ }
85
+ export declare class Appointment extends CalendarItem {
86
+ readonly type: "appointment";
87
+ clone(newId: string | null): Appointment;
88
+ static fromAny(data: any): Appointment;
89
+ }
90
+ export declare class Task extends CalendarItem {
91
+ #private;
92
+ readonly type: "task";
93
+ get isCompleted(): boolean;
94
+ set isCompleted(value: boolean);
95
+ get completedAt(): Date | null;
96
+ set completedAt(value: Date | null);
97
+ get priority(): number;
98
+ set priority(value: number);
99
+ protected applyFromAny(data: any): void;
100
+ toAny(): any;
101
+ clone(newId: string | null): Task;
102
+ static fromAny(data: any): Task;
103
+ }
104
+ export declare class Deadline extends CalendarItem {
105
+ readonly type: "deadline";
106
+ clone(newId: string | null): Deadline;
107
+ static fromAny(data: any): Deadline;
108
+ }
109
+ export declare class Holiday extends CalendarItem {
110
+ readonly type: "holiday";
111
+ clone(newId: string | null): Holiday;
112
+ static fromAny(data: any): Holiday;
113
+ }
114
+ export declare class AvailabilityBlock extends CalendarItem {
115
+ #private;
116
+ readonly type: "availabilityBlock";
117
+ get availabilityStatus(): AvailabilityStatus;
118
+ set availabilityStatus(value: AvailabilityStatus);
119
+ protected applyFromAny(data: any): void;
120
+ toAny(): any;
121
+ clone(newId: string | null): AvailabilityBlock;
122
+ static fromAny(data: any): AvailabilityBlock;
123
+ }
124
+ export declare class Birthday extends CalendarItem {
125
+ #private;
126
+ readonly type: "birthday";
127
+ get contactName(): string | null;
128
+ set contactName(value: string | null);
129
+ protected applyFromAny(data: any): void;
130
+ toAny(): any;
131
+ clone(newId: string | null): Birthday;
132
+ static fromAny(data: any): Birthday;
133
+ }
134
+ export declare class Reminder extends CalendarItem {
135
+ readonly type: "reminder";
136
+ clone(newId: string | null): Reminder;
137
+ static fromAny(data: any): Reminder;
138
+ }
139
+ export declare class ResourceBooking extends CalendarItem {
140
+ #private;
141
+ readonly type: "resourceBooking";
142
+ get resourceId(): string | null;
143
+ set resourceId(value: string | null);
144
+ get resourceName(): string | null;
145
+ set resourceName(value: string | null);
146
+ protected applyFromAny(data: any): void;
147
+ toAny(): any;
148
+ clone(newId: string | null): ResourceBooking;
149
+ static fromAny(data: any): ResourceBooking;
150
+ }
151
+ export declare function calendarItemFromAny(data: any): CalendarItem;
@@ -0,0 +1,29 @@
1
+ import { Subject } from "rxjs";
2
+ import { ColorValue } from "../../common/base-theme";
3
+ export declare class Calendar {
4
+ #private;
5
+ get id(): string;
6
+ get name(): string;
7
+ set name(value: string);
8
+ /** Color index into the theme's taskColors array, or a custom color definition. */
9
+ get color(): ColorValue;
10
+ set color(value: ColorValue);
11
+ get isVisible(): boolean;
12
+ set isVisible(value: boolean);
13
+ get isDefault(): boolean;
14
+ set isDefault(value: boolean);
15
+ get isReadOnly(): boolean;
16
+ set isReadOnly(value: boolean);
17
+ get timeZone(): string | null;
18
+ set timeZone(value: string | null);
19
+ get description(): string | null;
20
+ set description(value: string | null);
21
+ changed$: Subject<CalendarEventArgs>;
22
+ visibilityChanged$: Subject<CalendarEventArgs>;
23
+ constructor(id: string | null);
24
+ toAny(): any;
25
+ static fromAny(data: any): Calendar;
26
+ }
27
+ export interface CalendarEventArgs {
28
+ calendar: Calendar;
29
+ }
@@ -0,0 +1,25 @@
1
+ import { CalendarItem } from "./calendar-item";
2
+ import { CalendarEntry } from "./calendar-entry";
3
+ import { CalendarItemOverrides } from "./recurrence-exception";
4
+ export type RecurrenceEditScope = 'this' | 'thisAndFollowing' | 'all';
5
+ export interface RecurrenceEditResult {
6
+ /** Newly created master (from series split), or null */
7
+ newMaster: CalendarItem | null;
8
+ /** true if the original master should be removed from the collection */
9
+ removeMaster: boolean;
10
+ }
11
+ /**
12
+ * Utility for applying edits and deletes to recurring events
13
+ * according to the chosen scope (this / this_and_following / all).
14
+ */
15
+ export declare class RecurrenceEditor {
16
+ #private;
17
+ /**
18
+ * Apply property changes to a recurring event.
19
+ */
20
+ static applyEdit(item: CalendarItem, entry: CalendarEntry, changes: CalendarItemOverrides, scope: RecurrenceEditScope): RecurrenceEditResult;
21
+ /**
22
+ * Delete an occurrence or an entire series.
23
+ */
24
+ static applyDelete(item: CalendarItem, entry: CalendarEntry, scope: RecurrenceEditScope): RecurrenceEditResult;
25
+ }
@@ -0,0 +1,34 @@
1
+ import type { ResponseStatus } from "./calendar-item";
2
+ import type { ColorValue } from "../../common/base-theme";
3
+ /**
4
+ * Subset of CalendarItem properties that can be overridden per-occurrence.
5
+ * Only set keys override the master; unset keys inherit from master.
6
+ */
7
+ export interface CalendarItemOverrides {
8
+ startTime?: Date;
9
+ endTime?: Date;
10
+ title?: string | null;
11
+ description?: string | null;
12
+ location?: string | null;
13
+ color?: ColorValue;
14
+ isAllDay?: boolean;
15
+ timeZone?: string | null;
16
+ tags?: string[] | null;
17
+ responseStatus?: ResponseStatus;
18
+ isCompleted?: boolean;
19
+ completedAt?: Date | null;
20
+ }
21
+ /**
22
+ * An exception to a recurring event for a specific occurrence.
23
+ * Stored on the master CalendarItem.
24
+ */
25
+ export interface RecurrenceException {
26
+ /** Original start time of the occurrence per the recurrence rule (slot identifier) */
27
+ originalStartTime: Date;
28
+ /** true = this occurrence is cancelled (EXDATE) */
29
+ isCancelled: boolean;
30
+ /** Overridden properties (only set keys override the master) */
31
+ overrides: CalendarItemOverrides | null;
32
+ }
33
+ export declare function recurrenceExceptionToAny(e: RecurrenceException): any;
34
+ export declare function recurrenceExceptionFromAny(data: any): RecurrenceException;
@@ -0,0 +1,17 @@
1
+ import { CalendarItem } from "./calendar-item";
2
+ import { CalendarEntry } from "./calendar-entry";
3
+ export interface TimeRange {
4
+ start: Date;
5
+ end: Date;
6
+ }
7
+ /**
8
+ * Expands CalendarItem instances into CalendarEntry objects for a given visible
9
+ * time range. Every item (recurring or not) is wrapped into CalendarEntry.
10
+ *
11
+ * Recurring items produce multiple entries (one per visible occurrence).
12
+ * Non-recurring items produce exactly one entry.
13
+ */
14
+ export declare class RecurrenceExpander {
15
+ #private;
16
+ expand(items: CalendarItem[], range: TimeRange): CalendarEntry[];
17
+ }