gantt-lib 0.115.2 → 0.117.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.mjs CHANGED
@@ -4977,7 +4977,7 @@ var areTaskListRowPropsEqual = (prevProps, nextProps) => {
4977
4977
  const nextPickingTask = nextProps.selectingPredecessorFor === nextTask.id;
4978
4978
  const prevAnyPicking = prevProps.selectingPredecessorFor != null;
4979
4979
  const nextAnyPicking = nextProps.selectingPredecessorFor != null;
4980
- return prevTaskUnchanged && prevProps.rowIndex === nextProps.rowIndex && prevProps.taskNumber === nextProps.taskNumber && prevProps.taskNumberMap === nextProps.taskNumberMap && prevProps.rowHeight === nextProps.rowHeight && prevIsSelected === nextIsSelected && prevProps.disableTaskNameEditing === nextProps.disableTaskNameEditing && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.allTasks === nextProps.allTasks && prevProps.activeLinkType === nextProps.activeLinkType && prevProps.dependencyPickMode === nextProps.dependencyPickMode && prevPickingTask === nextPickingTask && prevAnyPicking === nextAnyPicking && resolveSelectedChipRole(prevProps) === resolveSelectedChipRole(nextProps) && prevIsEditingTask === nextIsEditingTask && prevProps.isDragging === nextProps.isDragging && prevProps.isDragOver === nextProps.isDragOver && prevProps.dragOverPlacement === nextProps.dragOverPlacement && prevProps.isNestedDropTarget === nextProps.isNestedDropTarget && prevProps.isDirectChildDropTarget === nextProps.isDirectChildDropTarget && prevCollapsed === nextCollapsed && prevProps.canDemoteTask === nextProps.canDemoteTask && prevProps.isLastChild === nextProps.isLastChild && prevProps.nestingDepth === nextProps.nestingDepth && prevProps.hasVisibleChildren === nextProps.hasVisibleChildren && prevProps.ancestorLineModes === nextProps.ancestorLineModes && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.businessDays === nextProps.businessDays && prevProps.defaultTaskDurationDays === nextProps.defaultTaskDurationDays && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.isFilterHideMode === nextProps.isFilterHideMode && prevProps.resolvedColumns === nextProps.resolvedColumns && prevProps.isTaskSelected === nextProps.isTaskSelected && resolveActiveCustomCellForRow(prevProps) === resolveActiveCustomCellForRow(nextProps) && prevProps.taskListMenuCommands === nextProps.taskListMenuCommands && prevProps.hideTaskListRowActions === nextProps.hideTaskListRowActions && prevProps.rowClassName === nextProps.rowClassName && prevProps.taskDateChangeMode === nextProps.taskDateChangeMode;
4980
+ return prevTaskUnchanged && prevProps.rowIndex === nextProps.rowIndex && prevProps.taskNumber === nextProps.taskNumber && prevProps.taskNumberMap === nextProps.taskNumberMap && prevProps.rowHeight === nextProps.rowHeight && prevIsSelected === nextIsSelected && prevProps.disableTaskNameEditing === nextProps.disableTaskNameEditing && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.allTasks === nextProps.allTasks && prevProps.activeLinkType === nextProps.activeLinkType && prevProps.dependencyPickMode === nextProps.dependencyPickMode && prevPickingTask === nextPickingTask && prevAnyPicking === nextAnyPicking && resolveSelectedChipRole(prevProps) === resolveSelectedChipRole(nextProps) && prevIsEditingTask === nextIsEditingTask && prevProps.isDragging === nextProps.isDragging && prevProps.isDragOver === nextProps.isDragOver && prevProps.dragOverPlacement === nextProps.dragOverPlacement && prevProps.isNestedDropTarget === nextProps.isNestedDropTarget && prevProps.isDirectChildDropTarget === nextProps.isDirectChildDropTarget && prevCollapsed === nextCollapsed && prevProps.canDemoteTask === nextProps.canDemoteTask && prevProps.isLastChild === nextProps.isLastChild && prevProps.nestingDepth === nextProps.nestingDepth && prevProps.hasVisibleChildren === nextProps.hasVisibleChildren && prevProps.ancestorLineModes === nextProps.ancestorLineModes && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.fillParentRow === nextProps.fillParentRow && prevProps.businessDays === nextProps.businessDays && prevProps.defaultTaskDurationDays === nextProps.defaultTaskDurationDays && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.isFilterHideMode === nextProps.isFilterHideMode && prevProps.resolvedColumns === nextProps.resolvedColumns && prevProps.isTaskSelected === nextProps.isTaskSelected && resolveActiveCustomCellForRow(prevProps) === resolveActiveCustomCellForRow(nextProps) && prevProps.taskListMenuCommands === nextProps.taskListMenuCommands && prevProps.hideTaskListRowActions === nextProps.hideTaskListRowActions && prevProps.rowClassName === nextProps.rowClassName && prevProps.taskDateChangeMode === nextProps.taskDateChangeMode;
4981
4981
  };
