gantt-task-react-v 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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -0
  3. package/dist/change-metadata/get-dependent-tasks.d.ts +3 -0
  4. package/dist/change-metadata/get-task-indexes.d.ts +9 -0
  5. package/dist/components/calendar/calendar.d.ts +18 -0
  6. package/dist/components/calendar/default-render-bottom-header.d.ts +3 -0
  7. package/dist/components/calendar/default-render-top-header.d.ts +2 -0
  8. package/dist/components/calendar/top-part-of-calendar.d.ts +13 -0
  9. package/dist/components/context-menu/index.d.ts +13 -0
  10. package/dist/components/context-menu/menu-option.d.ts +10 -0
  11. package/dist/components/context-menu-options/copy.d.ts +3 -0
  12. package/dist/components/context-menu-options/cut.d.ts +2 -0
  13. package/dist/components/context-menu-options/delete.d.ts +2 -0
  14. package/dist/components/context-menu-options/edit.d.ts +2 -0
  15. package/dist/components/context-menu-options/index.d.ts +5 -0
  16. package/dist/components/context-menu-options/paste.d.ts +2 -0
  17. package/dist/components/gantt/default-check-is-holiday.d.ts +2 -0
  18. package/dist/components/gantt/default-get-copied-task-id.d.ts +2 -0
  19. package/dist/components/gantt/default-round-end-date.d.ts +2 -0
  20. package/dist/components/gantt/default-round-start-date.d.ts +2 -0
  21. package/dist/components/gantt/gantt.d.ts +4 -0
  22. package/dist/components/gantt/task-gantt-content.d.ts +45 -0
  23. package/dist/components/gantt/task-gantt.d.ts +21 -0
  24. package/dist/components/gantt/use-context-menu.d.ts +7 -0
  25. package/dist/components/gantt/use-create-relation.d.ts +18 -0
  26. package/dist/components/gantt/use-get-task-current-state.d.ts +15 -0
  27. package/dist/components/gantt/use-handle-action.d.ts +21 -0
  28. package/dist/components/gantt/use-holidays.d.ts +12 -0
  29. package/dist/components/gantt/use-horizontal-scrollbars.d.ts +9 -0
  30. package/dist/components/gantt/use-selection.d.ts +18 -0
  31. package/dist/components/gantt/use-tablelist-resize.d.ts +9 -0
  32. package/dist/components/gantt/use-task-drag.d.ts +28 -0
  33. package/dist/components/gantt/use-vertical-scrollbars.d.ts +11 -0
  34. package/dist/components/gantt-loader/index.d.ts +6 -0
  35. package/dist/components/gantt-locale/index.d.ts +8 -0
  36. package/dist/components/gantt-theme/default-theme.d.ts +2 -0
  37. package/dist/components/gantt-theme/gantt-theme-builder.d.ts +2 -0
  38. package/dist/components/gantt-theme/index.d.ts +9 -0
  39. package/dist/components/gantt-today/index.d.ts +12 -0
  40. package/dist/components/icons/add-icon.d.ts +2 -0
  41. package/dist/components/icons/copy-icon.d.ts +2 -0
  42. package/dist/components/icons/cut-icon.d.ts +2 -0
  43. package/dist/components/icons/delete-icon.d.ts +2 -0
  44. package/dist/components/icons/drag-indicator-icon.d.ts +2 -0
  45. package/dist/components/icons/edit-icon.d.ts +2 -0
  46. package/dist/components/icons/expand-less-icon.d.ts +2 -0
  47. package/dist/components/icons/expand-more-icon.d.ts +2 -0
  48. package/dist/components/icons/paste-icon.d.ts +2 -0
  49. package/dist/components/other/arrow.d.ts +22 -0
  50. package/dist/components/other/relation-line.d.ts +9 -0
  51. package/dist/components/other/tooltip.d.ts +18 -0
  52. package/dist/components/other/vertical-scroll.d.ts +11 -0
  53. package/dist/components/task-item/bar/bar-content-small.d.ts +6 -0
  54. package/dist/components/task-item/bar/bar-date-handle/index.d.ts +13 -0
  55. package/dist/components/task-item/bar/bar-default.d.ts +1 -0
  56. package/dist/components/task-item/bar/bar-display.d.ts +19 -0
  57. package/dist/components/task-item/bar/bar-progress-handle/index.d.ts +10 -0
  58. package/dist/components/task-item/bar/index.d.ts +3 -0
  59. package/dist/components/task-item/bar/types.d.ts +8 -0
  60. package/dist/components/task-item/bar-comparison/index.d.ts +13 -0
  61. package/dist/components/task-item/bar-relation/bar-relation-handle.d.ts +11 -0
  62. package/dist/components/task-item/bar-relation/index.d.ts +6 -0
  63. package/dist/components/task-item/milestone/index.d.ts +8 -0
  64. package/dist/components/task-item/project/project-display.d.ts +20 -0
  65. package/dist/components/task-item/task-item.d.ts +36 -0
  66. package/dist/components/task-item/task-label/index.d.ts +3 -0
  67. package/dist/components/task-item/task-label/task-center-label.d.ts +7 -0
  68. package/dist/components/task-item/task-label/task-outline-label.d.ts +3 -0
  69. package/dist/components/task-item/task-label/task-responsive-label.d.ts +7 -0
  70. package/dist/components/task-item/task-label/types.d.ts +11 -0
  71. package/dist/components/task-list/index.d.ts +42 -0
  72. package/dist/components/task-list/task-list-sortable-table/index.d.ts +3 -0
  73. package/dist/components/task-list/task-list-sortable-table/keyboardCoordinates.d.ts +3 -0
  74. package/dist/components/task-list/task-list-sortable-table/types.d.ts +6 -0
  75. package/dist/components/task-list/task-list-sortable-table/utilities.d.ts +8 -0
  76. package/dist/components/task-list/task-list-sortable-table-row/index.d.ts +3 -0
  77. package/dist/components/task-list/task-list-table/index.d.ts +3 -0
  78. package/dist/components/task-list/task-list-table-columns/add-column.d.ts +3 -0
  79. package/dist/components/task-list/task-list-table-columns/date-end-column.d.ts +3 -0
  80. package/dist/components/task-list/task-list-table-columns/date-start-column.d.ts +3 -0
  81. package/dist/components/task-list/task-list-table-columns/delete-column.d.ts +3 -0
  82. package/dist/components/task-list/task-list-table-columns/dependencies-column.d.ts +3 -0
  83. package/dist/components/task-list/task-list-table-columns/edit-column.d.ts +3 -0
  84. package/dist/components/task-list/task-list-table-columns/title-column.d.ts +3 -0
  85. package/dist/components/task-list/task-list-table-columns/use-task-list-columns-builder.d.ts +45 -0
  86. package/dist/components/task-list/task-list-table-headers/index.d.ts +3 -0
  87. package/dist/components/task-list/task-list-table-row/index.d.ts +3 -0
  88. package/dist/constants.d.ts +1 -0
  89. package/dist/gantt-task-react.es.js +19900 -0
  90. package/dist/gantt-task-react.umd.js +19917 -0
  91. package/dist/helpers/adjust-task-to-working-dates.d.ts +12 -0
  92. package/dist/helpers/bar-helper.d.ts +12 -0
  93. package/dist/helpers/check-has-children.d.ts +2 -0
  94. package/dist/helpers/check-is-descendant.d.ts +2 -0
  95. package/dist/helpers/collect-parents.d.ts +2 -0
  96. package/dist/helpers/collect-visible-tasks.d.ts +2 -0
  97. package/dist/helpers/compare-dates.d.ts +1 -0
  98. package/dist/helpers/copy-tasks.d.ts +2 -0
  99. package/dist/helpers/count-holidays.d.ts +2 -0
  100. package/dist/helpers/date-helper.d.ts +4 -0
  101. package/dist/helpers/generate-triangle-points.d.ts +1 -0
  102. package/dist/helpers/get-all-descendants.d.ts +2 -0
  103. package/dist/helpers/get-change-task-metadata.d.ts +13 -0
  104. package/dist/helpers/get-childs-and-roots.d.ts +2 -0
  105. package/dist/helpers/get-critical-path.d.ts +2 -0
  106. package/dist/helpers/get-date-by-offset.d.ts +2 -0
  107. package/dist/helpers/get-dates-diff.d.ts +2 -0
  108. package/dist/helpers/get-dependency-map.d.ts +2 -0
  109. package/dist/helpers/get-map-task-to-coordinates.d.ts +3 -0
  110. package/dist/helpers/get-map-task-to-global-index.d.ts +5 -0
  111. package/dist/helpers/get-map-task-to-nested-index.d.ts +2 -0
  112. package/dist/helpers/get-map-task-to-row-index.d.ts +6 -0
  113. package/dist/helpers/get-min-and-max-childs-map.d.ts +2 -0
  114. package/dist/helpers/get-next-working-date.d.ts +2 -0
  115. package/dist/helpers/get-previous-working-date.d.ts +2 -0
  116. package/dist/helpers/get-relation-circle-by-coordinates.d.ts +2 -0
  117. package/dist/helpers/get-task-coordinates.d.ts +4 -0
  118. package/dist/helpers/get-task-row-index.d.ts +2 -0
  119. package/dist/helpers/get-tasks-map.d.ts +5 -0
  120. package/dist/helpers/move-helper.d.ts +4 -0
  121. package/dist/helpers/obj-helper.d.ts +1 -0
  122. package/dist/helpers/round-task-dates.d.ts +2 -0
  123. package/dist/helpers/sort-tasks.d.ts +2 -0
  124. package/dist/helpers/use-optimized-list.d.ts +24 -0
  125. package/dist/helpers/use-task-tooltip.d.ts +12 -0
  126. package/dist/i18n.d.ts +2 -0
  127. package/dist/index.d.ts +14 -0
  128. package/dist/locales/en.d.ts +2 -0
  129. package/dist/locales/index.d.ts +1 -0
  130. package/dist/selected-tasks/get-parent-tasks.d.ts +2 -0
  131. package/dist/selected-tasks/get-selected-tasks.d.ts +2 -0
  132. package/dist/selected-tasks/get-tasks-with-descendants.d.ts +2 -0
  133. package/dist/style.css +686 -0
  134. package/dist/suggestions/change-start-and-end-descendants.d.ts +10 -0
  135. package/dist/test/date-helper.test.d.ts +1 -0
  136. package/dist/test/gant.test.d.ts +1 -0
  137. package/dist/types/common-types.d.ts +114 -0
  138. package/dist/types/gantt-task-actions.d.ts +9 -0
  139. package/dist/types/index.d.ts +6 -0
  140. package/dist/types/internal-types.d.ts +222 -0
  141. package/dist/types/public-types.d.ts +538 -0
  142. package/dist/types/theme-locale.d.ts +30 -0
  143. package/dist/types/theme-types.d.ts +84 -0
  144. package/package.json +113 -0
