gantt-lib 0.86.0 → 0.87.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/index.css.map +1 -1
- package/dist/index.d.mts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +317 -150
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +317 -150
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +26 -8
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2837,6 +2837,7 @@ var TaskRow = React2.memo(
|
|
|
2837
2837
|
"div",
|
|
2838
2838
|
{
|
|
2839
2839
|
"data-filter-match": isFilterMatch ? "true" : "false",
|
|
2840
|
+
"data-gantt-task-row-id": task.id,
|
|
2840
2841
|
className: `gantt-tr-row ${isFilterMatch ? "gantt-tr-row-filter-match" : ""}`,
|
|
2841
2842
|
style: { height: `${rowHeight}px` },
|
|
2842
2843
|
children: [
|
|
@@ -4641,6 +4642,8 @@ var TaskListRow = React9.memo(
|
|
|
4641
4642
|
isFilterMatch = false,
|
|
4642
4643
|
isFilterHideMode = false,
|
|
4643
4644
|
resolvedColumns,
|
|
4645
|
+
isTaskSelected = false,
|
|
4646
|
+
onTaskSelectionChange,
|
|
4644
4647
|
taskListMenuCommands = []
|
|
4645
4648
|
}) => {
|
|
4646
4649
|
const [editingColumnId, setEditingColumnId] = useState4(null);
|
|
@@ -5434,6 +5437,23 @@ var TaskListRow = React9.memo(
|
|
|
5434
5437
|
const isSelectedDependencyOwner = selectedChip != null && selectedChip.successorId === task.id;
|
|
5435
5438
|
const startDateISO = toISODate2(normalizedTask.startDate);
|
|
5436
5439
|
const endDateISO = editingDuration ? getEndDate(normalizedTask.startDate, durationValue) : toISODate2(normalizedTask.endDate);
|
|
5440
|
+
const selectionCell = /* @__PURE__ */ jsx12(
|
|
5441
|
+
"div",
|
|
5442
|
+
{
|
|
5443
|
+
className: "gantt-tl-cell gantt-tl-cell-selection",
|
|
5444
|
+
onClick: (e) => e.stopPropagation(),
|
|
5445
|
+
children: /* @__PURE__ */ jsx12(
|
|
5446
|
+
"input",
|
|
5447
|
+
{
|
|
5448
|
+
type: "checkbox",
|
|
5449
|
+
className: "gantt-tl-selection-checkbox",
|
|
5450
|
+
"aria-label": `\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 ${taskNumber ? `${taskNumber}. ` : ""}${task.name}`,
|
|
5451
|
+
checked: isTaskSelected,
|
|
5452
|
+
onChange: (event) => onTaskSelectionChange?.(task.id, event.target.checked)
|
|
5453
|
+
}
|
|
5454
|
+
)
|
|
5455
|
+
}
|
|
5456
|
+
);
|
|
5437
5457
|
const numberCell = /* @__PURE__ */ jsxs9(
|
|
5438
5458
|
"div",
|
|
5439
5459
|
{
|
|
@@ -6151,6 +6171,7 @@ var TaskListRow = React9.memo(
|
|
|
6151
6171
|
}
|
|
6152
6172
|
);
|
|
6153
6173
|
const builtInCells = {
|
|
6174
|
+
selection: selectionCell,
|
|
6154
6175
|
number: numberCell,
|
|
6155
6176
|
name: nameCell,
|
|
6156
6177
|
startDate: startDateCell,
|
|
@@ -6177,6 +6198,7 @@ var TaskListRow = React9.memo(
|
|
|
6177
6198
|
isParent ? "gantt-tl-row-parent" : ""
|
|
6178
6199
|
].filter(Boolean).join(" "),
|
|
6179
6200
|
style: { minHeight: `${rowHeight}px`, position: "relative" },
|
|
6201
|
+
"data-gantt-task-row-id": task.id,
|
|
6180
6202
|
onClick: handleRowClickInternal,
|
|
6181
6203
|
onKeyDown: handleRowKeyDown,
|
|
6182
6204
|
onDragOver: (e) => onDragOver?.(rowIndex, e),
|
|
@@ -6302,6 +6324,7 @@ var NewTaskRow = ({
|
|
|
6302
6324
|
|
|
6303
6325
|
// src/components/TaskList/columns/createBuiltInColumns.tsx
|
|
6304
6326
|
var BUILT_IN_COLUMN_WIDTHS = {
|
|
6327
|
+
selection: 36,
|
|
6305
6328
|
number: 40,
|
|
6306
6329
|
name: 200,
|
|
6307
6330
|
startDate: 90,
|
|
@@ -6312,7 +6335,7 @@ var BUILT_IN_COLUMN_WIDTHS = {
|
|
|
6312
6335
|
actions: 80
|
|
6313
6336
|
};
|
|
6314
6337
|
function createBuiltInColumns(opts) {
|
|
6315
|
-
|
|
6338
|
+
const columns = [
|
|
6316
6339
|
{ id: "number", header: "\u2116", width: BUILT_IN_COLUMN_WIDTHS.number, renderCell: () => null },
|
|
6317
6340
|
{ id: "name", header: "\u0418\u043C\u044F", width: BUILT_IN_COLUMN_WIDTHS.name, renderCell: () => null },
|
|
6318
6341
|
{ id: "startDate", header: "\u041D\u0430\u0447\u0430\u043B\u043E", width: BUILT_IN_COLUMN_WIDTHS.startDate, renderCell: () => null },
|
|
@@ -6321,6 +6344,15 @@ function createBuiltInColumns(opts) {
|
|
|
6321
6344
|
{ id: "progress", header: "%", width: BUILT_IN_COLUMN_WIDTHS.progress, renderCell: () => null },
|
|
6322
6345
|
{ id: "dependencies", header: null, width: BUILT_IN_COLUMN_WIDTHS.dependencies, renderCell: () => null }
|
|
6323
6346
|
];
|
|
6347
|
+
if (opts?.enableTaskMultiSelect) {
|
|
6348
|
+
columns.unshift({
|
|
6349
|
+
id: "selection",
|
|
6350
|
+
header: null,
|
|
6351
|
+
width: BUILT_IN_COLUMN_WIDTHS.selection,
|
|
6352
|
+
renderCell: () => null
|
|
6353
|
+
});
|
|
6354
|
+
}
|
|
6355
|
+
return columns;
|
|
6324
6356
|
}
|
|
6325
6357
|
|
|
6326
6358
|
// src/components/TaskList/columns/resolveTaskListColumns.ts
|
|
@@ -6381,6 +6413,7 @@ import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
|
6381
6413
|
var LINK_TYPE_ORDER2 = ["FS", "SS", "FF", "SF"];
|
|
6382
6414
|
var MIN_TASK_LIST_WIDTH = 530;
|
|
6383
6415
|
var BUILT_IN_CSS_CLASSES = {
|
|
6416
|
+
selection: "gantt-tl-cell-selection",
|
|
6384
6417
|
number: "gantt-tl-cell-number",
|
|
6385
6418
|
name: "gantt-tl-cell-name",
|
|
6386
6419
|
startDate: "gantt-tl-cell-date",
|
|
@@ -6456,6 +6489,30 @@ function getTaskNumber(tasks, taskIndex) {
|
|
|
6456
6489
|
}
|
|
6457
6490
|
return `${parentNumber}.${siblingIndex + 1}`;
|
|
6458
6491
|
}
|
|
6492
|
+
var SelectAllCheckbox = ({
|
|
6493
|
+
checked,
|
|
6494
|
+
indeterminate,
|
|
6495
|
+
onChange
|
|
6496
|
+
}) => {
|
|
6497
|
+
const ref = useRef6(null);
|
|
6498
|
+
useEffect6(() => {
|
|
6499
|
+
if (ref.current) {
|
|
6500
|
+
ref.current.indeterminate = indeterminate;
|
|
6501
|
+
}
|
|
6502
|
+
}, [indeterminate]);
|
|
6503
|
+
return /* @__PURE__ */ jsx14(
|
|
6504
|
+
"input",
|
|
6505
|
+
{
|
|
6506
|
+
ref,
|
|
6507
|
+
type: "checkbox",
|
|
6508
|
+
className: "gantt-tl-selection-checkbox",
|
|
6509
|
+
"aria-label": "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 \u0432\u0438\u0434\u0438\u043C\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",
|
|
6510
|
+
checked,
|
|
6511
|
+
onChange: (event) => onChange(event.target.checked),
|
|
6512
|
+
onClick: (event) => event.stopPropagation()
|
|
6513
|
+
}
|
|
6514
|
+
);
|
|
6515
|
+
};
|
|
6459
6516
|
var TaskList = ({
|
|
6460
6517
|
tasks,
|
|
6461
6518
|
rowHeight,
|
|
@@ -6486,6 +6543,9 @@ var TaskList = ({
|
|
|
6486
6543
|
isWeekend: isWeekend3,
|
|
6487
6544
|
businessDays,
|
|
6488
6545
|
highlightedTaskIds = /* @__PURE__ */ new Set(),
|
|
6546
|
+
enableTaskMultiSelect = false,
|
|
6547
|
+
selectedTaskIds,
|
|
6548
|
+
onSelectedTaskIdsChange,
|
|
6489
6549
|
filterMode = "highlight",
|
|
6490
6550
|
filteredTaskIds = /* @__PURE__ */ new Set(),
|
|
6491
6551
|
isFilterActive = false,
|
|
@@ -6493,6 +6553,14 @@ var TaskList = ({
|
|
|
6493
6553
|
hiddenTaskListColumns,
|
|
6494
6554
|
taskListMenuCommands
|
|
6495
6555
|
}) => {
|
|
6556
|
+
const [internalSelectedTaskIds, setInternalSelectedTaskIds] = useState6(/* @__PURE__ */ new Set());
|
|
6557
|
+
const effectiveSelectedTaskIds = selectedTaskIds ?? internalSelectedTaskIds;
|
|
6558
|
+
const emitSelectedTaskIdsChange = useCallback5((nextSelectedTaskIds) => {
|
|
6559
|
+
if (!selectedTaskIds) {
|
|
6560
|
+
setInternalSelectedTaskIds(nextSelectedTaskIds);
|
|
6561
|
+
}
|
|
6562
|
+
onSelectedTaskIdsChange?.(nextSelectedTaskIds);
|
|
6563
|
+
}, [onSelectedTaskIdsChange, selectedTaskIds]);
|
|
6496
6564
|
const [internalCollapsedParentIds, setInternalCollapsedParentIds] = useState6(/* @__PURE__ */ new Set());
|
|
6497
6565
|
const collapsedParentIds = externalCollapsedParentIds ?? internalCollapsedParentIds;
|
|
6498
6566
|
const handleToggleCollapse = externalOnToggleCollapse ?? useCallback5((parentId) => {
|
|
@@ -6539,6 +6607,33 @@ var TaskList = ({
|
|
|
6539
6607
|
),
|
|
6540
6608
|
[visibleTasks]
|
|
6541
6609
|
);
|
|
6610
|
+
const visibleTaskIds = useMemo8(() => visibleTasks.map((task) => task.id), [visibleTasks]);
|
|
6611
|
+
const selectedVisibleTaskCount = useMemo8(
|
|
6612
|
+
() => visibleTaskIds.filter((taskId) => effectiveSelectedTaskIds.has(taskId)).length,
|
|
6613
|
+
[effectiveSelectedTaskIds, visibleTaskIds]
|
|
6614
|
+
);
|
|
6615
|
+
const areAllVisibleTasksSelected = visibleTaskIds.length > 0 && selectedVisibleTaskCount === visibleTaskIds.length;
|
|
6616
|
+
const areSomeVisibleTasksSelected = selectedVisibleTaskCount > 0 && !areAllVisibleTasksSelected;
|
|
6617
|
+
const handleToggleTaskSelection = useCallback5((taskId, checked) => {
|
|
6618
|
+
const nextSelectedTaskIds = new Set(effectiveSelectedTaskIds);
|
|
6619
|
+
if (checked) {
|
|
6620
|
+
nextSelectedTaskIds.add(taskId);
|
|
6621
|
+
} else {
|
|
6622
|
+
nextSelectedTaskIds.delete(taskId);
|
|
6623
|
+
}
|
|
6624
|
+
emitSelectedTaskIdsChange(nextSelectedTaskIds);
|
|
6625
|
+
}, [effectiveSelectedTaskIds, emitSelectedTaskIdsChange]);
|
|
6626
|
+
const handleToggleAllVisibleTaskSelection = useCallback5((checked) => {
|
|
6627
|
+
const nextSelectedTaskIds = new Set(effectiveSelectedTaskIds);
|
|
6628
|
+
for (const taskId of visibleTaskIds) {
|
|
6629
|
+
if (checked) {
|
|
6630
|
+
nextSelectedTaskIds.add(taskId);
|
|
6631
|
+
} else {
|
|
6632
|
+
nextSelectedTaskIds.delete(taskId);
|
|
6633
|
+
}
|
|
6634
|
+
}
|
|
6635
|
+
emitSelectedTaskIdsChange(nextSelectedTaskIds);
|
|
6636
|
+
}, [effectiveSelectedTaskIds, emitSelectedTaskIdsChange, visibleTaskIds]);
|
|
6542
6637
|
const originalTaskNumberMap = useMemo8(
|
|
6543
6638
|
() => {
|
|
6544
6639
|
const numberMap = /* @__PURE__ */ new Map();
|
|
@@ -7020,7 +7115,10 @@ var TaskList = ({
|
|
|
7020
7115
|
const duplicatedTasks = duplicateTaskSubtree(taskId, orderedTasks);
|
|
7021
7116
|
onReorder?.(duplicatedTasks);
|
|
7022
7117
|
}, [orderedTasks, onReorder]);
|
|
7023
|
-
const builtInColumns = useMemo8(
|
|
7118
|
+
const builtInColumns = useMemo8(
|
|
7119
|
+
() => createBuiltInColumns({ businessDays, enableTaskMultiSelect }),
|
|
7120
|
+
[businessDays, enableTaskMultiSelect]
|
|
7121
|
+
);
|
|
7024
7122
|
const resolvedColumns = useMemo8(
|
|
7025
7123
|
() => resolveTaskListColumns(
|
|
7026
7124
|
builtInColumns,
|
|
@@ -7044,6 +7142,24 @@ var TaskList = ({
|
|
|
7044
7142
|
style: { "--tasklist-width": `${effectiveTaskListWidth}px` },
|
|
7045
7143
|
children: /* @__PURE__ */ jsxs11("div", { className: "gantt-tl-table", children: [
|
|
7046
7144
|
/* @__PURE__ */ jsx14("div", { className: "gantt-tl-header", style: { height: `${tableHeaderHeight}px` }, children: resolvedColumns.map((col) => {
|
|
7145
|
+
if (col.id === "selection") {
|
|
7146
|
+
return /* @__PURE__ */ jsx14(
|
|
7147
|
+
"div",
|
|
7148
|
+
{
|
|
7149
|
+
className: "gantt-tl-headerCell gantt-tl-cell-selection",
|
|
7150
|
+
"data-column-id": "selection",
|
|
7151
|
+
children: /* @__PURE__ */ jsx14(
|
|
7152
|
+
SelectAllCheckbox,
|
|
7153
|
+
{
|
|
7154
|
+
checked: areAllVisibleTasksSelected,
|
|
7155
|
+
indeterminate: areSomeVisibleTasksSelected,
|
|
7156
|
+
onChange: handleToggleAllVisibleTaskSelection
|
|
7157
|
+
}
|
|
7158
|
+
)
|
|
7159
|
+
},
|
|
7160
|
+
col.id
|
|
7161
|
+
);
|
|
7162
|
+
}
|
|
7047
7163
|
if (col.id === "dependencies") {
|
|
7048
7164
|
return /* @__PURE__ */ jsxs11(
|
|
7049
7165
|
"div",
|
|
@@ -7169,6 +7285,8 @@ var TaskList = ({
|
|
|
7169
7285
|
isFilterMatch: filterMode === "highlight" ? highlightedTaskIds.has(task.id) : false,
|
|
7170
7286
|
isFilterHideMode: filterMode === "hide" && isFilterActive,
|
|
7171
7287
|
resolvedColumns,
|
|
7288
|
+
isTaskSelected: effectiveSelectedTaskIds.has(task.id),
|
|
7289
|
+
onTaskSelectionChange: handleToggleTaskSelection,
|
|
7172
7290
|
taskListMenuCommands
|
|
7173
7291
|
}
|
|
7174
7292
|
),
|
|
@@ -9249,6 +9367,9 @@ function TaskGanttChartInner(props, ref) {
|
|
|
9249
9367
|
collapsedParentIds: externalCollapsedParentIds,
|
|
9250
9368
|
onToggleCollapse: externalOnToggleCollapse,
|
|
9251
9369
|
highlightedTaskIds,
|
|
9370
|
+
enableTaskMultiSelect = false,
|
|
9371
|
+
selectedTaskIds,
|
|
9372
|
+
onSelectedTaskIdsChange,
|
|
9252
9373
|
disableTaskDrag = false,
|
|
9253
9374
|
showChart = true,
|
|
9254
9375
|
additionalColumns,
|
|
@@ -9516,6 +9637,40 @@ function TaskGanttChartInner(props, ref) {
|
|
|
9516
9637
|
const handleTaskSelect = useCallback8((taskId) => {
|
|
9517
9638
|
setSelectedTaskId(taskId);
|
|
9518
9639
|
}, []);
|
|
9640
|
+
const hoveredRowElementsRef = useRef9([]);
|
|
9641
|
+
const clearHoveredRows = useCallback8(() => {
|
|
9642
|
+
for (const element of hoveredRowElementsRef.current) {
|
|
9643
|
+
element.classList.remove("gantt-tl-row-hovered", "gantt-tr-row-hovered");
|
|
9644
|
+
}
|
|
9645
|
+
hoveredRowElementsRef.current = [];
|
|
9646
|
+
}, []);
|
|
9647
|
+
const applyHoveredRows = useCallback8((taskId) => {
|
|
9648
|
+
const root = scrollContentRef.current;
|
|
9649
|
+
if (!root) return;
|
|
9650
|
+
clearHoveredRows();
|
|
9651
|
+
const nextHoveredRows = Array.from(
|
|
9652
|
+
root.querySelectorAll("[data-gantt-task-row-id]")
|
|
9653
|
+
).filter((element) => element.dataset.ganttTaskRowId === taskId);
|
|
9654
|
+
for (const element of nextHoveredRows) {
|
|
9655
|
+
if (element.classList.contains("gantt-tl-row")) {
|
|
9656
|
+
element.classList.add("gantt-tl-row-hovered");
|
|
9657
|
+
}
|
|
9658
|
+
if (element.classList.contains("gantt-tr-row")) {
|
|
9659
|
+
element.classList.add("gantt-tr-row-hovered");
|
|
9660
|
+
}
|
|
9661
|
+
}
|
|
9662
|
+
hoveredRowElementsRef.current = nextHoveredRows;
|
|
9663
|
+
}, [clearHoveredRows]);
|
|
9664
|
+
const handleSharedRowHover = useCallback8((event) => {
|
|
9665
|
+
const target = event.target;
|
|
9666
|
+
const row = target.closest("[data-gantt-task-row-id]");
|
|
9667
|
+
const taskId = row?.dataset.ganttTaskRowId;
|
|
9668
|
+
if (!taskId) return;
|
|
9669
|
+
if (hoveredRowElementsRef.current.some((element) => element.dataset.ganttTaskRowId === taskId)) {
|
|
9670
|
+
return;
|
|
9671
|
+
}
|
|
9672
|
+
applyHoveredRows(taskId);
|
|
9673
|
+
}, [applyHoveredRows]);
|
|
9519
9674
|
const handleToggleCollapse = externalOnToggleCollapse ?? useCallback8((parentId) => {
|
|
9520
9675
|
setInternalCollapsedParentIds((prev) => {
|
|
9521
9676
|
const next = new Set(prev);
|
|
@@ -9748,157 +9903,169 @@ function TaskGanttChartInner(props, ref) {
|
|
|
9748
9903
|
className: "gantt-scrollContainer",
|
|
9749
9904
|
style: { height: containerHeight ?? "auto", cursor: "grab" },
|
|
9750
9905
|
onMouseDown: handlePanStart,
|
|
9751
|
-
children: /* @__PURE__ */ jsxs13(
|
|
9752
|
-
|
|
9753
|
-
|
|
9754
|
-
|
|
9755
|
-
|
|
9756
|
-
|
|
9757
|
-
|
|
9758
|
-
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9765
|
-
|
|
9766
|
-
|
|
9767
|
-
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9906
|
+
children: /* @__PURE__ */ jsxs13(
|
|
9907
|
+
"div",
|
|
9908
|
+
{
|
|
9909
|
+
ref: scrollContentRef,
|
|
9910
|
+
className: "gantt-scrollContent",
|
|
9911
|
+
onMouseOver: handleSharedRowHover,
|
|
9912
|
+
onMouseLeave: clearHoveredRows,
|
|
9913
|
+
children: [
|
|
9914
|
+
/* @__PURE__ */ jsx16(
|
|
9915
|
+
TaskList,
|
|
9916
|
+
{
|
|
9917
|
+
tasks: normalizedTasks,
|
|
9918
|
+
rowHeight,
|
|
9919
|
+
headerHeight,
|
|
9920
|
+
taskListWidth,
|
|
9921
|
+
onTasksChange: handleTaskChange,
|
|
9922
|
+
selectedTaskId: selectedTaskId ?? void 0,
|
|
9923
|
+
onTaskSelect: handleTaskSelect,
|
|
9924
|
+
show: showTaskList,
|
|
9925
|
+
hasRightShadow: taskListHasRightShadow,
|
|
9926
|
+
disableTaskNameEditing,
|
|
9927
|
+
disableDependencyEditing,
|
|
9928
|
+
onScrollToTask: scrollToTask,
|
|
9929
|
+
onSelectedChipChange: setSelectedChip,
|
|
9930
|
+
onAdd,
|
|
9931
|
+
onDelete: handleDelete,
|
|
9932
|
+
onInsertAfter: handleInsertAfter,
|
|
9933
|
+
onReorder: handleReorder,
|
|
9934
|
+
editingTaskId,
|
|
9935
|
+
enableAddTask,
|
|
9936
|
+
defaultTaskDurationDays,
|
|
9937
|
+
collapsedParentIds,
|
|
9938
|
+
onToggleCollapse: handleToggleCollapse,
|
|
9939
|
+
onPromoteTask: onPromoteTask ?? handlePromoteTask,
|
|
9940
|
+
onDemoteTask: onDemoteTask ?? handleDemoteTask,
|
|
9941
|
+
onUngroupTask: onUngroupTask ?? handleUngroupTask,
|
|
9942
|
+
highlightedTaskIds: taskListHighlightedTaskIds,
|
|
9943
|
+
enableTaskMultiSelect,
|
|
9944
|
+
selectedTaskIds,
|
|
9945
|
+
onSelectedTaskIdsChange,
|
|
9946
|
+
customDays,
|
|
9947
|
+
isWeekend: isWeekend3,
|
|
9948
|
+
businessDays,
|
|
9949
|
+
filterMode,
|
|
9950
|
+
filteredTaskIds: matchedTaskIds,
|
|
9951
|
+
isFilterActive: !!taskFilter,
|
|
9952
|
+
additionalColumns,
|
|
9953
|
+
hiddenTaskListColumns,
|
|
9954
|
+
taskListMenuCommands
|
|
9955
|
+
}
|
|
9956
|
+
),
|
|
9957
|
+
/* @__PURE__ */ jsxs13(
|
|
9958
|
+
"div",
|
|
9959
|
+
{
|
|
9960
|
+
className: showChart ? "gantt-chartSurface" : "gantt-chartSurface gantt-chart-hidden",
|
|
9961
|
+
style: { minWidth: `${gridWidth}px`, flex: 1, display: showChart ? void 0 : "none" },
|
|
9962
|
+
children: [
|
|
9963
|
+
/* @__PURE__ */ jsx16(
|
|
9964
|
+
"div",
|
|
9805
9965
|
{
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9966
|
+
className: "gantt-stickyHeader",
|
|
9967
|
+
style: { width: `${gridWidth}px`, height: `${timelineHeaderHeight}px` },
|
|
9968
|
+
children: /* @__PURE__ */ jsx16(
|
|
9969
|
+
TimeScaleHeader_default,
|
|
9970
|
+
{
|
|
9971
|
+
days: dateRange,
|
|
9972
|
+
dayWidth,
|
|
9973
|
+
headerHeight,
|
|
9974
|
+
viewMode,
|
|
9975
|
+
isCustomWeekend
|
|
9976
|
+
}
|
|
9977
|
+
)
|
|
9811
9978
|
}
|
|
9812
|
-
)
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
|
|
9817
|
-
|
|
9818
|
-
|
|
9819
|
-
|
|
9820
|
-
position: "relative",
|
|
9821
|
-
width: `${gridWidth}px`
|
|
9822
|
-
},
|
|
9823
|
-
children: [
|
|
9824
|
-
/* @__PURE__ */ jsx16(
|
|
9825
|
-
GridBackground_default,
|
|
9826
|
-
{
|
|
9827
|
-
dateRange,
|
|
9828
|
-
dayWidth,
|
|
9829
|
-
totalHeight: totalGridHeight,
|
|
9830
|
-
viewMode,
|
|
9831
|
-
isCustomWeekend
|
|
9832
|
-
}
|
|
9833
|
-
),
|
|
9834
|
-
todayInRange && /* @__PURE__ */ jsx16(TodayIndicator_default, { monthStart, dayWidth }),
|
|
9835
|
-
/* @__PURE__ */ jsx16(
|
|
9836
|
-
DependencyLines_default,
|
|
9837
|
-
{
|
|
9838
|
-
tasks: previewVisibleTasks,
|
|
9839
|
-
allTasks: previewNormalizedTasks,
|
|
9840
|
-
collapsedParentIds,
|
|
9841
|
-
monthStart,
|
|
9842
|
-
dayWidth,
|
|
9843
|
-
rowHeight,
|
|
9844
|
-
gridWidth,
|
|
9845
|
-
dragOverrides: dependencyOverrides,
|
|
9846
|
-
selectedDep: selectedChip,
|
|
9847
|
-
businessDays,
|
|
9848
|
-
weekendPredicate: isCustomWeekend
|
|
9849
|
-
}
|
|
9850
|
-
),
|
|
9851
|
-
dragGuideLines && /* @__PURE__ */ jsx16(
|
|
9852
|
-
DragGuideLines_default,
|
|
9853
|
-
{
|
|
9854
|
-
isDragging: dragGuideLines.isDragging,
|
|
9855
|
-
dragMode: dragGuideLines.dragMode,
|
|
9856
|
-
left: dragGuideLines.left,
|
|
9857
|
-
width: dragGuideLines.width,
|
|
9858
|
-
totalHeight: totalGridHeight
|
|
9859
|
-
}
|
|
9860
|
-
),
|
|
9861
|
-
visibleTasks.map((task, index) => /* @__PURE__ */ jsx16(
|
|
9862
|
-
TaskRow_default,
|
|
9863
|
-
{
|
|
9864
|
-
task,
|
|
9865
|
-
monthStart,
|
|
9866
|
-
dayWidth,
|
|
9867
|
-
rowHeight,
|
|
9868
|
-
onTasksChange: handleTaskChange,
|
|
9869
|
-
onDragStateChange: (state) => {
|
|
9870
|
-
if (state.isDragging) {
|
|
9871
|
-
setDragGuideLines(state);
|
|
9872
|
-
setDraggedTaskOverride({ taskId: task.id, left: state.left, width: state.width });
|
|
9873
|
-
} else {
|
|
9874
|
-
setDragGuideLines(null);
|
|
9875
|
-
setDraggedTaskOverride(null);
|
|
9876
|
-
}
|
|
9877
|
-
},
|
|
9878
|
-
rowIndex: index,
|
|
9879
|
-
allTasks: normalizedTasks,
|
|
9880
|
-
enableAutoSchedule: enableAutoSchedule ?? false,
|
|
9881
|
-
disableConstraints: disableConstraints ?? false,
|
|
9882
|
-
overridePosition: cascadeOverrides.get(task.id),
|
|
9883
|
-
onCascadeProgress: handleCascadeProgress,
|
|
9884
|
-
onCascade: handleCascade,
|
|
9885
|
-
highlightExpiredTasks,
|
|
9886
|
-
showBaseline,
|
|
9887
|
-
isFilterMatch: filterMode === "highlight" ? matchedTaskIds.has(task.id) : false,
|
|
9888
|
-
businessDays,
|
|
9889
|
-
customDays,
|
|
9890
|
-
isWeekend: isWeekend3,
|
|
9891
|
-
disableTaskDrag
|
|
9979
|
+
),
|
|
9980
|
+
/* @__PURE__ */ jsxs13(
|
|
9981
|
+
"div",
|
|
9982
|
+
{
|
|
9983
|
+
className: "gantt-taskArea",
|
|
9984
|
+
style: {
|
|
9985
|
+
position: "relative",
|
|
9986
|
+
width: `${gridWidth}px`
|
|
9892
9987
|
},
|
|
9893
|
-
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
|
|
9988
|
+
children: [
|
|
9989
|
+
/* @__PURE__ */ jsx16(
|
|
9990
|
+
GridBackground_default,
|
|
9991
|
+
{
|
|
9992
|
+
dateRange,
|
|
9993
|
+
dayWidth,
|
|
9994
|
+
totalHeight: totalGridHeight,
|
|
9995
|
+
viewMode,
|
|
9996
|
+
isCustomWeekend
|
|
9997
|
+
}
|
|
9998
|
+
),
|
|
9999
|
+
todayInRange && /* @__PURE__ */ jsx16(TodayIndicator_default, { monthStart, dayWidth }),
|
|
10000
|
+
/* @__PURE__ */ jsx16(
|
|
10001
|
+
DependencyLines_default,
|
|
10002
|
+
{
|
|
10003
|
+
tasks: previewVisibleTasks,
|
|
10004
|
+
allTasks: previewNormalizedTasks,
|
|
10005
|
+
collapsedParentIds,
|
|
10006
|
+
monthStart,
|
|
10007
|
+
dayWidth,
|
|
10008
|
+
rowHeight,
|
|
10009
|
+
gridWidth,
|
|
10010
|
+
dragOverrides: dependencyOverrides,
|
|
10011
|
+
selectedDep: selectedChip,
|
|
10012
|
+
businessDays,
|
|
10013
|
+
weekendPredicate: isCustomWeekend
|
|
10014
|
+
}
|
|
10015
|
+
),
|
|
10016
|
+
dragGuideLines && /* @__PURE__ */ jsx16(
|
|
10017
|
+
DragGuideLines_default,
|
|
10018
|
+
{
|
|
10019
|
+
isDragging: dragGuideLines.isDragging,
|
|
10020
|
+
dragMode: dragGuideLines.dragMode,
|
|
10021
|
+
left: dragGuideLines.left,
|
|
10022
|
+
width: dragGuideLines.width,
|
|
10023
|
+
totalHeight: totalGridHeight
|
|
10024
|
+
}
|
|
10025
|
+
),
|
|
10026
|
+
visibleTasks.map((task, index) => /* @__PURE__ */ jsx16(
|
|
10027
|
+
TaskRow_default,
|
|
10028
|
+
{
|
|
10029
|
+
task,
|
|
10030
|
+
monthStart,
|
|
10031
|
+
dayWidth,
|
|
10032
|
+
rowHeight,
|
|
10033
|
+
onTasksChange: handleTaskChange,
|
|
10034
|
+
onDragStateChange: (state) => {
|
|
10035
|
+
if (state.isDragging) {
|
|
10036
|
+
setDragGuideLines(state);
|
|
10037
|
+
setDraggedTaskOverride({ taskId: task.id, left: state.left, width: state.width });
|
|
10038
|
+
} else {
|
|
10039
|
+
setDragGuideLines(null);
|
|
10040
|
+
setDraggedTaskOverride(null);
|
|
10041
|
+
}
|
|
10042
|
+
},
|
|
10043
|
+
rowIndex: index,
|
|
10044
|
+
allTasks: normalizedTasks,
|
|
10045
|
+
enableAutoSchedule: enableAutoSchedule ?? false,
|
|
10046
|
+
disableConstraints: disableConstraints ?? false,
|
|
10047
|
+
overridePosition: cascadeOverrides.get(task.id),
|
|
10048
|
+
onCascadeProgress: handleCascadeProgress,
|
|
10049
|
+
onCascade: handleCascade,
|
|
10050
|
+
highlightExpiredTasks,
|
|
10051
|
+
showBaseline,
|
|
10052
|
+
isFilterMatch: filterMode === "highlight" ? matchedTaskIds.has(task.id) : false,
|
|
10053
|
+
businessDays,
|
|
10054
|
+
customDays,
|
|
10055
|
+
isWeekend: isWeekend3,
|
|
10056
|
+
disableTaskDrag
|
|
10057
|
+
},
|
|
10058
|
+
task.id
|
|
10059
|
+
))
|
|
10060
|
+
]
|
|
10061
|
+
}
|
|
10062
|
+
)
|
|
10063
|
+
]
|
|
10064
|
+
}
|
|
10065
|
+
)
|
|
10066
|
+
]
|
|
10067
|
+
}
|
|
10068
|
+
)
|
|
9902
10069
|
}
|
|
9903
10070
|
) });
|
|
9904
10071
|
}
|