vxe-gantt 3.1.17 → 3.1.19

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.
Files changed (40) hide show
  1. package/es/gantt/src/gantt-chart.js +91 -48
  2. package/es/gantt/src/gantt-view.js +50 -21
  3. package/es/gantt/src/gantt.js +86 -75
  4. package/es/gantt/src/util.js +0 -3
  5. package/es/gantt/style.css +16 -2
  6. package/es/gantt/style.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/ui/index.js +2 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/es/vxe-gantt/style.css +16 -2
  12. package/es/vxe-gantt/style.min.css +1 -1
  13. package/lib/gantt/src/gantt-chart.js +79 -40
  14. package/lib/gantt/src/gantt-chart.min.js +1 -1
  15. package/lib/gantt/src/gantt-view.js +50 -25
  16. package/lib/gantt/src/gantt-view.min.js +1 -1
  17. package/lib/gantt/src/gantt.js +92 -91
  18. package/lib/gantt/src/gantt.min.js +1 -1
  19. package/lib/gantt/src/util.js +0 -4
  20. package/lib/gantt/src/util.min.js +1 -1
  21. package/lib/gantt/style/style.css +16 -2
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +226 -164
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/ui/index.js +2 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-gantt/style/style.css +16 -2
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +3 -3
  34. package/packages/gantt/src/gantt-chart.ts +92 -53
  35. package/packages/gantt/src/gantt-view.ts +52 -21
  36. package/packages/gantt/src/gantt.ts +91 -78
  37. package/packages/gantt/src/util.ts +0 -4
  38. package/packages/ui/index.ts +1 -0
  39. package/styles/components/gantt-module/gantt-chart.scss +14 -2
  40. package/styles/theme/base.scss +1 -0
@@ -42,8 +42,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
42
42
  renderTaskBar: function renderTaskBar(h, $xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) {
43
43
  var _vm = this;
44
44
  var $xeGantt = _vm.$xeGantt;
45
- var tableProps = $xeTable;
46
- var treeConfig = tableProps.treeConfig;
47
45
  var tableReactData = $xeTable;
48
46
  var resizeHeightFlag = tableReactData.resizeHeightFlag;
49
47
  var tableInternalData = $xeTable;
@@ -52,9 +50,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
52
50
  var rowOpts = $xeTable.computeRowOpts;
53
51
  var defaultRowHeight = $xeTable.computeDefaultRowHeight;
54
52
  var ganttProps = $xeGantt;
53
+ var ganttReactData = $xeGantt.reactData;
54
+ var ganttInternalData = $xeGantt.internalData;
55
55
  var ganttSlots = $xeGantt.$scopedSlots;
56
56
  var taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
57
57
  var taskBarMilestoneConfig = ganttProps.taskBarMilestoneConfig;
58
+ var activeLink = ganttReactData.activeLink,
59
+ activeBarRowid = ganttReactData.activeBarRowid;
58
60
  var titleField = $xeGantt.computeTitleField;
59
61
  var progressField = $xeGantt.computeProgressField;
60
62
  var typeField = $xeGantt.computeTypeField;
@@ -112,29 +114,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
112
114
  rowIndex: rowIndex,
113
115
  _rowIndex: _rowIndex
114
116
  };
115
- var ons = {
116
- click: function click(evnt) {
117
- $xeGantt.handleTaskBarClickEvent(evnt, barParams);
118
- },
119
- dblclick: function dblclick(evnt) {
120
- $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
121
- },
122
- mousedown: function mousedown(evnt) {
123
- if ($xeGantt.handleTaskBarMousedownEvent) {
124
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
125
- }
126
- }
127
- };
117
+ var ctOns = {};
128
118
  if (showTooltip) {
129
- ons.mouseover = function (evnt) {
130
- $xeGantt.triggerTaskBarTooltipEvent(evnt, Object.assign({
119
+ ctOns.mouseover = function (evnt) {
120
+ var dragBarRow = ganttInternalData.dragBarRow;
121
+ var ttParams = Object.assign({
131
122
  $event: evnt
132
- }, ctParams));
123
+ }, ctParams);
124
+ if (!dragBarRow) {
125
+ $xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
126
+ }
127
+ $xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
133
128
  };
134
- ons.mouseleave = function (evnt) {
135
- $xeGantt.handleTaskBarTooltipLeaveEvent(evnt, Object.assign({
129
+ ctOns.mouseleave = function (evnt) {
130
+ var dragBarRow = ganttInternalData.dragBarRow;
131
+ var ttParams = Object.assign({
136
132
  $event: evnt
137
- }, ctParams));
133
+ }, ctParams);
134
+ if (!dragBarRow) {
135
+ $xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
136
+ }
137
+ $xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
138
138
  };
139
139
  }
140
140
  var cbVNs = [];
@@ -143,12 +143,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
143
143
  isMilestone: isMilestone,
144
144
  title: title,
145
145
  vbStyle: vbStyle,
146
- vpStyle: vpStyle
146
+ vpStyle: vpStyle,
147
+ rowid: rowid,
148
+ ctOns: ctOns
147
149
  });
148
150
  } else if (taskBarSlot) {
149
151
  cbVNs.push(h('div', {
150
152
  key: 'cbc',
151
- class: 'vxe-gantt-view--chart-custom-bar-content'
153
+ class: 'vxe-gantt-view--chart-custom-bar-content-wrapper',
154
+ on: ctOns
152
155
  }, $xeGantt.callSlot(taskBarSlot, barParams, h)));
153
156
  } else {
154
157
  if (isMilestone) {
@@ -161,7 +164,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
161
164
  };
162
165
  cbVNs.push(h('div', {
163
166
  key: 'vcm',
164
- class: 'vxe-gantt-view--chart-milestone-wrapper'
167
+ class: 'vxe-gantt-view--chart-milestone-wrapper',
168
+ on: ctOns
165
169
  }, [h('div', {
166
170
  class: ['vxe-gantt-view--chart-milestone-icon', iconStatus ? "theme--".concat(_xeUtils.default.isFunction(iconStatus) ? iconStatus(tbmParams) : iconStatus) : ''],
167
171
  style: iconStyle ? Object.assign({}, _xeUtils.default.isFunction(iconStyle) ? iconStyle(tbmParams) : iconStyle) : undefined
@@ -171,18 +175,22 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
171
175
  class: 'vxe-gantt-view--chart-milestone-content'
172
176
  }, title) : renderEmptyElement($xeGantt)]));
173
177
  } else {
174
- cbVNs.push(showProgress ? h('div', {
178
+ cbVNs.push(h('div', {
179
+ key: 'vbc',
180
+ class: 'vxe-gantt-view--chart-bar-content-wrapper',
181
+ on: ctOns
182
+ }, [showProgress ? h('div', {
175
183
  key: 'vcp',
176
184
  class: 'vxe-gantt-view--chart-progress',
177
185
  style: vpStyle
178
186
  }) : renderEmptyElement($xeGantt), showContent ? h('div', {
179
187
  key: 'vcc',
180
188
  class: 'vxe-gantt-view--chart-content'
181
- }, title) : renderEmptyElement($xeGantt));
189
+ }, title) : renderEmptyElement($xeGantt)]));
182
190
  }
