@progress/kendo-react-gantt
Version:
React Gantt enables the display of self-referencing tabular data with many features. KendoReact Gantt package
9 lines (8 loc) • 2.85 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react"),t=require("prop-types"),a=require("@progress/kendo-date-math"),O=require("../components/BaseView.js"),i=require("../utils/index.js"),E=require("../context/GanttContext.js"),R=require("../constants/index.js"),W=require("../messages/index.js"),q=require("@progress/kendo-react-intl");function _(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(s,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return s.default=e,Object.freeze(s)}const o=_(I),y=o.forwardRef((e,s)=>{const{slotWidth:r=D.slotWidth,firstSlotRangeRef:n,timelineHeaderCell:f}=e,{timezone:l}=E.useGanttPropsContext(),u=q.useInternationalization(),k=o.useRef(null),c=o.useRef(null),w=o.useCallback(m=>{c.current&&c.current.scrollIntoView(m)},[]);o.useImperativeHandle(k,()=>({scrollIntoView:w})),o.useImperativeHandle(s,()=>k.current);const g=E.useGanttDateRangeContext(),T=e.workWeekStart||D.workWeekStart,S=e.workWeekEnd||D.workWeekEnd,b=o.useMemo(()=>{const m=i.getWorkDays({workWeekStart:T,workWeekEnd:S}),d=[],p=i.getWeekSlots(g,{timezone:l},u);return p.forEach(V=>{const C=i.getDaySlots(V.range,{workDays:m,timezone:l},u);d.push.apply(d,C)}),n&&d[0]&&(n.current=d[0].range),[p,d]},[l,g.start.getTime(),g.end.getTime(),u,T,S]);return o.createElement(O.BaseView,{ref:c,slotWidth:r,slotLevels:b,timelineHeaderCell:f})}),h=({intl:e,tasksStart:s,tasksEnd:r,timezone:n})=>{const f=a.ZonedDate.fromLocalDate(s,n),l=a.ZonedDate.fromLocalDate(r,n),u=i.getStartDate(a.firstDayInWeek(a.getDate(f),e.firstDay())),k=i.getEndDate(a.firstDayInWeek(a.getDate(l),e.firstDay()),R.DAYS_IN_WEEK_COUNT),c=a.ZonedDate.fromUTCDate(i.toUTCDateTime(u),n),w=a.ZonedDate.fromUTCDate(i.toUTCDateTime(k),n);return{start:new Date(c.getTime()),end:new Date(w.getTime()),zonedStart:c,zonedEnd:w}},D={name:"week",dateRange:h,title:e=>e.toLanguageString(W.weekViewTitle,W.messages[W.weekViewTitle]),slotWidth:R.DEFAULT_COLUMN_WIDTH,workWeekStart:1,workWeekEnd:5,workDayStart:"08:00",workDayEnd:"17:00"};y.propTypes={name:t.string,dateRange:t.oneOfType([t.func,t.object]),title:t.oneOfType([t.string,t.func]),slotWidth:t.number,workWeekStart:t.number,workWeekEnd:t.number,workDayStart:t.string,workDayEnd:t.string};y.displayName="KendoReactGanttWeekView";exports.GanttWeekView=y;exports.ganttWeekViewDefaultProps=D;