gantt-lib 0.83.0 → 0.85.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
@@ -6320,7 +6320,7 @@ function createBuiltInColumns(opts) {
6320
6320
  }
6321
6321
 
6322
6322
  // src/components/TaskList/columns/resolveTaskListColumns.ts
6323
- function resolveTaskListColumns(builtIn, custom) {
6323
+ function resolveTaskListColumns(builtIn, custom, hiddenColumnIds = []) {
6324
6324
  if (process.env.NODE_ENV !== "production") {
6325
6325
  const ids = /* @__PURE__ */ new Set();
6326
6326
  for (const col of [...builtIn, ...custom]) {
@@ -6330,8 +6330,10 @@ function resolveTaskListColumns(builtIn, custom) {
6330
6330
  ids.add(col.id);
6331
6331
  }
6332
6332
  }
6333
+ const hiddenIds = new Set(hiddenColumnIds);
6334
+ const filterHiddenColumns = (columns) => hiddenIds.size === 0 ? columns : columns.filter((col) => !hiddenIds.has(col.id));
6333
6335
  if (custom.length === 0) {
6334
- return [...builtIn];
6336
+ return filterHiddenColumns([...builtIn]);
6335
6337
  }
6336
6338
  const result = [...builtIn];
6337
6339
  const lastInsertAfter = /* @__PURE__ */ new Map();
@@ -6367,7 +6369,7 @@ function resolveTaskListColumns(builtIn, custom) {
6367
6369
  }
6368
6370
  result.splice(insertAt, 0, col);
6369
6371
  }
6370
- return result;
6372
+ return filterHiddenColumns(result);
6371
6373
  }
6372
6374
 
6373
6375
  // src/components/TaskList/TaskList.tsx
@@ -6484,6 +6486,7 @@ var TaskList = ({
6484
6486
  filteredTaskIds = /* @__PURE__ */ new Set(),
6485
6487
  isFilterActive = false,
6486
6488
  additionalColumns,
6489
+ hiddenTaskListColumns,
6487
6490
  taskListMenuCommands
6488
6491
  }) => {
6489
6492
  const [internalCollapsedParentIds, setInternalCollapsedParentIds] = useState6(/* @__PURE__ */ new Set());
@@ -7015,8 +7018,12 @@ var TaskList = ({
7015
7018
  }, [orderedTasks, onReorder]);
7016
7019
  const builtInColumns = useMemo8(() => createBuiltInColumns({ businessDays }), [businessDays]);
7017
7020
  const resolvedColumns = useMemo8(
7018
- () => resolveTaskListColumns(builtInColumns, additionalColumns ?? []),
7019
- [builtInColumns, additionalColumns]
7021
+ () => resolveTaskListColumns(
7022
+ builtInColumns,
7023
+ additionalColumns ?? [],
7024
+ hiddenTaskListColumns
7025
+ ),
7026
+ [builtInColumns, additionalColumns, hiddenTaskListColumns]
7020
7027
  );
7021
7028
  const resolvedColumnWidthTotal = useMemo8(
7022
7029
  () => resolvedColumns.reduce((sum, col) => sum + (col.width ?? 120), 0),
@@ -7787,6 +7794,13 @@ var ResourceTypeIcon = ({ type }) => {
7787
7794
  /* @__PURE__ */ jsx15("path", { d: "M12 16h.01" })
7788
7795
  ] });
7789
7796
  };
7797
+ function isInactiveResourceStatus(status) {
7798
+ return status?.trim().toLocaleLowerCase() === "inactive";
7799
+ }
7800
+ var ResourceStatusLockIcon = () => /* @__PURE__ */ jsxs12("svg", { className: "gantt-resourceTimeline-resourceStatusIcon", width: "12", height: "12", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
7801
+ /* @__PURE__ */ jsx15("rect", { x: "5", y: "11", width: "14", height: "10", rx: "2" }),
7802
+ /* @__PURE__ */ jsx15("path", { d: "M8 11V8a4 4 0 1 1 8 0v3" })
7803
+ ] });
7790
7804
  var ResourceHeader = ({
7791
7805
  resource,
7792
7806
  resourceId,
@@ -7816,6 +7830,7 @@ var ResourceHeader = ({
7816
7830
  const type = resource.type ?? "\u0414\u0440\u0443\u0433\u043E\u0435";
7817
7831
  const scope = resource.scope ?? "Project";
7818
7832
  const scopeLabel = RESOURCE_SCOPE_LABELS[scope] ?? scope;
7833
+ const isInactive = isInactiveResourceStatus(resource.status);
7819
7834
  const applyResourcePatch = useCallback7((patch) => {
7820
7835
  onResourceChange?.({ ...resource, ...patch });
7821
7836
  }, [onResourceChange, resource]);
@@ -7876,7 +7891,7 @@ var ResourceHeader = ({
7876
7891
  return /* @__PURE__ */ jsxs12(
7877
7892
  "div",
7878
7893
  {
7879
- className: `gantt-resourceTimeline-resourceHeader${menuOpen ? " gantt-resourceTimeline-resourceHeaderMenuOpen" : ""}`,
7894
+ className: `gantt-resourceTimeline-resourceHeader${menuOpen ? " gantt-resourceTimeline-resourceHeaderMenuOpen" : ""}${isInactive ? " gantt-resourceTimeline-resourceHeaderInactive" : ""}`,
7880
7895
  "data-resource-row-id": resourceId,
7881
7896
  style: {
7882
7897
  height: `${height}px`,
@@ -7943,7 +7958,18 @@ var ResourceHeader = ({
7943
7958
  onResourceNameClick?.(resourceId);
7944
7959
  },
7945
7960
  onDoubleClick: handleNameDoubleClick,
7946
- children: resource.name
7961
+ children: /* @__PURE__ */ jsxs12("span", { className: "gantt-resourceTimeline-resourceNameContent", children: [
7962
+ isInactive && /* @__PURE__ */ jsx15(
7963
+ "span",
7964
+ {
7965
+ className: "gantt-resourceTimeline-resourceStatusMarker",
7966
+ "aria-label": `\u0420\u0435\u0441\u0443\u0440\u0441 ${resource.name} \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u0435\u043D`,
7967
+ title: "\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u0435\u043D",
7968
+ children: /* @__PURE__ */ jsx15(ResourceStatusLockIcon, {})
7969
+ }
7970
+ ),
7971
+ /* @__PURE__ */ jsx15("span", { className: "gantt-resourceTimeline-resourceNameText", children: resource.name })
7972
+ ] })
7947
7973
  }
7948
7974
  )
7949
7975
  ] }),
@@ -9221,6 +9247,7 @@ function TaskGanttChartInner(props, ref) {
9221
9247
  disableTaskDrag = false,
9222
9248
  showChart = true,
9223
9249
  additionalColumns,
9250
+ hiddenTaskListColumns,
9224
9251
  taskListMenuCommands
9225
9252
  } = props;
9226
9253
  const containerRef = useRef9(null);
@@ -9753,6 +9780,7 @@ function TaskGanttChartInner(props, ref) {
9753
9780
  filteredTaskIds: matchedTaskIds,
9754
9781
  isFilterActive: !!taskFilter,
9755
9782
  additionalColumns,
9783
+ hiddenTaskListColumns,
9756
9784
  taskListMenuCommands
9757
9785
  }
9758
9786
  ),