UNPKG

vxe-gantt

Version:
1 lines • 32 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_static=require("./static"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,{FinishToStart,StartToFinish,StartToStart,FinishToFinish}=_static.VxeGanttDependencyType,sourceType="gantt",secondMs=1e3,minuteMs=6e4,hourMs=36e5,dayMs=24*hourMs;function getTaskLinkKey(e,t,l){return e+"_"+t+"_"+(l||0)}function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}function createReactData(){return{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(l,u){var d=_xeUtils.default.uniqueId();let N=(0,_vue.inject)("$xeGantt",{}),le=N.props,Q=N.reactData,A=N.internalData,{computeDateFormat:r,computeTaskBarOpts:ae,computeTaskViewOpts:t,computeStartField:P,computeEndField:K,computeTypeField:J,computeScrollbarOpts:w,computeScrollbarXToTop:b,computeScrollbarYToLeft:T,computeScaleUnit:i,computeWeekScale:s,computeMinScale:W,computeTaskNowLineOpts:_,computeScaleStep:D}=N.getComputeMaps(),U=(0,_vue.ref)(),M=(0,_vue.ref)(),E=(0,_vue.ref)(),L=(0,_vue.ref)(),k=(0,_vue.ref)(),H=(0,_vue.ref)(),R=(0,_vue.ref)(),O=(0,_vue.ref)(),z=(0,_vue.ref)(),I=(0,_vue.ref)(),j=(0,_vue.ref)(),f=(0,_vue.ref)(),g=(0,_vue.ref)(),$=(0,_vue.ref)(),Z=(0,_vue.reactive)(createReactData()),ee=createInternalData(),v={refElem:U,refScrollXHandleElem:L,refScrollYHandleElem:R},x=(0,_vue.computed)(()=>{var{minViewDate:a,maxViewDate:r}=Z,e=t.value,i=W.value,s=D.value,e=e.gridding,o=[];if(i&&a&&r){var{type:i,startDay:u}=i;let t=-(Q.currLeftSpacing+_xeUtils.default.toNumber(e&&e.leftSpacing||0)),l=Q.currRightSpacing+_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(0<s&&(t*=s,l*=s),i){case"year":{let e=_xeUtils.default.getWhatYear(a,t,"first");for(var d=_xeUtils.default.getWhatYear(r,l,"first");e<=d;){var n=e;o.push(n),e=_xeUtils.default.getWhatYear(e,s)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(a,t,"first");for(var f=_xeUtils.default.getWhatQuarter(r,l,"first");e<=f;){var c=e;o.push(c),e=_xeUtils.default.getWhatQuarter(e,s)}break}case"month":{let e=_xeUtils.default.getWhatMonth(a,t,"first");for(var h=_xeUtils.default.getWhatMonth(r,l,"first");e<=h;){var g=e;o.push(g),e=_xeUtils.default.getWhatMonth(e,s)}break}case"week":{let e=_xeUtils.default.getWhatWeek(a,t,u,u);for(var v=_xeUtils.default.getWhatWeek(r,l,u,u);e<=v;){var _=e;o.push(_),e=_xeUtils.default.getWhatWeek(e,s)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(a,t,"first");for(var m=_xeUtils.default.getWhatDay(r,l,"first");e<=m;){var x=e;o.push(x),e=_xeUtils.default.getWhatDay(e,s)}break}case"hour":{let e=_xeUtils.default.getWhatHours(a,t,"first");for(var p=_xeUtils.default.getWhatHours(r,l,"first");e<=p;){var y=e;o.push(y),e=_xeUtils.default.getWhatHours(e,s)}break}case"minute":{let e=_xeUtils.default.getWhatMinutes(a,t,"first");for(var S=_xeUtils.default.getWhatMinutes(r,l,"first");e<=S;){var w=e;o.push(w),e=_xeUtils.default.getWhatMinutes(e,s)}break}case"second":{let e=_xeUtils.default.getWhatSeconds(a,t,"first");for(var b=_xeUtils.default.getWhatSeconds(r,l,"first");e<=b;){var T=e;o.push(T),e=_xeUtils.default.getWhatSeconds(e,s)}break}}}return o});var e=(0,_vue.computed)(()=>{var{minViewDate:e,maxViewDate:a,viewCellWidth:r}=Z,{visibleColumn:i,todayDateMaps:s}=ee,o=W.value,u=t.value.showNowLine,d=_.value.mode,n=Q.nowTime;let f=0;if(u&&o&&e&&a&&n>=e.getTime()&&n<=a.getTime()){var u=s[o.type],c=_xeUtils.default.toStringDate(u);let t=null,l=null;for(let e=0;e<i.length;e++){var h=i[e],{startDateObj:g,endDateObj:v}=h;if(g.date<=c&&v.date>=c){t=h,f=e*r,l=i[e+1];break}}"progress"===d?t&&l&&(e=t.dateObj.date.getTime(),a=Math.max(0,Math.min(1,(n-e)/(l.dateObj.date.getTime()-e))),f+=a*r):"center"===d?f+=r/2:"end"===d&&(f+=r-1)}return f});let m={computeScaleDateList:x,computeNowLineLeft:e},F={xID:d,props:l,context:u,reactData:Z,internalData:ee,getRefMaps:()=>v,getComputeMaps:()=>m},te=e=>{var t=r.value;return _xeUtils.default.toStringDate(e,t)},re=()=>{var o=Q.taskScaleList,u=W.value;if(u){var o=o.find(e=>"week"===e.type),u="week"===u.type,d=new Date;let[e,t,l,a,r,i,s]=_xeUtils.default.toDateString(d,"yyyy-M-MM-dd-HH-mm-ss").split("-");var n=d.getDay()+1,f=Math.ceil((d.getMonth()+1)/3),o=""+_xeUtils.default.getYearWeek(d,o?o.startDay:void 0);u&&C(o,t)&&(e=""+(Number(e)+1),l="01"),Q.nowTime=d.getTime(),ee.todayDateMaps={year:e,quarter:e+"_q"+f,month:e+"_"+l,week:e+"_W"+o,day:`${e}_${l}_${a}_E`+n,date:`${e}_${l}_`+a,hour:`${e}_${l}_${a}_`+r,minute:`${e}_${l}_${a}_${r}_`+i,second:`${e}_${l}_${a}_${r}_${i}_`+s}}},ie=()=>{var e=Q.taskScaleList,t=i.value;let o=W.value,p=s.value;var l=x.value,a=D.value,r=p?p.startDay:void 0;let u=[],d=[];if(o&&t&&l.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},x="week"===o.type;var n=(t,l,a)=>{if(o.type!==t){var l=l[t],r=""+l.field;let e=s[t][r];e||(e=l,s[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}},f=e=>{let[t,l,a,r,i,s,o,u,d,n,f,c]=_xeUtils.default.toDateString(e,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var h=e.getDay(),g=h+1,v=Math.ceil((e.getMonth()+1)/3),_=""+_xeUtils.default.getYearWeek(e,p?p.startDay:void 0),m=_xeUtils.default.padStart(_,2,"0");return x&&C(_,a)&&(l=""+(Number(l)+1),a="1",r="0"+a),{date:e,yy:t,yyyy:l,M:a,MM:r,d:i,dd:s,H:o,HH:u,m:d,mm:n,s:f,ss:c,q:v,W:_,WW:m,E:g,e:h}};for(let e=0;e<l.length;e++){var c=l[e],h=f(c),{yyyy:g,MM:v,dd:_,HH:m,mm:y,ss:S,q:w,W:b,E:T}=h,U=h,w={year:{field:g,title:g,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatYear(c,a-1)):U},quarter:{field:g+"_q"+w,title:""+w,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatQuarter(c,a-1)):U},month:{field:g+"_"+v,title:v,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatMonth(c,a-1)):U},week:{field:g+"_W"+b,title:""+b,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatWeek(c,a-1,r,r)):U},day:{field:g+`_${v}_${_}_E`+T,title:""+T,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatDay(c,a-1)):U},date:{field:g+`_${v}_`+_,title:_,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatDay(c,a-1)):U},hour:{field:g+`_${v}_${_}_`+m,title:m,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatHours(c,a-1)):U},minute:{field:g+`_${v}_${_}_${m}_`+y,title:y,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatMinutes(c,a-1)):U},second:{field:g+`_${v}_${_}_${m}_${y}_`+S,title:S,dateObj:h,startDateObj:U,endDateObj:1<a?f(_xeUtils.default.getWhatSeconds(c,a-1)):U}},b=w[o.type];o.level<19&&n("year",w,b),o.level<17&&n("quarter",w,b),o.level<15&&n("month",w,b),o.level<13&&n("week",w,b),o.level<11&&n("day",w,b),o.level<9&&n("date",w,b),o.level<7&&n("hour",w,b),o.level<5&&n("minute",w,b),o.level<3&&n("second",w,b),u.push(b)}e.forEach(e=>{var t;e.type===o.type?d.push({scaleItem:e,columns:u}):((t=i[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),d.push({scaleItem:e,columns:t}))})}return{fullCols:u,groupCols:d}},C=(e,t)=>""+e=="1"&&""+t=="12",p=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return C(e,a+1)&&l++,{yyyy:l,W:e}},se=e=>{var t=W.value;let o=D.value;var l=i.value;let f=s.value;var a=r.value;if(t){let c=1<o?1/o:0;switch(l){case"year":{let d=/M|d|H|m|s|S/.test(a),n="yyyy",f={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,"yyyy");if(f[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatYear(l.date,o-t),n);f[e]=a+(o-t)*c,t--}}}),(e,t)=>{var l,e=te(e),t=te(t),a=_xeUtils.default.toDateString(e,n),r=d?e:_xeUtils.default.getWhatYear(e,0,"first"),e=_xeUtils.default.getWhatYear(e,0,"first"),i=_xeUtils.default.toDateString(t,n),t=d?t:_xeUtils.default.getWhatYear(t,0,"last"),s=_xeUtils.default.getWhatYear(t,0,"first");let o=0,u=1;d&&(l=_xeUtils.default.getDayOfYear(r,0),o=(r.getTime()-e.getTime())/dayMs/l,r=_xeUtils.default.getDayOfYear(t,0),u=(t.getTime()-s.getTime())/dayMs/r,c)&&(o*=c,u*=c);e=(f[a]||0)+o;return{offsetLeftSize:e,offsetWidthSize:(f[i]||0)-e+u}}}case"quarter":{let d=/M|d|H|m|ss|S/.test(a),n="yyyy-q",f={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,n);if(f[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatQuarter(l.date,o-t),n);f[e]=a+(o-t)*c,t--}}}),(e,t)=>{var l,e=te(e),t=te(t),a=_xeUtils.default.toDateString(e,n),r=d?e:_xeUtils.default.getWhatQuarter(e,0,"first"),e=_xeUtils.default.getWhatQuarter(e,0,"first"),i=_xeUtils.default.toDateString(t,n),t=d?t:_xeUtils.default.getWhatQuarter(t,0,"last"),s=_xeUtils.default.getWhatQuarter(t,0,"first");let o=0,u=1;d&&(l=_xeUtils.default.getDayOfQuarter(r,0),o=(r.getTime()-e.getTime())/dayMs/l,r=_xeUtils.default.getDayOfQuarter(t,0),u=(t.getTime()-s.getTime())/dayMs/r,c)&&(o*=c,u*=c);e=(f[a]||0)+o;return{offsetLeftSize:e,offsetWidthSize:(f[i]||0)-e+u}}}case"month":{let d="yyyy-MM",n=/d|H|m|ss|S/.test(a),f={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,d);if(f[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatMonth(l.date,o-t),d);f[e]=a+(o-t)*c,t--}}}),(e,t)=>{var l,e=te(e),t=te(t),a=_xeUtils.default.toDateString(e,d),r=n?e:_xeUtils.default.getWhatMonth(e,0,"first"),e=_xeUtils.default.getWhatMonth(e,0,"first"),i=_xeUtils.default.toDateString(t,d),t=n?t:_xeUtils.default.getWhatMonth(t,0,"last"),s=_xeUtils.default.getWhatMonth(t,0,"first");let o=0,u=1;n&&(l=_xeUtils.default.getDayOfMonth(r,0),o=(r.getTime()-e.getTime())/dayMs/l,r=_xeUtils.default.getDayOfMonth(t,0),u=(t.getTime()-s.getTime())/dayMs/r,c)&&(o*=c,u*=c);e=(f[a]||0)+o;return{offsetLeftSize:e,offsetWidthSize:(f[i]||0)-e+u}}}case"week":{let u=f?f.startDay:void 0,d=/d|H|m|s|S/.test(a),n={};return e.forEach(({dateObj:r},i)=>{let e=r.yyyy+"-"+r.W;if(n[e]=i,c){let a=o-1;for(;a;){var s=_xeUtils.default.getWhatWeek(r.date,o-a,u,u);let[e,t]=_xeUtils.default.toDateString(s,"yyyy-M-MM-dd-HH-mm-ss").split("-");s=""+_xeUtils.default.getYearWeek(s,f?f.startDay:void 0);let l=(e=C(s,t)?""+(Number(e)+1):e)+"-"+s;n[l]=i+(o-a)*c,a--}}}),(e,t)=>{var e=te(e),t=te(t),e=d?e:_xeUtils.default.getWhatWeek(e,0,"first",u),l=p(e,u),l=l.yyyy+"-"+l.W,a=_xeUtils.default.getWhatWeek(e,0,"first",u),t=d?t:_xeUtils.default.getWhatWeek(t,0,"first",u),r=p(t,u),r=r.yyyy+"-"+r.W,i=_xeUtils.default.getWhatWeek(t,0,"first",u);let s=0,o=1;d&&(s=(e.getTime()-a.getTime())/dayMs/7,o=(t.getTime()-i.getTime())/dayMs/7,c)&&(s*=c,o*=c);e=(n[l]||0)+s;return{offsetLeftSize:e,offsetWidthSize:(n[r]||0)-e+o}}}case"day":case"date":{let u="yyyy-MM-dd",d=/H|m|s|S/.test(a),n={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,u);if(n[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatDay(l.date,o-t),u);n[e]=a+(o-t)*c,t--}}}),(e,t)=>{var e=te(e),t=te(t),l=_xeUtils.default.toDateString(e,u),e=d?e:_xeUtils.default.getWhatDay(e,0,"first"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,u),t=d?t:_xeUtils.default.getWhatDay(t,0,"last"),i=_xeUtils.default.getWhatDay(t,0,"first");let s=0,o=1;d&&(s=(e.getTime()-a.getTime())/dayMs,o=(t.getTime()-i.getTime())/dayMs,c)&&(s*=c,o*=c);e=(n[l]||0)+s;return{offsetLeftSize:e,offsetWidthSize:(n[r]||0)-e+o}}}case"hour":{let u="yyyy-MM-dd HH",d=/m|s|S/.test(a),n={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,u);if(n[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatHours(l.date,o-t),u);n[e]=a+(o-t)*c,t--}}}),(e,t)=>{var e=te(e),t=te(t),l=_xeUtils.default.toDateString(e,u),e=d?e:_xeUtils.default.getWhatHours(e,0,"first"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,u),t=d?t:_xeUtils.default.getWhatHours(t,0,"last"),i=_xeUtils.default.getWhatHours(t,0,"first");let s=0,o=1;d&&(s=(e.getTime()-a.getTime())/hourMs,o=(t.getTime()-i.getTime())/hourMs,c)&&(s*=c,o*=c);e=(n[l]||0)+s;return{offsetLeftSize:e,offsetWidthSize:(n[r]||0)-e+o}}}case"minute":{let u="yyyy-MM-dd HH:mm",d=/s|S/.test(a),n={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,u);if(n[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatMinutes(l.date,o-t),u);n[e]=a+(o-t)*c,t--}}}),(e,t)=>{var e=te(e),t=te(t),l=_xeUtils.default.toDateString(e,u),e=d?e:_xeUtils.default.getWhatMinutes(e,0,"first"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,u),t=d?t:_xeUtils.default.getWhatMinutes(t,0,"last"),i=_xeUtils.default.getWhatMinutes(t,0,"first");let s=0,o=1;d&&(s=(e.getTime()-a.getTime())/minuteMs,o=(t.getTime()-i.getTime())/minuteMs,c)&&(s*=c,o*=c);e=(n[l]||0)+s;return{offsetLeftSize:e,offsetWidthSize:(n[r]||0)-e+o}}}case"second":{let u="yyyy-MM-dd HH:mm:ss",d=/S/.test(a),n={};return e.forEach(({dateObj:l},a)=>{let e=_xeUtils.default.toDateString(l.date,u);if(n[e]=a,c){let t=o-1;for(;t;){let e=_xeUtils.default.toDateString(_xeUtils.default.getWhatSeconds(l.date,o-t),u);n[e]=a+(o-t)*c,t--}}}),(e,t)=>{var e=te(e),t=te(t),l=_xeUtils.default.toDateString(e,u),e=d?e:_xeUtils.default.getWhatSeconds(e,0,"first"),a=_xeUtils.default.getWhatSeconds(e,0,"first"),r=_xeUtils.default.toDateString(t,u),t=d?t:_xeUtils.default.getWhatSeconds(t,0,"last"),i=_xeUtils.default.getWhatSeconds(t,0,"first");let s=0,o=1;d&&(s=(e.getTime()-a.getTime())/secondMs,o=(t.getTime()-i.getTime())/secondMs,c)&&(s*=c,o*=c);e=(n[l]||0)+s;return{offsetLeftSize:e,offsetWidthSize:(n[r]||0)-e+o}}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},y=()=>{var F=Q.linkList,C=le.treeConfig,e=ee.scrollXStore,t=ee.xeTable;let o=null,u=null,d=[];if(t){let r=P.value,i=K.value,s=J.value;var{computeAggregateOpts:l,computeTreeOpts:a}=t.getComputeMaps(),n=t.reactData.isRowGroupStatus,{afterFullData:t,afterTreeFullData:Y,afterGroupFullData:f}=t.internalData,l=l.value,a=a.value,I=a.transform,j=a.children||a.childrenField,c=e=>{let t=_xeUtils.default.get(e,r),l=_xeUtils.default.get(e,i);var a=_xeUtils.default.get(e,s),a=(0,_util.hasMilestoneTask)(a);t=t||l,!a&&l||(l=t),t&&(a=te(t),!o||o.getTime()>a.getTime())&&(o=a),l&&(a=te(l),!u||u.getTime()<a.getTime())&&(u=a),d.push(e)};n?(n=l.mapChildrenField)&&_xeUtils.default.eachTree(f,c,{children:n}):C?_xeUtils.default.eachTree(Y,c,{children:I?a.mapChildrenField:j}):t.forEach(c)}e.startIndex=0,e.endIndex=Math.max(1,e.visibleSize),Z.minViewDate=o,Z.maxViewDate=u,ee.startMaps={},ee.endMaps={},(()=>{var e=N.props.treeConfig,{minViewDate:t,maxViewDate:l}=Z,{fullCols:a,groupCols:r}=ie();if(t&&l&&a.length){let f=ee.xeTable;if(f){let s=P.value,o=K.value,u=J.value;var{computeAggregateOpts:t,computeTreeOpts:l}=f.getComputeMaps(),i=f.reactData.isRowGroupStatus,{afterFullData:c,afterTreeFullData:h,afterGroupFullData:g}=f.internalData,t=t.value,l=l.value,v=l.transform,_=l.children||l.childrenField;let d={},n=se(a);var m=e=>{var t=f.getRowid(e);let l=_xeUtils.default.get(e,s),a=_xeUtils.default.get(e,o);var r=(0,_util.getTaskType)(_xeUtils.default.get(e,u)),i=(0,_util.hasMilestoneTask)(r),r=(0,_util.hasSubviewTask)(r);i&&(l=l||a,a=l),r?d[t]={row:e,rowid:t,oLeftSize:0,oWidthSize:0}:l&&a&&({offsetLeftSize:i,offsetWidthSize:r}=n(l,a),d[t]={row:e,rowid:t,oLeftSize:i,oWidthSize:r})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(g,m,{children:i}):e?_xeUtils.default.eachTree(h,m,{children:v?l.mapChildrenField:_}):c.forEach(m),ee.chartMaps=d}}ee.visibleColumn=a,Z.headerGroups=r,re(),oe(),ue()})();var l=d,f=F,n=ae.value,r=ee.xeTable,i=[],s=new Map,h=new Map;if(A.criticalRowList=i,A.criticalRowMaps=s,A.criticalLinkKeyMaps=h,n.showCriticalPath&&f.length&&l.length&&r){var g,$=ee.chartMaps,v=new Map;for(g of l){var _=r.getRowid(g),m=$[_];v.set(_,{row:g,rowid:_,duration:m?m.oWidthSize:0,incoming:[],outgoing:[],indeg:0,ES:0,EF:0,LS:0,LF:0})}var x,p=[];for(x of f){var V,y=""+x.from,S=""+x.to;v.has(y)&&v.has(S)&&y!=S&&(y={from:x.from,to:x.to,type:_xeUtils.default.toNumber(x.type)||0,raw:x},p.push(y),S=v.get(""+x.to),(V=v.get(""+x.from))&&V.outgoing.push(y),S)&&(S.incoming.push(y),S.indeg++)}let t=[];v.forEach(e=>{0===e.indeg&&t.push(e)});var w=[];for(let e=0;e<t.length;e++){var b,X=t[e];w.push(X);for(b of X.outgoing){var q,T=v.get(""+b.to);T&&(q=T.indeg-1,0==(T.indeg=q))&&t.push(v.get(""+b.to))}}if(w.length!==v.size)(Q.criticalRowIds.length||Q.criticalLinks.length)&&Q.criticalPathFlag++,Q.criticalLinks=[],Q.criticalRowIds=[];else{let l=0;for(var U of w){let e=0;for(var W of U.incoming){var D=v.get(""+W.from);D&&(W=((e,t,l,a)=>{switch(e){case FinishToStart:return l;case StartToFinish:return t-a;case StartToStart:return t;case FinishToFinish:return l-a;default:return 0}})(W.type,D.ES,D.EF,U.duration))>e&&(e=W)}U.ES=e,U.EF=e+U.duration,U.EF>l&&(l=U.EF)}for(let t=w.length-1;0<=t;t--){var M,E=w[t];let e=l;for(M of E.outgoing){var L=v.get(""+M.to);L&&(L=((e,t,l,a)=>{switch(e){case FinishToStart:return t;case StartToFinish:return l+a;case StartToStart:return t+a;case FinishToFinish:return l;default:return-1}})(M.type,L.LS,L.LF,E.duration))<e&&(e=L)}E.LF=e,E.LS=e-E.duration}var k,H=new Set,B=[];for(k of w)Math.abs(k.LS-k.ES)<1e-6&&(H.add(k.rowid),B.push(k.rowid),i.push(k.row),s.set(k.rowid,k.row));var R,G=[];for(R of p){var O=v.get(""+R.to),z=v.get(""+R.from);O&&z&&H.has(z.rowid)&&H.has(O.rowid)&&((e,t,l,a,r,i)=>{switch(e){case FinishToStart:return Math.abs(l-a)<i;case StartToFinish:return Math.abs(t-r)<i;case StartToStart:return Math.abs(t-a)<i;case FinishToFinish:return Math.abs(l-r)<i;default:return}})(R.type,z.ES,z.EF,O.ES,O.EF,1e-6)&&(G.push(R.raw),h.set(getTaskLinkKey(R.from,R.to,R.type),R.raw))}Q.criticalLinks=G,Q.criticalRowIds=B,Q.criticalPathFlag++}}else(Q.criticalRowIds.length||Q.criticalLinks.length)&&Q.criticalPathFlag++,Q.criticalLinks=[],Q.criticalRowIds=[]};let c=()=>{var{scrollXWidth:e,scrollYHeight:t}=Z,l=ee.elemStore,a=w.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=L.value,i=R.value,s=!1;l&&(s=t>l.clientHeight,i&&(t=a.width||i.offsetWidth-i.clientWidth||14,Z.scrollbarWidth=t,Q.scrollbarWidth=t),Z.overflowY=s,Q.overflowY=s,i=e>l.clientWidth,r&&(t=a.height||r.offsetHeight-r.clientHeight||14,Z.scrollbarHeight=t,Q.scrollbarHeight=t),Z.overflowX=i,Q.overflowX=i)},S=(l,e)=>{let a=ee.chartMaps;var t=l.getComputeMaps().computeTreeOpts,t=t.value,t=t.children||t.childrenField;let r=J.value,i=0,s=0;return _xeUtils.default.eachTree(e,e=>{var t=l.getRowid(e),e=_xeUtils.default.get(e,r);(0,_util.hasSubviewTask)(e)||(e=t?a[t]:null)&&(s=Math.max(s,e.oLeftSize+e.oWidthSize),i=i?Math.min(i,e.oLeftSize):e.oLeftSize)},{children:t}),{minSize:i,maxSize:s}},V=()=>{let s=A.dragBarRow,o=Z.viewCellWidth,{elemStore:e,chartMaps:u}=ee,d=ee.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);if(t&&d){var l=d.getComputeMaps().computeTreeOpts,l=l.value;let i=l.children||l.childrenField;_xeUtils.default.arrayEach(t.children,e=>{var t,l,a,r=e.children[0];r&&(e=e.getAttribute("rowid"),s&&d.getRowid(s)===e||(l=(e=e?u[e]:null)?e.row:null,(0,_dom.hasClass)(r,"is--subview")?(t=r.firstElementChild)&&((0,_dom.hasClass)(t,"is--inline")?_xeUtils.default.arrayEach(t.children,e=>{var t,l,e=e.children[0],a=e.getAttribute("rowid")||"",a=a?u[a]:null;a&&(t=a.row,(0,_dom.hasClass)(e,"is--subview")?(t=t[i],{minSize:t,maxSize:l}=S(d,t),e.style.left=o*t+"px",e.style.width=o*(l-t)+"px"):(e.style.left=(0,_util.getTaskBarLeft)(a,o)+"px",(0,_dom.hasClass)(e,"is--milestone")||(e.style.width=(0,_util.getTaskBarWidth)(a,o)+"px")))}):(t=(t=t.children[0])?t.children[0]:null)&&(l=l?l[i]:[],{minSize:l,maxSize:a}=S(d,l),t.style.left=o*l+"px",t.style.width=o*(a-l)+"px")):(r.style.left=(0,_util.getTaskBarLeft)(e,o)+"px",(0,_dom.hasClass)(r,"is--milestone")||(r.style.width=(0,_util.getTaskBarWidth)(e,o)+"px"))))})}return(0,_vue.nextTick)()},h=()=>{var o=Q.showLeftView,{scrollbarWidth:u,scrollbarHeight:d,headerGroups:n,tableColumn:f}=Z,{elemStore:c,visibleColumn:h}=ee,g=ee.xeTable,v=U.value;if(v&&N){var _=w.value,m=b.value,x=T.value,p=k.value,y=H.value,S=M.value;let e=u;u=d;let t=0,l=0,a=0,r=(g&&(d=g.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(x&&o||_.y&&!1===_.y.visible)&&(e=0,r="hidden");var g=(0,_util.getRefElem)(c["main-header-scroll"]),d=(g&&(g.style.height=l+"px",g.style.setProperty("--vxe-ui-gantt-view-cell-height",l/n.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),x=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),o=(x&&(x.style.height=a+"px"),S&&(S.style.height=u+"px",S.style.visibility="visible"),z.value),_=(o&&(o.style.left=m?e+"px":"",o.style.width=v.clientWidth-e+"px"),p&&(p.style.width=m?e+"px":"",p.style.display=m&&u?"block":""),y&&(y.style.width=m?"":e+"px",y.style.display=!m&&u?"block":""),E.value),g=(_&&(_.style.width=e+"px",_.style.height=t+l+a+"px",_.style.visibility=r),O.value),n=(g&&(g.style.height=l+"px",g.style.display=l?"block":""),I.value),x=(n&&(n.style.height=t+"px",n.style.top=l+"px"),j.value),S=(x&&(x.style.height=a+"px",x.style.top=l+t+"px",x.style.display=a?"block":""),$.value);let i=40,s=i=S?S.clientWidth||40:i;h.length&&(s=Math.max(0,i*h.length),d)&&0<(v=(o=d.clientWidth)-s)&&(i+=Math.max(0,v/h.length),s=o),Z.viewCellWidth=i;p=(0,_util.getRefElem)(c["main-header-table"]),y=(0,_util.getRefElem)(c["main-body-table"]),m=i*f.length;return p&&(p.style.width=s+"px"),y&&(y.style.width=m+"px"),Z.scrollXWidth=s,Promise.all([V(),N.handleUpTaskLinkStyle?N.handleUpTaskLinkStyle(F):null])}},o=()=>{var e=U.value;return ee.rceRunTime=Date.now(),e&&e.clientWidth&&N?(c(),h(),(0,_vue.nextTick)().then(()=>{var e,t=Z.scrollXLoad,l=ee.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=q(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),G().then(()=>{B()})):a()})):(0,_vue.nextTick)()},X=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=ee,a=ee.xeTable;let r=30;a&&(a=a.getComputeMaps().computeResizeOpts,a=a.value,r=a.refreshDelay||r),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(o()):(0,_vue.nextTick)(()=>{e()}),ee.rceTimeout=setTimeout(()=>{ee.rceTimeout=void 0,o()},r)}),q=()=>{var e,t=Z.viewCellWidth,l=ee.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},B=()=>{var e=Z.isScrollXBig,t=ee.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:s,visibleSize:o}=q(),e={startIndex:Math.max(0,e?s-1:s-1-i-l),endIndex:e?s+o:s+o+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=s-1,t.visibleEndIndex=s+o+1,e);!(s<=a||r-o-1<=s)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,G())},G=()=>(ue(),a(),(0,_vue.nextTick)()),oe=()=>Z.scrollXLoad=!0,ue=()=>{var e=Z.scrollXLoad,{visibleColumn:t,scrollXStore:l}=ee,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);Z.tableColumn=e},a=()=>{let{scrollXLoad:t,scrollXWidth:e,viewCellWidth:l}=Z,{elemStore:a,scrollXStore:r}=ee;var i=(0,_util.getRefElem)(a["main-body-table"]),s=r.startIndex;let o=0,u=(t&&(o=Math.max(0,s*l)),i&&(i.style.transform=`translate(${o}px, ${Z.scrollYTop||0}px)`),e);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?u+"px":"")});s=f.value,s&&(s.style.width=u+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),s=i?i.firstElementChild:null,s&&(s.style.width=u+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),s=i?i.firstElementChild:null;return s&&(s.style.width=u+"px"),Z.scrollXLeft=o,Z.scrollXWidth=u,c(),(0,_vue.nextTick)()},de=()=>{B()},ne=(e,t)=>{var l=ee.lcsTimeout;Z.lazScrollLoading=!0,l&&clearTimeout(l),ee.lcsTimeout=setTimeout(()=>{ee.lcsRunTime=Date.now(),ee.lcsTimeout=void 0,ee.intoRunScroll=!1,ee.inVirtualScroll=!1,ee.inWheelScroll=!1,ee.inHeaderScroll=!1,ee.inBodyScroll=!1,ee.inFooterScroll=!1,Z.lazScrollLoading=!1},200)},Y=(e,t,l,a)=>{t&&(ee.lastScrollLeft=a),e&&(ee.lastScrollTop=l),Z.lastScrollTime=Date.now(),ne(t,e)},n=(d,n,f,c,h)=>{var g=ee.xeTable,{lastScrollLeft:v,lastScrollTop:_}=ee,m=L.value,x=R.value;if(m&&x&&g){var{computeScrollXThreshold:g,computeScrollYThreshold:p}=g.getComputeMaps(),y=x.clientHeight,S=m.clientWidth,x=x.scrollHeight,m=m.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,s=!1,o=!1,u=!1;f&&(g=g.value,(l=h<=0)||(a=m-1<=h+S),v<h?(r="right",m-g<=h+S&&(u=!0)):(r="left",h<=g&&(o=!0))),n&&(v=p.value,(e=c<=0)||(t=x-1<=c+y),_<c?(r="bottom",x-v<=c+y&&(s=!0)):(r="top",c<=v&&(i=!0))),Y(n,f,c,h);g={source:sourceType,scrollTop:c,scrollLeft:h,bodyHeight:y,bodyWidth:S,scrollHeight:x,scrollWidth:m,isX:f,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(s||i||u||o)&&N.dispatchEvent("scroll-boundary",g,d),N.dispatchEvent("scroll",g,d)}},fe=e=>{var t=ee.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:h,handleLazyRecalculate:X,handleUpdateCurrentRow(e){var t,l,a=ee.xeTable,r=U.value;a&&r&&(e?(t=a.props,l=a.getComputeMaps().computeRowOpts,(l.value.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${a.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(r.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=ee.xeTable,l=U.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:a,inFooterScroll:r}=ee;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=L.value,a&&l&&(t=l.scrollLeft,ee.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),n(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=Z.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:s,inFooterScroll:o,lastScrollLeft:u,lastScrollTop:d}=ee;i||s||o||(i=e.currentTarget,s=(0,_util.getRefElem)(r["main-header-scroll"]),o=L.value,r=R.value,u=(t=i.scrollLeft)!==u,d=(l=i.scrollTop)!==d,ee.inBodyScroll=!0,ee.scrollRenderType="",d&&((0,_dom.setScrollTop)(r,l),fe(l)),u&&(ee.inBodyScroll=!0,(0,_dom.setScrollLeft)(o,t),(0,_dom.setScrollLeft)(s,t),a)&&de(),d&&Y(d,u,i.scrollTop,t),u&&n(e,d,u,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=Z.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=ee;r||i||(r=e.currentTarget,i=(0,_util.getRefElem)(a["main-header-scroll"]),a=(0,_util.getRefElem)(a["main-body-scroll"]),r&&(t=r.scrollLeft,ee.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&de(),n(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=ee;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,ee.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),fe(e),Y(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return a()},handleUpdateSYSpace(){return(()=>{var{scrollYLoad:e,overflowY:t}=Z,l=ee.elemStore,a=ee.xeTable,r=(0,_util.getRefElem)(l["main-body-scroll"]),i=(0,_util.getRefElem)(l["main-body-table"]);let s=0,o=0,u=!1,d=(a&&(a=a.reactData,s=a.scrollYTop,o=a.scrollYHeight,u=a.isScrollYBig),o),n=s,f=0;r&&(f=r.clientHeight),u&&(n=r&&i&&r.scrollTop+f>=maxYHeight?maxYHeight-i.clientHeight:(maxYHeight-f)*(s/(o-f)),d=maxYHeight),e&&t||(n=0);a=(0,_util.getRefElem)(l["main-chart-task-wrapper"]),i&&(i.style.transform=`translate(${Z.scrollXLeft||0}px, ${n}px)`),a&&(a.style.transform=`translateY(${n}px)`),r=(0,_util.getRefElem)(l["main-body-ySpace"]),r&&(r.style.height=d?d+"px":""),e=g.value,e&&(e.style.height=d?d+"px":""),t=(0,_util.getRefElem)(l["main-chart-before-wrapper"]),i=t?t.firstElementChild:null,i&&(i.style.height=d?d+"px":""),a=(0,_util.getRefElem)(l["main-chart-after-wrapper"]),r=a?a.firstElementChild:null,r&&(r.style.height=d?d+"px":""),e=(0,_util.getRefElem)(l["main-chart-now-line"]);return e&&(e.style.height=d?d+"px":""),Z.scrollYTop=n,Z.scrollYHeight=o,Z.isScrollYBig=u,c(),(0,_vue.nextTick)().then(()=>{h()})})()},handleUpdateSYStatus(e){Z.scrollYLoad=e}};let ce=()=>{X()},he=(Object.assign(F,{refreshData(){return y(),o(),(0,_vue.nextTick)().then(()=>{var e=ee.xeTable;if(o(),e)return e.recalculate()})},updateViewData(e){var t=ee.xeTable;return t&&(t=t.reactData.tableData,Z.tableData=t,e&&(Q.currLeftSpacing=0,Q.currRightSpacing=0,y()),o()),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(ee.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:M,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-handle",onScroll:F.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:f,class:"vxe-gantt-view--scroll-x-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-x-right-corner"})])),ge=()=>(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:O,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:I,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-y-handle",onScroll:F.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:g,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:j,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),ve=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),_e=()=>{var e=T.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[ge(),ve()]:[ve(),ge()])};return(0,_vue.onMounted)(()=>{globalEvents.on(F,"resize",ce)}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(Z,createReactData()),_xeUtils.default.assign(ee,createInternalData())}),(0,_vue.onUnmounted)(()=>{globalEvents.off(F,"keydown")}),F.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=Z,r=b.value;return(0,_vue.h)("div",{ref:U,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":a}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},r?[he(),_e()]:[_e(),he()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:$,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",F),F},render(){return this.renderVN()}});