vxe-gantt 3.4.9 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/gantt/src/gantt-view.js +167 -92
- package/es/gantt/src/gantt.js +10 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +12 -3
- package/lib/gantt/src/gantt-view.js +170 -94
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +40 -31
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/index.umd.js +272 -176
- package/lib/index.umd.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +13 -3
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +4 -4
- package/packages/gantt/src/gantt-view.ts +167 -92
- package/packages/gantt/src/gantt.ts +12 -3
- package/packages/ui/src/log.ts +13 -3
|
@@ -21,8 +21,10 @@ 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 secondMs = 1000;
|
|
24
25
|
var minuteMs = 1000 * 60;
|
|
25
|
-
var
|
|
26
|
+
var hourMs = 1000 * 60 * 60;
|
|
27
|
+
var dayMs = hourMs * 24;
|
|
26
28
|
function createInternalData() {
|
|
27
29
|
return {
|
|
28
30
|
xeTable: null,
|
|
@@ -83,8 +85,7 @@ var maxYHeight = 5e6;
|
|
|
83
85
|
// const maxXWidth = 5e6
|
|
84
86
|
function parseStringDate($xeGanttView, dateValue) {
|
|
85
87
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
86
|
-
var
|
|
87
|
-
var dateFormat = taskOpts.dateFormat;
|
|
88
|
+
var dateFormat = $xeGantt.computeDateFormat;
|
|
88
89
|
return _xeUtils.default.toStringDate(dateValue, dateFormat || null);
|
|
89
90
|
}
|
|
90
91
|
function updateTodayData($xeGanttView) {
|
|
@@ -359,15 +360,16 @@ function parseWeekObj(date, firstDay) {
|
|
|
359
360
|
}
|
|
360
361
|
function createChartRender($xeGanttView, fullCols) {
|
|
361
362
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
362
|
-
var reactData = $xeGanttView.reactData;
|
|
363
|
-
var minViewDate = reactData.minViewDate;
|
|
364
363
|
var minScale = $xeGantt.computeMinScale;
|
|
365
364
|
var scaleUnit = $xeGantt.computeScaleUnit;
|
|
366
365
|
var weekScale = $xeGantt.computeWeekScale;
|
|
366
|
+
var dateFormat = $xeGantt.computeDateFormat;
|
|
367
367
|
if (minScale) {
|
|
368
368
|
switch (scaleUnit) {
|
|
369
369
|
case 'year':
|
|
370
370
|
{
|
|
371
|
+
var showActualProgress = /M|d|H|mm|ss|S/.test(dateFormat);
|
|
372
|
+
var renderFormat = 'yyyy';
|
|
371
373
|
var indexMaps = {};
|
|
372
374
|
fullCols.forEach(function (_ref, i) {
|
|
373
375
|
var dateObj = _ref.dateObj;
|
|
@@ -375,74 +377,106 @@ function createChartRender($xeGanttView, fullCols) {
|
|
|
375
377
|
indexMaps[yyyyMM] = i;
|
|
376
378
|
});
|
|
377
379
|
return function (startValue, endValue) {
|
|
378
|
-
var
|
|
379
|
-
var
|
|
380
|
-
var startStr = _xeUtils.default.toDateString(
|
|
381
|
-
var
|
|
382
|
-
var
|
|
380
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
381
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
382
|
+
var startStr = _xeUtils.default.toDateString(startValDate, renderFormat);
|
|
383
|
+
var startDate = showActualProgress ? startValDate : _xeUtils.default.getWhatYear(startValDate, 0, 'first');
|
|
384
|
+
var startFirstDate = _xeUtils.default.getWhatYear(startValDate, 0, 'first');
|
|
385
|
+
var endStr = _xeUtils.default.toDateString(endValDate, renderFormat);
|
|
386
|
+
var endDate = showActualProgress ? endValDate : _xeUtils.default.getWhatYear(endValDate, 0, 'last');
|
|
383
387
|
var endFirstDate = _xeUtils.default.getWhatYear(endDate, 0, 'first');
|
|
384
|
-
|
|
385
|
-
var
|
|
386
|
-
var
|
|
387
|
-
|
|
388
|
+
// 当前是年维度,当指定解析格式精确到天时,显示实际进度
|
|
389
|
+
var startSubtractSize = 0;
|
|
390
|
+
var endSubtractSize = 1;
|
|
391
|
+
if (showActualProgress) {
|
|
392
|
+
// 按年的天数比计算
|
|
393
|
+
var syDaySize = _xeUtils.default.getDayOfYear(startDate, 0);
|
|
394
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / dayMs / syDaySize;
|
|
395
|
+
var eyDaySize = _xeUtils.default.getDayOfYear(endDate, 0);
|
|
396
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / dayMs / eyDaySize;
|
|
397
|
+
}
|
|
398
|
+
var offsetLeftSize = (indexMaps[startStr] || 0) + startSubtractSize;
|
|
388
399
|
return {
|
|
389
400
|
offsetLeftSize: offsetLeftSize,
|
|
390
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize +
|
|
401
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
391
402
|
};
|
|
392
403
|
};
|
|
393
404
|
}
|
|
394
405
|
case 'quarter':
|
|
395
406
|
{
|
|
407
|
+
var _showActualProgress = /M|d|H|mm|ss|S/.test(dateFormat);
|
|
408
|
+
var _renderFormat = 'yyyy-q';
|
|
396
409
|
var _indexMaps = {};
|
|
397
410
|
fullCols.forEach(function (_ref2, i) {
|
|
398
411
|
var dateObj = _ref2.dateObj;
|
|
399
|
-
var q = _xeUtils.default.toDateString(dateObj.date,
|
|
412
|
+
var q = _xeUtils.default.toDateString(dateObj.date, _renderFormat);
|
|
400
413
|
_indexMaps[q] = i;
|
|
401
414
|
});
|
|
402
415
|
return function (startValue, endValue) {
|
|
403
|
-
var
|
|
404
|
-
var
|
|
405
|
-
var startStr = _xeUtils.default.toDateString(
|
|
406
|
-
var
|
|
407
|
-
var
|
|
416
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
417
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
418
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat);
|
|
419
|
+
var startDate = _showActualProgress ? startValDate : _xeUtils.default.getWhatQuarter(startValDate, 0, 'first');
|
|
420
|
+
var startFirstDate = _xeUtils.default.getWhatQuarter(startValDate, 0, 'first');
|
|
421
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat);
|
|
422
|
+
var endDate = _showActualProgress ? endValDate : _xeUtils.default.getWhatQuarter(endValDate, 0, 'last');
|
|
408
423
|
var endFirstDate = _xeUtils.default.getWhatQuarter(endDate, 0, 'first');
|
|
409
|
-
|
|
410
|
-
var
|
|
411
|
-
var
|
|
412
|
-
|
|
424
|
+
// 当前是季度维度,当指定解析格式精确到天时,显示实际进度
|
|
425
|
+
var startSubtractSize = 0;
|
|
426
|
+
var endSubtractSize = 1;
|
|
427
|
+
if (_showActualProgress) {
|
|
428
|
+
// 按季度天数比计算
|
|
429
|
+
var sqDaySize = _xeUtils.default.getDayOfQuarter(startDate, 0);
|
|
430
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / dayMs / sqDaySize;
|
|
431
|
+
var eqDaySize = _xeUtils.default.getDayOfQuarter(endDate, 0);
|
|
432
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / dayMs / eqDaySize;
|
|
433
|
+
}
|
|
434
|
+
var offsetLeftSize = (_indexMaps[startStr] || 0) + startSubtractSize;
|
|
413
435
|
return {
|
|
414
436
|
offsetLeftSize: offsetLeftSize,
|
|
415
|
-
offsetWidthSize: (_indexMaps[endStr] || 0) - offsetLeftSize +
|
|
437
|
+
offsetWidthSize: (_indexMaps[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
416
438
|
};
|
|
417
439
|
};
|
|
418
440
|
}
|
|
419
441
|
case 'month':
|
|
420
442
|
{
|
|
443
|
+
var _renderFormat2 = 'yyyy-MM';
|
|
444
|
+
var _showActualProgress2 = /d|H|mm|ss|S/.test(dateFormat);
|
|
421
445
|
var _indexMaps2 = {};
|
|
422
446
|
fullCols.forEach(function (_ref3, i) {
|
|
423
447
|
var dateObj = _ref3.dateObj;
|
|
424
|
-
var yyyyMM = _xeUtils.default.toDateString(dateObj.date,
|
|
448
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, _renderFormat2);
|
|
425
449
|
_indexMaps2[yyyyMM] = i;
|
|
426
450
|
});
|
|
427
451
|
return function (startValue, endValue) {
|
|
428
|
-
var
|
|
429
|
-
var
|
|
430
|
-
var startStr = _xeUtils.default.toDateString(
|
|
431
|
-
var
|
|
432
|
-
var
|
|
452
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
453
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
454
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat2);
|
|
455
|
+
var startDate = _showActualProgress2 ? startValDate : _xeUtils.default.getWhatMonth(startValDate, 0, 'first');
|
|
456
|
+
var startFirstDate = _xeUtils.default.getWhatMonth(startValDate, 0, 'first');
|
|
457
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat2);
|
|
458
|
+
var endDate = _showActualProgress2 ? endValDate : _xeUtils.default.getWhatMonth(endValDate, 0, 'last');
|
|
433
459
|
var endFirstDate = _xeUtils.default.getWhatMonth(endDate, 0, 'first');
|
|
434
|
-
|
|
435
|
-
var
|
|
436
|
-
var
|
|
437
|
-
|
|
460
|
+
// 当前是月维度,当指定解析格式精确到天时,显示实际进度
|
|
461
|
+
var startSubtractSize = 0;
|
|
462
|
+
var endSubtractSize = 1;
|
|
463
|
+
if (_showActualProgress2) {
|
|
464
|
+
// 按月天数比计算
|
|
465
|
+
var smDaySize = _xeUtils.default.getDayOfMonth(startDate, 0);
|
|
466
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / dayMs / smDaySize;
|
|
467
|
+
var emDaySize = _xeUtils.default.getDayOfMonth(endDate, 0);
|
|
468
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / dayMs / emDaySize;
|
|
469
|
+
}
|
|
470
|
+
var offsetLeftSize = (_indexMaps2[startStr] || 0) + startSubtractSize;
|
|
438
471
|
return {
|
|
439
472
|
offsetLeftSize: offsetLeftSize,
|
|
440
|
-
offsetWidthSize: (_indexMaps2[endStr] || 0) - offsetLeftSize +
|
|
473
|
+
offsetWidthSize: (_indexMaps2[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
441
474
|
};
|
|
442
475
|
};
|
|
443
476
|
}
|
|
444
477
|
case 'week':
|
|
445
478
|
{
|
|
479
|
+
var _showActualProgress3 = /d|mm|ss|S/.test(dateFormat);
|
|
446
480
|
var _indexMaps3 = {};
|
|
447
481
|
fullCols.forEach(function (_ref4, i) {
|
|
448
482
|
var dateObj = _ref4.dateObj;
|
|
@@ -450,120 +484,162 @@ function createChartRender($xeGanttView, fullCols) {
|
|
|
450
484
|
_indexMaps3[yyyyW] = i;
|
|
451
485
|
});
|
|
452
486
|
return function (startValue, endValue) {
|
|
453
|
-
var
|
|
454
|
-
var
|
|
455
|
-
var
|
|
487
|
+
var weekStartDay = weekScale ? weekScale.startDay : undefined;
|
|
488
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
489
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
490
|
+
var startDate = _showActualProgress3 ? startValDate : _xeUtils.default.getWhatWeek(startValDate, 0, 'first', weekStartDay);
|
|
491
|
+
var startWeekObj = parseWeekObj(startDate, weekStartDay);
|
|
456
492
|
var startStr = "".concat(startWeekObj.yyyy, "-").concat(startWeekObj.W);
|
|
457
|
-
var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0,
|
|
458
|
-
var
|
|
493
|
+
var startFirstDate = _xeUtils.default.getWhatWeek(startDate, 0, 'first', weekStartDay);
|
|
494
|
+
var endDate = _showActualProgress3 ? endValDate : _xeUtils.default.getWhatWeek(endValDate, 0, 'first', weekStartDay);
|
|
495
|
+
var endWeekObj = parseWeekObj(endDate, weekStartDay);
|
|
459
496
|
var endStr = "".concat(endWeekObj.yyyy, "-").concat(endWeekObj.W);
|
|
460
|
-
var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0,
|
|
461
|
-
|
|
462
|
-
var
|
|
463
|
-
var
|
|
464
|
-
|
|
497
|
+
var endFirstDate = _xeUtils.default.getWhatWeek(endDate, 0, 'first', weekStartDay);
|
|
498
|
+
// 当前是周维度,当指定解析格式精确到天时,显示实际进度
|
|
499
|
+
var startSubtractSize = 0;
|
|
500
|
+
var endSubtractSize = 1;
|
|
501
|
+
if (_showActualProgress3) {
|
|
502
|
+
// 按周天数比计算
|
|
503
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / dayMs / 7;
|
|
504
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / dayMs / 7;
|
|
505
|
+
}
|
|
506
|
+
var offsetLeftSize = (_indexMaps3[startStr] || 0) + startSubtractSize;
|
|
465
507
|
return {
|
|
466
508
|
offsetLeftSize: offsetLeftSize,
|
|
467
|
-
offsetWidthSize: (_indexMaps3[endStr] || 0) - offsetLeftSize +
|
|
509
|
+
offsetWidthSize: (_indexMaps3[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
468
510
|
};
|
|
469
511
|
};
|
|
470
512
|
}
|
|
471
513
|
case 'day':
|
|
472
514
|
case 'date':
|
|
473
515
|
{
|
|
516
|
+
var _renderFormat3 = 'yyyy-MM-dd';
|
|
517
|
+
var _showActualProgress4 = /mm|ss|S/.test(dateFormat);
|
|
474
518
|
var _indexMaps4 = {};
|
|
475
519
|
fullCols.forEach(function (_ref5, i) {
|
|
476
520
|
var dateObj = _ref5.dateObj;
|
|
477
|
-
var yyyyMM = _xeUtils.default.toDateString(dateObj.date,
|
|
521
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, _renderFormat3);
|
|
478
522
|
_indexMaps4[yyyyMM] = i;
|
|
479
523
|
});
|
|
480
524
|
return function (startValue, endValue) {
|
|
481
|
-
var
|
|
482
|
-
var
|
|
483
|
-
var startStr = _xeUtils.default.toDateString(
|
|
525
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
526
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
527
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat3);
|
|
528
|
+
var startDate = _showActualProgress4 ? startValDate : _xeUtils.default.getWhatDay(startValDate, 0, 'first');
|
|
484
529
|
var startFirstDate = _xeUtils.default.getWhatDay(startDate, 0, 'first');
|
|
485
|
-
var endStr = _xeUtils.default.toDateString(
|
|
530
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat3);
|
|
531
|
+
var endDate = _showActualProgress4 ? endValDate : _xeUtils.default.getWhatDay(endValDate, 0, 'last');
|
|
486
532
|
var endFirstDate = _xeUtils.default.getWhatDay(endDate, 0, 'first');
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
var
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
533
|
+
// 当前是天维度,当指定解析格式精确到时分秒豪秒时,显示实际进度
|
|
534
|
+
var startSubtractSize = 0;
|
|
535
|
+
var endSubtractSize = 1;
|
|
536
|
+
if (_showActualProgress4) {
|
|
537
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / dayMs;
|
|
538
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / dayMs;
|
|
539
|
+
}
|
|
540
|
+
var offsetLeftSize = (_indexMaps4[startStr] || 0) + startSubtractSize;
|
|
494
541
|
return {
|
|
495
542
|
offsetLeftSize: offsetLeftSize,
|
|
496
|
-
offsetWidthSize: (_indexMaps4[endStr] || 0) - offsetLeftSize +
|
|
543
|
+
offsetWidthSize: (_indexMaps4[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
497
544
|
};
|
|
498
545
|
};
|
|
499
546
|
}
|
|
500
547
|
case 'hour':
|
|
501
548
|
{
|
|
549
|
+
var _renderFormat4 = 'yyyy-MM-dd HH';
|
|
550
|
+
var _showActualProgress5 = /mm|ss|S/.test(dateFormat);
|
|
502
551
|
var _indexMaps5 = {};
|
|
503
552
|
fullCols.forEach(function (_ref6, i) {
|
|
504
553
|
var dateObj = _ref6.dateObj;
|
|
505
|
-
var yyyyMM = _xeUtils.default.toDateString(dateObj.date,
|
|
554
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, _renderFormat4);
|
|
506
555
|
_indexMaps5[yyyyMM] = i;
|
|
507
556
|
});
|
|
508
557
|
return function (startValue, endValue) {
|
|
509
|
-
var
|
|
510
|
-
var
|
|
511
|
-
var startStr = _xeUtils.default.toDateString(
|
|
558
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
559
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
560
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat4);
|
|
561
|
+
var startDate = _showActualProgress5 ? startValDate : _xeUtils.default.getWhatHours(startValDate, 0, 'first');
|
|
512
562
|
var startFirstDate = _xeUtils.default.getWhatHours(startDate, 0, 'first');
|
|
513
|
-
var endStr = _xeUtils.default.toDateString(
|
|
563
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat4);
|
|
564
|
+
var endDate = _showActualProgress5 ? endValDate : _xeUtils.default.getWhatHours(endValDate, 0, 'last');
|
|
514
565
|
var endFirstDate = _xeUtils.default.getWhatHours(endDate, 0, 'first');
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
var
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
566
|
+
// 当前是小时维度,当指定解析格式精确到分秒豪秒时,显示实际进度
|
|
567
|
+
var startSubtractSize = 0;
|
|
568
|
+
var endSubtractSize = 1;
|
|
569
|
+
if (_showActualProgress5) {
|
|
570
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / hourMs;
|
|
571
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / hourMs;
|
|
572
|
+
}
|
|
573
|
+
var offsetLeftSize = (_indexMaps5[startStr] || 0) + startSubtractSize;
|
|
521
574
|
return {
|
|
522
575
|
offsetLeftSize: offsetLeftSize,
|
|
523
|
-
offsetWidthSize: (_indexMaps5[endStr] || 0) - offsetLeftSize +
|
|
576
|
+
offsetWidthSize: (_indexMaps5[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
524
577
|
};
|
|
525
578
|
};
|
|
526
579
|
}
|
|
527
580
|
case 'minute':
|
|
528
581
|
{
|
|
582
|
+
var _renderFormat5 = 'yyyy-MM-dd HH:mm';
|
|
583
|
+
var _showActualProgress6 = /ss|S/.test(dateFormat);
|
|
529
584
|
var _indexMaps6 = {};
|
|
530
585
|
fullCols.forEach(function (_ref7, i) {
|
|
531
586
|
var dateObj = _ref7.dateObj;
|
|
532
|
-
var yyyyMM = _xeUtils.default.toDateString(dateObj.date,
|
|
587
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, _renderFormat5);
|
|
533
588
|
_indexMaps6[yyyyMM] = i;
|
|
534
589
|
});
|
|
535
590
|
return function (startValue, endValue) {
|
|
536
|
-
var
|
|
537
|
-
var
|
|
538
|
-
var startStr = _xeUtils.default.toDateString(
|
|
591
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
592
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
593
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat5);
|
|
594
|
+
var startDate = _showActualProgress6 ? startValDate : _xeUtils.default.getWhatMinutes(startValDate, 0, 'first');
|
|
539
595
|
var startFirstDate = _xeUtils.default.getWhatMinutes(startDate, 0, 'first');
|
|
540
|
-
var endStr = _xeUtils.default.toDateString(
|
|
596
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat5);
|
|
597
|
+
var endDate = _showActualProgress6 ? endValDate : _xeUtils.default.getWhatMinutes(endValDate, 0, 'last');
|
|
541
598
|
var endFirstDate = _xeUtils.default.getWhatMinutes(endDate, 0, 'first');
|
|
542
|
-
|
|
543
|
-
var
|
|
544
|
-
var
|
|
545
|
-
|
|
599
|
+
// 当前是分钟维度,当指定解析格式精确到秒豪秒时,显示实际进度
|
|
600
|
+
var startSubtractSize = 0;
|
|
601
|
+
var endSubtractSize = 1;
|
|
602
|
+
if (_showActualProgress6) {
|
|
603
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / minuteMs;
|
|
604
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / minuteMs;
|
|
605
|
+
}
|
|
606
|
+
var offsetLeftSize = (_indexMaps6[startStr] || 0) + startSubtractSize;
|
|
546
607
|
return {
|
|
547
608
|
offsetLeftSize: offsetLeftSize,
|
|
548
|
-
offsetWidthSize: (_indexMaps6[endStr] || 0) - offsetLeftSize +
|
|
609
|
+
offsetWidthSize: (_indexMaps6[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
549
610
|
};
|
|
550
611
|
};
|
|
551
612
|
}
|
|
552
613
|
case 'second':
|
|
553
614
|
{
|
|
554
|
-
var
|
|
615
|
+
var _renderFormat6 = 'yyyy-MM-dd HH:mm:ss';
|
|
616
|
+
var _showActualProgress7 = /S/.test(dateFormat);
|
|
617
|
+
var _indexMaps7 = {};
|
|
618
|
+
fullCols.forEach(function (_ref8, i) {
|
|
619
|
+
var dateObj = _ref8.dateObj;
|
|
620
|
+
var yyyyMM = _xeUtils.default.toDateString(dateObj.date, _renderFormat6);
|
|
621
|
+
_indexMaps7[yyyyMM] = i;
|
|
622
|
+
});
|
|
555
623
|
return function (startValue, endValue) {
|
|
556
|
-
var
|
|
557
|
-
var
|
|
558
|
-
var
|
|
559
|
-
var
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
624
|
+
var startValDate = parseStringDate($xeGanttView, startValue);
|
|
625
|
+
var endValDate = parseStringDate($xeGanttView, endValue);
|
|
626
|
+
var startStr = _xeUtils.default.toDateString(startValDate, _renderFormat6);
|
|
627
|
+
var startDate = _showActualProgress7 ? startValDate : _xeUtils.default.getWhatSeconds(startValDate, 0, 'first');
|
|
628
|
+
var startFirstDate = _xeUtils.default.getWhatSeconds(startDate, 0, 'first');
|
|
629
|
+
var endStr = _xeUtils.default.toDateString(endValDate, _renderFormat6);
|
|
630
|
+
var endDate = _showActualProgress7 ? endValDate : _xeUtils.default.getWhatSeconds(endValDate, 0, 'last');
|
|
631
|
+
var endFirstDate = _xeUtils.default.getWhatSeconds(endDate, 0, 'first');
|
|
632
|
+
// 当前是秒维度,当指定解析格式精确到豪秒时,显示实际进度
|
|
633
|
+
var startSubtractSize = 0;
|
|
634
|
+
var endSubtractSize = 1;
|
|
635
|
+
if (_showActualProgress7) {
|
|
636
|
+
startSubtractSize = (startDate.getTime() - startFirstDate.getTime()) / secondMs;
|
|
637
|
+
endSubtractSize = (endDate.getTime() - endFirstDate.getTime()) / secondMs;
|
|
563
638
|
}
|
|
639
|
+
var offsetLeftSize = (_indexMaps7[startStr] || 0) + startSubtractSize;
|
|
564
640
|
return {
|
|
565
641
|
offsetLeftSize: offsetLeftSize,
|
|
566
|
-
offsetWidthSize:
|
|
642
|
+
offsetWidthSize: (_indexMaps7[endStr] || 0) - offsetLeftSize + endSubtractSize
|
|
567
643
|
};
|
|
568
644
|
};
|
|
569
645
|
}
|
|
@@ -1595,8 +1671,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1595
1671
|
}
|
|
1596
1672
|
return $xeGanttView.$nextTick();
|
|
1597
1673
|
},
|
|
1598
|
-
connectUpdate: function connectUpdate(
|
|
1599
|
-
var $table =
|
|
1674
|
+
connectUpdate: function connectUpdate(_ref9) {
|
|
1675
|
+
var $table = _ref9.$table;
|
|
1600
1676
|
var $xeGanttView = this;
|
|
1601
1677
|
var internalData = $xeGanttView.internalData;
|
|
1602
1678
|
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 a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,n,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(o.push(l.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(n=a.return(),Object(n)!==n))return}finally{if(s)throw r}}return o}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}function createReactData(){return{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t,a,l,r,i,n,o,c,s,d,u=e.$xeGantt,e=e.internalData,f=u.reactData,h=f.taskScaleList,u=u.computeMinScale;u&&(h=h.find(function(e){return"week"===e.type}),u="week"===u.type,t=new Date,a=(c=_slicedToArray(_xeUtils.default.toDateString(t,"yyyy-M-MM-dd-HH-mm-ss").split("-"),7))[0],l=c[1],r=c[2],i=c[3],n=c[4],o=c[5],c=c[6],s=t.getDay()+1,d=Math.ceil((t.getMonth()+1)/3),h="".concat(_xeUtils.default.getYearWeek(t,h?h.startDay:void 0)),u&&checkWeekOfsetYear(h,l)&&(a="".concat(Number(a)+1),l="1",r="01"),f.nowTime=t.getTime(),e.todayDateMaps={year:a,quarter:"".concat(a,"_q").concat(d),month:"".concat(a,"_").concat(r),week:"".concat(a,"_W").concat(h),day:"".concat(a,"_").concat(r,"_").concat(i,"_E").concat(s),date:"".concat(a,"_").concat(r,"_").concat(i),hour:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n),minute:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n,"_").concat(o),second:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c)})}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,n=[],o=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d="week"===i.type,u=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},f=0;f<r.length;f++){var h=r[f],m=_slicedToArray(_xeUtils.default.toDateString(h,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),g=m[0],y=m[1],p=m[2],S=m[3],x=m[4],v=m[5],_=m[6],T=m[7],D=m[8],b=m[9],w=m[10],m=m[11],M=h.getDay(),E=M+1,W=Math.ceil((h.getMonth()+1)/3),U="".concat(_xeUtils.default.getYearWeek(h,l?l.startDay:void 0)),k=_xeUtils.default.padStart(U,2,"0"),h=(d&&checkWeekOfsetYear(U,p)&&(y="".concat(Number(y)+1),S="0"+(p="1")),{date:h,yy:g,yyyy:y,M:p,MM:S,d:x,dd:v,H:_,HH:T,m:D,mm:b,s:w,ss:m,q:W,W:U,WW:k,E:E,e:M}),g={year:{field:y,title:y,dateObj:h},quarter:{field:"".concat(y,"_q").concat(W),title:"".concat(W),dateObj:h},month:{field:"".concat(y,"_").concat(S),title:S,dateObj:h},week:{field:"".concat(y,"_W").concat(U),title:"".concat(U),dateObj:h},day:{field:"".concat(y,"_").concat(S,"_").concat(v,"_E").concat(E),title:"".concat(E),dateObj:h},date:{field:"".concat(y,"_").concat(S,"_").concat(v),title:v,dateObj:h},hour:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(T),title:T,dateObj:h},minute:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(T,"_").concat(b),title:b,dateObj:h},second:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(T,"_").concat(b,"_").concat(m),title:m,dateObj:h}},p=g[i.type];i.level<19&&u("year",g,p),i.level<17&&u("quarter",g,p),i.level<15&&u("month",g,p),i.level<13&&u("week",g,p),i.level<11&&u("day",g,p),i.level<9&&u("date",g,p),i.level<7&&u("hour",g,p),i.level<5&&u("minute",g,p),i.level<3&&u("second",g,p),n.push(p)}a.forEach(function(e){var t;e.type===i.type?o.push({scaleItem:e,columns:n}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),o.push({scaleItem:e,columns:t}))})}return{fullCols:n,groupCols:o}}function checkWeekOfsetYear(e,t){return"1"==="".concat(e)&&"12"==="".concat(t)}function parseWeekObj(e,t){var e=_xeUtils.default.toStringDate(e),a=e.getFullYear(),l=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return checkWeekOfsetYear(e,l+1)&&a++,{yyyy:a,W:e}}function createChartRender(o,e){var t=o.$xeGantt,r=o.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;if(a)switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e="".concat(e.yyyy,"-").concat(e.W);f[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=parseWeekObj(e,c?c.startDay:void 0),a="".concat(a.yyyy,"-").concat(a.W),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=parseWeekObj(t,c?c.startDay:void 0),r="".concat(r.yyyy,"-").concat(r.W),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),n=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/n,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/n,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=(t.getTime()-i.getTime())/minuteMs/n,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,i=(h[a]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(h[r]||0)-i+t+(e||l?0:1)}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=(t.getTime()-i.getTime())/minuteMs/n,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,i=(m[a]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(m[r]||0)-i+t+(e||l?0:1)}};case"minute":var g={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");g[e]=t}),function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),n=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-l.getTime())/minuteMs/n,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/n,t=(g[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(g[r]||0)-t+l}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(o,e),t=parseStringDate(o,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var i,n,o,c,t,a,l,r,s,d,u,f,h=e.$xeGantt,m=e.reactData,g=e.internalData,y=h.treeConfig,p=m.minViewDate,S=m.maxViewDate,x=handleColumnHeader(e),v=x.fullCols,x=x.groupCols;p&&S&&(i=g.xeTable)&&(n=h.computeStartField,o=h.computeEndField,c=h.computeTypeField,p=i.isRowGroupStatus,S=i.afterFullData,h=i.afterTreeFullData,t=i.afterGroupFullData,a=i.computeAggregateOpts,r=(l=i.computeTreeOpts).transform,s=l.children||l.childrenField,d={},u=createChartRender(e,v),f=function(e){var t=i.getRowid(e),a=_xeUtils.default.get(e,n),l=_xeUtils.default.get(e,o),r=(0,_util.getTaskType)(_xeUtils.default.get(e,c));(0,_util.hasMilestoneTask)(r)&&(l=a=a||l),(0,_util.hasSubviewTask)(r)?d[t]={row:e,rowid:t,oLeftSize:0,oWidthSize:0}:a&&l&&(a=(r=u(a,l)).offsetLeftSize,d[t]={row:e,rowid:t,oLeftSize:a,oWidthSize:r.offsetWidthSize})},p?(p=a.mapChildrenField)&&_xeUtils.default.eachTree(t,f,{children:p}):y?_xeUtils.default.eachTree(h,f,{children:r?l.mapChildrenField:s}):S.forEach(f),g.chartMaps=d),g.visibleColumn=v,m.headerGroups=x,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(l){var r,i,n,e,t,a,o,c,s,d,u=l.$xeGantt,f=l.reactData,h=l.internalData,m=u.treeConfig,g=h.scrollXStore,y=h.xeTable,p=null,S=null;y&&(r=u.computeStartField,i=u.computeEndField,n=u.computeTypeField,u=y.isRowGroupStatus,e=y.afterFullData,t=y.afterTreeFullData,a=y.computeAggregateOpts,c=(o=y.computeTreeOpts).transform,s=o.children||o.childrenField,d=function(e){var t=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i),e=_xeUtils.default.get(e,n),t=t||a;!(0,_util.hasMilestoneTask)(e)&&a||(a=t),t&&(e=parseStringDate(l,t),!p||p.getTime()>e.getTime())&&(p=e),a&&(t=parseStringDate(l,a),!S||S.getTime()<t.getTime())&&(S=t)},u?(u=a.mapChildrenField)&&_xeUtils.default.eachTree(y.afterGroupFullData,d,{children:u}):m?_xeUtils.default.eachTree(t,d,{children:c?o.mapChildrenField:s}):e.forEach(d)),g.startIndex=0,g.endIndex=Math.max(1,g.visibleSize),f.minViewDate=p,f.maxViewDate=S,h.startMaps={},h.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,n&&(a.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),a.overflowX=e)}function handleSubTaskMinMaxSize(e,a,t){var l=e.$xeGantt,r=e.internalData.chartMaps,e=a.computeTreeOpts,e=e.children||e.childrenField,i=l.computeTypeField,n=0,o=0;return _xeUtils.default.eachTree(t,function(e){var t=a.getRowid(e),e=_xeUtils.default.get(e,i);(0,_util.hasSubviewTask)(e)||(e=t?r[t]:null)&&(o=Math.max(o,e.oLeftSize+e.oWidthSize),n=n?Math.min(n,e.oLeftSize):e.oLeftSize)},{children:e}),{minSize:n,maxSize:o}}function updateTaskChartStyle(i){var n,e=i.$xeGantt,t=i.internalData,e=e.internalData,o=t.xeTable,c=e.dragBarRow,s=i.reactData.viewCellWidth,d=t.chartMaps,e=(0,_util.getRefElem)(t.elemStore["main-chart-task-wrapper"]);return e&&o&&(t=o.computeTreeOpts,n=t.children||t.childrenField,_xeUtils.default.arrayEach(e.children,function(e){var t,a,l,r=e.children[0];r&&(e=e.getAttribute("rowid"),c&&o.getRowid(c)===e||(l=(e=e?d[e]:null)?e.row:null,(0,_dom.hasClass)(r,"is--subview")?(t=r.firstElementChild)&&((0,_dom.hasClass)(t,"is--inline")?_xeUtils.default.arrayEach(t.children,function(e){var t,a,e=e.children[0],l=e.getAttribute("rowid")||"",l=l?d[l]:null;l&&(a=l.row,(0,_dom.hasClass)(e,"is--subview")?(a=a[n],t=(a=handleSubTaskMinMaxSize(i,o,a)).minSize,a=a.maxSize,e.style.left="".concat(s*t,"px"),e.style.width="".concat(s*(a-t),"px")):(e.style.left="".concat((0,_util.getTaskBarLeft)(l,s),"px"),(0,_dom.hasClass)(e,"is--milestone")||(e.style.width="".concat((0,_util.getTaskBarWidth)(l,s),"px"))))}):(t=(t=t.children[0])?t.children[0]:null)&&(l=l?l[n]:[],a=(l=handleSubTaskMinMaxSize(i,o,l)).minSize,l=l.maxSize,t.style.left="".concat(s*a,"px"),t.style.width="".concat(s*(l-a),"px"))):(r.style.left="".concat((0,_util.getTaskBarLeft)(e,s),"px"),(0,_dom.hasClass)(r,"is--milestone")||(r.style.width="".concat((0,_util.getTaskBarWidth)(e,s),"px")))))})),i.$nextTick()}function updateStyle(e){var t,a,l,r,i,n,o,c,s=e.$xeGantt,d=e.reactData,u=e.internalData,f=d.scrollbarWidth,h=d.scrollbarHeight,m=d.headerGroups,g=d.tableColumn,y=u.elemStore,p=u.visibleColumn,u=u.xeTable,S=e.$refs.refElem;if(S&&s)return r=s.computeScrollbarOpts,n=s.computeScrollbarXToTop,i=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,c=e.$refs.refScrollXVirtualElem,f=f,h=h,l=a=t=0,u&&(t=u.tBodyHeight,a=u.tHeaderHeight,l=u.tFooterHeight),u="visible",(s.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(f=0,u="hidden"),(r=(0,_util.getRefElem)(y["main-header-scroll"]))&&(r.style.height="".concat(a,"px"),r.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(y["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(m=(0,_util.getRefElem)(y["main-footer-scroll"]))&&(m.style.height="".concat(l,"px")),c&&(c.style.height="".concat(h,"px"),c.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(f,"px"):"",m.style.width="".concat(S.clientWidth-f,"px")),i&&(i.style.width=n?"".concat(f,"px"):"",i.style.display=n&&h?"block":""),o&&(o.style.width=n?"":"".concat(f,"px"),o.style.display=!n&&h?"block":""),(c=e.$refs.refScrollYVirtualElem)&&(c.style.width="".concat(f,"px"),c.style.height="".concat(t+a+l,"px"),c.style.visibility=u),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(a,"px"),m.style.display=a?"block":""),(S=e.$refs.refScrollYWrapperElem)&&(S.style.height="".concat(t,"px"),S.style.top="".concat(a,"px")),(i=e.$refs.refScrollYBottomCornerElem)&&(i.style.height="".concat(l,"px"),i.style.top="".concat(a+t,"px"),i.style.display=l?"block":""),o=40,h=o=(n=e.$refs.refColInfoElem)?n.clientWidth||40:o,p.length&&(h=Math.max(0,o*p.length),r)&&0<(c=(f=r.clientWidth)-h)&&(o+=Math.max(0,c/p.length),h=f),d.viewCellWidth=o,u=(0,_util.getRefElem)(y["main-header-table"]),m=(0,_util.getRefElem)(y["main-body-table"]),S=o*g.length,u&&(u.style.width="".concat(h,"px")),m&&(m.style.width="".concat(S,"px")),d.scrollXWidth=h,Promise.all([updateTaskChartStyle(e),s.handleUpdateTaskLinkStyle?s.handleUpdateTaskLinkStyle(e):null])}function handleRecalculateStyle(e){var t=e.internalData,a=e.$xeGantt,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth&&a?(calcScrollbar(e),updateStyle(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var n=i.internalData;return new Promise(function(e){var t=n.rceTimeout,a=n.rceRunTime,l=n.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,n=a.offsetSize,o=handleVirtualXVisible(e),c=o.toVisibleIndex,o=o.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-n-l),endIndex:t?c+o:c+o+n+l},n=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+o+1,t.startIndex),l=t.endIndex;!(c<=r||i-o-1<=c)||r===n&&i===l||(a.startIndex=n,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,n=a.elemStore,a=a.scrollXStore,o=(0,_util.getRefElem)(n["main-body-table"]),a=a.startIndex,c=0,s=(l&&(c=Math.max(0,a*i)),o&&(o.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),r),a=(["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(s,"px"):"")}),e.$refs.refScrollXSpaceElem),i=(a&&(a.style.width="".concat(s,"px")),(0,_util.getRefElem)(n["main-chart-before-wrapper"])),o=i?i.firstElementChild:null,r=(o&&(o.style.width="".concat(s,"px")),(0,_util.getRefElem)(n["main-chart-after-wrapper"])),a=r?r.firstElementChild:null;return a&&(a.style.width="".concat(s,"px")),t.scrollXLeft=c,t.scrollXWidth=s,calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,n=(0,_util.getRefElem)(i["main-body-scroll"]),o=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&o&&n.scrollTop+f>=maxYHeight?maxYHeight-o.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-task-wrapper"])),c=(o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translateY(".concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem),l=(f&&(f.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-before-wrapper"])),r=l?l.firstElementChild:null,o=(r&&(r.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-after-wrapper"])),n=o?o.firstElementChild:null,c=(n&&(n.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-now-line"]));return c&&(c.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,n=e.internalData;a&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var n,o,c,s,d,u,f,h,m,g,y,p,S=e.$xeGantt,x=e.internalData,v=x.xeTable,_=e.$refs.refScrollXHandleElem,T=e.$refs.refScrollYHandleElem;_&&T&&v&&(n=T.clientHeight,o=_.clientWidth,T=T.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=g=c=p=!1,l&&(y=v.computeScrollXThreshold,(g=i<=0)||(s=_-1<=i+o),x.lastScrollLeft<i?(d="right",_-y<=i+o&&(m=!0)):(d="left",i<=y&&(h=!0))),a&&(y=v.computeScrollYThreshold,(p=r<=0)||(c=T-1<=r+n),x.lastScrollTop<r?(d="bottom",T-y<=r+n&&(f=!0)):(d="top",r<=y&&(u=!0))),handleScrollData(e,a,l,r,i),v={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:n,bodyWidth:o,scrollHeight:T,scrollWidth:_,isX:l,isY:a,isTop:p,isBottom:c,isLeft:g,isRight:s,direction:d},(f||u||m||h)&&S.dispatchEvent("scroll-boundary",v,t),S.dispatchEvent("scroll",v,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:createReactData(),internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=e.reactData,l=t.minViewDate,r=t.maxViewDate,i=e.computeMinScale,t=e.computeTaskViewOpts.gridding,n=[];if(i&&l&&r){var e=i.type,o=i.startDay,c=-(a.currLeftSpacing+_xeUtils.default.toNumber(t&&t.leftSpacing||0)),s=a.currRightSpacing+_xeUtils.default.toNumber(t&&t.rightSpacing||0);switch(e){case"year":for(var d=_xeUtils.default.getWhatYear(l,c,"first"),u=_xeUtils.default.getWhatYear(r,s,"first");d<=u;){var f=d;n.push(f),d=_xeUtils.default.getWhatYear(d,1)}break;case"quarter":for(var h=_xeUtils.default.getWhatQuarter(l,c,"first"),m=_xeUtils.default.getWhatQuarter(r,s,"first");h<=m;){var g=h;n.push(g),h=_xeUtils.default.getWhatQuarter(h,1)}break;case"month":for(var y=_xeUtils.default.getWhatMonth(l,c,"first"),p=_xeUtils.default.getWhatMonth(r,s,"first");y<=p;){var S=y;n.push(S),y=_xeUtils.default.getWhatMonth(y,1)}break;case"week":for(var x=_xeUtils.default.getWhatWeek(l,c,o,o),v=_xeUtils.default.getWhatWeek(r,s,o,o);x<=v;){var _=x;n.push(_),x=_xeUtils.default.getWhatWeek(x,1)}break;case"day":case"date":for(var T=_xeUtils.default.getWhatDay(l,c,"first"),D=_xeUtils.default.getWhatDay(r,s,"first");T<=D;){var b=T;n.push(b),T=_xeUtils.default.getWhatDay(T,1)}break;case"hour":case"minute":case"second":for(var w=+(0,_util.getStandardGapTime)(i.type),M=l.getTime()+c*w,E=r.getTime()+s*w;M<=E;){var W=new Date(M);n.push(W),M+=w}}}return n},computeNowLineLeft:function(){var e=this.$xeGantt,t=this.reactData,a=this.internalData,l=e.reactData,r=t.minViewDate,i=t.maxViewDate,n=t.viewCellWidth,o=a.visibleColumn,t=a.todayDateMaps,a=e.computeMinScale,c=e.computeTaskViewOpts.showNowLine,e=e.computeTaskNowLineOpts.mode,l=l.nowTime,s=0;if(c&&a&&r&&i&&l>=r.getTime()&&l<=i.getTime()){for(var d=t[a.type],u=null,f=null,h=0;h<o.length;h++){var m=o[h];if(m.field===d){u=m,s=h*n,f=o[h+1];break}}"progress"===e?u&&f&&(c=u.dateObj.date.getTime(),s+=Math.max(0,Math.min(1,(l-c)/(f.dateObj.date.getTime()-c)))*n):"center"===e?s+=n/2:"end"===e&&(s+=n-1)}return s}}),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(e){var t=this,a=t.$xeGantt,l=t.reactData,a=a.reactData,r=t.internalData.xeTable;return r&&(r=r.tableData,l.tableData=r,e&&(a.currLeftSpacing=0,a.currRightSpacing=0,handleUpdateData(t)),handleRecalculateStyle(t)),t.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,n=this,o=n.reactData,c=n.internalData,o=o.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=n.$refs.refScrollXHandleElem,l=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(n,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),o)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,n=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(n,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.reactData,t=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render:function(e){return this.renderVN(e)}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,n,o=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(o.push(l.value),o.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(n=a.return(),Object(n)!==n))return}finally{if(s)throw r}}return o}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",secondMs=1e3,minuteMs=6e4,hourMs=36e5,dayMs=24*hourMs;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}function createReactData(){return{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeDateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t,a,l,r,i,n,o,c,s,d,u=e.$xeGantt,e=e.internalData,f=u.reactData,h=f.taskScaleList,u=u.computeMinScale;u&&(h=h.find(function(e){return"week"===e.type}),u="week"===u.type,t=new Date,a=(c=_slicedToArray(_xeUtils.default.toDateString(t,"yyyy-M-MM-dd-HH-mm-ss").split("-"),7))[0],l=c[1],r=c[2],i=c[3],n=c[4],o=c[5],c=c[6],s=t.getDay()+1,d=Math.ceil((t.getMonth()+1)/3),h="".concat(_xeUtils.default.getYearWeek(t,h?h.startDay:void 0)),u&&checkWeekOfsetYear(h,l)&&(a="".concat(Number(a)+1),l="1",r="01"),f.nowTime=t.getTime(),e.todayDateMaps={year:a,quarter:"".concat(a,"_q").concat(d),month:"".concat(a,"_").concat(r),week:"".concat(a,"_W").concat(h),day:"".concat(a,"_").concat(r,"_").concat(i,"_E").concat(s),date:"".concat(a,"_").concat(r,"_").concat(i),hour:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n),minute:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n,"_").concat(o),second:"".concat(a,"_").concat(r,"_").concat(i,"_").concat(n,"_").concat(o,"_").concat(c)})}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,n=[],o=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d="week"===i.type,u=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},f=0;f<r.length;f++){var h=r[f],m=_slicedToArray(_xeUtils.default.toDateString(h,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),g=m[0],p=m[1],S=m[2],y=m[3],x=m[4],v=m[5],_=m[6],D=m[7],T=m[8],b=m[9],w=m[10],m=m[11],W=h.getDay(),U=W+1,E=Math.ceil((h.getMonth()+1)/3),M="".concat(_xeUtils.default.getYearWeek(h,l?l.startDay:void 0)),k=_xeUtils.default.padStart(M,2,"0"),h=(d&&checkWeekOfsetYear(M,S)&&(p="".concat(Number(p)+1),y="0"+(S="1")),{date:h,yy:g,yyyy:p,M:S,MM:y,d:x,dd:v,H:_,HH:D,m:T,mm:b,s:w,ss:m,q:E,W:M,WW:k,E:U,e:W}),g={year:{field:p,title:p,dateObj:h},quarter:{field:"".concat(p,"_q").concat(E),title:"".concat(E),dateObj:h},month:{field:"".concat(p,"_").concat(y),title:y,dateObj:h},week:{field:"".concat(p,"_W").concat(M),title:"".concat(M),dateObj:h},day:{field:"".concat(p,"_").concat(y,"_").concat(v,"_E").concat(U),title:"".concat(U),dateObj:h},date:{field:"".concat(p,"_").concat(y,"_").concat(v),title:v,dateObj:h},hour:{field:"".concat(p,"_").concat(y,"_").concat(v,"_").concat(D),title:D,dateObj:h},minute:{field:"".concat(p,"_").concat(y,"_").concat(v,"_").concat(D,"_").concat(b),title:b,dateObj:h},second:{field:"".concat(p,"_").concat(y,"_").concat(v,"_").concat(D,"_").concat(b,"_").concat(m),title:m,dateObj:h}},S=g[i.type];i.level<19&&u("year",g,S),i.level<17&&u("quarter",g,S),i.level<15&&u("month",g,S),i.level<13&&u("week",g,S),i.level<11&&u("day",g,S),i.level<9&&u("date",g,S),i.level<7&&u("hour",g,S),i.level<5&&u("minute",g,S),i.level<3&&u("second",g,S),n.push(S)}a.forEach(function(e){var t;e.type===i.type?o.push({scaleItem:e,columns:n}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),o.push({scaleItem:e,columns:t}))})}return{fullCols:n,groupCols:o}}function checkWeekOfsetYear(e,t){return"1"==="".concat(e)&&"12"==="".concat(t)}function parseWeekObj(e,t){var e=_xeUtils.default.toStringDate(e),a=e.getFullYear(),l=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return checkWeekOfsetYear(e,l+1)&&a++,{yyyy:a,W:e}}function createChartRender(s,e){var t=s.$xeGantt,a=t.computeMinScale,c=t.computeWeekScale,l=t.computeDateFormat;if(a)switch(t.computeScaleUnit){case"year":var d=/M|d|H|mm|ss|S/.test(l),u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");u[e]=t}),function(e,t){var a,e=parseStringDate(s,e),t=parseStringDate(s,t),l=_xeUtils.default.toDateString(e,"yyyy"),r=d?e:_xeUtils.default.getWhatYear(e,0,"first"),e=_xeUtils.default.getWhatYear(e,0,"first"),i=_xeUtils.default.toDateString(t,"yyyy"),t=d?t:_xeUtils.default.getWhatYear(t,0,"last"),n=_xeUtils.default.getWhatYear(t,0,"first"),o=0,c=1,e=(d&&(a=_xeUtils.default.getDayOfYear(r,0),o=(r.getTime()-e.getTime())/dayMs/a,r=_xeUtils.default.getDayOfYear(t,0),c=(t.getTime()-n.getTime())/dayMs/r),(u[l]||0)+o);return{offsetLeftSize:e,offsetWidthSize:(u[i]||0)-e+c}};case"quarter":var f=/M|d|H|mm|ss|S/.test(l),h="yyyy-q",m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,h);m[e]=t}),function(e,t){var a,e=parseStringDate(s,e),t=parseStringDate(s,t),l=_xeUtils.default.toDateString(e,h),r=f?e:_xeUtils.default.getWhatQuarter(e,0,"first"),e=_xeUtils.default.getWhatQuarter(e,0,"first"),i=_xeUtils.default.toDateString(t,h),t=f?t:_xeUtils.default.getWhatQuarter(t,0,"last"),n=_xeUtils.default.getWhatQuarter(t,0,"first"),o=0,c=1,e=(f&&(a=_xeUtils.default.getDayOfQuarter(r,0),o=(r.getTime()-e.getTime())/dayMs/a,r=_xeUtils.default.getDayOfQuarter(t,0),c=(t.getTime()-n.getTime())/dayMs/r),(m[l]||0)+o);return{offsetLeftSize:e,offsetWidthSize:(m[i]||0)-e+c}};case"month":var g="yyyy-MM",p=/d|H|mm|ss|S/.test(l),S={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,g);S[e]=t}),function(e,t){var a,e=parseStringDate(s,e),t=parseStringDate(s,t),l=_xeUtils.default.toDateString(e,g),r=p?e:_xeUtils.default.getWhatMonth(e,0,"first"),e=_xeUtils.default.getWhatMonth(e,0,"first"),i=_xeUtils.default.toDateString(t,g),t=p?t:_xeUtils.default.getWhatMonth(t,0,"last"),n=_xeUtils.default.getWhatMonth(t,0,"first"),o=0,c=1,e=(p&&(a=_xeUtils.default.getDayOfMonth(r,0),o=(r.getTime()-e.getTime())/dayMs/a,r=_xeUtils.default.getDayOfMonth(t,0),c=(t.getTime()-n.getTime())/dayMs/r),(S[l]||0)+o);return{offsetLeftSize:e,offsetWidthSize:(S[i]||0)-e+c}};case"week":var y=/d|mm|ss|S/.test(l),x={};return e.forEach(function(e,t){e=e.dateObj,e="".concat(e.yyyy,"-").concat(e.W);x[e]=t}),function(e,t){var a=c?c.startDay:void 0,e=parseStringDate(s,e),t=parseStringDate(s,t),e=y?e:_xeUtils.default.getWhatWeek(e,0,"first",a),l=parseWeekObj(e,a),l="".concat(l.yyyy,"-").concat(l.W),r=_xeUtils.default.getWhatWeek(e,0,"first",a),t=y?t:_xeUtils.default.getWhatWeek(t,0,"first",a),i=parseWeekObj(t,a),i="".concat(i.yyyy,"-").concat(i.W),a=_xeUtils.default.getWhatWeek(t,0,"first",a),n=0,o=1,e=(y&&(n=(e.getTime()-r.getTime())/dayMs/7,o=(t.getTime()-a.getTime())/dayMs/7),(x[l]||0)+n);return{offsetLeftSize:e,offsetWidthSize:(x[i]||0)-e+o}};case"day":case"date":var v="yyyy-MM-dd",_=/mm|ss|S/.test(l),D={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,v);D[e]=t}),function(e,t){var e=parseStringDate(s,e),t=parseStringDate(s,t),a=_xeUtils.default.toDateString(e,v),e=_?e:_xeUtils.default.getWhatDay(e,0,"first"),l=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,v),t=_?t:_xeUtils.default.getWhatDay(t,0,"last"),i=_xeUtils.default.getWhatDay(t,0,"first"),n=0,o=1,e=(_&&(n=(e.getTime()-l.getTime())/dayMs,o=(t.getTime()-i.getTime())/dayMs),(D[a]||0)+n);return{offsetLeftSize:e,offsetWidthSize:(D[r]||0)-e+o}};case"hour":var T="yyyy-MM-dd HH",b=/mm|ss|S/.test(l),w={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,T);w[e]=t}),function(e,t){var e=parseStringDate(s,e),t=parseStringDate(s,t),a=_xeUtils.default.toDateString(e,T),e=b?e:_xeUtils.default.getWhatHours(e,0,"first"),l=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,T),t=b?t:_xeUtils.default.getWhatHours(t,0,"last"),i=_xeUtils.default.getWhatHours(t,0,"first"),n=0,o=1,e=(b&&(n=(e.getTime()-l.getTime())/hourMs,o=(t.getTime()-i.getTime())/hourMs),(w[a]||0)+n);return{offsetLeftSize:e,offsetWidthSize:(w[r]||0)-e+o}};case"minute":var W="yyyy-MM-dd HH:mm",U=/ss|S/.test(l),E={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,W);E[e]=t}),function(e,t){var e=parseStringDate(s,e),t=parseStringDate(s,t),a=_xeUtils.default.toDateString(e,W),e=U?e:_xeUtils.default.getWhatMinutes(e,0,"first"),l=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,W),t=U?t:_xeUtils.default.getWhatMinutes(t,0,"last"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),n=0,o=1,e=(U&&(n=(e.getTime()-l.getTime())/minuteMs,o=(t.getTime()-i.getTime())/minuteMs),(E[a]||0)+n);return{offsetLeftSize:e,offsetWidthSize:(E[r]||0)-e+o}};case"second":var M="yyyy-MM-dd HH:mm:ss",k=/S/.test(l),L={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,M);L[e]=t}),function(e,t){var e=parseStringDate(s,e),t=parseStringDate(s,t),a=_xeUtils.default.toDateString(e,M),e=k?e:_xeUtils.default.getWhatSeconds(e,0,"first"),l=_xeUtils.default.getWhatSeconds(e,0,"first"),r=_xeUtils.default.toDateString(t,M),t=k?t:_xeUtils.default.getWhatSeconds(t,0,"last"),i=_xeUtils.default.getWhatSeconds(t,0,"first"),n=0,o=1,e=(k&&(n=(e.getTime()-l.getTime())/secondMs,o=(t.getTime()-i.getTime())/secondMs),(L[a]||0)+n);return{offsetLeftSize:e,offsetWidthSize:(L[r]||0)-e+o}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var i,n,o,c,t,a,l,r,s,d,u,f,h=e.$xeGantt,m=e.reactData,g=e.internalData,p=h.treeConfig,S=m.minViewDate,y=m.maxViewDate,x=handleColumnHeader(e),v=x.fullCols,x=x.groupCols;S&&y&&(i=g.xeTable)&&(n=h.computeStartField,o=h.computeEndField,c=h.computeTypeField,S=i.isRowGroupStatus,y=i.afterFullData,h=i.afterTreeFullData,t=i.afterGroupFullData,a=i.computeAggregateOpts,r=(l=i.computeTreeOpts).transform,s=l.children||l.childrenField,d={},u=createChartRender(e,v),f=function(e){var t=i.getRowid(e),a=_xeUtils.default.get(e,n),l=_xeUtils.default.get(e,o),r=(0,_util.getTaskType)(_xeUtils.default.get(e,c));(0,_util.hasMilestoneTask)(r)&&(l=a=a||l),(0,_util.hasSubviewTask)(r)?d[t]={row:e,rowid:t,oLeftSize:0,oWidthSize:0}:a&&l&&(a=(r=u(a,l)).offsetLeftSize,d[t]={row:e,rowid:t,oLeftSize:a,oWidthSize:r.offsetWidthSize})},S?(S=a.mapChildrenField)&&_xeUtils.default.eachTree(t,f,{children:S}):p?_xeUtils.default.eachTree(h,f,{children:r?l.mapChildrenField:s}):y.forEach(f),g.chartMaps=d),g.visibleColumn=v,m.headerGroups=x,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(l){var r,i,n,e,t,a,o,c,s,d,u=l.$xeGantt,f=l.reactData,h=l.internalData,m=u.treeConfig,g=h.scrollXStore,p=h.xeTable,S=null,y=null;p&&(r=u.computeStartField,i=u.computeEndField,n=u.computeTypeField,u=p.isRowGroupStatus,e=p.afterFullData,t=p.afterTreeFullData,a=p.computeAggregateOpts,c=(o=p.computeTreeOpts).transform,s=o.children||o.childrenField,d=function(e){var t=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i),e=_xeUtils.default.get(e,n),t=t||a;!(0,_util.hasMilestoneTask)(e)&&a||(a=t),t&&(e=parseStringDate(l,t),!S||S.getTime()>e.getTime())&&(S=e),a&&(t=parseStringDate(l,a),!y||y.getTime()<t.getTime())&&(y=t)},u?(u=a.mapChildrenField)&&_xeUtils.default.eachTree(p.afterGroupFullData,d,{children:u}):m?_xeUtils.default.eachTree(t,d,{children:c?o.mapChildrenField:s}):e.forEach(d)),g.startIndex=0,g.endIndex=Math.max(1,g.visibleSize),f.minViewDate=S,f.maxViewDate=y,h.startMaps={},h.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,n&&(a.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),a.overflowX=e)}function handleSubTaskMinMaxSize(e,a,t){var l=e.$xeGantt,r=e.internalData.chartMaps,e=a.computeTreeOpts,e=e.children||e.childrenField,i=l.computeTypeField,n=0,o=0;return _xeUtils.default.eachTree(t,function(e){var t=a.getRowid(e),e=_xeUtils.default.get(e,i);(0,_util.hasSubviewTask)(e)||(e=t?r[t]:null)&&(o=Math.max(o,e.oLeftSize+e.oWidthSize),n=n?Math.min(n,e.oLeftSize):e.oLeftSize)},{children:e}),{minSize:n,maxSize:o}}function updateTaskChartStyle(i){var n,e=i.$xeGantt,t=i.internalData,e=e.internalData,o=t.xeTable,c=e.dragBarRow,s=i.reactData.viewCellWidth,d=t.chartMaps,e=(0,_util.getRefElem)(t.elemStore["main-chart-task-wrapper"]);return e&&o&&(t=o.computeTreeOpts,n=t.children||t.childrenField,_xeUtils.default.arrayEach(e.children,function(e){var t,a,l,r=e.children[0];r&&(e=e.getAttribute("rowid"),c&&o.getRowid(c)===e||(l=(e=e?d[e]:null)?e.row:null,(0,_dom.hasClass)(r,"is--subview")?(t=r.firstElementChild)&&((0,_dom.hasClass)(t,"is--inline")?_xeUtils.default.arrayEach(t.children,function(e){var t,a,e=e.children[0],l=e.getAttribute("rowid")||"",l=l?d[l]:null;l&&(a=l.row,(0,_dom.hasClass)(e,"is--subview")?(a=a[n],t=(a=handleSubTaskMinMaxSize(i,o,a)).minSize,a=a.maxSize,e.style.left="".concat(s*t,"px"),e.style.width="".concat(s*(a-t),"px")):(e.style.left="".concat((0,_util.getTaskBarLeft)(l,s),"px"),(0,_dom.hasClass)(e,"is--milestone")||(e.style.width="".concat((0,_util.getTaskBarWidth)(l,s),"px"))))}):(t=(t=t.children[0])?t.children[0]:null)&&(l=l?l[n]:[],a=(l=handleSubTaskMinMaxSize(i,o,l)).minSize,l=l.maxSize,t.style.left="".concat(s*a,"px"),t.style.width="".concat(s*(l-a),"px"))):(r.style.left="".concat((0,_util.getTaskBarLeft)(e,s),"px"),(0,_dom.hasClass)(r,"is--milestone")||(r.style.width="".concat((0,_util.getTaskBarWidth)(e,s),"px")))))})),i.$nextTick()}function updateStyle(e){var t,a,l,r,i,n,o,c,s=e.$xeGantt,d=e.reactData,u=e.internalData,f=d.scrollbarWidth,h=d.scrollbarHeight,m=d.headerGroups,g=d.tableColumn,p=u.elemStore,S=u.visibleColumn,u=u.xeTable,y=e.$refs.refElem;if(y&&s)return r=s.computeScrollbarOpts,n=s.computeScrollbarXToTop,i=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,c=e.$refs.refScrollXVirtualElem,f=f,h=h,l=a=t=0,u&&(t=u.tBodyHeight,a=u.tHeaderHeight,l=u.tFooterHeight),u="visible",(s.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(f=0,u="hidden"),(r=(0,_util.getRefElem)(p["main-header-scroll"]))&&(r.style.height="".concat(a,"px"),r.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(p["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(m=(0,_util.getRefElem)(p["main-footer-scroll"]))&&(m.style.height="".concat(l,"px")),c&&(c.style.height="".concat(h,"px"),c.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(f,"px"):"",m.style.width="".concat(y.clientWidth-f,"px")),i&&(i.style.width=n?"".concat(f,"px"):"",i.style.display=n&&h?"block":""),o&&(o.style.width=n?"":"".concat(f,"px"),o.style.display=!n&&h?"block":""),(c=e.$refs.refScrollYVirtualElem)&&(c.style.width="".concat(f,"px"),c.style.height="".concat(t+a+l,"px"),c.style.visibility=u),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(a,"px"),m.style.display=a?"block":""),(y=e.$refs.refScrollYWrapperElem)&&(y.style.height="".concat(t,"px"),y.style.top="".concat(a,"px")),(i=e.$refs.refScrollYBottomCornerElem)&&(i.style.height="".concat(l,"px"),i.style.top="".concat(a+t,"px"),i.style.display=l?"block":""),o=40,h=o=(n=e.$refs.refColInfoElem)?n.clientWidth||40:o,S.length&&(h=Math.max(0,o*S.length),r)&&0<(c=(f=r.clientWidth)-h)&&(o+=Math.max(0,c/S.length),h=f),d.viewCellWidth=o,u=(0,_util.getRefElem)(p["main-header-table"]),m=(0,_util.getRefElem)(p["main-body-table"]),y=o*g.length,u&&(u.style.width="".concat(h,"px")),m&&(m.style.width="".concat(y,"px")),d.scrollXWidth=h,Promise.all([updateTaskChartStyle(e),s.handleUpdateTaskLinkStyle?s.handleUpdateTaskLinkStyle(e):null])}function handleRecalculateStyle(e){var t=e.internalData,a=e.$xeGantt,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth&&a?(calcScrollbar(e),updateStyle(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var n=i.internalData;return new Promise(function(e){var t=n.rceTimeout,a=n.rceRunTime,l=n.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,n=a.offsetSize,o=handleVirtualXVisible(e),c=o.toVisibleIndex,o=o.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-n-l),endIndex:t?c+o:c+o+n+l},n=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+o+1,t.startIndex),l=t.endIndex;!(c<=r||i-o-1<=c)||r===n&&i===l||(a.startIndex=n,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,n=a.elemStore,a=a.scrollXStore,o=(0,_util.getRefElem)(n["main-body-table"]),a=a.startIndex,c=0,s=(l&&(c=Math.max(0,a*i)),o&&(o.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),r),a=(["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(s,"px"):"")}),e.$refs.refScrollXSpaceElem),i=(a&&(a.style.width="".concat(s,"px")),(0,_util.getRefElem)(n["main-chart-before-wrapper"])),o=i?i.firstElementChild:null,r=(o&&(o.style.width="".concat(s,"px")),(0,_util.getRefElem)(n["main-chart-after-wrapper"])),a=r?r.firstElementChild:null;return a&&(a.style.width="".concat(s,"px")),t.scrollXLeft=c,t.scrollXWidth=s,calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,n=(0,_util.getRefElem)(i["main-body-scroll"]),o=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&o&&n.scrollTop+f>=maxYHeight?maxYHeight-o.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-task-wrapper"])),c=(o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translateY(".concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem),l=(f&&(f.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-before-wrapper"])),r=l?l.firstElementChild:null,o=(r&&(r.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-after-wrapper"])),n=o?o.firstElementChild:null,c=(n&&(n.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-now-line"]));return c&&(c.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,n=e.internalData;a&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var n,o,c,s,d,u,f,h,m,g,p,S,y=e.$xeGantt,x=e.internalData,v=x.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&v&&(n=D.clientHeight,o=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=g=c=S=!1,l&&(p=v.computeScrollXThreshold,(g=i<=0)||(s=_-1<=i+o),x.lastScrollLeft<i?(d="right",_-p<=i+o&&(m=!0)):(d="left",i<=p&&(h=!0))),a&&(p=v.computeScrollYThreshold,(S=r<=0)||(c=D-1<=r+n),x.lastScrollTop<r?(d="bottom",D-p<=r+n&&(f=!0)):(d="top",r<=p&&(u=!0))),handleScrollData(e,a,l,r,i),v={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:n,bodyWidth:o,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:S,isBottom:c,isLeft:g,isRight:s,direction:d},(f||u||m||h)&&y.dispatchEvent("scroll-boundary",v,t),y.dispatchEvent("scroll",v,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:createReactData(),internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=e.reactData,l=t.minViewDate,r=t.maxViewDate,i=e.computeMinScale,t=e.computeTaskViewOpts.gridding,n=[];if(i&&l&&r){var e=i.type,o=i.startDay,c=-(a.currLeftSpacing+_xeUtils.default.toNumber(t&&t.leftSpacing||0)),s=a.currRightSpacing+_xeUtils.default.toNumber(t&&t.rightSpacing||0);switch(e){case"year":for(var d=_xeUtils.default.getWhatYear(l,c,"first"),u=_xeUtils.default.getWhatYear(r,s,"first");d<=u;){var f=d;n.push(f),d=_xeUtils.default.getWhatYear(d,1)}break;case"quarter":for(var h=_xeUtils.default.getWhatQuarter(l,c,"first"),m=_xeUtils.default.getWhatQuarter(r,s,"first");h<=m;){var g=h;n.push(g),h=_xeUtils.default.getWhatQuarter(h,1)}break;case"month":for(var p=_xeUtils.default.getWhatMonth(l,c,"first"),S=_xeUtils.default.getWhatMonth(r,s,"first");p<=S;){var y=p;n.push(y),p=_xeUtils.default.getWhatMonth(p,1)}break;case"week":for(var x=_xeUtils.default.getWhatWeek(l,c,o,o),v=_xeUtils.default.getWhatWeek(r,s,o,o);x<=v;){var _=x;n.push(_),x=_xeUtils.default.getWhatWeek(x,1)}break;case"day":case"date":for(var D=_xeUtils.default.getWhatDay(l,c,"first"),T=_xeUtils.default.getWhatDay(r,s,"first");D<=T;){var b=D;n.push(b),D=_xeUtils.default.getWhatDay(D,1)}break;case"hour":case"minute":case"second":for(var w=+(0,_util.getStandardGapTime)(i.type),W=l.getTime()+c*w,U=r.getTime()+s*w;W<=U;){var E=new Date(W);n.push(E),W+=w}}}return n},computeNowLineLeft:function(){var e=this.$xeGantt,t=this.reactData,a=this.internalData,l=e.reactData,r=t.minViewDate,i=t.maxViewDate,n=t.viewCellWidth,o=a.visibleColumn,t=a.todayDateMaps,a=e.computeMinScale,c=e.computeTaskViewOpts.showNowLine,e=e.computeTaskNowLineOpts.mode,l=l.nowTime,s=0;if(c&&a&&r&&i&&l>=r.getTime()&&l<=i.getTime()){for(var d=t[a.type],u=null,f=null,h=0;h<o.length;h++){var m=o[h];if(m.field===d){u=m,s=h*n,f=o[h+1];break}}"progress"===e?u&&f&&(c=u.dateObj.date.getTime(),s+=Math.max(0,Math.min(1,(l-c)/(f.dateObj.date.getTime()-c)))*n):"center"===e?s+=n/2:"end"===e&&(s+=n-1)}return s}}),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(e){var t=this,a=t.$xeGantt,l=t.reactData,a=a.reactData,r=t.internalData.xeTable;return r&&(r=r.tableData,l.tableData=r,e&&(a.currLeftSpacing=0,a.currRightSpacing=0,handleUpdateData(t)),handleRecalculateStyle(t)),t.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,n=this,o=n.reactData,c=n.internalData,o=o.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=n.$refs.refScrollXHandleElem,l=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(n,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),o)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,n=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(n,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.reactData,t=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render:function(e){return this.renderVN(e)}});
|