@worktile/gantt 18.0.3 → 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.
|
@@ -54,7 +54,7 @@ export class NgxGanttBarComponent extends GanttItemUpper {
|
|
|
54
54
|
// using `zone-patch-rxjs` because it'll trigger a change detection when it unsubscribes.
|
|
55
55
|
this.ngZone.runOutsideAngular(() => {
|
|
56
56
|
onStable$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
|
|
57
|
-
this.drag.
|
|
57
|
+
this.drag.initialize(this.elementRef, this.item, this.ganttUpper);
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
this.setContentBackground();
|
|
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
129
129
|
type: ViewChildren,
|
|
130
130
|
args: ['handle']
|
|
131
131
|
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2Jhci9iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvYmFyL2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFdBQVcsRUFJWCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxFQUlmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUV6RCxTQUFTLGNBQWMsQ0FBQyxZQUFvQixFQUFFLEtBQWEsRUFBRSxJQUFZO0lBQ3JFLE9BQU8sbUJBQW1CLFlBQVksSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUM7QUFDdEUsQ0FBQztBQVNELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxjQUFjO0lBU3BELFlBQ1ksYUFBaUMsRUFDakMsSUFBa0IsRUFDMUIsVUFBc0MsRUFDSyxVQUFzQixFQUN6RCxNQUFjO1FBRXRCLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFOdEIsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQWM7UUFFaUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN6RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBYmhCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUk1QixtQkFBYyxHQUFHLElBQUksQ0FBQztJQVl0RCxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEMsSUFDSSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLO2dCQUNoRixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztnQkFDcEUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSztnQkFDbEYsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUNoRixDQUFDO2dCQUNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCx5R0FBeUc7UUFDekcsNENBQTRDO1FBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxxRkFBcUY7UUFDckYseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzthQUNmLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUN2QixTQUFTLENBQ0wsR0FBRyxFQUFFO1FBQ0QsNkZBQTZGO1FBQzdGLGdEQUFnRDtRQUNoRCxJQUFJLFVBQVUsQ0FBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQy9CLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNwRyxVQUFVLENBQ2IsQ0FDSixDQUNKLENBQ1IsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUMvQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN4QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1lBQzVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQztZQUMvQyxNQUFNLEtBQUssR0FBaUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3JFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBRWpELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNqRCxLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDekIsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDNUIsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFeEYsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUM7Z0JBQzdDLEtBQUssQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO2dCQUNsQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7WUFDakQsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFekYsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUM7Z0JBQzdDLEtBQUssQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO2dCQUNsQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7WUFDakQsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBbUIsQ0FBQztnQkFDN0csS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsc0JBQXNCLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDcEQsQ0FBQztZQUVELEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM1QixjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQWhJUSxvQkFBb0IsMEdBYWpCLGlCQUFpQjtrR0FicEIsb0JBQW9CLDZLQUpsQixDQUFDLFlBQVksQ0FBQywyUENuQzdCLGcyQkFpQkEsNENEb0JjLElBQUksNkZBQUUsZ0JBQWdCOzsyRkFFdkIsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLHlCQUF5QixhQUV4QixDQUFDLFlBQVksQ0FBQyxjQUNiLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQzs7MEJBZTVCLE1BQU07MkJBQUMsaUJBQWlCOzhEQVpuQixRQUFRO3NCQUFqQixNQUFNO2dCQUVlLGlCQUFpQjtzQkFBdEMsU0FBUzt1QkFBQyxTQUFTO2dCQUVZLGNBQWM7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUVOLE9BQU87c0JBQTlCLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5qZWN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBOZ1pvbmUsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb20sIGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHYW50dEJhckRyYWcgfSBmcm9tICcuL2Jhci1kcmFnJztcbmltcG9ydCB7IGhleFRvUmdiIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBHYW50dERyYWdDb250YWluZXIgfSBmcm9tICcuLi8uLi9nYW50dC1kcmFnLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBiYXJCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vLi4vZ2FudHQuc3R5bGVzJztcbmltcG9ydCB7IEdhbnR0QmFyQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL2NsYXNzJztcbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi4vLi4vZ2FudHQtdXBwZXInO1xuaW1wb3J0IHsgR2FudHRJdGVtVXBwZXIgfSBmcm9tICcuLi8uLi9nYW50dC1pdGVtLXVwcGVyJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5mdW5jdGlvbiBsaW5lYXJHcmFkaWVudChzaWRlT3JDb3JuZXI6IHN0cmluZywgY29sb3I6IHN0cmluZywgc3RvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtzaWRlT3JDb3JuZXJ9LCR7Y29sb3J9IDAlLCR7c3RvcH0gNDAlKWA7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LWdhbnR0LWJhcixnYW50dC1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0dhbnR0QmFyRHJhZ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4R2FudHRCYXJDb21wb25lbnQgZXh0ZW5kcyBHYW50dEl0ZW1VcHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBPdXRwdXQoKSBiYXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8R2FudHRCYXJDbGlja0V2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZ2FudHQtYmFyJykgZ2FudHRJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZHJlbignaGFuZGxlJykgaGFuZGxlczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRyYWdDb250YWluZXI6IEdhbnR0RHJhZ0NvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSBkcmFnOiBHYW50dEJhckRyYWcsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwdWJsaWMgb3ZlcnJpZGUgZ2FudHRVcHBlcjogR2FudHRVcHBlcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBnYW50dFVwcGVyKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmRyYWdTdGFydGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZHJhZ0VuZGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnJztcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEJhY2tncm91bmQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgaWYgKCF0aGlzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmRyYWcudXBkYXRlSXRlbSh0aGlzLml0ZW0pO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY2hhbmdlcy5pdGVtLmN1cnJlbnRWYWx1ZS5yZWZzPy53aWR0aCAhPT0gY2hhbmdlcy5pdGVtLnByZXZpb3VzVmFsdWUucmVmcz8ud2lkdGggfHxcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLml0ZW0uY3VycmVudFZhbHVlLmNvbG9yICE9PSBjaGFuZ2VzLml0ZW0ucHJldmlvdXNWYWx1ZS5jb2xvciB8fFxuICAgICAgICAgICAgICAgIGNoYW5nZXMuaXRlbS5jdXJyZW50VmFsdWUuc3RhcnQ/LnZhbHVlICE9PSBjaGFuZ2VzLml0ZW0ucHJldmlvdXNWYWx1ZS5zdGFydD8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLml0ZW0uY3VycmVudFZhbHVlLmVuZD8udmFsdWUgIT09IGNoYW5nZXMuaXRlbS5wcmV2aW91c1ZhbHVlLmVuZD8udmFsdWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEJhY2tncm91bmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gTm90ZTogdGhlIHpvbmUgbWF5IGJlIG5vb3BlZCB0aHJvdWdoIGBCb290c3RyYXBPcHRpb25zYCB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlIHJvb3QgbW9kdWxlLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIHRoZSBgb25TdGFibGVgIHdpbGwgbmV2ZXIgZW1pdCBhbnkgdmFsdWUuXG4gICAgICAgIGNvbnN0IG9uU3RhYmxlJCA9IHRoaXMubmdab25lLmlzU3RhYmxlID8gZnJvbShQcm9taXNlLnJlc29sdmUoKSkgOiB0aGlzLm5nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpO1xuICAgICAgICAvLyBOb3JtYWxseSB0aGlzIGlzbid0IGluIHRoZSB6b25lLCBidXQgaXQgY2FuIGNhdXNlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb25zIGZvciBhcHBzXG4gICAgICAgIC8vIHVzaW5nIGB6b25lLXBhdGNoLXJ4anNgIGJlY2F1c2UgaXQnbGwgdHJpZ2dlciBhIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBpdCB1bnN1YnNjcmliZXMuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIG9uU3RhYmxlJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnLmNyZWF0ZURyYWdzKHRoaXMuZWxlbWVudFJlZiwgdGhpcy5pdGVtLCB0aGlzLmdhbnR0VXBwZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2V0Q29udGVudEJhY2tncm91bmQoKTtcblxuICAgICAgICB0aGlzLmhhbmRsZXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuaGFuZGxlcyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogd2UgbmVlZCB0byBleHBsaWNpdGx5IHN1YnNjcmliZSBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgc2luY2UgYGFkZEV2ZW50TGlzdGVuZXJgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBjYWxsZWQgd2hlbiB0aGUgYGZyb21FdmVudGAgaXMgc3Vic2NyaWJlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYnNlcnZhYmxlPEV2ZW50Pigoc3Vic2NyaWJlcikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZSguLi50aGlzLmhhbmRsZXMudG9BcnJheSgpLm1hcCgoaGFuZGxlKSA9PiBmcm9tRXZlbnQoaGFuZGxlLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKSkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkJhckNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmJhckNsaWNrLmVtaXQoeyBldmVudCwgaXRlbTogdGhpcy5pdGVtLm9yaWdpbiB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbnRlbnRCYWNrZ3JvdW5kKCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtLnJlZnM/LndpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IHRoaXMuY29udGVudEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gdGhpcy5pdGVtLmNvbG9yIHx8IGJhckJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb25zdCBzdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHRoaXMuaXRlbS5iYXJTdHlsZSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IGJhckVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbS5vcmlnaW4uc3RhcnQgJiYgdGhpcy5pdGVtLm9yaWdpbi5lbmQpIHtcbiAgICAgICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kID0gY29sb3I7XG4gICAgICAgICAgICAgICAgc3R5bGUuYm9yZGVyUmFkaXVzID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLm9yaWdpbi5zdGFydCAmJiAhdGhpcy5pdGVtLm9yaWdpbi5lbmQpIHtcbiAgICAgICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kID0gbGluZWFyR3JhZGllbnQoJ3RvIGxlZnQnLCBoZXhUb1JnYihjb2xvciwgMC41NSksIGhleFRvUmdiKGNvbG9yLCAxKSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBib3JkZXJSYWRpdXMgPSAnNHB4IDEyLjVweCAxMi41cHggNHB4JztcbiAgICAgICAgICAgICAgICBzdHlsZS5ib3JkZXJSYWRpdXMgPSBib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICAgICAgYmFyRWxlbWVudC5zdHlsZS5ib3JkZXJSYWRpdXMgPSBib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXRlbS5vcmlnaW4uc3RhcnQgJiYgdGhpcy5pdGVtLm9yaWdpbi5lbmQpIHtcbiAgICAgICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kID0gbGluZWFyR3JhZGllbnQoJ3RvIHJpZ2h0JywgaGV4VG9SZ2IoY29sb3IsIDAuNTUpLCBoZXhUb1JnYihjb2xvciwgMSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYm9yZGVyUmFkaXVzID0gJzEyLjVweCA0cHggNHB4IDEyLjVweCc7XG4gICAgICAgICAgICAgICAgc3R5bGUuYm9yZGVyUmFkaXVzID0gYm9yZGVyUmFkaXVzO1xuICAgICAgICAgICAgICAgIGJhckVsZW1lbnQuc3R5bGUuYm9yZGVyUmFkaXVzID0gYm9yZGVyUmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbS5wcm9ncmVzcyA+PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudFByb2dyZXNzRWxlbWVudCA9IGNvbnRlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nYW50dC1iYXItY29udGVudC1wcm9ncmVzcycpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICAgICAgICAgIHN0eWxlLmJhY2tncm91bmQgPSBoZXhUb1JnYihjb2xvciwgMC4zKTtcbiAgICAgICAgICAgICAgICBzdHlsZS5ib3JkZXJSYWRpdXMgPSAnJztcbiAgICAgICAgICAgICAgICBjb250ZW50UHJvZ3Jlc3NFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBjb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3R5bGUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZVtrZXldID0gc3R5bGVba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnYW50dC1iYXItbGF5ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmRyYWdnYWJsZSAmJiBnYW50dFVwcGVyLmRyYWdnYWJsZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYW5kbGVcIiAjaGFuZGxlPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGFuZGxlXCIgI2hhbmRsZT48L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaXRlbS5saW5rYWJsZSAmJiBnYW50dFVwcGVyLmxpbmthYmxlXCIgY2xhc3M9XCJsaW5rLWhhbmRsZXNcIj5cbiAgICA8c3BhbiBjbGFzcz1cImhhbmRsZVwiPjxzcGFuIGNsYXNzPVwicG9pbnRcIj48L3NwYW4+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiaGFuZGxlXCI+IDxzcGFuIGNsYXNzPVwicG9pbnRcIj48L3NwYW4+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdhbnR0LWJhci1ib3JkZXJcIj48L2Rpdj5cbjxkaXYgI2NvbnRlbnQgY2xhc3M9XCJnYW50dC1iYXItY29udGVudFwiIChjbGljayk9XCJvbkJhckNsaWNrKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cImdhbnR0LWJhci1jb250ZW50LXByb2dyZXNzXCIgKm5nSWY9XCJpdGVtLnByb2dyZXNzID49IDBcIiBbc3R5bGUud2lkdGguJV09XCJpdGVtLnByb2dyZXNzICogMTAwXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0ub3JpZ2luLCByZWZzOiBpdGVtLnJlZnMgfVwiPiA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2Jhci9iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvYmFyL2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFdBQVcsRUFJWCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxFQUlmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUV6RCxTQUFTLGNBQWMsQ0FBQyxZQUFvQixFQUFFLEtBQWEsRUFBRSxJQUFZO0lBQ3JFLE9BQU8sbUJBQW1CLFlBQVksSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUM7QUFDdEUsQ0FBQztBQVNELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxjQUFjO0lBU3BELFlBQ1ks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RUFBRSxnQkFBZ0IsQ0FBQzs7MEJBZTVCLE1BQU07MkJBQUMsaUJBQWlCOzhEQVpuQixRQUFRO3NCQUFqQixNQUFNO2dCQUVlLGlCQUFpQjtzQkFBdEMsU0FBUzt1QkFBQyxTQUFTO2dCQUVZLGNBQWM7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUVOLE9BQU87c0JBQTlCLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5qZWN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBOZ1pvbmUsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb20sIGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHYW50dEJhckRyYWcgfSBmcm9tICcuL2Jhci1kcmFnJztcbmltcG9ydCB7IGhleFRvUmdiIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBHYW50dERyYWdDb250YWluZXIgfSBmcm9tICcuLi8uLi9nYW50dC1kcmFnLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBiYXJCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vLi4vZ2FudHQuc3R5bGVzJztcbmltcG9ydCB7IEdhbnR0QmFyQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL2NsYXNzJztcbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi4vLi4vZ2FudHQtdXBwZXInO1xuaW1wb3J0IHsgR2FudHRJdGVtVXBwZXIgfSBmcm9tICcuLi8uLi9nYW50dC1pdGVtLXVwcGVyJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5mdW5jdGlvbiBsaW5lYXJHcmFkaWVudChzaWRlT3JDb3JuZXI6IHN0cmluZywgY29sb3I6IHN0cmluZywgc3RvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtzaWRlT3JDb3JuZXJ9LCR7Y29sb3J9IDAlLCR7c3RvcH0gNDAlKWA7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LWdhbnR0LWJhcixnYW50dC1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0dhbnR0QmFyRHJhZ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4R2FudHRCYXJDb21wb25lbnQgZXh0ZW5kcyBHYW50dEl0ZW1VcHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBPdXRwdXQoKSBiYXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8R2FudHRCYXJDbGlja0V2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZ2FudHQtYmFyJykgZ2FudHRJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZHJlbignaGFuZGxlJykgaGFuZGxlczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRyYWdDb250YWluZXI6IEdhbnR0RHJhZ0NvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSBkcmFnOiBHYW50dEJhckRyYWcsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwdWJsaWMgb3ZlcnJpZGUgZ2FudHRVcHBlcjogR2FudHRVcHBlcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBnYW50dFVwcGVyKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmRyYWdTdGFydGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZHJhZ0VuZGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnJztcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEJhY2tncm91bmQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgaWYgKCF0aGlzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmRyYWcudXBkYXRlSXRlbSh0aGlzLml0ZW0pO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY2hhbmdlcy5pdGVtLmN1cnJlbnRWYWx1ZS5yZWZzPy53aWR0aCAhPT0gY2hhbmdlcy5pdGVtLnByZXZpb3VzVmFsdWUucmVmcz8ud2lkdGggfHxcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLml0ZW0uY3VycmVudFZhbHVlLmNvbG9yICE9PSBjaGFuZ2VzLml0ZW0ucHJldmlvdXNWYWx1ZS5jb2xvciB8fFxuICAgICAgICAgICAgICAgIGNoYW5nZXMuaXRlbS5jdXJyZW50VmFsdWUuc3RhcnQ/LnZhbHVlICE9PSBjaGFuZ2VzLml0ZW0ucHJldmlvdXNWYWx1ZS5zdGFydD8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLml0ZW0uY3VycmVudFZhbHVlLmVuZD8udmFsdWUgIT09IGNoYW5nZXMuaXRlbS5wcmV2aW91c1ZhbHVlLmVuZD8udmFsdWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEJhY2tncm91bmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gTm90ZTogdGhlIHpvbmUgbWF5IGJlIG5vb3BlZCB0aHJvdWdoIGBCb290c3RyYXBPcHRpb25zYCB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlIHJvb3QgbW9kdWxlLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIHRoZSBgb25TdGFibGVgIHdpbGwgbmV2ZXIgZW1pdCBhbnkgdmFsdWUuXG4gICAgICAgIGNvbnN0IG9uU3RhYmxlJCA9IHRoaXMubmdab25lLmlzU3RhYmxlID8gZnJvbShQcm9taXNlLnJlc29sdmUoKSkgOiB0aGlzLm5nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpO1xuICAgICAgICAvLyBOb3JtYWxseSB0aGlzIGlzbid0IGluIHRoZSB6b25lLCBidXQgaXQgY2FuIGNhdXNlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb25zIGZvciBhcHBzXG4gICAgICAgIC8vIHVzaW5nIGB6b25lLXBhdGNoLXJ4anNgIGJlY2F1c2UgaXQnbGwgdHJpZ2dlciBhIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBpdCB1bnN1YnNjcmliZXMuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIG9uU3RhYmxlJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnLmluaXRpYWxpemUodGhpcy5lbGVtZW50UmVmLCB0aGlzLml0ZW0sIHRoaXMuZ2FudHRVcHBlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXRDb250ZW50QmFja2dyb3VuZCgpO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5oYW5kbGVzKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgc3Vic2NyaWJlIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZSBzaW5jZSBgYWRkRXZlbnRMaXN0ZW5lcmBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGNhbGxlZCB3aGVuIHRoZSBgZnJvbUV2ZW50YCBpcyBzdWJzY3JpYmVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9ic2VydmFibGU8RXZlbnQ+KChzdWJzY3JpYmVyKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlKC4uLnRoaXMuaGFuZGxlcy50b0FycmF5KCkubWFwKChoYW5kbGUpID0+IGZyb21FdmVudChoYW5kbGUubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpKSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQmFyQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuYmFyQ2xpY2suZW1pdCh7IGV2ZW50LCBpdGVtOiB0aGlzLml0ZW0ub3JpZ2luIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29udGVudEJhY2tncm91bmQoKSB7XG4gICAgICAgIGlmICh0aGlzLml0ZW0ucmVmcz8ud2lkdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLml0ZW0uY29sb3IgfHwgYmFyQmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0gdGhpcy5pdGVtLmJhclN0eWxlIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgYmFyRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLm9yaWdpbi5zdGFydCAmJiB0aGlzLml0ZW0ub3JpZ2luLmVuZCkge1xuICAgICAgICAgICAgICAgIHN0eWxlLmJhY2tncm91bmQgPSBjb2xvcjtcbiAgICAgICAgICAgICAgICBzdHlsZS5ib3JkZXJSYWRpdXMgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW0ub3JpZ2luLnN0YXJ0ICYmICF0aGlzLml0ZW0ub3JpZ2luLmVuZCkge1xuICAgICAgICAgICAgICAgIHN0eWxlLmJhY2tncm91bmQgPSBsaW5lYXJHcmFkaWVudCgndG8gbGVmdCcsIGhleFRvUmdiKGNvbG9yLCAwLjU1KSwgaGV4VG9SZ2IoY29sb3IsIDEpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGJvcmRlclJhZGl1cyA9ICc0cHggMTIuNXB4IDEyLjVweCA0cHgnO1xuICAgICAgICAgICAgICAgIHN0eWxlLmJvcmRlclJhZGl1cyA9IGJvcmRlclJhZGl1cztcbiAgICAgICAgICAgICAgICBiYXJFbGVtZW50LnN0eWxlLmJvcmRlclJhZGl1cyA9IGJvcmRlclJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5pdGVtLm9yaWdpbi5zdGFydCAmJiB0aGlzLml0ZW0ub3JpZ2luLmVuZCkge1xuICAgICAgICAgICAgICAgIHN0eWxlLmJhY2tncm91bmQgPSBsaW5lYXJHcmFkaWVudCgndG8gcmlnaHQnLCBoZXhUb1JnYihjb2xvciwgMC41NSksIGhleFRvUmdiKGNvbG9yLCAxKSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBib3JkZXJSYWRpdXMgPSAnMTIuNXB4IDRweCA0cHggMTIuNXB4JztcbiAgICAgICAgICAgICAgICBzdHlsZS5ib3JkZXJSYWRpdXMgPSBib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICAgICAgYmFyRWxlbWVudC5zdHlsZS5ib3JkZXJSYWRpdXMgPSBib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLnByb2dyZXNzID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UHJvZ3Jlc3NFbGVtZW50ID0gY29udGVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmdhbnR0LWJhci1jb250ZW50LXByb2dyZXNzJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgc3R5bGUuYmFja2dyb3VuZCA9IGhleFRvUmdiKGNvbG9yLCAwLjMpO1xuICAgICAgICAgICAgICAgIHN0eWxlLmJvcmRlclJhZGl1cyA9ICcnO1xuICAgICAgICAgICAgICAgIGNvbnRlbnRQcm9ncmVzc0VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdHlsZSkge1xuICAgICAgICAgICAgICAgIGlmIChzdHlsZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50LnN0eWxlW2tleV0gPSBzdHlsZVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbnR0LWJhci1sYXllclwiPlxuICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZHJhZ2dhYmxlICYmIGdhbnR0VXBwZXIuZHJhZ2dhYmxlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImhhbmRsZVwiICNoYW5kbGU+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYW5kbGVcIiAjaGFuZGxlPjwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJpdGVtLmxpbmthYmxlICYmIGdhbnR0VXBwZXIubGlua2FibGVcIiBjbGFzcz1cImxpbmstaGFuZGxlc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwiaGFuZGxlXCI+PHNwYW4gY2xhc3M9XCJwb2ludFwiPjwvc3Bhbj48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJoYW5kbGVcIj4gPHNwYW4gY2xhc3M9XCJwb2ludFwiPjwvc3Bhbj48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ2FudHQtYmFyLWJvcmRlclwiPjwvZGl2PlxuPGRpdiAjY29udGVudCBjbGFzcz1cImdhbnR0LWJhci1jb250ZW50XCIgKGNsaWNrKT1cIm9uQmFyQ2xpY2soJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwiZ2FudHQtYmFyLWNvbnRlbnQtcHJvZ3Jlc3NcIiAqbmdJZj1cIml0ZW0ucHJvZ3Jlc3MgPj0gMFwiIFtzdHlsZS53aWR0aC4lXT1cIml0ZW0ucHJvZ3Jlc3MgKiAxMDBcIj48L2Rpdj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbS5vcmlnaW4sIHJlZnM6IGl0ZW0ucmVmcyB9XCI+IDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -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();
|