@worktile/gantt 15.0.0 → 15.1.0-next.1
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/event.d.ts +13 -0
- package/class/item.d.ts +7 -1
- package/components/bar/bar-drag.d.ts +10 -0
- package/components/bar/bar.component.d.ts +2 -1
- package/components/bar/bar.component.scss +22 -0
- package/components/calendar/calendar.scss +91 -0
- package/components/calendar/grid/calendar-grid.component.d.ts +24 -0
- package/components/calendar/header/calendar-header.component.d.ts +21 -0
- package/components/icon/icons.d.ts +1 -0
- package/components/links/links.component.d.ts +5 -5
- package/components/loader/loader.component.d.ts +5 -0
- package/components/loader/loader.component.scss +90 -0
- package/components/main/gantt-main.component.d.ts +3 -3
- package/components/table/body/gantt-table-body.component.d.ts +58 -0
- package/components/table/gantt-table.component.scss +169 -85
- package/components/table/gantt-table.scss +271 -0
- package/components/table/header/gantt-table-header.component.d.ts +31 -0
- package/esm2020/class/event.mjs +5 -1
- package/esm2020/class/item.mjs +9 -4
- package/esm2020/components/bar/bar-drag.mjs +106 -42
- package/esm2020/components/bar/bar.component.mjs +8 -2
- package/esm2020/components/calendar/grid/calendar-grid.component.mjs +71 -0
- package/esm2020/components/calendar/header/calendar-header.component.mjs +67 -0
- package/esm2020/components/icon/icons.mjs +4 -2
- package/esm2020/components/links/links.component.mjs +72 -54
- package/esm2020/components/loader/loader.component.mjs +29 -0
- package/esm2020/components/main/gantt-main.component.mjs +5 -5
- package/esm2020/components/table/body/gantt-table-body.component.mjs +298 -0
- package/esm2020/components/table/header/gantt-table-header.component.mjs +140 -0
- package/esm2020/gantt-dom.service.mjs +8 -12
- package/esm2020/gantt-item-upper.mjs +15 -6
- package/esm2020/gantt-print.service.mjs +2 -2
- package/esm2020/gantt-upper.mjs +18 -15
- package/esm2020/gantt.component.mjs +143 -25
- package/esm2020/gantt.module.mjs +28 -10
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/root.component.mjs +10 -8
- package/esm2020/table/gantt-table.component.mjs +12 -4
- package/esm2020/utils/helpers.mjs +11 -1
- package/fesm2015/worktile-gantt.mjs +969 -378
- package/fesm2015/worktile-gantt.mjs.map +1 -1
- package/fesm2020/worktile-gantt.mjs +959 -380
- package/fesm2020/worktile-gantt.mjs.map +1 -1
- package/gantt-dom.service.d.ts +1 -0
- package/gantt-item-upper.d.ts +3 -2
- package/gantt-upper.d.ts +4 -1
- package/gantt.component.d.ts +26 -8
- package/gantt.component.scss +39 -0
- package/gantt.module.d.ts +19 -15
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/root.component.d.ts +1 -1
- package/styles/index.scss +5 -2
- package/styles/variables.scss +12 -7
- package/table/gantt-table.component.d.ts +5 -2
- package/components/calendar/calendar.component.d.ts +0 -26
- package/components/table/gantt-table.component.d.ts +0 -42
- package/esm2020/components/calendar/calendar.component.mjs +0 -88
- package/esm2020/components/table/gantt-table.component.mjs +0 -166
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component, HostBinding, Inject } from '@angular/core';
|
|
2
|
+
import { Subject, merge } from 'rxjs';
|
|
3
|
+
import { take, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { isNumber } from '../../../utils/helpers';
|
|
5
|
+
import { GANTT_UPPER_TOKEN } from '../../../gantt-upper';
|
|
6
|
+
import { GanttViewType } from './../../../class/view-type';
|
|
7
|
+
import { headerHeight, todayBorderRadius } from '../../../gantt.styles';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "../../../gantt-upper";
|
|
11
|
+
const mainHeight = 5000;
|
|
12
|
+
export class GanttCalendarGridComponent {
|
|
13
|
+
get view() {
|
|
14
|
+
return this.ganttUpper.view;
|
|
15
|
+
}
|
|
16
|
+
constructor(ganttUpper, ngZone, elementRef) {
|
|
17
|
+
this.ganttUpper = ganttUpper;
|
|
18
|
+
this.ngZone = ngZone;
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
this.unsubscribe$ = new Subject();
|
|
21
|
+
this.headerHeight = headerHeight;
|
|
22
|
+
this.mainHeight = mainHeight;
|
|
23
|
+
this.todayBorderRadius = todayBorderRadius;
|
|
24
|
+
this.viewTypes = GanttViewType;
|
|
25
|
+
this.className = `gantt-calendar gantt-calendar-grid`;
|
|
26
|
+
}
|
|
27
|
+
setTodayPoint() {
|
|
28
|
+
const x = this.view.getTodayXPoint();
|
|
29
|
+
const todayEle = this.elementRef.nativeElement.getElementsByClassName('gantt-calendar-today-overlay')[0];
|
|
30
|
+
const line = this.elementRef.nativeElement.getElementsByClassName('today-line')[0];
|
|
31
|
+
if (isNumber(x)) {
|
|
32
|
+
if (line) {
|
|
33
|
+
line.style.left = `${x}px`;
|
|
34
|
+
line.style.top = `0px`;
|
|
35
|
+
line.style.bottom = `${-mainHeight}px`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
todayEle.style.display = 'none';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
44
|
+
merge(this.ganttUpper.viewChange, this.ganttUpper.view.start$)
|
|
45
|
+
.pipe(takeUntil(this.unsubscribe$))
|
|
46
|
+
.subscribe(() => {
|
|
47
|
+
this.setTodayPoint();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
trackBy(point, index) {
|
|
52
|
+
return point.text || index;
|
|
53
|
+
}
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
this.unsubscribe$.next();
|
|
56
|
+
this.unsubscribe$.complete();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
GanttCalendarGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttCalendarGridComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
GanttCalendarGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GanttCalendarGridComponent, 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]=\"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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttCalendarGridComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'gantt-calendar-grid', 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" }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i2.GanttUpper, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: [GANTT_UPPER_TOKEN]
|
|
67
|
+
}] }, { type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { className: [{
|
|
68
|
+
type: HostBinding,
|
|
69
|
+
args: ['class']
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvY29tcG9uZW50cy9jYWxlbmRhci9ncmlkL2NhbGVuZGFyLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvZ3JpZC9jYWxlbmRhci1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUErQyxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUV4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFNeEIsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFhRCxZQUNzQyxVQUFzQixFQUNoRCxNQUFjLEVBQ2QsVUFBbUM7UUFGVCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQWZ2QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0MsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUV0QyxjQUFTLEdBQUcsYUFBYSxDQUFDO1FBRUosY0FBUyxHQUFHLG9DQUFvQyxDQUFDO0lBTXBFLENBQUM7SUFFSixhQUFhO1FBQ1QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4SCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFbEcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQzthQUMxQztTQUNKO2FBQU07WUFDSCxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFxQixFQUFFLEtBQWE7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzt1SEF2RFEsMEJBQTBCLGtCQWlCdkIsaUJBQWlCOzJHQWpCcEIsMEJBQTBCLGdIQ2pCdkMsazlCQTRCQTsyRkRYYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0kscUJBQXFCOzswQkFvQjFCLE1BQU07MkJBQUMsaUJBQWlCOzBGQUhQLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBIb3N0QmluZGluZywgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE5nWm9uZSwgSW5qZWN0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYW50dERhdGVQb2ludCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzL2RhdGUtcG9pbnQnO1xuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9oZWxwZXJzJztcblxuaW1wb3J0IHsgR0FOVFRfVVBQRVJfVE9LRU4sIEdhbnR0VXBwZXIgfSBmcm9tICcuLi8uLi8uLi9nYW50dC11cHBlcic7XG5pbXBvcnQgeyBHYW50dFZpZXdUeXBlIH0gZnJvbSAnLi8uLi8uLi8uLi9jbGFzcy92aWV3LXR5cGUnO1xuaW1wb3J0IHsgaGVhZGVySGVpZ2h0LCB0b2RheUJvcmRlclJhZGl1cyB9IGZyb20gJy4uLy4uLy4uL2dhbnR0LnN0eWxlcyc7XG5cbmNvbnN0IG1haW5IZWlnaHQgPSA1MDAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dhbnR0LWNhbGVuZGFyLWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1ncmlkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHYW50dENhbGVuZGFyR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBnZXQgdmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FudHRVcHBlci52aWV3O1xuICAgIH1cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBoZWFkZXJIZWlnaHQgPSBoZWFkZXJIZWlnaHQ7XG5cbiAgICBtYWluSGVpZ2h0ID0gbWFpbkhlaWdodDtcblxuICAgIHRvZGF5Qm9yZGVyUmFkaXVzID0gdG9kYXlCb3JkZXJSYWRpdXM7XG5cbiAgICB2aWV3VHlwZXMgPSBHYW50dFZpZXdUeXBlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9IGBnYW50dC1jYWxlbmRhciBnYW50dC1jYWxlbmRhci1ncmlkYDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEdBTlRUX1VQUEVSX1RPS0VOKSBwdWJsaWMgZ2FudHRVcHBlcjogR2FudHRVcHBlcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkge31cblxuICAgIHNldFRvZGF5UG9pbnQoKSB7XG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnZpZXcuZ2V0VG9kYXlYUG9pbnQoKTtcbiAgICAgICAgY29uc3QgdG9kYXlFbGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdnYW50dC1jYWxlbmRhci10b2RheS1vdmVybGF5JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0b2RheS1saW5lJylbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKHgpKSB7XG4gICAgICAgICAgICBpZiAobGluZSkge1xuICAgICAgICAgICAgICAgIGxpbmUuc3R5bGUubGVmdCA9IGAke3h9cHhgO1xuICAgICAgICAgICAgICAgIGxpbmUuc3R5bGUudG9wID0gYDBweGA7XG4gICAgICAgICAgICAgICAgbGluZS5zdHlsZS5ib3R0b20gPSBgJHstbWFpbkhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2RheUVsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG1lcmdlKHRoaXMuZ2FudHRVcHBlci52aWV3Q2hhbmdlLCB0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydCQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUb2RheVBvaW50KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYWNrQnkocG9pbnQ6IEdhbnR0RGF0ZVBvaW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBwb2ludC50ZXh0IHx8IGluZGV4O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXlcIiBbc3R5bGUud2lkdGgucHhdPVwidmlldy53aWR0aFwiPlxuICA8c3BhbiBjbGFzcz1cInRvZGF5LWxpbmVcIiAqbmdJZj1cImdhbnR0VXBwZXIuc2hvd1RvZGF5TGluZVwiPiA8L3NwYW4+XG48L2Rpdj5cblxuPHN2ZyBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLWdyaWQtbWFpblwiIFthdHRyLndpZHRoXT1cInZpZXcud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiaGVhZGVySGVpZ2h0IC0gMVwiPlxuICA8Zz5cbiAgICA8ZyAqbmdJZj1cInZpZXcuc2hvd1RpbWVsaW5lXCI+XG4gICAgICA8bGluZVxuICAgICAgICAqbmdGb3I9XCJsZXQgcG9pbnQgb2Ygdmlldy5zZWNvbmRhcnlEYXRlUG9pbnRzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgW2F0dHIueDFdPVwiKGkgKyAxKSAqIHZpZXcuY2VsbFdpZHRoXCJcbiAgICAgICAgW2F0dHIueDJdPVwiKGkgKyAxKSAqIHZpZXcuY2VsbFdpZHRoXCJcbiAgICAgICAgW2F0dHIueTFdPVwiMFwiXG4gICAgICAgIFthdHRyLnkyXT1cIm1haW5IZWlnaHRcIlxuICAgICAgICBjbGFzcz1cInNlY29uZGFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuICAgIDxnPlxuICAgICAgPGxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IHBvaW50IG9mIHZpZXcucHJpbWFyeURhdGVQb2ludHM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICBbYXR0ci54MV09XCIoaSArIDEpICogdmlldy5wcmltYXJ5V2lkdGhcIlxuICAgICAgICBbYXR0ci54Ml09XCIoaSArIDEpICogdmlldy5wcmltYXJ5V2lkdGhcIlxuICAgICAgICBbYXR0ci55MV09XCIwXCJcbiAgICAgICAgW2F0dHIueTJdPVwibWFpbkhlaWdodFwiXG4gICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz5cbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component, HostBinding, Inject } from '@angular/core';
|
|
2
|
+
import { headerHeight, todayHeight, todayWidth } from '../../../gantt.styles';
|
|
3
|
+
import { GANTT_UPPER_TOKEN } from '../../../gantt-upper';
|
|
4
|
+
import { GanttViewType } from '../../../class';
|
|
5
|
+
import { take, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { Subject, merge } from 'rxjs';
|
|
7
|
+
import { GanttDate } from '../../../utils/date';
|
|
8
|
+
import { isNumber } from '../../../utils/helpers';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "../../../gantt-upper";
|
|
12
|
+
export class GanttCalendarHeaderComponent {
|
|
13
|
+
get view() {
|
|
14
|
+
return this.ganttUpper.view;
|
|
15
|
+
}
|
|
16
|
+
constructor(ganttUpper, ngZone, elementRef) {
|
|
17
|
+
this.ganttUpper = ganttUpper;
|
|
18
|
+
this.ngZone = ngZone;
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
this.unsubscribe$ = new Subject();
|
|
21
|
+
this.headerHeight = headerHeight;
|
|
22
|
+
this.viewTypes = GanttViewType;
|
|
23
|
+
this.className = `gantt-calendar gantt-calendar-header`;
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
27
|
+
merge(this.ganttUpper.viewChange, this.ganttUpper.view.start$)
|
|
28
|
+
.pipe(takeUntil(this.unsubscribe$))
|
|
29
|
+
.subscribe(() => {
|
|
30
|
+
if (this.ganttUpper.viewType === GanttViewType.day)
|
|
31
|
+
this.setTodayPoint();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
setTodayPoint() {
|
|
36
|
+
const x = this.view.getTodayXPoint();
|
|
37
|
+
const today = new GanttDate().getDate();
|
|
38
|
+
const todayEle = this.elementRef.nativeElement.getElementsByClassName('gantt-calendar-today-overlay')[0];
|
|
39
|
+
const rect = this.elementRef.nativeElement.getElementsByClassName('today-rect')[0];
|
|
40
|
+
if (isNumber(x)) {
|
|
41
|
+
if (rect) {
|
|
42
|
+
rect.style.left = `${x - todayWidth / 2}px`;
|
|
43
|
+
rect.style.top = `${headerHeight - todayHeight}px`;
|
|
44
|
+
rect.innerHTML = today.toString();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
todayEle.style.display = 'none';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
trackBy(point, index) {
|
|
52
|
+
return point.text || index;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
GanttCalendarHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttCalendarHeaderComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
GanttCalendarHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GanttCalendarHeaderComponent, selector: "gantt-calendar-header", host: { properties: { "class": "this.className" } }, 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]=\"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 [attr.x1]=\"0\" [attr.x2]=\"view.width\" [attr.y1]=\"headerHeight\" [attr.y2]=\"headerHeight\" class=\"header-line\"></line>\n </g>\n </g>\n</svg>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttCalendarHeaderComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'gantt-calendar-header', 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 [attr.x1]=\"0\" [attr.x2]=\"view.width\" [attr.y1]=\"headerHeight\" [attr.y2]=\"headerHeight\" class=\"header-line\"></line>\n </g>\n </g>\n</svg>\n" }]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i2.GanttUpper, decorators: [{
|
|
61
|
+
type: Inject,
|
|
62
|
+
args: [GANTT_UPPER_TOKEN]
|
|
63
|
+
}] }, { type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { className: [{
|
|
64
|
+
type: HostBinding,
|
|
65
|
+
args: ['class']
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2NhbGVuZGFyL2hlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFNbEQsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFVRCxZQUNzQyxVQUFzQixFQUNoRCxNQUFjLEVBQ2QsVUFBbUM7UUFGVCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQVh2QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFckMsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQUVKLGNBQVMsR0FBRyxzQ0FBc0MsQ0FBQztJQU10RSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLEdBQUc7b0JBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdFLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYTtRQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4SCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFbEcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxHQUFHLFdBQVcsSUFBSSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNyQztTQUNKO2FBQU07WUFDSCxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXFCLEVBQUUsS0FBYTtRQUN4QyxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQy9CLENBQUM7O3lIQWhEUSw0QkFBNEIsa0JBY3pCLGlCQUFpQjs2R0FkcEIsNEJBQTRCLGtIQ2R6Qyw4K0NBNkNBOzJGRC9CYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0ksdUJBQXVCOzswQkFpQjVCLE1BQU07MkJBQUMsaUJBQWlCOzBGQUhQLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBIb3N0QmluZGluZywgSW5qZWN0LCBOZ1pvbmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdhbnR0RGF0ZVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vY2xhc3MvZGF0ZS1wb2ludCc7XG5pbXBvcnQgeyBoZWFkZXJIZWlnaHQsIHRvZGF5SGVpZ2h0LCB0b2RheVdpZHRoIH0gZnJvbSAnLi4vLi4vLi4vZ2FudHQuc3R5bGVzJztcbmltcG9ydCB7IEdBTlRUX1VQUEVSX1RPS0VOLCBHYW50dFVwcGVyIH0gZnJvbSAnLi4vLi4vLi4vZ2FudHQtdXBwZXInO1xuaW1wb3J0IHsgR2FudHRWaWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHYW50dERhdGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9kYXRlJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2FudHQtY2FsZW5kYXItaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHYW50dENhbGVuZGFySGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBnZXQgdmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FudHRVcHBlci52aWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGhlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDtcblxuICAgIHZpZXdUeXBlcyA9IEdhbnR0Vmlld1R5cGU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gYGdhbnR0LWNhbGVuZGFyIGdhbnR0LWNhbGVuZGFyLWhlYWRlcmA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChHQU5UVF9VUFBFUl9UT0tFTikgcHVibGljIGdhbnR0VXBwZXI6IEdhbnR0VXBwZXIsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgbWVyZ2UodGhpcy5nYW50dFVwcGVyLnZpZXdDaGFuZ2UsIHRoaXMuZ2FudHRVcHBlci52aWV3LnN0YXJ0JClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5nYW50dFVwcGVyLnZpZXdUeXBlID09PSBHYW50dFZpZXdUeXBlLmRheSkgdGhpcy5zZXRUb2RheVBvaW50KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFRvZGF5UG9pbnQoKSB7XG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnZpZXcuZ2V0VG9kYXlYUG9pbnQoKTtcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgR2FudHREYXRlKCkuZ2V0RGF0ZSgpO1xuICAgICAgICBjb25zdCB0b2RheUVsZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXknKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RvZGF5LXJlY3QnKVswXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBpZiAoaXNOdW1iZXIoeCkpIHtcbiAgICAgICAgICAgIGlmIChyZWN0KSB7XG4gICAgICAgICAgICAgICAgcmVjdC5zdHlsZS5sZWZ0ID0gYCR7eCAtIHRvZGF5V2lkdGggLyAyfXB4YDtcbiAgICAgICAgICAgICAgICByZWN0LnN0eWxlLnRvcCA9IGAke2hlYWRlckhlaWdodCAtIHRvZGF5SGVpZ2h0fXB4YDtcbiAgICAgICAgICAgICAgICByZWN0LmlubmVySFRNTCA9IHRvZGF5LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2RheUVsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeShwb2ludDogR2FudHREYXRlUG9pbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHBvaW50LnRleHQgfHwgaW5kZXg7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdhbnR0LWNhbGVuZGFyLXRvZGF5LW92ZXJsYXlcIiBbc3R5bGUud2lkdGgucHhdPVwidmlldy53aWR0aFwiPlxuICA8c3BhbiBjbGFzcz1cInRvZGF5LXJlY3RcIiBbaGlkZGVuXT1cImdhbnR0VXBwZXIudmlld1R5cGUgIT09IHZpZXdUeXBlcy5kYXlcIj4gPC9zcGFuPlxuPC9kaXY+XG48c3ZnIFthdHRyLndpZHRoXT1cInZpZXcud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiaGVhZGVySGVpZ2h0XCI+XG4gIDxnPlxuICAgIDx0ZXh0XG4gICAgICBjbGFzcz1cInByaW1hcnktdGV4dFwiXG4gICAgICBbbmdTdHlsZV09XCJwb2ludC5zdHlsZVwiXG4gICAgICBbY2xhc3MudG9kYXldPVwicG9pbnQuYWRkaXRpb25zPy5pc1RvZGF5XCJcbiAgICAgIFtjbGFzcy53ZWVrZW5kXT1cInBvaW50LmFkZGl0aW9ucz8uaXNXZWVrZW5kXCJcbiAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2aWV3LnByaW1hcnlEYXRlUG9pbnRzOyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgIFthdHRyLnhdPVwicG9pbnQueFwiXG4gICAgICBbYXR0ci55XT1cInBvaW50LnlcIlxuICAgID5cbiAgICAgIHt7IHBvaW50LnRleHQgfX1cbiAgICA8L3RleHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcG9pbnQgb2Ygdmlldy5zZWNvbmRhcnlEYXRlUG9pbnRzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICA8dGV4dFxuICAgICAgICBjbGFzcz1cInNlY29uZGFyeS10ZXh0XCJcbiAgICAgICAgW25nU3R5bGVdPVwicG9pbnQuc3R5bGVcIlxuICAgICAgICBbY2xhc3MudG9kYXldPVwicG9pbnQuYWRkaXRpb25zPy5pc1RvZGF5XCJcbiAgICAgICAgW2NsYXNzLndlZWtlbmRdPVwicG9pbnQuYWRkaXRpb25zPy5pc1dlZWtlbmRcIlxuICAgICAgICBbYXR0ci54XT1cInBvaW50LnhcIlxuICAgICAgICBbYXR0ci55XT1cInBvaW50LnlcIlxuICAgICAgPlxuICAgICAgICB7eyBwb2ludC50ZXh0IH19XG4gICAgICA8L3RleHQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8Zz5cbiAgICAgIDxsaW5lXG4gICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2aWV3LnByaW1hcnlEYXRlUG9pbnRzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgW2F0dHIueDFdPVwiKGkgKyAxKSAqIHZpZXcucHJpbWFyeVdpZHRoXCJcbiAgICAgICAgW2F0dHIueDJdPVwiKGkgKyAxKSAqIHZpZXcucHJpbWFyeVdpZHRoXCJcbiAgICAgICAgW2F0dHIueTFdPVwiMFwiXG4gICAgICAgIFthdHRyLnkyXT1cImhlYWRlckhlaWdodFwiXG4gICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5lXCJcbiAgICAgID48L2xpbmU+XG4gICAgPC9nPlxuXG4gICAgPGc+XG4gICAgICA8bGluZSBbYXR0ci54MV09XCIwXCIgW2F0dHIueDJdPVwidmlldy53aWR0aFwiIFthdHRyLnkxXT1cImhlYWRlckhlaWdodFwiIFthdHRyLnkyXT1cImhlYWRlckhlaWdodFwiIGNsYXNzPVwiaGVhZGVyLWxpbmVcIj48L2xpbmU+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz5cbiJdfQ==
|
|
@@ -76,12 +76,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
76
76
|
</g>
|
|
77
77
|
</g>
|
|
78
78
|
</svg>`;
|
|
79
|
+
const dragIcon = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fit="" preserveAspectRatio="xMidYMid meet" focusable="false"><g id="aijaction/drag--" stroke-width="1" fill-rule="evenodd"><g id="aij拖动" transform="translate(5 1)" fill-rule="nonzero"><path d="M1 2a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM1 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" id="aij形状结合"></path></g></g></svg>`;
|
|
79
80
|
export const icons = {
|
|
80
81
|
'angle-right': angleRight,
|
|
81
82
|
'angle-down': angleDown,
|
|
82
83
|
'plus-square': plusSquare,
|
|
83
84
|
'minus-square': minusSquare,
|
|
84
85
|
loading: loadingIcon,
|
|
85
|
-
empty: emptyIcon
|
|
86
|
+
empty: emptyIcon,
|
|
87
|
+
drag: dragIcon
|
|
86
88
|
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nYW50dC9zcmMvY29tcG9uZW50cy9pY29uL2ljb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxHQUFHLDRVQUE0VSxDQUFDO0FBQ2hXLE1BQU0sU0FBUyxHQUFHLHdTQUF3UyxDQUFDO0FBQzNULE1BQU0sVUFBVSxHQUFHLHFiQUFxYixDQUFDO0FBQ3pjLE1BQU0sV0FBVyxHQUFHLDZZQUE2WSxDQUFDO0FBQ2xhLE1BQU0sV0FBVyxHQUFHOzs7O09BSWIsQ0FBQztBQUNSLE1BQU0sU0FBUyxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9FWCxDQUFDO0FBRVIsTUFBTSxRQUFRLEdBQUcsMm5CQUEybkIsQ0FBQztBQUM3b0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLGNBQWMsRUFBRSxXQUFXO0lBQzNCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxRQUFRO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhbmdsZVJpZ2h0ID0gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpdD1cIlwiICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIGZvY3VzYWJsZT1cImZhbHNlXCI+PGcgaWQ9XCJhbW5hdmlnYXRpb24vYW5nbGUtcmlnaHRcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPjxwYXRoIGQ9XCJNNy45NzggMTEuNDk4bC0uMDA1LjAwNUwyLjMgNS44MzEgMy4xMyA1bDQuODQ4IDQuODQ4TDEyLjgyNiA1bC44My44MzEtNS42NzMgNS42NzItLjAwNS0uMDA1elwiICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCA3Ljk3OCA4LjI1MilcIj48L3BhdGg+PC9nPjwvc3ZnPmA7XG5jb25zdCBhbmdsZURvd24gPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZml0PVwiXCIgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48ZyBpZD1cImFrbmF2aWdhdGlvbi9hbmdsZS1kb3duXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj48cGF0aCBkPVwiTTcuOTc4IDExLjk5N2wtLjAwNS4wMDZMMi4zIDYuMzNsLjgzLS44MzEgNC44NDggNC44NDhMMTIuODI2IDUuNWwuODMuODMtNS42NzMgNS42NzMtLjAwNS0uMDA2elwiID48L3BhdGg+PC9nPjwvc3ZnPmA7XG5jb25zdCBwbHVzU3F1YXJlID0gYDxzdmcgdmlld0JveD1cIjAgMCAxNiAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaXQ9XCJcIiAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48ZyBpZD1cImt4YWN0aW9uL3BsdXMtc3F1YXJlXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj48cGF0aCBkPVwiTTIgMGgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnptMCAxLjJhLjguOCAwIDAgMC0uOC44djEyYS44LjggMCAwIDAgLjguOGgxMmEuOC44IDAgMCAwIC44LS44VjJhLjguOCAwIDAgMC0uOC0uOEgyem01LjQ1IDYuMlY0Ljc1aDEuMlY3LjRoMi42NXYxLjJIOC42NXYyLjY1aC0xLjJWOC42SDQuOFY3LjRoMi42NXpcIj48L3BhdGg+PC9nPjwvc3ZnPmA7XG5jb25zdCBtaW51c1NxdWFyZSA9IGA8c3ZnIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZml0PVwiXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxnIGlkPVwiam5hY3Rpb24vbWludXMtc3F1YXJlXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj48cGF0aCBkPVwiTTIgMGgxMmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJIMmEyIDIgMCAwIDEtMi0yVjJhMiAyIDAgMCAxIDItMnptMCAxLjJhLjguOCAwIDAgMC0uOC44djEyYS44LjggMCAwIDAgLjguOGgxMmEuOC44IDAgMCAwIC44LS44VjJhLjguOCAwIDAgMC0uOC0uOEgyem0yLjggNi4yaDYuNXYxLjJINC44VjcuNHpcIj48L3BhdGg+PC9nPjwvc3ZnPmA7XG5jb25zdCBsb2FkaW5nSWNvbiA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiAgdmlld0JveD1cIjAgMCA1MCA1MFwiIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MCA1MFwiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+XG48cGF0aCBmaWxsPVwiI2FhYVwiIGQ9XCJNMjUuMjUxLDYuNDYxYy0xMC4zMTgsMC0xOC42ODMsOC4zNjUtMTguNjgzLDE4LjY4M2g0LjA2OGMwLTguMDcxLDYuNTQzLTE0LjYxNSwxNC42MTUtMTQuNjE1VjYuNDYxelwiIHRyYW5zZm9ybT1cInJvdGF0ZSgyNzUuMDk4IDI1IDI1KVwiPlxuICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9XCJ4bWxcIiBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDI1IDI1XCIgdG89XCIzNjAgMjUgMjVcIiBkdXI9XCIwLjZzXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCI+PC9hbmltYXRlVHJhbnNmb3JtPlxuPC9wYXRoPlxuPC9zdmc+YDtcbmNvbnN0IGVtcHR5SWNvbiA9IGA8c3ZnXG53aWR0aD1cIjE0OHB4XCJcbmhlaWdodD1cIjEzNHB4XCJcbnZpZXdCb3g9XCIwIDAgMTQ4IDEzNFwiXG52ZXJzaW9uPVwiMS4xXCJcbnhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxueG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbj5cbjxkZWZzPlxuICA8ZmlsdGVyIHg9XCIwLjAlXCIgeT1cIjAuMCVcIiB3aWR0aD1cIjEwMC4wJVwiIGhlaWdodD1cIjEwMC4wJVwiIGZpbHRlclVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIiBpZD1cImZpbHRlci0xXCI+XG4gICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjBcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIj48L2ZlR2F1c3NpYW5CbHVyPlxuICA8L2ZpbHRlcj5cbjwvZGVmcz5cbjxnIGlkPVwiMTQ4eDEzNFwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gIDxnIGlkPVwi57yW57uELTZcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMS4wMDAwMDAsIDEuMDAwMDAwKVwiPlxuICAgIDxlbGxpcHNlXG4gICAgICBpZD1cIuakreWchuW9olwiXG4gICAgICBmaWxsPVwiI0VERUVGMlwiXG4gICAgICBvcGFjaXR5PVwiMC4zXCJcbiAgICAgIGZpbHRlcj1cInVybCgjZmlsdGVyLTEpXCJcbiAgICAgIGN4PVwiNzMuMDgwMDAxN1wiXG4gICAgICBjeT1cIjExNS45MjAwMDNcIlxuICAgICAgcng9XCI3My4wODAwMDE3XCJcbiAgICAgIHJ5PVwiMTYuODAwMDAwNFwiXG4gICAgPjwvZWxsaXBzZT5cbiAgICA8ZyBpZD1cIue8lue7hC01XCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDE1LjEyMDAwMCwgMC4wMDAwMDApXCI+XG4gICAgICA8cG9seWdvblxuICAgICAgICBpZD1cIuefqeW9olwiXG4gICAgICAgIGZpbGw9XCIjRTJFNEU5XCJcbiAgICAgICAgcG9pbnRzPVwiMTkuMjc4OTg0OCA0OS41NjAwMDExIDk5LjEyMDAwMjMgNDguNzIwMDAxMSAxMTcuNjAwMDAzIDc1LjkyOTc2NzMgMTE3LjYwMDAwMyA5Mi4zMTMwNDkgMCA5Mi4zMTMwNDkgMCA3NS4wMzU2MjY3XCJcbiAgICAgID48L3BvbHlnb24+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTIzLjUyMDAwMDUsMCBMOTQuMDgwMDAwMiwwIEM5Ny43OTEzNTM4LDIuMDY0MTM4MjNlLTE2IDEwMC44LDMuMDA4NjQ2NTUgMTAwLjgsNi43MjAwMDAxNSBMMTAwLjgsOTkuMTIwMDAyMyBMMTAwLjgsOTkuMTIwMDAyMyBMMTYuODAwMDAwNCw5OS4xMjAwMDIzIEwxNi44MDAwMDA0LDYuNzIwMDAwMTUgQzE2LjgwMDAwMDQsMy4wMDg2NDY1NSAxOS44MDg2NDY5LDEuNTY5OTQzMDJlLTE1IDIzLjUyMDAwMDUsMCBaXCJcbiAgICAgICAgaWQ9XCLnn6nlvaJcIlxuICAgICAgICBmaWxsPVwiI0Y5RkFGQlwiXG4gICAgICA+PC9wYXRoPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0zMC45MjAwMDA3LDEyLjQ0MDAwMDMgTDg2LjY4MDAwMTksMTIuNDQwMDAwMyBDODguNTM1Njc4NywxMi40NDAwMDAzIDkwLjA0MDAwMiwxMy45NDQzMjM2IDkwLjA0MDAwMiwxNS44MDAwMDA0IEw5MC4wNDAwMDIsNDIuMDAwMDAxIEM5MC4wNDAwMDIsNDMuODU1Njc3OCA4OC41MzU2Nzg3LDQ1LjM2MDAwMSA4Ni42ODAwMDE5LDQ1LjM2MDAwMSBMMzAuOTIwMDAwNyw0NS4zNjAwMDEgQzI5LjA2NDMyMzksNDUuMzYwMDAxIDI3LjU2MDAwMDYsNDMuODU1Njc3OCAyNy41NjAwMDA2LDQyLjAwMDAwMSBMMjcuNTYwMDAwNiwxNS44MDAwMDA0IEMyNy41NjAwMDA2LDEzLjk0NDMyMzYgMjkuMDY0MzIzOSwxMi40NDAwMDAzIDMwLjkyMDAwMDcsMTIuNDQwMDAwMyBaXCJcbiAgICAgICAgaWQ9XCLnn6nlvaJcIlxuICAgICAgICBmaWxsPVwiI0U4RUFFRVwiXG4gICAgICA+PC9wYXRoPlxuICAgICAgPHRleHRcbiAgICAgICAgaWQ9XCImbHQ7L251bGwmZ3Q7XCJcbiAgICAgICAgZm9udC1mYW1pbHk9XCJQaW5nRmFuZ1NDLU1lZGl1bSwgUGluZ0ZhbmcgU0NcIlxuICAgICAgICBmb250LXNpemU9XCIxNS4xMjAwMDAzXCJcbiAgICAgICAgZm9udC13ZWlnaHQ9XCI0MDBcIlxuICAgICAgICBmaWxsPVwiI0JDQkVDRFwiXG4gICAgICA+XG4gICAgICAgIDx0c3BhbiB4PVwiMzMuNjAwMDAwOFwiIHk9XCIzMi44MDAwMDA0XCI+Jmx0Oy9udWxsJmd0OzwvdHNwYW4+XG4gICAgICA8L3RleHQ+XG4gICAgICA8cmVjdCBpZD1cIuefqeW9olwiIGZpbGw9XCIjRThFQUVFXCIgeD1cIjI3LjU2MDAwMDZcIiB5PVwiNTIuMDgwMDAxMlwiIHdpZHRoPVwiNjEuNDgwMDAxNFwiIGhlaWdodD1cIjUuMDQwMDAwMTFcIiByeD1cIjIuNTIwMDAwMDZcIj48L3JlY3Q+XG4gICAgICA8cmVjdFxuICAgICAgICBpZD1cIuefqeW9ouWkh+S7vVwiXG4gICAgICAgIGZpbGw9XCIjRThFQUVFXCJcbiAgICAgICAgeD1cIjI3LjU2MDAwMDZcIlxuICAgICAgICB5PVwiNjMuODQwMDAxNFwiXG4gICAgICAgIHdpZHRoPVwiNjEuNDgwMDAxNFwiXG4gICAgICAgIGhlaWdodD1cIjUuMDQwMDAwMTFcIlxuICAgICAgICByeD1cIjIuNTIwMDAwMDZcIlxuICAgICAgPjwvcmVjdD5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMCw3NS42MDAwMDE3IEwyOS4yODAyMzUsNzUuNjAwMDAxNyBDMzIuMDYzNzUwMiw3NS42MDAwMDE3IDM0LjMyMDIzNTIsNzcuODU2NDg2NiAzNC4zMjAyMzUyLDgwLjY0MDAwMTggTDM0LjMyMDIzNTIsODYuMjU5MTQyNiBDMzQuMzIwMjM1Miw4OS4wNDI2NTc4IDM2LjU3NjcyMDEsOTEuMjk5MTQyNyAzOS4zNjAyMzUzLDkxLjI5OTE0MjcgTDc4LjQxMzY3MzcsOTEuMjk5MTQyNyBDODEuMTk3MTg4OSw5MS4yOTkxNDI3IDgzLjQ1MzY3MzgsODkuMDQyNjU3OCA4My40NTM2NzM4LDg2LjI1OTE0MjYgTDgzLjQ1MzY3MzgsODAuNjQwMDAxOCBDODMuNDUzNjczOCw3Ny44NTY0ODY2IDg1LjcxMDE1ODcsNzUuNjAwMDAxNyA4OC40OTM2NzM5LDc1LjYwMDAwMTcgTDExNy42MDAwMDMsNzUuNjAwMDAxNyBMMTE3LjYwMDAwMyw3NS42MDAwMDE3IEwxMTcuNjAwMDAzLDExMC44ODAwMDMgQzExNy42MDAwMDMsMTE1LjUxOTE5NSAxMTMuODM5MTk0LDExOS4yODAwMDMgMTA5LjIwMDAwMiwxMTkuMjgwMDAzIEw4LjQwMDAwMDE5LDExOS4yODAwMDMgQzMuNzYwODA4MTksMTE5LjI4MDAwMyAtNi41MzcyOTAxOWUtMTUsMTE1LjUxOTE5NSAwLDExMC44ODAwMDMgTDAsNzUuNjAwMDAxNyBMMCw3NS42MDAwMDE3IFpcIlxuICAgICAgICBpZD1cIuefqeW9olwiXG4gICAgICAgIGZpbGw9XCIjRURFRkYyXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9nPlxuICA8L2c+XG48L2c+XG48L3N2Zz5gO1xuXG5jb25zdCBkcmFnSWNvbiA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpdD1cIlwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48ZyBpZD1cImFpamFjdGlvbi9kcmFnLS1cIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPjxnIGlkPVwiYWlq5ouW5YqoXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDUgMSlcIiBmaWxsLXJ1bGU9XCJub256ZXJvXCI+PHBhdGggZD1cIk0xIDJhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyem00IDBhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyek0xIDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyem00IDBhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyem0tNCA0YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnptNCAwYTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMnptLTQgNGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6bTQgMGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJ6XCIgaWQ9XCJhaWrlvaLnirbnu5PlkIhcIj48L3BhdGg+PC9nPjwvZz48L3N2Zz5gO1xuZXhwb3J0IGNvbnN0IGljb25zID0ge1xuICAgICdhbmdsZS1yaWdodCc6IGFuZ2xlUmlnaHQsXG4gICAgJ2FuZ2xlLWRvd24nOiBhbmdsZURvd24sXG4gICAgJ3BsdXMtc3F1YXJlJzogcGx1c1NxdWFyZSxcbiAgICAnbWludXMtc3F1YXJlJzogbWludXNTcXVhcmUsXG4gICAgbG9hZGluZzogbG9hZGluZ0ljb24sXG4gICAgZW1wdHk6IGVtcHR5SWNvbixcbiAgICBkcmFnOiBkcmFnSWNvblxufTtcbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, HostBinding, Inject } from '@angular/core';
|
|
2
|
-
import { merge, Subject } from 'rxjs';
|
|
3
|
-
import { takeUntil, skip, debounceTime } from 'rxjs/operators';
|
|
4
|
-
import { recursiveItems } from '../../utils/helpers';
|
|
2
|
+
import { EMPTY, merge, Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil, skip, debounceTime, switchMap, take } from 'rxjs/operators';
|
|
5
4
|
import { GANTT_UPPER_TOKEN } from '../../gantt-upper';
|
|
6
5
|
import { LinkColors, GanttLinkType } from '../../class/link';
|
|
7
6
|
import { createLineGenerator } from './lines/factory';
|
|
@@ -10,13 +9,15 @@ import * as i1 from "../../gantt-drag-container";
|
|
|
10
9
|
import * as i2 from "@angular/common";
|
|
11
10
|
import * as i3 from "../../gantt-upper";
|
|
12
11
|
export class GanttLinksComponent {
|
|
13
|
-
constructor(ganttUpper, cdr, elementRef, ganttDragContainer) {
|
|
12
|
+
constructor(ganttUpper, cdr, elementRef, ganttDragContainer, ngZone) {
|
|
14
13
|
this.ganttUpper = ganttUpper;
|
|
15
14
|
this.cdr = cdr;
|
|
16
15
|
this.elementRef = elementRef;
|
|
17
16
|
this.ganttDragContainer = ganttDragContainer;
|
|
18
|
-
this.
|
|
19
|
-
|
|
17
|
+
this.ngZone = ngZone;
|
|
18
|
+
// @Input() groups: GanttGroupInternal[] = [];
|
|
19
|
+
// @Input() items: GanttItemInternal[] = [];
|
|
20
|
+
this.flatData = [];
|
|
20
21
|
this.lineClick = new EventEmitter();
|
|
21
22
|
this.links = [];
|
|
22
23
|
this.ganttLinkTypes = GanttLinkType;
|
|
@@ -29,12 +30,13 @@ export class GanttLinksComponent {
|
|
|
29
30
|
ngOnInit() {
|
|
30
31
|
this.linkLine = createLineGenerator(this.ganttUpper.linkOptions.lineType, this.ganttUpper);
|
|
31
32
|
this.showArrow = this.ganttUpper.linkOptions.showArrow;
|
|
32
|
-
this.buildLinks();
|
|
33
|
+
// this.buildLinks();
|
|
33
34
|
this.firstChange = false;
|
|
35
|
+
this.buildLinks();
|
|
34
36
|
this.ganttDragContainer.dragStarted.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
|
|
35
37
|
this.elementRef.nativeElement.style.visibility = 'hidden';
|
|
36
38
|
});
|
|
37
|
-
merge(this.ganttUpper.viewChange, this.ganttUpper.expandChange, this.ganttUpper.view.start$, this.ganttUpper.dragEnded, this.ganttUpper.linkDragEnded)
|
|
39
|
+
merge(this.ganttUpper.viewChange, this.ganttUpper.expandChange, this.ganttUpper.view.start$, this.ganttUpper.dragEnded, this.ganttUpper.linkDragEnded, this.ngZone.onStable.pipe(take(1)).pipe(switchMap(() => this.ganttUpper.table?.dragDropped || EMPTY)))
|
|
38
40
|
.pipe(skip(1), debounceTime(0), takeUntil(this.unsubscribe$))
|
|
39
41
|
.subscribe(() => {
|
|
40
42
|
this.elementRef.nativeElement.style.visibility = 'visible';
|
|
@@ -51,48 +53,66 @@ export class GanttLinksComponent {
|
|
|
51
53
|
const lineHeight = this.ganttUpper.styles.lineHeight;
|
|
52
54
|
const barHeight = this.ganttUpper.styles.barHeight;
|
|
53
55
|
this.linkItems = [];
|
|
54
|
-
if (this.groups.length > 0) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
// if (this.groups.length > 0) {
|
|
57
|
+
// let itemNum = 0;
|
|
58
|
+
// let groupNum = 0;
|
|
59
|
+
// this.groups.forEach((group) => {
|
|
60
|
+
// groupNum++;
|
|
61
|
+
// if (group.expanded) {
|
|
62
|
+
// const items = recursiveItems(group.items);
|
|
63
|
+
// items.forEach((item, itemIndex) => {
|
|
64
|
+
// const y = (groupNum + itemNum + itemIndex) * lineHeight + item.refs.y + barHeight / 2;
|
|
65
|
+
// this.linkItems.push({
|
|
66
|
+
// ...item,
|
|
67
|
+
// before: {
|
|
68
|
+
// x: item.refs.x,
|
|
69
|
+
// y
|
|
70
|
+
// },
|
|
71
|
+
// after: {
|
|
72
|
+
// x: item.refs.x + item.refs.width,
|
|
73
|
+
// y
|
|
74
|
+
// }
|
|
75
|
+
// });
|
|
76
|
+
// });
|
|
77
|
+
// itemNum += items.length;
|
|
78
|
+
// }
|
|
79
|
+
// });
|
|
80
|
+
// } else {
|
|
81
|
+
// const items = recursiveItems(this.items);
|
|
82
|
+
// items.forEach((item, itemIndex) => {
|
|
83
|
+
// const y = itemIndex * lineHeight + item.refs.y + barHeight / 2;
|
|
84
|
+
// this.linkItems.push({
|
|
85
|
+
// ...item,
|
|
86
|
+
// before: {
|
|
87
|
+
// x: item.refs.x,
|
|
88
|
+
// y
|
|
89
|
+
// },
|
|
90
|
+
// after: {
|
|
91
|
+
// x: item.refs.x + item.refs.width,
|
|
92
|
+
// y
|
|
93
|
+
// }
|
|
94
|
+
// });
|
|
95
|
+
// });
|
|
96
|
+
// }
|
|
97
|
+
this.flatData.forEach((item, itemIndex) => {
|
|
98
|
+
if (!item.hasOwnProperty('items')) {
|
|
99
|
+
const ganttItem = item;
|
|
100
|
+
if (ganttItem.refs) {
|
|
101
|
+
const y = itemIndex * lineHeight + ganttItem.refs.y + barHeight / 2;
|
|
102
|
+
this.linkItems.push({
|
|
103
|
+
...ganttItem,
|
|
104
|
+
before: {
|
|
105
|
+
x: ganttItem.refs.x,
|
|
106
|
+
y
|
|
107
|
+
},
|
|
108
|
+
after: {
|
|
109
|
+
x: ganttItem.refs.x + ganttItem.refs.width,
|
|
110
|
+
y
|
|
111
|
+
}
|
|
74
112
|
});
|
|
75
|
-
itemNum += items.length;
|
|
76
113
|
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
const items = recursiveItems(this.items);
|
|
81
|
-
items.forEach((item, itemIndex) => {
|
|
82
|
-
const y = itemIndex * lineHeight + item.refs.y + barHeight / 2;
|
|
83
|
-
this.linkItems.push({
|
|
84
|
-
...item,
|
|
85
|
-
before: {
|
|
86
|
-
x: item.refs.x,
|
|
87
|
-
y
|
|
88
|
-
},
|
|
89
|
-
after: {
|
|
90
|
-
x: item.refs.x + item.refs.width,
|
|
91
|
-
y
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
}
|
|
114
|
+
}
|
|
115
|
+
});
|
|
96
116
|
}
|
|
97
117
|
buildLinks() {
|
|
98
118
|
this.computeItemPosition();
|
|
@@ -157,17 +177,15 @@ export class GanttLinksComponent {
|
|
|
157
177
|
this.unsubscribe$.complete();
|
|
158
178
|
}
|
|
159
179
|
}
|
|
160
|
-
GanttLinksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttLinksComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.GanttDragContainer }], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
GanttLinksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GanttLinksComponent, selector: "gantt-links-overlay", inputs: {
|
|
180
|
+
GanttLinksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttLinksComponent, deps: [{ token: GANTT_UPPER_TOKEN }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.GanttDragContainer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
GanttLinksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GanttLinksComponent, selector: "gantt-links-overlay", inputs: { flatData: "flatData" }, outputs: { lineClick: "lineClick" }, host: { properties: { "class.gantt-links-overlay": "this.ganttLinksOverlay" } }, usesOnChanges: true, ngImport: i0, template: "<svg [attr.width]=\"ganttUpper.view.width\" class=\"gantt-links-overlay-main\">\n <ng-container *ngFor=\"let link of links; let i = index; trackBy: trackBy\">\n <path\n [attr.d]=\"link.path\"\n fill=\"transparent\"\n stroke-width=\"2\"\n [attr.stroke]=\"link.color\"\n pointer-events=\"none\"\n [attr.style]=\"link.type === ganttLinkTypes.sf ? 'marker-start: url(#triangle' + i + ')' : 'marker-end: url(#triangle' + i + ')'\"\n ></path>\n\n <g>\n <path\n class=\"link-line\"\n (click)=\"onLineClick($event, link)\"\n [attr.d]=\"link.path\"\n (mouseenter)=\"mouseEnterPath(link, i)\"\n (mouseleave)=\"mouseLeavePath(link)\"\n stroke=\"transparent\"\n stroke-width=\"9\"\n fill=\"none\"\n cursor=\"pointer\"\n ></path>\n </g>\n <defs *ngIf=\"showArrow\">\n <marker\n *ngIf=\"link.type === ganttLinkTypes.sf; else markerEnd\"\n [id]=\"'triangle' + i\"\n markerUnits=\"strokeWidth\"\n markerWidth=\"5\"\n markerHeight=\"4\"\n refX=\"5\"\n refY=\"2\"\n orient=\"180\"\n >\n <path [attr.fill]=\"link.color\" [attr.stroke]=\"link.color\" d=\"M 0 0 L 5 2 L 0 4 z\" />\n </marker>\n\n <ng-template #markerEnd>\n <marker [id]=\"'triangle' + i\" markerUnits=\"strokeWidth\" markerWidth=\"5\" markerHeight=\"4\" refX=\"5\" refY=\"2\" orient=\"auto\">\n <path [attr.fill]=\"link.color\" [attr.stroke]=\"link.color\" d=\"M 0 0 L 5 2 L 0 4 z\" />\n </marker>\n </ng-template>\n </defs>\n </ng-container>\n <line class=\"link-dragging-line\"></line>\n</svg>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
162
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttLinksComponent, decorators: [{
|
|
163
183
|
type: Component,
|
|
164
184
|
args: [{ selector: 'gantt-links-overlay', template: "<svg [attr.width]=\"ganttUpper.view.width\" class=\"gantt-links-overlay-main\">\n <ng-container *ngFor=\"let link of links; let i = index; trackBy: trackBy\">\n <path\n [attr.d]=\"link.path\"\n fill=\"transparent\"\n stroke-width=\"2\"\n [attr.stroke]=\"link.color\"\n pointer-events=\"none\"\n [attr.style]=\"link.type === ganttLinkTypes.sf ? 'marker-start: url(#triangle' + i + ')' : 'marker-end: url(#triangle' + i + ')'\"\n ></path>\n\n <g>\n <path\n class=\"link-line\"\n (click)=\"onLineClick($event, link)\"\n [attr.d]=\"link.path\"\n (mouseenter)=\"mouseEnterPath(link, i)\"\n (mouseleave)=\"mouseLeavePath(link)\"\n stroke=\"transparent\"\n stroke-width=\"9\"\n fill=\"none\"\n cursor=\"pointer\"\n ></path>\n </g>\n <defs *ngIf=\"showArrow\">\n <marker\n *ngIf=\"link.type === ganttLinkTypes.sf; else markerEnd\"\n [id]=\"'triangle' + i\"\n markerUnits=\"strokeWidth\"\n markerWidth=\"5\"\n markerHeight=\"4\"\n refX=\"5\"\n refY=\"2\"\n orient=\"180\"\n >\n <path [attr.fill]=\"link.color\" [attr.stroke]=\"link.color\" d=\"M 0 0 L 5 2 L 0 4 z\" />\n </marker>\n\n <ng-template #markerEnd>\n <marker [id]=\"'triangle' + i\" markerUnits=\"strokeWidth\" markerWidth=\"5\" markerHeight=\"4\" refX=\"5\" refY=\"2\" orient=\"auto\">\n <path [attr.fill]=\"link.color\" [attr.stroke]=\"link.color\" d=\"M 0 0 L 5 2 L 0 4 z\" />\n </marker>\n </ng-template>\n </defs>\n </ng-container>\n <line class=\"link-dragging-line\"></line>\n</svg>\n" }]
|
|
165
185
|
}], ctorParameters: function () { return [{ type: i3.GanttUpper, decorators: [{
|
|
166
186
|
type: Inject,
|
|
167
187
|
args: [GANTT_UPPER_TOKEN]
|
|
168
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.GanttDragContainer }]; }, propDecorators: {
|
|
169
|
-
type: Input
|
|
170
|
-
}], items: [{
|
|
188
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.GanttDragContainer }, { type: i0.NgZone }]; }, propDecorators: { flatData: [{
|
|
171
189
|
type: Input
|
|
172
190
|
}], lineClick: [{
|
|
173
191
|
type: Output
|
|
@@ -175,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
|
175
193
|
type: HostBinding,
|
|
176
194
|
args: ['class.gantt-links-overlay']
|
|
177
195
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvbGlua3MvbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvbGlua3MvbGlua3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUtULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQStCLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFNdEQsTUFBTSxPQUFPLG1CQUFtQjtJQXVCNUIsWUFDc0MsVUFBc0IsRUFDaEQsR0FBc0IsRUFDdEIsVUFBc0IsRUFDdEIsa0JBQXNDO1FBSFosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUExQnpDLFdBQU0sR0FBeUIsRUFBRSxDQUFDO1FBRWxDLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBRyxJQUFJLFlB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NUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQWtCO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnSEFoTFEsbUJBQW1CLGtCQXdCaEIsaUJBQWlCO29HQXhCcEIsbUJBQW1CLG9QQzdCaEMsZ3BEQStDQTsyRkRsQmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNJLHFCQUFxQjs7MEJBMkIxQixNQUFNOzJCQUFDLGlCQUFpQjtzSUF2QnBCLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFnQm1DLGlCQUFpQjtzQkFBMUQsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25DaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgc2tpcCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2FudHRHcm91cEludGVybmFsIH0gZnJvbSAnLi4vLi4vY2xhc3MvZ3JvdXAnO1xuaW1wb3J0IHsgR2FudHRJdGVtSW50ZXJuYWwgfSBmcm9tICcuLy4uLy4uL2NsYXNzL2l0ZW0nO1xuaW1wb3J0IHsgR2FudHRMaW5lQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL2NsYXNzL2V2ZW50JztcbmltcG9ydCB7IEdhbnR0RHJhZ0NvbnRhaW5lciB9IGZyb20gJy4uLy4uL2dhbnR0LWRyYWctY29udGFpbmVyJztcbmltcG9ydCB7IHJlY3Vyc2l2ZUl0ZW1zIH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBHQU5UVF9VUFBFUl9UT0tFTiwgR2FudHRVcHBlciB9IGZyb20gJy4uLy4uL2dhbnR0LXVwcGVyJztcbmltcG9ydCB7IEdhbnR0TGlua0l0ZW0sIExpbmtJbnRlcm5hbCwgTGlua0NvbG9ycywgR2FudHRMaW5rVHlwZSB9IGZyb20gJy4uLy4uL2NsYXNzL2xpbmsnO1xuaW1wb3J0IHsgR2FudHRMaW5rTGluZSB9IGZyb20gJy4vbGluZXMvbGluZSc7XG5pbXBvcnQgeyBjcmVhdGVMaW5lR2VuZXJhdG9yIH0gZnJvbSAnLi9saW5lcy9mYWN0b3J5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnYW50dC1saW5rcy1vdmVybGF5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlua3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdhbnR0TGlua3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBncm91cHM6IEdhbnR0R3JvdXBJbnRlcm5hbFtdID0gW107XG5cbiAgICBASW5wdXQoKSBpdGVtczogR2FudHRJdGVtSW50ZXJuYWxbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpIGxpbmVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8R2FudHRMaW5lQ2xpY2tFdmVudD4oKTtcblxuICAgIHB1YmxpYyBsaW5rczogTGlua0ludGVybmFsW10gPSBbXTtcblxuICAgIHB1YmxpYyBnYW50dExpbmtUeXBlcyA9IEdhbnR0TGlua1R5cGU7XG5cbiAgICBwdWJsaWMgc2hvd0Fycm93ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxpbmtJdGVtczogR2FudHRMaW5rSXRlbVtdID0gW107XG5cbiAgICBwcml2YXRlIGZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgbGlua0xpbmU6IEdhbnR0TGlua0xpbmU7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmdhbnR0LWxpbmtzLW92ZXJsYXknKSBnYW50dExpbmtzT3ZlcmxheSA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChHQU5UVF9VUFBFUl9UT0tFTikgcHVibGljIGdhbnR0VXBwZXI6IEdhbnR0VXBwZXIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGdhbnR0RHJhZ0NvbnRhaW5lcjogR2FudHREcmFnQ29udGFpbmVyXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubGlua0xpbmUgPSBjcmVhdGVMaW5lR2VuZXJhdG9yKHRoaXMuZ2FudHRVcHBlci5saW5rT3B0aW9ucy5saW5lVHlwZSwgdGhpcy5nYW50dFVwcGVyKTtcblxuICAgICAgICB0aGlzLnNob3dBcnJvdyA9IHRoaXMuZ2FudHRVcHBlci5saW5rT3B0aW9ucy5zaG93QXJyb3c7XG4gICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuICAgICAgICB0aGlzLmZpcnN0Q2hhbmdlID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5nYW50dERyYWdDb250YWluZXIuZHJhZ1N0YXJ0ZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICB9KTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuZ2FudHRVcHBlci52aWV3Q2hhbmdlLFxuICAgICAgICAgICAgdGhpcy5nYW50dFVwcGVyLmV4cGFuZENoYW5nZSxcbiAgICAgICAgICAgIHRoaXMuZ2FudHRVcHBlci52aWV3LnN0YXJ0JCxcbiAgICAgICAgICAgIHRoaXMuZ2FudHRVcHBlci5kcmFnRW5kZWQsXG4gICAgICAgICAgICB0aGlzLmdhbnR0VXBwZXIubGlua0RyYWdFbmRlZFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZShza2lwKDEpLCBkZWJvdW5jZVRpbWUoMCksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlSXRlbVBvc2l0aW9uKCkge1xuICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gdGhpcy5nYW50dFVwcGVyLnN0eWxlcy5saW5lSGVpZ2h0O1xuICAgICAgICBjb25zdCBiYXJIZWlnaHQgPSB0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmJhckhlaWdodDtcbiAgICAgICAgdGhpcy5saW5rSXRlbXMgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBpdGVtTnVtID0gMDtcbiAgICAgICAgICAgIGxldCBncm91cE51bSA9IDA7XG4gICAgICAgICAgICB0aGlzLmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3VwTnVtKys7XG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gcmVjdXJzaXZlSXRlbXMoZ3JvdXAuaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSAoZ3JvdXBOdW0gKyBpdGVtTnVtICsgaXRlbUluZGV4KSAqIGxpbmVIZWlnaHQgKyBpdGVtLnJlZnMueSArIGJhckhlaWdodCAvIDI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmtJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBpdGVtLnJlZnMueCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogaXRlbS5yZWZzLnggKyBpdGVtLnJlZnMud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1OdW0gKz0gaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSByZWN1cnNpdmVJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBpdGVtSW5kZXggKiBsaW5lSGVpZ2h0ICsgaXRlbS5yZWZzLnkgKyBiYXJIZWlnaHQgLyAyO1xuICAgICAgICAgICAgICAgIHRoaXMubGlua0l0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBiZWZvcmU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGl0ZW0ucmVmcy54LFxuICAgICAgICAgICAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhZnRlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogaXRlbS5yZWZzLnggKyBpdGVtLnJlZnMud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnVpbGRMaW5rcygpIHtcbiAgICAgICAgdGhpcy5jb21wdXRlSXRlbVBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubGlua3MgPSBbXTtcbiAgICAgICAgdGhpcy5saW5rSXRlbXMuZm9yRWFjaCgoc291cmNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc291cmNlLm9yaWdpbi5zdGFydCB8fCBzb3VyY2Uub3JpZ2luLmVuZCkge1xuICAgICAgICAgICAgICAgIHNvdXJjZS5saW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubGlua0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGxpbmsubGluayk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgKHRhcmdldC5vcmlnaW4uc3RhcnQgfHwgdGFyZ2V0Lm9yaWdpbi5lbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdENvbG9yOiBzdHJpbmcgPSBMaW5rQ29sb3JzLmRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aXZlQ29sb3I6IHN0cmluZyA9IExpbmtDb2xvcnMuYWN0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay50eXBlID09PSBHYW50dExpbmtUeXBlLmZzICYmIHNvdXJjZS5lbmQuZ2V0VGltZSgpID4gdGFyZ2V0LnN0YXJ0LmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvciA9IExpbmtDb2xvcnMuYmxvY2tlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciA9IExpbmtDb2xvcnMuYmxvY2tlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsaW5rLmNvbG9yID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29sb3IgPSBsaW5rLmNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciA9IGxpbmsuY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yID0gbGluay5jb2xvci5kZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvciA9IGxpbmsuY29sb3IuYWN0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiB0aGlzLmxpbmtMaW5lLmdlbmVyYXRlUGF0aChzb3VyY2UsIHRhcmdldCwgbGluay50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHNvdXJjZS5vcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQub3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGxpbmsudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGVmYXVsdENvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJhY2tCeShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBvbkxpbmVDbGljayhldmVudDogTW91c2VFdmVudCwgbGluazogTGlua0ludGVybmFsKSB7XG4gICAgICAgIHRoaXMubGluZUNsaWNrLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBzb3VyY2U6IGxpbmsuc291cmNlLFxuICAgICAgICAgICAgdGFyZ2V0OiBsaW5rLnRhcmdldFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtb3VzZUVudGVyUGF0aChsaW5rOiBMaW5rSW50ZXJuYWwsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgbGluay5jb2xvciA9IGxpbmsuYWN0aXZlQ29sb3IgfHwgbGluay5kZWZhdWx0Q29sb3I7XG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMubGlua3MubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5saW5rcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5saW5rcy5wdXNoKGxpbmspO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW91c2VMZWF2ZVBhdGgobGluazogTGlua0ludGVybmFsKSB7XG4gICAgICAgIGxpbmsuY29sb3IgPSBsaW5rLmRlZmF1bHRDb2xvcjtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxzdmcgW2F0dHIud2lkdGhdPVwiZ2FudHRVcHBlci52aWV3LndpZHRoXCIgY2xhc3M9XCJnYW50dC1saW5rcy1vdmVybGF5LW1haW5cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgIDxwYXRoXG4gICAgICBbYXR0ci5kXT1cImxpbmsucGF0aFwiXG4gICAgICBmaWxsPVwidHJhbnNwYXJlbnRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICBbYXR0ci5zdHJva2VdPVwibGluay5jb2xvclwiXG4gICAgICBwb2ludGVyLWV2ZW50cz1cIm5vbmVcIlxuICAgICAgW2F0dHIuc3R5bGVdPVwibGluay50eXBlID09PSBnYW50dExpbmtUeXBlcy5zZiA/ICdtYXJrZXItc3RhcnQ6IHVybCgjdHJpYW5nbGUnICsgaSArICcpJyA6ICdtYXJrZXItZW5kOiB1cmwoI3RyaWFuZ2xlJyArIGkgKyAnKSdcIlxuICAgID48L3BhdGg+XG5cbiAgICA8Zz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGNsYXNzPVwibGluay1saW5lXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTGluZUNsaWNrKCRldmVudCwgbGluaylcIlxuICAgICAgICBbYXR0ci5kXT1cImxpbmsucGF0aFwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXJQYXRoKGxpbmssIGkpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZVBhdGgobGluaylcIlxuICAgICAgICBzdHJva2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjlcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIGN1cnNvcj1cInBvaW50ZXJcIlxuICAgICAgPjwvcGF0aD5cbiAgICA8L2c+XG4gICAgPGRlZnMgKm5nSWY9XCJzaG93QXJyb3dcIj5cbiAgICAgIDxtYXJrZXJcbiAgICAgICAgKm5nSWY9XCJsaW5rLnR5cGUgPT09IGdhbnR0TGlua1R5cGVzLnNmOyBlbHNlIG1hcmtlckVuZFwiXG4gICAgICAgIFtpZF09XCIndHJpYW5nbGUnICsgaVwiXG4gICAgICAgIG1hcmtlclVuaXRzPVwic3Ryb2tlV2lkdGhcIlxuICAgICAgICBtYXJrZXJXaWR0aD1cIjVcIlxuICAgICAgICBtYXJrZXJIZWlnaHQ9XCI0XCJcbiAgICAgICAgcmVmWD1cIjVcIlxuICAgICAgICByZWZZPVwiMlwiXG4gICAgICAgIG9yaWVudD1cIjE4MFwiXG4gICAgICA+XG4gICAgICAgIDxwYXRoIFthdHRyLmZpbGxdPVwibGluay5jb2xvclwiIFthdHRyLnN0cm9rZV09XCJsaW5rLmNvbG9yXCIgZD1cIk0gMCAwIEwgNSAyIEwgMCA0IHpcIiAvPlxuICAgICAgPC9tYXJrZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbWFya2VyRW5kPlxuICAgICAgICA8bWFya2VyIFtpZF09XCIndHJpYW5nbGUnICsgaVwiIG1hcmtlclVuaXRzPVwic3Ryb2tlV2lkdGhcIiBtYXJrZXJXaWR0aD1cIjVcIiBtYXJrZXJIZWlnaHQ9XCI0XCIgcmVmWD1cIjVcIiByZWZZPVwiMlwiIG9yaWVudD1cImF1dG9cIj5cbiAgICAgICAgICA8cGF0aCBbYXR0ci5maWxsXT1cImxpbmsuY29sb3JcIiBbYXR0ci5zdHJva2VdPVwibGluay5jb2xvclwiIGQ9XCJNIDAgMCBMIDUgMiBMIDAgNCB6XCIgLz5cbiAgICAgICAgPC9tYXJrZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGVmcz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxsaW5lIGNsYXNzPVwibGluay1kcmFnZ2luZy1saW5lXCI+PC9saW5lPlxuPC9zdmc+XG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvbGlua3MvbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2FudHQvc3JjL2NvbXBvbmVudHMvbGlua3MvbGlua3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQU1ULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBUyxLQUFLLEVBQUUsS0FBSyxFQUFhLE9BQU8sRUFBUyxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBK0IsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUI1QixZQUNzQyxVQUFzQixFQUNoRCxHQUFzQixFQUN0QixVQUFzQixFQUN0QixrQkFBc0MsRUFDdEMsTUFBYztRQUpZLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDaEQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUE3QjFCLDhDQUE4QztRQUU5Qyw0Q0FBNEM7UUFFbkMsYUFBUSxHQUErQyxFQUFFLENBQUM7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SSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQWtCO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnSEExTVEsbUJBQW1CLGtCQTBCaEIsaUJBQWlCO29HQTFCcEIsbUJBQW1CLHdPQzdCaEMsZ3BEQStDQTsyRkRsQmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNJLHFCQUFxQjs7MEJBNkIxQixNQUFNOzJCQUFDLGlCQUFpQjsySkFyQnBCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFnQm1DLGlCQUFpQjtzQkFBMUQsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25DaGFuZ2VzLFxuICAgIE5nWm9uZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGVtcHR5LCBFTVBUWSwgbWVyZ2UsIE5FVkVSLCBvZiwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgc2tpcCwgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHYW50dEdyb3VwSW50ZXJuYWwgfSBmcm9tICcuLi8uLi9jbGFzcy9ncm91cCc7XG5pbXBvcnQgeyBHYW50dEl0ZW1JbnRlcm5hbCB9IGZyb20gJy4vLi4vLi4vY2xhc3MvaXRlbSc7XG5pbXBvcnQgeyBHYW50dExpbmVDbGlja0V2ZW50IH0gZnJvbSAnLi4vLi4vY2xhc3MvZXZlbnQnO1xuaW1wb3J0IHsgR2FudHREcmFnQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vZ2FudHQtZHJhZy1jb250YWluZXInO1xuaW1wb3J0IHsgR0FOVFRfVVBQRVJfVE9LRU4sIEdhbnR0VXBwZXIgfSBmcm9tICcuLi8uLi9nYW50dC11cHBlcic7XG5pbXBvcnQgeyBHYW50dExpbmtJdGVtLCBMaW5rSW50ZXJuYWwsIExpbmtDb2xvcnMsIEdhbnR0TGlua1R5cGUgfSBmcm9tICcuLi8uLi9jbGFzcy9saW5rJztcbmltcG9ydCB7IEdhbnR0TGlua0xpbmUgfSBmcm9tICcuL2xpbmVzL2xpbmUnO1xuaW1wb3J0IHsgY3JlYXRlTGluZUdlbmVyYXRvciB9IGZyb20gJy4vbGluZXMvZmFjdG9yeSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2FudHQtbGlua3Mtb3ZlcmxheScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpbmtzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHYW50dExpbmtzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLy8gQElucHV0KCkgZ3JvdXBzOiBHYW50dEdyb3VwSW50ZXJuYWxbXSA9IFtdO1xuXG4gICAgLy8gQElucHV0KCkgaXRlbXM6IEdhbnR0SXRlbUludGVybmFsW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGZsYXREYXRhOiAoR2FudHRHcm91cEludGVybmFsIHwgR2FudHRJdGVtSW50ZXJuYWwpW10gPSBbXTtcblxuICAgIEBPdXRwdXQoKSBsaW5lQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEdhbnR0TGluZUNsaWNrRXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgbGlua3M6IExpbmtJbnRlcm5hbFtdID0gW107XG5cbiAgICBwdWJsaWMgZ2FudHRMaW5rVHlwZXMgPSBHYW50dExpbmtUeXBlO1xuXG4gICAgcHVibGljIHNob3dBcnJvdyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsaW5rSXRlbXM6IEdhbnR0TGlua0l0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBmaXJzdENoYW5nZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIGxpbmtMaW5lOiBHYW50dExpbmtMaW5lO1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5nYW50dC1saW5rcy1vdmVybGF5JykgZ2FudHRMaW5rc092ZXJsYXkgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoR0FOVFRfVVBQRVJfVE9LRU4pIHB1YmxpYyBnYW50dFVwcGVyOiBHYW50dFVwcGVyLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBnYW50dERyYWdDb250YWluZXI6IEdhbnR0RHJhZ0NvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxpbmtMaW5lID0gY3JlYXRlTGluZUdlbmVyYXRvcih0aGlzLmdhbnR0VXBwZXIubGlua09wdGlvbnMubGluZVR5cGUsIHRoaXMuZ2FudHRVcHBlcik7XG5cbiAgICAgICAgdGhpcy5zaG93QXJyb3cgPSB0aGlzLmdhbnR0VXBwZXIubGlua09wdGlvbnMuc2hvd0Fycm93O1xuICAgICAgICAvLyB0aGlzLmJ1aWxkTGlua3MoKTtcbiAgICAgICAgdGhpcy5maXJzdENoYW5nZSA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuXG4gICAgICAgIHRoaXMuZ2FudHREcmFnQ29udGFpbmVyLmRyYWdTdGFydGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLmdhbnR0VXBwZXIudmlld0NoYW5nZSxcbiAgICAgICAgICAgIHRoaXMuZ2FudHRVcHBlci5leHBhbmRDaGFuZ2UsXG4gICAgICAgICAgICB0aGlzLmdhbnR0VXBwZXIudmlldy5zdGFydCQsXG4gICAgICAgICAgICB0aGlzLmdhbnR0VXBwZXIuZHJhZ0VuZGVkLFxuICAgICAgICAgICAgdGhpcy5nYW50dFVwcGVyLmxpbmtEcmFnRW5kZWQsXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2FudHRVcHBlci50YWJsZT8uZHJhZ0Ryb3BwZWQgfHwgRU1QVFkpKVxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZShza2lwKDEpLCBkZWJvdW5jZVRpbWUoMCksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRMaW5rcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlSXRlbVBvc2l0aW9uKCkge1xuICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gdGhpcy5nYW50dFVwcGVyLnN0eWxlcy5saW5lSGVpZ2h0O1xuICAgICAgICBjb25zdCBiYXJIZWlnaHQgPSB0aGlzLmdhbnR0VXBwZXIuc3R5bGVzLmJhckhlaWdodDtcbiAgICAgICAgdGhpcy5saW5rSXRlbXMgPSBbXTtcbiAgICAgICAgLy8gaWYgKHRoaXMuZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gICAgIGxldCBpdGVtTnVtID0gMDtcbiAgICAgICAgLy8gICAgIGxldCBncm91cE51bSA9IDA7XG4gICAgICAgIC8vICAgICB0aGlzLmdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGdyb3VwTnVtKys7XG4gICAgICAgIC8vICAgICAgICAgaWYgKGdyb3VwLmV4cGFuZGVkKSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gcmVjdXJzaXZlSXRlbXMoZ3JvdXAuaXRlbXMpO1xuICAgICAgICAvLyAgICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIGNvbnN0IHkgPSAoZ3JvdXBOdW0gKyBpdGVtTnVtICsgaXRlbUluZGV4KSAqIGxpbmVIZWlnaHQgKyBpdGVtLnJlZnMueSArIGJhckhlaWdodCAvIDI7XG4gICAgICAgIC8vICAgICAgICAgICAgICAgICB0aGlzLmxpbmtJdGVtcy5wdXNoKHtcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGJlZm9yZToge1xuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB4OiBpdGVtLnJlZnMueCxcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgeVxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IHtcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgeDogaXRlbS5yZWZzLnggKyBpdGVtLnJlZnMud2lkdGgsXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHlcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgIC8vICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgLy8gICAgICAgICAgICAgfSk7XG4gICAgICAgIC8vICAgICAgICAgICAgIGl0ZW1OdW0gKz0gaXRlbXMubGVuZ3RoO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgY29uc3QgaXRlbXMgPSByZWN1cnNpdmVJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgLy8gICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IHkgPSBpdGVtSW5kZXggKiBsaW5lSGVpZ2h0ICsgaXRlbS5yZWZzLnkgKyBiYXJIZWlnaHQgLyAyO1xuICAgICAgICAvLyAgICAgICAgIHRoaXMubGlua0l0ZW1zLnB1c2goe1xuICAgICAgICAvLyAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAvLyAgICAgICAgICAgICBiZWZvcmU6IHtcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIHg6IGl0ZW0ucmVmcy54LFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgeVxuICAgICAgICAvLyAgICAgICAgICAgICB9LFxuICAgICAgICAvLyAgICAgICAgICAgICBhZnRlcjoge1xuICAgICAgICAvLyAgICAgICAgICAgICAgICAgeDogaXRlbS5yZWZzLnggKyBpdGVtLnJlZnMud2lkdGgsXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICB5XG4gICAgICAgIC8vICAgICAgICAgICAgIH1cbiAgICAgICAgLy8gICAgICAgICB9KTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgdGhpcy5mbGF0RGF0YS5mb3JFYWNoKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaXRlbXMnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdhbnR0SXRlbSA9IGl0ZW0gYXMgR2FudHRJdGVtSW50ZXJuYWw7XG4gICAgICAgICAgICAgICAgaWYgKGdhbnR0SXRlbS5yZWZzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBpdGVtSW5kZXggKiBsaW5lSGVpZ2h0ICsgZ2FudHRJdGVtLnJlZnMueSArIGJhckhlaWdodCAvIDI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlua0l0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZ2FudHRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogZ2FudHRJdGVtLnJlZnMueCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBnYW50dEl0ZW0ucmVmcy54ICsgZ2FudHRJdGVtLnJlZnMud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGJ1aWxkTGlua3MoKSB7XG4gICAgICAgIHRoaXMuY29tcHV0ZUl0ZW1Qb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmxpbmtzID0gW107XG4gICAgICAgIHRoaXMubGlua0l0ZW1zLmZvckVhY2goKHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNvdXJjZS5vcmlnaW4uc3RhcnQgfHwgc291cmNlLm9yaWdpbi5lbmQpIHtcbiAgICAgICAgICAgICAgICBzb3VyY2UubGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmxpbmtJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBsaW5rLmxpbmspO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICYmICh0YXJnZXQub3JpZ2luLnN0YXJ0IHx8IHRhcmdldC5vcmlnaW4uZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHRDb2xvcjogc3RyaW5nID0gTGlua0NvbG9ycy5kZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGl2ZUNvbG9yOiBzdHJpbmcgPSBMaW5rQ29sb3JzLmFjdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsudHlwZSA9PT0gR2FudHRMaW5rVHlwZS5mcyAmJiBzb3VyY2UuZW5kLmdldFRpbWUoKSA+IHRhcmdldC5zdGFydC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29sb3IgPSBMaW5rQ29sb3JzLmJsb2NrZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3IgPSBMaW5rQ29sb3JzLmJsb2NrZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbGluay5jb2xvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbG9yID0gbGluay5jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3IgPSBsaW5rLmNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb2xvciA9IGxpbmsuY29sb3IuZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3IgPSBsaW5rLmNvbG9yLmFjdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlua3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogdGhpcy5saW5rTGluZS5nZW5lcmF0ZVBhdGgoc291cmNlLCB0YXJnZXQsIGxpbmsudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBzb3VyY2Uub3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogdGFyZ2V0Lm9yaWdpbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBsaW5rLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGRlZmF1bHRDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYWNrQnkoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgb25MaW5lQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGxpbms6IExpbmtJbnRlcm5hbCkge1xuICAgICAgICB0aGlzLmxpbmVDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgc291cmNlOiBsaW5rLnNvdXJjZSxcbiAgICAgICAgICAgIHRhcmdldDogbGluay50YXJnZXRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbW91c2VFbnRlclBhdGgobGluazogTGlua0ludGVybmFsLCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGxpbmsuY29sb3IgPSBsaW5rLmFjdGl2ZUNvbG9yIHx8IGxpbmsuZGVmYXVsdENvbG9yO1xuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmxpbmtzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMubGlua3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMubGlua3MucHVzaChsaW5rKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdXNlTGVhdmVQYXRoKGxpbms6IExpbmtJbnRlcm5hbCkge1xuICAgICAgICBsaW5rLmNvbG9yID0gbGluay5kZWZhdWx0Q29sb3I7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8c3ZnIFthdHRyLndpZHRoXT1cImdhbnR0VXBwZXIudmlldy53aWR0aFwiIGNsYXNzPVwiZ2FudHQtbGlua3Mtb3ZlcmxheS1tYWluXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3M7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIj5cbiAgICA8cGF0aFxuICAgICAgW2F0dHIuZF09XCJsaW5rLnBhdGhcIlxuICAgICAgZmlsbD1cInRyYW5zcGFyZW50XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgW2F0dHIuc3Ryb2tlXT1cImxpbmsuY29sb3JcIlxuICAgICAgcG9pbnRlci1ldmVudHM9XCJub25lXCJcbiAgICAgIFthdHRyLnN0eWxlXT1cImxpbmsudHlwZSA9PT0gZ2FudHRMaW5rVHlwZXMuc2YgPyAnbWFya2VyLXN0YXJ0OiB1cmwoI3RyaWFuZ2xlJyArIGkgKyAnKScgOiAnbWFya2VyLWVuZDogdXJsKCN0cmlhbmdsZScgKyBpICsgJyknXCJcbiAgICA+PC9wYXRoPlxuXG4gICAgPGc+XG4gICAgICA8cGF0aFxuICAgICAgICBjbGFzcz1cImxpbmstbGluZVwiXG4gICAgICAgIChjbGljayk9XCJvbkxpbmVDbGljaygkZXZlbnQsIGxpbmspXCJcbiAgICAgICAgW2F0dHIuZF09XCJsaW5rLnBhdGhcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyUGF0aChsaW5rLCBpKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmVQYXRoKGxpbmspXCJcbiAgICAgICAgc3Ryb2tlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCI5XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9nPlxuICAgIDxkZWZzICpuZ0lmPVwic2hvd0Fycm93XCI+XG4gICAgICA8bWFya2VyXG4gICAgICAgICpuZ0lmPVwibGluay50eXBlID09PSBnYW50dExpbmtUeXBlcy5zZjsgZWxzZSBtYXJrZXJFbmRcIlxuICAgICAgICBbaWRdPVwiJ3RyaWFuZ2xlJyArIGlcIlxuICAgICAgICBtYXJrZXJVbml0cz1cInN0cm9rZVdpZHRoXCJcbiAgICAgICAgbWFya2VyV2lkdGg9XCI1XCJcbiAgICAgICAgbWFya2VySGVpZ2h0PVwiNFwiXG4gICAgICAgIHJlZlg9XCI1XCJcbiAgICAgICAgcmVmWT1cIjJcIlxuICAgICAgICBvcmllbnQ9XCIxODBcIlxuICAgICAgPlxuICAgICAgICA8cGF0aCBbYXR0ci5maWxsXT1cImxpbmsuY29sb3JcIiBbYXR0ci5zdHJva2VdPVwibGluay5jb2xvclwiIGQ9XCJNIDAgMCBMIDUgMiBMIDAgNCB6XCIgLz5cbiAgICAgIDwvbWFya2VyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI21hcmtlckVuZD5cbiAgICAgICAgPG1hcmtlciBbaWRdPVwiJ3RyaWFuZ2xlJyArIGlcIiBtYXJrZXJVbml0cz1cInN0cm9rZVdpZHRoXCIgbWFya2VyV2lkdGg9XCI1XCIgbWFya2VySGVpZ2h0PVwiNFwiIHJlZlg9XCI1XCIgcmVmWT1cIjJcIiBvcmllbnQ9XCJhdXRvXCI+XG4gICAgICAgICAgPHBhdGggW2F0dHIuZmlsbF09XCJsaW5rLmNvbG9yXCIgW2F0dHIuc3Ryb2tlXT1cImxpbmsuY29sb3JcIiBkPVwiTSAwIDAgTCA1IDIgTCAwIDQgelwiIC8+XG4gICAgICAgIDwvbWFya2VyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2RlZnM+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bGluZSBjbGFzcz1cImxpbmstZHJhZ2dpbmctbGluZVwiPjwvbGluZT5cbjwvc3ZnPlxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GanttLoaderComponent {
|
|
4
|
+
}
|
|
5
|
+
GanttLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
GanttLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: GanttLoaderComponent, selector: "gantt-loader", host: { classAttribute: "gantt-loader gantt-loader-overlay" }, ngImport: i0, template: `
|
|
7
|
+
<div class="gantt-loader-wrapper">
|
|
8
|
+
<div class="gantt-loader-loading">
|
|
9
|
+
<span class="gantt-loader-loading-spot"></span>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
`, isInline: true });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GanttLoaderComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: 'gantt-loader',
|
|
17
|
+
template: `
|
|
18
|
+
<div class="gantt-loader-wrapper">
|
|
19
|
+
<div class="gantt-loader-loading">
|
|
20
|
+
<span class="gantt-loader-loading-spot"></span>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
`,
|
|
24
|
+
host: {
|
|
25
|
+
class: 'gantt-loader gantt-loader-overlay'
|
|
26
|
+
}
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dhbnR0L3NyYy9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZTFDLE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7cUdBQXBCLG9CQUFvQixtSEFYbkI7Ozs7OztLQU1UOzJGQUtRLG9CQUFvQjtrQkFiaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOzs7Ozs7S0FNVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLG1DQUFtQztxQkFDN0M7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnYW50dC1sb2FkZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYW50dC1sb2FkZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbnR0LWxvYWRlci1sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnYW50dC1sb2FkZXItbG9hZGluZy1zcG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2dhbnR0LWxvYWRlciBnYW50dC1sb2FkZXItb3ZlcmxheSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEdhbnR0TG9hZGVyQ29tcG9uZW50IHt9XG4iXX0=
|