UNPKG

@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.41 kB
/** * @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 E=require("react"),r=require("@progress/kendo-react-dropdowns"),g=require("@progress/kendo-react-grid"),C=require("@progress/kendo-react-buttons"),I=require("@progress/kendo-svg-icons"),b=require("@progress/kendo-react-common"),m=require("../messages/index.js"),S=require("@progress/kendo-react-intl"),v=require("@progress/kendo-data-query");function h(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const d=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(s,a,d.get?d:{enumerable:!0,get:()=>e[a]})}}return s.default=e,Object.freeze(s)}const n=h(E),R=e=>{const{selectedItem:s,updateDependency:a,flatTasks:d}=n.useContext(k),t=e.dataItem,[l,i]=n.useState(d),u=n.useRef(null),y=o=>{a(t,"fromId",o.target.value.id)},D=()=>{if(s&&!t.uid)return s.id===t.id;if(s&&t.id===null)return s.uid===t.uid},f=n.useMemo(()=>r.findByFieldValue(d,"id",t.fromId),[d,t.fromId]),c=o=>{const p=v.filterBy(d,o.filter);i(p)};return n.createElement("td",{ref:u,className:b.classNames(D()&&"k-selected")},n.createElement(r.DropDownList,{textField:"title",data:l,value:f,onChange:y,filterable:!0,onFilterChange:c,required:!0}))},q=e=>{const{selectedItem:s,updateDependency:a,dependencyTypes:d}=n.useContext(k),t=e.dataItem,l=y=>{a(t,"type",y.target.value.type)},i=()=>{if(s&&!t.uid)return s.id===t.id;if(s&&t.id===null)return s.uid===t.uid},u=n.useMemo(()=>r.findByFieldValue(d,"type",t.type),[d,t.type]);return n.createElement("td",{className:b.classNames(i()&&"k-selected")},n.createElement(r.DropDownList,{textField:"name",data:d,value:u,onChange:l}))},k=n.createContext({flatTasks:[],dependencyTypes:[],selectedItem:void 0,updateDependency:()=>{}}),M=e=>{var f;const[s,a]=n.useState([]),d=S.useLocalization(),t=c=>d.toLanguageString(c,m.messages[c]),l=t(m.editorAdd),i=t(m.editorRemove),u=t(m.editorDependencyNameLabel),y=t(m.editorDependencyTypeLabel),D=n.useMemo(()=>{const c=e.predecessors.map(o=>{const p=r.findByFieldValue(e.flatTasks,"id",o.fromId),T=r.findByFieldValue(e.dependencyTypes,"type",o.type);return{...o,taskTitle:p?p.title:"",typeName:T?T.type:""}});return v.orderBy(c,s)},[e.predecessors,e.dependencyTypes,e.flatTasks,s]);return n.createElement(k.Provider,{value:{flatTasks:e.flatTasks,dependencyTypes:e.dependencyTypes,selectedItem:e.selectedItem,updateDependency:e.updateDependency}},n.createElement(g.Grid,{data:D,sort:s,sortable:!0,onRowClick:e.onSelectRow,onSortChange:c=>{a(c.sort)},style:{height:"23em"}},n.createElement(g.GridToolbar,null,n.createElement(C.Button,{icon:"plus",svgIcon:I.plusIcon,onClick:e.addPredecessorsDependency},l),n.createElement(C.Button,{icon:"minus",svgIcon:I.minusIcon,onClick:e.deleteDependency,disabled:((f=e.selectedItem)==null?void 0:f.id)===void 0},i)),n.createElement(g.GridColumn,{field:"taskTitle",title:u,cells:{data:R}}),n.createElement(g.GridColumn,{field:"typeName",title:y,cells:{data:q}})))};exports.GanttEditorPredecessors=M;