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