@timelinekit/core 1.0.0 → 1.0.5

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 +24 -13
  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
@@ -1,7 +1,7 @@
1
1
  import { BehaviorSubject } from "rxjs";
2
2
  import { DateRange } from "./common";
3
- import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
4
- import { GanttChartTheme } from "../ganttchart/themes/theme";
3
+ import { ChartTimeline } from "./chart-time-axis";
4
+ import { BaseTheme } from "./base-theme";
5
5
  /**
6
6
  * Interface for the context needed by the scroll handler.
7
7
  * Both GanttChartContext and ResourceSchedulerContext satisfy this.
@@ -9,7 +9,9 @@ import { GanttChartTheme } from "../ganttchart/themes/theme";
9
9
  export interface ScrollHandlerContext {
10
10
  timeline: ChartTimeline;
11
11
  projectTimeline$: BehaviorSubject<DateRange>;
12
- theme$: BehaviorSubject<GanttChartTheme>;
12
+ theme$: {
13
+ getValue(): BaseTheme;
14
+ };
13
15
  dividerResizing$: BehaviorSubject<boolean>;
14
16
  autoScrolling: boolean;
15
17
  }
@@ -0,0 +1,98 @@
1
+ import { Observable, Subject } from "rxjs";
2
+ import { BehaviorSubject } from "rxjs";
3
+ import { Cursor } from "./common";
4
+ import { ChartTimeline } from "./chart-time-axis";
5
+ import { BaseTheme } from "./base-theme";
6
+ /**
7
+ * Minimal context interface that both GanttChartContext and ResourceSchedulerContext satisfy.
8
+ *
9
+ * Uses a structural type for theme$ (only getValue is needed) to avoid
10
+ * BehaviorSubject variance issues when the concrete theme extends BaseTheme.
11
+ */
12
+ export interface BaseChartContext {
13
+ timeline: ChartTimeline;
14
+ theme$: {
15
+ getValue(): BaseTheme;
16
+ };
17
+ chartCursor$: Subject<Cursor>;
18
+ chartMouseWheel$: Subject<any>;
19
+ chartRedrawn$: Subject<void>;
20
+ chartBackgroundRedrawn$: Subject<void>;
21
+ dividerResizing$: BehaviorSubject<boolean>;
22
+ }
23
+ /** Simple renderer interface — anything with a render(canvas) method. */
24
+ export interface ChartRenderer {
25
+ render(canvas: HTMLCanvasElement): void;
26
+ }
27
+ /**
28
+ * Shared base class for chart (right-panel) components.
29
+ *
30
+ * Handles:
31
+ * - Canvas and inner DOM element setup
32
+ * - ResizeObserver and responsive redraw scheduling
33
+ * - Ctrl+wheel zoom
34
+ * - Cursor CSS class management
35
+ * - Divider resizing overlay
36
+ * - Font loading
37
+ * - Redraw pipeline skeleton (clear → onRedraw → watermark → chartRedrawn$)
38
+ * - Destroy / cleanup
39
+ *
40
+ * Subclasses implement:
41
+ * - initComponents() — create renderers, scroll handler, and interaction handlers
42
+ * - getRedrawObservables() — observables that trigger a redraw
43
+ * - onRedraw() — the full rendering pipeline (header, background, markers, content)
44
+ * - destroyComponents() — clean up scroll handler and interaction handlers
45
+ *
46
+ * Optional overrides:
47
+ * - canRedraw() — return false to skip a redraw cycle (e.g. during dependency evaluation)
48
+ *
49
+ * Generic TContext allows subclasses to access their full context type via this.ctx.
50
+ */
51
+ export declare abstract class BaseChart<TContext extends BaseChartContext> {
52
+ #private;
53
+ /** The full-typed context, accessible to subclasses. */
54
+ protected get ctx(): TContext;
55
+ protected get canvas(): HTMLCanvasElement;
56
+ constructor(ctx: TContext, chartElement: HTMLElement);
57
+ /**
58
+ * Must be called from subclass constructors after super().
59
+ * Separated from the constructor because ES private fields (#field) of
60
+ * subclasses are only installed after super() returns, so calling
61
+ * initComponents() from the base constructor would fail.
62
+ */
63
+ protected init(): void;
64
+ /**
65
+ * Create renderers, scroll handler, and interaction handlers.
66
+ * Called once from the BaseChart constructor after canvas and inner elements are created.
67
+ * this.ctx is available at this point.
68
+ */
69
+ protected abstract initComponents(chartElement: HTMLElement, canvas: HTMLCanvasElement, inner: HTMLElement): void;
70
+ /** Return observables that should trigger a chart redraw when they emit. */
71
+ protected abstract getRedrawObservables(): Observable<any>[];
72
+ /**
73
+ * Render all chart content onto the canvas.
74
+ * Called inside the redraw pipeline after clear and before watermark.
75
+ * Subclass is responsible for header, clipping, background, markers, and content rendering.
76
+ */
77
+ protected abstract onRedraw(canvasCtx: CanvasRenderingContext2D): void;
78
+ /** Clean up component-specific resources (scroll handler, interaction handlers). */
79
+ protected abstract destroyComponents(): void;
80
+ /**
81
+ * Override to skip redraw cycles (e.g. during dependency evaluation).
82
+ * Default: always allow redraw.
83
+ */
84
+ protected canRedraw(): boolean;
85
+ /**
86
+ * Render the standard pipeline: header → clip content area → background → markers →
87
+ * chartBackgroundRedrawn$ → contentFn() → restore clip.
88
+ *
89
+ * Convenience helper so subclasses don't duplicate the clip/restore boilerplate.
90
+ */
91
+ protected renderPipeline(canvasCtx: CanvasRenderingContext2D, headerRenderer: ChartRenderer, backgroundRenderer: ChartRenderer, markersRenderer: ChartRenderer, contentFn: () => void): void;
92
+ protected scheduleRedraw(): void;
93
+ /** Called on resize after canvas size is updated. Override to handle scroll handler resize. */
94
+ protected onResize(): void;
95
+ get chartElement(): HTMLElement;
96
+ get chartWidth(): number;
97
+ destroy(): void;
98
+ }
@@ -18,4 +18,6 @@ export declare class BaseDivider extends ClassWithListeners {
18
18
  #private;
19
19
  constructor(ctx: DividerContext, wrapperElement: any, sheetElement: any, dividerElement: any, chartElement: any, options: DividerOptions);
20
20
  destroy(): void;
21
+ /** Update the calculated (automatic) sheet width. Only takes effect if the user has not manually resized. */
22
+ updateCalculatedWidth(width: number): void;
21
23
  }
