@worktile/gantt 12.1.0-next.0 → 12.1.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.
Files changed (47) hide show
  1. package/bundles/worktile-gantt.umd.js +721 -928
  2. package/bundles/worktile-gantt.umd.js.map +1 -1
  3. package/class/item.d.ts +0 -1
  4. package/components/calendar/{grid/calendar-grid.component.d.ts → calendar.component.d.ts} +9 -7
  5. package/components/links/links.component.d.ts +3 -2
  6. package/components/main/gantt-main.component.d.ts +3 -3
  7. package/components/table/gantt-table.component.d.ts +36 -0
  8. package/esm2015/class/item.js +1 -1
  9. package/esm2015/components/calendar/calendar.component.js +86 -0
  10. package/esm2015/components/links/links.component.js +42 -19
  11. package/esm2015/components/main/gantt-main.component.js +4 -4
  12. package/esm2015/components/table/gantt-table.component.js +146 -0
  13. package/esm2015/gantt-dom.service.js +2 -5
  14. package/esm2015/gantt-item-upper.js +4 -5
  15. package/esm2015/gantt-print.service.js +2 -2
  16. package/esm2015/gantt-upper.js +46 -33
  17. package/esm2015/gantt.component.js +17 -172
  18. package/esm2015/gantt.config.js +13 -0
  19. package/esm2015/gantt.module.js +22 -18
  20. package/esm2015/public-api.js +2 -1
  21. package/esm2015/root.component.js +7 -8
  22. package/esm2015/utils/helpers.js +10 -9
  23. package/esm2015/views/day.js +2 -2
  24. package/esm2015/views/month.js +3 -3
  25. package/esm2015/views/quarter.js +3 -3
  26. package/esm2015/views/view.js +4 -2
  27. package/esm2015/views/week.js +3 -3
  28. package/esm2015/views/year.js +2 -2
  29. package/fesm2015/worktile-gantt.js +706 -896
  30. package/fesm2015/worktile-gantt.js.map +1 -1
  31. package/gantt-dom.service.d.ts +0 -1
  32. package/gantt-upper.d.ts +7 -3
  33. package/gantt.component.d.ts +5 -26
  34. package/gantt.config.d.ts +23 -0
  35. package/gantt.module.d.ts +13 -16
  36. package/main.bundle.scss +195 -234
  37. package/package.json +1 -1
  38. package/public-api.d.ts +1 -0
  39. package/utils/helpers.d.ts +3 -5
  40. package/views/view.d.ts +2 -0
  41. package/components/calendar/header/calendar-header.component.d.ts +0 -21
  42. package/components/table/body/gantt-table-body.component.d.ts +0 -24
  43. package/components/table/header/gantt-table-header.component.d.ts +0 -29
  44. package/esm2015/components/calendar/grid/calendar-grid.component.js +0 -76
  45. package/esm2015/components/calendar/header/calendar-header.component.js +0 -70
  46. package/esm2015/components/table/body/gantt-table-body.component.js +0 -68
  47. package/esm2015/components/table/header/gantt-table-header.component.js +0 -126
