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.08 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"),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;