vxe-gantt 3.0.27 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,7 +214,7 @@ 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
  }
@@ -265,7 +242,7 @@ function handleParseColumn($xeGanttView) {
265
242
  fullCols.push(minCol);
266
243
  }
267
244
  taskScaleList.forEach(function (scaleItem) {
268
- if (scaleItem.type === minSType) {
245
+ if (scaleItem.type === minScale.type) {
269
246
  groupCols.push({
270
247
  scaleItem: scaleItem,
271
248
  columns: fullCols
@@ -284,6 +261,240 @@ function handleParseColumn($xeGanttView) {
284
261
  columns: list
285
262
  });
286
263
  });
264
+ }
265
+ return {
266
+ fullCols: fullCols,
267
+ groupCols: groupCols
268
+ };
269
+ }
270
+ function createChartRender($xeGanttView, fullCols) {
271
+ var $xeGantt = $xeGanttView.$xeGantt;
272
+ var reactData = $xeGanttView.reactData;
273
+ var minViewDate = reactData.minViewDate;
274
+ var minScale = $xeGantt.computeMinScale;
275
+ var scaleUnit = $xeGantt.computeScaleUnit;
276
+ var weekScale = $xeGantt.computeWeekScale;
277
+ switch (scaleUnit) {
278
+ case 'year':
279
+ {
280
+ var indexMaps = {};
281
+ fullCols.forEach(function (_ref, i) {
282
+ var dateObj = _ref.dateObj;
283
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy');
284
+ indexMaps[yyyyMM] = i;
285
+ });
286
+ return function (startValue, endValue) {
287
+ var startDate = parseStringDate($xeGanttView, startValue);
288
+ var endDate = parseStringDate($xeGanttView, endValue);
289
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy');
290
+ var startFirstDate = _xeUtils.default.getWhatYear(startDate, 0, 'first');
291
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy');
292
+ var endFirstDate = _xeUtils.default.getWhatYear(endDate, 0, 'first');
293
+ var dateSize = Math.floor((_xeUtils.default.getWhatYear(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
294
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
295
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
296
+ var offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
297
+ return {
298
+ offsetLeftSize: offsetLeftSize,
299
+ offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
300
+ };
301
+ };
302
+ }
303
+ case 'quarter':
304
+ {
305
+ var _indexMaps = {};
306
+ fullCols.forEach(function (_ref2, i) {
307
+ var dateObj = _ref2.dateObj;
308
+ var q = _xeUtils.default.toDateString(dateObj.date, 'yyyy-q');
309
+ _indexMaps[q] = i;
310
+ });
311
+ return function (startValue, endValue) {
312
+ var startDate = parseStringDate($xeGanttView, startValue);
313
+ var endDate = parseStringDate($xeGanttView, endValue);
314
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-q');
315
+ var startFirstDate = _xeUtils.default.getWhatQuarter(startDate, 0, 'first');
316
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-q');
317
+ var endFirstDate = _xeUtils.default.getWhatQuarter(endDate, 0, 'first');
318
+ var dateSize = Math.floor((_xeUtils.default.getWhatQuarter(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
319
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
320
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
321
+ var offsetLeftSize = (_indexMaps[startStr] || 0) + subtract;
322
+ return {
323
+ offsetLeftSize: offsetLeftSize,
324
+ offsetWidthSize: (_indexMaps[endStr] || 0) - offsetLeftSize + addSize
325
+ };
326
+ };
327
+ }
328
+ case 'month':
329
+ {
330
+ var _indexMaps2 = {};
331
+ fullCols.forEach(function (_ref3, i) {
332
+ var dateObj = _ref3.dateObj;
333
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM');
334
+ _indexMaps2[yyyyMM] = i;
335
+ });
336
+ return function (startValue, endValue) {
337
+ var startDate = parseStringDate($xeGanttView, startValue);
338
+ var endDate = parseStringDate($xeGanttView, endValue);
339
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM');
340
+ var startFirstDate = _xeUtils.default.getWhatMonth(startDate, 0, 'first');
341
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM');
342
+ var endFirstDate = _xeUtils.default.getWhatMonth(endDate, 0, 'first');
343
+ var dateSize = Math.floor((_xeUtils.default.getWhatMonth(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / dayMs);
344
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
345
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
346
+ var offsetLeftSize = (_indexMaps2[startStr] || 0) + subtract;
347
+ return {
348
+ offsetLeftSize: offsetLeftSize,
349
+ offsetWidthSize: (_indexMaps2[endStr] || 0) - offsetLeftSize + addSize
350
+ };
351
+ };
352
+ }
353
+ case 'week':
354
+ {
355
+ var _indexMaps3 = {};
356
+ fullCols.forEach(function (_ref4, i) {
357
+ var dateObj = _ref4.dateObj;
358
+ var yyyyW = _xeUtils.default.toDateString(dateObj.date, 'yyyy-W', {
359
+ firstDay: weekScale ? weekScale.startDay : undefined
360
+ });
361
+ _indexMaps3[yyyyW] = i;
362
+ });
363
+ return function (startValue, endValue) {
364
+ var startDate = parseStringDate($xeGanttView, startValue);
365
+ var endDate = parseStringDate($xeGanttView, endValue);
366
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-W', {
367
+ firstDay: weekScale ? weekScale.startDay : undefined
368
+ });
369
+ var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
370
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-W', {
371
+ firstDay: weekScale ? weekScale.startDay : undefined
372
+ });
373
+ var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
374
+ var dateSize = Math.floor((_xeUtils.default.getWhatWeek(endDate, 1, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined).getTime() - endFirstDate.getTime()) / dayMs);
375
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
376
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / dayMs + 1) / dateSize;
377
+ var offsetLeftSize = (_indexMaps3[startStr] || 0) + subtract;
378
+ return {
379
+ offsetLeftSize: offsetLeftSize,
380
+ offsetWidthSize: (_indexMaps3[endStr] || 0) - offsetLeftSize + addSize
381
+ };
382
+ };
383
+ }
384
+ case 'day':
385
+ case 'date':
386
+ {
387
+ var _indexMaps4 = {};
388
+ fullCols.forEach(function (_ref5, i) {
389
+ var dateObj = _ref5.dateObj;
390
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd');
391
+ _indexMaps4[yyyyMM] = i;
392
+ });
393
+ return function (startValue, endValue) {
394
+ var startDate = parseStringDate($xeGanttView, startValue);
395
+ var endDate = parseStringDate($xeGanttView, endValue);
396
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd');
397
+ var startFirstDate = _xeUtils.default.getWhatDay(startDate, 0, 'first');
398
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd');
399
+ var endFirstDate = _xeUtils.default.getWhatDay(endDate, 0, 'first');
400
+ var minuteSize = Math.floor((_xeUtils.default.getWhatDay(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
401
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
402
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
403
+ var offsetLeftSize = (_indexMaps4[startStr] || 0) + subtract;
404
+ return {
405
+ offsetLeftSize: offsetLeftSize,
406
+ offsetWidthSize: (_indexMaps4[endStr] || 0) - offsetLeftSize + addSize
407
+ };
408
+ };
409
+ }
410
+ case 'hour':
411
+ {
412
+ var _indexMaps5 = {};
413
+ fullCols.forEach(function (_ref6, i) {
414
+ var dateObj = _ref6.dateObj;
415
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH');
416
+ _indexMaps5[yyyyMM] = i;
417
+ });
418
+ return function (startValue, endValue) {
419
+ var startDate = parseStringDate($xeGanttView, startValue);
420
+ var endDate = parseStringDate($xeGanttView, endValue);
421
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH');
422
+ var startFirstDate = _xeUtils.default.getWhatHours(startDate, 0, 'first');
423
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH');
424
+ var endFirstDate = _xeUtils.default.getWhatHours(endDate, 0, 'first');
425
+ var minuteSize = Math.floor((_xeUtils.default.getWhatHours(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
426
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
427
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
428
+ var offsetLeftSize = (_indexMaps5[startStr] || 0) + subtract;
429
+ return {
430
+ offsetLeftSize: offsetLeftSize,
431
+ offsetWidthSize: (_indexMaps5[endStr] || 0) - offsetLeftSize + addSize
432
+ };
433
+ };
434
+ }
435
+ case 'minute':
436
+ {
437
+ var _indexMaps6 = {};
438
+ fullCols.forEach(function (_ref7, i) {
439
+ var dateObj = _ref7.dateObj;
440
+ var yyyyMM = _xeUtils.default.toDateString(dateObj.date, 'yyyy-MM-dd HH:mm');
441
+ _indexMaps6[yyyyMM] = i;
442
+ });
443
+ return function (startValue, endValue) {
444
+ var startDate = parseStringDate($xeGanttView, startValue);
445
+ var endDate = parseStringDate($xeGanttView, endValue);
446
+ var startStr = _xeUtils.default.toDateString(startDate, 'yyyy-MM-dd HH:mm');
447
+ var startFirstDate = _xeUtils.default.getWhatMinutes(startDate, 0, 'first');
448
+ var endStr = _xeUtils.default.toDateString(endDate, 'yyyy-MM-dd HH:mm');
449
+ var endFirstDate = _xeUtils.default.getWhatMinutes(endDate, 0, 'first');
450
+ var minuteSize = Math.floor((_xeUtils.default.getWhatMinutes(endDate, 1, 'first').getTime() - endFirstDate.getTime()) / minuteMs);
451
+ var subtract = (startDate.getTime() - startFirstDate.getTime()) / minuteMs / minuteSize;
452
+ var addSize = Math.max(0, (endDate.getTime() - endFirstDate.getTime()) / minuteMs + 1) / minuteSize;
453
+ var offsetLeftSize = (_indexMaps6[startStr] || 0) + subtract;
454
+ return {
455
+ offsetLeftSize: offsetLeftSize,
456
+ offsetWidthSize: (_indexMaps6[endStr] || 0) - offsetLeftSize + addSize
457
+ };
458
+ };
459
+ }
460
+ case 'second':
461
+ {
462
+ var gapTime = (0, _util.getStandardGapTime)(minScale.type);
463
+ return function (startValue, endValue) {
464
+ var startDate = parseStringDate($xeGanttView, startValue);
465
+ var endDate = parseStringDate($xeGanttView, endValue);
466
+ var offsetLeftSize = 0;
467
+ var offsetWidthSize = 0;
468
+ if (minViewDate) {
469
+ offsetLeftSize = (startDate.getTime() - minViewDate.getTime()) / gapTime;
470
+ offsetWidthSize = (endDate.getTime() - startDate.getTime()) / gapTime + 1;
471
+ }
472
+ return {
473
+ offsetLeftSize: offsetLeftSize,
474
+ offsetWidthSize: offsetWidthSize
475
+ };
476
+ };
477
+ }
478
+ }
479
+ return function () {
480
+ return {
481
+ offsetLeftSize: 0,
482
+ offsetWidthSize: 0
483
+ };
484
+ };
485
+ }
486
+ function handleParseColumn($xeGanttView) {
487
+ var $xeGantt = $xeGanttView.$xeGantt;
488
+ var reactData = $xeGanttView.reactData;
489
+ var internalData = $xeGanttView.internalData;
490
+ var ganttProps = $xeGantt;
491
+ var treeConfig = ganttProps.treeConfig;
492
+ var minViewDate = reactData.minViewDate,
493
+ maxViewDate = reactData.maxViewDate;
494
+ var _handleColumnHeader = handleColumnHeader($xeGanttView),
495
+ fullCols = _handleColumnHeader.fullCols,
496
+ groupCols = _handleColumnHeader.groupCols;
497
+ if (minViewDate && maxViewDate) {
287
498
  var $xeTable = internalData.xeTable;
288
499
  if ($xeTable) {
289
500
  var startField = $xeGantt.computeStartField;
@@ -299,20 +510,20 @@ function handleParseColumn($xeGanttView) {
299
510
  var transform = treeOpts.transform;
300
511
  var childrenField = treeOpts.children || treeOpts.childrenField;
301
512
  var ctMaps = {};
513
+ var renderFn = createChartRender($xeGanttView, fullCols);
302
514
  var handleParseRender = function handleParseRender(row) {
303
515
  var rowid = $xeTable.getRowid(row);
304
516
  var startValue = _xeUtils.default.get(row, startField);
305
517
  var endValue = _xeUtils.default.get(row, endField);
306
518
  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;
519
+ var _renderFn = renderFn(startValue, endValue),
520
+ offsetLeftSize = _renderFn.offsetLeftSize,
521
+ offsetWidthSize = _renderFn.offsetWidthSize;
311
522
  ctMaps[rowid] = {
312
523
  row: row,
313
524
  rowid: rowid,
314
- oLeftSize: oLeftSize,
315
- oWidthSize: oWidthSize
525
+ oLeftSize: offsetLeftSize,
526
+ oWidthSize: offsetWidthSize
316
527
  };
317
528
  }
318
529
  };
@@ -586,10 +797,10 @@ function _handleLazyRecalculate($xeGanttView) {
586
797
  var rceTimeout = internalData.rceTimeout,
587
798
  rceRunTime = internalData.rceRunTime;
588
799
  var $xeTable = internalData.xeTable;
589
- var refreshDelay = 50;
800
+ var refreshDelay = 30;
590
801
  if ($xeTable) {
591
802
  var resizeOpts = $xeTable.computeResizeOpts;
592
- refreshDelay = resizeOpts.refreshDelay || 50;
803
+ refreshDelay = resizeOpts.refreshDelay || refreshDelay;
593
804
  }
594
805
  if (rceTimeout) {
595
806
  clearTimeout(rceTimeout);
@@ -991,15 +1202,96 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
991
1202
  internalData: internalData
992
1203
  };
993
1204
  },
994
- computed: Object.assign({}, {}),
1205
+ computed: Object.assign(Object.assign({}, {}), {
1206
+ computeScaleDateList: function computeScaleDateList() {
1207
+ var $xeGanttView = this;
1208
+ var $xeGantt = $xeGanttView.$xeGantt;
1209
+ var reactData = $xeGanttView.reactData;
1210
+ var minViewDate = reactData.minViewDate,
1211
+ maxViewDate = reactData.maxViewDate;
1212
+ var minScale = $xeGantt.computeMinScale;
1213
+ var dateList = [];
1214
+ if (!minViewDate || !maxViewDate) {
1215
+ return dateList;
1216
+ }
1217
+ var startTime = minViewDate.getTime();
1218
+ var endTime = maxViewDate.getTime();
1219
+ switch (minScale.type) {
1220
+ case 'year':
1221
+ {
1222
+ var currDate = _xeUtils.default.getWhatYear(minViewDate, 0, 'first');
1223
+ while (currDate <= maxViewDate) {
1224
+ var itemDate = currDate;
1225
+ dateList.push(itemDate);
1226
+ currDate = _xeUtils.default.getWhatYear(currDate, 1);
1227
+ }
1228
+ break;
1229
+ }
1230
+ case 'quarter':
1231
+ {
1232
+ var _currDate = _xeUtils.default.getWhatQuarter(minViewDate, 0, 'first');
1233
+ while (_currDate <= maxViewDate) {
1234
+ var _itemDate = _currDate;
1235
+ dateList.push(_itemDate);
1236
+ _currDate = _xeUtils.default.getWhatQuarter(_currDate, 1);
1237
+ }
1238
+ break;
1239
+ }
1240
+ case 'month':
1241
+ {
1242
+ var _currDate2 = _xeUtils.default.getWhatMonth(minViewDate, 0, 'first');
1243
+ while (_currDate2 <= maxViewDate) {
1244
+ var _itemDate2 = _currDate2;
1245
+ dateList.push(_itemDate2);
1246
+ _currDate2 = _xeUtils.default.getWhatMonth(_currDate2, 1);
1247
+ }
1248
+ break;
1249
+ }
1250
+ case 'week':
1251
+ {
1252
+ var _currDate3 = _xeUtils.default.getWhatWeek(minViewDate, 0, minScale.startDay, minScale.startDay);
1253
+ while (_currDate3 <= maxViewDate) {
1254
+ var _itemDate3 = _currDate3;
1255
+ dateList.push(_itemDate3);
1256
+ _currDate3 = _xeUtils.default.getWhatWeek(_currDate3, 1);
1257
+ }
1258
+ break;
1259
+ }
1260
+ case 'day':
1261
+ case 'date':
1262
+ case 'hour':
1263
+ case 'minute':
1264
+ case 'second':
1265
+ {
1266
+ var gapTime = (0, _util.getStandardGapTime)(minScale.type);
1267
+ var currTime = startTime;
1268
+ while (currTime <= endTime) {
1269
+ var _itemDate4 = new Date(currTime);
1270
+ dateList.push(_itemDate4);
1271
+ currTime += gapTime;
1272
+ }
1273
+ break;
1274
+ }
1275
+ }
1276
+ return dateList;
1277
+ }
1278
+ }),
995
1279
  methods: {
996
1280
  //
997
1281
  // Method
998
1282
  //
999
1283
  refreshData: function refreshData() {
1000
1284
  var $xeGanttView = this;
1285
+ var internalData = $xeGanttView.internalData;
1001
1286
  handleUpdateData($xeGanttView);
1002
- return _handleLazyRecalculate($xeGanttView);
1287
+ handleRecalculateStyle($xeGanttView);
1288
+ return $xeGanttView.$nextTick().then(function () {
1289
+ var $xeTable = internalData.xeTable;
1290
+ handleRecalculateStyle($xeGanttView);
1291
+ if ($xeTable) {
1292
+ return $xeTable.recalculate();
1293
+ }
1294
+ });
1003
1295
  },
1004
1296
  updateViewData: function updateViewData() {
1005
1297
  var $xeGanttView = this;
@@ -1013,8 +1305,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1013
1305
  }
1014
1306
  return $xeGanttView.$nextTick();
1015
1307
  },
1016
- connectUpdate: function connectUpdate(_ref) {
1017
- var $table = _ref.$table;
1308
+ connectUpdate: function connectUpdate(_ref8) {
1309
+ var $table = _ref8.$table;
1018
1310
  var $xeGanttView = this;
1019
1311
  var internalData = $xeGanttView.internalData;
1020
1312
  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<14&&d("month",v,_),i.level<13&&d("week",v,_),i.level<11&&d("day",v,_),i.level<12&&d("date",v,_),i.level<7&&d("hour",v,_),i.level<5&&d("minute",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)}});
@@ -228,6 +228,25 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
228
228
  var props = $xeGantt;
229
229
  return Object.assign({}, getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
230
230
  },
231
+ computeScaleUnit: function computeScaleUnit() {
232
+ var $xeGantt = this;
233
+ var minScale = $xeGantt.computeMinScale;
234
+ return minScale ? minScale.type : 'date';
235
+ },
236
+ computeMinScale: function computeMinScale() {
237
+ var $xeGantt = this;
238
+ var reactData = $xeGantt.reactData;
239
+ var taskScaleList = reactData.taskScaleList;
240
+ return _xeUtils.default.last(taskScaleList);
241
+ },
242
+ computeWeekScale: function computeWeekScale() {
243
+ var $xeGantt = this;
244
+ var reactData = $xeGantt.reactData;
245
+ var taskScaleList = reactData.taskScaleList;
246
+ return taskScaleList.find(function (item) {
247
+ return item.type === 'week';
248
+ });
249
+ },
231
250
  computeTaskScaleConfs: function computeTaskScaleConfs() {
232
251
  var $xeGantt = this;
233
252
  var taskViewOpts = $xeGantt.computeTaskViewOpts;
@@ -494,6 +513,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
494
513
  computeTaskScaleConfs: function computeTaskScaleConfs() {
495
514
  var $xeGantt = this;
496
515
  $xeGantt.handleTaskScaleConfig();
516
+ $xeGantt.refreshTaskView();
497
517
  }
498
518
  },
499
519
  methods: Object.assign(Object.assign({}, tableMethods), {