iris-gantt 1.5.3 → 1.5.4

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/README.md CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  A comprehensive, production-ready Gantt chart component built with React and TypeScript. Easy to install, simple to use, fully customizable, and responsive.
4
4
 
5
- ## 🆕 Version 1.5.3 (Latest)
5
+ ## 🆕 Version 1.5.4 (Latest)
6
+
7
+ ### Features
8
+ - **Configurable Timeline Header Visibility** — You can now explicitly show or hide the calendar headers (the months, weeks, and days row) via the new `showTimelineHeader: boolean` property in the `config` object. If `showTimelineHeader: false` is passed, the calendar header row is completely hidden (but you can preserve the vertical "Today" and project markers if needed).
9
+ - **Prop-driven calendar view bounds** — The README now documents how to completely remove the month/week/day layers from the timeline scale header using `timelineViewScales` arrays.
10
+
11
+ ## 🔖 Version 1.5.3
6
12
 
7
13
  ### Bug Fixes
8
14
  - **Responsive Timeline Viewport Scaling:** Fixed an issue where the timeline left empty white spaces or rendered comically fat cell columns on horizontally wide screens—especially when swapping down to 'Month' view. The chart now dynamically calculates its layout boundaries and pads the display timeframe organically to perfectly fill your viewport screen width while maintaining standard element ratios.
@@ -235,6 +241,37 @@ Use the toolbar switcher to toggle the calendar between day, week, and month vie
235
241
  />
236
242
  ```
237
243
 
244
+ ### Hiding / Removing Scale Headers
245
+ If you want to completely hide the top calendar header scale (so that the days, weeks, and months do not show up at all), pass `showTimelineHeader: false` in the config:
246
+
247
+ ```tsx
248
+ <Gantt
249
+ tasks={tasks}
250
+ config={{
251
+ showTimelineHeader: false
252
+ }}
253
+ />
254
+ ```
255
+ *Note: Doing this removes the calendar headers but preserves the "Today" vertical line marker.*
256
+
257
+ ### Customizing the Header Levels
258
+ If you want to show the headers, but completely remove specific layers like the "Month" or "Week" rows (for example, showing only the "Days" row), simply customize the `timelineViewScales` arrays arrays:
259
+
260
+ ```tsx
261
+ <Gantt
262
+ tasks={tasks}
263
+ config={{
264
+ timelineView: "day",
265
+ // This only shows the 'day' row, effectively hiding the 'month' row
266
+ timelineViewScales: {
267
+ day: [
268
+ { unit: "day", step: 1, format: "D" }
269
+ ]
270
+ }
271
+ }}
272
+ />
273
+ ```
274
+
238
275
  ## 📍 Vertical Marker Lines
239
276
 
240
277
  The Gantt chart supports vertical indicator lines for the current date (Today) and the project start date. Both are enabled by default and come with customizable markers and labels.
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA4E/G,UAAU,aAAa;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,eAAO,MAAM,QAAQ,sFAg6BpB,CAAC"}
1
+ {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA4E/G,UAAU,aAAa;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,eAAO,MAAM,QAAQ,sFAi6BpB,CAAC"}
@@ -193,6 +193,7 @@ export interface GanttConfig {
193
193
  containerHeight?: string;
194
194
  containerMinHeight?: string;
195
195
  gridWidth?: string;
196
+ showTimelineHeader?: boolean;
196
197
  showTodayLine?: boolean;
197
198
  todayLineColor?: string;
198
199
  todayLineLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import B, { useState as U, memo as Yr, forwardRef as nr, useCallback as He, useEffect as st, useRef as ct } from "react";
1
+ import B, { useState as U, memo as Yr, forwardRef as nr, useCallback as We, useEffect as st, useRef as ct } from "react";
2
2
  import { Typography as yr, Select as Pe, InputNumber as et, Button as Me, Popover as Ar, Tooltip as Qe, Input as it, Space as Qt, Segmented as _r, Divider as er, Form as xe, Modal as Ct, DatePicker as wr, ColorPicker as br, Alert as Ir, Card as lr, List as Gt, Tag as zr, Menu as Br } from "antd";
3
3
  import { FontAwesomeIcon as je } from "@fortawesome/react-fontawesome";
4
- import { faChevronDown as dr, faPlus as ar, faGripVertical as Wr, faChevronRight as Hr, faTimesCircle as Vr, faSearchMinus as Xr, faSearchPlus as Ur, faRotateLeft as Sr, faFileCsv as qr, faFileExcel as Gr, faFileCode as Jr, faFilePdf as Kr, faExclamationTriangle as Zr, faLink as vr, faTrash as jr, faInfoCircle as Qr, faEdit as en, faCopy as tn, faFlag as rn, faTasks as nn, faFolder as an } from "@fortawesome/free-solid-svg-icons";
4
+ import { faChevronDown as dr, faPlus as ar, faGripVertical as Hr, faChevronRight as Wr, faTimesCircle as Vr, faSearchMinus as Xr, faSearchPlus as Ur, faRotateLeft as Sr, faFileCsv as qr, faFileExcel as Gr, faFileCode as Jr, faFilePdf as Kr, faExclamationTriangle as Zr, faLink as vr, faTrash as jr, faInfoCircle as Qr, faEdit as en, faCopy as tn, faFlag as rn, faTasks as nn, faFolder as an } from "@fortawesome/free-solid-svg-icons";
5
5
  import Tr from "dayjs";
6
6
  var $t = { exports: {} }, jt = {};
7
7
  var cr;
@@ -111,14 +111,14 @@ function sn() {
111
111
  }
112
112
  return null;
113
113
  }
114
- var N = Object.assign, se = 0, ye, Oe, z, G, W, ie, ce;
114
+ var N = Object.assign, se = 0, ye, Oe, z, G, H, ie, ce;
115
115
  function be() {
116
116
  }
117
117
  be.__reactDisabledLog = !0;
118
118
  function pe() {
119
119
  {
120
120
  if (se === 0) {
121
- ye = console.log, Oe = console.info, z = console.warn, G = console.error, W = console.group, ie = console.groupCollapsed, ce = console.groupEnd;
121
+ ye = console.log, Oe = console.info, z = console.warn, G = console.error, H = console.group, ie = console.groupCollapsed, ce = console.groupEnd;
122
122
  var o = {
123
123
  configurable: !0,
124
124
  enumerable: !0,
@@ -160,7 +160,7 @@ function sn() {
160
160
  value: G
161
161
  }),
162
162
  group: N({}, o, {
163
- value: W
163
+ value: H
164
164
  }),
165
165
  groupCollapsed: N({}, o, {
166
166
  value: ie
@@ -346,7 +346,7 @@ function sn() {
346
346
  function Q(o) {
347
347
  return "" + o;
348
348
  }
349
- function H(o) {
349
+ function W(o) {
350
350
  if (K(o))
351
351
  return L("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", J(o)), Q(o);
352
352
  }
@@ -429,7 +429,7 @@ function sn() {
429
429
  function Ft(o, y, F, Y, ne) {
430
430
  {
431
431
  var ae, ee = {}, V = null, Fe = null;
432
- F !== void 0 && (H(F), V = "" + F), rt(y) && (H(y.key), V = "" + y.key), ht(y) && (Fe = y.ref, mt(y, ne));
432
+ F !== void 0 && (W(F), V = "" + F), rt(y) && (W(y.key), V = "" + y.key), ht(y) && (Fe = y.ref, mt(y, ne));
433
433
  for (ae in y)
434
434
  Ye.call(y, ae) && !Ae.hasOwnProperty(ae) && (ee[ae] = y[ae]);
435
435
  if (o && o.defaultProps) {
@@ -599,13 +599,13 @@ React keys must be passed directly to JSX without using spread:
599
599
  return o === s ? zt(fe) : Be(fe), fe;
600
600
  }
601
601
  }
602
- function Wt(o, y, F) {
602
+ function Ht(o, y, F) {
603
603
  return Ot(o, y, F, !0);
604
604
  }
605
- function Ht(o, y, F) {
605
+ function Wt(o, y, F) {
606
606
  return Ot(o, y, F, !1);
607
607
  }
608
- var Vt = Ht, Xt = Wt;
608
+ var Vt = Wt, Xt = Ht;
609
609
  Tt.Fragment = s, Tt.jsx = Vt, Tt.jsxs = Xt;
610
610
  })()), Tt;
611
611
  }
@@ -851,11 +851,11 @@ const bt = (e) => e ? {
851
851
  if (S) {
852
852
  const z = O === "lag" ? v : -v, G = tr(z, Z);
853
853
  if (g !== e.duration && c) {
854
- const W = we(new Date(e.start), g, "day");
854
+ const H = we(new Date(e.start), g, "day");
855
855
  c({
856
856
  ...e,
857
857
  duration: g,
858
- end: W
858
+ end: H
859
859
  });
860
860
  }
861
861
  s(S, e.id, m, G), h(!1), R();
@@ -876,9 +876,9 @@ const bt = (e) => e ? {
876
876
  }
877
877
  }, se = () => {
878
878
  if (!X) return null;
879
- const z = m === "e2s", G = m === "s2s", W = m === "e2e", ie = m === "s2e";
879
+ const z = m === "e2s", G = m === "s2s", H = m === "e2e", ie = m === "s2e";
880
880
  let ce = 0, be = 0, pe = "", ke = 0, Te = -1;
881
- z ? (ce = 50, be = 350, ke = 250, Te = 350, pe = "M 250 60 L 300 60 L 300 140 L 348 140") : W ? (ce = 100, be = 100, ke = 300, Te = -1, pe = "M 300 60 L 350 60 L 350 140 L 302 140") : G ? (ce = 250, be = 250, ke = 250, Te = -1, pe = "M 250 60 L 200 60 L 200 140 L 248 140") : ie && (ce = 350, be = 50, ke = 350, Te = 250, pe = "M 350 60 L 300 60 L 300 140 L 252 140");
881
+ z ? (ce = 50, be = 350, ke = 250, Te = 350, pe = "M 250 60 L 300 60 L 300 140 L 348 140") : H ? (ce = 100, be = 100, ke = 300, Te = -1, pe = "M 300 60 L 350 60 L 350 140 L 302 140") : G ? (ce = 250, be = 250, ke = 250, Te = -1, pe = "M 250 60 L 200 60 L 200 140 L 248 140") : ie && (ce = 350, be = 50, ke = 350, Te = 250, pe = "M 350 60 L 300 60 L 300 140 L 252 140");
882
882
  const ze = S === "gantt-start-date", Ee = a.find(($) => $.id === S);
883
883
  return /* @__PURE__ */ t.jsx("div", { style: {
884
884
  width: "100%",
@@ -906,20 +906,20 @@ const bt = (e) => e ? {
906
906
  }, ye = () => {
907
907
  const z = S === "gantt-start-date", G = a.find((be) => be.id === S);
908
908
  if (!S) return "Select a checklist from the list to see how it will relate to the current stage.";
909
- const W = a.indexOf(e) + 1, ie = z ? "Start Date" : `Stage ${a.indexOf(G) + 1}`;
909
+ const H = a.indexOf(e) + 1, ie = z ? "Start Date" : `Stage ${a.indexOf(G) + 1}`;
910
910
  let ce = "";
911
911
  switch (m) {
912
912
  case "e2s":
913
- ce = `Stage ${W} starts after ${ie} finishes`;
913
+ ce = `Stage ${H} starts after ${ie} finishes`;
914
914
  break;
915
915
  case "s2s":
916
- ce = `Stage ${W} starts when ${ie} starts`;
916
+ ce = `Stage ${H} starts when ${ie} starts`;
917
917
  break;
918
918
  case "e2e":
919
- ce = `Stage ${W} finishes when ${ie} finishes`;
919
+ ce = `Stage ${H} finishes when ${ie} finishes`;
920
920
  break;
921
921
  case "s2e":
922
- ce = `Stage ${W} finishes when ${ie} starts`;
922
+ ce = `Stage ${H} finishes when ${ie} starts`;
923
923
  break;
924
924
  }
925
925
  if (v > 0) {
@@ -948,10 +948,10 @@ const bt = (e) => e ? {
948
948
  filterOption: (z, G) => {
949
949
  if (G?.value === "gantt-start-date")
950
950
  return "start date".includes(z.toLowerCase());
951
- const W = a.find((ce) => ce.id === G?.value);
952
- if (!W) return !1;
953
- const ie = a.indexOf(W) + 1;
954
- return W.text.toLowerCase().includes(z.toLowerCase()) || ie.toString().includes(z);
951
+ const H = a.find((ce) => ce.id === G?.value);
952
+ if (!H) return !1;
953
+ const ie = a.indexOf(H) + 1;
954
+ return H.text.toLowerCase().includes(z.toLowerCase()) || ie.toString().includes(z);
955
955
  },
956
956
  optionLabelProp: "label",
957
957
  children: [
@@ -1137,12 +1137,12 @@ const bt = (e) => e ? {
1137
1137
  onMouseDown: (x) => {
1138
1138
  x.preventDefault(), u?.(M.id, x.clientX, x.clientY, "reorder");
1139
1139
  },
1140
- children: /* @__PURE__ */ t.jsx(je, { icon: Wr })
1140
+ children: /* @__PURE__ */ t.jsx(je, { icon: Hr })
1141
1141
  }
1142
1142
  ),
1143
1143
  M.type === "project" ? /* @__PURE__ */ t.jsx("span", { className: "gantt-tree-icon", onClick: (x) => {
1144
1144
  x.stopPropagation(), b?.({ ...M, open: !M.open });
1145
- }, children: /* @__PURE__ */ t.jsx(je, { icon: M.open ? dr : Hr }) }) : /* @__PURE__ */ t.jsx("span", { style: { width: 16, display: "inline-block" } }),
1145
+ }, children: /* @__PURE__ */ t.jsx(je, { icon: M.open ? dr : Wr }) }) : /* @__PURE__ */ t.jsx("span", { style: { width: 16, display: "inline-block" } }),
1146
1146
  /* @__PURE__ */ t.jsx("span", { className: "gantt-task-name-text", children: M.text })
1147
1147
  ] });
1148
1148
  }
@@ -1446,9 +1446,9 @@ const fn = ({
1446
1446
  ), R = v(
1447
1447
  g?.actualEndAccessor?.(e) ?? e.actualEnd ?? e.end,
1448
1448
  e.end
1449
- ), de = g?.actualDatesFormatter ? g.actualDatesFormatter(x, R, e) : `${Re(x, A)} - ${Re(R, A)}`, N = g?.statusAccessor?.(e) ?? e.status, se = N != null ? String(N) : "", ye = g?.statusFormatter ? g.statusFormatter(se, e) : se ? se.replace(/-/g, " ") : g?.emptyStatusText || "Not set", Oe = g?.ownerAccessor?.(e) ?? e.owner, z = Oe != null ? String(Oe).trim() : "", G = z ? g?.ownerFormatter ? g.ownerFormatter(z, e) : z : g?.emptyOwnerText || "", W = h.length > 0 ? h : e.dependencyRule || [], ce = L(
1450
- g?.dependencyRuleAccessor?.(e, W)
1451
- ) || W, be = ce.length > 0 ? ce.map(($) => g?.dependencyRuleFormatter ? g.dependencyRuleFormatter($, e) : $).join(g?.dependencySeparator || " | ") : g?.emptyDependencyRuleText || "No dependency rule", pe = g?.progressAccessor?.(e) ?? e.progress, ke = typeof pe == "number" ? pe : Number(pe), Te = Number.isFinite(ke) ? ke : e.progress, ze = g?.progressFormatter ? g.progressFormatter(Te, e) : `${Te}%`, Ee = /* @__PURE__ */ t.jsxs("div", { className: "gantt-tooltip", children: [
1449
+ ), de = g?.actualDatesFormatter ? g.actualDatesFormatter(x, R, e) : `${Re(x, A)} - ${Re(R, A)}`, N = g?.statusAccessor?.(e) ?? e.status, se = N != null ? String(N) : "", ye = g?.statusFormatter ? g.statusFormatter(se, e) : se ? se.replace(/-/g, " ") : g?.emptyStatusText || "Not set", Oe = g?.ownerAccessor?.(e) ?? e.owner, z = Oe != null ? String(Oe).trim() : "", G = z ? g?.ownerFormatter ? g.ownerFormatter(z, e) : z : g?.emptyOwnerText || "", H = h.length > 0 ? h : e.dependencyRule || [], ce = L(
1450
+ g?.dependencyRuleAccessor?.(e, H)
1451
+ ) || H, be = ce.length > 0 ? ce.map(($) => g?.dependencyRuleFormatter ? g.dependencyRuleFormatter($, e) : $).join(g?.dependencySeparator || " | ") : g?.emptyDependencyRuleText || "No dependency rule", pe = g?.progressAccessor?.(e) ?? e.progress, ke = typeof pe == "number" ? pe : Number(pe), Te = Number.isFinite(ke) ? ke : e.progress, ze = g?.progressFormatter ? g.progressFormatter(Te, e) : `${Te}%`, Ee = /* @__PURE__ */ t.jsxs("div", { className: "gantt-tooltip", children: [
1452
1452
  g?.showTaskName !== !1 && /* @__PURE__ */ t.jsx("div", { className: "gantt-tooltip-title", children: Z }),
1453
1453
  g?.showPlannedDates !== !1 && /* @__PURE__ */ t.jsxs("div", { className: "gantt-tooltip-dates", children: [
1454
1454
  g?.plannedLabel || "Planned",
@@ -1607,9 +1607,9 @@ const fn = ({
1607
1607
  const Z = g + X * L.sourceStub, M = A - C * L.arrowGap, q = M - C * L.arrowLength, te = q + C * L.chevronNotchDepth, x = te - C * L.targetStub, R = te + C * L.arrowStemOverlap, de = Math.abs(v - k) > 1;
1608
1608
  let N;
1609
1609
  if (de) {
1610
- const W = v > k;
1611
- let ie = W ? Math.min(w.top + w.height + 6, m.top - 6) : Math.max(w.top - 6, m.top + m.height + 6);
1612
- Math.abs(ie - k) < 2 && (ie = k + (W ? 2 : -2)), Math.abs(ie - v) < 2 && (ie = v + (W ? -2 : 2)), N = [
1610
+ const H = v > k;
1611
+ let ie = H ? Math.min(w.top + w.height + 6, m.top - 6) : Math.max(w.top - 6, m.top + m.height + 6);
1612
+ Math.abs(ie - k) < 2 && (ie = k + (H ? 2 : -2)), Math.abs(ie - v) < 2 && (ie = v + (H ? -2 : 2)), N = [
1613
1613
  { x: g, y: k },
1614
1614
  { x: Z, y: k },
1615
1615
  { x: Z, y: ie },
@@ -1628,11 +1628,11 @@ const fn = ({
1628
1628
  { x: R, y: v }
1629
1629
  ];
1630
1630
  }
1631
- const se = N.filter((G, W) => {
1632
- if (W === 0) return !0;
1633
- const ie = N[W - 1];
1631
+ const se = N.filter((G, H) => {
1632
+ if (H === 0) return !0;
1633
+ const ie = N[H - 1];
1634
1634
  return Math.abs(G.x - ie.x) > 0.5 || Math.abs(G.y - ie.y) > 0.5;
1635
- }), ye = se.length > 0 ? se.map((G, W) => `${W === 0 ? "M" : "L"} ${G.x},${G.y}`).join(" ") : "", Oe = L.arrowWidth / 2, z = `M ${q},${v - Oe} L ${M},${v} L ${q},${v + Oe} L ${te},${v} Z`;
1635
+ }), ye = se.length > 0 ? se.map((G, H) => `${H === 0 ? "M" : "L"} ${G.x},${G.y}`).join(" ") : "", Oe = L.arrowWidth / 2, z = `M ${q},${v - Oe} L ${M},${v} L ${q},${v + Oe} L ${te},${v} Z`;
1636
1636
  return { path: ye, arrow: z };
1637
1637
  };
1638
1638
  return e.length === 0 ? null : /* @__PURE__ */ t.jsx(
@@ -1683,7 +1683,7 @@ const fn = ({
1683
1683
  type: null,
1684
1684
  dragDeltaX: 0,
1685
1685
  dragDeltaY: 0
1686
- }), u = He((h, S, w, m) => {
1686
+ }), u = We((h, S, w, m) => {
1687
1687
  const D = e.find((O) => O.id === h);
1688
1688
  D && b({
1689
1689
  taskId: h,
@@ -1695,7 +1695,7 @@ const fn = ({
1695
1695
  dragDeltaX: 0,
1696
1696
  dragDeltaY: 0
1697
1697
  });
1698
- }, [e]), i = He((h, S) => {
1698
+ }, [e]), i = We((h, S) => {
1699
1699
  if (!c.taskId || !c.type) return null;
1700
1700
  const w = h - c.initialX, m = S - c.initialY;
1701
1701
  if (b((g) => ({
@@ -1725,7 +1725,7 @@ const fn = ({
1725
1725
  end: v,
1726
1726
  duration: L
1727
1727
  };
1728
- }, [c, e, n, r, s]), p = He((h) => {
1728
+ }, [c, e, n, r, s]), p = We((h) => {
1729
1729
  if (h && a) {
1730
1730
  const { id: S, ...w } = h, m = c.type;
1731
1731
  if (m && m !== "reorder") {
@@ -1819,13 +1819,13 @@ const fn = ({
1819
1819
  e2e: "Finish-to-Finish",
1820
1820
  s2e: "Start-to-Finish"
1821
1821
  }, E = (f, J) => {
1822
- const Q = [...d.get(f) || [], ...J.map((H) => H.trim()).filter(Boolean)];
1822
+ const Q = [...d.get(f) || [], ...J.map((W) => W.trim()).filter(Boolean)];
1823
1823
  Q.length > 0 && d.set(f, Array.from(new Set(Q)));
1824
1824
  };
1825
1825
  return v.forEach((f) => {
1826
1826
  f.dependencyRule && f.dependencyRule.length > 0 && E(f.id, f.dependencyRule);
1827
1827
  }), a.forEach((f) => {
1828
- const J = Z.get(f.source), K = Z.get(f.target), Q = J?.text || `Task ${f.source}`, H = K?.text || `Task ${f.target}`, Se = j[f.type], Ae = typeof f.lag == "number" && f.lag !== 0 ? ` (${f.lag > 0 ? "+" : ""}${f.lag} ${f.lagUnit || "day"})` : "", Xe = `${H} depends on ${Q} [${Se}]${Ae}`;
1828
+ const J = Z.get(f.source), K = Z.get(f.target), Q = J?.text || `Task ${f.source}`, W = K?.text || `Task ${f.target}`, Se = j[f.type], Ae = typeof f.lag == "number" && f.lag !== 0 ? ` (${f.lag > 0 ? "+" : ""}${f.lag} ${f.lagUnit || "day"})` : "", Xe = `${W} depends on ${Q} [${Se}]${Ae}`;
1829
1829
  E(f.target, [Xe]);
1830
1830
  }), d;
1831
1831
  }, [a, v, Z]);
@@ -1840,7 +1840,7 @@ const fn = ({
1840
1840
  const j = () => {
1841
1841
  let J = d.clientWidth;
1842
1842
  const K = d.closest(".gantt-layout"), Q = K?.querySelector(".gantt-grid");
1843
- K && Q && (J = Math.max(0, K.clientWidth - Q.offsetWidth)), A((H) => H === J ? H : J);
1843
+ K && Q && (J = Math.max(0, K.clientWidth - Q.offsetWidth)), A((W) => W === J ? W : J);
1844
1844
  };
1845
1845
  j();
1846
1846
  const E = d.closest(".gantt-layout") || d;
@@ -1882,27 +1882,27 @@ const fn = ({
1882
1882
  R,
1883
1883
  te.unit,
1884
1884
  te.step
1885
- ), W = B.useCallback((d) => {
1885
+ ), H = B.useCallback((d) => {
1886
1886
  if (x.length === 0) return 0;
1887
1887
  const j = d.getTime(), E = x.length - 1;
1888
1888
  for (let f = 0; f <= E; f++) {
1889
- const J = x[f], K = J.date.getTime(), H = (f < E ? x[f + 1].date : we(J.date, te.step, te.unit)).getTime(), Se = Math.max(H - K, 1);
1889
+ const J = x[f], K = J.date.getTime(), W = (f < E ? x[f + 1].date : we(J.date, te.step, te.unit)).getTime(), Se = Math.max(W - K, 1);
1890
1890
  if (j < K)
1891
1891
  return f * R;
1892
- if (j <= H) {
1892
+ if (j <= W) {
1893
1893
  const Ae = Math.max(0, Math.min((j - K) / Se, 1));
1894
1894
  return (f + Ae) * R;
1895
1895
  }
1896
1896
  }
1897
1897
  return x.length * R;
1898
1898
  }, [x, te, R]), ie = (d) => {
1899
- const j = W(d.start), E = W(d.end);
1899
+ const j = H(d.start), E = H(d.end);
1900
1900
  return {
1901
1901
  left: j,
1902
1902
  width: Math.max(E - j, 0)
1903
1903
  };
1904
1904
  }, ce = (d) => {
1905
- const j = W(d.start), E = W(d.end);
1905
+ const j = H(d.start), E = H(d.end);
1906
1906
  return {
1907
1907
  left: j,
1908
1908
  width: Math.max(E - j, 0)
@@ -1913,8 +1913,8 @@ const fn = ({
1913
1913
  if (O.current) {
1914
1914
  const Q = getComputedStyle(O.current).getPropertyValue("--gantt-row-height");
1915
1915
  if (Q) {
1916
- const H = parseFloat(Q);
1917
- !isNaN(H) && H > 0 && (f = H);
1916
+ const W = parseFloat(Q);
1917
+ !isNaN(W) && W > 0 && (f = W);
1918
1918
  }
1919
1919
  }
1920
1920
  const J = r.taskHeight || 28, K = (f - J) / 2;
@@ -1924,14 +1924,14 @@ const fn = ({
1924
1924
  top: E * f + K,
1925
1925
  height: J
1926
1926
  };
1927
- }, [ie, v, r.rowHeight, r.taskHeight]), pe = B.useRef(null), ke = He((d) => {
1927
+ }, [ie, v, r.rowHeight, r.taskHeight]), pe = B.useRef(null), ke = We((d) => {
1928
1928
  ye.taskId && ye.type && (pe.current && cancelAnimationFrame(pe.current), pe.current = requestAnimationFrame(() => {
1929
1929
  const j = z(d.clientX, d.clientY);
1930
1930
  j && L(
1931
1931
  (E) => E.map((f) => f.id === j.id ? j : f)
1932
1932
  );
1933
1933
  }));
1934
- }, [ye, z]), Te = He(() => {
1934
+ }, [ye, z]), Te = We(() => {
1935
1935
  if (ye.taskId) {
1936
1936
  const d = v.find((j) => j.id === ye.taskId);
1937
1937
  G(d || null), i();
@@ -1940,8 +1940,8 @@ const fn = ({
1940
1940
  const j = [];
1941
1941
  let E = "", f = "", J = 0;
1942
1942
  return x.forEach((K) => {
1943
- const Q = yn(K.date, d), H = Q.toISOString(), Se = d.unit === "year" ? "YYYY" : d.unit === "month" ? "MMM YYYY" : d.unit === "day" ? "MMM D" : "D", Ae = Zt(Q, d, Se);
1944
- H !== E ? (E && j.push({ key: E, label: f, width: J }), E = H, f = Ae, J = R) : J += R;
1943
+ const Q = yn(K.date, d), W = Q.toISOString(), Se = d.unit === "year" ? "YYYY" : d.unit === "month" ? "MMM YYYY" : d.unit === "day" ? "MMM D" : "D", Ae = Zt(Q, d, Se);
1944
+ W !== E ? (E && j.push({ key: E, label: f, width: J }), E = W, f = Ae, J = R) : J += R;
1945
1945
  }), E && j.push({ key: E, label: f, width: J }), j;
1946
1946
  }, [x, R]), Ee = B.useMemo(() => {
1947
1947
  if (!N) return [];
@@ -1961,8 +1961,8 @@ const fn = ({
1961
1961
  const d = [];
1962
1962
  let j = -1, E = -1, f = 0, J = "";
1963
1963
  return x.forEach((K) => {
1964
- const Q = K.date.getMonth(), H = K.date.getFullYear(), Se = Re(K.date, "MMM YYYY");
1965
- Q !== j || H !== E ? (j !== -1 && d.push({ label: J, width: f }), j = Q, E = H, f = R, J = Se) : f += R;
1964
+ const Q = K.date.getMonth(), W = K.date.getFullYear(), Se = Re(K.date, "MMM YYYY");
1965
+ Q !== j || W !== E ? (j !== -1 && d.push({ label: J, width: f }), j = Q, E = W, f = R, J = Se) : f += R;
1966
1966
  }), j !== -1 && d.push({ label: J, width: f }), d;
1967
1967
  }, [x, R]), re = B.useCallback(() => {
1968
1968
  const d = [];
@@ -1976,9 +1976,9 @@ const fn = ({
1976
1976
  return d.setHours(0, 0, 0, 0), d;
1977
1977
  }, []), le = B.useMemo(() => {
1978
1978
  if (!r.showTodayLine) return null;
1979
- const d = W(Le);
1979
+ const d = H(Le);
1980
1980
  return d >= -R && d <= _ + R ? Math.max(0, Math.min(d, _)) : null;
1981
- }, [r.showTodayLine, Le, _, R, W]), Ye = B.useMemo(() => {
1981
+ }, [r.showTodayLine, Le, _, R, H]), Ye = B.useMemo(() => {
1982
1982
  if (r.projectStartDate)
1983
1983
  return pt(r.projectStartDate);
1984
1984
  if (e.length > 0) {
@@ -1988,9 +1988,9 @@ const fn = ({
1988
1988
  return null;
1989
1989
  }, [r.projectStartDate, e]), Ne = B.useMemo(() => {
1990
1990
  if (!r.showProjectStartLine || !Ye) return null;
1991
- const d = W(Ye);
1991
+ const d = H(Ye);
1992
1992
  return d >= -R && d <= _ + R ? Math.max(0, Math.min(d, _)) : null;
1993
- }, [r.showProjectStartLine, Ye, _, R, W]), Ve = `calc(var(--gantt-scale-height, 24px) * ${se})`;
1993
+ }, [r.showProjectStartLine, Ye, _, R, H]), Ve = `calc(var(--gantt-scale-height, 24px) * ${se})`;
1994
1994
  return /* @__PURE__ */ t.jsxs(
1995
1995
  "div",
1996
1996
  {
@@ -2053,7 +2053,7 @@ const fn = ({
2053
2053
  children: r.projectStartLineLabel
2054
2054
  }
2055
2055
  ),
2056
- N ? Ee.map((d, j) => {
2056
+ r.showTimelineHeader !== !1 && (N ? Ee.map((d, j) => {
2057
2057
  const E = j === 0 ? "gantt-timeline-scale-month" : j === Ee.length - 1 ? "gantt-timeline-scale-day" : "gantt-timeline-scale-range";
2058
2058
  return /* @__PURE__ */ t.jsx(
2059
2059
  "div",
@@ -2061,11 +2061,11 @@ const fn = ({
2061
2061
  className: `gantt-timeline-scale ${E}`,
2062
2062
  style: { width: _ },
2063
2063
  children: d.map((f, J) => {
2064
- const K = j === Ee.length - 1, Q = K && f.date ? r.weekends && Jt(f.date) : !1, H = K && f.date ? r.holidays && Kt(f.date, r.holidays) : !1;
2064
+ const K = j === Ee.length - 1, Q = K && f.date ? r.weekends && Jt(f.date) : !1, W = K && f.date ? r.holidays && Kt(f.date, r.holidays) : !1;
2065
2065
  return /* @__PURE__ */ t.jsx(
2066
2066
  "div",
2067
2067
  {
2068
- className: `gantt-timeline-cell ${Q ? "weekend" : ""} ${H ? "holiday" : ""}`,
2068
+ className: `gantt-timeline-cell ${Q ? "weekend" : ""} ${W ? "holiday" : ""}`,
2069
2069
  style: {
2070
2070
  width: f.width,
2071
2071
  minWidth: f.width,
@@ -2126,7 +2126,7 @@ const fn = ({
2126
2126
  `day-${j}`
2127
2127
  );
2128
2128
  }) })
2129
- ] })
2129
+ ] }))
2130
2130
  ] }),
2131
2131
  /* @__PURE__ */ t.jsxs("div", { className: "gantt-timeline-body", style: { width: _, position: "relative" }, children: [
2132
2132
  le !== null && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
@@ -3212,7 +3212,7 @@ Example: 3FS+10d`);
3212
3212
  }, [e]), st(() => {
3213
3213
  p(a);
3214
3214
  }, [a]);
