@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,101 @@
1
+ /** Scheduling constraint type applied to a task. */
2
+ export type ConstraintType = 'asap' | 'alap' | 'mso' | 'mfo' | 'snet' | 'snlt' | 'fnet' | 'fnlt';
3
+ /** Dependency link type between two tasks. */
4
+ export type TaskLinkType = 'finishToStart' | 'startToStart' | 'finishToFinish' | 'startToFinish';
5
+ /** Localization strings for all TimelineKit components. */
6
+ export interface TimelineKitLocale {
7
+ /** BCP 47 language tag for Intl formatting (dates, numbers), e.g. 'en-US', 'cs-CZ', 'de-DE' */
8
+ language: string;
9
+ columns: {
10
+ name: string;
11
+ length: string;
12
+ start: string;
13
+ end: string;
14
+ progress: string;
15
+ resources: string;
16
+ work: string;
17
+ cost: string;
18
+ };
19
+ columnTooltips: {
20
+ work: string;
21
+ cost: string;
22
+ };
23
+ tooltips: {
24
+ addTask: string;
25
+ addTaskPart: string;
26
+ moveTask: string;
27
+ moveTaskPart: string;
28
+ resizeTask: string;
29
+ resizeTaskPart: string;
30
+ moveMilestone: string;
31
+ setProgress: string;
32
+ addLink: string;
33
+ };
34
+ labels: {
35
+ start: string;
36
+ end: string;
37
+ length: string;
38
+ progress: string;
39
+ from: string;
40
+ to: string;
41
+ type: string;
42
+ lag: string;
43
+ };
44
+ constraints: Record<ConstraintType, string>;
45
+ linkTypes: Record<TaskLinkType, string>;
46
+ warnings: {
47
+ behindSchedule: string;
48
+ behindScheduleByOneDay: string;
49
+ behindScheduleByDays: (days: number) => string;
50
+ constraintViolation: (constraintLabel: string, date: string) => string;
51
+ };
52
+ export: {
53
+ tasksSheetName: string;
54
+ linksSheetName: string;
55
+ resourcesSheetName: string;
56
+ eventsSheetName: string;
57
+ calendarsSheetName: string;
58
+ };
59
+ scheduler: {
60
+ resource: string;
61
+ name: string;
62
+ type: string;
63
+ addEvent: string;
64
+ moveEvent: string;
65
+ resizeEvent: string;
66
+ };
67
+ calendar: {
68
+ today: string;
69
+ month: string;
70
+ week: string;
71
+ day: string;
72
+ agenda: string;
73
+ allDay: string;
74
+ noEvents: string;
75
+ more: (count: number) => string;
76
+ myCalendars: string;
77
+ addCalendar: string;
78
+ ariaCalendar?: string;
79
+ ariaSidebar?: string;
80
+ ariaNavigation?: string;
81
+ ariaViewMode?: string;
82
+ ariaGoToToday?: string;
83
+ ariaPrevious?: string;
84
+ ariaNext?: string;
85
+ ariaAllDayEvents?: string;
86
+ ariaCalendarGrid?: string;
87
+ ariaAgendaList?: string;
88
+ ariaSelectMonthYear?: string;
89
+ ariaToggleCalendar?: (name: string) => string;
90
+ ariaRemoveCalendar?: (name: string) => string;
91
+ ariaMoreEvents?: (count: number) => string;
92
+ /** Short label for week numbers (default: 'Wk'). Shown in headers when showWeekNumbers is enabled. */
93
+ weekNumberShort?: string;
94
+ /** Full label for week number (default: 'Week'). Used for aria-label. */
95
+ weekNumber?: string;
96
+ };
97
+ /** Optional custom date parser. Receives raw user input, returns Date or null. */
98
+ dateParser?: (value: string) => Date | null;
99
+ }
100
+ /** Default English (en-US) locale. */
101
+ export declare const defaultLocale: TimelineKitLocale;
@@ -0,0 +1,13 @@
1
+ /** A vertical date marker displayed on the chart. */
2
+ export interface Marker {
3
+ /** Date position of the marker line. */
4
+ date: Date;
5
+ /** Optional text label displayed alongside the marker. */
6
+ label?: string;
7
+ /** CSS color string for the marker line. */
8
+ color?: string;
9
+ /** Width of the marker line in pixels. */
10
+ lineWidth?: number;
11
+ /** Dash style of the marker line. */
12
+ lineStyle?: 'solid' | 'dashed' | 'dotted';
13
+ }
@@ -0,0 +1,17 @@
1
+ import { Subscription } from "rxjs";
2
+ /**
3
+ * Manages RxJS subscriptions keyed by an owner object.
4
+ * Provides add/remove/clear operations with automatic unsubscribe on removal.
5
+ *
6
+ * Replaces the repeated pattern of Map<T, any[]> + addXSubscription/removeXSubscriptions
7
+ * found across TaskList, Task, ResourceList, etc.
8
+ */
9
+ export declare class SubscriptionManager<T> {
10
+ #private;
11
+ /** Store a subscription for the given key. */
12
+ add(key: T, subscription: Subscription): void;
13
+ /** Unsubscribe and remove all subscriptions for the given key. */
14
+ remove(key: T): void;
15
+ /** Unsubscribe and remove all subscriptions for all keys. */
16
+ clear(): void;
17
+ }
@@ -1,24 +1,24 @@
1
1
  import { HorizontalAlign, HyperlinkRect, Rect, VerticalAlign } from "./common";
