@timelinekit/core 1.0.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 (208) hide show
  1. package/LICENSE +46 -0
  2. package/README.md +0 -0
  3. package/dist/__tests__/common/functions.test.d.ts +1 -0
  4. package/dist/__tests__/critical-path-calculator.test.d.ts +1 -0
  5. package/dist/__tests__/ganttchart/clipboard.test.d.ts +1 -0
  6. package/dist/__tests__/ganttchart/critical-path-calculator.test.d.ts +1 -0
  7. package/dist/__tests__/ganttchart/export/data-exporter.test.d.ts +1 -0
  8. package/dist/__tests__/ganttchart/model/lag.test.d.ts +1 -0
  9. package/dist/__tests__/ganttchart/model/length.test.d.ts +1 -0
  10. package/dist/__tests__/ganttchart/model/resource-list.test.d.ts +1 -0
  11. package/dist/__tests__/ganttchart/model/resource.test.d.ts +1 -0
  12. package/dist/__tests__/ganttchart/model/task-list.test.d.ts +1 -0
  13. package/dist/__tests__/ganttchart/model/task-part.test.d.ts +1 -0
  14. package/dist/__tests__/ganttchart/model/task-resource.test.d.ts +1 -0
  15. package/dist/__tests__/ganttchart/model/task-warnings.test.d.ts +1 -0
  16. package/dist/__tests__/ganttchart/model/task.test.d.ts +1 -0
  17. package/dist/__tests__/ganttchart/model/work.test.d.ts +1 -0
  18. package/dist/__tests__/ganttchart/model/working-calendar.test.d.ts +1 -0
  19. package/dist/__tests__/ganttchart/performance.test.d.ts +1 -0
  20. package/dist/__tests__/ganttchart/scroll-and-zoom.test.d.ts +1 -0
  21. package/dist/__tests__/ganttchart/task-interactions.test.d.ts +1 -0
  22. package/dist/__tests__/ganttchart/undo-manager.test.d.ts +1 -0
  23. package/dist/__tests__/licensing/features.test.d.ts +1 -0
  24. package/dist/__tests__/licensing/license-key.test.d.ts +1 -0
  25. package/dist/__tests__/licensing/license-manager.test.d.ts +1 -0
  26. package/dist/__tests__/licensing/watermark.test.d.ts +1 -0
  27. package/dist/__tests__/model/lag.test.d.ts +1 -0
  28. package/dist/__tests__/model/length.test.d.ts +1 -0
  29. package/dist/__tests__/model/resource-list.test.d.ts +1 -0
  30. package/dist/__tests__/model/resource.test.d.ts +1 -0
  31. package/dist/__tests__/model/task-list.test.d.ts +1 -0
  32. package/dist/__tests__/model/task-part.test.d.ts +1 -0
  33. package/dist/__tests__/model/task-resource.test.d.ts +1 -0
  34. package/dist/__tests__/model/task-warnings.test.d.ts +1 -0
  35. package/dist/__tests__/model/task.test.d.ts +1 -0
  36. package/dist/__tests__/model/work.test.d.ts +1 -0
  37. package/dist/__tests__/model/working-calendar.test.d.ts +1 -0
  38. package/dist/__tests__/resourcescheduler/export/scheduler-data-exporter.test.d.ts +1 -0
  39. package/dist/__tests__/resourcescheduler/model/scheduler-data.test.d.ts +1 -0
  40. package/dist/__tests__/resourcescheduler/model/scheduler-event.test.d.ts +1 -0
  41. package/dist/__tests__/resourcescheduler/model/scheduler-resource.test.d.ts +1 -0
  42. package/dist/__tests__/resourcescheduler/multi-select.test.d.ts +1 -0
  43. package/dist/__tests__/resourcescheduler/performance.test.d.ts +1 -0
  44. package/dist/__tests__/resourcescheduler/serialization.test.d.ts +1 -0
  45. package/dist/__tests__/undo-manager.test.d.ts +1 -0
  46. package/dist/common/auto-scroll.d.ts +10 -0
  47. package/dist/common/base-background-renderer.d.ts +17 -0
  48. package/dist/common/base-chart-handler.d.ts +53 -0
  49. package/dist/common/base-chart-scroll-handler.d.ts +45 -0
  50. package/dist/common/base-divider.d.ts +21 -0
  51. package/dist/common/base-header-renderer.d.ts +23 -0
  52. package/dist/common/base-image-exporter.d.ts +6 -0
  53. package/dist/common/base-markers-renderer.d.ts +15 -0
  54. package/dist/common/base-pdf-exporter.d.ts +11 -0
  55. package/dist/common/calc.d.ts +2 -0
  56. package/dist/common/class-with-listeners.d.ts +7 -0
  57. package/dist/common/common.d.ts +60 -0
  58. package/dist/common/custom-property.d.ts +12 -0
  59. package/dist/common/drawing.d.ts +2 -0
  60. package/dist/common/export-utils.d.ts +60 -0
  61. package/dist/common/functions.d.ts +25 -0
  62. package/dist/common/handler-result.d.ts +8 -0
  63. package/dist/common/scrollbar-utils.d.ts +5 -0
  64. package/dist/common/text.d.ts +24 -0
  65. package/dist/ganttchart/chart/chart-scroll-handler.d.ts +5 -0
  66. package/dist/ganttchart/chart/chart-time-axis.d.ts +32 -0
  67. package/dist/ganttchart/chart/chart.d.ts +7 -0
  68. package/dist/ganttchart/chart/handlers/add-task-part.d.ts +11 -0
  69. package/dist/ganttchart/chart/handlers/connector-dots-handler.d.ts +16 -0
  70. package/dist/ganttchart/chart/handlers/handler.d.ts +32 -0
  71. package/dist/ganttchart/chart/handlers/handlers.d.ts +14 -0
  72. package/dist/ganttchart/chart/handlers/move-milestone.d.ts +11 -0
  73. package/dist/ganttchart/chart/handlers/move-task-part.d.ts +11 -0
  74. package/dist/ganttchart/chart/handlers/resize-task-part.d.ts +11 -0
  75. package/dist/ganttchart/chart/handlers/select-link.d.ts +11 -0
  76. package/dist/ganttchart/chart/handlers/select-task.d.ts +22 -0
  77. package/dist/ganttchart/chart/handlers/set-task-progress.d.ts +11 -0
  78. package/dist/ganttchart/chart/renderers/chart-background-renderer.d.ts +8 -0
  79. package/dist/ganttchart/chart/renderers/chart-header-renderer.d.ts +7 -0
  80. package/dist/ganttchart/chart/renderers/chart-links-renderer.d.ts +7 -0
  81. package/dist/ganttchart/chart/renderers/chart-markers-renderer.d.ts +7 -0
  82. package/dist/ganttchart/chart/renderers/chart-tasks-renderer.d.ts +14 -0
  83. package/dist/ganttchart/chart/renderers/renderer-base.d.ts +9 -0
  84. package/dist/ganttchart/chart/task-link.calculator.d.ts +16 -0
  85. package/dist/ganttchart/chart/task-progress-calculator.d.ts +9 -0
  86. package/dist/ganttchart/chart/tooltip/chart-tooltip-renderer.d.ts +11 -0
  87. package/dist/ganttchart/clipboard.d.ts +32 -0
  88. package/dist/ganttchart/critical-path-calculator.d.ts +7 -0
  89. package/dist/ganttchart/divider/divider.d.ts +5 -0
  90. package/dist/ganttchart/export/data-exporter.d.ts +30 -0
  91. package/dist/ganttchart/export/export-common.d.ts +23 -0
  92. package/dist/ganttchart/export/image-exporter.d.ts +7 -0
  93. package/dist/ganttchart/export/pdf-exporter.d.ts +12 -0
  94. package/dist/ganttchart/ganttchart-engine.d.ts +172 -0
  95. package/dist/ganttchart/locale.d.ts +66 -0
  96. package/dist/ganttchart/model/custom-property.d.ts +1 -0
  97. package/dist/ganttchart/model/lag.d.ts +16 -0
  98. package/dist/ganttchart/model/length.d.ts +16 -0
  99. package/dist/ganttchart/model/marker.d.ts +7 -0
  100. package/dist/ganttchart/model/rate.d.ts +9 -0
  101. package/dist/ganttchart/model/resource-list.d.ts +16 -0
  102. package/dist/ganttchart/model/resource.d.ts +29 -0
  103. package/dist/ganttchart/model/sheet-column.d.ts +27 -0
  104. package/dist/ganttchart/model/task-filters.d.ts +14 -0
  105. package/dist/ganttchart/model/task-link.d.ts +22 -0
  106. package/dist/ganttchart/model/task-list-adapter.d.ts +28 -0
  107. package/dist/ganttchart/model/task-list.d.ts +65 -0
  108. package/dist/ganttchart/model/task-part.d.ts +39 -0
  109. package/dist/ganttchart/model/task-resource.d.ts +18 -0
  110. package/dist/ganttchart/model/task-warnings.d.ts +15 -0
  111. package/dist/ganttchart/model/task.d.ts +131 -0
  112. package/dist/ganttchart/model/work.d.ts +17 -0
  113. package/dist/ganttchart/model/working-calendar.d.ts +32 -0
  114. package/dist/ganttchart/recalculator.d.ts +6 -0
  115. package/dist/ganttchart/sheet/editors/cell-editor.d.ts +23 -0
  116. package/dist/ganttchart/sheet/editors/currency-editor.d.ts +6 -0
  117. package/dist/ganttchart/sheet/editors/date-editor.d.ts +6 -0
  118. package/dist/ganttchart/sheet/editors/decimal-editor.d.ts +6 -0
  119. package/dist/ganttchart/sheet/editors/dialog-editor.d.ts +17 -0
  120. package/dist/ganttchart/sheet/editors/input-editor.d.ts +19 -0
  121. package/dist/ganttchart/sheet/editors/integer-editor.d.ts +6 -0
  122. package/dist/ganttchart/sheet/editors/length-editor.d.ts +10 -0
  123. package/dist/ganttchart/sheet/editors/percent-editor.d.ts +6 -0
  124. package/dist/ganttchart/sheet/editors/text-editor.d.ts +5 -0
  125. package/dist/ganttchart/sheet/editors/work-editor.d.ts +7 -0
  126. package/dist/ganttchart/sheet/renderers/sheet-cell-renderer.d.ts +5 -0
  127. package/dist/ganttchart/sheet/renderers/sheet-icons-cell-renderer.d.ts +10 -0
  128. package/dist/ganttchart/sheet/renderers/sheet-name-cell-renderer.d.ts +9 -0
  129. package/dist/ganttchart/sheet/renderers/sheet-resources-cell-renderer.d.ts +9 -0
  130. package/dist/ganttchart/sheet/sheet-keyboard-navigation.d.ts +26 -0
  131. package/dist/ganttchart/sheet/sheet-rows-selection.d.ts +24 -0
  132. package/dist/ganttchart/sheet/sheet.d.ts +18 -0
  133. package/dist/ganttchart/themes/classic-theme.d.ts +4 -0
  134. package/dist/ganttchart/themes/dark-theme.d.ts +4 -0
  135. package/dist/ganttchart/themes/light-theme.d.ts +4 -0
  136. package/dist/ganttchart/themes/modern-theme.d.ts +4 -0
  137. package/dist/ganttchart/themes/theme.d.ts +129 -0
  138. package/dist/ganttchart/undo-manager.d.ts +13 -0
  139. package/dist/index.d.ts +61 -0
  140. package/dist/index.js +1 -0
  141. package/dist/licensing/features.d.ts +21 -0
  142. package/dist/licensing/license-key.d.ts +7 -0
  143. package/dist/licensing/license-manager.d.ts +13 -0
  144. package/dist/licensing/watermark.d.ts +1 -0
  145. package/dist/locales/cs.d.ts +2 -0
  146. package/dist/locales/de.d.ts +2 -0
  147. package/dist/locales/en.d.ts +1 -0
  148. package/dist/locales/es.d.ts +2 -0
  149. package/dist/locales/fr.d.ts +2 -0
  150. package/dist/locales/it.d.ts +2 -0
  151. package/dist/locales/ja.d.ts +2 -0
  152. package/dist/locales/ko.d.ts +2 -0
  153. package/dist/locales/nl.d.ts +2 -0
  154. package/dist/locales/pl.d.ts +2 -0
  155. package/dist/locales/pt.d.ts +2 -0
  156. package/dist/locales/ru.d.ts +2 -0
  157. package/dist/locales/sv.d.ts +2 -0
  158. package/dist/locales/zh.d.ts +2 -0
  159. package/dist/resourcescheduler/chart/handlers/add-event.d.ts +12 -0
  160. package/dist/resourcescheduler/chart/handlers/move-event.d.ts +12 -0
  161. package/dist/resourcescheduler/chart/handlers/resize-event.d.ts +12 -0
  162. package/dist/resourcescheduler/chart/handlers/scheduler-handler.d.ts +23 -0
  163. package/dist/resourcescheduler/chart/handlers/scheduler-handlers.d.ts +18 -0
  164. package/dist/resourcescheduler/chart/handlers/select-event.d.ts +26 -0
  165. package/dist/resourcescheduler/chart/renderers/scheduler-background-renderer.d.ts +8 -0
  166. package/dist/resourcescheduler/chart/renderers/scheduler-events-renderer.d.ts +7 -0
  167. package/dist/resourcescheduler/chart/renderers/scheduler-header-renderer.d.ts +7 -0
  168. package/dist/resourcescheduler/chart/renderers/scheduler-markers-renderer.d.ts +7 -0
  169. package/dist/resourcescheduler/chart/renderers/scheduler-renderer-base.d.ts +9 -0
  170. package/dist/resourcescheduler/chart/scheduler-chart-scroll-handler.d.ts +5 -0
  171. package/dist/resourcescheduler/chart/scheduler-chart.d.ts +9 -0
  172. package/dist/resourcescheduler/chart/tooltip/scheduler-tooltip-renderer.d.ts +13 -0
  173. package/dist/resourcescheduler/clipboard.d.ts +18 -0
  174. package/dist/resourcescheduler/divider/scheduler-divider.d.ts +5 -0
  175. package/dist/resourcescheduler/export/scheduler-data-exporter.d.ts +23 -0
  176. package/dist/resourcescheduler/export/scheduler-export-common.d.ts +15 -0
  177. package/dist/resourcescheduler/export/scheduler-image-exporter.d.ts +6 -0
  178. package/dist/resourcescheduler/export/scheduler-pdf-exporter.d.ts +12 -0
  179. package/dist/resourcescheduler/model/scheduler-data-adapter.d.ts +21 -0
  180. package/dist/resourcescheduler/model/scheduler-data.d.ts +52 -0
  181. package/dist/resourcescheduler/model/scheduler-event.d.ts +31 -0
  182. package/dist/resourcescheduler/model/scheduler-resource.d.ts +35 -0
  183. package/dist/resourcescheduler/resourcescheduler-engine.d.ts +211 -0
  184. package/dist/resourcescheduler/sheet/renderers/scheduler-icon-cell-renderer.d.ts +6 -0
  185. package/dist/resourcescheduler/sheet/scheduler-sheet.d.ts +21 -0
  186. package/dist/styles/gc.css +1 -0
  187. package/dist/table/editors/cell-editor.d.ts +23 -0
  188. package/dist/table/editors/currency-editor.d.ts +7 -0
  189. package/dist/table/editors/date-editor.d.ts +9 -0
  190. package/dist/table/editors/decimal-editor.d.ts +7 -0
  191. package/dist/table/editors/dialog-editor.d.ts +17 -0
  192. package/dist/table/editors/input-editor.d.ts +19 -0
  193. package/dist/table/editors/integer-editor.d.ts +7 -0
  194. package/dist/table/editors/percent-editor.d.ts +7 -0
  195. package/dist/table/editors/text-editor.d.ts +6 -0
  196. package/dist/table/renderers/table-cell-renderer.d.ts +8 -0
  197. package/dist/table/table-column.d.ts +32 -0
  198. package/dist/table/table-context.d.ts +49 -0
  199. package/dist/table/table-data-source.d.ts +30 -0
  200. package/dist/table/table-keyboard-navigation.d.ts +25 -0
  201. package/dist/table/table-rows-selection.d.ts +13 -0
  202. package/dist/table/table.d.ts +51 -0
  203. package/dist/table/tree-table-keyboard-navigation.d.ts +16 -0
  204. package/dist/table/tree-table.d.ts +17 -0
  205. package/package.json +99 -0
  206. package/styles/_common.scss +405 -0
  207. package/styles/gc.scss +82 -0
  208. package/styles/rs.scss +32 -0
