@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
@@ -0,0 +1,66 @@
1
+ import type { ConstraintType } from "./model/task";
2
+ import type { TaskLinkType } from "./model/task-link";
3
+ export interface TimelineKitLocale {
4
+ /** BCP 47 language tag for Intl formatting (dates, numbers), e.g. 'en-US', 'cs-CZ', 'de-DE' */
5
+ language: string;
6
+ columns: {
7
+ name: string;
8
+ length: string;
9
+ start: string;
10
+ end: string;
11
+ progress: string;
12
+ resources: string;
13
+ work: string;
14
+ cost: string;
15
+ };
16
+ columnTooltips: {
17
+ work: string;
18
+ cost: string;
19
+ };
20
+ tooltips: {
21
+ addTask: string;
22
+ addTaskPart: string;
23
+ moveTask: string;
24
+ moveTaskPart: string;
25
+ resizeTask: string;
26
+ resizeTaskPart: string;
27
+ moveMilestone: string;
28
+ setProgress: string;
29
+ addLink: string;
30
+ };
31
+ labels: {
32
+ start: string;
33
+ end: string;
34
+ length: string;
35
+ progress: string;
36
+ from: string;
37
+ to: string;
38
+ type: string;
39
+ lag: string;
40
+ };
41
+ constraints: Record<ConstraintType, string>;
42
+ linkTypes: Record<TaskLinkType, string>;
43
+ warnings: {
44
+ behindSchedule: string;
45
+ behindScheduleByOneDay: string;
46
+ behindScheduleByDays: (days: number) => string;
47
+ constraintViolation: (constraintLabel: string, date: string) => string;
48
+ };
49
+ export: {
50
+ tasksSheetName: string;
51
+ linksSheetName: string;
52
+ resourcesSheetName: string;
53
+ eventsSheetName: string;
54
+ };
55
+ scheduler: {
56
+ resource: string;
57
+ name: string;
58
+ type: string;
59
+ addEvent: string;
60
+ moveEvent: string;
61
+ resizeEvent: string;
62
+ };
63
+ /** Optional custom date parser. Receives raw user input, returns Date or null. */
64
+ dateParser?: (value: string) => Date | null;
65
+ }
66
+ export declare const defaultLocale: TimelineKitLocale;
@@ -0,0 +1 @@
1
+ export { CustomProperty } from "../../common/custom-property";
@@ -0,0 +1,16 @@
1
+ import { LengthUnit } from "./length";
2
+ import { WorkingCalendar } from "./working-calendar";
3
+ export declare class Lag {
4
+ #private;
5
+ get unit(): LengthUnit;
6
+ get value(): number;
7
+ constructor(unit: LengthUnit, value: number);
8
+ toHours(calendar: WorkingCalendar): number;
9
+ toString(): string;
10
+ equals(other: Lag): boolean;
11
+ static zero(): Lag;
12
+ static tryParse(value: string): Lag | null;
13
+ static parse(value: string): Lag;
14
+ toAny(): any;
15
+ static fromAny(obj: any): Lag;
16
+ }
@@ -0,0 +1,16 @@
1
+ import { WorkingCalendar } from "./working-calendar";
2
+ export declare class Length {
3
+ #private;
4
+ get unit(): LengthUnit;
5
+ get value(): number;
6
+ constructor(unit: LengthUnit, value: number);
7
+ getEndTime(startTime: Date, calendar: WorkingCalendar): Date;
8
+ static getLength(startTime: Date, endTime: Date, unit: LengthUnit, calendar: WorkingCalendar): Length;
9
+ equals(length: Length): boolean;
10
+ toString(): string;
11
+ static tryParse(value: string): Length | null;
12
+ static parse(value: string): Length;
13
+ static fromAny(obj: any): Length;
14
+ toAny(): any;
15
+ }
16
+ export type LengthUnit = 'Minute' | 'Hour' | 'Day' | 'Week' | 'Month';
@@ -0,0 +1,7 @@
1
+ export interface Marker {
2
+ date: Date;
3
+ label?: string;
4
+ color?: string;
5
+ lineWidth?: number;
6
+ lineStyle?: 'solid' | 'dashed' | 'dotted';
7
+ }
@@ -0,0 +1,9 @@
1
+ export declare class Rate {
2
+ #private;
3
+ get value(): number;
4
+ get type(): RateType;
5
+ constructor(value: number, type: RateType);
6
+ toAny(): any;
7
+ static fromAny(obj: any): Rate;
8
+ }
9
+ export type RateType = 'PerDay' | 'PerHour';
@@ -0,0 +1,16 @@
1
+ import { Subject } from "rxjs";
2
+ import { Resource, ResourceEventArgs } from "./resource";
3
+ export declare class ResourceList {
4
+ #private;
5
+ resourceChanged$: Subject<ResourceEventArgs>;
6
+ resourceRemoved$: Subject<ResourceEventArgs>;
7
+ resourceRemoving$: Subject<ResourceEventArgs>;
8
+ constructor();
9
+ get length(): number;
10
+ indexOf(resource: Resource): number;
11
+ getResource(index: number): Resource;
12
+ getResourceById(id: string): Resource | null;
13
+ addResource(resource: Resource): Resource;
14
+ assign(resources: Resource[]): void;
15
+ removeResource(resource: Resource): void;
16
+ }
@@ -0,0 +1,29 @@
1
+ import { Subject } from "rxjs";
2
+ import { ResourceList } from "./resource-list";
3
+ import { Rate } from "./rate";
4
+ export declare class Resource {
5
+ #private;
6
+ get id(): string;
7
+ get name(): string;
8
+ set name(value: string);
9
+ get type(): ResourceType;
10
+ set type(value: ResourceType);
11
+ get fixedCostPerUse(): number;
12
+ set fixedCostPerUse(value: number);
13
+ get fixedCostPerResource(): number;
14
+ set fixedCostPerResource(value: number);
15
+ get avatarIconUrl(): string | null;
16
+ set avatarIconUrl(value: string | null);
17
+ get list(): ResourceList | null;
18
+ set list(value: ResourceList | null);
19
+ get rate(): Rate | null;
20
+ set rate(value: Rate | null);
21
+ changed$: Subject<ResourceEventArgs>;
22
+ constructor(id: string | null, name: string, type: ResourceType);
23
+ toAny(): any;
24
+ static fromAny(obj: any): Resource;
25
+ }
26
+ export type ResourceType = 'Unique' | 'Generic';
27
+ export interface ResourceEventArgs {
28
+ resource: Resource;
29
+ }
@@ -0,0 +1,27 @@
1
+ import { Subject } from "rxjs";
2
+ import { SheetCellEditor } from "../sheet/editors/cell-editor";
3
+ import { SheetCellRenderer } from "../sheet/renderers/sheet-cell-renderer";
4
+ import { Task } from "./task";
5
+ export declare class SheetColumn {
6
+ #private;
7
+ get code(): string;
8
+ get name(): string;
9
+ get width(): number;
10
+ set width(value: number);
11
+ get minWidth(): number;
12
+ set minWidth(value: number);
13
+ get valueFormatter(): SheetCellValueFormatter;
14
+ get renderer(): SheetCellRenderer;
15
+ get align(): TextAlign | null;
16
+ get editor(): SheetCellEditor | null;
17
+ get isEditable(): SheetCellIsEditable;
18
+ get isVisible(): boolean;
19
+ set isVisible(value: boolean);
20
+ get tooltip(): string | null;
21
+ get isCustom(): boolean;
22
+ changed$: Subject<SheetColumn>;
23
+ constructor(code: string, name: string, valueFormatter: SheetCellValueFormatter, renderer: SheetCellRenderer, editor: SheetCellEditor | null, isEditable: SheetCellIsEditable, width?: number, minWidth?: number, align?: TextAlign, tooltip?: string);
24
+ }
25
+ export type SheetCellValueFormatter = (task: Task) => string;
26
+ export type TextAlign = 'Left' | 'Center' | 'Right';
27
+ export type SheetCellIsEditable = (task: Task) => boolean;
@@ -0,0 +1,14 @@
1
+ import { Task } from "./task";
2
+ import { Resource } from "./resource";
3
+ import { TaskFilterFn } from "./task-list";
4
+ export declare const TaskFilters: {
5
+ criticalPath: (task: Task) => boolean;
6
+ incomplete: (task: Task) => boolean;
7
+ complete: (task: Task) => boolean;
8
+ behindSchedule: (task: Task) => boolean;
9
+ milestones: (task: Task) => boolean;
10
+ byResource: (resource: Resource) => TaskFilterFn;
11
+ byDateRange: (start: Date, end: Date) => TaskFilterFn;
12
+ byName: (search: string) => TaskFilterFn;
13
+ combine: (...filters: TaskFilterFn[]) => TaskFilterFn;
14
+ };
@@ -0,0 +1,22 @@
1
+ import { Lag } from "./lag";
2
+ import { Task } from "./task";
3
+ import { TaskList } from "./task-list";
4
+ export declare class TaskLink {
5
+ #private;
6
+ get id(): string;
7
+ get from(): Task;
8
+ get to(): Task;
9
+ get type(): TaskLinkType;
10
+ get lag(): Lag;
11
+ get list(): TaskList | null;
12
+ set list(value: TaskList | null);
13
+ constructor(id: string | null, from: Task, to: Task, type: TaskLinkType, lag?: Lag);
14
+ toAny(): any;
15
+ static fromAny(obj: any, tasks: Task[]): TaskLink;
16
+ }
17
+ export type TaskLinkType = 'FinishToStart' | 'StartToStart' | 'FinishToFinish' | 'StartToFinish';
18
+ export type ConnectorSide = 'Start' | 'Finish';
19
+ export declare function getLinkType(fromSide: ConnectorSide, toSide: ConnectorSide): TaskLinkType;
20
+ export interface TaskLinkEventArgs {
21
+ link: TaskLink;
22
+ }
@@ -0,0 +1,28 @@
1
+ import { Subject } from "rxjs";
2
+ import { TableItemEventArgs, TreeTableDataSource } from "../../table/table-data-source";
3
+ import { Task } from "./task";
4
+ import { TaskList } from "./task-list";
5
+ export declare class TaskListAdapter implements TreeTableDataSource<Task> {
6
+ #private;
7
+ itemChanged$: Subject<TableItemEventArgs<Task>>;
8
+ itemRemoved$: Subject<TableItemEventArgs<Task>>;
9
+ itemCollapsedChanged$: Subject<TableItemEventArgs<Task>>;
10
+ complexOperationFinished$: Subject<void>;
11
+ constructor(list: TaskList);
12
+ get list(): TaskList;
13
+ get length(): number;
14
+ getItem(index: number): Task;
15
+ getItemById(id: string): Task | null;
16
+ indexOf(item: Task): number;
17
+ addEmptyItem(): Task;
18
+ insertEmptyItem(index: number): Task;
19
+ removeItems(items: Task[]): void;
20
+ getItemLabel(item: Task): string;
21
+ isItemHidden(item: Task): boolean;
22
+ getNextVisible(item: Task): Task | null;
23
+ getPreviousVisible(item: Task): Task | null;
24
+ indent(items: Task[]): void;
25
+ outdent(items: Task[]): void;
26
+ moveUp(items: Task[]): void;
27
+ moveDown(items: Task[]): void;
28
+ }
@@ -0,0 +1,65 @@
1
+ import { BehaviorSubject, Subject } from "rxjs";
2
+ import { Lag } from "./lag";
3
+ import { Task, TaskEventArgs, TaskResourceAddingEventArgs, TaskTypeChangeEventArgs } from "./task";
4
+ import { WorkingCalendar } from "./working-calendar";
5
+ import { TaskLink, TaskLinkEventArgs, TaskLinkType } from "./task-link";
6
+ import { Resource } from "./resource";
7
+ import { DateRange } from "../ganttchart-engine";
8
+ import { TimelineKitLocale } from "../locale";
9
+ export declare class TaskList {
10
+ #private;
11
+ taskAdded$: Subject<TaskEventArgs>;
12
+ taskChanged$: Subject<TaskEventArgs>;
13
+ taskRemoved$: Subject<TaskEventArgs>;
14
+ taskCollapsedChanged$: Subject<TaskEventArgs>;
15
+ taskTypeChanged$: Subject<TaskTypeChangeEventArgs>;
16
+ linkAdded$: Subject<TaskLinkEventArgs>;
17
+ linkRemoved$: Subject<TaskLinkEventArgs>;
18
+ resourceAdding$: Subject<TaskResourceAddingEventArgs>;
19
+ filterChanged$: Subject<void>;
20
+ constructor(calendar$: BehaviorSubject<WorkingCalendar>, projectTimeline$: BehaviorSubject<DateRange>, locale$?: BehaviorSubject<TimelineKitLocale>);
21
+ get length(): number;
22
+ get linksLength(): number;
23
+ get evaluatingDependencies(): boolean;
24
+ evaluatingDependenciesFinished$: Subject<void>;
25
+ complexOperationFinished$: Subject<void>;
26
+ get filter(): TaskFilterFn | null;
27
+ set filter(value: TaskFilterFn | null);
28
+ getTask(index: number): Task;
29
+ getTaskById(id: string): Task | null;
30
+ getLink(index: number): TaskLink;
31
+ indexOf(task: Task): number;
32
+ addEmptyTask(): Task;
33
+ insertEmptyTask(index: number): Task;
34
+ addTask(task: Task): Task;
35
+ insertTask(index: number, task: Task): Task;
36
+ getFirstTaskIndex(tasks: Task[]): number | null;
37
+ getLastNonEmpty(includeHidden?: boolean): Task | null;
38
+ getPreviousNonEmpty(task: Task, level: number | null): Task | null;
39
+ getNextVisible(task: Task): Task | null;
40
+ getPreviousVisible(task: Task): Task | null;
41
+ getNextNonEmpty(task: Task): Task | null;
42
+ indent(tasks: Task[]): void;
43
+ outdent(tasks: Task[]): void;
44
+ getTaskNumber(task: Task): number;
45
+ getNextSibling(task: Task): Task | null;
46
+ getNextSiblings(task: Task): Task[];
47
+ getNextAtLevel(task: Task, level: number): Task | null;
48
+ getLastDescendant(task: Task): Task;
49
+ existsLinkBetween(task1: Task, task2: Task): boolean;
50
+ isValidTypeForLink(task: Task): boolean;
51
+ wouldCreateCycle(from: Task, to: Task): boolean;
52
+ addLink(from: Task, to: Task, type: TaskLinkType, lag?: Lag): TaskLink;
53
+ removeTask(task: Task): void;
54
+ removeTasks(tasks: Task[]): void;
55
+ removeLink(link: TaskLink): void;
56
+ moveUp(tasks: Task[]): void;
57
+ moveDown(tasks: Task[]): void;
58
+ get minStartTime(): Date | null;
59
+ get maxEndTime(): Date | null;
60
+ clear(): void;
61
+ assign(tasks: Task[], links: TaskLink[]): void;
62
+ getTasksUsingResource(resource: Resource): Task[];
63
+ renameTaskProperty(oldName: string, newName: string): void;
64
+ }
65
+ export type TaskFilterFn = (task: Task) => boolean;
@@ -0,0 +1,39 @@
1
+ import { Length } from "./length";
2
+ import { Task } from "./task";
3
+ import { BehaviorSubject, Subject } from "rxjs";
4
+ import { WorkingCalendar } from "./working-calendar";
5
+ export declare class TaskPart {
6
+ #private;
7
+ get startTime(): Date;
8
+ set startTime(value: Date);
9
+ get endTime(): Date;
10
+ set endTime(value: Date);
11
+ get length(): Length;
12
+ set length(value: Length);
13
+ get task(): Task | null;
14
+ set task(value: Task | null);
15
+ get calendar(): WorkingCalendar;
16
+ startTimeChanging: Subject<TaskPartDateEventArgs>;
17
+ endTimeChanging: Subject<TaskPartDateEventArgs>;
18
+ lengthChanging: Subject<TaskPartLengthEventArgs>;
19
+ startTimeChanged: Subject<void>;
20
+ endTimeChanged: Subject<void>;
21
+ lengthChanged: Subject<void>;
22
+ progressChanged: Subject<void>;
23
+ constructor(startTime: Date, length: Length, calendar$: BehaviorSubject<WorkingCalendar>);
24
+ get lengthInHours(): number;
25
+ get progress(): number | null;
26
+ toAny(): any;
27
+ static fromAny(obj: any, calendar$: BehaviorSubject<WorkingCalendar>): TaskPart;
28
+ }
29
+ export interface TaskPartDateEventArgs {
30
+ part: TaskPart;
31
+ value: Date;
32
+ }
33
+ export interface TaskPartLengthEventArgs {
34
+ part: TaskPart;
35
+ value: Length;
36
+ }
37
+ export declare class ValidationError extends Error {
38
+ constructor(message: string);
39
+ }
@@ -0,0 +1,18 @@
1
+ import { Subject } from "rxjs";
2
+ import { Resource } from "./resource";
3
+ import { ResourceList } from "./resource-list";
4
+ export declare class TaskResource {
5
+ #private;
6
+ get id(): string;
7
+ get resource(): Resource;
8
+ get capacity(): number;
9
+ set capacity(value: number);
10
+ changed$: Subject<TaskResourceEventArgs>;
11
+ constructor(id: string | null, resource: Resource, capacity: number);
12
+ formatCapacity(): string;
13
+ toAny(): any;
14
+ static fromAny(obj: any, resources: ResourceList): TaskResource;
15
+ }
16
+ export interface TaskResourceEventArgs {
17
+ resource: TaskResource;
18
+ }
@@ -0,0 +1,15 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { TimelineKitLocale } from "../locale";
3
+ import { Task } from "./task";
4
+ import { TaskList } from "./task-list";
5
+ import { WorkingCalendar } from "./working-calendar";
6
+ export declare class TaskWarnings {
7
+ #private;
8
+ get calendar(): WorkingCalendar;
9
+ constructor(list: TaskList, calendar: BehaviorSubject<WorkingCalendar>, locale: BehaviorSubject<TimelineKitLocale>);
10
+ private getTotalLength;
11
+ getProgressTime(task: Task): Date;
12
+ update(task: Task): void;
13
+ updateAll(): void;
14
+ private formatDelayedMessage;
15
+ }
@@ -0,0 +1,131 @@
1
+ import { TaskPart } from "./task-part";
2
+ import { TaskList } from "./task-list";
3
+ import { BehaviorSubject, Subject } from "rxjs";
4
+ import { Length, LengthUnit } from "./length";
5
+ import { WorkingCalendar } from "./working-calendar";
6
+ import { TaskResource } from "./task-resource";
7
+ import { Resource } from "./resource";
8
+ import { Work } from "./work";
9
+ import { ResourceList } from "./resource-list";
10
+ import { CustomProperty } from "./custom-property";
11
+ import { DateRange } from "../ganttchart-engine";
12
+ export declare class Task {
13
+ #private;
14
+ get id(): string;
15
+ get color(): number;
16
+ set color(value: number);
17
+ get name(): string | null;
18
+ set name(value: string | null);
19
+ get startTime(): Date | null;
20
+ set startTime(value: Date);
21
+ get endTime(): Date | null;
22
+ set endTime(value: Date);
23
+ get number(): number;
24
+ get calendar(): WorkingCalendar;
25
+ get length(): Length | null;
26
+ set length(value: Length);
27
+ get customLengthUnit(): LengthUnit | null;
28
+ set customLengthUnit(value: LengthUnit | null);
29
+ get baseStartTime(): Date | null;
30
+ get lastPart(): TaskPart;
31
+ get type(): TaskType;
32
+ set type(value: TaskType);
33
+ get parent(): Task | null;
34
+ get list(): TaskList | null;
35
+ set list(value: TaskList | null);
36
+ get progress(): number | null;
37
+ set progress(value: number);
38
+ get collapsed(): boolean;
39
+ set collapsed(value: boolean);
40
+ get resourcesLength(): number;
41
+ getResource(i: number): TaskResource;
42
+ getResourceByResourceId(id: string): TaskResource | null;
43
+ getResourceById(id: string): TaskResource | null;
44
+ get work(): Work | null;
45
+ set work(value: Work | null);
46
+ get cost(): number | null;
47
+ set cost(value: number | null);
48
+ get note(): string | null;
49
+ set note(value: string | null);
50
+ warnings: string[];
51
+ get constraintType(): ConstraintType;
52
+ set constraintType(value: ConstraintType);
53
+ get constraintDate(): Date | null;
54
+ set constraintDate(value: Date | null);
55
+ get baselineStartTime(): Date | null;
56
+ set baselineStartTime(value: Date | null);
57
+ get baselineEndTime(): Date | null;
58
+ set baselineEndTime(value: Date | null);
59
+ /**
60
+ * Critical Path Method (CPM) computed values.
61
+ * Calculated by CriticalPathCalculator when showCriticalPath is enabled.
62
+ * These are not persisted — they are recalculated dynamically.
63
+ */
64
+ earlyStart: Date | null;
65
+ earlyFinish: Date | null;
66
+ lateStart: Date | null;
67
+ lateFinish: Date | null;
68
+ /** Total float in working hours. Zero means the task is on the critical path. */
69
+ totalFloat: number | null;
70
+ freeFloat: number | null;
71
+ isCritical: boolean;
72
+ changed$: Subject<TaskEventArgs>;
73
+ typeChanged$: Subject<TaskTypeChangeEventArgs>;
74
+ startTimeChanged$: Subject<TaskEventArgs>;
75
+ endTimeChanged$: Subject<TaskEventArgs>;
76
+ collapsedChanged$: Subject<TaskEventArgs>;
77
+ subtaskAdded$: Subject<TaskEventArgs>;
78
+ resourceAdding$: Subject<TaskResourceAddingEventArgs>;
79
+ constructor(id: string | null, calendar: BehaviorSubject<WorkingCalendar>, projectTimeline: BehaviorSubject<DateRange>);
80
+ addPart(startTime: Date, length: Length): TaskPart;
81
+ removePart(part: TaskPart): void;
82
+ get partsLength(): number;
83
+ getPart(i: number): TaskPart;
84
+ get subtasksLength(): number;
85
+ getSubtask(i: number): Task;
86
+ addSubtask(task: Task): void;
87
+ removeSubtask(task: Task): void;
88
+ get level(): number;
89
+ getNextSibling(): Task | null;
90
+ getNextAtLevel(level: number): Task | null;
91
+ get partsLengthInHours(): number;
92
+ indexOf(part: TaskPart): number;
93
+ isDescendantOf(task: Task): boolean;
94
+ toggleCollapsed(): void;
95
+ get filtered(): boolean;
96
+ set filtered(value: boolean);
97
+ get hidden(): boolean;
98
+ get isLengthEditable(): boolean;
99
+ get isStartTimeEditable(): boolean;
100
+ get isEndTimeEditable(): boolean;
101
+ get isProgressEditable(): boolean;
102
+ get isResourcesEditable(): boolean;
103
+ get isWorkEditable(): boolean;
104
+ get isCostEditable(): boolean;
105
+ serializeProperties(target: any): void;
106
+ deserializeProperties(source: any, resources: ResourceList): void;
107
+ deserializePropertiesHierarchy(source: any, allTasks: Task[]): void;
108
+ addResource(id: string | null, resource: Resource, capacity: number): TaskResource;
109
+ removeResource(resource: TaskResource): void;
110
+ addProperty(property: CustomProperty): void;
111
+ removeProperty(property: CustomProperty): void;
112
+ renameProperty(oldName: string, newName: string): void;
113
+ getPropertyByName(name: string): CustomProperty | null;
114
+ getPropertyValue(name: string): any;
115
+ setPropertyValue(name: string, value: any): void;
116
+ private arePartsOverlappingOrAdjacent;
117
+ }
118
+ export type TaskType = 'Task' | 'Milestone' | 'Summary' | 'Empty';
119
+ export type ConstraintType = 'ASAP' | 'ALAP' | 'MSO' | 'MFO' | 'SNET' | 'SNLT' | 'FNET' | 'FNLT';
120
+ export interface TaskEventArgs {
121
+ task: Task;
122
+ }
123
+ export interface TaskResourceAddingEventArgs {
124
+ task: Task;
125
+ resource: Resource;
126
+ }
127
+ export interface TaskTypeChangeEventArgs {
128
+ task: Task;
129
+ oldType: TaskType;
130
+ newType: TaskType;
131
+ }
@@ -0,0 +1,17 @@
1
+ import { WorkingCalendar } from "./working-calendar";
2
+ export declare class Work {
3
+ #private;
4
+ get unit(): WorkUnit;
5
+ get value(): number;
6
+ constructor(unit: WorkUnit, value: number);
7
+ static tryParse(value: string): Work | null;
8
+ toString(): string;
9
+ toHours(calendar: WorkingCalendar): number;
10
+ static maxUnit(unit1: WorkUnit, unit2: WorkUnit): WorkUnit;
11
+ static fromHours(hours: number, unit: WorkUnit, calendar: WorkingCalendar): Work;
12
+ static sum(work1: Work, work2: Work): Work;
13
+ toAny(): any;
14
+ static fromAny(obj: any): Work;
15
+ clone(): Work;
16
+ }
17
+ export type WorkUnit = 'Minute' | 'Hour' | 'Day';
@@ -0,0 +1,32 @@
1
+ import { LengthUnit } from "./length";
2
+ export declare class WorkingCalendar {
3
+ #private;
4
+ workingDays: DayOfWeek[];
5
+ nationalHolidays: Date[];
6
+ shifts: WorkingShift[];
7
+ startOfWeek: DayOfWeek;
8
+ defaultLengthUnit: LengthUnit;
9
+ constructor();
10
+ isWorkingDay(current: Date): boolean;
11
+ moveToStartShift(current: Date, keepTimeIfInsideShift: boolean): Date;
12
+ moveToEndShift(current: Date, keepTimeIfInsideShift: boolean): Date;
13
+ getHoursPerDay(): number;
14
+ isEndOfDay(current: Date): boolean;
15
+ getEndOfWorkingDay(current: Date): Date;
16
+ getHoursBetween(time1: Date, time2: Date): number;
17
+ getStartOfWeek(current: Date): Date;
18
+ addHours(current: Date, hours: number, moveToNextIfHoursZero?: boolean): Date;
19
+ }
20
+ export type DayOfWeek = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';
21
+ export declare class WorkingShift {
22
+ start: TimeOfDay;
23
+ end: TimeOfDay;
24
+ constructor(start: TimeOfDay, end: TimeOfDay);
25
+ contains(current: Date, excludeStart?: boolean): boolean;
26
+ getLengthInMinutes(): number;
27
+ }
28
+ export declare class TimeOfDay {
29
+ hour: number;
30
+ minute: number;
31
+ constructor(hour: number, minute: number);
32
+ }
@@ -0,0 +1,6 @@
1
+ import { GanttChartEngine } from "./ganttchart-engine";
2
+ export declare class Recalculator {
3
+ #private;
4
+ constructor(ganttchart: GanttChartEngine);
5
+ recalculate(): void;
6
+ }
@@ -0,0 +1,23 @@
1
+ import { SheetColumn } from "../../model/sheet-column";
2
+ import { Task } from "../../model/task";
3
+ import { GanttChartContext } from "../../ganttchart-engine";
4
+ import { Subject } from "rxjs";
5
+ export type SheetCellEditEndDirection = 'none' | 'down' | 'up' | 'right' | 'left';
6
+ export declare abstract class SheetCellEditor {
7
+ #private;
8
+ protected gc: GanttChartContext | null;
9
+ invalidValue$: Subject<void>;
10
+ editEnded$: Subject<SheetCellEditEndDirection>;
11
+ protected cell: any;
12
+ protected task: Task | null;
13
+ get columnCode(): string | null;
14
+ constructor(getter: SheetCellEditorValueGetter, setter: SheetCellEditorValueSetter);
15
+ init(gc: GanttChartContext): void;
16
+ beginEdit(column: SheetColumn, cell: any, task: Task): void;
17
+ protected abstract beginEditInternal(cell: any, task: Task, value: any): void;
18
+ endEdit(newParsedValue: any, direction?: SheetCellEditEndDirection): void;
19
+ cancelEdit(): void;
20
+ abstract endEditIfModifiedElseCancel(): void;
21
+ }
22
+ export type SheetCellEditorValueGetter = (task: Task) => any;
23
+ export type SheetCellEditorValueSetter = (task: Task, newValue: any) => void;
@@ -0,0 +1,6 @@
1
+ import { SheetInputCellEditor } from "./input-editor";
2
+ export declare class SheetCurrencyCellEditor extends SheetInputCellEditor {
3
+ protected onInputCreated(input: any): void;
4
+ formatValue(value: any): string;
5
+ tryParseValue(value: any): any | null;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { SheetInputCellEditor } from "./input-editor";
2
+ export declare class SheetDateCellEditor extends SheetInputCellEditor {
3
+ onInputCreated(input: any): void;
4
+ formatValue(value: any): string;
5
+ tryParseValue(value: any): any | null;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { SheetInputCellEditor } from "./input-editor";
2
+ export declare class SheetDecimalCellEditor extends SheetInputCellEditor {
3
+ protected onInputCreated(input: any): void;
4
+ formatValue(value: any): string;
5
+ tryParseValue(value: any): any | null;
6
+ }
@@ -0,0 +1,17 @@
1
+ import { SheetCellEditor } from "./cell-editor";
2
+ import { Task } from "../../model/task";
3
+ import { Subject } from "rxjs";
4
+ export declare class SheetDialogCellEditor extends SheetCellEditor {
5
+ beginEdit$: Subject<SheetCellDialogEditorArgs>;
6
+ cancelEdit$: Subject<void>;
7
+ endEdit$: Subject<void>;
8
+ constructor();
9
+ protected beginEditInternal(cell: any, task: Task, value: any): void;
10
+ endEditIfModifiedElseCancel(): void;
11
+ }
12
+ export interface SheetCellDialogEditorArgs {
13
+ task: Task;
14
+ columnCode: string;
15
+ cancelEdit$: Subject<void>;
16
+ endEdit$: Subject<void>;
17
+ }