183
191
  }
184
192
  return h('div', {
185
- key: treeConfig ? rowid : $rowIndex,
193
+ key: rowid,
186
194
  attrs: {
187
195
  rowid: rowid
188
196
  },
@@ -199,12 +207,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
199
207
  }
200
208
  }
201
209
  }, [h('div', {
202
- class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', "is--".concat((0, _util.gettaskType)(typeValue))],
210
+ class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', "is--".concat((0, _util.gettaskType)(typeValue)), {
211
+ 'is--active': activeBarRowid === rowid,
212
+ 'active--link': activeLink && (rowid === "".concat(activeLink.from) || rowid === "".concat(activeLink.to))
213
+ }],
203
214
  style: vbStyle,
204
215
  attrs: {
205
216
  rowid: rowid
206
217
  },
207
- on: ons
218
+ on: {
219
+ click: function click(evnt) {
220
+ $xeGantt.handleTaskBarClickEvent(evnt, barParams);
221
+ },
222
+ dblclick: function dblclick(evnt) {
223
+ $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
224
+ },
225
+ mousedown: function mousedown(evnt) {
226
+ if ($xeGantt.handleTaskBarMousedownEvent) {
227
+ $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
228
+ }
229
+ }
230
+ }
208
231
  }, cbVNs)]);
209
232
  },
210
233
  renderTaskRows: function renderTaskRows(h, $xeTable, tableData) {
@@ -250,24 +273,38 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
250
273
  var _vm = this;
251
274
  var $xeGantt = _vm.$xeGantt;
252
275
  var $xeGanttView = _vm.$xeGanttView;
276
+ var ganttReactData = $xeGantt.reactData;
253
277
  var ganttViewInternalData = $xeGanttView.internalData;
254
278
  var ganttViewReactData = $xeGanttView.reactData;
255
279
  var $xeTable = ganttViewInternalData.xeTable;
280
+ var dragLinkFromStore = ganttReactData.dragLinkFromStore;
256
281
  var tableData = ganttViewReactData.tableData;
257
282
  var taskLinkOpts = $xeGantt.computeTaskLinkOpts;
258
- var showArrow = taskLinkOpts.showArrow;
283
+ var taskBarOpts = $xeGantt.computeTaskBarOpts;
284
+ var isCurrent = taskLinkOpts.isCurrent,
285
+ isHover = taskLinkOpts.isHover;
286
+ var linkCreatable = taskBarOpts.linkCreatable;
259
287
  return h('div', {
260
288
  ref: 'refElem',
261
- class: 'vxe-gantt-view--chart-wrapper'
262
- }, [$xeGantt.renderGanttTaskLines ? h('div', {
263
- ref: 'reflineWrapperElem',
264
- class: ['vxe-gantt-view--chart-line-wrapper', {
265
- 'show-arrow': showArrow
289
+ class: ['vxe-gantt-view--chart-wrapper', {
290
+ 'is--cl-drag': dragLinkFromStore.rowid
266
291
  }]
267
- }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskLines(h) : []) : renderEmptyElement($xeGantt), h('div', {
292
+ }, [$xeGantt.renderGanttTaskChartBefores ? h('div', {
293
+ ref: 'refChartBeforeWrapperElem',
294
+ class: ['vxe-gantt-view--chart-before-wrapper', {
295
+ 'link--current': isCurrent,
296
+ 'link--hover': isHover
297
+ }]
298
+ }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskChartBefores(h) : []) : renderEmptyElement($xeGantt), h('div', {
268
299
  ref: 'refTaskWrapperElem',
269
- class: 'vxe-gantt-view--chart-task-wrapper'
270
- }, $xeTable ? _vm.renderTaskRows(h, $xeTable, tableData) : [])]);
300
+ class: ['vxe-gantt-view--chart-task-wrapper', {
301
+ 'link--current': isCurrent,
302
+ 'link--create': linkCreatable
303
+ }]
304
+ }, $xeTable ? _vm.renderTaskRows(h, $xeTable, tableData) : []), $xeGantt.renderGanttTaskChartAfters ? h('div', {
305
+ ref: 'refChartAfterWrapperElem',
306
+ class: 'vxe-gantt-view--chart-after-wrapper'
307
+ }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskChartAfters(h) : []) : renderEmptyElement($xeGantt)]);
271
308
  }
272
309
  },
273
310
  mounted: function mounted() {
@@ -277,7 +314,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
277
314
  var elemStore = ganttViewInternalData.elemStore;
278
315
  var prefix = 'main-chart-';
279
316
  elemStore["".concat(prefix, "task-wrapper")] = _vm.$refs.refTaskWrapperElem;
280
- elemStore["".concat(prefix, "line-wrapper")] = _vm.$refs.reflineWrapperElem;
317
+ elemStore["".concat(prefix, "before-wrapper")] = _vm.$refs.refChartBeforeWrapperElem;
318
+ elemStore["".concat(prefix, "after-wrapper")] = _vm.$refs.refChartAfterWrapperElem;
281
319
  },
282
320
  destroyed: function destroyed() {
283
321
  var _vm = this;
@@ -286,7 +324,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
286
324
  var elemStore = ganttViewInternalData.elemStore;
287
325
  var prefix = 'main-chart-';
288
326
  elemStore["".concat(prefix, "task-wrapper")] = null;
289
- elemStore["".concat(prefix, "line-wrapper")] = null;
327
+ elemStore["".concat(prefix, "before-wrapper")] = null;
328
+ elemStore["".concat(prefix, "after-wrapper")] = null;
290
329
  },
