iris-gantt 1.4.6 → 1.4.7
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 +19 -5
- package/dist/Gantt/Gantt.d.ts.map +1 -1
- package/dist/Gantt/types.d.ts +3 -0
- package/dist/Gantt/types.d.ts.map +1 -1
- package/dist/iris-gantt.js +84 -77
- package/dist/iris-gantt.umd.cjs +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,21 @@
|
|
|
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.4.
|
|
5
|
+
## 🆕 Version 1.4.7 (Latest)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
- **OnHold grey lines now render with project API data** — Fixed a bug where on-hold grey bars were not visible when tasks used API field names (`workGroupName`, `plannedStartDate`, `plannedEndDate`). The normalizer now recognises these aliases, so dates are correctly resolved and the hold period overlap is detected.
|
|
9
|
+
|
|
10
|
+
### New API Field Aliases
|
|
11
|
+
The `tasks` prop now accepts the following additional field names used by common project APIs:
|
|
12
|
+
|
|
13
|
+
| New alias | Maps to |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `workGroupName` | Task display name |
|
|
16
|
+
| `plannedStartDate` | Task bar start date |
|
|
17
|
+
| `plannedEndDate` | Task bar end date |
|
|
18
|
+
|
|
19
|
+
## 🔖 Version 1.4.6
|
|
6
20
|
|
|
7
21
|
### Bug Fixes
|
|
8
22
|
- **Baselines now show by default** — Fixed a critical bug where baselines were not rendering because the `config` spread was overriding the default `baselines: true` with `undefined`. Baselines are now always enabled unless you explicitly pass `config={{ baselines: false }}`.
|
|
@@ -10,9 +24,9 @@ A comprehensive, production-ready Gantt chart component built with React and Typ
|
|
|
10
24
|
|
|
11
25
|
### Improvements
|
|
12
26
|
- **Project-level OnHold applied to all tasks** — The `onHoldPeriods` / `on_hold_periods` prop now propagates the grey hatched on-hold bar to **all** task rows including `project`-type tasks. Previously, only child/standalone tasks showed the hold bar; now the entire project hierarchy displays it consistently.
|
|
13
|
-
- **Same-height on-hold bars** — The grey on-hold period bar is now the same height (28px) as the task bar.
|
|
27
|
+
- **Same-height on-hold bars** — The grey on-hold period bar is now the same height (28px) as the task bar.
|
|
14
28
|
- **Tasks continue after hold period** — When a project resumes after an on-hold period, all affected tasks continue in sequence after the hold, and remaining days are extended automatically.
|
|
15
|
-
- **No hover enlarge/scale effect** — Task bars no longer scale up or brighten on hover.
|
|
29
|
+
- **No hover enlarge/scale effect** — Task bars no longer scale up or brighten on hover.
|
|
16
30
|
|
|
17
31
|
## 🔖 Version 1.4.2
|
|
18
32
|
|
|
@@ -218,8 +232,8 @@ Each task can override the global `taskTooltipConfig` with its own `tooltipConfi
|
|
|
218
232
|
```
|
|
219
233
|
|
|
220
234
|
API-friendly task aliases accepted in `tasks`:
|
|
221
|
-
- Name: `text`, `name`, `title`, `taskName`, `task_name`
|
|
222
|
-
- Timeline dates: `start`, `startDate`, `start_date`, `end`, `endDate`, `end_date`
|
|
235
|
+
- Name: `text`, `name`, `title`, `taskName`, `task_name`, `workGroupName`
|
|
236
|
+
- Timeline dates: `start`, `startDate`, `start_date`, `plannedStartDate`, `end`, `endDate`, `end_date`, `plannedEndDate`
|
|
223
237
|
- Planned dates: `plannedStart`, `planned_start`, `planned_start_date`, `plannedEnd`, `planned_end`, `planned_end_date`
|
|
224
238
|
- Actual dates: `actualStart`, `actual_start`, `actual_start_date`, `actualEnd`, `actual_end`, `actual_end_date`
|
|
225
239
|
- Status: `status`, `currentStatus`, `current_status`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gantt.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/Gantt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,OAAO,KAAK,EAAE,WAAW,EAA4B,QAAQ,EAAiB,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQhJ,OAAO,KAAK,EAEV,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,eAAe,EACf,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AACjB,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACnE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"Gantt.d.ts","sourceRoot":"","sources":["../../src/components/Gantt/Gantt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,OAAO,KAAK,EAAE,WAAW,EAA4B,QAAQ,EAAiB,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQhJ,OAAO,KAAK,EAEV,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,eAAe,EACf,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AACjB,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACnE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;AAwbD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAixBtC,CAAC"}
|
package/dist/Gantt/types.d.ts
CHANGED
|
@@ -52,12 +52,15 @@ export interface TaskInput extends Omit<Task, 'id' | 'text' | 'start' | 'end' |
|
|
|
52
52
|
title?: string;
|
|
53
53
|
taskName?: string;
|
|
54
54
|
task_name?: string;
|
|
55
|
+
workGroupName?: string;
|
|
55
56
|
start?: DateInput;
|
|
56
57
|
end?: DateInput;
|
|
57
58
|
startDate?: DateInput;
|
|
58
59
|
start_date?: DateInput;
|
|
59
60
|
endDate?: DateInput;
|
|
60
61
|
end_date?: DateInput;
|
|
62
|
+
plannedStartDate?: DateInput;
|
|
63
|
+
plannedEndDate?: DateInput;
|
|
61
64
|
plannedStart?: DateInput;
|
|
62
65
|
plannedEnd?: DateInput;
|
|
63
66
|
planned_start?: DateInput;
|
|
@@ -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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"}
|
package/dist/iris-gantt.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Typography as
|
|
1
|
+
import G, { useState as H, memo as ur, forwardRef as zt, useCallback as Fe, useEffect as Ve, useRef as We } from "react";
|
|
2
|
+
import { Typography as qt, Select as ve, InputNumber as Ce, Button as ye, Popover as pr, Tooltip as ke, Input as Ye, Space as Ct, Divider as Jt, Form as pe, Modal as Tt, DatePicker as Kt, ColorPicker as Zt, Alert as hr, Card as Bt, List as kt, Tag as mr, Menu as fr } from "antd";
|
|
3
3
|
import { FontAwesomeIcon as ge } from "@fortawesome/react-fontawesome";
|
|
4
4
|
import { faChevronDown as Wt, faPlus as It, faGripVertical as gr, faChevronRight as xr, faTimesCircle as yr, faSearchMinus as wr, faSearchPlus as br, faRotateLeft as Qt, faFileCsv as Sr, faFileExcel as vr, faFileCode as jr, faFilePdf as Tr, faExclamationTriangle as Dr, faLink as er, faTrash as tr, faInfoCircle as Mr, faEdit as Er, faCopy as Lr, faFlag as Fr, faTasks as Rr, faFolder as Pr } from "@fortawesome/free-solid-svg-icons";
|
|
5
5
|
import rr from "dayjs";
|
|
@@ -8,7 +8,7 @@ var Ht;
|
|
|
8
8
|
function Nr() {
|
|
9
9
|
if (Ht) return ct;
|
|
10
10
|
Ht = 1;
|
|
11
|
-
var e =
|
|
11
|
+
var e = G, o = /* @__PURE__ */ Symbol.for("react.element"), a = /* @__PURE__ */ Symbol.for("react.fragment"), s = Object.prototype.hasOwnProperty, n = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, h = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
12
12
|
function g(d, l, x) {
|
|
13
13
|
var p, w = {}, M = null, y = null;
|
|
14
14
|
x !== void 0 && (M = "" + x), l.key !== void 0 && (M = "" + l.key), l.ref !== void 0 && (y = l.ref);
|
|
@@ -22,7 +22,7 @@ var ut = {};
|
|
|
22
22
|
var Vt;
|
|
23
23
|
function $r() {
|
|
24
24
|
return Vt || (Vt = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
25
|
-
var e =
|
|
25
|
+
var e = G, o = /* @__PURE__ */ Symbol.for("react.element"), a = /* @__PURE__ */ Symbol.for("react.portal"), s = /* @__PURE__ */ Symbol.for("react.fragment"), n = /* @__PURE__ */ Symbol.for("react.strict_mode"), h = /* @__PURE__ */ Symbol.for("react.profiler"), g = /* @__PURE__ */ Symbol.for("react.provider"), d = /* @__PURE__ */ Symbol.for("react.context"), l = /* @__PURE__ */ Symbol.for("react.forward_ref"), x = /* @__PURE__ */ Symbol.for("react.suspense"), p = /* @__PURE__ */ Symbol.for("react.suspense_list"), w = /* @__PURE__ */ Symbol.for("react.memo"), M = /* @__PURE__ */ Symbol.for("react.lazy"), y = /* @__PURE__ */ Symbol.for("react.offscreen"), D = Symbol.iterator, b = "@@iterator";
|
|
26
26
|
function P(r) {
|
|
27
27
|
if (r === null || typeof r != "object")
|
|
28
28
|
return null;
|
|
@@ -66,7 +66,7 @@ function $r() {
|
|
|
66
66
|
function z(r) {
|
|
67
67
|
return r.displayName || "Context";
|
|
68
68
|
}
|
|
69
|
-
function
|
|
69
|
+
function q(r) {
|
|
70
70
|
if (r == null)
|
|
71
71
|
return null;
|
|
72
72
|
if (typeof r.tag == "number" && f("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof r == "function")
|
|
@@ -99,11 +99,11 @@ function $r() {
|
|
|
99
99
|
return j(r, r.render, "ForwardRef");
|
|
100
100
|
case w:
|
|
101
101
|
var T = r.displayName || null;
|
|
102
|
-
return T !== null ? T :
|
|
102
|
+
return T !== null ? T : q(r.type) || "Memo";
|
|
103
103
|
case M: {
|
|
104
104
|
var R = r, A = R._payload, O = R._init;
|
|
105
105
|
try {
|
|
106
|
-
return
|
|
106
|
+
return q(O(A));
|
|
107
107
|
} catch {
|
|
108
108
|
return null;
|
|
109
109
|
}
|
|
@@ -460,7 +460,7 @@ function $r() {
|
|
|
460
460
|
function bt() {
|
|
461
461
|
{
|
|
462
462
|
if (ot.current) {
|
|
463
|
-
var r =
|
|
463
|
+
var r = q(ot.current.type);
|
|
464
464
|
if (r)
|
|
465
465
|
return `
|
|
466
466
|
|
|
@@ -472,7 +472,7 @@ Check the render method of \`` + r + "`.";
|
|
|
472
472
|
function Ft(r) {
|
|
473
473
|
return "";
|
|
474
474
|
}
|
|
475
|
-
var
|
|
475
|
+
var Ge = {};
|
|
476
476
|
function Rt(r) {
|
|
477
477
|
{
|
|
478
478
|
var i = bt();
|
|
@@ -491,11 +491,11 @@ Check the top-level render call using <` + m + ">.");
|
|
|
491
491
|
return;
|
|
492
492
|
r._store.validated = !0;
|
|
493
493
|
var m = Rt(i);
|
|
494
|
-
if (
|
|
494
|
+
if (Ge[m])
|
|
495
495
|
return;
|
|
496
|
-
|
|
496
|
+
Ge[m] = !0;
|
|
497
497
|
var T = "";
|
|
498
|
-
r && r._owner && r._owner !== ot.current && (T = " It was passed a child from " +
|
|
498
|
+
r && r._owner && r._owner !== ot.current && (T = " It was passed a child from " + q(r._owner.type) + "."), Pe(r), f('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', m, T), Pe(null);
|
|
499
499
|
}
|
|
500
500
|
}
|
|
501
501
|
function St(r, i) {
|
|
@@ -517,7 +517,7 @@ Check the top-level render call using <` + m + ">.");
|
|
|
517
517
|
}
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
|
-
function
|
|
520
|
+
function qe(r) {
|
|
521
521
|
{
|
|
522
522
|
var i = r.type;
|
|
523
523
|
if (i == null || typeof i == "string")
|
|
@@ -532,11 +532,11 @@ Check the top-level render call using <` + m + ">.");
|
|
|
532
532
|
else
|
|
533
533
|
return;
|
|
534
534
|
if (m) {
|
|
535
|
-
var T =
|
|
535
|
+
var T = q(i);
|
|
536
536
|
Be(m, r.props, "prop", T, r);
|
|
537
537
|
} else if (i.PropTypes !== void 0 && !Ae) {
|
|
538
538
|
Ae = !0;
|
|
539
|
-
var R =
|
|
539
|
+
var R = q(i);
|
|
540
540
|
f("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", R || "Unknown");
|
|
541
541
|
}
|
|
542
542
|
typeof i.getDefaultProps == "function" && !i.getDefaultProps.isReactClassApproved && f("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
|
|
@@ -564,7 +564,7 @@ Check the top-level render call using <` + m + ">.");
|
|
|
564
564
|
var he = Ft();
|
|
565
565
|
he ? C += he : C += bt();
|
|
566
566
|
var ae;
|
|
567
|
-
r === null ? ae = "null" : Re(r) ? ae = "array" : r !== void 0 && r.$$typeof === o ? (ae = "<" + (
|
|
567
|
+
r === null ? ae = "null" : Re(r) ? ae = "array" : r !== void 0 && r.$$typeof === o ? (ae = "<" + (q(r.type) || "Unknown") + " />", C = " Did you accidentally export a JSX literal instead of a component?") : ae = typeof r, f("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", ae, C);
|
|
568
568
|
}
|
|
569
569
|
var Q = Lt(r, i, m, R, A);
|
|
570
570
|
if (Q == null)
|
|
@@ -583,7 +583,7 @@ Check the top-level render call using <` + m + ">.");
|
|
|
583
583
|
St(Te, r);
|
|
584
584
|
}
|
|
585
585
|
if (ne.call(i, "key")) {
|
|
586
|
-
var Ne =
|
|
586
|
+
var Ne = q(r), be = Object.keys(i).filter(function(Ot) {
|
|
587
587
|
return Ot !== "key";
|
|
588
588
|
}), K = be.length > 0 ? "{key: someKey, " + be.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
589
589
|
if (!it[Ne + K]) {
|
|
@@ -596,7 +596,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
596
596
|
<%s key={someKey} {...props} />`, K, Ne, dt, Ne), it[Ne + K] = !0;
|
|
597
597
|
}
|
|
598
598
|
}
|
|
599
|
-
return r === s ? vt(Q) :
|
|
599
|
+
return r === s ? vt(Q) : qe(Q), Q;
|
|
600
600
|
}
|
|
601
601
|
}
|
|
602
602
|
function Pt(r, i, m) {
|
|
@@ -663,7 +663,7 @@ const we = (e, o, a) => {
|
|
|
663
663
|
}, Ut = (e) => {
|
|
664
664
|
const o = e.getDay();
|
|
665
665
|
return o === 0 || o === 6;
|
|
666
|
-
},
|
|
666
|
+
}, Gt = (e, o) => o.some(
|
|
667
667
|
(a) => a.getFullYear() === e.getFullYear() && a.getMonth() === e.getMonth() && a.getDate() === e.getDate()
|
|
668
668
|
), Ze = (e) => {
|
|
669
669
|
const o = new Date(e);
|
|
@@ -837,7 +837,7 @@ const Qe = (e) => e ? {
|
|
|
837
837
|
lineHeight: e.lineHeight || 1.5714285714285714,
|
|
838
838
|
color: e.fontColor || "rgba(0, 0, 0, 0.88)"
|
|
839
839
|
}
|
|
840
|
-
} : {}, { Text: Me, Paragraph: zr } =
|
|
840
|
+
} : {}, { Text: Me, Paragraph: zr } = qt, { Option: ze } = ve, Ir = ({
|
|
841
841
|
task: e,
|
|
842
842
|
allTasks: o,
|
|
843
843
|
links: a,
|
|
@@ -847,7 +847,7 @@ const Qe = (e) => e ? {
|
|
|
847
847
|
children: g,
|
|
848
848
|
styleConfig: d
|
|
849
849
|
}) => {
|
|
850
|
-
const l = Qe(d), [x, p] = H(!1), [w, M] = H(null), [y, D] = H("e2s"), [b, P] = H("lag"), [S, f] = H(0), [k, V] = H(e.duration), [B, $] = H(!0), W = "day", E = a.find((_) => _.target === e.id), U = !!E, Y =
|
|
850
|
+
const l = Qe(d), [x, p] = H(!1), [w, M] = H(null), [y, D] = H("e2s"), [b, P] = H("lag"), [S, f] = H(0), [k, V] = H(e.duration), [B, $] = H(!0), W = "day", E = a.find((_) => _.target === e.id), U = !!E, Y = G.useMemo(() => o.length === 0 ? /* @__PURE__ */ new Date() : new Date(Math.min(...o.map((_) => _.start.getTime()))), [o]), j = () => {
|
|
851
851
|
if (w) {
|
|
852
852
|
const _ = b === "lag" ? S : -S, ce = _t(_, W);
|
|
853
853
|
if (k !== e.duration && h) {
|
|
@@ -862,7 +862,7 @@ const Qe = (e) => e ? {
|
|
|
862
862
|
}
|
|
863
863
|
}, z = () => {
|
|
864
864
|
M(null), D("e2s"), P("lag"), f(0), V(e.duration);
|
|
865
|
-
},
|
|
865
|
+
}, q = () => {
|
|
866
866
|
E && n && (n(E.id), p(!1), z());
|
|
867
867
|
}, ee = (_) => {
|
|
868
868
|
if (p(_), _) {
|
|
@@ -1072,7 +1072,7 @@ const Qe = (e) => e ? {
|
|
|
1072
1072
|
ye,
|
|
1073
1073
|
{
|
|
1074
1074
|
danger: !0,
|
|
1075
|
-
onClick:
|
|
1075
|
+
onClick: q,
|
|
1076
1076
|
style: {
|
|
1077
1077
|
...l.buttonDanger
|
|
1078
1078
|
},
|
|
@@ -1109,9 +1109,9 @@ const Qe = (e) => e ? {
|
|
|
1109
1109
|
);
|
|
1110
1110
|
}, nr = ur(zt(
|
|
1111
1111
|
({ tasks: e, allTasks: o = [], columns: a, selectedTask: s, onTaskClick: n, onTaskContextMenu: h, onTaskUpdate: g, onTaskDragStart: d, onAddTask: l, onAddDependency: x, onRemoveDependency: p, links: w = [], dropIndicator: M, reorderTask: y, styleConfig: D }, b) => {
|
|
1112
|
-
const P =
|
|
1113
|
-
|
|
1114
|
-
const [S, f] =
|
|
1112
|
+
const P = G.useRef(null);
|
|
1113
|
+
G.useImperativeHandle(b, () => P.current);
|
|
1114
|
+
const [S, f] = G.useState(null), [k, V] = G.useState(0), B = (E, U = 0) => {
|
|
1115
1115
|
if (!E.parent) return U;
|
|
1116
1116
|
const Y = e.find((j) => j.id === E.parent);
|
|
1117
1117
|
return Y ? B(Y, U + 1) : U;
|
|
@@ -1199,7 +1199,7 @@ const Qe = (e) => e ? {
|
|
|
1199
1199
|
task: E,
|
|
1200
1200
|
allTasks: o,
|
|
1201
1201
|
links: w,
|
|
1202
|
-
onAddDependency: (z,
|
|
1202
|
+
onAddDependency: (z, q, ee, Z) => x?.(z, q, ee, Z),
|
|
1203
1203
|
onRemoveDependency: (z) => p?.(z),
|
|
1204
1204
|
onTaskUpdate: g,
|
|
1205
1205
|
styleConfig: D,
|
|
@@ -1215,7 +1215,7 @@ const Qe = (e) => e ? {
|
|
|
1215
1215
|
gap: "4px"
|
|
1216
1216
|
},
|
|
1217
1217
|
children: j ? (() => {
|
|
1218
|
-
const z = o.find((ee) => ee.id === j.source),
|
|
1218
|
+
const z = o.find((ee) => ee.id === j.source), q = z ? o.indexOf(z) + 1 : 0;
|
|
1219
1219
|
return /* @__PURE__ */ t.jsx(
|
|
1220
1220
|
"span",
|
|
1221
1221
|
{
|
|
@@ -1228,7 +1228,7 @@ const Qe = (e) => e ? {
|
|
|
1228
1228
|
borderRadius: "4px",
|
|
1229
1229
|
whiteSpace: "nowrap"
|
|
1230
1230
|
},
|
|
1231
|
-
children: _r(j,
|
|
1231
|
+
children: _r(j, q)
|
|
1232
1232
|
}
|
|
1233
1233
|
);
|
|
1234
1234
|
})() : /* @__PURE__ */ t.jsx(
|
|
@@ -1446,7 +1446,7 @@ const Yr = ({
|
|
|
1446
1446
|
), j = P(
|
|
1447
1447
|
f?.actualEndAccessor?.(e) ?? e.actualEnd ?? e.end,
|
|
1448
1448
|
e.end
|
|
1449
|
-
), z = f?.actualDatesFormatter ? f.actualDatesFormatter(Y, j, e) : `${Se(Y, k)} - ${Se(j, k)}`,
|
|
1449
|
+
), z = f?.actualDatesFormatter ? f.actualDatesFormatter(Y, j, e) : `${Se(Y, k)} - ${Se(j, k)}`, q = f?.statusAccessor?.(e) ?? e.status, ee = q != null ? String(q) : "", Z = f?.statusFormatter ? f.statusFormatter(ee, e) : ee ? ee.replace(/-/g, " ") : f?.emptyStatusText || "Not set", J = f?.ownerAccessor?.(e) ?? e.owner, ie = J != null ? String(J).trim() : "", _ = ie ? f?.ownerFormatter ? f.ownerFormatter(ie, e) : ie : f?.emptyOwnerText || "", ce = p.length > 0 ? p : e.dependencyRule || [], me = S(
|
|
1450
1450
|
f?.dependencyRuleAccessor?.(e, ce)
|
|
1451
1451
|
) || ce, re = me.length > 0 ? me.map((F) => f?.dependencyRuleFormatter ? f.dependencyRuleFormatter(F, e) : F).join(f?.dependencySeparator || " | ") : f?.emptyDependencyRuleText || "No dependency rule", oe = f?.progressAccessor?.(e) ?? e.progress, te = typeof oe == "number" ? oe : Number(oe), fe = Number.isFinite(te) ? te : e.progress, le = f?.progressFormatter ? f.progressFormatter(fe, e) : `${fe}%`, xe = /* @__PURE__ */ t.jsxs("div", { className: "gantt-tooltip", children: [
|
|
1452
1452
|
f?.showTaskName !== !1 && /* @__PURE__ */ t.jsx("div", { className: "gantt-tooltip-title", children: $ }),
|
|
@@ -1527,10 +1527,10 @@ const Yr = ({
|
|
|
1527
1527
|
}
|
|
1528
1528
|
) });
|
|
1529
1529
|
}, Br = ({ links: e, tasks: o, getTaskPosition: a }) => {
|
|
1530
|
-
const s =
|
|
1530
|
+
const s = G.useMemo(() => {
|
|
1531
1531
|
const d = /* @__PURE__ */ new Map();
|
|
1532
1532
|
return o.forEach((l) => d.set(l.id, l)), d;
|
|
1533
|
-
}, [o]), n = (d) => s.get(d), h =
|
|
1533
|
+
}, [o]), n = (d) => s.get(d), h = G.useMemo(() => {
|
|
1534
1534
|
let d = 0, l = 0;
|
|
1535
1535
|
return o.forEach((x) => {
|
|
1536
1536
|
try {
|
|
@@ -1600,7 +1600,7 @@ const Yr = ({
|
|
|
1600
1600
|
if (J === 0) return !0;
|
|
1601
1601
|
const ie = Y[J - 1];
|
|
1602
1602
|
return Math.abs(Z.x - ie.x) > 0.5 || Math.abs(Z.y - ie.y) > 0.5;
|
|
1603
|
-
}), z = j.length > 0 ? j.map((Z, J) => `${J === 0 ? "M" : "L"} ${Z.x},${Z.y}`).join(" ") : "",
|
|
1603
|
+
}), z = j.length > 0 ? j.map((Z, J) => `${J === 0 ? "M" : "L"} ${Z.x},${Z.y}`).join(" ") : "", q = D.arrowWidth / 2, ee = `M ${B},${y - q} L ${V},${y} L ${B},${y + q} L ${$},${y} Z`;
|
|
1604
1604
|
return { path: z, arrow: ee };
|
|
1605
1605
|
};
|
|
1606
1606
|
return e.length === 0 ? null : /* @__PURE__ */ t.jsx(
|
|
@@ -1741,10 +1741,10 @@ const Yr = ({
|
|
|
1741
1741
|
allowBaselineOnlyMode: M = !1,
|
|
1742
1742
|
taskTooltipConfig: y
|
|
1743
1743
|
}, D) => {
|
|
1744
|
-
const [b, P] = H(e), S = (n.columnWidth || 60) * p, f = n.baselines && w && w.size > 0, k =
|
|
1744
|
+
const [b, P] = H(e), S = (n.columnWidth || 60) * p, f = n.baselines && w && w.size > 0, k = G.useMemo(() => {
|
|
1745
1745
|
const c = /* @__PURE__ */ new Map();
|
|
1746
1746
|
return b.forEach((v) => c.set(v.id, v)), c;
|
|
1747
|
-
}, [b]), V =
|
|
1747
|
+
}, [b]), V = G.useMemo(() => {
|
|
1748
1748
|
const c = /* @__PURE__ */ new Map(), v = {
|
|
1749
1749
|
e2s: "Finish-to-Start",
|
|
1750
1750
|
s2s: "Start-to-Start",
|
|
@@ -1767,13 +1767,13 @@ const Yr = ({
|
|
|
1767
1767
|
s[1].unit,
|
|
1768
1768
|
s[1].step
|
|
1769
1769
|
);
|
|
1770
|
-
|
|
1770
|
+
G.useEffect(() => {
|
|
1771
1771
|
(e.length !== b.length || e.some((v, N) => {
|
|
1772
1772
|
const L = b[N];
|
|
1773
1773
|
return !L || v.id !== L.id || v.start.getTime() !== L.start.getTime() || v.end.getTime() !== L.end.getTime();
|
|
1774
1774
|
})) && P(e);
|
|
1775
1775
|
}, [e]);
|
|
1776
|
-
const U =
|
|
1776
|
+
const U = G.useCallback((c) => {
|
|
1777
1777
|
const v = [];
|
|
1778
1778
|
let N = new Date(a.start);
|
|
1779
1779
|
for (; N <= a.end; )
|
|
@@ -1782,7 +1782,7 @@ const Yr = ({
|
|
|
1782
1782
|
label: Se(N, c.format || "D")
|
|
1783
1783
|
}), N = we(N, c.step, c.unit);
|
|
1784
1784
|
return v;
|
|
1785
|
-
}, [a.start, a.end]), Y =
|
|
1785
|
+
}, [a.start, a.end]), Y = G.useCallback((c) => {
|
|
1786
1786
|
const v = s[1], N = a.start.getTime(), se = c.getTime() - N, X = {
|
|
1787
1787
|
hour: 36e5,
|
|
1788
1788
|
day: 864e5,
|
|
@@ -1804,7 +1804,7 @@ const Yr = ({
|
|
|
1804
1804
|
left: v,
|
|
1805
1805
|
width: Math.max(N - v, 0)
|
|
1806
1806
|
};
|
|
1807
|
-
},
|
|
1807
|
+
}, q = G.useCallback((c) => {
|
|
1808
1808
|
const v = j(c), N = b.findIndex((X) => X.id === c.id);
|
|
1809
1809
|
let L = n.rowHeight || 48;
|
|
1810
1810
|
if (D && typeof D == "object" && D.current) {
|
|
@@ -1821,7 +1821,7 @@ const Yr = ({
|
|
|
1821
1821
|
top: N * L + I,
|
|
1822
1822
|
height: se
|
|
1823
1823
|
};
|
|
1824
|
-
}, [j, b, n.rowHeight, n.taskHeight, D]), ee =
|
|
1824
|
+
}, [j, b, n.rowHeight, n.taskHeight, D]), ee = G.useRef(null), Z = Fe((c) => {
|
|
1825
1825
|
B.taskId && B.type && (ee.current && cancelAnimationFrame(ee.current), ee.current = requestAnimationFrame(() => {
|
|
1826
1826
|
const v = W(c.clientX, c.clientY);
|
|
1827
1827
|
v && P(
|
|
@@ -1833,28 +1833,28 @@ const Yr = ({
|
|
|
1833
1833
|
const c = b.find((v) => v.id === B.taskId);
|
|
1834
1834
|
E(c || null), l();
|
|
1835
1835
|
}
|
|
1836
|
-
}, [B, b, E, l]), ie = s[1], _ =
|
|
1836
|
+
}, [B, b, E, l]), ie = s[1], _ = G.useMemo(() => U(ie), [U, ie]), ce = M && b.length === 0 && f, ue = G.useCallback(() => {
|
|
1837
1837
|
const c = [];
|
|
1838
1838
|
let v = -1, N = -1, L = 0, se = "";
|
|
1839
1839
|
return _.forEach((I) => {
|
|
1840
1840
|
const X = I.date.getMonth(), ne = I.date.getFullYear(), De = Se(I.date, "MMM YYYY");
|
|
1841
1841
|
X !== v || ne !== N ? (v !== -1 && c.push({ label: se, width: L }), v = X, N = ne, L = S, se = De) : L += S;
|
|
1842
1842
|
}), v !== -1 && c.push({ label: se, width: L }), c;
|
|
1843
|
-
}, [_, S]), me =
|
|
1843
|
+
}, [_, S]), me = G.useCallback(() => {
|
|
1844
1844
|
const c = [];
|
|
1845
1845
|
let v = -1, N = 0, L = -1, se = -1, I = "";
|
|
1846
1846
|
return _.forEach((X) => {
|
|
1847
1847
|
const De = X.date.getDate() <= 15 ? 0 : 1, de = X.date.getMonth(), je = X.date.getFullYear(), Be = Se(X.date, "MMM"), et = new Date(je, de + 1, 0).getDate(), Re = De === 0 ? `${Be} 1 - 15` : `${Be} 16 - ${et}`;
|
|
1848
1848
|
De !== v || de !== L || je !== se ? (v !== -1 && c.push({ label: I, width: N }), v = De, L = de, se = je, N = S, I = Re) : N += S;
|
|
1849
1849
|
}), v !== -1 && c.push({ label: I, width: N }), c;
|
|
1850
|
-
}, [_, S]), re =
|
|
1850
|
+
}, [_, S]), re = G.useMemo(() => ue(), [ue]), oe = G.useMemo(() => me(), [me]), te = G.useMemo(() => _.length * S, [_.length, S]), fe = G.useMemo(() => {
|
|
1851
1851
|
const c = /* @__PURE__ */ new Date();
|
|
1852
1852
|
return c.setHours(0, 0, 0, 0), c;
|
|
1853
|
-
}, []), le =
|
|
1853
|
+
}, []), le = G.useMemo(() => {
|
|
1854
1854
|
if (!n.showTodayLine) return null;
|
|
1855
1855
|
const c = Y(fe);
|
|
1856
1856
|
return c >= -S && c <= te + S ? Math.max(0, Math.min(c, te)) : null;
|
|
1857
|
-
}, [n.showTodayLine, fe, te, S, Y]), xe =
|
|
1857
|
+
}, [n.showTodayLine, fe, te, S, Y]), xe = G.useMemo(() => {
|
|
1858
1858
|
if (n.projectStartDate)
|
|
1859
1859
|
return Ze(n.projectStartDate);
|
|
1860
1860
|
if (e.length > 0) {
|
|
@@ -1862,7 +1862,7 @@ const Yr = ({
|
|
|
1862
1862
|
return Ze(new Date(Math.min(...c)));
|
|
1863
1863
|
}
|
|
1864
1864
|
return null;
|
|
1865
|
-
}, [n.projectStartDate, e]), F =
|
|
1865
|
+
}, [n.projectStartDate, e]), F = G.useMemo(() => {
|
|
1866
1866
|
if (!n.showProjectStartLine || !xe) return null;
|
|
1867
1867
|
const c = Y(xe);
|
|
1868
1868
|
return c >= -S && c <= te + S ? Math.max(0, Math.min(c, te)) : null;
|
|
@@ -1960,7 +1960,7 @@ const Yr = ({
|
|
|
1960
1960
|
`mid-${v}`
|
|
1961
1961
|
)) }),
|
|
1962
1962
|
/* @__PURE__ */ t.jsx("div", { className: "gantt-timeline-scale gantt-timeline-scale-day", style: { width: te }, children: _.map((c, v) => {
|
|
1963
|
-
const N = n.weekends && Ut(c.date), L = n.holidays &&
|
|
1963
|
+
const N = n.weekends && Ut(c.date), L = n.holidays && Gt(c.date, n.holidays);
|
|
1964
1964
|
return /* @__PURE__ */ t.jsx(
|
|
1965
1965
|
"div",
|
|
1966
1966
|
{
|
|
@@ -2143,7 +2143,7 @@ const Yr = ({
|
|
|
2143
2143
|
)
|
|
2144
2144
|
] }),
|
|
2145
2145
|
/* @__PURE__ */ t.jsx("div", { className: "gantt-timeline-grid", children: _.map((c, v) => {
|
|
2146
|
-
const N = n.weekends && Ut(c.date), L = n.holidays &&
|
|
2146
|
+
const N = n.weekends && Ut(c.date), L = n.holidays && Gt(c.date, n.holidays);
|
|
2147
2147
|
return /* @__PURE__ */ t.jsx(
|
|
2148
2148
|
"div",
|
|
2149
2149
|
{
|
|
@@ -2158,7 +2158,7 @@ const Yr = ({
|
|
|
2158
2158
|
{
|
|
2159
2159
|
links: o,
|
|
2160
2160
|
tasks: b,
|
|
2161
|
-
getTaskPosition:
|
|
2161
|
+
getTaskPosition: q
|
|
2162
2162
|
}
|
|
2163
2163
|
),
|
|
2164
2164
|
/* @__PURE__ */ t.jsx("div", { className: "gantt-timeline-tasks", style: { width: te }, children: ce ? Array.from(w?.values() || []).map((c) => {
|
|
@@ -2418,7 +2418,7 @@ const { Search: Hr } = Ye, Vr = ({ onFilterChange: e, owners: o = [], uiConfig:
|
|
|
2418
2418
|
}
|
|
2419
2419
|
)
|
|
2420
2420
|
] });
|
|
2421
|
-
}, { Option: Je } = ve, { TextArea: Ur } = Ye,
|
|
2421
|
+
}, { Option: Je } = ve, { TextArea: Ur } = Ye, Gr = ({ onCreateTask: e, onClose: o, uiConfig: a = {}, parentId: s, parentTaskName: n, styleConfig: h }) => {
|
|
2422
2422
|
const [g] = pe.useForm(), d = Qe(h), l = (x) => {
|
|
2423
2423
|
const p = x.start.toDate(), w = new Date(p);
|
|
2424
2424
|
w.setDate(w.getDate() + (x.duration || 1)), e({
|
|
@@ -2504,7 +2504,7 @@ const { Search: Hr } = Ye, Vr = ({ onFilterChange: e, owners: o = [], uiConfig:
|
|
|
2504
2504
|
)
|
|
2505
2505
|
}
|
|
2506
2506
|
);
|
|
2507
|
-
}, { Option: Ke } = ve, { TextArea:
|
|
2507
|
+
}, { Option: Ke } = ve, { TextArea: qr } = Ye, { confirm: Jr } = Tt, Kr = ({ task: e, onUpdate: o, onDelete: a, onClose: s, uiConfig: n = {}, styleConfig: h }) => {
|
|
2508
2508
|
const [g] = pe.useForm(), d = Qe(h), l = (p) => {
|
|
2509
2509
|
const w = p.start.toDate(), M = new Date(w);
|
|
2510
2510
|
M.setDate(M.getDate() + (p.duration || 1)), o({
|
|
@@ -2598,13 +2598,13 @@ const { Search: Hr } = Ye, Vr = ({ onFilterChange: e, owners: o = [], uiConfig:
|
|
|
2598
2598
|
/* @__PURE__ */ t.jsx(pe.Item, { name: "progress", label: n.progressLabel || "Progress (%)", style: { flex: 1 }, children: /* @__PURE__ */ t.jsx(Ce, { min: 0, max: 100, style: { width: "100%", ...d.input } }) })
|
|
2599
2599
|
] }),
|
|
2600
2600
|
/* @__PURE__ */ t.jsx(pe.Item, { name: "owner", label: n.ownerLabel || "Owner", children: /* @__PURE__ */ t.jsx(Ye, { placeholder: n.ownerPlaceholder || "Assign to...", style: d.input }) }),
|
|
2601
|
-
/* @__PURE__ */ t.jsx(pe.Item, { name: "details", label: n.detailsLabel || "Details", children: /* @__PURE__ */ t.jsx(
|
|
2601
|
+
/* @__PURE__ */ t.jsx(pe.Item, { name: "details", label: n.detailsLabel || "Details", children: /* @__PURE__ */ t.jsx(qr, { placeholder: n.detailsPlaceholder || "Add stage description...", rows: 3, style: d.input }) })
|
|
2602
2602
|
]
|
|
2603
2603
|
}
|
|
2604
2604
|
)
|
|
2605
2605
|
}
|
|
2606
2606
|
);
|
|
2607
|
-
}, { Title: pt, Text: He, Paragraph: Zr } =
|
|
2607
|
+
}, { Title: pt, Text: He, Paragraph: Zr } = qt, { Option: Oe } = ve, Qr = ({
|
|
2608
2608
|
task: e,
|
|
2609
2609
|
allTasks: o,
|
|
2610
2610
|
links: a,
|
|
@@ -2635,13 +2635,13 @@ const { Search: Hr } = Ye, Vr = ({ onFilterChange: e, owners: o = [], uiConfig:
|
|
|
2635
2635
|
Example: 3FS+10d`);
|
|
2636
2636
|
return;
|
|
2637
2637
|
}
|
|
2638
|
-
const z = j.taskNumber - 1,
|
|
2639
|
-
if (!
|
|
2638
|
+
const z = j.taskNumber - 1, q = o[z];
|
|
2639
|
+
if (!q) {
|
|
2640
2640
|
alert(`Task ${j.taskNumber} not found`);
|
|
2641
2641
|
return;
|
|
2642
2642
|
}
|
|
2643
2643
|
const ee = Ar(j.type), Z = _t(j.lag, j.lagUnit);
|
|
2644
|
-
s(
|
|
2644
|
+
s(q.id, e.id, ee, Z), V("");
|
|
2645
2645
|
}, U = (j) => {
|
|
2646
2646
|
switch (j) {
|
|
2647
2647
|
case "e2s":
|
|
@@ -2846,7 +2846,7 @@ Example: 3FS+10d`);
|
|
|
2846
2846
|
dataSource: B,
|
|
2847
2847
|
locale: { emptyText: /* @__PURE__ */ t.jsx(He, { type: "secondary", style: { color: l.font?.color, opacity: 0.5 }, children: "No dependencies added yet." }) },
|
|
2848
2848
|
renderItem: (j) => {
|
|
2849
|
-
const z = o.find((
|
|
2849
|
+
const z = o.find((q) => q.id === j.source);
|
|
2850
2850
|
return /* @__PURE__ */ t.jsx(
|
|
2851
2851
|
kt.Item,
|
|
2852
2852
|
{
|
|
@@ -3339,13 +3339,20 @@ ${s + 1}. ${a.text}
|
|
|
3339
3339
|
};
|
|
3340
3340
|
}).filter((s) => s.end.getTime() >= s.start.getTime());
|
|
3341
3341
|
}, fn = (e) => {
|
|
3342
|
-
const o = /* @__PURE__ */ new Date(), a = Le(
|
|
3342
|
+
const o = /* @__PURE__ */ new Date(), a = Le(
|
|
3343
|
+
e.start ?? e.startDate ?? e.start_date ?? e.plannedStartDate,
|
|
3344
|
+
o
|
|
3345
|
+
), s = Le(
|
|
3346
|
+
e.end ?? e.endDate ?? e.end_date ?? e.plannedEndDate,
|
|
3347
|
+
a
|
|
3348
|
+
), n = s.getTime() < a.getTime() ? a : s, h = Le(e.plannedStart ?? e.planned_start ?? e.planned_start_date, a), g = Le(e.plannedEnd ?? e.planned_end ?? e.planned_end_date, n), d = g.getTime() < h.getTime() ? h : g, l = Le(e.actualStart ?? e.actual_start ?? e.actual_start_date, a), x = Le(e.actualEnd ?? e.actual_end ?? e.actual_end_date, n), p = x.getTime() < l.getTime() ? l : x, w = Math.max(Math.ceil((n.getTime() - a.getTime()) / mt), 0), M = un(e.dependencies ?? e.dependsOn ?? e.depends_on), y = pn(
|
|
3343
3349
|
e.dependencyRule ?? e.dependency_rule ?? e.dependencyRuleDescription ?? e.dependency_rule_description
|
|
3344
3350
|
), D = hn(e.onHoldPeriods ?? e.on_hold_periods, a, n);
|
|
3345
3351
|
return {
|
|
3346
3352
|
id: String(e.id),
|
|
3347
3353
|
rawId: e.id,
|
|
3348
|
-
|
|
3354
|
+
// Support API field name: workGroupName as the task display name
|
|
3355
|
+
text: e.text || e.name || e.title || e.taskName || e.task_name || e.workGroupName || `Task ${String(e.id)}`,
|
|
3349
3356
|
start: a,
|
|
3350
3357
|
end: n,
|
|
3351
3358
|
plannedStart: h,
|
|
@@ -3564,12 +3571,12 @@ ${s + 1}. ${a.text}
|
|
|
3564
3571
|
onLinkDelete: D,
|
|
3565
3572
|
baselines: b
|
|
3566
3573
|
}) => {
|
|
3567
|
-
const P = { ...Sn, ...s }, S = { ...bn, ...g }, f =
|
|
3574
|
+
const P = { ...Sn, ...s }, S = { ...bn, ...g }, f = G.useMemo(() => {
|
|
3568
3575
|
const u = {};
|
|
3569
3576
|
return n.primary && (u["--wx-gantt-primary"] = n.primary), n.primarySelected && (u["--wx-gantt-primary-selected"] = n.primarySelected), n.success && (u["--wx-gantt-success"] = n.success), n.warning && (u["--wx-gantt-warning"] = n.warning), n.danger && (u["--wx-gantt-danger"] = n.danger), n.background && (u["--wx-gantt-background"] = n.background), n.backgroundAlt && (u["--wx-gantt-background-alt"] = n.backgroundAlt), n.backgroundHover && (u["--wx-gantt-background-hover"] = n.backgroundHover), n.selectColor && (u["--wx-gantt-select-color"] = n.selectColor), n.taskColor && (u["--wx-gantt-task-color"] = n.taskColor), n.taskFillColor && (u["--wx-gantt-task-fill-color"] = n.taskFillColor), n.projectColor && (u["--wx-gantt-project-color"] = n.projectColor), n.milestoneColor && (u["--wx-gantt-milestone-color"] = n.milestoneColor), n.fontColor && (u["--wx-gantt-font-color"] = n.fontColor), n.fontColorAlt && (u["--wx-gantt-font-color-alt"] = n.fontColorAlt), n.iconColor && (u["--wx-gantt-icon-color"] = n.iconColor), n.borderColor && (u["--wx-gantt-border-color"] = n.borderColor), n.fontFamily && (u["--wx-gantt-font-family"] = n.fontFamily), n.fontMono && (u["--wx-gantt-font-mono"] = n.fontMono), n.fontSize && (u["--wx-gantt-font-size"] = n.fontSize), n.fontWeight && (u["--wx-gantt-font-weight"] = String(n.fontWeight)), n.lineHeight && (u["--wx-gantt-line-height"] = String(n.lineHeight)), n.spacingXS && (u["--gantt-spacing-xs"] = n.spacingXS), n.spacingSM && (u["--gantt-spacing-sm"] = n.spacingSM), n.spacingMD && (u["--gantt-spacing-md"] = n.spacingMD), n.spacingLG && (u["--gantt-spacing-lg"] = n.spacingLG), n.customCSSVariables && Object.entries(n.customCSSVariables).forEach(([r, i]) => {
|
|
3570
3577
|
u[r.startsWith("--") ? r : `--${r}`] = i;
|
|
3571
3578
|
}), u;
|
|
3572
|
-
}, [n]), k =
|
|
3579
|
+
}, [n]), k = G.useMemo(() => {
|
|
3573
3580
|
const u = d ?? l;
|
|
3574
3581
|
if (!u || u.length === 0) return [];
|
|
3575
3582
|
const r = /* @__PURE__ */ new Date();
|
|
@@ -3577,7 +3584,7 @@ ${s + 1}. ${a.text}
|
|
|
3577
3584
|
start: Le(i.start, r),
|
|
3578
3585
|
end: Le(i.end, r)
|
|
3579
3586
|
})).filter((i) => i.end.getTime() > i.start.getTime());
|
|
3580
|
-
}, [d, l]), V =
|
|
3587
|
+
}, [d, l]), V = G.useMemo(() => {
|
|
3581
3588
|
const u = gn(e);
|
|
3582
3589
|
return xn(u, k);
|
|
3583
3590
|
}, [e, k]), B = Array.isArray(o) ? o : [], {
|
|
@@ -3588,7 +3595,7 @@ ${s + 1}. ${a.text}
|
|
|
3588
3595
|
undo: Y,
|
|
3589
3596
|
redo: j,
|
|
3590
3597
|
updateTask: z,
|
|
3591
|
-
createTask:
|
|
3598
|
+
createTask: q,
|
|
3592
3599
|
deleteTask: ee,
|
|
3593
3600
|
saveState: Z
|
|
3594
3601
|
} = tn(V, B), [J, ie] = H($), [_, ce] = H(null), [ue, me] = H(null), [re, oe] = H(!1), [te, fe] = H(void 0), [le, xe] = H(void 0), [F, c] = H(!1), [v, N] = H(null), [L, se] = H(null), [I, X] = H(null), [ne, De] = H(null), [de, je] = H(null), [Be, et] = H(1), [Re, Xe] = H(() => b && b.size > 0 ? b : V.length > 0 ? on(V) : /* @__PURE__ */ new Map());
|
|
@@ -3677,7 +3684,7 @@ ${s + 1}. ${a.text}
|
|
|
3677
3684
|
}), m;
|
|
3678
3685
|
})(u));
|
|
3679
3686
|
}, [$, tt]);
|
|
3680
|
-
const Mt =
|
|
3687
|
+
const Mt = G.useMemo(() => {
|
|
3681
3688
|
if (!$ || !Array.isArray($)) return [];
|
|
3682
3689
|
try {
|
|
3683
3690
|
return Array.from(new Set($.map((u) => u?.owner).filter(Boolean)));
|
|
@@ -3714,12 +3721,12 @@ ${s + 1}. ${a.text}
|
|
|
3714
3721
|
start: we(u.start, 7, "day"),
|
|
3715
3722
|
end: we(u.end, 7, "day")
|
|
3716
3723
|
};
|
|
3717
|
-
|
|
3724
|
+
q(r), w && w(r);
|
|
3718
3725
|
}, Pe = (u) => {
|
|
3719
3726
|
if (!de?.task) return;
|
|
3720
3727
|
const r = { ...de.task, type: u };
|
|
3721
3728
|
z(r), x && x(r);
|
|
3722
|
-
}, Ae =
|
|
3729
|
+
}, Ae = G.useCallback((u, r) => {
|
|
3723
3730
|
let i = [];
|
|
3724
3731
|
return r.filter((T) => T.parent === u).forEach((T) => {
|
|
3725
3732
|
i.push(T.id), i = [...i, ...Ae(T.id, r)];
|
|
@@ -3773,10 +3780,10 @@ ${s + 1}. ${a.text}
|
|
|
3773
3780
|
}
|
|
3774
3781
|
}
|
|
3775
3782
|
se(null), X(null), De(null), document.body.classList.remove("gantt-dragging");
|
|
3776
|
-
},
|
|
3783
|
+
}, Ge = We(null), Rt = G.useCallback((u) => {
|
|
3777
3784
|
if (I) {
|
|
3778
3785
|
const { clientX: r, clientY: i } = u;
|
|
3779
|
-
|
|
3786
|
+
Ge.current && cancelAnimationFrame(Ge.current), Ge.current = requestAnimationFrame(() => {
|
|
3780
3787
|
const m = Ee.rowHeight || 48, T = nt.current?.querySelector(".gantt-grid-body");
|
|
3781
3788
|
if (!T || J.length === 0) {
|
|
3782
3789
|
De(null);
|
|
@@ -3807,7 +3814,7 @@ ${s + 1}. ${a.text}
|
|
|
3807
3814
|
parent: r
|
|
3808
3815
|
// Set parent if provided (for subtasks)
|
|
3809
3816
|
};
|
|
3810
|
-
|
|
3817
|
+
q(i);
|
|
3811
3818
|
const m = {
|
|
3812
3819
|
taskId: i.id,
|
|
3813
3820
|
start: new Date(i.start),
|
|
@@ -3819,7 +3826,7 @@ ${s + 1}. ${a.text}
|
|
|
3819
3826
|
const R = new Map(T);
|
|
3820
3827
|
return R.set(i.id, m), R;
|
|
3821
3828
|
}), w && w(i);
|
|
3822
|
-
},
|
|
3829
|
+
}, qe = (u) => {
|
|
3823
3830
|
z(u), x && x(u);
|
|
3824
3831
|
}, vt = (u) => {
|
|
3825
3832
|
ee(u), Xe((r) => {
|
|
@@ -3923,7 +3930,7 @@ ${s + 1}. ${a.text}
|
|
|
3923
3930
|
selectedTask: _,
|
|
3924
3931
|
onTaskClick: Lt,
|
|
3925
3932
|
onTaskContextMenu: ot,
|
|
3926
|
-
onTaskUpdate:
|
|
3933
|
+
onTaskUpdate: qe,
|
|
3927
3934
|
onTaskDragStart: bt,
|
|
3928
3935
|
onAddTask: (u) => {
|
|
3929
3936
|
if (u) {
|
|
@@ -3968,7 +3975,7 @@ ${s + 1}. ${a.text}
|
|
|
3968
3975
|
const m = $.find((A) => A.id === u);
|
|
3969
3976
|
if (!m) return;
|
|
3970
3977
|
const T = { ...m }, R = { ...m, ...r };
|
|
3971
|
-
|
|
3978
|
+
qe(R), i && p && p({
|
|
3972
3979
|
task: R,
|
|
3973
3980
|
previousTask: T,
|
|
3974
3981
|
dragType: i.dragType
|
|
@@ -3981,7 +3988,7 @@ ${s + 1}. ${a.text}
|
|
|
3981
3988
|
)
|
|
3982
3989
|
] }),
|
|
3983
3990
|
re && /* @__PURE__ */ t.jsx(
|
|
3984
|
-
|
|
3991
|
+
Gr,
|
|
3985
3992
|
{
|
|
3986
3993
|
onCreateTask: St,
|
|
3987
3994
|
onClose: () => {
|
|
@@ -3993,7 +4000,7 @@ ${s + 1}. ${a.text}
|
|
|
3993
4000
|
styleConfig: n
|
|
3994
4001
|
}
|
|
3995
4002
|
),
|
|
3996
|
-
ue && /* @__PURE__ */ t.jsx(Kr, { task: ue, onUpdate:
|
|
4003
|
+
ue && /* @__PURE__ */ t.jsx(Kr, { task: ue, onUpdate: qe, onDelete: vt, onClose: () => me(null), uiConfig: P, styleConfig: n }),
|
|
3997
4004
|
F && v && /* @__PURE__ */ t.jsx(
|
|
3998
4005
|
Qr,
|
|
3999
4006
|
{
|
|
@@ -4002,7 +4009,7 @@ ${s + 1}. ${a.text}
|
|
|
4002
4009
|
links: W,
|
|
4003
4010
|
onAddDependency: it,
|
|
4004
4011
|
onRemoveDependency: lt,
|
|
4005
|
-
onTaskUpdate:
|
|
4012
|
+
onTaskUpdate: qe,
|
|
4006
4013
|
onClose: () => {
|
|
4007
4014
|
c(!1), N(null);
|
|
4008
4015
|
},
|
|
@@ -4141,7 +4148,7 @@ export {
|
|
|
4141
4148
|
On as Gantt,
|
|
4142
4149
|
nr as Grid,
|
|
4143
4150
|
Yr as TaskBar,
|
|
4144
|
-
|
|
4151
|
+
Gr as TaskCreator,
|
|
4145
4152
|
Kr as TaskEditor,
|
|
4146
4153
|
ar as Timeline,
|
|
4147
4154
|
Xr as Toolbar,
|
|
@@ -4154,7 +4161,7 @@ export {
|
|
|
4154
4161
|
Rn as getEndOfDay,
|
|
4155
4162
|
kr as getHoursBetween,
|
|
4156
4163
|
Ze as getStartOfDay,
|
|
4157
|
-
|
|
4164
|
+
Gt as isHoliday,
|
|
4158
4165
|
Ut as isWeekend,
|
|
4159
4166
|
tn as useUndoRedo
|
|
4160
4167
|
};
|
package/dist/iris-gantt.umd.cjs
CHANGED
|
@@ -28,4 +28,4 @@ ${s+1}. ${o.text}
|
|
|
28
28
|
${o.owner?`Owner: ${o.owner}`:""}
|
|
29
29
|
`).join(`
|
|
30
30
|
`)}
|
|
31
|
-
`.trim();dt(a,"gantt-report.txt","text/plain"),alert("PDF export is a simplified text version. For full PDF with charts, a PDF library would be needed.")},Sr=(e,a,o="png")=>{if(!document.getElementById(e)){alert("Could not find Gantt chart element to export");return}if(o==="svg"){alert("SVG export requires additional library. Use PNG or implement with dom-to-svg.");return}alert("Image export requires html2canvas library. Install with: npm install html2canvas")},dt=(e,a,o)=>{const s=new Blob([e],{type:o}),n=URL.createObjectURL(s);vr(n,a),URL.revokeObjectURL(n)},vr=(e,a)=>{const o=document.createElement("a");o.href=e,o.download=a,document.body.appendChild(o),o.click(),document.body.removeChild(o)},jr=Object.freeze(Object.defineProperty({__proto__:null,exportToCSV:qt,exportToExcel:Gt,exportToImage:Sr,exportToJSON:Jt,exportToPDF:Kt,importFromJSON:e=>new Promise((a,o)=>{const s=new FileReader;s.onload=n=>{try{const h=n.target?.result,x=JSON.parse(h),d=x.tasks.map(l=>({...l,start:new Date(l.start),end:new Date(l.end)}));a({tasks:d,links:x.links||[]})}catch{o(new Error("Invalid JSON file"))}},s.onerror=()=>o(new Error("Failed to read file")),s.readAsText(e)})},Symbol.toStringTag,{value:"Module"})),Zt=(e,a)=>e.filter(o=>{if(a.searchText){const s=a.searchText.toLowerCase(),n=o.text.toLowerCase().includes(s),h=o.owner?.toLowerCase().includes(s),x=o.details?.toLowerCase().includes(s);if(!n&&!h&&!x)return!1}if(a.status!=="all"&&(o.progress===0?"not-started":o.progress===100?"completed":"in-progress")!==a.status||a.priority!=="all"&&o.priority!==a.priority||a.owner&&o.owner!==a.owner)return!1;if(a.dateRange){const s=o.start.getTime(),n=a.dateRange.start.getTime(),h=a.dateRange.end.getTime();if(s<n||s>h)return!1}return!0}),Ke=1440*60*1e3,Me=(e,a)=>{if(e instanceof Date){const o=new Date(e.getTime());return Number.isNaN(o.getTime())?new Date(a.getTime()):o}if(typeof e=="string"||typeof e=="number"){const o=new Date(e);if(!Number.isNaN(o.getTime()))return o}return new Date(a.getTime())},Tt=(e,a)=>{if(e==null||e==="")return a;const o=Number(e);return Number.isFinite(o)?o:a},Tr=e=>{if(Array.isArray(e)){const a=e.map(o=>String(o).trim()).filter(Boolean);return a.length>0?a:void 0}if(typeof e=="string"){const a=e.split(/[|,]/).map(o=>o.trim()).filter(Boolean);return a.length>0?a:void 0}},Dr=e=>{if(Array.isArray(e)){const a=e.map(o=>String(o).trim()).filter(Boolean);return a.length>0?a:void 0}if(typeof e=="string"){const a=e.split(/\r?\n|\|/).map(o=>o.trim()).filter(Boolean);return a.length>0?a:void 0}},Mr=(e,a,o)=>{if(!Array.isArray(e)||e.length===0)return;const s=a.getTime(),n=o.getTime();return e.map(h=>{const x=Me(h?.start,a),d=Me(h?.end,o),l=Math.max(x.getTime(),s),y=Math.min(d.getTime(),n);return{start:new Date(l),end:new Date(y)}}).filter(h=>h.end.getTime()>h.start.getTime())},Er=(e,a,o)=>{if(Array.isArray(e))return e.map(s=>{const n=Me(s?.start,a),h=Me(s?.end,o),x=h.getTime()<n.getTime()?n:h,d=Math.max(Math.ceil((x.getTime()-n.getTime())/Ke),0);return{start:n,end:x,duration:Tt(s?.duration,d)}}).filter(s=>s.end.getTime()>=s.start.getTime())},Lr=e=>{const a=new Date,o=Me(e.start??e.startDate??e.start_date,a),s=Me(e.end??e.endDate??e.end_date,o),n=s.getTime()<o.getTime()?o:s,h=Me(e.plannedStart??e.planned_start??e.planned_start_date,o),x=Me(e.plannedEnd??e.planned_end??e.planned_end_date,n),d=x.getTime()<h.getTime()?h:x,l=Me(e.actualStart??e.actual_start??e.actual_start_date,o),y=Me(e.actualEnd??e.actual_end??e.actual_end_date,n),p=y.getTime()<l.getTime()?l:y,S=Math.max(Math.ceil((n.getTime()-o.getTime())/Ke),0),L=Tr(e.dependencies??e.dependsOn??e.depends_on),w=Dr(e.dependencyRule??e.dependency_rule??e.dependencyRuleDescription??e.dependency_rule_description),E=Mr(e.onHoldPeriods??e.on_hold_periods,o,n);return{id:String(e.id),rawId:e.id,text:e.text||e.name||e.title||e.taskName||e.task_name||`Task ${String(e.id)}`,start:o,end:n,plannedStart:h,plannedEnd:d,actualStart:l,actualEnd:p,duration:Tt(e.duration,S),progress:Math.max(0,Math.min(100,Tt(e.progress??e.progressPercentage??e.progress_percentage,0))),type:e.type,parent:e.parent!==void 0&&e.parent!==null&&String(e.parent).length>0?String(e.parent):void 0,open:e.open,color:e.color,details:e.details,owner:e.owner||e.ownerName||e.owner_name,priority:e.priority,status:e.status??e.currentStatus??e.current_status,onHoldPeriods:E,dependencies:L,dependencyRule:w,segments:Er(e.segments,o,n),sequence_id:e.sequence_id,stage_id:e.stage_id,tooltipConfig:e.tooltipConfig}},Fr=e=>Array.isArray(e)?e.map(Lr):[],Pr=(e,a)=>{if(a.length===0)return e;const o=[...a].sort((s,n)=>s.start.getTime()-n.start.getTime());return e.map(s=>{if(s.onHoldPeriods&&s.onHoldPeriods.length>0||s.segments&&s.segments.length>0)return s;const n=s.start.getTime(),h=s.end.getTime(),x=h-n;if(x<=0){for(const v of o)if(n>=v.start.getTime()&&n<v.end.getTime())return{...s,start:new Date(v.end.getTime()),end:new Date(v.end.getTime())};return s}const d=o[o.length-1].end.getTime();if(n>=d)return s;const l=o[0].start.getTime();if(h<=l)return s;let y=n,p=0,S=0;const L=[],w=[];for(;p<x;){for(;S<o.length&&o[S].end.getTime()<=y;)S++;if(S<o.length){const v=o[S],O=v.start.getTime(),j=v.end.getTime();if(y<O){const f=O-y,_=Math.min(f,x-p);if(L.push({start:new Date(y),end:new Date(y+_),duration:Math.ceil(_/Ke)}),p+=_,y+=_,p>=x)break;w.push({start:new Date(O),end:new Date(j)}),y=j,S++}else w.push({start:new Date(y),end:new Date(j)}),y=j,S++}else{const v=x-p;L.push({start:new Date(y),end:new Date(y+v),duration:Math.ceil(v/Ke)}),p=x}}if(w.length===0)return s;const E=L.length>0?L[L.length-1].end:s.end;return{...s,end:E,duration:Math.max(Math.ceil((E.getTime()-n)/Ke),0),segments:L,onHoldPeriods:w}})},Nr=e=>[{name:"index",label:"",width:40,align:"center"},{name:"text",label:e?.columnLabels?.name||"Name",width:250,align:"left",resize:!0},{name:"predecessors",label:e?.columnLabels?.dependsOn||"Depends on",width:120,align:"left"},{name:"duration",label:e?.columnLabels?.duration||"Duration",width:110,align:"left"},{name:"start",label:e?.columnLabels?.start||"Start",width:130,align:"left"}],kr=[{unit:"month",step:1,format:"MMM"},{unit:"day",step:1,format:"D"}],Or={showTaskName:!0,showPlannedDates:!0,showActualDates:!0,showStatus:!0,showDependencyRule:!0,showProgress:!0,showOwner:!0,plannedLabel:"Planned",actualLabel:"Actual",statusLabel:"Status",dependencyRuleLabel:"Dependency Rule",progressLabel:"Progress",ownerLabel:"Owner",dateFormat:"MMM D, YYYY",dependencySeparator:" | ",emptyStatusText:"Not set",emptyOwnerText:"Not assigned",emptyDependencyRuleText:"No dependency rule"},$r={headerTitle:"Iris Gantt",showHeader:!0,showAddTaskButton:!0,showBaselineButton:!1,showZoomButtons:!0,showExportButtons:!0,showFilterSearch:!0,addTaskButtonText:"New Task",baselineButtonText:"Set Baseline",baselineButtonTextActive:"Baselines",zoomOutTooltip:"Zoom Out",zoomInTooltip:"Zoom In",resetZoomTooltip:"Reset Zoom",exportCSVTooltip:"Export to CSV",exportExcelTooltip:"Export to Excel",exportJSONTooltip:"Export to JSON",exportPDFTooltip:"Export to PDF",hideBaselinesTooltip:"Hide Baselines",showBaselinesTooltip:"Show Baselines",taskCreatorTitle:"Create New Task",taskCreatorOkText:"Create Task",taskCreatorCancelText:"Cancel",taskNameLabel:"Task Name",taskNamePlaceholder:"Enter task name",typeLabel:"Type",priorityLabel:"Priority",startDateLabel:"Start Date",durationLabel:"Duration (days)",colorLabel:"Color",progressLabel:"Progress (%)",ownerLabel:"Owner",ownerPlaceholder:"Assign to...",detailsLabel:"Details",detailsPlaceholder:"Add task description...",taskTypeOptions:{task:"Task",milestone:"Milestone",project:"Project"},priorityOptions:{low:"Low",medium:"Medium",high:"High"},taskEditorTitle:"Edit Task",taskEditorSaveText:"Save Changes",taskEditorCancelText:"Cancel",taskEditorDeleteText:"Delete",deleteConfirmTitle:"Delete Task",deleteConfirmContent:"This action cannot be undone.",deleteConfirmOkText:"Yes, Delete",deleteConfirmCancelText:"No",searchPlaceholder:"Search tasks...",allOwnersText:"All Owners",allStatusText:"All Status",allPriorityText:"All Priority",clearFiltersText:"Clear",statusOptions:{all:"All Status",notStarted:"Not Started",inProgress:"In Progress",completed:"Completed"},priorityFilterOptions:{all:"All Priority",low:"Low",medium:"Medium",high:"High"},columnLabels:{name:"Name",dependsOn:"Depends on",duration:"Duration",start:"Start"},taskNameRequired:"Please enter task name"},Cr=({tasks:e=[],links:a=[],config:o={},uiConfig:s={},styleConfig:n={},iconConfig:h={},taskTooltipConfig:x={},onHoldPeriods:d,on_hold_periods:l,onTaskUpdate:y,onTaskDragUpdate:p,onTaskCreate:S,onTaskDelete:L,onLinkCreate:w,onLinkDelete:E,baselines:v})=>{const O={...$r,...s},j={...Or,...x},f=b.useMemo(()=>{const u={};return n.primary&&(u["--wx-gantt-primary"]=n.primary),n.primarySelected&&(u["--wx-gantt-primary-selected"]=n.primarySelected),n.success&&(u["--wx-gantt-success"]=n.success),n.warning&&(u["--wx-gantt-warning"]=n.warning),n.danger&&(u["--wx-gantt-danger"]=n.danger),n.background&&(u["--wx-gantt-background"]=n.background),n.backgroundAlt&&(u["--wx-gantt-background-alt"]=n.backgroundAlt),n.backgroundHover&&(u["--wx-gantt-background-hover"]=n.backgroundHover),n.selectColor&&(u["--wx-gantt-select-color"]=n.selectColor),n.taskColor&&(u["--wx-gantt-task-color"]=n.taskColor),n.taskFillColor&&(u["--wx-gantt-task-fill-color"]=n.taskFillColor),n.projectColor&&(u["--wx-gantt-project-color"]=n.projectColor),n.milestoneColor&&(u["--wx-gantt-milestone-color"]=n.milestoneColor),n.fontColor&&(u["--wx-gantt-font-color"]=n.fontColor),n.fontColorAlt&&(u["--wx-gantt-font-color-alt"]=n.fontColorAlt),n.iconColor&&(u["--wx-gantt-icon-color"]=n.iconColor),n.borderColor&&(u["--wx-gantt-border-color"]=n.borderColor),n.fontFamily&&(u["--wx-gantt-font-family"]=n.fontFamily),n.fontMono&&(u["--wx-gantt-font-mono"]=n.fontMono),n.fontSize&&(u["--wx-gantt-font-size"]=n.fontSize),n.fontWeight&&(u["--wx-gantt-font-weight"]=String(n.fontWeight)),n.lineHeight&&(u["--wx-gantt-line-height"]=String(n.lineHeight)),n.spacingXS&&(u["--gantt-spacing-xs"]=n.spacingXS),n.spacingSM&&(u["--gantt-spacing-sm"]=n.spacingSM),n.spacingMD&&(u["--gantt-spacing-md"]=n.spacingMD),n.spacingLG&&(u["--gantt-spacing-lg"]=n.spacingLG),n.customCSSVariables&&Object.entries(n.customCSSVariables).forEach(([r,i])=>{u[r.startsWith("--")?r:`--${r}`]=i}),u},[n]),_=b.useMemo(()=>{const u=d??l;if(!u||u.length===0)return[];const r=new Date;return u.map(i=>({start:Me(i.start,r),end:Me(i.end,r)})).filter(i=>i.end.getTime()>i.start.getTime())},[d,l]),U=b.useMemo(()=>{const u=Fr(e);return Pr(u,_)},[e,_]),H=Array.isArray(a)?a:[],{tasks:C,links:V,setTasks:F,setLinks:G,undo:W,redo:D,updateTask:z,createTask:J,deleteTask:re,saveState:Q}=Vt(U,H),[K,de]=b.useState(C),[B,pe]=b.useState(null),[he,ge]=b.useState(null),[oe,ie]=b.useState(!1),[ne,xe]=b.useState(void 0),[ce,be]=b.useState(void 0),[N,c]=b.useState(!1),[T,$]=b.useState(null),[P,le]=b.useState(null),[Y,q]=b.useState(null),[ae,Te]=b.useState(null),[ue,ve]=b.useState(null),[Be,Ze]=b.useState(1),[Le,He]=b.useState(()=>v&&v.size>0?v:U.length>0?Ut(U):new Map);b.useEffect(()=>{v&&v.size>0&&He(v)},[v]);const[ct]=b.useState(o.theme||"light"),[Qe,ut]=b.useState({searchText:"",status:"all",priority:"all",owner:""}),et=b.useRef(null),tt=b.useRef(null),pt=b.useRef(null),rt=b.useRef(null),Ce=b.useRef(null),ht=b.useRef(null),Ee={columns:o.columns||Nr(s),scales:kr,readonly:!1,editable:!0,taskHeight:28,rowHeight:48,scaleHeight:28,columnWidth:80,minColumnWidth:60,autoSchedule:!1,criticalPath:!1,weekends:!0,holidays:[],theme:ct,locale:"en",showTodayLine:o.showTodayLine!==!1,todayLineColor:o.todayLineColor||"#ff4d4f",todayLineLabel:o.todayLineLabel!==void 0?o.todayLineLabel:"Today",todayLineWidth:o.todayLineWidth||1,todayLineStyle:o.todayLineStyle||"solid",todayLineOpacity:o.todayLineOpacity!==void 0?o.todayLineOpacity:1,todayLineLabelStyle:o.todayLineLabelStyle,showTodayLineMarker:o.showTodayLineMarker!==!1,todayLineMarkerSize:o.todayLineMarkerSize||8,todayLineMarkerStyle:o.todayLineMarkerStyle||"triangle",showProjectStartLine:o.showProjectStartLine!==!1,projectStartDate:o.projectStartDate,projectStartLineColor:o.projectStartLineColor||"#40a9ff",projectStartLineLabel:o.projectStartLineLabel!==void 0?o.projectStartLineLabel:"Start Project",projectStartLineWidth:o.projectStartLineWidth||1,projectStartLineStyle:o.projectStartLineStyle||"solid",projectStartLineOpacity:o.projectStartLineOpacity!==void 0?o.projectStartLineOpacity:1,projectStartLineLabelStyle:o.projectStartLineLabelStyle,showProjectStartLineMarker:o.showProjectStartLineMarker!==!1,projectStartLineMarkerSize:o.projectStartLineMarkerSize||8,projectStartLineMarkerStyle:o.projectStartLineMarkerStyle||"triangle",...o,baselines:o.baselines!==!1};b.useEffect(()=>{const u=Zt(C,Qe);de((i=>{const m=[],M=k=>{if(!k)return!1;const I=i.find(A=>A.id===k);return I&&!I.open&&I.type==="project"?!0:M(I?.parent)};return i.forEach(k=>{M(k.parent)||m.push(k)}),m})(u))},[C,Qe]);const Dt=b.useMemo(()=>{if(!C||!Array.isArray(C))return[];try{return Array.from(new Set(C.map(u=>u?.owner).filter(Boolean)))}catch(u){return console.warn("Error extracting owners:",u),[]}},[C]),Mt=(()=>{const u=K.length>0?K:C;if(u.length===0){const k=new Date;return{start:_e(ye(k,-30,"day")),end:_e(ye(k,60,"day"))}}const r=u.map(k=>k.start.getTime()),i=u.map(k=>k.end.getTime()),m=new Date(Math.min(...r)),M=new Date(Math.max(...i));return{start:_e(ye(m,-7,"day")),end:_e(M)}})(),Et=u=>{pe(u)},nt=(u,r)=>{if(Ee.readonly)return;u.preventDefault();const i=C.find(m=>m.id===r);i&&ve({x:u.clientX,y:u.clientY,task:i})},mt=()=>{if(!ue?.task)return;const u=ue.task,r={...u,id:`task-${Date.now()}`,text:`${u.text} (Copy)`,start:ye(u.start,7,"day"),end:ye(u.end,7,"day")};J(r),S&&S(r)},Fe=u=>{if(!ue?.task)return;const r={...ue.task,type:u};z(r),y&&y(r)},Ae=b.useCallback((u,r)=>{let i=[];return r.filter(M=>M.parent===u).forEach(M=>{i.push(M.id),i=[...i,...Ae(M.id,r)]}),i},[]),Ve=(u,r)=>(u??null)===(r??null),ft=(u,r,i,m)=>{if(!Ee.readonly)if(m==="reorder"){const M=K.findIndex(I=>I.id===u),k=Ae(u,C);q({id:u,initialIndex:M,currentX:r,currentY:i,descendantIds:k}),document.body.classList.add("gantt-dragging")}else le(u)},Lt=()=>{if(Y&&ae){const u=C.find(i=>i.id===Y.id),r=C.find(i=>i.id===ae.taskId);if(u&&r&&u.id!==r.id){const i=[u.id,...Y.descendantIds];if(!i.includes(r.id)){const m=[...C],M=(ae.position==="inside"?r.id:r.parent)??void 0,k=m.findIndex(Z=>Z.id===u.id);k!==-1&&(m[k]={...m[k],parent:M});const I=m.filter(Z=>i.includes(Z.id)),A=m.filter(Z=>!i.includes(Z.id));let R=A.findIndex(Z=>Z.id===r.id);if(ae.position==="inside"){const Z=[r.id,...Ae(r.id,A)],it=Z[Z.length-1];R=A.findIndex(Ot=>Ot.id===it)+1}else if(ae.position==="below"){const Z=Ae(r.id,A);Z.length>0?R=A.findIndex(it=>it.id===Z[Z.length-1])+1:R++}R<0&&(R=A.length);const me={tasks:[...C],links:[...V]};A.splice(R,0,...I),F(A),Q("task_update",me,{tasks:A,links:V});const ee=C.filter(Z=>Ve(Z.parent,u.parent)).findIndex(Z=>Z.id===u.id)+1,ke=A.filter(Z=>Ve(Z.parent,M)).findIndex(Z=>Z.id===u.id)+1,Pe={currentSequenceId:ee,targetSequenceId:ke,targetStageId:M??null},Se=A.find(Z=>Z.id===u.id);if(Se){const Z={...Se,sequence_id:ke,stage_id:M??null};y&&y(Z,Pe),p&&p({task:Z,previousTask:u,dragType:"reorder",reorderMeta:Pe})}}}}le(null),q(null),Te(null),document.body.classList.remove("gantt-dragging")},Xe=b.useRef(null),Ft=b.useCallback(u=>{if(Y){const{clientX:r,clientY:i}=u;Xe.current&&cancelAnimationFrame(Xe.current),Xe.current=requestAnimationFrame(()=>{const m=Ee.rowHeight||48,M=tt.current?.querySelector(".gantt-grid-body");if(!M||K.length===0){Te(null);return}const k=M.getBoundingClientRect(),I=i-k.top+M.scrollTop;let A=Math.floor(I/m);A=Math.max(0,Math.min(A,K.length-1));const R=K[A];if(R){if(R.id===Y.id||Y.descendantIds.includes(R.id)){Te(null),q(je=>je?{...je,currentX:r,currentY:i}:null);return}const se=I-A*m;let ee="above";R.type!=="milestone"?se<m*.3?ee="above":se>m*.7?ee="below":ee="inside":ee=se<m/2?"above":"below",Te({taskId:R.id,position:ee})}q(me=>me?{...me,currentX:r,currentY:i}:null)})}},[Y,K,Ee.rowHeight]),ot=()=>{Y&&Lt()},gt=(u,r)=>{const i={...u,id:`task-${Date.now()}`,parent:r};J(i);const m={taskId:i.id,start:new Date(i.start),end:new Date(i.end)};He(M=>{const k=new Map(M);return k.set(i.id,m),k}),S&&S(i)},Ue=u=>{z(u),y&&y(u)},xt=u=>{re(u),He(r=>{const i=new Map(r);return i.delete(u),i}),L&&L(u)},at=(u,r,i,m)=>{const M={id:`link-${Date.now()}`,source:u,target:r,type:i,lag:m};G([...V,M]),w&&w(M)},st=u=>{const r=V.filter(i=>i.id!==u);G(r),E&&E(u)};b.useEffect(()=>{const u=new Map(Le);let r=!1;C.forEach(m=>{Le.has(m.id)||(u.set(m.id,{taskId:m.id,start:new Date(m.start),end:new Date(m.end)}),r=!0)});const i=new Set(C.map(m=>m.id));Le.forEach((m,M)=>{i.has(M)||(u.delete(M),r=!0)}),r&&He(u)},[C]),b.useEffect(()=>{const u=r=>{(r.ctrlKey||r.metaKey)&&(r.key==="z"&&!r.shiftKey?(r.preventDefault(),W()):(r.key==="y"||r.key==="z"&&r.shiftKey)&&(r.preventDefault(),D()))};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[W,D]),b.useEffect(()=>{const u=tt.current?.querySelector(".gantt-grid-body"),r=et.current?.querySelector(".gantt-timeline-body");if(!u||!r)return;const i=()=>{Ce.current!=="timeline"&&(Ce.current="grid",r.scrollTop=u.scrollTop,requestAnimationFrame(()=>{Ce.current=null}))},m=()=>{Ce.current!=="grid"&&(Ce.current="timeline",u.scrollTop=r.scrollTop,requestAnimationFrame(()=>{Ce.current=null}))};return u.addEventListener("scroll",i,{passive:!0}),r.addEventListener("scroll",m,{passive:!0}),()=>{u.removeEventListener("scroll",i),r.removeEventListener("scroll",m),ht.current&&clearTimeout(ht.current)}},[K]);const Pt={height:o.containerHeight||"100%",minHeight:o.containerMinHeight||"400px"},Nt={"--gantt-row-height":`${Ee.rowHeight||48}px`},kt=o.gridWidth?{"--gantt-grid-width":o.gridWidth}:{};return t.jsxs("div",{className:`gantt-page-wrapper theme-${ct}`,style:{...Pt,...f},children:[O.showHeader&&t.jsx("div",{className:"gantt-page-header",children:t.jsx("div",{className:"gantt-page-header-left",children:t.jsx("h1",{className:"gantt-page-title",children:O.headerTitle})})}),t.jsxs("div",{className:`gantt-container theme-${Ee.theme}`,ref:rt,style:{...kt,...Nt},children:[t.jsx(zt,{zoomLevel:Be,setZoomLevel:Ze,onExport:u=>{u==="csv"&&qt(C),u==="excel"&&Gt(C),u==="json"&&Jt(C,V),u==="pdf"&&Kt(C)},onFilterChange:u=>ut(u),owners:Dt||[],onAddTask:u=>{if(u){const r=C.find(i=>i.id===u);xe(u),be(r?.text)}else xe(void 0),be(void 0);ie(!0)},uiConfig:O,iconConfig:h,styleConfig:n}),t.jsxs("div",{className:"gantt-layout",ref:pt,onMouseMove:Ft,onMouseUp:ot,onMouseLeave:ot,children:[t.jsx(St,{ref:tt,tasks:K,columns:Ee.columns||[],selectedTask:B,onTaskClick:Et,onTaskContextMenu:nt,onTaskUpdate:Ue,onTaskDragStart:ft,onAddTask:u=>{if(u){const r=C.find(i=>i.id===u);xe(u),be(r?.text)}else xe(void 0),be(void 0);ie(!0)},onAddDependency:at,onRemoveDependency:st,onDependencyClick:u=>{const r=C.find(i=>i.id===u);r&&($(r),c(!0))},links:V,allTasks:C,dropIndicator:ae,reorderTask:Y,iconConfig:h,styleConfig:n}),t.jsx(jt,{ref:et,tasks:K,links:V,range:Mt,scales:Ee.scales,config:Ee,selectedTask:B,draggedTask:P,onTaskClick:()=>{},onTaskDragStart:()=>{},onTaskDragEnd:()=>{},onTaskUpdate:(u,r,i)=>{const m=C.find(I=>I.id===u);if(!m)return;const M={...m},k={...m,...r};Ue(k),i&&p&&p({task:k,previousTask:M,dragType:i.dragType})},zoomLevel:Be,baselines:Le,taskTooltipConfig:j})]}),oe&&t.jsx(Yt,{onCreateTask:gt,onClose:()=>{ie(!1),xe(void 0),be(void 0)},uiConfig:O,parentId:ne,parentTaskName:ce,styleConfig:n}),he&&t.jsx(Wt,{task:he,onUpdate:Ue,onDelete:xt,onClose:()=>ge(null),uiConfig:O,styleConfig:n}),N&&T&&t.jsx(Ht,{task:T,allTasks:C,links:V,onAddDependency:at,onRemoveDependency:st,onTaskUpdate:Ue,onClose:()=>{c(!1),$(null)},styleConfig:n}),ue&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"gantt-context-menu-overlay",onClick:()=>ve(null),onContextMenu:u=>{u.preventDefault(),ve(null)}}),t.jsx(xr,{x:ue.x,y:ue.y,task:ue.task,onEdit:()=>{ue.task&&ge(ue.task)},onDelete:()=>{ue.task&&xt(ue.task.id)},onCopy:mt,onDependencies:()=>{ue.task&&($(ue.task),c(!0))},onConvertToMilestone:()=>Fe("milestone"),onConvertToTask:()=>Fe("task"),onConvertToProject:()=>Fe("project"),onClose:()=>ve(null),onAutoSchedule:()=>{const u=Xt(C,V,{mode:"forward"});F(u),ve(null)},iconConfig:h,styleConfig:n})]}),Y&&(()=>{const u=C.find(R=>R.id===Y.id);if(!u)return null;const r=Number.isFinite(Y.currentX)?Y.currentX:0,i=Number.isFinite(Y.currentY)?Y.currentY:0,m=Ee.rowHeight||48,k=rt.current?.getBoundingClientRect(),I=k?r-k.left+12:r+12,A=k?i-k.top+12:i+12;return t.jsxs("div",{className:"gantt-drag-preview",style:{height:m,top:A,left:I,position:"absolute",pointerEvents:"none",zIndex:9999,maxWidth:"420px"},children:[t.jsx("span",{className:"gantt-drag-preview-name",title:u.text,children:u.text}),Y.descendantIds.length>0&&t.jsxs("span",{className:"gantt-drag-preview-count",children:["+",Y.descendantIds.length]})]})})()]})]})},Ar=Object.freeze(Object.defineProperty({__proto__:null,calculateCriticalPath:(e,a)=>{const o=new Set,s=new Map,n=new Map,h=new Map;e.forEach(w=>{n.set(w.id,[]),h.set(w.id,[])}),a.forEach(w=>{w.type==="e2s"&&(n.get(w.source)?.push(w.target),h.get(w.target)?.push(w.source))});const x=new Map,d=new Map,l=(w,E=new Set)=>{if(E.has(w))return;E.add(w);const v=e.find(j=>j.id===w);if(!v)return;const O=h.get(w)||[];if(O.length===0)x.set(w,0),d.set(w,v.duration);else{let j=0;O.forEach(f=>{l(f,E);const _=d.get(f)||0;j=Math.max(j,_)}),x.set(w,j),d.set(w,j+v.duration)}};e.forEach(w=>l(w.id));const y=new Map,p=new Map,S=Math.max(...Array.from(d.values())),L=(w,E=new Set)=>{if(E.has(w))return;E.add(w);const v=e.find(j=>j.id===w);if(!v)return;const O=n.get(w)||[];if(O.length===0)p.set(w,S),y.set(w,S-v.duration);else{let j=1/0;O.forEach(f=>{L(f,E);const _=y.get(f)||0;j=Math.min(j,_)}),p.set(w,j),y.set(w,j-v.duration)}};return e.forEach(w=>L(w.id)),e.forEach(w=>{const E=x.get(w.id)||0,O=(y.get(w.id)||0)-E;s.set(w.id,O),Math.abs(O)<.01&&o.add(w.id)}),{criticalTasks:o,taskFloats:s,projectDuration:S}},getTaskFloat:(e,a)=>a.taskFloats.get(e)||0,isCriticalTask:(e,a)=>a.criticalTasks.has(e)},Symbol.toStringTag,{value:"Module"}));X.AutoScheduler=br,X.Chart=jt,X.CriticalPath=Ar,X.DependencyEditor=Ht,X.ExportUtils=jr,X.FilterSearch=It,X.Gantt=Cr,X.Grid=St,X.TaskBar=Bt,X.TaskCreator=Yt,X.TaskEditor=Wt,X.Timeline=vt,X.Toolbar=zt,X.addToDate=ye,X.applyFilters=Zt,X.calculateDuration=or,X.createBaseline=Ut,X.formatDate=we,X.getDaysBetween=Ie,X.getEndOfDay=nr,X.getHoursBetween=Rt,X.getStartOfDay=_e,X.isHoliday=wt,X.isWeekend=yt,X.useUndoRedo=Vt,Object.defineProperty(X,Symbol.toStringTag,{value:"Module"})}));
|
|
31
|
+
`.trim();dt(a,"gantt-report.txt","text/plain"),alert("PDF export is a simplified text version. For full PDF with charts, a PDF library would be needed.")},Sr=(e,a,o="png")=>{if(!document.getElementById(e)){alert("Could not find Gantt chart element to export");return}if(o==="svg"){alert("SVG export requires additional library. Use PNG or implement with dom-to-svg.");return}alert("Image export requires html2canvas library. Install with: npm install html2canvas")},dt=(e,a,o)=>{const s=new Blob([e],{type:o}),n=URL.createObjectURL(s);vr(n,a),URL.revokeObjectURL(n)},vr=(e,a)=>{const o=document.createElement("a");o.href=e,o.download=a,document.body.appendChild(o),o.click(),document.body.removeChild(o)},jr=Object.freeze(Object.defineProperty({__proto__:null,exportToCSV:qt,exportToExcel:Gt,exportToImage:Sr,exportToJSON:Jt,exportToPDF:Kt,importFromJSON:e=>new Promise((a,o)=>{const s=new FileReader;s.onload=n=>{try{const h=n.target?.result,x=JSON.parse(h),d=x.tasks.map(l=>({...l,start:new Date(l.start),end:new Date(l.end)}));a({tasks:d,links:x.links||[]})}catch{o(new Error("Invalid JSON file"))}},s.onerror=()=>o(new Error("Failed to read file")),s.readAsText(e)})},Symbol.toStringTag,{value:"Module"})),Zt=(e,a)=>e.filter(o=>{if(a.searchText){const s=a.searchText.toLowerCase(),n=o.text.toLowerCase().includes(s),h=o.owner?.toLowerCase().includes(s),x=o.details?.toLowerCase().includes(s);if(!n&&!h&&!x)return!1}if(a.status!=="all"&&(o.progress===0?"not-started":o.progress===100?"completed":"in-progress")!==a.status||a.priority!=="all"&&o.priority!==a.priority||a.owner&&o.owner!==a.owner)return!1;if(a.dateRange){const s=o.start.getTime(),n=a.dateRange.start.getTime(),h=a.dateRange.end.getTime();if(s<n||s>h)return!1}return!0}),Ke=1440*60*1e3,Me=(e,a)=>{if(e instanceof Date){const o=new Date(e.getTime());return Number.isNaN(o.getTime())?new Date(a.getTime()):o}if(typeof e=="string"||typeof e=="number"){const o=new Date(e);if(!Number.isNaN(o.getTime()))return o}return new Date(a.getTime())},Tt=(e,a)=>{if(e==null||e==="")return a;const o=Number(e);return Number.isFinite(o)?o:a},Tr=e=>{if(Array.isArray(e)){const a=e.map(o=>String(o).trim()).filter(Boolean);return a.length>0?a:void 0}if(typeof e=="string"){const a=e.split(/[|,]/).map(o=>o.trim()).filter(Boolean);return a.length>0?a:void 0}},Dr=e=>{if(Array.isArray(e)){const a=e.map(o=>String(o).trim()).filter(Boolean);return a.length>0?a:void 0}if(typeof e=="string"){const a=e.split(/\r?\n|\|/).map(o=>o.trim()).filter(Boolean);return a.length>0?a:void 0}},Mr=(e,a,o)=>{if(!Array.isArray(e)||e.length===0)return;const s=a.getTime(),n=o.getTime();return e.map(h=>{const x=Me(h?.start,a),d=Me(h?.end,o),l=Math.max(x.getTime(),s),y=Math.min(d.getTime(),n);return{start:new Date(l),end:new Date(y)}}).filter(h=>h.end.getTime()>h.start.getTime())},Er=(e,a,o)=>{if(Array.isArray(e))return e.map(s=>{const n=Me(s?.start,a),h=Me(s?.end,o),x=h.getTime()<n.getTime()?n:h,d=Math.max(Math.ceil((x.getTime()-n.getTime())/Ke),0);return{start:n,end:x,duration:Tt(s?.duration,d)}}).filter(s=>s.end.getTime()>=s.start.getTime())},Lr=e=>{const a=new Date,o=Me(e.start??e.startDate??e.start_date??e.plannedStartDate,a),s=Me(e.end??e.endDate??e.end_date??e.plannedEndDate,o),n=s.getTime()<o.getTime()?o:s,h=Me(e.plannedStart??e.planned_start??e.planned_start_date,o),x=Me(e.plannedEnd??e.planned_end??e.planned_end_date,n),d=x.getTime()<h.getTime()?h:x,l=Me(e.actualStart??e.actual_start??e.actual_start_date,o),y=Me(e.actualEnd??e.actual_end??e.actual_end_date,n),p=y.getTime()<l.getTime()?l:y,S=Math.max(Math.ceil((n.getTime()-o.getTime())/Ke),0),L=Tr(e.dependencies??e.dependsOn??e.depends_on),w=Dr(e.dependencyRule??e.dependency_rule??e.dependencyRuleDescription??e.dependency_rule_description),E=Mr(e.onHoldPeriods??e.on_hold_periods,o,n);return{id:String(e.id),rawId:e.id,text:e.text||e.name||e.title||e.taskName||e.task_name||e.workGroupName||`Task ${String(e.id)}`,start:o,end:n,plannedStart:h,plannedEnd:d,actualStart:l,actualEnd:p,duration:Tt(e.duration,S),progress:Math.max(0,Math.min(100,Tt(e.progress??e.progressPercentage??e.progress_percentage,0))),type:e.type,parent:e.parent!==void 0&&e.parent!==null&&String(e.parent).length>0?String(e.parent):void 0,open:e.open,color:e.color,details:e.details,owner:e.owner||e.ownerName||e.owner_name,priority:e.priority,status:e.status??e.currentStatus??e.current_status,onHoldPeriods:E,dependencies:L,dependencyRule:w,segments:Er(e.segments,o,n),sequence_id:e.sequence_id,stage_id:e.stage_id,tooltipConfig:e.tooltipConfig}},Fr=e=>Array.isArray(e)?e.map(Lr):[],Pr=(e,a)=>{if(a.length===0)return e;const o=[...a].sort((s,n)=>s.start.getTime()-n.start.getTime());return e.map(s=>{if(s.onHoldPeriods&&s.onHoldPeriods.length>0||s.segments&&s.segments.length>0)return s;const n=s.start.getTime(),h=s.end.getTime(),x=h-n;if(x<=0){for(const v of o)if(n>=v.start.getTime()&&n<v.end.getTime())return{...s,start:new Date(v.end.getTime()),end:new Date(v.end.getTime())};return s}const d=o[o.length-1].end.getTime();if(n>=d)return s;const l=o[0].start.getTime();if(h<=l)return s;let y=n,p=0,S=0;const L=[],w=[];for(;p<x;){for(;S<o.length&&o[S].end.getTime()<=y;)S++;if(S<o.length){const v=o[S],O=v.start.getTime(),j=v.end.getTime();if(y<O){const f=O-y,_=Math.min(f,x-p);if(L.push({start:new Date(y),end:new Date(y+_),duration:Math.ceil(_/Ke)}),p+=_,y+=_,p>=x)break;w.push({start:new Date(O),end:new Date(j)}),y=j,S++}else w.push({start:new Date(y),end:new Date(j)}),y=j,S++}else{const v=x-p;L.push({start:new Date(y),end:new Date(y+v),duration:Math.ceil(v/Ke)}),p=x}}if(w.length===0)return s;const E=L.length>0?L[L.length-1].end:s.end;return{...s,end:E,duration:Math.max(Math.ceil((E.getTime()-n)/Ke),0),segments:L,onHoldPeriods:w}})},Nr=e=>[{name:"index",label:"",width:40,align:"center"},{name:"text",label:e?.columnLabels?.name||"Name",width:250,align:"left",resize:!0},{name:"predecessors",label:e?.columnLabels?.dependsOn||"Depends on",width:120,align:"left"},{name:"duration",label:e?.columnLabels?.duration||"Duration",width:110,align:"left"},{name:"start",label:e?.columnLabels?.start||"Start",width:130,align:"left"}],kr=[{unit:"month",step:1,format:"MMM"},{unit:"day",step:1,format:"D"}],Or={showTaskName:!0,showPlannedDates:!0,showActualDates:!0,showStatus:!0,showDependencyRule:!0,showProgress:!0,showOwner:!0,plannedLabel:"Planned",actualLabel:"Actual",statusLabel:"Status",dependencyRuleLabel:"Dependency Rule",progressLabel:"Progress",ownerLabel:"Owner",dateFormat:"MMM D, YYYY",dependencySeparator:" | ",emptyStatusText:"Not set",emptyOwnerText:"Not assigned",emptyDependencyRuleText:"No dependency rule"},$r={headerTitle:"Iris Gantt",showHeader:!0,showAddTaskButton:!0,showBaselineButton:!1,showZoomButtons:!0,showExportButtons:!0,showFilterSearch:!0,addTaskButtonText:"New Task",baselineButtonText:"Set Baseline",baselineButtonTextActive:"Baselines",zoomOutTooltip:"Zoom Out",zoomInTooltip:"Zoom In",resetZoomTooltip:"Reset Zoom",exportCSVTooltip:"Export to CSV",exportExcelTooltip:"Export to Excel",exportJSONTooltip:"Export to JSON",exportPDFTooltip:"Export to PDF",hideBaselinesTooltip:"Hide Baselines",showBaselinesTooltip:"Show Baselines",taskCreatorTitle:"Create New Task",taskCreatorOkText:"Create Task",taskCreatorCancelText:"Cancel",taskNameLabel:"Task Name",taskNamePlaceholder:"Enter task name",typeLabel:"Type",priorityLabel:"Priority",startDateLabel:"Start Date",durationLabel:"Duration (days)",colorLabel:"Color",progressLabel:"Progress (%)",ownerLabel:"Owner",ownerPlaceholder:"Assign to...",detailsLabel:"Details",detailsPlaceholder:"Add task description...",taskTypeOptions:{task:"Task",milestone:"Milestone",project:"Project"},priorityOptions:{low:"Low",medium:"Medium",high:"High"},taskEditorTitle:"Edit Task",taskEditorSaveText:"Save Changes",taskEditorCancelText:"Cancel",taskEditorDeleteText:"Delete",deleteConfirmTitle:"Delete Task",deleteConfirmContent:"This action cannot be undone.",deleteConfirmOkText:"Yes, Delete",deleteConfirmCancelText:"No",searchPlaceholder:"Search tasks...",allOwnersText:"All Owners",allStatusText:"All Status",allPriorityText:"All Priority",clearFiltersText:"Clear",statusOptions:{all:"All Status",notStarted:"Not Started",inProgress:"In Progress",completed:"Completed"},priorityFilterOptions:{all:"All Priority",low:"Low",medium:"Medium",high:"High"},columnLabels:{name:"Name",dependsOn:"Depends on",duration:"Duration",start:"Start"},taskNameRequired:"Please enter task name"},Cr=({tasks:e=[],links:a=[],config:o={},uiConfig:s={},styleConfig:n={},iconConfig:h={},taskTooltipConfig:x={},onHoldPeriods:d,on_hold_periods:l,onTaskUpdate:y,onTaskDragUpdate:p,onTaskCreate:S,onTaskDelete:L,onLinkCreate:w,onLinkDelete:E,baselines:v})=>{const O={...$r,...s},j={...Or,...x},f=b.useMemo(()=>{const u={};return n.primary&&(u["--wx-gantt-primary"]=n.primary),n.primarySelected&&(u["--wx-gantt-primary-selected"]=n.primarySelected),n.success&&(u["--wx-gantt-success"]=n.success),n.warning&&(u["--wx-gantt-warning"]=n.warning),n.danger&&(u["--wx-gantt-danger"]=n.danger),n.background&&(u["--wx-gantt-background"]=n.background),n.backgroundAlt&&(u["--wx-gantt-background-alt"]=n.backgroundAlt),n.backgroundHover&&(u["--wx-gantt-background-hover"]=n.backgroundHover),n.selectColor&&(u["--wx-gantt-select-color"]=n.selectColor),n.taskColor&&(u["--wx-gantt-task-color"]=n.taskColor),n.taskFillColor&&(u["--wx-gantt-task-fill-color"]=n.taskFillColor),n.projectColor&&(u["--wx-gantt-project-color"]=n.projectColor),n.milestoneColor&&(u["--wx-gantt-milestone-color"]=n.milestoneColor),n.fontColor&&(u["--wx-gantt-font-color"]=n.fontColor),n.fontColorAlt&&(u["--wx-gantt-font-color-alt"]=n.fontColorAlt),n.iconColor&&(u["--wx-gantt-icon-color"]=n.iconColor),n.borderColor&&(u["--wx-gantt-border-color"]=n.borderColor),n.fontFamily&&(u["--wx-gantt-font-family"]=n.fontFamily),n.fontMono&&(u["--wx-gantt-font-mono"]=n.fontMono),n.fontSize&&(u["--wx-gantt-font-size"]=n.fontSize),n.fontWeight&&(u["--wx-gantt-font-weight"]=String(n.fontWeight)),n.lineHeight&&(u["--wx-gantt-line-height"]=String(n.lineHeight)),n.spacingXS&&(u["--gantt-spacing-xs"]=n.spacingXS),n.spacingSM&&(u["--gantt-spacing-sm"]=n.spacingSM),n.spacingMD&&(u["--gantt-spacing-md"]=n.spacingMD),n.spacingLG&&(u["--gantt-spacing-lg"]=n.spacingLG),n.customCSSVariables&&Object.entries(n.customCSSVariables).forEach(([r,i])=>{u[r.startsWith("--")?r:`--${r}`]=i}),u},[n]),_=b.useMemo(()=>{const u=d??l;if(!u||u.length===0)return[];const r=new Date;return u.map(i=>({start:Me(i.start,r),end:Me(i.end,r)})).filter(i=>i.end.getTime()>i.start.getTime())},[d,l]),U=b.useMemo(()=>{const u=Fr(e);return Pr(u,_)},[e,_]),H=Array.isArray(a)?a:[],{tasks:C,links:V,setTasks:F,setLinks:G,undo:W,redo:D,updateTask:z,createTask:J,deleteTask:re,saveState:Q}=Vt(U,H),[K,de]=b.useState(C),[B,pe]=b.useState(null),[he,ge]=b.useState(null),[oe,ie]=b.useState(!1),[ne,xe]=b.useState(void 0),[ce,be]=b.useState(void 0),[N,c]=b.useState(!1),[T,$]=b.useState(null),[P,le]=b.useState(null),[Y,q]=b.useState(null),[ae,Te]=b.useState(null),[ue,ve]=b.useState(null),[Be,Ze]=b.useState(1),[Le,He]=b.useState(()=>v&&v.size>0?v:U.length>0?Ut(U):new Map);b.useEffect(()=>{v&&v.size>0&&He(v)},[v]);const[ct]=b.useState(o.theme||"light"),[Qe,ut]=b.useState({searchText:"",status:"all",priority:"all",owner:""}),et=b.useRef(null),tt=b.useRef(null),pt=b.useRef(null),rt=b.useRef(null),Ce=b.useRef(null),ht=b.useRef(null),Ee={columns:o.columns||Nr(s),scales:kr,readonly:!1,editable:!0,taskHeight:28,rowHeight:48,scaleHeight:28,columnWidth:80,minColumnWidth:60,autoSchedule:!1,criticalPath:!1,weekends:!0,holidays:[],theme:ct,locale:"en",showTodayLine:o.showTodayLine!==!1,todayLineColor:o.todayLineColor||"#ff4d4f",todayLineLabel:o.todayLineLabel!==void 0?o.todayLineLabel:"Today",todayLineWidth:o.todayLineWidth||1,todayLineStyle:o.todayLineStyle||"solid",todayLineOpacity:o.todayLineOpacity!==void 0?o.todayLineOpacity:1,todayLineLabelStyle:o.todayLineLabelStyle,showTodayLineMarker:o.showTodayLineMarker!==!1,todayLineMarkerSize:o.todayLineMarkerSize||8,todayLineMarkerStyle:o.todayLineMarkerStyle||"triangle",showProjectStartLine:o.showProjectStartLine!==!1,projectStartDate:o.projectStartDate,projectStartLineColor:o.projectStartLineColor||"#40a9ff",projectStartLineLabel:o.projectStartLineLabel!==void 0?o.projectStartLineLabel:"Start Project",projectStartLineWidth:o.projectStartLineWidth||1,projectStartLineStyle:o.projectStartLineStyle||"solid",projectStartLineOpacity:o.projectStartLineOpacity!==void 0?o.projectStartLineOpacity:1,projectStartLineLabelStyle:o.projectStartLineLabelStyle,showProjectStartLineMarker:o.showProjectStartLineMarker!==!1,projectStartLineMarkerSize:o.projectStartLineMarkerSize||8,projectStartLineMarkerStyle:o.projectStartLineMarkerStyle||"triangle",...o,baselines:o.baselines!==!1};b.useEffect(()=>{const u=Zt(C,Qe);de((i=>{const m=[],M=k=>{if(!k)return!1;const I=i.find(A=>A.id===k);return I&&!I.open&&I.type==="project"?!0:M(I?.parent)};return i.forEach(k=>{M(k.parent)||m.push(k)}),m})(u))},[C,Qe]);const Dt=b.useMemo(()=>{if(!C||!Array.isArray(C))return[];try{return Array.from(new Set(C.map(u=>u?.owner).filter(Boolean)))}catch(u){return console.warn("Error extracting owners:",u),[]}},[C]),Mt=(()=>{const u=K.length>0?K:C;if(u.length===0){const k=new Date;return{start:_e(ye(k,-30,"day")),end:_e(ye(k,60,"day"))}}const r=u.map(k=>k.start.getTime()),i=u.map(k=>k.end.getTime()),m=new Date(Math.min(...r)),M=new Date(Math.max(...i));return{start:_e(ye(m,-7,"day")),end:_e(M)}})(),Et=u=>{pe(u)},nt=(u,r)=>{if(Ee.readonly)return;u.preventDefault();const i=C.find(m=>m.id===r);i&&ve({x:u.clientX,y:u.clientY,task:i})},mt=()=>{if(!ue?.task)return;const u=ue.task,r={...u,id:`task-${Date.now()}`,text:`${u.text} (Copy)`,start:ye(u.start,7,"day"),end:ye(u.end,7,"day")};J(r),S&&S(r)},Fe=u=>{if(!ue?.task)return;const r={...ue.task,type:u};z(r),y&&y(r)},Ae=b.useCallback((u,r)=>{let i=[];return r.filter(M=>M.parent===u).forEach(M=>{i.push(M.id),i=[...i,...Ae(M.id,r)]}),i},[]),Ve=(u,r)=>(u??null)===(r??null),ft=(u,r,i,m)=>{if(!Ee.readonly)if(m==="reorder"){const M=K.findIndex(I=>I.id===u),k=Ae(u,C);q({id:u,initialIndex:M,currentX:r,currentY:i,descendantIds:k}),document.body.classList.add("gantt-dragging")}else le(u)},Lt=()=>{if(Y&&ae){const u=C.find(i=>i.id===Y.id),r=C.find(i=>i.id===ae.taskId);if(u&&r&&u.id!==r.id){const i=[u.id,...Y.descendantIds];if(!i.includes(r.id)){const m=[...C],M=(ae.position==="inside"?r.id:r.parent)??void 0,k=m.findIndex(Z=>Z.id===u.id);k!==-1&&(m[k]={...m[k],parent:M});const I=m.filter(Z=>i.includes(Z.id)),A=m.filter(Z=>!i.includes(Z.id));let R=A.findIndex(Z=>Z.id===r.id);if(ae.position==="inside"){const Z=[r.id,...Ae(r.id,A)],it=Z[Z.length-1];R=A.findIndex(Ot=>Ot.id===it)+1}else if(ae.position==="below"){const Z=Ae(r.id,A);Z.length>0?R=A.findIndex(it=>it.id===Z[Z.length-1])+1:R++}R<0&&(R=A.length);const me={tasks:[...C],links:[...V]};A.splice(R,0,...I),F(A),Q("task_update",me,{tasks:A,links:V});const ee=C.filter(Z=>Ve(Z.parent,u.parent)).findIndex(Z=>Z.id===u.id)+1,ke=A.filter(Z=>Ve(Z.parent,M)).findIndex(Z=>Z.id===u.id)+1,Pe={currentSequenceId:ee,targetSequenceId:ke,targetStageId:M??null},Se=A.find(Z=>Z.id===u.id);if(Se){const Z={...Se,sequence_id:ke,stage_id:M??null};y&&y(Z,Pe),p&&p({task:Z,previousTask:u,dragType:"reorder",reorderMeta:Pe})}}}}le(null),q(null),Te(null),document.body.classList.remove("gantt-dragging")},Xe=b.useRef(null),Ft=b.useCallback(u=>{if(Y){const{clientX:r,clientY:i}=u;Xe.current&&cancelAnimationFrame(Xe.current),Xe.current=requestAnimationFrame(()=>{const m=Ee.rowHeight||48,M=tt.current?.querySelector(".gantt-grid-body");if(!M||K.length===0){Te(null);return}const k=M.getBoundingClientRect(),I=i-k.top+M.scrollTop;let A=Math.floor(I/m);A=Math.max(0,Math.min(A,K.length-1));const R=K[A];if(R){if(R.id===Y.id||Y.descendantIds.includes(R.id)){Te(null),q(je=>je?{...je,currentX:r,currentY:i}:null);return}const se=I-A*m;let ee="above";R.type!=="milestone"?se<m*.3?ee="above":se>m*.7?ee="below":ee="inside":ee=se<m/2?"above":"below",Te({taskId:R.id,position:ee})}q(me=>me?{...me,currentX:r,currentY:i}:null)})}},[Y,K,Ee.rowHeight]),ot=()=>{Y&&Lt()},gt=(u,r)=>{const i={...u,id:`task-${Date.now()}`,parent:r};J(i);const m={taskId:i.id,start:new Date(i.start),end:new Date(i.end)};He(M=>{const k=new Map(M);return k.set(i.id,m),k}),S&&S(i)},Ue=u=>{z(u),y&&y(u)},xt=u=>{re(u),He(r=>{const i=new Map(r);return i.delete(u),i}),L&&L(u)},at=(u,r,i,m)=>{const M={id:`link-${Date.now()}`,source:u,target:r,type:i,lag:m};G([...V,M]),w&&w(M)},st=u=>{const r=V.filter(i=>i.id!==u);G(r),E&&E(u)};b.useEffect(()=>{const u=new Map(Le);let r=!1;C.forEach(m=>{Le.has(m.id)||(u.set(m.id,{taskId:m.id,start:new Date(m.start),end:new Date(m.end)}),r=!0)});const i=new Set(C.map(m=>m.id));Le.forEach((m,M)=>{i.has(M)||(u.delete(M),r=!0)}),r&&He(u)},[C]),b.useEffect(()=>{const u=r=>{(r.ctrlKey||r.metaKey)&&(r.key==="z"&&!r.shiftKey?(r.preventDefault(),W()):(r.key==="y"||r.key==="z"&&r.shiftKey)&&(r.preventDefault(),D()))};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[W,D]),b.useEffect(()=>{const u=tt.current?.querySelector(".gantt-grid-body"),r=et.current?.querySelector(".gantt-timeline-body");if(!u||!r)return;const i=()=>{Ce.current!=="timeline"&&(Ce.current="grid",r.scrollTop=u.scrollTop,requestAnimationFrame(()=>{Ce.current=null}))},m=()=>{Ce.current!=="grid"&&(Ce.current="timeline",u.scrollTop=r.scrollTop,requestAnimationFrame(()=>{Ce.current=null}))};return u.addEventListener("scroll",i,{passive:!0}),r.addEventListener("scroll",m,{passive:!0}),()=>{u.removeEventListener("scroll",i),r.removeEventListener("scroll",m),ht.current&&clearTimeout(ht.current)}},[K]);const Pt={height:o.containerHeight||"100%",minHeight:o.containerMinHeight||"400px"},Nt={"--gantt-row-height":`${Ee.rowHeight||48}px`},kt=o.gridWidth?{"--gantt-grid-width":o.gridWidth}:{};return t.jsxs("div",{className:`gantt-page-wrapper theme-${ct}`,style:{...Pt,...f},children:[O.showHeader&&t.jsx("div",{className:"gantt-page-header",children:t.jsx("div",{className:"gantt-page-header-left",children:t.jsx("h1",{className:"gantt-page-title",children:O.headerTitle})})}),t.jsxs("div",{className:`gantt-container theme-${Ee.theme}`,ref:rt,style:{...kt,...Nt},children:[t.jsx(zt,{zoomLevel:Be,setZoomLevel:Ze,onExport:u=>{u==="csv"&&qt(C),u==="excel"&&Gt(C),u==="json"&&Jt(C,V),u==="pdf"&&Kt(C)},onFilterChange:u=>ut(u),owners:Dt||[],onAddTask:u=>{if(u){const r=C.find(i=>i.id===u);xe(u),be(r?.text)}else xe(void 0),be(void 0);ie(!0)},uiConfig:O,iconConfig:h,styleConfig:n}),t.jsxs("div",{className:"gantt-layout",ref:pt,onMouseMove:Ft,onMouseUp:ot,onMouseLeave:ot,children:[t.jsx(St,{ref:tt,tasks:K,columns:Ee.columns||[],selectedTask:B,onTaskClick:Et,onTaskContextMenu:nt,onTaskUpdate:Ue,onTaskDragStart:ft,onAddTask:u=>{if(u){const r=C.find(i=>i.id===u);xe(u),be(r?.text)}else xe(void 0),be(void 0);ie(!0)},onAddDependency:at,onRemoveDependency:st,onDependencyClick:u=>{const r=C.find(i=>i.id===u);r&&($(r),c(!0))},links:V,allTasks:C,dropIndicator:ae,reorderTask:Y,iconConfig:h,styleConfig:n}),t.jsx(jt,{ref:et,tasks:K,links:V,range:Mt,scales:Ee.scales,config:Ee,selectedTask:B,draggedTask:P,onTaskClick:()=>{},onTaskDragStart:()=>{},onTaskDragEnd:()=>{},onTaskUpdate:(u,r,i)=>{const m=C.find(I=>I.id===u);if(!m)return;const M={...m},k={...m,...r};Ue(k),i&&p&&p({task:k,previousTask:M,dragType:i.dragType})},zoomLevel:Be,baselines:Le,taskTooltipConfig:j})]}),oe&&t.jsx(Yt,{onCreateTask:gt,onClose:()=>{ie(!1),xe(void 0),be(void 0)},uiConfig:O,parentId:ne,parentTaskName:ce,styleConfig:n}),he&&t.jsx(Wt,{task:he,onUpdate:Ue,onDelete:xt,onClose:()=>ge(null),uiConfig:O,styleConfig:n}),N&&T&&t.jsx(Ht,{task:T,allTasks:C,links:V,onAddDependency:at,onRemoveDependency:st,onTaskUpdate:Ue,onClose:()=>{c(!1),$(null)},styleConfig:n}),ue&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"gantt-context-menu-overlay",onClick:()=>ve(null),onContextMenu:u=>{u.preventDefault(),ve(null)}}),t.jsx(xr,{x:ue.x,y:ue.y,task:ue.task,onEdit:()=>{ue.task&&ge(ue.task)},onDelete:()=>{ue.task&&xt(ue.task.id)},onCopy:mt,onDependencies:()=>{ue.task&&($(ue.task),c(!0))},onConvertToMilestone:()=>Fe("milestone"),onConvertToTask:()=>Fe("task"),onConvertToProject:()=>Fe("project"),onClose:()=>ve(null),onAutoSchedule:()=>{const u=Xt(C,V,{mode:"forward"});F(u),ve(null)},iconConfig:h,styleConfig:n})]}),Y&&(()=>{const u=C.find(R=>R.id===Y.id);if(!u)return null;const r=Number.isFinite(Y.currentX)?Y.currentX:0,i=Number.isFinite(Y.currentY)?Y.currentY:0,m=Ee.rowHeight||48,k=rt.current?.getBoundingClientRect(),I=k?r-k.left+12:r+12,A=k?i-k.top+12:i+12;return t.jsxs("div",{className:"gantt-drag-preview",style:{height:m,top:A,left:I,position:"absolute",pointerEvents:"none",zIndex:9999,maxWidth:"420px"},children:[t.jsx("span",{className:"gantt-drag-preview-name",title:u.text,children:u.text}),Y.descendantIds.length>0&&t.jsxs("span",{className:"gantt-drag-preview-count",children:["+",Y.descendantIds.length]})]})})()]})]})},Ar=Object.freeze(Object.defineProperty({__proto__:null,calculateCriticalPath:(e,a)=>{const o=new Set,s=new Map,n=new Map,h=new Map;e.forEach(w=>{n.set(w.id,[]),h.set(w.id,[])}),a.forEach(w=>{w.type==="e2s"&&(n.get(w.source)?.push(w.target),h.get(w.target)?.push(w.source))});const x=new Map,d=new Map,l=(w,E=new Set)=>{if(E.has(w))return;E.add(w);const v=e.find(j=>j.id===w);if(!v)return;const O=h.get(w)||[];if(O.length===0)x.set(w,0),d.set(w,v.duration);else{let j=0;O.forEach(f=>{l(f,E);const _=d.get(f)||0;j=Math.max(j,_)}),x.set(w,j),d.set(w,j+v.duration)}};e.forEach(w=>l(w.id));const y=new Map,p=new Map,S=Math.max(...Array.from(d.values())),L=(w,E=new Set)=>{if(E.has(w))return;E.add(w);const v=e.find(j=>j.id===w);if(!v)return;const O=n.get(w)||[];if(O.length===0)p.set(w,S),y.set(w,S-v.duration);else{let j=1/0;O.forEach(f=>{L(f,E);const _=y.get(f)||0;j=Math.min(j,_)}),p.set(w,j),y.set(w,j-v.duration)}};return e.forEach(w=>L(w.id)),e.forEach(w=>{const E=x.get(w.id)||0,O=(y.get(w.id)||0)-E;s.set(w.id,O),Math.abs(O)<.01&&o.add(w.id)}),{criticalTasks:o,taskFloats:s,projectDuration:S}},getTaskFloat:(e,a)=>a.taskFloats.get(e)||0,isCriticalTask:(e,a)=>a.criticalTasks.has(e)},Symbol.toStringTag,{value:"Module"}));X.AutoScheduler=br,X.Chart=jt,X.CriticalPath=Ar,X.DependencyEditor=Ht,X.ExportUtils=jr,X.FilterSearch=It,X.Gantt=Cr,X.Grid=St,X.TaskBar=Bt,X.TaskCreator=Yt,X.TaskEditor=Wt,X.Timeline=vt,X.Toolbar=zt,X.addToDate=ye,X.applyFilters=Zt,X.calculateDuration=or,X.createBaseline=Ut,X.formatDate=we,X.getDaysBetween=Ie,X.getEndOfDay=nr,X.getHoursBetween=Rt,X.getStartOfDay=_e,X.isHoliday=wt,X.isWeekend=yt,X.useUndoRedo=Vt,Object.defineProperty(X,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iris-gantt",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.7",
|
|
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",
|
|
@@ -127,4 +127,4 @@
|
|
|
127
127
|
"vite": "^7.2.4",
|
|
128
128
|
"vitest": "^4.0.17"
|
|
129
129
|
}
|
|
130
|
-
}
|
|
130
|
+
}
|