vxe-gantt 4.0.0-beta.5 → 4.0.0-beta.6

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.
@@ -37,7 +37,7 @@ function createInternalData() {
37
37
  };
38
38
  }
39
39
  const maxYHeight = 5e6;
40
- const maxXWidth = 5e6;
40
+ // const maxXWidth = 5e6
41
41
  export default defineVxeComponent({
42
42
  name: 'VxeGanttView',
43
43
  setup(props, context) {
@@ -64,9 +64,9 @@ export default defineVxeComponent({
64
64
  // 是否启用了纵向 Y 可视渲染方式加载
65
65
  scrollYLoad: false,
66
66
  // 是否存在纵向滚动条
67
- overflowY: false,
67
+ overflowY: true,
68
68
  // 是否存在横向滚动条
69
- overflowX: false,
69
+ overflowX: true,
70
70
  // 纵向滚动条的宽度
71
71
  scrollbarWidth: 0,
72
72
  // 横向滚动条的高度
@@ -386,54 +386,52 @@ export default defineVxeComponent({
386
386
  updateChart();
387
387
  return nextTick();
388
388
  };
389
- const updateScrollXSpace = () => {
390
- const { scrollXLoad, scrollXWidth } = reactData;
391
- const { elemStore } = internalData;
392
- const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
393
- const bodyTableElem = getRefElem(elemStore['main-body-table']);
394
- let xSpaceLeft = 0;
395
- let clientWidth = 0;
396
- if (bodyScrollElem) {
397
- clientWidth = bodyScrollElem.clientWidth;
398
- }
399
- // 虚拟渲染
400
- let isScrollXBig = false;
401
- let ySpaceWidth = scrollXWidth;
402
- if (scrollXWidth > maxXWidth) {
403
- // 触右
404
- if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
405
- xSpaceLeft = maxXWidth - bodyTableElem.clientWidth;
406
- }
407
- else {
408
- xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth));
409
- }
410
- ySpaceWidth = maxXWidth;
411
- isScrollXBig = true;
412
- }
413
- if (bodyTableElem) {
414
- bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`;
415
- }
416
- const layoutList = ['header', 'body', 'footer'];
417
- layoutList.forEach(layout => {
418
- const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`]);
419
- if (xSpaceElem) {
420
- xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : '';
421
- }
422
- });
423
- reactData.scrollXLeft = xSpaceLeft;
424
- reactData.scrollXWidth = ySpaceWidth;
425
- reactData.isScrollXBig = isScrollXBig;
426
- const scrollXSpaceEl = refScrollXSpaceElem.value;
427
- if (scrollXSpaceEl) {
428
- scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
429
- }
430
- calcScrollbar();
431
- return nextTick().then(() => {
432
- updateStyle();
433
- });
434
- };
389
+ // const updateScrollXSpace = () => {
390
+ // const { scrollXLoad, scrollXWidth } = reactData
391
+ // const { elemStore } = internalData
392
+ // const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
393
+ // const bodyTableElem = getRefElem(elemStore['main-body-table'])
394
+ // let xSpaceLeft = 0
395
+ // let clientWidth = 0
396
+ // if (bodyScrollElem) {
397
+ // clientWidth = bodyScrollElem.clientWidth
398
+ // }
399
+ // // 虚拟渲染
400
+ // let isScrollXBig = false
401
+ // let ySpaceWidth = scrollXWidth
402
+ // if (scrollXWidth > maxXWidth) {
403
+ // // 触右
404
+ // if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
405
+ // xSpaceLeft = maxXWidth - bodyTableElem.clientWidth
406
+ // } else {
407
+ // xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth))
408
+ // }
409
+ // ySpaceWidth = maxXWidth
410
+ // isScrollXBig = true
411
+ // }
412
+ // if (bodyTableElem) {
413
+ // bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
414
+ // }
415
+ // const layoutList = ['header', 'body', 'footer']
416
+ // layoutList.forEach(layout => {
417
+ // const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`])
418
+ // if (xSpaceElem) {
419
+ // xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : ''
420
+ // }
421
+ // })
422
+ // reactData.scrollXLeft = xSpaceLeft
423
+ // reactData.scrollXWidth = ySpaceWidth
424
+ // reactData.isScrollXBig = isScrollXBig
425
+ // const scrollXSpaceEl = refScrollXSpaceElem.value
426
+ // if (scrollXSpaceEl) {
427
+ // scrollXSpaceEl.style.width = `${ySpaceWidth}px`
428
+ // }
429
+ // calcScrollbar()
430
+ // return nextTick().then(() => {
431
+ // updateStyle()
432
+ // })
433
+ // }
435
434
  const updateScrollYSpace = () => {
436
- const { scrollYLoad, overflowY } = reactData;
437
435
  const { elemStore } = internalData;
438
436
  const $xeTable = internalData.xeTable;
439
437
  const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
@@ -463,19 +461,17 @@ export default defineVxeComponent({
463
461
  }
464
462
  ySpaceHeight = maxYHeight;
465
463
  }
466
- if (!(scrollYLoad && overflowY)) {
467
- scrollYTop = 0;
468
- }
464
+ const bodyChartWrapperElem = getRefElem(elemStore['main-chart-wrapper']);
469
465
  if (bodyTableElem) {
470
466
  bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
471
467
  }
472
- const layoutList = ['header', 'body', 'footer'];
473
- layoutList.forEach(layout => {
474
- const ySpaceElem = getRefElem(elemStore[`main-${layout}-ySpace`]);
475
- if (ySpaceElem) {
476
- ySpaceElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
477
- }
478
- });
468
+ if (bodyChartWrapperElem) {
469
+ bodyChartWrapperElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
470
+ }
471
+ const bodyYSpaceElem = getRefElem(elemStore['main-body-ySpace']);
472
+ if (bodyYSpaceElem) {
473
+ bodyYSpaceElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
474
+ }
479
475
  const scrollYSpaceEl = refScrollYSpaceElem.value;
480
476
  if (scrollYSpaceEl) {
481
477
  scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
@@ -676,8 +672,10 @@ export default defineVxeComponent({
676
672
  handleScrollEvent(evnt, isRollY, isRollX, currTopNum, wrapperEl.scrollLeft);
677
673
  }
678
674
  },
679
- updateScrollXSpace,
680
- updateScrollYSpace
675
+ updateScrollYSpace,
676
+ updateScrollYStatus(sYLoad) {
677
+ reactData.scrollYLoad = sYLoad;
678
+ }
681
679
  };
682
680
  const handleGlobalResizeEvent = () => {
683
681
  handleLazyRecalculate();
package/es/ui/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { errLog } from './src/log';
3
3
  const { setConfig, setIcon, checkVersion } = VxeUI;
4
- VxeUI.ganttVersion = "4.0.0-beta.5";
4
+ VxeUI.ganttVersion = "4.0.0-beta.6";
5
5
  setConfig({
6
6
  gantt: {
7
7
  // size: null,
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `gantt v${"4.0.0-beta.5"}`;
3
+ const version = `gantt v${"4.0.0-beta.6"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -46,7 +46,7 @@ function createInternalData() {
46
46
  };
47
47
  }
48
48
  const maxYHeight = 5e6;
49
- const maxXWidth = 5e6;
49
+ // const maxXWidth = 5e6
50
50
  var _default = exports.default = (0, _comp.defineVxeComponent)({
51
51
  name: 'VxeGanttView',
52
52
  setup(props, context) {
@@ -80,9 +80,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
80
80
  // 是否启用了纵向 Y 可视渲染方式加载
81
81
  scrollYLoad: false,
82
82
  // 是否存在纵向滚动条
83
- overflowY: false,
83
+ overflowY: true,
84
84
  // 是否存在横向滚动条
85
- overflowX: false,
85
+ overflowX: true,
86
86
  // 纵向滚动条的宽度
87
87
  scrollbarWidth: 0,
88
88
  // 横向滚动条的高度
@@ -441,61 +441,52 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
441
441
  updateChart();
442
442
  return (0, _vue.nextTick)();
443
443
  };
444
- const updateScrollXSpace = () => {
445
- const {
446
- scrollXLoad,
447
- scrollXWidth
448
- } = reactData;
449
- const {
450
- elemStore
451
- } = internalData;
452
- const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
453
- const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
454
- let xSpaceLeft = 0;
455
- let clientWidth = 0;
456
- if (bodyScrollElem) {
457
- clientWidth = bodyScrollElem.clientWidth;
458
- }
459
- // 虚拟渲染
460
- let isScrollXBig = false;
461
- let ySpaceWidth = scrollXWidth;
462
- if (scrollXWidth > maxXWidth) {
463
- // 触右
464
- if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
465
- xSpaceLeft = maxXWidth - bodyTableElem.clientWidth;
466
- } else {
467
- xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth));
468
- }
469
- ySpaceWidth = maxXWidth;
470
- isScrollXBig = true;
471
- }
472
- if (bodyTableElem) {
473
- bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`;
474
- }
475
- const layoutList = ['header', 'body', 'footer'];
476
- layoutList.forEach(layout => {
477
- const xSpaceElem = (0, _util.getRefElem)(elemStore[`main-${layout}-xSpace`]);
478
- if (xSpaceElem) {
479
- xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : '';
480
- }
481
- });
482
- reactData.scrollXLeft = xSpaceLeft;
483
- reactData.scrollXWidth = ySpaceWidth;
484
- reactData.isScrollXBig = isScrollXBig;
485
- const scrollXSpaceEl = refScrollXSpaceElem.value;
486
- if (scrollXSpaceEl) {
487
- scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
488
- }
489
- calcScrollbar();
490
- return (0, _vue.nextTick)().then(() => {
491
- updateStyle();
492
- });
493
- };
444
+ // const updateScrollXSpace = () => {
445
+ // const { scrollXLoad, scrollXWidth } = reactData
446
+ // const { elemStore } = internalData
447
+ // const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
448
+ // const bodyTableElem = getRefElem(elemStore['main-body-table'])
449
+ // let xSpaceLeft = 0
450
+ // let clientWidth = 0
451
+ // if (bodyScrollElem) {
452
+ // clientWidth = bodyScrollElem.clientWidth
453
+ // }
454
+ // // 虚拟渲染
455
+ // let isScrollXBig = false
456
+ // let ySpaceWidth = scrollXWidth
457
+ // if (scrollXWidth > maxXWidth) {
458
+ // // 触右
459
+ // if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
460
+ // xSpaceLeft = maxXWidth - bodyTableElem.clientWidth
461
+ // } else {
462
+ // xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth))
463
+ // }
464
+ // ySpaceWidth = maxXWidth
465
+ // isScrollXBig = true
466
+ // }
467
+ // if (bodyTableElem) {
468
+ // bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
469
+ // }
470
+ // const layoutList = ['header', 'body', 'footer']
471
+ // layoutList.forEach(layout => {
472
+ // const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`])
473
+ // if (xSpaceElem) {
474
+ // xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : ''
475
+ // }
476
+ // })
477
+ // reactData.scrollXLeft = xSpaceLeft
478
+ // reactData.scrollXWidth = ySpaceWidth
479
+ // reactData.isScrollXBig = isScrollXBig
480
+ // const scrollXSpaceEl = refScrollXSpaceElem.value
481
+ // if (scrollXSpaceEl) {
482
+ // scrollXSpaceEl.style.width = `${ySpaceWidth}px`
483
+ // }
484
+ // calcScrollbar()
485
+ // return nextTick().then(() => {
486
+ // updateStyle()
487
+ // })
488
+ // }
494
489
  const updateScrollYSpace = () => {
495
- const {
496
- scrollYLoad,
497
- overflowY
498
- } = reactData;
499
490
  const {
500
491
  elemStore
501
492
  } = internalData;
@@ -526,19 +517,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
526
517
  }
527
518
  ySpaceHeight = maxYHeight;
528
519
  }
529
- if (!(scrollYLoad && overflowY)) {
530
- scrollYTop = 0;
531
- }
520
+ const bodyChartWrapperElem = (0, _util.getRefElem)(elemStore['main-chart-wrapper']);
532
521
  if (bodyTableElem) {
533
522
  bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
534
523
  }
535
- const layoutList = ['header', 'body', 'footer'];
536
- layoutList.forEach(layout => {
537
- const ySpaceElem = (0, _util.getRefElem)(elemStore[`main-${layout}-ySpace`]);
538
- if (ySpaceElem) {
539
- ySpaceElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
540
- }
541
- });
524
+ if (bodyChartWrapperElem) {
525
+ bodyChartWrapperElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
526
+ }
527
+ const bodyYSpaceElem = (0, _util.getRefElem)(elemStore['main-body-ySpace']);
528
+ if (bodyYSpaceElem) {
529
+ bodyYSpaceElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
530
+ }
542
531
  const scrollYSpaceEl = refScrollYSpaceElem.value;
543
532
  if (scrollYSpaceEl) {
544
533
  scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
@@ -771,8 +760,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
771
760
  handleScrollEvent(evnt, isRollY, isRollX, currTopNum, wrapperEl.scrollLeft);
772
761
  }
773
762
  },
774
- updateScrollXSpace,
775
- updateScrollYSpace
763
+ updateScrollYSpace,
764
+ updateScrollYStatus(sYLoad) {
765
+ reactData.scrollYLoad = sYLoad;
766
+ }
776
767
  };
