@worktile/gantt 17.0.0-next.0 → 18.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/class/date-point.d.ts +2 -2
- package/components/bar/bar.component.scss +3 -0
- package/components/calendar/calendar.scss +0 -1
- package/components/calendar/grid/calendar-grid.component.d.ts +0 -1
- package/components/calendar/header/calendar-header.component.d.ts +1 -1
- package/components/drag-backdrop/drag-backdrop.component.d.ts +3 -0
- package/components/drag-backdrop/drag-backdrop.component.scss +0 -1
- package/components/links/links.component.scss +0 -1
- package/components/table/gantt-table.scss +0 -3
- package/components/table/header/gantt-table-header.component.d.ts +2 -0
- package/components/toolbar/toolbar.component.d.ts +1 -0
- package/esm2022/class/date-point.mjs +1 -1
- package/esm2022/components/bar/bar-drag.mjs +3 -3
- package/esm2022/components/bar/bar.component.mjs +3 -3
- package/esm2022/components/baseline/baseline.component.mjs +3 -3
- package/esm2022/components/calendar/grid/calendar-grid.component.mjs +6 -7
- package/esm2022/components/calendar/header/calendar-header.component.mjs +14 -8
- package/esm2022/components/drag-backdrop/drag-backdrop.component.mjs +15 -7
- package/esm2022/components/icon/icon.component.mjs +3 -3
- package/esm2022/components/links/links.component.mjs +3 -3
- package/esm2022/components/loader/loader.component.mjs +3 -3
- package/esm2022/components/main/gantt-main.component.mjs +5 -5
- package/esm2022/components/range/range.component.mjs +3 -3
- package/esm2022/components/table/body/gantt-table-body.component.mjs +5 -5
- package/esm2022/components/table/header/gantt-table-header.component.mjs +16 -4
- package/esm2022/components/toolbar/toolbar.component.mjs +10 -4
- package/esm2022/gantt-abstract.mjs +1 -1
- package/esm2022/gantt-dom.service.mjs +3 -3
- package/esm2022/gantt-drag-container.mjs +3 -3
- package/esm2022/gantt-item-upper.mjs +3 -3
- package/esm2022/gantt-print.service.mjs +3 -3
- package/esm2022/gantt-upper.mjs +7 -7
- package/esm2022/gantt.component.mjs +6 -6
- package/esm2022/gantt.config.mjs +6 -1
- package/esm2022/gantt.module.mjs +4 -4
- package/esm2022/gantt.pipe.mjs +9 -9
- package/esm2022/gantt.styles.mjs +1 -6
- package/esm2022/root.component.mjs +3 -3
- package/esm2022/table/gantt-column.component.mjs +3 -3
- package/esm2022/table/gantt-table.component.mjs +3 -3
- package/esm2022/views/hour.mjs +11 -1
- package/esm2022/views/month.mjs +2 -2
- package/esm2022/views/quarter.mjs +2 -2
- package/esm2022/views/view.mjs +3 -3
- package/esm2022/views/year.mjs +2 -2
- package/fesm2022/worktile-gantt.mjs +153 -113
- package/fesm2022/worktile-gantt.mjs.map +1 -1
- package/gantt-abstract.d.ts +2 -2
- package/gantt-upper.d.ts +2 -3
- package/gantt.component.scss +0 -5
- package/gantt.config.d.ts +6 -0
- package/gantt.pipe.d.ts +3 -3
- package/gantt.styles.d.ts +0 -6
- package/package.json +1 -1
- package/styles/variables.scss +4 -2
- package/utils/date.d.ts +0 -1
- package/utils/helpers.d.ts +2 -2
- package/views/hour.d.ts +1 -0
- package/views/view.d.ts +2 -2
package/class/date-point.d.ts
CHANGED
|
@@ -3,13 +3,13 @@ export declare class GanttDatePoint {
|
|
|
3
3
|
start: GanttDate;
|
|
4
4
|
text: string;
|
|
5
5
|
x: number;
|
|
6
|
-
y: number;
|
|
6
|
+
y: number | string;
|
|
7
7
|
additions?: {
|
|
8
8
|
isWeekend: boolean;
|
|
9
9
|
isToday: boolean;
|
|
10
10
|
};
|
|
11
11
|
style?: Partial<CSSStyleDeclaration>;
|
|
12
|
-
constructor(start: GanttDate, text: string, x: number, y: number, additions?: {
|
|
12
|
+
constructor(start: GanttDate, text: string, x: number, y: number | string, additions?: {
|
|
13
13
|
isWeekend: boolean;
|
|
14
14
|
isToday: boolean;
|
|
15
15
|
}, style?: Partial<CSSStyleDeclaration>);
|
|
@@ -148,6 +148,9 @@ $gantt-bar-link-drop-border: 5px;
|
|
|
148
148
|
background: variables.$gantt-bar-background-color;
|
|
149
149
|
overflow: hidden;
|
|
150
150
|
box-sizing: border-box;
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
white-space: nowrap;
|
|
151
154
|
|
|
152
155
|
.gantt-bar-content-progress {
|
|
153
156
|
position: absolute;
|
|
@@ -9,7 +9,6 @@ export declare class GanttCalendarGridComponent implements OnInit, OnDestroy {
|
|
|
9
9
|
private elementRef;
|
|
10
10
|
get view(): import("@worktile/gantt").GanttView;
|
|
11
11
|
private unsubscribe$;
|
|
12
|
-
headerHeight: number;
|
|
13
12
|
mainHeight: number;
|
|
14
13
|
todayBorderRadius: number;
|
|
15
14
|
viewTypes: typeof GanttViewType;
|
|
@@ -9,9 +9,9 @@ export declare class GanttCalendarHeaderComponent implements OnInit {
|
|
|
9
9
|
private elementRef;
|
|
10
10
|
get view(): import("@worktile/gantt").GanttView;
|
|
11
11
|
private unsubscribe$;
|
|
12
|
-
headerHeight: number;
|
|
13
12
|
viewTypes: typeof GanttViewType;
|
|
14
13
|
className: string;
|
|
14
|
+
get height(): string;
|
|
15
15
|
constructor(ganttUpper: GanttUpper, ngZone: NgZone, elementRef: ElementRef<HTMLElement>);
|
|
16
16
|
ngOnInit(): void;
|
|
17
17
|
setTodayPoint(): void;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { GanttUpper } from '../../gantt-upper';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class GanttDragBackdropComponent {
|
|
4
|
+
ganttUpper: GanttUpper;
|
|
5
|
+
constructor(ganttUpper: GanttUpper);
|
|
3
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<GanttDragBackdropComponent, never>;
|
|
4
7
|
static ɵcmp: i0.ɵɵComponentDeclaration<GanttDragBackdropComponent, "gantt-drag-backdrop", never, {}, {}, never, never, true, never>;
|
|
5
8
|
}
|
|
@@ -167,8 +167,6 @@
|
|
|
167
167
|
.gantt-table-header {
|
|
168
168
|
text-align: center;
|
|
169
169
|
background: #fff;
|
|
170
|
-
height: variables.$gantt-header-height;
|
|
171
|
-
line-height: variables.$gantt-header-height;
|
|
172
170
|
box-shadow: variables.$gantt-side-shadow;
|
|
173
171
|
position: relative;
|
|
174
172
|
z-index: 3;
|
|
@@ -190,7 +188,6 @@
|
|
|
190
188
|
display: block;
|
|
191
189
|
.gantt-table-group {
|
|
192
190
|
display: flex;
|
|
193
|
-
height: variables.$gantt-group-height;
|
|
194
191
|
background: variables.$gantt-group-background-color;
|
|
195
192
|
padding: 0 10px;
|
|
196
193
|
align-items: center;
|
|
@@ -15,6 +15,8 @@ export declare class GanttTableHeaderComponent implements OnInit, OnDestroy {
|
|
|
15
15
|
columns: QueryList<NgxGanttTableColumnComponent>;
|
|
16
16
|
resizeLineElementRef: ElementRef<HTMLElement>;
|
|
17
17
|
className: string;
|
|
18
|
+
get height(): string;
|
|
19
|
+
get lineHeight(): string;
|
|
18
20
|
constructor(elementRef: ElementRef, gantt: GanttAbstractComponent, cdr: ChangeDetectorRef);
|
|
19
21
|
ngOnInit(): void;
|
|
20
22
|
private columnsChange;
|
|
@@ -8,4 +8,4 @@ export class GanttDatePoint {
|
|
|
8
8
|
this.style = style;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1wb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jbGFzcy9kYXRlLXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQ1csS0FBZ0IsRUFDaEIsSUFBWSxFQUNaLENBQVMsRUFDVCxDQUFrQixFQUNsQixTQUdOLEVBQ00sS0FBb0M7UUFScEMsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNULE1BQUMsR0FBRCxDQUFDLENBQWlCO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBR2Y7UUFDTSxVQUFLLEdBQUwsS0FBSyxDQUErQjtJQUM1QyxDQUFDO0NBQ1AiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW50dERhdGUgfSBmcm9tICcuLi91dGlscy9kYXRlJztcblxuZXhwb3J0IGNsYXNzIEdhbnR0RGF0ZVBvaW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHN0YXJ0OiBHYW50dERhdGUsXG4gICAgICAgIHB1YmxpYyB0ZXh0OiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyB4OiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyB5OiBudW1iZXIgfCBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBhZGRpdGlvbnM/OiB7XG4gICAgICAgICAgICBpc1dlZWtlbmQ6IGJvb2xlYW47XG4gICAgICAgICAgICBpc1RvZGF5OiBib29sZWFuO1xuICAgICAgICB9LFxuICAgICAgICBwdWJsaWMgc3R5bGU/OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+XG4gICAgKSB7fVxufVxuIl19
|
|
@@ -515,10 +515,10 @@ export class GanttBarDrag {
|
|
|
515
515
|
this.stopScrolling();
|
|
516
516
|
this.stopScrollTimers$.complete();
|
|
517
517
|
}
|
|
518
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
519
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttBarDrag, deps: [{ token: i1.DragDrop }, { token: i2.GanttDomService }, { token: i3.GanttDragContainer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
519
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttBarDrag }); }
|
|
520
520
|
}
|
|
521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttBarDrag, decorators: [{
|
|
522
522
|
type: Injectable
|
|
523
523
|
}], ctorParameters: () => [{ type: i1.DragDrop }, { type: i2.GanttDomService }, { type: i3.GanttDragContainer }, { type: i0.NgZone }] });
|
|
524
524
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWRyYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvY29tcG9uZW50cy9iYXIvYmFyLWRyYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9FLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUMxQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV2RTs7O0dBR0c7QUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUM7QUFDdkMsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLENBQUM7QUFDaEQsTUFBTSxxQkFBcUIsR0FBRyw4QkFBOEIsQ0FBQztBQUU3RCxTQUFTLGdCQUFnQixDQUFDLGFBQXFCLEVBQUUsU0FBaUI7SUFDOUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RixPQUFPLENBQUMsU0FBUyxDQUFDLEdB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QztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBdUI7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0E5akJRLFlBQVk7a0hBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wLCBEcmFnUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIGZyb21FdmVudCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdhbnR0Vmlld1R5cGUgfSBmcm9tICcuLi8uLi9jbGFzcyc7XG5pbXBvcnQgeyBHYW50dEl0ZW1JbnRlcm5hbCB9IGZyb20gJy4uLy4uL2NsYXNzL2l0ZW0nO1xuaW1wb3J0IHsgR2FudHRMaW5rVHlwZSB9IGZyb20gJy4uLy4uL2NsYXNzL2xpbmsnO1xuaW1wb3J0IHsgR2FudHREb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2FudHQtZG9tLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2FudHREcmFnQ29udGFpbmVyLCBJbkJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vZ2FudHQtZHJhZy1jb250YWluZXInO1xuaW1wb3J0IHsgR2FudHRVcHBlciB9IGZyb20gJy4uLy4uL2dhbnR0LXVwcGVyJztcbmltcG9ydCB7IEdhbnR0RGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHtcbiAgICBBdXRvU2Nyb2xsSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBnZXRBdXRvU2Nyb2xsU3BlZWRSYXRlcyxcbiAgICBnZXRIb3Jpem9udGFsU2Nyb2xsRGlyZWN0aW9uLFxuICAgIGlzUG9pbnRlck5lYXJDbGllbnRSZWN0XG59IGZyb20gJy4uLy4uL3V0aWxzL2RyYWctc2Nyb2xsJztcbmltcG9ydCB7IHBhc3NpdmVMaXN0ZW5lck9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9wYXNzaXZlLWxpc3RlbmVycyc7XG5cbi8qKlxuICogUHJveGltaXR5LCBhcyBhIHJhdGlvIHRvIHdpZHRoL2hlaWdodCwgYXQgd2hpY2ggYVxuICogZHJhZ2dlZCBpdGVtIHdpbGwgYWZmZWN0IHRoZSBkcm9wIGNvbnRhaW5lci5cbiAqL1xuY29uc3QgRFJPUF9QUk9YSU1JVFlfVEhSRVNIT0xEID0gMC4wNTtcblxuY29uc3QgZHJhZ01pbldpZHRoID0gMTA7XG5jb25zdCBhdXRvU2Nyb2xsQmFzZVN0ZXAgPSAyO1xuY29uc3QgYWN0aXZlQ2xhc3MgPSAnZ2FudHQtYmFyLWFjdGl2ZSc7XG5jb25zdCBkcm9wQWN0aXZlQ2xhc3MgPSAnZ2FudHQtYmFyLWRyb3AtYWN0aXZlJztcbmNvbnN0IHNpbmdsZURyb3BBY3RpdmVDbGFzcyA9ICdnYW50dC1iYXItc2luZ2xlLWRyb3AtYWN0aXZlJztcblxuZnVuY3Rpb24gY3JlYXRlU3ZnRWxlbWVudChxdWFsaWZpZWROYW1lOiBzdHJpbmcsIGNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCBxdWFsaWZpZWROYW1lKTtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gZWxlbWVudDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdhbnR0QmFyRHJhZyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBnYW50dFVwcGVyOiBHYW50dFVwcGVyO1xuXG4gICAgcHJpdmF0ZSBiYXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgaXRlbTogR2FudHRJdGVtSW50ZXJuYWw7XG5cbiAgICBwcml2YXRlIGdldCBkcmFnRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pdGVtLmRyYWdnYWJsZSB8fCAhdGhpcy5nYW50dFVwcGVyLmRyYWdnYWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBsaW5rRHJhZ0Rpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXRlbS5saW5rYWJsZSB8fCAhdGhpcy5nYW50dFVwcGVyLmxpbmthYmxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGJhckhhbmRsZURyYWdNb3ZlQW5kU2Nyb2xsRGlzdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhckhhbmRsZURyYWdNb3ZlRGlzdGFuY2UgKyB0aGlzLmRyYWdTY3JvbGxEaXN0YW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBhdXRvU2Nyb2xsU3RlcCgpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucG93KGF1dG9TY3JvbGxCYXNlU3RlcCwgdGhpcy5hdXRvU2Nyb2xsU3BlZWRSYXRlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsaW5rRHJhZ2dpbmdMaW5lOiBTVkdFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBiYXJEcmFnUmVmOiBEcmFnUmVmO1xuXG4gICAgcHJpdmF0ZSBkcmFnUmVmczogRHJhZ1JlZltdID0gW107XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBVc2VkIHRvIHNpZ25hbCB0byB0aGUgY3VycmVudCBhdXRvLXNjcm9sbCBzZXF1ZW5jZSB3aGVuIHRvIHN0b3AuICovXG4gICAgcHJpdmF0ZSBzdG9wU2Nyb2xsVGltZXJzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogY29udGFpbmVyIGVsZW1lbnQgc2Nyb2xsTGVmdCAqL1xuICAgIHByaXZhdGUgY29udGFpbmVyU2Nyb2xsTGVmdDogbnVtYmVyO1xuXG4gICAgLyoqIG1vdmUgZGlzdGFuY2Ugd2hlbiBkcmFnIGJhciAqL1xuICAgIHByaXZhdGUgYmFyRHJhZ01vdmVEaXN0YW5jZSA9IDA7XG5cbiAgICAvKiogbW92ZSBkaXN0YW5jZSB3aGVuIGRyYWcgYmFyIGhhbmRsZSAqL1xuICAgIHByaXZhdGUgYmFySGFuZGxlRHJhZ01vdmVEaXN0YW5jZSA9IDA7XG5cbiAgICAvKiogc2Nyb2xsaW5nIHN0YXRlIHdoZW4gZHJhZyAqL1xuICAgIHByaXZhdGUgZHJhZ1Njcm9sbGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIGRyYWdTY3JvbGxEaXN0YW5jZSAqL1xuICAgIHByaXZhdGUgZHJhZ1Njcm9sbERpc3RhbmNlID0gMDtcblxuICAgIC8qKiBIb3Jpem9udGFsIGRpcmVjdGlvbiBpbiB3aGljaCB0aGUgbGlzdCBpcyBjdXJyZW50bHkgc2Nyb2xsaW5nLiAqL1xuICAgIHByaXZhdGUgX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb24gPSBBdXRvU2Nyb2xsSG9yaXpvbnRhbERpcmVjdGlvbi5OT05FO1xuXG4gICAgLyoqIFJlY29yZCBiYXIgZGF5cyB3aGVuIGJhciBoYW5kbGUgZHJhZyBtb3ZlLiAqL1xuICAgIHByaXZhdGUgYmFySGFuZGxlRHJhZ01vdmVSZWNvcmREaWZmczogbnVtYmVyO1xuXG4gICAgLyoqIFNwZWVkIHJhdGlvIGZvciBhdXRvIHNjcm9sbCAqL1xuICAgIHByaXZhdGUgYXV0b1Njcm9sbFNwZWVkUmF0ZXMgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZHJhZ0Ryb3A6IERyYWdEcm9wLFxuICAgICAgICBwcml2YXRlIGRvbTogR2FudHREb21TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRyYWdDb250YWluZXI6IEdhbnR0RHJhZ0NvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURyYWdSZWY8VCA9IGFueT4oZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBIVE1MRWxlbWVudCk6IERyYWdSZWY8VD4ge1xuICAgICAgICBjb25zdCBkcmFnUmVmID0gdGhpcy5kcmFnRHJvcC5jcmVhdGVEcmFnKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZHJhZ1JlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURyYWdTY3JvbGxFdmVudChkcmFnUmVmOiBEcmFnUmVmKSB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5kb20ubWFpbkNvbnRhaW5lciwgJ3Njcm9sbCcsIHBhc3NpdmVMaXN0ZW5lck9wdGlvbnMpLnBpcGUodGFrZVVudGlsKGRyYWdSZWYuZW5kZWQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU1vdXNlRXZlbnRzKCkge1xuICAgICAgICBjb25zdCBkcm9wQ2xhc3MgPVxuICAgICAgICAgICAgdGhpcy5nYW50dFVwcGVyLmNvbmZpZy5saW5rT3B0aW9ucz8uZGVwZW5kZW5jeVR5cGVzPy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgICAgIHRoaXMuZ2FudHRVcHBlci5jb25maWcubGlua09wdGlvbnM/LmRlcGVuZGVuY3lUeXBlc1swXSA9PT0gR2FudHRMaW5rVHlwZS5mc1xuICAgICAgICAgICAgICAgID8gc2luZ2xlRHJvcEFjdGl2ZUNsYXNzXG4gICAgICAgICAgICAgICAgOiBkcm9wQWN0aXZlQ2xhc3M7XG5cbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuYmFyRWxlbWVudCwgJ21vdXNlZW50ZXInLCBwYXNzaXZlTGlzdGVuZXJPcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ0NvbnRhaW5lci5saW5rRHJhZ2dpbmdJZCAmJiB0aGlzLmRyYWdDb250YWluZXIubGlua0RyYWdnaW5nSWQgIT09IHRoaXMuaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtLmxpbmthYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQuY2xhc3NMaXN0LmFkZChkcm9wQ2xhc3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmVtaXRMaW5rRHJhZ0VudGVyZWQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHRoaXMuaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiB0aGlzLmJhckVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoYWN0aXZlQ2xhc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudCh0aGlzLmJhckVsZW1lbnQsICdtb3VzZWxlYXZlJywgcGFzc2l2ZUxpc3RlbmVyT3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kcmFnQ29udGFpbmVyLmxpbmtEcmFnZ2luZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGFjdGl2ZUNsYXNzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZW1pdExpbmtEcmFnTGVhdmVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGRyb3BDbGFzcyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUJhckRyYWcoKSB7XG4gICAgICAgIGNvbnN0IGRyYWdSZWYgPSB0aGlzLmNyZWF0ZURyYWdSZWYodGhpcy5iYXJFbGVtZW50KTtcbiAgICAgICAgZHJhZ1JlZi5sb2NrQXhpcyA9ICd4JztcbiAgICAgICAgZHJhZ1JlZi53aXRoQm91bmRhcnlFbGVtZW50KHRoaXMuZG9tLm1haW5JdGVtcyBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIGRyYWdSZWYuc3RhcnRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXREcmFnZ2luZ1N0eWxlcygpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJTY3JvbGxMZWZ0ID0gdGhpcy5kb20ubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVEcmFnU2Nyb2xsRXZlbnQoZHJhZ1JlZikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZHJhZ1JlZi5pc0RyYWdnaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHJhZ1Njcm9sbERpc3RhbmNlID0gdGhpcy5kb20ubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0IC0gdGhpcy5jb250YWluZXJTY3JvbGxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYWdTY3JvbGxEaXN0YW5jZSA9IGRyYWdTY3JvbGxEaXN0YW5jZTtcbiAgICAgICAgICAgICAgICAgICAgZHJhZ1JlZlsnX2JvdW5kYXJ5UmVjdCddID0gdGhpcy5kb20ubWFpbkl0ZW1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhckRyYWdNb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZHJhZ1N0YXJ0ZWQuZW1pdCh7IGl0ZW06IHRoaXMuaXRlbS5vcmlnaW4gfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRyYWdSZWYubW92ZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGFydFNjcm9sbGluZ0lmTmVjZXNzYXJ5KGV2ZW50LnBvaW50ZXJQb3NpdGlvbi54LCBldmVudC5wb2ludGVyUG9zaXRpb24ueSk7XG4gICAgICAgICAgICB0aGlzLmJhckRyYWdNb3ZlRGlzdGFuY2UgPSBldmVudC5kaXN0YW5jZS54O1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRyYWdTY3JvbGxpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhckRyYWdNb3ZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRyYWdSZWYuZW5kZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGVhckRyYWdnaW5nU3R5bGVzKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJhZ0JhY2tkcm9wKCk7XG4gICAgICAgICAgICBldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xuICAgICAgICAgICAgdGhpcy5kcmFnU2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRyYWdTY3JvbGxEaXN0YW5jZSA9IDA7XG4gICAgICAgICAgICB0aGlzLmJhckRyYWdNb3ZlRGlzdGFuY2UgPSAwO1xuICAgICAgICAgICAgdGhpcy5pdGVtLnVwZGF0ZVJlZnMoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXREYXRlUmFuZ2VXaWR0aCh0aGlzLml0ZW0uc3RhcnQsIHRoaXMuaXRlbS5lbmQpLFxuICAgICAgICAgICAgICAgIHg6IHRoaXMuZ2FudHRVcHBlci52aWV3LmdldFhQb2ludEJ5RGF0ZSh0aGlzLml0ZW0uc3RhcnQpLFxuICAgICAgICAgICAgICAgIHk6ICh0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmxpbmVIZWlnaHQgLSB0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmJhckhlaWdodCkgLyAyIC0gMVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZHJhZ0VuZGVkLmVtaXQoeyBpdGVtOiB0aGlzLml0ZW0ub3JpZ2luIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYXJEcmFnUmVmID0gZHJhZ1JlZjtcblxuICAgICAgICByZXR1cm4gZHJhZ1JlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUJhckhhbmRsZURyYWdzKCkge1xuICAgICAgICBjb25zdCBkcmFnUmVmcyA9IFtdO1xuICAgICAgICBjb25zdCBoYW5kbGVzID0gdGhpcy5iYXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcuZHJhZy1oYW5kbGVzIC5oYW5kbGUnKTtcbiAgICAgICAgaGFuZGxlcy5mb3JFYWNoKChoYW5kbGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0JlZm9yZSA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgY29uc3QgZHJhZ1JlZiA9IHRoaXMuY3JlYXRlRHJhZ1JlZihoYW5kbGUpO1xuICAgICAgICAgICAgZHJhZ1JlZi5sb2NrQXhpcyA9ICd4JztcbiAgICAgICAgICAgIGRyYWdSZWYud2l0aEJvdW5kYXJ5RWxlbWVudCh0aGlzLmRvbS5tYWluSXRlbXMgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgZHJhZ1JlZi5zdGFydGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREcmFnZ2luZ1N0eWxlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyU2Nyb2xsTGVmdCA9IHRoaXMuZG9tLm1haW5Db250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZURyYWdTY3JvbGxFdmVudChkcmFnUmVmKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZHJhZ1JlZi5pc0RyYWdnaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRyYWdTY3JvbGxEaXN0YW5jZSA9IHRoaXMuZG9tLm1haW5Db250YWluZXIuc2Nyb2xsTGVmdCAtIHRoaXMuY29udGFpbmVyU2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1Njcm9sbERpc3RhbmNlID0gZHJhZ1Njcm9sbERpc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ1JlZlsnX2JvdW5kYXJ5UmVjdCddID0gdGhpcy5kb20ubWFpbkl0ZW1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kcmFnU2Nyb2xsaW5nICYmIHRoaXMuaXNTdGFydEdyZWF0ZXJUaGFuRW5kV2hlbkJhckhhbmRsZURyYWdNb3ZlKGlzQmVmb3JlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1Njcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhckJlZm9yZUhhbmRsZURyYWdNb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFyQWZ0ZXJIYW5kbGVEcmFnTW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmRyYWdTdGFydGVkLmVtaXQoeyBpdGVtOiB0aGlzLml0ZW0ub3JpZ2luIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRyYWdSZWYubW92ZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJhckhhbmRsZURyYWdNb3ZlUmVjb3JkRGlmZnMgJiYgdGhpcy5iYXJIYW5kbGVEcmFnTW92ZVJlY29yZERpZmZzID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0U2Nyb2xsaW5nSWZOZWNlc3NhcnkoZXZlbnQucG9pbnRlclBvc2l0aW9uLngsIGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5iYXJIYW5kbGVEcmFnTW92ZURpc3RhbmNlID0gZXZlbnQuZGlzdGFuY2UueDtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZHJhZ1Njcm9sbGluZykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFyQmVmb3JlSGFuZGxlRHJhZ01vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFyQWZ0ZXJIYW5kbGVEcmFnTW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRyYWdSZWYuZW5kZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEcmFnZ2luZ1N0eWxlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcmFnQmFja2Ryb3AoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTY3JvbGxEaXN0YW5jZSA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXJIYW5kbGVEcmFnTW92ZURpc3RhbmNlID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW0udXBkYXRlUmVmcyh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXREYXRlUmFuZ2VXaWR0aCh0aGlzLml0ZW0uc3RhcnQsIHRoaXMuaXRlbS5lbmQpLFxuICAgICAgICAgICAgICAgICAgICB4OiB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXRYUG9pbnRCeURhdGUodGhpcy5pdGVtLnN0YXJ0KSxcbiAgICAgICAgICAgICAgICAgICAgeTogKHRoaXMuZ2FudHRVcHBlci5zdHlsZXMubGluZUhlaWdodCAtIHRoaXMuZ2FudHRVcHBlci5zdHlsZXMuYmFySGVpZ2h0KSAvIDIgLSAxXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmRyYWdFbmRlZC5lbWl0KHsgaXRlbTogdGhpcy5pdGVtLm9yaWdpbiB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZHJhZ1JlZnMucHVzaChkcmFnUmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkcmFnUmVmcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxpbmtIYW5kbGVEcmFncygpIHtcbiAgICAgICAgY29uc3QgZHJhZ1JlZnMgPSBbXTtcbiAgICAgICAgY29uc3QgaGFuZGxlcyA9IHRoaXMuYmFyRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignLmxpbmstaGFuZGxlcyAuaGFuZGxlJyk7XG4gICAgICAgIGhhbmRsZXMuZm9yRWFjaCgoaGFuZGxlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNCZWdpbiA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgY29uc3QgZHJhZ1JlZiA9IHRoaXMuZHJhZ0Ryb3AuY3JlYXRlRHJhZyhoYW5kbGUpO1xuICAgICAgICAgICAgZHJhZ1JlZi53aXRoQm91bmRhcnlFbGVtZW50KHRoaXMuZG9tLnJvb3QgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgZHJhZ1JlZi5iZWZvcmVTdGFydGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmFyRHJhZ1JlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhckRyYWdSZWYuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUxpbmtEcmFnZ2luZ0xpbmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZW1pdExpbmtEcmFnU3RhcnRlZCh7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuYmFyRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbTogdGhpcy5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwb3M6IGlzQmVnaW4gPyBJbkJhclBvc2l0aW9uLnN0YXJ0IDogSW5CYXJQb3NpdGlvbi5maW5pc2hcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBkcmFnUmVmLm1vdmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb25zID0gdGhpcy5jYWxjTGlua0xpbmVQb3NpdGlvbnMoaGFuZGxlLCBpc0JlZ2luKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUuc2V0QXR0cmlidXRlKCd4MScsIHBvc2l0aW9ucy54MS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUuc2V0QXR0cmlidXRlKCd5MScsIHBvc2l0aW9ucy55MS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUuc2V0QXR0cmlidXRlKCd4MicsIHBvc2l0aW9ucy54Mi50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUuc2V0QXR0cmlidXRlKCd5MicsIHBvc2l0aW9ucy55Mi50b1N0cmluZygpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBkcmFnUmVmLmVuZGVkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGUuc3R5bGUucG9pbnRlckV2ZW50cyA9ICcnO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJhckRyYWdSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXJEcmFnUmVmLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIOiuoeeul2xpbmXmi5bliqjnmoTokL3ngrnkvY3kuo7nm67moIdCYXLnmoTlgLzvvIzlpoLmnpzlgLzlpKfkuo5CYXLlrr3luqbnmoTkuIDljYrvvIzor7TmmI7mmK/mi5bliqjliLBCZWdpbuS9jee9ru+8jOWQpuWImeWImeS4uuaLluWKqOWIsEVuZOS9jee9rlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyYWdDb250YWluZXIubGlua0RyYWdQYXRoLnRvKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlUG9pbnRYID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5nZXRSb290RWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggLVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmxpbmtEcmFnUGF0aC50by5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLng7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmVtaXRMaW5rRHJhZ0VuZGVkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZHJhZ0NvbnRhaW5lci5saW5rRHJhZ1BhdGgudG8sXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VQb2ludFggPCB0aGlzLmRyYWdDb250YWluZXIubGlua0RyYWdQYXRoLnRvLml0ZW0ucmVmcy53aWR0aCAvIDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBJbkJhclBvc2l0aW9uLnN0YXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSW5CYXJQb3NpdGlvbi5maW5pc2hcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnQ29udGFpbmVyLmVtaXRMaW5rRHJhZ0VuZGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGFjdGl2ZUNsYXNzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lMaW5rRHJhZ2dpbmdMaW5lKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZHJhZ1JlZnMucHVzaChkcmFnUmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkcmFnUmVmcztcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5EcmFnQmFja2Ryb3AoZHJhZ0VsZW1lbnQ6IEhUTUxFbGVtZW50LCBzdGFydDogR2FudHREYXRlLCBlbmQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICBjb25zdCBkcmFnQmFja2Ryb3BFbGVtZW50ID0gdGhpcy5kb20ucm9vdC5xdWVyeVNlbGVjdG9yKCcuZ2FudHQtZHJhZy1iYWNrZHJvcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBkcmFnTWFza0VsZW1lbnQgPSB0aGlzLmRvbS5yb290LnF1ZXJ5U2VsZWN0b3IoJy5nYW50dC1kcmFnLW1hc2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3Qgcm9vdFJlY3QgPSB0aGlzLmRvbS5yb290LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBkcmFnUmVjdCA9IGRyYWdFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBsZXQgbGVmdCA9IGRyYWdSZWN0LmxlZnQgLSByb290UmVjdC5sZWZ0IC0gKHRoaXMuZG9tLnNpZGUuY2xpZW50V2lkdGggKyAxKTtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ1Njcm9sbGluZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb24gPT09IEF1dG9TY3JvbGxIb3Jpem9udGFsRGlyZWN0aW9uLkxFRlQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9IHRoaXMuYXV0b1Njcm9sbFN0ZXA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb24gPT09IEF1dG9TY3JvbGxIb3Jpem9udGFsRGlyZWN0aW9uLlJJR0hUKSB7XG4gICAgICAgICAgICAgICAgbGVmdCAtPSB0aGlzLmF1dG9TY3JvbGxTdGVwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZHJhZ1JlY3QucmlnaHQgLSBkcmFnUmVjdC5sZWZ0O1xuXG4gICAgICAgIC8vIE5vdGU6IHVwZGF0aW5nIHN0eWxlcyB3aWxsIGNhdXNlIHJlLWxheW91dCBzbyB3ZSBoYXZlIHRvIHBsYWNlIHRoZW0gY29uc2lzdGVudGx5IG9uZSBieSBvbmUuXG4gICAgICAgIGRyYWdNYXNrRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgIGRyYWdNYXNrRWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgICAgZHJhZ01hc2tFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICBkcmFnQmFja2Ryb3BFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICAvLyBUaGlzIHdpbGwgaW52YWxpZGF0ZSB0aGUgbGF5b3V0LCBidXQgd2Ugd29uJ3QgbmVlZCByZS1sYXlvdXQsIGJlY2F1c2Ugd2Ugc2V0IHN0eWxlcyBwcmV2aW91c2x5LlxuICAgICAgICBkcmFnTWFza0VsZW1lbnQucXVlcnlTZWxlY3RvcignLnN0YXJ0JykuaW5uZXJIVE1MID0gc3RhcnQuZm9ybWF0KHRoaXMuZ2FudHRVcHBlci52aWV3Lm9wdGlvbnMuZHJhZ1ByZXZpZXdEYXRlRm9ybWF0KTtcbiAgICAgICAgZHJhZ01hc2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5lbmQnKS5pbm5lckhUTUwgPSBlbmQuZm9ybWF0KHRoaXMuZ2FudHRVcHBlci52aWV3Lm9wdGlvbnMuZHJhZ1ByZXZpZXdEYXRlRm9ybWF0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlRHJhZ0JhY2tkcm9wKCkge1xuICAgICAgICBjb25zdCBkcmFnQmFja2Ryb3BFbGVtZW50ID0gdGhpcy5kb20ucm9vdC5xdWVyeVNlbGVjdG9yKCcuZ2FudHQtZHJhZy1iYWNrZHJvcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBkcmFnTWFza0VsZW1lbnQgPSB0aGlzLmRvbS5yb290LnF1ZXJ5U2VsZWN0b3IoJy5nYW50dC1kcmFnLW1hc2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgZHJhZ01hc2tFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRyYWdCYWNrZHJvcEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyYWdnaW5nU3R5bGVzKCkge1xuICAgICAgICB0aGlzLmJhckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZ2FudHQtYmFyLWRyYWdnYWJsZS1kcmFnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckRyYWdnaW5nU3R5bGVzKCkge1xuICAgICAgICB0aGlzLmJhckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZ2FudHQtYmFyLWRyYWdnYWJsZS1kcmFnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiYXJEcmFnTW92ZSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFggPSB0aGlzLml0ZW0ucmVmcy54ICsgdGhpcy5iYXJEcmFnTW92ZURpc3RhbmNlICsgdGhpcy5kcmFnU2Nyb2xsRGlzdGFuY2U7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0RGF0ZUJ5WFBvaW50KGN1cnJlbnRYKTtcbiAgICAgICAgY29uc3QgY3VycmVudFN0YXJ0WCA9IHRoaXMuZ2FudHRVcHBlci52aWV3LmdldFhQb2ludEJ5RGF0ZShjdXJyZW50RGF0ZSk7XG5cbiAgICAgICAgY29uc3QgZGlmZnMgPSB0aGlzLmdhbnR0VXBwZXIudmlldy5kaWZmZXJlbmNlQnlQcmVjaXNpb25Vbml0KHRoaXMuaXRlbS5lbmQsIHRoaXMuaXRlbS5zdGFydCk7XG5cbiAgICAgICAgbGV0IHN0YXJ0ID0gY3VycmVudERhdGU7XG4gICAgICAgIGxldCBlbmQgPSBjdXJyZW50RGF0ZS5hZGQoZGlmZnMsIHRoaXMuZ2FudHRVcHBlci52aWV3Py5vcHRpb25zPy5kYXRlUHJlY2lzaW9uVW5pdCk7XG5cbiAgICAgICAgLy8g5pel6KeG5Zu+54m55q6K6YC76L6R5aSE55CGXG4gICAgICAgIGlmICh0aGlzLmdhbnR0VXBwZXIudmlldy52aWV3VHlwZSA9PT0gR2FudHRWaWV3VHlwZS5kYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRheVdpZHRoID0gdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0RGF5T2NjdXBhbmN5V2lkdGgoY3VycmVudERhdGUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRYID4gY3VycmVudFN0YXJ0WCArIGRheVdpZHRoIC8gMikge1xuICAgICAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnQuYWRkRGF5cygxKTtcbiAgICAgICAgICAgICAgICBlbmQgPSBlbmQuYWRkRGF5cygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRyYWdTY3JvbGxpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBjdXJyZW50WCAtIHRoaXMuYmFyRHJhZ01vdmVEaXN0YW5jZTtcbiAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW5EcmFnQmFja2Ryb3AoXG4gICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXREYXRlQnlYUG9pbnQoY3VycmVudFgpLFxuICAgICAgICAgICAgdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0RGF0ZUJ5WFBvaW50KGN1cnJlbnRYICsgdGhpcy5pdGVtLnJlZnMud2lkdGgpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzU3RhcnRPckVuZEluc2lkZVZpZXcoc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1EYXRlKHN0YXJ0LCBlbmQpO1xuICAgICAgICB0aGlzLmRyYWdDb250YWluZXIuZHJhZ01vdmVkLmVtaXQoeyBpdGVtOiB0aGlzLml0ZW0ub3JpZ2luIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmFyQmVmb3JlSGFuZGxlRHJhZ01vdmUoKSB7XG4gICAgICAgIGNvbnN0IHsgeCwgc3RhcnQsIG1pblJhbmdlV2lkdGhXaWR0aCB9ID0gdGhpcy5zdGFydE9mQmFySGFuZGxlKCk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5pdGVtLnJlZnMud2lkdGggKyB0aGlzLmJhckhhbmRsZURyYWdNb3ZlQW5kU2Nyb2xsRGlzdGFuY2UgKiAtMTtcbiAgICAgICAgY29uc3QgZGlmZnMgPSB0aGlzLmdhbnR0VXBwZXIudmlldy5kaWZmZXJlbmNlQnlQcmVjaXNpb25Vbml0KHRoaXMuaXRlbS5lbmQsIHN0YXJ0KTtcblxuICAgICAgICBpZiAod2lkdGggPiBkcmFnTWluV2lkdGggJiYgZGlmZnMgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQuc3R5bGUubGVmdCA9IHggKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0JhY2tkcm9wKHRoaXMuYmFyRWxlbWVudCwgc3RhcnQsIHRoaXMuaXRlbS5lbmQpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTdGFydE9yRW5kSW5zaWRlVmlldyhzdGFydCwgdGhpcy5pdGVtLmVuZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbURhdGUoc3RhcnQsIHRoaXMuaXRlbS5lbmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYmFySGFuZGxlRHJhZ01vdmVSZWNvcmREaWZmcyA+IDAgJiYgZGlmZnMgPD0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5zdHlsZS53aWR0aCA9IG1pblJhbmdlV2lkdGhXaWR0aCArICdweCc7XG4gICAgICAgICAgICAgICAgY29uc3QgeCA9IHRoaXMuZ2FudHRVcHBlci52aWV3LmdldFhQb2ludEJ5RGF0ZSh0aGlzLml0ZW0uZW5kKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQuc3R5bGUubGVmdCA9IHggKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0JhY2tkcm9wKHRoaXMuYmFyRWxlbWVudCwgdGhpcy5pdGVtLmVuZCwgdGhpcy5pdGVtLmVuZCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1EYXRlKHRoaXMuaXRlbS5lbmQsIHRoaXMuaXRlbS5lbmQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYmFySGFuZGxlRHJhZ01vdmVSZWNvcmREaWZmcyA9IGRpZmZzO1xuXG4gICAgICAgIHRoaXMuZHJhZ0NvbnRhaW5lci5kcmFnTW92ZWQuZW1pdCh7IGl0ZW06IHRoaXMuaXRlbS5vcmlnaW4gfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiYXJBZnRlckhhbmRsZURyYWdNb3ZlKCkge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBlbmQgfSA9IHRoaXMuZW5kT2ZCYXJIYW5kbGUoKTtcbiAgICAgICAgY29uc3QgZGlmZnMgPSB0aGlzLmdhbnR0VXBwZXIudmlldy5kaWZmZXJlbmNlQnlQcmVjaXNpb25Vbml0KGVuZCwgdGhpcy5pdGVtLnN0YXJ0KTtcblxuICAgICAgICBpZiAod2lkdGggPiBkcmFnTWluV2lkdGggJiYgZGlmZnMgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmJhckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgICAgICAgICB0aGlzLm9wZW5EcmFnQmFja2Ryb3AodGhpcy5iYXJFbGVtZW50LCB0aGlzLml0ZW0uc3RhcnQsIGVuZCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTdGFydE9yRW5kSW5zaWRlVmlldyh0aGlzLml0ZW0uc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1EYXRlKHRoaXMuaXRlbS5zdGFydCwgZW5kKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJhckhhbmRsZURyYWdNb3ZlUmVjb3JkRGlmZnMgPiAwICYmIGRpZmZzIDw9IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaW5SYW5nZVdpZHRoID0gdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0TWluUmFuZ2VXaWR0aEJ5UHJlY2lzaW9uVW5pdCh0aGlzLml0ZW0uc3RhcnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFyRWxlbWVudC5zdHlsZS53aWR0aCA9IG1pblJhbmdlV2lkdGggKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0JhY2tkcm9wKHRoaXMuYmFyRWxlbWVudCwgdGhpcy5pdGVtLnN0YXJ0LCB0aGlzLml0ZW0uc3RhcnQpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtRGF0ZSh0aGlzLml0ZW0uc3RhcnQsIHRoaXMuaXRlbS5zdGFydCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iYXJIYW5kbGVEcmFnTW92ZVJlY29yZERpZmZzID0gZGlmZnM7XG4gICAgICAgIHRoaXMuZHJhZ0NvbnRhaW5lci5kcmFnTW92ZWQuZW1pdCh7IGl0ZW06IHRoaXMuaXRlbS5vcmlnaW4gfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjTGlua0xpbmVQb3NpdGlvbnModGFyZ2V0OiBIVE1MRWxlbWVudCwgaXNCZWZvcmU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgcm9vdFJlY3QgPSB0aGlzLmRvbS5yb290LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBsYXllclJlY3QgPSB0YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDE6IGxheWVyUmVjdC5sZWZ0ICsgKGlzQmVmb3JlID8gMCA6IGxheWVyUmVjdC53aWR0aCkgLSByb290UmVjdC5sZWZ0LFxuICAgICAgICAgICAgeTE6IGxheWVyUmVjdC50b3AgKyBsYXllclJlY3QuaGVpZ2h0IC8gMiAtIHJvb3RSZWN0LnRvcCxcbiAgICAgICAgICAgIHgyOiB0YXJnZXRSZWN0LmxlZnQgLSByb290UmVjdC5sZWZ0ICsgdGFyZ2V0UmVjdC53aWR0aCAvIDIsXG4gICAgICAgICAgICB5MjogdGFyZ2V0UmVjdC50b3AgLSByb290UmVjdC50b3AgKyB0YXJnZXRSZWN0LmhlaWdodCAvIDJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxpbmtEcmFnZ2luZ0xpbmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5saW5rRHJhZ2dpbmdMaW5lKSB7XG4gICAgICAgICAgICBjb25zdCBzdmdFbGVtZW50ID0gY3JlYXRlU3ZnRWxlbWVudCgnc3ZnJywgJ2dhbnR0LWxpbmstZHJhZy1jb250YWluZXInKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbkVsZW1lbnQgPSBjcmVhdGVTdmdFbGVtZW50KCdsaW5lJywgJ2xpbmstZHJhZ2dpbmctbGluZScpO1xuICAgICAgICAgICAgbGluRWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgICAgICAgc3ZnRWxlbWVudC5hcHBlbmRDaGlsZChsaW5FbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZG9tLnJvb3QuYXBwZW5kQ2hpbGQoc3ZnRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUgPSBsaW5FbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95TGlua0RyYWdnaW5nTGluZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubGlua0RyYWdnaW5nTGluZSkge1xuICAgICAgICAgICAgdGhpcy5saW5rRHJhZ2dpbmdMaW5lLnBhcmVudEVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmxpbmtEcmFnZ2luZ0xpbmUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFNjcm9sbEludGVydmFsID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcbiAgICAgICAgaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5zdG9wU2Nyb2xsVGltZXJzJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5kb20ubWFpbkNvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxTdGVwID0gdGhpcy5hdXRvU2Nyb2xsU3RlcDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbiA9PT0gQXV0b1Njcm9sbEhvcml6b250YWxEaXJlY3Rpb24uTEVGVCkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnNjcm9sbEJ5KC1zY3JvbGxTdGVwLCAwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb24gPT09IEF1dG9TY3JvbGxIb3Jpem9udGFsRGlyZWN0aW9uLlJJR0hUKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuc2Nyb2xsQnkoc2Nyb2xsU3RlcCwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc3RhcnRTY3JvbGxpbmdJZk5lY2Vzc2FyeShwb2ludGVyWDogbnVtYmVyLCBwb2ludGVyWTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSB0aGlzLmRvbS5tYWluQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gdGhpcy5kb20ubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgICAgICBpZiAoaXNQb2ludGVyTmVhckNsaWVudFJlY3QoY2xpZW50UmVjdCwgRFJPUF9QUk9YSU1JVFlfVEhSRVNIT0xELCBwb2ludGVyWCwgcG9pbnRlclkpKSB7XG4gICAgICAgICAgICBjb25zdCBob3Jpem9udGFsU2Nyb2xsRGlyZWN0aW9uID0gZ2V0SG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbihjbGllbnRSZWN0LCBwb2ludGVyWCk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoaG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbiA9PT0gQXV0b1Njcm9sbEhvcml6b250YWxEaXJlY3Rpb24uTEVGVCAmJiBzY3JvbGxMZWZ0ID4gMCkgfHxcbiAgICAgICAgICAgICAgICAoaG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbiA9PT0gQXV0b1Njcm9sbEhvcml6b250YWxEaXJlY3Rpb24uUklHSFQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdCA8IHRoaXMuZ2FudHRVcHBlci52aWV3LndpZHRoIC0gY2xpZW50UmVjdC53aWR0aClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb24gPSBob3Jpem9udGFsU2Nyb2xsRGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b1Njcm9sbFNwZWVkUmF0ZXMgPSBnZXRBdXRvU2Nyb2xsU3BlZWRSYXRlcyhjbGllbnRSZWN0LCBwb2ludGVyWCwgaG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnU2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIodGhpcy5zdGFydFNjcm9sbEludGVydmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnU2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb25kaXRpb25zIHRvIHN0b3AgYXV0by1zY3JvbGw6IHdoZW4gdGhlIHN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZW5kIGFuZCB0aGUgYmFyIGFwcGVhcnMgaW4gdGhlIHZpZXdcbiAgICBwcml2YXRlIGlzU3RhcnRHcmVhdGVyVGhhbkVuZFdoZW5CYXJIYW5kbGVEcmFnTW92ZShpc0JlZm9yZTogYm9vbGVhbikge1xuICAgICAgICBsZXQgaXNTdGFydEdyZWF0ZXJUaGFuRW5kOiBib29sZWFuO1xuICAgICAgICBsZXQgaXNCYXJBcHBlYXJzSW5WaWV3OiBib29sZWFuO1xuXG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSB0aGlzLmRvbS5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IGNsaWVudFdpZHRoID0gdGhpcy5kb20ubWFpbkNvbnRhaW5lci5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3QgeFRocmVzaG9sZCA9IGNsaWVudFdpZHRoICogRFJPUF9QUk9YSU1JVFlfVEhSRVNIT0xEO1xuXG4gICAgICAgIGlmIChpc0JlZm9yZSkge1xuICAgICAgICAgICAgY29uc3QgeyBzdGFydCwgbWluUmFuZ2VXaWR0aFdpZHRoIH0gPSB0aGlzLnN0YXJ0T2ZCYXJIYW5kbGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHhQb2ludGVyQnlFbmREYXRlID0gdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0WFBvaW50QnlEYXRlKHRoaXMuaXRlbS5lbmQpO1xuXG4gICAgICAgICAgICBpc1N0YXJ0R3JlYXRlclRoYW5FbmQgPSBzdGFydC52YWx1ZSA+IHRoaXMuaXRlbS5lbmQudmFsdWU7XG4gICAgICAgICAgICBpc0JhckFwcGVhcnNJblZpZXcgPSB4UG9pbnRlckJ5RW5kRGF0ZSArIG1pblJhbmdlV2lkdGhXaWR0aCArIHhUaHJlc2hvbGQgPD0gc2Nyb2xsTGVmdCArIGNsaWVudFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgeyBlbmQgfSA9IHRoaXMuZW5kT2ZCYXJIYW5kbGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHhQb2ludGVyQnlTdGFydERhdGUgPSB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXRYUG9pbnRCeURhdGUodGhpcy5pdGVtLnN0YXJ0KTtcblxuICAgICAgICAgICAgaXNTdGFydEdyZWF0ZXJUaGFuRW5kID0gZW5kLnZhbHVlIDwgdGhpcy5pdGVtLnN0YXJ0LnZhbHVlO1xuICAgICAgICAgICAgaXNCYXJBcHBlYXJzSW5WaWV3ID0gc2Nyb2xsTGVmdCArIHhUaHJlc2hvbGQgPD0geFBvaW50ZXJCeVN0YXJ0RGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1N0YXJ0R3JlYXRlclRoYW5FbmQgJiYgaXNCYXJBcHBlYXJzSW5WaWV3ID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNvbWUgZGF0YSBpbmZvcm1hdGlvbiBhYm91dCBkcmFnZ2luZyBzdGFydCB1bnRpbCBpdCBpcyBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gZW5kXG4gICAgcHJpdmF0ZSBzdGFydE9mQmFySGFuZGxlKCkge1xuICAgICAgICBjb25zdCB4ID0gdGhpcy5pdGVtLnJlZnMueCArIHRoaXMuYmFySGFuZGxlRHJhZ01vdmVBbmRTY3JvbGxEaXN0YW5jZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICBzdGFydDogdGhpcy5nYW50dFVwcGVyLnZpZXcuZ2V0RGF0ZUJ5WFBvaW50KHgpLFxuICAgICAgICAgICAgbWluUmFuZ2VXaWR0aFdpZHRoOiB0aGlzLmdhbnR0VXBwZXIudmlldy5nZXRNaW5SYW5nZVdpZHRoQnlQcmVjaXNpb25Vbml0KHRoaXMuaXRlbS5lbmQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gU29tZSBkYXRhIGluZm9ybWF0aW9uIGFib3V0IGRyYWdnaW5nIGVuZCBvZiBiYXIgaGFuZGxlXG4gICAgcHJpdmF0ZSBlbmRPZkJhckhhbmRsZSgpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLml0ZW0ucmVmcy53aWR0aCArIHRoaXMuYmFySGFuZGxlRHJhZ01vdmVBbmRTY3JvbGxEaXN0YW5jZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZ2FudHRVcHBlci52aWV3LmdldERhdGVCeVhQb2ludCh0aGlzLml0ZW0ucmVmcy54ICsgd2lkdGgpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wU2Nyb2xsaW5nKCkge1xuICAgICAgICB0aGlzLnN0b3BTY3JvbGxUaW1lcnMkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU3RhcnRPckVuZEluc2lkZVZpZXcoc3RhcnQ6IEdhbnR0RGF0ZSwgZW5kOiBHYW50dERhdGUpIHtcbiAgICAgICAgY29uc3QgaXRlbVN0YXJ0ID0gc3RhcnQuZ2V0VW5peFRpbWUoKTtcbiAgICAgICAgY29uc3QgaXRlbUVuZCA9IGVuZC5nZXRVbml4VGltZSgpO1xuICAgICAgICBjb25zdCB2aWV3U3RhcnQgPSB0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydC5nZXRVbml4VGltZSgpO1xuICAgICAgICBjb25zdCB2aWV3RW5kID0gdGhpcy5nYW50dFVwcGVyLnZpZXcuZW5kLmdldFVuaXhUaW1lKCk7XG4gICAgICAgIGlmIChpdGVtU3RhcnQgPCB2aWV3U3RhcnQgfHwgaXRlbUVuZCA+IHZpZXdFbmQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJdGVtRGF0ZShzdGFydDogR2FudHREYXRlLCBlbmQ6IEdhbnR0RGF0ZSkge1xuICAgICAgICB0aGlzLml0ZW0udXBkYXRlRGF0ZSh0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydE9mUHJlY2lzaW9uKHN0YXJ0KSwgdGhpcy5nYW50dFVwcGVyLnZpZXcuZW5kT2ZQcmVjaXNpb24oZW5kKSk7XG4gICAgfVxuXG4gICAgY3JlYXRlRHJhZ3MoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgaXRlbTogR2FudHRJdGVtSW50ZXJuYWwsIGdhbnR0VXBwZXI6IEdhbnR0VXBwZXIpIHtcbiAgICAgICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5iYXJFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuZ2FudHRVcHBlciA9IGdhbnR0VXBwZXI7XG4gICAgICAgIGlmICh0aGlzLmRyYWdEaXNhYmxlZCAmJiB0aGlzLmxpbmtEcmFnRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTW91c2VFdmVudHMoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5kcmFnRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkcmFnUmVmID0gdGhpcy5jcmVhdGVCYXJEcmFnKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZHJhZ0hhbmRsZXNSZWZzID0gdGhpcy5jcmVhdGVCYXJIYW5kbGVEcmFncygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1JlZnMucHVzaChkcmFnUmVmLCAuLi5kcmFnSGFuZGxlc1JlZnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmxpbmtEcmFnRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rRHJhZ1JlZnMgPSB0aGlzLmNyZWF0ZUxpbmtIYW5kbGVEcmFncygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1JlZnMucHVzaCguLi5saW5rRHJhZ1JlZnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlSXRlbShpdGVtOiBHYW50dEl0ZW1JbnRlcm5hbCkge1xuICAgICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlRHJhZ0JhY2tkcm9wKCk7XG4gICAgICAgIHRoaXMuZHJhZ1JlZnMuZm9yRWFjaCgoZHJhZ1JlZikgPT4gZHJhZ1JlZi5kaXNwb3NlKCkpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcbiAgICAgICAgdGhpcy5zdG9wU2Nyb2xsVGltZXJzJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -108,10 +108,10 @@ export class NgxGanttBarComponent extends GanttItemUpper {
|
|
|
108
108
|
stopPropagation(event) {
|
|
109
109
|
event.stopPropagation();
|
|
110
110
|
}
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttBarComponent, deps: [{ token: i1.GanttDragContainer }, { token: i2.GanttBarDrag }, { token: i0.ElementRef }, { token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: NgxGanttBarComponent, isStandalone: true, selector: "ngx-gantt-bar,gantt-bar", outputs: { barClick: "barClick" }, host: { properties: { "class.gantt-bar": "this.ganttItemClass" } }, providers: [GanttBarDrag], viewQueries: [{ propertyName: "contentElementRef", first: true, predicate: ["content"], descendants: true }, { propertyName: "handles", predicate: ["handle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"gantt-bar-layer\">\n <div class=\"drag-handles\">\n <ng-container *ngIf=\"item.draggable && ganttUpper.draggable\">\n <span class=\"handle\" #handle></span>\n <span class=\"handle\" #handle></span>\n </ng-container>\n </div>\n <div *ngIf=\"item.linkable && ganttUpper.linkable\" class=\"link-handles\">\n <span class=\"handle\"><span class=\"point\"></span></span>\n <span class=\"handle\"> <span class=\"point\"></span></span>\n </div>\n</div>\n<div class=\"gantt-bar-border\"></div>\n<div #content class=\"gantt-bar-content\" (click)=\"onBarClick($event)\">\n <div class=\"gantt-bar-content-progress\" *ngIf=\"item.progress >= 0\" [style.width.%]=\"item.progress * 100\"></div>\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item: item.origin, refs: item.refs }\"> </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttBarComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
116
|
args: [{ selector: 'ngx-gantt-bar,gantt-bar', providers: [GanttBarDrag], standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div class=\"gantt-bar-layer\">\n <div class=\"drag-handles\">\n <ng-container *ngIf=\"item.draggable && ganttUpper.draggable\">\n <span class=\"handle\" #handle></span>\n <span class=\"handle\" #handle></span>\n </ng-container>\n </div>\n <div *ngIf=\"item.linkable && ganttUpper.linkable\" class=\"link-handles\">\n <span class=\"handle\"><span class=\"point\"></span></span>\n <span class=\"handle\"> <span class=\"point\"></span></span>\n </div>\n</div>\n<div class=\"gantt-bar-border\"></div>\n<div #content class=\"gantt-bar-content\" (click)=\"onBarClick($event)\">\n <div class=\"gantt-bar-content-progress\" *ngIf=\"item.progress >= 0\" [style.width.%]=\"item.progress * 100\"></div>\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item: item.origin, refs: item.refs }\"> </ng-template>\n</div>\n" }]
|
|
117
117
|
}], ctorParameters: () => [{ type: i1.GanttDragContainer }, { type: i2.GanttBarDrag }, { type: i0.ElementRef }, { type: i3.GanttUpper, decorators: [{
|
|
@@ -23,10 +23,10 @@ export class NgxGanttBaselineComponent {
|
|
|
23
23
|
itemElement.style.bottom = '2px';
|
|
24
24
|
itemElement.style.width = this.baselineItem.refs.width + 'px';
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttBaselineComponent, deps: [{ token: i0.ElementRef }, { token: GANTT_UPPER_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: NgxGanttBaselineComponent, isStandalone: true, selector: "ngx-gantt-baseline,gantt-baseline", inputs: { baselineItem: "baselineItem", template: "template" }, host: { properties: { "class.gantt-baseline": "this.ganttBaselineClass" } }, ngImport: i0, template: "<div #content *ngIf=\"baselineItem\" class=\"baseline-content\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ item: baselineItem.origin, refs: baselineItem.refs }\"\n ></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgxGanttBaselineComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'ngx-gantt-baseline,gantt-baseline', standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div #content *ngIf=\"baselineItem\" class=\"baseline-content\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ item: baselineItem.origin, refs: baselineItem.refs }\"\n ></ng-template>\n</div>\n" }]
|
|
32
32
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.GanttUpper, decorators: [{
|
|
@@ -4,7 +4,7 @@ import { take, takeUntil } from 'rxjs/operators';
|
|
|
4
4
|
import { isNumber } from '../../../utils/helpers';
|
|
5
5
|
import { GANTT_UPPER_TOKEN } from '../../../gantt-upper';
|
|
6
6
|
import { GanttViewType } from './../../../class/view-type';
|
|
7
|
-
import {
|
|
7
|
+
import { todayBorderRadius } from '../../../gantt.styles';
|
|
8
8
|
import { NgIf, NgFor } from '@angular/common';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../../../gantt-upper";
|
|
@@ -18,7 +18,6 @@ export class GanttCalendarGridComponent {
|
|
|
18
18
|
this.ngZone = ngZone;
|
|
19
19
|
this.elementRef = elementRef;
|
|
20
20
|
this.unsubscribe$ = new Subject();
|
|
21
|
-
this.headerHeight = headerHeight;
|
|
22
21
|
this.mainHeight = mainHeight;
|
|
23
22
|
this.todayBorderRadius = todayBorderRadius;
|
|
24
23
|
this.viewTypes = GanttViewType;
|
|
@@ -55,12 +54,12 @@ export class GanttCalendarGridComponent {
|
|
|
55
54
|
this.unsubscribe$.next();
|
|
56
55
|
this.unsubscribe$.complete();
|
|
57
56
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarGridComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GanttCalendarGridComponent, isStandalone: true, selector: "gantt-calendar-grid", host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-line\" *ngIf=\"ganttUpper.showTodayLine\"> </span>\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n <g *ngIf=\"view.showTimeline\">\n <line\n *ngFor=\"let point of view.secondaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.cellWidth\"\n [attr.x2]=\"(i + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n </g>\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
60
59
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarGridComponent, decorators: [{
|
|
62
61
|
type: Component,
|
|
63
|
-
args: [{ selector: 'gantt-calendar-grid', standalone: true, imports: [NgIf, NgFor], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-line\" *ngIf=\"ganttUpper.showTodayLine\"> </span>\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"headerHeight - 1\">\n <g>\n <g *ngIf=\"view.showTimeline\">\n <line\n *ngFor=\"let point of view.secondaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.cellWidth\"\n [attr.x2]=\"(i + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n </g>\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
|
|
62
|
+
args: [{ selector: 'gantt-calendar-grid', standalone: true, imports: [NgIf, NgFor], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-line\" *ngIf=\"ganttUpper.showTodayLine\"> </span>\n</div>\n\n<svg class=\"gantt-calendar-grid-main\" [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight - 1\">\n <g>\n <g *ngIf=\"view.showTimeline\">\n <line\n *ngFor=\"let point of view.secondaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.cellWidth\"\n [attr.x2]=\"(i + 1) * view.cellWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"secondary-line\"\n ></line>\n </g>\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"mainHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
|
|
64
63
|
}], ctorParameters: () => [{ type: i1.GanttUpper, decorators: [{
|
|
65
64
|
type: Inject,
|
|
66
65
|
args: [GANTT_UPPER_TOKEN]
|
|
@@ -68,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
68
67
|
type: HostBinding,
|
|
69
68
|
args: ['class']
|
|
70
69
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvY29tcG9uZW50cy9jYWxlbmRhci9ncmlkL2NhbGVuZGFyLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvZ3JpZC9jYWxlbmRhci1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUErQyxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUU5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFReEIsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFXRCxZQUNzQyxVQUFzQixFQUNoRCxNQUFjLEVBQ2QsVUFBbUM7UUFGVCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQWJ2QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0MsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUV0QyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBRUosY0FBUyxHQUFHLG9DQUFvQyxDQUFDO0lBTXBFLENBQUM7SUFFSixhQUFhO1FBQ1QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4SCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFbEcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDM0MsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFxQixFQUFFLEtBQWE7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQXJEUSwwQkFBMEIsa0JBZXZCLGlCQUFpQjtrR0FmcEIsMEJBQTBCLG9JQ3BCdkMsbytCQTRCQSw0Q0RWYyxJQUFJLDZGQUFFLEtBQUs7OzJGQUVaLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FFbkIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQzs7MEJBaUJqQixNQUFNOzJCQUFDLGlCQUFpQjt1RkFIUCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBOZ1pvbmUsIEluamVjdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2FudHREYXRlUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzcy9kYXRlLXBvaW50JztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGVscGVycyc7XG5cbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi4vLi4vLi4vZ2FudHQtdXBwZXInO1xuaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4vLi4vLi4vLi4vY2xhc3Mvdmlldy10eXBlJztcbmltcG9ydCB7IHRvZGF5Qm9yZGVyUmFkaXVzIH0gZnJvbSAnLi4vLi4vLi4vZ2FudHQuc3R5bGVzJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3QgbWFpbkhlaWdodCA9IDUwMDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2FudHQtY2FsZW5kYXItZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yXVxufSlcbmV4cG9ydCBjbGFzcyBHYW50dENhbGVuZGFyR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBnZXQgdmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FudHRVcHBlci52aWV3O1xuICAgIH1cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBtYWluSGVpZ2h0ID0gbWFpbkhlaWdodDtcblxuICAgIHRvZGF5Qm9yZGVyUmFkaXVzID0gdG9kYXlCb3JkZXJSYWRpdXM7XG5cbiAgICB2aWV3VHlwZXMgPSBHYW50dFZpZXdUeXBlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9IGBnYW50dC1jYWxlbmRhciBnYW50dC1jYWxlbmRhci1ncmlkYDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwdWJsaWMgZ2FudHRVcHBlcjogR2FudHRVcHBlcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkge31cblxuICAgIHNldFRvZGF5UG9pbnQoKSB7XG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnZpZXcuZ2V0VG9kYXlYUG9pbnQoKTtcbiAgICAgICAgY29uc3QgdG9kYXlFbGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1jYWxlbmRhci10b2RheS1vdmVybGF5JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0b2RheS1saW5lJylbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKHgpKSB7XG4gICAgICAgICAgICBpZiAobGluZSkge1xuICAgICAgICAgICAgICAgIGxpbmUuc3R5bGUubGVmdCA9IGAke3h9cHhgO1xuICAgICAgICAgICAgICAgIGxpbmUuc3R5bGUudG9wID0gYDBweGA7XG4gICAgICAgICAgICAgICAgbGluZS5zdHlsZS5ib3R0b20gPSBgJHstbWFpbkhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2RheUVsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG1lcmdlKHRoaXMuZ2FudHRVcHBlci52aWV3Q2hhbmdlLCB0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydCQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUb2RheVBvaW50KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYWNrQnkocG9pbnQ6IEdhbnR0RGF0ZVBvaW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBwb2ludC50ZXh0IHx8IGluZGV4O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXlcIiBbc3R5bGUud2lkdGgucHhdPVwidmlldy53aWR0aFwiPlxuICA8c3BhbiBjbGFzcz1cInRvZGF5LWxpbmVcIiAqbmdJZj1cImdhbnR0VXBwZXIuc2hvd1RvZGF5TGluZVwiPiA8L3NwYW4+XG48L2Rpdj5cblxuPHN2ZyBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLWdyaWQtbWFpblwiIFthdHRyLndpZHRoXT1cInZpZXcud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiZ2FudHRVcHBlci5zdHlsZXMuaGVhZGVySGVpZ2h0IC0gMVwiPlxuICA8Zz5cbiAgICA8ZyAqbmdJZj1cInZpZXcuc2hvd1RpbWVsaW5lXCI+XG4gICAgICA8bGluZVxuICAgICAgICAqbmdGb3I9XCJsZXQgcG9pbnQgb2Ygdmlldy5zZWNvbmRhcnlEYXRlUG9pbnRzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgW2F0dHIueDFdPVwiKGkgKyAxKSAqIHZpZXcuY2VsbFdpZHRoXCJcbiAgICAgICAgW2F0dHIueDJdPVwiKGkgKyAxKSAqIHZpZXcuY2VsbFdpZHRoXCJcbiAgICAgICAgW2F0dHIueTFdPVwiMFwiXG4gICAgICAgIFthdHRyLnkyXT1cIm1haW5IZWlnaHRcIlxuICAgICAgICBjbGFzcz1cInNlY29uZGFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuICAgIDxnPlxuICAgICAgPGxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IHBvaW50IG9mIHZpZXcucHJpbWFyeURhdGVQb2ludHM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICBbYXR0ci54MV09XCIoaSArIDEpICogdmlldy5wcmltYXJ5V2lkdGhcIlxuICAgICAgICBbYXR0ci54Ml09XCIoaSArIDEpICogdmlldy5wcmltYXJ5V2lkdGhcIlxuICAgICAgICBbYXR0ci55MV09XCIwXCJcbiAgICAgICAgW2F0dHIueTJdPVwibWFpbkhlaWdodFwiXG4gICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, HostBinding, Inject } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { todayHeight, todayWidth } from '../../../gantt.styles';
|
|
3
3
|
import { GANTT_UPPER_TOKEN } from '../../../gantt-upper';
|
|
4
4
|
import { GanttViewType } from '../../../class';
|
|
5
5
|
import { take, takeUntil } from 'rxjs/operators';
|
|
@@ -13,16 +13,19 @@ export class GanttCalendarHeaderComponent {
|
|
|
13
13
|
get view() {
|
|
14
14
|
return this.ganttUpper.view;
|
|
15
15
|
}
|
|
16
|
+
get height() {
|
|
17
|
+
return this.ganttUpper.styles.headerHeight + 'px';
|
|
18
|
+
}
|
|
16
19
|
constructor(ganttUpper, ngZone, elementRef) {
|
|
17
20
|
this.ganttUpper = ganttUpper;
|
|
18
21
|
this.ngZone = ngZone;
|
|
19
22
|
this.elementRef = elementRef;
|
|
20
23
|
this.unsubscribe$ = new Subject();
|
|
21
|
-
this.headerHeight = headerHeight;
|
|
22
24
|
this.viewTypes = GanttViewType;
|
|
23
25
|
this.className = `gantt-calendar gantt-calendar-header`;
|
|
24
26
|
}
|
|
25
27
|
ngOnInit() {
|
|
28
|
+
// 头部日期定位
|
|
26
29
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
27
30
|
merge(this.ganttUpper.viewChange, this.ganttUpper.view.start$)
|
|
28
31
|
.pipe(takeUntil(this.unsubscribe$))
|
|
@@ -40,7 +43,7 @@ export class GanttCalendarHeaderComponent {
|
|
|
40
43
|
if (isNumber(x)) {
|
|
41
44
|
if (rect) {
|
|
42
45
|
rect.style.left = `${x - todayWidth / 2}px`;
|
|
43
|
-
rect.style.top = `${headerHeight - todayHeight}px`;
|
|
46
|
+
rect.style.top = `${this.ganttUpper.styles.headerHeight - todayHeight}px`;
|
|
44
47
|
rect.innerHTML = today.toString();
|
|
45
48
|
}
|
|
46
49
|
}
|
|
@@ -51,17 +54,20 @@ export class GanttCalendarHeaderComponent {
|
|
|
51
54
|
trackBy(point, index) {
|
|
52
55
|
return point.text || index;
|
|
53
56
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarHeaderComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GanttCalendarHeaderComponent, isStandalone: true, selector: "gantt-calendar-header", host: { properties: { "class": "this.className", "style.height": "this.height" } }, ngImport: i0, template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n *ngFor=\"let point of view.primaryDatePoints; trackBy: trackBy\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n <ng-container *ngFor=\"let point of view.secondaryDatePoints; trackBy: trackBy\">\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n </ng-container>\n\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
56
59
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttCalendarHeaderComponent, decorators: [{
|
|
58
61
|
type: Component,
|
|
59
|
-
args: [{ selector: 'gantt-calendar-header', standalone: true, imports: [NgFor, NgStyle], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"headerHeight\">\n <g>\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n *ngFor=\"let point of view.primaryDatePoints; trackBy: trackBy\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n <ng-container *ngFor=\"let point of view.secondaryDatePoints; trackBy: trackBy\">\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n </ng-container>\n\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"headerHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n\n <g>\n <line
|
|
62
|
+
args: [{ selector: 'gantt-calendar-header', standalone: true, imports: [NgFor, NgStyle], template: "<div class=\"gantt-calendar-today-overlay\" [style.width.px]=\"view.width\">\n <span class=\"today-rect\" [hidden]=\"ganttUpper.viewType !== viewTypes.day\"> </span>\n</div>\n<svg [attr.width]=\"view.width\" [attr.height]=\"ganttUpper.styles.headerHeight\">\n <g>\n <text\n class=\"primary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n *ngFor=\"let point of view.primaryDatePoints; trackBy: trackBy\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n <ng-container *ngFor=\"let point of view.secondaryDatePoints; trackBy: trackBy\">\n <text\n class=\"secondary-text\"\n [ngStyle]=\"point.style\"\n [class.today]=\"point.additions?.isToday\"\n [class.weekend]=\"point.additions?.isWeekend\"\n [attr.x]=\"point.x\"\n [attr.y]=\"point.y\"\n >\n {{ point.text }}\n </text>\n </ng-container>\n\n <g>\n <line\n *ngFor=\"let point of view.primaryDatePoints; let i = index; trackBy: trackBy\"\n [attr.x1]=\"(i + 1) * view.primaryWidth\"\n [attr.x2]=\"(i + 1) * view.primaryWidth\"\n [attr.y1]=\"0\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"primary-line\"\n ></line>\n </g>\n\n <g>\n <line\n [attr.x1]=\"0\"\n [attr.x2]=\"view.width\"\n [attr.y1]=\"ganttUpper.styles.headerHeight\"\n [attr.y2]=\"ganttUpper.styles.headerHeight\"\n class=\"header-line\"\n ></line>\n </g>\n </g>\n</svg>\n" }]
|
|
60
63
|
}], ctorParameters: () => [{ type: i1.GanttUpper, decorators: [{
|
|
61
64
|
type: Inject,
|
|
62
65
|
args: [GANTT_UPPER_TOKEN]
|
|
63
66
|
}] }, { type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { className: [{
|
|
64
67
|
type: HostBinding,
|
|
65
68
|
args: ['class']
|
|
69
|
+
}], height: [{
|
|
70
|
+
type: HostBinding,
|
|
71
|
+
args: ['style.height']
|
|
66
72
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2NhbGVuZGFyL2hlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFRakQsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFRRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQ3NDLFVBQXNCLEVBQ2hELE1BQWMsRUFDZCxVQUFtQztRQUZULGVBQVUsR0FBVixVQUFVLENBQVk7UUFDaEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBZHZDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVyQyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBRUosY0FBUyxHQUFHLHNDQUFzQyxDQUFDO0lBV3RFLENBQUM7SUFFSixRQUFRO1FBQ0osU0FBUztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLEdBQUc7b0JBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdFLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYTtRQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4SCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFbEcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNkLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxXQUFXLElBQUksQ0FBQztnQkFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXFCLEVBQUUsS0FBYTtRQUN4QyxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQy9CLENBQUM7OEdBcERRLDRCQUE0QixrQkFpQnpCLGlCQUFpQjtrR0FqQnBCLDRCQUE0QixxS0NqQnpDLDJtREFtREEsNENEcENjLEtBQUssbUhBQUUsT0FBTzs7MkZBRWYsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLHVCQUF1QixjQUVyQixJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDOzswQkFtQnBCLE1BQU07MkJBQUMsaUJBQWlCO3VGQVJQLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFHaEIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEluamVjdCwgTmdab25lLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgdG9kYXlIZWlnaHQsIHRvZGF5V2lkdGggfSBmcm9tICcuLi8uLi8uLi9nYW50dC5zdHlsZXMnO1xuaW1wb3J0IHsgR0FOVFRfVVBQRVJfVE9LRU4sIEdhbnR0VXBwZXIgfSBmcm9tICcuLi8uLi8uLi9nYW50dC11cHBlcic7XG5pbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3MnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdhbnR0RGF0ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2RhdGUnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9oZWxwZXJzJztcbmltcG9ydCB7IE5nRm9yLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnYW50dC1jYWxlbmRhci1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBHYW50dENhbGVuZGFySGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBnZXQgdmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FudHRVcHBlci52aWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHZpZXdUeXBlcyA9IEdhbnR0Vmlld1R5cGU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gYGdhbnR0LWNhbGVuZGFyIGdhbnR0LWNhbGVuZGFyLWhlYWRlcmA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FudHRVcHBlci5zdHlsZXMuaGVhZGVySGVpZ2h0ICsgJ3B4JztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChHQU5UVF9VUFBFUl9UT0tFTikgcHVibGljIGdhbnR0VXBwZXI6IEdhbnR0VXBwZXIsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8g5aS06YOo5pel5pyf5a6a5L2NXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG1lcmdlKHRoaXMuZ2FudHRVcHBlci52aWV3Q2hhbmdlLCB0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydCQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2FudHRVcHBlci52aWV3VHlwZSA9PT0gR2FudHRWaWV3VHlwZS5kYXkpIHRoaXMuc2V0VG9kYXlQb2ludCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRUb2RheVBvaW50KCkge1xuICAgICAgICBjb25zdCB4ID0gdGhpcy52aWV3LmdldFRvZGF5WFBvaW50KCk7XG4gICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IEdhbnR0RGF0ZSgpLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgdG9kYXlFbGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1jYWxlbmRhci10b2RheS1vdmVybGF5JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0b2RheS1yZWN0JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKHgpKSB7XG4gICAgICAgICAgICBpZiAocmVjdCkge1xuICAgICAgICAgICAgICAgIHJlY3Quc3R5bGUubGVmdCA9IGAke3ggLSB0b2RheVdpZHRoIC8gMn1weGA7XG4gICAgICAgICAgICAgICAgcmVjdC5zdHlsZS50b3AgPSBgJHt0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmhlYWRlckhlaWdodCAtIHRvZGF5SGVpZ2h0fXB4YDtcbiAgICAgICAgICAgICAgICByZWN0LmlubmVySFRNTCA9IHRvZGF5LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2RheUVsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeShwb2ludDogR2FudHREYXRlUG9pbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHBvaW50LnRleHQgfHwgaW5kZXg7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXlcIiBbc3R5bGUud2lkdGgucHhdPVwidmlldy53aWR0aFwiPlxuICA8c3BhbiBjbGFzcz1cInRvZGF5LXJlY3RcIiBbaGlkZGVuXT1cImdhbnR0VXBwZXIudmlld1R5cGUgIT09IHZpZXdUeXBlcy5kYXlcIj4gPC9zcGFuPlxuPC9kaXY+XG48c3ZnIFthdHRyLndpZHRoXT1cInZpZXcud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiZ2FudHRVcHBlci5zdHlsZXMuaGVhZGVySGVpZ2h0XCI+XG4gIDxnPlxuICAgIDx0ZXh0XG4gICAgICBjbGFzcz1cInByaW1hcnktdGV4dFwiXG4gICAgICBbbmdTdHlsZV09XCJwb2ludC5zdHlsZVwiXG4gICAgICBbY2xhc3MudG9kYXldPVwicG9pbnQuYWRkaXRpb25zPy5pc1RvZGF5XCJcbiAgICAgIFtjbGFzcy53ZWVrZW5kXT1cInBvaW50LmFkZGl0aW9ucz8uaXNXZWVrZW5kXCJcbiAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2aWV3LnByaW1hcnlEYXRlUG9pbnRzOyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgIFthdHRyLnhdPVwicG9pbnQueFwiXG4gICAgICBbYXR0ci55XT1cInBvaW50LnlcIlxuICAgID5cbiAgICAgIHt7IHBvaW50LnRleHQgfX1cbiAgICA8L3RleHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcG9pbnQgb2Ygdmlldy5zZWNvbmRhcnlEYXRlUG9pbnRzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICA8dGV4dFxuICAgICAgICBjbGFzcz1cInNlY29uZGFyeS10ZXh0XCJcbiAgICAgICAgW25nU3R5bGVdPVwicG9pbnQuc3R5bGVcIlxuICAgICAgICBbY2xhc3MudG9kYXldPVwicG9pbnQuYWRkaXRpb25zPy5pc1RvZGF5XCJcbiAgICAgICAgW2NsYXNzLndlZWtlbmRdPVwicG9pbnQuYWRkaXRpb25zPy5pc1dlZWtlbmRcIlxuICAgICAgICBbYXR0ci54XT1cInBvaW50LnhcIlxuICAgICAgICBbYXR0ci55XT1cInBvaW50LnlcIlxuICAgICAgPlxuICAgICAgICB7eyBwb2ludC50ZXh0IH19XG4gICAgICA8L3RleHQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8Zz5cbiAgICAgIDxsaW5lXG4gICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2aWV3LnByaW1hcnlEYXRlUG9pbnRzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgW2F0dHIueDFdPVwiKGkgKyAxKSAqIHZpZXcucHJpbWFyeVdpZHRoXCJcbiAgICAgICAgW2F0dHIueDJdPVwiKGkgKyAxKSAqIHZpZXcucHJpbWFyeVdpZHRoXCJcbiAgICAgICAgW2F0dHIueTFdPVwiMFwiXG4gICAgICAgIFthdHRyLnkyXT1cImdhbnR0VXBwZXIuc3R5bGVzLmhlYWRlckhlaWdodFwiXG4gICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuXG4gICAgPGc+XG4gICAgICA8bGluZVxuICAgICAgICBbYXR0ci54MV09XCIwXCJcbiAgICAgICAgW2F0dHIueDJdPVwidmlldy53aWR0aFwiXG4gICAgICAgIFthdHRyLnkxXT1cImdhbnR0VXBwZXIuc3R5bGVzLmhlYWRlckhlaWdodFwiXG4gICAgICAgIFthdHRyLnkyXT1cImdhbnR0VXBwZXIuc3R5bGVzLmhlYWRlckhlaWdodFwiXG4gICAgICAgIGNsYXNzPVwiaGVhZGVyLWxpbmVcIlxuICAgICAgPjwvbGluZT5cbiAgICA8L2c+XG4gIDwvZz5cbjwvc3ZnPlxuIl19
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { GANTT_UPPER_TOKEN } from '../../gantt-upper';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../gantt-upper";
|
|
3
5
|
export class GanttDragBackdropComponent {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
constructor(ganttUpper) {
|
|
7
|
+
this.ganttUpper = ganttUpper;
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttDragBackdropComponent, deps: [{ token: GANTT_UPPER_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GanttDragBackdropComponent, isStandalone: true, selector: "gantt-drag-backdrop", host: { classAttribute: "gantt-drag-backdrop" }, ngImport: i0, template: "<div class=\"gantt-drag-mask\" [style.top.px]=\"ganttUpper.styles.headerHeight\">\n <div class=\"date-range\">\n <span class=\"start\"></span>\n <span class=\"end\"></span>\n </div>\n</div>\n" }); }
|
|
6
11
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GanttDragBackdropComponent, decorators: [{
|
|
8
13
|
type: Component,
|
|
9
14
|
args: [{ selector: 'gantt-drag-backdrop', host: {
|
|
10
15
|
class: 'gantt-drag-backdrop'
|
|
11
|
-
}, standalone: true, template: "<div class=\"gantt-drag-mask\">\n <div class=\"date-range\">\n <span class=\"start\"></span>\n <span class=\"end\"></span>\n </div>\n</div>\n" }]
|
|
12
|
-
}]
|
|
13
|
-
|
|
16
|
+
}, standalone: true, template: "<div class=\"gantt-drag-mask\" [style.top.px]=\"ganttUpper.styles.headerHeight\">\n <div class=\"date-range\">\n <span class=\"start\"></span>\n <span class=\"end\"></span>\n </div>\n</div>\n" }]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.GanttUpper, decorators: [{
|
|
18
|
+
type: Inject,
|
|
19
|
+
args: [GANTT_UPPER_TOKEN]
|
|
20
|
+
}] }] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1iYWNrZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvY29tcG9uZW50cy9kcmFnLWJhY2tkcm9wL2RyYWctYmFja2Ryb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvZHJhZy1iYWNrZHJvcC9kcmFnLWJhY2tkcm9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLG1CQUFtQixDQUFDOzs7QUFTbEUsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxZQUE4QyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQzs4R0FEL0QsMEJBQTBCLGtCQUNmLGlCQUFpQjtrR0FENUIsMEJBQTBCLGdJQ1Z2Qyx5TUFNQTs7MkZESWEsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNJLHFCQUFxQixRQUV6Qjt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3FCQUMvQixjQUNXLElBQUk7OzBCQUdILE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi4vLi4vZ2FudHQtdXBwZXInO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnYW50dC1kcmFnLWJhY2tkcm9wJyxcbiAgICB0ZW1wbGF0ZVVybDogYC4vZHJhZy1iYWNrZHJvcC5jb21wb25lbnQuaHRtbGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2dhbnR0LWRyYWctYmFja2Ryb3AnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEdhbnR0RHJhZ0JhY2tkcm9wQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwdWJsaWMgZ2FudHRVcHBlcjogR2FudHRVcHBlcikge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJnYW50dC1kcmFnLW1hc2tcIiBbc3R5bGUudG9wLnB4XT1cImdhbnR0VXBwZXIuc3R5bGVzLmhlYWRlckhlaWdodFwiPlxuICA8ZGl2IGNsYXNzPVwiZGF0ZS1yYW5nZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwic3RhcnRcIj48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJlbmRcIj48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|