4982
4982
  var TaskListRow = React10.memo(
4983
4983
  ({
@@ -5029,6 +5029,7 @@ var TaskListRow = React10.memo(
5029
5029
  ancestorLineModes = [],
5030
5030
  customDays,
5031
5031
  isWeekend: isWeekend3,
5032
+ fillParentRow = false,
5032
5033
  businessDays,
5033
5034
  defaultTaskDurationDays = DEFAULT_TASK_DURATION_DAYS,
5034
5035
  isFilterMatch = false,
@@ -6426,6 +6427,7 @@ var TaskListRow = React10.memo(
6426
6427
  /* @__PURE__ */ jsx13(
6427
6428
  "span",
6428
6429
  {
6430
+ className: "gantt-tl-duration-display",
6429
6431
  style: editingDuration ? { visibility: "hidden", pointerEvents: "none" } : void 0,
6430
6432
  children: isMilestone ? "\u25C6" : `${getDuration(normalizedTask.startDate, normalizedTask.endDate)}\u0434`
6431
6433
  }
@@ -6519,6 +6521,7 @@ var TaskListRow = React10.memo(
6519
6521
  /* @__PURE__ */ jsx13(
6520
6522
  "span",
6521
6523
  {
6524
+ className: "gantt-tl-progress-display",
6522
6525
  style: editingProgress ? { visibility: "hidden", pointerEvents: "none" } : task.progress === 100 ? {
6523
6526
  backgroundColor: "#17c864",
6524
6527
  borderRadius: "4px",
@@ -6710,6 +6713,7 @@ var TaskListRow = React10.memo(
6710
6713
  isDragOver && isDirectChildDropTarget ? "gantt-tl-row-drag-over-direct-child" : "",
6711
6714
  isChild ? "gantt-tl-row-child" : "",
6712
6715
  isParent ? "gantt-tl-row-parent" : "",
6716
+ isParent && fillParentRow ? "gantt-tl-row-parent-filled" : "",
6713
6717
  `gantt-tl-row-level-${rowFillLevel}`,
6714
6718
  isTotalRow ? "gantt-tl-row-total" : "",
6715
6719
  rowClassName ?? ""
@@ -7193,6 +7197,7 @@ var TaskList = ({
7193
7197
  isWeekend: isWeekend3,
7194
7198
  businessDays,
7195
7199
  highlightedTaskIds = /* @__PURE__ */ new Set(),
7200
+ fillParentRows = false,
7196
7201
  enableTaskMultiSelect = false,
7197
7202
  selectedTaskIds,
7198
7203
  onSelectedTaskIdsChange,
@@ -8129,6 +8134,7 @@ var TaskList = ({
8129
8134
  ancestorLineModes: ancestorLineModesMap.get(task.id) ?? [],
8130
8135
  customDays,
8131
8136
  isWeekend: isWeekend3,
8137
+ fillParentRow: fillParentRows,
8132
8138
  businessDays,
8133
8139
  defaultTaskDurationDays,
8134
8140
  isFilterMatch: filterMode === "highlight" ? highlightedTaskIds.has(task.id) : false,
@@ -9227,6 +9233,7 @@ function ResourceTimelineChart({
9227
9233
  disableResourceReassignment,
9228
9234
  renderItem,
9229
9235
  getItemClassName,
9236
+ resourceItemTooltipLines = 1,
9230
9237
  onResourceItemClick,
9231
9238
  onResourceItemMenuClick,
9232
9239
  activeResourceItemId,
@@ -9982,12 +9989,15 @@ function ResourceTimelineChart({
9982
9989
  durationDays: durationValue,
9983
9990
  isDragging: isDraggingItem
9984
9991
  };
9992
+ const tooltipFirstLine = layoutItem.item.tooltip?.firstLine ?? layoutItem.item.title;
9993
+ const tooltipSecondLine = resourceItemTooltipLines === 2 ? layoutItem.item.tooltip?.secondLine ?? layoutItem.item.subtitle : void 0;
9994
+ const tooltipSecondLineIcon = layoutItem.item.tooltip?.secondLineIcon;
9985
9995
  return /* @__PURE__ */ jsxs12(
9986
9996
  "div",
9987
9997
  {
9988
9998
  className,
9989
9999
  "data-resource-item-id": layoutItem.itemId,
9990
- "data-resource-item-tooltip": layoutItem.item.title,
10000
+ "data-resource-item-tooltip": typeof tooltipFirstLine === "string" ? tooltipFirstLine : layoutItem.item.title,
9991
10001
  onMouseDown: (event) => startDrag(event, layoutItem),
9992
10002
  onClick: () => onResourceItemClick?.(layoutItem.item),
9993
10003
  onKeyDown: (event) => {
@@ -10067,7 +10077,14 @@ function ResourceTimelineChart({
10067
10077
  /* @__PURE__ */ jsx16("span", { className: "gantt-resourceTimeline-itemTitle", children: layoutItem.item.title })
10068
10078
  ] }),
10069
10079
  layoutItem.item.subtitle && /* @__PURE__ */ jsx16("span", { className: "gantt-resourceTimeline-itemSubtitle", children: layoutItem.item.subtitle })
10070
- ] }) })
10080
+ ] }) }),
10081
+ /* @__PURE__ */ jsxs12("div", { className: "gantt-resourceTimeline-itemTooltip", role: "tooltip", children: [
10082
+ /* @__PURE__ */ jsx16("div", { className: "gantt-resourceTimeline-itemTooltipLine gantt-resourceTimeline-itemTooltipLinePrimary", children: tooltipFirstLine }),
10083
+ tooltipSecondLine && /* @__PURE__ */ jsxs12("div", { className: "gantt-resourceTimeline-itemTooltipLine gantt-resourceTimeline-itemTooltipLineSecondary", children: [
10084
+ tooltipSecondLineIcon && /* @__PURE__ */ jsx16("span", { className: "gantt-resourceTimeline-itemTooltipIcon", "aria-hidden": "true", children: tooltipSecondLineIcon }),
10085
+ /* @__PURE__ */ jsx16("span", { className: "gantt-resourceTimeline-itemTooltipText", children: tooltipSecondLine })
10086
+ ] })
10087
+ ] })
10071
10088
  ]
10072
10089
  },
10073
10090
  layoutItem.itemId
@@ -12009,6 +12026,7 @@ function TaskGanttChartInner(props, ref) {
12009
12026
  collapsedParentIds: externalCollapsedParentIds,
12010
12027
  onToggleCollapse: externalOnToggleCollapse,
12011
12028
  highlightedTaskIds,
12029
+ fillParentRowsInTaskList,
12012
12030
  enableTaskMultiSelect = false,
12013
12031
  selectedTaskIds,
12014
12032
  onSelectedTaskIdsChange,
@@ -12061,6 +12079,7 @@ function TaskGanttChartInner(props, ref) {
12061
12079
  const taskDateChangeMode = externalTaskDateChangeMode ?? internalTaskDateChangeMode;
12062
12080
  const handleTaskDateChangeMode = externalOnTaskDateChangeModeChange ?? setInternalTaskDateChangeMode;
12063
12081
  const resolvedRowContentLines = isPlanFactMode ? Math.max(2, Math.floor(rowContentLines)) : Math.max(1, Math.floor(rowContentLines));
12082
+ const shouldFillParentRowsInTaskList = fillParentRowsInTaskList ?? isPlanFactMode;
12064
12083
  const effectiveRowHeight = useMemo13(
12065
12084
  () => Math.max(rowHeight, 10 + resolvedRowContentLines * 18),
12066
12085
  [resolvedRowContentLines, rowHeight]
@@ -12870,6 +12889,7 @@ function TaskGanttChartInner(props, ref) {
12870
12889
  onDemoteTask: onDemoteTask ?? handleDemoteTask,
12871
12890
  onUngroupTask: onUngroupTask ?? handleUngroupTask,
12872
12891
  highlightedTaskIds: taskListHighlightedTaskIds,
12892
+ fillParentRows: shouldFillParentRowsInTaskList,
12873
12893
  enableTaskMultiSelect,
12874
12894
  selectedTaskIds,
12875
12895
  onSelectedTaskIdsChange,