@progress/kendo-react-gantt 9.0.0-develop.2 → 9.0.0-develop.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,16 +71,21 @@ const se = e.forwardRef((t, K) => {
71
71
  });
72
72
  },
73
73
  [t.dataItem, t.level]
74
- ), M = e.useCallback(
75
- () => {
76
- const n = i.start, B = i.end, R = N.current, m = r.current, _ = f.current;
77
- if (!C || R === null || m === null)
78
- return;
79
- const G = R.clientWidth / (B.getTime() - n.getTime()), P = (o.getTime() - n.getTime()) * G, w = (u.getTime() - o.getTime()) * G, J = (R.offsetHeight - m.offsetHeight) / 2;
80
- m.style.left = `${Math.round(g ? P - le : P)}px`, m.style.top = `${Math.round(J)}px`, g || (m.style.width = `${Math.round(w)}px`, _ !== null && (_.style.width = `${Math.round(w * (h || 0))}px`)), q(!0);
81
- },
82
- [i.start.getTime(), i.end.getTime(), y, T, C, h, O]
83
- );
74
+ ), M = e.useCallback(() => {
75
+ const n = i.start, B = i.end, R = N.current, m = r.current, _ = f.current;
76
+ if (!C || R === null || m === null)
77
+ return;
78
+ const G = R.clientWidth / (B.getTime() - n.getTime()), P = (o.getTime() - n.getTime()) * G, w = (u.getTime() - o.getTime()) * G, J = (R.offsetHeight - m.offsetHeight) / 2;
79
+ m.style.left = `${Math.round(g ? P - le : P)}px`, m.style.top = `${Math.round(J)}px`, g || (m.style.width = `${Math.round(w)}px`, _ !== null && (_.style.width = `${Math.round(w * (h || 0))}px`)), q(!0);
80
+ }, [
81
+ i.start.getTime(),
82
+ i.end.getTime(),
83
+ y,
84
+ T,
85
+ C,
86
+ h,
87
+ O
88
+ ]);
84
89
  e.useEffect(M, [M]);
85
90
  const A = {
86
91
  visibility: j ? void 0 : "hidden",
@@ -142,7 +147,15 @@ const se = e.forwardRef((t, K) => {
142
147
  onContextMenu: H
143
148
  },
144
149
  d ? /* @__PURE__ */ e.createElement("div", { className: "k-task-summary-progress", ref: f }, /* @__PURE__ */ e.createElement("div", { className: "k-task-summary-complete" })) : /* @__PURE__ */ e.createElement("div", { className: "k-task-complete", ref: f }),
145
- !d && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "k-task-content" }, Y), l.onTaskRemoveClick ? /* @__PURE__ */ e.createElement("span", { className: "k-task-actions" }, /* @__PURE__ */ e.createElement("span", { onClick: z, className: "k-link k-task-delete", "aria-label": "Delete" }, /* @__PURE__ */ e.createElement(p, { name: "x", icon: ee }))) : null),
150
+ !d && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "k-task-content" }, Y), l.onTaskRemoveClick ? /* @__PURE__ */ e.createElement("span", { className: "k-task-actions" }, /* @__PURE__ */ e.createElement(
151
+ "span",
152
+ {
153
+ onClick: z,
154
+ className: "k-link k-task-delete",
155
+ "aria-label": "Delete"
156
+ },
157
+ /* @__PURE__ */ e.createElement(p, { name: "x", icon: ee })
158
+ )) : null),
146
159
  a.isEnabled && /* @__PURE__ */ e.createElement(
147
160
  "div",
148
161
  {
@@ -12,44 +12,46 @@ import { Button as C, DropDownButton as f } from "@progress/kendo-react-buttons"
12
12
  import { messages as g, addTask as v, addChild as p, addAbove as b, addBelow as E } from "../../messages/index.mjs";
13
13
  import { IconWrap as w } from "@progress/kendo-react-common";
14
14
  import { plusIcon as B } from "@progress/kendo-svg-icons";
15
- const h = e.forwardRef((n, M) => {
16
- const a = k(), o = (t) => a.toLanguageString(t, g[t]), l = o(v), c = o(p), d = o(b), s = o(E), r = e.useCallback(
17
- (t) => {
18
- t.syntheticEvent.preventDefault();
19
- const u = t.item && t.item.direction ? t.item.direction : "none";
20
- n.onClick && n.onClick({
21
- nativeEvent: t.nativeEvent,
22
- syntheticEvent: t.syntheticEvent,
23
- direction: u
24
- });
25
- },
26
- [n.onClick]
27
- ), m = e.useCallback(
28
- (t) => {
29
- t.preventDefault(), n.onClick && n.onClick({
30
- nativeEvent: t && t.nativeEvent,
31
- syntheticEvent: t,
32
- direction: "none"
33
- });
34
- },
35
- [n.onClick]
36
- ), i = /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(w, { name: "plus", icon: B }), l);
37
- return n.selectedTask ? /* @__PURE__ */ e.createElement(
38
- f,
39
- {
40
- className: "k-views-dropdown",
41
- onItemClick: r,
42
- popupSettings: { popupClass: "k-gantt-toolbar" },
43
- textField: "title",
44
- items: [
45
- { title: c, direction: "child" },
46
- { title: d, direction: "above" },
47
- { title: s, direction: "below" }
48
- ],
49
- text: i
50
- }
51
- ) : /* @__PURE__ */ e.createElement(C, { onClick: m }, i);
52
- });
15
+ const h = e.forwardRef(
16
+ (n, M) => {
17
+ const a = k(), o = (t) => a.toLanguageString(t, g[t]), l = o(v), c = o(p), d = o(b), s = o(E), r = e.useCallback(
18
+ (t) => {
19
+ t.syntheticEvent.preventDefault();
20
+ const u = t.item && t.item.direction ? t.item.direction : "none";
21
+ n.onClick && n.onClick({
22
+ nativeEvent: t.nativeEvent,
23
+ syntheticEvent: t.syntheticEvent,
24
+ direction: u
25
+ });
26
+ },
27
+ [n.onClick]
28
+ ), m = e.useCallback(
29
+ (t) => {
30
+ t.preventDefault(), n.onClick && n.onClick({
31
+ nativeEvent: t && t.nativeEvent,
32
+ syntheticEvent: t,
33
+ direction: "none"
34
+ });
35
+ },
36
+ [n.onClick]
37
+ ), i = /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(w, { name: "plus", icon: B }), l);
38
+ return n.selectedTask ? /* @__PURE__ */ e.createElement(
39
+ f,
40
+ {
41
+ className: "k-views-dropdown",
42
+ onItemClick: r,
43
+ popupSettings: { popupClass: "k-gantt-toolbar" },
44
+ textField: "title",
45
+ items: [
46
+ { title: c, direction: "child" },
47
+ { title: d, direction: "above" },
48
+ { title: s, direction: "below" }
49
+ ],
50
+ text: i
51
+ }
52
+ ) : /* @__PURE__ */ e.createElement(C, { onClick: m }, i);
53
+ }
54
+ );
53
55
  h.displayName = "KendoReactGanttAddButton";
