@progress/kendo-react-gantt 7.0.3-develop.4 → 7.0.3-develop.7

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