UNPKG

vxe-gantt

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