@@ -0,0 +1,112 @@
1
+ import { BehaviorSubject, Subject, Subscription } from "rxjs";
2
+ import { ChartTimeline } from "./chart-time-axis";
3
+ import { DateRange } from "./common";
4
+ import { BaseTheme } from "./base-theme";
5
+ import { WorkingCalendar } from "./working-calendar";
6
+ import { UndoManager } from "./undo-manager";
7
+ import type { Marker } from "./marker";
8
+ import type { ColumnState } from "../table/table";
9
+ /** Minimal context interface shared by all engine context types. */
10
+ export interface BaseEngineContext {
11
+ timeline: ChartTimeline;
12
+ markers$: BehaviorSubject<Marker[]>;
13
+ canEdit$: BehaviorSubject<boolean>;
14
+ readonly canEdit: boolean;
15
+ showGridLines$: BehaviorSubject<boolean>;
16
+ showTodayLine$: BehaviorSubject<boolean>;
17
+ projectTimeline$: BehaviorSubject<DateRange>;
18
+ calendar$: BehaviorSubject<WorkingCalendar>;
19
+ autoScrolling: boolean;
20
+ }
21
+ /** Base class for timeline engine implementations (GanttChart, ResourceScheduler). */
22
+ export declare abstract class BaseTimelineEngine {
23
+ #private;
24
+ protected _hostElement: HTMLElement;
25
+ protected _wrapperElement: HTMLElement;
26
+ protected _subscriptions: Subscription;
27
+ protected _undoManager: UndoManager;
28
+ constructor(hostElement: HTMLElement);
29
+ protected abstract get ctx(): BaseEngineContext;
30
+ protected abstract get engineEvents(): {
31
+ undone$: Subject<void>;
32
+ redone$: Subject<void>;
33
+ destroy(): void;
34
+ };
35
+ protected abstract getChartWidth(): number;
36
+ protected abstract getChartElement(): HTMLElement;
37
+ protected abstract getTheme(): BaseTheme;
38
+ protected abstract subscribeThemeChange(callback: () => void): Subscription;
39
+ protected abstract isCellEditing(): boolean;
40
+ protected abstract saveColumnsImpl(): ColumnState[];
41
+ protected abstract loadColumnsImpl(states: ColumnState[]): void;
42
+ protected abstract destroyComponents(): void;
43
+ protected abstract restoreState(text: string): void;
44
+ protected abstract hasData(): boolean;
45
+ abstract save(): string;
46
+ abstract copy(): Promise<void>;
47
+ abstract cut(): Promise<void>;
48
+ abstract paste(): Promise<any>;
49
+ abstract zoomToFit(...args: any[]): void;
50
+ protected createDom(): {
51
+ sheetElement: HTMLElement;
52
+ dividerElement: HTMLElement;
53
+ chartElement: HTMLElement;
54
+ };
55
+ protected addWrapperClasses(_wrapperElement: HTMLElement): void;
56
+ protected wireTheme(): void;
57
+ protected wireKeyboard(): void;
58
+ /** Timeline markers (vertical indicator lines). */
59
+ get markers(): Marker[];
60
+ set markers(value: Marker[]);
61
+ /** Add a timeline marker. */
62
+ addMarker(marker: Marker): void;
63
+ /** Remove a timeline marker. */
64
+ removeMarker(marker: Marker): void;
65
+ /** Remove all timeline markers. */
66
+ clearMarkers(): void;
67
+ /** Whether editing is enabled. When false, all mutations are disabled. */
68
+ get canEdit(): boolean;
69
+ set canEdit(value: boolean);
70
+ /** Automatically zoom to fit all data when project timeline is set. Default: true. */
71
+ get autoZoomToFit(): boolean;
72
+ set autoZoomToFit(value: boolean);
73
+ /** Show or hide grid lines on the chart. */
74
+ get showGridLines(): boolean;
75
+ set showGridLines(value: boolean);
76
+ /** Show or hide the today indicator line. */
77
+ get showTodayLine(): boolean;
78
+ set showTodayLine(value: boolean);
79
+ /** Whether undo is available (observable). */
80
+ get canUndo$(): BehaviorSubject<boolean>;
81
+ /** Whether redo is available (observable). */
82
+ get canRedo$(): BehaviorSubject<boolean>;
83
+ /** Undo the last action. */
84
+ undo(): void;
85
+ /** Redo the last undone action. */
86
+ redo(): void;
87
+ /** Zoom in one level. Returns false if already at maximum zoom. */
88
+ zoomIn(): boolean;
89
+ /** Zoom out one level. Returns false if already at minimum zoom. */
90
+ zoomOut(): boolean;
91
+ /** Shared zoom-to-fit logic: finds best zoom level for given date range. */
92
+ protected zoomToFitRange(minStart: Date | null, maxEnd: Date | null): void;
93
+ /** Scroll the timeline to the project start date. */
94
+ goToProjectStart(): void;
95
+ /** Scroll the timeline to a specific date. */
96
+ scrollToDate(date: Date): void;
97
+ /** Project start/end date bounds. */
98
+ get projectTimeline(): DateRange;
99
+ set projectTimeline(value: DateRange);
100
+ /** Working calendar observable. */
101
+ get calendar$(): BehaviorSubject<WorkingCalendar>;
102
+ /** @param value New working calendar to apply. */
103
+ set calendar$(value: WorkingCalendar);
104
+ /** Save current column widths and order for later restoration. */
105
+ saveColumns(): ColumnState[];
106
+ /** Restore previously saved column widths and order. */
107
+ loadColumns(states: ColumnState[]): void;
108
+ /** Load state from a JSON string. Automatically zooms to fit if data is present and autoZoomToFit is enabled. */
109
+ load(text: string): void;
110
+ /** Destroy the component and release all DOM resources. */
111
+ destroy(): void;
112
+ }
@@ -0,0 +1,26 @@
1
+ import { SheetExportDimensions, ExportColumn } from "./export-utils";
2
+ import { BaseTheme } from "./base-theme";
3
+ import { ChartTimeline } from "./chart-time-axis";
4
+ export interface ChartLayoutResult {
5
+ visibleColumns: ExportColumn[];
6
+ sheetWidth: number;
7
+ chartStart: Date;
8
+ chartWidth: number;
9
+ headerHeight: number;
10
+ }
11
+ export declare abstract class BaseExportRenderer<TDims extends SheetExportDimensions> {
12
+ abstract get theme(): BaseTheme;
13
+ protected calculateChartLayout(timeline: ChartTimeline, sheet: {
14
+ columnsLength: number;
15
+ getColumn(index: number): any;
16
+ }, minStartTime: Date | null, maxEndTime: Date | null, projectTimeline: {
17
+ startDate: Date;
18
+ endDate: Date;
19
+ }): ChartLayoutResult;
20
+ renderSheet(ctx: any, dims: TDims): void;
21
+ protected renderSheetHeader(ctx: any, dims: TDims): void;
22
+ protected abstract renderSheetRows(ctx: any, dims: TDims): void;
23
+ protected renderSheetRightBorder(ctx: any, dims: TDims): void;
24
+ abstract calculateDimensions(): TDims;
25
+ abstract renderChart(ctx: any, sheetWidth: number, dims: TDims, scale?: number): void;
26
+ }
@@ -1,15 +1,17 @@
1
- import { BehaviorSubject } from "rxjs";
2
- import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
3
- import { GanttChartTheme } from "../ganttchart/themes/theme";
1
+ import { CanvasLike } from "./common";
2
+ import { ChartTimeline } from "./chart-time-axis";
3
+ import { BaseTheme } from "./base-theme";
4
4
  /**
5
5
  * Interface for the context needed by the header renderer.
6
6
  * Both GanttChartContext and ResourceSchedulerContext satisfy this.
7
7
  */