54
56
  export {
55
57
  h as AddButton
@@ -10,10 +10,7 @@ import * as e from "react";
10
10
  import { classNames as c } from "@progress/kendo-react-common";
11
11
  import { Toolbar as u } from "@progress/kendo-react-buttons";
12
12
  const f = e.forwardRef((t, n) => {
13
- const {
14
- className: a,
15
- ...s
16
- } = t, r = e.useRef(null), o = e.useRef(null);
13
+ const { className: a, ...s } = t, r = e.useRef(null), o = e.useRef(null);
17
14
  e.useImperativeHandle(o, () => ({ element: r.current, props: t })), e.useImperativeHandle(n, () => o.current);
18
15
  const m = e.useMemo(() => c("k-gantt-toolbar k-gantt-header", a), [a]);
19
16
  return /* @__PURE__ */ e.createElement(
@@ -10,10 +10,7 @@ import * as e from "react";
10
10
  import { ToolbarItem as m } from "@progress/kendo-react-buttons";
11
11
  import { classNames as o } from "@progress/kendo-react-common";
12
12
  const s = e.forwardRef((t, n) => {
13
- const {
14
- className: l,
15
- ...c
16
- } = t, r = e.useRef(null);
13
+ const { className: l, ...c } = t, r = e.useRef(null);
17
14
  return e.useImperativeHandle(n, () => ({ element: r.current, props: t })), /* @__PURE__ */ e.createElement(
18
15
  m,
19
16
  {
@@ -14,12 +14,9 @@ const w = (e) => {
14
14
  const [a, i] = v(), n = m(), o = t.useMemo(
15
15
  () => typeof e.view.title == "function" ? e.view.title.call(void 0, n) : e.view.title,
16
16
  [e.view.title, n]
17
- ), l = t.useCallback(
18
- () => {
19
- e.view.name && i(e.view.name);
20
- },
21
- [i, e.view.name]
22
- );
17
+ ), l = t.useCallback(() => {
18
+ e.view.name && i(e.view.name);
19
+ }, [i, e.view.name]);
23
20
  return /* @__PURE__ */ t.createElement(
24
21
  c,
25
22
  {
@@ -16,7 +16,9 @@ const o = e.createContext([]), f = () => e.useContext(o);
16
16
  o.displayName = "KendoReactGanttDependencyDataContext";
17
17
  const a = e.createContext(N), A = () => e.useContext(a);
18
18
  a.displayName = "KendoReactGanttTaskModelFieldsContext";
19
- const s = e.createContext(h), V = () => e.useContext(s);
19
+ const s = e.createContext(
20
+ h
21
+ ), V = () => e.useContext(s);
20
22
  s.displayName = "KendoReactGanttDependencyModelFieldsContext";
21
23
  const c = e.createContext({}), _ = () => e.useContext(c);
22
24
  c.displayName = "KendoReactGanttPropsContext";
@@ -11,25 +11,17 @@ import { FieldWrapper as L } from "@progress/kendo-react-form";
11
11
  import { Label as k, Hint as M, Error as N } from "@progress/kendo-react-labels";
12
12
  import { findByFieldValue as V, DropDownList as x } from "@progress/kendo-react-dropdowns";
13
13
  const S = (n) => {
14
- const {
15
- validationMessage: d,
16
- touched: p,
17
- label: w,
18
- id: o,
19
- valid: u,
20
- disabled: m,
21
- hint: h,
22
- idField: l,
23
- dataItem: C,
24
- ...E
25
- } = n, I = { id: null, title: "-None-", parentId: null }, v = [], i = p && d, D = !i && h, f = D ? `${o}_hint` : "", g = i ? `${o}_error` : "", r = a.useCallback((t) => {
26
- if (!t || !t.children)
27
- return n.data;
28
- for (const e of t.children)
29
- v.push(e), e.children && r(e);
30
- const c = v.map((e) => e.id);
31
- return n.data.filter((e) => !c.includes(e.id));
32
- }, [n.data]), $ = r(C), s = a.useMemo(
14
+ const { validationMessage: d, touched: p, label: w, id: o, valid: u, disabled: m, hint: h, idField: l, dataItem: C, ...E } = n, I = { id: null, title: "-None-", parentId: null }, v = [], i = p && d, D = !i && h, f = D ? `${o}_hint` : "", g = i ? `${o}_error` : "", r = a.useCallback(
15
+ (t) => {
16
+ if (!t || !t.children)
17
+ return n.data;
18
+ for (const e of t.children)
19
+ v.push(e), e.children && r(e);
20
+ const c = v.map((e) => e.id);
21
+ return n.data.filter((e) => !c.includes(e.id));
22
+ },
23
+ [n.data]
24
+ ), $ = r(C), s = a.useMemo(
33
25
  () => $.map((t) => {
34
26
  const c = new Date(t.start).toLocaleDateString(), e = new Date(t.end).toLocaleDateString();
35
27
  return { ...t, title: `${t.title} (${c}-${e})` };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react"),l=require("@progress/kendo-react-form"),me=require("@progress/kendo-react-treelist"),ue=require("../context/GanttContext.js"),W=require("./FormInput.js"),pe=require("@progress/kendo-react-intl"),f=require("@progress/kendo-react-layout"),i=require("../messages/index.js"),k=require("./FormDateTimePicker.js"),H=require("./FormNumericTextBox.js"),ye=require("./FormDropDownList.js"),b=require("@progress/kendo-react-common"),Te=require("./GanttEditorPredecessors.js"),De=require("./GanttEditorSuccessors.js"),m=require("../interfaces/DependencyType.js"),J=require("@progress/kendo-react-dropdowns");function Fe(a){const y=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const u in a)if(u!=="default"){const c=Object.getOwnPropertyDescriptor(a,u);Object.defineProperty(y,u,c.get?c:{enumerable:!0,get:()=>a[u]})}}return y.default=a,Object.freeze(y)}const t=Fe(le),ge=[{type:m.DependencyType.FF},{type:m.DependencyType.FS},{type:m.DependencyType.SF},{type:m.DependencyType.SS}],fe=a=>{const[y,u]=t.useState(0),[c,S]=t.useState(),[r,T]=t.useState([...a.dependencyData||[]]),[E,M]=t.useState([]),n=ue.useGanttTaskModelFieldsContext(),K=pe.useLocalization(),o=e=>K.toLanguageString(e,i.messages[e]),C=o(i.editorTaskTitle),q=o(i.editorTaskStart),v=o(i.editorTaskEnd),P=o(i.editorTaskComplete),Q=o(i.editorTaskParent),U=o(i.editorTabGeneral),X=o(i.editorTabPredecessors),Y=o(i.editorTabSuccessors),D=o(i.editorValidationRequired),w=o(i.editorValidationStart),x=o(i.editorValidationEnd),R=o(i.editorValidationPercentCompleteRange),F=t.useMemo(()=>me.flatData(a.taskData||[],e=>e.children||[],e=>{const d={title:e[n.title],id:e[n.id],start:e[n.start],end:e[n.end],parentId:null};return n.parentId&&(d.parentId=e[n.parentId]),d}),[a.taskData,n]),Z=t.useMemo(()=>F.filter(e=>e.id!==a.dataItem.id),[F,a.dataItem]),ee=t.useMemo(()=>r.filter(e=>e.toId===a.dataItem.id),[r,a.dataItem]),te=t.useMemo(()=>r.filter(e=>e.fromId===a.dataItem.id),[r,a.dataItem]),_=t.useMemo(()=>r.filter(e=>e.id===null).map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,type:e.type})),[r]),V=t.useMemo(()=>r.filter(e=>e.id!==null&&e.uid).map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,type:e.type})),[r]),G=()=>{if(c){if(c.id){const e=r.filter(s=>s.id!==c.id);T(e);const d=r.filter(s=>s.id===c.id);M(s=>[...s,...d])}else{const e=r.filter(s=>s.uid!==c.uid);T(e);const d=r.filter(s=>s.uid===c.uid);M(s=>[...s,...d])}S(void 0)}},p=t.useCallback(e=>e||e===0?void 0:D,[D]),$=t.useCallback(e=>e||e===0?e>=0&&e<=1?void 0:R:D,[D,R]),h=t.useCallback((e,d)=>e&&d(n.end)&&e.getTime()>d(n.end).getTime()?w:void 0,[n,w]),B=t.useCallback((e,d)=>e&&d(n.start)&&e.getTime()<d(n.start).getTime()?x:void 0,[n,x]),N=t.useMemo(()=>[p,h],[p,h]),O=t.useMemo(()=>[p,B],[p,B]),ne=t.useMemo(()=>J.findByFieldValue(r,"fromId",null)||J.findByFieldValue(r,"toId",null),[r]),ae=e=>{ne||(u(e.selected),S(void 0))},z=e=>{S(e.dataItem)},de=()=>{const e={uid:b.guid(),id:null,fromId:null,toId:a.dataItem.id,type:m.DependencyType.FS};T([...r,e])},re=()=>{const e={uid:b.guid(),id:null,fromId:a.dataItem.id,toId:null,type:m.DependencyType.FS};T([...r,e])},L=(e,d,s)=>{const I={...e,uid:e.uid||b.guid(),[d]:s},A=r.findIndex(g=>g.id&&g.id===I.id||g.uid&&g.uid===I.uid);A>-1&&(r.splice(A,1,I),T([...r]))},j=t.useMemo(()=>ge.map(e=>{let d;switch(e.type){case m.DependencyType.FF:d=o(i.editorDependencyTypesFF);break;case m.DependencyType.FS:d=o(i.editorDependencyTypesFS);break;case m.DependencyType.SF:d=o(i.editorDependencyTypesSF);break;case m.DependencyType.SS:d=o(i.editorDependencyTypesSS);break;default:d=o(i.editorDependencyTypesFF);break}return{...e,name:d}}),[o]);t.useEffect(()=>{a.onDependencyCreate&&a.onDependencyCreate.call(void 0,{createdDependencies:_,updatedDependencies:V,deletedDependencies:E})},[_,V,E,a.onDependencyCreate]);const oe=a.dependencyData&&a.taskData,ie=t.createElement(l.FormElement,{style:{width:400},horizontal:!0},t.createElement(l.Field,{id:`${n.title}_gantteditor`,name:n.title,label:C,component:W.FormInput,validator:p}),t.createElement(l.Field,{id:`${n.start}_gantteditor`,name:n.start,label:q,component:k.FormDateTimePicker,validator:N}),t.createElement(l.Field,{id:`${n.end}_gantteditor`,name:n.end,label:v,component:k.FormDateTimePicker,validator:O}),t.createElement(l.Field,{id:`${n.percentComplete}_gantteditor`,name:n.percentComplete,label:P,component:H.FormNumericTextBox,validator:$})),se=t.createElement(l.FormElement,{style:{paddingInline:"4px"}},t.createElement("div",{className:"k-form-fieldset"},t.createElement("div",{className:"k-form-layout k-d-grid k-grid-cols-4 k-gap-x-2"},t.createElement(l.Field,{id:`${n.title}_gantteditor`,name:n.title,label:C,component:W.FormInput,validator:p}),t.createElement(l.Field,{id:`${n.start}_gantteditor`,name:n.start,label:q,component:k.FormDateTimePicker,validator:N}),t.createElement(l.Field,{id:`${n.end}_gantteditor`,name:n.end,label:v,component:k.FormDateTimePicker,validator:O}),t.createElement(l.Field,{id:`${n.percentComplete}_gantteditor`,name:n.percentComplete,label:P,component:H.FormNumericTextBox,validator:$}),n.parentId&&t.createElement(l.Field,{id:`${n.parentId}_gantteditor`,name:n.parentId||"",idField:n.id,label:Q,component:ye.FormDropDownList,data:Z,dataItem:a.dataItem})))),ce=t.createElement(f.TabStrip,{selected:y,onSelect:ae},t.createElement(f.TabStripTab,{title:U},se),t.createElement(f.TabStripTab,{title:X},t.createElement(Te.GanttEditorPredecessors,{flatTasks:F,predecessors:ee,dependencyTypes:j,selectedItem:c,onSelectRow:z,addPredecessorsDependency:de,deleteDependency:G,updateDependency:L})),t.createElement(f.TabStripTab,{title:Y},t.createElement(De.GanttEditorSuccessors,{flatTasks:F,successors:te,dependencyTypes:j,selectedItem:c,onSelectRow:z,addSuccessorsDependency:re,deleteDependency:G,updateDependency:L})));return oe?ce:ie};exports.GanttEditor=fe;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react"),l=require("@progress/kendo-react-form"),me=require("@progress/kendo-react-treelist"),ue=require("../context/GanttContext.js"),W=require("./FormInput.js"),pe=require("@progress/kendo-react-intl"),f=require("@progress/kendo-react-layout"),i=require("../messages/index.js"),k=require("./FormDateTimePicker.js"),H=require("./FormNumericTextBox.js"),ye=require("./FormDropDownList.js"),b=require("@progress/kendo-react-common"),Te=require("./GanttEditorPredecessors.js"),De=require("./GanttEditorSuccessors.js"),m=require("../interfaces/DependencyType.js"),J=require("@progress/kendo-react-dropdowns");function Fe(a){const y=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const u in a)if(u!=="default"){const c=Object.getOwnPropertyDescriptor(a,u);Object.defineProperty(y,u,c.get?c:{enumerable:!0,get:()=>a[u]})}}return y.default=a,Object.freeze(y)}const t=Fe(le),ge=[{type:m.DependencyType.FF},{type:m.DependencyType.FS},{type:m.DependencyType.SF},{type:m.DependencyType.SS}],fe=a=>{const[y,u]=t.useState(0),[c,S]=t.useState(),[r,T]=t.useState([...a.dependencyData||[]]),[E,M]=t.useState([]),n=ue.useGanttTaskModelFieldsContext(),K=pe.useLocalization(),o=e=>K.toLanguageString(e,i.messages[e]),C=o(i.editorTaskTitle),q=o(i.editorTaskStart),v=o(i.editorTaskEnd),P=o(i.editorTaskComplete),Q=o(i.editorTaskParent),U=o(i.editorTabGeneral),X=o(i.editorTabPredecessors),Y=o(i.editorTabSuccessors),D=o(i.editorValidationRequired),w=o(i.editorValidationStart),x=o(i.editorValidationEnd),R=o(i.editorValidationPercentCompleteRange),F=t.useMemo(()=>me.flatData(a.taskData||[],e=>e.children||[],e=>{const d={title:e[n.title],id:e[n.id],start:e[n.start],end:e[n.end],parentId:null};return n.parentId&&(d.parentId=e[n.parentId]),d}),[a.taskData,n]),Z=t.useMemo(()=>F.filter(e=>e.id!==a.dataItem.id),[F,a.dataItem]),ee=t.useMemo(()=>r.filter(e=>e.toId===a.dataItem.id),[r,a.dataItem]),te=t.useMemo(()=>r.filter(e=>e.fromId===a.dataItem.id),[r,a.dataItem]),_=t.useMemo(()=>r.filter(e=>e.id===null).map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,type:e.type})),[r]),V=t.useMemo(()=>r.filter(e=>e.id!==null&&e.uid).map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,type:e.type})),[r]),G=()=>{if(c){if(c.id){const e=r.filter(s=>s.id!==c.id);T(e);const d=r.filter(s=>s.id===c.id);M(s=>[...s,...d])}else{const e=r.filter(s=>s.uid!==c.uid);T(e);const d=r.filter(s=>s.uid===c.uid);M(s=>[...s,...d])}S(void 0)}},p=t.useCallback(e=>e||e===0?void 0:D,[D]),$=t.useCallback(e=>e||e===0?e>=0&&e<=1?void 0:R:D,[D,R]),h=t.useCallback((e,d)=>e&&d(n.end)&&e.getTime()>d(n.end).getTime()?w:void 0,[n,w]),N=t.useCallback((e,d)=>e&&d(n.start)&&e.getTime()<d(n.start).getTime()?x:void 0,[n,x]),B=t.useMemo(()=>[p,h],[p,h]),O=t.useMemo(()=>[p,N],[p,N]),ne=t.useMemo(()=>J.findByFieldValue(r,"fromId",null)||J.findByFieldValue(r,"toId",null),[r]),ae=e=>{ne||(u(e.selected),S(void 0))},z=e=>{S(e.dataItem)},de=()=>{const e={uid:b.guid(),id:null,fromId:null,toId:a.dataItem.id,type:m.DependencyType.FS};T([...r,e])},re=()=>{const e={uid:b.guid(),id:null,fromId:a.dataItem.id,toId:null,type:m.DependencyType.FS};T([...r,e])},L=(e,d,s)=>{const I={...e,uid:e.uid||b.guid(),[d]:s},A=r.findIndex(g=>g.id&&g.id===I.id||g.uid&&g.uid===I.uid);A>-1&&(r.splice(A,1,I),T([...r]))},j=t.useMemo(()=>ge.map(e=>{let d;switch(e.type){case m.DependencyType.FF:d=o(i.editorDependencyTypesFF);break;case m.DependencyType.FS:d=o(i.editorDependencyTypesFS);break;case m.DependencyType.SF:d=o(i.editorDependencyTypesSF);break;case m.DependencyType.SS:d=o(i.editorDependencyTypesSS);break;default:d=o(i.editorDependencyTypesFF);break}return{...e,name:d}}),[o]);t.useEffect(()=>{a.onDependencyCreate&&a.onDependencyCreate.call(void 0,{createdDependencies:_,updatedDependencies:V,deletedDependencies:E})},[_,V,E,a.onDependencyCreate]);const oe=a.dependencyData&&a.taskData,ie=t.createElement(l.FormElement,{style:{width:400},horizontal:!0},t.createElement(l.Field,{id:`${n.title}_gantteditor`,name:n.title,label:C,component:W.FormInput,validator:p}),t.createElement(l.Field,{id:`${n.start}_gantteditor`,name:n.start,label:q,component:k.FormDateTimePicker,validator:B}),t.createElement(l.Field,{id:`${n.end}_gantteditor`,name:n.end,label:v,component:k.FormDateTimePicker,validator:O}),t.createElement(l.Field,{id:`${n.percentComplete}_gantteditor`,name:n.percentComplete,label:P,component:H.FormNumericTextBox,validator:$})),se=t.createElement(l.FormElement,{style:{paddingInline:"4px"}},t.createElement("div",{className:"k-form-fieldset"},t.createElement("div",{className:"k-form-layout k-d-grid k-grid-cols-4 k-gap-x-2"},t.createElement(l.Field,{id:`${n.title}_gantteditor`,name:n.title,label:C,component:W.FormInput,validator:p}),t.createElement(l.Field,{id:`${n.start}_gantteditor`,name:n.start,label:q,component:k.FormDateTimePicker,validator:B}),t.createElement(l.Field,{id:`${n.end}_gantteditor`,name:n.end,label:v,component:k.FormDateTimePicker,validator:O}),t.createElement(l.Field,{id:`${n.percentComplete}_gantteditor`,name:n.percentComplete,label:P,component:H.FormNumericTextBox,validator:$}),n.parentId&&t.createElement(l.Field,{id:`${n.parentId}_gantteditor`,name:n.parentId||"",idField:n.id,label:Q,component:ye.FormDropDownList,data:Z,dataItem:a.dataItem})))),ce=t.createElement(f.TabStrip,{selected:y,onSelect:ae},t.createElement(f.TabStripTab,{title:U},se),t.createElement(f.TabStripTab,{title:X},t.createElement(Te.GanttEditorPredecessors,{flatTasks:F,predecessors:ee,dependencyTypes:j,selectedItem:c,onSelectRow:z,addPredecessorsDependency:de,deleteDependency:G,updateDependency:L})),t.createElement(f.TabStripTab,{title:Y},t.createElement(De.GanttEditorSuccessors,{flatTasks:F,successors:te,dependencyTypes:j,selectedItem:c,onSelectRow:z,addSuccessorsDependency:re,deleteDependency:G,updateDependency:L})));return oe?ce:ie};exports.GanttEditor=fe;
@@ -27,39 +27,24 @@ const he = [
27
27
  { type: s.FS },
28
28
  { type: s.SF },
29
29
  { type: s.SS }
30
- ], Xe = (r) => {
31
- const [O, Q] = t.useState(0), [l, D] = t.useState(), [d, p] = t.useState([...r.dependencyData || []]), [k, b] = t.useState([]), n = me(), U = pe(), o = (e) => U.toLanguageString(e, fe[e]), E = o(ye), F = o(Ie), M = o(De), C = o(Se), X = o(Te), Y = o(ge), Z = o(ke), j = o(be), u = o(Ee), v = o(Fe), P = o(Me), w = o(Ce), f = t.useMemo(
32
- () => le(
33
- r.taskData || [],
34
- (e) => e.children || [],
35
- (e) => {
36
- const a = {
37
- title: e[n.title],
38
- id: e[n.id],
39
- start: e[n.start],
40
- end: e[n.end],
41
- parentId: null
42
- };
43
- return n.parentId && (a.parentId = e[n.parentId]), a;
44
- }
45
- ),
46
- [r.taskData, n]
47
- ), ee = t.useMemo(
48
- () => f.filter((e) => e.id !== r.dataItem.id),
49
- [f, r.dataItem]
50
- ), te = t.useMemo(
51
- () => d.filter((e) => e.toId === r.dataItem.id),
52
- [d, r.dataItem]
53
- ), ne = t.useMemo(
54
- () => d.filter((e) => e.fromId === r.dataItem.id),
55
- [d, r.dataItem]
56
- ), V = t.useMemo(
57
- () => d.filter((e) => e.id === null).map((e) => ({ id: e.id, fromId: e.fromId, toId: e.toId, type: e.type })),
58
- [d]
59
- ), _ = t.useMemo(
60
- () => d.filter((e) => e.id !== null && e.uid).map((e) => ({ id: e.id, fromId: e.fromId, toId: e.toId, type: e.type })),
61
- [d]
62
- ), $ = () => {
30
+ ], Xe = (o) => {
31
+ const [O, Q] = t.useState(0), [l, D] = t.useState(), [d, p] = t.useState([...o.dependencyData || []]), [k, b] = t.useState([]), n = me(), U = pe(), r = (e) => U.toLanguageString(e, fe[e]), E = r(ye), F = r(Ie), M = r(De), C = r(Se), X = r(Te), Y = r(ge), Z = r(ke), j = r(be), u = r(Ee), v = r(Fe), P = r(Me), w = r(Ce), f = t.useMemo(() => le(
32
+ o.taskData || [],
33
+ (e) => e.children || [],
34
+ (e) => {
35
+ const a = {
36
+ title: e[n.title],
37
+ id: e[n.id],
38
+ start: e[n.start],
39
+ end: e[n.end],
40
+ parentId: null
41
+ };
42
+ return n.parentId && (a.parentId = e[n.parentId]), a;
43
+ }
44
+ ), [o.taskData, n]), ee = t.useMemo(
45
+ () => f.filter((e) => e.id !== o.dataItem.id),
46
+ [f, o.dataItem]
47
+ ), te = t.useMemo(() => d.filter((e) => e.toId === o.dataItem.id), [d, o.dataItem]), ne = t.useMemo(() => d.filter((e) => e.fromId === o.dataItem.id), [d, o.dataItem]), V = t.useMemo(() => d.filter((e) => e.id === null).map((e) => ({ id: e.id, fromId: e.fromId, toId: e.toId, type: e.type })), [d]), _ = t.useMemo(() => d.filter((e) => e.id !== null && e.uid).map((e) => ({ id: e.id, fromId: e.fromId, toId: e.toId, type: e.type })), [d]), $ = () => {
63
48
  if (l) {
64
49
  if (l.id) {
65
50
  const e = d.filter((i) => i.id !== l.id);
@@ -86,26 +71,29 @@ const he = [
86
71
  ), R = t.useCallback(
87
72
  (e, a) => e && a(n.start) && e.getTime() < a(n.start).getTime() ? P : void 0,
88
73
  [n, P]
89
- ), B = t.useMemo(
74
+ ), G = t.useMemo(
90
75
  () => [m, x],
91
76
  [m, x]
92
- ), G = t.useMemo(
77
+ ), N = t.useMemo(
93
78
  () => [m, R],
94
79
  [m, R]
95
- ), ae = t.useMemo(
96
- () => K(d, "fromId", null) || K(d, "toId", null),
97
- [d]
98
- ), de = (e) => {
80
+ ), ae = t.useMemo(() => K(d, "fromId", null) || K(d, "toId", null), [d]), de = (e) => {
99
81
  ae || (Q(e.selected), D(void 0));
100
- }, N = (e) => {
82
+ }, z = (e) => {
101
83
  D(e.dataItem);
102
- }, oe = () => {
103
- const e = { uid: g(), id: null, fromId: null, toId: r.dataItem.id, type: s.FS };
104
- p([...d, e]);
105
84
  }, re = () => {
106
- const e = { uid: g(), id: null, fromId: r.dataItem.id, toId: null, type: s.FS };
85
+ const e = { uid: g(), id: null, fromId: null, toId: o.dataItem.id, type: s.FS };
107
86
  p([...d, e]);
108
- }, z = (e, a, i) => {
87
+ }, oe = () => {
88
+ const e = {
89
+ uid: g(),
90
+ id: null,
91
+ fromId: o.dataItem.id,
92
+ toId: null,
93
+ type: s.FS
94
+ };
95
+ p([...d, e]);
96
+ }, q = (e, a, i) => {
109
97
  const S = {
110
98
  ...e,
111
99
  uid: e.uid || g(),
@@ -114,38 +102,38 @@ const he = [
114
102
  (y) => y.id && y.id === S.id || y.uid && y.uid === S.uid
115
103
  );
116
104
  L > -1 && (d.splice(L, 1, S), p([...d]));
117
- }, q = t.useMemo(() => he.map((e) => {
105
+ }, B = t.useMemo(() => he.map((e) => {
118
106
  let a;
119
107
  switch (e.type) {
120
108
  case s.FF:
121
- a = o(H);
109
+ a = r(H);
122
110
  break;
123
111
  case s.FS:
124
- a = o(we);
112
+ a = r(we);
125
113
  break;
126
114
  case s.SF:
127
- a = o(Pe);
115
+ a = r(Pe);
128
116
  break;
129
117
  case s.SS:
130
- a = o(ve);
118
+ a = r(ve);
131
119
  break;
132
120
  default:
133
- a = o(H);
121
+ a = r(H);
134
122
  break;
135
123
  }
136
124
  return {
137
125
  ...e,
138
126
  name: a
139
127
  };
140
- }), [o]);
128
+ }), [r]);
141
129
  t.useEffect(() => {
142
- r.onDependencyCreate && r.onDependencyCreate.call(void 0, {
130
+ o.onDependencyCreate && o.onDependencyCreate.call(void 0, {
143
131
  createdDependencies: V,
144
132
  updatedDependencies: _,
145
133
  deletedDependencies: k
146
134
  });
147
- }, [V, _, k, r.onDependencyCreate]);
148
- const ie = r.dependencyData && r.taskData, se = /* @__PURE__ */ t.createElement(A, { style: { width: 400 }, horizontal: !0 }, /* @__PURE__ */ t.createElement(
135
+ }, [V, _, k, o.onDependencyCreate]);
136
+ const ie = o.dependencyData && o.taskData, se = /* @__PURE__ */ t.createElement(A, { style: { width: 400 }, horizontal: !0 }, /* @__PURE__ */ t.createElement(
149
137
  c,
150
138
  {
151
139
  id: `${n.title}_gantteditor`,
@@ -161,7 +149,7 @@ const he = [
161
149
  name: n.start,
162
150
  label: F,
163
151
  component: I,
164
- validator: B
152
+ validator: G
165
153
  }
166
154
  ), /* @__PURE__ */ t.createElement(
167
155
  c,
@@ -170,7 +158,7 @@ const he = [
170
158
  name: n.end,
171
159
  label: M,
172
160
  component: I,
173
- validator: G
161
+ validator: N
174
162
  }
175
163
  ), /* @__PURE__ */ t.createElement(
176
164
  c,
@@ -197,7 +185,7 @@ const he = [
197
185
  name: n.start,
198
186
  label: F,
199
187
  component: I,
200
- validator: B
188
+ validator: G
201
189
  }
202
190
  ), /* @__PURE__ */ t.createElement(
203
191
  c,
@@ -206,7 +194,7 @@ const he = [
206
194
  name: n.end,
207
195
  label: M,
208
196
  component: I,
209
- validator: G
197
+ validator: N
210
198
  }
211
199
  ), /* @__PURE__ */ t.createElement(
212
200
  c,
@@ -226,7 +214,7 @@ const he = [
226
214
  label: X,
227
215
  component: Ve,
228
216
  data: ee,
229
- dataItem: r.dataItem
217
+ dataItem: o.dataItem
230
218
  }
231
219
  ))));
232
220
  return ie ? /* @__PURE__ */ t.createElement(ue, { selected: O, onSelect: de }, /* @__PURE__ */ t.createElement(T, { title: Y }, ce), /* @__PURE__ */ t.createElement(T, { title: Z }, /* @__PURE__ */ t.createElement(
@@ -234,24 +222,24 @@ const he = [
234
222
  {
235
223
  flatTasks: f,
236
224
  predecessors: te,
237
- dependencyTypes: q,
225
+ dependencyTypes: B,
238
226
  selectedItem: l,
239
- onSelectRow: N,
240
- addPredecessorsDependency: oe,
227
+ onSelectRow: z,
228
+ addPredecessorsDependency: re,
241
229
  deleteDependency: $,
242
- updateDependency: z
230
+ updateDependency: q
243
231
  }
244
232
  )), /* @__PURE__ */ t.createElement(T, { title: j }, /* @__PURE__ */ t.createElement(
245
233
  $e,
246
234
  {
247
235
  flatTasks: f,
248
236
  successors: ne,
249
- dependencyTypes: q,
237
+ dependencyTypes: B,
250
238
  selectedItem: l,
251
- onSelectRow: N,
252
- addSuccessorsDependency: re,
239
+ onSelectRow: z,
240
+ addSuccessorsDependency: oe,
253
241
  deleteDependency: $,
254
- updateDependency: z
242
+ updateDependency: q
255
243
  }
256
244
  ))) : se;
257
245
  };
@@ -50,19 +50,8 @@ const P = (e, t, l, o) => {
50
50
  return l.id === t.id;
51
51
  if (l && t.id === null)
52
52
  return l.uid === t.uid;
53
- }, r = n.useMemo(
54
- () => u(e, "type", t.type),
55
- [e, t.type]
56
- );
57
- return /* @__PURE__ */ n.createElement("td", { className: E(d() && "k-selected") }, /* @__PURE__ */ n.createElement(
58
- T,
59
- {
60
- textField: "name",
61
- data: e,
62
- value: r,
63
- onChange: i
64
- }
65
- ));
53
+ }, r = n.useMemo(() => u(e, "type", t.type), [e, t.type]);
54
+ return /* @__PURE__ */ n.createElement("td", { className: E(d() && "k-selected") }, /* @__PURE__ */ n.createElement(T, { textField: "name", data: e, value: r, onChange: i }));
66
55
  }, K = (e) => {
67
56
  var m;
68
57
  const [t, l] = n.useState([]), o = F(), i = (a) => o.toLanguageString(a, M[a]), d = i(I), r = i(L), c = i(N), f = i(R), y = n.useMemo(() => {
@@ -23,10 +23,7 @@ const B = (e, t, l, o) => {
23
23
  return l.id === t.id;
24
24
  if (l && t.id === null)
25
25
  return l.uid === t.uid;
26
- }, u = n.useMemo(
27
- () => s(e, "id", t.toId),
28
- [e, t.toId]
29
- ), y = (d) => {
26
+ }, u = n.useMemo(() => s(e, "id", t.toId), [e, t.toId]), y = (d) => {
30
27
  const a = x(e, d.filter);
31
28
  r(a);
32
29
  };
@@ -50,19 +47,8 @@ const B = (e, t, l, o) => {
50
47
  return l.id === t.id;
51
48
  if (l && t.id === null)
52
49
  return l.uid === t.uid;
53
- }, c = n.useMemo(
54
- () => s(e, "type", t.type),
55
- [e, t.type]
56
- );
57
- return /* @__PURE__ */ n.createElement("td", { className: E(r() && "k-selected") }, /* @__PURE__ */ n.createElement(
58
- h,
59
- {
60
- textField: "name",
61
- data: e,
62
- value: c,
63
- onChange: i
64
- }
65
- ));
50
+ }, c = n.useMemo(() => s(e, "type", t.type), [e, t.type]);
51
+ return /* @__PURE__ */ n.createElement("td", { className: E(r() && "k-selected") }, /* @__PURE__ */ n.createElement(h, { textField: "name", data: e, value: c, onChange: i }));
66
52
  }, K = (e) => {
67
53
  var d;
68
54
  const [t, l] = n.useState([]), o = N(), i = (a) => o.toLanguageString(a, b[a]), r = i(M), c = i(I), m = i(L), u = i(F), y = n.useMemo(() => {
@@ -21,7 +21,11 @@ const P = (a) => {
21
21
  const { onCancel: l, onDelete: c, onClose: d, onSubmit: m, ...D } = a, I = t.useRef(a.dataItem), [n, f] = t.useState({}), C = L(), i = (e) => C.toLanguageString(e, T[e]), g = i(V), h = i(x), b = i(A), E = i(N), k = t.useCallback(
22
22
  (e) => {
23
23
  if (l) {
24
- const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
24
+ const o = {
25
+ syntheticEvent: e,
26
+ nativeEvent: e.nativeEvent,
27
+ dataItem: a.dataItem
28
+ };
25
29
  l.call(void 0, o);
26
30
  }
27
31
  },
@@ -29,7 +33,11 @@ const P = (a) => {
29
33
  ), S = t.useCallback(
30
34
  (e) => {
31
35
  if (c) {
32
- const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
36
+ const o = {
37
+ syntheticEvent: e,
38
+ nativeEvent: e.nativeEvent,
39
+ dataItem: a.dataItem
40
+ };
33
41
  c.call(void 0, o);
34
42
  }
35
43
  },
@@ -37,7 +45,11 @@ const P = (a) => {
37
45
  ), M = t.useCallback(
38
46
  ({ syntheticEvent: e }) => {
39
47
  if (d) {
40
- const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
48
+ const o = {
49
+ syntheticEvent: e,
50
+ nativeEvent: e.nativeEvent,
51
+ dataItem: a.dataItem
52
+ };
41
53
  d.call(void 0, o);
42
54
  }
43
55
  },
@@ -56,18 +68,9 @@ const P = (a) => {
56
68
  }
57
69
  },
58
70
  [m, n]
59
- ), u = t.useMemo(
60
- () => v(n.createdDependencies, "fromId", null) || v(n.createdDependencies, "toId", null),
61
- [n]
62
- ), p = t.useMemo(
63
- () => n.createdDependencies && n.createdDependencies.length && u === void 0 || n.updatedDependencies && n.updatedDependencies.length || n.deletedDependencies && n.deletedDependencies.length,
64
- [n, u]
65
- ), y = t.useCallback(
66
- (e) => {
67
- f(e);
68
- },
69
- []
70
- ), w = /* @__PURE__ */ t.createElement(
71
+ ), u = t.useMemo(() => v(n.createdDependencies, "fromId", null) || v(n.createdDependencies, "toId", null), [n]), p = t.useMemo(() => n.createdDependencies && n.createdDependencies.length && u === void 0 || n.updatedDependencies && n.updatedDependencies.length || n.deletedDependencies && n.deletedDependencies.length, [n, u]), y = t.useCallback((e) => {
72
+ f(e);
73
+ }, []), w = /* @__PURE__ */ t.createElement(
71
74
  O,
72
75
  {
73
76
  initialValues: a.dataItem,
@@ -101,7 +104,17 @@ const P = (a) => {
101
104
  themeColor: "primary"
102
105
  },
103
106
  g
104
- ), /* @__PURE__ */ t.createElement(s, { onClick: k, type: "button", icon: "cancel", svgIcon: j }, h), /* @__PURE__ */ t.createElement("div", { className: "k-spacer" }), c && /* @__PURE__ */ t.createElement(s, { onClick: S, icon: "trash", svgIcon: q, fillMode: "flat", themeColor: "primary" }, b))
107
+ ), /* @__PURE__ */ t.createElement(s, { onClick: k, type: "button", icon: "cancel", svgIcon: j }, h), /* @__PURE__ */ t.createElement("div", { className: "k-spacer" }), c && /* @__PURE__ */ t.createElement(
108
+ s,
109
+ {
110
+ onClick: S,
111
+ icon: "trash",
112
+ svgIcon: q,
113
+ fillMode: "flat",
114
+ themeColor: "primary"
115
+ },
116
+ b
117
+ ))
105
118
  ),
106
119
  ...D
107
120
  }