package/LICENSE ADDED
@@ -0,0 +1,46 @@
1
+ TimelineKit Commercial License
2
+
3
+ Copyright (c) 2025 TimelineKit. All rights reserved.
4
+
5
+ This software is licensed under the TimelineKit Commercial License.
6
+
7
+ 1. FREE TIER
8
+
9
+ You may use the Free tier of TimelineKit in any project (including commercial
10
+ projects) without purchasing a license. The Free tier includes core Gantt
11
+ chart functionality with a watermark overlay.
12
+
13
+ 2. PRO TIER
14
+
15
+ A paid license key is required to unlock Pro features and remove the
16
+ watermark. Pro features include: Critical Path, Baseline, Resource
17
+ Management, Working Calendar, Markers, Filtering, Undo/Redo, Clipboard,
18
+ Constraints, Custom Properties, Resource Scheduler, Export, Additional
19
+ Themes, and Additional Locales.
20
+
21
+ 3. PERPETUAL LICENSE
22
+
23
+ A purchased license is perpetual for the major version it was purchased for.
24
+ It never expires and does not require renewal to continue using the same
25
+ major version.
26
+
27
+ If a new major version is released during the active subscription period,
28
+ the license also covers that new version — perpetually.
29
+
30
+ If a new major version is released after the subscription period has ended,
31
+ a subscription renewal is required to use that new version.
32
+
33
+ 4. RESTRICTIONS
34
+
35
+ You may not:
36
+ - Redistribute, sublicense, or resell the Pro software or license keys
37
+ - Remove or circumvent the licensing mechanism or watermark
38
+ - Use a single license key across multiple organizations
39
+
40
+ 5. NO WARRANTY
41
+
42
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43
+ IMPLIED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR
44
+ OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
45
+
46
+ For questions, contact support@timelinekit.com.
package/README.md ADDED
File without changes
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ export declare class AutoScrollHelper {
2
+ #private;
3
+ constructor(element: any, onScroll: (dx: number, dy: number) => void, options?: {
4
+ enableVertical?: boolean;
5
+ getContentTop?: () => number;
6
+ });
7
+ start(): void;
8
+ stop(): void;
9
+ updateMousePosition(clientX: number, clientY: number): void;
10
+ }
@@ -0,0 +1,17 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
3
+ import { GanttChartTheme } from "../ganttchart/themes/theme";
4
+ import { WorkingCalendar } from "../ganttchart/model/working-calendar";
5
+ export interface BackgroundRendererContext {
6
+ timeline: ChartTimeline;
7
+ theme$: BehaviorSubject<GanttChartTheme>;
8
+ showGridLines$: BehaviorSubject<boolean>;
9
+ calendar: WorkingCalendar;
10
+ }
11
+ export declare abstract class BaseBackgroundRenderer {
12
+ #private;
13
+ constructor(ctx: BackgroundRendererContext);
14
+ render(canvas: any): void;
15
+ protected abstract getContentBottom(canvasHeight: number): number;
16
+ protected abstract drawHorizontalGridLines(canvas: any, ctx: any): void;
17
+ }
@@ -0,0 +1,53 @@
1
+ import { Subject } from "rxjs";
2
+ import { Cursor, Point } from "./common";
3
+ import { ChartHandlerResult } from "./handler-result";
4
+ import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
5
+ import { WorkingCalendar } from "../ganttchart/model/working-calendar";
6
+ /**
7
+ * Interface for the context needed by chart handlers.
8
+ * Both GanttChartContext and ResourceSchedulerContext satisfy this.
9
+ */
10
+ export interface ChartHandlerContext {
11
+ timeline: ChartTimeline;
12
+ chartCursor$: Subject<Cursor>;
13
+ canEdit: boolean;
14
+ calendar: WorkingCalendar;
15
+ }
16
+ /**
17
+ * Shared base class for chart interaction handlers.
18
+ *
19
+ * Provides:
20
+ * - Handler lifecycle (isInOperation, operationComplete$, flags)
21
+ * - Abstract event methods with default no-op implementations
22
+ * - Cell alignment utilities (getCellAt, getCellEndAligned, getEndTimeAligned)
23
+ * - Cursor management (setCursor)
24
+ */
25
+ export declare abstract class BaseChartHandlerBase {
26
+ #private;
27
+ ignoreRightButton: boolean;
28
+ ignoreWhenCannotEdit: boolean;
29
+ alwaysHandleEvents: boolean;
30
+ protected canvas: any;
31
+ operationComplete$: Subject<void>;
32
+ get canEdit(): boolean;
33
+ constructor(ctx: ChartHandlerContext);
34
+ set isInOperation(value: boolean);
35
+ get isInOperation(): boolean;
36
+ onMouseMove(p: Point, event: any): Promise<ChartHandlerResult>;
37
+ onMouseDown(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
38
+ onMouseUp(p: Point, ctrl: boolean, event: any): Promise<ChartHandlerResult>;
39
+ onKeyDown(key: string, event: any): Promise<ChartHandlerResult>;
40
+ onMouseLeave(p: Point, event: any): Promise<ChartHandlerResult>;
41
+ onContextMenu(p: Point, event: any): ChartHandlerResult;
42
+ onDblClick(p: Point, event: any): ChartHandlerResult;
43
+ onDocumentMouseMove(p: Point, event: any): ChartHandlerResult;
44
+ onDocumentMouseUp(p: Point, event: any): ChartHandlerResult;
45
+ clear(): void;
46
+ init(canvas: any): void;
47
+ onRedrawn(): void;
48
+ onBackgroundRedrawn(): void;
49
+ protected getCellAt(p: Point): number;
50
+ protected getCellEndAligned(p: Point): number;
51
+ protected getEndTimeAligned(cellEndAligned: number): Date;
52
+ protected setCursor(cursor: Cursor): void;
53
+ }
@@ -0,0 +1,45 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { DateRange } from "./common";
3
+ import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
4
+ import { GanttChartTheme } from "../ganttchart/themes/theme";
5
+ /**
6
+ * Interface for the context needed by the scroll handler.
7
+ * Both GanttChartContext and ResourceSchedulerContext satisfy this.
8
+ */
9
+ export interface ScrollHandlerContext {
10
+ timeline: ChartTimeline;
11
+ projectTimeline$: BehaviorSubject<DateRange>;
12
+ theme$: BehaviorSubject<GanttChartTheme>;
13
+ dividerResizing$: BehaviorSubject<boolean>;
14
+ autoScrolling: boolean;
15
+ }
16
+ /**
17
+ * Options for constructing a BaseChartScrollHandler.
18
+ */
19
+ export interface ScrollHandlerOptions {
20
+ /** Returns the earliest content start time, or null if no content. */
21
+ getMinStartTime: () => Date | null;
22
+ /** Returns the latest content end time, or null if no content. */
23
+ getMaxEndTime: () => Date | null;
24
+ }
25
+ /**
26
+ * Shared horizontal scroll handler for chart timeline components.
27
+ *
28
+ * Manages:
29
+ * - Native scrollbar synchronization via an invisible inner div
30
+ * - Header grab-to-pan interaction
31
+ * - Zoom center preservation
32
+ * - Scroll bounds calculation based on project timeline and content extents
33
+ *
34
+ * Data flow:
35
+ * User scrolls (native scrollbar) → #onScroll → visibleStartTime$.next()
36
+ * User drags header → #onMouseMove → visibleStartTime$.next()
37
+ * visibleStartTime$ changes externally → #onVisibleStartTimeChanged → #updateScrollbar
38
+ * Zoom changes → #onZoomChanged → recenters on #centerDate → visibleStartTime$.next()
39
+ */
40
+ export declare class BaseChartScrollHandler {
41
+ #private;
42
+ constructor(ctx: ScrollHandlerContext, chartElement: any, _canvas: any, inner: any, options: ScrollHandlerOptions);
43
+ handleResize(): void;
44
+ destroy(): void;
45
+ }
@@ -0,0 +1,21 @@
1
+ import { BehaviorSubject, Subject } from "rxjs";
2
+ import { ClassWithListeners } from "./class-with-listeners";
3
+ /**
4
+ * Interface for the context needed by the divider.
5
+ * Both GanttChartContext and ResourceSchedulerContext satisfy this.
6
+ */
7
+ export interface DividerContext {
8
+ dividerResizing$: BehaviorSubject<boolean>;
9
+ dividerPositionChanged$: Subject<void>;
10
+ }
11
+ export interface DividerOptions {
12
+ /** Returns the initial/default sheet width. Called once on construction. */
13
+ getDefaultSheetWidth: () => number;
14
+ /** Called when wrapper is resized. Returns updated calculated sheet width, or null to keep current. */
15
+ onWrapperResized?: (width: number, height: number) => number | null;
16
+ }
17
+ export declare class BaseDivider extends ClassWithListeners {
18
+ #private;
19
+ constructor(ctx: DividerContext, wrapperElement: any, sheetElement: any, dividerElement: any, chartElement: any, options: DividerOptions);
20
+ destroy(): void;
21
+ }
@@ -0,0 +1,23 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
3
+ import { GanttChartTheme } from "../ganttchart/themes/theme";
4
+ /**
5
+ * Interface for the context needed by the header renderer.
6
+ * Both GanttChartContext and ResourceSchedulerContext satisfy this.
7
+ */
8
+ export interface HeaderRendererContext {
9
+ timeline: ChartTimeline;
10
+ theme$: BehaviorSubject<GanttChartTheme>;
11
+ settings: {
12
+ theme: GanttChartTheme;
13
+ };
14
+ }
15
+ /**
16
+ * Shared chart timeline header renderer.
17
+ * Draws the two-row header with axis labels and grid dividers.
18
+ */
19
+ export declare class BaseHeaderRenderer {
20
+ #private;
21
+ constructor(ctx: HeaderRendererContext);
22
+ render(canvas: any): void;
23
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseExportDimensions, ExportRendererBase } from "./export-utils";
2
+ export declare class BaseImageExporter<TDims extends BaseExportDimensions> {
3
+ #private;
4
+ constructor(renderer: ExportRendererBase<TDims>);
5
+ exportToImage(): Promise<Blob>;
6
+ }
@@ -0,0 +1,15 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
3
+ import { GanttChartTheme } from "../ganttchart/themes/theme";
4
+ import { Marker } from "../ganttchart/model/marker";
5
+ export interface MarkersRendererContext {
6
+ timeline: ChartTimeline;
7
+ theme$: BehaviorSubject<GanttChartTheme>;
8
+ showTodayLine$: BehaviorSubject<boolean>;
9
+ markers$: BehaviorSubject<Marker[]>;
10
+ }
11
+ export declare class BaseMarkersRenderer {
12
+ #private;
13
+ constructor(ctx: MarkersRendererContext, getBottom: (canvas: any) => number);
14
+ render(canvas: any): void;
15
+ }
@@ -0,0 +1,11 @@
1
+ import { BaseExportDimensions, ExportRendererBase, BasePdfExportOptions } from "./export-utils";
2
+ export declare abstract class BasePdfExporter<TDims extends BaseExportDimensions> {
3
+ #private;
4
+ constructor(renderer: ExportRendererBase<TDims>);
5
+ protected get renderer(): ExportRendererBase<TDims>;
6
+ protected abstract computeVerticalPageBreaks(dims: TDims, contentHeightPx: number, headerHeight: number): {
7
+ srcY: number;
8
+ height: number;
9
+ }[];
10
+ exportToPdf(options?: BasePdfExportOptions): Promise<Blob>;
11
+ }
@@ -0,0 +1,2 @@
1
+ import { Point } from "./common";
2
+ export declare function isPointInsideThickLine(p1: Point, p2: Point, w: number, p: Point): boolean;
@@ -0,0 +1,7 @@
1
+ export declare class ClassWithListeners {
2
+ private listeners;
3
+ private observer;
4
+ startWatching(element: any): void;
5
+ protected addDocumentListener<K extends keyof DocumentEventMap>(type: K, handler: (event: DocumentEventMap[K]) => void): void;
6
+ destroy(): void;
7
+ }
@@ -0,0 +1,60 @@
1
+ export declare class Point {
2
+ x: number;
3
+ y: number;
4
+ constructor(x: number, y: number);
5
+ isWithin(p: Point, tolerance: number): boolean;
6
+ isZero(): boolean;
7
+ clone(): Point;
8
+ scaled(scale: number): Point;
9
+ toString(): string;
10
+ static fromString(str: string): Point;
11
+ moveToRaster(): Point;
12
+ }
13
+ export declare class Rect {
14
+ x: number;
15
+ y: number;
16
+ width: number;
17
+ height: number;
18
+ constructor(x: number, y: number, width: number, height: number);
19
+ contains(p: Point): boolean;
20
+ fullyContains(rect: Rect): boolean;
21
+ get middle(): Point;
22
+ get bottom(): number;
23
+ get right(): number;
24
+ clone(): Rect;
25
+ equals(r: Rect): boolean;
26
+ scaled(scale: number): Rect;
27
+ scaledAt(scale: number): Rect;
28
+ toString(): string;
29
+ static fromString(str: string): Rect;
30
+ moveToRaster(): Rect;
31
+ }
32
+ export type HorizontalAlign = 'Left' | 'Center' | 'Right';
33
+ export type VerticalAlign = 'Top' | 'Center' | 'Bottom';
34
+ export interface HyperlinkRect {
35
+ x: number;
36
+ y: number;
37
+ width: number;
38
+ height: number;
39
+ url: string;
40
+ }
41
+ export declare const defaultFontSize = 11;
42
+ export declare const defaultFontName = "Arial";
43
+ export declare class Font {
44
+ name: string;
45
+ size: number;
46
+ weight: number | null;
47
+ italic: boolean;
48
+ toString(scale: number): string;
49
+ static fromObject(obj: any): Font;
50
+ static from(name: string | null, size: number | null): Font;
51
+ clone(): Font;
52
+ }
53
+ export type Cursor = 'default' | 'pointer' | 'all-scroll' | 'ew-resize' | 'ns-resize' | 'nwse-resize' | 'nesw-resize' | 'crosshair' | 'grabbing';
54
+ export declare const seriesPalette: string[];
55
+ export declare class DateRange {
56
+ #private;
57
+ get startDate(): Date;
58
+ get endDate(): Date;
59
+ constructor(startDate: Date, endDate: Date);
60
+ }
@@ -0,0 +1,12 @@
1
+ import { Subject } from "rxjs";
2
+ export declare class CustomProperty {
3
+ #private;
4
+ get name(): string;
5
+ set name(value: string);
6
+ get value(): any;
7
+ set value(val: any);
8
+ changed$: Subject<void>;
9
+ constructor(name: string, value: any);
10
+ toAny(): any;
11
+ static fromAny(obj: any): CustomProperty;
12
+ }
@@ -0,0 +1,2 @@
1
+ import { Point } from "./common";
2
+ export declare function drawSelectionPoint(ctx: any, p: Point, fillStyle?: string): void;
@@ -0,0 +1,60 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { GanttChartTheme } from "../ganttchart/themes/theme";
3
+ export declare const defaultPdfMargin = 10;
4
+ export declare const pxPerMm: number;
5
+ export declare const defaultPdfScale = 2;
6
+ export declare const pdfPageSizes: Record<string, [number, number]>;
7
+ export interface BaseExportDimensions {
8
+ sheetWidth: number;
9
+ chartWidth: number;
10
+ chartStart: Date;
11
+ headerHeight: number;
12
+ totalHeight: number;
13
+ }
14
+ export interface ExportRendererBase<TDims extends BaseExportDimensions> {
15
+ theme: GanttChartTheme;
16
+ calculateDimensions(): TDims;
17
+ renderSheet(ctx: any, dims: TDims): void;
18
+ renderChart(ctx: any, sheetWidth: number, dims: TDims, scale?: number): void;
19
+ }
20
+ export interface BasePdfExportOptions {
21
+ /** Page format. Default: 'A4' */
22
+ pageSize?: 'A4' | 'A3' | 'Letter' | 'Legal';
23
+ /** Page orientation. Default: 'landscape' */
24
+ orientation?: 'portrait' | 'landscape';
25
+ /** Page margins in mm. Default: 10mm on all sides */
26
+ margin?: {
27
+ top: number;
28
+ right: number;
29
+ bottom: number;
30
+ left: number;
31
+ };
32
+ /** Header text on each page. Can be a string or a function receiving (pageNumber, totalPages). */
33
+ header?: string | ((pageNumber: number, totalPages: number) => string);
34
+ /** Footer text on each page. Can be a string or a function receiving (pageNumber, totalPages). */
35
+ footer?: string | ((pageNumber: number, totalPages: number) => string);
36
+ /** Include the sheet (left-side panel)? Default: true */
37
+ includeSheet?: boolean;
38
+ /** Include the chart (timeline area)? Default: true */
39
+ includeChart?: boolean;
40
+ /** Image quality (0-1). Default: 1 */
41
+ quality?: number;
42
+ /** Export as a single page sized to fit all content. Default: false */
43
+ fitToSinglePage?: boolean;
44
+ }
45
+ export interface PageSlice {
46
+ hPage: number;
47
+ vPage: number;
48
+ srcX: number;
49
+ contentSrcY: number;
50
+ srcW: number;
51
+ contentSrcH: number;
52
+ }
53
+ export declare function escapeCsv(value: string, delimiter: string): string;
54
+ export declare function formatExcelHeaderRow(ws: any): void;
55
+ export declare function freezeExcelHeaderRow(ws: any): void;
56
+ export declare function renderExportChart(mainCtx: any, sheetWidth: number, dims: BaseExportDimensions, scale: number, theme: GanttChartTheme, visibleStartTime$: BehaviorSubject<Date>, scrollTop$: BehaviorSubject<number>, headerRenderer: {
57
+ render(canvas: any): void;
58
+ }, contentRenderers: {
59
+ render(canvas: any): void;
60
+ }[]): void;
@@ -0,0 +1,25 @@
1
+ export declare function getToday(): Date;
2
+ export declare function getTodayAdd(days: number): Date;
3
+ export declare function getStartOfDay(date: Date): Date;
4
+ export declare function getStartOfNextDay(date: Date): Date;
5
+ export declare function getEndOfPreviousDay(date: Date): Date;
6
+ export declare function isSameDay(date1: Date, date2: Date): boolean;
7
+ export declare function isSameNullableDate(date1: Date | null, date2: Date | null): boolean;
8
+ export declare function getOverlapInMinutes(start1: Date, end1: Date, start2: Date, end2: Date): number;
9
+ export declare function getMonthsBetween(d1: Date, d2: Date): number;
10
+ export declare function insertAtPosition(parentElement: any, newElement: any, position: number): void;
11
+ export declare function formatLocalDate(date: Date, locale: string): string;
12
+ export declare function formatLocalDateTime(date: Date, locale: string): string;
13
+ export declare function formatDateIntl(date: Date, locale: string, options: Intl.DateTimeFormatOptions): string;
14
+ export declare function getWeekNumber(date: Date): number;
15
+ export declare function tryParseLocalDate(value: string, locale: string): Date | null;
16
+ export declare function formatIsoDateAndTime(date: Date): string;
17
+ export declare function parseIsoDateAndTime(value: string): Date;
18
+ export declare function getMaxDate(d1: Date, d2: Date): Date;
19
+ export declare function getMinDate(d1: Date, d2: Date): Date;
20
+ export declare function uuidv4(): string;
21
+ export declare function generateRandomId(length: number): string;
22
+ export declare function formatCurrency(amount: number, currencySymbol: string, displayMode: CurrencySymbolDisplayMode, locale: string): string;
23
+ export type CurrencySymbolDisplayMode = 'BeforeAmount' | 'AfterAmount' | 'BeforeAmountWithSpace' | 'AfterAmountWithSpace';
24
+ export declare function sanitizeString(input: string): string;
25
+ export declare function isDeleteKeyPressed(event: any): boolean;
@@ -0,0 +1,8 @@
1
+ export declare class ChartHandlerResult {
2
+ handled: boolean;
3
+ needsRedraw: boolean;
4
+ static handled: ChartHandlerResult;
5
+ static notHandled: ChartHandlerResult;
6
+ static notHandledNeedsRedraw: ChartHandlerResult;
7
+ constructor(handled: boolean, needsRedraw: boolean);
8
+ }
@@ -0,0 +1,5 @@
1
+ export declare function getScrollbarWidth(): number;
2
+ /**
3
+ * Checks if a mouse event occurred within the native horizontal scrollbar area.
4
+ */
5
+ export declare function isWithinHorizontalScrollbar(event: any, element: any): boolean;
@@ -0,0 +1,24 @@
1
+ import { HorizontalAlign, HyperlinkRect, Rect, VerticalAlign } from "./common";
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;
6
+ export declare function getMultilineHyperlinks(lines: MultitextLine[], rect: Rect, horizAlign: HorizontalAlign, vertAlign: VerticalAlign): HyperlinkRect[];
7
+ export interface MultitextLine {
8
+ text: string;
9
+ measure: any;
10
+ height: number;
11
+ links: HyperlinkMeasure[];
12
+ }
13
+ export declare function getMultilineText(ctx: any, text: string, width: number, maxHeight: number, withHyperlinks?: boolean): MultitextLine[];
14
+ export interface HyperlinkMeasure {
15
+ url: string;
16
+ x: number;
17
+ width: number;
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): {
21
+ text: string;
22
+ measure: any;
23
+ };
24
+ export declare function drawTextMiniature(ctx: any, x: number, y: number, width: number): void;
@@ -0,0 +1,5 @@
1
+ import { BaseChartScrollHandler } from "../../common/base-chart-scroll-handler";
2
+ import { GanttChartContext } from "../ganttchart-engine";
3
+ export declare class ChartScrollHandler extends BaseChartScrollHandler {
4
+ constructor(gc: GanttChartContext, chartElement: any, canvas: any, inner: any);
5
+ }