@progress/kendo-react-gantt 9.0.0-develop.2 → 9.0.0-develop.3
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/Gantt.mjs +88 -130
- package/README.md +24 -23
- package/cells/FilterCells/utils.mjs +4 -1
- package/components/BaseView.mjs +82 -72
- package/components/GanttTask.mjs +24 -11
- package/components/toolbar/AddButton.mjs +40 -38
- package/components/toolbar/Toolbar.mjs +1 -4
- package/components/toolbar/view-selector/ViewSelector.mjs +1 -4
- package/components/toolbar/view-selector/ViewSelectorItem.mjs +3 -6
- package/context/GanttContext.mjs +3 -1
- package/editors/FormDropDownList.mjs +11 -19
- package/editors/GanttEditor.js +1 -1
- package/editors/GanttEditor.mjs +56 -68
- package/editors/GanttEditorPredecessors.mjs +2 -13
- package/editors/GanttEditorSuccessors.mjs +3 -17
- package/editors/GanttForm.mjs +29 -16
- package/hooks/useDictionaryStore.mjs +10 -13
- package/hooks/useGanttTask.mjs +13 -15
- package/package-metadata.mjs +1 -1
- package/package.json +12 -12
- package/utils/data-operations.mjs +50 -19
- package/utils/index.mjs +22 -23
- package/views/GanttDayView.mjs +36 -28
- package/views/GanttMonthView.mjs +10 -20
- package/views/GanttWeekView.mjs +13 -19
- package/views/GanttYearView.mjs +11 -28
|
@@ -9,19 +9,16 @@
|
|
|
9
9
|
import * as t from "react";
|
|
10
10
|
var a = /* @__PURE__ */ ((e) => (e[e.add = 0] = "add", e[e.remove = 1] = "remove", e))(a || {});
|
|
11
11
|
const c = () => {
|
|
12
|
-
const e = t.useRef({}), s = t.useCallback(
|
|
13
|
-
(r)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
[]
|
|
24
|
-
);
|
|
12
|
+
const e = t.useRef({}), s = t.useCallback((r) => {
|
|
13
|
+
switch (r.type) {
|
|
14
|
+
case 0:
|
|
15
|
+
e.current[r.id] = r.itemRef;
|
|
16
|
+
break;
|
|
17
|
+
case 1:
|
|
18
|
+
delete e.current[r.id];
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}, []);
|
|
25
22
|
return [e, s];
|
|
26
23
|
};
|
|
27
24
|
export {
|
package/hooks/useGanttTask.mjs
CHANGED
|
@@ -12,23 +12,21 @@ import { STORE_ACTION as a } from "./useDictionaryStore.mjs";
|
|
|
12
12
|
import { useIsomorphicLayoutEffect as f } from "@progress/kendo-react-common";
|
|
13
13
|
const l = (n, s, m, u) => {
|
|
14
14
|
const e = r.useRef(null), [, o] = c();
|
|
15
|
-
r.useImperativeHandle(e, () => ({ element: u.current, dataItem: n })), r.useImperativeHandle(m, () => e.current), f(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
r.useImperativeHandle(e, () => ({ element: u.current, dataItem: n })), r.useImperativeHandle(m, () => e.current), f(() => {
|
|
16
|
+
const t = e.current;
|
|
17
|
+
if (t)
|
|
18
|
+
return o({
|
|
19
|
+
type: a.add,
|
|
20
|
+
itemRef: t,
|
|
21
|
+
id: s
|
|
22
|
+
}), () => {
|
|
23
|
+
o({
|
|
24
|
+
type: a.remove,
|
|
21
25
|
itemRef: t,
|
|
22
26
|
id: s
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
itemRef: t,
|
|
27
|
-
id: s
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
});
|
|
32
30
|
};
|
|
33
31
|
export {
|
|
34
32
|
l as useGanttTask
|
package/package-metadata.mjs
CHANGED
|
@@ -10,7 +10,7 @@ const e = {
|
|
|
10
10
|
name: "@progress/kendo-react-gantt",
|
|
11
11
|
productName: "KendoReact",
|
|
12
12
|
productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
|
|
13
|
-
publishDate:
|
|
13
|
+
publishDate: 1729495216,
|
|
14
14
|
version: "",
|
|
15
15
|
licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
|
|
16
16
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-react-gantt",
|
|
3
|
-
"version": "9.0.0-develop.
|
|
3
|
+
"version": "9.0.0-develop.3",
|
|
4
4
|
"description": "React Gantt enables the display of self-referencing tabular data with many features. KendoReact Gantt package",
|
|
5
5
|
"author": "Progress",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -26,17 +26,17 @@
|
|
|
26
26
|
"@progress/kendo-date-math": "^1.4.1",
|
|
27
27
|
"@progress/kendo-drawing": "^1.20.4",
|
|
28
28
|
"@progress/kendo-licensing": "^1.3.4",
|
|
29
|
-
"@progress/kendo-react-buttons": "9.0.0-develop.
|
|
30
|
-
"@progress/kendo-react-common": "9.0.0-develop.
|
|
31
|
-
"@progress/kendo-react-data-tools": "9.0.0-develop.
|
|
32
|
-
"@progress/kendo-react-dateinputs": "9.0.0-develop.
|
|
33
|
-
"@progress/kendo-react-dialogs": "9.0.0-develop.
|
|
34
|
-
"@progress/kendo-react-dropdowns": "9.0.0-develop.
|
|
35
|
-
"@progress/kendo-react-form": "9.0.0-develop.
|
|
36
|
-
"@progress/kendo-react-inputs": "9.0.0-develop.
|
|
37
|
-
"@progress/kendo-react-intl": "9.0.0-develop.
|
|
38
|
-
"@progress/kendo-react-labels": "9.0.0-develop.
|
|
39
|
-
"@progress/kendo-react-treelist": "9.0.0-develop.
|
|
29
|
+
"@progress/kendo-react-buttons": "9.0.0-develop.3",
|
|
30
|
+
"@progress/kendo-react-common": "9.0.0-develop.3",
|
|
31
|
+
"@progress/kendo-react-data-tools": "9.0.0-develop.3",
|
|
32
|
+
"@progress/kendo-react-dateinputs": "9.0.0-develop.3",
|
|
33
|
+
"@progress/kendo-react-dialogs": "9.0.0-develop.3",
|
|
34
|
+
"@progress/kendo-react-dropdowns": "9.0.0-develop.3",
|
|
35
|
+
"@progress/kendo-react-form": "9.0.0-develop.3",
|
|
36
|
+
"@progress/kendo-react-inputs": "9.0.0-develop.3",
|
|
37
|
+
"@progress/kendo-react-intl": "9.0.0-develop.3",
|
|
38
|
+
"@progress/kendo-react-labels": "9.0.0-develop.3",
|
|
39
|
+
"@progress/kendo-react-treelist": "9.0.0-develop.3",
|
|
40
40
|
"@progress/kendo-svg-icons": "^3.0.0",
|
|
41
41
|
"react": "^16.8.2 || ^17.0.0 || ^18.0.0",
|
|
42
42
|
"react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
|
|
@@ -16,10 +16,12 @@ const J = (l) => {
|
|
|
16
16
|
if (!n || g === "none")
|
|
17
17
|
C || (e(i, d), a(i, c)), s.parentId && T(i, null), o.unshift(i);
|
|
18
18
|
else {
|
|
19
|
-
const I = [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const I = [
|
|
20
|
+
{
|
|
21
|
+
task: { [s.children]: o },
|
|
22
|
+
childrenIndex: 0
|
|
23
|
+
}
|
|
24
|
+
], w = p(s.id), y = p(s.children), R = k(s.children), j = w(n);
|
|
23
25
|
for (; I.length > 0; ) {
|
|
24
26
|
const f = I[I.length - 1], S = f.task, P = w(S), u = y(S);
|
|
25
27
|
if (P && P === j)
|
|
@@ -34,15 +36,24 @@ const J = (l) => {
|
|
|
34
36
|
switch (g) {
|
|
35
37
|
case "child": {
|
|
36
38
|
let x = y(f);
|
|
37
|
-
x || (x = [], R(f, x)), C || (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))), x.push(i), T(i, w(f)), D(
|
|
39
|
+
x || (x = [], R(f, x)), C || (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))), x.push(i), T(i, w(f)), D(
|
|
40
|
+
I.splice(1, I.length - 1).map((q) => q.task),
|
|
41
|
+
s
|
|
42
|
+
);
|
|
38
43
|
break;
|
|
39
44
|
}
|
|
40
45
|
case "above": {
|
|
41
|
-
h(u) && m(u) && !C ? (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))) : (e(i, d), a(i, c)), E.splice(S - 1, 0, i), T(i, w(u)), D(
|
|
46
|
+
h(u) && m(u) && !C ? (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))) : (e(i, d), a(i, c)), E.splice(S - 1, 0, i), T(i, w(u)), D(
|
|
47
|
+
I.splice(1, I.length - 2).map((x) => x.task),
|
|
48
|
+
s
|
|
49
|
+
);
|
|
42
50
|
break;
|
|
43
51
|
}
|
|
44
52
|
case "below": {
|
|
45
|
-
h(u) && m(u) && !C ? (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))) : (e(i, d), a(i, c)), E.splice(S, 0, i), T(i, w(u)), D(
|
|
53
|
+
h(u) && m(u) && !C ? (e(i, new Date(h(f).getTime())), a(i, new Date(m(f).getTime()))) : (e(i, d), a(i, c)), E.splice(S, 0, i), T(i, w(u)), D(
|
|
54
|
+
I.splice(1, I.length - 2).map((x) => x.task),
|
|
55
|
+
s
|
|
56
|
+
);
|
|
46
57
|
break;
|
|
47
58
|
}
|
|
48
59
|
}
|
|
@@ -53,10 +64,12 @@ const J = (l) => {
|
|
|
53
64
|
const { updatedDataItem: t, taskModelFields: n, dataTree: g } = l, s = p(n.id), r = p(n.children), d = s(t);
|
|
54
65
|
let c;
|
|
55
66
|
const o = v(g, n.children, (a) => s(a) === d ? (c = a, { ...t }) : { ...a });
|
|
56
|
-
let e = [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
let e = [
|
|
68
|
+
{
|
|
69
|
+
task: { [n.children]: o },
|
|
70
|
+
childrenIndex: 0
|
|
71
|
+
}
|
|
72
|
+
];
|
|
60
73
|
for (; e.length > 0; ) {
|
|
61
74
|
const a = e[e.length - 1], h = a.task, m = s(h), T = r(h);
|
|
62
75
|
if (m && m === d)
|
|
@@ -70,22 +83,37 @@ const J = (l) => {
|
|
|
70
83
|
e = e.splice(1, e.length - 2);
|
|
71
84
|
const a = p(n.start), h = p(n.end), m = p(n.percentComplete), T = p(n.parentId || "");
|
|
72
85
|
if (a(c).getTime() !== a(t).getTime()) {
|
|
73
|
-
b(
|
|
86
|
+
b(
|
|
87
|
+
e.map((C) => C.task),
|
|
88
|
+
n
|
|
89
|
+
);
|
|
74
90
|
const i = a(t).getTime() - a(c).getTime();
|
|
75
91
|
B(r(t), n, i);
|
|
76
92
|
}
|
|
77
|
-
if (h(c).getTime() !== h(t).getTime() && N(
|
|
93
|
+
if (h(c).getTime() !== h(t).getTime() && N(
|
|
94
|
+
e.map((i) => i.task),
|
|
95
|
+
n
|
|
96
|
+
), m(c) !== m(t) && O(
|
|
97
|
+
e.map((i) => i.task),
|
|
98
|
+
n
|
|
99
|
+
), n.parentId && T(c) !== T(t)) {
|
|
78
100
|
let i;
|
|
79
|
-
return e.length ? z(
|
|
101
|
+
return e.length ? z(
|
|
102
|
+
e.map((C) => C.task),
|
|
103
|
+
n,
|
|
104
|
+
c
|
|
105
|
+
) : i = o.filter((C) => s(C) !== s(t)), A(i || o, n, t);
|
|
80
106
|
}
|
|
81
107
|
}
|
|
82
108
|
return o;
|
|
83
109
|
}, Q = (l) => {
|
|
84
110
|
const { removedDataItem: t, taskModelFields: n, dataTree: g } = l, s = v(g, n.children, (e) => ({ ...e }));
|
|
85
|
-
let r = [
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
111
|
+
let r = [
|
|
112
|
+
{
|
|
113
|
+
task: { [n.children]: s },
|
|
114
|
+
childrenIndex: 0
|
|
115
|
+
}
|
|
116
|
+
];
|
|
89
117
|
const d = p(n.id), c = p(n.children), o = d(t);
|
|
90
118
|
for (; r.length > 0; ) {
|
|
91
119
|
const e = r[r.length - 1], a = e.task, h = d(a), m = c(a);
|
|
@@ -98,7 +126,10 @@ const J = (l) => {
|
|
|
98
126
|
}
|
|
99
127
|
if (r.length > 1) {
|
|
100
128
|
const e = r[r.length - 2], a = e.task;
|
|
101
|
-
c(a).splice(e.childrenIndex - 1, 1), r = r.splice(1, r.length - 2), D(
|
|
129
|
+
c(a).splice(e.childrenIndex - 1, 1), r = r.splice(1, r.length - 2), D(
|
|
130
|
+
r.map((m) => m.task),
|
|
131
|
+
n
|
|
132
|
+
);
|
|
102
133
|
}
|
|
103
134
|
return s;
|
|
104
135
|
}, D = (l, t) => {
|
package/utils/index.mjs
CHANGED
|
@@ -14,15 +14,17 @@ import { createDataTree as I } from "@progress/kendo-react-treelist";
|
|
|
14
14
|
import { DEFAULT_TASK_MODEL_FIELDS as H, DEFAULT_DEPENDENCY_MODEL_FIELDS as O, HOUR_DATE_FORMAT as F, DAY_DATE_FORMAT as p, MONTH_DATE_FORMAT as B, YEAR_DATE_FORMAT as U, DAYS_IN_WEEK_COUNT as Y } from "../constants/index.mjs";
|
|
15
15
|
const ne = b, ae = C, re = _, oe = x, se = I, de = (e) => ({ fields: { ...H, ...e } }), ce = (e) => ({ fields: { ...O, ...e } }), me = (e) => S(e), $ = (e, t) => S(A(e, t || 1)), ie = (e, t, n, o) => n < t && e <= o;
|
|
16
16
|
function R(e) {
|
|
17
|
-
return new Date(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
return new Date(
|
|
18
|
+
Date.UTC(
|
|
19
|
+
e.getFullYear(),
|
|
20
|
+
e.getMonth(),
|
|
21
|
+
e.getDate(),
|
|
22
|
+
e.getHours(),
|
|
23
|
+
e.getMinutes(),
|
|
24
|
+
e.getSeconds(),
|
|
25
|
+
e.getMilliseconds()
|
|
26
|
+
)
|
|
27
|
+
);
|
|
26
28
|
}
|
|
27
29
|
const D = 4, k = 10, ge = (e, t, n, o) => {
|
|
28
30
|
const r = [];
|
|
@@ -154,7 +156,10 @@ const D = 4, k = 10, ge = (e, t, n, o) => {
|
|
|
154
156
|
range: r,
|
|
155
157
|
isWork: !1,
|
|
156
158
|
span: s,
|
|
157
|
-
text: `${n.formatDate(r.zonedStart, p)} - ${n.formatDate(
|
|
159
|
+
text: `${n.formatDate(r.zonedStart, p)} - ${n.formatDate(
|
|
160
|
+
r.zonedEnd,
|
|
161
|
+
p
|
|
162
|
+
)}`,
|
|
158
163
|
type: "week"
|
|
159
164
|
};
|
|
160
165
|
}), Ee = (e, t, n) => j(e, { timezone: t.timezone }).map((r) => {
|
|
@@ -182,13 +187,10 @@ const D = 4, k = 10, ge = (e, t, n, o) => {
|
|
|
182
187
|
{
|
|
183
188
|
key: a.range.start.getTime(),
|
|
184
189
|
colSpan: a.span,
|
|
185
|
-
className: y(
|
|
186
|
-
"k-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"k-nonwork-hour": !a.isWork
|
|
190
|
-
}
|
|
191
|
-
)
|
|
190
|
+
className: y("k-table-th", {
|
|
191
|
+
"k-header": !0,
|
|
192
|
+
"k-nonwork-hour": !a.isWork
|
|
193
|
+
})
|
|
192
194
|
},
|
|
193
195
|
o ? /* @__PURE__ */ u.createElement(
|
|
194
196
|
o,
|
|
@@ -209,12 +211,9 @@ const D = 4, k = 10, ge = (e, t, n, o) => {
|
|
|
209
211
|
{
|
|
210
212
|
key: o.range.start.getTime(),
|
|
211
213
|
colSpan: o.span,
|
|
212
|
-
className: y(
|
|
213
|
-
"k-
|
|
214
|
-
|
|
215
|
-
"k-nonwork-hour": !o.isWork
|
|
216
|
-
}
|
|
217
|
-
)
|
|
214
|
+
className: y("k-table-td", {
|
|
215
|
+
"k-nonwork-hour": !o.isWork
|
|
216
|
+
})
|
|
218
217
|
}
|
|
219
218
|
)))));
|
|
220
219
|
}, Se = (e, t) => {
|
package/views/GanttDayView.mjs
CHANGED
|
@@ -16,35 +16,43 @@ import { dayViewTitle as V, messages as O } from "../messages/index.mjs";
|
|
|
16
16
|
import { useInternationalization as P } from "@progress/kendo-react-intl";
|
|
17
17
|
import { DEFAULT_COLUMN_WIDTH as M } from "../constants/index.mjs";
|
|
18
18
|
const h = o.forwardRef((e, D) => {
|
|
19
|
-
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
)
|
|
19
|
+
const {
|
|
20
|
+
slotWidth: r = a.slotWidth,
|
|
21
|
+
slotDuration: d = a.slotDuration,
|
|
22
|
+
firstSlotRangeRef: c,
|
|
23
|
+
timelineHeaderCell: k
|
|
24
|
+
} = e, { timezone: s } = x(), n = P(), i = o.useRef(null), u = o.useRef(null), C = o.useCallback((f) => {
|
|
25
|
+
u.current && u.current.scrollIntoView(f);
|
|
26
|
+
}, []);
|
|
25
27
|
o.useImperativeHandle(i, () => ({ scrollIntoView: C })), o.useImperativeHandle(D, () => i.current);
|
|
26
|
-
const w = z(), g = e.workWeekStart || a.workWeekStart, y = e.workWeekEnd || a.workWeekEnd, p = e.workDayStart || a.workDayStart, S = e.workDayEnd || a.workDayEnd, b = o.useMemo(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
28
|
+
const w = z(), g = e.workWeekStart || a.workWeekStart, y = e.workWeekEnd || a.workWeekEnd, p = e.workDayStart || a.workDayStart, S = e.workDayEnd || a.workDayEnd, b = o.useMemo(() => {
|
|
29
|
+
const f = L({
|
|
30
|
+
workWeekStart: g,
|
|
31
|
+
workWeekEnd: y
|
|
32
|
+
}), l = [], T = H(w, { workDays: f, timezone: s }, n);
|
|
33
|
+
return T.forEach((E) => {
|
|
34
|
+
const W = U(
|
|
35
|
+
E.range,
|
|
36
|
+
{
|
|
37
|
+
workDayStart: p,
|
|
38
|
+
workDayEnd: S,
|
|
39
|
+
timezone: s,
|
|
40
|
+
slotDuration: d
|
|
41
|
+
},
|
|
42
|
+
n
|
|
43
|
+
);
|
|
44
|
+
E.span = W.length, l.push.apply(l, W);
|
|
45
|
+
}), c && l[0] && (c.current = l[0].range), [T, l];
|
|
46
|
+
}, [
|
|
47
|
+
s,
|
|
48
|
+
w.start.getTime(),
|
|
49
|
+
w.end.getTime(),
|
|
50
|
+
n,
|
|
51
|
+
g,
|
|
52
|
+
y,
|
|
53
|
+
p,
|
|
54
|
+
S
|
|
55
|
+
]);
|
|
48
56
|
return /* @__PURE__ */ o.createElement(
|
|
49
57
|
I,
|
|
50
58
|
{
|
package/views/GanttMonthView.mjs
CHANGED
|
@@ -16,27 +16,17 @@ import { DEFAULT_COLUMN_WIDTH as L } from "../constants/index.mjs";
|
|
|
16
16
|
import { monthViewTitle as D, messages as O } from "../messages/index.mjs";
|
|
17
17
|
import { useInternationalization as U } from "@progress/kendo-react-intl";
|
|
18
18
|
const k = e.forwardRef((a, f) => {
|
|
19
|
-
const { slotWidth: n = H.slotWidth, firstSlotRangeRef: l, timelineHeaderCell: u } = a, { timezone: s } = b(), i = U(), m = e.useRef(null), r = e.useRef(null), h = e.useCallback(
|
|
20
|
-
(o)
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
[]
|
|
24
|
-
);
|
|
19
|
+
const { slotWidth: n = H.slotWidth, firstSlotRangeRef: l, timelineHeaderCell: u } = a, { timezone: s } = b(), i = U(), m = e.useRef(null), r = e.useRef(null), h = e.useCallback((o) => {
|
|
20
|
+
r.current && r.current.scrollIntoView(o);
|
|
21
|
+
}, []);
|
|
25
22
|
e.useImperativeHandle(m, () => ({ scrollIntoView: h })), e.useImperativeHandle(f, () => m.current);
|
|
26
|
-
const d = I(), T = e.useMemo(
|
|
27
|
-
(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
i
|
|
34
|
-
);
|
|
35
|
-
o.push.apply(o, R);
|
|
36
|
-
}), l && o[0] && (l.current = o[0].range), [p, o];
|
|
37
|
-
},
|
|
38
|
-
[s, d.start.getTime(), d.end.getTime(), i]
|
|
39
|
-
);
|
|
23
|
+
const d = I(), T = e.useMemo(() => {
|
|
24
|
+
const o = [], p = C(d, { timezone: s }, i);
|
|
25
|
+
return p.forEach((y) => {
|
|
26
|
+
const R = M(y.range, { timezone: s }, i);
|
|
27
|
+
o.push.apply(o, R);
|
|
28
|
+
}), l && o[0] && (l.current = o[0].range), [p, o];
|
|
29
|
+
}, [s, d.start.getTime(), d.end.getTime(), i]);
|
|
40
30
|
return /* @__PURE__ */ e.createElement(
|
|
41
31
|
E,
|
|
42
32
|
{
|
package/views/GanttWeekView.mjs
CHANGED
|
@@ -16,26 +16,20 @@ import { DEFAULT_COLUMN_WIDTH as O, DAYS_IN_WEEK_COUNT as v } from "../constants
|
|
|
16
16
|
import { weekViewTitle as E, messages as x } from "../messages/index.mjs";
|
|
17
17
|
import { useInternationalization as z } from "@progress/kendo-react-intl";
|
|
18
18
|
const R = o.forwardRef((t, m) => {
|
|
19
|
-
const { slotWidth: f = g.slotWidth, firstSlotRangeRef: r, timelineHeaderCell: w } = t, { timezone: a } = H(), s = z(), c = o.useRef(null), n = o.useRef(null), k = o.useCallback(
|
|
20
|
-
(D)
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
[]
|
|
24
|
-
);
|
|
19
|
+
const { slotWidth: f = g.slotWidth, firstSlotRangeRef: r, timelineHeaderCell: w } = t, { timezone: a } = H(), s = z(), c = o.useRef(null), n = o.useRef(null), k = o.useCallback((D) => {
|
|
20
|
+
n.current && n.current.scrollIntoView(D);
|
|
21
|
+
}, []);
|
|
25
22
|
o.useImperativeHandle(c, () => ({ scrollIntoView: k })), o.useImperativeHandle(m, () => c.current);
|
|
26
|
-
const d = N(), u = t.workWeekStart || g.workWeekStart, W = t.workWeekEnd || g.workWeekEnd, V = o.useMemo(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
[a, d.start.getTime(), d.end.getTime(), s, u, W]
|
|
38
|
-
);
|
|
23
|
+
const d = N(), u = t.workWeekStart || g.workWeekStart, W = t.workWeekEnd || g.workWeekEnd, V = o.useMemo(() => {
|
|
24
|
+
const D = U({
|
|
25
|
+
workWeekStart: u,
|
|
26
|
+
workWeekEnd: W
|
|
27
|
+
}), i = [], p = h(d, { timezone: a }, s);
|
|
28
|
+
return p.forEach((C) => {
|
|
29
|
+
const I = L(C.range, { workDays: D, timezone: a }, s);
|
|
30
|
+
i.push.apply(i, I);
|
|
31
|
+
}), r && i[0] && (r.current = i[0].range), [p, i];
|
|
32
|
+
}, [a, d.start.getTime(), d.end.getTime(), s, u, W]);
|
|
39
33
|
return /* @__PURE__ */ o.createElement(
|
|
40
34
|
b,
|
|
41
35
|
{
|
package/views/GanttYearView.mjs
CHANGED
|
@@ -16,35 +16,18 @@ import { DEFAULT_COLUMN_WIDTH as b } from "../constants/index.mjs";
|
|
|
16
16
|
import { yearViewTitle as T, messages as G } from "../messages/index.mjs";
|
|
17
17
|
import { useInternationalization as H } from "@progress/kendo-react-intl";
|
|
18
18
|
const h = t.forwardRef((n, p) => {
|
|
19
|
-
const { slotWidth: o = v.slotWidth, firstSlotRangeRef: m, timelineHeaderCell: u } = n, { timezone: a } = U(), r = H(), s = t.useRef(null), i = t.useRef(null), y = t.useCallback(
|
|
20
|
-
(c)
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
[]
|
|
24
|
-
);
|
|
19
|
+
const { slotWidth: o = v.slotWidth, firstSlotRangeRef: m, timelineHeaderCell: u } = n, { timezone: a } = U(), r = H(), s = t.useRef(null), i = t.useRef(null), y = t.useCallback((c) => {
|
|
20
|
+
i.current && i.current.scrollIntoView(c);
|
|
21
|
+
}, []);
|
|
25
22
|
t.useImperativeHandle(s, () => ({ scrollIntoView: y })), t.useImperativeHandle(p, () => s.current);
|
|
26
|
-
const d = W(), w = t.useMemo(
|
|
27
|
-
()
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
);
|
|
35
|
-
l.push.apply(l, V);
|
|
36
|
-
}), m && l[0] && (m.current = l[0].range), [c, l];
|
|
37
|
-
},
|
|
38
|
-
[a, d.start.getTime(), d.end.getTime(), r]
|
|
39
|
-
);
|
|
40
|
-
return /* @__PURE__ */ t.createElement(
|
|
41
|
-
L,
|
|
42
|
-
{
|
|
43
|
-
slotWidth: o,
|
|
44
|
-
slotLevels: w,
|
|
45
|
-
timelineHeaderCell: u
|
|
46
|
-
}
|
|
47
|
-
);
|
|
23
|
+
const d = W(), w = t.useMemo(() => {
|
|
24
|
+
const c = Y(d, { timezone: a }, r), l = [];
|
|
25
|
+
return c.forEach((R) => {
|
|
26
|
+
const V = E(R.range, { timezone: a }, r);
|
|
27
|
+
l.push.apply(l, V);
|
|
28
|
+
}), m && l[0] && (m.current = l[0].range), [c, l];
|
|
29
|
+
}, [a, d.start.getTime(), d.end.getTime(), r]);
|
|
30
|
+
return /* @__PURE__ */ t.createElement(L, { slotWidth: o, slotLevels: w, timelineHeaderCell: u });
|
|
48
31
|
}), k = ({ tasksStart: n, tasksEnd: p, timezone: o }) => {
|
|
49
32
|
const m = f.fromLocalDate(n, o), u = f.fromLocalDate(p, o), a = M(C(g(m))), r = S(O(I(g(u))), 1), s = f.fromUTCDate(D(a), o), i = f.fromUTCDate(D(r), o);
|
|
50
33
|
return {
|