2
2
  export declare const lineSpacing = 2;
3
- export declare function getFontHeight(ctx: any): number;
4
- export declare function drawMultilineText(ctx: any, text: string, rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign, fillStyle?: string | null, withHyperlinks?: boolean, underline?: boolean): void;
5
- export declare function getMultilineTextHeight(ctx: any, text: string, width: number, maxHeight: number): number;
3
+ export declare function getFontHeight(ctx: CanvasRenderingContext2D): number;
4
+ export declare function drawMultilineText(ctx: CanvasRenderingContext2D, text: string, rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign, fillStyle?: string | null, withHyperlinks?: boolean, underline?: boolean): void;
5
+ export declare function getMultilineTextHeight(ctx: CanvasRenderingContext2D, text: string, width: number, maxHeight: number): number;
6
6
  export declare function getMultilineHyperlinks(lines: MultitextLine[], rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign): HyperlinkRect[];
7
7
  export interface MultitextLine {
8
8
  text: string;
9
- measure: any;
9
+ measure: TextMetrics;
10
10
  height: number;
11
11
  links: HyperlinkMeasure[];
12
12
  }
13
- export declare function getMultilineText(ctx: any, text: string, width: number, maxHeight: number, withHyperlinks?: boolean): MultitextLine[];
13
+ export declare function getMultilineText(ctx: CanvasRenderingContext2D, text: string, width: number, maxHeight: number, withHyperlinks?: boolean): MultitextLine[];
14
14
  export interface HyperlinkMeasure {
15
15
  url: string;
16
16
  x: number;
17
17
  width: number;
18
18
  }