777
768
  const handleGlobalResizeEvent = () => {
778
769
  handleLazyRecalculate();
@@ -1 +1 @@
1
- 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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}let maxYHeight=5e6,maxXWidth=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(e,M){var l=_xeUtils.default.uniqueId();let _=(0,_vue.inject)("$xeGantt",{}),{computeTaskViewOpts:w,computeStartField:S,computeEndField:y,computeScrollbarOpts:q,computeScrollbarXToTop:g,computeScrollbarYToLeft:F}=_.getComputeMaps(),f=(0,_vue.ref)(),p=(0,_vue.ref)(),m=(0,_vue.ref)(),o=(0,_vue.ref)(),x=(0,_vue.ref)(),b=(0,_vue.ref)(),s=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.ref)(),D=(0,_vue.ref)(),H=(0,_vue.ref)(),n=(0,_vue.ref)(),v=(0,_vue.ref)(),R=(0,_vue.ref)(),W=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight: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,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}}),L=createInternalData(),k={refElem:f},z={},t={xID:l,props:e,context:M,reactData:W,internalData:L,getRefMaps:()=>k,getComputeMaps:()=>z},r=()=>{var e=_.props.treeConfig,l=L.xeTable;let a=null,i=null;if(l){let t=S.value,r=y.value;var o=l.getComputeMaps().computeTreeOpts,{afterFullData:l,afterTreeFullData:s}=l.internalData,o=o.value,c=o.transform,n=o.children||o.childrenField,u=e=>{var l=_xeUtils.default.get(e,t),e=_xeUtils.default.get(e,r);l&&e&&(l=_xeUtils.default.toStringDate(l),(!a||a.getTime()>l.getTime())&&(a=l),l=_xeUtils.default.toStringDate(e),!i||i.getTime()<l.getTime())&&(i=l)};e?_xeUtils.default.eachTree(s,u,{children:c?o.mapChildrenField:n}):l.forEach(u)}W.minViewDate=a,W.maxViewDate=i,L.startMaps={},L.endMaps={},(()=>{var e=_.props.treeConfig;let{minViewDate:n,maxViewDate:l}=W;var t=[],r=[];switch(w.value.mode){case"year":case"quarter":case"month":case"week":break;default:if(n&&l){var a=n.getTime(),u=l.getTime()-n.getTime(),i=Math.max(6,Math.floor(u/864e5)+1),o=[],s=[],d={};for(let l=0;l<i;l++){var v=new Date(a+864e5*l),h=v.getFullYear()+"-"+(v.getMonth()+1),v=""+v.getDate();let e=d[h];v={field:h+"-"+v,title:v};e?(e.children.push(v),t.push(e)):(e={field:h,title:h,children:[v]},o.push(e),t.push(e),d[h]=e),s.push(v)}r.push(o,s);let c=L.xeTable;if(c){let i=S.value,o=y.value;var u=c.getComputeMaps().computeTreeOpts,{afterFullData:g,afterTreeFullData:f}=c.internalData,u=u.value,p=u.transform,m=u.children||u.childrenField;let s={};var x=e=>{var l,t=c.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),l=Math.floor((r.getTime()-n.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})};e?_xeUtils.default.eachTree(f,x,{children:p?u.mapChildrenField:m}):g.forEach(x),L.chartMaps=s}}}W.tableColumn=t,W.headerGroups=r})()},h=()=>{var{scrollXWidth:e,scrollYHeight:l}=W,t=L.elemStore,r=q.value,t=(0,_util.getRefElem)(t["main-body-wrapper"]),a=o.value,i=s.value;t&&(l=l>t.clientHeight,i&&(W.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),W.overflowY=l,i=e>t.clientWidth,a&&(W.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),W.overflowX=i)},Y=()=>{let t=W.viewCellWidth,{elemStore:e,chartMaps:r}=L;var l=(0,_util.getRefElem)(e["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,e=>{var l=e.children[0];l&&(e=(e=e.getAttribute("rowid"))?r[e]:null)&&(l.style.left=t*e.oLeftSize+"px",l.style.width=t*e.oWidthSize+"px")}),(0,_vue.nextTick)()},X=()=>{var{scrollbarWidth:a,scrollbarHeight:i,tableColumn:o}=W,s=L.elemStore,c=L.xeTable,n=f.value;if(n&&n.clientHeight){var u=g.value,d=x.value,v=b.value,h=p.value;let e=0,l=0,t=0;c&&(c=c.internalData,e=c.tBodyHeight,l=c.tHeaderHeight,t=c.tFooterHeight);c=(0,_util.getRefElem)(s["main-header-scroll"]),c=(c&&(c.style.height=l+"px"),(0,_util.getRefElem)(s["main-body-scroll"])),h=(c&&(c.style.height=e+"px"),h&&(h.style.height=i+"px",h.style.visibility="visible"),E.value),h=(h&&(h.style.left=u?a+"px":"",h.style.width=n.clientWidth-a+"px"),d&&(d.style.width=u?a+"px":"",d.style.display=u&&i?"block":""),v&&(v.style.width=u?"":a+"px",v.style.display=!u&&i?"block":""),m.value),n=(h&&(h.style.width=a+"px",h.style.height=e+l+t+"px",h.style.visibility="visible"),T.value),d=(n&&(n.style.height=l+"px",n.style.display=l?"block":""),D.value),v=(d&&(d.style.height=e+"px",d.style.top=l+"px"),H.value),u=(v&&(v.style.height=t+"px",v.style.top=l+e+"px",v.style.display=t?"block":""),R.value);u&&(W.viewCellWidth=u.clientWidth||40);let r=W.viewCellWidth*o.length;c&&0<(a=(i=c.clientWidth)-r)&&(W.viewCellWidth+=Math.floor(a/o.length),r=i);h=(0,_util.getRefElem)(s["main-header-table"]),n=(0,_util.getRefElem)(s["main-body-table"]);return h&&(h.style.width=r+"px"),n&&(n.style.width=r+"px"),W.scrollXWidth=r,Y()}},a=()=>(h(),X(),Y(),(0,_vue.nextTick)());let c=(e,l,t,r,a)=>{var i;i=L.lcsTimeout,W.lazScrollLoading=!0,i&&clearTimeout(i),L.lcsTimeout=setTimeout(()=>{L.lcsRunTime=Date.now(),L.lcsTimeout=void 0,L.intoRunScroll=!1,L.inVirtualScroll=!1,L.inWheelScroll=!1,L.inHeaderScroll=!1,L.inBodyScroll=!1,L.inFooterScroll=!1,W.lazScrollLoading=!1},200)},u=e=>{var l=L.xeTable;l&&(l=l.internalData.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]))&&(l.scrollTop=e)};l={handleUpdateStyle:X,handleLazyRecalculate:a,handleUpdateCurrentRow(e){var l,t,r=L.xeTable,a=f.value;r&&a&&(e?(l=r.props.highlightCurrentRow,t=r.getComputeMaps().computeRowOpts,(t.value.isCurrent||l)&&_xeUtils.default.arrayEach(a.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${r.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var l=L.xeTable,t=f.value;l&&t&&(e?_xeUtils.default.arrayEach(t.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${l.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(t.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:l,inVirtualScroll:t,inBodyScroll:r,inFooterScroll:a}=L;t||r||a||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),a=o.value,r&&t&&(e=t.scrollLeft,L.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),c(0,0,0,t.scrollTop)))},triggerBodyScrollEvent(e){var l,{elemStore:t,inVirtualScroll:r,inHeaderScroll:a,inFooterScroll:i}=L;r||a||i||(r=e.currentTarget,a=(0,_util.getRefElem)(t["main-header-scroll"]),i=o.value,e=s.value,a&&r&&(t=r.scrollLeft,l=r.scrollTop,L.inBodyScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),(0,_dom.setScrollTop)(e,l),u(l),c(0,0,0,r.scrollTop)))},triggerFooterScrollEvent(e){var{inVirtualScroll:l,inHeaderScroll:t,inBodyScroll:r}=L;l||t||r||(l=e.currentTarget)&&(l.scrollLeft,c(0,0,0,l.scrollTop))},triggerVirtualScrollXEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=L;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(l=t.scrollLeft,L.inVirtualScroll=!0,(0,_dom.setScrollLeft)(r,l),(0,_dom.setScrollLeft)(e,l),c(0,0,0,t.scrollTop)))},triggerVirtualScrollYEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=L;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(e=t.scrollTop,L.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),u(e),c(0,0,0,0,t.scrollLeft)))},updateScrollXSpace:()=>{let{scrollXLoad:l,scrollXWidth:e}=W,t=L.elemStore;var r=(0,_util.getRefElem)(t["main-body-scroll"]),a=(0,_util.getRefElem)(t["main-body-table"]);let i=0,o=0,s=(r&&(o=r.clientWidth),!1),c=e;e>maxXWidth&&(i=r&&a&&r.scrollLeft+o>=maxXWidth?maxXWidth-a.clientWidth:(maxXWidth-o)*(i/(e-o)),c=maxXWidth,s=!0),a&&(a.style.transform=`translate(${i}px, ${W.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-xSpace`]);e&&(e.style.width=l?c+"px":"")}),W.scrollXLeft=i,W.scrollXWidth=c,W.isScrollXBig=s;r=n.value;return r&&(r.style.width=c+"px"),h(),(0,_vue.nextTick)().then(()=>{X()})},updateScrollYSpace:()=>{var{scrollYLoad:e,overflowY:l}=W;let t=L.elemStore;var r=L.xeTable,a=(0,_util.getRefElem)(t["main-body-scroll"]),i=(0,_util.getRefElem)(t["main-body-table"]);let o=0,s=0,c=!1,n=(r&&(r=r.reactData,o=r.scrollYTop,s=r.scrollYHeight,c=r.isScrollYBig),s),u=o,d=0;a&&(d=a.clientHeight),c&&(u=a&&i&&a.scrollTop+d>=maxYHeight?maxYHeight-i.clientHeight:(maxYHeight-d)*(o/(s-d)),n=maxYHeight),e&&l||(u=0),i&&(i.style.transform=`translate(${W.scrollXLeft||0}px, ${u}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-ySpace`]);e&&(e.style.height=n?n+"px":"")});r=v.value;return r&&(r.style.height=n?n+"px":""),W.scrollYTop=u,W.scrollYHeight=s,W.isScrollYBig=c,h(),(0,_vue.nextTick)().then(()=>{X()})}};let B=()=>{a()},d=(Object.assign(t,{refreshData(){return r(),a()},updateViewData(){var e=L.xeTable;return e&&(e=e.reactData.tableData,W.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(L.xeTable=e),(0,_vue.nextTick)()}},l),()=>(0,_vue.h)("div",{key:"vsx",ref:p,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:x,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--scroll-x-handle",onScroll:t.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:b,class:"vxe-gantt-view--scroll-x-right-corner"})])),i=()=>(0,_vue.h)("div",{ref:m,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:T,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:D,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:s,class:"vxe-gantt-view--scroll-y-handle",onScroll:t.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:v,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),V=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default)]),C=()=>{var e=F.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[i(),V()]:[V(),i()])};let U=(0,_vue.ref)(0);return(0,_vue.watch)(()=>W.tableData,()=>{U.value++}),(0,_vue.watch)(()=>W.tableData.length,()=>{U.value++}),(0,_vue.watch)(U,()=>{r()}),(0,_vue.onMounted)(()=>{globalEvents.on(t,"resize",B)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(t,"keydown"),_xeUtils.default.assign(L,createInternalData())}),t.renderVN=()=>{var{overflowX:e,overflowY:l,scrollXLoad:t,scrollYLoad:r}=W,a=w.value,i=g.value;return(0,_vue.h)("div",{ref:f,class:["vxe-gantt-view","mode--"+(a.mode||"day"),{"is--scroll-y":l,"is--scroll-x":e,"is--virtual-x":t,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},i?[d(),C()]:[C(),d()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",t),t},render(){return this.renderVN()}});
1
+ 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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(e,l){var t=_xeUtils.default.uniqueId();let _=(0,_vue.inject)("$xeGantt",{}),{computeTaskViewOpts:w,computeStartField:S,computeEndField:y,computeScrollbarOpts:q,computeScrollbarXToTop:g,computeScrollbarYToLeft:F}=_.getComputeMaps(),f=(0,_vue.ref)(),p=(0,_vue.ref)(),m=(0,_vue.ref)(),o=(0,_vue.ref)(),x=(0,_vue.ref)(),b=(0,_vue.ref)(),s=(0,_vue.ref)(),T=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),X=(0,_vue.ref)(),c=(0,_vue.ref)(),R=(0,_vue.ref)(),Y=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight: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,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}}),L=createInternalData(),z={refElem:f},k={},r={xID:t,props:e,context:l,reactData:Y,internalData:L,getRefMaps:()=>z,getComputeMaps:()=>k},a=()=>{var e=_.props.treeConfig,l=L.xeTable;let a=null,i=null;if(l){let t=S.value,r=y.value;var o=l.getComputeMaps().computeTreeOpts,{afterFullData:l,afterTreeFullData:s}=l.internalData,o=o.value,u=o.transform,n=o.children||o.childrenField,c=e=>{var l=_xeUtils.default.get(e,t),e=_xeUtils.default.get(e,r);l&&e&&(l=_xeUtils.default.toStringDate(l),(!a||a.getTime()>l.getTime())&&(a=l),l=_xeUtils.default.toStringDate(e),!i||i.getTime()<l.getTime())&&(i=l)};e?_xeUtils.default.eachTree(s,c,{children:u?o.mapChildrenField:n}):l.forEach(c)}Y.minViewDate=a,Y.maxViewDate=i,L.startMaps={},L.endMaps={},(()=>{var e=_.props.treeConfig;let{minViewDate:n,maxViewDate:l}=Y;var t=[],r=[];switch(w.value.mode){case"year":case"quarter":case"month":case"week":break;default:if(n&&l){var a=n.getTime(),c=l.getTime()-n.getTime(),i=Math.max(6,Math.floor(c/864e5)+1),o=[],s=[],v={};for(let l=0;l<i;l++){var d=new Date(a+864e5*l),h=d.getFullYear()+"-"+(d.getMonth()+1),d=""+d.getDate();let e=v[h];d={field:h+"-"+d,title:d};e?(e.children.push(d),t.push(e)):(e={field:h,title:h,children:[d]},o.push(e),t.push(e),v[h]=e),s.push(d)}r.push(o,s);let u=L.xeTable;if(u){let i=S.value,o=y.value;var c=u.getComputeMaps().computeTreeOpts,{afterFullData:g,afterTreeFullData:f}=u.internalData,c=c.value,p=c.transform,m=c.children||c.childrenField;let s={};var x=e=>{var l,t=u.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),l=Math.floor((r.getTime()-n.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})};e?_xeUtils.default.eachTree(f,x,{children:p?c.mapChildrenField:m}):g.forEach(x),L.chartMaps=s}}}Y.tableColumn=t,Y.headerGroups=r})()},v=()=>{var{scrollXWidth:e,scrollYHeight:l}=Y,t=L.elemStore,r=q.value,t=(0,_util.getRefElem)(t["main-body-wrapper"]),a=o.value,i=s.value;t&&(l=l>t.clientHeight,i&&(Y.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),Y.overflowY=l,i=e>t.clientWidth,a&&(Y.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),Y.overflowX=i)},V=()=>{let t=Y.viewCellWidth,{elemStore:e,chartMaps:r}=L;var l=(0,_util.getRefElem)(e["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,e=>{var l=e.children[0];l&&(e=(e=e.getAttribute("rowid"))?r[e]:null)&&(l.style.left=t*e.oLeftSize+"px",l.style.width=t*e.oWidthSize+"px")}),(0,_vue.nextTick)()},d=()=>{var{scrollbarWidth:a,scrollbarHeight:i,tableColumn:o}=Y,s=L.elemStore,u=L.xeTable,n=f.value;if(n&&n.clientHeight){var c=g.value,v=x.value,d=b.value,h=p.value;let e=0,l=0,t=0;u&&(u=u.internalData,e=u.tBodyHeight,l=u.tHeaderHeight,t=u.tFooterHeight);u=(0,_util.getRefElem)(s["main-header-scroll"]),u=(u&&(u.style.height=l+"px"),(0,_util.getRefElem)(s["main-body-scroll"])),h=(u&&(u.style.height=e+"px"),h&&(h.style.height=i+"px",h.style.visibility="visible"),D.value),h=(h&&(h.style.left=c?a+"px":"",h.style.width=n.clientWidth-a+"px"),v&&(v.style.width=c?a+"px":"",v.style.display=c&&i?"block":""),d&&(d.style.width=c?"":a+"px",d.style.display=!c&&i?"block":""),m.value),n=(h&&(h.style.width=a+"px",h.style.height=e+l+t+"px",h.style.visibility="visible"),T.value),v=(n&&(n.style.height=l+"px",n.style.display=l?"block":""),E.value),d=(v&&(v.style.height=e+"px",v.style.top=l+"px"),H.value),c=(d&&(d.style.height=t+"px",d.style.top=l+e+"px",d.style.display=t?"block":""),R.value);c&&(Y.viewCellWidth=c.clientWidth||40);let r=Y.viewCellWidth*o.length;u&&0<(a=(i=u.clientWidth)-r)&&(Y.viewCellWidth+=Math.floor(a/o.length),r=i);h=(0,_util.getRefElem)(s["main-header-table"]),n=(0,_util.getRefElem)(s["main-body-table"]);return h&&(h.style.width=r+"px"),n&&(n.style.width=r+"px"),Y.scrollXWidth=r,V()}},i=()=>(v(),d(),V(),(0,_vue.nextTick)());let u=(e,l,t,r,a)=>{var i;i=L.lcsTimeout,Y.lazScrollLoading=!0,i&&clearTimeout(i),L.lcsTimeout=setTimeout(()=>{L.lcsRunTime=Date.now(),L.lcsTimeout=void 0,L.intoRunScroll=!1,L.inVirtualScroll=!1,L.inWheelScroll=!1,L.inHeaderScroll=!1,L.inBodyScroll=!1,L.inFooterScroll=!1,Y.lazScrollLoading=!1},200)},n=e=>{var l=L.xeTable;l&&(l=l.internalData.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]))&&(l.scrollTop=e)};t={handleUpdateStyle:d,handleLazyRecalculate:i,handleUpdateCurrentRow(e){var l,t,r=L.xeTable,a=f.value;r&&a&&(e?(l=r.props.highlightCurrentRow,t=r.getComputeMaps().computeRowOpts,(t.value.isCurrent||l)&&_xeUtils.default.arrayEach(a.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${r.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var l=L.xeTable,t=f.value;l&&t&&(e?_xeUtils.default.arrayEach(t.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${l.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(t.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:l,inVirtualScroll:t,inBodyScroll:r,inFooterScroll:a}=L;t||r||a||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),a=o.value,r&&t&&(e=t.scrollLeft,L.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),u(0,0,0,t.scrollTop)))},triggerBodyScrollEvent(e){var l,{elemStore:t,inVirtualScroll:r,inHeaderScroll:a,inFooterScroll:i}=L;r||a||i||(r=e.currentTarget,a=(0,_util.getRefElem)(t["main-header-scroll"]),i=o.value,e=s.value,a&&r&&(t=r.scrollLeft,l=r.scrollTop,L.inBodyScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),(0,_dom.setScrollTop)(e,l),n(l),u(0,0,0,r.scrollTop)))},triggerFooterScrollEvent(e){var{inVirtualScroll:l,inHeaderScroll:t,inBodyScroll:r}=L;l||t||r||(l=e.currentTarget)&&(l.scrollLeft,u(0,0,0,l.scrollTop))},triggerVirtualScrollXEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=L;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(l=t.scrollLeft,L.inVirtualScroll=!0,(0,_dom.setScrollLeft)(r,l),(0,_dom.setScrollLeft)(e,l),u(0,0,0,t.scrollTop)))},triggerVirtualScrollYEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=L;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(e=t.scrollTop,L.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),n(e),u(0,0,0,0,t.scrollLeft)))},updateScrollYSpace:()=>{var e=L.elemStore,l=L.xeTable,t=(0,_util.getRefElem)(e["main-body-scroll"]),r=(0,_util.getRefElem)(e["main-body-table"]);let a=0,i=0,o=!1,s=(l&&(l=l.reactData,a=l.scrollYTop,i=l.scrollYHeight,o=l.isScrollYBig),i),u=a,n=0;t&&(n=t.clientHeight),o&&(u=t&&r&&t.scrollTop+n>=maxYHeight?maxYHeight-r.clientHeight:(maxYHeight-n)*(a/(i-n)),s=maxYHeight);l=(0,_util.getRefElem)(e["main-chart-wrapper"]),r&&(r.style.transform=`translate(${Y.scrollXLeft||0}px, ${u}px)`),l&&(l.style.transform=`translate(${Y.scrollXLeft||0}px, ${u}px)`),t=(0,_util.getRefElem)(e["main-body-ySpace"]),t&&(t.style.height=s?s+"px":""),r=c.value;return r&&(r.style.height=s?s+"px":""),Y.scrollYTop=u,Y.scrollYHeight=i,Y.isScrollYBig=o,v(),(0,_vue.nextTick)().then(()=>{d()})},updateScrollYStatus(e){Y.scrollYLoad=e}};let B=()=>{i()},h=(Object.assign(r,{refreshData(){return a(),i()},updateViewData(){var e=L.xeTable;return e&&(e=e.reactData.tableData,Y.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(L.xeTable=e),(0,_vue.nextTick)()}},t),()=>(0,_vue.h)("div",{key:"vsx",ref:p,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:x,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:D,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--scroll-x-handle",onScroll:r.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:X,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:b,class:"vxe-gantt-view--scroll-x-right-corner"})])),C=()=>(0,_vue.h)("div",{ref:m,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:T,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:s,class:"vxe-gantt-view--scroll-y-handle",onScroll:r.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:c,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),U=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default)]),M=()=>{var e=F.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[C(),U()]:[U(),C()])};let W=(0,_vue.ref)(0);return(0,_vue.watch)(()=>Y.tableData,()=>{W.value++}),(0,_vue.watch)(()=>Y.tableData.length,()=>{W.value++}),(0,_vue.watch)(W,()=>{a()}),(0,_vue.onMounted)(()=>{globalEvents.on(r,"resize",B)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(r,"keydown"),_xeUtils.default.assign(L,createInternalData())}),r.renderVN=()=>{var{overflowX:e,overflowY:l,scrollXLoad:t,scrollYLoad:r}=Y,a=w.value,i=g.value;return(0,_vue.h)("div",{ref:f,class:["vxe-gantt-view","mode--"+(a.mode||"day"),{"is--scroll-y":l,"is--scroll-x":e,"is--virtual-x":t,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},i?[h(),M()]:[M(),h()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",r),r},render(){return this.renderVN()}});