vxe-gantt 4.1.19 → 4.2.0

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.
package/README.md CHANGED
@@ -54,9 +54,26 @@
54
54
 
55
55
  [👀 Vxe Gantt](https://gantt.vxeui.com/)
56
56
 
57
- * [x] gantt 甘特图
58
- * [x] ([企业版](https://vxetable.cn/pluginDocs/)) 依赖线
59
- * [x] ([企业版](https://vxetable.cn/pluginDocs/)) 任务条拖拽
57
+ * [x] 左侧渲染表格
58
+ * [x] 右侧渲染视图
59
+ * [x] 任务视图
60
+ * [x] 年视图
61
+ * [x] 季度视图
62
+ * [x] 月视图
63
+ * [x] 周视图
64
+ * [x] 星期视图
65
+ * [x] 日视图
66
+ * [x] 小数视图
67
+ * [x] 分钟视图
68
+ * [x] 秒视图
69
+ * [x] 子任务
70
+ * [x] 日期轴
71
+ * [x] 里程碑
72
+ * [x] 虚拟滚动
73
+ * [x] CSS 变量主题
74
+ * [x] ([企业版](https://vxetable.cn/pluginDocs/)) 依赖线连接线
75
+ * [x] ([企业版](https://vxetable.cn/pluginDocs/)) 任务条可拖拽
76
+ * [x] ([企业版](https://vxetable.cn/pluginDocs/)) 可视化创建依赖线
60
77
 
61
78
  ## 安装
62
79
 
@@ -129,7 +129,7 @@ export default defineVxeComponent({
129
129
  const scaleUnit = computeScaleUnit.value;
130
130
  const taskViewOpts = computeTaskViewOpts.value;
131
131
  const { viewStyle } = taskViewOpts;
132
- const { rowClassName, rowStyle } = viewStyle || {};
132
+ const { rowClassName, rowStyle, cellClassName, cellStyle } = viewStyle || {};
133
133
  const { tableColumn, scrollYLoad } = reactData;
134
134
  const trVNs = [];
135
135
  tableData.forEach((row, $rowIndex) => {
@@ -172,7 +172,7 @@ export default defineVxeComponent({
172
172
  $rowIndex,
173
173
  _rowIndex
174
174
  };
175
- trVNs.push(h('tr', Object.assign({ key: treeConfig ? rowid : $rowIndex, class: [
175
+ trVNs.push(h('tr', Object.assign({ key: rowClassName || rowStyle || cellClassName || cellStyle ? rowid : $rowIndex, class: [
176
176
  'vxe-gantt-view--body-row',
177
177
  {
178
178
  'row--stripe': stripe && (_rowIndex + 1) % 2 === 0,
@@ -1,4 +1,4 @@
1
- import { h, ref, reactive, nextTick, inject, watch, provide, computed, onMounted, onUnmounted } from 'vue';
1
+ import { h, ref, reactive, nextTick, inject, onBeforeUnmount, provide, computed, onMounted, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import { setScrollTop, setScrollLeft, removeClass, addClass, hasClass } from '../../ui/src/dom';
4
4
  import { VxeUI } from '@vxe-ui/core';
@@ -35,6 +35,38 @@ function createInternalData() {
35
35
  lastScrollLeft: 0
36
36
  };
37
37
  }
38
+ function createReactData() {
39
+ return {
40
+ // 是否启用了横向 X 可视渲染方式加载
41
+ scrollXLoad: false,
42
+ // 是否启用了纵向 Y 可视渲染方式加载
43
+ scrollYLoad: false,
44
+ // 是否存在纵向滚动条
45
+ overflowY: true,
46
+ // 是否存在横向滚动条
47
+ overflowX: true,
48
+ // 纵向滚动条的宽度
49
+ scrollbarWidth: 0,
50
+ // 横向滚动条的高度
51
+ scrollbarHeight: 0,
52
+ // 最后滚动时间戳
53
+ lastScrollTime: 0,
54
+ lazScrollLoading: false,
55
+ scrollVMLoading: false,
56
+ scrollYHeight: 0,
57
+ scrollYTop: 0,
58
+ isScrollYBig: false,
59
+ scrollXLeft: 0,
60
+ scrollXWidth: 0,
61
+ isScrollXBig: false,
62
+ minViewDate: null,
63
+ maxViewDate: null,
64
+ tableData: [],
65
+ tableColumn: [],
66
+ headerGroups: [],
67
+ viewCellWidth: 40
68
+ };
69
+ }
38
70
  const maxYHeight = 5e6;
39
71
  // const maxXWidth = 5e6
40
72
  export default defineVxeComponent({
@@ -58,36 +90,7 @@ export default defineVxeComponent({
58
90
  const refScrollXSpaceElem = ref();
59
91
  const refScrollYSpaceElem = ref();
60
92
  const refColInfoElem = ref();
61
- const reactData = reactive({
62
- // 是否启用了横向 X 可视渲染方式加载
63
- scrollXLoad: false,
64
- // 是否启用了纵向 Y 可视渲染方式加载
65
- scrollYLoad: false,
66
- // 是否存在纵向滚动条
67
- overflowY: true,
68
- // 是否存在横向滚动条
69
- overflowX: true,
70
- // 纵向滚动条的宽度
71
- scrollbarWidth: 0,
72
- // 横向滚动条的高度
73
- scrollbarHeight: 0,
74
- // 最后滚动时间戳
75
- lastScrollTime: 0,
76
- lazScrollLoading: false,
77
- scrollVMLoading: false,
78
- scrollYHeight: 0,
79
- scrollYTop: 0,
80
- isScrollYBig: false,
81
- scrollXLeft: 0,
82
- scrollXWidth: 0,
83
- isScrollXBig: false,
84
- minViewDate: null,
85
- maxViewDate: null,
86
- tableData: [],
87
- tableColumn: [],
88
- headerGroups: [],
89
- viewCellWidth: 40
90
- });
93
+ const reactData = reactive(createReactData());
91
94
  const internalData = createInternalData();
92
95
  const refMaps = {
93
96
  refElem,
@@ -1035,27 +1038,30 @@ export default defineVxeComponent({
1035
1038
  // if (footerTableElem) {
1036
1039
  // footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
1037
1040
  // }
1041
+ const ySpaceWidth = scrollXWidth;
1038
1042
  const layoutList = ['header', 'body', 'footer'];
1039
1043
  layoutList.forEach(layout => {
1040
1044
  const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`]);
1041
1045
  if (xSpaceElem) {
1042
- xSpaceElem.style.width = scrollXLoad ? `${scrollXWidth}px` : '';
1046
+ xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : '';
1043
1047
  }
1044
1048
  });
1045
1049
  const scrollXSpaceEl = refScrollXSpaceElem.value;
1046
1050
  if (scrollXSpaceEl) {
1047
- scrollXSpaceEl.style.width = `${scrollXWidth}px`;
1051
+ scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
1048
1052
  }
1049
1053
  const beforeWrapper = getRefElem(elemStore['main-chart-before-wrapper']);
1050
1054
  const beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1051
1055
  if (beforeSvgElem) {
1052
- beforeSvgElem.style.width = `${scrollXWidth}px`;
1056
+ beforeSvgElem.style.width = `${ySpaceWidth}px`;
1053
1057
  }
1054
1058
  const afterWrapper = getRefElem(elemStore['main-chart-after-wrapper']);
1055
1059
  const afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1056
1060
  if (afterSvgElem) {
1057
- afterSvgElem.style.width = `${scrollXWidth}px`;
1061
+ afterSvgElem.style.width = `${ySpaceWidth}px`;
1058
1062
  }
1063
+ reactData.scrollXLeft = xSpaceLeft;
1064
+ reactData.scrollXWidth = ySpaceWidth;
1059
1065
  calcScrollbar();
1060
1066
  return nextTick();
1061
1067
  };
@@ -1097,7 +1103,7 @@ export default defineVxeComponent({
1097
1103
  bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
1098
1104
  }
1099
1105
  if (bodyChartWrapperElem) {
1100
- bodyChartWrapperElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
1106
+ bodyChartWrapperElem.style.transform = `translateY(${scrollYTop}px)`;
1101
1107
  }
1102
1108
  const bodyYSpaceElem = getRefElem(elemStore['main-body-ySpace']);
1103
1109
  if (bodyYSpaceElem) {
@@ -1251,12 +1257,16 @@ export default defineVxeComponent({
1251
1257
  }
1252
1258
  });
1253
1259
  },
1254
- updateViewData() {
1260
+ updateViewData(force) {
1255
1261
  const $xeTable = internalData.xeTable;
1256
1262
  if ($xeTable) {
1257
1263
  const tableReactData = $xeTable.reactData;
1258
1264
  const { tableData } = tableReactData;
1259
1265
  reactData.tableData = tableData;
1266
+ if (force) {
1267
+ handleUpdateData();
1268
+ }
1269
+ handleRecalculateStyle();
1260
1270
  }
1261
1271
  return nextTick();
1262
1272
  },
@@ -1564,19 +1574,12 @@ export default defineVxeComponent({
1564
1574
  ])
1565
1575
  ]);
1566
1576
  };
1567
- const tdFlag = ref(0);
1568
- watch(() => reactData.tableData, () => {
1569
- tdFlag.value++;
1570
- });
1571
- watch(() => reactData.tableData.length, () => {
1572
- tdFlag.value++;
1573
- });
1574
- watch(tdFlag, () => {
1575
- handleUpdateData();
1576
- });
1577
1577
  onMounted(() => {
1578
1578
  globalEvents.on($xeGanttView, 'resize', handleGlobalResizeEvent);
1579
1579
  });
1580
+ onBeforeUnmount(() => {
1581
+ XEUtils.assign(reactData, createReactData());
1582
+ });
1580
1583
  onUnmounted(() => {
1581
1584
  globalEvents.off($xeGanttView, 'keydown');
1582
1585
  XEUtils.assign(internalData, createInternalData());
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { setConfig, setIcon } = VxeUI;
3
- VxeUI.ganttVersion = "4.1.19";
3
+ VxeUI.ganttVersion = "4.2.0";
4
4
  const ymdFormat = 'yyyy-MM-dd';
5
5
  const ymdhmsFormat = 'yyyy-MM-dd HH:mm:ss';
6
6
  setConfig({
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.1.19"}`;
3
+ const version = `gantt v${"4.2.0"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -194,7 +194,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
194
194
  } = taskViewOpts;
195
195
  const {
196
196
  rowClassName,
197
- rowStyle
197
+ rowStyle,
198
+ cellClassName,
199
+ cellStyle
198
200
  } = viewStyle || {};
199
201
  const {
200
202
  tableColumn,
@@ -245,7 +247,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
245
247
  _rowIndex
246
248
  };
247
249
  trVNs.push((0, _vue.h)('tr', Object.assign({
248
- key: treeConfig ? rowid : $rowIndex,
250
+ key: rowClassName || rowStyle || cellClassName || cellStyle ? rowid : $rowIndex,
249
251
  class: ['vxe-gantt-view--body-row', {
250
252
  'row--stripe': stripe && (_rowIndex + 1) % 2 === 0,
251
253
  'is--new': isNewRow,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let sourceType="gantt",viewType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let $=(0,_vue.inject)("$xeGantt",{}),o=(0,_vue.inject)("$xeGanttView",{}),{computeTaskViewOpts:q,computeScaleUnit:H}=$.getComputeMaps(),{reactData:j,internalData:R}=o,r=(0,_vue.ref)(),n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),z=(l,a,e,o,r,n,t,i)=>{var u=l.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=l.internalData,{computeCellOpts:v,computeRowOpts:c,computeDefaultRowHeight:p,computeResizableOpts:w}=l.getComputeMaps(),v=v.value,c=c.value,p=p.value,w=w.value.isAllRowDrag,g=j.headerGroups,h=R.todayDateMaps,{showNowLine:x,viewStyle:y}=q.value,_=H.value,g=(g[g.length-1]||{}).scaleItem,{field:m,dateObj:b}=t,{cellClassName:y,cellStyle:f}=y||{},h=x&&g?h[g.type]:null,g=s[e]||{},s=u?(0,_util.getCellRestHeight)(g,v,c,p):0,u=[];if(w&&c.resizable){let t={$table:l,$grid:null,$gantt:$,seq:-1,rowid:e,row:a,rowIndex:o,$rowIndex:r,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};u.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>l.handleRowResizeMousedownEvent(e,t),onDblclick:e=>l.handleRowResizeDblclickEvent(e,t)}))}let D={$gantt:$,source:sourceType,type:viewType,scaleType:_,dateObj:b,row:a,column:t,$rowIndex:r,rowIndex:o,_rowIndex:n};return(0,_vue.h)("td",{key:y||f?m:i,class:["vxe-gantt-view--body-column",{"is--now":x&&h===m},(0,_utils.getClass)(y,D)],style:f?Object.assign({},_xeUtils.default.isFunction(f)?f(D):f,{height:s+"px"}):{height:s+"px"},onClick(e){$.handleTaskCellClickEvent(e,{row:a,column:t})},onDblclick(e){$.handleTaskCellDblclickEvent(e,{row:a,column:t})},onContextmenu(e){$.handleTaskBodyContextmenuEvent(e,D)}},u)},B=(d,e)=>{let{treeConfig:v,stripe:c,highlightHoverRow:p,editConfig:w}=d.props,{treeExpandedFlag:g,selectRadioRow:h,pendingRowFlag:x,isRowGroupStatus:y}=d.reactData,{fullAllDataRowIdData:_,treeExpandedMaps:m,pendingRowMaps:b}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:l,computeTreeOpts:a,computeRowOpts:o}=d.getComputeMaps();let f=t.value,D=l.value,R=o.value;t=a.value;let C=t.transform,I=t.children||t.childrenField,T=H.value;l=q.value.viewStyle;let{rowClassName:k,rowStyle:E}=l||{},{tableColumn:S,scrollYLoad:M}=j,O=[];return e.forEach((l,a)=>{let o=d.getRowid(l);var e=_[o]||{},t={};let r=a,n=-1,i=(e&&(r=e.index,n=e._index),!1);w&&(i=d.isInsertByRow(l)),(R.isHover||p)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:l,rowIndex:r})},t.onMouseleave=()=>{d.clearHoverRow()}),!R.drag||y||v&&!C||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent);e={$gantt:$,source:sourceType,type:viewType,scaleType:T,row:l,rowIndex:r,$rowIndex:a,_rowIndex:n};O.push((0,_vue.h)("tr",Object.assign({key:v?o:a,class:["vxe-gantt-view--body-row",{"row--stripe":c&&(n+1)%2==0,"is--new":i,"row--radio":f.highlight&&d.eqRow(h,l),"row--checked":D.highlight&&d.isCheckedByCheckboxRow(l),"row--pending":!!x&&!!b[o]},(0,_utils.getClass)(k,e)],rowid:o,style:E?_xeUtils.default.isFunction(E)?E(e)||void 0:E:void 0},t),S.map((e,t)=>z(d,l,o,r,a,n,e,t))));let u=!1,s=[];!v||M||C||(s=l[I],u=!!g&&s&&0<s.length&&!!m[o]),u&&O.push(...B(d,s))}),O};return(0,_vue.onMounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=r,e[t+"scroll"]=n,e[t+"table"]=i,e[t+"xSpace"]=u,e[t+"ySpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=o.internalData.xeTable;let{tableData:t,tableColumn:l,viewCellWidth:a}=j;return(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-inner-wrapper",onScroll:o.triggerBodyScrollEvent,onContextmenu(e){$.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}},[(0,_vue.h)("div",{ref:u,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:s,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:i,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},l.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:a+"px"}}))),(0,_vue.h)("tbody",{},e?B(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let sourceType="gantt",viewType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let H=(0,_vue.inject)("$xeGantt",{}),o=(0,_vue.inject)("$xeGanttView",{}),{computeTaskViewOpts:j,computeScaleUnit:z}=H.getComputeMaps(),{reactData:B,internalData:C}=o,r=(0,_vue.ref)(),n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),F=(l,a,e,o,r,n,t,i)=>{var u=l.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=l.internalData,{computeCellOpts:v,computeRowOpts:c,computeDefaultRowHeight:p,computeResizableOpts:w}=l.getComputeMaps(),v=v.value,c=c.value,p=p.value,w=w.value.isAllRowDrag,g=B.headerGroups,h=C.todayDateMaps,{showNowLine:x,viewStyle:y}=j.value,_=z.value,g=(g[g.length-1]||{}).scaleItem,{field:m,dateObj:b}=t,{cellClassName:y,cellStyle:f}=y||{},h=x&&g?h[g.type]:null,g=s[e]||{},s=u?(0,_util.getCellRestHeight)(g,v,c,p):0,u=[];if(w&&c.resizable){let t={$table:l,$grid:null,$gantt:H,seq:-1,rowid:e,row:a,rowIndex:o,$rowIndex:r,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};u.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>l.handleRowResizeMousedownEvent(e,t),onDblclick:e=>l.handleRowResizeDblclickEvent(e,t)}))}let D={$gantt:H,source:sourceType,type:viewType,scaleType:_,dateObj:b,row:a,column:t,$rowIndex:r,rowIndex:o,_rowIndex:n};return(0,_vue.h)("td",{key:y||f?m:i,class:["vxe-gantt-view--body-column",{"is--now":x&&h===m},(0,_utils.getClass)(y,D)],style:f?Object.assign({},_xeUtils.default.isFunction(f)?f(D):f,{height:s+"px"}):{height:s+"px"},onClick(e){H.handleTaskCellClickEvent(e,{row:a,column:t})},onDblclick(e){H.handleTaskCellDblclickEvent(e,{row:a,column:t})},onContextmenu(e){H.handleTaskBodyContextmenuEvent(e,D)}},u)},G=(d,e)=>{let{treeConfig:v,stripe:c,highlightHoverRow:p,editConfig:w}=d.props,{treeExpandedFlag:g,selectRadioRow:h,pendingRowFlag:x,isRowGroupStatus:y}=d.reactData,{fullAllDataRowIdData:_,treeExpandedMaps:m,pendingRowMaps:b}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:l,computeTreeOpts:a,computeRowOpts:o}=d.getComputeMaps();let f=t.value,D=l.value,C=o.value;t=a.value;let R=t.transform,I=t.children||t.childrenField,T=z.value;l=j.value.viewStyle;let{rowClassName:k,rowStyle:E,cellClassName:S,cellStyle:M}=l||{},{tableColumn:O,scrollYLoad:$}=B,q=[];return e.forEach((l,a)=>{let o=d.getRowid(l);var e=_[o]||{},t={};let r=a,n=-1,i=(e&&(r=e.index,n=e._index),!1);w&&(i=d.isInsertByRow(l)),(C.isHover||p)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:l,rowIndex:r})},t.onMouseleave=()=>{d.clearHoverRow()}),!C.drag||y||v&&!R||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent);e={$gantt:H,source:sourceType,type:viewType,scaleType:T,row:l,rowIndex:r,$rowIndex:a,_rowIndex:n};q.push((0,_vue.h)("tr",Object.assign({key:k||E||S||M?o:a,class:["vxe-gantt-view--body-row",{"row--stripe":c&&(n+1)%2==0,"is--new":i,"row--radio":f.highlight&&d.eqRow(h,l),"row--checked":D.highlight&&d.isCheckedByCheckboxRow(l),"row--pending":!!x&&!!b[o]},(0,_utils.getClass)(k,e)],rowid:o,style:E?_xeUtils.default.isFunction(E)?E(e)||void 0:E:void 0},t),O.map((e,t)=>F(d,l,o,r,a,n,e,t))));let u=!1,s=[];!v||$||R||(s=l[I],u=!!g&&s&&0<s.length&&!!m[o]),u&&q.push(...G(d,s))}),q};return(0,_vue.onMounted)(()=>{var e=C.elemStore,t="main-body-";e[t+"wrapper"]=r,e[t+"scroll"]=n,e[t+"table"]=i,e[t+"xSpace"]=u,e[t+"ySpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=C.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=o.internalData.xeTable;let{tableData:t,tableColumn:l,viewCellWidth:a}=B;return(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-inner-wrapper",onScroll:o.triggerBodyScrollEvent,onContextmenu(e){H.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}},[(0,_vue.h)("div",{ref:u,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:s,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:i,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},l.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:a+"px"}}))),(0,_vue.h)("tbody",{},e?G(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});
@@ -44,6 +44,38 @@ function createInternalData() {
44
44
  lastScrollLeft: 0
45
45
  };
46
46
  }
47
+ function createReactData() {
48
+ return {
49
+ // 是否启用了横向 X 可视渲染方式加载
50
+ scrollXLoad: false,
51
+ // 是否启用了纵向 Y 可视渲染方式加载
52
+ scrollYLoad: false,
53
+ // 是否存在纵向滚动条
54
+ overflowY: true,
55
+ // 是否存在横向滚动条
56
+ overflowX: true,
57
+ // 纵向滚动条的宽度
58
+ scrollbarWidth: 0,
59
+ // 横向滚动条的高度
60
+ scrollbarHeight: 0,
61
+ // 最后滚动时间戳
62
+ lastScrollTime: 0,
63
+ lazScrollLoading: false,
64
+ scrollVMLoading: false,
65
+ scrollYHeight: 0,
66
+ scrollYTop: 0,
67
+ isScrollYBig: false,
68
+ scrollXLeft: 0,
69
+ scrollXWidth: 0,
70
+ isScrollXBig: false,
71
+ minViewDate: null,
72
+ maxViewDate: null,
73
+ tableData: [],
74
+ tableColumn: [],
75
+ headerGroups: [],
76
+ viewCellWidth: 40
77
+ };
78
+ }
47
79
  const maxYHeight = 5e6;
48
80
  // const maxXWidth = 5e6
49
81
  var _default = exports.default = (0, _comp.defineVxeComponent)({
@@ -81,36 +113,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
81
113
  const refScrollXSpaceElem = (0, _vue.ref)();
82
114
  const refScrollYSpaceElem = (0, _vue.ref)();
83
115
  const refColInfoElem = (0, _vue.ref)();
84
- const reactData = (0, _vue.reactive)({
85
- // 是否启用了横向 X 可视渲染方式加载
86
- scrollXLoad: false,
87
- // 是否启用了纵向 Y 可视渲染方式加载
88
- scrollYLoad: false,
89
- // 是否存在纵向滚动条
90
- overflowY: true,
91
- // 是否存在横向滚动条
92
- overflowX: true,
93
- // 纵向滚动条的宽度
94
- scrollbarWidth: 0,
95
- // 横向滚动条的高度
96
- scrollbarHeight: 0,
97
- // 最后滚动时间戳
98
- lastScrollTime: 0,
99
- lazScrollLoading: false,
100
- scrollVMLoading: false,
101
- scrollYHeight: 0,
102
- scrollYTop: 0,
103
- isScrollYBig: false,
104
- scrollXLeft: 0,
105
- scrollXWidth: 0,
106
- isScrollXBig: false,
107
- minViewDate: null,
108
- maxViewDate: null,
109
- tableData: [],
110
- tableColumn: [],
111
- headerGroups: [],
112
- viewCellWidth: 40
113
- });
116
+ const reactData = (0, _vue.reactive)(createReactData());
114
117
  const internalData = createInternalData();
115
118
  const refMaps = {
116
119
  refElem,
@@ -1227,27 +1230,30 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1227
1230
  // if (footerTableElem) {
1228
1231
  // footerTableElem.style.transform = `translate(${xSpaceLeft}px, 0px)`
1229
1232
  // }
1233
+ const ySpaceWidth = scrollXWidth;
1230
1234
  const layoutList = ['header', 'body', 'footer'];
1231
1235
  layoutList.forEach(layout => {
1232
1236
  const xSpaceElem = (0, _util.getRefElem)(elemStore[`main-${layout}-xSpace`]);
1233
1237
  if (xSpaceElem) {
1234
- xSpaceElem.style.width = scrollXLoad ? `${scrollXWidth}px` : '';
1238
+ xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : '';
1235
1239
  }
1236
1240
  });
1237
1241
  const scrollXSpaceEl = refScrollXSpaceElem.value;
1238
1242
  if (scrollXSpaceEl) {
1239
- scrollXSpaceEl.style.width = `${scrollXWidth}px`;
1243
+ scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
1240
1244
  }
1241
1245
  const beforeWrapper = (0, _util.getRefElem)(elemStore['main-chart-before-wrapper']);
1242
1246
  const beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1243
1247
  if (beforeSvgElem) {
1244
- beforeSvgElem.style.width = `${scrollXWidth}px`;
1248
+ beforeSvgElem.style.width = `${ySpaceWidth}px`;
1245
1249
  }
1246
1250
  const afterWrapper = (0, _util.getRefElem)(elemStore['main-chart-after-wrapper']);
1247
1251
  const afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1248
1252
  if (afterSvgElem) {
1249
- afterSvgElem.style.width = `${scrollXWidth}px`;
1253
+ afterSvgElem.style.width = `${ySpaceWidth}px`;
1250
1254
  }
1255
+ reactData.scrollXLeft = xSpaceLeft;
1256
+ reactData.scrollXWidth = ySpaceWidth;
1251
1257
  calcScrollbar();
1252
1258
  return (0, _vue.nextTick)();
1253
1259
  };
@@ -1290,7 +1296,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1290
1296
  bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
1291
1297
  }
1292
1298
  if (bodyChartWrapperElem) {
1293
- bodyChartWrapperElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`;
1299
+ bodyChartWrapperElem.style.transform = `translateY(${scrollYTop}px)`;
1294
1300
  }
1295
1301
  const bodyYSpaceElem = (0, _util.getRefElem)(elemStore['main-body-ySpace']);
1296
1302
  if (bodyYSpaceElem) {
@@ -1450,7 +1456,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1450
1456
  }
1451
1457
  });
1452
1458
  },
1453
- updateViewData() {
1459
+ updateViewData(force) {
1454
1460
  const $xeTable = internalData.xeTable;
1455
1461
  if ($xeTable) {
1456
1462
  const tableReactData = $xeTable.reactData;
@@ -1458,6 +1464,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1458
1464
  tableData
1459
1465
  } = tableReactData;
1460
1466
  reactData.tableData = tableData;
1467
+ if (force) {
1468
+ handleUpdateData();
1469
+ }
1470
+ handleRecalculateStyle();
1461
1471
  }
1462
1472
  return (0, _vue.nextTick)();
1463
1473
  },
@@ -1755,19 +1765,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1755
1765
  class: 'vxe-gantt-view--column-info'
1756
1766
  })])]);
1757
1767
  };
1758
- const tdFlag = (0, _vue.ref)(0);
1759
- (0, _vue.watch)(() => reactData.tableData, () => {
1760
- tdFlag.value++;
1761
- });
1762
- (0, _vue.watch)(() => reactData.tableData.length, () => {
1763
- tdFlag.value++;
1764
- });
1765
- (0, _vue.watch)(tdFlag, () => {
1766
- handleUpdateData();
1767
- });
1768
1768
  (0, _vue.onMounted)(() => {
1769
1769
  globalEvents.on($xeGanttView, 'resize', handleGlobalResizeEvent);
1770
1770
  });
1771
+ (0, _vue.onBeforeUnmount)(() => {
1772
+ _xeUtils.default.assign(reactData, createReactData());
1773
+ });
1771
1774
  (0, _vue.onUnmounted)(() => {
1772
1775
  globalEvents.off($xeGanttView, 'keydown');
1773
1776
  _xeUtils.default.assign(internalData, createInternalData());
@@ -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")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;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}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(l,u){var e=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),v=M.internalData,{computeTaskOpts:g,computeTaskViewOpts:V,computeStartField:_,computeEndField:x,computeTypeField:p,computeScrollbarOpts:S,computeScrollbarXToTop:T,computeScrollbarYToLeft:b,computeScaleUnit:a,computeWeekScale:r,computeMinScale:D}=M.getComputeMaps(),i=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),k=(0,_vue.ref)(),L=(0,_vue.ref)(),R=(0,_vue.ref)(),C=(0,_vue.ref)(),z=(0,_vue.ref)(),d=(0,_vue.ref)(),n=(0,_vue.ref)(),Y=(0,_vue.ref)(),I=(0,_vue.reactive)({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}),$=createInternalData(),y={refElem:i,refScrollXHandleElem:W,refScrollYHandleElem:k},O=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=V.value,a=D.value,e=e.gridding,{type:r,startDay:i}=a,o=[];if(t&&l){var s=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),d=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r){case"year":{let e=_xeUtils.default.getWhatYear(t,s,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;o.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,s,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;o.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,s,"first");for(var h=_xeUtils.default.getWhatMonth(l,d,"first");e<=h;){var v=e;o.push(v),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,s,i,i);for(var g=_xeUtils.default.getWhatWeek(l,d,i,i);e<=g;){var m=e;o.push(m),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,s,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var _=e;o.push(_),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var x=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+s*x;for(var p=l.getTime()+d*x;e<=p;){var S=new Date(e);o.push(S),e+=x}break}}}return o}),F={computeScaleDateList:O},X={xID:e,props:l,context:u,reactData:I,internalData:$,getRefMaps:()=>y,getComputeMaps:()=>F},m=e=>{var t=g.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},j=()=>{var e=M.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);$.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},B=()=>{var e=M.reactData.taskScaleList,t=a.value;let h=D.value;var v=r.value,g=O.value;let m=[],l=[];if(h&&t&&g.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===h.type,_=(t,l,a)=>{if(h.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<g.length;f++){var x=g[f];let[e,t,l,a,r,i,o,s,d,u,n,c]=_xeUtils.default.toDateString(x,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var p=x.getDay(),S=p+1,T=Math.ceil((x.getMonth()+1)/3),b=""+_xeUtils.default.getYearWeek(x,v?v.startDay:void 0),w=_xeUtils.default.padStart(b,2,"0"),x={date:x,yy:e,yyyy:t=y&&G(b,l)?""+(Number(t)+1):t,M:l,MM:a,d:r,dd:i,H:o,HH:s,m:d,mm:u,s:n,ss:c,q:T,W:b,WW:w,E:S,e:p},w={year:{field:t,title:t,dateObj:x},quarter:{field:t+"_q"+T,title:""+T,dateObj:x},month:{field:t+"_"+a,title:a,dateObj:x},week:{field:t+"_W"+b,title:b,dateObj:x},day:{field:t+`_${a}_${i}_E`+S,title:""+S,dateObj:x},date:{field:t+`_${a}_`+i,title:i,dateObj:x},hour:{field:t+`_${a}_${i}_`+s,title:s,dateObj:x},minute:{field:t+`_${a}_${i}_${s}_`+u,title:u,dateObj:x},second:{field:t+`_${a}_${i}_${s}_${u}_`+c,title:c,dateObj:x}},p=w[h.type];h.level<19&&_("year",w,p),h.level<17&&_("quarter",w,p),h.level<15&&_("month",w,p),h.level<13&&_("week",w,p),h.level<11&&_("day",w,p),h.level<9&&_("date",w,p),h.level<7&&_("hour",w,p),h.level<5&&_("minute",w,p),h.level<3&&_("second",w,p),m.push(p)}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}},G=(e,t)=>""+e=="1"&&""+t=="12",A=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return G(e,a+1)&&l++,{yyyy:l,W:e}},Q=e=>{let i=I.minViewDate;var t=D.value,l=a.value;let d=r.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=A(e,d?d.startDay:void 0),l=l.yyyy+"-"+l.W,a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=A(t,d?d.startDay:void 0),r=r.yyyy+"-"+r.W,i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a+1}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=m(e),t=m(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},N=()=>{var e=M.props.treeConfig,t=$.scrollXStore,l=$.xeTable;let o=null,s=null;if(l){let a=_.value,r=x.value,i=p.value;var{computeAggregateOpts:d,computeTreeOpts:u}=l.getComputeMaps(),n=l.reactData.isRowGroupStatus,{afterFullData:l,afterTreeFullData:c,afterGroupFullData:f}=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),!o||o.getTime()>e.getTime())&&(o=e),l&&(e=m(l),!s||s.getTime()<e.getTime())&&(s=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,g,{children:n}):e?_xeUtils.default.eachTree(c,g,{children:h?u.mapChildrenField:v}):l.forEach(g)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=o,I.maxViewDate=s,$.startMaps={},$.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=B();if(t&&l&&a.length){let c=$.xeTable;if(c){let o=_.value,s=x.value,d=p.value;var{computeAggregateOpts:t,computeTreeOpts:l}=c.getComputeMaps(),i=c.reactData.isRowGroupStatus,{afterFullData:f,afterTreeFullData:h,afterGroupFullData:v}=c.internalData,t=t.value,l=l.value,g=l.transform,m=l.children||l.childrenField;let u={},n=Q(a);var y=e=>{var t,l,a=c.getRowid(e);let r=_xeUtils.default.get(e,o),i=_xeUtils.default.get(e,s);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,d))&&(r=r||i,i=r),r&&i&&({offsetLeftSize:t,offsetWidthSize:l}=n(r,i),u[a]={row:e,rowid:a,oLeftSize:t,oWidthSize:l})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(v,y,{children:i}):e?_xeUtils.default.eachTree(h,y,{children:g?l.mapChildrenField:m}):f.forEach(y),$.chartMaps=u}}$.visibleColumn=a,I.headerGroups=r,j(),te(),le()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=$.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=W.value,i=k.value;l&&(t=t>l.clientHeight,i&&(I.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),I.overflowY=t,i=e>l.clientWidth,r&&(I.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),I.overflowX=i)},P=()=>{let l=v.dragBarRow,a=I.viewCellWidth,{elemStore:e,chartMaps:r}=$,i=$.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);return t&&i&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=e.getAttribute("rowid"),l&&i.getRowid(l)===e||(e=e?r[e]:null,t.style.left=(0,_util.getTaskBarLeft)(e,a)+"px",(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width=(0,_util.getTaskBarWidth)(e,a)+"px"))}),(0,_vue.nextTick)()},f=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=$,h=$.xeTable,v=i.value;if(v&&M){var g=S.value,m=T.value,y=b.value,_=E.value,x=H.value,p=w.value;let e=s;s=d;let t=0,l=0,a=0,r=(h&&(d=h.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.y.visible)&&(e=0,r="hidden");h=(0,_util.getRefElem)(c["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)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),R.value),h=(g&&(g.style.left=m?e+"px":"",g.style.width=v.clientWidth-e+"px"),_&&(_.style.width=m?e+"px":"",_.style.display=m&&s?"block":""),x&&(x.style.width=m?"":e+"px",x.style.display=!m&&s?"block":""),U.value),u=(h&&(h.style.width=e+"px",h.style.height=t+l+a+"px",h.style.visibility=r),L.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),C.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),z.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),Y.value);let i=40,o=i=g?g.clientWidth||40:i;f.length&&(o=Math.max(0,i*f.length),d)&&0<(_=(v=d.clientWidth)-o)&&(i+=Math.max(0,_/f.length),o=v),I.viewCellWidth=i;x=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return x&&(x.style.width=o+"px"),m&&(m.style.width=s+"px"),I.scrollXWidth=o,Promise.all([P(),M.handleUpdateTaskLinkStyle?M.handleUpdateTaskLinkStyle(X):null])}},o=()=>{var e=i.value;return $.rceRunTime=Date.now(),e&&e.clientWidth&&M?(c(),f(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=$.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=K(),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),ee().then(()=>{Z()})):s()})):(0,_vue.nextTick)()},J=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=$,a=$.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()}),$.rceTimeout=setTimeout(()=>{$.rceTimeout=void 0,o()},r)}),K=()=>{var e,t=I.viewCellWidth,l=$.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}},Z=()=>{var e=I.isScrollXBig,t=$.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=K(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,ee())},ee=()=>(le(),s(),(0,_vue.nextTick)()),te=()=>I.scrollXLoad=!0,le=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=$,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},s=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=I,{elemStore:a,scrollXStore:r}=$;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${I.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=d.value,o&&(o.style.width=l+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),o=i?i.firstElementChild:null,o&&(o.style.width=l+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),o=i?i.firstElementChild:null;return o&&(o.style.width=l+"px"),c(),(0,_vue.nextTick)()},ae=()=>{Z()},re=(e,t)=>{var l=$.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),$.lcsTimeout=setTimeout(()=>{$.lcsRunTime=Date.now(),$.lcsTimeout=void 0,$.intoRunScroll=!1,$.inVirtualScroll=!1,$.inWheelScroll=!1,$.inHeaderScroll=!1,$.inBodyScroll=!1,$.inFooterScroll=!1,I.lazScrollLoading=!1},200)},q=(e,t,l,a)=>{t&&($.lastScrollLeft=a),e&&($.lastScrollTop=l),I.lastScrollTime=Date.now(),re(t,e)},h=(u,n,c,f,h)=>{var v=$.xeTable,{lastScrollLeft:g,lastScrollTop:m}=$,y=W.value,_=k.value;if(y&&_&&v){var{computeScrollXThreshold:v,computeScrollYThreshold:x}=v.getComputeMaps(),p=_.clientHeight,S=y.clientWidth,_=_.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(v=v.value,(l=h<=0)||(a=y-1<=h+S),g<h?(r="right",y-v<=h+S&&(d=!0)):(r="left",h<=v&&(s=!0))),n&&(g=x.value,(e=f<=0)||(t=_-1<=f+p),m<f?(r="bottom",_-g<=f+p&&(o=!0)):(r="top",f<=g&&(i=!0))),q(n,c,f,h);v={source:sourceType,scrollTop:f,scrollLeft:h,bodyHeight:p,bodyWidth:S,scrollHeight:_,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&M.dispatchEvent("scroll-boundary",v,u),M.dispatchEvent("scroll",v,u)}},ie=e=>{var t=$.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:f,handleLazyRecalculate:J,handleUpdateCurrentRow(e){var t,l,a=$.xeTable,r=i.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=$.xeTable,l=i.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}=$;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=W.value,a&&l&&(t=l.scrollLeft,$.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),h(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=$;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=W.value,r=k.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,$.inBodyScroll=!0,$.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),ie(l)),d&&($.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&ae(),u&&q(u,d,i.scrollTop,t),d&&h(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=$;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,$.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&ae(),h(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=$;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,$.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),ie(e),q(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return s()},handleUpdateSYSpace(){return(()=>{var e=$.elemStore,t=$.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]),a&&(a.style.transform=`translate(${I.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translate(${I.scrollXLeft||0}px, ${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value,a&&(a.style.height=s?s+"px":""),t=(0,_util.getRefElem)(e["main-chart-before-wrapper"]),l=t?t.firstElementChild:null,l&&(l.style.height=s?s+"px":""),a=(0,_util.getRefElem)(e["main-chart-after-wrapper"]),t=a?a.firstElementChild:null;return t&&(t.style.height=s?s+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{f()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let oe=()=>{J()},se=(Object.assign(X,{refreshData(){return N(),o(),(0,_vue.nextTick)().then(()=>{var e=$.xeTable;if(o(),e)return e.recalculate()})},updateViewData(){var e=$.xeTable;return e&&(e=e.reactData.tableData,I.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&($.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:w,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:d,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"})])),de=()=>(0,_vue.h)("div",{ref:U,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),ue=()=>(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)]),ne=()=>{var e=b.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[de(),ue()]:[ue(),de()])};let t=(0,_vue.ref)(0);return(0,_vue.watch)(()=>I.tableData,()=>{t.value++}),(0,_vue.watch)(()=>I.tableData.length,()=>{t.value++}),(0,_vue.watch)(t,()=>{N()}),(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",oe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown"),_xeUtils.default.assign($,createInternalData())}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=T.value;return(0,_vue.h)("div",{ref:i,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?[se(),ne()]:[ne(),se()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",X),X},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")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;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 e=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),v=M.internalData,{computeTaskOpts:g,computeTaskViewOpts:V,computeStartField:x,computeEndField:_,computeTypeField:p,computeScrollbarOpts:S,computeScrollbarXToTop:T,computeScrollbarYToLeft:b,computeScaleUnit:a,computeWeekScale:r,computeMinScale:D}=M.getComputeMaps(),i=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),k=(0,_vue.ref)(),L=(0,_vue.ref)(),R=(0,_vue.ref)(),C=(0,_vue.ref)(),z=(0,_vue.ref)(),u=(0,_vue.ref)(),n=(0,_vue.ref)(),Y=(0,_vue.ref)(),I=(0,_vue.reactive)(createReactData()),$=createInternalData(),y={refElem:i,refScrollXHandleElem:W,refScrollYHandleElem:k},o=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=V.value,a=D.value,e=e.gridding,{type:r,startDay:i}=a,o=[];if(t&&l){var s=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),d=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r){case"year":{let e=_xeUtils.default.getWhatYear(t,s,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;o.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,s,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;o.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,s,"first");for(var h=_xeUtils.default.getWhatMonth(l,d,"first");e<=h;){var v=e;o.push(v),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,s,i,i);for(var g=_xeUtils.default.getWhatWeek(l,d,i,i);e<=g;){var m=e;o.push(m),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,s,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var x=e;o.push(x),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var _=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+s*_;for(var p=l.getTime()+d*_;e<=p;){var S=new Date(e);o.push(S),e+=_}break}}}return o}),O={computeScaleDateList:o},X={xID:e,props:t,context:l,reactData:I,internalData:$,getRefMaps:()=>y,getComputeMaps:()=>O},m=e=>{var t=g.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},F=()=>{var e=M.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);$.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},B=()=>{var e=M.reactData.taskScaleList,t=a.value;let h=D.value;var v=r.value,g=o.value;let m=[],l=[];if(h&&t&&g.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===h.type,x=(t,l,a)=>{if(h.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<g.length;f++){var _=g[f];let[e,t,l,a,r,i,o,s,d,u,n,c]=_xeUtils.default.toDateString(_,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var p=_.getDay(),S=p+1,T=Math.ceil((_.getMonth()+1)/3),b=""+_xeUtils.default.getYearWeek(_,v?v.startDay:void 0),w=_xeUtils.default.padStart(b,2,"0"),_={date:_,yy:e,yyyy:t=y&&j(b,l)?""+(Number(t)+1):t,M:l,MM:a,d:r,dd:i,H:o,HH:s,m:d,mm:u,s:n,ss:c,q:T,W:b,WW:w,E:S,e:p},w={year:{field:t,title:t,dateObj:_},quarter:{field:t+"_q"+T,title:""+T,dateObj:_},month:{field:t+"_"+a,title:a,dateObj:_},week:{field:t+"_W"+b,title:b,dateObj:_},day:{field:t+`_${a}_${i}_E`+S,title:""+S,dateObj:_},date:{field:t+`_${a}_`+i,title:i,dateObj:_},hour:{field:t+`_${a}_${i}_`+s,title:s,dateObj:_},minute:{field:t+`_${a}_${i}_${s}_`+u,title:u,dateObj:_},second:{field:t+`_${a}_${i}_${s}_${u}_`+c,title:c,dateObj:_}},p=w[h.type];h.level<19&&x("year",w,p),h.level<17&&x("quarter",w,p),h.level<15&&x("month",w,p),h.level<13&&x("week",w,p),h.level<11&&x("day",w,p),h.level<9&&x("date",w,p),h.level<7&&x("hour",w,p),h.level<5&&x("minute",w,p),h.level<3&&x("second",w,p),m.push(p)}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}},j=(e,t)=>""+e=="1"&&""+t=="12",G=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return j(e,a+1)&&l++,{yyyy:l,W:e}},A=e=>{let i=I.minViewDate;var t=D.value,l=a.value;let d=r.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=G(e,d?d.startDay:void 0),l=l.yyyy+"-"+l.W,a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=G(t,d?d.startDay:void 0),r=r.yyyy+"-"+r.W,i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a+1}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=m(e),t=m(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},Q=()=>{var e=M.props.treeConfig,t=$.scrollXStore,l=$.xeTable;let o=null,s=null;if(l){let a=x.value,r=_.value,i=p.value;var{computeAggregateOpts:d,computeTreeOpts:u}=l.getComputeMaps(),n=l.reactData.isRowGroupStatus,{afterFullData:l,afterTreeFullData:c,afterGroupFullData:f}=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),!o||o.getTime()>e.getTime())&&(o=e),l&&(e=m(l),!s||s.getTime()<e.getTime())&&(s=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,g,{children:n}):e?_xeUtils.default.eachTree(c,g,{children:h?u.mapChildrenField:v}):l.forEach(g)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=o,I.maxViewDate=s,$.startMaps={},$.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=B();if(t&&l&&a.length){let c=$.xeTable;if(c){let o=x.value,s=_.value,d=p.value;var{computeAggregateOpts:t,computeTreeOpts:l}=c.getComputeMaps(),i=c.reactData.isRowGroupStatus,{afterFullData:f,afterTreeFullData:h,afterGroupFullData:v}=c.internalData,t=t.value,l=l.value,g=l.transform,m=l.children||l.childrenField;let u={},n=A(a);var y=e=>{var t,l,a=c.getRowid(e);let r=_xeUtils.default.get(e,o),i=_xeUtils.default.get(e,s);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,d))&&(r=r||i,i=r),r&&i&&({offsetLeftSize:t,offsetWidthSize:l}=n(r,i),u[a]={row:e,rowid:a,oLeftSize:t,oWidthSize:l})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(v,y,{children:i}):e?_xeUtils.default.eachTree(h,y,{children:g?l.mapChildrenField:m}):f.forEach(y),$.chartMaps=u}}$.visibleColumn=a,I.headerGroups=r,F(),ee(),te()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=$.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=W.value,i=k.value;l&&(t=t>l.clientHeight,i&&(I.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),I.overflowY=t,i=e>l.clientWidth,r&&(I.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),I.overflowX=i)},N=()=>{let l=v.dragBarRow,a=I.viewCellWidth,{elemStore:e,chartMaps:r}=$,i=$.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);return t&&i&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=e.getAttribute("rowid"),l&&i.getRowid(l)===e||(e=e?r[e]:null,t.style.left=(0,_util.getTaskBarLeft)(e,a)+"px",(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width=(0,_util.getTaskBarWidth)(e,a)+"px"))}),(0,_vue.nextTick)()},f=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=$,h=$.xeTable,v=i.value;if(v&&M){var g=S.value,m=T.value,y=b.value,x=E.value,_=H.value,p=w.value;let e=s;s=d;let t=0,l=0,a=0,r=(h&&(d=h.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.y.visible)&&(e=0,r="hidden");h=(0,_util.getRefElem)(c["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)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),R.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&&s?"block":""),_&&(_.style.width=m?"":e+"px",_.style.display=!m&&s?"block":""),U.value),u=(h&&(h.style.width=e+"px",h.style.height=t+l+a+"px",h.style.visibility=r),L.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),C.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),z.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),Y.value);let i=40,o=i=g?g.clientWidth||40:i;f.length&&(o=Math.max(0,i*f.length),d)&&0<(x=(v=d.clientWidth)-o)&&(i+=Math.max(0,x/f.length),o=v),I.viewCellWidth=i;_=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return _&&(_.style.width=o+"px"),m&&(m.style.width=s+"px"),I.scrollXWidth=o,Promise.all([N(),M.handleUpdateTaskLinkStyle?M.handleUpdateTaskLinkStyle(X):null])}},s=()=>{var e=i.value;return $.rceRunTime=Date.now(),e&&e.clientWidth&&M?(c(),f(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=$.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=J(),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),Z().then(()=>{K()})):d()})):(0,_vue.nextTick)()},P=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=$,a=$.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(s()):(0,_vue.nextTick)(()=>{e()}),$.rceTimeout=setTimeout(()=>{$.rceTimeout=void 0,s()},r)}),J=()=>{var e,t=I.viewCellWidth,l=$.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}},K=()=>{var e=I.isScrollXBig,t=$.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=J(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,Z())},Z=()=>(te(),d(),(0,_vue.nextTick)()),ee=()=>I.scrollXLoad=!0,te=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=$,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},d=()=>{let{scrollXLoad:t,scrollXWidth:e,viewCellWidth:l}=I,{elemStore:a,scrollXStore:r}=$;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0,d=(t&&(s=Math.max(0,o*l)),i&&(i.style.transform=`translate(${s}px, ${I.scrollYTop||0}px)`),e);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?d+"px":"")});o=u.value,o&&(o.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),o=i?i.firstElementChild:null,o&&(o.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),o=i?i.firstElementChild:null;return o&&(o.style.width=d+"px"),I.scrollXLeft=s,I.scrollXWidth=d,c(),(0,_vue.nextTick)()},le=()=>{K()},ae=(e,t)=>{var l=$.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),$.lcsTimeout=setTimeout(()=>{$.lcsRunTime=Date.now(),$.lcsTimeout=void 0,$.intoRunScroll=!1,$.inVirtualScroll=!1,$.inWheelScroll=!1,$.inHeaderScroll=!1,$.inBodyScroll=!1,$.inFooterScroll=!1,I.lazScrollLoading=!1},200)},q=(e,t,l,a)=>{t&&($.lastScrollLeft=a),e&&($.lastScrollTop=l),I.lastScrollTime=Date.now(),ae(t,e)},h=(u,n,c,f,h)=>{var v=$.xeTable,{lastScrollLeft:g,lastScrollTop:m}=$,y=W.value,x=k.value;if(y&&x&&v){var{computeScrollXThreshold:v,computeScrollYThreshold:_}=v.getComputeMaps(),p=x.clientHeight,S=y.clientWidth,x=x.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(v=v.value,(l=h<=0)||(a=y-1<=h+S),g<h?(r="right",y-v<=h+S&&(d=!0)):(r="left",h<=v&&(s=!0))),n&&(g=_.value,(e=f<=0)||(t=x-1<=f+p),m<f?(r="bottom",x-g<=f+p&&(o=!0)):(r="top",f<=g&&(i=!0))),q(n,c,f,h);v={source:sourceType,scrollTop:f,scrollLeft:h,bodyHeight:p,bodyWidth:S,scrollHeight:x,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&M.dispatchEvent("scroll-boundary",v,u),M.dispatchEvent("scroll",v,u)}},re=e=>{var t=$.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:f,handleLazyRecalculate:P,handleUpdateCurrentRow(e){var t,l,a=$.xeTable,r=i.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=$.xeTable,l=i.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}=$;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=W.value,a&&l&&(t=l.scrollLeft,$.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),h(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=$;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=W.value,r=k.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,$.inBodyScroll=!0,$.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),re(l)),d&&($.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&le(),u&&q(u,d,i.scrollTop,t),d&&h(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=$;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,$.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&le(),h(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=$;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,$.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),re(e),q(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return d()},handleUpdateSYSpace(){return(()=>{var e=$.elemStore,t=$.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]),a&&(a.style.transform=`translate(${I.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translateY(${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value,a&&(a.style.height=s?s+"px":""),t=(0,_util.getRefElem)(e["main-chart-before-wrapper"]),l=t?t.firstElementChild:null,l&&(l.style.height=s?s+"px":""),a=(0,_util.getRefElem)(e["main-chart-after-wrapper"]),t=a?a.firstElementChild:null;return t&&(t.style.height=s?s+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{f()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let ie=()=>{P()},oe=(Object.assign(X,{refreshData(){return Q(),s(),(0,_vue.nextTick)().then(()=>{var e=$.xeTable;if(s(),e)return e.recalculate()})},updateViewData(e){var t=$.xeTable;return t&&(t=t.reactData.tableData,I.tableData=t,e&&Q(),s()),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&($.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:w,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.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:H,class:"vxe-gantt-view--scroll-x-right-corner"})])),se=()=>(0,_vue.h)("div",{ref:U,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),de=()=>(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)]),ue=()=>{var e=b.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[se(),de()]:[de(),se()])};return(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",ie)}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(I,createReactData())}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown"),_xeUtils.default.assign($,createInternalData())}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=T.value;return(0,_vue.h)("div",{ref:i,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?[oe(),ue()]:[ue(),oe()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",X),X},render(){return this.renderVN()}});