@@ -0,0 +1,114 @@
1
+ import { CSSProperties } from "react";
2
+ import type { Locale as DateLocale } from "date-fns";
3
+ export type TaskBarMoveAction = "progress" | "end" | "start" | "move";
4
+ export type RelationMoveTarget = "startOfTask" | "endOfTask";
5
+ export declare enum ViewMode {
6
+ Hour = "Hour",
7
+ QuarterDay = "Quarter Day",
8
+ HalfDay = "Half Day",
9
+ Day = "Day",
10
+ /** ISO-8601 week */
11
+ Week = "Week",
12
+ Month = "Month",
13
+ Year = "Year"
14
+ }
15
+ export type TaskType = "task" | "milestone" | "project";
16
+ export type TaskId = string;
17
+ export interface Dependency {
18
+ sourceId: string;
19
+ sourceTarget: RelationMoveTarget;
20
+ ownTarget: RelationMoveTarget;
21
+ }
22
+ /**
23
+ * date-fns formats
24
+ */
25
+ export interface DateFormats {
26
+ dateColumnFormat: string;
27
+ dayBottomHeaderFormat: string;
28
+ dayTopHeaderFormat: string;
29
+ hourBottomHeaderFormat: string;
30
+ monthBottomHeaderFormat: string;
31
+ monthTopHeaderFormat: string;
32
+ weekBottomHeader: (date: Date, weekNumber: number, locale?: DateLocale) => string;
33
+ }
34
+ export interface Task {
35
+ id: TaskId;
36
+ type: TaskType;
37
+ name: string;
38
+ start: Date;
39
+ end: Date;
40
+ /**
41
+ * From 0 to 100
42
+ */
43
+ progress: number;
44
+ assignees?: string[];
45
+ style?: CSSProperties;
46
+ isDisabled?: boolean;
47
+ /**
48
+ * Project or task
49
+ */
50
+ parent?: string;
51
+ dependencies?: Dependency[];
52
+ comparisonDates?: {
53
+ start: Date;
54
+ end: Date | null;
55
+ };
56
+ hideChildren?: boolean;
57
+ displayOrder?: number;
58
+ comparisonLevel?: number;
59
+ payload?: Record<string, string>;
60
+ }
61
+ export interface EmptyTask {
62
+ id: string;
63
+ type: "empty";
64
+ name: string;
65
+ parent?: string;
66
+ comparisonLevel?: number;
67
+ displayOrder?: number;
68
+ isDisabled?: boolean;
69
+ }
70
+ export type RenderTask = Task | EmptyTask;
71
+ export type ChildByLevelMap = Map<number, Map<string, RenderTask[]>>;
72
+ export type RootMapByLevel = Map<number, RenderTask[]>;
73
+ export interface DateSetup {
74
+ dateFormats: DateFormats;
75
+ dateLocale?: DateLocale;
76
+ isUnknownDates: boolean;
77
+ preStepsCount: number;
78
+ viewMode: ViewMode;
79
+ }
80
+ export interface Distances {
81
+ actionColumnWidth: number;
82
+ arrowIndent: number;
83
+ barCornerRadius: number;
84
+ /**
85
+ * How many of row width can be taken by task.
86
+ * From 0 to 100
87
+ */
88
+ barFill: number;
89
+ columnWidth: number;
90
+ barComparisonTaskHeight: number;
91
+ barComparisonTaskBorderHeight: number;
92
+ barComparisonTaskYOffset: number;
93
+ contextMenuIconWidth: number;
94
+ contextMenuOptionHeight: number;
95
+ contextMenuSidePadding: number;
96
+ dateCellWidth: number;
97
+ dependenciesCellWidth: number;
98
+ expandIconWidth: number;
99
+ handleWidth: number;
100
+ headerHeight: number;
101
+ ganttHeight?: number;
102
+ minimumRowDisplayed: number;
103
+ nestedTaskNameOffset: number;
104
+ relationCircleOffset: number;
105
+ relationCircleRadius: number;
106
+ rowHeight: number;
107
+ tableWidth?: number;
108
+ titleCellWidth: number;
109
+ viewModeYearOffsetYears?: number;
110
+ viewModeMonthOffsetMonths?: number;
111
+ viewModeWeekOffsetWeeks?: number;
112
+ viewModeDayOffsetDays?: number;
113
+ viewModeHourOffsetHours?: number;
114
+ }
@@ -0,0 +1,9 @@
1
+ import { RelationMoveTarget, Task } from "./common-types";
2
+ export type GanttRelationEvent = {
3
+ target: RelationMoveTarget;
4
+ task: Task;
5
+ startX: number;
6
+ startY: number;
7
+ endX: number;
8
+ endY: number;
9
+ };
@@ -0,0 +1,6 @@
1
+ export * from "./common-types";
2
+ export * from "./theme-types";
3
+ export * from "./theme-locale";
4
+ export * from "./public-types";
5
+ export * from "./internal-types";
6
+ export * from "./gantt-task-actions";
@@ -0,0 +1,222 @@
1
+ import { ChildByLevelMap, DateSetup, Distances, RelationMoveTarget, Task, TaskBarMoveAction, RenderTask } from "./common-types";
2
+ import { CSSProperties, MouseEvent, RefObject } from "react";
3
+ import { OptimizedListParams } from "../helpers/use-optimized-list";
4
+ import { AllowReorderTask, Column, GanttRenderIconsProps, InsertTaskPosition } from "./public-types";
5
+ export interface ExpandedDependent {
6
+ containerHeight: number;
7
+ containerY: number;
8
+ innerFromY: number;
9
+ innerToY: number;
10
+ marginBetweenTasks: number | null;
11
+ dependent: Task;
12
+ dependentTarget: RelationMoveTarget;
13
+ ownTarget: RelationMoveTarget;
14
+ }
15
+ export type CriticalPaths = Map<number, CriticalPath>;
16
+ export type ChangeInProgress = {
17
+ action: TaskBarMoveAction;
18
+ additionalLeftSpace: number;
19
+ additionalRightSpace: number;
20
+ changedTask: Task;
21
+ coordinates: TaskCoordinates;
22
+ coordinatesDiff: number;
23
+ initialCoordinates: TaskCoordinates;
24
+ lastClientX: number;
25
+ startX: number;
26
+ task: Task;
27
+ taskRootNode: Element;
28
+ tsDiff: number;
29
+ };
30
+ export type TaskComparisonDatesCoordinates = {
31
+ /**
32
+ * Top border of the comparison task relative to the root svg
33
+ */
34
+ y: number;
35
+ /**
36
+ * Left border of the comparison task relative to the root svg
37
+ */
38
+ x: number;
39
+ /**
40
+ * Width of the comparison task
41
+ */
42
+ width: number;
43
+ /**
44
+ * Height of the comparison task
45
+ */
46
+ height: number;
47
+ };
48
+ export type TaskCoordinates = {
49
+ /**
50
+ * Width of inner svg wrapper
51
+ */
52
+ containerWidth: number;
53
+ /**
54
+ * Left border of inner svg wrapper relative to the root svg
55
+ */
56
+ containerX: number;
57
+ /**
58
+ * Left border relative to the wrapper svg
59
+ */
60
+ innerX1: number;
61
+ /**
62
+ * Right border relative to the wrapper svg
63
+ */
64
+ innerX2: number;
65
+ /**
66
+ * Top border of inner svg wrapper relative to the root svg
67
+ */
68
+ levelY: number;
69
+ /**
70
+ * Width of the progress bar
71
+ */
72
+ progressWidth: number;
73
+ /**
74
+ * Left border of the progress bar relative to the root svg
75
+ */
76
+ progressX: number;
77
+ /**
78
+ * Width of the task
79
+ */
80
+ width: number;
81
+ /**
82
+ * Left border of the task relative to the root svg
83
+ */
84
+ x1: number;
85
+ /**
86
+ * Right border of the task relative to the root svg
87
+ */
88
+ x2: number;
89
+ /**
90
+ * Top border of the task relative to the root svg
91
+ */
92
+ y: number;
93
+ /**
94
+ * Comparison dates coordinates
95
+ */
96
+ comparisonDates?: TaskComparisonDatesCoordinates;
97
+ };
98
+ export interface ExpandedDependency {
99
+ containerHeight: number;
100
+ containerY: number;
101
+ innerFromY: number;
102
+ innerToY: number;
103
+ marginBetweenTasks: number | null;
104
+ ownTarget: RelationMoveTarget;
105
+ source: Task;
106
+ sourceTarget: RelationMoveTarget;
107
+ }
108
+ /**
109
+ * comparison level -> task id -> {
110
+ * x1: number;
111
+ * x2: number;
112
+ * y: number;
113
+ * }
114
+ */
115
+ export type MapTaskToCoordinates = Map<number, Map<string, TaskCoordinates>>;
116
+ export type TaskToGlobalIndexMap = Map<number, Map<string, number>>;
117
+ export type TaskToRowIndexMap = Map<number, Map<string, number>>;
118
+ export type RowIndexToTaskMap = Map<number, Map<number, RenderTask>>;
119
+ export type GlobalRowIndexToTaskMap = Map<number, RenderTask>;
120
+ export type TaskMapByLevel = Map<number, Map<string, RenderTask>>;
121
+ export type MapTaskToNestedIndex = Map<number, Map<string, [number, string]>>;
122
+ export type DependencyMap = Map<number, Map<string, ExpandedDependency[]>>;
123
+ export type DependentMap = Map<number, Map<string, ExpandedDependent[]>>;
124
+ export type DependencyMargins = Map<number, Map<string, Map<string, number>>>;
125
+ export type CriticalPath = {
126
+ tasks: Set<string>;
127
+ dependencies: Map<string, Set<string>>;
128
+ };
129
+ export interface TaskListTableProps {
130
+ ganttRef: RefObject<HTMLDivElement>;
131
+ getTableRowProps: (task: RenderTask, index: number) => TaskListTableRowProps;
132
+ canMoveTasks: boolean;
133
+ allowMoveTask: AllowReorderTask;
134
+ childTasksMap: ChildByLevelMap;
135
+ columns: readonly Column[];
136
+ cutIdsMirror: Readonly<Record<string, true>>;
137
+ dateSetup: DateSetup;
138
+ dependencyMap: DependencyMap;
139
+ distances: Distances;
140
+ fullRowHeight: number;
141
+ ganttFullHeight: number;
142
+ getTaskCurrentState: (task: Task) => Task;
143
+ handleAddTask: (task: Task) => void;
144
+ handleDeleteTasks: (task: RenderTask[]) => void;
145
+ handleEditTask: (task: RenderTask) => void;
146
+ handleMoveTaskBefore: (target: RenderTask, taskForMove: RenderTask) => void;
147
+ handleMoveTaskAfter: (target: RenderTask, taskForMove: RenderTask) => void;
148
+ handleMoveTasksInside: (parent: Task, childs: readonly RenderTask[]) => void;
149
+ handleOpenContextMenu: (task: RenderTask, clientX: number, clientY: number) => void;
150
+ icons?: Partial<GanttRenderIconsProps>;
151
+ isShowTaskNumbers: boolean;
152
+ mapTaskToNestedIndex: MapTaskToNestedIndex;
153
+ onClick: (task: RenderTask) => void;
154
+ onExpanderClick: (task: Task) => void;
155
+ renderedIndexes: OptimizedListParams | null;
156
+ scrollToTask: (task: Task) => void;
157
+ selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
158
+ selectedIdsMirror: Readonly<Record<string, true>>;
159
+ taskListWidth: number;
160
+ tasks: readonly RenderTask[];
161
+ }
162
+ export type TaskListTableRowProps = {
163
+ columns: readonly Column[];
164
+ dateSetup: DateSetup;
165
+ dependencyMap: DependencyMap;
166
+ depth: number;
167
+ distances: Distances;
168
+ fullRowHeight: number;
169
+ getTaskCurrentState: (task: Task) => Task;
170
+ handleAddTask: (task: Task) => void;
171
+ handleDeleteTasks: (task: RenderTask[]) => void;
172
+ handleEditTask: (task: RenderTask) => void;
173
+ moveHandleProps?: any;
174
+ moveOverPosition?: InsertTaskPosition;
175
+ handleOpenContextMenu: (task: RenderTask, clientX: number, clientY: number) => void;
176
+ hasChildren: boolean;
177
+ icons?: Partial<GanttRenderIconsProps>;
178
+ indexStr: string;
179
+ isDragging?: boolean;
180
+ isOverlay?: boolean;
181
+ isClosed: boolean;
182
+ isCut: boolean;
183
+ isEven: boolean;
184
+ isSelected: boolean;
185
+ isShowTaskNumbers: boolean;
186
+ onClick: (task: RenderTask) => void;
187
+ onExpanderClick: (task: Task) => void;
188
+ scrollToTask: (task: Task) => void;
189
+ selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
190
+ style?: CSSProperties;
191
+ task: RenderTask;
192
+ };
193
+ export interface TaskListHeaderProps {
194
+ headerHeight: number;
195
+ columns: readonly Column[];
196
+ canMoveTasks: boolean;
197
+ canResizeColumns: boolean;
198
+ onColumnResizeStart: (columnIndex: number, clientX: number) => void;
199
+ }
200
+ export type MinAndMaxChildsOfTask = [
201
+ [
202
+ /**
203
+ * First min
204
+ */
205
+ Task | null,
206
+ /**
207
+ * Second min
208
+ */
209
+ Task | null
210
+ ],
211
+ [
212
+ /**
213
+ * First max
214
+ */
215
+ Task | null,
216
+ /**
217
+ * Second max
218
+ */
219
+ Task | null
220
+ ]
221
+ ];
222
+ export type MinAndMaxChildsMap = Map<number, Map<string, MinAndMaxChildsOfTask>>;