291
330
  render: function render(h) {
292
331
  return this.renderVN(h);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(e,t,r,a,n,o,i){var s=this.$xeGantt,l=t.treeConfig,c=t.resizeHeightFlag,u=t.fullAllDataRowIdData,d=t.computeCellOpts,p=t.computeRowOpts,t=t.computeDefaultRowHeight,v=s.$scopedSlots,v=v.taskBar||v["task-bar"],m=s.taskBarMilestoneConfig,f=s.computeTitleField,h=s.computeProgressField,y=s.computeTypeField,g=s.computeTaskBarOpts,w=s.computeTaskBarMilestoneOpts,T=s.computeScaleUnit,x={$gantt:s,row:r,scaleType:T},_=g.showProgress,k=g.showContent,b=g.contentMethod,E=g.barStyle,A=g.moveable,g=g.showTooltip,S=_xeUtils.default.isFunction(E),E=(E?S?E(x):E:{})||{},C=E.round,u=u[a]||{},c=c?(0,_util.getCellRestHeight)(u,d,p,t):0,u=(0,_utils.getStringValue)(_xeUtils.default.get(r,f)),d=_?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,h)))):0,p=(0,_util.gettaskType)(_xeUtils.default.get(r,y)),t=!(!m||!(0,_util.hasMilestoneTask)(p)),f={},h={width:"".concat(d||0,"%")},I=(S&&(y=E.bgColor,m=E.completedBgColor,y&&(f.backgroundColor=y),m)&&(h.backgroundColor=m),b&&(u=(0,_utils.getStringValue)(b({row:r,title:u,scaleType:T}))),{$gantt:s,source:sourceType,type:viewType,scaleType:T,row:r,$rowIndex:o,rowIndex:n,_rowIndex:i}),d={click:function(e){s.handleTaskBarClickEvent(e,x)},dblclick:function(e){s.handleTaskBarDblclickEvent(e,x)},mousedown:function(e){s.handleTaskBarMousedownEvent&&s.handleTaskBarMousedownEvent(e,x)}},S=(g&&(d.mouseover=function(e){s.triggerTaskBarTooltipEvent(e,Object.assign({$event:e},I))},d.mouseleave=function(e){s.handleTaskBarTooltipLeaveEvent(e,Object.assign({$event:e},I))}),[]);return s.renderGanttTaskBarContent?S=s.renderGanttTaskBarContent(e,I,{isMilestone:t,title:u,vbStyle:f,vpStyle:h}):v?S.push(e("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content"},s.callSlot(v,x,e))):t?(E=w.icon,y=w.iconStatus,m=w.iconStyle,b={$gantt:s,row:r},S.push(e("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper"},[e("div",{class:["vxe-gantt-view--chart-milestone-icon",y?"theme--".concat(_xeUtils.default.isFunction(y)?y(b):y):""],style:m?Object.assign({},_xeUtils.default.isFunction(m)?m(b):m):void 0},[e("i",{class:(E?_xeUtils.default.isFunction(E)?E(b):E:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),k?e("div",{class:"vxe-gantt-view--chart-milestone-content"},u):renderEmptyElement(s)]))):S.push(_?e("div",{key:"vcp",class:"vxe-gantt-view--chart-progress",style:h}):renderEmptyElement(s),k?e("div",{key:"vcc",class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(s)),e("div",{key:l?a:o,attrs:{rowid:a},class:["vxe-gantt-view--chart-row","is--".concat((0,_util.gettaskType)(p)),{"is--round":C,"is--move":A}],style:{height:"".concat(c,"px")},on:{contextmenu:function(e){s.handleTaskBarContextmenuEvent(e,I)}}},[e("div",{class:[v?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--".concat((0,_util.gettaskType)(p))],style:f,attrs:{rowid:a},on:d},S)])},renderTaskRows:function(i,s,e){var l=this,t=l.$xeGanttView.reactData,c=s.treeConfig,u=s.treeExpandedFlag,d=s.fullAllDataRowIdData,p=s.treeExpandedMaps,r=s.computeTreeOpts,v=r.transform,m=r.children||r.childrenField,f=t.scrollYLoad,h=[];return e.forEach(function(e,t){var r=s.getRowid(e),a=d[r]||{},n=t,o=-1,a=(a&&(n=a.index,o=a._index),h.push(l.renderTaskBar(i,s,e,r,n,t,o)),!1),n=[];!c||f||v||(n=e[m],a=!!u&&n&&0<n.length&&!!p[r]),a&&h.push.apply(h,_toConsumableArray(l.renderTaskRows(i,s,n)))}),h},renderVN:function(e){var t=this.$xeGantt,r=this.$xeGanttView,a=r.internalData.xeTable,r=r.reactData.tableData,n=t.computeTaskLinkOpts,o=n.showArrow;return e("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},[t.renderGanttTaskLines?e("div",{ref:"reflineWrapperElem",class:["vxe-gantt-view--chart-line-wrapper",{"show-arrow":o}]},a&&(0,_utils.isEnableConf)(n)?t.renderGanttTaskLines(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:"vxe-gantt-view--chart-task-wrapper"},a?this.renderTaskRows(e,a,r):[])])}},mounted:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=this.$refs.refTaskWrapperElem,e["".concat(t,"line-wrapper")]=this.$refs.reflineWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=null,e["".concat(t,"line-wrapper")]=null},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(e,t,r,a,n,o,i){var s=this.$xeGantt,l=t.resizeHeightFlag,c=t.fullAllDataRowIdData,u=t.computeCellOpts,p=t.computeRowOpts,t=t.computeDefaultRowHeight,d=s.reactData,v=s.internalData,f=s.$scopedSlots,f=f.taskBar||f["task-bar"],m=s.taskBarMilestoneConfig,h=d.activeLink,d=d.activeBarRowid,w=s.computeTitleField,y=s.computeProgressField,g=s.computeTypeField,k=s.computeTaskBarOpts,T=s.computeTaskBarMilestoneOpts,x=s.computeScaleUnit,_={$gantt:s,row:r,scaleType:x},b=k.showProgress,E=k.showContent,C=k.contentMethod,A=k.barStyle,B=k.moveable,k=k.showTooltip,S=_xeUtils.default.isFunction(A),A=(A?S?A(_):A:{})||{},I=A.round,c=c[a]||{},l=l?(0,_util.getCellRestHeight)(c,u,p,t):0,c=(0,_utils.getStringValue)(_xeUtils.default.get(r,w)),u=b?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,y)))):0,p=(0,_util.gettaskType)(_xeUtils.default.get(r,g)),t=!(!m||!(0,_util.hasMilestoneTask)(p)),w={},y={width:"".concat(u||0,"%")},$=(S&&(g=A.bgColor,m=A.completedBgColor,g&&(w.backgroundColor=g),m)&&(y.backgroundColor=m),C&&(c=(0,_utils.getStringValue)(C({row:r,title:c,scaleType:x}))),{$gantt:s,source:sourceType,type:viewType,scaleType:x,row:r,$rowIndex:o,rowIndex:n,_rowIndex:i}),u={},S=(k&&(u.mouseover=function(e){var t=v.dragBarRow,r=Object.assign({$event:e},$);t||s.triggerTaskBarTooltipEvent(e,r),s.dispatchEvent("task-bar-mouseenter",r,e)},u.mouseleave=function(e){var t=v.dragBarRow,r=Object.assign({$event:e},$);t||s.handleTaskBarTooltipLeaveEvent(e,r),s.dispatchEvent("task-bar-mouseleave",r,e)}),[]);return s.renderGanttTaskBarContent?S=s.renderGanttTaskBarContent(e,$,{isMilestone:t,title:c,vbStyle:w,vpStyle:y,rowid:a,ctOns:u}):f?S.push(e("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper",on:u},s.callSlot(f,_,e))):t?(A=T.icon,g=T.iconStatus,m=T.iconStyle,C={$gantt:s,row:r},S.push(e("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper",on:u},[e("div",{class:["vxe-gantt-view--chart-milestone-icon",g?"theme--".concat(_xeUtils.default.isFunction(g)?g(C):g):""],style:m?Object.assign({},_xeUtils.default.isFunction(m)?m(C):m):void 0},[e("i",{class:(A?_xeUtils.default.isFunction(A)?A(C):A:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),E?e("div",{class:"vxe-gantt-view--chart-milestone-content"},c):renderEmptyElement(s)]))):S.push(e("div",{key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper",on:u},[b?e("div",{key:"vcp",class:"vxe-gantt-view--chart-progress",style:y}):renderEmptyElement(s),E?e("div",{key:"vcc",class:"vxe-gantt-view--chart-content"},c):renderEmptyElement(s)])),e("div",{key:a,attrs:{rowid:a},class:["vxe-gantt-view--chart-row","is--".concat((0,_util.gettaskType)(p)),{"is--round":I,"is--move":B}],style:{height:"".concat(l,"px")},on:{contextmenu:function(e){s.handleTaskBarContextmenuEvent(e,$)}}},[e("div",{class:[f?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--".concat((0,_util.gettaskType)(p)),{"is--active":d===a,"active--link":h&&(a==="".concat(h.from)||a==="".concat(h.to))}],style:w,attrs:{rowid:a},on:{click:function(e){s.handleTaskBarClickEvent(e,_)},dblclick:function(e){s.handleTaskBarDblclickEvent(e,_)},mousedown:function(e){s.handleTaskBarMousedownEvent&&s.handleTaskBarMousedownEvent(e,_)}}},S)])},renderTaskRows:function(i,s,e){var l=this,t=l.$xeGanttView.reactData,c=s.treeConfig,u=s.treeExpandedFlag,p=s.fullAllDataRowIdData,d=s.treeExpandedMaps,r=s.computeTreeOpts,v=r.transform,f=r.children||r.childrenField,m=t.scrollYLoad,h=[];return e.forEach(function(e,t){var r=s.getRowid(e),a=p[r]||{},n=t,o=-1,a=(a&&(n=a.index,o=a._index),h.push(l.renderTaskBar(i,s,e,r,n,t,o)),!1),n=[];!c||m||v||(n=e[f],a=!!u&&n&&0<n.length&&!!d[r]),a&&h.push.apply(h,_toConsumableArray(l.renderTaskRows(i,s,n)))}),h},renderVN:function(e){var t=this.$xeGantt,r=this.$xeGanttView,a=t.reactData,n=r.internalData.xeTable,a=a.dragLinkFromStore,r=r.reactData.tableData,o=t.computeTaskLinkOpts,i=o.isCurrent,s=t.computeTaskBarOpts.linkCreatable;return e("div",{ref:"refElem",class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":a.rowid}]},[t.renderGanttTaskChartBefores?e("div",{ref:"refChartBeforeWrapperElem",class:["vxe-gantt-view--chart-before-wrapper",{"link--current":i,"link--hover":o.isHover}]},n&&(0,_utils.isEnableConf)(o)?t.renderGanttTaskChartBefores(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:["vxe-gantt-view--chart-task-wrapper",{"link--current":i,"link--create":s}]},n?this.renderTaskRows(e,n,r):[]),t.renderGanttTaskChartAfters?e("div",{ref:"refChartAfterWrapperElem",class:"vxe-gantt-view--chart-after-wrapper"},n&&(0,_utils.isEnableConf)(o)?t.renderGanttTaskChartAfters(e):[]):renderEmptyElement(t)])}},mounted:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=this.$refs.refTaskWrapperElem,e["".concat(t,"before-wrapper")]=this.$refs.refChartBeforeWrapperElem,e["".concat(t,"after-wrapper")]=this.$refs.refChartAfterWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=null,e["".concat(t,"before-wrapper")]=null,e["".concat(t,"after-wrapper")]=null},render:function(e){return this.renderVN(e)}});
@@ -162,15 +162,8 @@ function handleColumnHeader($xeGanttView) {
162
162
  var q = Math.ceil((itemDate.getMonth() + 1) / 3);
163
163
  var W = "".concat(_xeUtils.default.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined));
164
164
  var WW = _xeUtils.default.padStart(W, 2, '0');
165
- var wYear = yyyy;
166
- // 周维度,由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年,例如
167
- // '2024-12-31' 'yyyy-MM-dd W' >> '2024-12-31 1'
168
- // '2025-01-01' 'yyyy-MM-dd W' >> '2025-01-01 1'
169
- if (W === '1' && MM === '12') {
170
- wYear = "".concat(Number(yyyy) + 1);
171
- if (isMinWeek) {
172
- yyyy = wYear;
173
- }
165
+ if (isMinWeek && checkWeekOfsetYear(W, M)) {
166
+ yyyy = "".concat(Number(yyyy) + 1);
174
167
  }
175
168
  var dateObj = {
176
169
  date: itemDate,
@@ -209,7 +202,7 @@ function handleColumnHeader($xeGanttView) {
209
202
  dateObj: dateObj
210
203
  },
211
204
  week: {
212
- field: "".concat(wYear, "_W").concat(W),
205
+ field: "".concat(yyyy, "_W").concat(W),
213
206
  title: "".concat(W),
214
207
  dateObj: dateObj
215
208
  },
@@ -295,6 +288,30 @@ function handleColumnHeader($xeGanttView) {
295
288
  groupCols: groupCols
296
289
  };
297
290
  }
291
+ /**
292
+ * 判断周的年份是否跨年
293
+ */
294
+ function checkWeekOfsetYear(W, M) {
295
+ return "".concat(W) === '1' && "".concat(M) === '12';
296
+ }
297
+ /**
298
+ * 周维度,由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年,例如
299
+ * '2024-12-31' 'yyyy-MM-dd W' >> '2024-12-31 1'
300
+ * '2025-01-01' 'yyyy-MM-dd W' >> '2025-01-01 1'
301
+ */
302
+ function parseWeekObj(date, firstDay) {
303
+ var currDate = _xeUtils.default.toStringDate(date);
304
+ var yyyy = currDate.getFullYear();
305
+ var month = currDate.getMonth();
306
+ var weekNum = _xeUtils.default.getYearWeek(currDate, firstDay);
307
+ if (checkWeekOfsetYear(weekNum, month + 1)) {
308
+ yyyy++;
309
+ }
310
+ return {
311
+ yyyy: yyyy,
312
+ W: weekNum
313
+ };
314
+ }
298
315
  function createChartRender($xeGanttView, fullCols) {
299
316
  var $xeGantt = $xeGanttView.$xeGantt;
300
317
  var reactData = $xeGanttView.reactData;
@@ -389,13 +406,11 @@ function createChartRender($xeGanttView, fullCols) {
389
406
  return function (startValue, endValue) {
390
407
  var startDate = parseStringDate($xeGanttView, startValue);
391
408
  var endDate = parseStringDate($xeGanttView, endValue);
392
- var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-W', {
393
- firstDay: weekScale ? weekScale.startDay : undefined
394
- });
409
+ var startWeekObj = parseWeekObj(startDate, weekScale ? weekScale.startDay : undefined);
410
+ var startStr = "".concat(startWeekObj.yyyy, "-").concat(startWeekObj.W);
395
411
  var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
396
- var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-W', {
397
- firstDay: weekScale ? weekScale.startDay : undefined
398
- });
412
+ var endWeekObj = parseWeekObj(endDate, weekScale ? weekScale.startDay : undefined);
413
+ var endStr = "".concat(endWeekObj.yyyy, "-").concat(endWeekObj.W);
399
414
  var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
400
415
  var dateSize = Math.floor((_xeUtils.default.getWhatWeek(endDate, 1, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined).getTime() - endFirstDate.getTime()) / dayMs);
401
416
  var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
@@ -837,7 +852,7 @@ function updateStyle($xeGanttView) {
837
852
  bodyTableElem.style.width = "".concat(vmTableWidth, "px");
838
853
  }
839
854
  reactData.scrollXWidth = viewTableWidth;
840
- return Promise.all([updateTaskChart($xeGanttView), $xeGantt.handleUpdateTaskLink ? $xeGantt.handleUpdateTaskLink($xeGanttView) : null]);
855
+ return Promise.all([updateTaskChart($xeGanttView), $xeGantt.handleUpdateTaskLinkStyle ? $xeGantt.handleUpdateTaskLinkStyle($xeGanttView) : null]);
841
856
  }
842
857
  function handleRecalculateStyle($xeGanttView) {
843
858
  var internalData = $xeGanttView.internalData;
@@ -1014,10 +1029,15 @@ function updateScrollXSpace($xeGanttView) {
1014
1029
  if (scrollXSpaceEl) {
1015
1030
  scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
1016
1031
  }
1017
- var lineWrapper = (0, _util.getRefElem)(elemStore['main-chart-line-wrapper']);
1018
- var svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
1019
- if (svgElem) {
1020
- svgElem.style.width = "".concat(scrollXWidth, "px");
1032
+ var beforeWrapper = (0, _util.getRefElem)(elemStore['main-chart-before-wrapper']);
1033
+ var beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1034
+ if (beforeSvgElem) {
1035
+ beforeSvgElem.style.width = "".concat(scrollXWidth, "px");
1036
+ }
1037
+ var afterWrapper = (0, _util.getRefElem)(elemStore['main-chart-after-wrapper']);
1038
+ var afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1039
+ if (afterSvgElem) {
1040
+ afterSvgElem.style.width = "".concat(scrollXWidth, "px");
1021
1041
  }
1022
1042
  calcScrollbar($xeGanttView);
1023
1043
  return $xeGanttView.$nextTick();
@@ -1076,10 +1096,15 @@ function updateScrollYSpace($xeGanttView) {
1076
1096
  if (scrollYSpaceEl) {
1077
1097
  scrollYSpaceEl.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1078
1098
  }
1079
- var lineWrapper = (0, _util.getRefElem)(elemStore['main-chart-line-wrapper']);
1080
- var svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
1081
- if (svgElem) {
1082
- svgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1099
+ var beforeWrapper = (0, _util.getRefElem)(elemStore['main-chart-before-wrapper']);
1100
+ var beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1101
+ if (beforeSvgElem) {
1102
+ beforeSvgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1103
+ }
1104
+ var afterWrapper = (0, _util.getRefElem)(elemStore['main-chart-after-wrapper']);
1105
+ var afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1106
+ if (afterSvgElem) {
1107
+ afterSvgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1083
1108
  }
1084
1109
  reactData.scrollYTop = scrollYTop;
1085
1110
  reactData.scrollYHeight = scrollYHeight;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_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}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,n,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(o.push(l.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(n=a.return(),Object(n)!==n))return}finally{if(s)throw r}}return o}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var 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}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),a=new Date,l=_slicedToArray(_xeUtils.default.toDateString(a,"yyyy-M-d-H-m-s").split("-"),6),r=l[0],i=l[1],n=l[2],o=l[3],c=l[4],l=l[5],s=a.getDay()+1,d=Math.ceil((a.getMonth()+1)/3),a=_xeUtils.default.getYearWeek(a,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(i),week:"".concat(r,"_W").concat(a),day:"".concat(r,"_").concat(i,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(n),hour:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o),minute:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,n=[],o=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d="week"===i.type,u=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},f=0;f<r.length;f++){var h=r[f],m=_slicedToArray(_xeUtils.default.toDateString(h,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),y=m[0],g=m[1],p=m[2],S=m[3],x=m[4],v=m[5],_=m[6],D=m[7],T=m[8],b=m[9],w=m[10],m=m[11],M=h.getDay(),E=M+1,U=Math.ceil((h.getMonth()+1)/3),W="".concat(_xeUtils.default.getYearWeek(h,l?l.startDay:void 0)),L=_xeUtils.default.padStart(W,2,"0"),H=g,h={date:h,yy:y,yyyy:g="1"===W&&"12"===S&&(H="".concat(Number(g)+1),d)?H:g,M:p,MM:S,d:x,dd:v,H:_,HH:D,m:T,mm:b,s:w,ss:m,q:U,W:W,WW:L,E:E,e:M},y={year:{field:g,title:g,dateObj:h},quarter:{field:"".concat(g,"_q").concat(U),title:"".concat(U),dateObj:h},month:{field:"".concat(g,"_").concat(S),title:S,dateObj:h},week:{field:"".concat(H,"_W").concat(W),title:"".concat(W),dateObj:h},day:{field:"".concat(g,"_").concat(S,"_").concat(v,"_E").concat(E),title:"".concat(E),dateObj:h},date:{field:"".concat(g,"_").concat(S,"_").concat(v),title:v,dateObj:h},hour:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(D),title:D,dateObj:h},minute:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(D,"_").concat(b),title:b,dateObj:h},second:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(D,"_").concat(b,"_").concat(m),title:m,dateObj:h}},p=y[i.type];i.level<19&&u("year",y,p),i.level<17&&u("quarter",y,p),i.level<15&&u("month",y,p),i.level<13&&u("week",y,p),i.level<11&&u("day",y,p),i.level<9&&u("date",y,p),i.level<7&&u("hour",y,p),i.level<5&&u("minute",y,p),i.level<3&&u("second",y,p),n.push(p)}a.forEach(function(e){var t;e.type===i.type?o.push({scaleItem:e,columns:n}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),o.push({scaleItem:e,columns:t}))})}return{fullCols:n,groupCols:o}}function createChartRender(o,e){var t=o.$xeGantt,r=o.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e="".concat(e.yyyy,"-").concat(e.W);f[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:c?c.startDay:void 0}),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:c?c.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),n=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l+1}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(m[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(m[r]||0)-t+l}};case"minute":var y={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");y[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(y[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(y[r]||0)-t+l}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,n,o,t,a,l,c,s,d,u,f,h=e.$xeGantt,m=e.reactData,y=e.internalData,g=h.treeConfig,p=m.minViewDate,S=m.maxViewDate,x=handleColumnHeader(e),v=x.fullCols,x=x.groupCols;p&&S&&(r=y.xeTable)&&(i=h.computeStartField,n=h.computeEndField,o=h.computeTypeField,p=r.isRowGroupStatus,S=r.afterFullData,h=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,c=(l=r.computeTreeOpts).transform,s=l.children||l.childrenField,d={},u=createChartRender(e,v),f=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,n);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,o))&&(l=a=a||l),a&&l&&(l=(a=u(a,l)).offsetLeftSize,d[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},p?(p=a.mapChildrenField)&&_xeUtils.default.eachTree(t,f,{children:p}):g?_xeUtils.default.eachTree(h,f,{children:c?l.mapChildrenField:s}):S.forEach(f),y.chartMaps=d),y.visibleColumn=v,m.headerGroups=x,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(l){var r,i,n,e,t,a,o,c,s,d,u=l.$xeGantt,f=l.reactData,h=l.internalData,m=u.treeConfig,y=h.scrollXStore,g=h.xeTable,p=null,S=null;g&&(r=u.computeStartField,i=u.computeEndField,n=u.computeTypeField,u=g.isRowGroupStatus,e=g.afterFullData,t=g.afterTreeFullData,a=g.computeAggregateOpts,c=(o=g.computeTreeOpts).transform,s=o.children||o.childrenField,d=function(e){var t=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i),e=_xeUtils.default.get(e,n),t=t||a;!(0,_util.hasMilestoneTask)(e)&&a||(a=t),t&&(e=parseStringDate(l,t),!p||p.getTime()>e.getTime())&&(p=e),a&&(t=parseStringDate(l,a),!S||S.getTime()<t.getTime())&&(S=t)},u?(u=a.mapChildrenField)&&_xeUtils.default.eachTree(g.afterGroupFullData,d,{children:u}):m?_xeUtils.default.eachTree(t,d,{children:c?o.mapChildrenField:s}):e.forEach(d)),y.startIndex=0,y.endIndex=Math.max(1,y.visibleSize),f.minViewDate=p,f.maxViewDate=S,h.startMaps={},h.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,n&&(a.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),a.overflowX=e)}function updateTaskChart(e){var t=e.$xeGantt,a=e.internalData,t=t.internalData,l=a.xeTable,r=t.dragBarRow,i=e.reactData.viewCellWidth,n=a.chartMaps,t=(0,_util.getRefElem)(a.elemStore["main-chart-task-wrapper"]);return t&&l&&_xeUtils.default.arrayEach(t.children,function(e){var t=e.children[0];t&&(e=e.getAttribute("rowid"),r&&l.getRowid(r)===e||(e=e?n[e]:null,t.style.left="".concat((0,_util.getTaskBarLeft)(e,i),"px"),(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width="".concat((0,_util.getTaskBarWidth)(e,i),"px")))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,n,o,c,s=e.$xeGantt,d=e.reactData,u=e.internalData,f=d.scrollbarWidth,h=d.scrollbarHeight,m=d.headerGroups,y=d.tableColumn,g=u.elemStore,p=u.visibleColumn,u=u.xeTable,S=e.$refs.refElem;if(S&&s)return r=s.computeScrollbarOpts,n=s.computeScrollbarXToTop,i=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,c=e.$refs.refScrollXVirtualElem,f=f,h=h,l=a=t=0,u&&(t=u.tBodyHeight,a=u.tHeaderHeight,l=u.tFooterHeight),u="visible",(s.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(f=0,u="hidden"),(r=(0,_util.getRefElem)(g["main-header-scroll"]))&&(r.style.height="".concat(a,"px"),r.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(g["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(m=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(m.style.height="".concat(l,"px")),c&&(c.style.height="".concat(h,"px"),c.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(f,"px"):"",m.style.width="".concat(S.clientWidth-f,"px")),i&&(i.style.width=n?"".concat(f,"px"):"",i.style.display=n&&h?"block":""),o&&(o.style.width=n?"":"".concat(f,"px"),o.style.display=!n&&h?"block":""),(c=e.$refs.refScrollYVirtualElem)&&(c.style.width="".concat(f,"px"),c.style.height="".concat(t+a+l,"px"),c.style.visibility=u),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(a,"px"),m.style.display=a?"block":""),(S=e.$refs.refScrollYWrapperElem)&&(S.style.height="".concat(t,"px"),S.style.top="".concat(a,"px")),(i=e.$refs.refScrollYBottomCornerElem)&&(i.style.height="".concat(l,"px"),i.style.top="".concat(a+t,"px"),i.style.display=l?"block":""),o=40,h=o=(n=e.$refs.refColInfoElem)?n.clientWidth||40:o,p.length&&(h=Math.max(0,o*p.length),r)&&0<(c=(f=r.clientWidth)-h)&&(o+=Math.max(0,c/p.length),h=f),d.viewCellWidth=o,u=(0,_util.getRefElem)(g["main-header-table"]),m=(0,_util.getRefElem)(g["main-body-table"]),S=o*y.length,u&&(u.style.width="".concat(h,"px")),m&&(m.style.width="".concat(S,"px")),d.scrollXWidth=h,Promise.all([updateTaskChart(e),s.handleUpdateTaskLink?s.handleUpdateTaskLink(e):null])}function handleRecalculateStyle(e){var t=e.internalData,a=e.$xeGantt,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth&&a?(calcScrollbar(e),updateStyle(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var n=i.internalData;return new Promise(function(e){var t=n.rceTimeout,a=n.rceRunTime,l=n.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,n=a.offsetSize,o=handleVirtualXVisible(e),c=o.toVisibleIndex,o=o.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-n-l),endIndex:t?c+o:c+o+n+l},n=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+o+1,t.startIndex),l=t.endIndex;!(c<=r||i-o-1<=c)||r===n&&i===l||(a.startIndex=n,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,n=a.elemStore,a=a.scrollXStore,o=(0,_util.getRefElem)(n["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),o&&(o.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem),i=(a&&(a.style.width="".concat(r,"px")),(0,_util.getRefElem)(n["main-chart-line-wrapper"])),o=i?i.firstElementChild:null;return o&&(o.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,n=(0,_util.getRefElem)(i["main-body-scroll"]),o=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&o&&n.scrollTop+f>=maxYHeight?maxYHeight-o.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-task-wrapper"])),c=(o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem),l=(f&&(f.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-line-wrapper"])),r=l?l.firstElementChild:null;return r&&(r.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,n=e.internalData;a&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var n,o,c,s,d,u,f,h,m,y,g,p,S=e.$xeGantt,x=e.internalData,v=x.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&v&&(n=D.clientHeight,o=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=p=!1,l&&(g=v.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+o),x.lastScrollLeft<i?(d="right",_-g<=i+o&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=v.computeScrollYThreshold,(p=r<=0)||(c=D-1<=r+n),x.lastScrollTop<r?(d="bottom",D-g<=r+n&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),v={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:n,bodyWidth:o,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:p,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&S.dispatchEvent("scroll-boundary",v,t),S.dispatchEvent("scroll",v,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{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},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,t=e.computeTaskViewOpts,r=e.computeMinScale,e=t.gridding,t=r.type,i=r.startDay,n=[];if(a&&l){var o=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),c=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(t){case"year":for(var s=_xeUtils.default.getWhatYear(a,o,"first"),d=_xeUtils.default.getWhatYear(l,c,"first");s<=d;){var u=s;n.push(u),s=_xeUtils.default.getWhatYear(s,1)}break;case"quarter":for(var f=_xeUtils.default.getWhatQuarter(a,o,"first"),h=_xeUtils.default.getWhatQuarter(l,c,"first");f<=h;){var m=f;n.push(m),f=_xeUtils.default.getWhatQuarter(f,1)}break;case"month":for(var y=_xeUtils.default.getWhatMonth(a,o,"first"),g=_xeUtils.default.getWhatMonth(l,c,"first");y<=g;){var p=y;n.push(p),y=_xeUtils.default.getWhatMonth(y,1)}break;case"week":for(var S=_xeUtils.default.getWhatWeek(a,o,i,i),x=_xeUtils.default.getWhatWeek(l,c,i,i);S<=x;){var v=S;n.push(v),S=_xeUtils.default.getWhatWeek(S,1)}break;case"day":case"date":for(var _=_xeUtils.default.getWhatDay(a,o,"first"),D=_xeUtils.default.getWhatDay(l,c,"first");_<=D;){var T=_;n.push(T),_=_xeUtils.default.getWhatDay(_,1)}break;case"hour":case"minute":case"second":for(var b=+(0,_util.getStandardGapTime)(r.type),w=a.getTime()+o*b,M=l.getTime()+c*b;w<=M;){var E=new Date(w);n.push(E),w+=b}}}return n}}),methods:{refreshData:function(){var t=this,a=t.internalData;return handleUpdateData(t),handleRecalculateStyle(t),t.$nextTick().then(function(){var e=a.xeTable;if(handleRecalculateStyle(t),e)return e.recalculate()})},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,n=this,o=n.reactData,c=n.internalData,o=o.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=n.$refs.refScrollXHandleElem,l=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(n,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),o)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,n=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(n,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_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}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,n,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(o.push(l.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(n=a.return(),Object(n)!==n))return}finally{if(s)throw r}}return o}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var 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}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),a=new Date,l=_slicedToArray(_xeUtils.default.toDateString(a,"yyyy-M-d-H-m-s").split("-"),6),r=l[0],i=l[1],n=l[2],o=l[3],c=l[4],l=l[5],s=a.getDay()+1,d=Math.ceil((a.getMonth()+1)/3),a=_xeUtils.default.getYearWeek(a,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(i),week:"".concat(r,"_W").concat(a),day:"".concat(r,"_").concat(i,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(n),hour:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o),minute:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,n=[],o=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d="week"===i.type,u=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},f=0;f<r.length;f++){var h=r[f],m=_slicedToArray(_xeUtils.default.toDateString(h,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),y=m[0],g=m[1],p=m[2],S=m[3],x=m[4],v=m[5],_=m[6],T=m[7],D=m[8],b=m[9],w=m[10],m=m[11],M=h.getDay(),E=M+1,W=Math.ceil((h.getMonth()+1)/3),U="".concat(_xeUtils.default.getYearWeek(h,l?l.startDay:void 0)),k=_xeUtils.default.padStart(U,2,"0"),h={date:h,yy:y,yyyy:g=d&&checkWeekOfsetYear(U,p)?"".concat(Number(g)+1):g,M:p,MM:S,d:x,dd:v,H:_,HH:T,m:D,mm:b,s:w,ss:m,q:W,W:U,WW:k,E:E,e:M},y={year:{field:g,title:g,dateObj:h},quarter:{field:"".concat(g,"_q").concat(W),title:"".concat(W),dateObj:h},month:{field:"".concat(g,"_").concat(S),title:S,dateObj:h},week:{field:"".concat(g,"_W").concat(U),title:"".concat(U),dateObj:h},day:{field:"".concat(g,"_").concat(S,"_").concat(v,"_E").concat(E),title:"".concat(E),dateObj:h},date:{field:"".concat(g,"_").concat(S,"_").concat(v),title:v,dateObj:h},hour:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(T),title:T,dateObj:h},minute:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(T,"_").concat(b),title:b,dateObj:h},second:{field:"".concat(g,"_").concat(S,"_").concat(v,"_").concat(T,"_").concat(b,"_").concat(m),title:m,dateObj:h}},p=y[i.type];i.level<19&&u("year",y,p),i.level<17&&u("quarter",y,p),i.level<15&&u("month",y,p),i.level<13&&u("week",y,p),i.level<11&&u("day",y,p),i.level<9&&u("date",y,p),i.level<7&&u("hour",y,p),i.level<5&&u("minute",y,p),i.level<3&&u("second",y,p),n.push(p)}a.forEach(function(e){var t;e.type===i.type?o.push({scaleItem:e,columns:n}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),o.push({scaleItem:e,columns:t}))})}return{fullCols:n,groupCols:o}}function checkWeekOfsetYear(e,t){return"1"==="".concat(e)&&"12"==="".concat(t)}function parseWeekObj(e,t){var e=_xeUtils.default.toStringDate(e),a=e.getFullYear(),l=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return checkWeekOfsetYear(e,l+1)&&a++,{yyyy:a,W:e}}function createChartRender(o,e){var t=o.$xeGantt,r=o.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e="".concat(e.yyyy,"-").concat(e.W);f[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=parseWeekObj(e,c?c.startDay:void 0),a="".concat(a.yyyy,"-").concat(a.W),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=parseWeekObj(t,c?c.startDay:void 0),r="".concat(r.yyyy,"-").concat(r.W),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),n=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l+1}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(m[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(m[r]||0)-t+l}};case"minute":var y={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");y[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(y[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(y[r]||0)-t+l}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,n,o,t,a,l,c,s,d,u,f,h=e.$xeGantt,m=e.reactData,y=e.internalData,g=h.treeConfig,p=m.minViewDate,S=m.maxViewDate,x=handleColumnHeader(e),v=x.fullCols,x=x.groupCols;p&&S&&(r=y.xeTable)&&(i=h.computeStartField,n=h.computeEndField,o=h.computeTypeField,p=r.isRowGroupStatus,S=r.afterFullData,h=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,c=(l=r.computeTreeOpts).transform,s=l.children||l.childrenField,d={},u=createChartRender(e,v),f=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,n);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,o))&&(l=a=a||l),a&&l&&(l=(a=u(a,l)).offsetLeftSize,d[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},p?(p=a.mapChildrenField)&&_xeUtils.default.eachTree(t,f,{children:p}):g?_xeUtils.default.eachTree(h,f,{children:c?l.mapChildrenField:s}):S.forEach(f),y.chartMaps=d),y.visibleColumn=v,m.headerGroups=x,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(l){var r,i,n,e,t,a,o,c,s,d,u=l.$xeGantt,f=l.reactData,h=l.internalData,m=u.treeConfig,y=h.scrollXStore,g=h.xeTable,p=null,S=null;g&&(r=u.computeStartField,i=u.computeEndField,n=u.computeTypeField,u=g.isRowGroupStatus,e=g.afterFullData,t=g.afterTreeFullData,a=g.computeAggregateOpts,c=(o=g.computeTreeOpts).transform,s=o.children||o.childrenField,d=function(e){var t=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i),e=_xeUtils.default.get(e,n),t=t||a;!(0,_util.hasMilestoneTask)(e)&&a||(a=t),t&&(e=parseStringDate(l,t),!p||p.getTime()>e.getTime())&&(p=e),a&&(t=parseStringDate(l,a),!S||S.getTime()<t.getTime())&&(S=t)},u?(u=a.mapChildrenField)&&_xeUtils.default.eachTree(g.afterGroupFullData,d,{children:u}):m?_xeUtils.default.eachTree(t,d,{children:c?o.mapChildrenField:s}):e.forEach(d)),y.startIndex=0,y.endIndex=Math.max(1,y.visibleSize),f.minViewDate=p,f.maxViewDate=S,h.startMaps={},h.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,n&&(a.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),a.overflowX=e)}function updateTaskChart(e){var t=e.$xeGantt,a=e.internalData,t=t.internalData,l=a.xeTable,r=t.dragBarRow,i=e.reactData.viewCellWidth,n=a.chartMaps,t=(0,_util.getRefElem)(a.elemStore["main-chart-task-wrapper"]);return t&&l&&_xeUtils.default.arrayEach(t.children,function(e){var t=e.children[0];t&&(e=e.getAttribute("rowid"),r&&l.getRowid(r)===e||(e=e?n[e]:null,t.style.left="".concat((0,_util.getTaskBarLeft)(e,i),"px"),(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width="".concat((0,_util.getTaskBarWidth)(e,i),"px")))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,n,o,c,s=e.$xeGantt,d=e.reactData,u=e.internalData,f=d.scrollbarWidth,h=d.scrollbarHeight,m=d.headerGroups,y=d.tableColumn,g=u.elemStore,p=u.visibleColumn,u=u.xeTable,S=e.$refs.refElem;if(S&&s)return r=s.computeScrollbarOpts,n=s.computeScrollbarXToTop,i=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,c=e.$refs.refScrollXVirtualElem,f=f,h=h,l=a=t=0,u&&(t=u.tBodyHeight,a=u.tHeaderHeight,l=u.tFooterHeight),u="visible",(s.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(f=0,u="hidden"),(r=(0,_util.getRefElem)(g["main-header-scroll"]))&&(r.style.height="".concat(a,"px"),r.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(g["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(m=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(m.style.height="".concat(l,"px")),c&&(c.style.height="".concat(h,"px"),c.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(f,"px"):"",m.style.width="".concat(S.clientWidth-f,"px")),i&&(i.style.width=n?"".concat(f,"px"):"",i.style.display=n&&h?"block":""),o&&(o.style.width=n?"":"".concat(f,"px"),o.style.display=!n&&h?"block":""),(c=e.$refs.refScrollYVirtualElem)&&(c.style.width="".concat(f,"px"),c.style.height="".concat(t+a+l,"px"),c.style.visibility=u),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(a,"px"),m.style.display=a?"block":""),(S=e.$refs.refScrollYWrapperElem)&&(S.style.height="".concat(t,"px"),S.style.top="".concat(a,"px")),(i=e.$refs.refScrollYBottomCornerElem)&&(i.style.height="".concat(l,"px"),i.style.top="".concat(a+t,"px"),i.style.display=l?"block":""),o=40,h=o=(n=e.$refs.refColInfoElem)?n.clientWidth||40:o,p.length&&(h=Math.max(0,o*p.length),r)&&0<(c=(f=r.clientWidth)-h)&&(o+=Math.max(0,c/p.length),h=f),d.viewCellWidth=o,u=(0,_util.getRefElem)(g["main-header-table"]),m=(0,_util.getRefElem)(g["main-body-table"]),S=o*y.length,u&&(u.style.width="".concat(h,"px")),m&&(m.style.width="".concat(S,"px")),d.scrollXWidth=h,Promise.all([updateTaskChart(e),s.handleUpdateTaskLinkStyle?s.handleUpdateTaskLinkStyle(e):null])}function handleRecalculateStyle(e){var t=e.internalData,a=e.$xeGantt,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth&&a?(calcScrollbar(e),updateStyle(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var n=i.internalData;return new Promise(function(e){var t=n.rceTimeout,a=n.rceRunTime,l=n.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,n=a.offsetSize,o=handleVirtualXVisible(e),c=o.toVisibleIndex,o=o.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-n-l),endIndex:t?c+o:c+o+n+l},n=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+o+1,t.startIndex),l=t.endIndex;!(c<=r||i-o-1<=c)||r===n&&i===l||(a.startIndex=n,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,n=a.elemStore,a=a.scrollXStore,o=(0,_util.getRefElem)(n["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),o&&(o.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem),i=(a&&(a.style.width="".concat(r,"px")),(0,_util.getRefElem)(n["main-chart-before-wrapper"])),o=i?i.firstElementChild:null,c=(o&&(o.style.width="".concat(r,"px")),(0,_util.getRefElem)(n["main-chart-after-wrapper"])),t=c?c.firstElementChild:null;return t&&(t.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,n=(0,_util.getRefElem)(i["main-body-scroll"]),o=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&o&&n.scrollTop+f>=maxYHeight?maxYHeight-o.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-task-wrapper"])),c=(o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem),l=(f&&(f.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-before-wrapper"])),r=l?l.firstElementChild:null,o=(r&&(r.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-after-wrapper"])),n=o?o.firstElementChild:null;return n&&(n.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,n=e.internalData;a&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var n,o,c,s,d,u,f,h,m,y,g,p,S=e.$xeGantt,x=e.internalData,v=x.xeTable,_=e.$refs.refScrollXHandleElem,T=e.$refs.refScrollYHandleElem;_&&T&&v&&(n=T.clientHeight,o=_.clientWidth,T=T.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=p=!1,l&&(g=v.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+o),x.lastScrollLeft<i?(d="right",_-g<=i+o&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=v.computeScrollYThreshold,(p=r<=0)||(c=T-1<=r+n),x.lastScrollTop<r?(d="bottom",T-g<=r+n&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),v={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:n,bodyWidth:o,scrollHeight:T,scrollWidth:_,isX:l,isY:a,isTop:p,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&S.dispatchEvent("scroll-boundary",v,t),S.dispatchEvent("scroll",v,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{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},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,t=e.computeTaskViewOpts,r=e.computeMinScale,e=t.gridding,t=r.type,i=r.startDay,n=[];if(a&&l){var o=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),c=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(t){case"year":for(var s=_xeUtils.default.getWhatYear(a,o,"first"),d=_xeUtils.default.getWhatYear(l,c,"first");s<=d;){var u=s;n.push(u),s=_xeUtils.default.getWhatYear(s,1)}break;case"quarter":for(var f=_xeUtils.default.getWhatQuarter(a,o,"first"),h=_xeUtils.default.getWhatQuarter(l,c,"first");f<=h;){var m=f;n.push(m),f=_xeUtils.default.getWhatQuarter(f,1)}break;case"month":for(var y=_xeUtils.default.getWhatMonth(a,o,"first"),g=_xeUtils.default.getWhatMonth(l,c,"first");y<=g;){var p=y;n.push(p),y=_xeUtils.default.getWhatMonth(y,1)}break;case"week":for(var S=_xeUtils.default.getWhatWeek(a,o,i,i),x=_xeUtils.default.getWhatWeek(l,c,i,i);S<=x;){var v=S;n.push(v),S=_xeUtils.default.getWhatWeek(S,1)}break;case"day":case"date":for(var _=_xeUtils.default.getWhatDay(a,o,"first"),T=_xeUtils.default.getWhatDay(l,c,"first");_<=T;){var D=_;n.push(D),_=_xeUtils.default.getWhatDay(_,1)}break;case"hour":case"minute":case"second":for(var b=+(0,_util.getStandardGapTime)(r.type),w=a.getTime()+o*b,M=l.getTime()+c*b;w<=M;){var E=new Date(w);n.push(E),w+=b}}}return n}}),methods:{refreshData:function(){var t=this,a=t.internalData;return handleUpdateData(t),handleRecalculateStyle(t),t.$nextTick().then(function(){var e=a.xeTable;if(handleRecalculateStyle(t),e)return e.recalculate()})},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,n=this,o=n.reactData,c=n.internalData,o=o.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=n.$refs.refScrollXHandleElem,l=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(n,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),o)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,n=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(n,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});