19
- export declare function drawSinglelineText(ctx: any, text: string, rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign, fillStyle?: string | null, underline?: boolean): void;
20
- export declare function getSinglelineText(ctx: any, text: string, maxWidth: number): {
19
+ export declare function drawSinglelineText(ctx: CanvasRenderingContext2D, text: string, rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign, fillStyle?: string | null, underline?: boolean): void;
20
+ export declare function getSinglelineText(ctx: CanvasRenderingContext2D, text: string, maxWidth: number): {
21
21
  text: string;
22
- measure: any;
22
+ measure: TextMetrics;
23
23
  };
24
- export declare function drawTextMiniature(ctx: any, x: number, y: number, width: number): void;
24
+ export declare function drawTextMiniature(ctx: CanvasRenderingContext2D, x: number, y: number, width: number): void;
@@ -0,0 +1,5 @@
1
+ import { BaseTheme } from "./base-theme";
2
+ /** Apply the standard set of CSS custom properties for timeline components (GanttChart, ResourceScheduler). */
3
+ export declare function applyTimelineThemeCssProperties(element: HTMLElement, theme: BaseTheme): void;
4
+ /** Apply the theme font to a wrapper element. */
5
+ export declare function applyTimelineFont(element: HTMLElement, theme: BaseTheme): void;
@@ -0,0 +1,107 @@
1
+ import { Font } from "./common";
2
+ /** Base color palette for a single task/event color index. Shared by all timeline components. */
3
+ export declare class TimelineTaskColor {
4
+ borderColor: string | null;
5
+ color1: string;
6
+ color2: string;
7
+ highlightColor: string;
8
+ static create<T extends TimelineTaskColor>(this: new () => T, props: Partial<T>): T;
9
+ }
10
+ /** Custom color definition that can be used instead of a theme color index. */
11
+ export interface ColorDefinition {
12
+ color1: string;
13
+ color2: string;
14
+ highlightColor?: string;
15
+ borderColor?: string | null;
16
+ }
17
+ /** Color value: either a theme color index (number) or a custom color definition. */
18
+ export type ColorValue = number | ColorDefinition;
19
+ /** Resolves a ColorValue to a concrete TimelineTaskColor instance. */
20
+ export declare function resolveTaskColor<T extends TimelineTaskColor>(color: ColorValue, taskColors: T[]): T;
21
+ /** Style settings for the sheet header row. */
22
+ export declare class TimelineSheetHeaderStyle {
23
+ backgroundColor: string;
24
+ cellBorderColor: string;
25
+ cellDividerColor: string | null;
26
+ textColor: string;
27
+ }
28
+ /** Style settings for the sheet (left panel). */
29
+ export declare class TimelineSheetStyle {
30
+ header: TimelineSheetHeaderStyle;
31
+ backgroundColor: string;
32
+ textColor: string;
33
+ hoverBackgroundColor: string;
34
+ selectedBackgroundColor: string;
35
+ selectedRowHeaderColor: string;
36
+ focusBorderColor: string;
37
+ highlightBorderColor: string;
38
+ treeIconColor: string;
39
+ editorBackgroundColor: string;
40
+ editorTextColor: string;
41
+ scrollbarThumbColor: string;
42
+ scrollbarTrackColor: string;
43
+ gridLineColor: string;
44
+ colorScheme: 'light' | 'dark';
45
+ }
46
+ /** Style settings for the chart header area. */
47
+ export declare class TimelineChartHeaderStyle {
48
+ backgroundColor: string;
49
+ cellBorderColor: string;
50
+ cellDividerColor: string | null;
51
+ cellDividerPadding: number;
52
+ textColor: string;
53
+ }
54
+ /** Style settings for the chart content area shared across all timeline components. */
55
+ export declare class TimelineChartContentStyle {
56
+ backgroundColor: string;
57
+ taskHeight: number;
58
+ taskBorderRadius: number;
59
+ taskColors: TimelineTaskColor[];
60
+ nonWorkingTimeStyle: string;
61
+ tier2SeparatorLineStyle: string;
62
+ gridLineColor: string;
63
+ tooltipFont: Font;
64
+ tooltipTextColor: string;
65
+ tooltipBackgroundColor1: string;
66
+ tooltipBackgroundColor2: string;
67
+ tooltipBorderColor: string;
68
+ todayLineColor: string;
69
+ todayLineWidth: number;
70
+ todayLineStyle: 'solid' | 'dashed' | 'dotted';
71
+ markerLineColor: string;
72
+ markerLineWidth: number;
73
+ markerLineStyle: 'solid' | 'dashed' | 'dotted';
74
+ markerLabelColor: string;
75
+ markerLabelFont: Font;
76
+ taskLabelPosition: TaskLabelPosition;
77
+ taskLabelContent: TaskLabelContent;
78
+ taskLabelColor: string;
79
+ taskLabelFont: Font;
80
+ taskLabelPadding: number;
81
+ taskLabelOutsideMargin: number;
82
+ constructor();
83
+ }
84
+ /** Style settings for the chart area (right panel). */
85
+ export declare class TimelineChartStyle {
86
+ header: TimelineChartHeaderStyle;
87
+ content: TimelineChartContentStyle;
88
+ }
89
+ /** Base class for all timeline component themes. Extend to create custom themes. */
90
+ export declare abstract class TimelineTheme {
91
+ /** Default font used throughout the component. */
92
+ font: Font;
93
+ /** Height of each row in pixels. */
94
+ rowHeight: number;
95
+ /** Height of the header area in pixels. */
96
+ headerHeight: number;
97
+ /** Y coordinate where the chart content area begins (below the header and its borders). */
98
+ get contentTop(): number;
99
+ /** Sheet (left panel) visual style. */
100
+ sheet: TimelineSheetStyle;
101
+ /** Chart (right panel) visual style. */
102
+ chart: TimelineChartStyle;
103
+ }
104
+ /** Where task labels are rendered relative to the bar. */
105
+ export type TaskLabelPosition = 'none' | 'inside' | 'right' | 'insideOrRight';
106
+ /** What content is displayed in task labels. */
107
+ export type TaskLabelContent = 'name' | 'resource' | 'progress' | 'nameAndProgress' | 'nameAndResource';
@@ -0,0 +1,22 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ /** Manages an undo/redo stack using serialized state snapshots. */
3
+ export declare class UndoManager {
4
+ #private;
5
+ /** Observable indicating whether an undo operation is available. */
6
+ canUndo$: BehaviorSubject<boolean>;
7
+ /** Observable indicating whether a redo operation is available. */
8
+ canRedo$: BehaviorSubject<boolean>;
9
+ constructor(saveFn: () => string, loadFn: (s: string) => void);
10
+ /** Captures the initial state snapshot and resets the undo stack. */
11
+ initialize(): void;
12
+ /** Records a new state snapshot, or defers it until the current batch ends. */
13
+ requestSnapshot(): void;
14
+ /** Begins a batch so that multiple changes produce only one undo snapshot. */
15
+ beginBatch(): void;
16
+ /** Ends the current batch and takes a snapshot if any changes occurred within it. */
17
+ endBatch(): void;
18
+ /** Restores the previous state from the undo stack. */
19
+ undo(): void;
20
+ /** Re-applies the next state from the redo stack. */
21
+ redo(): void;
22
+ }
@@ -0,0 +1,57 @@
1
+ /** Time unit for task duration measurement. */
2
+ export type LengthUnit = 'minute' | 'hour' | 'day' | 'week' | 'month';
3
+ /** Defines working days, shifts, and holidays for scheduling calculations. */
4
+ export declare class WorkingCalendar {
5
+ #private;
6
+ /** Days of the week that are working days. */
7
+ workingDays: DayOfWeek[];
8
+ /** Dates that are non-working regardless of the day of the week. */
9
+ nationalHolidays: Date[];
10
+ /** Working time ranges within each working day. */
11
+ shifts: WorkingShift[];
12
+ /** First day of the week for calendar display. */
13
+ startOfWeek: DayOfWeek;
14
+ /** Default unit for new task durations. */
15
+ defaultLengthUnit: LengthUnit;
16
+ constructor();
17
+ /** Check whether a date falls on a working day (not a holiday or non-working day). */
18
+ isWorkingDay(current: Date): boolean;
19
+ /** Move a date forward to the start of the nearest working shift. */
20
+ moveToStartShift(current: Date, keepTimeIfInsideShift: boolean): Date;
21
+ /** Move a date backward to the end of the nearest working shift. */
22
+ moveToEndShift(current: Date, keepTimeIfInsideShift: boolean): Date;
23
+ /** Total working hours in a day based on the configured shifts. */
24
+ getHoursPerDay(): number;
25
+ /** Check whether a time matches the end of the last working shift. */
26
+ isEndOfDay(current: Date): boolean;
27
+ /** Get the end time of the last shift on a working day (moves forward to the next working day if needed). */
28
+ getEndOfWorkingDay(current: Date): Date;
29
+ /** Calculate working hours between two dates, respecting shifts and non-working days. */
30
+ getHoursBetween(time1: Date, time2: Date): number;
31
+ /** Get the start of the week containing the given date. */
32
+ getStartOfWeek(current: Date): Date;
33
+ /** Add (or subtract) working hours to a date, skipping non-working time. */
34
+ addHours(current: Date, hours: number, moveToNextIfHoursZero?: boolean): Date;
35
+ }
36
+ /** Day of the week. */
37
+ export type DayOfWeek = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
38
+ /** A working time range within a day (e.g. 8:00–12:00). */
39
+ export declare class WorkingShift {
40
+ /** Start time of the shift. */
41
+ start: TimeOfDay;
42
+ /** End time of the shift. */
43
+ end: TimeOfDay;
44
+ constructor(start: TimeOfDay, end: TimeOfDay);
45
+ /** Check whether a time falls within this shift. */
46
+ contains(current: Date, excludeStart?: boolean): boolean;
47
+ /** Duration of this shift in minutes. */
48
+ getLengthInMinutes(): number;
49
+ }
50
+ /** A time of day represented as hour and minute. */
51
+ export declare class TimeOfDay {
52
+ /** Hour (0–23). */
53
+ hour: number;
54
+ /** Minute (0–59). */
55
+ minute: number;
56
+ constructor(hour: number, minute: number);
57
+ }
@@ -1,5 +1,5 @@
1
1
  import { BaseChartScrollHandler } from "../../common/base-chart-scroll-handler";
2
2
  import { GanttChartContext } from "../ganttchart-engine";
3
- export declare class ChartScrollHandler extends BaseChartScrollHandler {
3
+ export declare class GanttChartScrollHandler extends BaseChartScrollHandler {
4
4
  constructor(gc: GanttChartContext, chartElement: any, canvas: any, inner: any);
5
5
  }
@@ -1,32 +1,2 @@
1
- import { BehaviorSubject } from "rxjs";
2
- import { TimelineKitLocale } from "../locale";
3
- import { WorkingCalendar } from "../model/working-calendar";
4
- export declare class ChartTimeline {
5
- #private;
6
- zoomIndex$: BehaviorSubject<number>;
7
- visibleStartTime$: BehaviorSubject<Date>;
8
- get currentZoom(): ChartTimeAxisZoom;
9
- constructor(calendar$: BehaviorSubject<WorkingCalendar>, locale$: BehaviorSubject<TimelineKitLocale>);
10
- createDefaultZooms(): ChartTimeAxisZoom[];
11
- assignZooms(zooms: ChartTimeAxisZoom[], defaultZoomIndex: number): void;
12
- zoomIn(): boolean;
13
- zoomOut(): boolean;
14
- findBestZoomIndex(minDate: Date, maxDate: Date, availableWidth: number): number;
15
- }
16
- export declare class ChartTimeAxisZoom {
17
- axis: ChartTimeAxis[];
18
- baseCellWidth: number;
19
- constructor(axis: ChartTimeAxis[], baseCellWidth: number);
20
- }
21
- export declare class ChartTimeAxis {
22
- #private;
23
- unit: ChartTimeAxisUnit;
24
- unitsPerCell: number;
25
- formatter: (date: Date) => string;
26
- constructor(unit: ChartTimeAxisUnit, unitsPerCell: number, calendar: BehaviorSubject<WorkingCalendar>, formatter: (date: Date) => string);
27
- getCellStartTime(time: Date): Date;
28
- getCellStartX(time: Date, visibleStart: Date, zoom: ChartTimeAxisZoom): number;
29
- getAdd(time: Date, amount: number): Date;
30
- getX(time: Date, visibleStart: Date, zoom: ChartTimeAxisZoom): number;
31
- }
32
- export type ChartTimeAxisUnit = 'Minute' | 'Hour' | 'Day' | 'Week' | 'Month' | 'Quarter' | 'Half' | 'Year';
1
+ export { ChartTimeline, ChartTimeAxisZoom, ChartTimeAxis } from "../../common/chart-time-axis";
2
+ export type { ChartTimeAxisUnit } from "../../common/chart-time-axis";
@@ -1,7 +1,13 @@
1
+ import { Observable } from "rxjs";
1
2
  import { GanttChartContext } from "../ganttchart-engine";
2
- export declare class Chart {
3
+ import { BaseChart } from "../../common/base-chart";
4
+ export declare class GanttChart extends BaseChart<GanttChartContext> {
3
5
  #private;
4
- constructor(gc: GanttChartContext, chartElement: any);
5
- get chartWidth(): number;
6
- destroy(): void;
6
+ constructor(gc: GanttChartContext, chartElement: HTMLElement);
7
+ protected initComponents(chartElement: HTMLElement, canvas: HTMLCanvasElement, inner: HTMLElement): void;
8
+ protected getRedrawObservables(): Observable<any>[];
9
+ protected canRedraw(): boolean;
10
+ protected onRedraw(canvasCtx: CanvasRenderingContext2D): void;
11
+ protected onResize(): void;
12
+ protected destroyComponents(): void;
7
13
  }
@@ -1,11 +1,18 @@
1
1
  import { Point } from "../../../common/common";
2
+ import { Task } from "../../model/task";
2
3
  import { GanttChartContext } from "../../ganttchart-engine";
3
- import { ChartHandler, ChartHandlerResult } from "./handler";
4
- export declare class AddTaskPartHandler extends ChartHandler {
4
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
5
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
6
+ import { GanttDragHandler } from "./gantt-drag-handler";
7
+ interface AddTarget {
8
+ task: Task;
9
+ startCell: number;
10
+ }
11
+ export declare class AddTaskPartHandler extends GanttDragHandler<AddTarget> {
5
12
  #private;
6
- constructor(gc: GanttChartContext);
7
- onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
8
- onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
9
- onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
10
- onRedrawn(): void;
13
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
14
+ protected hitTest(p: Point): AddTarget | null;
15
+ protected onDragEnd(target: AddTarget, p: Point): void;
16
+ protected onDragDraw(target: AddTarget): void;
11
17
  }
18
+ export {};
@@ -2,15 +2,17 @@ import { BehaviorSubject } from "rxjs";
2
2
  import { Point } from "../../../common/common";
3
3
  import { Task } from "../../model/task";
4
4
  import { GanttChartContext } from "../../ganttchart-engine";
5
- import { ChartHandler, ChartHandlerResult } from "./handler";
6
- export declare class ConnectorDotsHandler extends ChartHandler {
5
+ import { GanttChartHandler, ChartHandlerResult } from "./handler";
6
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
7
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
8
+ export declare class ConnectorDotsHandler extends GanttChartHandler {
7
9
  #private;
8
10
  connectorDotsTask$: BehaviorSubject<Task | null>;
9
- constructor(gc: GanttChartContext);
10
- onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
11
- onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
12
- onKeyDown(key: string, event: any): Promise<ChartHandlerResult>;
13
- onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
14
- onMouseLeave(p: Point, event: any): Promise<ChartHandlerResult>;
11
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
12
+ onMouseMove(p: Point, event: MouseEvent): Promise<ChartHandlerResult>;
13
+ onMouseDown(p: Point, ctrl: boolean, event: MouseEvent): Promise<ChartHandlerResult>;
14
+ onKeyDown(key: string, event: KeyboardEvent): Promise<ChartHandlerResult>;
15
+ onMouseUp(p: Point, ctrl: boolean, event: MouseEvent): Promise<ChartHandlerResult>;
16
+ onMouseLeave(p: Point, event: MouseEvent): Promise<ChartHandlerResult>;
15
17
  onRedrawn(): void;
16
18
  }
@@ -0,0 +1,32 @@
1
+ import { Point, Cursor } from "../../../common/common";
2
+ import { ChartHandlerResult } from "../../../common/handler-result";
3
+ import { GanttChartContext } from "../../ganttchart-engine";
4
+ import { GanttChartHandler } from "./handler";
5
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
6
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
7
+ /**
8
+ * Abstract base class for Gantt chart drag-operation handlers.
9
+ *
10
+ * Encapsulates the common drag lifecycle: hit-test on mouseDown,
11
+ * track position on mouseMove, apply result on mouseUp, draw preview on redraw.
12
+ *
13
+ * Snap handlers (resize, progress) set `enableHoverDetection = true` to show
14
+ * a cursor when hovering over snap zones before the drag starts.
15
+ */
16
+ export declare abstract class GanttDragHandler<TTarget> extends GanttChartHandler {
17
+ protected startX: number;
18
+ protected lastP: Point;
19
+ protected target: TTarget | null;
20
+ protected dragCursor: Cursor;
21
+ protected enableHoverDetection: boolean;
22
+ protected hoverCursor: Cursor;
23
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
24
+ protected abstract hitTest(p: Point): TTarget | null;
25
+ protected abstract onDragEnd(target: TTarget, p: Point): void;
26
+ protected abstract onDragDraw(target: TTarget): void;
27
+ protected onDragStart(target: TTarget, p: Point): void;
28
+ onMouseMove(p: Point, event: MouseEvent): Promise<ChartHandlerResult>;
29
+ onMouseDown(p: Point, ctrl: boolean, event: MouseEvent): Promise<ChartHandlerResult>;
30
+ onMouseUp(p: Point, ctrl: boolean, event: MouseEvent): Promise<ChartHandlerResult>;
31
+ onRedrawn(): void;
32
+ }
@@ -3,10 +3,13 @@ import { BaseChartHandlerBase } from "../../../common/base-chart-handler";
3
3
  import { Task } from "../../model/task";
4
4
  import { GanttChartContext } from "../../ganttchart-engine";
5
5
  import { TaskPart } from "../../model/task-part";
6
- import { ChartTooltipLine } from "../tooltip/chart-tooltip-renderer";
7
- export declare abstract class ChartHandler extends BaseChartHandlerBase {
6
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
7
+ import { GanttTooltipLine, GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
8
+ /** Finds the task whose row contains the given point. Optional filter to skip certain tasks. */
9
+ export declare function findTaskRowAtPoint(p: Point, gc: GanttChartContext, filter?: (task: Task) => boolean): Task | null;
10
+ export declare abstract class GanttChartHandler extends BaseChartHandlerBase {
8
11
  #private;
9
- constructor(gc: GanttChartContext);
12
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
10
13
  protected getTaskRowAt(p: Point): Task | null;
11
14
  protected getTaskAt(p: Point): TaskAt | null;
12
15
  protected getShapeHeight(task: Task): number;
@@ -16,7 +19,7 @@ export declare abstract class ChartHandler extends BaseChartHandlerBase {
16
19
  protected drawTaskProgressHighlight(task: Task, x1: number, x2: number): void;
17
20
  protected drawTaskHighlightX1X2(task: Task, x1: number, x2: number): void;
18
21
  protected drawTaskHighlight(task: Task): void;
19
- protected drawTooltip(forTasks: Task[], startX: number, title: string, lines: ChartTooltipLine[]): void;
22
+ protected drawTooltip(forTasks: Task[], startX: number, title: string, lines: GanttTooltipLine[]): void;
20
23
  }
21
24
  export { ChartHandlerResult } from "../../../common/handler-result";
22
25
  export interface TaskAt {
@@ -1,14 +1,9 @@
1
- import { Subject } from "rxjs";
2
1
  import { Point } from "../../../common/common";
2
+ import { BaseChartHandlers } from "../../../common/base-chart-handlers";
3
3
  import { GanttChartContext } from "../../ganttchart-engine";
4
- import { ClassWithListeners } from "../../../common/class-with-listeners";
5
- export declare class ChartHandlers extends ClassWithListeners {
4
+ import { GanttChartHandler } from "./handler";
5
+ export declare class GanttChartHandlers extends BaseChartHandlers<GanttChartHandler> {
6
6
  #private;
7
- operationComplete$: Subject<void>;
8
- redraw$: Subject<void>;
9
- constructor(gc: GanttChartContext, chartElement: any);
10
- getMousePosition(event: any): Point;
11
- init(chartElement: any, canvas: any): void;
12
- clear(): void;
13
- private isWithinScrollbar;
7
+ constructor(gc: GanttChartContext, chartElement: HTMLElement);
8
+ protected onAfterContextMenu(p: Point, event: MouseEvent): void;
14
9
  }
@@ -1,11 +1,13 @@
1
1
  import { Point } from "../../../common/common";
2
2
  import { GanttChartContext } from "../../ganttchart-engine";
3
- import { ChartHandler, ChartHandlerResult } from "./handler";
4
- export declare class MoveMilestoneHandler extends ChartHandler {
3
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
4
+ import { TaskAt } from "./handler";
5
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
6
+ import { GanttDragHandler } from "./gantt-drag-handler";
7
+ export declare class MoveMilestoneHandler extends GanttDragHandler<TaskAt> {
5
8
  #private;
6
- constructor(gc: GanttChartContext);
7
- onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
8
- onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
9
- onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
10
- onRedrawn(): void;
9
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
10
+ protected hitTest(p: Point): TaskAt | null;
11
+ protected onDragEnd(target: TaskAt, p: Point): void;
12
+ protected onDragDraw(target: TaskAt): void;
11
13
  }
@@ -1,11 +1,13 @@
1
1
  import { Point } from "../../../common/common";
2
2
  import { GanttChartContext } from "../../ganttchart-engine";
3
- import { ChartHandler, ChartHandlerResult } from "./handler";
4
- export declare class MoveTaskPartHandler extends ChartHandler {
3
+ import { TaskAt } from "./handler";
4
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
5
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
6
+ import { GanttDragHandler } from "./gantt-drag-handler";
7
+ export declare class MoveTaskPartHandler extends GanttDragHandler<TaskAt> {
5
8
  #private;
6
- constructor(gc: GanttChartContext);
7
- onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
8
- onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
9
- onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
10
- onRedrawn(): void;
9
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
10
+ protected hitTest(p: Point): TaskAt | null;
11
+ protected onDragEnd(target: TaskAt, p: Point): void;
12
+ protected onDragDraw(target: TaskAt): void;
11
13
  }
@@ -1,11 +1,22 @@
1
1
  import { Point } from "../../../common/common";
2
+ import { Task } from "../../model/task";
3
+ import { TaskPart } from "../../model/task-part";
2
4
  import { GanttChartContext } from "../../ganttchart-engine";
3
- import { ChartHandler, ChartHandlerResult } from "./handler";
4
- export declare class ResizeTaskPartHandler extends ChartHandler {
5
+ import { GanttTooltipRenderer } from "../tooltip/chart-tooltip-renderer";
6
+ import { GanttTasksRenderer } from "../renderers/chart-tasks-renderer";
7
+ import { GanttDragHandler } from "./gantt-drag-handler";
8
+ export declare class ResizeTaskPartHandler extends GanttDragHandler<TaskSnapAt> {
5
9
  #private;
6
- constructor(gc: GanttChartContext);
7
- onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
8
- onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
9
- onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
10
- onRedrawn(): void;
10
+ constructor(gc: GanttChartContext, tasksRenderer: GanttTasksRenderer, tooltipRenderer: GanttTooltipRenderer);
11
+ protected hitTest(p: Point): TaskSnapAt | null;
12
+ protected onDragEnd(target: TaskSnapAt, p: Point): void;
13
+ protected onDragDraw(target: TaskSnapAt): void;
11
14
  }
15
+ interface TaskSnapAt {
16
+ task: Task;
17
+ taskPart: TaskPart;
18
+ x1: number;
19
+ x2: number;
20
+ deltaX: number;
21
+ }
22
+ export {};