vxe-gantt 3.0.27 → 3.1.1

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.
@@ -21,6 +21,8 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
21
21
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
22
  var globalEvents = _core.VxeUI.globalEvents;
23
23
  var sourceType = 'gantt';
24
+ var minuteMs = 1000 * 60;
25
+ var dayMs = minuteMs * 60 * 24;
24
26
  function createInternalData() {
25
27
  return {
26
28
  xeTable: null,
@@ -86,43 +88,17 @@ function updateTodayData($xeGanttView) {
86
88
  second: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm, "_").concat(ss)
87
89
  };
88
90
  }
89
- function handleParseColumn($xeGanttView) {
91
+ function handleColumnHeader($xeGanttView) {
90
92
  var $xeGantt = $xeGanttView.$xeGantt;
91
- var reactData = $xeGanttView.reactData;
92
- var internalData = $xeGanttView.internalData;
93
- var ganttProps = $xeGantt;
94
93
  var ganttReactData = $xeGantt.reactData;
95
- var treeConfig = ganttProps.treeConfig;
96
94
  var taskScaleList = ganttReactData.taskScaleList;
97
- var minViewDate = reactData.minViewDate,
98
- maxViewDate = reactData.maxViewDate;
99
- var minScale = _xeUtils.default.last(taskScaleList);
95
+ var scaleUnit = $xeGantt.computeScaleUnit;
96
+ var minScale = $xeGantt.computeMinScale;
97
+ var weekScale = $xeGantt.computeWeekScale;
98
+ var scaleDateList = $xeGanttView.computeScaleDateList;
100
99
  var fullCols = [];
101
100
  var groupCols = [];
102
- if (minScale && minViewDate && maxViewDate) {
103
- var minSType = minScale.type;
104
- var weekScale = taskScaleList.find(function (item) {
105
- return item.type === 'week';
106
- });
107
- var gapTime = 1000 * 60 * 60 * 24;
108
- switch (minScale.type) {
109
- case 'hour':
110
- gapTime = 1000 * 60 * 60;
111
- break;
112
- case 'minute':
113
- gapTime = 1000 * 60;
114
- break;
115
- case 'second':
116
- gapTime = 1000;
117
- break;
118
- default:
119
- {
120
- break;
121
- }
122
- }
123
- var currTime = minViewDate.getTime();
124
- var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
125
- var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
101
+ if (minScale && scaleUnit && scaleDateList.length) {
126
102
  var renderListMaps = {
127
103
  year: [],
128
104
  quarter: [],
@@ -146,7 +122,7 @@ function handleParseColumn($xeGanttView) {
146
122
  second: {}
147
123
  };
148
124
  var handleData = function handleData(type, colMaps, minCol) {
149
- if (minSType === type) {
125
+ if (minScale.type === type) {
150
126
  return;
151
127
  }
152
128
  var currCol = colMaps[type];
@@ -164,8 +140,8 @@ function handleParseColumn($xeGanttView) {
164
140
  currGpCol.children.push(minCol);
165
141
  }
166
142
  };
167
- for (var i = 0; i < countSize; i++) {
168
- var itemDate = new Date(currTime + i * gapTime);
143
+ for (var i = 0; i < scaleDateList.length; i++) {
144
+ var itemDate = scaleDateList[i];
169
145
  var _XEUtils$toDateString3 = _xeUtils.default.toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-'),
170
146
  _XEUtils$toDateString4 = _slicedToArray(_XEUtils$toDateString3, 6),
171
147
  yyyy = _XEUtils$toDateString4[0],
@@ -179,6 +155,7 @@ function handleParseColumn($xeGanttView) {
179
155
  var q = Math.ceil((itemDate.getMonth() + 1) / 3);
180
156
  var W = _xeUtils.default.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined);
181
157
  var dateObj = {
158
+ date: itemDate,
182
159
  yy: yyyy,
183
160
  M: MM,
184
161
  d: dd,
@@ -237,14 +214,14 @@ function handleParseColumn($xeGanttView) {
237
214
  dateObj: dateObj
238
215
  }
239
216
  };
240
- var minCol = colMaps[minSType];
217
+ var minCol = colMaps[minScale.type];
241
218
  if (minScale.level < 19) {
242
219
  handleData('year', colMaps, minCol);
243
220
  }
244
221
  if (minScale.level < 17) {
245
222
  handleData('quarter', colMaps, minCol);
246
223
  }
247
- if (minScale.level < 14) {
224
+ if (minScale.level < 15) {
248
225
  handleData('month', colMaps, minCol);
249
226
  }
250
227
  if (minScale.level < 13) {
@@ -253,7 +230,7 @@ function handleParseColumn($xeGanttView) {
253
230
  if (minScale.level < 11) {
254
231
  handleData('day', colMaps, minCol);
255
232
  }
256
- if (minScale.level < 12) {
233
+ if (minScale.level < 9) {
257
234
  handleData('date', colMaps, minCol);
258
235
  }
259
236
  if (minScale.level < 7) {
@@ -262,10 +239,13 @@ function handleParseColumn($xeGanttView) {
262
239
  if (minScale.level < 5) {
263
240
  handleData('minute', colMaps, minCol);
264
241
  }
242
+ if (minScale.level < 3) {
243
+ handleData('second', colMaps, minCol);
244
+ }
265
245
  fullCols.push(minCol);
266
246
  }
267
247
  taskScaleList.forEach(function (scaleItem) {
268
- if (scaleItem.type === minSType) {
248
+ if (scaleItem.type === minScale.type) {
269
249
  groupCols.push({
270
250
  scaleItem: scaleItem,
271
251
  columns: fullCols
@@ -284,6 +264,240 @@ function handleParseColumn($xeGanttView) {
284
264
  columns: list
285
265
  });
286
266
  });
267
+ }
268
+ return {
269
+ fullCols: fullCols,
270
+ groupCols: groupCols
271
+ };
272
+ }
273
+ function createChartRender($xeGanttView, fullCols) {
274
+ var $xeGantt = $xeGanttView.$xeGantt;
275
+ var reactData = $xeGanttView.reactData;
276
+ var minViewDate = reactData.minViewDate;
277
+ var minScale = $xeGantt.computeMinScale;
278
+ var scaleUnit = $xeGantt.computeScaleUnit;
279
+ var weekScale = $xeGantt.computeWeekScale;
280
+ switch (scaleUnit) {
281
+ case 'year':
282
+ {
283
+ var indexMaps = {};
284
+ fullCols.forEach(function (_ref, i) {
285
+ var dateObj = _ref.dateObj;
286
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy');
287
+ indexMaps[yyyyMM] = i;
288
+ });
289
+ return function (startValue, endValue) {
290
+ var startDate = parseStringDate($xeGanttView, startValue);
291
+ var endDate = parseStringDate($xeGanttView, endValue);
292
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy');
293
+ var startFirstDate = _xeUtils.default.getWhatYear(startDate, 0, 'first');
294
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy');
295
+ var endFirstDate = _xeUtils.default.getWhatYear(endDate, 0, 'first');
296
+ var dateSize = Math.floor((_xeUtils.default.getWhatYear(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
297
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
298
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
299
+ var offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
300
+ return {
301
+ offsetLeftSize: offsetLeftSize,
302
+ offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
303
+ };
304
+ };
305
+ }
306
+ case 'quarter':
307
+ {
308
+ var _indexMaps = {};
309
+ fullCols.forEach(function (_ref2, i) {
310
+ var dateObj = _ref2.dateObj;
311
+ var q = _xeUtils.default.toDateString(dateObj.date, 'yyyy-q');
312
+ _indexMaps[q] = i;
313
+ });
314
+ return function (startValue, endValue) {
315
+ var startDate = parseStringDate($xeGanttView, startValue);
316
+ var endDate = parseStringDate($xeGanttView, endValue);
317
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-q');
318
+ var startFirstDate = _xeUtils.default.getWhatQuarter(startDate, 0, 'first');
319
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-q');
320
+ var endFirstDate = _xeUtils.default.getWhatQuarter(endDate, 0, 'first');
321
+ var dateSize = Math.floor((_xeUtils.default.getWhatQuarter(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
322
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
323
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
324
+ var offsetLeftSize = (_indexMaps[startStr] || 0) + subtract;
325
+ return {
326
+ offsetLeftSize: offsetLeftSize,
327
+ offsetWidthSize: (_indexMaps[endStr] || 0) - offsetLeftSize + addSize
328
+ };
329
+ };
330
+ }
331
+ case 'month':
332
+ {
333
+ var _indexMaps2 = {};
334
+ fullCols.forEach(function (_ref3, i) {
335
+ var dateObj = _ref3.dateObj;
336
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM');
337
+ _indexMaps2[yyyyMM] = i;
338
+ });
339
+ return function (startValue, endValue) {
340
+ var startDate = parseStringDate($xeGanttView, startValue);
341
+ var endDate = parseStringDate($xeGanttView, endValue);
342
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM');
343
+ var startFirstDate = _xeUtils.default.getWhatMonth(startDate, 0, 'first');
344
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM');
345
+ var endFirstDate = _xeUtils.default.getWhatMonth(endDate, 0, 'first');
346
+ var dateSize = Math.floor((_xeUtils.default.getWhatMonth(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
347
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
348
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
349
+ var offsetLeftSize = (_indexMaps2[startStr] || 0) + subtract;
350
+ return {
351
+ offsetLeftSize: offsetLeftSize,
352
+ offsetWidthSize: (_indexMaps2[endStr] || 0) - offsetLeftSize + addSize
353
+ };
354
+ };
355
+ }
356
+ case 'week':
357
+ {
358
+ var _indexMaps3 = {};
359
+ fullCols.forEach(function (_ref4, i) {
360
+ var dateObj = _ref4.dateObj;
361
+ var yyyyW = _xeUtils.default.toDateString(dateObj.date, 'yyyy-W', {
362
+ firstDay: weekScale ? weekScale.startDay : undefined
363
+ });
364
+ _indexMaps3[yyyyW] = i;
365
+ });
366
+ return function (startValue, endValue) {
367
+ var startDate = parseStringDate($xeGanttView, startValue);
368
+ var endDate = parseStringDate($xeGanttView, endValue);
369
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-W', {
370
+ firstDay: weekScale ? weekScale.startDay : undefined
371
+ });
372
+ var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
373
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-W', {
374
+ firstDay: weekScale ? weekScale.startDay : undefined
375
+ });
376
+ var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
377
+ var dateSize = Math.floor((_xeUtils.default.getWhatWeek(endDate, 1, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined).getTime() - endFirstDate.getTime()) / dayMs);
378
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
379
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
380
+ var offsetLeftSize = (_indexMaps3[startStr] || 0) + subtract;
381
+ return {
382
+ offsetLeftSize: offsetLeftSize,
383
+ offsetWidthSize: (_indexMaps3[endStr] || 0) - offsetLeftSize + addSize
384
+ };
385
+ };
386
+ }
387
+ case 'day':
388
+ case 'date':
389
+ {
390
+ var _indexMaps4 = {};
391
+ fullCols.forEach(function (_ref5, i) {
392
+ var dateObj = _ref5.dateObj;
393
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd');
394
+ _indexMaps4[yyyyMM] = i;
395
+ });
396
+ return function (startValue, endValue) {
397
+ var startDate = parseStringDate($xeGanttView, startValue);
398
+ var endDate = parseStringDate($xeGanttView, endValue);
399
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd');
400
+ var startFirstDate = _xeUtils.default.getWhatDay(startDate, 0, 'first');
401
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd');
402
+ var endFirstDate = _xeUtils.default.getWhatDay(endDate, 0, 'first');
403
+ var minuteSize = Math.floor((_xeUtils.default.getWhatDay(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
404
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
405
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
406
+ var offsetLeftSize = (_indexMaps4[startStr] || 0) + subtract;
407
+ return {
408
+ offsetLeftSize: offsetLeftSize,
409
+ offsetWidthSize: (_indexMaps4[endStr] || 0) - offsetLeftSize + addSize
410
+ };
411
+ };
412
+ }
413
+ case 'hour':
414
+ {
415
+ var _indexMaps5 = {};
416
+ fullCols.forEach(function (_ref6, i) {
417
+ var dateObj = _ref6.dateObj;
418
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH');
419
+ _indexMaps5[yyyyMM] = i;
420
+ });
421
+ return function (startValue, endValue) {
422
+ var startDate = parseStringDate($xeGanttView, startValue);
423
+ var endDate = parseStringDate($xeGanttView, endValue);
424
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH');
425
+ var startFirstDate = _xeUtils.default.getWhatHours(startDate, 0, 'first');
426
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH');
427
+ var endFirstDate = _xeUtils.default.getWhatHours(endDate, 0, 'first');
428
+ var minuteSize = Math.floor((_xeUtils.default.getWhatHours(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
429
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
430
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
431
+ var offsetLeftSize = (_indexMaps5[startStr] || 0) + subtract;
432
+ return {
433
+ offsetLeftSize: offsetLeftSize,
434
+ offsetWidthSize: (_indexMaps5[endStr] || 0) - offsetLeftSize + addSize
435
+ };
436
+ };
437
+ }
438
+ case 'minute':
439
+ {
440
+ var _indexMaps6 = {};
441
+ fullCols.forEach(function (_ref7, i) {
442
+ var dateObj = _ref7.dateObj;
443
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH:mm');
444
+ _indexMaps6[yyyyMM] = i;
445
+ });
446
+ return function (startValue, endValue) {
447
+ var startDate = parseStringDate($xeGanttView, startValue);
448
+ var endDate = parseStringDate($xeGanttView, endValue);
449
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH:mm');
450
+ var startFirstDate = _xeUtils.default.getWhatMinutes(startDate, 0, 'first');
451
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH:mm');
452
+ var endFirstDate = _xeUtils.default.getWhatMinutes(endDate, 0, 'first');
453
+ var minuteSize = Math.floor((_xeUtils.default.getWhatMinutes(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
454
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
455
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
456
+ var offsetLeftSize = (_indexMaps6[startStr] || 0) + subtract;
457
+ return {
458
+ offsetLeftSize: offsetLeftSize,
459
+ offsetWidthSize: (_indexMaps6[endStr] || 0) - offsetLeftSize + addSize
460
+ };
461
+ };
462
+ }
463
+ case 'second':
464
+ {
465
+ var gapTime = (0, _util.getStandardGapTime)(minScale.type);
466
+ return function (startValue, endValue) {
467
+ var startDate = parseStringDate($xeGanttView, startValue);
468
+ var endDate = parseStringDate($xeGanttView, endValue);
469
+ var offsetLeftSize = 0;
470
+ var offsetWidthSize = 0;
471
+ if (minViewDate) {
472
+ offsetLeftSize = (startDate.getTime() - minViewDate.getTime()) / gapTime;
473
+ offsetWidthSize = (endDate.getTime() - startDate.getTime()) / gapTime + 1;
474
+ }
475
+ return {
476
+ offsetLeftSize: offsetLeftSize,
477
+ offsetWidthSize: offsetWidthSize
478
+ };
479
+ };
480
+ }
481
+ }
482
+ return function () {
483
+ return {
484
+ offsetLeftSize: 0,
485
+ offsetWidthSize: 0
486
+ };
487
+ };
488
+ }
489
+ function handleParseColumn($xeGanttView) {
490
+ var $xeGantt = $xeGanttView.$xeGantt;
491
+ var reactData = $xeGanttView.reactData;
492
+ var internalData = $xeGanttView.internalData;
493
+ var ganttProps = $xeGantt;
494
+ var treeConfig = ganttProps.treeConfig;
495
+ var minViewDate = reactData.minViewDate,
496
+ maxViewDate = reactData.maxViewDate;
497
+ var _handleColumnHeader = handleColumnHeader($xeGanttView),
498
+ fullCols = _handleColumnHeader.fullCols,
499
+ groupCols = _handleColumnHeader.groupCols;
500
+ if (minViewDate && maxViewDate) {
287
501
  var $xeTable = internalData.xeTable;
288
502
  if ($xeTable) {
289
503
  var startField = $xeGantt.computeStartField;
@@ -299,20 +513,20 @@ function handleParseColumn($xeGanttView) {
299
513
  var transform = treeOpts.transform;
300
514
  var childrenField = treeOpts.children || treeOpts.childrenField;
301
515
  var ctMaps = {};
516
+ var renderFn = createChartRender($xeGanttView, fullCols);
302
517
  var handleParseRender = function handleParseRender(row) {
303
518
  var rowid = $xeTable.getRowid(row);
304
519
  var startValue = _xeUtils.default.get(row, startField);
305
520
  var endValue = _xeUtils.default.get(row, endField);
306
521
  if (startValue && endValue) {
307
- var startDate = parseStringDate($xeGanttView, startValue);
308
- var endDate = parseStringDate($xeGanttView, endValue);
309
- var oLeftSize = Math.floor((startDate.getTime() - minViewDate.getTime()) / gapTime);
310
- var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / gapTime) + 1;
522
+ var _renderFn = renderFn(startValue, endValue),
523
+ offsetLeftSize = _renderFn.offsetLeftSize,
524
+ offsetWidthSize = _renderFn.offsetWidthSize;
311
525
  ctMaps[rowid] = {
312
526
  row: row,
313
527
  rowid: rowid,
314
- oLeftSize: oLeftSize,
315
- oWidthSize: oWidthSize
528
+ oLeftSize: offsetLeftSize,
529
+ oWidthSize: offsetWidthSize
316
530
  };
317
531
  }
318
532
  };
@@ -586,10 +800,10 @@ function _handleLazyRecalculate($xeGanttView) {
586
800
  var rceTimeout = internalData.rceTimeout,
587
801
  rceRunTime = internalData.rceRunTime;
588
802
  var $xeTable = internalData.xeTable;
589
- var refreshDelay = 50;
803
+ var refreshDelay = 30;
590
804
  if ($xeTable) {
591
805
  var resizeOpts = $xeTable.computeResizeOpts;
592
- refreshDelay = resizeOpts.refreshDelay || 50;
806
+ refreshDelay = resizeOpts.refreshDelay || refreshDelay;
593
807
  }
594
808
  if (rceTimeout) {
595
809
  clearTimeout(rceTimeout);
@@ -991,15 +1205,96 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
991
1205
  internalData: internalData
992
1206
  };
993
1207
  },
994
- computed: Object.assign({}, {}),
1208
+ computed: Object.assign(Object.assign({}, {}), {
1209
+ computeScaleDateList: function computeScaleDateList() {
1210
+ var $xeGanttView = this;
1211
+ var $xeGantt = $xeGanttView.$xeGantt;
1212
+ var reactData = $xeGanttView.reactData;
1213
+ var minViewDate = reactData.minViewDate,
1214
+ maxViewDate = reactData.maxViewDate;
1215
+ var minScale = $xeGantt.computeMinScale;
1216
+ var dateList = [];
1217
+ if (!minViewDate || !maxViewDate) {
1218
+ return dateList;
1219
+ }
1220
+ var startTime = minViewDate.getTime();
1221
+ var endTime = maxViewDate.getTime();
1222
+ switch (minScale.type) {
1223
+ case 'year':
1224
+ {
1225
+ var currDate = _xeUtils.default.getWhatYear(minViewDate, 0, 'first');
1226
+ while (currDate <= maxViewDate) {
1227
+ var itemDate = currDate;
1228
+ dateList.push(itemDate);
1229
+ currDate = _xeUtils.default.getWhatYear(currDate, 1);
1230
+ }
1231
+ break;
1232
+ }
1233
+ case 'quarter':
1234
+ {
1235
+ var _currDate = _xeUtils.default.getWhatQuarter(minViewDate, 0, 'first');
1236
+ while (_currDate <= maxViewDate) {
1237
+ var _itemDate = _currDate;
1238
+ dateList.push(_itemDate);
1239
+ _currDate = _xeUtils.default.getWhatQuarter(_currDate, 1);
1240
+ }
1241
+ break;
1242
+ }
1243
+ case 'month':
1244
+ {
1245
+ var _currDate2 = _xeUtils.default.getWhatMonth(minViewDate, 0, 'first');
1246
+ while (_currDate2 <= maxViewDate) {
1247
+ var _itemDate2 = _currDate2;
1248
+ dateList.push(_itemDate2);
1249
+ _currDate2 = _xeUtils.default.getWhatMonth(_currDate2, 1);
1250
+ }
1251
+ break;
1252
+ }
1253
+ case 'week':
1254
+ {
1255
+ var _currDate3 = _xeUtils.default.getWhatWeek(minViewDate, 0, minScale.startDay, minScale.startDay);
1256
+ while (_currDate3 <= maxViewDate) {
1257
+ var _itemDate3 = _currDate3;
1258
+ dateList.push(_itemDate3);
1259
+ _currDate3 = _xeUtils.default.getWhatWeek(_currDate3, 1);
1260
+ }
1261
+ break;
1262
+ }
1263
+ case 'day':
1264
+ case 'date':
1265
+ case 'hour':
1266
+ case 'minute':
1267
+ case 'second':
1268
+ {
1269
+ var gapTime = (0, _util.getStandardGapTime)(minScale.type);
1270
+ var currTime = startTime;
1271
+ while (currTime <= endTime) {
1272
+ var _itemDate4 = new Date(currTime);
1273
+ dateList.push(_itemDate4);
1274
+ currTime += gapTime;
1275
+ }
1276
+ break;
1277
+ }
1278
+ }
1279
+ return dateList;
1280
+ }
1281
+ }),
995
1282
  methods: {
996
1283
  //
997
1284
  // Method
998
1285
  //
999
1286
  refreshData: function refreshData() {
1000
1287
  var $xeGanttView = this;
1288
+ var internalData = $xeGanttView.internalData;
1001
1289
  handleUpdateData($xeGanttView);
1002
- return _handleLazyRecalculate($xeGanttView);
1290
+ handleRecalculateStyle($xeGanttView);
1291
+ return $xeGanttView.$nextTick().then(function () {
1292
+ var $xeTable = internalData.xeTable;
1293
+ handleRecalculateStyle($xeGanttView);
1294
+ if ($xeTable) {
1295
+ return $xeTable.recalculate();
1296
+ }
1297
+ });
1003
1298
  },
1004
1299
  updateViewData: function updateViewData() {
1005
1300
  var $xeGanttView = this;
@@ -1013,8 +1308,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1013
1308
  }
1014
1309
  return $xeGanttView.$nextTick();
1015
1310
  },
1016
- connectUpdate: function connectUpdate(_ref) {
1017
- var $table = _ref.$table;
1311
+ connectUpdate: function connectUpdate(_ref8) {
1312
+ var $table = _ref8.$table;
1018
1313
  var $xeGanttView = this;
1019
1314
  var internalData = $xeGanttView.internalData;
1020
1315
  if ($table) {
@@ -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 l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,a=Array(t);l<t;l++)a[l]=e[l];return a}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a,r,o,n,c=[],i=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;i=!1}else for(;!(i=(a=o.call(l)).done)&&(c.push(a.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw r}}return c}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt";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}),l=new Date,a=_slicedToArray(_xeUtils.default.toDateString(l,"yyyy-M-d-H-m-s").split("-"),6),r=a[0],o=a[1],n=a[2],c=a[3],i=a[4],a=a[5],s=l.getDay()+1,d=Math.ceil((l.getMonth()+1)/3),l=_xeUtils.default.getYearWeek(l,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(o),week:"".concat(r,"_W").concat(l),day:"".concat(r,"_").concat(o,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(o,"_").concat(n),hour:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c),minute:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i),second:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i,"_").concat(a)}}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,a=e.reactData,W=e.treeConfig,a=a.taskScaleList,n=t.minViewDate,r=t.maxViewDate,c=_xeUtils.default.last(a),i=[],s=[];if(c&&n&&r){var d=c.type,u=a.find(function(e){return"week"===e.type}),f=864e5;switch(c.type){case"hour":f=36e5;break;case"minute":f=6e4;break;case"second":f=1e3}for(var k=n.getTime(),r=r.getTime()-n.getTime(),M=Math.max(5,Math.floor(r/f)+1),h={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},p={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},m=function(e,t,l){var a,r;d!==e&&(t=t[e],a="".concat(t.field),(r=p[e][a])||(p[e][a]=r=t,h[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(l))},S=0;S<M;S++){var v=new Date(k+S*f),y=_slicedToArray(_xeUtils.default.toDateString(v,"yyyy-M-d-H-m-s").split("-"),6),g=y[0],x=y[1],b=y[2],_=y[3],T=y[4],y=y[5],D=v.getDay(),w=D+1,E=Math.ceil((v.getMonth()+1)/3),v=_xeUtils.default.getYearWeek(v,u?u.startDay:void 0),D={yy:g,M:x,d:b,H:_,m:T,s:y,q:E,W:v,E:w,e:D},E={year:{field:g,title:g,dateObj:D},quarter:{field:"".concat(g,"_q").concat(E),title:"".concat(E),dateObj:D},month:{field:"".concat(g,"_").concat(x),title:x,dateObj:D},week:{field:"".concat(g,"_W").concat(v),title:"".concat(v),dateObj:D},day:{field:"".concat(g,"_").concat(x,"_").concat(b,"_E").concat(w),title:"".concat(w),dateObj:D},date:{field:"".concat(g,"_").concat(x,"_").concat(b),title:b,dateObj:D},hour:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_),title:_,dateObj:D},minute:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T),title:T,dateObj:D},second:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T,"_").concat(y),title:y,dateObj:D}},v=E[d];c.level<19&&m("year",E,v),c.level<17&&m("quarter",E,v),c.level<14&&m("month",E,v),c.level<13&&m("week",E,v),c.level<11&&m("day",E,v),c.level<12&&m("date",E,v),c.level<7&&m("hour",E,v),c.level<5&&m("minute",E,v),i.push(v)}a.forEach(function(e){var t;e.type===d?s.push({scaleItem:e,columns:i}):((t=h[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),s.push({scaleItem:e,columns:t}))});var X,L,R,Y,H,I,C,$,V=l.xeTable;V&&(X=e.computeStartField,L=e.computeEndField,r=V.isRowGroupStatus,a=V.afterFullData,e=V.afterTreeFullData,R=V.computeAggregateOpts,H=(Y=V.computeTreeOpts).transform,I=Y.children||Y.childrenField,C={},$=function(e){var t,l=V.getRowid(e),a=_xeUtils.default.get(e,X),r=_xeUtils.default.get(e,L);a&&r&&(a=parseStringDate(o,a),r=parseStringDate(o,r),t=Math.floor((a.getTime()-n.getTime())/f),r=Math.floor((r.getTime()-a.getTime())/f)+1,C[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:r})},r?(r=R.mapChildrenField)&&_xeUtils.default.eachTree(V.afterGroupFullData,$,{children:r}):W?_xeUtils.default.eachTree(e,$,{children:H?Y.mapChildrenField:I}):a.forEach($),l.chartMaps=C)}l.visibleColumn=i,t.headerGroups=s,updateTodayData(o),updateScrollXStatus(o),handleTableColumn(o)}function handleUpdateData(l){var a,r,e,t,o,n,c,i,s,d=l.$xeGantt,u=l.reactData,f=l.internalData,h=d.treeConfig,p=f.scrollXStore,m=f.xeTable,S=null,v=null;m&&(a=d.computeStartField,r=d.computeEndField,d=m.isRowGroupStatus,e=m.afterFullData,t=m.afterTreeFullData,o=m.computeAggregateOpts,c=(n=m.computeTreeOpts).transform,i=n.children||n.childrenField,s=function(e){var t=_xeUtils.default.get(e,a),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(l,t),(!S||S.getTime()>t.getTime())&&(S=t),t=parseStringDate(l,e),!v||v.getTime()<t.getTime())&&(v=t)},d?(d=o.mapChildrenField)&&_xeUtils.default.eachTree(m.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:c?n.mapChildrenField:i}):e.forEach(s)),p.startIndex=0,p.endIndex=Math.max(1,p.visibleSize),u.minViewDate=S,u.maxViewDate=v,f.startMaps={},f.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,a=l.scrollXWidth,r=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(r=r>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=r,e=a>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,a=t.viewCellWidth,t=l.elemStore,r=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?a*e.oLeftSize:0,"px"),t.style.width="".concat(e?a*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,a,r,o,n,c,i,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,p=u.headerGroups,m=u.tableColumn,S=f.elemStore,v=f.visibleColumn,f=f.xeTable,y=e.$refs.refElem;if(y)return r=d.computeScrollbarOpts,c=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,i=u.scrollbarHeight,a=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,a=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(S["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/p.length,"px"))),(r=(0,_util.getRefElem)(S["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(S["main-footer-scroll"]))&&(d.style.height="".concat(a,"px")),s&&(s.style.height="".concat(i,"px"),s.style.visibility="visible"),(p=e.$refs.refScrollXWrapperElem)&&(p.style.left=c?"".concat(h,"px"):"",p.style.width="".concat(y.clientWidth-h,"px")),n&&(n.style.width=c?"".concat(h,"px"):"",n.style.display=c&&i?"block":""),o&&(o.style.width=c?"":"".concat(h,"px"),o.style.display=!c&&i?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+a,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(l,"px"),s.style.display=l?"block":""),(p=e.$refs.refScrollYWrapperElem)&&(p.style.height="".concat(t,"px"),p.style.top="".concat(l,"px")),(y=e.$refs.refScrollYBottomCornerElem)&&(y.style.height="".concat(a,"px"),y.style.top="".concat(l+t,"px"),y.style.display=a?"block":""),n=40,c=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*v.length,r&&0<(h=(i=r.clientWidth)-c)&&(n+=h/v.length,c=i),u.viewCellWidth=n,d=(0,_util.getRefElem)(S["main-header-table"]),f=(0,_util.getRefElem)(S["main-body-table"]),s=n*m.length,d&&(d.style.width="".concat(c,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=c,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(o){var n=o.internalData;return new Promise(function(e){var t=n.rceTimeout,l=n.rceRunTime,a=n.xeTable,r=50;a&&(r=a.computeResizeOpts.refreshDelay||50),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(handleRecalculateStyle(o)):o.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(o)},r)})}function computeScrollLoad(a){var r=a.reactData,o=a.internalData;return a.$nextTick().then(function(){var e,t=r.scrollXLoad,l=o.scrollXStore;t?(e=(t=handleVirtualXVisible(a)).toVisibleIndex,t=t.visibleSize,l.preloadSize=1,l.offsetSize=2,l.visibleSize=t,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,e),l.visibleEndIndex=Math.min(l.endIndex,e+t),updateScrollXData(a).then(function(){loadScrollXData(a)})):updateScrollXSpace(a)})}function handleVirtualXVisible(e){var t,l=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/l)-1,t=Math.ceil(t/l)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,l=e.internalData.scrollXStore,a=l.preloadSize,r=l.startIndex,o=l.endIndex,n=l.offsetSize,c=handleVirtualXVisible(e),i=c.toVisibleIndex,c=c.visibleSize,t={startIndex:Math.max(0,t?i-1:i-1-n-a),endIndex:t?i+c:i+c+n+a},n=(l.visibleStartIndex=i-1,l.visibleEndIndex=i+c+1,t.startIndex),a=t.endIndex;!(i<=r||o-c-1<=i)||r===n&&o===a||(l.startIndex=n,l.endIndex=a,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,l=t.scrollXLoad,a=e.visibleColumn,e=e.scrollXStore,l=l?a.slice(e.startIndex,e.endIndex):a.slice(0);t.tableColumn=l}function updateScrollXSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollXLoad,r=t.scrollXWidth,o=t.viewCellWidth,n=l.elemStore,l=l.scrollXStore,c=(0,_util.getRefElem)(n["main-body-table"]),l=l.startIndex,i=0,l=(a&&(i=Math.max(0,l*o)),c&&(c.style.transform="translate(".concat(i,"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=a?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return l&&(l.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollYLoad,r=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),c=(0,_util.getRefElem)(o["main-body-table"]),i=0,s=0,d=!1,l=(l&&(i=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=i,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&c&&n.scrollTop+f>=maxYHeight?maxYHeight-c.clientHeight:i/(s-f)*(maxYHeight-f),l=maxYHeight),a&&r||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),i=(c&&(c.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)(o["main-body-ySpace"])),f=(i&&(i.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var a=e.reactData,r=e.internalData,e=r.lcsTimeout;a.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,a.lazScrollLoading=!1},200)}function handleScrollData(e,t,l,a,r){var o=e.reactData,n=e.internalData;l&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=a),o.lastScrollTime=Date.now(),checkLastSyncScroll(e,l,t)}function handleScrollEvent(e,t,l,a,r,o){var n,c,i,s,d,u,f,h,p,m,S,v,y=e.$xeGantt,g=e.internalData,x=g.xeTable,b=e.$refs.refScrollXHandleElem,_=e.$refs.refScrollYHandleElem;b&&_&&x&&(n=_.clientHeight,c=b.clientWidth,_=_.scrollHeight,b=b.scrollWidth,d="",p=h=f=u=s=m=i=v=!1,a&&(S=x.computeScrollXThreshold,(m=o<=0)||(s=b-1<=o+c),g.lastScrollLeft<o?(d="right",b-S<=o+c&&(p=!0)):(d="left",o<=S&&(h=!0))),l&&(S=x.computeScrollYThreshold,(v=r<=0)||(i=_-1<=r+n),g.lastScrollTop<r?(d="bottom",_-S<=r+n&&(f=!0)):(d="top",r<=S&&(u=!0))),handleScrollData(e,l,a,r,o),x={source:sourceType,scrollTop:r,scrollLeft:o,bodyHeight:n,bodyWidth:c,scrollHeight:_,scrollWidth:b,isX:a,isY:l,isTop:v,isBottom:i,isLeft:m,isRight:s,direction:d},(f||u||p||h)&&y.dispatchEvent("scroll-boundary",x,t),y.dispatchEvent("scroll",x,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:20},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},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,l=this.$refs.refElem;t&&l&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(l.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(l.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,a,r=this.internalData,o=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(a=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(o,a),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerBodyScrollEvent:function(e){var t,l,a,r,o,n=this,c=n.reactData,i=n.internalData,c=c.scrollXLoad,s=i.elemStore,d=i.lastScrollLeft,u=i.lastScrollTop;i.inVirtualScroll||i.inHeaderScroll||i.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,a=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(o=t.scrollTop)!==u,i.inBodyScroll=!0,i.scrollRenderType="",u&&((0,_dom.setScrollTop)(a,o),syncTableScrollTop(n,o)),d&&(i.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(s,r),c)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,l,a,r=this.reactData,o=this.internalData,r=r.scrollXLoad,n=o.elemStore;o.inHeaderScroll||o.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(a=t.scrollLeft,o.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(n,a),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerVirtualScrollYEvent:function(e){var t,l,a=this.internalData,r=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(l=t.scrollTop,a.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,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,l=t.$xeGantt,a=t.reactData,r=a.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":a.overflowY,"is--scroll-x":r,"is--virtual-x":a.scrollXLoad,"is--virtual-y":a.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.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,o,n=[],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)&&(n.push(l.value),n.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return n}}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],o=l[2],n=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(o,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(o),hour:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n),minute:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,o=[],n=[];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=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))},u=0;u<r.length;u++){var f=r[u],h=_slicedToArray(_xeUtils.default.toDateString(f,"yyyy-M-d-H-m-s").split("-"),6),m=h[0],y=h[1],g=h[2],S=h[3],p=h[4],h=h[5],v=f.getDay(),x=v+1,_=Math.ceil((f.getMonth()+1)/3),D=_xeUtils.default.getYearWeek(f,l?l.startDay:void 0),f={date:f,yy:m,M:y,d:g,H:S,m:p,s:h,q:_,W:D,E:x,e:v},v={year:{field:m,title:m,dateObj:f},quarter:{field:"".concat(m,"_q").concat(_),title:"".concat(_),dateObj:f},month:{field:"".concat(m,"_").concat(y),title:y,dateObj:f},week:{field:"".concat(m,"_W").concat(D),title:"".concat(D),dateObj:f},day:{field:"".concat(m,"_").concat(y,"_").concat(g,"_E").concat(x),title:"".concat(x),dateObj:f},date:{field:"".concat(m,"_").concat(y,"_").concat(g),title:g,dateObj:f},hour:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S),title:S,dateObj:f},minute:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S,"_").concat(p),title:p,dateObj:f},second:{field:"".concat(m,"_").concat(y,"_").concat(g,"_").concat(S,"_").concat(p,"_").concat(h),title:h,dateObj:f}},_=v[i.type];i.level<19&&d("year",v,_),i.level<17&&d("quarter",v,_),i.level<15&&d("month",v,_),i.level<13&&d("week",v,_),i.level<11&&d("day",v,_),i.level<9&&d("date",v,_),i.level<7&&d("hour",v,_),i.level<5&&d("minute",v,_),i.level<3&&d("second",v,_),o.push(_)}a.forEach(function(e){var t;e.type===i.type?n.push({scaleItem:e,columns:o}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),n.push({scaleItem:e,columns:t}))})}return{fullCols:o,groupCols:n}}function createChartRender(n,e){var t=n.$xeGantt,r=n.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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,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=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:c?c.startDay:void 0});f[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,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),o=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/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l}};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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,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(n,e),t=parseStringDate(n,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"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,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(n,e),t=parseStringDate(n,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i+1),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,o,t,a,l,n,c,s,d,u,f=e.$xeGantt,h=e.reactData,m=e.internalData,y=f.treeConfig,g=h.minViewDate,S=h.maxViewDate,p=handleColumnHeader(e),v=p.fullCols,p=p.groupCols;g&&S&&(r=m.xeTable)&&(i=f.computeStartField,o=f.computeEndField,g=r.isRowGroupStatus,S=r.afterFullData,f=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,n=(l=r.computeTreeOpts).transform,c=l.children||l.childrenField,s={},d=createChartRender(e,v),u=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,o);a&&l&&(l=(a=d(a,l)).offsetLeftSize,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},g?(g=a.mapChildrenField)&&_xeUtils.default.eachTree(t,u,{children:g}):y?_xeUtils.default.eachTree(f,u,{children:n?l.mapChildrenField:c}):S.forEach(u),m.chartMaps=s),m.visibleColumn=v,h.headerGroups=p,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(a){var l,r,e,t,i,o,n,c,s,d=a.$xeGantt,u=a.reactData,f=a.internalData,h=d.treeConfig,m=f.scrollXStore,y=f.xeTable,g=null,S=null;y&&(l=d.computeStartField,r=d.computeEndField,d=y.isRowGroupStatus,e=y.afterFullData,t=y.afterTreeFullData,i=y.computeAggregateOpts,n=(o=y.computeTreeOpts).transform,c=o.children||o.childrenField,s=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(a,t),(!g||g.getTime()>t.getTime())&&(g=t),t=parseStringDate(a,e),!S||S.getTime()<t.getTime())&&(S=t)},d?(d=i.mapChildrenField)&&_xeUtils.default.eachTree(y.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:n?o.mapChildrenField:c}):e.forEach(s)),m.startIndex=0,m.endIndex=Math.max(1,m.visibleSize),u.minViewDate=g,u.maxViewDate=S,f.startMaps={},f.endMaps={},handleParseColumn(a)}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"]),o=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,o&&(a.scrollbarHeight=t.height||o.offsetHeight-o.clientHeight||14),a.overflowX=e)}function updateChart(e){var t=e.reactData,a=e.internalData,l=t.viewCellWidth,t=a.elemStore,r=a.chartMaps,a=(0,_util.getRefElem)(t["main-chart-wrapper"]);return a&&_xeUtils.default.arrayEach(a.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?l*e.oLeftSize:0,"px"),t.style.width="".concat(e?l*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,o,n,c,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,m=u.headerGroups,y=u.tableColumn,g=f.elemStore,S=f.visibleColumn,f=f.xeTable,p=e.$refs.refElem;if(p)return r=d.computeScrollbarOpts,n=d.computeScrollbarXToTop,o=e.$refs.refScrollXLeftCornerElem,i=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,c=u.scrollbarHeight,l=a=t=0,f&&(t=f.tBodyHeight,a=f.tHeaderHeight,l=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(g["main-header-scroll"]))&&(d.style.height="".concat(a,"px"),d.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")),(d=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(d.style.height="".concat(l,"px")),s&&(s.style.height="".concat(c,"px"),s.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(h,"px"):"",m.style.width="".concat(p.clientWidth-h,"px")),o&&(o.style.width=n?"".concat(h,"px"):"",o.style.display=n&&c?"block":""),i&&(i.style.width=n?"":"".concat(h,"px"),i.style.display=!n&&c?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+a+l,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(a,"px"),s.style.display=a?"block":""),(m=e.$refs.refScrollYWrapperElem)&&(m.style.height="".concat(t,"px"),m.style.top="".concat(a,"px")),(p=e.$refs.refScrollYBottomCornerElem)&&(p.style.height="".concat(l,"px"),p.style.top="".concat(a+t,"px"),p.style.display=l?"block":""),o=40,n=(o=(i=e.$refs.refColInfoElem)?i.clientWidth||40:o)*S.length,r&&0<(h=(c=r.clientWidth)-n)&&(o+=h/S.length,n=c),u.viewCellWidth=o,d=(0,_util.getRefElem)(g["main-header-table"]),f=(0,_util.getRefElem)(g["main-body-table"]),s=o*y.length,d&&(d.style.width="".concat(n,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=n,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,a=e.$refs.refElem;return t.rceRunTime=Date.now(),a&&a.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var o=i.internalData;return new Promise(function(e){var t=o.rceTimeout,a=o.rceRunTime,l=o.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()}),o.rceTimeout=setTimeout(function(){o.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,o=a.offsetSize,n=handleVirtualXVisible(e),c=n.toVisibleIndex,n=n.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-o-l),endIndex:t?c+n:c+n+o+l},o=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+n+1,t.startIndex),l=t.endIndex;!(c<=r||i-n-1<=c)||r===o&&i===l||(a.startIndex=o,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,o=a.elemStore,a=a.scrollXStore,n=(0,_util.getRefElem)(o["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),n&&(n.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return a&&(a.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,o=(0,_util.getRefElem)(i["main-body-scroll"]),n=(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,o=(o&&(f=o.clientHeight),d&&(u=o&&n&&o.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-wrapper"])),c=(n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),o&&(o.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);return f&&(f.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,o=e.internalData;a&&(o.lastScrollLeft=r),t&&(o.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var o,n,c,s,d,u,f,h,m,y,g,S,p=e.$xeGantt,v=e.internalData,x=v.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&x&&(o=D.clientHeight,n=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=S=!1,l&&(g=x.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+n),v.lastScrollLeft<i?(d="right",_-g<=i+n&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=x.computeScrollYThreshold,(S=r<=0)||(c=D-1<=r+o),v.lastScrollTop<r?(d="bottom",D-g<=r+o&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),x={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:o,bodyWidth:n,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:S,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&p.dispatchEvent("scroll-boundary",x,t),p.dispatchEvent("scroll",x,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:20},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,r=e.computeMinScale,i=[];if(a&&l){var o=a.getTime(),n=l.getTime();switch(r.type){case"year":for(var c=_xeUtils.default.getWhatYear(a,0,"first");c<=l;){var s=c;i.push(s),c=_xeUtils.default.getWhatYear(c,1)}break;case"quarter":for(var d=_xeUtils.default.getWhatQuarter(a,0,"first");d<=l;){var u=d;i.push(u),d=_xeUtils.default.getWhatQuarter(d,1)}break;case"month":for(var f=_xeUtils.default.getWhatMonth(a,0,"first");f<=l;){var h=f;i.push(h),f=_xeUtils.default.getWhatMonth(f,1)}break;case"week":for(var m=_xeUtils.default.getWhatWeek(a,0,r.startDay,r.startDay);m<=l;){var y=m;i.push(y),m=_xeUtils.default.getWhatWeek(m,1)}break;case"day":case"date":case"hour":case"minute":case"second":for(var g=(0,_util.getStandardGapTime)(r.type),S=o;S<=n;){var p=new Date(S);i.push(p),S+=g}}}return i}}),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,o=this,n=o.reactData,c=o.internalData,n=n.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=o.$refs.refScrollXHandleElem,l=o.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(o,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),n)&&triggerScrollXEvent(o),handleScrollEvent(o,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,o=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(o,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)}});