3215
- const h = He((L, g, A) => {
3215
+ const h = We((L, g, A) => {
3216
3216
  const X = {
3217
3217
  type: L,
3218
3218
  before: g,
@@ -3220,21 +3220,21 @@ Example: 3FS+10d`);
3220
3220
  timestamp: Date.now()
3221
3221
  }, C = n.slice(0, r + 1);
3222
3222
  C.push(X), C.length > 50 ? C.shift() : c(r + 1), s(C);
3223
- }, [n, r]), S = He(() => {
3223
+ }, [n, r]), S = We(() => {
3224
3224
  if (r < 0) return;
3225
3225
  const L = n[r];
3226
3226
  u(L.before.tasks), p(L.before.links), c(r - 1);
3227
- }, [n, r]), w = He(() => {
3227
+ }, [n, r]), w = We(() => {
3228
3228
  if (r >= n.length - 1) return;
3229
3229
  const L = n[r + 1];
3230
3230
  u(L.after.tasks), p(L.after.links), c(r + 1);
3231
- }, [n, r]), m = r >= 0, D = r < n.length - 1, O = He((L) => {
3231
+ }, [n, r]), m = r >= 0, D = r < n.length - 1, O = We((L) => {
3232
3232
  const g = { tasks: b, links: i }, A = b.map((C) => C.id === L.id ? L : C);
3233
3233
  h("task_update", g, { tasks: A, links: i }), u(A);
3234
- }, [b, i, h]), k = He((L) => {
3234
+ }, [b, i, h]), k = We((L) => {
3235
3235
  const g = { tasks: b, links: i }, A = [...b, L];
3236
3236
  h("task_create", g, { tasks: A, links: i }), u(A);
3237
- }, [b, i, h]), v = He((L) => {
3237
+ }, [b, i, h]), v = We((L) => {
3238
3238
  const g = { tasks: b, links: i }, A = b.filter((Z) => Z.id !== L), X = i.filter((Z) => Z.source !== L && Z.target !== L);
3239
3239
  h("task_delete", g, { tasks: A, links: X }), u(A), p(X);
3240
3240
  }, [b, i, h]);
@@ -3451,7 +3451,7 @@ ${s + 1}. ${n.text}
3451
3451
  return !1;
3452
3452
  }
3453
3453
  return !0;
3454
- }), Nr = 1440 * 60 * 1e3, We = (e, a) => {
3454
+ }), Nr = 1440 * 60 * 1e3, He = (e, a) => {
3455
3455
  if (e instanceof Date) {
3456
3456
  const n = new Date(e.getTime());
3457
3457
  return Number.isNaN(n.getTime()) ? new Date(a.getTime()) : n;
@@ -3496,7 +3496,7 @@ ${s + 1}. ${n.text}
3496
3496
  if (s.length === 0) return;
3497
3497
  const r = a.getTime(), c = n.getTime();
3498
3498
  return s.map((b) => {
3499
- const u = We(b?.start, a), i = We(b?.end, n), p = Math.max(u.getTime(), r), h = Math.min(i.getTime(), c);
3499
+ const u = He(b?.start, a), i = He(b?.end, n), p = Math.max(u.getTime(), r), h = Math.min(i.getTime(), c);
3500
3500
  return {
3501
3501
  start: new Date(p),
3502
3502
  end: new Date(h)
@@ -3505,21 +3505,21 @@ ${s + 1}. ${n.text}
3505
3505
  }, Bn = (e, a, n) => {
3506
3506
  if (Array.isArray(e))
3507
3507
  return e.map((s) => {
3508
- const r = We(s?.start, a), c = We(s?.end, n), b = c.getTime() < r.getTime() ? r : c, u = Math.max(Math.ceil((b.getTime() - r.getTime()) / Nr), 0);
3508
+ const r = He(s?.start, a), c = He(s?.end, n), b = c.getTime() < r.getTime() ? r : c, u = Math.max(Math.ceil((b.getTime() - r.getTime()) / Nr), 0);
3509
3509
  return {
3510
3510
  start: r,
3511
3511
  end: b,
3512
3512
  duration: rr(s?.duration, u)
3513
3513
  };
3514
3514
  }).filter((s) => s.end.getTime() >= s.start.getTime());
3515
- }, Wn = (e) => {
3516
- const a = /* @__PURE__ */ new Date(), n = We(
3515
+ }, Hn = (e) => {
3516
+ const a = /* @__PURE__ */ new Date(), n = He(
3517
3517
  e.start ?? e.startDate ?? e.start_date ?? e.plannedStartDate,
3518
3518
  a
3519
- ), s = We(
3519
+ ), s = He(
3520
3520
  e.end ?? e.endDate ?? e.end_date ?? e.plannedEndDate,
3521
3521
  n
3522
- ), r = s.getTime() < n.getTime() ? n : s, c = We(e.plannedStart ?? e.planned_start ?? e.planned_start_date, n), b = We(e.plannedEnd ?? e.planned_end ?? e.planned_end_date, r), u = b.getTime() < c.getTime() ? c : b, i = We(e.actualStart ?? e.actual_start ?? e.actual_start_date, n), p = We(e.actualEnd ?? e.actual_end ?? e.actual_end_date, r), h = p.getTime() < i.getTime() ? i : p, S = Math.max(Math.ceil((r.getTime() - n.getTime()) / Nr), 0), w = _n(e.dependencies ?? e.dependsOn ?? e.depends_on), m = In(
3522
+ ), r = s.getTime() < n.getTime() ? n : s, c = He(e.plannedStart ?? e.planned_start ?? e.planned_start_date, n), b = He(e.plannedEnd ?? e.planned_end ?? e.planned_end_date, r), u = b.getTime() < c.getTime() ? c : b, i = He(e.actualStart ?? e.actual_start ?? e.actual_start_date, n), p = He(e.actualEnd ?? e.actual_end ?? e.actual_end_date, r), h = p.getTime() < i.getTime() ? i : p, S = Math.max(Math.ceil((r.getTime() - n.getTime()) / Nr), 0), w = _n(e.dependencies ?? e.dependsOn ?? e.depends_on), m = In(
3523
3523
  e.dependencyRule ?? e.dependency_rule ?? e.dependencyRuleDescription ?? e.dependency_rule_description
3524
3524
  ), D = zn(
3525
3525
  kr(
@@ -3562,7 +3562,7 @@ ${s + 1}. ${n.text}
3562
3562
  stage_id: e.stage_id,
3563
3563
  tooltipConfig: e.tooltipConfig
3564
3564
  };
3565
- }, Hn = (e) => Array.isArray(e) ? e.map(Wn) : [], fr = (e) => {
3565
+ }, Wn = (e) => Array.isArray(e) ? e.map(Hn) : [], fr = (e) => {
3566
3566
  if (e.length === 0) return [];
3567
3567
  const a = [...e].filter((s) => s.end.getTime() > s.start.getTime()).sort((s, r) => s.start.getTime() - r.start.getTime());
3568
3568
  if (a.length === 0) return [];
@@ -3779,11 +3779,11 @@ ${s + 1}. ${n.text}
3779
3779
  if (l.length === 0) return [];
3780
3780
  const T = /* @__PURE__ */ new Date();
3781
3781
  return l.map((P) => ({
3782
- start: We(P.start, T),
3783
- end: We(P.end, T)
3782
+ start: He(P.start, T),
3783
+ end: He(P.end, T)
3784
3784
  })).filter((P) => P.end.getTime() > P.start.getTime());
3785
3785
  }, [u, i, p, h, S]), R = B.useMemo(() => {
3786
- const l = Hn(e);
3786
+ const l = Wn(e);
3787
3787
  return Xn(l, x);
3788
3788
  }, [e, x]), de = Array.isArray(a) ? a : [], {
3789
3789
  tasks: N,
@@ -3792,11 +3792,11 @@ ${s + 1}. ${n.text}
3792
3792
  setLinks: Oe,
3793
3793
  undo: z,
3794
3794
  redo: G,
3795
- updateTask: W,
3795
+ updateTask: H,
3796
3796
  createTask: ie,
3797
3797
  deleteTask: ce,
3798
3798
  saveState: be
3799
- } = Rn(R, de), [pe, ke] = U(N), [Te, ze] = U(null), [Ee, $] = U(null), [re, De] = U(!1), [qe, _] = U(void 0), [Le, le] = U(void 0), [Ye, Ne] = U(!1), [Ve, d] = U(null), [j, E] = U(null), [f, J] = U(null), [K, Q] = U(null), [H, Se] = U(null), [Ae, Xe] = U(1), [tt, ht] = U(q), [rt, mt] = U(() => g && g.size > 0 ? g : R.length > 0 ? $n(R) : /* @__PURE__ */ new Map());
3799
+ } = Rn(R, de), [pe, ke] = U(N), [Te, ze] = U(null), [Ee, $] = U(null), [re, De] = U(!1), [qe, _] = U(void 0), [Le, le] = U(void 0), [Ye, Ne] = U(!1), [Ve, d] = U(null), [j, E] = U(null), [f, J] = U(null), [K, Q] = U(null), [W, Se] = U(null), [Ae, Xe] = U(1), [tt, ht] = U(q), [rt, mt] = U(() => g && g.size > 0 ? g : R.length > 0 ? $n(R) : /* @__PURE__ */ new Map());
3800
3800
  st(() => {
3801
3801
  g && g.size > 0 && mt(g);
3802
3802
  }, [g]), st(() => {
@@ -3913,9 +3913,9 @@ ${s + 1}. ${n.text}
3913
3913
  start: kt(we(oe, -7, "day"), l, "start"),
3914
3914
  end: kt(me, l, "end")
3915
3915
  };
3916
- })(), Wt = (l) => {
3916
+ })(), Ht = (l) => {
3917
3917
  !Z.includes(l) || l === nt || (ht(l), L?.(l));
3918
- }, Ht = (l) => {
3918
+ }, Wt = (l) => {
3919
3919
  ze(l);
3920
3920
  }, Vt = (l, T) => {
3921
3921
  if (Be.readonly) return;
@@ -3923,8 +3923,8 @@ ${s + 1}. ${n.text}
3923
3923
  const P = N.find((I) => I.id === T);
3924
3924
  P && Se({ x: l.clientX, y: l.clientY, task: P });
3925
3925
  }, Xt = () => {
3926
- if (!H?.task) return;
3927
- const l = H.task, T = {
3926
+ if (!W?.task) return;
3927
+ const l = W.task, T = {
3928
3928
  ...l,
3929
3929
  id: `task-${Date.now()}`,
3930
3930
  text: `${l.text} (Copy)`,
@@ -3933,9 +3933,9 @@ ${s + 1}. ${n.text}
3933
3933
  };
3934
3934
  ie(T), D && D(T);
3935
3935
  }, o = (l) => {
3936
- if (!H?.task) return;
3937
- const T = { ...H.task, type: l };
3938
- W(T), w && w(T);
3936
+ if (!W?.task) return;
3937
+ const T = { ...W.task, type: l };
3938
+ H(T), w && w(T);
3939
3939
  }, y = B.useCallback((l, T) => {
3940
3940
  let P = [];
3941
3941
  return T.filter((oe) => oe.parent === l).forEach((oe) => {
@@ -4037,7 +4037,7 @@ ${s + 1}. ${n.text}
4037
4037
  return me.set(P.id, I), me;
4038
4038
  }), D && D(P);
4039
4039
  }, he = (l) => {
4040
- W(l), w && w(l);
4040
+ H(l), w && w(l);
4041
4041
  }, fe = (l) => {
4042
4042
  ce(l), mt((T) => {
4043
4043
  const P = new Map(T);
@@ -4117,7 +4117,7 @@ ${s + 1}. ${n.text}
4117
4117
  setZoomLevel: Xe,
4118
4118
  timelineView: xt ? nt : void 0,
4119
4119
  timelineViewOptions: _t,
4120
- onTimelineViewChange: xt ? Wt : void 0,
4120
+ onTimelineViewChange: xt ? Ht : void 0,
4121
4121
  onExport: (l) => {
4122
4122
  l === "csv" && Fr(N), l === "excel" && Rr(N), l === "json" && Pr(N, se), l === "pdf" && Or(N);
4123
4123
  },
@@ -4144,7 +4144,7 @@ ${s + 1}. ${n.text}
4144
4144
  tasks: pe,
4145
4145
  columns: Be.columns || [],
4146
4146
  selectedTask: Te,
4147
- onTaskClick: Ht,
4147
+ onTaskClick: Wt,
4148
4148
  onTaskContextMenu: Vt,
4149
4149
  onTaskUpdate: he,
4150
4150
  onTaskDragStart: Y,
@@ -4232,25 +4232,25 @@ ${s + 1}. ${n.text}
4232
4232
  styleConfig: r
4233
4233
  }
4234
4234
  ),
4235
- H && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
4235
+ W && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
4236
4236
  /* @__PURE__ */ t.jsx("div", { className: "gantt-context-menu-overlay", onClick: () => Se(null), onContextMenu: (l) => {
4237
4237
  l.preventDefault(), Se(null);
4238
4238
  } }),
4239
4239
  /* @__PURE__ */ t.jsx(
4240
4240
  Fn,
4241
4241
  {
4242
- x: H.x,
4243
- y: H.y,
4244
- task: H.task,
4242
+ x: W.x,
4243
+ y: W.y,
4244
+ task: W.task,
4245
4245
  onEdit: () => {
4246
- H.task && $(H.task);
4246
+ W.task && $(W.task);
4247
4247
  },
4248
4248
  onDelete: () => {
4249
- H.task && fe(H.task.id);
4249
+ W.task && fe(W.task.id);
4250
4250
  },
4251
4251
  onCopy: Xt,
4252
4252
  onDependencies: () => {
4253
- H.task && (d(H.task), Ne(!0));
4253
+ W.task && (d(W.task), Ne(!0));
4254
4254
  },
4255
4255
  onConvertToMilestone: () => o("milestone"),
4256
4256
  onConvertToTask: () => o("task"),
@@ -11,7 +11,7 @@ Check the top-level render call using <`+k+">.")}return b}}function Ft(a,b){{if(
11
11
  <%s {...props} />
12
12
  React keys must be passed directly to JSX without using spread:
13
13
  let props = %s;
14
- <%s key={someKey} {...props} />`,xt,Je,l,Je),zt[Je+xt]=!0}}return a===s?Rt(ye):ze(ye),ye}}function Ht(a,b,k){return Pt(a,b,k,!0)}function Wt(a,b,k){return Pt(a,b,k,!1)}var Vt=Wt,Xt=Ht;gt.Fragment=s,gt.jsx=Vt,gt.jsxs=Xt})()),gt}var Zt;function Er(){return Zt||(Zt=1,process.env.NODE_ENV==="production"?bt.exports=Dr():bt.exports=Mr()),bt.exports}var t=Er();const xe=(e,o,n)=>{const s=new Date(e);switch(n){case"hour":s.setHours(s.getHours()+o);break;case"day":s.setDate(s.getDate()+o);break;case"week":s.setDate(s.getDate()+o*7);break;case"month":s.setMonth(s.getMonth()+o);break;case"quarter":s.setMonth(s.getMonth()+o*3);break;case"year":s.setFullYear(s.getFullYear()+o);break}return s},st=(e,o)=>{const n=o.getTime()-e.getTime();return Math.ceil(n/(1e3*60*60*24))},Qt=(e,o)=>{const n=o.getTime()-e.getTime();return Math.ceil(n/(1e3*60*60))},Me=(e,o)=>{const n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s=["January","February","March","April","May","June","July","August","September","October","November","December"],r=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c={YYYY:e.getFullYear().toString(),YY:e.getFullYear().toString().slice(-2),MMMM:s[e.getMonth()],MMM:n[e.getMonth()],MM:String(e.getMonth()+1).padStart(2,"0"),M:String(e.getMonth()+1),DD:String(e.getDate()).padStart(2,"0"),D:String(e.getDate()),dddd:r[e.getDay()],HH:String(e.getHours()).padStart(2,"0"),H:String(e.getHours()),mm:String(e.getMinutes()).padStart(2,"0"),m:String(e.getMinutes())};return o.replace(/YYYY|YY|MMMM|MMM|MM|M|DD|D|dddd|HH|H|mm|m/g,v=>c[v])},St=e=>{const o=e.getDay();return o===0||o===6},vt=(e,o)=>o.some(n=>n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth()&&n.getDate()===e.getDate()),Ke=e=>{const o=new Date(e);return o.setHours(0,0,0,0),o},Lr=e=>{const o=new Date(e);return o.setHours(23,59,59,999),o},Fr=(e,o,n="day")=>{switch(n){case"hour":return Qt(e,o);case"day":return st(e,o);case"week":return Math.ceil(st(e,o)/7);case"month":return(o.getFullYear()-e.getFullYear())*12+(o.getMonth()-e.getMonth());default:return st(e,o)}};function Pr(e){if(!e||typeof e!="string")return null;const o=e.trim(),n=/^(\d+)(FS|SS|FF|SF)(([+-])(\d+)([dhwm]))?$/i,s=o.match(n);if(!s)return null;const r=parseInt(s[1],10),c=s[2].toUpperCase();let v=0,u="day";if(s[3]){const i=s[4]==="-"?-1:1;switch(v=parseInt(s[5],10)*i,s[6].toLowerCase()){case"d":u="day";break;case"h":u="hour";break;case"w":u="week";break;case"m":u="month";break}}return{taskNumber:r,type:c,lag:v,lagUnit:u}}function Nt(e,o){switch(o){case"hour":return e/24;case"day":return e;case"week":return e*7;case"month":return e*30;default:return e}}function kr(e,o){const s={e2s:"FS",s2s:"SS",e2e:"FF",s2e:"SF"}[e.type];let r=`${o}${s}`;if(e.lag&&e.lag!==0){const c=e.lag>0?"+":"",u=(e.lagUnit||"day").charAt(0);let i=e.lag;if(e.lagUnit&&e.lagUnit!=="day")switch(e.lagUnit){case"hour":i=e.lag*24;break;case"week":i=e.lag/7;break;case"month":i=e.lag/30;break}r+=`${c}${Math.round(i)}${u}`}return r}function Nr(e){return{FS:"e2s",SS:"s2s",FF:"e2e",SF:"s2e"}[e]}const it=e=>e?{popover:{backgroundColor:e.popoverBackground||"#fff",borderColor:e.popoverBorderColor||"#f0f0f0",borderRadius:e.popoverBorderRadius||"8px",boxShadow:e.popoverShadow||"0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)",padding:e.popoverPadding||"0",fontFamily:e.popoverFontFamily||e.fontFamily||"inherit",fontSize:e.popoverFontSize||e.fontSize||"14px"},modal:{backgroundColor:e.modalBackground||"#fff",borderRadius:e.modalBorderRadius||"8px",borderColor:e.modalBorderColor||"#f0f0f0",boxShadow:e.modalShadow||"0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)"},buttonPrimary:{backgroundColor:e.buttonPrimaryBackground||"#1677ff",color:e.buttonPrimaryColor||"#fff",borderRadius:e.buttonPrimaryBorderRadius||"6px",fontWeight:e.buttonPrimaryFontWeight||400,fontFamily:e.buttonPrimaryFontFamily||e.fontFamily||"inherit",boxShadow:"0 2px 0 rgba(5, 145, 255, 0.1)"},buttonDanger:{backgroundColor:e.buttonDangerBackground||"#ff4d4f",color:e.buttonDangerColor||"#fff",borderRadius:e.buttonPrimaryBorderRadius||"6px",boxShadow:"0 2px 0 rgba(255, 38, 5, 0.06)"},buttonSecondary:{backgroundColor:e.buttonSecondaryBackground||"transparent",color:e.buttonSecondaryColor||"rgba(0, 0, 0, 0.88)",borderColor:e.buttonSecondaryBorderColor||"#d9d9d9",borderRadius:e.buttonPrimaryBorderRadius||"6px",boxShadow:"0 2px 0 rgba(0, 0, 0, 0.02)"},input:{backgroundColor:e.inputBackground,borderColor:e.inputBorderColor,borderRadius:e.inputBorderRadius||"6px",fontFamily:e.inputFontFamily||e.fontFamily||"inherit",fontSize:e.inputFontSize||e.fontSize||"14px"},listItem:{hoverBackground:e.listItemHoverBackground||"#f5f5f5",selectedBackground:e.listItemSelectedBackground||"#e6f4ff",borderColor:e.listItemBorderColor||"#f0f0f0"},badge:{backgroundColor:e.badgeBackground||"#e6f4ff",borderColor:e.badgeBorderColor||"transparent",color:e.badgeColor||"#1677ff",fontSize:e.badgeFontSize||"12px",padding:e.badgePadding||"0 7px",borderRadius:e.badgeBorderRadius||"10px"},link:{color:e.linkColor||"#1677ff",hoverColor:e.linkHoverColor||"#69b1ff",fontWeight:e.linkFontWeight||400},font:{fontFamily:e.fontFamily||"inherit",fontSize:e.fontSize||"14px",fontWeight:e.fontWeight||400,lineHeight:e.lineHeight||1.5714285714285714,color:e.fontColor||"rgba(0, 0, 0, 0.88)"}}:{},{Text:Ie,Paragraph:Or}=g.Typography,{Option:Ze}=g.Select,Cr=({task:e,allTasks:o,links:n,onAddDependency:s,onRemoveDependency:r,onTaskUpdate:c,children:v,styleConfig:u})=>{const i=it(u),[h,m]=p.useState(!1),[j,S]=p.useState(null),[f,E]=p.useState("e2s"),[C,Y]=p.useState("lag"),[T,P]=p.useState(0),[x,_]=p.useState(e.duration),[q,B]=p.useState(!0),Z="day",L=n.find(H=>H.target===e.id),U=!!L,re=p.useMemo(()=>o.length===0?new Date:new Date(Math.min(...o.map(H=>H.start.getTime()))),[o]),w=()=>{if(j){const H=C==="lag"?T:-T,G=Nt(H,Z);if(x!==e.duration&&c){const W=xe(new Date(e.start),x,"day");c({...e,duration:x,end:W})}s(j,e.id,f,G),m(!1),N()}},N=()=>{S(null),E("e2s"),Y("lag"),P(0),_(e.duration)},ue=()=>{L&&r&&(r(L.id),m(!1),N())},$=H=>{if(m(H),H){if(B(!0),L){S(L.source),E(L.type);const G=L.lag||0;G>=0?(Y("lag"),P(G)):(Y("lead"),P(Math.abs(G)))}else N();_(e.duration)}},ie=()=>{if(!q)return null;const H=f==="e2s",G=f==="s2s",W=f==="e2e",le=f==="s2e";let pe=0,ve=0,me="",Ce=0,De=-1;H?(pe=50,ve=350,Ce=250,De=350,me="M 250 60 L 300 60 L 300 140 L 348 140"):W?(pe=100,ve=100,Ce=300,De=-1,me="M 300 60 L 350 60 L 350 140 L 302 140"):G?(pe=250,ve=250,Ce=250,De=-1,me="M 250 60 L 200 60 L 200 140 L 248 140"):le&&(pe=350,ve=50,Ce=350,De=250,me="M 350 60 L 300 60 L 300 140 L 252 140");const Re=j==="gantt-start-date",Le=o.find(A=>A.id===j);return t.jsx("div",{style:{width:"100%",height:90,backgroundColor:"#fbfbfb",borderRadius:4,marginBottom:12,border:"1px solid #f0f0f0",position:"relative",overflow:"hidden",flexShrink:0},children:t.jsxs("svg",{viewBox:"0 0 600 200",style:{width:"100%",height:"100%"},preserveAspectRatio:"xMidYMid meet",children:[t.jsx("defs",{children:t.jsx("marker",{id:"arrowhead",markerWidth:"12",markerHeight:"9",refX:"12",refY:"4.5",orient:"auto",children:t.jsx("polygon",{points:"0 0, 12 4.5, 0 9",fill:"#8c8c8c"})})}),t.jsx("line",{x1:Ce,x2:Ce,y1:"0",y2:"200",stroke:"#f0f0f0",strokeDasharray:"3,3"}),De!==-1&&t.jsx("line",{x1:De,x2:De,y1:"0",y2:"200",stroke:"#f0f0f0",strokeDasharray:"3,3"}),t.jsx("rect",{x:pe,y:"35",width:"200",height:"50",rx:"4",fill:"#e6f4ff",stroke:"#91caff",strokeWidth:"2"}),t.jsx("text",{x:pe+100,y:"66",fontSize:"15",textAnchor:"middle",fill:"#003a8c",fontWeight:"600",children:Re?"Start Date":Le?`Stage ${o.indexOf(Le)+1}`:"Predecessor"}),t.jsx("rect",{x:ve,y:"115",width:"200",height:"50",rx:"4",fill:"#e6f4ff",stroke:"#91caff",strokeWidth:"2"}),t.jsxs("text",{x:ve+100,y:"146",fontSize:"15",textAnchor:"middle",fill:"#003a8c",fontWeight:"600",children:["Stage ",o.indexOf(e)+1]}),t.jsx("path",{d:me,fill:"none",stroke:"#8c8c8c",strokeWidth:"2.5",markerEnd:"url(#arrowhead)"})]})})},be=()=>{const H=j==="gantt-start-date",G=o.find(ve=>ve.id===j);if(!j)return"Select a checklist from the list to see how it will relate to the current stage.";const W=o.indexOf(e)+1,le=H?"Start Date":`Stage ${o.indexOf(G)+1}`;let pe="";switch(f){case"e2s":pe=`Stage ${W} starts after ${le} finishes`;break;case"s2s":pe=`Stage ${W} starts when ${le} starts`;break;case"e2e":pe=`Stage ${W} finishes when ${le} finishes`;break;case"s2e":pe=`Stage ${W} finishes when ${le} starts`;break}if(T>0){const ve=`${T} ${Z}${T>1?"s":""}`;C==="lag"?pe+=` + ${ve} delay`:pe+=` - ${ve} overlap`}return pe+"."},ke=t.jsxs("div",{style:{width:550,backgroundColor:i.popover?.backgroundColor||"#fff",borderRadius:i.popover?.borderRadius||"8px",padding:"16px 20px",boxShadow:i.popover?.boxShadow,fontFamily:i.popover?.fontFamily},children:[t.jsx(Ie,{strong:!0,style:{fontSize:"16px",display:"block",marginBottom:16,color:i.font?.color},children:"Add Dependency"}),t.jsxs("div",{style:{display:"flex",gap:12,marginBottom:14},children:[t.jsx("div",{style:{flex:1},children:t.jsxs(g.Select,{showSearch:!0,placeholder:"Select checklist",value:j,onChange:S,style:{width:"100%"},filterOption:(H,G)=>{if(G?.value==="gantt-start-date")return"start date".includes(H.toLowerCase());const W=o.find(pe=>pe.id===G?.value);if(!W)return!1;const le=o.indexOf(W)+1;return W.text.toLowerCase().includes(H.toLowerCase())||le.toString().includes(H)},optionLabelProp:"label",children:[o.filter(H=>H.id!==e.id).map(H=>t.jsx(Ze,{value:H.id,label:H.text,children:t.jsxs("div",{style:{display:"flex",flexDirection:"column",padding:"4px 0"},children:[t.jsxs(Ie,{style:{fontSize:"13px"},children:[o.indexOf(H)+1,". ",H.text]}),t.jsxs(Ie,{type:"secondary",style:{fontSize:"11px"},children:["Start: ",Me(H.start,"MMM D, YYYY")]})]})},H.id)),t.jsx(Ze,{value:"gantt-start-date",label:"Start Date",children:t.jsxs("div",{style:{display:"flex",flexDirection:"column",padding:"4px 0",borderTop:"1px solid #f0f0f0",marginTop:"4px",paddingTop:"8px"},children:[t.jsx(Ie,{style:{fontSize:"13px",fontWeight:600},children:"Start Date"}),t.jsx(Ie,{type:"secondary",style:{fontSize:"11px"},children:Me(re,"MMM D, YYYY")})]})},"gantt-start-date")]})}),t.jsx("div",{style:{width:100},children:t.jsxs(g.Select,{value:f,onChange:E,style:{width:"100%"},children:[t.jsx(Ze,{value:"e2s",children:"FS"}),t.jsx(Ze,{value:"e2e",children:"FF"}),t.jsx(Ze,{value:"s2s",children:"SS"}),t.jsx(Ze,{value:"s2e",children:"SF"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:12,marginBottom:14},children:[t.jsxs("div",{style:{flex:1},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Delay type"}),t.jsxs(g.Select,{value:C,onChange:Y,style:{width:"100%"},children:[t.jsx(Ze,{value:"lag",children:"Lag by"}),t.jsx(Ze,{value:"lead",children:"Lead by"})]})]}),t.jsxs("div",{style:{flex:1},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Days"}),t.jsx(g.InputNumber,{min:0,value:T,onChange:H=>P(H||0),style:{width:"100%"},placeholder:"0"})]})]}),t.jsxs("div",{style:{marginBottom:14},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Duration (days)"}),t.jsx(g.InputNumber,{min:1,value:x,onChange:H=>_(H||1),style:{width:"100%"},placeholder:"Duration"})]}),t.jsx("div",{style:{backgroundColor:"#f5f5f5",padding:"10px 12px",borderRadius:"4px",marginBottom:14},children:t.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px"},children:[t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"FS: Finish to Start"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"SS: Start to Start"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"FF: Finish to Finish"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"SF: Start to Finish"})]})}),t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[t.jsx(Ie,{strong:!0,style:{fontSize:"13px",color:i.font?.color},children:"Dependency preview"}),t.jsx("a",{onClick:()=>B(!q),style:{fontSize:"12px",color:"#1890ff",cursor:"pointer",textDecoration:"none"},children:q?"Hide preview":"Show preview"})]}),q&&t.jsxs(t.Fragment,{children:[ie(),t.jsx(Or,{style:{fontSize:"12px",color:i.font?.color||"#262626",marginBottom:14,lineHeight:"1.5"},children:be()})]}),t.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10},children:[U&&t.jsx(g.Button,{danger:!0,onClick:ue,style:{...i.buttonDanger},children:"Remove Dependency"}),t.jsx(g.Button,{type:"primary",onClick:w,disabled:!j,style:{...i.buttonPrimary,minWidth:100},children:U?"Update":"Add"})]})]});return t.jsx(g.Popover,{content:ke,trigger:"click",open:h,onOpenChange:$,placement:"bottomLeft",overlayClassName:"dependency-popover",overlayInnerStyle:{padding:0},children:v})},Ot=p.memo(p.forwardRef(({tasks:e,allTasks:o=[],columns:n,selectedTask:s,onTaskClick:r,onTaskContextMenu:c,onTaskUpdate:v,onTaskDragStart:u,onAddTask:i,onAddDependency:h,onRemoveDependency:m,links:j=[],dropIndicator:S,reorderTask:f,styleConfig:E},C)=>{const Y=p.useRef(null);p.useImperativeHandle(C,()=>Y.current);const[T,P]=p.useState(null),[x,_]=p.useState(0),q=(L,U=0)=>{if(!L.parent)return U;const re=e.find(w=>w.id===L.parent);return re?q(re,U+1):U},B=(L,U)=>{if(U===L.duration)return;const re=xe(new Date(L.start),U,"day");v?.({...L,duration:U,end:re})},Z=(L,U)=>{if(U.template)return U.template(L);switch(U.name){case"text":{const re=q(L);return t.jsxs("div",{className:"gantt-grid-cell-text",style:{paddingLeft:re*14},children:[t.jsx("div",{className:"gantt-row-drag-handle",onMouseDown:w=>{w.preventDefault(),u?.(L.id,w.clientX,w.clientY,"reorder")},children:t.jsx(Se.FontAwesomeIcon,{icon:ce.faGripVertical})}),L.type==="project"?t.jsx("span",{className:"gantt-tree-icon",onClick:w=>{w.stopPropagation(),v?.({...L,open:!L.open})},children:t.jsx(Se.FontAwesomeIcon,{icon:L.open?ce.faChevronDown:ce.faChevronRight})}):t.jsx("span",{style:{width:16,display:"inline-block"}}),t.jsx("span",{className:"gantt-task-name-text",children:L.text})]})}case"start":return Me(L.start,"DD-MM-YYYY");case"end":return Me(L.end,"DD-MM-YYYY");case"duration":return T===L.id?t.jsx(g.InputNumber,{size:"small",min:1,value:x,onChange:w=>_(w||1),onBlur:()=>{B(L,x),P(null)},onPressEnter:()=>{B(L,x),P(null)},autoFocus:!0,style:{width:"100%",fontSize:"12px"}}):t.jsxs("div",{onClick:w=>{w.stopPropagation(),P(L.id),_(L.duration)},style:{backgroundColor:"#fff7e6",padding:"2px 8px",borderRadius:"4px",border:"1px solid #ffd591",fontWeight:400,color:"#d46b08",display:"inline-block",fontSize:"12px",cursor:"text"},children:[L.duration," day",L.duration!==1?"s":""]});case"predecessors":{const w=j.filter(N=>N.target===L.id)[0];return t.jsx(Cr,{task:L,allTasks:o,links:j,onAddDependency:(N,ue,$,ie)=>h?.(N,ue,$,ie),onRemoveDependency:N=>m?.(N),onTaskUpdate:v,styleConfig:E,children:t.jsx("div",{style:{cursor:"pointer",minHeight:"24px",width:"100%",display:"flex",alignItems:"center",gap:"4px"},children:w?(()=>{const N=o.find($=>$.id===w.source),ue=N?o.indexOf(N)+1:0;return t.jsx("span",{style:{fontSize:"12px",backgroundColor:"#e6f4ff",border:"1px solid #91caff",color:"#1677ff",padding:"0 7px",borderRadius:"4px",whiteSpace:"nowrap"},children:kr(w,ue)})})():t.jsx("span",{style:{fontSize:"12px",color:"#1890ff",textDecoration:"none",fontWeight:500},onMouseEnter:N=>N.currentTarget.style.textDecoration="underline",onMouseLeave:N=>N.currentTarget.style.textDecoration="none",children:"Add"})})})}case"add":return t.jsx(g.Button,{type:"primary",size:"small",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faPlus,style:{fontSize:12}}),onClick:re=>{re.stopPropagation(),i?.(L.id)},title:"Add Subtask",style:{minWidth:"28px",width:"28px",height:"28px",padding:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"}});case"progress":return t.jsxs("div",{className:"gantt-progress-cell",children:[t.jsx("div",{className:"gantt-progress-bar-bg",children:t.jsx("div",{className:"gantt-progress-bar-fill",style:{width:`${L.progress}%`}})}),t.jsxs("span",{className:"gantt-progress-text",children:[L.progress,"%"]})]});case"index":return t.jsx("span",{style:{color:"#8c8c8c"},children:o.indexOf(L)+1});default:return L[U.name]||""}};return t.jsxs("div",{className:"gantt-grid",ref:Y,children:[t.jsx("div",{className:"gantt-grid-header",style:{display:"flex",minWidth:"100%"},children:n.map(L=>t.jsx("div",{className:"gantt-grid-header-cell",style:{width:L.width,minWidth:L.width,justifyContent:L.align==="center"?"center":"flex-start"},children:L.name==="add"?t.jsx("span",{style:{fontSize:11,color:"#64748b",fontWeight:600,whiteSpace:"nowrap"},children:"Add"}):t.jsxs(t.Fragment,{children:[L.label,L.name==="start"&&t.jsx(Se.FontAwesomeIcon,{icon:ce.faChevronDown,style:{marginLeft:8,fontSize:10,color:"#64748b"}})]})},L.name))}),t.jsx("div",{className:"gantt-grid-body",children:e.map(L=>{const U=f?.id===L.id,re=f?.descendantIds.includes(L.id);return t.jsxs("div",{className:`gantt-grid-row ${s===L.id?"selected":""} ${U?"dragging-row":""} ${re?"descendant-dragging-row":""} ${S?.taskId===L.id?`drop-target-${S.position}`:""}`,onClick:()=>r(L.id),onContextMenu:w=>c?.(w,L.id),style:{display:"flex",minWidth:"100%"},children:[n.map(w=>{const N=w.name==="add";return t.jsx("div",{className:"gantt-grid-cell",style:{width:w.width,minWidth:w.width,textAlign:w.align||"left",display:"flex",alignItems:"center",justifyContent:N?"center":w.name==="text"?"flex-start":w.align==="center"?"center":w.align==="right"?"flex-end":"flex-start",visibility:"visible",opacity:1},children:Z(L,w)},`${L.id}-${w.name}`)}),S?.taskId===L.id&&t.jsx("div",{className:`gantt-drop-indicator ${S.position}`})]},L.id)})})]})}));Ot.displayName="Grid";const er=({task:e,position:o,selected:n,dragging:s,onClick:r,onDragStart:c,dragDeltaX:v=0,dragType:u=null,readonly:i=!1,baseline:h,dependencyRuleDescriptions:m=[],tooltipConfig:j})=>{const S=e.ShowHandle!==void 0?e.ShowHandle:!0,f=(A,ne)=>{i||(A.preventDefault(),A.stopPropagation(),c(A.clientX,A.clientY,ne))},E=()=>{const A=["gantt-task-bar"];if(e.type==="milestone"&&A.push("milestone"),e.type==="project"&&A.push("project"),n&&A.push("selected"),s&&A.push("dragging"),e.status){const ne=String(e.status).trim().toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");ne&&A.push(`status-${ne}`)}return A.join(" ")},C=()=>{let A=o.left,ne=o.width;return s&&u&&(u==="move"?A+=v:u==="resize-left"?(A+=v,ne-=v):u==="resize-right"&&(ne+=v)),{left:`${A}px`,width:`${Math.max(ne,0)}px`,backgroundColor:e.color||void 0}},Y=(A=!1)=>t.jsxs(t.Fragment,{children:[!i&&S&&!A&&t.jsx("div",{className:"gantt-task-resize-handle gantt-task-resize-left",onMouseDown:ne=>f(ne,"resize-left")}),!A&&e.type!=="milestone"&&t.jsx("div",{className:"gantt-task-progress",style:{width:`${e.progress}%`},children:e.progress>5&&e.progress<100&&t.jsxs("span",{className:"gantt-task-progress-text",children:[e.progress,"%"]})}),t.jsx("div",{className:"gantt-task-content",children:!A&&t.jsx("span",{className:"gantt-task-text",children:e.text})}),!i&&S&&!A&&t.jsx("div",{className:"gantt-task-resize-handle gantt-task-resize-right",onMouseDown:ne=>f(ne,"resize-right")})]}),T=(A,ne)=>{if(A instanceof Date)return Number.isNaN(A.getTime())?ne:A;if(typeof A=="string"||typeof A=="number"){const Ee=new Date(A);return Number.isNaN(Ee.getTime())?ne:Ee}return ne},P=A=>{if(Array.isArray(A)){const ne=A.map(Ee=>String(Ee).trim()).filter(Boolean);return ne.length>0?ne:void 0}if(typeof A=="string"){const ne=A.split(/\r?\n|\|/).map(Ee=>Ee.trim()).filter(Boolean);return ne.length>0?ne:void 0}},x=e.tooltipConfig?{...j,...e.tooltipConfig}:j,_=x?.dateFormat||"MMM D, YYYY",q=x?.taskNameAccessor?.(e)??e.text,B=String(q??"").trim()||`Task ${e.id}`,Z=x?.taskNameFormatter?x.taskNameFormatter(B,e):B,L=T(x?.plannedStartAccessor?.(e)??e.plannedStart??h?.start??e.start,e.start),U=T(x?.plannedEndAccessor?.(e)??e.plannedEnd??h?.end??e.end,e.end),re=x?.plannedDatesFormatter?x.plannedDatesFormatter(L,U,e):`${Me(L,_)} - ${Me(U,_)}`,w=T(x?.actualStartAccessor?.(e)??e.actualStart??e.start,e.start),N=T(x?.actualEndAccessor?.(e)??e.actualEnd??e.end,e.end),ue=x?.actualDatesFormatter?x.actualDatesFormatter(w,N,e):`${Me(w,_)} - ${Me(N,_)}`,$=x?.statusAccessor?.(e)??e.status,ie=$!=null?String($):"",be=x?.statusFormatter?x.statusFormatter(ie,e):ie?ie.replace(/-/g," "):x?.emptyStatusText||"Not set",ke=x?.ownerAccessor?.(e)??e.owner,H=ke!=null?String(ke).trim():"",G=H?x?.ownerFormatter?x.ownerFormatter(H,e):H:x?.emptyOwnerText||"",W=m.length>0?m:e.dependencyRule||[],pe=P(x?.dependencyRuleAccessor?.(e,W))||W,ve=pe.length>0?pe.map(A=>x?.dependencyRuleFormatter?x.dependencyRuleFormatter(A,e):A).join(x?.dependencySeparator||" | "):x?.emptyDependencyRuleText||"No dependency rule",me=x?.progressAccessor?.(e)??e.progress,Ce=typeof me=="number"?me:Number(me),De=Number.isFinite(Ce)?Ce:e.progress,Re=x?.progressFormatter?x.progressFormatter(De,e):`${De}%`,Le=t.jsxs("div",{className:"gantt-tooltip",children:[x?.showTaskName!==!1&&t.jsx("div",{className:"gantt-tooltip-title",children:Z}),x?.showPlannedDates!==!1&&t.jsxs("div",{className:"gantt-tooltip-dates",children:[x?.plannedLabel||"Planned",": ",re]}),x?.showActualDates!==!1&&t.jsxs("div",{className:"gantt-tooltip-dates",children:[x?.actualLabel||"Actual",": ",ue]}),x?.showStatus!==!1&&t.jsxs("div",{className:"gantt-tooltip-progress",children:[x?.statusLabel||"Status",": ",be]}),x?.showOwner!==!1&&G&&t.jsxs("div",{className:"gantt-tooltip-owner",children:[x?.ownerLabel||"Owner",": ",G]}),x?.showDependencyRule!==!1&&t.jsxs("div",{className:"gantt-tooltip-owner",children:[x?.dependencyRuleLabel||"Dependency Rule",": ",ve]}),x?.showProgress!==!1&&t.jsxs("div",{className:"gantt-tooltip-progress",children:[x?.progressLabel||"Progress",": ",Re]})]});if(e.segments&&e.segments.length>0||e.onHoldPeriods&&e.onHoldPeriods.length>0){console.log("[TaskBar] "+e.text+" onHold:",e.onHoldPeriods);const A=e.end.getTime()-e.start.getTime(),ne=(e.onHoldPeriods||[]).map(R=>({startMs:Math.max(R.start.getTime(),e.start.getTime()),endMs:Math.min(R.end.getTime(),e.end.getTime())})).filter(R=>R.endMs>R.startMs).sort((R,Fe)=>R.startMs-Fe.startMs).reduce((R,Fe)=>{const de=R[R.length-1];return!de||Fe.startMs>de.endMs?(R.push({...Fe}),R):(de.endMs=Math.max(de.endMs,Fe.endMs),R)},[]),Ee=!!(e.segments&&e.segments.length>0),qe=Ee?e.segments:[{start:e.start,end:e.end,duration:e.duration||0}];return t.jsxs("div",{className:"gantt-task-group",children:[qe.map((R,Fe)=>t.jsx(g.Tooltip,{title:Le,mouseEnterDelay:.5,children:t.jsx("div",{className:E()+" segment",style:{left:`${A>0?o.left+(R.start.getTime()-e.start.getTime())/A*o.width:o.left}px`,width:`${A>0?(R.end.getTime()-R.start.getTime())/A*o.width:o.width}px`,backgroundColor:e.color||void 0},onClick:r,onMouseDown:de=>f(de,"move"),children:Y(Fe>0)})},`seg-${Fe}`)),ne.map((R,Fe)=>{const de=A>0?A:864e5,Ae=R.endMs-R.startMs;if(Ae<=0)return null;const Ne=o.left+(R.startMs-e.start.getTime())/de*o.width,He=Ae/de*o.width;return t.jsx("div",{className:"gantt-on-hold-period",style:{left:`${Ne}px`,width:`${He}px`,zIndex:101,opacity:Ee?.9:.75,pointerEvents:"none"}},`hold-${Fe}`)})]})}return t.jsx(g.Tooltip,{title:Le,mouseEnterDelay:.5,children:t.jsx("div",{className:E(),style:C(),onClick:r,onMouseDown:A=>f(A,"move"),children:Y()})})},$r=({links:e,tasks:o,getTaskPosition:n})=>{const s=p.useMemo(()=>{const h=new Map;return o.forEach(m=>h.set(m.id,m)),h},[o]),r=h=>s.get(h),c=p.useMemo(()=>{const h=new Map,m=new Map,j=new Map,S=new Map;e.forEach(C=>{h.set(C.source,(h.get(C.source)||0)+1),m.set(C.target,(m.get(C.target)||0)+1)});const f=new Map,E=new Map;return e.forEach(C=>{const Y=f.get(C.source)||0;j.set(C.id,Y),f.set(C.source,Y+1);const T=E.get(C.target)||0;S.set(C.id,T),E.set(C.target,T+1)}),{outgoingCountByTaskId:h,incomingCountByTaskId:m,outgoingIndexByLinkId:j,incomingIndexByLinkId:S}},[e]),v=p.useMemo(()=>{let h=0,m=0;return o.forEach(j=>{try{const S=n(j);S&&typeof S.left=="number"&&typeof S.width=="number"&&(h=Math.max(h,S.left+S.width)),S&&typeof S.top=="number"&&typeof S.height=="number"&&(m=Math.max(m,S.top+S.height))}catch(S){console.warn("Failed to position task for link rendering:",j.id,S)}}),{width:Math.max(h,1e3),height:Math.max(m,100)}},[o,n]),u=(h,m)=>{const j=Math.max(3,Math.round(m/7)),S=Math.max(2,m/2-2);return Math.min((h+1)*j,S)},i=h=>{const m=r(h.source),j=r(h.target);if(!m||!j)return{path:"",arrow:""};const S=n(m),f=n(j),E=(c.outgoingCountByTaskId.get(m.id)||0)>0&&(c.incomingCountByTaskId.get(m.id)||0)>0,C=(c.outgoingCountByTaskId.get(j.id)||0)>0&&(c.incomingCountByTaskId.get(j.id)||0)>0,Y=S.top+S.height/2+(E?u(c.outgoingIndexByLinkId.get(h.id)||0,S.height):0),T=f.top+f.height/2-(C?u(c.incomingIndexByLinkId.get(h.id)||0,f.height):0),P={sourceStub:14,targetStub:8,detourPadding:24,minHorizontalSpan:18,arrowGap:2,arrowLength:14,arrowWidth:14,arrowStemOverlap:1,chevronNotchDepth:5};let x=0,_=0,q=1,B=1;switch(h.type){case"e2s":x=S.left+S.width,_=f.left,q=1,B=1;break;case"s2s":x=S.left,_=f.left,q=-1,B=1;break;case"e2e":x=S.left+S.width,_=f.left+f.width,q=1,B=-1;break;case"s2e":x=S.left,_=f.left+f.width,q=-1,B=-1;break}const Z=x+q*P.sourceStub,L=_-B*P.arrowGap,U=L-B*P.arrowLength,re=U+B*P.chevronNotchDepth,w=re-B*P.targetStub,N=re+B*P.arrowStemOverlap,ue=Math.abs(T-Y)>1;let $;if(ue){const W=T>Y;let le=W?Math.min(S.top+S.height+6,f.top-6):Math.max(S.top-6,f.top+f.height+6);Math.abs(le-Y)<2&&(le=Y+(W?2:-2)),Math.abs(le-T)<2&&(le=T+(W?-2:2)),$=[{x,y:Y},{x:Z,y:Y},{x:Z,y:le},{x:w,y:le},{x:w,y:T},{x:N,y:T}]}else{let G;q===B&&(q===1?w-Z>=P.minHorizontalSpan:Z-w>=P.minHorizontalSpan)?G=(Z+w)/2:G=q===1?Math.max(x,_)+P.detourPadding:Math.min(x,_)-P.detourPadding,$=[{x,y:Y},{x:Z,y:Y},{x:G,y:Y},{x:G,y:T},{x:w,y:T},{x:N,y:T}]}const ie=$.filter((G,W)=>{if(W===0)return!0;const le=$[W-1];return Math.abs(G.x-le.x)>.5||Math.abs(G.y-le.y)>.5}),be=ie.length>0?ie.map((G,W)=>`${W===0?"M":"L"} ${G.x},${G.y}`).join(" "):"",ke=P.arrowWidth/2,H=`M ${U},${T-ke} L ${L},${T} L ${U},${T+ke} L ${re},${T} Z`;return{path:be,arrow:H}};return e.length===0?null:t.jsx("svg",{className:"gantt-links-layer",style:{overflow:"visible",width:v.width,height:v.height,position:"absolute",top:0,left:0,pointerEvents:"none"},children:e.map(h=>{const m=r(h.source),j=r(h.target);if(!m||!j)return null;const S=i(h),f=S.path,E=S.arrow;return!f||!E?null:t.jsxs("g",{className:"gantt-link",children:[t.jsx("path",{d:f,fill:"none",strokeWidth:"1.5",className:"gantt-link-line"}),t.jsx("path",{d:E,className:"gantt-link-arrow"})]},h.id)})})},Ar=(e,o,n=60,s="day",r=1)=>{const[c,v]=p.useState({taskId:null,initialX:0,initialY:0,initialStart:new Date,initialEnd:new Date,type:null,dragDeltaX:0,dragDeltaY:0}),u=p.useCallback((m,j,S,f)=>{const E=e.find(C=>C.id===m);E&&v({taskId:m,initialX:j,initialY:S,initialStart:new Date(E.start),initialEnd:new Date(E.end),type:f,dragDeltaX:0,dragDeltaY:0})},[e]),i=p.useCallback((m,j)=>{if(!c.taskId||!c.type)return null;const S=m-c.initialX,f=j-c.initialY;if(v(x=>({...x,dragDeltaX:S,dragDeltaY:f})),c.type==="reorder")return null;const E=e.find(x=>x.id===c.taskId);if(!E)return null;const C=Math.round(S/n);let Y=new Date(c.initialStart),T=new Date(c.initialEnd);switch(c.type){case"move":Y=xe(c.initialStart,C*r,s),T=xe(c.initialEnd,C*r,s);break;case"resize-left":Y=xe(c.initialStart,C*r,s),Y>=T&&(Y=xe(T,-r,s));break;case"resize-right":T=xe(c.initialEnd,C*r,s),T<=Y&&(T=xe(Y,r,s));break}const P=st(Y,T);return{...E,start:Y,end:T,duration:P}},[c,e,n,r,s]),h=p.useCallback(m=>{if(m&&o){const{id:j,...S}=m,f=c.type;if(f&&f!=="reorder"){const E={dragType:f,previousStart:new Date(c.initialStart),previousEnd:new Date(c.initialEnd),previousDuration:st(c.initialStart,c.initialEnd)};o(j,S,E)}else o(j,S)}v({taskId:null,initialX:0,initialY:0,initialStart:new Date,initialEnd:new Date,type:null,dragDeltaX:0,dragDeltaY:0})},[o,c]);return{dragState:c,handleDragStart:u,handleDrag:i,handleDragEnd:h}},tr=e=>{const o=new Date(e.getFullYear(),e.getMonth(),1);return Math.ceil((e.getDate()+o.getDay())/7)},rr=e=>Math.floor(e.getMonth()/3)+1,Ct=(e,o,n)=>o.unit==="week"?o.format?.includes("W")?o.format.replace(/\bW\b/g,String(tr(e))):`Week ${tr(e)}`:o.unit==="quarter"?o.format?.includes("Q")?o.format.replace(/\bQ\b/g,String(rr(e))):`Q${rr(e)}`:Me(e,o.format||n),Yr=(e,o)=>{const n=new Date(e);switch(n.setMinutes(0,0,0),o.unit){case"hour":{const s=n.getHours()-n.getHours()%o.step;return n.setHours(s),n}case"day":{const s=Ke(n),r=s.getDate(),c=r-(r-1)%o.step;return new Date(s.getFullYear(),s.getMonth(),c)}case"week":{const s=Ke(n),r=new Date(s);return r.setDate(s.getDate()-s.getDay()),r}case"month":return new Date(n.getFullYear(),n.getMonth()-n.getMonth()%o.step,1);case"quarter":{const s=Math.floor(n.getMonth()/3)*3;return new Date(n.getFullYear(),s,1)}case"year":{const s=n.getFullYear()-n.getFullYear()%o.step;return new Date(s,0,1)}default:return Ke(n)}},$t=p.forwardRef(({tasks:e,links:o,range:n,scales:s,config:r,selectedTask:c,onTaskClick:v,onTaskDragStart:u,onTaskDragEnd:i,onTaskUpdate:h,zoomLevel:m,baselines:j,allowBaselineOnlyMode:S=!1,taskTooltipConfig:f},E)=>{const C=p.useRef(null),Y=p.useCallback(d=>{C.current=d,typeof E=="function"?E(d):E&&(E.current=d)},[E]),[T,P]=p.useState(e),[x,_]=p.useState(0),q=p.useMemo(()=>Math.max((r.columnWidth||60)*m,r.minColumnWidth||0),[r.columnWidth,r.minColumnWidth,m]),B=r.baselines&&j&&j.size>0,Z=p.useMemo(()=>{const d=new Map;return T.forEach(D=>d.set(D.id,D)),d},[T]),L=p.useMemo(()=>{const d=new Map,D={e2s:"Finish-to-Start",s2s:"Start-to-Start",e2e:"Finish-to-Finish",s2e:"Start-to-Finish"},F=(y,J)=>{const Q=[...d.get(y)||[],...J.map(V=>V.trim()).filter(Boolean)];Q.length>0&&d.set(y,Array.from(new Set(Q)))};return T.forEach(y=>{y.dependencyRule&&y.dependencyRule.length>0&&F(y.id,y.dependencyRule)}),o.forEach(y=>{const J=Z.get(y.source),K=Z.get(y.target),Q=J?.text||`Task ${y.source}`,V=K?.text||`Task ${y.target}`,je=D[y.type],Ye=typeof y.lag=="number"&&y.lag!==0?` (${y.lag>0?"+":""}${y.lag} ${y.lagUnit||"day"})`:"",We=`${V} depends on ${Q} [${je}]${Ye}`;F(y.target,[We])}),d},[o,T,Z]);p.useEffect(()=>{(e.length!==T.length||e.some((D,F)=>{const y=T[F];return!y||D.id!==y.id||D.start.getTime()!==y.start.getTime()||D.end.getTime()!==y.end.getTime()}))&&P(e)},[e]),p.useEffect(()=>{const d=C.current?.parentElement;if(!d)return;const D=()=>{let J=d.clientWidth;const K=d.closest(".gantt-layout"),Q=K?.querySelector(".gantt-grid");K&&Q&&(J=Math.max(0,K.clientWidth-Q.offsetWidth)),_(V=>V===J?V:J)};D();const F=d.closest(".gantt-layout")||d;if(typeof ResizeObserver>"u")return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D);const y=new ResizeObserver(()=>{D()});return y.observe(F),()=>y.disconnect()},[]);const U=p.useCallback(d=>{const D=[];let F=new Date(n.start);for(;F<=n.end;)D.push({date:new Date(F),label:Ct(F,d,d.unit==="year"?"YYYY":d.unit==="month"?"MMM":d.unit==="hour"?"HH":"D")}),F=xe(F,d.step,d.unit);if(x>0){const y=Math.floor(x/q);for(;D.length<y;)D.push({date:new Date(F),label:Ct(F,d,d.unit==="year"?"YYYY":d.unit==="month"?"MMM":d.unit==="hour"?"HH":"D")}),F=xe(F,d.step,d.unit)}return D},[n.start,n.end,x,q]),re=s[1]||s[0],w=p.useMemo(()=>U(re),[U,re]),N=p.useMemo(()=>w.length===0||x<=0?q:Math.max(q,x/w.length),[q,w.length,x]),ue=S&&T.length===0&&B,$=!!r.timelineView||!!r.timelineViews?.length,ie=$?Math.max(s.length-1,0):2,{dragState:be,handleDragStart:ke,handleDrag:H,handleDragEnd:G}=Ar(T,h,N,re.unit,re.step),W=p.useCallback(d=>{if(w.length===0)return 0;const D=d.getTime(),F=w.length-1;for(let y=0;y<=F;y++){const J=w[y],K=J.date.getTime(),V=(y<F?w[y+1].date:xe(J.date,re.step,re.unit)).getTime(),je=Math.max(V-K,1);if(D<K)return y*N;if(D<=V){const Ye=Math.max(0,Math.min((D-K)/je,1));return(y+Ye)*N}}return w.length*N},[w,re,N]),le=d=>{const D=W(d.start),F=W(d.end);return{left:D,width:Math.max(F-D,0)}},pe=d=>{const D=W(d.start),F=W(d.end);return{left:D,width:Math.max(F-D,0)}},ve=p.useCallback(d=>{const D=le(d),F=T.findIndex(Q=>Q.id===d.id);let y=r.rowHeight||48;if(C.current){const Q=getComputedStyle(C.current).getPropertyValue("--gantt-row-height");if(Q){const V=parseFloat(Q);!isNaN(V)&&V>0&&(y=V)}}const J=r.taskHeight||28,K=(y-J)/2;return{left:D.left,width:D.width,top:F*y+K,height:J}},[le,T,r.rowHeight,r.taskHeight]),me=p.useRef(null),Ce=p.useCallback(d=>{be.taskId&&be.type&&(me.current&&cancelAnimationFrame(me.current),me.current=requestAnimationFrame(()=>{const D=H(d.clientX,d.clientY);D&&P(F=>F.map(y=>y.id===D.id?D:y))}))},[be,H]),De=p.useCallback(()=>{if(be.taskId){const d=T.find(D=>D.id===be.taskId);G(d||null),i()}},[be,T,G,i]),Re=p.useCallback(d=>{const D=[];let F="",y="",J=0;return w.forEach(K=>{const Q=Yr(K.date,d),V=Q.toISOString(),je=d.unit==="year"?"YYYY":d.unit==="month"?"MMM YYYY":d.unit==="day"?"MMM D":"D",Ye=Ct(Q,d,je);V!==F?(F&&D.push({key:F,label:y,width:J}),F=V,y=Ye,J=N):J+=N}),F&&D.push({key:F,label:y,width:J}),D},[w,N]),Le=p.useMemo(()=>{if(!$)return[];const d=[];return s.slice(0,-1).forEach(F=>{const y=Re(F);y.length>0&&d.push(y)}),d.push(w.map((F,y)=>({key:`secondary-${y}`,label:F.label,width:N,date:F.date}))),d},[Re,N,$,s,w]),A=p.useCallback(()=>{const d=[];let D=-1,F=-1,y=0,J="";return w.forEach(K=>{const Q=K.date.getMonth(),V=K.date.getFullYear(),je=Me(K.date,"MMM YYYY");Q!==D||V!==F?(D!==-1&&d.push({label:J,width:y}),D=Q,F=V,y=N,J=je):y+=N}),D!==-1&&d.push({label:J,width:y}),d},[w,N]),ne=p.useCallback(()=>{const d=[];let D=-1,F=0,y=-1,J=-1,K="";return w.forEach(Q=>{const je=Q.date.getDate()<=15?0:1,Ye=Q.date.getMonth(),We=Q.date.getFullYear(),et=Me(Q.date,"MMM"),ct=new Date(We,Ye+1,0).getDate(),tt=je===0?`${et} 1 - 15`:`${et} 16 - ${ct}`;je!==D||Ye!==y||We!==J?(D!==-1&&d.push({label:K,width:F}),D=je,y=Ye,J=We,F=N,K=tt):F+=N}),D!==-1&&d.push({label:K,width:F}),d},[w,N]),Ee=p.useMemo(()=>A(),[A]),qe=p.useMemo(()=>ne(),[ne]),R=p.useMemo(()=>w.length*N,[w.length,N]),Fe=p.useMemo(()=>{const d=new Date;return d.setHours(0,0,0,0),d},[]),de=p.useMemo(()=>{if(!r.showTodayLine)return null;const d=W(Fe);return d>=-N&&d<=R+N?Math.max(0,Math.min(d,R)):null},[r.showTodayLine,Fe,R,N,W]),Ae=p.useMemo(()=>{if(r.projectStartDate)return Ke(r.projectStartDate);if(e.length>0){const d=e.map(D=>D.start.getTime());return Ke(new Date(Math.min(...d)))}return null},[r.projectStartDate,e]),Ne=p.useMemo(()=>{if(!r.showProjectStartLine||!Ae)return null;const d=W(Ae);return d>=-N&&d<=R+N?Math.max(0,Math.min(d,R)):null},[r.showProjectStartLine,Ae,R,N,W]),He=`calc(var(--gantt-scale-height, 24px) * ${ie})`;return t.jsxs("div",{className:"gantt-timeline-container",ref:Y,onMouseMove:Ce,onMouseUp:De,style:{width:R,position:"relative"},children:[t.jsxs("div",{className:"gantt-timeline-header",style:{width:R,minWidth:R,position:"relative"},children:[de!==null&&r.showTodayLine&&r.todayLineLabel&&r.todayLineLabel!==""&&t.jsx("div",{className:"gantt-today-line-label",style:{position:"absolute",top:He,left:`${de}px`,transform:"translateX(-50%)",backgroundColor:r.todayLineColor||"#ff4d4f",color:"#ffffff",padding:"4px 10px",borderRadius:"4px",fontSize:"12px",fontWeight:600,whiteSpace:"nowrap",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.2)",lineHeight:"1.2",zIndex:101,pointerEvents:"none",...r.todayLineLabelStyle},children:r.todayLineLabel}),Ne!==null&&r.showProjectStartLine&&r.projectStartLineLabel&&r.projectStartLineLabel!==""&&t.jsx("div",{className:"gantt-project-start-line-label",style:{position:"absolute",top:He,left:`${Ne}px`,transform:"translateX(-50%)",backgroundColor:r.projectStartLineColor||"#40a9ff",color:"#ffffff",padding:"4px 10px",borderRadius:"4px",fontSize:"12px",fontWeight:600,whiteSpace:"nowrap",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.2)",lineHeight:"1.2",zIndex:101,pointerEvents:"none",...r.projectStartLineLabelStyle},children:r.projectStartLineLabel}),$?Le.map((d,D)=>{const F=D===0?"gantt-timeline-scale-month":D===Le.length-1?"gantt-timeline-scale-day":"gantt-timeline-scale-range";return t.jsx("div",{className:`gantt-timeline-scale ${F}`,style:{width:R},children:d.map((y,J)=>{const K=D===Le.length-1,Q=K&&y.date?r.weekends&&St(y.date):!1,V=K&&y.date?r.holidays&&vt(y.date,r.holidays):!1;return t.jsx("div",{className:`gantt-timeline-cell ${Q?"weekend":""} ${V?"holiday":""}`,style:{width:y.width,minWidth:y.width,maxWidth:y.width,borderRight:J===d.length-1?"none":"var(--wx-gantt-border)"},children:y.label},y.key)})},`dynamic-row-${D}`)}):t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-month",style:{width:R},children:Ee.map((d,D)=>t.jsx("div",{className:"gantt-timeline-cell",style:{width:d.width,minWidth:d.width,maxWidth:d.width,borderRight:D===Ee.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`top-${D}`))}),t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-range",style:{width:R},children:qe.map((d,D)=>t.jsx("div",{className:"gantt-timeline-cell",style:{width:d.width,minWidth:d.width,maxWidth:d.width,borderRight:D===qe.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`mid-${D}`))}),t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-day",style:{width:R},children:w.map((d,D)=>{const F=r.weekends&&St(d.date),y=r.holidays&&vt(d.date,r.holidays);return t.jsx("div",{className:`gantt-timeline-cell ${F?"weekend":""} ${y?"holiday":""}`,style:{width:N,minWidth:N,maxWidth:N,borderRight:D===w.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`day-${D}`)})})]})]}),t.jsxs("div",{className:"gantt-timeline-body",style:{width:R,position:"relative"},children:[de!==null&&t.jsxs(t.Fragment,{children:[r.showTodayLineMarker!==!1&&(()=>{const d=r.todayLineMarkerSize||8,D=r.todayLineColor||"#ff4d4f",F=r.todayLineMarkerStyle||"triangle",y=r.todayLineOpacity!==void 0?r.todayLineOpacity:1;return F==="triangle"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:"-4px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="arrow"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:"-6px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d*.7}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="dot"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:`-${d/2}px`,transform:"translateX(-50%)",width:`${d}px`,height:`${d}px`,borderRadius:"50%",backgroundColor:D,zIndex:7,pointerEvents:"none",opacity:y}}):null})(),t.jsx("div",{className:"gantt-today-line",style:{position:"absolute",left:`${de}px`,top:0,bottom:0,width:`${r.todayLineWidth||1}px`,backgroundColor:r.todayLineColor||"#ff4d4f",opacity:r.todayLineOpacity!==void 0?r.todayLineOpacity:1,borderLeft:r.todayLineStyle==="dashed"?`${r.todayLineWidth||1}px dashed ${r.todayLineColor||"#ff4d4f"}`:r.todayLineStyle==="dotted"?`${r.todayLineWidth||1}px dotted ${r.todayLineColor||"#ff4d4f"}`:"none",zIndex:6,pointerEvents:"none"}})]}),Ne!==null&&t.jsxs(t.Fragment,{children:[r.showProjectStartLineMarker!==!1&&(()=>{const d=r.projectStartLineMarkerSize||8,D=r.projectStartLineColor||"#40a9ff",F=r.projectStartLineMarkerStyle||"triangle",y=r.projectStartLineOpacity!==void 0?r.projectStartLineOpacity:1;return F==="triangle"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:"-4px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="arrow"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:"-6px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d*.7}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="dot"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:`-${d/2}px`,transform:"translateX(-50%)",width:`${d}px`,height:`${d}px`,borderRadius:"50%",backgroundColor:D,zIndex:7,pointerEvents:"none",opacity:y}}):null})(),t.jsx("div",{className:"gantt-project-start-line",style:{position:"absolute",left:`${Ne}px`,top:0,bottom:0,width:`${r.projectStartLineWidth||1}px`,backgroundColor:r.projectStartLineColor||"#40a9ff",opacity:r.projectStartLineOpacity!==void 0?r.projectStartLineOpacity:1,borderLeft:r.projectStartLineStyle==="dashed"?`${r.projectStartLineWidth||1}px dashed ${r.projectStartLineColor||"#40a9ff"}`:r.projectStartLineStyle==="dotted"?`${r.projectStartLineWidth||1}px dotted ${r.projectStartLineColor||"#40a9ff"}`:"none",zIndex:6,pointerEvents:"none"}})]}),t.jsx("div",{className:"gantt-timeline-grid",children:w.map((d,D)=>{const F=r.weekends&&St(d.date),y=r.holidays&&vt(d.date,r.holidays);return t.jsx("div",{className:`gantt-timeline-grid-column ${F?"weekend":""} ${y?"holiday":""}`,style:{width:N,minWidth:N}},D)})}),o.length>0&&t.jsx($r,{links:o,tasks:T,getTaskPosition:ve}),t.jsx("div",{className:"gantt-timeline-tasks",style:{width:R},children:ue?Array.from(j?.values()||[]).map(d=>{const D=pe(d);return t.jsx("div",{className:"gantt-timeline-row baseline-only",children:t.jsx("div",{className:"gantt-baseline-bar baseline-only",style:{left:`${D.left}px`,width:`${D.width}px`},title:`Baseline: ${d.start.toLocaleDateString()} - ${d.end.toLocaleDateString()}`})},`baseline-only-${d.taskId}`)}):T.map(d=>{const D=le(d),F=B?j?.get(d.id):void 0,y=F?pe(F):void 0;return t.jsxs("div",{className:"gantt-timeline-row",children:[F&&y&&t.jsx("div",{className:`gantt-baseline-bar ${d.type==="milestone"?"milestone":""}`,style:{left:`${y.left}px`,width:`${y.width}px`},title:`Baseline: ${F.start.toLocaleDateString()} - ${F.end.toLocaleDateString()}`}),!d.hideBar&&t.jsx(er,{task:d,baseline:F,dependencyRuleDescriptions:L.get(d.id)||[],tooltipConfig:f,position:D,selected:c===d.id,dragging:be.taskId===d.id,dragDeltaX:be.dragDeltaX,dragType:be.type,onClick:()=>v(d.id),onDragStart:(J,K,Q)=>{ke(d.id,J,K,Q),u(d.id,J,K)},readonly:r.readonly})]},d.id)})})]})]})});$t.displayName="Timeline";const At=p.forwardRef((e,o)=>t.jsx("div",{className:"gantt-chart-wrapper",style:{flex:1,minWidth:0},children:t.jsx($t,{...e,ref:o})}));At.displayName="Chart";const{Search:Br}=g.Input,nr=({onFilterChange:e,owners:o=[],uiConfig:n={}})=>{const[s,r]=p.useState({searchText:"",status:"all",priority:"all",owner:""}),c=i=>{const h={...s,...i};r(h),e(h)},v=()=>{const i={searchText:"",status:"all",priority:"all",owner:""};r(i),e(i)},u=s.searchText!==""||s.status!=="all"||s.priority!=="all"||s.owner!=="";return t.jsx("div",{className:"gantt-filter-container",children:t.jsxs("div",{className:"gantt-filter-bar",children:[t.jsx("div",{className:"gantt-filter-left",children:t.jsx(Br,{placeholder:n.searchPlaceholder||"Search stages...",value:s.searchText,onChange:i=>c({searchText:i.target.value}),allowClear:!0,className:"gantt-search-antd",style:{width:250}})}),t.jsxs("div",{className:"gantt-filter-right",children:[t.jsx(g.Select,{value:s.status,onChange:i=>c({status:i}),className:"gantt-filter-select-antd",style:{width:140},options:[{value:"all",label:n.statusOptions?.all||"All Status"},{value:"not-started",label:n.statusOptions?.notStarted||"Not Started"},{value:"in-progress",label:n.statusOptions?.inProgress||"In Progress"},{value:"completed",label:n.statusOptions?.completed||"Completed"}]}),t.jsx(g.Select,{value:s.priority,onChange:i=>c({priority:i}),className:"gantt-filter-select-antd",style:{width:130},options:[{value:"all",label:n.priorityFilterOptions?.all||"All Priority"},{value:"low",label:n.priorityFilterOptions?.low||"Low"},{value:"medium",label:n.priorityFilterOptions?.medium||"Medium"},{value:"high",label:n.priorityFilterOptions?.high||"High"}]}),t.jsx(g.Select,{value:s.owner||void 0,onChange:i=>c({owner:i||""}),className:"gantt-filter-select-antd",style:{width:130},placeholder:n.allOwnersText||"All Owners",allowClear:!0,options:[{value:"",label:n.allOwnersText||"All Owners"},...(o||[]).map(i=>({value:i,label:i}))]}),u&&t.jsx(g.Button,{type:"default",danger:!0,icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faTimesCircle}),onClick:v,className:"gantt-filter-clear-antd",children:n.clearFiltersText||"Clear"})]})]})})},Qe=(e,o)=>e?typeof e=="string"?t.jsx(Se.FontAwesomeIcon,{icon:o}):e:t.jsx(Se.FontAwesomeIcon,{icon:o}),or=({zoomLevel:e,setZoomLevel:o,timelineView:n,timelineViewOptions:s=[],onTimelineViewChange:r,onExport:c,onFilterChange:v,owners:u,onAddTask:i,uiConfig:h,iconConfig:m={},styleConfig:j})=>{const S=it(j),f=h.showZoomButtons!==!1,E=h.showExportButtons!==!1,C=s.length>1&&r,Y=f&&E;return t.jsxs("div",{className:"gantt-toolbar-wrapper",children:[t.jsxs("div",{className:"gantt-toolbar",children:[t.jsx("div",{className:"gantt-toolbar-left",children:t.jsx(g.Space,{size:8,children:h.showAddTaskButton!==!1&&t.jsx(g.Button,{type:"primary",icon:Qe(m.addTask,ce.faPlus),onClick:()=>i?.(),style:S.buttonPrimary,children:h.addTaskButtonText||"New Stage"})})}),t.jsx("div",{className:"gantt-toolbar-right",children:t.jsxs(g.Space,{size:4,children:[C&&n&&t.jsxs(t.Fragment,{children:[t.jsx(g.Segmented,{className:"gantt-toolbar-view-switcher",options:s,value:n,onChange:T=>r(T)}),(f||E)&&t.jsx(g.Divider,{type:"vertical",style:{height:24,margin:"0 4px"}})]}),f&&t.jsxs(t.Fragment,{children:[t.jsx(g.Tooltip,{title:h.zoomOutTooltip||"Zoom Out",children:t.jsx(g.Button,{icon:Qe(m.zoomOut,ce.faSearchMinus),onClick:()=>o(Math.max(.5,e-.25)),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.zoomInTooltip||"Zoom In",children:t.jsx(g.Button,{icon:Qe(m.zoomIn,ce.faSearchPlus),onClick:()=>o(Math.min(2,e+.25)),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.resetZoomTooltip||"Reset Zoom",children:t.jsx(g.Button,{icon:Qe(m.resetZoom,ce.faRotateLeft),onClick:()=>o(1),style:S.buttonSecondary})})]}),Y&&t.jsx(g.Divider,{type:"vertical",style:{height:24,margin:"0 4px"}}),E&&t.jsxs(t.Fragment,{children:[t.jsx(g.Tooltip,{title:h.exportCSVTooltip||"Export to CSV",children:t.jsx(g.Button,{icon:Qe(m.exportCSV,ce.faFileCsv),onClick:()=>c("csv"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportExcelTooltip||"Export to Excel",children:t.jsx(g.Button,{icon:Qe(m.exportExcel,ce.faFileExcel),onClick:()=>c("excel"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportJSONTooltip||"Export to JSON",children:t.jsx(g.Button,{icon:Qe(m.exportJSON,ce.faFileCode),onClick:()=>c("json"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportPDFTooltip||"Export to PDF",children:t.jsx(g.Button,{icon:Qe(m.exportPDF,ce.faFilePdf),onClick:()=>c("pdf"),style:S.buttonSecondary})})]})]})})]}),h.showFilterSearch!==!1&&t.jsx(nr,{onFilterChange:v,owners:u,uiConfig:h})]})},{Option:lt}=g.Select,{TextArea:Ir}=g.Input,ar=({onCreateTask:e,onClose:o,uiConfig:n={},parentId:s,parentTaskName:r,styleConfig:c})=>{const[v]=g.Form.useForm(),u=it(c),i=h=>{const m=h.start.toDate(),j=new Date(m);j.setDate(j.getDate()+(h.duration||1)),e({text:h.text,start:m,end:j,duration:h.duration||1,progress:h.progress||0,type:h.type,color:typeof h.color=="string"?h.color:h.color?.toHexString?.()||"#4A90E2",owner:h.owner||"",priority:h.priority||"medium",details:h.details||"",parent:s},s),o()};return t.jsx(g.Modal,{title:s?(n.taskCreatorTitle||"Create Checklist")+(r?` for "${r}"`:""):n.taskCreatorTitle||"Create New Stage",open:!0,onCancel:o,onOk:()=>v.submit(),okText:n.taskCreatorOkText||"Create Stage",cancelText:n.taskCreatorCancelText||"Cancel",width:600,className:"gantt-modal-antd",styles:{content:u.modal,header:{borderBottom:`1px solid ${u.modal?.borderColor||"#f0f0f0"}`,marginBottom:16}},okButtonProps:{style:u.buttonPrimary},cancelButtonProps:{style:u.buttonSecondary},children:t.jsxs(g.Form,{form:v,layout:"vertical",onFinish:i,initialValues:{type:"task",priority:"medium",start:Gt(),duration:1,progress:0,color:"#4A90E2"},children:[t.jsx(g.Form.Item,{name:"text",label:n.taskNameLabel||"Stage Name",rules:[{required:!0,message:n.taskNameRequired||"Please enter stage name"}],children:t.jsx(g.Input,{placeholder:n.taskNamePlaceholder||"Enter stage name",autoFocus:!0,style:u.input})}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"type",label:n.typeLabel||"Type",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(lt,{value:"task",children:n.taskTypeOptions?.task||"Stage"}),t.jsx(lt,{value:"milestone",children:n.taskTypeOptions?.milestone||"Milestone"}),t.jsx(lt,{value:"project",children:n.taskTypeOptions?.project||"Project"})]})}),t.jsx(g.Form.Item,{name:"priority",label:n.priorityLabel||"Priority",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(lt,{value:"low",children:n.priorityOptions?.low||"Low"}),t.jsx(lt,{value:"medium",children:n.priorityOptions?.medium||"Medium"}),t.jsx(lt,{value:"high",children:n.priorityOptions?.high||"High"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"start",label:n.startDateLabel||"Start Date",style:{flex:1},children:t.jsx(g.DatePicker,{style:{width:"100%",...u.input}})}),t.jsx(g.Form.Item,{name:"duration",label:n.durationLabel||"Duration (days)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,style:{width:"100%",...u.input}})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"color",label:n.colorLabel||"Color",style:{flex:1},children:t.jsx(g.ColorPicker,{showText:!0})}),t.jsx(g.Form.Item,{name:"progress",label:n.progressLabel||"Progress (%)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,max:100,style:{width:"100%",...u.input}})})]}),t.jsx(g.Form.Item,{name:"owner",label:n.ownerLabel||"Owner",children:t.jsx(g.Input,{placeholder:n.ownerPlaceholder||"Assign to...",style:u.input})}),t.jsx(g.Form.Item,{name:"details",label:n.detailsLabel||"Details",children:t.jsx(Ir,{placeholder:n.detailsPlaceholder||"Add stage description...",rows:3,style:u.input})})]})})},{Option:dt}=g.Select,{TextArea:_r}=g.Input,{confirm:Rr}=g.Modal,sr=({task:e,onUpdate:o,onDelete:n,onClose:s,uiConfig:r={},styleConfig:c})=>{const[v]=g.Form.useForm(),u=it(c),i=m=>{const j=m.start.toDate(),S=new Date(j);S.setDate(S.getDate()+(m.duration||1)),o({...e,text:m.text,start:j,end:S,duration:m.duration||1,progress:m.progress||0,type:m.type,color:typeof m.color=="string"?m.color:m.color?.toHexString?.()||"#4A90E2",owner:m.owner||"",priority:m.priority||"medium",details:m.details||""}),s()},h=()=>{Rr({title:r.deleteConfirmTitle?`${r.deleteConfirmTitle}: "${e.text}"?`:`Are you sure you want to delete "${e.text}"?`,icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faExclamationTriangle,style:{color:"#faad14",marginRight:8}}),content:r.deleteConfirmContent||"This action cannot be undone.",okText:r.deleteConfirmOkText||"Yes, Delete",okType:"danger",cancelText:r.deleteConfirmCancelText||"No",onOk(){n(e.id),s()}})};return t.jsx(g.Modal,{title:r.taskEditorTitle||"Edit Stage",open:!0,onCancel:s,footer:[t.jsx(g.Button,{danger:!0,onClick:h,style:{float:"left",...u.buttonDanger},children:r.taskEditorDeleteText||"Delete"},"delete"),t.jsx(g.Button,{onClick:s,style:u.buttonSecondary,children:r.taskEditorCancelText||"Cancel"},"cancel"),t.jsx(g.Button,{type:"primary",onClick:()=>v.submit(),style:u.buttonPrimary,children:r.taskEditorSaveText||"Save Changes"},"submit")],width:600,className:"gantt-modal-antd",styles:{content:u.modal,header:{borderBottom:`1px solid ${u.modal?.borderColor||"#f0f0f0"}`,marginBottom:16}},children:t.jsxs(g.Form,{form:v,layout:"vertical",onFinish:i,initialValues:{text:e.text,type:e.type||"task",priority:e.priority||"medium",start:Gt(e.start),duration:e.duration,progress:e.progress,color:e.color||"#4A90E2",owner:e.owner||"",details:e.details||""},children:[t.jsx(g.Form.Item,{name:"text",label:r.taskNameLabel||"Stage Name",rules:[{required:!0,message:r.taskNameRequired||"Please enter stage name"}],children:t.jsx(g.Input,{placeholder:r.taskNamePlaceholder||"Enter stage name",style:u.input})}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"type",label:r.typeLabel||"Type",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(dt,{value:"task",children:r.taskTypeOptions?.task||"Stage"}),t.jsx(dt,{value:"milestone",children:r.taskTypeOptions?.milestone||"Milestone"}),t.jsx(dt,{value:"project",children:r.taskTypeOptions?.project||"Project"})]})}),t.jsx(g.Form.Item,{name:"priority",label:r.priorityLabel||"Priority",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(dt,{value:"low",children:r.priorityOptions?.low||"Low"}),t.jsx(dt,{value:"medium",children:r.priorityOptions?.medium||"Medium"}),t.jsx(dt,{value:"high",children:r.priorityOptions?.high||"High"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"start",label:r.startDateLabel||"Start Date",style:{flex:1},children:t.jsx(g.DatePicker,{style:{width:"100%",...u.input}})}),t.jsx(g.Form.Item,{name:"duration",label:r.durationLabel||"Duration (days)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,style:{width:"100%",...u.input}})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"color",label:r.colorLabel||"Color",style:{flex:1},children:t.jsx(g.ColorPicker,{showText:!0})}),t.jsx(g.Form.Item,{name:"progress",label:r.progressLabel||"Progress (%)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,max:100,style:{width:"100%",...u.input}})})]}),t.jsx(g.Form.Item,{name:"owner",label:r.ownerLabel||"Owner",children:t.jsx(g.Input,{placeholder:r.ownerPlaceholder||"Assign to...",style:u.input})}),t.jsx(g.Form.Item,{name:"details",label:r.detailsLabel||"Details",children:t.jsx(_r,{placeholder:r.detailsPlaceholder||"Add stage description...",rows:3,style:u.input})})]})})},{Title:yt,Text:nt,Paragraph:zr}=g.Typography,{Option:Xe}=g.Select,ir=({task:e,allTasks:o,links:n,onAddDependency:s,onRemoveDependency:r,onTaskUpdate:c,onClose:v,styleConfig:u})=>{const i=it(u),[h,m]=p.useState(""),[j,S]=p.useState("e2s"),[f,E]=p.useState(0),[C,Y]=p.useState("day"),[T,P]=p.useState(e.duration),[x,_]=p.useState(""),q=n.filter(w=>w.target===e.id),B=o.filter(w=>w.id!==e.id&&w.id!==e.parent),Z=()=>{if(h){const w=Nt(f,C);if(T!==e.duration&&c){const N=xe(new Date(e.start),T,"day");c({...e,duration:T,end:N})}s(h,e.id,j,w),m(""),E(0),Y("day")}},L=()=>{if(!x.trim())return;const w=Pr(x.trim());if(!w){alert(`Invalid format. Use: [TaskNumber][Type][+/-][Lag][Unit]
14
+ <%s key={someKey} {...props} />`,xt,Je,l,Je),zt[Je+xt]=!0}}return a===s?Rt(ye):ze(ye),ye}}function Ht(a,b,k){return Pt(a,b,k,!0)}function Wt(a,b,k){return Pt(a,b,k,!1)}var Vt=Wt,Xt=Ht;gt.Fragment=s,gt.jsx=Vt,gt.jsxs=Xt})()),gt}var Zt;function Er(){return Zt||(Zt=1,process.env.NODE_ENV==="production"?bt.exports=Dr():bt.exports=Mr()),bt.exports}var t=Er();const xe=(e,o,n)=>{const s=new Date(e);switch(n){case"hour":s.setHours(s.getHours()+o);break;case"day":s.setDate(s.getDate()+o);break;case"week":s.setDate(s.getDate()+o*7);break;case"month":s.setMonth(s.getMonth()+o);break;case"quarter":s.setMonth(s.getMonth()+o*3);break;case"year":s.setFullYear(s.getFullYear()+o);break}return s},st=(e,o)=>{const n=o.getTime()-e.getTime();return Math.ceil(n/(1e3*60*60*24))},Qt=(e,o)=>{const n=o.getTime()-e.getTime();return Math.ceil(n/(1e3*60*60))},Me=(e,o)=>{const n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s=["January","February","March","April","May","June","July","August","September","October","November","December"],r=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c={YYYY:e.getFullYear().toString(),YY:e.getFullYear().toString().slice(-2),MMMM:s[e.getMonth()],MMM:n[e.getMonth()],MM:String(e.getMonth()+1).padStart(2,"0"),M:String(e.getMonth()+1),DD:String(e.getDate()).padStart(2,"0"),D:String(e.getDate()),dddd:r[e.getDay()],HH:String(e.getHours()).padStart(2,"0"),H:String(e.getHours()),mm:String(e.getMinutes()).padStart(2,"0"),m:String(e.getMinutes())};return o.replace(/YYYY|YY|MMMM|MMM|MM|M|DD|D|dddd|HH|H|mm|m/g,v=>c[v])},St=e=>{const o=e.getDay();return o===0||o===6},vt=(e,o)=>o.some(n=>n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth()&&n.getDate()===e.getDate()),Ke=e=>{const o=new Date(e);return o.setHours(0,0,0,0),o},Lr=e=>{const o=new Date(e);return o.setHours(23,59,59,999),o},Fr=(e,o,n="day")=>{switch(n){case"hour":return Qt(e,o);case"day":return st(e,o);case"week":return Math.ceil(st(e,o)/7);case"month":return(o.getFullYear()-e.getFullYear())*12+(o.getMonth()-e.getMonth());default:return st(e,o)}};function Pr(e){if(!e||typeof e!="string")return null;const o=e.trim(),n=/^(\d+)(FS|SS|FF|SF)(([+-])(\d+)([dhwm]))?$/i,s=o.match(n);if(!s)return null;const r=parseInt(s[1],10),c=s[2].toUpperCase();let v=0,u="day";if(s[3]){const i=s[4]==="-"?-1:1;switch(v=parseInt(s[5],10)*i,s[6].toLowerCase()){case"d":u="day";break;case"h":u="hour";break;case"w":u="week";break;case"m":u="month";break}}return{taskNumber:r,type:c,lag:v,lagUnit:u}}function Nt(e,o){switch(o){case"hour":return e/24;case"day":return e;case"week":return e*7;case"month":return e*30;default:return e}}function kr(e,o){const s={e2s:"FS",s2s:"SS",e2e:"FF",s2e:"SF"}[e.type];let r=`${o}${s}`;if(e.lag&&e.lag!==0){const c=e.lag>0?"+":"",u=(e.lagUnit||"day").charAt(0);let i=e.lag;if(e.lagUnit&&e.lagUnit!=="day")switch(e.lagUnit){case"hour":i=e.lag*24;break;case"week":i=e.lag/7;break;case"month":i=e.lag/30;break}r+=`${c}${Math.round(i)}${u}`}return r}function Nr(e){return{FS:"e2s",SS:"s2s",FF:"e2e",SF:"s2e"}[e]}const it=e=>e?{popover:{backgroundColor:e.popoverBackground||"#fff",borderColor:e.popoverBorderColor||"#f0f0f0",borderRadius:e.popoverBorderRadius||"8px",boxShadow:e.popoverShadow||"0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)",padding:e.popoverPadding||"0",fontFamily:e.popoverFontFamily||e.fontFamily||"inherit",fontSize:e.popoverFontSize||e.fontSize||"14px"},modal:{backgroundColor:e.modalBackground||"#fff",borderRadius:e.modalBorderRadius||"8px",borderColor:e.modalBorderColor||"#f0f0f0",boxShadow:e.modalShadow||"0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)"},buttonPrimary:{backgroundColor:e.buttonPrimaryBackground||"#1677ff",color:e.buttonPrimaryColor||"#fff",borderRadius:e.buttonPrimaryBorderRadius||"6px",fontWeight:e.buttonPrimaryFontWeight||400,fontFamily:e.buttonPrimaryFontFamily||e.fontFamily||"inherit",boxShadow:"0 2px 0 rgba(5, 145, 255, 0.1)"},buttonDanger:{backgroundColor:e.buttonDangerBackground||"#ff4d4f",color:e.buttonDangerColor||"#fff",borderRadius:e.buttonPrimaryBorderRadius||"6px",boxShadow:"0 2px 0 rgba(255, 38, 5, 0.06)"},buttonSecondary:{backgroundColor:e.buttonSecondaryBackground||"transparent",color:e.buttonSecondaryColor||"rgba(0, 0, 0, 0.88)",borderColor:e.buttonSecondaryBorderColor||"#d9d9d9",borderRadius:e.buttonPrimaryBorderRadius||"6px",boxShadow:"0 2px 0 rgba(0, 0, 0, 0.02)"},input:{backgroundColor:e.inputBackground,borderColor:e.inputBorderColor,borderRadius:e.inputBorderRadius||"6px",fontFamily:e.inputFontFamily||e.fontFamily||"inherit",fontSize:e.inputFontSize||e.fontSize||"14px"},listItem:{hoverBackground:e.listItemHoverBackground||"#f5f5f5",selectedBackground:e.listItemSelectedBackground||"#e6f4ff",borderColor:e.listItemBorderColor||"#f0f0f0"},badge:{backgroundColor:e.badgeBackground||"#e6f4ff",borderColor:e.badgeBorderColor||"transparent",color:e.badgeColor||"#1677ff",fontSize:e.badgeFontSize||"12px",padding:e.badgePadding||"0 7px",borderRadius:e.badgeBorderRadius||"10px"},link:{color:e.linkColor||"#1677ff",hoverColor:e.linkHoverColor||"#69b1ff",fontWeight:e.linkFontWeight||400},font:{fontFamily:e.fontFamily||"inherit",fontSize:e.fontSize||"14px",fontWeight:e.fontWeight||400,lineHeight:e.lineHeight||1.5714285714285714,color:e.fontColor||"rgba(0, 0, 0, 0.88)"}}:{},{Text:Ie,Paragraph:Or}=g.Typography,{Option:Ze}=g.Select,Cr=({task:e,allTasks:o,links:n,onAddDependency:s,onRemoveDependency:r,onTaskUpdate:c,children:v,styleConfig:u})=>{const i=it(u),[h,m]=p.useState(!1),[j,S]=p.useState(null),[f,E]=p.useState("e2s"),[C,Y]=p.useState("lag"),[T,P]=p.useState(0),[x,_]=p.useState(e.duration),[q,B]=p.useState(!0),Z="day",L=n.find(H=>H.target===e.id),U=!!L,re=p.useMemo(()=>o.length===0?new Date:new Date(Math.min(...o.map(H=>H.start.getTime()))),[o]),w=()=>{if(j){const H=C==="lag"?T:-T,G=Nt(H,Z);if(x!==e.duration&&c){const W=xe(new Date(e.start),x,"day");c({...e,duration:x,end:W})}s(j,e.id,f,G),m(!1),N()}},N=()=>{S(null),E("e2s"),Y("lag"),P(0),_(e.duration)},ue=()=>{L&&r&&(r(L.id),m(!1),N())},$=H=>{if(m(H),H){if(B(!0),L){S(L.source),E(L.type);const G=L.lag||0;G>=0?(Y("lag"),P(G)):(Y("lead"),P(Math.abs(G)))}else N();_(e.duration)}},ie=()=>{if(!q)return null;const H=f==="e2s",G=f==="s2s",W=f==="e2e",le=f==="s2e";let pe=0,ve=0,me="",Ce=0,De=-1;H?(pe=50,ve=350,Ce=250,De=350,me="M 250 60 L 300 60 L 300 140 L 348 140"):W?(pe=100,ve=100,Ce=300,De=-1,me="M 300 60 L 350 60 L 350 140 L 302 140"):G?(pe=250,ve=250,Ce=250,De=-1,me="M 250 60 L 200 60 L 200 140 L 248 140"):le&&(pe=350,ve=50,Ce=350,De=250,me="M 350 60 L 300 60 L 300 140 L 252 140");const Re=j==="gantt-start-date",Le=o.find(A=>A.id===j);return t.jsx("div",{style:{width:"100%",height:90,backgroundColor:"#fbfbfb",borderRadius:4,marginBottom:12,border:"1px solid #f0f0f0",position:"relative",overflow:"hidden",flexShrink:0},children:t.jsxs("svg",{viewBox:"0 0 600 200",style:{width:"100%",height:"100%"},preserveAspectRatio:"xMidYMid meet",children:[t.jsx("defs",{children:t.jsx("marker",{id:"arrowhead",markerWidth:"12",markerHeight:"9",refX:"12",refY:"4.5",orient:"auto",children:t.jsx("polygon",{points:"0 0, 12 4.5, 0 9",fill:"#8c8c8c"})})}),t.jsx("line",{x1:Ce,x2:Ce,y1:"0",y2:"200",stroke:"#f0f0f0",strokeDasharray:"3,3"}),De!==-1&&t.jsx("line",{x1:De,x2:De,y1:"0",y2:"200",stroke:"#f0f0f0",strokeDasharray:"3,3"}),t.jsx("rect",{x:pe,y:"35",width:"200",height:"50",rx:"4",fill:"#e6f4ff",stroke:"#91caff",strokeWidth:"2"}),t.jsx("text",{x:pe+100,y:"66",fontSize:"15",textAnchor:"middle",fill:"#003a8c",fontWeight:"600",children:Re?"Start Date":Le?`Stage ${o.indexOf(Le)+1}`:"Predecessor"}),t.jsx("rect",{x:ve,y:"115",width:"200",height:"50",rx:"4",fill:"#e6f4ff",stroke:"#91caff",strokeWidth:"2"}),t.jsxs("text",{x:ve+100,y:"146",fontSize:"15",textAnchor:"middle",fill:"#003a8c",fontWeight:"600",children:["Stage ",o.indexOf(e)+1]}),t.jsx("path",{d:me,fill:"none",stroke:"#8c8c8c",strokeWidth:"2.5",markerEnd:"url(#arrowhead)"})]})})},be=()=>{const H=j==="gantt-start-date",G=o.find(ve=>ve.id===j);if(!j)return"Select a checklist from the list to see how it will relate to the current stage.";const W=o.indexOf(e)+1,le=H?"Start Date":`Stage ${o.indexOf(G)+1}`;let pe="";switch(f){case"e2s":pe=`Stage ${W} starts after ${le} finishes`;break;case"s2s":pe=`Stage ${W} starts when ${le} starts`;break;case"e2e":pe=`Stage ${W} finishes when ${le} finishes`;break;case"s2e":pe=`Stage ${W} finishes when ${le} starts`;break}if(T>0){const ve=`${T} ${Z}${T>1?"s":""}`;C==="lag"?pe+=` + ${ve} delay`:pe+=` - ${ve} overlap`}return pe+"."},ke=t.jsxs("div",{style:{width:550,backgroundColor:i.popover?.backgroundColor||"#fff",borderRadius:i.popover?.borderRadius||"8px",padding:"16px 20px",boxShadow:i.popover?.boxShadow,fontFamily:i.popover?.fontFamily},children:[t.jsx(Ie,{strong:!0,style:{fontSize:"16px",display:"block",marginBottom:16,color:i.font?.color},children:"Add Dependency"}),t.jsxs("div",{style:{display:"flex",gap:12,marginBottom:14},children:[t.jsx("div",{style:{flex:1},children:t.jsxs(g.Select,{showSearch:!0,placeholder:"Select checklist",value:j,onChange:S,style:{width:"100%"},filterOption:(H,G)=>{if(G?.value==="gantt-start-date")return"start date".includes(H.toLowerCase());const W=o.find(pe=>pe.id===G?.value);if(!W)return!1;const le=o.indexOf(W)+1;return W.text.toLowerCase().includes(H.toLowerCase())||le.toString().includes(H)},optionLabelProp:"label",children:[o.filter(H=>H.id!==e.id).map(H=>t.jsx(Ze,{value:H.id,label:H.text,children:t.jsxs("div",{style:{display:"flex",flexDirection:"column",padding:"4px 0"},children:[t.jsxs(Ie,{style:{fontSize:"13px"},children:[o.indexOf(H)+1,". ",H.text]}),t.jsxs(Ie,{type:"secondary",style:{fontSize:"11px"},children:["Start: ",Me(H.start,"MMM D, YYYY")]})]})},H.id)),t.jsx(Ze,{value:"gantt-start-date",label:"Start Date",children:t.jsxs("div",{style:{display:"flex",flexDirection:"column",padding:"4px 0",borderTop:"1px solid #f0f0f0",marginTop:"4px",paddingTop:"8px"},children:[t.jsx(Ie,{style:{fontSize:"13px",fontWeight:600},children:"Start Date"}),t.jsx(Ie,{type:"secondary",style:{fontSize:"11px"},children:Me(re,"MMM D, YYYY")})]})},"gantt-start-date")]})}),t.jsx("div",{style:{width:100},children:t.jsxs(g.Select,{value:f,onChange:E,style:{width:"100%"},children:[t.jsx(Ze,{value:"e2s",children:"FS"}),t.jsx(Ze,{value:"e2e",children:"FF"}),t.jsx(Ze,{value:"s2s",children:"SS"}),t.jsx(Ze,{value:"s2e",children:"SF"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:12,marginBottom:14},children:[t.jsxs("div",{style:{flex:1},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Delay type"}),t.jsxs(g.Select,{value:C,onChange:Y,style:{width:"100%"},children:[t.jsx(Ze,{value:"lag",children:"Lag by"}),t.jsx(Ze,{value:"lead",children:"Lead by"})]})]}),t.jsxs("div",{style:{flex:1},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Days"}),t.jsx(g.InputNumber,{min:0,value:T,onChange:H=>P(H||0),style:{width:"100%"},placeholder:"0"})]})]}),t.jsxs("div",{style:{marginBottom:14},children:[t.jsx(Ie,{style:{fontSize:"12px",display:"block",marginBottom:6,color:i.font?.color},children:"Duration (days)"}),t.jsx(g.InputNumber,{min:1,value:x,onChange:H=>_(H||1),style:{width:"100%"},placeholder:"Duration"})]}),t.jsx("div",{style:{backgroundColor:"#f5f5f5",padding:"10px 12px",borderRadius:"4px",marginBottom:14},children:t.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px"},children:[t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"FS: Finish to Start"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"SS: Start to Start"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"FF: Finish to Finish"}),t.jsx(Ie,{style:{fontSize:"11px",color:i.font?.color},children:"SF: Start to Finish"})]})}),t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[t.jsx(Ie,{strong:!0,style:{fontSize:"13px",color:i.font?.color},children:"Dependency preview"}),t.jsx("a",{onClick:()=>B(!q),style:{fontSize:"12px",color:"#1890ff",cursor:"pointer",textDecoration:"none"},children:q?"Hide preview":"Show preview"})]}),q&&t.jsxs(t.Fragment,{children:[ie(),t.jsx(Or,{style:{fontSize:"12px",color:i.font?.color||"#262626",marginBottom:14,lineHeight:"1.5"},children:be()})]}),t.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10},children:[U&&t.jsx(g.Button,{danger:!0,onClick:ue,style:{...i.buttonDanger},children:"Remove Dependency"}),t.jsx(g.Button,{type:"primary",onClick:w,disabled:!j,style:{...i.buttonPrimary,minWidth:100},children:U?"Update":"Add"})]})]});return t.jsx(g.Popover,{content:ke,trigger:"click",open:h,onOpenChange:$,placement:"bottomLeft",overlayClassName:"dependency-popover",overlayInnerStyle:{padding:0},children:v})},Ot=p.memo(p.forwardRef(({tasks:e,allTasks:o=[],columns:n,selectedTask:s,onTaskClick:r,onTaskContextMenu:c,onTaskUpdate:v,onTaskDragStart:u,onAddTask:i,onAddDependency:h,onRemoveDependency:m,links:j=[],dropIndicator:S,reorderTask:f,styleConfig:E},C)=>{const Y=p.useRef(null);p.useImperativeHandle(C,()=>Y.current);const[T,P]=p.useState(null),[x,_]=p.useState(0),q=(L,U=0)=>{if(!L.parent)return U;const re=e.find(w=>w.id===L.parent);return re?q(re,U+1):U},B=(L,U)=>{if(U===L.duration)return;const re=xe(new Date(L.start),U,"day");v?.({...L,duration:U,end:re})},Z=(L,U)=>{if(U.template)return U.template(L);switch(U.name){case"text":{const re=q(L);return t.jsxs("div",{className:"gantt-grid-cell-text",style:{paddingLeft:re*14},children:[t.jsx("div",{className:"gantt-row-drag-handle",onMouseDown:w=>{w.preventDefault(),u?.(L.id,w.clientX,w.clientY,"reorder")},children:t.jsx(Se.FontAwesomeIcon,{icon:ce.faGripVertical})}),L.type==="project"?t.jsx("span",{className:"gantt-tree-icon",onClick:w=>{w.stopPropagation(),v?.({...L,open:!L.open})},children:t.jsx(Se.FontAwesomeIcon,{icon:L.open?ce.faChevronDown:ce.faChevronRight})}):t.jsx("span",{style:{width:16,display:"inline-block"}}),t.jsx("span",{className:"gantt-task-name-text",children:L.text})]})}case"start":return Me(L.start,"DD-MM-YYYY");case"end":return Me(L.end,"DD-MM-YYYY");case"duration":return T===L.id?t.jsx(g.InputNumber,{size:"small",min:1,value:x,onChange:w=>_(w||1),onBlur:()=>{B(L,x),P(null)},onPressEnter:()=>{B(L,x),P(null)},autoFocus:!0,style:{width:"100%",fontSize:"12px"}}):t.jsxs("div",{onClick:w=>{w.stopPropagation(),P(L.id),_(L.duration)},style:{backgroundColor:"#fff7e6",padding:"2px 8px",borderRadius:"4px",border:"1px solid #ffd591",fontWeight:400,color:"#d46b08",display:"inline-block",fontSize:"12px",cursor:"text"},children:[L.duration," day",L.duration!==1?"s":""]});case"predecessors":{const w=j.filter(N=>N.target===L.id)[0];return t.jsx(Cr,{task:L,allTasks:o,links:j,onAddDependency:(N,ue,$,ie)=>h?.(N,ue,$,ie),onRemoveDependency:N=>m?.(N),onTaskUpdate:v,styleConfig:E,children:t.jsx("div",{style:{cursor:"pointer",minHeight:"24px",width:"100%",display:"flex",alignItems:"center",gap:"4px"},children:w?(()=>{const N=o.find($=>$.id===w.source),ue=N?o.indexOf(N)+1:0;return t.jsx("span",{style:{fontSize:"12px",backgroundColor:"#e6f4ff",border:"1px solid #91caff",color:"#1677ff",padding:"0 7px",borderRadius:"4px",whiteSpace:"nowrap"},children:kr(w,ue)})})():t.jsx("span",{style:{fontSize:"12px",color:"#1890ff",textDecoration:"none",fontWeight:500},onMouseEnter:N=>N.currentTarget.style.textDecoration="underline",onMouseLeave:N=>N.currentTarget.style.textDecoration="none",children:"Add"})})})}case"add":return t.jsx(g.Button,{type:"primary",size:"small",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faPlus,style:{fontSize:12}}),onClick:re=>{re.stopPropagation(),i?.(L.id)},title:"Add Subtask",style:{minWidth:"28px",width:"28px",height:"28px",padding:0,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"}});case"progress":return t.jsxs("div",{className:"gantt-progress-cell",children:[t.jsx("div",{className:"gantt-progress-bar-bg",children:t.jsx("div",{className:"gantt-progress-bar-fill",style:{width:`${L.progress}%`}})}),t.jsxs("span",{className:"gantt-progress-text",children:[L.progress,"%"]})]});case"index":return t.jsx("span",{style:{color:"#8c8c8c"},children:o.indexOf(L)+1});default:return L[U.name]||""}};return t.jsxs("div",{className:"gantt-grid",ref:Y,children:[t.jsx("div",{className:"gantt-grid-header",style:{display:"flex",minWidth:"100%"},children:n.map(L=>t.jsx("div",{className:"gantt-grid-header-cell",style:{width:L.width,minWidth:L.width,justifyContent:L.align==="center"?"center":"flex-start"},children:L.name==="add"?t.jsx("span",{style:{fontSize:11,color:"#64748b",fontWeight:600,whiteSpace:"nowrap"},children:"Add"}):t.jsxs(t.Fragment,{children:[L.label,L.name==="start"&&t.jsx(Se.FontAwesomeIcon,{icon:ce.faChevronDown,style:{marginLeft:8,fontSize:10,color:"#64748b"}})]})},L.name))}),t.jsx("div",{className:"gantt-grid-body",children:e.map(L=>{const U=f?.id===L.id,re=f?.descendantIds.includes(L.id);return t.jsxs("div",{className:`gantt-grid-row ${s===L.id?"selected":""} ${U?"dragging-row":""} ${re?"descendant-dragging-row":""} ${S?.taskId===L.id?`drop-target-${S.position}`:""}`,onClick:()=>r(L.id),onContextMenu:w=>c?.(w,L.id),style:{display:"flex",minWidth:"100%"},children:[n.map(w=>{const N=w.name==="add";return t.jsx("div",{className:"gantt-grid-cell",style:{width:w.width,minWidth:w.width,textAlign:w.align||"left",display:"flex",alignItems:"center",justifyContent:N?"center":w.name==="text"?"flex-start":w.align==="center"?"center":w.align==="right"?"flex-end":"flex-start",visibility:"visible",opacity:1},children:Z(L,w)},`${L.id}-${w.name}`)}),S?.taskId===L.id&&t.jsx("div",{className:`gantt-drop-indicator ${S.position}`})]},L.id)})})]})}));Ot.displayName="Grid";const er=({task:e,position:o,selected:n,dragging:s,onClick:r,onDragStart:c,dragDeltaX:v=0,dragType:u=null,readonly:i=!1,baseline:h,dependencyRuleDescriptions:m=[],tooltipConfig:j})=>{const S=e.ShowHandle!==void 0?e.ShowHandle:!0,f=(A,ne)=>{i||(A.preventDefault(),A.stopPropagation(),c(A.clientX,A.clientY,ne))},E=()=>{const A=["gantt-task-bar"];if(e.type==="milestone"&&A.push("milestone"),e.type==="project"&&A.push("project"),n&&A.push("selected"),s&&A.push("dragging"),e.status){const ne=String(e.status).trim().toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");ne&&A.push(`status-${ne}`)}return A.join(" ")},C=()=>{let A=o.left,ne=o.width;return s&&u&&(u==="move"?A+=v:u==="resize-left"?(A+=v,ne-=v):u==="resize-right"&&(ne+=v)),{left:`${A}px`,width:`${Math.max(ne,0)}px`,backgroundColor:e.color||void 0}},Y=(A=!1)=>t.jsxs(t.Fragment,{children:[!i&&S&&!A&&t.jsx("div",{className:"gantt-task-resize-handle gantt-task-resize-left",onMouseDown:ne=>f(ne,"resize-left")}),!A&&e.type!=="milestone"&&t.jsx("div",{className:"gantt-task-progress",style:{width:`${e.progress}%`},children:e.progress>5&&e.progress<100&&t.jsxs("span",{className:"gantt-task-progress-text",children:[e.progress,"%"]})}),t.jsx("div",{className:"gantt-task-content",children:!A&&t.jsx("span",{className:"gantt-task-text",children:e.text})}),!i&&S&&!A&&t.jsx("div",{className:"gantt-task-resize-handle gantt-task-resize-right",onMouseDown:ne=>f(ne,"resize-right")})]}),T=(A,ne)=>{if(A instanceof Date)return Number.isNaN(A.getTime())?ne:A;if(typeof A=="string"||typeof A=="number"){const Ee=new Date(A);return Number.isNaN(Ee.getTime())?ne:Ee}return ne},P=A=>{if(Array.isArray(A)){const ne=A.map(Ee=>String(Ee).trim()).filter(Boolean);return ne.length>0?ne:void 0}if(typeof A=="string"){const ne=A.split(/\r?\n|\|/).map(Ee=>Ee.trim()).filter(Boolean);return ne.length>0?ne:void 0}},x=e.tooltipConfig?{...j,...e.tooltipConfig}:j,_=x?.dateFormat||"MMM D, YYYY",q=x?.taskNameAccessor?.(e)??e.text,B=String(q??"").trim()||`Task ${e.id}`,Z=x?.taskNameFormatter?x.taskNameFormatter(B,e):B,L=T(x?.plannedStartAccessor?.(e)??e.plannedStart??h?.start??e.start,e.start),U=T(x?.plannedEndAccessor?.(e)??e.plannedEnd??h?.end??e.end,e.end),re=x?.plannedDatesFormatter?x.plannedDatesFormatter(L,U,e):`${Me(L,_)} - ${Me(U,_)}`,w=T(x?.actualStartAccessor?.(e)??e.actualStart??e.start,e.start),N=T(x?.actualEndAccessor?.(e)??e.actualEnd??e.end,e.end),ue=x?.actualDatesFormatter?x.actualDatesFormatter(w,N,e):`${Me(w,_)} - ${Me(N,_)}`,$=x?.statusAccessor?.(e)??e.status,ie=$!=null?String($):"",be=x?.statusFormatter?x.statusFormatter(ie,e):ie?ie.replace(/-/g," "):x?.emptyStatusText||"Not set",ke=x?.ownerAccessor?.(e)??e.owner,H=ke!=null?String(ke).trim():"",G=H?x?.ownerFormatter?x.ownerFormatter(H,e):H:x?.emptyOwnerText||"",W=m.length>0?m:e.dependencyRule||[],pe=P(x?.dependencyRuleAccessor?.(e,W))||W,ve=pe.length>0?pe.map(A=>x?.dependencyRuleFormatter?x.dependencyRuleFormatter(A,e):A).join(x?.dependencySeparator||" | "):x?.emptyDependencyRuleText||"No dependency rule",me=x?.progressAccessor?.(e)??e.progress,Ce=typeof me=="number"?me:Number(me),De=Number.isFinite(Ce)?Ce:e.progress,Re=x?.progressFormatter?x.progressFormatter(De,e):`${De}%`,Le=t.jsxs("div",{className:"gantt-tooltip",children:[x?.showTaskName!==!1&&t.jsx("div",{className:"gantt-tooltip-title",children:Z}),x?.showPlannedDates!==!1&&t.jsxs("div",{className:"gantt-tooltip-dates",children:[x?.plannedLabel||"Planned",": ",re]}),x?.showActualDates!==!1&&t.jsxs("div",{className:"gantt-tooltip-dates",children:[x?.actualLabel||"Actual",": ",ue]}),x?.showStatus!==!1&&t.jsxs("div",{className:"gantt-tooltip-progress",children:[x?.statusLabel||"Status",": ",be]}),x?.showOwner!==!1&&G&&t.jsxs("div",{className:"gantt-tooltip-owner",children:[x?.ownerLabel||"Owner",": ",G]}),x?.showDependencyRule!==!1&&t.jsxs("div",{className:"gantt-tooltip-owner",children:[x?.dependencyRuleLabel||"Dependency Rule",": ",ve]}),x?.showProgress!==!1&&t.jsxs("div",{className:"gantt-tooltip-progress",children:[x?.progressLabel||"Progress",": ",Re]})]});if(e.segments&&e.segments.length>0||e.onHoldPeriods&&e.onHoldPeriods.length>0){console.log("[TaskBar] "+e.text+" onHold:",e.onHoldPeriods);const A=e.end.getTime()-e.start.getTime(),ne=(e.onHoldPeriods||[]).map(R=>({startMs:Math.max(R.start.getTime(),e.start.getTime()),endMs:Math.min(R.end.getTime(),e.end.getTime())})).filter(R=>R.endMs>R.startMs).sort((R,Fe)=>R.startMs-Fe.startMs).reduce((R,Fe)=>{const de=R[R.length-1];return!de||Fe.startMs>de.endMs?(R.push({...Fe}),R):(de.endMs=Math.max(de.endMs,Fe.endMs),R)},[]),Ee=!!(e.segments&&e.segments.length>0),qe=Ee?e.segments:[{start:e.start,end:e.end,duration:e.duration||0}];return t.jsxs("div",{className:"gantt-task-group",children:[qe.map((R,Fe)=>t.jsx(g.Tooltip,{title:Le,mouseEnterDelay:.5,children:t.jsx("div",{className:E()+" segment",style:{left:`${A>0?o.left+(R.start.getTime()-e.start.getTime())/A*o.width:o.left}px`,width:`${A>0?(R.end.getTime()-R.start.getTime())/A*o.width:o.width}px`,backgroundColor:e.color||void 0},onClick:r,onMouseDown:de=>f(de,"move"),children:Y(Fe>0)})},`seg-${Fe}`)),ne.map((R,Fe)=>{const de=A>0?A:864e5,Ae=R.endMs-R.startMs;if(Ae<=0)return null;const Ne=o.left+(R.startMs-e.start.getTime())/de*o.width,He=Ae/de*o.width;return t.jsx("div",{className:"gantt-on-hold-period",style:{left:`${Ne}px`,width:`${He}px`,zIndex:101,opacity:Ee?.9:.75,pointerEvents:"none"}},`hold-${Fe}`)})]})}return t.jsx(g.Tooltip,{title:Le,mouseEnterDelay:.5,children:t.jsx("div",{className:E(),style:C(),onClick:r,onMouseDown:A=>f(A,"move"),children:Y()})})},$r=({links:e,tasks:o,getTaskPosition:n})=>{const s=p.useMemo(()=>{const h=new Map;return o.forEach(m=>h.set(m.id,m)),h},[o]),r=h=>s.get(h),c=p.useMemo(()=>{const h=new Map,m=new Map,j=new Map,S=new Map;e.forEach(C=>{h.set(C.source,(h.get(C.source)||0)+1),m.set(C.target,(m.get(C.target)||0)+1)});const f=new Map,E=new Map;return e.forEach(C=>{const Y=f.get(C.source)||0;j.set(C.id,Y),f.set(C.source,Y+1);const T=E.get(C.target)||0;S.set(C.id,T),E.set(C.target,T+1)}),{outgoingCountByTaskId:h,incomingCountByTaskId:m,outgoingIndexByLinkId:j,incomingIndexByLinkId:S}},[e]),v=p.useMemo(()=>{let h=0,m=0;return o.forEach(j=>{try{const S=n(j);S&&typeof S.left=="number"&&typeof S.width=="number"&&(h=Math.max(h,S.left+S.width)),S&&typeof S.top=="number"&&typeof S.height=="number"&&(m=Math.max(m,S.top+S.height))}catch(S){console.warn("Failed to position task for link rendering:",j.id,S)}}),{width:Math.max(h,1e3),height:Math.max(m,100)}},[o,n]),u=(h,m)=>{const j=Math.max(3,Math.round(m/7)),S=Math.max(2,m/2-2);return Math.min((h+1)*j,S)},i=h=>{const m=r(h.source),j=r(h.target);if(!m||!j)return{path:"",arrow:""};const S=n(m),f=n(j),E=(c.outgoingCountByTaskId.get(m.id)||0)>0&&(c.incomingCountByTaskId.get(m.id)||0)>0,C=(c.outgoingCountByTaskId.get(j.id)||0)>0&&(c.incomingCountByTaskId.get(j.id)||0)>0,Y=S.top+S.height/2+(E?u(c.outgoingIndexByLinkId.get(h.id)||0,S.height):0),T=f.top+f.height/2-(C?u(c.incomingIndexByLinkId.get(h.id)||0,f.height):0),P={sourceStub:14,targetStub:8,detourPadding:24,minHorizontalSpan:18,arrowGap:2,arrowLength:14,arrowWidth:14,arrowStemOverlap:1,chevronNotchDepth:5};let x=0,_=0,q=1,B=1;switch(h.type){case"e2s":x=S.left+S.width,_=f.left,q=1,B=1;break;case"s2s":x=S.left,_=f.left,q=-1,B=1;break;case"e2e":x=S.left+S.width,_=f.left+f.width,q=1,B=-1;break;case"s2e":x=S.left,_=f.left+f.width,q=-1,B=-1;break}const Z=x+q*P.sourceStub,L=_-B*P.arrowGap,U=L-B*P.arrowLength,re=U+B*P.chevronNotchDepth,w=re-B*P.targetStub,N=re+B*P.arrowStemOverlap,ue=Math.abs(T-Y)>1;let $;if(ue){const W=T>Y;let le=W?Math.min(S.top+S.height+6,f.top-6):Math.max(S.top-6,f.top+f.height+6);Math.abs(le-Y)<2&&(le=Y+(W?2:-2)),Math.abs(le-T)<2&&(le=T+(W?-2:2)),$=[{x,y:Y},{x:Z,y:Y},{x:Z,y:le},{x:w,y:le},{x:w,y:T},{x:N,y:T}]}else{let G;q===B&&(q===1?w-Z>=P.minHorizontalSpan:Z-w>=P.minHorizontalSpan)?G=(Z+w)/2:G=q===1?Math.max(x,_)+P.detourPadding:Math.min(x,_)-P.detourPadding,$=[{x,y:Y},{x:Z,y:Y},{x:G,y:Y},{x:G,y:T},{x:w,y:T},{x:N,y:T}]}const ie=$.filter((G,W)=>{if(W===0)return!0;const le=$[W-1];return Math.abs(G.x-le.x)>.5||Math.abs(G.y-le.y)>.5}),be=ie.length>0?ie.map((G,W)=>`${W===0?"M":"L"} ${G.x},${G.y}`).join(" "):"",ke=P.arrowWidth/2,H=`M ${U},${T-ke} L ${L},${T} L ${U},${T+ke} L ${re},${T} Z`;return{path:be,arrow:H}};return e.length===0?null:t.jsx("svg",{className:"gantt-links-layer",style:{overflow:"visible",width:v.width,height:v.height,position:"absolute",top:0,left:0,pointerEvents:"none"},children:e.map(h=>{const m=r(h.source),j=r(h.target);if(!m||!j)return null;const S=i(h),f=S.path,E=S.arrow;return!f||!E?null:t.jsxs("g",{className:"gantt-link",children:[t.jsx("path",{d:f,fill:"none",strokeWidth:"1.5",className:"gantt-link-line"}),t.jsx("path",{d:E,className:"gantt-link-arrow"})]},h.id)})})},Ar=(e,o,n=60,s="day",r=1)=>{const[c,v]=p.useState({taskId:null,initialX:0,initialY:0,initialStart:new Date,initialEnd:new Date,type:null,dragDeltaX:0,dragDeltaY:0}),u=p.useCallback((m,j,S,f)=>{const E=e.find(C=>C.id===m);E&&v({taskId:m,initialX:j,initialY:S,initialStart:new Date(E.start),initialEnd:new Date(E.end),type:f,dragDeltaX:0,dragDeltaY:0})},[e]),i=p.useCallback((m,j)=>{if(!c.taskId||!c.type)return null;const S=m-c.initialX,f=j-c.initialY;if(v(x=>({...x,dragDeltaX:S,dragDeltaY:f})),c.type==="reorder")return null;const E=e.find(x=>x.id===c.taskId);if(!E)return null;const C=Math.round(S/n);let Y=new Date(c.initialStart),T=new Date(c.initialEnd);switch(c.type){case"move":Y=xe(c.initialStart,C*r,s),T=xe(c.initialEnd,C*r,s);break;case"resize-left":Y=xe(c.initialStart,C*r,s),Y>=T&&(Y=xe(T,-r,s));break;case"resize-right":T=xe(c.initialEnd,C*r,s),T<=Y&&(T=xe(Y,r,s));break}const P=st(Y,T);return{...E,start:Y,end:T,duration:P}},[c,e,n,r,s]),h=p.useCallback(m=>{if(m&&o){const{id:j,...S}=m,f=c.type;if(f&&f!=="reorder"){const E={dragType:f,previousStart:new Date(c.initialStart),previousEnd:new Date(c.initialEnd),previousDuration:st(c.initialStart,c.initialEnd)};o(j,S,E)}else o(j,S)}v({taskId:null,initialX:0,initialY:0,initialStart:new Date,initialEnd:new Date,type:null,dragDeltaX:0,dragDeltaY:0})},[o,c]);return{dragState:c,handleDragStart:u,handleDrag:i,handleDragEnd:h}},tr=e=>{const o=new Date(e.getFullYear(),e.getMonth(),1);return Math.ceil((e.getDate()+o.getDay())/7)},rr=e=>Math.floor(e.getMonth()/3)+1,Ct=(e,o,n)=>o.unit==="week"?o.format?.includes("W")?o.format.replace(/\bW\b/g,String(tr(e))):`Week ${tr(e)}`:o.unit==="quarter"?o.format?.includes("Q")?o.format.replace(/\bQ\b/g,String(rr(e))):`Q${rr(e)}`:Me(e,o.format||n),Yr=(e,o)=>{const n=new Date(e);switch(n.setMinutes(0,0,0),o.unit){case"hour":{const s=n.getHours()-n.getHours()%o.step;return n.setHours(s),n}case"day":{const s=Ke(n),r=s.getDate(),c=r-(r-1)%o.step;return new Date(s.getFullYear(),s.getMonth(),c)}case"week":{const s=Ke(n),r=new Date(s);return r.setDate(s.getDate()-s.getDay()),r}case"month":return new Date(n.getFullYear(),n.getMonth()-n.getMonth()%o.step,1);case"quarter":{const s=Math.floor(n.getMonth()/3)*3;return new Date(n.getFullYear(),s,1)}case"year":{const s=n.getFullYear()-n.getFullYear()%o.step;return new Date(s,0,1)}default:return Ke(n)}},$t=p.forwardRef(({tasks:e,links:o,range:n,scales:s,config:r,selectedTask:c,onTaskClick:v,onTaskDragStart:u,onTaskDragEnd:i,onTaskUpdate:h,zoomLevel:m,baselines:j,allowBaselineOnlyMode:S=!1,taskTooltipConfig:f},E)=>{const C=p.useRef(null),Y=p.useCallback(d=>{C.current=d,typeof E=="function"?E(d):E&&(E.current=d)},[E]),[T,P]=p.useState(e),[x,_]=p.useState(0),q=p.useMemo(()=>Math.max((r.columnWidth||60)*m,r.minColumnWidth||0),[r.columnWidth,r.minColumnWidth,m]),B=r.baselines&&j&&j.size>0,Z=p.useMemo(()=>{const d=new Map;return T.forEach(D=>d.set(D.id,D)),d},[T]),L=p.useMemo(()=>{const d=new Map,D={e2s:"Finish-to-Start",s2s:"Start-to-Start",e2e:"Finish-to-Finish",s2e:"Start-to-Finish"},F=(y,J)=>{const Q=[...d.get(y)||[],...J.map(V=>V.trim()).filter(Boolean)];Q.length>0&&d.set(y,Array.from(new Set(Q)))};return T.forEach(y=>{y.dependencyRule&&y.dependencyRule.length>0&&F(y.id,y.dependencyRule)}),o.forEach(y=>{const J=Z.get(y.source),K=Z.get(y.target),Q=J?.text||`Task ${y.source}`,V=K?.text||`Task ${y.target}`,je=D[y.type],Ye=typeof y.lag=="number"&&y.lag!==0?` (${y.lag>0?"+":""}${y.lag} ${y.lagUnit||"day"})`:"",We=`${V} depends on ${Q} [${je}]${Ye}`;F(y.target,[We])}),d},[o,T,Z]);p.useEffect(()=>{(e.length!==T.length||e.some((D,F)=>{const y=T[F];return!y||D.id!==y.id||D.start.getTime()!==y.start.getTime()||D.end.getTime()!==y.end.getTime()}))&&P(e)},[e]),p.useEffect(()=>{const d=C.current?.parentElement;if(!d)return;const D=()=>{let J=d.clientWidth;const K=d.closest(".gantt-layout"),Q=K?.querySelector(".gantt-grid");K&&Q&&(J=Math.max(0,K.clientWidth-Q.offsetWidth)),_(V=>V===J?V:J)};D();const F=d.closest(".gantt-layout")||d;if(typeof ResizeObserver>"u")return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D);const y=new ResizeObserver(()=>{D()});return y.observe(F),()=>y.disconnect()},[]);const U=p.useCallback(d=>{const D=[];let F=new Date(n.start);for(;F<=n.end;)D.push({date:new Date(F),label:Ct(F,d,d.unit==="year"?"YYYY":d.unit==="month"?"MMM":d.unit==="hour"?"HH":"D")}),F=xe(F,d.step,d.unit);if(x>0){const y=Math.floor(x/q);for(;D.length<y;)D.push({date:new Date(F),label:Ct(F,d,d.unit==="year"?"YYYY":d.unit==="month"?"MMM":d.unit==="hour"?"HH":"D")}),F=xe(F,d.step,d.unit)}return D},[n.start,n.end,x,q]),re=s[1]||s[0],w=p.useMemo(()=>U(re),[U,re]),N=p.useMemo(()=>w.length===0||x<=0?q:Math.max(q,x/w.length),[q,w.length,x]),ue=S&&T.length===0&&B,$=!!r.timelineView||!!r.timelineViews?.length,ie=$?Math.max(s.length-1,0):2,{dragState:be,handleDragStart:ke,handleDrag:H,handleDragEnd:G}=Ar(T,h,N,re.unit,re.step),W=p.useCallback(d=>{if(w.length===0)return 0;const D=d.getTime(),F=w.length-1;for(let y=0;y<=F;y++){const J=w[y],K=J.date.getTime(),V=(y<F?w[y+1].date:xe(J.date,re.step,re.unit)).getTime(),je=Math.max(V-K,1);if(D<K)return y*N;if(D<=V){const Ye=Math.max(0,Math.min((D-K)/je,1));return(y+Ye)*N}}return w.length*N},[w,re,N]),le=d=>{const D=W(d.start),F=W(d.end);return{left:D,width:Math.max(F-D,0)}},pe=d=>{const D=W(d.start),F=W(d.end);return{left:D,width:Math.max(F-D,0)}},ve=p.useCallback(d=>{const D=le(d),F=T.findIndex(Q=>Q.id===d.id);let y=r.rowHeight||48;if(C.current){const Q=getComputedStyle(C.current).getPropertyValue("--gantt-row-height");if(Q){const V=parseFloat(Q);!isNaN(V)&&V>0&&(y=V)}}const J=r.taskHeight||28,K=(y-J)/2;return{left:D.left,width:D.width,top:F*y+K,height:J}},[le,T,r.rowHeight,r.taskHeight]),me=p.useRef(null),Ce=p.useCallback(d=>{be.taskId&&be.type&&(me.current&&cancelAnimationFrame(me.current),me.current=requestAnimationFrame(()=>{const D=H(d.clientX,d.clientY);D&&P(F=>F.map(y=>y.id===D.id?D:y))}))},[be,H]),De=p.useCallback(()=>{if(be.taskId){const d=T.find(D=>D.id===be.taskId);G(d||null),i()}},[be,T,G,i]),Re=p.useCallback(d=>{const D=[];let F="",y="",J=0;return w.forEach(K=>{const Q=Yr(K.date,d),V=Q.toISOString(),je=d.unit==="year"?"YYYY":d.unit==="month"?"MMM YYYY":d.unit==="day"?"MMM D":"D",Ye=Ct(Q,d,je);V!==F?(F&&D.push({key:F,label:y,width:J}),F=V,y=Ye,J=N):J+=N}),F&&D.push({key:F,label:y,width:J}),D},[w,N]),Le=p.useMemo(()=>{if(!$)return[];const d=[];return s.slice(0,-1).forEach(F=>{const y=Re(F);y.length>0&&d.push(y)}),d.push(w.map((F,y)=>({key:`secondary-${y}`,label:F.label,width:N,date:F.date}))),d},[Re,N,$,s,w]),A=p.useCallback(()=>{const d=[];let D=-1,F=-1,y=0,J="";return w.forEach(K=>{const Q=K.date.getMonth(),V=K.date.getFullYear(),je=Me(K.date,"MMM YYYY");Q!==D||V!==F?(D!==-1&&d.push({label:J,width:y}),D=Q,F=V,y=N,J=je):y+=N}),D!==-1&&d.push({label:J,width:y}),d},[w,N]),ne=p.useCallback(()=>{const d=[];let D=-1,F=0,y=-1,J=-1,K="";return w.forEach(Q=>{const je=Q.date.getDate()<=15?0:1,Ye=Q.date.getMonth(),We=Q.date.getFullYear(),et=Me(Q.date,"MMM"),ct=new Date(We,Ye+1,0).getDate(),tt=je===0?`${et} 1 - 15`:`${et} 16 - ${ct}`;je!==D||Ye!==y||We!==J?(D!==-1&&d.push({label:K,width:F}),D=je,y=Ye,J=We,F=N,K=tt):F+=N}),D!==-1&&d.push({label:K,width:F}),d},[w,N]),Ee=p.useMemo(()=>A(),[A]),qe=p.useMemo(()=>ne(),[ne]),R=p.useMemo(()=>w.length*N,[w.length,N]),Fe=p.useMemo(()=>{const d=new Date;return d.setHours(0,0,0,0),d},[]),de=p.useMemo(()=>{if(!r.showTodayLine)return null;const d=W(Fe);return d>=-N&&d<=R+N?Math.max(0,Math.min(d,R)):null},[r.showTodayLine,Fe,R,N,W]),Ae=p.useMemo(()=>{if(r.projectStartDate)return Ke(r.projectStartDate);if(e.length>0){const d=e.map(D=>D.start.getTime());return Ke(new Date(Math.min(...d)))}return null},[r.projectStartDate,e]),Ne=p.useMemo(()=>{if(!r.showProjectStartLine||!Ae)return null;const d=W(Ae);return d>=-N&&d<=R+N?Math.max(0,Math.min(d,R)):null},[r.showProjectStartLine,Ae,R,N,W]),He=`calc(var(--gantt-scale-height, 24px) * ${ie})`;return t.jsxs("div",{className:"gantt-timeline-container",ref:Y,onMouseMove:Ce,onMouseUp:De,style:{width:R,position:"relative"},children:[t.jsxs("div",{className:"gantt-timeline-header",style:{width:R,minWidth:R,position:"relative"},children:[de!==null&&r.showTodayLine&&r.todayLineLabel&&r.todayLineLabel!==""&&t.jsx("div",{className:"gantt-today-line-label",style:{position:"absolute",top:He,left:`${de}px`,transform:"translateX(-50%)",backgroundColor:r.todayLineColor||"#ff4d4f",color:"#ffffff",padding:"4px 10px",borderRadius:"4px",fontSize:"12px",fontWeight:600,whiteSpace:"nowrap",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.2)",lineHeight:"1.2",zIndex:101,pointerEvents:"none",...r.todayLineLabelStyle},children:r.todayLineLabel}),Ne!==null&&r.showProjectStartLine&&r.projectStartLineLabel&&r.projectStartLineLabel!==""&&t.jsx("div",{className:"gantt-project-start-line-label",style:{position:"absolute",top:He,left:`${Ne}px`,transform:"translateX(-50%)",backgroundColor:r.projectStartLineColor||"#40a9ff",color:"#ffffff",padding:"4px 10px",borderRadius:"4px",fontSize:"12px",fontWeight:600,whiteSpace:"nowrap",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.2)",lineHeight:"1.2",zIndex:101,pointerEvents:"none",...r.projectStartLineLabelStyle},children:r.projectStartLineLabel}),r.showTimelineHeader!==!1&&($?Le.map((d,D)=>{const F=D===0?"gantt-timeline-scale-month":D===Le.length-1?"gantt-timeline-scale-day":"gantt-timeline-scale-range";return t.jsx("div",{className:`gantt-timeline-scale ${F}`,style:{width:R},children:d.map((y,J)=>{const K=D===Le.length-1,Q=K&&y.date?r.weekends&&St(y.date):!1,V=K&&y.date?r.holidays&&vt(y.date,r.holidays):!1;return t.jsx("div",{className:`gantt-timeline-cell ${Q?"weekend":""} ${V?"holiday":""}`,style:{width:y.width,minWidth:y.width,maxWidth:y.width,borderRight:J===d.length-1?"none":"var(--wx-gantt-border)"},children:y.label},y.key)})},`dynamic-row-${D}`)}):t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-month",style:{width:R},children:Ee.map((d,D)=>t.jsx("div",{className:"gantt-timeline-cell",style:{width:d.width,minWidth:d.width,maxWidth:d.width,borderRight:D===Ee.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`top-${D}`))}),t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-range",style:{width:R},children:qe.map((d,D)=>t.jsx("div",{className:"gantt-timeline-cell",style:{width:d.width,minWidth:d.width,maxWidth:d.width,borderRight:D===qe.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`mid-${D}`))}),t.jsx("div",{className:"gantt-timeline-scale gantt-timeline-scale-day",style:{width:R},children:w.map((d,D)=>{const F=r.weekends&&St(d.date),y=r.holidays&&vt(d.date,r.holidays);return t.jsx("div",{className:`gantt-timeline-cell ${F?"weekend":""} ${y?"holiday":""}`,style:{width:N,minWidth:N,maxWidth:N,borderRight:D===w.length-1?"none":"var(--wx-gantt-border)"},children:d.label},`day-${D}`)})})]}))]}),t.jsxs("div",{className:"gantt-timeline-body",style:{width:R,position:"relative"},children:[de!==null&&t.jsxs(t.Fragment,{children:[r.showTodayLineMarker!==!1&&(()=>{const d=r.todayLineMarkerSize||8,D=r.todayLineColor||"#ff4d4f",F=r.todayLineMarkerStyle||"triangle",y=r.todayLineOpacity!==void 0?r.todayLineOpacity:1;return F==="triangle"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:"-4px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="arrow"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:"-6px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d*.7}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="dot"?t.jsx("div",{className:"gantt-today-line-marker",style:{position:"absolute",left:`${de}px`,top:`-${d/2}px`,transform:"translateX(-50%)",width:`${d}px`,height:`${d}px`,borderRadius:"50%",backgroundColor:D,zIndex:7,pointerEvents:"none",opacity:y}}):null})(),t.jsx("div",{className:"gantt-today-line",style:{position:"absolute",left:`${de}px`,top:0,bottom:0,width:`${r.todayLineWidth||1}px`,backgroundColor:r.todayLineColor||"#ff4d4f",opacity:r.todayLineOpacity!==void 0?r.todayLineOpacity:1,borderLeft:r.todayLineStyle==="dashed"?`${r.todayLineWidth||1}px dashed ${r.todayLineColor||"#ff4d4f"}`:r.todayLineStyle==="dotted"?`${r.todayLineWidth||1}px dotted ${r.todayLineColor||"#ff4d4f"}`:"none",zIndex:6,pointerEvents:"none"}})]}),Ne!==null&&t.jsxs(t.Fragment,{children:[r.showProjectStartLineMarker!==!1&&(()=>{const d=r.projectStartLineMarkerSize||8,D=r.projectStartLineColor||"#40a9ff",F=r.projectStartLineMarkerStyle||"triangle",y=r.projectStartLineOpacity!==void 0?r.projectStartLineOpacity:1;return F==="triangle"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:"-4px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="arrow"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:"-6px",transform:"translateX(-50%)",width:0,height:0,borderLeft:`${d}px solid transparent`,borderRight:`${d}px solid transparent`,borderBottom:`${d*.7}px solid ${D}`,zIndex:7,pointerEvents:"none",opacity:y}}):F==="dot"?t.jsx("div",{className:"gantt-project-start-line-marker",style:{position:"absolute",left:`${Ne}px`,top:`-${d/2}px`,transform:"translateX(-50%)",width:`${d}px`,height:`${d}px`,borderRadius:"50%",backgroundColor:D,zIndex:7,pointerEvents:"none",opacity:y}}):null})(),t.jsx("div",{className:"gantt-project-start-line",style:{position:"absolute",left:`${Ne}px`,top:0,bottom:0,width:`${r.projectStartLineWidth||1}px`,backgroundColor:r.projectStartLineColor||"#40a9ff",opacity:r.projectStartLineOpacity!==void 0?r.projectStartLineOpacity:1,borderLeft:r.projectStartLineStyle==="dashed"?`${r.projectStartLineWidth||1}px dashed ${r.projectStartLineColor||"#40a9ff"}`:r.projectStartLineStyle==="dotted"?`${r.projectStartLineWidth||1}px dotted ${r.projectStartLineColor||"#40a9ff"}`:"none",zIndex:6,pointerEvents:"none"}})]}),t.jsx("div",{className:"gantt-timeline-grid",children:w.map((d,D)=>{const F=r.weekends&&St(d.date),y=r.holidays&&vt(d.date,r.holidays);return t.jsx("div",{className:`gantt-timeline-grid-column ${F?"weekend":""} ${y?"holiday":""}`,style:{width:N,minWidth:N}},D)})}),o.length>0&&t.jsx($r,{links:o,tasks:T,getTaskPosition:ve}),t.jsx("div",{className:"gantt-timeline-tasks",style:{width:R},children:ue?Array.from(j?.values()||[]).map(d=>{const D=pe(d);return t.jsx("div",{className:"gantt-timeline-row baseline-only",children:t.jsx("div",{className:"gantt-baseline-bar baseline-only",style:{left:`${D.left}px`,width:`${D.width}px`},title:`Baseline: ${d.start.toLocaleDateString()} - ${d.end.toLocaleDateString()}`})},`baseline-only-${d.taskId}`)}):T.map(d=>{const D=le(d),F=B?j?.get(d.id):void 0,y=F?pe(F):void 0;return t.jsxs("div",{className:"gantt-timeline-row",children:[F&&y&&t.jsx("div",{className:`gantt-baseline-bar ${d.type==="milestone"?"milestone":""}`,style:{left:`${y.left}px`,width:`${y.width}px`},title:`Baseline: ${F.start.toLocaleDateString()} - ${F.end.toLocaleDateString()}`}),!d.hideBar&&t.jsx(er,{task:d,baseline:F,dependencyRuleDescriptions:L.get(d.id)||[],tooltipConfig:f,position:D,selected:c===d.id,dragging:be.taskId===d.id,dragDeltaX:be.dragDeltaX,dragType:be.type,onClick:()=>v(d.id),onDragStart:(J,K,Q)=>{ke(d.id,J,K,Q),u(d.id,J,K)},readonly:r.readonly})]},d.id)})})]})]})});$t.displayName="Timeline";const At=p.forwardRef((e,o)=>t.jsx("div",{className:"gantt-chart-wrapper",style:{flex:1,minWidth:0},children:t.jsx($t,{...e,ref:o})}));At.displayName="Chart";const{Search:Br}=g.Input,nr=({onFilterChange:e,owners:o=[],uiConfig:n={}})=>{const[s,r]=p.useState({searchText:"",status:"all",priority:"all",owner:""}),c=i=>{const h={...s,...i};r(h),e(h)},v=()=>{const i={searchText:"",status:"all",priority:"all",owner:""};r(i),e(i)},u=s.searchText!==""||s.status!=="all"||s.priority!=="all"||s.owner!=="";return t.jsx("div",{className:"gantt-filter-container",children:t.jsxs("div",{className:"gantt-filter-bar",children:[t.jsx("div",{className:"gantt-filter-left",children:t.jsx(Br,{placeholder:n.searchPlaceholder||"Search stages...",value:s.searchText,onChange:i=>c({searchText:i.target.value}),allowClear:!0,className:"gantt-search-antd",style:{width:250}})}),t.jsxs("div",{className:"gantt-filter-right",children:[t.jsx(g.Select,{value:s.status,onChange:i=>c({status:i}),className:"gantt-filter-select-antd",style:{width:140},options:[{value:"all",label:n.statusOptions?.all||"All Status"},{value:"not-started",label:n.statusOptions?.notStarted||"Not Started"},{value:"in-progress",label:n.statusOptions?.inProgress||"In Progress"},{value:"completed",label:n.statusOptions?.completed||"Completed"}]}),t.jsx(g.Select,{value:s.priority,onChange:i=>c({priority:i}),className:"gantt-filter-select-antd",style:{width:130},options:[{value:"all",label:n.priorityFilterOptions?.all||"All Priority"},{value:"low",label:n.priorityFilterOptions?.low||"Low"},{value:"medium",label:n.priorityFilterOptions?.medium||"Medium"},{value:"high",label:n.priorityFilterOptions?.high||"High"}]}),t.jsx(g.Select,{value:s.owner||void 0,onChange:i=>c({owner:i||""}),className:"gantt-filter-select-antd",style:{width:130},placeholder:n.allOwnersText||"All Owners",allowClear:!0,options:[{value:"",label:n.allOwnersText||"All Owners"},...(o||[]).map(i=>({value:i,label:i}))]}),u&&t.jsx(g.Button,{type:"default",danger:!0,icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faTimesCircle}),onClick:v,className:"gantt-filter-clear-antd",children:n.clearFiltersText||"Clear"})]})]})})},Qe=(e,o)=>e?typeof e=="string"?t.jsx(Se.FontAwesomeIcon,{icon:o}):e:t.jsx(Se.FontAwesomeIcon,{icon:o}),or=({zoomLevel:e,setZoomLevel:o,timelineView:n,timelineViewOptions:s=[],onTimelineViewChange:r,onExport:c,onFilterChange:v,owners:u,onAddTask:i,uiConfig:h,iconConfig:m={},styleConfig:j})=>{const S=it(j),f=h.showZoomButtons!==!1,E=h.showExportButtons!==!1,C=s.length>1&&r,Y=f&&E;return t.jsxs("div",{className:"gantt-toolbar-wrapper",children:[t.jsxs("div",{className:"gantt-toolbar",children:[t.jsx("div",{className:"gantt-toolbar-left",children:t.jsx(g.Space,{size:8,children:h.showAddTaskButton!==!1&&t.jsx(g.Button,{type:"primary",icon:Qe(m.addTask,ce.faPlus),onClick:()=>i?.(),style:S.buttonPrimary,children:h.addTaskButtonText||"New Stage"})})}),t.jsx("div",{className:"gantt-toolbar-right",children:t.jsxs(g.Space,{size:4,children:[C&&n&&t.jsxs(t.Fragment,{children:[t.jsx(g.Segmented,{className:"gantt-toolbar-view-switcher",options:s,value:n,onChange:T=>r(T)}),(f||E)&&t.jsx(g.Divider,{type:"vertical",style:{height:24,margin:"0 4px"}})]}),f&&t.jsxs(t.Fragment,{children:[t.jsx(g.Tooltip,{title:h.zoomOutTooltip||"Zoom Out",children:t.jsx(g.Button,{icon:Qe(m.zoomOut,ce.faSearchMinus),onClick:()=>o(Math.max(.5,e-.25)),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.zoomInTooltip||"Zoom In",children:t.jsx(g.Button,{icon:Qe(m.zoomIn,ce.faSearchPlus),onClick:()=>o(Math.min(2,e+.25)),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.resetZoomTooltip||"Reset Zoom",children:t.jsx(g.Button,{icon:Qe(m.resetZoom,ce.faRotateLeft),onClick:()=>o(1),style:S.buttonSecondary})})]}),Y&&t.jsx(g.Divider,{type:"vertical",style:{height:24,margin:"0 4px"}}),E&&t.jsxs(t.Fragment,{children:[t.jsx(g.Tooltip,{title:h.exportCSVTooltip||"Export to CSV",children:t.jsx(g.Button,{icon:Qe(m.exportCSV,ce.faFileCsv),onClick:()=>c("csv"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportExcelTooltip||"Export to Excel",children:t.jsx(g.Button,{icon:Qe(m.exportExcel,ce.faFileExcel),onClick:()=>c("excel"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportJSONTooltip||"Export to JSON",children:t.jsx(g.Button,{icon:Qe(m.exportJSON,ce.faFileCode),onClick:()=>c("json"),style:S.buttonSecondary})}),t.jsx(g.Tooltip,{title:h.exportPDFTooltip||"Export to PDF",children:t.jsx(g.Button,{icon:Qe(m.exportPDF,ce.faFilePdf),onClick:()=>c("pdf"),style:S.buttonSecondary})})]})]})})]}),h.showFilterSearch!==!1&&t.jsx(nr,{onFilterChange:v,owners:u,uiConfig:h})]})},{Option:lt}=g.Select,{TextArea:Ir}=g.Input,ar=({onCreateTask:e,onClose:o,uiConfig:n={},parentId:s,parentTaskName:r,styleConfig:c})=>{const[v]=g.Form.useForm(),u=it(c),i=h=>{const m=h.start.toDate(),j=new Date(m);j.setDate(j.getDate()+(h.duration||1)),e({text:h.text,start:m,end:j,duration:h.duration||1,progress:h.progress||0,type:h.type,color:typeof h.color=="string"?h.color:h.color?.toHexString?.()||"#4A90E2",owner:h.owner||"",priority:h.priority||"medium",details:h.details||"",parent:s},s),o()};return t.jsx(g.Modal,{title:s?(n.taskCreatorTitle||"Create Checklist")+(r?` for "${r}"`:""):n.taskCreatorTitle||"Create New Stage",open:!0,onCancel:o,onOk:()=>v.submit(),okText:n.taskCreatorOkText||"Create Stage",cancelText:n.taskCreatorCancelText||"Cancel",width:600,className:"gantt-modal-antd",styles:{content:u.modal,header:{borderBottom:`1px solid ${u.modal?.borderColor||"#f0f0f0"}`,marginBottom:16}},okButtonProps:{style:u.buttonPrimary},cancelButtonProps:{style:u.buttonSecondary},children:t.jsxs(g.Form,{form:v,layout:"vertical",onFinish:i,initialValues:{type:"task",priority:"medium",start:Gt(),duration:1,progress:0,color:"#4A90E2"},children:[t.jsx(g.Form.Item,{name:"text",label:n.taskNameLabel||"Stage Name",rules:[{required:!0,message:n.taskNameRequired||"Please enter stage name"}],children:t.jsx(g.Input,{placeholder:n.taskNamePlaceholder||"Enter stage name",autoFocus:!0,style:u.input})}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"type",label:n.typeLabel||"Type",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(lt,{value:"task",children:n.taskTypeOptions?.task||"Stage"}),t.jsx(lt,{value:"milestone",children:n.taskTypeOptions?.milestone||"Milestone"}),t.jsx(lt,{value:"project",children:n.taskTypeOptions?.project||"Project"})]})}),t.jsx(g.Form.Item,{name:"priority",label:n.priorityLabel||"Priority",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(lt,{value:"low",children:n.priorityOptions?.low||"Low"}),t.jsx(lt,{value:"medium",children:n.priorityOptions?.medium||"Medium"}),t.jsx(lt,{value:"high",children:n.priorityOptions?.high||"High"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"start",label:n.startDateLabel||"Start Date",style:{flex:1},children:t.jsx(g.DatePicker,{style:{width:"100%",...u.input}})}),t.jsx(g.Form.Item,{name:"duration",label:n.durationLabel||"Duration (days)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,style:{width:"100%",...u.input}})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"color",label:n.colorLabel||"Color",style:{flex:1},children:t.jsx(g.ColorPicker,{showText:!0})}),t.jsx(g.Form.Item,{name:"progress",label:n.progressLabel||"Progress (%)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,max:100,style:{width:"100%",...u.input}})})]}),t.jsx(g.Form.Item,{name:"owner",label:n.ownerLabel||"Owner",children:t.jsx(g.Input,{placeholder:n.ownerPlaceholder||"Assign to...",style:u.input})}),t.jsx(g.Form.Item,{name:"details",label:n.detailsLabel||"Details",children:t.jsx(Ir,{placeholder:n.detailsPlaceholder||"Add stage description...",rows:3,style:u.input})})]})})},{Option:dt}=g.Select,{TextArea:_r}=g.Input,{confirm:Rr}=g.Modal,sr=({task:e,onUpdate:o,onDelete:n,onClose:s,uiConfig:r={},styleConfig:c})=>{const[v]=g.Form.useForm(),u=it(c),i=m=>{const j=m.start.toDate(),S=new Date(j);S.setDate(S.getDate()+(m.duration||1)),o({...e,text:m.text,start:j,end:S,duration:m.duration||1,progress:m.progress||0,type:m.type,color:typeof m.color=="string"?m.color:m.color?.toHexString?.()||"#4A90E2",owner:m.owner||"",priority:m.priority||"medium",details:m.details||""}),s()},h=()=>{Rr({title:r.deleteConfirmTitle?`${r.deleteConfirmTitle}: "${e.text}"?`:`Are you sure you want to delete "${e.text}"?`,icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faExclamationTriangle,style:{color:"#faad14",marginRight:8}}),content:r.deleteConfirmContent||"This action cannot be undone.",okText:r.deleteConfirmOkText||"Yes, Delete",okType:"danger",cancelText:r.deleteConfirmCancelText||"No",onOk(){n(e.id),s()}})};return t.jsx(g.Modal,{title:r.taskEditorTitle||"Edit Stage",open:!0,onCancel:s,footer:[t.jsx(g.Button,{danger:!0,onClick:h,style:{float:"left",...u.buttonDanger},children:r.taskEditorDeleteText||"Delete"},"delete"),t.jsx(g.Button,{onClick:s,style:u.buttonSecondary,children:r.taskEditorCancelText||"Cancel"},"cancel"),t.jsx(g.Button,{type:"primary",onClick:()=>v.submit(),style:u.buttonPrimary,children:r.taskEditorSaveText||"Save Changes"},"submit")],width:600,className:"gantt-modal-antd",styles:{content:u.modal,header:{borderBottom:`1px solid ${u.modal?.borderColor||"#f0f0f0"}`,marginBottom:16}},children:t.jsxs(g.Form,{form:v,layout:"vertical",onFinish:i,initialValues:{text:e.text,type:e.type||"task",priority:e.priority||"medium",start:Gt(e.start),duration:e.duration,progress:e.progress,color:e.color||"#4A90E2",owner:e.owner||"",details:e.details||""},children:[t.jsx(g.Form.Item,{name:"text",label:r.taskNameLabel||"Stage Name",rules:[{required:!0,message:r.taskNameRequired||"Please enter stage name"}],children:t.jsx(g.Input,{placeholder:r.taskNamePlaceholder||"Enter stage name",style:u.input})}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"type",label:r.typeLabel||"Type",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(dt,{value:"task",children:r.taskTypeOptions?.task||"Stage"}),t.jsx(dt,{value:"milestone",children:r.taskTypeOptions?.milestone||"Milestone"}),t.jsx(dt,{value:"project",children:r.taskTypeOptions?.project||"Project"})]})}),t.jsx(g.Form.Item,{name:"priority",label:r.priorityLabel||"Priority",style:{flex:1},children:t.jsxs(g.Select,{style:u.input,children:[t.jsx(dt,{value:"low",children:r.priorityOptions?.low||"Low"}),t.jsx(dt,{value:"medium",children:r.priorityOptions?.medium||"Medium"}),t.jsx(dt,{value:"high",children:r.priorityOptions?.high||"High"})]})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"start",label:r.startDateLabel||"Start Date",style:{flex:1},children:t.jsx(g.DatePicker,{style:{width:"100%",...u.input}})}),t.jsx(g.Form.Item,{name:"duration",label:r.durationLabel||"Duration (days)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,style:{width:"100%",...u.input}})})]}),t.jsxs("div",{style:{display:"flex",gap:16},children:[t.jsx(g.Form.Item,{name:"color",label:r.colorLabel||"Color",style:{flex:1},children:t.jsx(g.ColorPicker,{showText:!0})}),t.jsx(g.Form.Item,{name:"progress",label:r.progressLabel||"Progress (%)",style:{flex:1},children:t.jsx(g.InputNumber,{min:0,max:100,style:{width:"100%",...u.input}})})]}),t.jsx(g.Form.Item,{name:"owner",label:r.ownerLabel||"Owner",children:t.jsx(g.Input,{placeholder:r.ownerPlaceholder||"Assign to...",style:u.input})}),t.jsx(g.Form.Item,{name:"details",label:r.detailsLabel||"Details",children:t.jsx(_r,{placeholder:r.detailsPlaceholder||"Add stage description...",rows:3,style:u.input})})]})})},{Title:yt,Text:nt,Paragraph:zr}=g.Typography,{Option:Xe}=g.Select,ir=({task:e,allTasks:o,links:n,onAddDependency:s,onRemoveDependency:r,onTaskUpdate:c,onClose:v,styleConfig:u})=>{const i=it(u),[h,m]=p.useState(""),[j,S]=p.useState("e2s"),[f,E]=p.useState(0),[C,Y]=p.useState("day"),[T,P]=p.useState(e.duration),[x,_]=p.useState(""),q=n.filter(w=>w.target===e.id),B=o.filter(w=>w.id!==e.id&&w.id!==e.parent),Z=()=>{if(h){const w=Nt(f,C);if(T!==e.duration&&c){const N=xe(new Date(e.start),T,"day");c({...e,duration:T,end:N})}s(h,e.id,j,w),m(""),E(0),Y("day")}},L=()=>{if(!x.trim())return;const w=Pr(x.trim());if(!w){alert(`Invalid format. Use: [TaskNumber][Type][+/-][Lag][Unit]
15
15
  Example: 3FS+10d`);return}const N=w.taskNumber-1,ue=o[N];if(!ue){alert(`Task ${w.taskNumber} not found`);return}const $=Nr(w.type),ie=Nt(w.lag,w.lagUnit);s(ue.id,e.id,$,ie),_("")},U=w=>{switch(w){case"e2s":return"Finish-to-Start (FS)";case"s2s":return"Start-to-Start (SS)";case"e2e":return"Finish-to-Finish (FF)";case"s2e":return"Start-to-Finish (SF)"}},re=w=>{switch(w){case"e2s":return"blue";case"s2s":return"green";case"e2e":return"purple";case"s2e":return"orange"}};return t.jsx(g.Modal,{title:t.jsx(yt,{level:4,style:{margin:0,color:i.font?.color},children:"Dependency Editor"}),open:!0,onCancel:v,footer:null,width:700,styles:{content:i.modal,header:{borderBottom:`1px solid ${i.modal?.borderColor||"#f0f0f0"}`}},children:t.jsxs("div",{style:{padding:"8px 0"},children:[t.jsx(g.Alert,{message:"Managing dependencies helps in auto-scheduling and critical path calculation.",type:"info",showIcon:!0,style:{marginBottom:20,...i.font}}),t.jsxs("div",{style:{display:"flex",gap:20,marginBottom:24},children:[t.jsx(g.Card,{title:t.jsx(yt,{level:5,style:{margin:0,fontSize:14,color:i.font?.color},children:"Settings"}),size:"small",style:{flex:1,...i.modal},headStyle:{borderBottom:`1px solid ${i.modal?.borderColor||"#f0f0f0"}`},children:t.jsxs(g.Space,{direction:"vertical",style:{width:"100%"},size:"middle",children:[t.jsxs("div",{children:[t.jsx(nt,{style:{display:"block",marginBottom:8,fontSize:13,color:i.font?.color},children:"Predecessor"}),t.jsx(g.Select,{showSearch:!0,placeholder:"Select a task",optionFilterProp:"children",style:{width:"100%",...i.input},value:h,onChange:m,children:B.map(w=>t.jsxs(Xe,{value:w.id,children:["[",o.indexOf(w)+1,"] ",w.text]},w.id))})]}),t.jsxs("div",{children:[t.jsx(nt,{style:{display:"block",marginBottom:8,fontSize:13,color:i.font?.color},children:"Type"}),t.jsxs(g.Select,{style:{width:"100%",...i.input},value:j,onChange:S,children:[t.jsx(Xe,{value:"e2s",children:"Finish-to-Start (FS)"}),t.jsx(Xe,{value:"s2s",children:"Start-to-Start (SS)"}),t.jsx(Xe,{value:"e2e",children:"Finish-to-Finish (FF)"}),t.jsx(Xe,{value:"s2e",children:"Start-to-Finish (SF)"})]})]}),t.jsxs("div",{style:{display:"flex",gap:12},children:[t.jsxs("div",{style:{flex:1},children:[t.jsx(nt,{style:{display:"block",marginBottom:8,fontSize:13,color:i.font?.color},children:"Lag/Lead"}),t.jsx(g.InputNumber,{style:{width:"100%",...i.input},value:f,onChange:w=>E(w||0)})]}),t.jsxs("div",{style:{flex:1},children:[t.jsx(nt,{style:{display:"block",marginBottom:8,fontSize:13,color:i.font?.color},children:"Units"}),t.jsxs(g.Select,{style:{width:"100%",...i.input},value:C,onChange:Y,children:[t.jsx(Xe,{value:"day",children:"Days"}),t.jsx(Xe,{value:"hour",children:"Hours"}),t.jsx(Xe,{value:"week",children:"Weeks"}),t.jsx(Xe,{value:"month",children:"Months"})]})]})]}),t.jsxs("div",{children:[t.jsx(nt,{style:{display:"block",marginBottom:8,fontSize:13,color:i.font?.color},children:"Duration (days)"}),t.jsx(g.InputNumber,{style:{width:"100%",...i.input},min:1,value:T,onChange:w=>P(w||1)})]}),t.jsx(g.Button,{type:"primary",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faPlus,style:{marginRight:8}}),block:!0,onClick:Z,disabled:!h,style:{height:40,marginTop:8,...i.buttonPrimary},children:"Add Dependency"})]})}),t.jsxs(g.Card,{title:t.jsx(yt,{level:5,style:{margin:0,fontSize:14,color:i.font?.color},children:"Quick Add"}),size:"small",style:{width:250,...i.modal},headStyle:{borderBottom:`1px solid ${i.modal?.borderColor||"#f0f0f0"}`},children:[t.jsxs(zr,{type:"secondary",style:{fontSize:12,marginBottom:16,color:i.font?.color,opacity:.7},children:["Format: [TaskNumber][Type][+/-][Lag][Unit]",t.jsx("br",{}),"Example: 3FS+10d"]}),t.jsx(g.Input,{placeholder:"e.g. 5FS+2d",value:x,onChange:w=>_(w.target.value),onPressEnter:L,style:{marginBottom:16,height:40,...i.input}}),t.jsx(g.Button,{block:!0,onClick:L,style:{height:40,...i.buttonSecondary},children:"Apply"})]})]}),t.jsx(g.Divider,{style:{margin:"0 0 24px 0",borderColor:i.modal?.borderColor}}),t.jsxs("div",{style:{maxHeight:300,overflowY:"auto"},children:[t.jsx(yt,{level:5,style:{fontSize:14,marginBottom:16,color:i.font?.color},children:"Current Dependencies"}),t.jsx(g.List,{dataSource:q,locale:{emptyText:t.jsx(nt,{type:"secondary",style:{color:i.font?.color,opacity:.5},children:"No dependencies added yet."})},renderItem:w=>{const N=o.find(ue=>ue.id===w.source);return t.jsx(g.List.Item,{style:{padding:"12px 16px",background:"#fafafa",borderRadius:8,marginBottom:12,border:`1px solid ${i.listItem?.borderColor||"#f0f0f0"}`},actions:[t.jsx(g.Button,{type:"text",danger:!0,icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faTrash}),onClick:()=>r(w.id)},"delete")],children:t.jsx(g.List.Item.Meta,{avatar:t.jsx("div",{style:{width:32,height:32,borderRadius:16,background:"#1890ff",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:12,fontWeight:"bold"},children:N?o.indexOf(N)+1:"?"}),title:t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[t.jsx("span",{style:{fontWeight:600,color:i.font?.color},children:N?.text||"Unknown Task"}),t.jsx(g.Tag,{color:re(w.type),style:{margin:0},children:U(w.type)})]}),description:t.jsx("div",{style:{display:"flex",alignItems:"center",gap:16,marginTop:4},children:t.jsxs("span",{style:{fontSize:12,color:i.font?.color,opacity:.7},children:[t.jsx(Se.FontAwesomeIcon,{icon:ce.faLink,style:{marginRight:6}}),"Lag: ",w.lag||0," days"]})})})})}})]}),t.jsxs("div",{style:{marginTop:24,padding:"16px",background:"#fff7e6",borderRadius:8,border:"1px solid #ffe7ba"},children:[t.jsxs(yt,{level:5,style:{fontSize:13,marginBottom:8,display:"flex",alignItems:"center"},children:[t.jsx(Se.FontAwesomeIcon,{icon:ce.faInfoCircle,style:{marginRight:8,color:"#fa8c16"}}),"Coming soon"]}),t.jsx(nt,{style:{fontSize:12,color:"rgba(0,0,0,0.65)"},children:"Dependency visualization on the chart and automatic lag calculations based on working hours."})]})]})})},Hr=({x:e,y:o,task:n,onEdit:s,onDelete:r,onCopy:c,onDependencies:v,onConvertToMilestone:u,onConvertToTask:i,onConvertToProject:h,onAutoSchedule:m,onClose:j,styleConfig:S})=>{const f=it(S);if(!n)return null;const E=[{key:"edit",label:"Edit",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faEdit}),onClick:()=>{s(),j()}},{key:"copy",label:"Copy",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faCopy}),onClick:()=>{c(),j()}},{key:"dependencies",label:"Dependencies",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faLink}),onClick:()=>{v(),j()}},{type:"divider"},{key:"convert",label:"Convert to",type:"submenu",children:[{key:"milestone",label:"Milestone",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faFlag}),disabled:n.type==="milestone",onClick:()=>{u(),j()}},{key:"task",label:"Task",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faTasks}),disabled:n.type==="task",onClick:()=>{i(),j()}},{key:"project",label:"Project",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faFolder}),disabled:n.type==="project",onClick:()=>{h(),j()}}]},{key:"auto-schedule",label:"Auto Schedule",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faRotateLeft}),onClick:()=>{m?.(),j()}},{type:"divider"},{key:"delete",label:"Delete",icon:t.jsx(Se.FontAwesomeIcon,{icon:ce.faTrash}),danger:!0,onClick:()=>{r(),j()}}];return t.jsx("div",{className:"gantt-context-menu",style:{position:"fixed",left:`${e}px`,top:`${o}px`,zIndex:1e4},onClick:C=>C.stopPropagation(),children:t.jsx(g.Menu,{items:E,style:{boxShadow:f.popover?.boxShadow||"0 4px 12px rgba(0, 0, 0, 0.15)",borderRadius:f.popover?.borderRadius||"6px",border:`1px solid ${f.popover?.borderColor||"#e0e0e0"}`,backgroundColor:f.popover?.backgroundColor,color:f.font?.color,fontFamily:f.font?.fontFamily}})})},lr=(e,o=[])=>{const[n,s]=p.useState([]),[r,c]=p.useState(-1),[v,u]=p.useState(e),[i,h]=p.useState(o);p.useEffect(()=>{u(e)},[e]),p.useEffect(()=>{h(o)},[o]);const m=p.useCallback((P,x,_)=>{const q={type:P,before:x,after:_,timestamp:Date.now()},B=n.slice(0,r+1);B.push(q),B.length>50?B.shift():c(r+1),s(B)},[n,r]),j=p.useCallback(()=>{if(r<0)return;const P=n[r];u(P.before.tasks),h(P.before.links),c(r-1)},[n,r]),S=p.useCallback(()=>{if(r>=n.length-1)return;const P=n[r+1];u(P.after.tasks),h(P.after.links),c(r+1)},[n,r]),f=r>=0,E=r<n.length-1,C=p.useCallback(P=>{const x={tasks:v,links:i},_=v.map(B=>B.id===P.id?P:B);m("task_update",x,{tasks:_,links:i}),u(_)},[v,i,m]),Y=p.useCallback(P=>{const x={tasks:v,links:i},_=[...v,P];m("task_create",x,{tasks:_,links:i}),u(_)},[v,i,m]),T=p.useCallback(P=>{const x={tasks:v,links:i},_=v.filter(Z=>Z.id!==P),q=i.filter(Z=>Z.source!==P&&Z.target!==P);m("task_delete",x,{tasks:_,links:q}),u(_),h(q)},[v,i,m]);return{tasks:v,links:i,setTasks:u,setLinks:h,undo:j,redo:S,canUndo:f,canRedo:E,updateTask:C,createTask:Y,deleteTask:T,saveState:m,history:n}},dr=(e,o,n={mode:"forward"})=>{const s=new Map,r=new Map;return e.forEach(c=>{s.set(c.id,[]),r.set(c.id,[])}),o.forEach(c=>{c.type==="e2s"&&(s.get(c.target)?.push(c.source),r.get(c.source)?.push(c.target))}),n.mode==="forward"?Wr(e,s,n):Vr(e,r,n)},Wr=(e,o,n)=>{const s=new Map,r=new Set,c=n.projectStart||new Date,v=u=>{if(r.has(u))return;const i=e.find(E=>E.id===u);if(!i)return;const h=o.get(u)||[];h.forEach(E=>v(E));let m=c;h.forEach(E=>{const C=s.get(E);C&&C.end>m&&(m=new Date(C.end))});const j=new Date(m),S=xe(j,i.duration,"day"),f={...i,start:j,end:S};s.set(u,f),r.add(u)};return e.forEach(u=>v(u.id)),e.map(u=>s.get(u.id)||u)},Vr=(e,o,n)=>{const s=new Map,r=new Set,c=n.projectEnd||new Date(Math.max(...e.map(u=>u.end.getTime()))),v=u=>{if(r.has(u))return;const i=e.find(E=>E.id===u);if(!i)return;const h=o.get(u)||[];h.forEach(E=>v(E));let m=c;h.forEach(E=>{const C=s.get(E);C&&C.start<m&&(m=new Date(C.start))});const j=new Date(m),S=xe(j,-i.duration,"day"),f={...i,start:S,end:j};s.set(u,f),r.add(u)};return e.forEach(u=>v(u.id)),e.map(u=>s.get(u.id)||u)},Xr=Object.freeze(Object.defineProperty({__proto__:null,autoSchedule:dr,levelResources:e=>{const o=new Map;e.forEach(s=>{s.owner&&(o.has(s.owner)||o.set(s.owner,[]),o.get(s.owner).push(s))});const n=[...e];return o.forEach(s=>{const r=s.sort((c,v)=>c.start.getTime()-v.start.getTime());for(let c=1;c<r.length;c++){const v=r[c],u=r[c-1];if(v.start<u.end){const i=n.findIndex(h=>h.id===v.id);if(i>=0){const h=new Date(u.end),m=xe(h,v.duration,"day");n[i]={...v,start:h,end:m}}}}}),n}},Symbol.toStringTag,{value:"Module"})),cr=e=>{const o=new Map;return e.forEach(n=>{o.set(n.id,{taskId:n.id,start:new Date(n.start),end:new Date(n.end)})}),o},ur=e=>{const o=["ID","Task Name","Start Date","End Date","Duration","Progress","Type","Owner","Priority"],n=e.map(r=>[r.id,r.text,Me(r.start,"YYYY-MM-DD"),Me(r.end,"YYYY-MM-DD"),r.duration.toString(),`${r.progress}%`,r.type||"task",r.owner||"",r.priority||"medium"]),s=[o.join(","),...n.map(r=>r.map(c=>`"${c}"`).join(","))].join(`
16
16
  `);jt(s,"gantt-tasks.csv","text/csv")},pr=e=>{const o=["ID","Task Name","Start Date","End Date","Duration","Progress","Type","Owner","Priority","Details"],n=e.map(r=>[r.id,r.text,Me(r.start,"MM/DD/YYYY"),Me(r.end,"MM/DD/YYYY"),r.duration.toString(),r.progress.toString(),r.type||"task",r.owner||"",r.priority||"medium",r.details||""]),s="\uFEFF"+[o.join(" "),...n.map(r=>r.map(c=>c.replace(/\t/g," ")).join(" "))].join(`
17
17
  `);jt(s,"gantt-tasks.xls","application/vnd.ms-excel")},hr=(e,o)=>{const n={tasks:e,links:o,exported:new Date().toISOString(),version:"1.0"},s=JSON.stringify(n,null,2);jt(s,"gantt-project.json","application/json")},mr=e=>{const o=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iris-gantt",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "A comprehensive, production-ready Gantt chart component built with React and TypeScript. Easy to install, simple to use.",
5
5
  "keywords": [
6
6
  "gantt",