@progress/kendo-react-gantt
Version:
React Gantt enables the display of self-referencing tabular data with many features. KendoReact Gantt package
9 lines (8 loc) • 3.12 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"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;