@progress/kendo-react-gantt 7.0.3-develop.9 → 7.1.0-develop.1

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.
@@ -2,4 +2,4 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- (function(b,Se){typeof exports=="object"&&typeof module<"u"?Se(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-date-math"),require("@progress/kendo-react-data-tools"),require("@progress/kendo-react-treelist"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-buttons"),require("react-dom"),require("@progress/kendo-react-form"),require("@progress/kendo-react-dialogs"),require("@progress/kendo-react-labels"),require("@progress/kendo-react-inputs"),require("@progress/kendo-react-dateinputs")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-date-math","@progress/kendo-react-data-tools","@progress/kendo-react-treelist","@progress/kendo-react-intl","@progress/kendo-svg-icons","@progress/kendo-react-buttons","react-dom","@progress/kendo-react-form","@progress/kendo-react-dialogs","@progress/kendo-react-labels","@progress/kendo-react-inputs","@progress/kendo-react-dateinputs"],Se):(b=typeof globalThis<"u"?globalThis:b||self,Se(b.KendoReactGantt={},b.React,b.PropTypes,b.KendoReactCommon,b.KendoDateMath,b.KendoReactDataTools,b.KendoReactTreelist,b.KendoReactIntl,b.KendoSvgIcons,b.KendoReactButtons,b.ReactDOM,b.KendoReactForm,b.KendoReactDialogs,b.KendoReactLabels,b.KendoReactInputs,b.KendoReactDateinputs))})(this,function(b,Se,i,h,w,S,de,U,Je,ae,na,oe,Me,le,Mt,aa){"use strict";"use client";function At(e){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(a,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return a.default=e,Object.freeze(a)}const t=At(Se),Vt=At(na),ra=S.TABLE_ROW_INDEX_ATTRIBUTE,sa=S.TABLE_COL_INDEX_ATTRIBUTE,oa=S.TABLE_PREVENT_SELECTION_ELEMENT,Ot=new Date().getTime(),Gt=7,la="hh:mm a",Qe={skeleton:"MEd"},ia="MMM",ca="yyyy",ke=100,da=6,Ae="data-dependency-drag-handle",ua="start",ga="finish",Wt={[Ae]:ua},_t={[Ae]:ga},Ve="data-task-id",Kt={id:"id",start:"start",end:"end",title:"title",percentComplete:"percentComplete",isRollup:"isRollup",isExpanded:"isExpanded",isInEdit:"isInEdit",children:"children",isSelected:"isSelected"},Bt={id:"id",fromId:"fromId",toId:"toId",type:"type"},fa=S.orderBy,ha=S.filterBy,Oe=h.mapTree,ma=h.extendDataItem,Ca=de.createDataTree,Ea=e=>({fields:{...Kt,...e}}),wa=e=>({fields:{...Bt,...e}}),Ut=e=>w.getDate(e),Pe=(e,a)=>w.getDate(w.addDays(e,a||1)),pa=(e,a,n,r)=>n<a&&e<=r;function ie(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}const re=4,et=10,va=(e,a,n,r)=>{const o=[];let l=0,s=0;const c=et,g=Math.floor(n/2),f=e.top<a.top,d=()=>o.push({left:s,top:l});if(r===0||r===3){const u=r===3?"start":"end";l=e.top,s=e[u],d(),s=Math[u==="start"?"min":"max"](e[u],a[u]),s=u==="start"?s-c:s+c,d(),l=a.top,d(),s=u==="start"?a[u]-re:a[u]+re,d(),qt(l,s,o,u!=="start")}else{const u=r===2?"start":"end",m=r===2?"end":"start",E=r===2?e[u]-et*2>=a[m]:e[u]+et*2<=a[m];l=e.top,s=e[u],d(),s=u==="start"?s-c:s+c,d(),E||(l=f?l+g:l-g,d(),s=u==="start"?a[m]+c:a[m]-c,d()),l=a.top,d(),s=m==="start"?a[m]-re:a[m]+re,d(),qt(l,s,o,m!=="start")}return o},qt=(e,a,n,r)=>r?Da(e,a,n):ba(e,a,n),Da=(e,a,n)=>{n.push({top:e-re/2,left:a}),n.push({top:e,left:a-re+1}),n.push({top:e+re/2,left:a}),n.push({top:e,left:a})},ba=(e,a,n)=>{n.push({top:e+re/2,left:a}),n.push({top:e,left:a+re-1}),n.push({top:e-re/2,left:a}),n.push({top:e,left:a})},$t=e=>{if(e.workWeekStart===void 0||e.workWeekEnd===void 0)return[];const a=[];let n=e.workWeekStart;for(a.push(n);e.workWeekEnd!==n;)n>6?n-=7:n++,a.push(n);return a},Sa=(e,a)=>{const n=e.getDay();return a.indexOf(n)>-1},Yt=(e,{step:a,timezone:n})=>{const r=[],o=w.ZonedDate.fromLocalDate(e.start,n),l=w.ZonedDate.fromLocalDate(e.end,n);let s=o.clone();for(;s.getTime()<l.getTime();){const c=s.clone(),g=c.clone().addTime(a),f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};r.push(u),s=s.addTime(a)}return r},ka=(e,{timezone:a},n)=>{const r=[],o=w.ZonedDate.fromLocalDate(e.start,a),l=w.ZonedDate.fromLocalDate(e.end,a);for(let s=o.clone(),c=0;s.getTime()<l.getTime();c++){const g=s.clone(),f=Pe(w.firstDayInWeek(w.getDate(g),n.firstDay()),Gt),d=w.ZonedDate.fromUTCDate(ie(f),a),u=d.getTime()>l.getTime()?l.clone():d;s=u.clone();const m=new Date(g.getTime()),p={end:new Date(u.getTime()),start:m,zonedStart:g,zonedEnd:u};r.push(p)}return r},Ia=(e,{timezone:a})=>{const n=[],r=w.ZonedDate.fromLocalDate(e.start,a),o=w.ZonedDate.fromLocalDate(e.end,a);for(let l=r.clone(),s=0;l.getTime()<o.getTime();s++){const c=l.clone(),g=w.ZonedDate.fromLocalDate(w.addMonths(new Date(c.getTime()),1),a);l=g.clone();const f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};n.push(u)}return n},xa=(e,{timezone:a})=>{const n=[],r=w.ZonedDate.fromLocalDate(e.start,a),o=w.ZonedDate.fromLocalDate(e.end,a);for(let l=r.clone(),s=0;l.getTime()<o.getTime();s++){const c=l.clone(),g=w.ZonedDate.fromLocalDate(w.addMonths(new Date(c.getTime()),12),a);l=g.clone();const f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};n.push(u)}return n},ya=(e,a,n)=>{const r=n.parseDate(a.workDayStart).getHours(),o=n.parseDate(a.workDayEnd).getHours();return Yt(e,{step:w.MS_PER_MINUTE*a.slotDuration,timezone:a.timezone}).map(s=>{const c=s.zonedStart.getHours();return{range:s,isWork:c>=r&&c<o,span:1,text:n.formatDate(s.zonedStart,la),type:"time"}})},Zt=(e,a,n)=>Yt(e,{step:w.MS_PER_DAY,timezone:a.timezone}).map(o=>({range:o,isWork:Sa(o.start,a.workDays),span:1,text:n.formatDate(o.zonedStart,Qe),type:"day"})),jt=(e,a,n)=>ka(e,{timezone:a.timezone},n).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:`${n.formatDate(o.zonedStart,Qe)} - ${n.formatDate(o.zonedEnd,Qe)}`,type:"week"}}),Xt=(e,a,n)=>Ia(e,{timezone:a.timezone}).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:n.formatDate(o.zonedStart,ia),type:"month"}}),Ta=(e,a,n)=>xa(e,{timezone:a.timezone}).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:n.formatDate(o.zonedStart,ca),type:"year"}}),Ra=(e,a,n)=>{const r=n;return t.createElement("table",{className:"k-table k-table-md",ref:a,"aria-hidden":!0},t.createElement("tbody",{className:"k-table-tbody"},e.map((o,l)=>t.createElement("tr",{className:"k-table-row",key:l},o.map((s,c)=>t.createElement("td",{key:s.range.start.getTime(),colSpan:s.span,className:h.classNames("k-table-th",{"k-header":!0,"k-nonwork-hour":!s.isWork})},r?t.createElement(r,{rowIndex:l,index:c,range:s.range,text:s.text,isWork:s.isWork,type:s.type}):s.text))))))},Na=(e,a)=>{const n=e[e.length-1];return t.createElement("table",{className:"k-table k-table-md k-gantt-columns",ref:a,"aria-hidden":!0},t.createElement("tbody",{className:"k-table-tbody"},t.createElement("tr",{className:"k-table-row"},n.map(r=>t.createElement("td",{key:r.range.start.getTime(),colSpan:r.span,className:h.classNames("k-table-td",{"k-nonwork-hour":!r.isWork})})))))},Fa=(e,a)=>{const n=e[e.length-1];let r=0,o=0;return n.forEach(l=>{const s=l.span;o+=s,s>r&&(r=s)}),Math.round(o*a/r)},tt=(e,a)=>!!h.getter(a)(e),Jt=(e,a)=>!!h.getter(a)(e),La=(e,a)=>n=>tt(n,e)&&Jt(n,a)?[...h.getter(a)(n)]:[],nt=t.createContext([]),za=()=>t.useContext(nt);nt.displayName="KendoReactGanttTaskDataContext";const at=t.createContext([]),Ha=()=>t.useContext(at);at.displayName="KendoReactGanttDependencyDataContext";const rt=t.createContext(Kt),st=()=>t.useContext(rt);rt.displayName="KendoReactGanttTaskModelFieldsContext";const ot=t.createContext(Bt),Qt=()=>t.useContext(ot);ot.displayName="KendoReactGanttDependencyModelFieldsContext";const lt=t.createContext({}),Ie=()=>t.useContext(lt);lt.displayName="KendoReactGanttPropsContext";const it=t.createContext({start:new Date,end:new Date,zonedStart:w.ZonedDate.fromLocalDate(new Date),zonedEnd:w.ZonedDate.fromLocalDate(new Date)}),xe=()=>t.useContext(it);it.displayName="KendoReactGanttDateRangeContext";const ct=t.createContext([]),Ma=()=>t.useContext(ct);ct.displayName="KendoReactGanttViewsContext";const dt=t.createContext(["week",h.noop]),Pt=()=>t.useContext(dt);dt.displayName="KendoReactGanttActiveViewContext";const ut=t.createContext(0),en=()=>t.useContext(ut);ut.displayName="KendoReactGanttRowHeightContext";const gt=t.createContext(0),Aa=()=>t.useContext(gt);gt.displayName="KendoReactGanttToolbarHeightContext";const ft=t.createContext({onDataStateChange:h.noop,onSortChange:h.noop,onFilterChange:h.noop,onColumnMenuFilterChange:h.noop,onExpandChange:h.noop,onRowClick:h.noop,onRowDoubleClick:h.noop,onRowContextMenu:h.noop,onColumnResize:h.noop,onColumnReorder:h.noop,onDependencyCreate:h.noop,onKeyDown:h.noop,onSelectionChange:h.noop,onHeaderSelectionChange:h.noop}),Va=()=>t.useContext(ft);ft.displayName="KendoReactGanttEventsContext";const ht=t.createContext({onTaskClick:h.noop,onTaskDoubleClick:h.noop,onTaskContextMenu:h.noop}),Oa=()=>t.useContext(ht);ht.displayName="KendoReactGanttTaskEventsContext";const tn=({children:e,taskData:a,dependencyData:n,taskModelFields:r,dependencyModelFields:o,props:l,dateRange:s,views:c,activeView:g,rowHeight:f,toolbarHeight:d,events:u,taskEvents:m})=>t.createElement(lt.Provider,{value:l},t.createElement(nt.Provider,{value:a},t.createElement(at.Provider,{value:n},t.createElement(rt.Provider,{value:r},t.createElement(ot.Provider,{value:o},t.createElement(it.Provider,{value:s},t.createElement(ct.Provider,{value:c},t.createElement(dt.Provider,{value:g},t.createElement(ut.Provider,{value:f},t.createElement(gt.Provider,{value:d},t.createElement(ft.Provider,{value:u},t.createElement(ht.Provider,{value:m},e))))))))))));tn.displayName="KendoReactGanttContext";const mt=t.createContext([{current:{}},h.noop]),nn=()=>t.useContext(mt);mt.displayName="KendoReactGanttViewContext";const Ct=t.createContext(0),Ga=()=>t.useContext(Ct);Ct.displayName="KendoReactGanttViewTimelineWidthContext";const Et=t.createContext({onDependencyHandlePress:h.noop,onDependencyHandleDrag:h.noop,onDependencyHandleRelease:h.noop,isEnabled:!1,draggedId:null}),Wa=()=>t.useContext(Et);Et.displayName="KendoReactGanttViewDependencyDragContext";const an=({children:e,tasksStore:a,timelineWidth:n,dependencyDrag:r})=>t.createElement(mt.Provider,{value:a},t.createElement(Ct.Provider,{value:n},t.createElement(Et.Provider,{value:r},e)));an.displayName="KendoReactGanttViewContext";var wt=(e=>(e[e.add=0]="add",e[e.remove=1]="remove",e))(wt||{});const _a=()=>{const e=t.useRef({}),a=t.useCallback(n=>{switch(n.type){case 0:e.current[n.id]=n.itemRef;break;case 1:delete e.current[n.id];break}},[]);return[e,a]},Ka=(e,a,n,r)=>{const o=t.useRef(null),[,l]=nn();t.useImperativeHandle(o,()=>({element:r.current,dataItem:e})),t.useImperativeHandle(n,()=>o.current),t.useLayoutEffect(()=>{const s=o.current;if(s)return l({type:wt.add,itemRef:s,id:a}),()=>{l({type:wt.remove,itemRef:s,id:a})}})},rn=t.forwardRef((e,a)=>{const n=xe(),r=st(),o=Ga(),l=Wa(),s=Oa(),c=t.useRef(null),g=t.useRef(null);Ka(e.dataItem,h.getter(r.id)(e.dataItem),a,c);const f=t.useRef(null),d=h.getter(r.id)(e.dataItem),u=h.getter(r.start)(e.dataItem),m=h.getter(r.end)(e.dataItem),E=h.getter(r.title)(e.dataItem),p=h.getter(r.percentComplete)(e.dataItem),C=h.getter(r.children)(e.dataItem),x=h.getter(r.isSelected)(e.dataItem),H=u&&u.getTime(),V=m&&m.getTime(),L=C&&C.length,N=!L&&H===V,O=H&&V&&pa(n.start,n.end,u,m),[ee,T]=t.useState(!1),J=t.useRef(null),A=t.useRef(null);h.useDraggable(J,{onPress:l.onDependencyHandlePress,onDrag:l.onDependencyHandleDrag,onRelease:l.onDependencyHandleRelease}),h.useDraggable(A,{onPress:l.onDependencyHandlePress,onDrag:l.onDependencyHandleDrag,onRelease:l.onDependencyHandleRelease});const Q=t.useCallback(k=>{s.onTaskClick&&s.onTaskClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),G=t.useCallback(k=>{s.onTaskDoubleClick&&s.onTaskDoubleClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),$=t.useCallback(k=>{s.onTaskContextMenu&&s.onTaskContextMenu({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),D=t.useCallback(k=>{s.onTaskRemoveClick&&s.onTaskRemoveClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),M=t.useCallback(()=>{const k=n.start,P=n.end,y=f.current,R=c.current,q=g.current;if(!O||y===null||R===null)return;const j=y.clientWidth/(P.getTime()-k.getTime()),W=(u.getTime()-k.getTime())*j,_=(m.getTime()-u.getTime())*j,Ce=(y.offsetHeight-R.offsetHeight)/2;R.style.left=`${Math.round(N?W-da:W)}px`,R.style.top=`${Math.round(Ce)}px`,N||(R.style.width=`${Math.round(_)}px`,q!==null&&(q.style.width=`${Math.round(_*(p||0))}px`)),T(!0)},[n.start.getTime(),n.end.getTime(),H,V,O,p,o]);t.useEffect(M,[M]);const te={visibility:ee?void 0:"hidden",display:O?void 0:"none"},B={userSelect:"none",display:l.draggedId===String(d)?"block":void 0};return t.createElement("td",{ref:f,key:d,role:"presentation"},N?t.createElement("div",{"aria-hidden":!0,className:h.classNames({"k-task":!0,"k-task-milestone":!0,"k-selected":x&&!Array.isArray(x)}),style:te,ref:c,[Ve]:d,onClick:Q,onDoubleClick:G,onContextMenu:$},t.createElement("div",{className:"k-task-milestone-content"}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-start",ref:J,style:B,...Wt}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-end",ref:A,style:B,..._t})):t.createElement("div",{"aria-hidden":!0,className:h.classNames({"k-task":!0,"k-task-summary":L,"k-task-single":!L,"k-selected":x&&!Array.isArray(x)}),ref:c,style:te,[Ve]:d,onClick:Q,onDoubleClick:G,onContextMenu:$},L?t.createElement("div",{className:"k-task-summary-progress",ref:g},t.createElement("div",{className:"k-task-summary-complete"})):t.createElement("div",{className:"k-task-complete",ref:g}),!L&&t.createElement(t.Fragment,null,t.createElement("div",{className:"k-task-content"},E),s.onTaskRemoveClick?t.createElement("span",{className:"k-task-actions"},t.createElement("span",{onClick:D,className:"k-link k-task-delete","aria-label":"Delete"},t.createElement(h.IconWrap,{name:"x",icon:Je.xIcon}))):null),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-start",ref:J,style:B,...Wt}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-end",ref:A,style:B,..._t})))});rn.displayName="KendoReactGanttTask";const sn=e=>{const{dependency:a}=e,[n]=nn(),r=t.useRef(null),o=Qt(),l=en(),[s,c]=t.useState(!1),g=()=>{if(r.current===null||n.current===null){c(!1);return}const f=n.current[h.getter(o.fromId)(a)],d=n.current[h.getter(o.toId)(a)];if(!f||!d){c(!1);return}const u=f.element,m=d.element;if(!u||!m){c(!1);return}if(s===!1){c(!0);return}const E={top:u.offsetTop+u.offsetHeight/2,start:u.offsetLeft,end:u.offsetLeft+u.offsetWidth},p={top:m.offsetTop+m.offsetHeight/2,start:m.offsetLeft,end:m.offsetLeft+m.offsetWidth},C=h.getter(o.type)(a),x=va(E,p,l,C);x&&x.length&&r.current.setAttribute("points",x.map(H=>`${H.left},${H.top}`).join(" "))};return t.useEffect(g),t.createElement("polyline",{ref:r,style:{display:s?void 0:"none"}})};sn.displayName="KendoReactGanttDependency";class pt extends t.Component{constructor(a){super(a),this.state={activeId:void 0,level:0},this.tableElement=null,this.tbodyElement=null,this.wrapperScrollLeft=0,this.wrapperScrollTop=0,this.updateOnScroll=!1,this.tbodyOffsetTop=0,this.prevData=[],this.flattedData=[],this.element=null,this.contextStateRef={current:void 0},this.navigationStateRef={current:void 0},this.scrollIntoView=n=>{if(!this.element)return;const{rowIndex:r=0}=n,{rowHeight:o=0}=this.props;this.element.scroll(0,(r-1)*o)},this.getColumns=n=>{const r=n.filter(l=>l.declarationIndex>=0&&l.parentIndex===-1),o=l=>(l.sort((s,c)=>s.declarationIndex-c.declarationIndex),l.map(s=>{const{declarationIndex:c,parentIndex:g,depth:f,colSpan:d,rowSpan:u,index:m,kFirst:E,groupable:p,children:C,...x}=s;return C.length?{children:o(C),...x}:x}));return o(r)},this.onKeyDown=n=>{if(S.tableKeyboardNavigation.onKeyDown(n,{contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),this.props.onKeyDown){const{mode:r,cell:o}=S.getSelectionOptions(this.props.selectable),l={dataItems:this.getLeafDataItems(),mode:r,cell:o,componentId:this.props.treelistId,selectedField:this.props.selectedField,...this.getEventArguments(n)};this.props.onKeyDown.call(void 0,l)}},this.onFocus=n=>{S.tableKeyboardNavigation.onFocus(n,{contextStateRef:this.contextStateRef})},this.onRowDrag=n=>{if(this.props.onRowDrag){const r={...n,target:this};this.props.onRowDrag.call(void 0,r)}},this.onRowDrop=n=>{if(this.props.onRowDrop){const r={...n,target:this};this.props.onRowDrop.call(void 0,r)}},this.onColumnReorder=(n,r,o)=>{const{extendedColumns:l}=this.props,s=l[n].depth,c=d=>{do d++;while(d<l.length&&l[d].depth>s);return d},g=[...l],f=g.splice(n,c(n)-n);if(g.splice(n<r?c(r-f.length):r,0,...f),g.filter(d=>d.declarationIndex>=0).forEach((d,u)=>d.orderIndex=u),this.props.onColumnReorder){const d={target:this,columns:this.getColumns(g),nativeEvent:o};this.props.onColumnReorder.call(void 0,d)}},this.onColumnResize=(n,r,o,l,s)=>{if(this.props.onColumnResize){const c=this.props.extendedColumns.filter(f=>f.children.length===0).reduce((f,d)=>f+=parseFloat(String(d.width)),0);this.tableElement&&(this.tableElement.style.width=c+"px");const g={columns:this.getColumns(this.props.extendedColumns),totalWidth:c,index:n,nativeEvent:l,newWidth:r,oldWidth:o,end:s,target:this};this.props.onColumnResize.call(void 0,g)}},this.onScroll=n=>{const r=n.currentTarget.scrollLeft,o=n.currentTarget.scrollTop,{columnVirtualization:l,scrollable:s,rowHeight:c=0}=this.props,g=c,f=0;let d=!1;l&&Math.abs(this.wrapperScrollLeft-r)>f&&(this.wrapperScrollLeft=r,d=!0),s==="virtual"&&Math.abs(this.wrapperScrollTop-o)>g&&(this.wrapperScrollTop=o,d=!0),d&&(this.updateOnScroll=!0,this.forceUpdate())},this.calculateSizes=n=>{if(!n||this.props.scrollable==="none")return;const r=Array.from(n.childNodes),o=r.find(c=>c.nodeName==="TABLE"),l=this.props.toolbar&&r.find(c=>c.nodeType===1&&c.classList.contains("k-grid-toolbar"));let s=0;if(l){const c=l.style.boxSizing;l.style.boxSizing="border-box",s=parseFloat(String(window.getComputedStyle(l).height))||l.offsetHeight,l.style.boxSizing=c,l.getAttribute("style")||l.removeAttribute("style")}this.tbodyOffsetTop=o.tBodies[0].offsetTop,de.setHeaderRowsTop(o,s)},this.onItemChange=n=>{if(n.field===this.props.expandField){const r=this.props.onExpandChange;if(r){const o={...this.getEventArguments(n.syntheticEvent),dataItem:n.dataItem,level:n.level,value:n.value};r.call(void 0,o)}return}if(this.props.onItemChange){const r={...this.getEventArguments(n.syntheticEvent),dataItem:n.dataItem,level:n.level,field:n.field,value:n.value};this.props.onItemChange.call(void 0,r)}},this.onHeaderSelectionChange=n=>{if(this.props.onHeaderSelectionChange){const r={field:n.field,nativeEvent:n.syntheticEvent&&n.syntheticEvent.nativeEvent,syntheticEvent:n.syntheticEvent,target:this,dataItems:this.getLeafDataItems()};this.props.onHeaderSelectionChange.call(void 0,r)}},this.selectionRelease=n=>{if(this.props.onSelectionChange){const r={syntheticEvent:void 0,target:this,selectedField:this.props.selectedField||"",componentId:this.props.treelistId,dataItems:this.getLeafDataItems(),dataItem:null,level:[],...n};this.props.onSelectionChange.call(void 0,r)}},this.onSortChange=(n,r,o)=>{this.onDataStateChange(this.props.onSortChange,{sort:r,field:o},n)},this.onFilterChange=n=>{const{filter:r,field:o}=n;this.onDataStateChange(this.props.onFilterChange,{filter:r,field:o},n.syntheticEvent)},this.onColumnMenuFilterChange=(n,r,o)=>{if(!o)return;const{onColumnMenuFilterChange:l}=this.props;if(!l)return;const s={syntheticEvent:n,filter:r,field:o,target:this,nativeEvent:n.nativeEvent};l.call(void 0,s)},this.onExpandChange=(n,r,o)=>{const{expandField:l,onExpandChange:s}=this.props;if(l&&s){const c={...this.getEventArguments(n),dataItem:r,level:o,value:tt(r,this.props.expandField)};s.call(void 0,c)}},this.onRowClick=(n,r)=>{if(this.props.onRowClick&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowClick.call(void 0,o)}},this.rowDoubleClick=(n,r)=>{if(this.props.onRowDoubleClick&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowDoubleClick.call(void 0,o)}},this.rowContextMenu=(n,r)=>{if(this.props.onRowContextMenu&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowContextMenu.call(void 0,o)}},this.onPageChange=n=>{if(this.props.onPageChange){const r={...this.getEventArguments(n.syntheticEvent),skip:n.skip,take:n.take};this.props.onPageChange.call(void 0,r)}},this.onDataStateChange=(n,r,o)=>{if(n&&n.call(void 0,{...this.getEventArguments(o),...r}),this.props.onDataStateChange){const l={...this.getEventArguments(o),dataState:{...this.getDataState(),...r}};this.props.onDataStateChange.call(void 0,l)}},this.getDataState=()=>({filter:this.props.filter,sort:this.props.sort}),this.getEventArguments=n=>({nativeEvent:n&&n.nativeEvent,syntheticEvent:n,target:this}),this.getLeafDataItems=()=>this.flatData.map(n=>n.dataItem),this.dragLogic=new S.CommonDragLogic(this.onColumnReorder,h.noop,h.noop),this.columnResize=new S.ColumnResize(this.onColumnResize),S.tableKeyboardNavigation.onConstructor({navigatable:!!a.navigatable,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef,idPrefix:a.idPrefix})}get document(){if(h.canUseDOM)return this.element&&this.element.ownerDocument||document}componentDidMount(){this.calculateSizes(this.element),S.tableKeyboardNavigation.onComponentDidMount({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}getSnapshotBeforeUpdate(){return S.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:this.document,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),null}componentDidUpdate(a){a.columns!==this.props.columns&&this.calculateSizes(this.element),S.tableKeyboardNavigation.onComponentDidUpdate({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}componentWillUnmount(){this.columnResize.columns=[],this.dragLogic.columns=[],this.prevData=[],this.flattedData=[],this.updateOnScroll=!1}render(){const{filterRow:a,scrollable:n="scrollable",resizable:r=!1,reorderable:o=!1,skip:l,take:s,afterContent:c,extendedColumns:g=[],columnsMap:f}=this.props,d=g.some(D=>!!D.filter)||a!==void 0,u=a||S.FilterRow,m=S.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef);this.columnResize.columns=g,this.columnResize.resizable=r,this.dragLogic.columns=g,this.dragLogic.reorderable=o,this.dragLogic.groupable=!1;const E=g.filter(D=>D.children.length===0),p=t.createElement(S.Header,{headerRow:t.createElement(S.HeaderRow,{sort:this.props.sort,sortable:this.props.sortable,sortChange:this.onSortChange,selectionChange:this.onHeaderSelectionChange,columns:g,columnsMap:f,cellRender:this.props.headerCellRender,columnResize:this.columnResize,columnMenu:this.props.columnMenu,columnMenuFilter:this.props.columnMenuFilter,columnMenuFilterChange:this.onColumnMenuFilterChange,pressHandler:this.dragLogic.pressHandler,dragHandler:this.dragLogic.dragHandler,releaseHandler:this.dragLogic.releaseHandler}),filterRow:d&&t.createElement(u,{columns:E,filter:this.props.filter,filterChange:this.onFilterChange,sort:this.props.sort,ariaRowIndex:f.length+1})||void 0,columnResize:this.columnResize}),C=this.props.style||{},{colSpans:x,hiddenColumns:H}=S.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:E,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((C.width||"").toString())}),V=(D,M,te,B,k,P)=>E.map((y,R)=>{if(H[R])return null;const q=y.id?y.id:R,j=`k-table-td ${y.className?y.className+" ":""}${y.locked?"k-grid-content-sticky":""}`,W={id:S.tableKeyboardNavigationTools.generateNavigatableId(`${te}-${String(R)}`,m),colSpan:x[R],dataItem:D.dataItem,field:y.field,format:y.format,className:j||void 0,render:this.props.cellRender,onChange:this.onItemChange,selectionChange:this.props.onSelectionChange?_=>{this.onSelectionChange({event:_,item:D,columnIndex:R,dataIndex:k})}:void 0,level:D.level,expandable:y.expandable,expanded:B,hasChildren:Jt(D.dataItem,this.props.subItemsField),colIndex:R,ariaColumnIndex:y.ariaColumnIndex,onExpandChange:this.onExpandChange,style:y.left!==void 0&&{left:y.left,right:y.right,borderRightWidth:y.rightBorder?"1px":""}||{},isSelected:Array.isArray(P)&&P.indexOf(R)>-1};return M&&y.editCell?t.createElement(y.editCell,{...W,onChange:this.onItemChange,key:q}):y.cell?t.createElement(y.cell,{key:q,...W}):t.createElement(de.TreeListCell,{key:q,...W})});let L=this.flatData;const N=L.length;l!==void 0&&s!==void 0&&(L=L.slice(l,l+s)),n==="virtual"&&(L=de.tableRowsVirtualization({rows:L,tableViewPortHeight:parseFloat((C.height||C.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const O=L.map(D=>D.level),ee=f.length+(d?1:0)+1,T=L.length>0&&L.map((D,M)=>{const te=h.getter(this.props.editField||"")(D.dataItem),B=h.getter(this.props.dataItemKey)(D.dataItem),k=String(B||D.level.join(".")),P=tt(D.dataItem,this.props.expandField),y=this.props.selectedField?h.getter(this.props.selectedField)(D.dataItem):void 0,R={key:k,level:D.level,levels:O,dataItem:D.dataItem,selectedField:this.props.selectedField,rowHeight:D.height,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:_=>this.onRowClick(_,D),onDoubleClick:_=>this.rowDoubleClick(_,D),onContextMenu:_=>this.rowContextMenu(_,D),isAltRow:M%2!==0,expanded:P,rowIndex:M,ariaRowIndex:ee+M,ariaSetSize:D.levelCount,ariaPosInSet:D.level[D.level.length-1]+1,isSelected:typeof y=="boolean"&&y},q=this.props.editRow,j=this.props.row||de.TreeListRow,W=V(D,te,k,P,M,y);return te&&q?t.createElement(q,{...R,key:R.key},W):t.createElement(j,{...R,key:R.key},W)})||t.createElement("tr",{className:"k-table-row k-grid-norecords"},t.createElement("td",{className:"k-table-td",colSpan:E.length},this.props.noRecords||t.createElement(de.TreeListNoRecords,null))),J=D=>this.props.sort&&this.props.sort.some(M=>M.field===D),A=t.createElement("colgroup",{ref:D=>{this.columnResize.colGroupMain=D}},E.map((D,M)=>t.createElement("col",{key:M.toString(),className:J(D.field)?"k-sorted":void 0,style:D.width!==void 0?{width:D.width}:void 0}))),Q=this.props.columnVirtualization||this.props.scrollable==="virtual",G=this.props.selectable&&this.props.selectable.drag?"none":void 0,$=this.props.tableProps||{};return t.createElement(S.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},t.createElement("div",{id:this.props.treelistId,style:this.props.style,className:h.classNames("k-grid k-grid-md",this.props.className,{"k-treelist-scrollable":n!=="none"}),ref:D=>this.element=D,onScroll:Q?this.onScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":N,"aria-colcount":E.length,role:"treegrid",...S.tableKeyboardNavigationScopeAttributes},this.props.toolbar,t.createElement(S.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease,childRef:D=>{this.tableElement=D}},t.createElement("table",{className:"k-table k-table-md",...this.props.tableProps||{},style:{...$.style||{},userSelect:G},role:"presentation"},A,p,t.createElement("tbody",{className:"k-table-tbody",...S.tableKeyboardNavigationBodyAttributes,ref:D=>this.tbodyElement=D,role:"presentation"},T))),this.props.pager&&t.createElement(this.props.pager,{className:"k-grid-pager",total:N,skip:l,take:s,onPageChange:this.onPageChange}),o&&t.createElement(t.Fragment,null,t.createElement(S.DropClue,{ref:this.dragLogic.refDropElementClue}),t.createElement(S.DragClue,{ref:this.dragLogic.refDragElementClue})),c))}get flatData(){const{data:a=[],rowHeight:n=0}=this.props;let r=0;const o=()=>{const s={height:n,offsetTop:r};return r+=s.height,s},l=this.updateOnScroll&&this.prevData===a&&this.tbodyOffsetTop>0&&this.flattedData.length?this.flattedData:a.map(s=>({...s,...o()}));return this.prevData=a,this.flattedData=l,l}onSelectionChange(a){if(this.props.onSelectionChange){const{event:n,item:r,dataIndex:o,columnIndex:l}=a,{mode:s,cell:c}=S.getSelectionOptions(this.props.selectable),g={...this.getEventArguments(n.syntheticEvent),dataItem:r.dataItem,level:r.level,startColIndex:l,endColIndex:l,startRowIndex:o,endRowIndex:o,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:s,cell:c,isDrag:!1,componentId:this.props.treelistId,selectedField:this.props.selectedField||""};this.props.onSelectionChange.call(void 0,g)}}}pt.propTypes={data:i.array,resizable:i.bool,reorderable:i.bool,sortable:i.oneOfType([i.bool,i.shape({mode:i.oneOf(["single","multiple"]),allowUnsort:i.bool})]),onSortChange:i.func,sort:i.array,columns:i.arrayOf(i.object),columnVirtualization:i.bool,filter:i.array,onFilterChange:i.func,filterRow:i.any,toolbar:i.any,noRecords:i.any,onExpandChange:i.func,expandField:i.string,subItemsField:i.string,selectedField:i.string,onSelectionChange:i.func,onHeaderSelectionChange:i.func,onRowClick:i.func,onItemChange:i.func,editField:i.string,scrollable:i.oneOf(["none","scrollable","virtual"]),rowHeight:i.number,style:i.object,tableProps:i.object,pager:i.any,skip:i.number,take:i.number,onPageChange:i.func,onDataStateChange:i.func,onColumnResize:i.func,onColumnReorder:i.func,extendedColumns:i.arrayOf(i.object),columnsMap:i.arrayOf(i.array),dataItemKey:i.string.isRequired,afterContent:i.any,navigatable:i.bool,idPrefix:i.string,treelistId:i.string},pt.contextType=S.TableKeyboardNavigationContext;const ye=t.forwardRef((e,a)=>{const{slotLevels:n,slotWidth:r,timelineHeaderCell:o}=e,{columns:l,noRecords:s,resizable:c,reorderable:g,sortable:f,sort:d,filter:u,columnMenuFilter:m,columnMenu:E,navigatable:p,row:C,selectable:x}=Ie(),{onDataStateChange:H,onSortChange:V,onFilterChange:L,onColumnMenuFilterChange:N,onExpandChange:O,onRowClick:ee,onRowDoubleClick:T,onRowContextMenu:J,onColumnResize:A,onColumnReorder:Q,onDependencyCreate:G,onKeyDown:$,onSelectionChange:D,onHeaderSelectionChange:M}=Va(),te=en(),B=Aa(),k=st(),P=Qt(),y=za(),R=Ha(),q=t.useRef(null),j=t.useRef(null),W=t.useRef(null),_=t.useRef(null),Ce=t.useRef(0),Ne=t.useRef(h.useId()),z=t.useRef(h.useId()),ne=t.useRef(null),Xe=t.useRef(null),xt=t.useCallback(I=>{W.current&&W.current.scrollIntoView(I)},[]);t.useImperativeHandle(Xe,()=>({scrollIntoView:xt})),t.useImperativeHandle(a,()=>Xe.current);const Ee=t.useRef(0),we=t.useRef(0),pe=t.useRef(0),ve=t.useRef(0),he=t.useRef(null),Fe=t.useRef(null),[me,Le]=t.useState(null),yt=Ra(n,q,o),Tt=Na(n,j),De=Fa(n,r),{extendedColumns:Rt,columnsWidth:Nt,columnsMap:Ft}=t.useMemo(()=>{const I=S.readColumns([...l,{title:"",sortable:!1,resizable:!1,reorderable:!1,width:De,headerCell:()=>yt,cell:rn,orderIndex:Number.MAX_SAFE_INTEGER,navigatable:!1}],{prevId:0,idPrefix:Ne.current});let K=0;return I.forEach((F,Y,X)=>{const Z=Y+1===X.length,ge=F.children.length===0;Z?F.isAccessible=!1:(F.locked=!0,ge&&(F.width=F.width||ke)),ge&&(K+=parseFloat(String(F.width)))}),{extendedColumns:I,columnsWidth:K,columnsMap:S.mapColumns(I)}},[l,De]),[Lt,zt]=_a(),v=t.useCallback(()=>q.current&&q.current.parentElement,[]),ce=()=>{const I=v(),K=j.current,F=W.current&&W.current.tbodyElement;if(!I||!K||!F)return;const Y=F.offsetTop,X=I.offsetLeft,Z=De;K.style.top=Y+"px",K.style.left=X+"px",K.style.width=Z+"px",K.style.height=F.offsetHeight+"px"},ue=()=>{const I=v();I&&(Ce.current=I.offsetLeft)};t.useEffect(ce),t.useEffect(ue);const ze=t.useCallback(I=>{if(!_.current)return;const K=I.columns.slice(0,I.columns.length-1);if(I.end)_.current.style.left="0px";else{const F=v();if(!F)return;_.current.style.left=F.offsetLeft-Ce.current+"px",ce()}A({...I,columns:K})},[A]),He=t.useCallback(I=>{const K=I.columns.slice(0,I.columns.length-1);Q({...I,columns:K})},[A]),Ht=t.useCallback(I=>{const F=(ne.current&&ne.current.ownerDocument?ne.current.ownerDocument:document).elementFromPoint(I.clientX,I.clientY),Y=ne.current;if(!F||!F.parentElement||!Y)return;const X=Y.parentElement,Z=Y.firstElementChild;if(!X||!Z)return;const ge=F.getAttribute(Ae);if(ge){const lr=Y.offsetTop,ir=Y.offsetLeft,cr=X.offsetTop,dr=X.offsetLeft,ur=Z.scrollTop,gr=Z.scrollLeft;pe.current=ir+dr,ve.current=lr+cr,Ee.current=I.clientX-pe.current+gr,we.current=I.clientY-ve.current+ur,he.current=F.parentElement.getAttribute(Ve),Fe.current=ge}},[]),be=t.useCallback(I=>{const K=ne.current;if(!K)return;const F=K.firstElementChild;if(!F)return;const Y=F.scrollTop,X=F.scrollLeft,Z=I.clientX-pe.current+X,ge=I.clientY-ve.current+Y;Math.abs(Ee.current-Z)<10&&Math.abs(we.current-ge)<10||Le({startX:Ee.current,startY:we.current,endX:Z,endY:ge})},[]),or=t.useCallback(I=>{const F=(ne.current&&ne.current.ownerDocument?ne.current.ownerDocument:document).elementFromPoint(I.clientX,I.clientY);if(!F||!F.parentElement)return;const Y=F.parentElement.getAttribute(Ve),X=F.getAttribute(Ae);if(X&&Y!==he.current&&G){let Z;Fe.current==="start"?Z=X==="start"?3:2:Z=X==="start"?1:0,G({fromId:he.current,toId:Y,type:Z})}Ee.current=0,we.current=0,pe.current=0,ve.current=0,he.current=null,Fe.current=null,Le(null)},[G,Le]);return t.createElement(an,{tasksStore:[Lt,zt],timelineWidth:De,dependencyDrag:{isEnabled:!!G,draggedId:he.current,onDependencyHandlePress:Ht,onDependencyHandleDrag:be,onDependencyHandleRelease:or}},t.createElement("div",{className:"k-gantt-content",ref:ne,style:{height:`calc(100% - ${B}px)`}},t.createElement(pt,{treelistId:z.current,ref:W,extendedColumns:Rt,columnsMap:Ft,dataItemKey:k.id,data:y,idPrefix:Ne.current,navigatable:p,expandField:k.isExpanded,subItemsField:k.children,editField:k.isInEdit,selectedField:k.isSelected,onDataStateChange:H,onSortChange:V,onFilterChange:L,onExpandChange:O,onRowClick:ee,onRowDoubleClick:T,onRowContextMenu:J,onColumnResize:ze,onColumnReorder:He,onColumnMenuFilterChange:N,onKeyDown:$,onSelectionChange:D,onHeaderSelectionChange:M,tableProps:{style:{width:Nt},className:"k-table k-table-md k-table-layout-fixed"},noRecords:s,rowHeight:te,resizable:c,reorderable:g,sortable:f,sort:d,filter:u,columnMenuFilter:m,columnMenu:E,row:C,selectable:x,afterContent:t.createElement(t.Fragment,null,t.createElement("svg",{className:"k-gantt-dependencies-svg",ref:_,style:{left:0,top:0}},R.map(I=>t.createElement(sn,{key:h.getter(P.id)(I),dependency:I}))),t.createElement("svg",{className:"k-gantt-dependencies-svg",style:{left:0,top:0,zIndex:3}},me&&t.createElement("polyline",{points:`${me.startX},${me.startY} ${me.endX},${me.endY}`})),y&&y.length?Tt:null)})))});ye.displayName="KendoReactGanttBaseView";const vt="gantt.weekViewTitle",Dt="gantt.dayViewTitle",bt="gantt.monthViewTitle",St="gantt.yearViewTitle",kt="gantt.filterClearButton",Ge="gantt.filterEqOperator",We="gantt.filterNotEqOperator",_e="gantt.filterIsNullOperator",Ke="gantt.filterIsNotNullOperator",on="gantt.filterIsEmptyOperator",ln="gantt.filterIsNotEmptyOperator",cn="gantt.filterStartsWithOperator",dn="gantt.filterContainsOperator",un="gantt.filterNotContainsOperator",gn="gantt.filterEndsWithOperator",fn="gantt.filterGteOperator",hn="gantt.filterGtOperator",mn="gantt.filterLteOperator",Cn="gantt.filterLtOperator",En="gantt.filterIsTrue",wn="gantt.filterIsFalse",pn="gantt.filterBooleanAll",vn="gantt.filterAfterOrEqualOperator",Dn="gantt.filterAfterOperator",bn="gantt.filterBeforeOperator",Sn="gantt.filterBeforeOrEqualOperator",Ba="gantt.noRecords",kn="gantt.editSave",It="gantt.editCancel",In="gantt.editorTitle",xn="gantt.editorTaskTitle",yn="gantt.editorTaskStart",Tn="gantt.editorTaskEnd",Rn="gantt.editorTaskComplete",Nn="gantt.editorValidationRequired",Fn="gantt.editorValidationStart",Ln="gantt.editorValidationEnd",zn="gantt.addTask",Hn="gantt.addChild",Mn="gantt.addAbove",An="gantt.addBelow",Vn="gantt.editorDelete",On="gantt.deleteConfirmation",Gn="gantt.deleteDialogTitle",se={[vt]:"Week",[Dt]:"Day",[bt]:"Month",[St]:"Year",[kt]:"Clear",[Ge]:"Is equal to",[We]:"Is not equal to",[_e]:"Is null",[Ke]:"Is not null",[on]:"Is empty",[ln]:"Is not empty",[cn]:"Starts with",[dn]:"Contains",[un]:"Does not contain",[gn]:"Ends with",[fn]:"Is greater than or equal to",[hn]:"Is greater than",[mn]:"Is less than or equal to",[Cn]:"Is less than",[En]:"Is true",[wn]:"Is false",[pn]:"(All)",[vn]:"Is after or equal to",[Dn]:"Is after",[bn]:"Is before",[Sn]:"Is before or equal to",[Ba]:"No records available",[kn]:"Save",[It]:"Cancel",[In]:"Task",[xn]:"Title",[yn]:"Start",[Tn]:"End",[Rn]:"Complete",[Nn]:"Field is required.",[Fn]:"Start time must be be before End time.",[Ln]:"End time must be after Start time.",[zn]:"Add Task",[Hn]:"Add Child",[Mn]:"Add Above",[An]:"Add Below",[Vn]:"Delete",[On]:"Are you sure you want to delete this event?",[Gn]:"Delete Event"},Te=t.forwardRef((e,a)=>{const{slotWidth:n=Be.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(p=>{g.current&&g.current.scrollIntoView(p)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=e.workWeekStart||Be.workWeekStart,m=e.workWeekEnd||Be.workWeekEnd,E=t.useMemo(()=>{const p=$t({workWeekStart:u,workWeekEnd:m}),C=[],x=jt(d,{timezone:l},s);return x.forEach(H=>{const V=Zt(H.range,{workDays:p,timezone:l},s);C.push.apply(C,V)}),r&&C[0]&&(r.current=C[0].range),[x,C]},[l,d.start.getTime(),d.end.getTime(),s,u,m]);return t.createElement(ye,{ref:g,slotWidth:n,slotLevels:E,timelineHeaderCell:o})}),Be={name:"week",dateRange:({intl:e,tasksStart:a,tasksEnd:n,timezone:r})=>{const o=w.ZonedDate.fromLocalDate(a,r),l=w.ZonedDate.fromLocalDate(n,r),s=Ut(w.firstDayInWeek(w.getDate(o),e.firstDay())),c=Pe(w.firstDayInWeek(w.getDate(l),e.firstDay()),Gt),g=w.ZonedDate.fromUTCDate(ie(s),r),f=w.ZonedDate.fromUTCDate(ie(c),r);return{start:new Date(g.getTime()),end:new Date(f.getTime()),zonedStart:g,zonedEnd:f}},title:e=>e.toLanguageString(vt,se[vt]),slotWidth:ke,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};Te.defaultProps=Be,Te.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},Te.displayName="KendoReactGanttWeekView";const Ua=(e,a,n)=>{const[r,o]=t.useState(a||e),l=t.useCallback((s,c)=>{o(s),n&&n.call(void 0,{...c,value:s})},[n,o]);return[a!==void 0?a:r,l]},Wn=e=>{const[a,n]=Pt(),r=U.useLocalization(),o=t.useMemo(()=>typeof e.view.title=="function"?e.view.title.call(void 0,r):e.view.title,[e.view.title,r]),l=t.useCallback(()=>{e.view.name&&n(e.view.name)},[n,e.view.name]);return t.createElement(ae.Button,{role:"button",type:"button",tabIndex:-1,togglable:!0,selected:e.view.name===a,onClick:l},o)};Wn.displayName="KendoReactGanttViewSelectorItem";const _n=t.forwardRef(()=>{const e=Ma(),[a,n]=Pt(),r=e.find(s=>s.props.name===a),o=U.useLocalization(),l=t.useCallback(s=>{n&&(s.syntheticEvent.preventDefault(),n(s.item.name))},[n]);return t.createElement("div",{className:"k-gantt-views-wrapper"},t.createElement(ae.ButtonGroup,{className:"k-gantt-views"},e.map(s=>t.createElement(Wn,{key:s.props.name,view:s.props}))),r&&t.createElement(ae.DropDownButton,{className:"k-views-dropdown",onItemClick:l,popupSettings:{popupClass:"k-gantt-toolbar"},textField:"title",items:e.map(s=>({...s.props,selected:s.props.name===a,title:typeof s.props.title=="function"?s.props.title.call(void 0,o):s.props.title})),text:t.createElement(t.Fragment,null,typeof r.props.title=="function"?r.props.title.call(void 0,o):r.props.title,t.createElement(h.IconWrap,{name:"caret-alt-down",icon:Je.caretAltDownIcon}))}))});_n.displayName="KendoReactGanttViewSelectorList";const Kn=t.forwardRef((e,a)=>{const{className:n,...r}=e,o=t.useRef(null);return t.useImperativeHandle(a,()=>({element:o.current,props:e})),t.createElement(ae.ToolbarItem,{ref:l=>{l&&(o.current=l.element)},className:h.classNames("k-gantt-views",n),...r},e.children)});Kn.displayName="KendoReactGanttViewSelector";const Bn=t.forwardRef((e,a)=>{const{className:n,...r}=e,o=t.useRef(null),l=t.useRef(null);t.useImperativeHandle(l,()=>({element:o.current,props:e})),t.useImperativeHandle(a,()=>l.current);const s=t.useMemo(()=>h.classNames("k-gantt-toolbar k-gantt-header",n),[n]);return t.createElement(ae.Toolbar,{ref:c=>{c&&(o.current=c.element)},className:s,...r},e.children)});Bn.displayName="KendoReactGanttToolbar";const Un={name:"@progress/kendo-react-gantt",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},qn=t.forwardRef((e,a)=>{const n=U.useLocalization(),r=u=>n.toLanguageString(u,se[u]),o=r(zn),l=r(Hn),s=r(Mn),c=r(An),g=t.useCallback(u=>{u.syntheticEvent.preventDefault();const m=u.item&&u.item.direction?u.item.direction:"none";e.onClick&&e.onClick({nativeEvent:u.nativeEvent,syntheticEvent:u.syntheticEvent,direction:m})},[e.onClick]),f=t.useCallback(u=>{u.preventDefault(),e.onClick&&e.onClick({nativeEvent:u&&u.nativeEvent,syntheticEvent:u,direction:"none"})},[e.onClick]),d=t.createElement(t.Fragment,null,t.createElement(h.IconWrap,{name:"plus",icon:Je.plusIcon}),o);return e.selectedTask?t.createElement(ae.DropDownButton,{className:"k-views-dropdown",onItemClick:g,popupSettings:{popupClass:"k-gantt-toolbar"},textField:"title",items:[{title:l,direction:"child"},{title:s,direction:"above"},{title:c,direction:"below"}],text:d}):t.createElement(ae.Button,{onClick:f},d)});qn.displayName="KendoReactGanttAddButton";const Ue=t.forwardRef((e,a)=>{h.validatePackage(Un);const n=h.shouldShowValidationUI(Un),{columns:r=Re.columns,taskData:o=Re.taskData,dependencyData:l=Re.dependencyData,style:s,className:c,noRecords:g,timezone:f,rowHeight:d=Re.rowHeight,resizable:u,reorderable:m,sortable:E,sort:p,filter:C,columnMenuFilter:x,columnMenu:H,navigatable:V,toolbar:L,row:N,selectable:O}=e,ee=U.useInternationalization(),{fields:T}=t.useMemo(()=>Ea(e.taskModelFields),[e.taskModelFields]),{fields:J}=t.useMemo(()=>wa(e.dependencyModelFields),[e.dependencyModelFields]),A=t.useCallback(La(T.isExpanded,T.children),[T.isExpanded,T.children]),Q=t.useRef(null),G=t.useRef(null),$=t.useRef(null),D=t.useRef(null),M=t.useRef(null),te=t.useCallback(v=>{const ce=h.getter(T.start)(v),ue=h.getter(T.end)(v),ze=h.getter(T.isSelected)(v);(!G.current||ce<G.current)&&(G.current=ce),(!$.current||ue>$.current)&&($.current=ue),ze&&(D.current=v)},[T.start,T.end]),B=t.useMemo(()=>(G.current=null,$.current=null,D.current=null,de.flatData(o,A,te)),[o,A]);(!G.current||!$.current)&&(G.current=new Date(Ot),$.current=new Date(Ot));const k=t.Children.toArray(e.children||[t.createElement(Te,{key:"week",firstSlotRangeRef:M})]),[P,y]=Ua(e.defaultView||k[0].props.name,e.view,e.onViewChange),R=k.find(v=>v.props.name===P)||k[0],q=typeof R.props.dateRange=="function"?R.props.dateRange.call(void 0,{intl:ee,tasksStart:G.current,tasksEnd:$.current,timezone:f}):R.props.dateRange,j=t.useRef(null),[W,_]=t.useState(0);t.useLayoutEffect(()=>{j.current&&_(j.current.element.offsetHeight)},[]);const Ce=t.useCallback(v=>{Q.current&&Q.current.scrollIntoView(v)},[]),Ne=t.useRef(null),z=t.useRef(null);t.useImperativeHandle(z,()=>({props:e,element:Ne.current,scrollIntoView:Ce})),t.useImperativeHandle(a,()=>z.current);const ne=t.useCallback(v=>{e.onDataStateChange&&e.onDataStateChange.call(void 0,{...v,target:z.current})},[e.onDataStateChange]),Xe=t.useCallback(v=>{e.onSortChange&&e.onSortChange.call(void 0,{...v,target:z.current})},[e.onSortChange]),xt=t.useCallback(v=>{e.onKeyDown&&e.onKeyDown.call(void 0,{...v,target:z.current})},[e.onKeyDown]),Ee=t.useCallback(v=>{e.onSelectionChange&&e.onSelectionChange.call(void 0,{...v,target:z.current})},[e.onSelectionChange]),we=t.useCallback(v=>{e.onHeaderSelectionChange&&e.onHeaderSelectionChange.call(void 0,{...v,target:z.current})},[e.onHeaderSelectionChange]),pe=t.useCallback(v=>{e.onFilterChange&&e.onFilterChange.call(void 0,{...v,target:z.current})},[e.onFilterChange]),ve=t.useCallback(v=>{e.onColumnMenuFilterChange&&e.onColumnMenuFilterChange.call(void 0,{...v,target:z.current})},[e.onColumnMenuFilterChange]),he=t.useCallback(v=>{e.onExpandChange&&e.onExpandChange.call(void 0,{...v,target:z.current})},[e.onExpandChange]),Fe=t.useCallback(v=>{e.onAddClick&&e.onAddClick.call(void 0,{...v,target:z.current,selectedDataItem:D.current,slotStart:M.current&&new Date(M.current.start.getTime()),slotEnd:M.current&&new Date(M.current.end.getTime())})},[e.onAddClick]),me=t.useCallback(v=>{e.onColumnResize&&e.onColumnResize.call(void 0,{...v,target:z.current})},[e.onColumnResize]),Le=t.useCallback(v=>{e.onColumnReorder&&e.onColumnReorder.call(void 0,{...v,target:z.current})},[e.onColumnReorder]),yt=t.useCallback(v=>{e.onRowClick&&e.onRowClick.call(void 0,{...v,target:z.current})},[e.onRowClick]),Tt=t.useCallback(v=>{e.onRowDoubleClick&&e.onRowDoubleClick.call(void 0,{...v,target:z.current})},[e.onRowClick]),De=t.useCallback(v=>{e.onRowContextMenu&&e.onRowContextMenu.call(void 0,{...v,target:z.current})},[e.onRowClick]),Rt=t.useCallback(v=>{e.onTaskClick&&e.onTaskClick.call(void 0,{...v,target:z.current})},[e.onTaskClick]),Nt=t.useCallback(v=>{e.onTaskDoubleClick&&e.onTaskDoubleClick.call(void 0,{...v,target:z.current})},[e.onTaskDoubleClick]),Ft=t.useCallback(v=>{e.onTaskContextMenu&&e.onTaskContextMenu.call(void 0,{...v,target:z.current})},[e.onTaskContextMenu]),Lt=t.useCallback(v=>{e.onTaskRemoveClick&&e.onTaskRemoveClick.call(void 0,{...v,target:z.current})},[e.onTaskRemoveClick]),zt=t.useCallback(v=>{if(e.onDependencyCreate){let ce,ue;const ze=h.getter(T.id);for(let He=0;He<B.length;He++){const Ht=B[He],be=ze(Ht.dataItem);if(String(be)===v.fromId&&(ce=be),String(be)===v.toId&&(ue=be),ce&&ue)break}e.onDependencyCreate.call(void 0,{fromId:ce,toId:ue,target:z.current,type:v.type})}},[e.onDependencyCreate,T,B]);return t.createElement(tn,{dateRange:q,taskData:B,dependencyData:l,taskModelFields:T,dependencyModelFields:J,views:k,activeView:[P,y],rowHeight:d,toolbarHeight:W,props:{columns:r,noRecords:g,timezone:f,resizable:u,reorderable:m,sortable:E,sort:p,filter:C,columnMenuFilter:x,columnMenu:H,navigatable:V,row:N,selectable:O},events:{onDataStateChange:ne,onSortChange:Xe,onFilterChange:pe,onColumnMenuFilterChange:ve,onExpandChange:he,onRowClick:yt,onRowDoubleClick:Tt,onRowContextMenu:De,onColumnResize:me,onColumnReorder:Le,onDependencyCreate:e.onDependencyCreate&&zt,onKeyDown:xt,onSelectionChange:Ee,onHeaderSelectionChange:we},taskEvents:{onTaskClick:Rt,onTaskDoubleClick:Nt,onTaskContextMenu:Ft,onTaskRemoveClick:e.onTaskRemoveClick&&Lt}},t.createElement("div",{ref:Ne,role:"application",style:s,className:h.classNames("k-gantt",c)},t.createElement(Bn,{ref:j},L&&L.addTaskButton?t.createElement(qn,{selectedTask:D.current,onClick:Fe}):null,t.createElement(ae.ToolbarSpacer,null),t.createElement(Kn,null,t.createElement(_n,null))),R&&t.createElement(R.type,{key:R.props.name,ref:Q,...R.props,firstSlotRangeRef:M}),n&&t.createElement(h.WatermarkOverlay,null)))}),Re={taskData:[],dependencyData:[],columns:[],rowHeight:40};Ue.propTypes={taskData:i.array,taskModelFields:i.shape({id:i.string,start:i.string,end:i.string,title:i.string,percentComplete:i.string,isRollup:i.string,isExpanded:i.string,children:i.string,isInEdit:i.string}),dependencyData:i.array,dependencyModelFields:i.shape({id:i.string,fromId:i.string,toId:i.string,type:i.string}),columns:i.arrayOf(i.shape({width:i.number,cell:i.any,editCell:i.any,headerCell:i.any,filter:i.any,children:i.any,field:i.string,title:i.string,sortable:i.any,expandable:i.bool,headerSelectionValue:i.bool,format:i.string,headerClassName:i.string,className:i.string,resizable:i.bool,reorderable:i.bool,minResizableWidth:i.number,orderIndex:i.number,columnMenu:i.any})),sort:i.array,filter:i.array,columnMenuFilter:i.array,columnMenu:i.any,style:i.object,className:i.string,children:i.any,timezone:i.string,defaultView:i.string,view:i.string,rowHeight:i.number,navigatable:i.bool,onViewChange:i.func,onDataStateChange:i.func,onSortChange:i.func,onFilterChange:i.func,onExpandChange:i.func,onRowClick:i.func,onColumnResize:i.func,onColumnReorder:i.func},Ue.defaultProps=Re,Ue.displayName="KendoReactGantt";const qe=t.forwardRef((e,a)=>{const{slotWidth:n=fe.slotWidth,slotDuration:r=fe.slotDuration,firstSlotRangeRef:o,timelineHeaderCell:l}=e,{timezone:s}=Ie(),c=U.useInternationalization(),g=t.useRef(null),f=t.useRef(null),d=t.useCallback(H=>{f.current&&f.current.scrollIntoView(H)},[]);t.useImperativeHandle(g,()=>({scrollIntoView:d})),t.useImperativeHandle(a,()=>g.current);const u=xe(),m=e.workWeekStart||fe.workWeekStart,E=e.workWeekEnd||fe.workWeekEnd,p=e.workDayStart||fe.workDayStart,C=e.workDayEnd||fe.workDayEnd,x=t.useMemo(()=>{const H=$t({workWeekStart:m,workWeekEnd:E}),V=[],L=Zt(u,{workDays:H,timezone:s},c);return L.forEach(N=>{const O=ya(N.range,{workDayStart:p,workDayEnd:C,timezone:s,slotDuration:r},c);N.span=O.length,V.push.apply(V,O)}),o&&V[0]&&(o.current=V[0].range),[L,V]},[s,u.start.getTime(),u.end.getTime(),c,m,E,p,C]);return t.createElement(ye,{ref:f,slotWidth:n,slotLevels:x,timelineHeaderCell:l})}),fe={name:"day",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=Ut(r),s=Pe(o),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(Dt,se[Dt]),slotWidth:ke,slotDuration:60,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};qe.defaultProps=fe,qe.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,slotDuration:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},qe.displayName="KendoReactGanttDayView";const $e=t.forwardRef((e,a)=>{const{slotWidth:n=$n.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(m=>{g.current&&g.current.scrollIntoView(m)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=t.useMemo(()=>{const m=[],E=Xt(d,{timezone:l},s);return E.forEach(p=>{const C=jt(p.range,{timezone:l},s);m.push.apply(m,C)}),r&&m[0]&&(r.current=m[0].range),[E,m]},[l,d.start.getTime(),d.end.getTime(),s]);return t.createElement(ye,{ref:g,slotWidth:n,slotLevels:u,timelineHeaderCell:o})}),$n={name:"month",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=w.firstDayOfMonth(w.getDate(r)),s=w.addDays(w.lastDayOfMonth(w.getDate(o)),1),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(bt,se[bt]),slotWidth:ke,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};$e.defaultProps=$n,$e.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},$e.displayName="GanttMonthView";const Ye=t.forwardRef((e,a)=>{const{slotWidth:n=Yn.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(m=>{g.current&&g.current.scrollIntoView(m)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=t.useMemo(()=>{const m=Ta(d,{timezone:l},s),E=[];return m.forEach(p=>{const C=Xt(p.range,{timezone:l},s);E.push.apply(E,C)}),r&&E[0]&&(r.current=E[0].range),[m,E]},[l,d.start.getTime(),d.end.getTime(),s]);return t.createElement(ye,{slotWidth:n,slotLevels:u,timelineHeaderCell:o})}),Yn={name:"year",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=w.firstDayOfMonth(w.firstMonthOfYear(w.getDate(r))),s=w.addDays(w.lastDayOfMonth(w.lastMonthOfYear(w.getDate(o))),1),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(St,se[St]),slotWidth:ke};Ye.defaultProps=Yn,Ye.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number},Ye.displayName="GanttYearView";const qa=[{text:dn,operator:"contains"},{text:un,operator:"doesnotcontain"},{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:cn,operator:"startswith"},{text:gn,operator:"endswith"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"},{text:on,operator:"isempty"},{text:ln,operator:"isnotempty"}],$a=[{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:fn,operator:"gte"},{text:hn,operator:"gt"},{text:mn,operator:"lte"},{text:Cn,operator:"lt"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"}],Ya=[{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:vn,operator:"gte"},{text:Dn,operator:"gt"},{text:bn,operator:"lt"},{text:Sn,operator:"lte"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"}],Za=[{text:pn,operator:""},{text:En,operator:!0},{text:wn,operator:!1}];function Ze(e,a){return{clearButtonTitle:e.toLanguageString(kt,se[kt]),operators:a.map(n=>({text:e.toLanguageString(n.text,se[n.text]),operator:n.operator}))}}const Zn=e=>{const{operators:a,...n}=e;return t.createElement(S.TextFilterCell,{ariaLabel:"text filter",...Ze(U.useLocalization(),a||qa),...n})};Zn.displayName="KendoReactGanttTextFilter";const jn=e=>{const{operators:a,...n}=e;return t.createElement(S.NumericFilterCell,{ariaLabel:"numeric filter",...Ze(U.useLocalization(),a||$a),...n})};jn.displayName="KendoReactGanttNumericFilter";const Xn=e=>{const{operators:a,...n}=e;return t.createElement(S.BooleanFilterCell,{ariaLabel:"boolean filter",...Ze(U.useLocalization(),a||Za),...n})};Xn.displayName="KendoReactGanttBooleanFilter";const Jn=e=>{const{operators:a,...n}=e;return t.createElement(S.DateFilterCell,{ariaLabel:"date filter",...Ze(U.useLocalization(),a||Ya),...n})};Jn.displayName="KendoReactGanttDateFilter";const ja=e=>{const{dependencyData:a,dependencyModelFields:n,defaultDataItem:r,fromId:o,toId:l,type:s}=e,c=a.map(m=>({...m})),g=h.setter(n.fromId),f=h.setter(n.toId),d=h.setter(n.type),u=r?{...r}:{};return g(u,o),f(u,l),d(u,s),c.push(u),c},Xa=e=>{const{defaultDataItem:a,selectedDataItem:n,direction:r,taskModelFields:o,dataTree:l,slotStart:s,slotEnd:c}=e,g=Oe(l,o.children,C=>({...C})),f=h.setter(o.start),d=h.setter(o.end),u=h.getter(o.start),m=h.getter(o.end),E=a?{...a}:{},p=u(E)&&m(E);if(!n||r==="none")p||(f(E,s),d(E,c)),g.unshift(E);else{const C=[{task:{[o.children]:g},childrenIndex:0}],x=h.getter(o.id),H=h.getter(o.children),V=h.setter(o.children),L=x(n);for(;C.length>0;){const N=C[C.length-1],O=N.task,ee=x(O),T=H(O);if(ee&&ee===L)break;T&&T.length&&T.length>N.childrenIndex?(C.push({task:T[N.childrenIndex],childrenIndex:0}),N.childrenIndex++):C.pop()}if(C.length>1){const N=C[C.length-1].task,O=C[C.length-2].childrenIndex,T=C[C.length-2].task,J=H(T);switch(r){case"child":{let A=H(N);A||(A=[],V(N,A)),p||(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))),A.push(E),je(C.splice(1,C.length-1).map(Q=>Q.task),o);break}case"above":{u(T)&&m(T)&&!p?(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))):(f(E,s),d(E,c)),J.splice(O-1,0,E),je(C.splice(1,C.length-2).map(A=>A.task),o);break}case"below":{u(T)&&m(T)&&!p?(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))):(f(E,s),d(E,c)),J.splice(O,0,E),je(C.splice(1,C.length-2).map(A=>A.task),o);break}}}}return g},Ja=e=>{const{updatedDataItem:a,taskModelFields:n,dataTree:r}=e,o=h.getter(n.id),l=h.getter(n.children),s=o(a);let c;const g=Oe(r,n.children,d=>o(d)===s?(c=d,{...a}):{...d});let f=[{task:{[n.children]:g},childrenIndex:0}];for(;f.length>0;){const d=f[f.length-1],u=d.task,m=o(u),E=l(u);if(m&&m===s)break;E&&E.length&&E.length>d.childrenIndex?(f.push({task:E[d.childrenIndex],childrenIndex:0}),d.childrenIndex++):f.pop()}if(f.length>1){f=f.splice(1,f.length-2);const d=h.getter(n.start),u=h.getter(n.end),m=h.getter(n.percentComplete);if(d(c).getTime()!==d(a).getTime()){Qn(f.map(p=>p.task),n);const E=d(a).getTime()-d(c).getTime();Pa(l(a),n,E)}u(c).getTime()!==u(a).getTime()&&Pn(f.map(E=>E.task),n),m(c)!==m(a)&&ea(f.map(E=>E.task),n)}return g},Qa=e=>{const{removedDataItem:a,taskModelFields:n,dataTree:r}=e,o=Oe(r,n.children,f=>({...f}));let l=[{task:{[n.children]:o},childrenIndex:0}];const s=h.getter(n.id),c=h.getter(n.children),g=s(a);for(;l.length>0;){const f=l[l.length-1],d=f.task,u=s(d),m=c(d);if(u&&u===g)break;m&&m.length&&m.length>f.childrenIndex?(l.push({task:m[f.childrenIndex],childrenIndex:0}),f.childrenIndex++):l.pop()}if(l.length>1){const f=l[l.length-2],d=f.task;c(d).splice(f.childrenIndex-1,1),l=l.splice(1,l.length-2),je(l.map(m=>m.task),n)}return o},je=(e,a)=>{Qn(e,a),Pn(e,a),ea(e,a)},Qn=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.start),o=h.setter(a.start);for(let l=e.length-1;l>=0;l--){const s=e[l],c=n(s);if(c&&c.length){const g=c.reduce((f,d)=>Math.min(f,r(d).getTime()),r(c[0]).getTime());o(s,new Date(g))}}},Pn=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.end),o=h.setter(a.end);for(let l=e.length-1;l>=0;l--){const s=e[l],c=n(s);if(c&&c.length){const g=c.reduce((f,d)=>Math.max(f,r(d).getTime()),r(c[0]).getTime());o(s,new Date(g))}}},ea=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.percentComplete),o=h.setter(a.percentComplete),l=({avg:s,n:c},g)=>({avg:((r(g)||0)+c*s)/(c+1),n:c+1});for(let s=e.length-1;s>=0;s--){const c=e[s],g=n(c);if(g&&g.length){const f=g.reduce(l,{avg:0,n:0}).avg;o(c,f)}}},Pa=(e,a,n)=>{if(!e)return;const r=h.getter(a.children),o=h.getter(a.start),l=h.setter(a.start),s=h.getter(a.end),c=h.setter(a.end),g=e.map(f=>({task:f,childrenIndex:0}));for(;g.length>0;){const f=g[g.length-1],d=f.task,u=r(d);u&&u.length&&u.length>f.childrenIndex?(g.push({task:u[f.childrenIndex],childrenIndex:0}),f.childrenIndex++):(g.pop(),l(d,new Date(o(d).getTime()+n)),c(d,new Date(s(d).getTime()+n)))}},er=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,type:g,optional:f,...d}=e,u=n&&a,m=!u&&c,E=m?`${o}_hint`:"",p=u?`${o}_error`:"";return t.createElement(oe.FieldWrapper,null,t.createElement(le.Label,{editorId:o,editorValid:l,editorDisabled:s,optional:f},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(Mt.Input,{valid:l,type:g,id:o,disabled:s,ariaDescribedBy:`${E} ${p}`,...d}),m&&t.createElement(le.Hint,{id:E},c),u&&t.createElement(le.Error,{id:p},a)))},ta=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,wrapperStyle:g,...f}=e,d=n&&a,u=!d&&c,m=u?`${o}_hint`:"",E=d?`${o}_error`:"",p=r?`${o}_label`:"";return t.createElement(oe.FieldWrapper,{style:g},t.createElement(le.Label,{id:p,editorId:o,editorValid:l,editorDisabled:s},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(aa.DateTimePicker,{ariaLabelledBy:p,ariaDescribedBy:`${m} ${E}`,valid:l,id:o,disabled:s,...f}),u&&t.createElement(le.Hint,{id:m},c),d&&t.createElement(le.Error,{id:E},a)))},tr=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,...g}=e,f=n&&a,d=!f&&c,u=d?`${o}_hint`:"",m=f?`${o}_error`:"";return t.createElement(oe.FieldWrapper,null,t.createElement(le.Label,{editorId:o,editorValid:l,editorDisabled:s},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(Mt.NumericTextBox,{ariaDescribedBy:`${u} ${m}`,valid:l,id:o,disabled:s,...g}),d&&t.createElement(le.Hint,{id:u},c),f&&t.createElement(le.Error,{id:m},a)))},nr=()=>{const e=st(),a=U.useLocalization(),n=C=>a.toLanguageString(C,se[C]),r=n(xn),o=n(yn),l=n(Tn),s=n(Rn),c=n(Nn),g=n(Fn),f=n(Ln),d=t.useCallback(C=>C||C===0?void 0:c,[c]),u=t.useCallback((C,x)=>C&&x(e.end)&&C.getTime()>x(e.end).getTime()?g:void 0,[e,g]),m=t.useCallback((C,x)=>C&&x(e.start)&&C.getTime()<x(e.start).getTime()?f:void 0,[e,f]),E=t.useMemo(()=>[d,u],[d,u]),p=t.useMemo(()=>[d,m],[d,m]);return t.createElement(oe.FormElement,{style:{width:400},horizontal:!0},t.createElement(oe.Field,{id:`${e.title}_gantteditor`,name:e.title,label:r,component:er,validator:d}),t.createElement(oe.Field,{id:`${e.start}_gantteditor`,name:e.start,label:o,component:ta,validator:E}),t.createElement(oe.Field,{id:`${e.end}_gantteditor`,name:e.end,label:l,component:ta,validator:p}),t.createElement(oe.Field,{id:`${e.percentComplete}_gantteditor`,name:e.percentComplete,format:"p",label:s,component:tr,step:.01,validator:d}))},ar=e=>{const{onCancel:a,onClose:n,onSubmit:r,...o}=e,l=U.useLocalization(),s=p=>l.toLanguageString(p,se[p]),c=s(kn),g=s(It),f=s(In),d=t.useCallback(p=>{if(a){const C={syntheticEvent:p,nativeEvent:p.nativeEvent,dataItem:e.dataItem};a.call(void 0,C)}},[a,e.dataItem]),u=t.useCallback(({syntheticEvent:p})=>{if(n){const C={syntheticEvent:p,nativeEvent:p.nativeEvent,dataItem:e.dataItem};n.call(void 0,C)}},[n,e.dataItem]),m=t.useCallback((p,C)=>{if(r){const x={dataItem:p,syntheticEvent:C,nativeEvent:C&&C.nativeEvent};r.call(void 0,x)}},[r]),E=t.createElement(oe.Form,{initialValues:e.dataItem,onSubmit:m,render:p=>t.createElement(Me.Dialog,{title:f,minWidth:600,onClose:u,style:{zIndex:90}},t.createElement(nr,null),t.createElement(Me.DialogActionsBar,null,t.createElement(ae.Button,{disabled:!p.allowSubmit,onClick:p.onSubmit},c),t.createElement(ae.Button,{onClick:d},g))),...o});return h.canUseDOM?Vt.createPortal(E,document&&document.body):null},rr=e=>{const{onClose:a,onCancel:n,onConfirm:r,dataItem:o}=e,l=U.useLocalization(),s=C=>l.toLanguageString(C,se[C]),c=s(Vn),g=s(It),f=s(On),d=s(Gn),u=t.useCallback(({syntheticEvent:C})=>{a&&a.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:null})},[a]),m=t.useCallback(C=>{n&&n.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:null})},[n]),E=t.useCallback(C=>{r&&r.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:o})},[r,o]),p=t.createElement(Me.Dialog,{title:d,onClose:u},f,t.createElement(Me.DialogActionsBar,null,t.createElement("button",{className:"k-button",onClick:m},g),t.createElement("button",{className:"k-button",onClick:E},c)));return h.canUseDOM?Vt.createPortal(p,document&&document.body):null},sr=de.TreeListRow;Object.defineProperty(b,"getSelectedState",{enumerable:!0,get:()=>S.getSelectedState}),Object.defineProperty(b,"getSelectedStateFromKeyDown",{enumerable:!0,get:()=>S.getSelectedStateFromKeyDown}),Object.defineProperty(b,"setSelectedState",{enumerable:!0,get:()=>S.setSelectedState}),b.GANTT_COL_INDEX_ATTRIBUTE=sa,b.GANTT_PREVENT_SELECTION_ELEMENT=oa,b.GANTT_ROW_INDEX_ATTRIBUTE=ra,b.Gantt=Ue,b.GanttBooleanFilter=Xn,b.GanttDateFilter=Jn,b.GanttDayView=qe,b.GanttForm=ar,b.GanttMonthView=$e,b.GanttNumericFilter=jn,b.GanttRemoveDialog=rr,b.GanttRow=sr,b.GanttTextFilter=Zn,b.GanttWeekView=Te,b.GanttYearView=Ye,b.addDependency=ja,b.addTask=Xa,b.createDataTree=Ca,b.extendDataItem=ma,b.filterBy=ha,b.mapTree=Oe,b.orderBy=fa,b.removeTask=Qa,b.updateTask=Ja,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
5
+ (function(b,Se){typeof exports=="object"&&typeof module!="undefined"?Se(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-date-math"),require("@progress/kendo-react-data-tools"),require("@progress/kendo-react-treelist"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-buttons"),require("react-dom"),require("@progress/kendo-react-form"),require("@progress/kendo-react-dialogs"),require("@progress/kendo-react-labels"),require("@progress/kendo-react-inputs"),require("@progress/kendo-react-dateinputs")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-date-math","@progress/kendo-react-data-tools","@progress/kendo-react-treelist","@progress/kendo-react-intl","@progress/kendo-svg-icons","@progress/kendo-react-buttons","react-dom","@progress/kendo-react-form","@progress/kendo-react-dialogs","@progress/kendo-react-labels","@progress/kendo-react-inputs","@progress/kendo-react-dateinputs"],Se):(b=typeof globalThis!="undefined"?globalThis:b||self,Se(b.KendoReactGantt={},b.React,b.PropTypes,b.KendoReactCommon,b.KendoDateMath,b.KendoReactDataTools,b.KendoReactTreelist,b.KendoReactIntl,b.KendoSvgIcons,b.KendoReactButtons,b.ReactDOM,b.KendoReactForm,b.KendoReactDialogs,b.KendoReactLabels,b.KendoReactInputs,b.KendoReactDateinputs))})(this,function(b,Se,i,h,w,S,de,U,Je,ae,na,oe,Me,le,Mt,aa){"use strict";"use client";function At(e){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(a,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return a.default=e,Object.freeze(a)}const t=At(Se),Vt=At(na),ra=S.TABLE_ROW_INDEX_ATTRIBUTE,sa=S.TABLE_COL_INDEX_ATTRIBUTE,oa=S.TABLE_PREVENT_SELECTION_ELEMENT,Ot=new Date().getTime(),Gt=7,la="hh:mm a",Qe={skeleton:"MEd"},ia="MMM",ca="yyyy",ke=100,da=6,Ae="data-dependency-drag-handle",ua="start",ga="finish",Wt={[Ae]:ua},_t={[Ae]:ga},Ve="data-task-id",Kt={id:"id",start:"start",end:"end",title:"title",percentComplete:"percentComplete",isRollup:"isRollup",isExpanded:"isExpanded",isInEdit:"isInEdit",children:"children",isSelected:"isSelected"},Bt={id:"id",fromId:"fromId",toId:"toId",type:"type"},fa=S.orderBy,ha=S.filterBy,Oe=h.mapTree,ma=h.extendDataItem,Ca=de.createDataTree,Ea=e=>({fields:{...Kt,...e}}),wa=e=>({fields:{...Bt,...e}}),Ut=e=>w.getDate(e),Pe=(e,a)=>w.getDate(w.addDays(e,a||1)),pa=(e,a,n,r)=>n<a&&e<=r;function ie(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}const re=4,et=10,va=(e,a,n,r)=>{const o=[];let l=0,s=0;const c=et,g=Math.floor(n/2),f=e.top<a.top,d=()=>o.push({left:s,top:l});if(r===0||r===3){const u=r===3?"start":"end";l=e.top,s=e[u],d(),s=Math[u==="start"?"min":"max"](e[u],a[u]),s=u==="start"?s-c:s+c,d(),l=a.top,d(),s=u==="start"?a[u]-re:a[u]+re,d(),qt(l,s,o,u!=="start")}else{const u=r===2?"start":"end",m=r===2?"end":"start",E=r===2?e[u]-et*2>=a[m]:e[u]+et*2<=a[m];l=e.top,s=e[u],d(),s=u==="start"?s-c:s+c,d(),E||(l=f?l+g:l-g,d(),s=u==="start"?a[m]+c:a[m]-c,d()),l=a.top,d(),s=m==="start"?a[m]-re:a[m]+re,d(),qt(l,s,o,m!=="start")}return o},qt=(e,a,n,r)=>r?Da(e,a,n):ba(e,a,n),Da=(e,a,n)=>{n.push({top:e-re/2,left:a}),n.push({top:e,left:a-re+1}),n.push({top:e+re/2,left:a}),n.push({top:e,left:a})},ba=(e,a,n)=>{n.push({top:e+re/2,left:a}),n.push({top:e,left:a+re-1}),n.push({top:e-re/2,left:a}),n.push({top:e,left:a})},$t=e=>{if(e.workWeekStart===void 0||e.workWeekEnd===void 0)return[];const a=[];let n=e.workWeekStart;for(a.push(n);e.workWeekEnd!==n;)n>6?n-=7:n++,a.push(n);return a},Sa=(e,a)=>{const n=e.getDay();return a.indexOf(n)>-1},Yt=(e,{step:a,timezone:n})=>{const r=[],o=w.ZonedDate.fromLocalDate(e.start,n),l=w.ZonedDate.fromLocalDate(e.end,n);let s=o.clone();for(;s.getTime()<l.getTime();){const c=s.clone(),g=c.clone().addTime(a),f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};r.push(u),s=s.addTime(a)}return r},ka=(e,{timezone:a},n)=>{const r=[],o=w.ZonedDate.fromLocalDate(e.start,a),l=w.ZonedDate.fromLocalDate(e.end,a);for(let s=o.clone(),c=0;s.getTime()<l.getTime();c++){const g=s.clone(),f=Pe(w.firstDayInWeek(w.getDate(g),n.firstDay()),Gt),d=w.ZonedDate.fromUTCDate(ie(f),a),u=d.getTime()>l.getTime()?l.clone():d;s=u.clone();const m=new Date(g.getTime()),p={end:new Date(u.getTime()),start:m,zonedStart:g,zonedEnd:u};r.push(p)}return r},Ia=(e,{timezone:a})=>{const n=[],r=w.ZonedDate.fromLocalDate(e.start,a),o=w.ZonedDate.fromLocalDate(e.end,a);for(let l=r.clone(),s=0;l.getTime()<o.getTime();s++){const c=l.clone(),g=w.ZonedDate.fromLocalDate(w.addMonths(new Date(c.getTime()),1),a);l=g.clone();const f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};n.push(u)}return n},xa=(e,{timezone:a})=>{const n=[],r=w.ZonedDate.fromLocalDate(e.start,a),o=w.ZonedDate.fromLocalDate(e.end,a);for(let l=r.clone(),s=0;l.getTime()<o.getTime();s++){const c=l.clone(),g=w.ZonedDate.fromLocalDate(w.addMonths(new Date(c.getTime()),12),a);l=g.clone();const f=new Date(c.getTime()),u={end:new Date(g.getTime()),start:f,zonedStart:c,zonedEnd:g};n.push(u)}return n},ya=(e,a,n)=>{const r=n.parseDate(a.workDayStart).getHours(),o=n.parseDate(a.workDayEnd).getHours();return Yt(e,{step:w.MS_PER_MINUTE*a.slotDuration,timezone:a.timezone}).map(s=>{const c=s.zonedStart.getHours();return{range:s,isWork:c>=r&&c<o,span:1,text:n.formatDate(s.zonedStart,la),type:"time"}})},Zt=(e,a,n)=>Yt(e,{step:w.MS_PER_DAY,timezone:a.timezone}).map(o=>({range:o,isWork:Sa(o.start,a.workDays),span:1,text:n.formatDate(o.zonedStart,Qe),type:"day"})),jt=(e,a,n)=>ka(e,{timezone:a.timezone},n).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:`${n.formatDate(o.zonedStart,Qe)} - ${n.formatDate(o.zonedEnd,Qe)}`,type:"week"}}),Xt=(e,a,n)=>Ia(e,{timezone:a.timezone}).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:n.formatDate(o.zonedStart,ia),type:"month"}}),Ta=(e,a,n)=>xa(e,{timezone:a.timezone}).map(o=>{const l=Math.round((o.zonedEnd.getTime()-o.zonedStart.getTime())/w.MS_PER_DAY);return{range:o,isWork:!1,span:l,text:n.formatDate(o.zonedStart,ca),type:"year"}}),Ra=(e,a,n)=>{const r=n;return t.createElement("table",{className:"k-table k-table-md",ref:a,"aria-hidden":!0},t.createElement("tbody",{className:"k-table-tbody"},e.map((o,l)=>t.createElement("tr",{className:"k-table-row",key:l},o.map((s,c)=>t.createElement("td",{key:s.range.start.getTime(),colSpan:s.span,className:h.classNames("k-table-th",{"k-header":!0,"k-nonwork-hour":!s.isWork})},r?t.createElement(r,{rowIndex:l,index:c,range:s.range,text:s.text,isWork:s.isWork,type:s.type}):s.text))))))},Na=(e,a)=>{const n=e[e.length-1];return t.createElement("table",{className:"k-table k-table-md k-gantt-columns",ref:a,"aria-hidden":!0},t.createElement("tbody",{className:"k-table-tbody"},t.createElement("tr",{className:"k-table-row"},n.map(r=>t.createElement("td",{key:r.range.start.getTime(),colSpan:r.span,className:h.classNames("k-table-td",{"k-nonwork-hour":!r.isWork})})))))},Fa=(e,a)=>{const n=e[e.length-1];let r=0,o=0;return n.forEach(l=>{const s=l.span;o+=s,s>r&&(r=s)}),Math.round(o*a/r)},tt=(e,a)=>!!h.getter(a)(e),Jt=(e,a)=>!!h.getter(a)(e),La=(e,a)=>n=>tt(n,e)&&Jt(n,a)?[...h.getter(a)(n)]:[],nt=t.createContext([]),za=()=>t.useContext(nt);nt.displayName="KendoReactGanttTaskDataContext";const at=t.createContext([]),Ha=()=>t.useContext(at);at.displayName="KendoReactGanttDependencyDataContext";const rt=t.createContext(Kt),st=()=>t.useContext(rt);rt.displayName="KendoReactGanttTaskModelFieldsContext";const ot=t.createContext(Bt),Qt=()=>t.useContext(ot);ot.displayName="KendoReactGanttDependencyModelFieldsContext";const lt=t.createContext({}),Ie=()=>t.useContext(lt);lt.displayName="KendoReactGanttPropsContext";const it=t.createContext({start:new Date,end:new Date,zonedStart:w.ZonedDate.fromLocalDate(new Date),zonedEnd:w.ZonedDate.fromLocalDate(new Date)}),xe=()=>t.useContext(it);it.displayName="KendoReactGanttDateRangeContext";const ct=t.createContext([]),Ma=()=>t.useContext(ct);ct.displayName="KendoReactGanttViewsContext";const dt=t.createContext(["week",h.noop]),Pt=()=>t.useContext(dt);dt.displayName="KendoReactGanttActiveViewContext";const ut=t.createContext(0),en=()=>t.useContext(ut);ut.displayName="KendoReactGanttRowHeightContext";const gt=t.createContext(0),Aa=()=>t.useContext(gt);gt.displayName="KendoReactGanttToolbarHeightContext";const ft=t.createContext({onDataStateChange:h.noop,onSortChange:h.noop,onFilterChange:h.noop,onColumnMenuFilterChange:h.noop,onExpandChange:h.noop,onRowClick:h.noop,onRowDoubleClick:h.noop,onRowContextMenu:h.noop,onColumnResize:h.noop,onColumnReorder:h.noop,onDependencyCreate:h.noop,onKeyDown:h.noop,onSelectionChange:h.noop,onHeaderSelectionChange:h.noop}),Va=()=>t.useContext(ft);ft.displayName="KendoReactGanttEventsContext";const ht=t.createContext({onTaskClick:h.noop,onTaskDoubleClick:h.noop,onTaskContextMenu:h.noop}),Oa=()=>t.useContext(ht);ht.displayName="KendoReactGanttTaskEventsContext";const tn=({children:e,taskData:a,dependencyData:n,taskModelFields:r,dependencyModelFields:o,props:l,dateRange:s,views:c,activeView:g,rowHeight:f,toolbarHeight:d,events:u,taskEvents:m})=>t.createElement(lt.Provider,{value:l},t.createElement(nt.Provider,{value:a},t.createElement(at.Provider,{value:n},t.createElement(rt.Provider,{value:r},t.createElement(ot.Provider,{value:o},t.createElement(it.Provider,{value:s},t.createElement(ct.Provider,{value:c},t.createElement(dt.Provider,{value:g},t.createElement(ut.Provider,{value:f},t.createElement(gt.Provider,{value:d},t.createElement(ft.Provider,{value:u},t.createElement(ht.Provider,{value:m},e))))))))))));tn.displayName="KendoReactGanttContext";const mt=t.createContext([{current:{}},h.noop]),nn=()=>t.useContext(mt);mt.displayName="KendoReactGanttViewContext";const Ct=t.createContext(0),Ga=()=>t.useContext(Ct);Ct.displayName="KendoReactGanttViewTimelineWidthContext";const Et=t.createContext({onDependencyHandlePress:h.noop,onDependencyHandleDrag:h.noop,onDependencyHandleRelease:h.noop,isEnabled:!1,draggedId:null}),Wa=()=>t.useContext(Et);Et.displayName="KendoReactGanttViewDependencyDragContext";const an=({children:e,tasksStore:a,timelineWidth:n,dependencyDrag:r})=>t.createElement(mt.Provider,{value:a},t.createElement(Ct.Provider,{value:n},t.createElement(Et.Provider,{value:r},e)));an.displayName="KendoReactGanttViewContext";var wt=(e=>(e[e.add=0]="add",e[e.remove=1]="remove",e))(wt||{});const _a=()=>{const e=t.useRef({}),a=t.useCallback(n=>{switch(n.type){case 0:e.current[n.id]=n.itemRef;break;case 1:delete e.current[n.id];break}},[]);return[e,a]},Ka=(e,a,n,r)=>{const o=t.useRef(null),[,l]=nn();t.useImperativeHandle(o,()=>({element:r.current,dataItem:e})),t.useImperativeHandle(n,()=>o.current),t.useLayoutEffect(()=>{const s=o.current;if(s)return l({type:wt.add,itemRef:s,id:a}),()=>{l({type:wt.remove,itemRef:s,id:a})}})},rn=t.forwardRef((e,a)=>{const n=xe(),r=st(),o=Ga(),l=Wa(),s=Oa(),c=t.useRef(null),g=t.useRef(null);Ka(e.dataItem,h.getter(r.id)(e.dataItem),a,c);const f=t.useRef(null),d=h.getter(r.id)(e.dataItem),u=h.getter(r.start)(e.dataItem),m=h.getter(r.end)(e.dataItem),E=h.getter(r.title)(e.dataItem),p=h.getter(r.percentComplete)(e.dataItem),C=h.getter(r.children)(e.dataItem),x=h.getter(r.isSelected)(e.dataItem),H=u&&u.getTime(),V=m&&m.getTime(),L=C&&C.length,N=!L&&H===V,O=H&&V&&pa(n.start,n.end,u,m),[ee,T]=t.useState(!1),J=t.useRef(null),A=t.useRef(null);h.useDraggable(J,{onPress:l.onDependencyHandlePress,onDrag:l.onDependencyHandleDrag,onRelease:l.onDependencyHandleRelease}),h.useDraggable(A,{onPress:l.onDependencyHandlePress,onDrag:l.onDependencyHandleDrag,onRelease:l.onDependencyHandleRelease});const Q=t.useCallback(k=>{s.onTaskClick&&s.onTaskClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),G=t.useCallback(k=>{s.onTaskDoubleClick&&s.onTaskDoubleClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),$=t.useCallback(k=>{s.onTaskContextMenu&&s.onTaskContextMenu({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),D=t.useCallback(k=>{s.onTaskRemoveClick&&s.onTaskRemoveClick({dataItem:e.dataItem,level:e.level,nativeEvent:k&&k.nativeEvent,syntheticEvent:k,target:null})},[e.dataItem,e.level]),M=t.useCallback(()=>{const k=n.start,P=n.end,y=f.current,R=c.current,q=g.current;if(!O||y===null||R===null)return;const j=y.clientWidth/(P.getTime()-k.getTime()),W=(u.getTime()-k.getTime())*j,_=(m.getTime()-u.getTime())*j,Ce=(y.offsetHeight-R.offsetHeight)/2;R.style.left=`${Math.round(N?W-da:W)}px`,R.style.top=`${Math.round(Ce)}px`,N||(R.style.width=`${Math.round(_)}px`,q!==null&&(q.style.width=`${Math.round(_*(p||0))}px`)),T(!0)},[n.start.getTime(),n.end.getTime(),H,V,O,p,o]);t.useEffect(M,[M]);const te={visibility:ee?void 0:"hidden",display:O?void 0:"none"},B={userSelect:"none",display:l.draggedId===String(d)?"block":void 0};return t.createElement("td",{ref:f,key:d,role:"presentation"},N?t.createElement("div",{"aria-hidden":!0,className:h.classNames({"k-task":!0,"k-task-milestone":!0,"k-selected":x&&!Array.isArray(x)}),style:te,ref:c,[Ve]:d,onClick:Q,onDoubleClick:G,onContextMenu:$},t.createElement("div",{className:"k-task-milestone-content"}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-start",ref:J,style:B,...Wt}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-end",ref:A,style:B,..._t})):t.createElement("div",{"aria-hidden":!0,className:h.classNames({"k-task":!0,"k-task-summary":L,"k-task-single":!L,"k-selected":x&&!Array.isArray(x)}),ref:c,style:te,[Ve]:d,onClick:Q,onDoubleClick:G,onContextMenu:$},L?t.createElement("div",{className:"k-task-summary-progress",ref:g},t.createElement("div",{className:"k-task-summary-complete"})):t.createElement("div",{className:"k-task-complete",ref:g}),!L&&t.createElement(t.Fragment,null,t.createElement("div",{className:"k-task-content"},E),s.onTaskRemoveClick?t.createElement("span",{className:"k-task-actions"},t.createElement("span",{onClick:D,className:"k-link k-task-delete","aria-label":"Delete"},t.createElement(h.IconWrap,{name:"x",icon:Je.xIcon}))):null),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-start",ref:J,style:B,...Wt}),l.isEnabled&&t.createElement("div",{className:"k-task-dot k-task-end",ref:A,style:B,..._t})))});rn.displayName="KendoReactGanttTask";const sn=e=>{const{dependency:a}=e,[n]=nn(),r=t.useRef(null),o=Qt(),l=en(),[s,c]=t.useState(!1),g=()=>{if(r.current===null||n.current===null){c(!1);return}const f=n.current[h.getter(o.fromId)(a)],d=n.current[h.getter(o.toId)(a)];if(!f||!d){c(!1);return}const u=f.element,m=d.element;if(!u||!m){c(!1);return}if(s===!1){c(!0);return}const E={top:u.offsetTop+u.offsetHeight/2,start:u.offsetLeft,end:u.offsetLeft+u.offsetWidth},p={top:m.offsetTop+m.offsetHeight/2,start:m.offsetLeft,end:m.offsetLeft+m.offsetWidth},C=h.getter(o.type)(a),x=va(E,p,l,C);x&&x.length&&r.current.setAttribute("points",x.map(H=>`${H.left},${H.top}`).join(" "))};return t.useEffect(g),t.createElement("polyline",{ref:r,style:{display:s?void 0:"none"}})};sn.displayName="KendoReactGanttDependency";class pt extends t.Component{constructor(a){super(a),this.state={activeId:void 0,level:0},this.tableElement=null,this.tbodyElement=null,this.wrapperScrollLeft=0,this.wrapperScrollTop=0,this.updateOnScroll=!1,this.tbodyOffsetTop=0,this.prevData=[],this.flattedData=[],this.element=null,this.contextStateRef={current:void 0},this.navigationStateRef={current:void 0},this.scrollIntoView=n=>{if(!this.element)return;const{rowIndex:r=0}=n,{rowHeight:o=0}=this.props;this.element.scroll(0,(r-1)*o)},this.getColumns=n=>{const r=n.filter(l=>l.declarationIndex>=0&&l.parentIndex===-1),o=l=>(l.sort((s,c)=>s.declarationIndex-c.declarationIndex),l.map(s=>{const{declarationIndex:c,parentIndex:g,depth:f,colSpan:d,rowSpan:u,index:m,kFirst:E,groupable:p,children:C,...x}=s;return C.length?{children:o(C),...x}:x}));return o(r)},this.onKeyDown=n=>{if(S.tableKeyboardNavigation.onKeyDown(n,{contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),this.props.onKeyDown){const{mode:r,cell:o}=S.getSelectionOptions(this.props.selectable),l={dataItems:this.getLeafDataItems(),mode:r,cell:o,componentId:this.props.treelistId,selectedField:this.props.selectedField,...this.getEventArguments(n)};this.props.onKeyDown.call(void 0,l)}},this.onFocus=n=>{S.tableKeyboardNavigation.onFocus(n,{contextStateRef:this.contextStateRef})},this.onRowDrag=n=>{if(this.props.onRowDrag){const r={...n,target:this};this.props.onRowDrag.call(void 0,r)}},this.onRowDrop=n=>{if(this.props.onRowDrop){const r={...n,target:this};this.props.onRowDrop.call(void 0,r)}},this.onColumnReorder=(n,r,o)=>{const{extendedColumns:l}=this.props,s=l[n].depth,c=d=>{do d++;while(d<l.length&&l[d].depth>s);return d},g=[...l],f=g.splice(n,c(n)-n);if(g.splice(n<r?c(r-f.length):r,0,...f),g.filter(d=>d.declarationIndex>=0).forEach((d,u)=>d.orderIndex=u),this.props.onColumnReorder){const d={target:this,columns:this.getColumns(g),nativeEvent:o};this.props.onColumnReorder.call(void 0,d)}},this.onColumnResize=(n,r,o,l,s)=>{if(this.props.onColumnResize){const c=this.props.extendedColumns.filter(f=>f.children.length===0).reduce((f,d)=>f+=parseFloat(String(d.width)),0);this.tableElement&&(this.tableElement.style.width=c+"px");const g={columns:this.getColumns(this.props.extendedColumns),totalWidth:c,index:n,nativeEvent:l,newWidth:r,oldWidth:o,end:s,target:this};this.props.onColumnResize.call(void 0,g)}},this.onScroll=n=>{const r=n.currentTarget.scrollLeft,o=n.currentTarget.scrollTop,{columnVirtualization:l,scrollable:s,rowHeight:c=0}=this.props,g=c,f=0;let d=!1;l&&Math.abs(this.wrapperScrollLeft-r)>f&&(this.wrapperScrollLeft=r,d=!0),s==="virtual"&&Math.abs(this.wrapperScrollTop-o)>g&&(this.wrapperScrollTop=o,d=!0),d&&(this.updateOnScroll=!0,this.forceUpdate())},this.calculateSizes=n=>{if(!n||this.props.scrollable==="none")return;const r=Array.from(n.childNodes),o=r.find(c=>c.nodeName==="TABLE"),l=this.props.toolbar&&r.find(c=>c.nodeType===1&&c.classList.contains("k-grid-toolbar"));let s=0;if(l){const c=l.style.boxSizing;l.style.boxSizing="border-box",s=parseFloat(String(window.getComputedStyle(l).height))||l.offsetHeight,l.style.boxSizing=c,l.getAttribute("style")||l.removeAttribute("style")}this.tbodyOffsetTop=o.tBodies[0].offsetTop,de.setHeaderRowsTop(o,s)},this.onItemChange=n=>{if(n.field===this.props.expandField){const r=this.props.onExpandChange;if(r){const o={...this.getEventArguments(n.syntheticEvent),dataItem:n.dataItem,level:n.level,value:n.value};r.call(void 0,o)}return}if(this.props.onItemChange){const r={...this.getEventArguments(n.syntheticEvent),dataItem:n.dataItem,level:n.level,field:n.field,value:n.value};this.props.onItemChange.call(void 0,r)}},this.onHeaderSelectionChange=n=>{if(this.props.onHeaderSelectionChange){const r={field:n.field,nativeEvent:n.syntheticEvent&&n.syntheticEvent.nativeEvent,syntheticEvent:n.syntheticEvent,target:this,dataItems:this.getLeafDataItems()};this.props.onHeaderSelectionChange.call(void 0,r)}},this.selectionRelease=n=>{if(this.props.onSelectionChange){const r={syntheticEvent:void 0,target:this,selectedField:this.props.selectedField||"",componentId:this.props.treelistId,dataItems:this.getLeafDataItems(),dataItem:null,level:[],...n};this.props.onSelectionChange.call(void 0,r)}},this.onSortChange=(n,r,o)=>{this.onDataStateChange(this.props.onSortChange,{sort:r,field:o},n)},this.onFilterChange=n=>{const{filter:r,field:o}=n;this.onDataStateChange(this.props.onFilterChange,{filter:r,field:o},n.syntheticEvent)},this.onColumnMenuFilterChange=(n,r,o)=>{if(!o)return;const{onColumnMenuFilterChange:l}=this.props;if(!l)return;const s={syntheticEvent:n,filter:r,field:o,target:this,nativeEvent:n.nativeEvent};l.call(void 0,s)},this.onExpandChange=(n,r,o)=>{const{expandField:l,onExpandChange:s}=this.props;if(l&&s){const c={...this.getEventArguments(n),dataItem:r,level:o,value:tt(r,this.props.expandField)};s.call(void 0,c)}},this.onRowClick=(n,r)=>{if(this.props.onRowClick&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowClick.call(void 0,o)}},this.rowDoubleClick=(n,r)=>{if(this.props.onRowDoubleClick&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowDoubleClick.call(void 0,o)}},this.rowContextMenu=(n,r)=>{if(this.props.onRowContextMenu&&n.target.nodeName==="TD"){const o={dataItem:r.dataItem,level:r.level,...this.getEventArguments(n)};this.props.onRowContextMenu.call(void 0,o)}},this.onPageChange=n=>{if(this.props.onPageChange){const r={...this.getEventArguments(n.syntheticEvent),skip:n.skip,take:n.take};this.props.onPageChange.call(void 0,r)}},this.onDataStateChange=(n,r,o)=>{if(n&&n.call(void 0,{...this.getEventArguments(o),...r}),this.props.onDataStateChange){const l={...this.getEventArguments(o),dataState:{...this.getDataState(),...r}};this.props.onDataStateChange.call(void 0,l)}},this.getDataState=()=>({filter:this.props.filter,sort:this.props.sort}),this.getEventArguments=n=>({nativeEvent:n&&n.nativeEvent,syntheticEvent:n,target:this}),this.getLeafDataItems=()=>this.flatData.map(n=>n.dataItem),this.dragLogic=new S.CommonDragLogic(this.onColumnReorder,h.noop,h.noop),this.columnResize=new S.ColumnResize(this.onColumnResize),S.tableKeyboardNavigation.onConstructor({navigatable:!!a.navigatable,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef,idPrefix:a.idPrefix})}get document(){if(h.canUseDOM)return this.element&&this.element.ownerDocument||document}componentDidMount(){this.calculateSizes(this.element),S.tableKeyboardNavigation.onComponentDidMount({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}getSnapshotBeforeUpdate(){return S.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:this.document,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),null}componentDidUpdate(a){a.columns!==this.props.columns&&this.calculateSizes(this.element),S.tableKeyboardNavigation.onComponentDidUpdate({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}componentWillUnmount(){this.columnResize.columns=[],this.dragLogic.columns=[],this.prevData=[],this.flattedData=[],this.updateOnScroll=!1}render(){const{filterRow:a,scrollable:n="scrollable",resizable:r=!1,reorderable:o=!1,skip:l,take:s,afterContent:c,extendedColumns:g=[],columnsMap:f}=this.props,d=g.some(D=>!!D.filter)||a!==void 0,u=a||S.FilterRow,m=S.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef);this.columnResize.columns=g,this.columnResize.resizable=r,this.dragLogic.columns=g,this.dragLogic.reorderable=o,this.dragLogic.groupable=!1;const E=g.filter(D=>D.children.length===0),p=t.createElement(S.Header,{headerRow:t.createElement(S.HeaderRow,{sort:this.props.sort,sortable:this.props.sortable,sortChange:this.onSortChange,selectionChange:this.onHeaderSelectionChange,columns:g,columnsMap:f,cellRender:this.props.headerCellRender,columnResize:this.columnResize,columnMenu:this.props.columnMenu,columnMenuFilter:this.props.columnMenuFilter,columnMenuFilterChange:this.onColumnMenuFilterChange,pressHandler:this.dragLogic.pressHandler,dragHandler:this.dragLogic.dragHandler,releaseHandler:this.dragLogic.releaseHandler}),filterRow:d&&t.createElement(u,{columns:E,filter:this.props.filter,filterChange:this.onFilterChange,sort:this.props.sort,ariaRowIndex:f.length+1})||void 0,columnResize:this.columnResize}),C=this.props.style||{},{colSpans:x,hiddenColumns:H}=S.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:E,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((C.width||"").toString())}),V=(D,M,te,B,k,P)=>E.map((y,R)=>{if(H[R])return null;const q=y.id?y.id:R,j=`k-table-td ${y.className?y.className+" ":""}${y.locked?"k-grid-content-sticky":""}`,W={id:S.tableKeyboardNavigationTools.generateNavigatableId(`${te}-${String(R)}`,m),colSpan:x[R],dataItem:D.dataItem,field:y.field,format:y.format,className:j||void 0,render:this.props.cellRender,onChange:this.onItemChange,selectionChange:this.props.onSelectionChange?_=>{this.onSelectionChange({event:_,item:D,columnIndex:R,dataIndex:k})}:void 0,level:D.level,expandable:y.expandable,expanded:B,hasChildren:Jt(D.dataItem,this.props.subItemsField),colIndex:R,ariaColumnIndex:y.ariaColumnIndex,onExpandChange:this.onExpandChange,style:y.left!==void 0&&{left:y.left,right:y.right,borderRightWidth:y.rightBorder?"1px":""}||{},isSelected:Array.isArray(P)&&P.indexOf(R)>-1};return M&&y.editCell?t.createElement(y.editCell,{...W,onChange:this.onItemChange,key:q}):y.cell?t.createElement(y.cell,{key:q,...W}):t.createElement(de.TreeListCell,{key:q,...W})});let L=this.flatData;const N=L.length;l!==void 0&&s!==void 0&&(L=L.slice(l,l+s)),n==="virtual"&&(L=de.tableRowsVirtualization({rows:L,tableViewPortHeight:parseFloat((C.height||C.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const O=L.map(D=>D.level),ee=f.length+(d?1:0)+1,T=L.length>0&&L.map((D,M)=>{const te=h.getter(this.props.editField||"")(D.dataItem),B=h.getter(this.props.dataItemKey)(D.dataItem),k=String(B||D.level.join(".")),P=tt(D.dataItem,this.props.expandField),y=this.props.selectedField?h.getter(this.props.selectedField)(D.dataItem):void 0,R={key:k,level:D.level,levels:O,dataItem:D.dataItem,selectedField:this.props.selectedField,rowHeight:D.height,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:_=>this.onRowClick(_,D),onDoubleClick:_=>this.rowDoubleClick(_,D),onContextMenu:_=>this.rowContextMenu(_,D),isAltRow:M%2!==0,expanded:P,rowIndex:M,ariaRowIndex:ee+M,ariaSetSize:D.levelCount,ariaPosInSet:D.level[D.level.length-1]+1,isSelected:typeof y=="boolean"&&y},q=this.props.editRow,j=this.props.row||de.TreeListRow,W=V(D,te,k,P,M,y);return te&&q?t.createElement(q,{...R,key:R.key},W):t.createElement(j,{...R,key:R.key},W)})||t.createElement("tr",{className:"k-table-row k-grid-norecords"},t.createElement("td",{className:"k-table-td",colSpan:E.length},this.props.noRecords||t.createElement(de.TreeListNoRecords,null))),J=D=>this.props.sort&&this.props.sort.some(M=>M.field===D),A=t.createElement("colgroup",{ref:D=>{this.columnResize.colGroupMain=D}},E.map((D,M)=>t.createElement("col",{key:M.toString(),className:J(D.field)?"k-sorted":void 0,style:D.width!==void 0?{width:D.width}:void 0}))),Q=this.props.columnVirtualization||this.props.scrollable==="virtual",G=this.props.selectable&&this.props.selectable.drag?"none":void 0,$=this.props.tableProps||{};return t.createElement(S.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},t.createElement("div",{id:this.props.treelistId,style:this.props.style,className:h.classNames("k-grid k-grid-md",this.props.className,{"k-treelist-scrollable":n!=="none"}),ref:D=>this.element=D,onScroll:Q?this.onScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":N,"aria-colcount":E.length,role:"treegrid",...S.tableKeyboardNavigationScopeAttributes},this.props.toolbar,t.createElement(S.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease,childRef:D=>{this.tableElement=D}},t.createElement("table",{className:"k-table k-table-md",...this.props.tableProps||{},style:{...$.style||{},userSelect:G},role:"presentation"},A,p,t.createElement("tbody",{className:"k-table-tbody",...S.tableKeyboardNavigationBodyAttributes,ref:D=>this.tbodyElement=D,role:"presentation"},T))),this.props.pager&&t.createElement(this.props.pager,{className:"k-grid-pager",total:N,skip:l,take:s,onPageChange:this.onPageChange}),o&&t.createElement(t.Fragment,null,t.createElement(S.DropClue,{ref:this.dragLogic.refDropElementClue}),t.createElement(S.DragClue,{ref:this.dragLogic.refDragElementClue})),c))}get flatData(){const{data:a=[],rowHeight:n=0}=this.props;let r=0;const o=()=>{const s={height:n,offsetTop:r};return r+=s.height,s},l=this.updateOnScroll&&this.prevData===a&&this.tbodyOffsetTop>0&&this.flattedData.length?this.flattedData:a.map(s=>({...s,...o()}));return this.prevData=a,this.flattedData=l,l}onSelectionChange(a){if(this.props.onSelectionChange){const{event:n,item:r,dataIndex:o,columnIndex:l}=a,{mode:s,cell:c}=S.getSelectionOptions(this.props.selectable),g={...this.getEventArguments(n.syntheticEvent),dataItem:r.dataItem,level:r.level,startColIndex:l,endColIndex:l,startRowIndex:o,endRowIndex:o,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:s,cell:c,isDrag:!1,componentId:this.props.treelistId,selectedField:this.props.selectedField||""};this.props.onSelectionChange.call(void 0,g)}}}pt.propTypes={data:i.array,resizable:i.bool,reorderable:i.bool,sortable:i.oneOfType([i.bool,i.shape({mode:i.oneOf(["single","multiple"]),allowUnsort:i.bool})]),onSortChange:i.func,sort:i.array,columns:i.arrayOf(i.object),columnVirtualization:i.bool,filter:i.array,onFilterChange:i.func,filterRow:i.any,toolbar:i.any,noRecords:i.any,onExpandChange:i.func,expandField:i.string,subItemsField:i.string,selectedField:i.string,onSelectionChange:i.func,onHeaderSelectionChange:i.func,onRowClick:i.func,onItemChange:i.func,editField:i.string,scrollable:i.oneOf(["none","scrollable","virtual"]),rowHeight:i.number,style:i.object,tableProps:i.object,pager:i.any,skip:i.number,take:i.number,onPageChange:i.func,onDataStateChange:i.func,onColumnResize:i.func,onColumnReorder:i.func,extendedColumns:i.arrayOf(i.object),columnsMap:i.arrayOf(i.array),dataItemKey:i.string.isRequired,afterContent:i.any,navigatable:i.bool,idPrefix:i.string,treelistId:i.string},pt.contextType=S.TableKeyboardNavigationContext;const ye=t.forwardRef((e,a)=>{const{slotLevels:n,slotWidth:r,timelineHeaderCell:o}=e,{columns:l,noRecords:s,resizable:c,reorderable:g,sortable:f,sort:d,filter:u,columnMenuFilter:m,columnMenu:E,navigatable:p,row:C,selectable:x}=Ie(),{onDataStateChange:H,onSortChange:V,onFilterChange:L,onColumnMenuFilterChange:N,onExpandChange:O,onRowClick:ee,onRowDoubleClick:T,onRowContextMenu:J,onColumnResize:A,onColumnReorder:Q,onDependencyCreate:G,onKeyDown:$,onSelectionChange:D,onHeaderSelectionChange:M}=Va(),te=en(),B=Aa(),k=st(),P=Qt(),y=za(),R=Ha(),q=t.useRef(null),j=t.useRef(null),W=t.useRef(null),_=t.useRef(null),Ce=t.useRef(0),Ne=t.useRef(h.useId()),z=t.useRef(h.useId()),ne=t.useRef(null),Xe=t.useRef(null),xt=t.useCallback(I=>{W.current&&W.current.scrollIntoView(I)},[]);t.useImperativeHandle(Xe,()=>({scrollIntoView:xt})),t.useImperativeHandle(a,()=>Xe.current);const Ee=t.useRef(0),we=t.useRef(0),pe=t.useRef(0),ve=t.useRef(0),he=t.useRef(null),Fe=t.useRef(null),[me,Le]=t.useState(null),yt=Ra(n,q,o),Tt=Na(n,j),De=Fa(n,r),{extendedColumns:Rt,columnsWidth:Nt,columnsMap:Ft}=t.useMemo(()=>{const I=S.readColumns([...l,{title:"",sortable:!1,resizable:!1,reorderable:!1,width:De,headerCell:()=>yt,cell:rn,orderIndex:Number.MAX_SAFE_INTEGER,navigatable:!1}],{prevId:0,idPrefix:Ne.current});let K=0;return I.forEach((F,Y,X)=>{const Z=Y+1===X.length,ge=F.children.length===0;Z?F.isAccessible=!1:(F.locked=!0,ge&&(F.width=F.width||ke)),ge&&(K+=parseFloat(String(F.width)))}),{extendedColumns:I,columnsWidth:K,columnsMap:S.mapColumns(I)}},[l,De]),[Lt,zt]=_a(),v=t.useCallback(()=>q.current&&q.current.parentElement,[]),ce=()=>{const I=v(),K=j.current,F=W.current&&W.current.tbodyElement;if(!I||!K||!F)return;const Y=F.offsetTop,X=I.offsetLeft,Z=De;K.style.top=Y+"px",K.style.left=X+"px",K.style.width=Z+"px",K.style.height=F.offsetHeight+"px"},ue=()=>{const I=v();I&&(Ce.current=I.offsetLeft)};t.useEffect(ce),t.useEffect(ue);const ze=t.useCallback(I=>{if(!_.current)return;const K=I.columns.slice(0,I.columns.length-1);if(I.end)_.current.style.left="0px";else{const F=v();if(!F)return;_.current.style.left=F.offsetLeft-Ce.current+"px",ce()}A({...I,columns:K})},[A]),He=t.useCallback(I=>{const K=I.columns.slice(0,I.columns.length-1);Q({...I,columns:K})},[A]),Ht=t.useCallback(I=>{const F=(ne.current&&ne.current.ownerDocument?ne.current.ownerDocument:document).elementFromPoint(I.clientX,I.clientY),Y=ne.current;if(!F||!F.parentElement||!Y)return;const X=Y.parentElement,Z=Y.firstElementChild;if(!X||!Z)return;const ge=F.getAttribute(Ae);if(ge){const lr=Y.offsetTop,ir=Y.offsetLeft,cr=X.offsetTop,dr=X.offsetLeft,ur=Z.scrollTop,gr=Z.scrollLeft;pe.current=ir+dr,ve.current=lr+cr,Ee.current=I.clientX-pe.current+gr,we.current=I.clientY-ve.current+ur,he.current=F.parentElement.getAttribute(Ve),Fe.current=ge}},[]),be=t.useCallback(I=>{const K=ne.current;if(!K)return;const F=K.firstElementChild;if(!F)return;const Y=F.scrollTop,X=F.scrollLeft,Z=I.clientX-pe.current+X,ge=I.clientY-ve.current+Y;Math.abs(Ee.current-Z)<10&&Math.abs(we.current-ge)<10||Le({startX:Ee.current,startY:we.current,endX:Z,endY:ge})},[]),or=t.useCallback(I=>{const F=(ne.current&&ne.current.ownerDocument?ne.current.ownerDocument:document).elementFromPoint(I.clientX,I.clientY);if(!F||!F.parentElement)return;const Y=F.parentElement.getAttribute(Ve),X=F.getAttribute(Ae);if(X&&Y!==he.current&&G){let Z;Fe.current==="start"?Z=X==="start"?3:2:Z=X==="start"?1:0,G({fromId:he.current,toId:Y,type:Z})}Ee.current=0,we.current=0,pe.current=0,ve.current=0,he.current=null,Fe.current=null,Le(null)},[G,Le]);return t.createElement(an,{tasksStore:[Lt,zt],timelineWidth:De,dependencyDrag:{isEnabled:!!G,draggedId:he.current,onDependencyHandlePress:Ht,onDependencyHandleDrag:be,onDependencyHandleRelease:or}},t.createElement("div",{className:"k-gantt-content",ref:ne,style:{height:`calc(100% - ${B}px)`}},t.createElement(pt,{treelistId:z.current,ref:W,extendedColumns:Rt,columnsMap:Ft,dataItemKey:k.id,data:y,idPrefix:Ne.current,navigatable:p,expandField:k.isExpanded,subItemsField:k.children,editField:k.isInEdit,selectedField:k.isSelected,onDataStateChange:H,onSortChange:V,onFilterChange:L,onExpandChange:O,onRowClick:ee,onRowDoubleClick:T,onRowContextMenu:J,onColumnResize:ze,onColumnReorder:He,onColumnMenuFilterChange:N,onKeyDown:$,onSelectionChange:D,onHeaderSelectionChange:M,tableProps:{style:{width:Nt},className:"k-table k-table-md k-table-layout-fixed"},noRecords:s,rowHeight:te,resizable:c,reorderable:g,sortable:f,sort:d,filter:u,columnMenuFilter:m,columnMenu:E,row:C,selectable:x,afterContent:t.createElement(t.Fragment,null,t.createElement("svg",{className:"k-gantt-dependencies-svg",ref:_,style:{left:0,top:0}},R.map(I=>t.createElement(sn,{key:h.getter(P.id)(I),dependency:I}))),t.createElement("svg",{className:"k-gantt-dependencies-svg",style:{left:0,top:0,zIndex:3}},me&&t.createElement("polyline",{points:`${me.startX},${me.startY} ${me.endX},${me.endY}`})),y&&y.length?Tt:null)})))});ye.displayName="KendoReactGanttBaseView";const vt="gantt.weekViewTitle",Dt="gantt.dayViewTitle",bt="gantt.monthViewTitle",St="gantt.yearViewTitle",kt="gantt.filterClearButton",Ge="gantt.filterEqOperator",We="gantt.filterNotEqOperator",_e="gantt.filterIsNullOperator",Ke="gantt.filterIsNotNullOperator",on="gantt.filterIsEmptyOperator",ln="gantt.filterIsNotEmptyOperator",cn="gantt.filterStartsWithOperator",dn="gantt.filterContainsOperator",un="gantt.filterNotContainsOperator",gn="gantt.filterEndsWithOperator",fn="gantt.filterGteOperator",hn="gantt.filterGtOperator",mn="gantt.filterLteOperator",Cn="gantt.filterLtOperator",En="gantt.filterIsTrue",wn="gantt.filterIsFalse",pn="gantt.filterBooleanAll",vn="gantt.filterAfterOrEqualOperator",Dn="gantt.filterAfterOperator",bn="gantt.filterBeforeOperator",Sn="gantt.filterBeforeOrEqualOperator",Ba="gantt.noRecords",kn="gantt.editSave",It="gantt.editCancel",In="gantt.editorTitle",xn="gantt.editorTaskTitle",yn="gantt.editorTaskStart",Tn="gantt.editorTaskEnd",Rn="gantt.editorTaskComplete",Nn="gantt.editorValidationRequired",Fn="gantt.editorValidationStart",Ln="gantt.editorValidationEnd",zn="gantt.addTask",Hn="gantt.addChild",Mn="gantt.addAbove",An="gantt.addBelow",Vn="gantt.editorDelete",On="gantt.deleteConfirmation",Gn="gantt.deleteDialogTitle",se={[vt]:"Week",[Dt]:"Day",[bt]:"Month",[St]:"Year",[kt]:"Clear",[Ge]:"Is equal to",[We]:"Is not equal to",[_e]:"Is null",[Ke]:"Is not null",[on]:"Is empty",[ln]:"Is not empty",[cn]:"Starts with",[dn]:"Contains",[un]:"Does not contain",[gn]:"Ends with",[fn]:"Is greater than or equal to",[hn]:"Is greater than",[mn]:"Is less than or equal to",[Cn]:"Is less than",[En]:"Is true",[wn]:"Is false",[pn]:"(All)",[vn]:"Is after or equal to",[Dn]:"Is after",[bn]:"Is before",[Sn]:"Is before or equal to",[Ba]:"No records available",[kn]:"Save",[It]:"Cancel",[In]:"Task",[xn]:"Title",[yn]:"Start",[Tn]:"End",[Rn]:"Complete",[Nn]:"Field is required.",[Fn]:"Start time must be be before End time.",[Ln]:"End time must be after Start time.",[zn]:"Add Task",[Hn]:"Add Child",[Mn]:"Add Above",[An]:"Add Below",[Vn]:"Delete",[On]:"Are you sure you want to delete this event?",[Gn]:"Delete Event"},Te=t.forwardRef((e,a)=>{const{slotWidth:n=Be.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(p=>{g.current&&g.current.scrollIntoView(p)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=e.workWeekStart||Be.workWeekStart,m=e.workWeekEnd||Be.workWeekEnd,E=t.useMemo(()=>{const p=$t({workWeekStart:u,workWeekEnd:m}),C=[],x=jt(d,{timezone:l},s);return x.forEach(H=>{const V=Zt(H.range,{workDays:p,timezone:l},s);C.push.apply(C,V)}),r&&C[0]&&(r.current=C[0].range),[x,C]},[l,d.start.getTime(),d.end.getTime(),s,u,m]);return t.createElement(ye,{ref:g,slotWidth:n,slotLevels:E,timelineHeaderCell:o})}),Be={name:"week",dateRange:({intl:e,tasksStart:a,tasksEnd:n,timezone:r})=>{const o=w.ZonedDate.fromLocalDate(a,r),l=w.ZonedDate.fromLocalDate(n,r),s=Ut(w.firstDayInWeek(w.getDate(o),e.firstDay())),c=Pe(w.firstDayInWeek(w.getDate(l),e.firstDay()),Gt),g=w.ZonedDate.fromUTCDate(ie(s),r),f=w.ZonedDate.fromUTCDate(ie(c),r);return{start:new Date(g.getTime()),end:new Date(f.getTime()),zonedStart:g,zonedEnd:f}},title:e=>e.toLanguageString(vt,se[vt]),slotWidth:ke,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};Te.defaultProps=Be,Te.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},Te.displayName="KendoReactGanttWeekView";const Ua=(e,a,n)=>{const[r,o]=t.useState(a||e),l=t.useCallback((s,c)=>{o(s),n&&n.call(void 0,{...c,value:s})},[n,o]);return[a!==void 0?a:r,l]},Wn=e=>{const[a,n]=Pt(),r=U.useLocalization(),o=t.useMemo(()=>typeof e.view.title=="function"?e.view.title.call(void 0,r):e.view.title,[e.view.title,r]),l=t.useCallback(()=>{e.view.name&&n(e.view.name)},[n,e.view.name]);return t.createElement(ae.Button,{role:"button",type:"button",tabIndex:-1,togglable:!0,selected:e.view.name===a,onClick:l},o)};Wn.displayName="KendoReactGanttViewSelectorItem";const _n=t.forwardRef(()=>{const e=Ma(),[a,n]=Pt(),r=e.find(s=>s.props.name===a),o=U.useLocalization(),l=t.useCallback(s=>{n&&(s.syntheticEvent.preventDefault(),n(s.item.name))},[n]);return t.createElement("div",{className:"k-gantt-views-wrapper"},t.createElement(ae.ButtonGroup,{className:"k-gantt-views"},e.map(s=>t.createElement(Wn,{key:s.props.name,view:s.props}))),r&&t.createElement(ae.DropDownButton,{className:"k-views-dropdown",onItemClick:l,popupSettings:{popupClass:"k-gantt-toolbar"},textField:"title",items:e.map(s=>({...s.props,selected:s.props.name===a,title:typeof s.props.title=="function"?s.props.title.call(void 0,o):s.props.title})),text:t.createElement(t.Fragment,null,typeof r.props.title=="function"?r.props.title.call(void 0,o):r.props.title,t.createElement(h.IconWrap,{name:"caret-alt-down",icon:Je.caretAltDownIcon}))}))});_n.displayName="KendoReactGanttViewSelectorList";const Kn=t.forwardRef((e,a)=>{const{className:n,...r}=e,o=t.useRef(null);return t.useImperativeHandle(a,()=>({element:o.current,props:e})),t.createElement(ae.ToolbarItem,{ref:l=>{l&&(o.current=l.element)},className:h.classNames("k-gantt-views",n),...r},e.children)});Kn.displayName="KendoReactGanttViewSelector";const Bn=t.forwardRef((e,a)=>{const{className:n,...r}=e,o=t.useRef(null),l=t.useRef(null);t.useImperativeHandle(l,()=>({element:o.current,props:e})),t.useImperativeHandle(a,()=>l.current);const s=t.useMemo(()=>h.classNames("k-gantt-toolbar k-gantt-header",n),[n]);return t.createElement(ae.Toolbar,{ref:c=>{c&&(o.current=c.element)},className:s,...r},e.children)});Bn.displayName="KendoReactGanttToolbar";const Un={name:"@progress/kendo-react-gantt",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},qn=t.forwardRef((e,a)=>{const n=U.useLocalization(),r=u=>n.toLanguageString(u,se[u]),o=r(zn),l=r(Hn),s=r(Mn),c=r(An),g=t.useCallback(u=>{u.syntheticEvent.preventDefault();const m=u.item&&u.item.direction?u.item.direction:"none";e.onClick&&e.onClick({nativeEvent:u.nativeEvent,syntheticEvent:u.syntheticEvent,direction:m})},[e.onClick]),f=t.useCallback(u=>{u.preventDefault(),e.onClick&&e.onClick({nativeEvent:u&&u.nativeEvent,syntheticEvent:u,direction:"none"})},[e.onClick]),d=t.createElement(t.Fragment,null,t.createElement(h.IconWrap,{name:"plus",icon:Je.plusIcon}),o);return e.selectedTask?t.createElement(ae.DropDownButton,{className:"k-views-dropdown",onItemClick:g,popupSettings:{popupClass:"k-gantt-toolbar"},textField:"title",items:[{title:l,direction:"child"},{title:s,direction:"above"},{title:c,direction:"below"}],text:d}):t.createElement(ae.Button,{onClick:f},d)});qn.displayName="KendoReactGanttAddButton";const Ue=t.forwardRef((e,a)=>{h.validatePackage(Un);const n=h.shouldShowValidationUI(Un),{columns:r=Re.columns,taskData:o=Re.taskData,dependencyData:l=Re.dependencyData,style:s,className:c,noRecords:g,timezone:f,rowHeight:d=Re.rowHeight,resizable:u,reorderable:m,sortable:E,sort:p,filter:C,columnMenuFilter:x,columnMenu:H,navigatable:V,toolbar:L,row:N,selectable:O}=e,ee=U.useInternationalization(),{fields:T}=t.useMemo(()=>Ea(e.taskModelFields),[e.taskModelFields]),{fields:J}=t.useMemo(()=>wa(e.dependencyModelFields),[e.dependencyModelFields]),A=t.useCallback(La(T.isExpanded,T.children),[T.isExpanded,T.children]),Q=t.useRef(null),G=t.useRef(null),$=t.useRef(null),D=t.useRef(null),M=t.useRef(null),te=t.useCallback(v=>{const ce=h.getter(T.start)(v),ue=h.getter(T.end)(v),ze=h.getter(T.isSelected)(v);(!G.current||ce<G.current)&&(G.current=ce),(!$.current||ue>$.current)&&($.current=ue),ze&&(D.current=v)},[T.start,T.end]),B=t.useMemo(()=>(G.current=null,$.current=null,D.current=null,de.flatData(o,A,te)),[o,A]);(!G.current||!$.current)&&(G.current=new Date(Ot),$.current=new Date(Ot));const k=t.Children.toArray(e.children||[t.createElement(Te,{key:"week",firstSlotRangeRef:M})]),[P,y]=Ua(e.defaultView||k[0].props.name,e.view,e.onViewChange),R=k.find(v=>v.props.name===P)||k[0],q=typeof R.props.dateRange=="function"?R.props.dateRange.call(void 0,{intl:ee,tasksStart:G.current,tasksEnd:$.current,timezone:f}):R.props.dateRange,j=t.useRef(null),[W,_]=t.useState(0);t.useLayoutEffect(()=>{j.current&&_(j.current.element.offsetHeight)},[]);const Ce=t.useCallback(v=>{Q.current&&Q.current.scrollIntoView(v)},[]),Ne=t.useRef(null),z=t.useRef(null);t.useImperativeHandle(z,()=>({props:e,element:Ne.current,scrollIntoView:Ce})),t.useImperativeHandle(a,()=>z.current);const ne=t.useCallback(v=>{e.onDataStateChange&&e.onDataStateChange.call(void 0,{...v,target:z.current})},[e.onDataStateChange]),Xe=t.useCallback(v=>{e.onSortChange&&e.onSortChange.call(void 0,{...v,target:z.current})},[e.onSortChange]),xt=t.useCallback(v=>{e.onKeyDown&&e.onKeyDown.call(void 0,{...v,target:z.current})},[e.onKeyDown]),Ee=t.useCallback(v=>{e.onSelectionChange&&e.onSelectionChange.call(void 0,{...v,target:z.current})},[e.onSelectionChange]),we=t.useCallback(v=>{e.onHeaderSelectionChange&&e.onHeaderSelectionChange.call(void 0,{...v,target:z.current})},[e.onHeaderSelectionChange]),pe=t.useCallback(v=>{e.onFilterChange&&e.onFilterChange.call(void 0,{...v,target:z.current})},[e.onFilterChange]),ve=t.useCallback(v=>{e.onColumnMenuFilterChange&&e.onColumnMenuFilterChange.call(void 0,{...v,target:z.current})},[e.onColumnMenuFilterChange]),he=t.useCallback(v=>{e.onExpandChange&&e.onExpandChange.call(void 0,{...v,target:z.current})},[e.onExpandChange]),Fe=t.useCallback(v=>{e.onAddClick&&e.onAddClick.call(void 0,{...v,target:z.current,selectedDataItem:D.current,slotStart:M.current&&new Date(M.current.start.getTime()),slotEnd:M.current&&new Date(M.current.end.getTime())})},[e.onAddClick]),me=t.useCallback(v=>{e.onColumnResize&&e.onColumnResize.call(void 0,{...v,target:z.current})},[e.onColumnResize]),Le=t.useCallback(v=>{e.onColumnReorder&&e.onColumnReorder.call(void 0,{...v,target:z.current})},[e.onColumnReorder]),yt=t.useCallback(v=>{e.onRowClick&&e.onRowClick.call(void 0,{...v,target:z.current})},[e.onRowClick]),Tt=t.useCallback(v=>{e.onRowDoubleClick&&e.onRowDoubleClick.call(void 0,{...v,target:z.current})},[e.onRowClick]),De=t.useCallback(v=>{e.onRowContextMenu&&e.onRowContextMenu.call(void 0,{...v,target:z.current})},[e.onRowClick]),Rt=t.useCallback(v=>{e.onTaskClick&&e.onTaskClick.call(void 0,{...v,target:z.current})},[e.onTaskClick]),Nt=t.useCallback(v=>{e.onTaskDoubleClick&&e.onTaskDoubleClick.call(void 0,{...v,target:z.current})},[e.onTaskDoubleClick]),Ft=t.useCallback(v=>{e.onTaskContextMenu&&e.onTaskContextMenu.call(void 0,{...v,target:z.current})},[e.onTaskContextMenu]),Lt=t.useCallback(v=>{e.onTaskRemoveClick&&e.onTaskRemoveClick.call(void 0,{...v,target:z.current})},[e.onTaskRemoveClick]),zt=t.useCallback(v=>{if(e.onDependencyCreate){let ce,ue;const ze=h.getter(T.id);for(let He=0;He<B.length;He++){const Ht=B[He],be=ze(Ht.dataItem);if(String(be)===v.fromId&&(ce=be),String(be)===v.toId&&(ue=be),ce&&ue)break}e.onDependencyCreate.call(void 0,{fromId:ce,toId:ue,target:z.current,type:v.type})}},[e.onDependencyCreate,T,B]);return t.createElement(tn,{dateRange:q,taskData:B,dependencyData:l,taskModelFields:T,dependencyModelFields:J,views:k,activeView:[P,y],rowHeight:d,toolbarHeight:W,props:{columns:r,noRecords:g,timezone:f,resizable:u,reorderable:m,sortable:E,sort:p,filter:C,columnMenuFilter:x,columnMenu:H,navigatable:V,row:N,selectable:O},events:{onDataStateChange:ne,onSortChange:Xe,onFilterChange:pe,onColumnMenuFilterChange:ve,onExpandChange:he,onRowClick:yt,onRowDoubleClick:Tt,onRowContextMenu:De,onColumnResize:me,onColumnReorder:Le,onDependencyCreate:e.onDependencyCreate&&zt,onKeyDown:xt,onSelectionChange:Ee,onHeaderSelectionChange:we},taskEvents:{onTaskClick:Rt,onTaskDoubleClick:Nt,onTaskContextMenu:Ft,onTaskRemoveClick:e.onTaskRemoveClick&&Lt}},t.createElement("div",{ref:Ne,role:"application",style:s,className:h.classNames("k-gantt",c)},t.createElement(Bn,{ref:j},L&&L.addTaskButton?t.createElement(qn,{selectedTask:D.current,onClick:Fe}):null,t.createElement(ae.ToolbarSpacer,null),t.createElement(Kn,null,t.createElement(_n,null))),R&&t.createElement(R.type,{key:R.props.name,ref:Q,...R.props,firstSlotRangeRef:M}),n&&t.createElement(h.WatermarkOverlay,null)))}),Re={taskData:[],dependencyData:[],columns:[],rowHeight:40};Ue.propTypes={taskData:i.array,taskModelFields:i.shape({id:i.string,start:i.string,end:i.string,title:i.string,percentComplete:i.string,isRollup:i.string,isExpanded:i.string,children:i.string,isInEdit:i.string}),dependencyData:i.array,dependencyModelFields:i.shape({id:i.string,fromId:i.string,toId:i.string,type:i.string}),columns:i.arrayOf(i.shape({width:i.number,cell:i.any,editCell:i.any,headerCell:i.any,filter:i.any,children:i.any,field:i.string,title:i.string,sortable:i.any,expandable:i.bool,headerSelectionValue:i.bool,format:i.string,headerClassName:i.string,className:i.string,resizable:i.bool,reorderable:i.bool,minResizableWidth:i.number,orderIndex:i.number,columnMenu:i.any})),sort:i.array,filter:i.array,columnMenuFilter:i.array,columnMenu:i.any,style:i.object,className:i.string,children:i.any,timezone:i.string,defaultView:i.string,view:i.string,rowHeight:i.number,navigatable:i.bool,onViewChange:i.func,onDataStateChange:i.func,onSortChange:i.func,onFilterChange:i.func,onExpandChange:i.func,onRowClick:i.func,onColumnResize:i.func,onColumnReorder:i.func},Ue.defaultProps=Re,Ue.displayName="KendoReactGantt";const qe=t.forwardRef((e,a)=>{const{slotWidth:n=fe.slotWidth,slotDuration:r=fe.slotDuration,firstSlotRangeRef:o,timelineHeaderCell:l}=e,{timezone:s}=Ie(),c=U.useInternationalization(),g=t.useRef(null),f=t.useRef(null),d=t.useCallback(H=>{f.current&&f.current.scrollIntoView(H)},[]);t.useImperativeHandle(g,()=>({scrollIntoView:d})),t.useImperativeHandle(a,()=>g.current);const u=xe(),m=e.workWeekStart||fe.workWeekStart,E=e.workWeekEnd||fe.workWeekEnd,p=e.workDayStart||fe.workDayStart,C=e.workDayEnd||fe.workDayEnd,x=t.useMemo(()=>{const H=$t({workWeekStart:m,workWeekEnd:E}),V=[],L=Zt(u,{workDays:H,timezone:s},c);return L.forEach(N=>{const O=ya(N.range,{workDayStart:p,workDayEnd:C,timezone:s,slotDuration:r},c);N.span=O.length,V.push.apply(V,O)}),o&&V[0]&&(o.current=V[0].range),[L,V]},[s,u.start.getTime(),u.end.getTime(),c,m,E,p,C]);return t.createElement(ye,{ref:f,slotWidth:n,slotLevels:x,timelineHeaderCell:l})}),fe={name:"day",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=Ut(r),s=Pe(o),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(Dt,se[Dt]),slotWidth:ke,slotDuration:60,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};qe.defaultProps=fe,qe.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,slotDuration:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},qe.displayName="KendoReactGanttDayView";const $e=t.forwardRef((e,a)=>{const{slotWidth:n=$n.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(m=>{g.current&&g.current.scrollIntoView(m)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=t.useMemo(()=>{const m=[],E=Xt(d,{timezone:l},s);return E.forEach(p=>{const C=jt(p.range,{timezone:l},s);m.push.apply(m,C)}),r&&m[0]&&(r.current=m[0].range),[E,m]},[l,d.start.getTime(),d.end.getTime(),s]);return t.createElement(ye,{ref:g,slotWidth:n,slotLevels:u,timelineHeaderCell:o})}),$n={name:"month",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=w.firstDayOfMonth(w.getDate(r)),s=w.addDays(w.lastDayOfMonth(w.getDate(o)),1),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(bt,se[bt]),slotWidth:ke,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};$e.defaultProps=$n,$e.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number,workWeekStart:i.number,workWeekEnd:i.number,workDayStart:i.string,workDayEnd:i.string},$e.displayName="GanttMonthView";const Ye=t.forwardRef((e,a)=>{const{slotWidth:n=Yn.slotWidth,firstSlotRangeRef:r,timelineHeaderCell:o}=e,{timezone:l}=Ie(),s=U.useInternationalization(),c=t.useRef(null),g=t.useRef(null),f=t.useCallback(m=>{g.current&&g.current.scrollIntoView(m)},[]);t.useImperativeHandle(c,()=>({scrollIntoView:f})),t.useImperativeHandle(a,()=>c.current);const d=xe(),u=t.useMemo(()=>{const m=Ta(d,{timezone:l},s),E=[];return m.forEach(p=>{const C=Xt(p.range,{timezone:l},s);E.push.apply(E,C)}),r&&E[0]&&(r.current=E[0].range),[m,E]},[l,d.start.getTime(),d.end.getTime(),s]);return t.createElement(ye,{slotWidth:n,slotLevels:u,timelineHeaderCell:o})}),Yn={name:"year",dateRange:({tasksStart:e,tasksEnd:a,timezone:n})=>{const r=w.ZonedDate.fromLocalDate(e,n),o=w.ZonedDate.fromLocalDate(a,n),l=w.firstDayOfMonth(w.firstMonthOfYear(w.getDate(r))),s=w.addDays(w.lastDayOfMonth(w.lastMonthOfYear(w.getDate(o))),1),c=w.ZonedDate.fromUTCDate(ie(l),n),g=w.ZonedDate.fromUTCDate(ie(s),n);return{start:new Date(c.getTime()),end:new Date(g.getTime()),zonedStart:c,zonedEnd:g}},title:e=>e.toLanguageString(St,se[St]),slotWidth:ke};Ye.defaultProps=Yn,Ye.propTypes={name:i.string,dateRange:i.oneOfType([i.func,i.object]),title:i.oneOfType([i.string,i.func]),slotWidth:i.number},Ye.displayName="GanttYearView";const qa=[{text:dn,operator:"contains"},{text:un,operator:"doesnotcontain"},{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:cn,operator:"startswith"},{text:gn,operator:"endswith"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"},{text:on,operator:"isempty"},{text:ln,operator:"isnotempty"}],$a=[{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:fn,operator:"gte"},{text:hn,operator:"gt"},{text:mn,operator:"lte"},{text:Cn,operator:"lt"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"}],Ya=[{text:Ge,operator:"eq"},{text:We,operator:"neq"},{text:vn,operator:"gte"},{text:Dn,operator:"gt"},{text:bn,operator:"lt"},{text:Sn,operator:"lte"},{text:_e,operator:"isnull"},{text:Ke,operator:"isnotnull"}],Za=[{text:pn,operator:""},{text:En,operator:!0},{text:wn,operator:!1}];function Ze(e,a){return{clearButtonTitle:e.toLanguageString(kt,se[kt]),operators:a.map(n=>({text:e.toLanguageString(n.text,se[n.text]),operator:n.operator}))}}const Zn=e=>{const{operators:a,...n}=e;return t.createElement(S.TextFilterCell,{ariaLabel:"text filter",...Ze(U.useLocalization(),a||qa),...n})};Zn.displayName="KendoReactGanttTextFilter";const jn=e=>{const{operators:a,...n}=e;return t.createElement(S.NumericFilterCell,{ariaLabel:"numeric filter",...Ze(U.useLocalization(),a||$a),...n})};jn.displayName="KendoReactGanttNumericFilter";const Xn=e=>{const{operators:a,...n}=e;return t.createElement(S.BooleanFilterCell,{ariaLabel:"boolean filter",...Ze(U.useLocalization(),a||Za),...n})};Xn.displayName="KendoReactGanttBooleanFilter";const Jn=e=>{const{operators:a,...n}=e;return t.createElement(S.DateFilterCell,{ariaLabel:"date filter",...Ze(U.useLocalization(),a||Ya),...n})};Jn.displayName="KendoReactGanttDateFilter";const ja=e=>{const{dependencyData:a,dependencyModelFields:n,defaultDataItem:r,fromId:o,toId:l,type:s}=e,c=a.map(m=>({...m})),g=h.setter(n.fromId),f=h.setter(n.toId),d=h.setter(n.type),u=r?{...r}:{};return g(u,o),f(u,l),d(u,s),c.push(u),c},Xa=e=>{const{defaultDataItem:a,selectedDataItem:n,direction:r,taskModelFields:o,dataTree:l,slotStart:s,slotEnd:c}=e,g=Oe(l,o.children,C=>({...C})),f=h.setter(o.start),d=h.setter(o.end),u=h.getter(o.start),m=h.getter(o.end),E=a?{...a}:{},p=u(E)&&m(E);if(!n||r==="none")p||(f(E,s),d(E,c)),g.unshift(E);else{const C=[{task:{[o.children]:g},childrenIndex:0}],x=h.getter(o.id),H=h.getter(o.children),V=h.setter(o.children),L=x(n);for(;C.length>0;){const N=C[C.length-1],O=N.task,ee=x(O),T=H(O);if(ee&&ee===L)break;T&&T.length&&T.length>N.childrenIndex?(C.push({task:T[N.childrenIndex],childrenIndex:0}),N.childrenIndex++):C.pop()}if(C.length>1){const N=C[C.length-1].task,O=C[C.length-2].childrenIndex,T=C[C.length-2].task,J=H(T);switch(r){case"child":{let A=H(N);A||(A=[],V(N,A)),p||(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))),A.push(E),je(C.splice(1,C.length-1).map(Q=>Q.task),o);break}case"above":{u(T)&&m(T)&&!p?(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))):(f(E,s),d(E,c)),J.splice(O-1,0,E),je(C.splice(1,C.length-2).map(A=>A.task),o);break}case"below":{u(T)&&m(T)&&!p?(f(E,new Date(u(N).getTime())),d(E,new Date(m(N).getTime()))):(f(E,s),d(E,c)),J.splice(O,0,E),je(C.splice(1,C.length-2).map(A=>A.task),o);break}}}}return g},Ja=e=>{const{updatedDataItem:a,taskModelFields:n,dataTree:r}=e,o=h.getter(n.id),l=h.getter(n.children),s=o(a);let c;const g=Oe(r,n.children,d=>o(d)===s?(c=d,{...a}):{...d});let f=[{task:{[n.children]:g},childrenIndex:0}];for(;f.length>0;){const d=f[f.length-1],u=d.task,m=o(u),E=l(u);if(m&&m===s)break;E&&E.length&&E.length>d.childrenIndex?(f.push({task:E[d.childrenIndex],childrenIndex:0}),d.childrenIndex++):f.pop()}if(f.length>1){f=f.splice(1,f.length-2);const d=h.getter(n.start),u=h.getter(n.end),m=h.getter(n.percentComplete);if(d(c).getTime()!==d(a).getTime()){Qn(f.map(p=>p.task),n);const E=d(a).getTime()-d(c).getTime();Pa(l(a),n,E)}u(c).getTime()!==u(a).getTime()&&Pn(f.map(E=>E.task),n),m(c)!==m(a)&&ea(f.map(E=>E.task),n)}return g},Qa=e=>{const{removedDataItem:a,taskModelFields:n,dataTree:r}=e,o=Oe(r,n.children,f=>({...f}));let l=[{task:{[n.children]:o},childrenIndex:0}];const s=h.getter(n.id),c=h.getter(n.children),g=s(a);for(;l.length>0;){const f=l[l.length-1],d=f.task,u=s(d),m=c(d);if(u&&u===g)break;m&&m.length&&m.length>f.childrenIndex?(l.push({task:m[f.childrenIndex],childrenIndex:0}),f.childrenIndex++):l.pop()}if(l.length>1){const f=l[l.length-2],d=f.task;c(d).splice(f.childrenIndex-1,1),l=l.splice(1,l.length-2),je(l.map(m=>m.task),n)}return o},je=(e,a)=>{Qn(e,a),Pn(e,a),ea(e,a)},Qn=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.start),o=h.setter(a.start);for(let l=e.length-1;l>=0;l--){const s=e[l],c=n(s);if(c&&c.length){const g=c.reduce((f,d)=>Math.min(f,r(d).getTime()),r(c[0]).getTime());o(s,new Date(g))}}},Pn=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.end),o=h.setter(a.end);for(let l=e.length-1;l>=0;l--){const s=e[l],c=n(s);if(c&&c.length){const g=c.reduce((f,d)=>Math.max(f,r(d).getTime()),r(c[0]).getTime());o(s,new Date(g))}}},ea=(e,a)=>{if(!e.length)return;const n=h.getter(a.children),r=h.getter(a.percentComplete),o=h.setter(a.percentComplete),l=({avg:s,n:c},g)=>({avg:((r(g)||0)+c*s)/(c+1),n:c+1});for(let s=e.length-1;s>=0;s--){const c=e[s],g=n(c);if(g&&g.length){const f=g.reduce(l,{avg:0,n:0}).avg;o(c,f)}}},Pa=(e,a,n)=>{if(!e)return;const r=h.getter(a.children),o=h.getter(a.start),l=h.setter(a.start),s=h.getter(a.end),c=h.setter(a.end),g=e.map(f=>({task:f,childrenIndex:0}));for(;g.length>0;){const f=g[g.length-1],d=f.task,u=r(d);u&&u.length&&u.length>f.childrenIndex?(g.push({task:u[f.childrenIndex],childrenIndex:0}),f.childrenIndex++):(g.pop(),l(d,new Date(o(d).getTime()+n)),c(d,new Date(s(d).getTime()+n)))}},er=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,type:g,optional:f,...d}=e,u=n&&a,m=!u&&c,E=m?`${o}_hint`:"",p=u?`${o}_error`:"";return t.createElement(oe.FieldWrapper,null,t.createElement(le.Label,{editorId:o,editorValid:l,editorDisabled:s,optional:f},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(Mt.Input,{valid:l,type:g,id:o,disabled:s,ariaDescribedBy:`${E} ${p}`,...d}),m&&t.createElement(le.Hint,{id:E},c),u&&t.createElement(le.Error,{id:p},a)))},ta=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,wrapperStyle:g,...f}=e,d=n&&a,u=!d&&c,m=u?`${o}_hint`:"",E=d?`${o}_error`:"",p=r?`${o}_label`:"";return t.createElement(oe.FieldWrapper,{style:g},t.createElement(le.Label,{id:p,editorId:o,editorValid:l,editorDisabled:s},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(aa.DateTimePicker,{ariaLabelledBy:p,ariaDescribedBy:`${m} ${E}`,valid:l,id:o,disabled:s,...f}),u&&t.createElement(le.Hint,{id:m},c),d&&t.createElement(le.Error,{id:E},a)))},tr=e=>{const{validationMessage:a,touched:n,label:r,id:o,valid:l,disabled:s,hint:c,...g}=e,f=n&&a,d=!f&&c,u=d?`${o}_hint`:"",m=f?`${o}_error`:"";return t.createElement(oe.FieldWrapper,null,t.createElement(le.Label,{editorId:o,editorValid:l,editorDisabled:s},r),t.createElement("div",{className:"k-form-field-wrap"},t.createElement(Mt.NumericTextBox,{ariaDescribedBy:`${u} ${m}`,valid:l,id:o,disabled:s,...g}),d&&t.createElement(le.Hint,{id:u},c),f&&t.createElement(le.Error,{id:m},a)))},nr=()=>{const e=st(),a=U.useLocalization(),n=C=>a.toLanguageString(C,se[C]),r=n(xn),o=n(yn),l=n(Tn),s=n(Rn),c=n(Nn),g=n(Fn),f=n(Ln),d=t.useCallback(C=>C||C===0?void 0:c,[c]),u=t.useCallback((C,x)=>C&&x(e.end)&&C.getTime()>x(e.end).getTime()?g:void 0,[e,g]),m=t.useCallback((C,x)=>C&&x(e.start)&&C.getTime()<x(e.start).getTime()?f:void 0,[e,f]),E=t.useMemo(()=>[d,u],[d,u]),p=t.useMemo(()=>[d,m],[d,m]);return t.createElement(oe.FormElement,{style:{width:400},horizontal:!0},t.createElement(oe.Field,{id:`${e.title}_gantteditor`,name:e.title,label:r,component:er,validator:d}),t.createElement(oe.Field,{id:`${e.start}_gantteditor`,name:e.start,label:o,component:ta,validator:E}),t.createElement(oe.Field,{id:`${e.end}_gantteditor`,name:e.end,label:l,component:ta,validator:p}),t.createElement(oe.Field,{id:`${e.percentComplete}_gantteditor`,name:e.percentComplete,format:"p",label:s,component:tr,step:.01,validator:d}))},ar=e=>{const{onCancel:a,onClose:n,onSubmit:r,...o}=e,l=U.useLocalization(),s=p=>l.toLanguageString(p,se[p]),c=s(kn),g=s(It),f=s(In),d=t.useCallback(p=>{if(a){const C={syntheticEvent:p,nativeEvent:p.nativeEvent,dataItem:e.dataItem};a.call(void 0,C)}},[a,e.dataItem]),u=t.useCallback(({syntheticEvent:p})=>{if(n){const C={syntheticEvent:p,nativeEvent:p.nativeEvent,dataItem:e.dataItem};n.call(void 0,C)}},[n,e.dataItem]),m=t.useCallback((p,C)=>{if(r){const x={dataItem:p,syntheticEvent:C,nativeEvent:C&&C.nativeEvent};r.call(void 0,x)}},[r]),E=t.createElement(oe.Form,{initialValues:e.dataItem,onSubmit:m,render:p=>t.createElement(Me.Dialog,{title:f,minWidth:600,onClose:u,style:{zIndex:90}},t.createElement(nr,null),t.createElement(Me.DialogActionsBar,null,t.createElement(ae.Button,{disabled:!p.allowSubmit,onClick:p.onSubmit},c),t.createElement(ae.Button,{onClick:d},g))),...o});return h.canUseDOM?Vt.createPortal(E,document&&document.body):null},rr=e=>{const{onClose:a,onCancel:n,onConfirm:r,dataItem:o}=e,l=U.useLocalization(),s=C=>l.toLanguageString(C,se[C]),c=s(Vn),g=s(It),f=s(On),d=s(Gn),u=t.useCallback(({syntheticEvent:C})=>{a&&a.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:null})},[a]),m=t.useCallback(C=>{n&&n.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:null})},[n]),E=t.useCallback(C=>{r&&r.call(void 0,{syntheticEvent:C,nativeEvent:C&&C.nativeEvent,dataItem:o})},[r,o]),p=t.createElement(Me.Dialog,{title:d,onClose:u},f,t.createElement(Me.DialogActionsBar,null,t.createElement("button",{className:"k-button",onClick:m},g),t.createElement("button",{className:"k-button",onClick:E},c)));return h.canUseDOM?Vt.createPortal(p,document&&document.body):null},sr=de.TreeListRow;Object.defineProperty(b,"getSelectedState",{enumerable:!0,get:()=>S.getSelectedState}),Object.defineProperty(b,"getSelectedStateFromKeyDown",{enumerable:!0,get:()=>S.getSelectedStateFromKeyDown}),Object.defineProperty(b,"setSelectedState",{enumerable:!0,get:()=>S.setSelectedState}),b.GANTT_COL_INDEX_ATTRIBUTE=sa,b.GANTT_PREVENT_SELECTION_ELEMENT=oa,b.GANTT_ROW_INDEX_ATTRIBUTE=ra,b.Gantt=Ue,b.GanttBooleanFilter=Xn,b.GanttDateFilter=Jn,b.GanttDayView=qe,b.GanttForm=ar,b.GanttMonthView=$e,b.GanttNumericFilter=jn,b.GanttRemoveDialog=rr,b.GanttRow=sr,b.GanttTextFilter=Zn,b.GanttWeekView=Te,b.GanttYearView=Ye,b.addDependency=ja,b.addTask=Xa,b.createDataTree=Ca,b.extendDataItem=ma,b.filterBy=ha,b.mapTree=Oe,b.orderBy=fa,b.removeTask=Qa,b.updateTask=Ja,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
package/index.mjs CHANGED
@@ -1531,7 +1531,7 @@ const Zt = {
1531
1531
  name: "@progress/kendo-react-gantt",
1532
1532
  productName: "KendoReact",
1533
1533
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
1534
- publishDate: 1704454258,
1534
+ publishDate: 1705312962,
1535
1535
  version: "",
1536
1536
  licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
1537
1537
  }, da = t.forwardRef((e, a) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-gantt",
3
- "version": "7.0.3-develop.9",
3
+ "version": "7.1.0-develop.1",
4
4
  "description": "React Gantt enables the display of self-referencing tabular data with many features. KendoReact Gantt package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -26,17 +26,17 @@
26
26
  "@progress/kendo-date-math": "^1.4.1",
27
27
  "@progress/kendo-drawing": "^1.19.0",
28
28
  "@progress/kendo-licensing": "^1.3.4",
29
- "@progress/kendo-react-buttons": "7.0.3-develop.9",
30
- "@progress/kendo-react-common": "7.0.3-develop.9",
31
- "@progress/kendo-react-data-tools": "7.0.3-develop.9",
32
- "@progress/kendo-react-dateinputs": "7.0.3-develop.9",
33
- "@progress/kendo-react-dialogs": "7.0.3-develop.9",
34
- "@progress/kendo-react-dropdowns": "7.0.3-develop.9",
35
- "@progress/kendo-react-form": "7.0.3-develop.9",
36
- "@progress/kendo-react-inputs": "7.0.3-develop.9",
37
- "@progress/kendo-react-intl": "7.0.3-develop.9",
38
- "@progress/kendo-react-labels": "7.0.3-develop.9",
39
- "@progress/kendo-react-treelist": "7.0.3-develop.9",
29
+ "@progress/kendo-react-buttons": "7.1.0-develop.1",
30
+ "@progress/kendo-react-common": "7.1.0-develop.1",
31
+ "@progress/kendo-react-data-tools": "7.1.0-develop.1",
32
+ "@progress/kendo-react-dateinputs": "7.1.0-develop.1",
33
+ "@progress/kendo-react-dialogs": "7.1.0-develop.1",
34
+ "@progress/kendo-react-dropdowns": "7.1.0-develop.1",
35
+ "@progress/kendo-react-form": "7.1.0-develop.1",
36
+ "@progress/kendo-react-inputs": "7.1.0-develop.1",
37
+ "@progress/kendo-react-intl": "7.1.0-develop.1",
38
+ "@progress/kendo-react-labels": "7.1.0-develop.1",
39
+ "@progress/kendo-react-treelist": "7.1.0-develop.1",
40
40
  "@progress/kendo-svg-icons": "^2.1.0",
41
41
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
42
42
  "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"