@progress/kendo-react-gantt 7.2.4-develop.2 → 7.2.4-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.
Files changed (151) hide show
  1. package/Gantt.js +8 -0
  2. package/Gantt.mjs +411 -0
  3. package/cells/FilterCells/GanttBooleanFilter.js +8 -0
  4. package/cells/FilterCells/GanttBooleanFilter.mjs +27 -0
  5. package/cells/FilterCells/GanttDateFilter.js +8 -0
  6. package/cells/FilterCells/GanttDateFilter.mjs +27 -0
  7. package/cells/FilterCells/GanttNumericFilter.js +8 -0
  8. package/cells/FilterCells/GanttNumericFilter.mjs +27 -0
  9. package/cells/FilterCells/GanttTextFilter.js +8 -0
  10. package/cells/FilterCells/GanttTextFilter.mjs +27 -0
  11. package/cells/FilterCells/utils.js +8 -0
  12. package/cells/FilterCells/utils.mjs +59 -0
  13. package/components/BaseView.js +8 -0
  14. package/components/BaseView.mjs +239 -0
  15. package/components/GanttDependency.js +8 -0
  16. package/components/GanttDependency.mjs +58 -0
  17. package/components/GanttTask.js +8 -0
  18. package/components/GanttTask.mjs +169 -0
  19. package/components/GanttTreelist.js +8 -0
  20. package/components/GanttTreelist.mjs +571 -0
  21. package/components/toolbar/AddButton.js +8 -0
  22. package/components/toolbar/AddButton.mjs +56 -0
  23. package/components/toolbar/Toolbar.js +8 -0
  24. package/components/toolbar/Toolbar.mjs +34 -0
  25. package/components/toolbar/view-selector/ViewSelector.js +8 -0
  26. package/components/toolbar/view-selector/ViewSelector.mjs +32 -0
  27. package/components/toolbar/view-selector/ViewSelectorItem.js +8 -0
  28. package/components/toolbar/view-selector/ViewSelectorItem.mjs +39 -0
  29. package/components/toolbar/view-selector/ViewSelectorList.js +8 -0
  30. package/components/toolbar/view-selector/ViewSelectorList.mjs +36 -0
  31. package/constants/index.js +8 -0
  32. package/constants/index.mjs +52 -0
  33. package/context/GanttContext.js +8 -0
  34. package/context/GanttContext.mjs +103 -0
  35. package/context/GanttViewContext.js +8 -0
  36. package/context/GanttViewContext.mjs +38 -0
  37. package/dist/cdn/js/kendo-react-gantt.js +8 -5
  38. package/editors/FormDateTimePicker.js +8 -0
  39. package/editors/FormDateTimePicker.mjs +29 -0
  40. package/editors/FormDropDownList.js +8 -0
  41. package/editors/FormDropDownList.mjs +62 -0
  42. package/editors/FormInput.js +8 -0
  43. package/editors/FormInput.mjs +29 -0
  44. package/editors/FormNumericTextBox.js +8 -0
  45. package/editors/FormNumericTextBox.mjs +30 -0
  46. package/editors/GanttEditor.js +8 -0
  47. package/editors/GanttEditor.mjs +260 -0
  48. package/editors/GanttEditorPredecessors.js +8 -0
  49. package/editors/GanttEditorPredecessors.mjs +121 -0
  50. package/editors/GanttEditorSuccessors.js +8 -0
  51. package/editors/GanttEditorSuccessors.mjs +121 -0
  52. package/editors/GanttForm.js +8 -0
  53. package/editors/GanttForm.mjs +113 -0
  54. package/editors/GanttRemoveDialog.js +8 -0
  55. package/editors/GanttRemoveDialog.mjs +49 -0
  56. package/hooks/useControlledState.js +8 -0
  57. package/hooks/useControlledState.mjs +21 -0
  58. package/hooks/useDictionaryStore.js +8 -0
  59. package/hooks/useDictionaryStore.mjs +30 -0
  60. package/hooks/useGanttTask.js +8 -0
  61. package/hooks/useGanttTask.mjs +35 -0
  62. package/index.d.mts +1394 -5
  63. package/index.d.ts +1394 -32
  64. package/index.js +8 -5
  65. package/index.mjs +50 -3087
  66. package/interfaces/DependencyType.js +8 -0
  67. package/interfaces/DependencyType.mjs +12 -0
  68. package/messages/index.js +8 -0
  69. package/messages/index.mjs +137 -0
  70. package/package-metadata.js +8 -0
  71. package/package-metadata.mjs +19 -0
  72. package/package.json +12 -12
  73. package/rows/GanttRow.js +8 -0
  74. package/rows/GanttRow.mjs +13 -0
  75. package/utils/data-operations.js +8 -0
  76. package/utils/data-operations.mjs +183 -0
  77. package/utils/index.js +8 -0
  78. package/utils/index.mjs +263 -0
  79. package/views/GanttDayView.js +8 -0
  80. package/views/GanttDayView.mjs +94 -0
  81. package/views/GanttMonthView.js +8 -0
  82. package/views/GanttMonthView.mjs +82 -0
  83. package/views/GanttWeekView.js +8 -0
  84. package/views/GanttWeekView.mjs +81 -0
  85. package/views/GanttYearView.js +8 -0
  86. package/views/GanttYearView.mjs +73 -0
  87. package/Gantt.d.ts +0 -29
  88. package/cells/FilterCells/GanttBooleanFilter.d.ts +0 -14
  89. package/cells/FilterCells/GanttDateFilter.d.ts +0 -14
  90. package/cells/FilterCells/GanttNumericFilter.d.ts +0 -14
  91. package/cells/FilterCells/GanttTextFilter.d.ts +0 -14
  92. package/cells/FilterCells/utils.d.ts +0 -42
  93. package/components/BaseView.d.ts +0 -24
  94. package/components/GanttDependency.d.ts +0 -13
  95. package/components/GanttTask.d.ts +0 -16
  96. package/components/GanttTreelist.d.ts +0 -143
  97. package/components/toolbar/AddButton.d.ts +0 -16
  98. package/components/toolbar/Toolbar.d.ts +0 -25
  99. package/components/toolbar/view-selector/ViewSelector.d.ts +0 -28
  100. package/components/toolbar/view-selector/ViewSelectorItem.d.ts +0 -15
  101. package/components/toolbar/view-selector/ViewSelectorList.d.ts +0 -7
  102. package/constants/index.d.ts +0 -57
  103. package/context/GanttContext.d.ts +0 -125
  104. package/context/GanttViewContext.d.ts +0 -44
  105. package/editors/FormDateTimePicker.d.ts +0 -9
  106. package/editors/FormDropDownList.d.ts +0 -9
  107. package/editors/FormInput.d.ts +0 -9
  108. package/editors/FormNumericTextBox.d.ts +0 -9
  109. package/editors/GanttEditor.d.ts +0 -21
  110. package/editors/GanttEditorPredecessors.d.ts +0 -25
  111. package/editors/GanttEditorSuccessors.d.ts +0 -25
  112. package/editors/GanttForm.d.ts +0 -70
  113. package/editors/GanttRemoveDialog.d.ts +0 -48
  114. package/hooks/useControlledState.d.ts +0 -8
  115. package/hooks/useDictionaryStore.d.ts +0 -22
  116. package/hooks/useGanttTask.d.ts +0 -8
  117. package/interfaces/AddDirection.d.ts +0 -10
  118. package/interfaces/DataItem.d.ts +0 -10
  119. package/interfaces/DateRange.d.ts +0 -12
  120. package/interfaces/DependencyModelFields.d.ts +0 -29
  121. package/interfaces/DependencyType.d.ts +0 -19
  122. package/interfaces/GanttBaseProps.d.ts +0 -66
  123. package/interfaces/GanttCellProps.d.ts +0 -45
  124. package/interfaces/GanttColumnProps.d.ts +0 -40
  125. package/interfaces/GanttDependency.d.ts +0 -30
  126. package/interfaces/GanttDependencyModelFields.d.ts +0 -29
  127. package/interfaces/GanttFilterCellProps.d.ts +0 -10
  128. package/interfaces/GanttFilterOperator.d.ts +0 -10
  129. package/interfaces/GanttHeaderCellProps.d.ts +0 -10
  130. package/interfaces/GanttNoRecordsProps.d.ts +0 -13
  131. package/interfaces/GanttProps.d.ts +0 -151
  132. package/interfaces/GanttRowProps.d.ts +0 -95
  133. package/interfaces/GanttSelectableSettings.d.ts +0 -22
  134. package/interfaces/GanttSlotType.d.ts +0 -8
  135. package/interfaces/GanttSortSettings.d.ts +0 -17
  136. package/interfaces/GanttTaskModelFields.d.ts +0 -64
  137. package/interfaces/GanttView.d.ts +0 -80
  138. package/interfaces/GanttViewTimelineHeaderCellProps.d.ts +0 -23
  139. package/interfaces/Rectangle.d.ts +0 -10
  140. package/interfaces/Slot.d.ts +0 -16
  141. package/interfaces/TaskModelFields.d.ts +0 -20
  142. package/interfaces/events.d.ts +0 -298
  143. package/messages/index.d.ts +0 -194
  144. package/package-metadata.d.ts +0 -9
  145. package/rows/GanttRow.d.ts +0 -8
  146. package/utils/data-operations.d.ts +0 -47
  147. package/utils/index.d.ts +0 -182
  148. package/views/GanttDayView.d.ts +0 -21
  149. package/views/GanttMonthView.d.ts +0 -17
  150. package/views/GanttWeekView.d.ts +0 -17
  151. package/views/GanttYearView.d.ts +0 -17
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
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;
@@ -0,0 +1,260 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as t from "react";
10
+ import { FormElement as A, Field as c } from "@progress/kendo-react-form";
11
+ import { flatData as le } from "@progress/kendo-react-treelist";
12
+ import { useGanttTaskModelFieldsContext as me } from "../context/GanttContext.mjs";
13
+ import { FormInput as W } from "./FormInput.mjs";
14
+ import { useLocalization as pe } from "@progress/kendo-react-intl";
15
+ import { TabStrip as ue, TabStripTab as T } from "@progress/kendo-react-layout";
16
+ import { messages as fe, editorTaskTitle as ye, editorTaskStart as Ie, editorTaskEnd as De, editorTaskComplete as Se, editorTaskParent as Te, editorTabGeneral as ge, editorTabPredecessors as ke, editorTabSuccessors as be, editorValidationRequired as Ee, editorValidationStart as Fe, editorValidationEnd as Me, editorValidationPercentCompleteRange as Ce, editorDependencyTypesFF as H, editorDependencyTypesSS as ve, editorDependencyTypesSF as Pe, editorDependencyTypesFS as we } from "../messages/index.mjs";
17
+ import { FormDateTimePicker as I } from "./FormDateTimePicker.mjs";
18
+ import { FormNumericTextBox as J } from "./FormNumericTextBox.mjs";
19
+ import { FormDropDownList as Ve } from "./FormDropDownList.mjs";
20
+ import { guid as g } from "@progress/kendo-react-common";
21
+ import { GanttEditorPredecessors as _e } from "./GanttEditorPredecessors.mjs";
22
+ import { GanttEditorSuccessors as $e } from "./GanttEditorSuccessors.mjs";
23
+ import { DependencyType as s } from "../interfaces/DependencyType.mjs";
24
+ import { findByFieldValue as K } from "@progress/kendo-react-dropdowns";
25
+ const he = [
26
+ { type: s.FF },
27
+ { type: s.FS },
28
+ { type: s.SF },
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
+ ), $ = () => {
63
+ if (l) {
64
+ if (l.id) {
65
+ const e = d.filter((i) => i.id !== l.id);
66
+ p(e);
67
+ const a = d.filter((i) => i.id === l.id);
68
+ b((i) => [...i, ...a]);
69
+ } else {
70
+ const e = d.filter((i) => i.uid !== l.uid);
71
+ p(e);
72
+ const a = d.filter((i) => i.uid === l.uid);
73
+ b((i) => [...i, ...a]);
74
+ }
75
+ D(void 0);
76
+ }
77
+ }, m = t.useCallback(
78
+ (e) => e || e === 0 ? void 0 : u,
79
+ [u]
80
+ ), h = t.useCallback(
81
+ (e) => e || e === 0 ? e >= 0 && e <= 1 ? void 0 : w : u,
82
+ [u, w]
83
+ ), x = t.useCallback(
84
+ (e, a) => e && a(n.end) && e.getTime() > a(n.end).getTime() ? v : void 0,
85
+ [n, v]
86
+ ), R = t.useCallback(
87
+ (e, a) => e && a(n.start) && e.getTime() < a(n.start).getTime() ? P : void 0,
88
+ [n, P]
89
+ ), B = t.useMemo(
90
+ () => [m, x],
91
+ [m, x]
92
+ ), G = t.useMemo(
93
+ () => [m, R],
94
+ [m, R]
95
+ ), ae = t.useMemo(
96
+ () => K(d, "fromId", null) || K(d, "toId", null),
97
+ [d]
98
+ ), de = (e) => {
99
+ ae || (Q(e.selected), D(void 0));
100
+ }, N = (e) => {
101
+ 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
+ }, re = () => {
106
+ const e = { uid: g(), id: null, fromId: r.dataItem.id, toId: null, type: s.FS };
107
+ p([...d, e]);
108
+ }, z = (e, a, i) => {
109
+ const S = {
110
+ ...e,
111
+ uid: e.uid || g(),
112
+ [a]: i
113
+ }, L = d.findIndex(
114
+ (y) => y.id && y.id === S.id || y.uid && y.uid === S.uid
115
+ );
116
+ L > -1 && (d.splice(L, 1, S), p([...d]));
117
+ }, q = t.useMemo(() => he.map((e) => {
118
+ let a;
119
+ switch (e.type) {
120
+ case s.FF:
121
+ a = o(H);
122
+ break;
123
+ case s.FS:
124
+ a = o(we);
125
+ break;
126
+ case s.SF:
127
+ a = o(Pe);
128
+ break;
129
+ case s.SS:
130
+ a = o(ve);
131
+ break;
132
+ default:
133
+ a = o(H);
134
+ break;
135
+ }
136
+ return {
137
+ ...e,
138
+ name: a
139
+ };
140
+ }), [o]);
141
+ t.useEffect(() => {
142
+ r.onDependencyCreate && r.onDependencyCreate.call(void 0, {
143
+ createdDependencies: V,
144
+ updatedDependencies: _,
145
+ deletedDependencies: k
146
+ });
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(
149
+ c,
150
+ {
151
+ id: `${n.title}_gantteditor`,
152
+ name: n.title,
153
+ label: E,
154
+ component: W,
155
+ validator: m
156
+ }
157
+ ), /* @__PURE__ */ t.createElement(
158
+ c,
159
+ {
160
+ id: `${n.start}_gantteditor`,
161
+ name: n.start,
162
+ label: F,
163
+ component: I,
164
+ validator: B
165
+ }
166
+ ), /* @__PURE__ */ t.createElement(
167
+ c,
168
+ {
169
+ id: `${n.end}_gantteditor`,
170
+ name: n.end,
171
+ label: M,
172
+ component: I,
173
+ validator: G
174
+ }
175
+ ), /* @__PURE__ */ t.createElement(
176
+ c,
177
+ {
178
+ id: `${n.percentComplete}_gantteditor`,
179
+ name: n.percentComplete,
180
+ label: C,
181
+ component: J,
182
+ validator: h
183
+ }
184
+ )), ce = /* @__PURE__ */ t.createElement(A, { style: { paddingInline: "4px" } }, /* @__PURE__ */ t.createElement("div", { className: "k-form-fieldset" }, /* @__PURE__ */ t.createElement("div", { className: "k-form-layout k-d-grid k-grid-cols-4 k-gap-x-2" }, /* @__PURE__ */ t.createElement(
185
+ c,
186
+ {
187
+ id: `${n.title}_gantteditor`,
188
+ name: n.title,
189
+ label: E,
190
+ component: W,
191
+ validator: m
192
+ }
193
+ ), /* @__PURE__ */ t.createElement(
194
+ c,
195
+ {
196
+ id: `${n.start}_gantteditor`,
197
+ name: n.start,
198
+ label: F,
199
+ component: I,
200
+ validator: B
201
+ }
202
+ ), /* @__PURE__ */ t.createElement(
203
+ c,
204
+ {
205
+ id: `${n.end}_gantteditor`,
206
+ name: n.end,
207
+ label: M,
208
+ component: I,
209
+ validator: G
210
+ }
211
+ ), /* @__PURE__ */ t.createElement(
212
+ c,
213
+ {
214
+ id: `${n.percentComplete}_gantteditor`,
215
+ name: n.percentComplete,
216
+ label: C,
217
+ component: J,
218
+ validator: h
219
+ }
220
+ ), n.parentId && /* @__PURE__ */ t.createElement(
221
+ c,
222
+ {
223
+ id: `${n.parentId}_gantteditor`,
224
+ name: n.parentId || "",
225
+ idField: n.id,
226
+ label: X,
227
+ component: Ve,
228
+ data: ee,
229
+ dataItem: r.dataItem
230
+ }
231
+ ))));
232
+ 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(
233
+ _e,
234
+ {
235
+ flatTasks: f,
236
+ predecessors: te,
237
+ dependencyTypes: q,
238
+ selectedItem: l,
239
+ onSelectRow: N,
240
+ addPredecessorsDependency: oe,
241
+ deleteDependency: $,
242
+ updateDependency: z
243
+ }
244
+ )), /* @__PURE__ */ t.createElement(T, { title: j }, /* @__PURE__ */ t.createElement(
245
+ $e,
246
+ {
247
+ flatTasks: f,
248
+ successors: ne,
249
+ dependencyTypes: q,
250
+ selectedItem: l,
251
+ onSelectRow: N,
252
+ addSuccessorsDependency: re,
253
+ deleteDependency: $,
254
+ updateDependency: z
255
+ }
256
+ ))) : se;
257
+ };
258
+ export {
259
+ Xe as GanttEditor
260
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),d=require("@progress/kendo-react-dropdowns"),f=require("@progress/kendo-react-grid"),C=require("@progress/kendo-react-buttons"),S=require("@progress/kendo-svg-icons"),T=require("@progress/kendo-react-common"),m=require("../messages/index.js"),E=require("@progress/kendo-react-intl"),h=require("@progress/kendo-data-query");function R(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const a=R(v),q=(e,t,n,i)=>{const[o,c]=a.useState(e),r=a.useRef(null),s=l=>{i(t,"fromId",l.target.value.id)},g=()=>{if(n&&!t.uid)return n.id===t.id;if(n&&t.id===null)return n.uid===t.uid},D=a.useMemo(()=>d.findByFieldValue(e,"id",t.fromId),[e,t.fromId]),y=l=>{const u=h.filterBy(e,l.filter);c(u)};return a.createElement("td",{ref:r,className:T.classNames(g()&&"k-selected")},a.createElement(d.DropDownList,{textField:"title",data:o,value:D,onChange:s,filterable:!0,onFilterChange:y,required:!0}))},M=(e,t,n,i)=>{const o=s=>{i(t,"type",s.target.value.type)},c=()=>{if(n&&!t.uid)return n.id===t.id;if(n&&t.id===null)return n.uid===t.uid},r=a.useMemo(()=>d.findByFieldValue(e,"type",t.type),[e,t.type]);return a.createElement("td",{className:T.classNames(c()&&"k-selected")},a.createElement(d.DropDownList,{textField:"name",data:e,value:r,onChange:o}))},B=e=>{var y;const[t,n]=a.useState([]),i=E.useLocalization(),o=l=>i.toLanguageString(l,m.messages[l]),c=o(m.editorAdd),r=o(m.editorRemove),s=o(m.editorDependencyNameLabel),g=o(m.editorDependencyTypeLabel),D=a.useMemo(()=>{const l=e.predecessors.map(u=>{const k=d.findByFieldValue(e.flatTasks,"id",u.fromId),b=d.findByFieldValue(e.dependencyTypes,"type",u.type);return{...u,taskTitle:k?k.title:"",typeName:b?b.type:""}});return h.orderBy(l,t)},[e.predecessors,e.dependencyTypes,e.flatTasks,t]);return a.createElement(f.Grid,{data:D,sort:t,sortable:!0,onRowClick:e.onSelectRow,onSortChange:l=>{n(l.sort)},style:{height:"23em"}},a.createElement(f.GridToolbar,null,a.createElement(C.Button,{icon:"plus",svgIcon:S.plusIcon,onClick:e.addPredecessorsDependency},c),a.createElement(C.Button,{icon:"minus",svgIcon:S.minusIcon,onClick:e.deleteDependency,disabled:((y=e.selectedItem)==null?void 0:y.id)===void 0},r)),a.createElement(f.GridColumn,{field:"taskTitle",title:s,cell:l=>q(e.flatTasks,l.dataItem,e.selectedItem,e.updateDependency)}),a.createElement(f.GridColumn,{field:"typeName",title:g,cell:l=>M(e.dependencyTypes,l.dataItem,e.selectedItem,e.updateDependency)}))};exports.GanttEditorPredecessors=B;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as n from "react";
10
+ import { findByFieldValue as u, DropDownList as T } from "@progress/kendo-react-dropdowns";
11
+ import { Grid as k, GridToolbar as v, GridColumn as C } from "@progress/kendo-react-grid";
12
+ import { Button as D } from "@progress/kendo-react-buttons";
13
+ import { plusIcon as S, minusIcon as b } from "@progress/kendo-svg-icons";
14
+ import { classNames as E } from "@progress/kendo-react-common";
15
+ import { messages as M, editorAdd as I, editorRemove as L, editorDependencyNameLabel as N, editorDependencyTypeLabel as R } from "../messages/index.mjs";
16
+ import { useLocalization as F } from "@progress/kendo-react-intl";
17
+ import { orderBy as B, filterBy as G } from "@progress/kendo-data-query";
18
+ const P = (e, t, l, o) => {
19
+ const [i, d] = n.useState(e), r = n.useRef(null), c = (a) => {
20
+ o(t, "fromId", a.target.value.id);
21
+ }, f = () => {
22
+ if (l && !t.uid)
23
+ return l.id === t.id;
24
+ if (l && t.id === null)
25
+ return l.uid === t.uid;
26
+ }, y = n.useMemo(
27
+ () => u(e, "id", t.fromId),
28
+ [e, t.fromId]
29
+ ), m = (a) => {
30
+ const s = G(e, a.filter);
31
+ d(s);
32
+ };
33
+ return /* @__PURE__ */ n.createElement("td", { ref: r, className: E(f() && "k-selected") }, /* @__PURE__ */ n.createElement(
34
+ T,
35
+ {
36
+ textField: "title",
37
+ data: i,
38
+ value: y,
39
+ onChange: c,
40
+ filterable: !0,
41
+ onFilterChange: m,
42
+ required: !0
43
+ }
44
+ ));
45
+ }, w = (e, t, l, o) => {
46
+ const i = (c) => {
47
+ o(t, "type", c.target.value.type);
48
+ }, d = () => {
49
+ if (l && !t.uid)
50
+ return l.id === t.id;
51
+ if (l && t.id === null)
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
+ ));
66
+ }, K = (e) => {
67
+ var m;
68
+ 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(() => {
69
+ const a = e.predecessors.map((s) => {
70
+ const g = u(e.flatTasks, "id", s.fromId), h = u(e.dependencyTypes, "type", s.type);
71
+ return {
72
+ ...s,
73
+ taskTitle: g ? g.title : "",
74
+ typeName: h ? h.type : ""
75
+ };
76
+ });
77
+ return B(a, t);
78
+ }, [e.predecessors, e.dependencyTypes, e.flatTasks, t]);
79
+ return /* @__PURE__ */ n.createElement(
80
+ k,
81
+ {
82
+ data: y,
83
+ sort: t,
84
+ sortable: !0,
85
+ onRowClick: e.onSelectRow,
86
+ onSortChange: (a) => {
87
+ l(a.sort);
88
+ },
89
+ style: { height: "23em" }
90
+ },
91
+ /* @__PURE__ */ n.createElement(v, null, /* @__PURE__ */ n.createElement(D, { icon: "plus", svgIcon: S, onClick: e.addPredecessorsDependency }, d), /* @__PURE__ */ n.createElement(
92
+ D,
93
+ {
94
+ icon: "minus",
95
+ svgIcon: b,
96
+ onClick: e.deleteDependency,
97
+ disabled: ((m = e.selectedItem) == null ? void 0 : m.id) === void 0
98
+ },
99
+ r
100
+ )),
101
+ /* @__PURE__ */ n.createElement(
102
+ C,
103
+ {
104
+ field: "taskTitle",
105
+ title: c,
106
+ cell: (a) => P(e.flatTasks, a.dataItem, e.selectedItem, e.updateDependency)
107
+ }
108
+ ),
109
+ /* @__PURE__ */ n.createElement(
110
+ C,
111
+ {
112
+ field: "typeName",
113
+ title: f,
114
+ cell: (a) => w(e.dependencyTypes, a.dataItem, e.selectedItem, e.updateDependency)
115
+ }
116
+ )
117
+ );
118
+ };
119
+ export {
120
+ K as GanttEditorPredecessors
121
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react"),r=require("@progress/kendo-react-dropdowns"),m=require("@progress/kendo-react-grid"),b=require("@progress/kendo-react-buttons"),C=require("@progress/kendo-svg-icons"),v=require("@progress/kendo-react-common"),y=require("../messages/index.js"),h=require("@progress/kendo-react-intl"),T=require("@progress/kendo-data-query");function R(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const a=R(E),q=(e,t,n,l)=>{const[i,c]=a.useState(e),s=o=>{l(t,"toId",o.target.value.id)},u=()=>{if(n&&!t.uid)return n.id===t.id;if(n&&t.id===null)return n.uid===t.uid},f=a.useMemo(()=>r.findByFieldValue(e,"id",t.toId),[e,t.toId]),g=o=>{const d=T.filterBy(e,o.filter);c(d)};return a.createElement("td",{className:v.classNames(u()&&"k-selected")},a.createElement(r.DropDownList,{textField:"title",data:i,value:f,onChange:s,filterable:!0,onFilterChange:g,required:!0}))},M=(e,t,n,l)=>{const i=u=>{l(t,"type",u.target.value.type)},c=()=>{if(n&&!t.uid)return n.id===t.id;if(n&&t.id===null)return n.uid===t.uid},s=a.useMemo(()=>r.findByFieldValue(e,"type",t.type),[e,t.type]);return a.createElement("td",{className:v.classNames(c()&&"k-selected")},a.createElement(r.DropDownList,{textField:"name",data:e,value:s,onChange:i}))},p=e=>{var o;const[t,n]=a.useState([]),l=h.useLocalization(),i=d=>l.toLanguageString(d,y.messages[d]),c=i(y.editorAdd),s=i(y.editorRemove),u=i(y.editorDependencyNameLabel),f=i(y.editorDependencyTypeLabel),g=a.useMemo(()=>{const d=e.successors.map(D=>{const S=r.findByFieldValue(e.flatTasks,"id",D.toId),k=r.findByFieldValue(e.dependencyTypes,"type",D.type);return{...D,taskTitle:S?S.title:"",typeName:k?k.type:""}});return T.orderBy(d,t)},[e.successors,e.dependencyTypes,e.flatTasks,t]);return a.createElement(m.Grid,{data:g,sort:t,sortable:!0,onRowClick:e.onSelectRow,onSortChange:d=>{n(d.sort)},style:{height:"23em"}},a.createElement(m.GridToolbar,null,a.createElement(b.Button,{icon:"plus",svgIcon:C.plusIcon,onClick:e.addSuccessorsDependency},c),a.createElement(b.Button,{icon:"minus",svgIcon:C.minusIcon,onClick:e.deleteDependency,disabled:((o=e.selectedItem)==null?void 0:o.id)===void 0},s)),a.createElement(m.GridColumn,{field:"taskTitle",title:u,cell:d=>q(e.flatTasks,d.dataItem,e.selectedItem,e.updateDependency)}),a.createElement(m.GridColumn,{field:"type",title:f,cell:d=>M(e.dependencyTypes,d.dataItem,e.selectedItem,e.updateDependency)}))};exports.GanttEditorSuccessors=p;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as n from "react";
10
+ import { findByFieldValue as s, DropDownList as h } from "@progress/kendo-react-dropdowns";
11
+ import { Grid as T, GridToolbar as k, GridColumn as D } from "@progress/kendo-react-grid";
12
+ import { Button as S } from "@progress/kendo-react-buttons";
13
+ import { plusIcon as p, minusIcon as v } from "@progress/kendo-svg-icons";
14
+ import { classNames as E } from "@progress/kendo-react-common";
15
+ import { messages as b, editorAdd as M, editorRemove as I, editorDependencyNameLabel as L, editorDependencyTypeLabel as F } from "../messages/index.mjs";
16
+ import { useLocalization as N } from "@progress/kendo-react-intl";
17
+ import { orderBy as R, filterBy as x } from "@progress/kendo-data-query";
18
+ const B = (e, t, l, o) => {
19
+ const [i, r] = n.useState(e), c = (d) => {
20
+ o(t, "toId", d.target.value.id);
21
+ }, m = () => {
22
+ if (l && !t.uid)
23
+ return l.id === t.id;
24
+ if (l && t.id === null)
25
+ return l.uid === t.uid;
26
+ }, u = n.useMemo(
27
+ () => s(e, "id", t.toId),
28
+ [e, t.toId]
29
+ ), y = (d) => {
30
+ const a = x(e, d.filter);
31
+ r(a);
32
+ };
33
+ return /* @__PURE__ */ n.createElement("td", { className: E(m() && "k-selected") }, /* @__PURE__ */ n.createElement(
34
+ h,
35
+ {
36
+ textField: "title",
37
+ data: i,
38
+ value: u,
39
+ onChange: c,
40
+ filterable: !0,
41
+ onFilterChange: y,
42
+ required: !0
43
+ }
44
+ ));
45
+ }, G = (e, t, l, o) => {
46
+ const i = (m) => {
47
+ o(t, "type", m.target.value.type);
48
+ }, r = () => {
49
+ if (l && !t.uid)
50
+ return l.id === t.id;
51
+ if (l && t.id === null)
52
+ 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
+ ));
66
+ }, K = (e) => {
67
+ var d;
68
+ 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(() => {
69
+ const a = e.successors.map((f) => {
70
+ const g = s(e.flatTasks, "id", f.toId), C = s(e.dependencyTypes, "type", f.type);
71
+ return {
72
+ ...f,
73
+ taskTitle: g ? g.title : "",
74
+ typeName: C ? C.type : ""
75
+ };
76
+ });
77
+ return R(a, t);
78
+ }, [e.successors, e.dependencyTypes, e.flatTasks, t]);
79
+ return /* @__PURE__ */ n.createElement(
80
+ T,
81
+ {
82
+ data: y,
83
+ sort: t,
84
+ sortable: !0,
85
+ onRowClick: e.onSelectRow,
86
+ onSortChange: (a) => {
87
+ l(a.sort);
88
+ },
89
+ style: { height: "23em" }
90
+ },
91
+ /* @__PURE__ */ n.createElement(k, null, /* @__PURE__ */ n.createElement(S, { icon: "plus", svgIcon: p, onClick: e.addSuccessorsDependency }, r), /* @__PURE__ */ n.createElement(
92
+ S,
93
+ {
94
+ icon: "minus",
95
+ svgIcon: v,
96
+ onClick: e.deleteDependency,
97
+ disabled: ((d = e.selectedItem) == null ? void 0 : d.id) === void 0
98
+ },
99
+ c
100
+ )),
101
+ /* @__PURE__ */ n.createElement(
102
+ D,
103
+ {
104
+ field: "taskTitle",
105
+ title: m,
106
+ cell: (a) => B(e.flatTasks, a.dataItem, e.selectedItem, e.updateDependency)
107
+ }
108
+ ),
109
+ /* @__PURE__ */ n.createElement(
110
+ D,
111
+ {
112
+ field: "type",
113
+ title: u,
114
+ cell: (a) => G(e.dependencyTypes, a.dataItem, e.selectedItem, e.updateDependency)
115
+ }
116
+ )
117
+ );
118
+ };
119
+ export {
120
+ K as GanttEditorSuccessors
121
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),_=require("react-dom"),z=require("@progress/kendo-react-common"),G=require("@progress/kendo-react-form"),I=require("@progress/kendo-react-dialogs"),u=require("@progress/kendo-react-buttons"),T=require("./GanttEditor.js"),V=require("@progress/kendo-react-intl"),d=require("../messages/index.js"),m=require("@progress/kendo-svg-icons"),g=require("@progress/kendo-react-dropdowns");function b(e){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(i,o,l.get?l:{enumerable:!0,get:()=>e[o]})}}return i.default=e,Object.freeze(i)}const n=b(p),W=b(_),L=e=>{const{onCancel:i,onDelete:o,onClose:l,onSubmit:r,...C}=e,f=n.useRef(e.dataItem),[a,k]=n.useState({}),S=V.useLocalization(),s=t=>S.toLanguageString(t,d.messages[t]),h=s(d.editorSave),E=s(d.editorCancel),M=s(d.editorDelete),y=s(d.editorTitle),q=n.useCallback(t=>{if(i){const c={syntheticEvent:t,nativeEvent:t.nativeEvent,dataItem:e.dataItem};i.call(void 0,c)}},[i,e.dataItem]),R=n.useCallback(t=>{if(o){const c={syntheticEvent:t,nativeEvent:t.nativeEvent,dataItem:e.dataItem};o.call(void 0,c)}},[o,e.dataItem]),O=n.useCallback(({syntheticEvent:t})=>{if(l){const c={syntheticEvent:t,nativeEvent:t.nativeEvent,dataItem:e.dataItem};l.call(void 0,c)}},[l,e.dataItem]),v=n.useCallback((t,c)=>{if(r){const j={dataItem:t,initialDataItem:f.current,syntheticEvent:c,nativeEvent:c&&c.nativeEvent,dependencies:a};r.call(void 0,j)}},[r,a]),D=n.useMemo(()=>g.findByFieldValue(a.createdDependencies,"fromId",null)||g.findByFieldValue(a.createdDependencies,"toId",null),[a]),w=n.useMemo(()=>a.createdDependencies&&a.createdDependencies.length&&D===void 0||a.updatedDependencies&&a.updatedDependencies.length||a.deletedDependencies&&a.deletedDependencies.length,[a,D]),B=n.useCallback(t=>{k(t)},[]),F=n.createElement(G.Form,{initialValues:e.dataItem,onSubmit:v,render:t=>n.createElement(I.Window,{title:y,minWidth:90,width:554,modal:!0,height:0,onClose:O},n.createElement(T.GanttEditor,{taskData:e.taskData,dependencyData:e.dependencyData,dataItem:e.dataItem,onDependencyCreate:B}),n.createElement(I.WindowActionsBar,{layout:"start"},n.createElement(u.Button,{disabled:!t.allowSubmit&&!w,onClick:t.allowSubmit?t.onSubmit:c=>v(e.dataItem,c),icon:"save",svgIcon:m.saveIcon,themeColor:"primary"},h),n.createElement(u.Button,{onClick:q,type:"button",icon:"cancel",svgIcon:m.cancelIcon},E),n.createElement("div",{className:"k-spacer"}),o&&n.createElement(u.Button,{onClick:R,icon:"trash",svgIcon:m.trashIcon,fillMode:"flat",themeColor:"primary"},M))),...C});return z.canUseDOM?W.createPortal(F,document&&document.body):null};exports.GanttForm=L;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as t from "react";
10
+ import * as B from "react-dom";
11
+ import { canUseDOM as F } from "@progress/kendo-react-common";
12
+ import { Form as O } from "@progress/kendo-react-form";
13
+ import { Window as R, WindowActionsBar as W } from "@progress/kendo-react-dialogs";
14
+ import { Button as s } from "@progress/kendo-react-buttons";
15
+ import { GanttEditor as G } from "./GanttEditor.mjs";
16
+ import { useLocalization as L } from "@progress/kendo-react-intl";
17
+ import { messages as T, editorSave as V, editorCancel as x, editorDelete as A, editorTitle as N } from "../messages/index.mjs";
18
+ import { saveIcon as U, cancelIcon as j, trashIcon as q } from "@progress/kendo-svg-icons";
19
+ import { findByFieldValue as v } from "@progress/kendo-react-dropdowns";
20
+ const P = (a) => {
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
+ (e) => {
23
+ if (l) {
24
+ const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
25
+ l.call(void 0, o);
26
+ }
27
+ },
28
+ [l, a.dataItem]
29
+ ), S = t.useCallback(
30
+ (e) => {
31
+ if (c) {
32
+ const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
33
+ c.call(void 0, o);
34
+ }
35
+ },
36
+ [c, a.dataItem]
37
+ ), M = t.useCallback(
38
+ ({ syntheticEvent: e }) => {
39
+ if (d) {
40
+ const o = { syntheticEvent: e, nativeEvent: e.nativeEvent, dataItem: a.dataItem };
41
+ d.call(void 0, o);
42
+ }
43
+ },
44
+ [d, a.dataItem]
45
+ ), r = t.useCallback(
46
+ (e, o) => {
47
+ if (m) {
48
+ const z = {
49
+ dataItem: e,
50
+ initialDataItem: I.current,
51
+ syntheticEvent: o,
52
+ nativeEvent: o && o.nativeEvent,
53
+ dependencies: n
54
+ };
55
+ m.call(void 0, z);
56
+ }
57
+ },
58
+ [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
+ O,
72
+ {
73
+ initialValues: a.dataItem,
74
+ onSubmit: r,
75
+ render: (e) => /* @__PURE__ */ t.createElement(
76
+ R,
77
+ {
78
+ title: E,
79
+ minWidth: 90,
80
+ width: 554,
81
+ modal: !0,
82
+ height: 0,
83
+ onClose: M
84
+ },
85
+ /* @__PURE__ */ t.createElement(
86
+ G,
87
+ {
88
+ taskData: a.taskData,
89
+ dependencyData: a.dependencyData,
90
+ dataItem: a.dataItem,
91
+ onDependencyCreate: y
92
+ }
93
+ ),
94
+ /* @__PURE__ */ t.createElement(W, { layout: "start" }, /* @__PURE__ */ t.createElement(
95
+ s,
96
+ {
97
+ disabled: !e.allowSubmit && !p,
98
+ onClick: e.allowSubmit ? e.onSubmit : (o) => r(a.dataItem, o),
99
+ icon: "save",
100
+ svgIcon: U,
101
+ themeColor: "primary"
102
+ },
103
+ 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))
105
+ ),
106
+ ...D
107
+ }
108
+ );
109
+ return F ? B.createPortal(w, document && document.body) : null;
110
+ };
111
+ export {
112
+ P as GanttForm
113
+ };