@@ -0,0 +1,146 @@
1
+ import { Component, HostBinding, Input, ViewChild, Inject } from '@angular/core';
2
+ import { coerceCssPixelValue } from '@angular/cdk/coercion';
3
+ import { GANTT_ABSTRACT_TOKEN } from '../../gantt-abstract';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../icon/icon.component";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/cdk/drag-drop";
8
+ import * as i4 from "../../gantt.pipe";
9
+ export const defaultColumnWidth = 100;
10
+ export const minColumnWidth = 80;
11
+ export class GanttTableComponent {
12
+ constructor(gantt, elementRef) {
13
+ this.gantt = gantt;
14
+ this.elementRef = elementRef;
15
+ this.ganttTableClass = true;
16
+ this.ganttTableEmptyClass = false;
17
+ }
18
+ set columns(columns) {
19
+ columns.forEach((column) => {
20
+ if (!column.columnWidth) {
21
+ column.columnWidth = coerceCssPixelValue(defaultColumnWidth);
22
+ }
23
+ });
24
+ this.columnList = columns;
25
+ }
26
+ ngOnInit() { }
27
+ ngOnChanges(changes) {
28
+ var _a, _b;
29
+ if (!((_a = changes.groups.currentValue) === null || _a === void 0 ? void 0 : _a.length) && !((_b = changes.items.currentValue) === null || _b === void 0 ? void 0 : _b.length)) {
30
+ this.ganttTableEmptyClass = true;
31
+ }
32
+ else {
33
+ this.ganttTableEmptyClass = false;
34
+ }
35
+ }
36
+ dragFixed(config) {
37
+ if (config.movedWidth < config.minWidth) {
38
+ config.target.style.transform = `translate3d(${config.minWidth - config.originWidth}px, 0, 0)`;
39
+ }
40
+ }
41
+ expandGroup(group) {
42
+ this.gantt.expandGroup(group);
43
+ }
44
+ expandChildren(item) {
45
+ this.gantt.expandChildren(item);
46
+ }
47
+ dragStarted(event) {
48
+ const target = event.source.element.nativeElement;
49
+ this.dragStartLeft = target.getBoundingClientRect().left;
50
+ }
51
+ dragMoved(event, column) {
52
+ const target = event.source.element.nativeElement;
53
+ const left = target.getBoundingClientRect().left;
54
+ let originWidth;
55
+ let movedWidth;
56
+ let minWidth;
57
+ if (column) {
58
+ originWidth = parseInt(column.columnWidth, 10);
59
+ movedWidth = originWidth + (left - this.dragStartLeft);
60
+ minWidth = minColumnWidth;
61
+ }
62
+ else {
63
+ originWidth = this.elementRef.nativeElement.getBoundingClientRect().width;
64
+ movedWidth = originWidth + (left - this.dragStartLeft);
65
+ minWidth = minColumnWidth * this.columnList.length;
66
+ }
67
+ this.dragFixed({
68
+ target,
69
+ originWidth,
70
+ movedWidth,
71
+ minWidth
72
+ });
73
+ this.showAuxiliaryLine(event);
74
+ }
75
+ columnDragEnded(event, column) {
76
+ const target = event.source.element.nativeElement;
77
+ const left = target.getBoundingClientRect().left;
78
+ const width = parseInt(column.columnWidth, 10) + (left - this.dragStartLeft);
79
+ const columnWidth = Math.max(width || 0, minColumnWidth);
80
+ column.columnWidth = coerceCssPixelValue(columnWidth);
81
+ if (this.gantt.table) {
82
+ this.gantt.table.columnChanges.emit({ columns: this.columnList });
83
+ }
84
+ this.hideAuxiliaryLine();
85
+ event.source.reset();
86
+ }
87
+ tableDragEnded(event) {
88
+ const target = event.source.element.nativeElement;
89
+ const left = target.getBoundingClientRect().left;
90
+ const tableWidth = this.elementRef.nativeElement.getBoundingClientRect().width;
91
+ const dragWidth = left - this.dragStartLeft;
92
+ this.columnList.forEach((column) => {
93
+ const lastColumnWidth = parseInt(column.columnWidth, 10);
94
+ const distributeWidth = parseInt(String(dragWidth * (lastColumnWidth / tableWidth)), 10);
95
+ const columnWidth = Math.max(lastColumnWidth + distributeWidth || 0, minColumnWidth);
96
+ column.columnWidth = coerceCssPixelValue(columnWidth);
97
+ });
98
+ if (this.gantt.table) {
99
+ this.gantt.table.columnChanges.emit({ columns: this.columnList });
100
+ }
101
+ this.hideAuxiliaryLine();
102
+ event.source.reset();
103
+ }
104
+ showAuxiliaryLine(event) {
105
+ const tableRect = this.elementRef.nativeElement.getBoundingClientRect();
106
+ const targetRect = event.source.element.nativeElement.getBoundingClientRect();
107
+ const distance = { x: targetRect.left - tableRect.left, y: targetRect.top - tableRect.top };
108
+ this.draglineElementRef.nativeElement.style.left = `${distance.x}px`;
109
+ this.draglineElementRef.nativeElement.style.display = 'block';
110
+ }
111
+ hideAuxiliaryLine() {
112
+ this.draglineElementRef.nativeElement.style.display = 'none';
113
+ }
114
+ }
115
+ GanttTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttTableComponent, deps: [{ token: GANTT_ABSTRACT_TOKEN }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
116
+ GanttTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: GanttTableComponent, selector: "gantt-table", inputs: { groups: "groups", items: "items", columns: "columns", groupTemplate: "groupTemplate", emptyTemplate: "emptyTemplate" }, host: { properties: { "class.gantt-table": "this.ganttTableClass", "class.gantt-table-empty": "this.ganttTableEmptyClass" } }, viewQueries: [{ propertyName: "draglineElementRef", first: true, predicate: ["dragLine"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"gantt-table-header gantt-table-row\">\n <div class=\"gantt-table-column\" *ngFor=\"let column of columnList; let i = index\" [style.width]=\"column.columnWidth\">\n <ng-container *ngIf=\"column.headerTemplateRef; else default\" [ngTemplateOutlet]=\"column.headerTemplateRef\"></ng-container>\n <ng-template #default>\n {{ column.name }}\n </ng-template>\n <div\n class=\"gantt-table-drag-trigger\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n cdkDragBoundary=\".gantt\"\n (cdkDragMoved)=\"dragMoved($event, column)\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"columnDragEnded($event, column)\"\n ></div>\n </div>\n</div>\n<div class=\"gantt-table-body\">\n <ng-container *ngIf=\"!groups.length && !items.length\">\n <ng-container *ngIf=\"!emptyTemplate\">\n <gantt-icon class=\"empty-icon\" iconName=\"empty\"></gantt-icon>\n <div class=\"empty-text\">\u6CA1\u6709\u6570\u636E</div>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"emptyTemplate\"></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"groups && groups.length > 0; else itemsTemplate\">\n <ng-container *ngFor=\"let group of groups\">\n <div class=\"gantt-table-group\" [ngClass]=\"group.class\">\n <div class=\"gantt-table-group-title\" [class.expanded]=\"group.expanded\" (click)=\"expandGroup(group)\">\n <gantt-icon class=\"expand-icon\" [iconName]=\"group.expanded ? 'angle-down' : 'angle-right'\"></gantt-icon>\n <ng-container *ngIf=\"groupTemplate; else default\">\n <ng-template\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: group.origin, group: group.origin }\"\n ></ng-template>\n </ng-container>\n <ng-template #default>\n <span class=\"group-title\">{{ group.title }}</span>\n </ng-template>\n </div>\n </div>\n\n <ng-container *ngIf=\"group.expanded\">\n <ng-template\n [ngTemplateOutlet]=\"ganttItems\"\n [ngTemplateOutletContext]=\"{ group: group, items: group.items, level: 0 }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<div\n class=\"gantt-table-drag-trigger\"\n cdkDrag\n cdkDragLockAxis=\"x\"\n cdkDragBoundary=\".gantt\"\n (cdkDragMoved)=\"dragMoved($event)\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"tableDragEnded($event)\"\n></div>\n\n<div #dragLine class=\"gantt-table-drag-auxiliary-line\"></div>\n\n<ng-template #itemsTemplate>\n <ng-template [ngTemplateOutlet]=\"ganttItems\" [ngTemplateOutletContext]=\"{ items: items, level: 0 }\"></ng-template>\n</ng-template>\n\n<ng-template #ganttItems let-group=\"group\" let-items=\"items\" let-level=\"level\">\n <ng-container *ngFor=\"let item of items\">\n <div\n class=\"gantt-table-item gantt-table-row\"\n [class.gantt-table-item-first-level-group]=\"level === 0 && (item.type | isGanttRangeItem)\"\n [class.gantt-table-item-with-group]=\"group\"\n [style.height.px]=\"gantt.styles.lineHeight\"\n [style.lineHeight.px]=\"gantt.styles.lineHeight\"\n >\n <div class=\"gantt-table-column\" *ngFor=\"let column of columnList; let first = first\" [style.width]=\"column.columnWidth\">\n <div *ngIf=\"first\" class=\"gantt-expand-icon\" [style.marginLeft.px]=\"level * 20\">\n <ng-container *ngIf=\"level < gantt.maxLevel - 1 && item.expandable\">\n <gantt-icon\n *ngIf=\"!item.loading\"\n class=\"expand-icon\"\n [iconName]=\"item.expanded ? 'angle-down' : 'angle-right'\"\n (click)=\"expandChildren(item)\"\n ></gantt-icon>\n <gantt-icon *ngIf=\"item.loading\" [iconName]=\"'loading'\"></gantt-icon>\n </ng-container>\n </div>\n <div class=\"gantt-table-column-content\">\n <ng-template\n [ngTemplateOutlet]=\"column.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item.origin, item: item.origin }\"\n ></ng-template>\n </div>\n </div>\n </div>\n <ng-template\n *ngIf=\"item.children && item.expanded\"\n [ngTemplateOutlet]=\"ganttItems\"\n [ngTemplateOutletContext]=\"{ items: item.children, level: level + 1, group: group }\"\n ></ng-template>\n </ng-container>\n</ng-template>\n", components: [{ type: i1.GanttIconComponent, selector: "gantt-icon", inputs: ["iconName"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "isGanttRangeItem": i4.IsGanttRangeItemPipe } });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttTableComponent, decorators: [{
118
+ type: Component,
119
+ args: [{
120
+ selector: 'gantt-table',
121
+ templateUrl: './gantt-table.component.html'
122
+ }]
123
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
124
+ type: Inject,
125
+ args: [GANTT_ABSTRACT_TOKEN]
126
+ }] }, { type: i0.ElementRef }]; }, propDecorators: { groups: [{
127
+ type: Input
128
+ }], items: [{
129
+ type: Input
130
+ }], columns: [{
131
+ type: Input
132
+ }], groupTemplate: [{
133
+ type: Input
134
+ }], emptyTemplate: [{
135
+ type: Input
136
+ }], draglineElementRef: [{
137
+ type: ViewChild,
138
+ args: ['dragLine', { static: true }]
139
+ }], ganttTableClass: [{
140
+ type: HostBinding,
141
+ args: ['class.gantt-table']
142
+ }], ganttTableEmptyClass: [{
143
+ type: HostBinding,
144
+ args: ['class.gantt-table-empty']
145
+ }] } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvdGFibGUvZ2FudHQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvdGFibGUvZ2FudHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBR1gsS0FBSyxFQUVMLFNBQVMsRUFJVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUEwQixvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFFcEYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFZakMsTUFBTSxPQUFPLG1CQUFtQjtJQTZCNUIsWUFBaUQsS0FBNkIsRUFBVSxVQUFzQjtRQUE3RCxVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKNUUsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFakIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0lBRTRDLENBQUM7SUFwQmxILElBQ0ksT0FBTyxDQUFDLE9BQWdEO1FBQ3hELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsTUFBTSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ2hFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxH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OztnSEFuSVEsbUJBQW1CLGtCQTZCUixvQkFBb0I7b0dBN0IvQixtQkFBbUIsdWNDakNoQywrMklBeUdBOzJGRHhFYSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSw4QkFBOEI7aUJBQzlDOzswQkE4QmdCLE1BQU07MkJBQUMsb0JBQW9CO3FFQXhCL0IsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7Z0JBVUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVtQyxrQkFBa0I7c0JBQTFELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFTCxlQUFlO3NCQUFoRCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFFUSxvQkFBb0I7c0JBQTNELFdBQVc7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgUXVlcnlMaXN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYW50dEl0ZW1JbnRlcm5hbCwgR2FudHRHcm91cEludGVybmFsIH0gZnJvbSAnLi4vLi4vY2xhc3MnO1xuaW1wb3J0IHsgTmd4R2FudHRUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL2dhbnR0LWNvbHVtbi5jb21wb25lbnQnO1xuLy8gaW1wb3J0IHsgZGVmYXVsdENvbHVtbldpZHRoLCBtaW5Db2x1bW5XaWR0aCB9IGZyb20gJy4uLy4uL2dhbnR0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnTW92ZSwgQ2RrRHJhZ1N0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEdhbnR0QWJzdHJhY3RDb21wb25lbnQsIEdBTlRUX0FCU1RSQUNUX1RPS0VOIH0gZnJvbSAnLi4vLi4vZ2FudHQtYWJzdHJhY3QnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbHVtbldpZHRoID0gMTAwO1xuZXhwb3J0IGNvbnN0IG1pbkNvbHVtbldpZHRoID0gODA7XG5cbmludGVyZmFjZSBEcmFnRml4ZWRDb25maWcge1xuICAgIHRhcmdldDogSFRNTEVsZW1lbnQ7XG4gICAgb3JpZ2luV2lkdGg6IG51bWJlcjtcbiAgICBtb3ZlZFdpZHRoOiBudW1iZXI7XG4gICAgbWluV2lkdGg6IG51bWJlcjtcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2FudHQtdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nYW50dC10YWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgR2FudHRUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwdWJsaWMgY29sdW1uTGlzdDogUXVlcnlMaXN0PE5neEdhbnR0VGFibGVDb2x1bW5Db21wb25lbnQ+O1xuXG4gICAgcHVibGljIGRyYWdTdGFydExlZnQ6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGdyb3VwczogR2FudHRHcm91cEludGVybmFsW107XG5cbiAgICBASW5wdXQoKSBpdGVtczogR2FudHRJdGVtSW50ZXJuYWxbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbHVtbnMoY29sdW1uczogUXVlcnlMaXN0PE5neEdhbnR0VGFibGVDb2x1bW5Db21wb25lbnQ+KSB7XG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbHVtbi5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbHVtbi5jb2x1bW5XaWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoZGVmYXVsdENvbHVtbldpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ3JvdXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdkcmFnTGluZScsIHsgc3RhdGljOiB0cnVlIH0pIGRyYWdsaW5lRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmdhbnR0LXRhYmxlJykgZ2FudHRUYWJsZUNsYXNzID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZ2FudHQtdGFibGUtZW1wdHknKSBnYW50dFRhYmxlRW1wdHlDbGFzcyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChHQU5UVF9BQlNUUkFDVF9UT0tFTikgcHVibGljIGdhbnR0OiBHYW50dEFic3RyYWN0Q29tcG9uZW50LCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICghY2hhbmdlcy5ncm91cHMuY3VycmVudFZhbHVlPy5sZW5ndGggJiYgIWNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FudHRUYWJsZUVtcHR5Q2xhc3MgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nYW50dFRhYmxlRW1wdHlDbGFzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkcmFnRml4ZWQoY29uZmlnOiBEcmFnRml4ZWRDb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5tb3ZlZFdpZHRoIDwgY29uZmlnLm1pbldpZHRoKSB7XG4gICAgICAgICAgICBjb25maWcudGFyZ2V0LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke2NvbmZpZy5taW5XaWR0aCAtIGNvbmZpZy5vcmlnaW5XaWR0aH1weCwgMCwgMClgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhwYW5kR3JvdXAoZ3JvdXA6IEdhbnR0R3JvdXBJbnRlcm5hbCkge1xuICAgICAgICB0aGlzLmdhbnR0LmV4cGFuZEdyb3VwKGdyb3VwKTtcbiAgICB9XG5cbiAgICBleHBhbmRDaGlsZHJlbihpdGVtOiBHYW50dEl0ZW1JbnRlcm5hbCkge1xuICAgICAgICB0aGlzLmdhbnR0LmV4cGFuZENoaWxkcmVuKGl0ZW0pO1xuICAgIH1cblxuICAgIGRyYWdTdGFydGVkKGV2ZW50OiBDZGtEcmFnU3RhcnQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQuc291cmNlLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5kcmFnU3RhcnRMZWZ0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgfVxuXG4gICAgZHJhZ01vdmVkKGV2ZW50OiBDZGtEcmFnTW92ZSwgY29sdW1uPzogTmd4R2FudHRUYWJsZUNvbHVtbkNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5zb3VyY2UuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBsZWZ0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cbiAgICAgICAgbGV0IG9yaWdpbldpZHRoOiBudW1iZXI7XG4gICAgICAgIGxldCBtb3ZlZFdpZHRoOiBudW1iZXI7XG4gICAgICAgIGxldCBtaW5XaWR0aDogbnVtYmVyO1xuICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICBvcmlnaW5XaWR0aCA9IHBhcnNlSW50KGNvbHVtbi5jb2x1bW5XaWR0aCwgMTApO1xuICAgICAgICAgICAgbW92ZWRXaWR0aCA9IG9yaWdpbldpZHRoICsgKGxlZnQgLSB0aGlzLmRyYWdTdGFydExlZnQpO1xuICAgICAgICAgICAgbWluV2lkdGggPSBtaW5Db2x1bW5XaWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9yaWdpbldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgICAgICBtb3ZlZFdpZHRoID0gb3JpZ2luV2lkdGggKyAobGVmdCAtIHRoaXMuZHJhZ1N0YXJ0TGVmdCk7XG4gICAgICAgICAgICBtaW5XaWR0aCA9IG1pbkNvbHVtbldpZHRoICogdGhpcy5jb2x1bW5MaXN0Lmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHJhZ0ZpeGVkKHtcbiAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgIG9yaWdpbldpZHRoLFxuICAgICAgICAgICAgbW92ZWRXaWR0aCxcbiAgICAgICAgICAgIG1pbldpZHRoXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2hvd0F1eGlsaWFyeUxpbmUoZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbHVtbkRyYWdFbmRlZChldmVudDogQ2RrRHJhZ0VuZCwgY29sdW1uOiBOZ3hHYW50dFRhYmxlQ29sdW1uQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnNvdXJjZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjb2x1bW4uY29sdW1uV2lkdGgsIDEwKSArIChsZWZ0IC0gdGhpcy5kcmFnU3RhcnRMZWZ0KTtcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSBNYXRoLm1heCh3aWR0aCB8fCAwLCBtaW5Db2x1bW5XaWR0aCk7XG4gICAgICAgIGNvbHVtbi5jb2x1bW5XaWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoY29sdW1uV2lkdGgpO1xuICAgICAgICBpZiAodGhpcy5nYW50dC50YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5nYW50dC50YWJsZS5jb2x1bW5DaGFuZ2VzLmVtaXQoeyBjb2x1bW5zOiB0aGlzLmNvbHVtbkxpc3QgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGVBdXhpbGlhcnlMaW5lKCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHRhYmxlRHJhZ0VuZGVkKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnNvdXJjZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcbiAgICAgICAgY29uc3QgdGFibGVXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBkcmFnV2lkdGggPSBsZWZ0IC0gdGhpcy5kcmFnU3RhcnRMZWZ0O1xuICAgICAgICB0aGlzLmNvbHVtbkxpc3QuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXN0Q29sdW1uV2lkdGggPSBwYXJzZUludChjb2x1bW4uY29sdW1uV2lkdGgsIDEwKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RyaWJ1dGVXaWR0aCA9IHBhcnNlSW50KFN0cmluZyhkcmFnV2lkdGggKiAobGFzdENvbHVtbldpZHRoIC8gdGFibGVXaWR0aCkpLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IE1hdGgubWF4KGxhc3RDb2x1bW5XaWR0aCArIGRpc3RyaWJ1dGVXaWR0aCB8fCAwLCBtaW5Db2x1bW5XaWR0aCk7XG4gICAgICAgICAgICBjb2x1bW4uY29sdW1uV2lkdGggPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGNvbHVtbldpZHRoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2FudHQudGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FudHQudGFibGUuY29sdW1uQ2hhbmdlcy5lbWl0KHsgY29sdW1uczogdGhpcy5jb2x1bW5MaXN0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oaWRlQXV4aWxpYXJ5TGluZSgpO1xuICAgICAgICBldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dBdXhpbGlhcnlMaW5lKGV2ZW50OiBDZGtEcmFnTW92ZSkge1xuICAgICAgICBjb25zdCB0YWJsZVJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UmVjdCA9IGV2ZW50LnNvdXJjZS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0geyB4OiB0YXJnZXRSZWN0LmxlZnQgLSB0YWJsZVJlY3QubGVmdCwgeTogdGFyZ2V0UmVjdC50b3AgLSB0YWJsZVJlY3QudG9wIH07XG4gICAgICAgIHRoaXMuZHJhZ2xpbmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGAke2Rpc3RhbmNlLnh9cHhgO1xuICAgICAgICB0aGlzLmRyYWdsaW5lRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUF1eGlsaWFyeUxpbmUoKSB7XG4gICAgICAgIHRoaXMuZHJhZ2xpbmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ2FudHQtdGFibGUtaGVhZGVyIGdhbnR0LXRhYmxlLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ2FudHQtdGFibGUtY29sdW1uXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5MaXN0OyBsZXQgaSA9IGluZGV4XCIgW3N0eWxlLndpZHRoXT1cImNvbHVtbi5jb2x1bW5XaWR0aFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uaGVhZGVyVGVtcGxhdGVSZWY7IGVsc2UgZGVmYXVsdFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgIHt7IGNvbHVtbi5uYW1lIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImdhbnR0LXRhYmxlLWRyYWctdHJpZ2dlclwiXG4gICAgICBjZGtEcmFnXG4gICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ4XCJcbiAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5nYW50dFwiXG4gICAgICAoY2RrRHJhZ01vdmVkKT1cImRyYWdNb3ZlZCgkZXZlbnQsIGNvbHVtbilcIlxuICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudClcIlxuICAgICAgKGNka0RyYWdFbmRlZCk9XCJjb2x1bW5EcmFnRW5kZWQoJGV2ZW50LCBjb2x1bW4pXCJcbiAgICA+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ2FudHQtdGFibGUtYm9keVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWdyb3Vwcy5sZW5ndGggJiYgIWl0ZW1zLmxlbmd0aFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPGdhbnR0LWljb24gY2xhc3M9XCJlbXB0eS1pY29uXCIgaWNvbk5hbWU9XCJlbXB0eVwiPjwvZ2FudHQtaWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS10ZXh0XCI+5rKh5pyJ5pWw5o2uPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVtcHR5VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzICYmIGdyb3Vwcy5sZW5ndGggPiAwOyBlbHNlIGl0ZW1zVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnYW50dC10YWJsZS1ncm91cFwiIFtuZ0NsYXNzXT1cImdyb3VwLmNsYXNzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYW50dC10YWJsZS1ncm91cC10aXRsZVwiIFtjbGFzcy5leHBhbmRlZF09XCJncm91cC5leHBhbmRlZFwiIChjbGljayk9XCJleHBhbmRHcm91cChncm91cClcIj5cbiAgICAgICAgICA8Z2FudHQtaWNvbiBjbGFzcz1cImV4cGFuZC1pY29uXCIgW2ljb25OYW1lXT1cImdyb3VwLmV4cGFuZGVkID8gJ2FuZ2xlLWRvd24nIDogJ2FuZ2xlLXJpZ2h0J1wiPjwvZ2FudHQtaWNvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ3JvdXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZ3JvdXAub3JpZ2luLCBncm91cDogZ3JvdXAub3JpZ2luIH1cIlxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJncm91cC10aXRsZVwiPnt7IGdyb3VwLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cC5leHBhbmRlZFwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnYW50dEl0ZW1zXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBncm91cDogZ3JvdXAsIGl0ZW1zOiBncm91cC5pdGVtcywgbGV2ZWw6IDAgfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJnYW50dC10YWJsZS1kcmFnLXRyaWdnZXJcIlxuICBjZGtEcmFnXG4gIGNka0RyYWdMb2NrQXhpcz1cInhcIlxuICBjZGtEcmFnQm91bmRhcnk9XCIuZ2FudHRcIlxuICAoY2RrRHJhZ01vdmVkKT1cImRyYWdNb3ZlZCgkZXZlbnQpXCJcbiAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudClcIlxuICAoY2RrRHJhZ0VuZGVkKT1cInRhYmxlRHJhZ0VuZGVkKCRldmVudClcIlxuPjwvZGl2PlxuXG48ZGl2ICNkcmFnTGluZSBjbGFzcz1cImdhbnR0LXRhYmxlLWRyYWctYXV4aWxpYXJ5LWxpbmVcIj48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpdGVtc1RlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2FudHRJdGVtc1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW1zOiBpdGVtcywgbGV2ZWw6IDAgfVwiPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2dhbnR0SXRlbXMgbGV0LWdyb3VwPVwiZ3JvdXBcIiBsZXQtaXRlbXM9XCJpdGVtc1wiIGxldC1sZXZlbD1cImxldmVsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImdhbnR0LXRhYmxlLWl0ZW0gZ2FudHQtdGFibGUtcm93XCJcbiAgICAgIFtjbGFzcy5nYW50dC10YWJsZS1pdGVtLWZpcnN0LWxldmVsLWdyb3VwXT1cImxldmVsID09PSAwICYmIChpdGVtLnR5cGUgfCBpc0dhbnR0UmFuZ2VJdGVtKVwiXG4gICAgICBbY2xhc3MuZ2FudHQtdGFibGUtaXRlbS13aXRoLWdyb3VwXT1cImdyb3VwXCJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2FudHQuc3R5bGVzLmxpbmVIZWlnaHRcIlxuICAgICAgW3N0eWxlLmxpbmVIZWlnaHQucHhdPVwiZ2FudHQuc3R5bGVzLmxpbmVIZWlnaHRcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJnYW50dC10YWJsZS1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbkxpc3Q7IGxldCBmaXJzdCA9IGZpcnN0XCIgW3N0eWxlLndpZHRoXT1cImNvbHVtbi5jb2x1bW5XaWR0aFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlyc3RcIiBjbGFzcz1cImdhbnR0LWV4cGFuZC1pY29uXCIgW3N0eWxlLm1hcmdpbkxlZnQucHhdPVwibGV2ZWwgKiAyMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsZXZlbCA8IGdhbnR0Lm1heExldmVsIC0gMSAmJiBpdGVtLmV4cGFuZGFibGVcIj5cbiAgICAgICAgICAgIDxnYW50dC1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0ubG9hZGluZ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWljb25cIlxuICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaXRlbS5leHBhbmRlZCA/ICdhbmdsZS1kb3duJyA6ICdhbmdsZS1yaWdodCdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kQ2hpbGRyZW4oaXRlbSlcIlxuICAgICAgICAgICAgPjwvZ2FudHQtaWNvbj5cbiAgICAgICAgICAgIDxnYW50dC1pY29uICpuZ0lmPVwiaXRlbS5sb2FkaW5nXCIgW2ljb25OYW1lXT1cIidsb2FkaW5nJ1wiPjwvZ2FudHQtaWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYW50dC10YWJsZS1jb2x1bW4tY29udGVudFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbS5vcmlnaW4sIGl0ZW06IGl0ZW0ub3JpZ2luIH1cIlxuICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuICYmIGl0ZW0uZXhwYW5kZWRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2FudHRJdGVtc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtczogaXRlbS5jaGlsZHJlbiwgbGV2ZWw6IGxldmVsICsgMSwgZ3JvdXA6IGdyb3VwIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -32,7 +32,6 @@ export class GanttDomService {
32
32
  }
33
33
  syncScroll(event) {
34
34
  const target = event.currentTarget;
35
- this.calendarHeader.scrollLeft = this.mainContainer.scrollLeft;
36
35
  this.calendarOverlay.scrollLeft = this.mainContainer.scrollLeft;
37
36
  this.sideContainer.scrollTop = target.scrollTop;
38
37
  this.mainContainer.scrollTop = target.scrollTop;
@@ -58,8 +57,7 @@ export class GanttDomService {
58
57
  this.container = this.root.getElementsByClassName('gantt-container')[0];
59
58
  this.sideContainer = this.root.getElementsByClassName('gantt-side-container')[0];
60
59
  this.mainContainer = this.root.getElementsByClassName('gantt-main-container')[0];
61
- this.calendarHeader = this.root.getElementsByClassName('gantt-calendar-header')[0];
62
- this.calendarOverlay = this.root.getElementsByClassName('gantt-calendar-grid')[0];
60
+ this.calendarOverlay = this.root.getElementsByClassName('gantt-calendar-overlay')[0];
63
61
  this.monitorScrollChange();
64
62
  this.disableBrowserWheelEvent();
65
63
  }
@@ -89,7 +87,6 @@ export class GanttDomService {
89
87
  if (isNumber(left)) {
90
88
  const scrollLeft = left - this.mainContainer.clientWidth / 2;
91
89
  this.mainContainer.scrollLeft = scrollLeft > scrollThreshold ? scrollLeft : 0;
92
- this.calendarHeader.scrollLeft = this.mainContainer.scrollLeft;
93
90
  this.calendarOverlay.scrollLeft = this.mainContainer.scrollLeft;
94
91
  }
95
92
  }
@@ -103,4 +100,4 @@ GanttDomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
103
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttDomService, decorators: [{
104
101
  type: Injectable
105
102
  }], ctorParameters: function () { return []; } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtZG9tLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvZ2FudHQtZG9tLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQVEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUzQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFFM0IsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixxREFBSSxDQUFBO0lBQ0oscURBQUksQ0FBQTtJQUNKLHVEQUFLLENBQUE7QUFDVCxDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFRRCxNQUFNLE9BQU8sZUFBZTtJQW1CeEI7UUFGUSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFNUIsQ0FBQztJQUVSLG1CQUFtQjtRQUN2QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFB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SSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDbkU7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs0R0F0SFEsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHBhaXJ3aXNlLCBtYXAsIGF1ZGl0VGltZSwgdGFrZVVudGlsLCB0YWtlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4vdXRpbHMvaGVscGVycyc7XG5cbmNvbnN0IHNjcm9sbFRocmVzaG9sZCA9IDUwO1xuXG5leHBvcnQgZW51bSBTY3JvbGxEaXJlY3Rpb24ge1xuICAgIE5PTkUsXG4gICAgTEVGVCxcbiAgICBSSUdIVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEV2ZW50IHtcbiAgICB0YXJnZXQ6IEVsZW1lbnQ7XG4gICAgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb247XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHYW50dERvbVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByb290OiBFbGVtZW50O1xuXG4gICAgcHVibGljIHNpZGU6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgY29udGFpbmVyOiBFbGVtZW50O1xuXG4gICAgcHVibGljIHNpZGVDb250YWluZXI6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgbWFpbkNvbnRhaW5lcjogRWxlbWVudDtcblxuICAgIHB1YmxpYyBjYWxlbmRhckhlYWRlcjogRWxlbWVudDtcblxuICAgIHB1YmxpYyBjYWxlbmRhck92ZXJsYXk6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgbGlua3NPdmVybGF5OiBFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgcHJpdmF0ZSBtb25pdG9yU2Nyb2xsQ2hhbmdlKCkge1xuICAgICAgICBtZXJnZShmcm9tRXZlbnQodGhpcy5tYWluQ29udGFpbmVyLCAnc2Nyb2xsJyksIGZyb21FdmVudCh0aGlzLnNpZGVDb250YWluZXIsICdzY3JvbGwnKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3luY1Njcm9sbChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQodGhpcy5tYWluQ29udGFpbmVyLCAnc2Nyb2xsJylcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCgpLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBpZiAodGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgIHRoaXMuc2lkZS5jbGFzc0xpc3QuYWRkKCdnYW50dC1zaWRlLWhhcy1zaGFkb3cnKTtcbiAgICAgICAgICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnNpZGUuY2xhc3NMaXN0LnJlbW92ZSgnZ2FudHQtc2lkZS1oYXMtc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jU2Nyb2xsKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICB0aGlzLmNhbGVuZGFySGVhZGVyLnNjcm9sbExlZnQgPSB0aGlzLm1haW5Db250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICAgICAgdGhpcy5jYWxlbmRhck92ZXJsYXkuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuXG4gICAgICAgIHRoaXMuc2lkZUNvbnRhaW5lci5zY3JvbGxUb3AgPSB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICB0aGlzLm1haW5Db250YWluZXIuc2Nyb2xsVG9wID0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVCcm93c2VyV2hlZWxFdmVudCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5tYWluQ29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBmcm9tRXZlbnQoY29udGFpbmVyLCAnd2hlZWwnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBldmVudC5kZWx0YVg7XG4gICAgICAgICAgICAgICAgaWYgKCFkZWx0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKGNvbnRhaW5lci5zY3JvbGxMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdpZHRoID09PSBjb250YWluZXIuc2Nyb2xsV2lkdGggJiYgZGVsdGEgPiAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVyLnNjcm9sbExlZnQgPT09IDAgJiYgZGVsdGEgPCAwKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUocm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgdGhpcy5yb290ID0gcm9vdC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnNpZGUgPSB0aGlzLnJvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ2FudHQtc2lkZScpWzBdO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMucm9vdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1jb250YWluZXInKVswXTtcbiAgICAgICAgdGhpcy5zaWRlQ29udGFpbmVyID0gdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LXNpZGUtY29udGFpbmVyJylbMF07XG4gICAgICAgIHRoaXMubWFpbkNvbnRhaW5lciA9IHRoaXMucm9vdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1tYWluLWNvbnRhaW5lcicpWzBdO1xuICAgICAgICB0aGlzLmNhbGVuZGFySGVhZGVyID0gdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LWNhbGVuZGFyLWhlYWRlcicpWzBdO1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3ZlcmxheSA9IHRoaXMucm9vdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1jYWxlbmRhci1ncmlkJylbMF07XG4gICAgICAgIHRoaXMubW9uaXRvclNjcm9sbENoYW5nZSgpO1xuICAgICAgICB0aGlzLmRpc2FibGVCcm93c2VyV2hlZWxFdmVudCgpO1xuICAgIH1cblxuICAgIGdldFZpZXdlclNjcm9sbCgpIHtcbiAgICAgICAgcmV0dXJuIGZyb21FdmVudDxFdmVudD4odGhpcy5tYWluQ29udGFpbmVyLCAnc2Nyb2xsJykucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLm1haW5Db250YWluZXIuc2Nyb2xsTGVmdCksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgbWFwKChbcHJldmlvdXMsIGN1cnJlbnRdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnQ6IFNjcm9sbEV2ZW50ID0ge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHRoaXMubWFpbkNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24uTk9ORVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgLSBwcmV2aW91cyA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0IDwgc2Nyb2xsVGhyZXNob2xkICYmIHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuZGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLkxFRlQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgLSBwcmV2aW91cyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxXaWR0aCAtIHRoaXMubWFpbkNvbnRhaW5lci5jbGllbnRXaWR0aCAtIHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0IDwgc2Nyb2xsVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uUklHSFQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRSZXNpemUoKSB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZShhdWRpdFRpbWUoMTUwKSk7XG4gICAgfVxuXG4gICAgc2Nyb2xsTWFpbkNvbnRhaW5lcihsZWZ0OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKGxlZnQpKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gbGVmdCAtIHRoaXMubWFpbkNvbnRhaW5lci5jbGllbnRXaWR0aCAvIDI7XG4gICAgICAgICAgICB0aGlzLm1haW5Db250YWluZXIuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQgPiBzY3JvbGxUaHJlc2hvbGQgPyBzY3JvbGxMZWZ0IDogMDtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJIZWFkZXIuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck92ZXJsYXkuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtZG9tLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvZ2FudHQtZG9tLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQVEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUzQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFFM0IsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixxREFBSSxDQUFBO0lBQ0oscURBQUksQ0FBQTtJQUNKLHVEQUFLLENBQUE7QUFDVCxDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFRRCxNQUFNLE9BQU8sZUFBZTtJQWlCeEI7UUFGUSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFNUIsQ0FBQztJQUVSLG1CQUFtQjtRQUN2QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFB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bkU7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs0R0FqSFEsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHBhaXJ3aXNlLCBtYXAsIGF1ZGl0VGltZSwgdGFrZVVudGlsLCB0YWtlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4vdXRpbHMvaGVscGVycyc7XG5cbmNvbnN0IHNjcm9sbFRocmVzaG9sZCA9IDUwO1xuXG5leHBvcnQgZW51bSBTY3JvbGxEaXJlY3Rpb24ge1xuICAgIE5PTkUsXG4gICAgTEVGVCxcbiAgICBSSUdIVFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEV2ZW50IHtcbiAgICB0YXJnZXQ6IEVsZW1lbnQ7XG4gICAgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb247XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHYW50dERvbVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByb290OiBFbGVtZW50O1xuXG4gICAgcHVibGljIHNpZGU6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgY29udGFpbmVyOiBFbGVtZW50O1xuXG4gICAgcHVibGljIHNpZGVDb250YWluZXI6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgbWFpbkNvbnRhaW5lcjogRWxlbWVudDtcblxuICAgIHB1YmxpYyBjYWxlbmRhck92ZXJsYXk6IEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgbGlua3NPdmVybGF5OiBFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgcHJpdmF0ZSBtb25pdG9yU2Nyb2xsQ2hhbmdlKCkge1xuICAgICAgICBtZXJnZShmcm9tRXZlbnQodGhpcy5tYWluQ29udGFpbmVyLCAnc2Nyb2xsJyksIGZyb21FdmVudCh0aGlzLnNpZGVDb250YWluZXIsICdzY3JvbGwnKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3luY1Njcm9sbChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQodGhpcy5tYWluQ29udGFpbmVyLCAnc2Nyb2xsJylcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCgpLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBpZiAodGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgIHRoaXMuc2lkZS5jbGFzc0xpc3QuYWRkKCdnYW50dC1zaWRlLWhhcy1zaGFkb3cnKTtcbiAgICAgICAgICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnNpZGUuY2xhc3NMaXN0LnJlbW92ZSgnZ2FudHQtc2lkZS1oYXMtc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jU2Nyb2xsKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3ZlcmxheS5zY3JvbGxMZWZ0ID0gdGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQ7XG5cbiAgICAgICAgdGhpcy5zaWRlQ29udGFpbmVyLnNjcm9sbFRvcCA9IHRhcmdldC5zY3JvbGxUb3A7XG4gICAgICAgIHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxUb3AgPSB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzYWJsZUJyb3dzZXJXaGVlbEV2ZW50KCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLm1haW5Db250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGZyb21FdmVudChjb250YWluZXIsICd3aGVlbCcpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IGV2ZW50LmRlbHRhWDtcbiAgICAgICAgICAgICAgICBpZiAoIWRlbHRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAoY29udGFpbmVyLnNjcm9sbExlZnQgKyBjb250YWluZXIub2Zmc2V0V2lkdGggPT09IGNvbnRhaW5lci5zY3JvbGxXaWR0aCAmJiBkZWx0YSA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAgIChjb250YWluZXIuc2Nyb2xsTGVmdCA9PT0gMCAmJiBkZWx0YSA8IDApXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZShyb290OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLnJvb3QgPSByb290Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuc2lkZSA9IHRoaXMucm9vdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1zaWRlJylbMF07XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LWNvbnRhaW5lcicpWzBdO1xuICAgICAgICB0aGlzLnNpZGVDb250YWluZXIgPSB0aGlzLnJvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ2FudHQtc2lkZS1jb250YWluZXInKVswXTtcbiAgICAgICAgdGhpcy5tYWluQ29udGFpbmVyID0gdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LW1haW4tY29udGFpbmVyJylbMF07XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPdmVybGF5ID0gdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LWNhbGVuZGFyLW92ZXJsYXknKVswXTtcbiAgICAgICAgdGhpcy5tb25pdG9yU2Nyb2xsQ2hhbmdlKCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZUJyb3dzZXJXaGVlbEV2ZW50KCk7XG4gICAgfVxuXG4gICAgZ2V0Vmlld2VyU2Nyb2xsKCkge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50PEV2ZW50Pih0aGlzLm1haW5Db250YWluZXIsICdzY3JvbGwnKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0KSxcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICBtYXAoKFtwcmV2aW91cywgY3VycmVudF0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldmVudDogU2Nyb2xsRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogdGhpcy5tYWluQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbi5OT05FXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAtIHByZXZpb3VzIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQgPCBzY3JvbGxUaHJlc2hvbGQgJiYgdGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uTEVGVDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAtIHByZXZpb3VzID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbFdpZHRoIC0gdGhpcy5tYWluQ29udGFpbmVyLmNsaWVudFdpZHRoIC0gdGhpcy5tYWluQ29udGFpbmVyLnNjcm9sbExlZnQgPCBzY3JvbGxUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmRpcmVjdGlvbiA9IFNjcm9sbERpcmVjdGlvbi5SSUdIVDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFJlc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKGF1ZGl0VGltZSgxNTApKTtcbiAgICB9XG5cbiAgICBzY3JvbGxNYWluQ29udGFpbmVyKGxlZnQ6IG51bWJlcikge1xuICAgICAgICBpZiAoaXNOdW1iZXIobGVmdCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBsZWZ0IC0gdGhpcy5tYWluQ29udGFpbmVyLmNsaWVudFdpZHRoIC8gMjtcbiAgICAgICAgICAgIHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdCA+IHNjcm9sbFRocmVzaG9sZCA/IHNjcm9sbExlZnQgOiAwO1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck92ZXJsYXkuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -25,11 +25,10 @@ export class GanttItemUpper {
25
25
  }
26
26
  }
27
27
  setPositions() {
28
- var _a, _b, _c;
29
28
  const itemElement = this.elementRef.nativeElement;
30
- itemElement.style.left = ((_a = this.item.refs) === null || _a === void 0 ? void 0 : _a.x) + 'px';
31
- itemElement.style.top = ((_b = this.item.refs) === null || _b === void 0 ? void 0 : _b.y) + 'px';
32
- itemElement.style.width = ((_c = this.item.refs) === null || _c === void 0 ? void 0 : _c.width) + 'px';
29
+ itemElement.style.left = this.item.refs.x + 'px';
30
+ itemElement.style.top = this.item.refs.y + 'px';
31
+ itemElement.style.width = this.item.refs.width + 'px';
33
32
  if (this.item.type === GanttItemType.bar) {
34
33
  itemElement.style.height = this.ganttUpper.styles.barHeight + 'px';
35
34
  }
@@ -56,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
56
55
  }], item: [{
57
56
  type: Input
58
57
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtaXRlbS11cHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9nYW50dC1pdGVtLXVwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFHOUQsTUFBTSxPQUFnQixjQUFjO0lBU2hDLFlBQXNCLFVBQW1DLEVBQXVDLFVBQXNCO1FBQWhHLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQXVDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKL0csZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRXFGLENBQUM7SUFFMUgsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFTyxZQUFZOztRQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNsRCxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLDBDQUFFLENBQUMsSUFBRyxJQUFJLENBQUM7UUFDbEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSwwQ0FBRSxDQUFDLElBQUcsSUFBSSxDQUFDO1FBQ2pELFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksMENBQUUsS0FBSyxJQUFHLElBQUksQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN0RTthQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLEtBQUssRUFBRTtZQUMvQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ2pEO2FBQU07U0FDTjtJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OzJHQXhDaUIsY0FBYyw0Q0FTbUMsaUJBQWlCOytGQVRsRSxjQUFjOzJGQUFkLGNBQWM7a0JBRG5DLFNBQVM7OzBCQVVzRCxNQUFNOzJCQUFDLGlCQUFpQjs0Q0FSM0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgRWxlbWVudFJlZiwgSW5qZWN0LCBUZW1wbGF0ZVJlZiwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYW50dEl0ZW1JbnRlcm5hbCwgR2FudHRJdGVtVHlwZSB9IGZyb20gJy4vY2xhc3MnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcmFuZ2VIZWlnaHQgfSBmcm9tICcuL2dhbnR0LnN0eWxlcyc7XG5pbXBvcnQgeyBHQU5UVF9VUFBFUl9UT0tFTiwgR2FudHRVcHBlciB9IGZyb20gJy4vZ2FudHQtdXBwZXInO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHYW50dEl0ZW1VcHBlciB7XG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBpdGVtOiBHYW50dEl0ZW1JbnRlcm5hbDtcblxuICAgIHB1YmxpYyBmaXJzdENoYW5nZSA9IHRydWU7XG5cbiAgICBwdWJsaWMgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgQEluamVjdChHQU5UVF9VUFBFUl9UT0tFTikgcHJvdGVjdGVkIGdhbnR0VXBwZXI6IEdhbnR0VXBwZXIpIHt9XG5cbiAgICBvbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pdGVtLnJlZnMkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQb3NpdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1FbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLmxlZnQgPSB0aGlzLml0ZW0ucmVmcz8ueCArICdweCc7XG4gICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLnRvcCA9IHRoaXMuaXRlbS5yZWZzPy55ICsgJ3B4JztcbiAgICAgICAgaXRlbUVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLml0ZW0ucmVmcz8ud2lkdGggKyAncHgnO1xuICAgICAgICBpZiAodGhpcy5pdGVtLnR5cGUgPT09IEdhbnR0SXRlbVR5cGUuYmFyKSB7XG4gICAgICAgICAgICBpdGVtRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmJhckhlaWdodCArICdweCc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtLnR5cGUgPT09IEdhbnR0SXRlbVR5cGUucmFuZ2UpIHtcbiAgICAgICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLmhlaWdodCA9IHJhbmdlSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtaXRlbS11cHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9nYW50dC1pdGVtLXVwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFHOUQsTUFBTSxPQUFnQixjQUFjO0lBU2hDLFlBQXNCLFVBQW1DLEVBQXVDLFVBQXNCO1FBQWhHLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQXVDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKL0csZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRXFGLENBQUM7SUFFMUgsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFTyxZQUFZO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ2xELFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakQsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNoRCxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3RFO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQy9DLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDakQ7YUFBTTtTQUNOO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7MkdBeENpQixjQUFjLDRDQVNtQyxpQkFBaUI7K0ZBVGxFLGNBQWM7MkZBQWQsY0FBYztrQkFEbkMsU0FBUzs7MEJBVXNELE1BQU07MkJBQUMsaUJBQWlCOzRDQVIzRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBFbGVtZW50UmVmLCBJbmplY3QsIFRlbXBsYXRlUmVmLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdhbnR0SXRlbUludGVybmFsLCBHYW50dEl0ZW1UeXBlIH0gZnJvbSAnLi9jbGFzcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByYW5nZUhlaWdodCB9IGZyb20gJy4vZ2FudHQuc3R5bGVzJztcbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi9nYW50dC11cHBlcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdhbnR0SXRlbVVwcGVyIHtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIGl0ZW06IEdhbnR0SXRlbUludGVybmFsO1xuXG4gICAgcHVibGljIGZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAgIHB1YmxpYyB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwcm90ZWN0ZWQgZ2FudHRVcHBlcjogR2FudHRVcHBlcikge31cblxuICAgIG9uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maXJzdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLml0ZW0ucmVmcyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBvc2l0aW9ucygpIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaXRlbUVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMuaXRlbS5yZWZzLnggKyAncHgnO1xuICAgICAgICBpdGVtRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLml0ZW0ucmVmcy55ICsgJ3B4JztcbiAgICAgICAgaXRlbUVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLml0ZW0ucmVmcy53aWR0aCArICdweCc7XG4gICAgICAgIGlmICh0aGlzLml0ZW0udHlwZSA9PT0gR2FudHRJdGVtVHlwZS5iYXIpIHtcbiAgICAgICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuZ2FudHRVcHBlci5zdHlsZXMuYmFySGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLml0ZW0udHlwZSA9PT0gR2FudHRJdGVtVHlwZS5yYW5nZSkge1xuICAgICAgICAgICAgaXRlbUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gcmFuZ2VIZWlnaHQgKyAncHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
@@ -61,7 +61,7 @@ export class GanttPrintService {
61
61
  const ganttClass = root.className;
62
62
  const cloneGanttDom = cloneDocument.querySelector(`.${ganttClass.replace(/\s+/g, '.')}`);
63
63
  const cloneGanttContainerDom = cloneDocument.querySelector('.gantt-container');
64
- const cloneCalendarOverlay = cloneDocument.querySelector('.gantt-calendar-grid-main');
64
+ const cloneCalendarOverlay = cloneDocument.querySelector('.gantt-calendar-overlay-main');
65
65
  const cloneLinksOverlay = cloneDocument.querySelector('.gantt-links-overlay-main');
66
66
  // change targetDom width
67
67
  cloneGanttDom.style.width = `${printWidth}px`;
@@ -91,4 +91,4 @@ GanttPrintService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: GanttPrintService, decorators: [{
92
92
  type: Injectable
93
93
  }], ctorParameters: function () { return []; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtcHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9nYW50dC1wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDOztBQUd0QyxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLGdCQUFlLENBQUM7SUFFUixlQUFlLENBQUMsVUFBbUI7UUFDdkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBaUM7UUFDM0QsTUFBTSxtQkFBbUIsR0FBRztZQUN4QixNQUFNO1lBQ04sT0FBTztZQUNQLFdBQVc7WUFDWCxRQUFRO1lBQ1IsTUFBTTtZQUNOLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLGNBQWM7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2IsT0FBTztTQUNWO1FBQ0QsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsS0FBSyxNQUFNLGlCQUFpQixJQUFJLG1CQUFtQixFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RDtRQUNELEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQXNCLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBNkI7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztJQUNwRyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsVUFBVSxFQUFFLGtCQUEyQjtRQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBbUIsQ0FBQztRQUV0QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBNEIsQ0FBQztRQUN4RCxrQkFBa0I7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVwQyxtQkFBbUI7UUFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFFaEcsV0FBVyxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU8sRUFBRSxLQUFLO1lBQ2QsVUFBVSxFQUFFLElBQUk7WUFDaEIsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUUsVUFBVTtZQUNqQixNQUFNLEVBQUUsV0FBVztZQUNuQixjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDeEIsSUFBSSxrQkFBa0IsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUN0RSxPQUFPLElBQUksQ0FBQztpQkFDZjtnQkFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDhCQUE4QixDQUFDLEVBQUU7b0JBQzVELE9BQU8sSUFBSSxDQUFDO2lCQUNmO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbEMsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQWdCLENBQUM7Z0JBQ3hHLE1BQU0sc0JBQXNCLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBZ0IsQ0FBQztnQkFDOUYsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFnQixDQUFDO2dCQUNyRyxNQUFNLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQWdCLENBQUM7Z0JBRWxHLHlCQUF5QjtnQkFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxVQUFVLElBQUksQ0FBQztnQkFDOUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxXQUFXLElBQUksQ0FBQztnQkFDaEQsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUN2QyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztnQkFDdEQsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzlELG9CQUFvQixDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUseUJBQXlCLENBQUMsQ0FBQztnQkFFdEUsSUFBSSxpQkFBaUIsRUFBRTtvQkFDbkIsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBQzNELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsV0FBVyxXQUFXLElBQUksQ0FBQyxDQUFDO2lCQUN2RTtnQkFFRCwwQkFBMEI7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEMsQ0FBQztTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUF5QixFQUFFLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs4R0FsR1EsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHYW50dFByaW50U2VydmljZSB7XG4gICAgcHJpdmF0ZSByb290OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgbWFpbkNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwcml2YXRlIHNldElubGluZVN0eWxlcyh0YXJnZXRFbGVtOiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHN2Z0VsZW1lbnRzID0gQXJyYXkuZnJvbSh0YXJnZXRFbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzdmcnKSk7XG4gICAgICAgIGZvciAoY29uc3Qgc3ZnRWxlbWVudCBvZiBzdmdFbGVtZW50cykge1xuICAgICAgICAgICAgdGhpcy5yZWN1cnNFbGVtZW50Q2hpbGRyZW4oc3ZnRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlY3Vyc0VsZW1lbnRDaGlsZHJlbihub2RlOiBTVkdTVkdFbGVtZW50IHwgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtUHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICdmaWxsJyxcbiAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICdzdHJva2UnLFxuICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICAgICAgJ3RleHQtYW5jaG9yJyxcbiAgICAgICAgICAgICdzdHJva2UtZGFzaGFycmF5JyxcbiAgICAgICAgICAgICdzaGFwZS1yZW5kZXJpbmcnLFxuICAgICAgICAgICAgJ3N0cm9rZS13aWR0aCdcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFub2RlLnN0eWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICAgICAgZm9yIChjb25zdCB0cmFuc2Zvcm1Qcm9wZXJ0eSBvZiB0cmFuc2Zvcm1Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBub2RlLnN0eWxlW3RyYW5zZm9ybVByb3BlcnR5XSA9IHN0eWxlc1t0cmFuc2Zvcm1Qcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKG5vZGUuY2hpbGROb2RlcykpIHtcbiAgICAgICAgICAgIHRoaXMucmVjdXJzRWxlbWVudENoaWxkcmVuKGNoaWxkIGFzIFNWR1NWR0VsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXIocm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgdGhpcy5yb290ID0gcm9vdC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm1haW5Db250YWluZXIgPSB0aGlzLnJvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ2FudHQtbWFpbi1jb250YWluZXInKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcmludChuYW1lOiBzdHJpbmcgPSAnZG93bmxvYWQnLCBpZ25vcmVFbGVtZW50Q2xhc3M/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBtYWluQ29udGFpbmVyID0gdGhpcy5tYWluQ29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAvLyBzZXQgcHJpbnQgd2lkdGhcbiAgICAgICAgY29uc3QgcHJpbnRXaWR0aCA9IHJvb3Qub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgLy8gc2V0IHByaW50IGhlaWdodFxuICAgICAgICBjb25zdCBwcmludEhlaWdodCA9IHJvb3Qub2Zmc2V0SGVpZ2h0IC0gbWFpbkNvbnRhaW5lci5vZmZzZXRIZWlnaHQgKyBtYWluQ29udGFpbmVyLnNjcm9sbEhlaWdodDtcblxuICAgICAgICBodG1sMmNhbnZhcyhyb290LCB7XG4gICAgICAgICAgICBsb2dnaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93VGFpbnQ6IHRydWUsXG4gICAgICAgICAgICB1c2VDT1JTOiB0cnVlLFxuICAgICAgICAgICAgd2lkdGg6IHByaW50V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHByaW50SGVpZ2h0LFxuICAgICAgICAgICAgaWdub3JlRWxlbWVudHM6IChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlnbm9yZUVsZW1lbnRDbGFzcyAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhpZ25vcmVFbGVtZW50Q2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2dhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXknKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBvbmNsb25lOiAoY2xvbmVEb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnYW50dENsYXNzID0gcm9vdC5jbGFzc05hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVHYW50dERvbSA9IGNsb25lRG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Z2FudHRDbGFzcy5yZXBsYWNlKC9cXHMrL2csICcuJyl9YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVHYW50dENvbnRhaW5lckRvbSA9IGNsb25lRG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdhbnR0LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lQ2FsZW5kYXJPdmVybGF5ID0gY2xvbmVEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2FudHQtY2FsZW5kYXItZ3JpZC1tYWluJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVMaW5rc092ZXJsYXkgPSBjbG9uZURvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nYW50dC1saW5rcy1vdmVybGF5LW1haW4nKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0YXJnZXREb20gd2lkdGhcbiAgICAgICAgICAgICAgICBjbG9uZUdhbnR0RG9tLnN0eWxlLndpZHRoID0gYCR7cHJpbnRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dERvbS5zdHlsZS5oZWlnaHQgPSBgJHtwcmludEhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dERvbS5zdHlsZS5vdmVyZmxvdyA9IGB1bnNldGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dENvbnRhaW5lckRvbS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZic7XG4gICAgICAgICAgICAgICAgY2xvbmVDYWxlbmRhck92ZXJsYXkuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHtwcmludEhlaWdodH1gKTtcbiAgICAgICAgICAgICAgICBjbG9uZUNhbGVuZGFyT3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYGJhY2tncm91bmQ6IHRyYW5zcGFyZW50YCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2xvbmVMaW5rc092ZXJsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVMaW5rc092ZXJsYXkuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHtwcmludEhlaWdodH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVMaW5rc092ZXJsYXkuc2V0QXR0cmlidXRlKCdzdHlsZScsIGBoZWlnaHQ6ICR7cHJpbnRIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBzZXRJbmxpbmVTdHlsZXMgZm9yIHN2Z1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5saW5lU3R5bGVzKGNsb25lR2FudHREb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgY29uc3QgZGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpO1xuICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGAke25hbWV9LnBuZ2A7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBkYXRhVXJsO1xuICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtcHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9nYW50dC1wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDOztBQUd0QyxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLGdCQUFlLENBQUM7SUFFUixlQUFlLENBQUMsVUFBbUI7UUFDdkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBaUM7UUFDM0QsTUFBTSxtQkFBbUIsR0FBRztZQUN4QixNQUFNO1lBQ04sT0FBTztZQUNQLFdBQVc7WUFDWCxRQUFRO1lBQ1IsTUFBTTtZQUNOLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLGNBQWM7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2IsT0FBTztTQUNWO1FBQ0QsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsS0FBSyxNQUFNLGlCQUFpQixJQUFJLG1CQUFtQixFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RDtRQUNELEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQyxNQUF5QixFQUFFLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs4R0FsR1EsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHYW50dFByaW50U2VydmljZSB7XG4gICAgcHJpdmF0ZSByb290OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgbWFpbkNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwcml2YXRlIHNldElubGluZVN0eWxlcyh0YXJnZXRFbGVtOiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHN2Z0VsZW1lbnRzID0gQXJyYXkuZnJvbSh0YXJnZXRFbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzdmcnKSk7XG4gICAgICAgIGZvciAoY29uc3Qgc3ZnRWxlbWVudCBvZiBzdmdFbGVtZW50cykge1xuICAgICAgICAgICAgdGhpcy5yZWN1cnNFbGVtZW50Q2hpbGRyZW4oc3ZnRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlY3Vyc0VsZW1lbnRDaGlsZHJlbihub2RlOiBTVkdTVkdFbGVtZW50IHwgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtUHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICdmaWxsJyxcbiAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICdzdHJva2UnLFxuICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICAgICAgJ3RleHQtYW5jaG9yJyxcbiAgICAgICAgICAgICdzdHJva2UtZGFzaGFycmF5JyxcbiAgICAgICAgICAgICdzaGFwZS1yZW5kZXJpbmcnLFxuICAgICAgICAgICAgJ3N0cm9rZS13aWR0aCdcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFub2RlLnN0eWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICAgICAgZm9yIChjb25zdCB0cmFuc2Zvcm1Qcm9wZXJ0eSBvZiB0cmFuc2Zvcm1Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBub2RlLnN0eWxlW3RyYW5zZm9ybVByb3BlcnR5XSA9IHN0eWxlc1t0cmFuc2Zvcm1Qcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKG5vZGUuY2hpbGROb2RlcykpIHtcbiAgICAgICAgICAgIHRoaXMucmVjdXJzRWxlbWVudENoaWxkcmVuKGNoaWxkIGFzIFNWR1NWR0VsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXIocm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgdGhpcy5yb290ID0gcm9vdC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm1haW5Db250YWluZXIgPSB0aGlzLnJvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ2FudHQtbWFpbi1jb250YWluZXInKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcmludChuYW1lOiBzdHJpbmcgPSAnZG93bmxvYWQnLCBpZ25vcmVFbGVtZW50Q2xhc3M/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBtYWluQ29udGFpbmVyID0gdGhpcy5tYWluQ29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAvLyBzZXQgcHJpbnQgd2lkdGhcbiAgICAgICAgY29uc3QgcHJpbnRXaWR0aCA9IHJvb3Qub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgLy8gc2V0IHByaW50IGhlaWdodFxuICAgICAgICBjb25zdCBwcmludEhlaWdodCA9IHJvb3Qub2Zmc2V0SGVpZ2h0IC0gbWFpbkNvbnRhaW5lci5vZmZzZXRIZWlnaHQgKyBtYWluQ29udGFpbmVyLnNjcm9sbEhlaWdodDtcblxuICAgICAgICBodG1sMmNhbnZhcyhyb290LCB7XG4gICAgICAgICAgICBsb2dnaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93VGFpbnQ6IHRydWUsXG4gICAgICAgICAgICB1c2VDT1JTOiB0cnVlLFxuICAgICAgICAgICAgd2lkdGg6IHByaW50V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHByaW50SGVpZ2h0LFxuICAgICAgICAgICAgaWdub3JlRWxlbWVudHM6IChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlnbm9yZUVsZW1lbnRDbGFzcyAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhpZ25vcmVFbGVtZW50Q2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2dhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXknKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBvbmNsb25lOiAoY2xvbmVEb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnYW50dENsYXNzID0gcm9vdC5jbGFzc05hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVHYW50dERvbSA9IGNsb25lRG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Z2FudHRDbGFzcy5yZXBsYWNlKC9cXHMrL2csICcuJyl9YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVHYW50dENvbnRhaW5lckRvbSA9IGNsb25lRG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdhbnR0LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lQ2FsZW5kYXJPdmVybGF5ID0gY2xvbmVEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2FudHQtY2FsZW5kYXItb3ZlcmxheS1tYWluJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVMaW5rc092ZXJsYXkgPSBjbG9uZURvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5nYW50dC1saW5rcy1vdmVybGF5LW1haW4nKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0YXJnZXREb20gd2lkdGhcbiAgICAgICAgICAgICAgICBjbG9uZUdhbnR0RG9tLnN0eWxlLndpZHRoID0gYCR7cHJpbnRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dERvbS5zdHlsZS5oZWlnaHQgPSBgJHtwcmludEhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dERvbS5zdHlsZS5vdmVyZmxvdyA9IGB1bnNldGA7XG4gICAgICAgICAgICAgICAgY2xvbmVHYW50dENvbnRhaW5lckRvbS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZic7XG4gICAgICAgICAgICAgICAgY2xvbmVDYWxlbmRhck92ZXJsYXkuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHtwcmludEhlaWdodH1gKTtcbiAgICAgICAgICAgICAgICBjbG9uZUNhbGVuZGFyT3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYGJhY2tncm91bmQ6IHRyYW5zcGFyZW50YCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2xvbmVMaW5rc092ZXJsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVMaW5rc092ZXJsYXkuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHtwcmludEhlaWdodH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVMaW5rc092ZXJsYXkuc2V0QXR0cmlidXRlKCdzdHlsZScsIGBoZWlnaHQ6ICR7cHJpbnRIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBzZXRJbmxpbmVTdHlsZXMgZm9yIHN2Z1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5saW5lU3R5bGVzKGNsb25lR2FudHREb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgY29uc3QgZGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpO1xuICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGAke25hbWV9LnBuZ2A7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBkYXRhVXJsO1xuICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=