gantt-lib 0.135.8 → 0.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/core/scheduling/index.d.mts +1 -1
- package/dist/core/scheduling/index.d.ts +1 -1
- package/dist/{index-DR8Q6-de.d.mts → index-D99kbU4p.d.mts} +5 -0
- package/dist/{index-DR8Q6-de.d.ts → index-D99kbU4p.d.ts} +5 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +20 -3
- package/dist/index.d.ts +20 -3
- package/dist/index.js +480 -155
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +674 -351
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +248 -24
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -473,11 +473,12 @@
|
|
|
473
473
|
}
|
|
474
474
|
.gantt-tr-row:hover,
|
|
475
475
|
.gantt-tr-row-hovered {
|
|
476
|
-
|
|
476
|
+
box-shadow: inset 0 0 0 9999px var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
|
|
477
477
|
}
|
|
478
478
|
.gantt-tr-row.gantt-tr-row-filter-match:hover,
|
|
479
479
|
.gantt-tr-row.gantt-tr-row-filter-match.gantt-tr-row-hovered {
|
|
480
480
|
background-color: rgba(250, 204, 21, 0.3);
|
|
481
|
+
box-shadow: inset 0 0 0 9999px rgba(250, 204, 21, 0.3);
|
|
481
482
|
}
|
|
482
483
|
.gantt-tr-taskBar {
|
|
483
484
|
position: absolute;
|
|
@@ -494,6 +495,137 @@
|
|
|
494
495
|
transition: box-shadow 0.15s ease;
|
|
495
496
|
cursor: grab;
|
|
496
497
|
}
|
|
498
|
+
.gantt-tr-compositePreview {
|
|
499
|
+
position: fixed;
|
|
500
|
+
z-index: 10000;
|
|
501
|
+
width: 220px;
|
|
502
|
+
max-height: 340px;
|
|
503
|
+
overflow: hidden;
|
|
504
|
+
padding: 4px 12px 10px;
|
|
505
|
+
border: 1px solid var(--gantt-grid-line-color, #ddd);
|
|
506
|
+
border-radius: 8px;
|
|
507
|
+
background: var(--gantt-background, #fff);
|
|
508
|
+
color: var(--gantt-text-color, #222);
|
|
509
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
|
|
510
|
+
pointer-events: none;
|
|
511
|
+
font-size: 12px;
|
|
512
|
+
}
|
|
513
|
+
.gantt-tr-compositePreviewRow {
|
|
514
|
+
display: grid;
|
|
515
|
+
grid-template-columns: 60px 1fr;
|
|
516
|
+
align-items: center;
|
|
517
|
+
gap: 8px;
|
|
518
|
+
height: 20px;
|
|
519
|
+
white-space: nowrap;
|
|
520
|
+
}
|
|
521
|
+
.gantt-tr-compositePreviewAxis {
|
|
522
|
+
display: flex;
|
|
523
|
+
justify-content: space-between;
|
|
524
|
+
margin: 0 0 3px 68px;
|
|
525
|
+
color: #64748b;
|
|
526
|
+
font-size: 10px;
|
|
527
|
+
}
|
|
528
|
+
.gantt-tr-compositePreviewTrack {
|
|
529
|
+
position: relative;
|
|
530
|
+
height: 10px;
|
|
531
|
+
border-radius: 2px;
|
|
532
|
+
background: #f1f5f9;
|
|
533
|
+
}
|
|
534
|
+
.gantt-tr-compositePreviewBar {
|
|
535
|
+
position: absolute;
|
|
536
|
+
top: 1px;
|
|
537
|
+
height: 8px;
|
|
538
|
+
border-radius: 2px;
|
|
539
|
+
}
|
|
540
|
+
.gantt-tr-compositeBar {
|
|
541
|
+
border-radius: var(--gantt-task-bar-border-radius);
|
|
542
|
+
overflow: hidden;
|
|
543
|
+
}
|
|
544
|
+
.gantt-tr-compositeSegments {
|
|
545
|
+
position: absolute;
|
|
546
|
+
inset: 0;
|
|
547
|
+
pointer-events: none;
|
|
548
|
+
}
|
|
549
|
+
.gantt-tr-compositeSegment {
|
|
550
|
+
position: absolute;
|
|
551
|
+
box-sizing: border-box;
|
|
552
|
+
border-right: 2px solid rgba(255, 255, 255, .85);
|
|
553
|
+
background: rgba(255, 255, 255, .14);
|
|
554
|
+
}
|
|
555
|
+
.gantt-tr-compositeHoverChevron {
|
|
556
|
+
position: absolute;
|
|
557
|
+
z-index: 3;
|
|
558
|
+
left: 0;
|
|
559
|
+
top: 50%;
|
|
560
|
+
display: inline-flex;
|
|
561
|
+
align-items: center;
|
|
562
|
+
justify-content: center;
|
|
563
|
+
width: 24px;
|
|
564
|
+
height: 24px;
|
|
565
|
+
transform: translateY(-50%);
|
|
566
|
+
padding: 0;
|
|
567
|
+
border-radius: 4px;
|
|
568
|
+
background: rgba(24, 16, 45, .48);
|
|
569
|
+
color: white;
|
|
570
|
+
font-size: 11px;
|
|
571
|
+
font-weight: 700;
|
|
572
|
+
opacity: 0;
|
|
573
|
+
pointer-events: none;
|
|
574
|
+
transition: opacity 120ms ease;
|
|
575
|
+
}
|
|
576
|
+
.gantt-tr-compositeBar:hover .gantt-tr-compositeHoverChevron,
|
|
577
|
+
.gantt-tr-compositeBar:focus-visible .gantt-tr-compositeHoverChevron {
|
|
578
|
+
opacity: 1;
|
|
579
|
+
}
|
|
580
|
+
.gantt-tr-compositeChevron {
|
|
581
|
+
width: 14px;
|
|
582
|
+
height: 14px;
|
|
583
|
+
transition: transform 140ms ease;
|
|
584
|
+
}
|
|
585
|
+
.gantt-tr-compositeChevron-open {
|
|
586
|
+
transform: rotate(90deg);
|
|
587
|
+
}
|
|
588
|
+
.gantt-tr-externalDuration.gantt-tr-compositeDuration {
|
|
589
|
+
font-size: 0.72rem;
|
|
590
|
+
}
|
|
591
|
+
.gantt-tr-durationBeforeBar {
|
|
592
|
+
position: absolute;
|
|
593
|
+
top: 50%;
|
|
594
|
+
z-index: 1;
|
|
595
|
+
width: 40px;
|
|
596
|
+
padding-right: 4px;
|
|
597
|
+
transform: translateY(-50%);
|
|
598
|
+
text-align: right;
|
|
599
|
+
pointer-events: none;
|
|
600
|
+
font-size: 0.8rem;
|
|
601
|
+
font-weight: 500;
|
|
602
|
+
}
|
|
603
|
+
.gantt-tr-compositeBar .gantt-tr-resizeHandle {
|
|
604
|
+
width: 6px;
|
|
605
|
+
}
|
|
606
|
+
.gantt-tr-row-compositeDetail {
|
|
607
|
+
background-color: color-mix(in srgb, var(--gantt-tr-composite-detail-color) 8%, transparent);
|
|
608
|
+
}
|
|
609
|
+
.gantt-tr-row-compositeDetail:hover,
|
|
610
|
+
.gantt-tr-row-compositeDetail.gantt-tr-row-hovered {
|
|
611
|
+
box-shadow: inset 0 0 0 9999px var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
|
|
612
|
+
}
|
|
613
|
+
.gantt-tr-row-compositeDetail .gantt-tr-taskBar {
|
|
614
|
+
border-radius: 4px;
|
|
615
|
+
opacity: .88;
|
|
616
|
+
}
|
|
617
|
+
.gantt-tr-row-compositeDetail .gantt-tr-leftLabels {
|
|
618
|
+
display: none;
|
|
619
|
+
}
|
|
620
|
+
.gantt-tr-row-compositeDetail .gantt-tr-externalTaskName {
|
|
621
|
+
font-size: 0.72rem;
|
|
622
|
+
}
|
|
623
|
+
.gantt-tr-row-compositeDetail .gantt-tr-progressText {
|
|
624
|
+
display: none;
|
|
625
|
+
}
|
|
626
|
+
.gantt-tr-row-compositeDetail .gantt-tr-externalProgress {
|
|
627
|
+
display: none;
|
|
628
|
+
}
|
|
497
629
|
.gantt-tr-milestone {
|
|
498
630
|
border-radius: 2px;
|
|
499
631
|
overflow: visible;
|
|
@@ -555,6 +687,27 @@
|
|
|
555
687
|
.gantt-tr-resizeHandleRight {
|
|
556
688
|
right: 0;
|
|
557
689
|
}
|
|
690
|
+
.gantt-tr-resizeHandle::before {
|
|
691
|
+
content: "";
|
|
692
|
+
position: absolute;
|
|
693
|
+
top: 22%;
|
|
694
|
+
bottom: 22%;
|
|
695
|
+
width: 3px;
|
|
696
|
+
border-radius: 2px;
|
|
697
|
+
background: rgba(255, 255, 255, 0.65);
|
|
698
|
+
opacity: 0;
|
|
699
|
+
transition: opacity 140ms ease;
|
|
700
|
+
pointer-events: none;
|
|
701
|
+
}
|
|
702
|
+
.gantt-tr-resizeHandleLeft::before {
|
|
703
|
+
left: 4px;
|
|
704
|
+
}
|
|
705
|
+
.gantt-tr-resizeHandleRight::before {
|
|
706
|
+
right: 4px;
|
|
707
|
+
}
|
|
708
|
+
.gantt-tr-row:hover .gantt-tr-resizeHandle::before {
|
|
709
|
+
opacity: 1;
|
|
710
|
+
}
|
|
558
711
|
.gantt-tr-resizeZoneLeft {
|
|
559
712
|
cursor: ew-resize;
|
|
560
713
|
}
|
|
@@ -576,15 +729,11 @@
|
|
|
576
729
|
height: var(--gantt-dependency-port-height, var(--gantt-task-bar-height, 28px));
|
|
577
730
|
padding: 0;
|
|
578
731
|
border: 0;
|
|
579
|
-
border-radius: 8px;
|
|
580
732
|
background: transparent;
|
|
581
733
|
transform: translateY(-50%);
|
|
582
734
|
cursor: crosshair;
|
|
583
735
|
opacity: 0;
|
|
584
|
-
transition:
|
|
585
|
-
opacity 140ms ease,
|
|
586
|
-
background-color 140ms ease,
|
|
587
|
-
transform 140ms ease;
|
|
736
|
+
transition: opacity 150ms ease;
|
|
588
737
|
}
|
|
589
738
|
.gantt-tr-row:hover .gantt-tr-dependencyPort,
|
|
590
739
|
.gantt-tr-dependencyPort:focus-visible,
|
|
@@ -597,33 +746,28 @@
|
|
|
597
746
|
top: 50%;
|
|
598
747
|
width: 8px;
|
|
599
748
|
height: 8px;
|
|
600
|
-
border: 2px solid var(--gantt-dependency-port-color, #7c3aed);
|
|
601
749
|
border-radius: 50%;
|
|
602
|
-
background: var(--gantt-
|
|
603
|
-
|
|
604
|
-
|
|
750
|
+
background: var(--gantt-dependency-port-color, #7c3aed);
|
|
751
|
+
box-shadow: 0 0 0 2px var(--gantt-cell-background, #fff);
|
|
752
|
+
transform: translateY(-50%) scale(.8);
|
|
753
|
+
transition: transform 160ms cubic-bezier(.2, 0, 0, 1), box-shadow 160ms ease;
|
|
754
|
+
pointer-events: none;
|
|
605
755
|
}
|
|
606
756
|
.gantt-tr-dependencyPort:hover,
|
|
607
757
|
.gantt-tr-dependencyPort:focus-visible {
|
|
608
|
-
background: color-mix(in srgb, var(--gantt-dependency-port-color, #7c3aed) 12%, transparent);
|
|
609
758
|
outline: none;
|
|
610
759
|
}
|
|
611
760
|
.gantt-tr-dependencyPort:hover::after,
|
|
612
761
|
.gantt-tr-dependencyPort:focus-visible::after,
|
|
613
762
|
.gantt-tr-dependencyPortDragActive::after {
|
|
614
763
|
transform: translateY(-50%) scale(1);
|
|
615
|
-
|
|
616
|
-
}
|
|
617
|
-
.gantt-tr-dependencyPortLeft {
|
|
618
|
-
}
|
|
619
|
-
.gantt-tr-dependencyPort::after {
|
|
620
|
-
pointer-events: none;
|
|
764
|
+
box-shadow: 0 0 0 2px var(--gantt-cell-background, #fff), 0 0 0 5px color-mix(in srgb, var(--gantt-dependency-port-color, #7c3aed) 24%, transparent);
|
|
621
765
|
}
|
|
622
766
|
.gantt-tr-dependencyPortLeft::after {
|
|
623
767
|
left: 12px;
|
|
624
768
|
}
|
|
625
769
|
.gantt-tr-dependencyPortRight::after {
|
|
626
|
-
left:
|
|
770
|
+
left: 4px;
|
|
627
771
|
}
|
|
628
772
|
.gantt-tr-dependencyPortMilestone {
|
|
629
773
|
height: var(--gantt-dependency-port-height, 14px);
|
|
@@ -633,9 +777,6 @@
|
|
|
633
777
|
height: var(--gantt-parent-bar-height, 14px);
|
|
634
778
|
transform: translateY(-50%);
|
|
635
779
|
}
|
|
636
|
-
.gantt-tr-dependencyPortDragActive {
|
|
637
|
-
background: color-mix(in srgb, var(--gantt-dependency-port-color, #7c3aed) 10%, transparent);
|
|
638
|
-
}
|
|
639
780
|
@media (max-width: 640px), (hover: none), (pointer: coarse) {
|
|
640
781
|
.gantt-tr-dependencyPort {
|
|
641
782
|
display: none;
|
|
@@ -1294,6 +1435,89 @@
|
|
|
1294
1435
|
.gantt-tl-row-child {
|
|
1295
1436
|
padding-left: 0;
|
|
1296
1437
|
}
|
|
1438
|
+
.gantt-tl-row-composite-detail {
|
|
1439
|
+
--gantt-tl-name-actions-bg: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
|
|
1440
|
+
background: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
|
|
1441
|
+
font-size: 12px;
|
|
1442
|
+
}
|
|
1443
|
+
.gantt-tl-row-composite-detail .gantt-tl-cell:not(.gantt-tl-cell-name):not(.gantt-tl-cell-number):not(.gantt-tl-cell-progress) {
|
|
1444
|
+
visibility: hidden;
|
|
1445
|
+
}
|
|
1446
|
+
.gantt-tl-row-composite-detail .gantt-tl-cell-name {
|
|
1447
|
+
color: #5b4b83;
|
|
1448
|
+
}
|
|
1449
|
+
.gantt-tl-compositeToggle {
|
|
1450
|
+
position: absolute;
|
|
1451
|
+
top: 50%;
|
|
1452
|
+
z-index: 3;
|
|
1453
|
+
display: grid;
|
|
1454
|
+
place-items: center;
|
|
1455
|
+
width: 24px;
|
|
1456
|
+
height: 24px;
|
|
1457
|
+
padding: 2px;
|
|
1458
|
+
transform: translateY(-50%);
|
|
1459
|
+
border: 0;
|
|
1460
|
+
border-radius: 4px;
|
|
1461
|
+
background: transparent;
|
|
1462
|
+
color: var(--gantt-text-color, #374151);
|
|
1463
|
+
cursor: pointer;
|
|
1464
|
+
}
|
|
1465
|
+
.gantt-tl-compositeToggle:hover {
|
|
1466
|
+
background: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
|
|
1467
|
+
}
|
|
1468
|
+
.gantt-tl-compositeToggle:focus-visible,
|
|
1469
|
+
.gantt-tl-collapse-btn:focus-visible {
|
|
1470
|
+
outline: 2px solid var(--gantt-focus-ring-color, #64748b);
|
|
1471
|
+
outline-offset: 1px;
|
|
1472
|
+
}
|
|
1473
|
+
.gantt-tl-compositeToggle svg {
|
|
1474
|
+
width: 13px;
|
|
1475
|
+
height: 13px;
|
|
1476
|
+
transform-origin: center;
|
|
1477
|
+
}
|
|
1478
|
+
.gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-opening-outgoing {
|
|
1479
|
+
animation: gantt-tl-composite-out-open 120ms ease-in-out forwards;
|
|
1480
|
+
}
|
|
1481
|
+
.gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-opening-incoming {
|
|
1482
|
+
animation: gantt-tl-composite-in-open 120ms ease-in-out forwards;
|
|
1483
|
+
}
|
|
1484
|
+
.gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-closing-outgoing {
|
|
1485
|
+
animation: gantt-tl-composite-out-close 120ms ease-in-out forwards;
|
|
1486
|
+
}
|
|
1487
|
+
.gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-closing-incoming {
|
|
1488
|
+
animation: gantt-tl-composite-in-close 120ms ease-in-out forwards;
|
|
1489
|
+
}
|
|
1490
|
+
@keyframes gantt-tl-composite-out-open {
|
|
1491
|
+
to {
|
|
1492
|
+
transform: rotate(90deg);
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
@keyframes gantt-tl-composite-in-open {
|
|
1496
|
+
from {
|
|
1497
|
+
transform: rotate(-90deg);
|
|
1498
|
+
}
|
|
1499
|
+
to {
|
|
1500
|
+
transform: rotate(0deg);
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
@keyframes gantt-tl-composite-out-close {
|
|
1504
|
+
to {
|
|
1505
|
+
transform: rotate(-90deg);
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
@keyframes gantt-tl-composite-in-close {
|
|
1509
|
+
from {
|
|
1510
|
+
transform: rotate(90deg);
|
|
1511
|
+
}
|
|
1512
|
+
to {
|
|
1513
|
+
transform: rotate(0deg);
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1516
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1517
|
+
.gantt-tl-compositeToggle [class*=gantt-tl-compositeGlyph-] {
|
|
1518
|
+
animation-duration: 1ms;
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1297
1521
|
.gantt-tl-row-parent {
|
|
1298
1522
|
font-weight: 600;
|
|
1299
1523
|
--gantt-tl-name-actions-bg: inherit;
|
|
@@ -1329,8 +1553,8 @@
|
|
|
1329
1553
|
top: 50%;
|
|
1330
1554
|
transform: translateY(-50%);
|
|
1331
1555
|
z-index: 2;
|
|
1332
|
-
width:
|
|
1333
|
-
height:
|
|
1556
|
+
width: 24px;
|
|
1557
|
+
height: 24px;
|
|
1334
1558
|
border: none;
|
|
1335
1559
|
background: transparent;
|
|
1336
1560
|
border-radius: 4px;
|
|
@@ -1343,7 +1567,7 @@
|
|
|
1343
1567
|
transition: background-color 0.15s ease;
|
|
1344
1568
|
}
|
|
1345
1569
|
.gantt-tl-collapse-btn:hover {
|
|
1346
|
-
background-color:
|
|
1570
|
+
background-color: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
|
|
1347
1571
|
}
|
|
1348
1572
|
.gantt-tl-collapse-btn svg {
|
|
1349
1573
|
transition: transform 0.15s ease;
|