8
8
  export interface HeaderRendererContext {
9
9
  timeline: ChartTimeline;
10
- theme$: BehaviorSubject<GanttChartTheme>;
10
+ theme$: {
11
+ getValue(): BaseTheme;
12
+ };
11
13
  settings: {
12
- theme: GanttChartTheme;
14
+ theme: BaseTheme;
13
15
  };
14
16
  }
15
17
  /**
@@ -19,5 +21,5 @@ export interface HeaderRendererContext {
19
21
  export declare class BaseHeaderRenderer {
20
22
  #private;
21
23
  constructor(ctx: HeaderRendererContext);
22
- render(canvas: any): void;
24
+ render(canvas: CanvasLike): void;
23
25
  }
@@ -1,15 +1,18 @@
1
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";
2
+ import { CanvasLike } from "./common";
3
+ import { ChartTimeline } from "./chart-time-axis";
4
+ import { BaseTheme } from "./base-theme";
5
+ import { Marker } from "./marker";
5
6
  export interface MarkersRendererContext {
6
7
  timeline: ChartTimeline;
7
- theme$: BehaviorSubject<GanttChartTheme>;
8
+ theme$: {
9
+ getValue(): BaseTheme;
10
+ };
8
11
  showTodayLine$: BehaviorSubject<boolean>;
9
12
  markers$: BehaviorSubject<Marker[]>;
10
13
  }
11
14
  export declare class BaseMarkersRenderer {
12
15
  #private;
13
- constructor(ctx: MarkersRendererContext, getBottom: (canvas: any) => number);
14
- render(canvas: any): void;
16
+ constructor(ctx: MarkersRendererContext, getBottom: (canvas: CanvasLike) => number);
17
+ render(canvas: CanvasLike): void;
15
18
  }
@@ -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 BaseTaskColor {
4
+ borderColor: string | null;
5
+ color1: string;
6
+ color2: string;
7
+ highlightColor: string;
8
+ static create<T extends BaseTaskColor>(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 BaseTaskColor instance. */
20
+ export declare function resolveTaskColor<T extends BaseTaskColor>(color: ColorValue, taskColors: T[]): T;
21
+ /** Style settings for the sheet header row. */
22
+ export declare class BaseSheetHeaderStyle {
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 BaseSheetStyle {
30
+ header: BaseSheetHeaderStyle;
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 BaseChartHeaderStyle {
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 BaseChartContentStyle {
56
+ backgroundColor: string;
57
+ taskHeight: number;
58
+ taskBorderRadius: number;
59
+ taskColors: BaseTaskColor[];
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 BaseChartStyle {
86
+ header: BaseChartHeaderStyle;
87
+ content: BaseChartContentStyle;
88
+ }
89
+ /** Base class for all timeline component themes. Extend to create custom themes. */
90
+ export declare abstract class BaseTheme {
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: BaseSheetStyle;
101
+ /** Chart (right panel) visual style. */
102
+ chart: BaseChartStyle;
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,7 @@
1
+ import { CanvasLike } from "./common";
2
+ import { BaseTheme } from "./base-theme";
3
+ export interface TooltipLine {
4
+ name: string;
5
+ value: string;
6
+ }
7
+ export declare function drawTooltipAt(canvas: CanvasLike, rowY: number, rowHeight: number, startX: number, title: string, lines: TooltipLine[], theme: BaseTheme): void;
@@ -0,0 +1,32 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { TimelineKitLocale } from "./locale";
3
+ import { WorkingCalendar } from "./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';
@@ -29,8 +29,8 @@ export declare class Rect {
29
29
  static fromString(str: string): Rect;
30
30
  moveToRaster(): Rect;
31
31
  }
32
- export type HorizontalAlign = 'Left' | 'Center' | 'Right';
33
- export type VerticalAlign = 'Top' | 'Center' | 'Bottom';
32
+ export type HorizontalAlign = 'left' | 'center' | 'right';
33
+ export type VerticalAlign = 'top' | 'center' | 'bottom';
34
34
  export interface HyperlinkRect {
35
35
  x: number;
36
36
  y: number;
@@ -51,6 +51,16 @@ export declare class Font {
51
51
  clone(): Font;
52
52
  }
53
53
  export type Cursor = 'default' | 'pointer' | 'all-scroll' | 'ew-resize' | 'ns-resize' | 'nwse-resize' | 'nesw-resize' | 'crosshair' | 'grabbing';
54
+ /**
55
+ * Minimal interface for objects that behave like an HTMLCanvasElement.
56
+ * Satisfied by real HTMLCanvasElement and by the lightweight mock objects
57
+ * created during image/PDF export (see export-utils.ts).
58
+ */
59
+ export interface CanvasLike {
60
+ width: number;
61
+ height: number;
62
+ getContext(contextId: string): CanvasRenderingContext2D | null;
63
+ }
54
64
  export declare const seriesPalette: string[];
55
65
  export declare class DateRange {
56
66
  #private;
@@ -0,0 +1,14 @@
1
+ import { CustomProperty } from "./custom-property";
2
+ export declare class CustomPropertiesContainer {
3
+ #private;
4
+ constructor(onChanged: (property: CustomProperty) => void);
5
+ addProperty(property: CustomProperty): void;
6
+ removeProperty(property: CustomProperty): void;
7
+ renameProperty(oldName: string, newName: string): void;
8
+ getPropertyByName(name: string): CustomProperty | null;
9
+ getPropertyValue(name: string): any;
10
+ setPropertyValue(name: string, value: any): void;
11
+ get hasProperties(): boolean;
12
+ serializeProperties(): any[];
13
+ loadProperties(serialized: any[] | undefined | null): void;
14
+ }
@@ -1,2 +1,8 @@
1
- import { Point } from "./common";
2
- export declare function drawSelectionPoint(ctx: any, p: Point, fillStyle?: string): void;
1
+ import { Point, Rect } from "./common";
2
+ export declare function drawSelectionPoint(ctx: CanvasRenderingContext2D, p: Point, fillStyle?: string): void;
3
+ export declare function createGradientVertical(ctx: CanvasRenderingContext2D, rect: Rect, color1: string, color2: string): CanvasGradient;
4
+ export declare function createGradientHorizontal(ctx: CanvasRenderingContext2D, rect: Rect, color1: string, color2: string): CanvasGradient;
5
+ export declare function addRoundedRect(ctx: CanvasRenderingContext2D, rect: Rect, borderRadius: number): void;
6
+ export declare function drawGradientBar(ctx: CanvasRenderingContext2D, rect: Rect, color1: string, color2: string, borderRadius?: number): void;
7
+ export declare function drawBarBorder(ctx: CanvasRenderingContext2D, rect: Rect, borderColor: string, borderRadius?: number): void;
8
+ export declare function drawClippedLabel(ctx: CanvasRenderingContext2D, text: string, rect: Rect, font: string, color: string, padding?: number): void;
@@ -1,5 +1,9 @@
1
1
  import { BehaviorSubject } from "rxjs";
2
- import { GanttChartTheme } from "../ganttchart/themes/theme";
2
+ import { CanvasLike } from "./common";
3
+ import { BaseTheme } from "./base-theme";
4
+ export declare const sheetCellPadding = 10;
5
+ export declare const sheetRowNumberWidth = 40;
6
+ export declare const sheetMarginCells = 3;
3
7
  export declare const defaultPdfMargin = 10;
4
8
  export declare const pxPerMm: number;
5
9
  export declare const defaultPdfScale = 2;
@@ -11,11 +15,31 @@ export interface BaseExportDimensions {
11
15
  headerHeight: number;
12
16
  totalHeight: number;
13
17
  }
18
+ export interface SheetExportDimensions extends BaseExportDimensions {
19
+ visibleColumns: ExportColumn[];
20
+ }
21
+ /** Describes a single sheet column included in an image/PDF export. */
22
+ export interface ExportColumn {
23
+ code: string;
24
+ name: string;
25
+ width: number;
26
+ align: string | null;
27
+ valueFormatter: (item: any) => string;
28
+ exportHeaderRenderer?: (ctx: any, x: number, y: number, width: number, height: number, color: string) => void;
29
+ exportCellRenderer?: (ctx: any, item: any, x: number, y: number, width: number, height: number) => void;
30
+ }
31
+ /** Maps visible columns from a table (or tree-table) into ExportColumn descriptors. */
32
+ export declare function getVisibleExportColumns(table: {
33
+ columnsLength: number;
34
+ getColumn(index: number): any;
35
+ }): ExportColumn[];
14
36
  export interface ExportRendererBase<TDims extends BaseExportDimensions> {
15
- theme: GanttChartTheme;
37
+ theme: BaseTheme;
16
38
  calculateDimensions(): TDims;
17
- renderSheet(ctx: any, dims: TDims): void;
18
- renderChart(ctx: any, sheetWidth: number, dims: TDims, scale?: number): void;
39
+ /** Optional async preloading step (e.g. loading avatar images) called before rendering. */
40
+ preload?(): Promise<void>;
41
+ renderSheet(ctx: CanvasRenderingContext2D, dims: TDims): void;
42
+ renderChart(ctx: CanvasRenderingContext2D, sheetWidth: number, dims: TDims, scale?: number): void;
19
43
  }
20
44
  export interface BasePdfExportOptions {
21
45
  /** Page format. Default: 'A4' */
@@ -50,11 +74,14 @@ export interface PageSlice {
50
74
  srcW: number;
51
75
  contentSrcH: number;
52
76
  }
77
+ export declare function buildCsvRow(values: string[], delimiter: string): string;
53
78
  export declare function escapeCsv(value: string, delimiter: string): string;
54
79
  export declare function formatExcelHeaderRow(ws: any): void;
55
80
  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;
81
+ export declare function importExcelJS(): Promise<any>;
82
+ export declare function workbookToBlob(workbook: any): Promise<Blob>;
83
+ export declare function renderExportChart(mainCtx: CanvasRenderingContext2D, sheetWidth: number, dims: BaseExportDimensions, scale: number, theme: BaseTheme, visibleStartTime$: BehaviorSubject<Date>, scrollTop$: BehaviorSubject<number>, headerRenderer: {
84
+ render(canvas: CanvasLike): void;
58
85
  }, contentRenderers: {
59
- render(canvas: any): void;
86
+ render(canvas: CanvasLike): void;
60
87
  }[]): void;
@@ -20,6 +20,6 @@ export declare function getMinDate(d1: Date, d2: Date): Date;
20
20
  export declare function uuidv4(): string;
21
21
  export declare function generateRandomId(length: number): string;
22
22
  export declare function formatCurrency(amount: number, currencySymbol: string, displayMode: CurrencySymbolDisplayMode, locale: string): string;
23
- export type CurrencySymbolDisplayMode = 'BeforeAmount' | 'AfterAmount' | 'BeforeAmountWithSpace' | 'AfterAmountWithSpace';
23
+ export type CurrencySymbolDisplayMode = 'beforeAmount' | 'afterAmount' | 'beforeAmountWithSpace' | 'afterAmountWithSpace';
24
24
  export declare function sanitizeString(input: string): string;
25
25
  export declare function isDeleteKeyPressed(event: any): boolean;