gantt-lib 0.91.0 → 0.101.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.
- package/dist/core/scheduling/index.d.mts +1 -1
- package/dist/core/scheduling/index.d.ts +1 -1
- package/dist/{index-CKJZfeDv.d.mts → index-CCzxqxfE.d.mts} +1 -1
- package/dist/{index-CKJZfeDv.d.ts → index-CCzxqxfE.d.ts} +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +82 -9
- package/dist/index.d.ts +82 -9
- package/dist/index.js +762 -345
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +715 -299
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +185 -8
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-
|
|
3
|
-
export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-
|
|
2
|
+
import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CCzxqxfE.mjs';
|
|
3
|
+
export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CCzxqxfE.mjs';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
6
6
|
|
|
@@ -314,6 +314,7 @@ interface TaskListColumnContext<TTask extends Task> {
|
|
|
314
314
|
task: TTask;
|
|
315
315
|
rowIndex: number;
|
|
316
316
|
isEditing: boolean;
|
|
317
|
+
editStartValue?: string;
|
|
317
318
|
openEditor: () => void;
|
|
318
319
|
closeEditor: () => void;
|
|
319
320
|
updateTask: (patch: Partial<TTask>) => void;
|
|
@@ -323,12 +324,53 @@ type TaskListColumn<TTask extends Task> = TaskListColumnAnchor & {
|
|
|
323
324
|
header: ReactNode;
|
|
324
325
|
width?: number;
|
|
325
326
|
minWidth?: number;
|
|
327
|
+
align?: 'left' | 'center' | 'right';
|
|
326
328
|
editable?: boolean;
|
|
327
329
|
renderCell: (ctx: TaskListColumnContext<TTask>) => ReactNode;
|
|
328
330
|
renderEditor?: (ctx: TaskListColumnContext<TTask>) => ReactNode;
|
|
329
331
|
meta?: Record<string, unknown>;
|
|
330
332
|
};
|
|
331
333
|
|
|
334
|
+
interface TableMatrixColumnGroup {
|
|
335
|
+
id: string;
|
|
336
|
+
header: React$1.ReactNode;
|
|
337
|
+
width?: number;
|
|
338
|
+
className?: string;
|
|
339
|
+
}
|
|
340
|
+
interface TableMatrixColumn<TTask extends Task = Task> {
|
|
341
|
+
id: string;
|
|
342
|
+
header: React$1.ReactNode;
|
|
343
|
+
width: number;
|
|
344
|
+
groupId?: string;
|
|
345
|
+
align?: 'left' | 'center' | 'right';
|
|
346
|
+
className?: string;
|
|
347
|
+
headerClassName?: string;
|
|
348
|
+
cellClassName?: string | ((task: TTask) => string | undefined);
|
|
349
|
+
renderCell: (task: TTask) => React$1.ReactNode;
|
|
350
|
+
}
|
|
351
|
+
interface TableMatrixCellClickContext<TTask extends Task = Task> {
|
|
352
|
+
task: TTask;
|
|
353
|
+
column: TableMatrixColumn<TTask>;
|
|
354
|
+
rowIndex: number;
|
|
355
|
+
columnIndex: number;
|
|
356
|
+
event: React$1.MouseEvent<HTMLDivElement>;
|
|
357
|
+
}
|
|
358
|
+
interface TableMatrixProps<TTask extends Task = Task> {
|
|
359
|
+
tasks: TTask[];
|
|
360
|
+
allTasks?: TTask[];
|
|
361
|
+
columns: Array<TableMatrixColumn<TTask>>;
|
|
362
|
+
columnGroups?: Array<TableMatrixColumnGroup>;
|
|
363
|
+
rowHeight: number;
|
|
364
|
+
headerHeight: number;
|
|
365
|
+
bodyMinHeight?: number | string;
|
|
366
|
+
selectedTaskId?: string | null;
|
|
367
|
+
onTaskSelect?: (taskId: string | null) => void;
|
|
368
|
+
onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
|
|
369
|
+
highlightedTaskIds?: Set<string>;
|
|
370
|
+
filterMode?: 'highlight' | 'hide';
|
|
371
|
+
}
|
|
372
|
+
declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, bodyMinHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
|
|
373
|
+
|
|
332
374
|
/**
|
|
333
375
|
* Task data structure for Gantt chart
|
|
334
376
|
*/
|
|
@@ -420,13 +462,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
|
|
|
420
462
|
/** Close the menu after click (default: true) */
|
|
421
463
|
closeOnSelect?: boolean;
|
|
422
464
|
}
|
|
423
|
-
interface
|
|
424
|
-
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
425
|
-
mode?: 'gantt';
|
|
465
|
+
interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
426
466
|
/** Array of tasks to display */
|
|
427
467
|
tasks: TTask[];
|
|
428
|
-
/** Width of each day column in pixels (default: 40) */
|
|
429
|
-
dayWidth?: number;
|
|
430
468
|
/** Height of each task row in pixels (default: 40) */
|
|
431
469
|
rowHeight?: number;
|
|
432
470
|
/** Height of the header row in pixels (default: 40) */
|
|
@@ -511,12 +549,39 @@ interface GanttModeProps<TTask extends Task = Task> {
|
|
|
511
549
|
hiddenTaskListColumns?: readonly TaskListColumnId[];
|
|
512
550
|
/** Additional commands rendered in the TaskList row three-dots menu */
|
|
513
551
|
taskListMenuCommands?: TaskListMenuCommand<TTask>[];
|
|
552
|
+
/** Hide row action controls in the TaskList for table-like read/edit presentations. */
|
|
553
|
+
hideTaskListRowActions?: boolean;
|
|
554
|
+
/** Global number of text lines the row height should accommodate in table-like presentations. */
|
|
555
|
+
rowContentLines?: number;
|
|
514
556
|
/** How task-list date pickers apply start/end edits (default: preserve-duration) */
|
|
515
557
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
516
558
|
/** Controlled callback for task-list date picker mode changes */
|
|
517
559
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
518
560
|
}
|
|
519
|
-
|
|
561
|
+
interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
562
|
+
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
563
|
+
mode?: 'gantt';
|
|
564
|
+
/** Width of each day column in pixels (default: 40) */
|
|
565
|
+
dayWidth?: number;
|
|
566
|
+
/** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
|
|
567
|
+
viewMode?: 'day' | 'week' | 'month';
|
|
568
|
+
/** Custom day configurations with explicit type (weekend or workday) */
|
|
569
|
+
customDays?: CustomDayConfig[];
|
|
570
|
+
/** Optional base weekend predicate (checked before customDays overrides) */
|
|
571
|
+
isWeekend?: (date: Date) => boolean;
|
|
572
|
+
/** Считать duration в рабочих днях, исключая выходные (default: true) */
|
|
573
|
+
businessDays?: boolean;
|
|
574
|
+
}
|
|
575
|
+
interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
576
|
+
mode: 'table-matrix';
|
|
577
|
+
/** Width of the arbitrary right-side matrix columns. */
|
|
578
|
+
matrixColumns: Array<TableMatrixColumn<TTask>>;
|
|
579
|
+
/** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
|
|
580
|
+
matrixColumnGroups?: Array<TableMatrixColumnGroup>;
|
|
581
|
+
/** Called when any data cell in the right-side matrix is clicked. */
|
|
582
|
+
onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
|
|
583
|
+
}
|
|
584
|
+
type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
|
|
520
585
|
interface ExportToPdfOptions {
|
|
521
586
|
/** Structured header displayed above the exported chart */
|
|
522
587
|
header?: ExportToPdfHeaderOptions;
|
|
@@ -762,6 +827,8 @@ interface TaskListProps {
|
|
|
762
827
|
onInsertAfter?: (taskId: string, newTask: Task) => void;
|
|
763
828
|
/** Callback when tasks are reordered via drag in the task list */
|
|
764
829
|
onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
|
|
830
|
+
/** Disable task row drag/reorder in the task list (default: false) */
|
|
831
|
+
disableTaskDrag?: boolean;
|
|
765
832
|
/** ID of task that should enter edit mode on mount (for auto-edit after insert) */
|
|
766
833
|
editingTaskId?: string | null;
|
|
767
834
|
/** Enable add task button at bottom of task list (default: true) */
|
|
@@ -804,6 +871,12 @@ interface TaskListProps {
|
|
|
804
871
|
hiddenTaskListColumns?: readonly TaskListColumnId[];
|
|
805
872
|
/** Additional commands rendered in each row three-dots menu */
|
|
806
873
|
taskListMenuCommands?: TaskListMenuCommand<Task>[];
|
|
874
|
+
/** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
|
|
875
|
+
hideTaskListRowActions?: boolean;
|
|
876
|
+
/** Global number of visible content lines used to size every row consistently. */
|
|
877
|
+
rowContentLines?: number;
|
|
878
|
+
/** Optional minimum height for the data body area below the sticky header. */
|
|
879
|
+
bodyMinHeight?: number | string;
|
|
807
880
|
/** How task-list date pickers apply start/end edits */
|
|
808
881
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
809
882
|
/** Controlled callback for task-list date picker mode changes */
|
|
@@ -1305,4 +1378,4 @@ interface VisibleReorderPosition {
|
|
|
1305
1378
|
*/
|
|
1306
1379
|
declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
|
|
1307
1380
|
|
|
1308
|
-
export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
|
|
1381
|
+
export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, TableMatrix, type TableMatrixCellClickContext, type TableMatrixColumn, type TableMatrixColumnGroup, type TableMatrixModeProps, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-
|
|
3
|
-
export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-
|
|
2
|
+
import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CCzxqxfE.js';
|
|
3
|
+
export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CCzxqxfE.js';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
6
6
|
|
|
@@ -314,6 +314,7 @@ interface TaskListColumnContext<TTask extends Task> {
|
|
|
314
314
|
task: TTask;
|
|
315
315
|
rowIndex: number;
|
|
316
316
|
isEditing: boolean;
|
|
317
|
+
editStartValue?: string;
|
|
317
318
|
openEditor: () => void;
|
|
318
319
|
closeEditor: () => void;
|
|
319
320
|
updateTask: (patch: Partial<TTask>) => void;
|
|
@@ -323,12 +324,53 @@ type TaskListColumn<TTask extends Task> = TaskListColumnAnchor & {
|
|
|
323
324
|
header: ReactNode;
|
|
324
325
|
width?: number;
|
|
325
326
|
minWidth?: number;
|
|
327
|
+
align?: 'left' | 'center' | 'right';
|
|
326
328
|
editable?: boolean;
|
|
327
329
|
renderCell: (ctx: TaskListColumnContext<TTask>) => ReactNode;
|
|
328
330
|
renderEditor?: (ctx: TaskListColumnContext<TTask>) => ReactNode;
|
|
329
331
|
meta?: Record<string, unknown>;
|
|
330
332
|
};
|
|
331
333
|
|
|
334
|
+
interface TableMatrixColumnGroup {
|
|
335
|
+
id: string;
|
|
336
|
+
header: React$1.ReactNode;
|
|
337
|
+
width?: number;
|
|
338
|
+
className?: string;
|
|
339
|
+
}
|
|
340
|
+
interface TableMatrixColumn<TTask extends Task = Task> {
|
|
341
|
+
id: string;
|
|
342
|
+
header: React$1.ReactNode;
|
|
343
|
+
width: number;
|
|
344
|
+
groupId?: string;
|
|
345
|
+
align?: 'left' | 'center' | 'right';
|
|
346
|
+
className?: string;
|
|
347
|
+
headerClassName?: string;
|
|
348
|
+
cellClassName?: string | ((task: TTask) => string | undefined);
|
|
349
|
+
renderCell: (task: TTask) => React$1.ReactNode;
|
|
350
|
+
}
|
|
351
|
+
interface TableMatrixCellClickContext<TTask extends Task = Task> {
|
|
352
|
+
task: TTask;
|
|
353
|
+
column: TableMatrixColumn<TTask>;
|
|
354
|
+
rowIndex: number;
|
|
355
|
+
columnIndex: number;
|
|
356
|
+
event: React$1.MouseEvent<HTMLDivElement>;
|
|
357
|
+
}
|
|
358
|
+
interface TableMatrixProps<TTask extends Task = Task> {
|
|
359
|
+
tasks: TTask[];
|
|
360
|
+
allTasks?: TTask[];
|
|
361
|
+
columns: Array<TableMatrixColumn<TTask>>;
|
|
362
|
+
columnGroups?: Array<TableMatrixColumnGroup>;
|
|
363
|
+
rowHeight: number;
|
|
364
|
+
headerHeight: number;
|
|
365
|
+
bodyMinHeight?: number | string;
|
|
366
|
+
selectedTaskId?: string | null;
|
|
367
|
+
onTaskSelect?: (taskId: string | null) => void;
|
|
368
|
+
onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
|
|
369
|
+
highlightedTaskIds?: Set<string>;
|
|
370
|
+
filterMode?: 'highlight' | 'hide';
|
|
371
|
+
}
|
|
372
|
+
declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, bodyMinHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
|
|
373
|
+
|
|
332
374
|
/**
|
|
333
375
|
* Task data structure for Gantt chart
|
|
334
376
|
*/
|
|
@@ -420,13 +462,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
|
|
|
420
462
|
/** Close the menu after click (default: true) */
|
|
421
463
|
closeOnSelect?: boolean;
|
|
422
464
|
}
|
|
423
|
-
interface
|
|
424
|
-
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
425
|
-
mode?: 'gantt';
|
|
465
|
+
interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
426
466
|
/** Array of tasks to display */
|
|
427
467
|
tasks: TTask[];
|
|
428
|
-
/** Width of each day column in pixels (default: 40) */
|
|
429
|
-
dayWidth?: number;
|
|
430
468
|
/** Height of each task row in pixels (default: 40) */
|
|
431
469
|
rowHeight?: number;
|
|
432
470
|
/** Height of the header row in pixels (default: 40) */
|
|
@@ -511,12 +549,39 @@ interface GanttModeProps<TTask extends Task = Task> {
|
|
|
511
549
|
hiddenTaskListColumns?: readonly TaskListColumnId[];
|
|
512
550
|
/** Additional commands rendered in the TaskList row three-dots menu */
|
|
513
551
|
taskListMenuCommands?: TaskListMenuCommand<TTask>[];
|
|
552
|
+
/** Hide row action controls in the TaskList for table-like read/edit presentations. */
|
|
553
|
+
hideTaskListRowActions?: boolean;
|
|
554
|
+
/** Global number of text lines the row height should accommodate in table-like presentations. */
|
|
555
|
+
rowContentLines?: number;
|
|
514
556
|
/** How task-list date pickers apply start/end edits (default: preserve-duration) */
|
|
515
557
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
516
558
|
/** Controlled callback for task-list date picker mode changes */
|
|
517
559
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
518
560
|
}
|
|
519
|
-
|
|
561
|
+
interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
562
|
+
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
563
|
+
mode?: 'gantt';
|
|
564
|
+
/** Width of each day column in pixels (default: 40) */
|
|
565
|
+
dayWidth?: number;
|
|
566
|
+
/** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
|
|
567
|
+
viewMode?: 'day' | 'week' | 'month';
|
|
568
|
+
/** Custom day configurations with explicit type (weekend or workday) */
|
|
569
|
+
customDays?: CustomDayConfig[];
|
|
570
|
+
/** Optional base weekend predicate (checked before customDays overrides) */
|
|
571
|
+
isWeekend?: (date: Date) => boolean;
|
|
572
|
+
/** Считать duration в рабочих днях, исключая выходные (default: true) */
|
|
573
|
+
businessDays?: boolean;
|
|
574
|
+
}
|
|
575
|
+
interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
576
|
+
mode: 'table-matrix';
|
|
577
|
+
/** Width of the arbitrary right-side matrix columns. */
|
|
578
|
+
matrixColumns: Array<TableMatrixColumn<TTask>>;
|
|
579
|
+
/** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
|
|
580
|
+
matrixColumnGroups?: Array<TableMatrixColumnGroup>;
|
|
581
|
+
/** Called when any data cell in the right-side matrix is clicked. */
|
|
582
|
+
onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
|
|
583
|
+
}
|
|
584
|
+
type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
|
|
520
585
|
interface ExportToPdfOptions {
|
|
521
586
|
/** Structured header displayed above the exported chart */
|
|
522
587
|
header?: ExportToPdfHeaderOptions;
|
|
@@ -762,6 +827,8 @@ interface TaskListProps {
|
|
|
762
827
|
onInsertAfter?: (taskId: string, newTask: Task) => void;
|
|
763
828
|
/** Callback when tasks are reordered via drag in the task list */
|
|
764
829
|
onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
|
|
830
|
+
/** Disable task row drag/reorder in the task list (default: false) */
|
|
831
|
+
disableTaskDrag?: boolean;
|
|
765
832
|
/** ID of task that should enter edit mode on mount (for auto-edit after insert) */
|
|
766
833
|
editingTaskId?: string | null;
|
|
767
834
|
/** Enable add task button at bottom of task list (default: true) */
|
|
@@ -804,6 +871,12 @@ interface TaskListProps {
|
|
|
804
871
|
hiddenTaskListColumns?: readonly TaskListColumnId[];
|
|
805
872
|
/** Additional commands rendered in each row three-dots menu */
|
|
806
873
|
taskListMenuCommands?: TaskListMenuCommand<Task>[];
|
|
874
|
+
/** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
|
|
875
|
+
hideTaskListRowActions?: boolean;
|
|
876
|
+
/** Global number of visible content lines used to size every row consistently. */
|
|
877
|
+
rowContentLines?: number;
|
|
878
|
+
/** Optional minimum height for the data body area below the sticky header. */
|
|
879
|
+
bodyMinHeight?: number | string;
|
|
807
880
|
/** How task-list date pickers apply start/end edits */
|
|
808
881
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
809
882
|
/** Controlled callback for task-list date picker mode changes */
|
|
@@ -1305,4 +1378,4 @@ interface VisibleReorderPosition {
|
|
|
1305
1378
|
*/
|
|
1306
1379
|
declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
|
|
1307
1380
|
|
|
1308
|
-
export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
|
|
1381
|
+
export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, TableMatrix, type TableMatrixCellClickContext, type TableMatrixColumn, type TableMatrixColumnGroup, type TableMatrixModeProps, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
|