@worktile/gantt 18.0.2 → 18.0.4
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/components/bar/bar-drag.d.ts +8 -2
- package/esm2022/components/bar/bar-drag.mjs +130 -94
- package/esm2022/components/bar/bar.component.mjs +2 -2
- package/esm2022/gantt.component.mjs +3 -3
- package/fesm2022/worktile-gantt.mjs +132 -96
- package/fesm2022/worktile-gantt.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import * as i1$1 from '@angular/cdk/scrolling';
|
|
|
4
4
|
import { CdkScrollable, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
|
|
5
5
|
import { isPlatformServer, NgIf, NgTemplateOutlet, NgFor, NgStyle, NgClass, DOCUMENT, CommonModule } from '@angular/common';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { InjectionToken, EventEmitter, Directive, Inject, Input, Output, ContentChild, HostBinding, Injectable, PLATFORM_ID, Component, ViewChild, ViewChildren, Pipe, ElementRef, Optional, HostListener, forwardRef, ChangeDetectionStrategy, ContentChildren, NgModule } from '@angular/core';
|
|
7
|
+
import { InjectionToken, EventEmitter, Directive, Inject, Input, Output, ContentChild, HostBinding, Injectable, PLATFORM_ID, signal, effect, Component, ViewChild, ViewChildren, Pipe, ElementRef, Optional, HostListener, forwardRef, ChangeDetectionStrategy, ContentChildren, NgModule } from '@angular/core';
|
|
8
8
|
import { fromUnixTime, getWeek, getDaysInMonth, differenceInCalendarDays, setDate, addSeconds, addMinutes, addHours, addDays, addWeeks, addMonths, addQuarters, addYears, startOfMinute, startOfHour, startOfDay, startOfWeek, startOfMonth, startOfQuarter, startOfYear, endOfMinute, endOfHour, endOfDay, endOfWeek, endOfMonth, endOfQuarter, endOfYear, getUnixTime, format, isWeekend, isToday, differenceInHours, differenceInMinutes, differenceInDays, differenceInCalendarQuarters, eachMonthOfInterval, eachYearOfInterval, eachWeekOfInterval, eachDayOfInterval, differenceInCalendarYears, eachHourOfInterval, setDefaultOptions } from 'date-fns';
|
|
9
9
|
export { addDays, addHours, addMinutes, addMonths, addQuarters, addSeconds, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarQuarters, differenceInDays, differenceInMinutes, eachDayOfInterval, eachHourOfInterval, eachMonthOfInterval, eachWeekOfInterval, endOfDay, endOfHour, endOfMinute, endOfMonth, endOfQuarter, endOfWeek, endOfYear, format, fromUnixTime, getDaysInMonth, getUnixTime, getWeek, isToday, isWeekend, setDate, startOfDay, startOfHour, startOfMinute, startOfMonth, startOfQuarter, startOfWeek, startOfYear } from 'date-fns';
|
|
10
10
|
import { BehaviorSubject, Subject, from, fromEvent, merge, Observable, EMPTY, interval, animationFrameScheduler, takeUntil as takeUntil$1, startWith as startWith$1, auditTime as auditTime$1, filter } from 'rxjs';
|
|
@@ -1686,10 +1686,10 @@ function createSvgElement(qualifiedName, className) {
|
|
|
1686
1686
|
}
|
|
1687
1687
|
class GanttBarDrag {
|
|
1688
1688
|
get dragDisabled() {
|
|
1689
|
-
return !this.item.draggable || !this.ganttUpper.draggable;
|
|
1689
|
+
return !this.item().draggable || !this.ganttUpper.draggable;
|
|
1690
1690
|
}
|
|
1691
1691
|
get linkDragDisabled() {
|
|
1692
|
-
return !this.item.linkable || !this.ganttUpper.linkable;
|
|
1692
|
+
return !this.item().linkable || !this.ganttUpper.linkable;
|
|
1693
1693
|
}
|
|
1694
1694
|
get barHandleDragMoveAndScrollDistance() {
|
|
1695
1695
|
return this.barHandleDragMoveDistance + this.dragScrollDistance;
|
|
@@ -1702,7 +1702,9 @@ class GanttBarDrag {
|
|
|
1702
1702
|
this.dom = dom;
|
|
1703
1703
|
this.dragContainer = dragContainer;
|
|
1704
1704
|
this._ngZone = _ngZone;
|
|
1705
|
-
this.
|
|
1705
|
+
this.item = signal(null);
|
|
1706
|
+
this.linkDragRefs = [];
|
|
1707
|
+
this.barHandleDragRefs = [];
|
|
1706
1708
|
this.destroy$ = new Subject();
|
|
1707
1709
|
/** Used to signal to the current auto-scroll sequence when to stop. */
|
|
1708
1710
|
this.stopScrollTimers$ = new Subject();
|
|
@@ -1733,6 +1735,12 @@ class GanttBarDrag {
|
|
|
1733
1735
|
}
|
|
1734
1736
|
});
|
|
1735
1737
|
};
|
|
1738
|
+
effect(() => {
|
|
1739
|
+
const item = this.item();
|
|
1740
|
+
if (item) {
|
|
1741
|
+
this.createDrags();
|
|
1742
|
+
}
|
|
1743
|
+
});
|
|
1736
1744
|
}
|
|
1737
1745
|
createDragRef(element) {
|
|
1738
1746
|
const dragRef = this.dragDrop.createDrag(element);
|
|
@@ -1742,40 +1750,46 @@ class GanttBarDrag {
|
|
|
1742
1750
|
return fromEvent(this.dom.mainContainer, 'scroll', passiveListenerOptions).pipe(takeUntil(dragRef.ended));
|
|
1743
1751
|
}
|
|
1744
1752
|
createMouseEvents() {
|
|
1745
|
-
|
|
1746
|
-
this.
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
.
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
this.
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1753
|
+
if (!this.hasMonitorMouseEvent && (!this.dragDisabled || !this.linkDragDisabled)) {
|
|
1754
|
+
this.hasMonitorMouseEvent = true;
|
|
1755
|
+
const dropClass = this.ganttUpper.config.linkOptions?.dependencyTypes?.length === 1 &&
|
|
1756
|
+
this.ganttUpper.config.linkOptions?.dependencyTypes[0] === GanttLinkType.fs
|
|
1757
|
+
? singleDropActiveClass
|
|
1758
|
+
: dropActiveClass;
|
|
1759
|
+
fromEvent(this.barElement, 'mouseenter', passiveListenerOptions)
|
|
1760
|
+
.pipe(takeUntil(this.destroy$))
|
|
1761
|
+
.subscribe(() => {
|
|
1762
|
+
if (this.dragContainer.linkDraggingId && this.dragContainer.linkDraggingId !== this.item().id) {
|
|
1763
|
+
if (!this.linkDragDisabled) {
|
|
1764
|
+
this.barElement.classList.add(dropClass);
|
|
1765
|
+
this.dragContainer.emitLinkDragEntered({
|
|
1766
|
+
item: this.item(),
|
|
1767
|
+
element: this.barElement
|
|
1768
|
+
});
|
|
1769
|
+
}
|
|
1759
1770
|
}
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
this.
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1771
|
+
else {
|
|
1772
|
+
if (!this.dragDisabled || !this.linkDragDisabled) {
|
|
1773
|
+
this.barElement.classList.add(activeClass);
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
});
|
|
1777
|
+
fromEvent(this.barElement, 'mouseleave', passiveListenerOptions)
|
|
1778
|
+
.pipe(takeUntil(this.destroy$))
|
|
1779
|
+
.subscribe(() => {
|
|
1780
|
+
if (!this.dragContainer.linkDraggingId) {
|
|
1781
|
+
this.barElement.classList.remove(activeClass);
|
|
1782
|
+
}
|
|
1783
|
+
else {
|
|
1784
|
+
this.dragContainer.emitLinkDragLeaved();
|
|
1785
|
+
}
|
|
1786
|
+
this.barElement.classList.remove(dropClass);
|
|
1787
|
+
});
|
|
1788
|
+
}
|
|
1776
1789
|
}
|
|
1777
1790
|
createBarDrag() {
|
|
1778
1791
|
const dragRef = this.createDragRef(this.barElement);
|
|
1792
|
+
dragRef.disabled = this.dragDisabled;
|
|
1779
1793
|
dragRef.lockAxis = 'x';
|
|
1780
1794
|
dragRef.withBoundaryElement(this.dom.mainItems);
|
|
1781
1795
|
dragRef.started.subscribe(() => {
|
|
@@ -1789,7 +1803,7 @@ class GanttBarDrag {
|
|
|
1789
1803
|
this.barDragMove();
|
|
1790
1804
|
}
|
|
1791
1805
|
});
|
|
1792
|
-
this.dragContainer.dragStarted.emit({ item: this.item.origin });
|
|
1806
|
+
this.dragContainer.dragStarted.emit({ item: this.item().origin });
|
|
1793
1807
|
});
|
|
1794
1808
|
dragRef.moved.subscribe((event) => {
|
|
1795
1809
|
this.startScrollingIfNecessary(event.pointerPosition.x, event.pointerPosition.y);
|
|
@@ -1806,14 +1820,13 @@ class GanttBarDrag {
|
|
|
1806
1820
|
this.dragScrolling = false;
|
|
1807
1821
|
this.dragScrollDistance = 0;
|
|
1808
1822
|
this.barDragMoveDistance = 0;
|
|
1809
|
-
this.item.updateRefs({
|
|
1810
|
-
width: this.ganttUpper.view.getDateRangeWidth(this.item.start, this.item.end),
|
|
1811
|
-
x: this.ganttUpper.view.getXPointByDate(this.item.start),
|
|
1823
|
+
this.item().updateRefs({
|
|
1824
|
+
width: this.ganttUpper.view.getDateRangeWidth(this.item().start, this.item().end),
|
|
1825
|
+
x: this.ganttUpper.view.getXPointByDate(this.item().start),
|
|
1812
1826
|
y: (this.ganttUpper.styles.lineHeight - this.ganttUpper.styles.barHeight) / 2 - 1
|
|
1813
1827
|
});
|
|
1814
|
-
this.dragContainer.dragEnded.emit({ item: this.item.origin });
|
|
1828
|
+
this.dragContainer.dragEnded.emit({ item: this.item().origin });
|
|
1815
1829
|
});
|
|
1816
|
-
this.barDragRef = dragRef;
|
|
1817
1830
|
return dragRef;
|
|
1818
1831
|
}
|
|
1819
1832
|
createBarHandleDrags() {
|
|
@@ -1822,6 +1835,7 @@ class GanttBarDrag {
|
|
|
1822
1835
|
handles.forEach((handle, index) => {
|
|
1823
1836
|
const isBefore = index === 0;
|
|
1824
1837
|
const dragRef = this.createDragRef(handle);
|
|
1838
|
+
dragRef.disabled = this.dragDisabled;
|
|
1825
1839
|
dragRef.lockAxis = 'x';
|
|
1826
1840
|
dragRef.withBoundaryElement(this.dom.mainItems);
|
|
1827
1841
|
dragRef.started.subscribe(() => {
|
|
@@ -1844,7 +1858,7 @@ class GanttBarDrag {
|
|
|
1844
1858
|
}
|
|
1845
1859
|
}
|
|
1846
1860
|
});
|
|
1847
|
-
this.dragContainer.dragStarted.emit({ item: this.item.origin });
|
|
1861
|
+
this.dragContainer.dragStarted.emit({ item: this.item().origin });
|
|
1848
1862
|
});
|
|
1849
1863
|
dragRef.moved.subscribe((event) => {
|
|
1850
1864
|
if (this.barHandleDragMoveRecordDiffs && this.barHandleDragMoveRecordDiffs > 0) {
|
|
@@ -1868,12 +1882,12 @@ class GanttBarDrag {
|
|
|
1868
1882
|
this.dragScrolling = false;
|
|
1869
1883
|
this.dragScrollDistance = 0;
|
|
1870
1884
|
this.barHandleDragMoveDistance = 0;
|
|
1871
|
-
this.item.updateRefs({
|
|
1872
|
-
width: this.ganttUpper.view.getDateRangeWidth(this.item.start, this.item.end),
|
|
1873
|
-
x: this.ganttUpper.view.getXPointByDate(this.item.start),
|
|
1885
|
+
this.item().updateRefs({
|
|
1886
|
+
width: this.ganttUpper.view.getDateRangeWidth(this.item().start, this.item().end),
|
|
1887
|
+
x: this.ganttUpper.view.getXPointByDate(this.item().start),
|
|
1874
1888
|
y: (this.ganttUpper.styles.lineHeight - this.ganttUpper.styles.barHeight) / 2 - 1
|
|
1875
1889
|
});
|
|
1876
|
-
this.dragContainer.dragEnded.emit({ item: this.item.origin });
|
|
1890
|
+
this.dragContainer.dragEnded.emit({ item: this.item().origin });
|
|
1877
1891
|
});
|
|
1878
1892
|
dragRefs.push(dragRef);
|
|
1879
1893
|
});
|
|
@@ -1885,6 +1899,7 @@ class GanttBarDrag {
|
|
|
1885
1899
|
handles.forEach((handle, index) => {
|
|
1886
1900
|
const isBegin = index === 0;
|
|
1887
1901
|
const dragRef = this.dragDrop.createDrag(handle);
|
|
1902
|
+
dragRef.disabled = this.linkDragDisabled;
|
|
1888
1903
|
dragRef.withBoundaryElement(this.dom.root);
|
|
1889
1904
|
dragRef.beforeStarted.subscribe(() => {
|
|
1890
1905
|
handle.style.pointerEvents = 'none';
|
|
@@ -1894,7 +1909,7 @@ class GanttBarDrag {
|
|
|
1894
1909
|
this.createLinkDraggingLine();
|
|
1895
1910
|
this.dragContainer.emitLinkDragStarted({
|
|
1896
1911
|
element: this.barElement,
|
|
1897
|
-
item: this.item,
|
|
1912
|
+
item: this.item(),
|
|
1898
1913
|
pos: isBegin ? InBarPosition.start : InBarPosition.finish
|
|
1899
1914
|
});
|
|
1900
1915
|
});
|
|
@@ -1969,10 +1984,10 @@ class GanttBarDrag {
|
|
|
1969
1984
|
this.barElement.classList.remove('gantt-bar-draggable-drag');
|
|
1970
1985
|
}
|
|
1971
1986
|
barDragMove() {
|
|
1972
|
-
const currentX = this.item.refs.x + this.barDragMoveDistance + this.dragScrollDistance;
|
|
1987
|
+
const currentX = this.item().refs.x + this.barDragMoveDistance + this.dragScrollDistance;
|
|
1973
1988
|
const currentDate = this.ganttUpper.view.getDateByXPoint(currentX);
|
|
1974
1989
|
const currentStartX = this.ganttUpper.view.getXPointByDate(currentDate);
|
|
1975
|
-
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(this.item.end, this.item.start);
|
|
1990
|
+
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(this.item().end, this.item().start);
|
|
1976
1991
|
let start = currentDate;
|
|
1977
1992
|
let end = currentDate.add(diffs, this.ganttUpper.view?.options?.datePrecisionUnit);
|
|
1978
1993
|
// 日视图特殊逻辑处理
|
|
@@ -1987,59 +2002,59 @@ class GanttBarDrag {
|
|
|
1987
2002
|
const left = currentX - this.barDragMoveDistance;
|
|
1988
2003
|
this.barElement.style.left = left + 'px';
|
|
1989
2004
|
}
|
|
1990
|
-
this.openDragBackdrop(this.barElement, this.ganttUpper.view.getDateByXPoint(currentX), this.ganttUpper.view.getDateByXPoint(currentX + this.item.refs.width));
|
|
2005
|
+
this.openDragBackdrop(this.barElement, this.ganttUpper.view.getDateByXPoint(currentX), this.ganttUpper.view.getDateByXPoint(currentX + this.item().refs.width));
|
|
1991
2006
|
if (!this.isStartOrEndInsideView(start, end)) {
|
|
1992
2007
|
return;
|
|
1993
2008
|
}
|
|
1994
2009
|
this.updateItemDate(start, end);
|
|
1995
|
-
this.dragContainer.dragMoved.emit({ item: this.item.origin });
|
|
2010
|
+
this.dragContainer.dragMoved.emit({ item: this.item().origin });
|
|
1996
2011
|
}
|
|
1997
2012
|
barBeforeHandleDragMove() {
|
|
1998
2013
|
const { x, start, minRangeWidthWidth } = this.startOfBarHandle();
|
|
1999
|
-
const width = this.item.refs.width + this.barHandleDragMoveAndScrollDistance * -1;
|
|
2000
|
-
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(this.item.end, start);
|
|
2014
|
+
const width = this.item().refs.width + this.barHandleDragMoveAndScrollDistance * -1;
|
|
2015
|
+
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(this.item().end, start);
|
|
2001
2016
|
if (width > dragMinWidth && diffs > 0) {
|
|
2002
2017
|
this.barElement.style.width = width + 'px';
|
|
2003
2018
|
this.barElement.style.left = x + 'px';
|
|
2004
|
-
this.openDragBackdrop(this.barElement, start, this.item.end);
|
|
2005
|
-
if (!this.isStartOrEndInsideView(start, this.item.end)) {
|
|
2019
|
+
this.openDragBackdrop(this.barElement, start, this.item().end);
|
|
2020
|
+
if (!this.isStartOrEndInsideView(start, this.item().end)) {
|
|
2006
2021
|
return;
|
|
2007
2022
|
}
|
|
2008
|
-
this.updateItemDate(start, this.item.end);
|
|
2023
|
+
this.updateItemDate(start, this.item().end);
|
|
2009
2024
|
}
|
|
2010
2025
|
else {
|
|
2011
2026
|
if (this.barHandleDragMoveRecordDiffs > 0 && diffs <= 0) {
|
|
2012
2027
|
this.barElement.style.width = minRangeWidthWidth + 'px';
|
|
2013
|
-
const x = this.ganttUpper.view.getXPointByDate(this.item.end);
|
|
2028
|
+
const x = this.ganttUpper.view.getXPointByDate(this.item().end);
|
|
2014
2029
|
this.barElement.style.left = x + 'px';
|
|
2015
2030
|
}
|
|
2016
|
-
this.openDragBackdrop(this.barElement, this.item.end, this.item.end);
|
|
2017
|
-
this.updateItemDate(this.item.end, this.item.end);
|
|
2031
|
+
this.openDragBackdrop(this.barElement, this.item().end, this.item().end);
|
|
2032
|
+
this.updateItemDate(this.item().end, this.item().end);
|
|
2018
2033
|
}
|
|
2019
2034
|
this.barHandleDragMoveRecordDiffs = diffs;
|
|
2020
|
-
this.dragContainer.dragMoved.emit({ item: this.item.origin });
|
|
2035
|
+
this.dragContainer.dragMoved.emit({ item: this.item().origin });
|
|
2021
2036
|
}
|
|
2022
2037
|
barAfterHandleDragMove() {
|
|
2023
2038
|
const { width, end } = this.endOfBarHandle();
|
|
2024
|
-
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(end, this.item.start);
|
|
2039
|
+
const diffs = this.ganttUpper.view.differenceByPrecisionUnit(end, this.item().start);
|
|
2025
2040
|
if (width > dragMinWidth && diffs > 0) {
|
|
2026
2041
|
this.barElement.style.width = width + 'px';
|
|
2027
|
-
this.openDragBackdrop(this.barElement, this.item.start, end);
|
|
2028
|
-
if (!this.isStartOrEndInsideView(this.item.start, end)) {
|
|
2042
|
+
this.openDragBackdrop(this.barElement, this.item().start, end);
|
|
2043
|
+
if (!this.isStartOrEndInsideView(this.item().start, end)) {
|
|
2029
2044
|
return;
|
|
2030
2045
|
}
|
|
2031
|
-
this.updateItemDate(this.item.start, end);
|
|
2046
|
+
this.updateItemDate(this.item().start, end);
|
|
2032
2047
|
}
|
|
2033
2048
|
else {
|
|
2034
2049
|
if (this.barHandleDragMoveRecordDiffs > 0 && diffs <= 0) {
|
|
2035
|
-
const minRangeWidth = this.ganttUpper.view.getMinRangeWidthByPrecisionUnit(this.item.start);
|
|
2050
|
+
const minRangeWidth = this.ganttUpper.view.getMinRangeWidthByPrecisionUnit(this.item().start);
|
|
2036
2051
|
this.barElement.style.width = minRangeWidth + 'px';
|
|
2037
2052
|
}
|
|
2038
|
-
this.openDragBackdrop(this.barElement, this.item.start, this.item.start);
|
|
2039
|
-
this.updateItemDate(this.item.start, this.item.start);
|
|
2053
|
+
this.openDragBackdrop(this.barElement, this.item().start, this.item().start);
|
|
2054
|
+
this.updateItemDate(this.item().start, this.item().start);
|
|
2040
2055
|
}
|
|
2041
2056
|
this.barHandleDragMoveRecordDiffs = diffs;
|
|
2042
|
-
this.dragContainer.dragMoved.emit({ item: this.item.origin });
|
|
2057
|
+
this.dragContainer.dragMoved.emit({ item: this.item().origin });
|
|
2043
2058
|
}
|
|
2044
2059
|
calcLinkLinePositions(target, isBefore) {
|
|
2045
2060
|
const rootRect = this.dom.root.getBoundingClientRect();
|
|
@@ -2096,33 +2111,33 @@ class GanttBarDrag {
|
|
|
2096
2111
|
const xThreshold = clientWidth * DROP_PROXIMITY_THRESHOLD;
|
|
2097
2112
|
if (isBefore) {
|
|
2098
2113
|
const { start, minRangeWidthWidth } = this.startOfBarHandle();
|
|
2099
|
-
const xPointerByEndDate = this.ganttUpper.view.getXPointByDate(this.item.end);
|
|
2100
|
-
isStartGreaterThanEnd = start.value > this.item.end.value;
|
|
2114
|
+
const xPointerByEndDate = this.ganttUpper.view.getXPointByDate(this.item().end);
|
|
2115
|
+
isStartGreaterThanEnd = start.value > this.item().end.value;
|
|
2101
2116
|
isBarAppearsInView = xPointerByEndDate + minRangeWidthWidth + xThreshold <= scrollLeft + clientWidth;
|
|
2102
2117
|
}
|
|
2103
2118
|
else {
|
|
2104
2119
|
const { end } = this.endOfBarHandle();
|
|
2105
|
-
const xPointerByStartDate = this.ganttUpper.view.getXPointByDate(this.item.start);
|
|
2106
|
-
isStartGreaterThanEnd = end.value < this.item.start.value;
|
|
2120
|
+
const xPointerByStartDate = this.ganttUpper.view.getXPointByDate(this.item().start);
|
|
2121
|
+
isStartGreaterThanEnd = end.value < this.item().start.value;
|
|
2107
2122
|
isBarAppearsInView = scrollLeft + xThreshold <= xPointerByStartDate;
|
|
2108
2123
|
}
|
|
2109
2124
|
return isStartGreaterThanEnd && isBarAppearsInView ? true : false;
|
|
2110
2125
|
}
|
|
2111
2126
|
// Some data information about dragging start until it is equal to or greater than end
|
|
2112
2127
|
startOfBarHandle() {
|
|
2113
|
-
const x = this.item.refs.x + this.barHandleDragMoveAndScrollDistance;
|
|
2128
|
+
const x = this.item().refs.x + this.barHandleDragMoveAndScrollDistance;
|
|
2114
2129
|
return {
|
|
2115
2130
|
x,
|
|
2116
2131
|
start: this.ganttUpper.view.getDateByXPoint(x),
|
|
2117
|
-
minRangeWidthWidth: this.ganttUpper.view.getMinRangeWidthByPrecisionUnit(this.item.end)
|
|
2132
|
+
minRangeWidthWidth: this.ganttUpper.view.getMinRangeWidthByPrecisionUnit(this.item().end)
|
|
2118
2133
|
};
|
|
2119
2134
|
}
|
|
2120
2135
|
// Some data information about dragging end of bar handle
|
|
2121
2136
|
endOfBarHandle() {
|
|
2122
|
-
const width = this.item.refs.width + this.barHandleDragMoveAndScrollDistance;
|
|
2137
|
+
const width = this.item().refs.width + this.barHandleDragMoveAndScrollDistance;
|
|
2123
2138
|
return {
|
|
2124
2139
|
width,
|
|
2125
|
-
end: this.ganttUpper.view.getDateByXPoint(this.item.refs.x + width)
|
|
2140
|
+
end: this.ganttUpper.view.getDateByXPoint(this.item().refs.x + width)
|
|
2126
2141
|
};
|
|
2127
2142
|
}
|
|
2128
2143
|
stopScrolling() {
|
|
@@ -2141,34 +2156,55 @@ class GanttBarDrag {
|
|
|
2141
2156
|
}
|
|
2142
2157
|
}
|
|
2143
2158
|
updateItemDate(start, end) {
|
|
2144
|
-
this.item.updateDate(this.ganttUpper.view.startOfPrecision(start), this.ganttUpper.view.endOfPrecision(end));
|
|
2159
|
+
this.item().updateDate(this.ganttUpper.view.startOfPrecision(start), this.ganttUpper.view.endOfPrecision(end));
|
|
2145
2160
|
}
|
|
2146
|
-
|
|
2147
|
-
this.item = item;
|
|
2161
|
+
initialize(elementRef, item, ganttUpper) {
|
|
2148
2162
|
this.barElement = elementRef.nativeElement;
|
|
2149
2163
|
this.ganttUpper = ganttUpper;
|
|
2150
|
-
|
|
2151
|
-
|
|
2164
|
+
this.item.set(item);
|
|
2165
|
+
}
|
|
2166
|
+
createBarDragRef() {
|
|
2167
|
+
if (this.barDragRef) {
|
|
2168
|
+
this.barDragRef.disabled = this.dragDisabled;
|
|
2152
2169
|
}
|
|
2153
|
-
else {
|
|
2154
|
-
this.
|
|
2155
|
-
if (!this.dragDisabled) {
|
|
2156
|
-
const dragRef = this.createBarDrag();
|
|
2157
|
-
const dragHandlesRefs = this.createBarHandleDrags();
|
|
2158
|
-
this.dragRefs.push(dragRef, ...dragHandlesRefs);
|
|
2159
|
-
}
|
|
2160
|
-
if (!this.linkDragDisabled) {
|
|
2161
|
-
const linkDragRefs = this.createLinkHandleDrags();
|
|
2162
|
-
this.dragRefs.push(...linkDragRefs);
|
|
2163
|
-
}
|
|
2170
|
+
else if (!this.dragDisabled) {
|
|
2171
|
+
this.barDragRef = this.createBarDrag();
|
|
2164
2172
|
}
|
|
2165
2173
|
}
|
|
2174
|
+
createBarHandleDragRefs() {
|
|
2175
|
+
if (this.barHandleDragRefs.length > 0) {
|
|
2176
|
+
this.barHandleDragRefs.forEach((dragRef) => {
|
|
2177
|
+
dragRef.disabled = this.dragDisabled;
|
|
2178
|
+
});
|
|
2179
|
+
}
|
|
2180
|
+
else if (!this.dragDisabled) {
|
|
2181
|
+
this.barHandleDragRefs = this.createBarHandleDrags();
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2184
|
+
createLinkDragRefs() {
|
|
2185
|
+
if (this.linkDragRefs.length > 0) {
|
|
2186
|
+
this.linkDragRefs.forEach((dragRef) => {
|
|
2187
|
+
dragRef.disabled = this.linkDragDisabled;
|
|
2188
|
+
});
|
|
2189
|
+
}
|
|
2190
|
+
else if (!this.linkDragDisabled) {
|
|
2191
|
+
this.linkDragRefs = this.createLinkHandleDrags();
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
createDrags() {
|
|
2195
|
+
this.createMouseEvents();
|
|
2196
|
+
this.createBarDragRef();
|
|
2197
|
+
this.createBarHandleDragRefs();
|
|
2198
|
+
this.createLinkDragRefs();
|
|
2199
|
+
}
|
|
2166
2200
|
updateItem(item) {
|
|
2167
|
-
this.item
|
|
2201
|
+
this.item.set(item);
|
|
2168
2202
|
}
|
|
2169
2203
|
ngOnDestroy() {
|
|
2170
2204
|
this.closeDragBackdrop();
|
|
2171
|
-
this.
|
|
2205
|
+
this.barDragRef?.dispose();
|
|
2206
|
+
this.linkDragRefs?.forEach((dragRef) => dragRef.dispose());
|
|
2207
|
+
this.barHandleDragRefs?.forEach((dragRef) => dragRef.dispose());
|
|
2172
2208
|
this.destroy$.next();
|
|
2173
2209
|
this.destroy$.complete();
|
|
2174
2210
|
this.stopScrolling();
|
|
@@ -2293,7 +2329,7 @@ class NgxGanttBarComponent extends GanttItemUpper {
|
|
|
2293
2329
|
// using `zone-patch-rxjs` because it'll trigger a change detection when it unsubscribes.
|
|
2294
2330
|
this.ngZone.runOutsideAngular(() => {
|
|
2295
2331
|
onStable$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
|
|
2296
|
-
this.drag.
|
|
2332
|
+
this.drag.initialize(this.elementRef, this.item, this.ganttUpper);
|
|
2297
2333
|
});
|
|
2298
2334
|
});
|
|
2299
2335
|
this.setContentBackground();
|
|
@@ -4296,7 +4332,7 @@ class NgxGanttComponent extends GanttUpper {
|
|
|
4296
4332
|
provide: GANTT_ABSTRACT_TOKEN,
|
|
4297
4333
|
useExisting: forwardRef(() => NgxGanttComponent)
|
|
4298
4334
|
}
|
|
4299
|
-
], queries: [{ propertyName: "table", first: true, predicate: NgxGanttTableComponent, descendants: true }, { propertyName: "tableEmptyTemplate", first: true, predicate: ["tableEmpty"], descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "columns", predicate: NgxGanttTableColumnComponent, descendants: true }], viewQueries: [{ propertyName: "ganttRoot", first: true, predicate: ["ganttRoot"], descendants: true }, { propertyName: "virtualScroll", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ngx-gantt-root #ganttRoot>\n <div class=\"gantt-header\">\n <gantt-table-header #tableHeader [columns]=\"columns\"></gantt-table-header>\n <div class=\"gantt-container-header\">\n <gantt-calendar-header [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"></gantt-calendar-header>\n </div>\n </div>\n <gantt-loader *ngIf=\"loading\"></gantt-loader>\n\n <cdk-virtual-scroll-viewport\n class=\"gantt-virtual-scroll-viewport\"\n [ngClass]=\"{\n 'gantt-normal-viewport': !virtualScrollEnabled,\n 'gantt-scroll-container': virtualScrollEnabled,\n 'with-footer': table?.tableFooterTemplate || footerTemplate\n }\"\n [style.top.px]=\"styles.headerHeight\"\n [itemSize]=\"styles.lineHeight\"\n [minBufferPx]=\"styles.lineHeight * 10\"\n [maxBufferPx]=\"styles.lineHeight * 20\"\n (scrolledIndexChange)=\"scrolledIndexChange($event)\"\n >\n <ng-container *cdkVirtualFor=\"let item of flatItems; trackBy: trackBy\"></ng-container>\n <div class=\"gantt-side\" [style.width.px]=\"tableHeader.tableWidth + 1\" [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\">\n <div class=\"gantt-side-container\">\n <div class=\"gantt-table\">\n <gantt-table-body\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [columns]=\"columns\"\n [groupTemplate]=\"groupTemplate\"\n [emptyTemplate]=\"table.tableEmptyTemplate || tableEmptyTemplate\"\n [rowBeforeTemplate]=\"table?.rowBeforeTemplate\"\n [rowAfterTemplate]=\"table?.rowAfterTemplate\"\n [draggable]=\"table.draggable\"\n [dropEnterPredicate]=\"table.dropEnterPredicate\"\n (dragDropped)=\"table.dragDropped.emit($event)\"\n (dragStarted)=\"itemDragStarted($event)\"\n (dragEnded)=\"itemDragEnded($event)\"\n (itemClick)=\"selectItem($event)\"\n >\n </gantt-table-body>\n </div>\n </div>\n </div>\n <div class=\"gantt-container\">\n <gantt-calendar-grid\n [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n ></gantt-calendar-grid>\n <div class=\"gantt-main\">\n <gantt-main\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [groupHeaderTemplate]=\"groupHeaderTemplate\"\n [itemTemplate]=\"itemTemplate\"\n [barTemplate]=\"barTemplate\"\n [rangeTemplate]=\"rangeTemplate\"\n [baselineTemplate]=\"baselineTemplate\"\n (barClick)=\"barClick.emit($event)\"\n (lineClick)=\"lineClick.emit($event)\"\n >\n </gantt-main>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n\n <gantt-drag-backdrop [style.left.px]=\"tableHeader.tableWidth + 1\"></gantt-drag-backdrop>\n\n <gantt-scrollbar\n [ganttRoot]=\"ganttRoot\"\n [hasFooter]=\"!!table?.tableFooterTemplate\"\n [tableWidth]=\"tableHeader.tableWidth\"\n ></gantt-scrollbar>\n\n <div
|
|
4335
|
+
], queries: [{ propertyName: "table", first: true, predicate: NgxGanttTableComponent, descendants: true }, { propertyName: "tableEmptyTemplate", first: true, predicate: ["tableEmpty"], descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "columns", predicate: NgxGanttTableColumnComponent, descendants: true }], viewQueries: [{ propertyName: "ganttRoot", first: true, predicate: ["ganttRoot"], descendants: true }, { propertyName: "virtualScroll", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ngx-gantt-root #ganttRoot>\n <div class=\"gantt-header\">\n <gantt-table-header #tableHeader [columns]=\"columns\"></gantt-table-header>\n <div class=\"gantt-container-header\">\n <gantt-calendar-header [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"></gantt-calendar-header>\n </div>\n </div>\n <gantt-loader *ngIf=\"loading\"></gantt-loader>\n\n <cdk-virtual-scroll-viewport\n class=\"gantt-virtual-scroll-viewport\"\n [ngClass]=\"{\n 'gantt-normal-viewport': !virtualScrollEnabled,\n 'gantt-scroll-container': virtualScrollEnabled,\n 'with-footer': table?.tableFooterTemplate || footerTemplate\n }\"\n [style.top.px]=\"styles.headerHeight\"\n [itemSize]=\"styles.lineHeight\"\n [minBufferPx]=\"styles.lineHeight * 10\"\n [maxBufferPx]=\"styles.lineHeight * 20\"\n (scrolledIndexChange)=\"scrolledIndexChange($event)\"\n >\n <ng-container *cdkVirtualFor=\"let item of flatItems; trackBy: trackBy\"></ng-container>\n <div class=\"gantt-side\" [style.width.px]=\"tableHeader.tableWidth + 1\" [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\">\n <div class=\"gantt-side-container\">\n <div class=\"gantt-table\">\n <gantt-table-body\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [columns]=\"columns\"\n [groupTemplate]=\"groupTemplate\"\n [emptyTemplate]=\"table.tableEmptyTemplate || tableEmptyTemplate\"\n [rowBeforeTemplate]=\"table?.rowBeforeTemplate\"\n [rowAfterTemplate]=\"table?.rowAfterTemplate\"\n [draggable]=\"table.draggable\"\n [dropEnterPredicate]=\"table.dropEnterPredicate\"\n (dragDropped)=\"table.dragDropped.emit($event)\"\n (dragStarted)=\"itemDragStarted($event)\"\n (dragEnded)=\"itemDragEnded($event)\"\n (itemClick)=\"selectItem($event)\"\n >\n </gantt-table-body>\n </div>\n </div>\n </div>\n <div class=\"gantt-container\">\n <gantt-calendar-grid\n [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n ></gantt-calendar-grid>\n <div class=\"gantt-main\">\n <gantt-main\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [groupHeaderTemplate]=\"groupHeaderTemplate\"\n [itemTemplate]=\"itemTemplate\"\n [barTemplate]=\"barTemplate\"\n [rangeTemplate]=\"rangeTemplate\"\n [baselineTemplate]=\"baselineTemplate\"\n (barClick)=\"barClick.emit($event)\"\n (lineClick)=\"lineClick.emit($event)\"\n >\n </gantt-main>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n\n <gantt-drag-backdrop [style.left.px]=\"tableHeader.tableWidth + 1\"></gantt-drag-backdrop>\n\n <gantt-scrollbar\n [ganttRoot]=\"ganttRoot\"\n [hasFooter]=\"!!table?.tableFooterTemplate\"\n [tableWidth]=\"tableHeader.tableWidth\"\n ></gantt-scrollbar>\n\n <div\n class=\"gantt-footer\"\n *ngIf=\"table?.tableFooterTemplate || footerTemplate\"\n [style.right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n >\n <div class=\"gantt-table-footer\" [style.width.px]=\"tableHeader.tableWidth + 1\" *ngIf=\"table?.tableFooterTemplate\">\n <ng-template [ngTemplateOutlet]=\"table?.tableFooterTemplate\" [ngTemplateOutletContext]=\"{ columns: columns }\"> </ng-template>\n </div>\n <div class=\"gantt-container-footer\" *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"> </ng-template>\n </div>\n </div>\n</ngx-gantt-root>\n", dependencies: [{ kind: "component", type: NgxGanttRootComponent, selector: "ngx-gantt-root", inputs: ["sideWidth"] }, { kind: "component", type: GanttTableHeaderComponent, selector: "gantt-table-header", inputs: ["columns"] }, { kind: "component", type: GanttCalendarHeaderComponent, selector: "gantt-calendar-header" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GanttLoaderComponent, selector: "gantt-loader" }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: GanttTableBodyComponent, selector: "gantt-table-body", inputs: ["viewportItems", "flatItems", "columns", "groupTemplate", "emptyTemplate", "rowBeforeTemplate", "rowAfterTemplate", "draggable", "dropEnterPredicate"], outputs: ["dragDropped", "dragStarted", "dragEnded", "itemClick"] }, { kind: "component", type: GanttCalendarGridComponent, selector: "gantt-calendar-grid" }, { kind: "component", type: GanttMainComponent, selector: "gantt-main", inputs: ["viewportItems", "flatItems", "groupHeaderTemplate", "itemTemplate", "barTemplate", "rangeTemplate", "baselineTemplate"], outputs: ["barClick", "lineClick"] }, { kind: "component", type: GanttDragBackdropComponent, selector: "gantt-drag-backdrop" }, { kind: "component", type: GanttScrollbarComponent, selector: "gantt-scrollbar", inputs: ["hasFooter", "tableWidth", "ganttRoot"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4300
4336
|
}
|
|
4301
4337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttComponent, decorators: [{
|
|
4302
4338
|
type: Component,
|
|
@@ -4325,7 +4361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
4325
4361
|
GanttDragBackdropComponent,
|
|
4326
4362
|
GanttScrollbarComponent,
|
|
4327
4363
|
NgTemplateOutlet
|
|
4328
|
-
], template: "<ngx-gantt-root #ganttRoot>\n <div class=\"gantt-header\">\n <gantt-table-header #tableHeader [columns]=\"columns\"></gantt-table-header>\n <div class=\"gantt-container-header\">\n <gantt-calendar-header [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"></gantt-calendar-header>\n </div>\n </div>\n <gantt-loader *ngIf=\"loading\"></gantt-loader>\n\n <cdk-virtual-scroll-viewport\n class=\"gantt-virtual-scroll-viewport\"\n [ngClass]=\"{\n 'gantt-normal-viewport': !virtualScrollEnabled,\n 'gantt-scroll-container': virtualScrollEnabled,\n 'with-footer': table?.tableFooterTemplate || footerTemplate\n }\"\n [style.top.px]=\"styles.headerHeight\"\n [itemSize]=\"styles.lineHeight\"\n [minBufferPx]=\"styles.lineHeight * 10\"\n [maxBufferPx]=\"styles.lineHeight * 20\"\n (scrolledIndexChange)=\"scrolledIndexChange($event)\"\n >\n <ng-container *cdkVirtualFor=\"let item of flatItems; trackBy: trackBy\"></ng-container>\n <div class=\"gantt-side\" [style.width.px]=\"tableHeader.tableWidth + 1\" [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\">\n <div class=\"gantt-side-container\">\n <div class=\"gantt-table\">\n <gantt-table-body\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [columns]=\"columns\"\n [groupTemplate]=\"groupTemplate\"\n [emptyTemplate]=\"table.tableEmptyTemplate || tableEmptyTemplate\"\n [rowBeforeTemplate]=\"table?.rowBeforeTemplate\"\n [rowAfterTemplate]=\"table?.rowAfterTemplate\"\n [draggable]=\"table.draggable\"\n [dropEnterPredicate]=\"table.dropEnterPredicate\"\n (dragDropped)=\"table.dragDropped.emit($event)\"\n (dragStarted)=\"itemDragStarted($event)\"\n (dragEnded)=\"itemDragEnded($event)\"\n (itemClick)=\"selectItem($event)\"\n >\n </gantt-table-body>\n </div>\n </div>\n </div>\n <div class=\"gantt-container\">\n <gantt-calendar-grid\n [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n ></gantt-calendar-grid>\n <div class=\"gantt-main\">\n <gantt-main\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [groupHeaderTemplate]=\"groupHeaderTemplate\"\n [itemTemplate]=\"itemTemplate\"\n [barTemplate]=\"barTemplate\"\n [rangeTemplate]=\"rangeTemplate\"\n [baselineTemplate]=\"baselineTemplate\"\n (barClick)=\"barClick.emit($event)\"\n (lineClick)=\"lineClick.emit($event)\"\n >\n </gantt-main>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n\n <gantt-drag-backdrop [style.left.px]=\"tableHeader.tableWidth + 1\"></gantt-drag-backdrop>\n\n <gantt-scrollbar\n [ganttRoot]=\"ganttRoot\"\n [hasFooter]=\"!!table?.tableFooterTemplate\"\n [tableWidth]=\"tableHeader.tableWidth\"\n ></gantt-scrollbar>\n\n <div
|
|
4364
|
+
], template: "<ngx-gantt-root #ganttRoot>\n <div class=\"gantt-header\">\n <gantt-table-header #tableHeader [columns]=\"columns\"></gantt-table-header>\n <div class=\"gantt-container-header\">\n <gantt-calendar-header [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"></gantt-calendar-header>\n </div>\n </div>\n <gantt-loader *ngIf=\"loading\"></gantt-loader>\n\n <cdk-virtual-scroll-viewport\n class=\"gantt-virtual-scroll-viewport\"\n [ngClass]=\"{\n 'gantt-normal-viewport': !virtualScrollEnabled,\n 'gantt-scroll-container': virtualScrollEnabled,\n 'with-footer': table?.tableFooterTemplate || footerTemplate\n }\"\n [style.top.px]=\"styles.headerHeight\"\n [itemSize]=\"styles.lineHeight\"\n [minBufferPx]=\"styles.lineHeight * 10\"\n [maxBufferPx]=\"styles.lineHeight * 20\"\n (scrolledIndexChange)=\"scrolledIndexChange($event)\"\n >\n <ng-container *cdkVirtualFor=\"let item of flatItems; trackBy: trackBy\"></ng-container>\n <div class=\"gantt-side\" [style.width.px]=\"tableHeader.tableWidth + 1\" [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\">\n <div class=\"gantt-side-container\">\n <div class=\"gantt-table\">\n <gantt-table-body\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [columns]=\"columns\"\n [groupTemplate]=\"groupTemplate\"\n [emptyTemplate]=\"table.tableEmptyTemplate || tableEmptyTemplate\"\n [rowBeforeTemplate]=\"table?.rowBeforeTemplate\"\n [rowAfterTemplate]=\"table?.rowAfterTemplate\"\n [draggable]=\"table.draggable\"\n [dropEnterPredicate]=\"table.dropEnterPredicate\"\n (dragDropped)=\"table.dragDropped.emit($event)\"\n (dragStarted)=\"itemDragStarted($event)\"\n (dragEnded)=\"itemDragEnded($event)\"\n (itemClick)=\"selectItem($event)\"\n >\n </gantt-table-body>\n </div>\n </div>\n </div>\n <div class=\"gantt-container\">\n <gantt-calendar-grid\n [style.padding-right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.padding-bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n ></gantt-calendar-grid>\n <div class=\"gantt-main\">\n <gantt-main\n [flatItems]=\"flatItems\"\n [viewportItems]=\"viewportItems\"\n [groupHeaderTemplate]=\"groupHeaderTemplate\"\n [itemTemplate]=\"itemTemplate\"\n [barTemplate]=\"barTemplate\"\n [rangeTemplate]=\"rangeTemplate\"\n [baselineTemplate]=\"baselineTemplate\"\n (barClick)=\"barClick.emit($event)\"\n (lineClick)=\"lineClick.emit($event)\"\n >\n </gantt-main>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n\n <gantt-drag-backdrop [style.left.px]=\"tableHeader.tableWidth + 1\"></gantt-drag-backdrop>\n\n <gantt-scrollbar\n [ganttRoot]=\"ganttRoot\"\n [hasFooter]=\"!!table?.tableFooterTemplate\"\n [tableWidth]=\"tableHeader.tableWidth\"\n ></gantt-scrollbar>\n\n <div\n class=\"gantt-footer\"\n *ngIf=\"table?.tableFooterTemplate || footerTemplate\"\n [style.right.px]=\"ganttRoot.verticalScrollbarWidth\"\n [style.bottom.px]=\"ganttRoot.horizontalScrollbarHeight\"\n >\n <div class=\"gantt-table-footer\" [style.width.px]=\"tableHeader.tableWidth + 1\" *ngIf=\"table?.tableFooterTemplate\">\n <ng-template [ngTemplateOutlet]=\"table?.tableFooterTemplate\" [ngTemplateOutletContext]=\"{ columns: columns }\"> </ng-template>\n </div>\n <div class=\"gantt-container-footer\" *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"> </ng-template>\n </div>\n </div>\n</ngx-gantt-root>\n" }]
|
|
4329
4365
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$1.ViewportRuler }, { type: undefined, decorators: [{
|
|
4330
4366
|
type: Inject,
|
|
4331
4367
|
args: [GANTT_GLOBAL_CONFIG]
|