ngx-histaff-alpha 3.4.1 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/interfaces/time-management/IAtShift.mjs +1 -1
- package/esm2022/lib/app/libraries/core-shift-cell/core-shift-cell.component.mjs +60 -35
- package/esm2022/lib/app/libraries/core-shift-sticker/core-shift-sticker.component.mjs +36 -20
- package/fesm2022/ngx-histaff-alpha.mjs +91 -51
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/interfaces/time-management/IAtShift.d.ts +2 -1
- package/lib/app/libraries/core-shift-cell/core-shift-cell.component.d.ts +7 -3
- package/lib/app/libraries/core-shift-sticker/core-shift-sticker.component.d.ts +17 -14
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUF0U2hpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9pbnRlcmZhY2VzL3RpbWUtbWFuYWdlbWVudC9JQXRTaGlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUF0U3ltYm9sIH0gZnJvbSBcIi4vSUF0U3ltYm9sXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdFNoaWZ0IHtcclxuICAgIGlkPzogbnVtYmVyO1xyXG4gICAgY29kZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBJQXRTeW1ib2w7XHJcbiAgICBob3Vyc1N0YXJ0OiBEYXRlO1xyXG4gICAgaG91cnNTdG9wOiBEYXRlO1xyXG4gICAgYnJlYWtzRnJvbT86IERhdGU7XHJcbiAgICBicmVha3NUbz86IERhdGU7XHJcbiAgICB0aW1lTGF0ZT86IG51bWJlcjtcclxuICAgIHRpbWVFYXJseT86IG51bWJlcjtcclxuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcclxuICAgIHRpbWVTdGFydD86IERhdGU7XHJcbiAgICB0aW1lU3RvcD86IERhdGU7XHJcbiAgICBtaW5Ib3Vyc1dvcms/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUF0U2hpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9pbnRlcmZhY2VzL3RpbWUtbWFuYWdlbWVudC9JQXRTaGlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUF0U3ltYm9sIH0gZnJvbSBcIi4vSUF0U3ltYm9sXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdFNoaWZ0IHtcclxuICAgIGlkPzogbnVtYmVyO1xyXG4gICAgY29kZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBJQXRTeW1ib2w7XHJcbiAgICBob3Vyc1N0YXJ0OiBEYXRlO1xyXG4gICAgaG91cnNTdG9wOiBEYXRlO1xyXG4gICAgYnJlYWtzRnJvbT86IERhdGU7XHJcbiAgICBicmVha3NUbz86IERhdGU7XHJcbiAgICB0aW1lTGF0ZT86IG51bWJlcjtcclxuICAgIHRpbWVFYXJseT86IG51bWJlcjtcclxuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcclxuICAgIHRpbWVTdGFydD86IERhdGU7XHJcbiAgICB0aW1lU3RvcD86IERhdGU7XHJcbiAgICBtaW5Ib3Vyc1dvcms/OiBudW1iZXI7ICAgIFxyXG4gICAgYWRkZWQ/OiBib29sZWFuO1xyXG4gICAgZGVsZXRlZD86IGJvb2xlYW47XHJcbn0iXX0=
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, input, viewChild,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, viewChild, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { CoreShiftStickerComponent } from '../core-shift-sticker/core-shift-sticker.component';
|
|
3
3
|
import { BehaviorSubject, debounceTime, filter, fromEvent, Subscription } from 'rxjs';
|
|
4
4
|
import { CoreFormControlBaseComponent } from '../core-form-control-base/core-form-control-base.component';
|
|
5
5
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
+
import { EnumTranslateKey } from 'alpha-global-constants';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../../services/work-shift-dnd.service";
|
|
8
9
|
import * as i2 from "../../services/dialog.service";
|
|
9
10
|
export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
10
11
|
writeValue(obj) {
|
|
11
|
-
this
|
|
12
|
+
this.value = obj;
|
|
13
|
+
const newShifts = [];
|
|
14
|
+
obj?.map(x => {
|
|
15
|
+
newShifts.push(new BehaviorSubject(x));
|
|
16
|
+
});
|
|
17
|
+
this.shifts = newShifts;
|
|
12
18
|
}
|
|
13
19
|
constructor(cdr, workShiftDndService, dialogService) {
|
|
14
20
|
super();
|
|
@@ -26,8 +32,8 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
26
32
|
drop: new Subscription(() => null),
|
|
27
33
|
dragleave: new Subscription(() => null)
|
|
28
34
|
};
|
|
29
|
-
this
|
|
30
|
-
{
|
|
35
|
+
this.shifts = [
|
|
36
|
+
new BehaviorSubject({
|
|
31
37
|
code: 'X',
|
|
32
38
|
name: 'Ca làm việc ngày thường',
|
|
33
39
|
symbol: {
|
|
@@ -37,8 +43,8 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
37
43
|
},
|
|
38
44
|
hoursStart: new Date(2024, 7, 13, 8, 0, 0),
|
|
39
45
|
hoursStop: new Date(2024, 7, 13, 17, 30, 0)
|
|
40
|
-
},
|
|
41
|
-
{
|
|
46
|
+
}),
|
|
47
|
+
new BehaviorSubject({
|
|
42
48
|
code: 'OFF',
|
|
43
49
|
name: 'Ca ngày nghỉ',
|
|
44
50
|
symbol: {
|
|
@@ -48,8 +54,8 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
48
54
|
},
|
|
49
55
|
hoursStart: new Date(2024, 7, 13, 8, 0, 0),
|
|
50
56
|
hoursStop: new Date(2024, 7, 13, 17, 30, 0)
|
|
51
|
-
},
|
|
52
|
-
{
|
|
57
|
+
}),
|
|
58
|
+
new BehaviorSubject({
|
|
53
59
|
code: 'CT',
|
|
54
60
|
name: 'Ca công tác',
|
|
55
61
|
symbol: {
|
|
@@ -59,10 +65,33 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
59
65
|
},
|
|
60
66
|
hoursStart: new Date(2024, 7, 13, 8, 0, 0),
|
|
61
67
|
hoursStop: new Date(2024, 7, 13, 17, 30, 0)
|
|
62
|
-
}
|
|
63
|
-
]
|
|
68
|
+
})
|
|
69
|
+
];
|
|
64
70
|
this.onDropStream$ = new BehaviorSubject('');
|
|
65
71
|
}
|
|
72
|
+
cleanUpSubscriptions() {
|
|
73
|
+
this.dndEventSubscriptions.dragenter?.unsubscribe();
|
|
74
|
+
this.dndEventSubscriptions.dragover?.unsubscribe();
|
|
75
|
+
this.dndEventSubscriptions.drop?.unsubscribe();
|
|
76
|
+
this.dndEventSubscriptions.dragleave?.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
cleanUpSubsequentSubscriptions() {
|
|
79
|
+
this.dndEventSubscriptions.dragover?.unsubscribe();
|
|
80
|
+
this.dndEventSubscriptions.drop?.unsubscribe();
|
|
81
|
+
this.dndEventSubscriptions.dragleave?.unsubscribe();
|
|
82
|
+
}
|
|
83
|
+
isOverlapse(shifts) {
|
|
84
|
+
const nonDeletedShifts = shifts.filter(shift$ => !shift$.value.deleted);
|
|
85
|
+
for (let i = 0; i < nonDeletedShifts.length; i++) {
|
|
86
|
+
for (let j = i + 1; j < nonDeletedShifts.length; j++) {
|
|
87
|
+
if (nonDeletedShifts[i].value.hoursStart < nonDeletedShifts[j].value.hoursStop &&
|
|
88
|
+
nonDeletedShifts[i].value.hoursStop > nonDeletedShifts[j].value.hoursStart) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
66
95
|
ngAfterViewInit() {
|
|
67
96
|
setTimeout(() => {
|
|
68
97
|
this.onDropStream$.pipe(filter(x => !!x.length), debounceTime(500)).subscribe(x => {
|
|
@@ -77,6 +106,7 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
77
106
|
const dragleaveEvent = fromEvent(containerElement, 'dragleave');
|
|
78
107
|
this.dndEventSubscriptions.dragenter = dragenterEvent.subscribe((ev) => {
|
|
79
108
|
ev.preventDefault();
|
|
109
|
+
this.cleanUpSubsequentSubscriptions();
|
|
80
110
|
if (this.workShiftDndService.draggingFromCellId$.value === this.shiftCellId)
|
|
81
111
|
return;
|
|
82
112
|
this.dragElements.add(ev.target);
|
|
@@ -100,33 +130,25 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
100
130
|
this.$container()?.nativeElement.style.setProperty('--background-color', this.$backgroundColor());
|
|
101
131
|
this.cdr.markForCheck();
|
|
102
132
|
const data = ev.dataTransfer?.getData('text/plain'); // Example data retrieval
|
|
103
|
-
/*
|
|
104
|
-
this.dialogService.createNew(
|
|
105
|
-
EnumTranslateKey.UI_GRID_FORM_BUTTON_INFORMATION,
|
|
106
|
-
undefined,
|
|
107
|
-
undefined,
|
|
108
|
-
undefined,
|
|
109
|
-
EnumTranslateKey.UI_GRID_FORM_BUTTON_INFORMATION,
|
|
110
|
-
[
|
|
111
|
-
"shiftId: " + this.workShiftDndService.draggingShift$.value?.id,
|
|
112
|
-
"shiftCode: " + this.workShiftDndService.draggingShift$.value?.code,
|
|
113
|
-
"dragoverCellId: " + this.workShiftDndService.dragoverCellId$.value,
|
|
114
|
-
"**************",
|
|
115
|
-
"WHATEVER LOGIC CAN BE ADDED WITH (onDrop) @Output() AND USING WorkShiftDndService"
|
|
116
|
-
]
|
|
117
|
-
)
|
|
118
|
-
*/
|
|
119
133
|
this.onDropStream$.next(this.shiftCellId);
|
|
120
134
|
// Handle drop logic based on data
|
|
121
135
|
if (data) {
|
|
122
136
|
// Process dropped data here
|
|
123
|
-
this
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
128
|
-
return x;
|
|
137
|
+
const newShifts = this.shifts;
|
|
138
|
+
const beingPushed = new BehaviorSubject({
|
|
139
|
+
...this.workShiftDndService.draggingShift$.value,
|
|
140
|
+
added: true,
|
|
129
141
|
});
|
|
142
|
+
const merged = [
|
|
143
|
+
...newShifts,
|
|
144
|
+
beingPushed
|
|
145
|
+
];
|
|
146
|
+
if (this.isOverlapse(merged)) {
|
|
147
|
+
this.dialogService.createNew(EnumTranslateKey.UI_GRID_FORM_BUTTON_INFORMATION, undefined, undefined, undefined, EnumTranslateKey.WORK_SHIFT_OVERLAP_DETECTED, []);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
newShifts.push(beingPushed);
|
|
151
|
+
this.shifts = newShifts;
|
|
130
152
|
}
|
|
131
153
|
});
|
|
132
154
|
});
|
|
@@ -147,6 +169,9 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
147
169
|
});
|
|
148
170
|
});
|
|
149
171
|
}
|
|
172
|
+
ngOnDestroy() {
|
|
173
|
+
this.cleanUpSubscriptions();
|
|
174
|
+
}
|
|
150
175
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreShiftCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.WorkShiftDndService }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
151
176
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreShiftCellComponent, isStandalone: true, selector: "core-shift-cell", inputs: { $backgroundColor: { classPropertyName: "$backgroundColor", publicName: "$backgroundColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDrop: "onDrop" }, providers: [
|
|
152
177
|
{
|
|
@@ -154,7 +179,7 @@ export class CoreShiftCellComponent extends CoreFormControlBaseComponent {
|
|
|
154
179
|
multi: true,
|
|
155
180
|
useExisting: CoreShiftCellComponent
|
|
156
181
|
}
|
|
157
|
-
], viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-shift-cell-container\">\r\n @for (shift of
|
|
182
|
+
], viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-shift-cell-container\">\r\n @for (shift$ of shifts!; track $index) {\r\n <core-shift-sticker [shift$]=\"shift$\" [$shiftCellId]=\"shiftCellId\" [$width]=\"228\"></core-shift-sticker>\r\n }\r\n</div>\r\n", styles: [".core-shift-cell-container{--background-color: #000000;padding:15px;background-color:var(--background-color);animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.core-shift-cell-container.valid-drop{background-color:#90ee90}.core-shift-cell-container.invalid-drop{background-color:#f08080}\n"], dependencies: [{ kind: "component", type: CoreShiftStickerComponent, selector: "core-shift-sticker", inputs: ["shift$", "$shiftCellId", "checked", "$height", "$width"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
158
183
|
}
|
|
159
184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreShiftCellComponent, decorators: [{
|
|
160
185
|
type: Component,
|
|
@@ -166,8 +191,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
166
191
|
multi: true,
|
|
167
192
|
useExisting: CoreShiftCellComponent
|
|
168
193
|
}
|
|
169
|
-
], template: "<div #container class=\"core-shift-cell-container\">\r\n @for (shift of
|
|
194
|
+
], template: "<div #container class=\"core-shift-cell-container\">\r\n @for (shift$ of shifts!; track $index) {\r\n <core-shift-sticker [shift$]=\"shift$\" [$shiftCellId]=\"shiftCellId\" [$width]=\"228\"></core-shift-sticker>\r\n }\r\n</div>\r\n", styles: [".core-shift-cell-container{--background-color: #000000;padding:15px;background-color:var(--background-color);animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.core-shift-cell-container.valid-drop{background-color:#90ee90}.core-shift-cell-container.invalid-drop{background-color:#f08080}\n"] }]
|
|
170
195
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.WorkShiftDndService }, { type: i2.DialogService }], propDecorators: { onDrop: [{
|
|
171
196
|
type: Output
|
|
172
197
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQXFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pMLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUF3QixNQUFNLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQTRCbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQU03RCxVQUFVLENBQUMsR0FBZTtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBcURELFlBQ1UsR0FBc0IsRUFDdEIsbUJBQXdDLEVBQ3hDLGFBQTRCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBSkEsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTlENUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFRL0MscUJBQWdCLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxTQUFTLENBQWEsV0FBVyxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBVyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsaUJBQVksR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVuRCwwQkFBcUIsR0FBZ0M7WUFDbkQsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUN2QyxRQUFRLEVBQUUsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ3RDLElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDbEMsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztTQUN4QyxDQUFBO1FBRUQsWUFBTyxHQUErQixNQUFNLENBQUM7WUFDM0M7Z0JBQ0UsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFFLHlCQUF5QjtnQkFDL0IsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxHQUFHO29CQUNULElBQUksRUFBRSxHQUFHO29CQUNULFNBQVMsRUFBRSxJQUFJO2lCQUNoQjtnQkFDRCxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUM1QztZQUNEO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxjQUFjO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLEtBQUs7b0JBQ1gsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0QsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDNUM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtnQkFDRCxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUM1QztTQUNGLENBQUMsQ0FBQztRQUVILGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFRaEQsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3ZCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxhQUFhLENBQUM7WUFFMUQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFHeEIsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM5RCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUMxRSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVztvQkFBRSxPQUFNO2dCQUNuRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBcUIsQ0FBQyxDQUFDO2dCQUNoRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNuRixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3BGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3pCO2dCQUVELDRDQUE0QztnQkFDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUU7b0JBQ3hFLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUNqRSxDQUFDLENBQUMsQ0FBQztnQkFFSCwwQkFBMEI7Z0JBQzFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO29CQUNoRSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3BCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVzt3QkFBRSxPQUFNO29CQUNuRixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsZ0JBQWdCO29CQUMzQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUVoRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFFbEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFFeEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7b0JBRTlFOzs7Ozs7Ozs7Ozs7Ozs7c0JBZUU7b0JBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO29CQUV6QyxrQ0FBa0M7b0JBQ2xDLElBQUksSUFBSSxFQUFFO3dCQUNSLDRCQUE0Qjt3QkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0NBQ0wsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEtBQU07Z0NBQ2pELE9BQU8sRUFBRSxJQUFJOzZCQUNkLENBQUMsQ0FBQTs0QkFDRixPQUFPLENBQUMsQ0FBQzt3QkFDWCxDQUFDLENBQUMsQ0FBQTtxQkFDSDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUU7Z0JBQzFFLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXO29CQUFFLE9BQU07Z0JBQ25GLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ25ELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNoQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDbEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFFeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFFL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBRTlDLENBQUMsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVLVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixrUUFWdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDO1NBQ0YsMEtDOUJILHNQQUtBLG1YRGlCSSx5QkFBeUI7OzJGQVloQixzQkFBc0I7a0JBakJsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCx5QkFBeUI7cUJBQzFCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx3QkFBd0I7eUJBQ3BDO3FCQUNGO29KQU1TLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGlucHV0LCB2aWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlU2hpZnRTdGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1zaGlmdC1zdGlja2VyL2NvcmUtc2hpZnQtc3RpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQXRTaGlmdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZS1tYW5hZ2VtZW50L0lBdFNoaWZ0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFdvcmtTaGlmdERuZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93b3JrLXNoaWZ0LWRuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHJvcHBhYmxlRXZlbnRTdWJzY3JpcHRpb24ge1xyXG4gIGRyYWdlbnRlcjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyYWdvdmVyOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQsXHJcbiAgZHJhZ2xlYXZlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQsXHJcbiAgZHJvcDogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zaGlmdC1jZWxsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVTaGlmdFN0aWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlU2hpZnRDZWxsQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNoaWZ0Q2VsbENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQE91dHB1dCgpIG9uRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBJQXRTaGlmdFtdO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogSUF0U2hpZnRbXSk6IHZvaWQge1xyXG4gICAgdGhpcy4kc2hpZnRzLnNldChvYmopO1xyXG4gIH1cclxuXHJcbiAgJGJhY2tncm91bmRDb2xvciA9IGlucHV0PHN0cmluZz4oJ3doaXRlJyk7XHJcbiAgJGNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignY29udGFpbmVyJyk7XHJcbiAgc2hpZnRDZWxsSWQ6IHN0cmluZyA9IGNyeXB0by5yYW5kb21VVUlEKCk7XHJcblxyXG4gIHByaXZhdGUgZHJhZ0VsZW1lbnRzOiBTZXQ8RXZlbnRUYXJnZXQ+ID0gbmV3IFNldCgpO1xyXG5cclxuICBkbmRFdmVudFN1YnNjcmlwdGlvbnM6IElEcm9wcGFibGVFdmVudFN1YnNjcmlwdGlvbiA9IHtcclxuICAgIGRyYWdlbnRlcjogbmV3IFN1YnNjcmlwdGlvbigoKSA9PiBudWxsKSxcclxuICAgIGRyYWdvdmVyOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpLFxyXG4gICAgZHJvcDogbmV3IFN1YnNjcmlwdGlvbigoKSA9PiBudWxsKSxcclxuICAgIGRyYWdsZWF2ZTogbmV3IFN1YnNjcmlwdGlvbigoKSA9PiBudWxsKVxyXG4gIH1cclxuXHJcbiAgJHNoaWZ0czogV3JpdGFibGVTaWduYWw8SUF0U2hpZnRbXT4gPSBzaWduYWwoW1xyXG4gICAge1xyXG4gICAgICBjb2RlOiAnWCcsXHJcbiAgICAgIG5hbWU6ICdDYSBsw6BtIHZp4buHYyBuZ8OgeSB0aMaw4budbmcnLFxyXG4gICAgICBzeW1ib2w6IHtcclxuICAgICAgICBjb2RlOiAnWCcsXHJcbiAgICAgICAgbmFtZTogJ1gnLFxyXG4gICAgICAgIGlzSGF2ZVNhbDogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgaG91cnNTdGFydDogbmV3IERhdGUoMjAyNCwgNywgMTMsIDgsIDAsIDApLFxyXG4gICAgICBob3Vyc1N0b3A6IG5ldyBEYXRlKDIwMjQsIDcsIDEzLCAxNywgMzAsIDApXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjb2RlOiAnT0ZGJyxcclxuICAgICAgbmFtZTogJ0NhIG5nw6B5IG5naOG7iScsXHJcbiAgICAgIHN5bWJvbDoge1xyXG4gICAgICAgIGNvZGU6ICdPRkYnLFxyXG4gICAgICAgIG5hbWU6ICdPRkYnLFxyXG4gICAgICAgIGlzT2ZmOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBob3Vyc1N0YXJ0OiBuZXcgRGF0ZSgyMDI0LCA3LCAxMywgOCwgMCwgMCksXHJcbiAgICAgIGhvdXJzU3RvcDogbmV3IERhdGUoMjAyNCwgNywgMTMsIDE3LCAzMCwgMClcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNvZGU6ICdDVCcsXHJcbiAgICAgIG5hbWU6ICdDYSBjw7RuZyB0w6FjJyxcclxuICAgICAgc3ltYm9sOiB7XHJcbiAgICAgICAgY29kZTogJ0NUJyxcclxuICAgICAgICBuYW1lOiAnQ1InLFxyXG4gICAgICAgIGlzUmVnaXN0ZXI6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGhvdXJzU3RhcnQ6IG5ldyBEYXRlKDIwMjQsIDcsIDEzLCA4LCAwLCAwKSxcclxuICAgICAgaG91cnNTdG9wOiBuZXcgRGF0ZSgyMDI0LCA3LCAxMywgMTcsIDMwLCAwKVxyXG4gICAgfVxyXG4gIF0pO1xyXG5cclxuICBvbkRyb3BTdHJlYW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHdvcmtTaGlmdERuZFNlcnZpY2U6IFdvcmtTaGlmdERuZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLm9uRHJvcFN0cmVhbSQucGlwZShcclxuICAgICAgICBmaWx0ZXIoeCA9PiAhIXgubGVuZ3RoKSxcclxuICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKVxyXG4gICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLm9uRHJvcC5lbWl0KHRydWUpO1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgY29udGFpbmVyRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1iYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy4kYmFja2dyb3VuZENvbG9yKCkpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcblxyXG4gICAgICBjb25zdCBkcmFnZW50ZXJFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2VudGVyJyk7XHJcbiAgICAgIGNvbnN0IGRyYWdvdmVyRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2RyYWdvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGRyb3BFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJvcCcpO1xyXG4gICAgICBjb25zdCBkcmFnbGVhdmVFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2xlYXZlJyk7XHJcblxyXG4gICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnZW50ZXIgPSBkcmFnZW50ZXJFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC52YWx1ZSA9PT0gdGhpcy5zaGlmdENlbGxJZCkgcmV0dXJuXHJcbiAgICAgICAgdGhpcy5kcmFnRWxlbWVudHMuYWRkKGV2LnRhcmdldCBhcyBFdmVudFRhcmdldCk7XHJcbiAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0RhdGEkLnZhbHVlLnNwbGl0KCc6JylbMF0gIT09IHRoaXMuc2hpZnRDZWxsSWQpIHtcclxuICAgICAgICAgIHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWJhY2tncm91bmQtY29sb3InLCAnI2ZmZjRjZScpO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZHJhZ292ZXIgZXZlbnQgdG8gYWxsb3cgZHJvcFxyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdvdmVyID0gZHJhZ292ZXJFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ292ZXJDZWxsSWQkLm5leHQodGhpcy5zaGlmdENlbGxJZClcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGRyb3AgZXZlbnRcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wID0gZHJvcEV2ZW50LnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC52YWx1ZSA9PT0gdGhpcy5zaGlmdENlbGxJZCkgcmV0dXJuXHJcbiAgICAgICAgICB0aGlzLmRyYWdFbGVtZW50cy5jbGVhcigpOyAvLyBDbGVhciB0aGUgc2V0XHJcbiAgICAgICAgICBjb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkLWRyb3AnKTtcclxuXHJcbiAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1iYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy4kYmFja2dyb3VuZENvbG9yKCkpO1xyXG5cclxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGRhdGEgPSBldi5kYXRhVHJhbnNmZXI/LmdldERhdGEoJ3RleHQvcGxhaW4nKTsgLy8gRXhhbXBsZSBkYXRhIHJldHJpZXZhbFxyXG5cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY3JlYXRlTmV3KFxyXG4gICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0dSSURfRk9STV9CVVRUT05fSU5GT1JNQVRJT04sXHJcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfR1JJRF9GT1JNX0JVVFRPTl9JTkZPUk1BVElPTixcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIFwic2hpZnRJZDogXCIgKyB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdTaGlmdCQudmFsdWU/LmlkLFxyXG4gICAgICAgICAgICAgIFwic2hpZnRDb2RlOiBcIiArIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ1NoaWZ0JC52YWx1ZT8uY29kZSxcclxuICAgICAgICAgICAgICBcImRyYWdvdmVyQ2VsbElkOiBcIiArIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnb3ZlckNlbGxJZCQudmFsdWUsXHJcbiAgICAgICAgICAgICAgXCIqKioqKioqKioqKioqKlwiLFxyXG4gICAgICAgICAgICAgIFwiV0hBVEVWRVIgTE9HSUMgQ0FOIEJFIEFEREVEIFdJVEggKG9uRHJvcCkgQE91dHB1dCgpIEFORCBVU0lORyBXb3JrU2hpZnREbmRTZXJ2aWNlXCJcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICB0aGlzLm9uRHJvcFN0cmVhbSQubmV4dCh0aGlzLnNoaWZ0Q2VsbElkKVxyXG5cclxuICAgICAgICAgIC8vIEhhbmRsZSBkcm9wIGxvZ2ljIGJhc2VkIG9uIGRhdGFcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIC8vIFByb2Nlc3MgZHJvcHBlZCBkYXRhIGhlcmVcclxuICAgICAgICAgICAgdGhpcy4kc2hpZnRzLnVwZGF0ZSh4ID0+IHtcclxuICAgICAgICAgICAgICB4LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgLi4udGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLnZhbHVlISxcclxuICAgICAgICAgICAgICAgIHBlbmRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2xlYXZlID0gZHJhZ2xlYXZlRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG4gICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRzLmRlbGV0ZShldi50YXJnZXQgYXMgRXZlbnRUYXJnZXQpO1xyXG4gICAgICAgIGlmICh0aGlzLmRyYWdFbGVtZW50cy5zaXplID09PSAwKSB7XHJcbiAgICAgICAgICBjb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkLWRyb3AnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJvcD8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJvcCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiY29yZS1zaGlmdC1jZWxsLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAoc2hpZnQgb2YgJHNoaWZ0cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8Y29yZS1zaGlmdC1zdGlja2VyIFskc2hpZnRdPVwic2hpZnRcIiBbJHNoaWZ0Q2VsbElkXT1cInNoaWZ0Q2VsbElkXCIgWyR3aWR0aF09XCIyMjhcIj48L2NvcmUtc2hpZnQtc3RpY2tlcj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQTZDLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUwsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBMEIxRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsNEJBQTRCO0lBTTdELFVBQVUsQ0FBQyxHQUFlO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFnQyxFQUFFLENBQUM7UUFDbEQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLFNBQVMsQ0FBQyxJQUFJLENBQ1osSUFBSSxlQUFlLENB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QUM7SUFDOUIsQ0FBQzs4R0FyTlUsc0JBQXNCO2tHQUF0QixzQkFBc0Isa1FBVnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLHNCQUFzQjthQUNwQztTQUNGLDBLQzlCSCxzUEFLQSxtWERpQkkseUJBQXlCOzsyRkFZaEIsc0JBQXNCO2tCQWpCbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AseUJBQXlCO3FCQUMxQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsd0JBQXdCO3lCQUNwQztxQkFDRjtvSkFNUyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbnB1dCwgdmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlU2hpZnRTdGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1zaGlmdC1zdGlja2VyL2NvcmUtc2hpZnQtc3RpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQXRTaGlmdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZS1tYW5hZ2VtZW50L0lBdFNoaWZ0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFdvcmtTaGlmdERuZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93b3JrLXNoaWZ0LWRuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHJvcHBhYmxlRXZlbnRTdWJzY3JpcHRpb24ge1xyXG4gIGRyYWdlbnRlcjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyYWdvdmVyOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQsXHJcbiAgZHJhZ2xlYXZlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQsXHJcbiAgZHJvcDogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zaGlmdC1jZWxsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVTaGlmdFN0aWNrZXJDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlU2hpZnRDZWxsQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNoaWZ0Q2VsbENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAT3V0cHV0KCkgb25Ecm9wID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElBdFNoaWZ0W107XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBJQXRTaGlmdFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgY29uc3QgbmV3U2hpZnRzOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXTtcclxuICAgIG9iaj8ubWFwKHggPT4ge1xyXG4gICAgICBuZXdTaGlmdHMucHVzaChcclxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PElBdFNoaWZ0Pih4KVxyXG4gICAgICApXHJcbiAgICB9KVxyXG4gICAgdGhpcy5zaGlmdHMgPSBuZXdTaGlmdHNcclxuICB9XHJcblxyXG4gICRiYWNrZ3JvdW5kQ29sb3IgPSBpbnB1dDxzdHJpbmc+KCd3aGl0ZScpO1xyXG4gICRjb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NvbnRhaW5lcicpO1xyXG4gIHNoaWZ0Q2VsbElkOiBzdHJpbmcgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG5cclxuICBwcml2YXRlIGRyYWdFbGVtZW50czogU2V0PEV2ZW50VGFyZ2V0PiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgZG5kRXZlbnRTdWJzY3JpcHRpb25zOiBJRHJvcHBhYmxlRXZlbnRTdWJzY3JpcHRpb24gPSB7XHJcbiAgICBkcmFnZW50ZXI6IG5ldyBTdWJzY3JpcHRpb24oKCkgPT4gbnVsbCksXHJcbiAgICBkcmFnb3ZlcjogbmV3IFN1YnNjcmlwdGlvbigoKSA9PiBudWxsKSxcclxuICAgIGRyb3A6IG5ldyBTdWJzY3JpcHRpb24oKCkgPT4gbnVsbCksXHJcbiAgICBkcmFnbGVhdmU6IG5ldyBTdWJzY3JpcHRpb24oKCkgPT4gbnVsbClcclxuICB9XHJcblxyXG4gIHNoaWZ0czogQmVoYXZpb3JTdWJqZWN0PElBdFNoaWZ0PltdID0gW1xyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD4oe1xyXG4gICAgICBjb2RlOiAnWCcsXHJcbiAgICAgIG5hbWU6ICdDYSBsw6BtIHZp4buHYyBuZ8OgeSB0aMaw4budbmcnLFxyXG4gICAgICBzeW1ib2w6IHtcclxuICAgICAgICBjb2RlOiAnWCcsXHJcbiAgICAgICAgbmFtZTogJ1gnLFxyXG4gICAgICAgIGlzSGF2ZVNhbDogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgaG91cnNTdGFydDogbmV3IERhdGUoMjAyNCwgNywgMTMsIDgsIDAsIDApLFxyXG4gICAgICBob3Vyc1N0b3A6IG5ldyBEYXRlKDIwMjQsIDcsIDEzLCAxNywgMzAsIDApXHJcbiAgICB9KSxcclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+KHtcclxuICAgICAgY29kZTogJ09GRicsXHJcbiAgICAgIG5hbWU6ICdDYSBuZ8OgeSBuZ2jhu4knLFxyXG4gICAgICBzeW1ib2w6IHtcclxuICAgICAgICBjb2RlOiAnT0ZGJyxcclxuICAgICAgICBuYW1lOiAnT0ZGJyxcclxuICAgICAgICBpc09mZjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgaG91cnNTdGFydDogbmV3IERhdGUoMjAyNCwgNywgMTMsIDgsIDAsIDApLFxyXG4gICAgICBob3Vyc1N0b3A6IG5ldyBEYXRlKDIwMjQsIDcsIDEzLCAxNywgMzAsIDApXHJcbiAgICB9KSxcclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+KHtcclxuICAgICAgY29kZTogJ0NUJyxcclxuICAgICAgbmFtZTogJ0NhIGPDtG5nIHTDoWMnLFxyXG4gICAgICBzeW1ib2w6IHtcclxuICAgICAgICBjb2RlOiAnQ1QnLFxyXG4gICAgICAgIG5hbWU6ICdDUicsXHJcbiAgICAgICAgaXNSZWdpc3RlcjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgaG91cnNTdGFydDogbmV3IERhdGUoMjAyNCwgNywgMTMsIDgsIDAsIDApLFxyXG4gICAgICBob3Vyc1N0b3A6IG5ldyBEYXRlKDIwMjQsIDcsIDEzLCAxNywgMzAsIDApXHJcbiAgICB9KVxyXG4gIF07XHJcblxyXG4gIG9uRHJvcFN0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgd29ya1NoaWZ0RG5kU2VydmljZTogV29ya1NoaWZ0RG5kU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFuVXBTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2VudGVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2xlYXZlPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhblVwU3Vic2VxdWVudFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3Zlcj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3A/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnbGVhdmU/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzT3ZlcmxhcHNlKHNoaWZ0czogQmVoYXZpb3JTdWJqZWN0PElBdFNoaWZ0PltdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub25EZWxldGVkU2hpZnRzID0gc2hpZnRzLmZpbHRlcihzaGlmdCQgPT4gIXNoaWZ0JC52YWx1ZS5kZWxldGVkKTtcclxuICBcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9uRGVsZXRlZFNoaWZ0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBub25EZWxldGVkU2hpZnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgbm9uRGVsZXRlZFNoaWZ0c1tpXS52YWx1ZS5ob3Vyc1N0YXJ0IDwgbm9uRGVsZXRlZFNoaWZ0c1tqXS52YWx1ZS5ob3Vyc1N0b3AgJiZcclxuICAgICAgICAgIG5vbkRlbGV0ZWRTaGlmdHNbaV0udmFsdWUuaG91cnNTdG9wID4gbm9uRGVsZXRlZFNoaWZ0c1tqXS52YWx1ZS5ob3Vyc1N0YXJ0XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5vbkRyb3BTdHJlYW0kLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT4gISF4Lmxlbmd0aCksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMClcclxuICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkRyb3AuZW1pdCh0cnVlKTtcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblxyXG5cclxuICAgICAgY29uc3QgZHJhZ2VudGVyRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2RyYWdlbnRlcicpO1xyXG4gICAgICBjb25zdCBkcmFnb3ZlckV2ZW50ID0gZnJvbUV2ZW50KGNvbnRhaW5lckVsZW1lbnQsICdkcmFnb3ZlcicpO1xyXG4gICAgICBjb25zdCBkcm9wRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2Ryb3AnKTtcclxuICAgICAgY29uc3QgZHJhZ2xlYXZlRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2RyYWdsZWF2ZScpO1xyXG5cclxuICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2VudGVyID0gZHJhZ2VudGVyRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLmNsZWFuVXBTdWJzZXF1ZW50U3Vic2NyaXB0aW9ucygpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG4gICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRzLmFkZChldi50YXJnZXQgYXMgRXZlbnRUYXJnZXQpO1xyXG4gICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndmFsaWQtZHJvcCcpO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdEYXRhJC52YWx1ZS5zcGxpdCgnOicpWzBdICE9PSB0aGlzLnNoaWZ0Q2VsbElkKSB7XHJcbiAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1iYWNrZ3JvdW5kLWNvbG9yJywgJyNmZmY0Y2UnKTtcclxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGRyYWdvdmVyIGV2ZW50IHRvIGFsbG93IGRyb3BcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3ZlciA9IGRyYWdvdmVyRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdvdmVyQ2VsbElkJC5uZXh0KHRoaXMuc2hpZnRDZWxsSWQpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBkcm9wIGV2ZW50XHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJvcCA9IGRyb3BFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG4gICAgICAgICAgdGhpcy5kcmFnRWxlbWVudHMuY2xlYXIoKTsgLy8gQ2xlYXIgdGhlIHNldFxyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZC1kcm9wJyk7XHJcblxyXG4gICAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gZXYuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJyk7IC8vIEV4YW1wbGUgZGF0YSByZXRyaWV2YWxcclxuXHJcbiAgICAgICAgICB0aGlzLm9uRHJvcFN0cmVhbSQubmV4dCh0aGlzLnNoaWZ0Q2VsbElkKVxyXG5cclxuICAgICAgICAgIC8vIEhhbmRsZSBkcm9wIGxvZ2ljIGJhc2VkIG9uIGRhdGFcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIC8vIFByb2Nlc3MgZHJvcHBlZCBkYXRhIGhlcmVcclxuICAgICAgICAgICAgY29uc3QgbmV3U2hpZnRzID0gdGhpcy5zaGlmdHM7XHJcbiAgICAgICAgICAgIGNvbnN0IGJlaW5nUHVzaGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD4oe1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ1NoaWZ0JC52YWx1ZSEsXHJcbiAgICAgICAgICAgICAgYWRkZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZDogQmVoYXZpb3JTdWJqZWN0PElBdFNoaWZ0PltdID0gW1xyXG4gICAgICAgICAgICAgIC4uLm5ld1NoaWZ0cyxcclxuICAgICAgICAgICAgICBiZWluZ1B1c2hlZFxyXG4gICAgICAgICAgICBdOyBcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNPdmVybGFwc2UobWVyZ2VkKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jcmVhdGVOZXcoXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0dSSURfRk9STV9CVVRUT05fSU5GT1JNQVRJT04sXHJcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LldPUktfU0hJRlRfT1ZFUkxBUF9ERVRFQ1RFRCxcclxuICAgICAgICAgICAgICAgIFtdXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5ld1NoaWZ0cy5wdXNoKGJlaW5nUHVzaGVkKTtcclxuICAgICAgICAgICAgdGhpcy5zaGlmdHMgPSBuZXdTaGlmdHM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdsZWF2ZSA9IGRyYWdsZWF2ZUV2ZW50LnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuICAgICAgICB0aGlzLmRyYWdFbGVtZW50cy5kZWxldGUoZXYudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0KTtcclxuICAgICAgICBpZiAodGhpcy5kcmFnRWxlbWVudHMuc2l6ZSA9PT0gMCkge1xyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWJhY2tncm91bmQtY29sb3InLCB0aGlzLiRiYWNrZ3JvdW5kQ29sb3IoKSk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdvdmVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3A/LnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3AgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhblVwU3Vic2NyaXB0aW9ucygpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiY29yZS1zaGlmdC1jZWxsLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAoc2hpZnQkIG9mIHNoaWZ0cyE7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxjb3JlLXNoaWZ0LXN0aWNrZXIgW3NoaWZ0JF09XCJzaGlmdCRcIiBbJHNoaWZ0Q2VsbElkXT1cInNoaWZ0Q2VsbElkXCIgWyR3aWR0aF09XCIyMjhcIj48L2NvcmUtc2hpZnQtc3RpY2tlcj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input, Input, viewChild } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '../base-component/base/base.component';
|
|
3
3
|
import { TranslatePipe } from '../../app-pipes/translate.pipe';
|
|
4
4
|
import { TooltipDirective } from '../tooltip/tooltip.directive';
|
|
@@ -17,24 +17,11 @@ export class CoreShiftStickerComponent extends BaseComponent {
|
|
|
17
17
|
this.$shiftDetails = viewChild('shiftDetails');
|
|
18
18
|
this.$check = viewChild('check');
|
|
19
19
|
this.$plus = viewChild('plus');
|
|
20
|
-
this.$shift = input.required();
|
|
21
20
|
this.$shiftCellId = input.required();
|
|
22
21
|
this.cdr = inject(ChangeDetectorRef);
|
|
23
22
|
this.workShiftDndService = inject(WorkShiftDndService);
|
|
24
23
|
this.$height = input(36.59);
|
|
25
24
|
this.$width = input();
|
|
26
|
-
this.$code = computed(() => this.$shift().code);
|
|
27
|
-
this.$name = computed(() => this.$shift().name);
|
|
28
|
-
this.$hoursStart = computed(() => new Date(this.$shift().hoursStart));
|
|
29
|
-
this.$hoursStop = computed(() => new Date(this.$shift().hoursStop));
|
|
30
|
-
this.$symbolCode = computed(() => this.$shift().symbol.code);
|
|
31
|
-
this.$symbolName = computed(() => this.$shift().symbol.name);
|
|
32
|
-
this.$isOff = computed(() => this.$shift().symbol.isOff);
|
|
33
|
-
this.$isHolidayCal = computed(() => this.$shift().symbol.isHolidayCal);
|
|
34
|
-
this.$isHaveSal = computed(() => this.$shift().symbol.isHaveSal);
|
|
35
|
-
this.$isInsArising = computed(() => this.$shift().symbol.isInsArising);
|
|
36
|
-
this.$duration = computed(() => (!!this.$hoursStart() && !!this.$hoursStop()) ? (this.$hoursStop().getTime() - this.$hoursStart().getTime()) / 1000 / 60 / 60 : undefined);
|
|
37
|
-
this.$pending = computed(() => this.$shift().pending);
|
|
38
25
|
// Dynamic style property
|
|
39
26
|
this.height = '36.59px';
|
|
40
27
|
this.borderRadius = '2px';
|
|
@@ -53,14 +40,29 @@ export class CoreShiftStickerComponent extends BaseComponent {
|
|
|
53
40
|
}
|
|
54
41
|
ngOnInit() {
|
|
55
42
|
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
43
|
+
this.subscriptions.push(this.shift$.subscribe(x => {
|
|
44
|
+
this.code = x?.code;
|
|
45
|
+
this.name = x?.name;
|
|
46
|
+
this.hoursStart = x?.hoursStart;
|
|
47
|
+
this.hoursStop = x?.hoursStop;
|
|
48
|
+
this.symbolCode = x?.symbol.code;
|
|
49
|
+
this.symbolName = x?.symbol.name;
|
|
50
|
+
this.isOff = x?.symbol.isOff;
|
|
51
|
+
this.isHolidayCal = x?.symbol.isHolidayCal;
|
|
52
|
+
this.isInsArising = x?.symbol.isInsArising;
|
|
53
|
+
this.isHaveSal = x?.symbol.isHaveSal;
|
|
54
|
+
//this.duration = (!!this.hoursStart && !!this.hoursStop) ? (this.hoursStop.getTime() - this.hoursStart.getTime()) / 1000 / 60 / 60 : undefined
|
|
55
|
+
this.added = x?.added;
|
|
56
|
+
this.deleted = x?.deleted;
|
|
57
|
+
}));
|
|
56
58
|
}
|
|
57
59
|
ngAfterViewInit() {
|
|
58
60
|
setTimeout(() => {
|
|
59
61
|
fromEvent(this.$container()?.nativeElement, 'dragstart')
|
|
60
62
|
.subscribe((ev) => {
|
|
61
|
-
ev.dataTransfer.setData("text/plain", `${this.$shiftCellId()}:${this
|
|
63
|
+
ev.dataTransfer.setData("text/plain", `${this.$shiftCellId()}:${this.shift$.value?.code}`);
|
|
62
64
|
this.workShiftDndService.draggingData$.next(ev.dataTransfer.getData("text/plain"));
|
|
63
|
-
this.workShiftDndService.draggingShift$.next(this
|
|
65
|
+
this.workShiftDndService.draggingShift$.next(this.shift$.value);
|
|
64
66
|
this.workShiftDndService.draggingFromCellId$.next(this.$shiftCellId());
|
|
65
67
|
this.$shiftDetails()?.nativeElement.style.setProperty('width', '100%');
|
|
66
68
|
this.$shiftDetails()?.nativeElement.style.setProperty('padding-left', '6px');
|
|
@@ -86,8 +88,20 @@ export class CoreShiftStickerComponent extends BaseComponent {
|
|
|
86
88
|
});
|
|
87
89
|
});
|
|
88
90
|
}
|
|
91
|
+
onDeleteToggle(ev) {
|
|
92
|
+
ev.preventDefault();
|
|
93
|
+
ev.stopPropagation();
|
|
94
|
+
const deleted = this.shift$.value?.deleted;
|
|
95
|
+
if (!!deleted) {
|
|
96
|
+
// to do: check collapse
|
|
97
|
+
}
|
|
98
|
+
this.shift$.next({
|
|
99
|
+
...this.shift$.value,
|
|
100
|
+
deleted: !this.shift$.value?.deleted
|
|
101
|
+
});
|
|
102
|
+
}
|
|
89
103
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreShiftStickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreShiftStickerComponent, isStandalone: true, selector: "core-shift-sticker", inputs: {
|
|
104
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreShiftStickerComponent, isStandalone: true, selector: "core-shift-sticker", inputs: { shift$: { classPropertyName: "shift$", publicName: "shift$", isSignal: false, isRequired: false, transformFunction: null }, $shiftCellId: { classPropertyName: "$shiftCellId", publicName: "$shiftCellId", isSignal: true, isRequired: true, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: false, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$shiftDetails", first: true, predicate: ["shiftDetails"], descendants: true, isSignal: true }, { propertyName: "$check", first: true, predicate: ["check"], descendants: true, isSignal: true }, { propertyName: "$plus", first: true, predicate: ["plus"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-shift-sticker-container d-flex d-flex-between open-font\" [ngStyle]=\"{\r\n position: 'relative',\r\n height,\r\n fontSize,\r\n cursor,\r\n width: $width() + 'px',\r\n margin: '2px'\r\n}\" draggable=\"true\">\r\n <div #shiftDetails class=\"shift-details p-relative\" \r\n [class.checked]=\"checked\" \r\n [class.added]=\"added\"\r\n [class.deleted]=\"deleted\">\r\n <div #check class=\"check p-absolute\">\r\n <core-checkbox [(ngModel)]=\"checked\"></core-checkbox>\r\n </div>\r\n <div class=\"ellipsis p-relative first-line\" title=\"9:00 AM - 11:00 AM \u2022 2h\"\r\n ng-class=\"{'icon-on-right': !event.showBigIcon && event.rrule && event.type !== 'availability'}\">\r\n {{ hoursStart | tableCell : 'TIME_HHMM' : lang }} - {{ hoursStop | tableCell : 'TIME_HHMM' : lang }} \u2022\r\n {{ duration }}\r\n </div>\r\n <div class=\"ellipsis second-line\" ng-class=\"{'icon-on-right': !event.showBigIcon && event.summary}\">\r\n <span>\r\n {{ symbolCode }} \u2022\r\n\r\n @if (isOff) {\r\n <i class=\"fas fa-plug-circle-minus\"></i>\r\n }\r\n @if (isHolidayCal) {\r\n <i class=\"fas fa-champagne-glasses\"></i>\r\n }\r\n @if (isHaveSal) {\r\n <i class=\"fas fa-sack-dollar\"></i>\r\n }\r\n @if (isInsArising) {\r\n <i class=\"fas fa-car-burst\"></i>\r\n }\r\n </span>\r\n </div>\r\n\r\n <div #plus class=\"plus p-absolute\">\r\n @if (deleted) {\r\n <i class=\"feather-rotate-ccw\" (click)=\"onDeleteToggle($event)\"></i>\r\n } @else {\r\n <i class=\"feather-x\" (click)=\"onDeleteToggle($event)\"></i>\r\n }\r\n \r\n </div>\r\n\r\n </div>\r\n\r\n</div>", styles: [".core-shift-sticker-container{--height: 36.59px;--width: 228px;--border: none;--opacity: 1;--color: white;--background-color: #F76B6A;box-sizing:border-box;min-width:105px;max-width:228px;opacity:var(--opacity);border:var(--border)}.core-shift-sticker-container *{box-sizing:border-box}.core-shift-sticker-container .shift-details{padding:4px 6px;font-size:11px;line-height:1.3;width:100%;border-radius:2px;color:var(--color);background-color:var(--background-color)}.core-shift-sticker-container .shift-details .first-line{height:14.3px;font-weight:600}.core-shift-sticker-container .shift-details .second-line{height:14.3;font-weight:400}.core-shift-sticker-container .shift-details.checked{border-top-right-radius:0;border-bottom-right-radius:0;padding-left:var(--height)}.core-shift-sticker-container .shift-details.checked .check{display:flex;align-items:center;justify-content:center}.core-shift-sticker-container .shift-details.added{color:gray;background-color:#fff;border:gray 3px dashed}.core-shift-sticker-container .shift-details.deleted{color:red;background-color:#fff;border:red 3px dashed}.core-shift-sticker-container:hover{opacity:.8}.core-shift-sticker-container:hover .shift-details{width:calc(100% - var(--height) - 2px);border-top-right-radius:0;border-bottom-right-radius:0;padding-left:var(--height)}.core-shift-sticker-container:hover .shift-details .check,.core-shift-sticker-container:hover .shift-details .plus{display:flex;align-items:center;justify-content:center}.core-shift-sticker-container .check,.core-shift-sticker-container .plus{width:var(--height);height:var(--height);top:0;display:none}.core-shift-sticker-container .check{left:0}.core-shift-sticker-container .plus{font-size:24px;border:solid 2px #646464;border-radius:2px;right:calc(var(--height) * -1 - 2px);color:#646464}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
91
105
|
}
|
|
92
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreShiftStickerComponent, decorators: [{
|
|
93
107
|
type: Component,
|
|
@@ -98,8 +112,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
98
112
|
TableCellPipe,
|
|
99
113
|
CoreCheckboxComponent,
|
|
100
114
|
FormsModule
|
|
101
|
-
], template: "<div #container class=\"core-shift-sticker-container d-flex d-flex-between open-font\" [ngStyle]=\"{\r\n position: 'relative',\r\n height,\r\n fontSize,\r\n cursor,\r\n width: $width() + 'px',\r\n margin: '2px'\r\n}\" draggable=\"true\">\r\n <div #shiftDetails class=\"shift-details p-relative\" [class.checked]=\"checked\" [class.
|
|
102
|
-
}], propDecorators: {
|
|
115
|
+
], template: "<div #container class=\"core-shift-sticker-container d-flex d-flex-between open-font\" [ngStyle]=\"{\r\n position: 'relative',\r\n height,\r\n fontSize,\r\n cursor,\r\n width: $width() + 'px',\r\n margin: '2px'\r\n}\" draggable=\"true\">\r\n <div #shiftDetails class=\"shift-details p-relative\" \r\n [class.checked]=\"checked\" \r\n [class.added]=\"added\"\r\n [class.deleted]=\"deleted\">\r\n <div #check class=\"check p-absolute\">\r\n <core-checkbox [(ngModel)]=\"checked\"></core-checkbox>\r\n </div>\r\n <div class=\"ellipsis p-relative first-line\" title=\"9:00 AM - 11:00 AM \u2022 2h\"\r\n ng-class=\"{'icon-on-right': !event.showBigIcon && event.rrule && event.type !== 'availability'}\">\r\n {{ hoursStart | tableCell : 'TIME_HHMM' : lang }} - {{ hoursStop | tableCell : 'TIME_HHMM' : lang }} \u2022\r\n {{ duration }}\r\n </div>\r\n <div class=\"ellipsis second-line\" ng-class=\"{'icon-on-right': !event.showBigIcon && event.summary}\">\r\n <span>\r\n {{ symbolCode }} \u2022\r\n\r\n @if (isOff) {\r\n <i class=\"fas fa-plug-circle-minus\"></i>\r\n }\r\n @if (isHolidayCal) {\r\n <i class=\"fas fa-champagne-glasses\"></i>\r\n }\r\n @if (isHaveSal) {\r\n <i class=\"fas fa-sack-dollar\"></i>\r\n }\r\n @if (isInsArising) {\r\n <i class=\"fas fa-car-burst\"></i>\r\n }\r\n </span>\r\n </div>\r\n\r\n <div #plus class=\"plus p-absolute\">\r\n @if (deleted) {\r\n <i class=\"feather-rotate-ccw\" (click)=\"onDeleteToggle($event)\"></i>\r\n } @else {\r\n <i class=\"feather-x\" (click)=\"onDeleteToggle($event)\"></i>\r\n }\r\n \r\n </div>\r\n\r\n </div>\r\n\r\n</div>", styles: [".core-shift-sticker-container{--height: 36.59px;--width: 228px;--border: none;--opacity: 1;--color: white;--background-color: #F76B6A;box-sizing:border-box;min-width:105px;max-width:228px;opacity:var(--opacity);border:var(--border)}.core-shift-sticker-container *{box-sizing:border-box}.core-shift-sticker-container .shift-details{padding:4px 6px;font-size:11px;line-height:1.3;width:100%;border-radius:2px;color:var(--color);background-color:var(--background-color)}.core-shift-sticker-container .shift-details .first-line{height:14.3px;font-weight:600}.core-shift-sticker-container .shift-details .second-line{height:14.3;font-weight:400}.core-shift-sticker-container .shift-details.checked{border-top-right-radius:0;border-bottom-right-radius:0;padding-left:var(--height)}.core-shift-sticker-container .shift-details.checked .check{display:flex;align-items:center;justify-content:center}.core-shift-sticker-container .shift-details.added{color:gray;background-color:#fff;border:gray 3px dashed}.core-shift-sticker-container .shift-details.deleted{color:red;background-color:#fff;border:red 3px dashed}.core-shift-sticker-container:hover{opacity:.8}.core-shift-sticker-container:hover .shift-details{width:calc(100% - var(--height) - 2px);border-top-right-radius:0;border-bottom-right-radius:0;padding-left:var(--height)}.core-shift-sticker-container:hover .shift-details .check,.core-shift-sticker-container:hover .shift-details .plus{display:flex;align-items:center;justify-content:center}.core-shift-sticker-container .check,.core-shift-sticker-container .plus{width:var(--height);height:var(--height);top:0;display:none}.core-shift-sticker-container .check{left:0}.core-shift-sticker-container .plus{font-size:24px;border:solid 2px #646464;border-radius:2px;right:calc(var(--height) * -1 - 2px);color:#646464}\n"] }]
|
|
116
|
+
}], propDecorators: { shift$: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], checked: [{
|
|
103
119
|
type: Input
|
|
104
120
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBNEMsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUV0TixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFpQjVFLE1BQU0sT0FBTyx5QkFBMEIsU0FB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QUFDLENBQUE7Z0JBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0EzRlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsK3FDQzNCdEMsK3ZEQTBDTSwwdUREekJGLE9BQU8sc0VBR1AsYUFBYSxrREFDYixxQkFBcUIseUpBQ3JCLFdBQVc7OzJGQUtGLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixXQUFXO3FCQUNaOzhCQWlCUSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCB2aWV3Q2hpbGQsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElBdFNoaWZ0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90aW1lLW1hbmFnZW1lbnQvSUF0U2hpZnQnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRhYmxlQ2VsbFBpcGUgfSBmcm9tICcuLi9waXBlcy90YWJsZS1jZWxsLnBpcGUnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFdvcmtTaGlmdERuZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93b3JrLXNoaWZ0LWRuZC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zaGlmdC1zdGlja2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nU3R5bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFRhYmxlQ2VsbFBpcGUsXHJcbiAgICBDb3JlQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtc2hpZnQtc3RpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvcmUtc2hpZnQtc3RpY2tlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVTaGlmdFN0aWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAkY29udGFpbmVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdjb250YWluZXInKTtcclxuICAkc2hpZnREZXRhaWxzID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdzaGlmdERldGFpbHMnKTtcclxuICAkY2hlY2sgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NoZWNrJyk7XHJcbiAgJHBsdXMgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3BsdXMnKTtcclxuXHJcbiAgJHNoaWZ0ID0gaW5wdXQucmVxdWlyZWQ8SUF0U2hpZnQ+KCk7XHJcbiAgJHNoaWZ0Q2VsbElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpXHJcblxyXG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgd29ya1NoaWZ0RG5kU2VydmljZSA9IGluamVjdChXb3JrU2hpZnREbmRTZXJ2aWNlKTtcclxuXHJcbiAgQElucHV0KCkgY2hlY2tlZCE6IGJvb2xlYW47XHJcblxyXG4gICRoZWlnaHQgPSBpbnB1dDxudW1iZXI+KDM2LjU5KTtcclxuICAkd2lkdGggPSBpbnB1dDxudW1iZXI+KCk7XHJcblxyXG4gICRjb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4kc2hpZnQoKS5jb2RlKTtcclxuICAkbmFtZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuJHNoaWZ0KCkubmFtZSk7XHJcbiAgJGhvdXJzU3RhcnQgPSBjb21wdXRlZCgoKSA9PiBuZXcgRGF0ZSh0aGlzLiRzaGlmdCgpLmhvdXJzU3RhcnQpKTtcclxuICAkaG91cnNTdG9wID0gY29tcHV0ZWQoKCkgPT4gbmV3IERhdGUodGhpcy4kc2hpZnQoKS5ob3Vyc1N0b3ApKTtcclxuICAkc3ltYm9sQ29kZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuJHNoaWZ0KCkuc3ltYm9sLmNvZGUpO1xyXG4gICRzeW1ib2xOYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4kc2hpZnQoKS5zeW1ib2wubmFtZSk7XHJcbiAgJGlzT2ZmID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4kc2hpZnQoKS5zeW1ib2wuaXNPZmYpO1xyXG4gICRpc0hvbGlkYXlDYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiRzaGlmdCgpLnN5bWJvbC5pc0hvbGlkYXlDYWwpO1xyXG4gICRpc0hhdmVTYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiRzaGlmdCgpLnN5bWJvbC5pc0hhdmVTYWwpO1xyXG4gICRpc0luc0FyaXNpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiRzaGlmdCgpLnN5bWJvbC5pc0luc0FyaXNpbmcpO1xyXG4gICRkdXJhdGlvbiA9IGNvbXB1dGVkKCgpID0+ICghIXRoaXMuJGhvdXJzU3RhcnQoKSAmJiAhIXRoaXMuJGhvdXJzU3RvcCgpKSA/ICh0aGlzLiRob3Vyc1N0b3AoKS5nZXRUaW1lKCkgLSB0aGlzLiRob3Vyc1N0YXJ0KCkuZ2V0VGltZSgpKSAvIDEwMDAgLyA2MCAvIDYwIDogdW5kZWZpbmVkKVxyXG4gICRwZW5kaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4kc2hpZnQoKS5wZW5kaW5nKTtcclxuXHJcbiAgLy8gRHluYW1pYyBzdHlsZSBwcm9wZXJ0eVxyXG4gIGhlaWdodDogc3RyaW5nID0gJzM2LjU5cHgnO1xyXG4gIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzJweCc7XHJcbiAgZm9udFNpemU6IHN0cmluZyA9ICcxMXB4JztcclxuICBsaW5lSGVpZ2h0OiBudW1iZXIgPSAxLjM7XHJcbiAgZmlyc3RMaW5lZm9udFdlaWdodDogbnVtYmVyID0gNjAwO1xyXG4gIGN1cnNvcjogc3RyaW5nID0gJ3BvaW50ZXInO1xyXG4gIHBhZGRpbmc6IHN0cmluZyA9ICc0cHggNnB4JztcclxuICBjb2xvcjogc3RyaW5nID0gJ3doaXRlJztcclxuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9ICcjRjc2QjZBJztcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCEhY2hhbmdlc1snY2hlY2tlZCddKSB7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWdzdGFydCcpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXYuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIGAke3RoaXMuJHNoaWZ0Q2VsbElkKCl9OiR7dGhpcy4kc2hpZnQoKS5jb2RlfWApO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQubmV4dChldi5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcInRleHQvcGxhaW5cIikpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLm5leHQodGhpcy4kc2hpZnQoKSk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC5uZXh0KHRoaXMuJHNoaWZ0Q2VsbElkKCkpO1xyXG4gICAgICAgICAgdGhpcy4kc2hpZnREZXRhaWxzKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3dpZHRoJywgJzEwMCUnKTtcclxuICAgICAgICAgIHRoaXMuJHNoaWZ0RGV0YWlscygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdwYWRkaW5nLWxlZnQnLCAnNnB4Jyk7XHJcbiAgICAgICAgICB0aGlzLiRjaGVjaygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgIHRoaXMuJHBsdXMoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWcnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICB9KVxyXG5cclxuICAgICAgZnJvbUV2ZW50KHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LCAnZHJhZ2VuZCcpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBIVE1MNSBEcmFnIGFuZCBEcm9wIEFQSSwgXHJcbiAgICAgICAgICAvLyBkYXRhVHJhbnNmZXIgaXMgY2xlYXJlZCBvciByZXNldCBhdCB0aGUgZW5kIG9mIHRoZSBkcmFnIG9wZXJhdGlvbi4gXHJcbiAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGRhdGEgeW91IHNldCBpbiBkcmFnc3RhcnQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBpbiBkcmFnZW5kLlxyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQubmV4dCgnJyk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdTaGlmdCQubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQubmV4dCgnJylcclxuICAgICAgICAgIHRoaXMuJHNoaWZ0RGV0YWlscygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd3aWR0aCcpO1xyXG4gICAgICAgICAgdGhpcy4kc2hpZnREZXRhaWxzKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3BhZGRpbmctbGVmdCcpO1xyXG4gICAgICAgICAgdGhpcy4kY2hlY2soKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xyXG4gICAgICAgICAgdGhpcy4kcGx1cygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLXNoaWZ0LXN0aWNrZXItY29udGFpbmVyIGQtZmxleCBkLWZsZXgtYmV0d2VlbiBvcGVuLWZvbnRcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcclxuICAgIGhlaWdodCxcclxuICAgIGZvbnRTaXplLFxyXG4gICAgY3Vyc29yLFxyXG4gICAgd2lkdGg6ICR3aWR0aCgpICsgJ3B4JyxcclxuICAgIG1hcmdpbjogJzJweCdcclxufVwiIGRyYWdnYWJsZT1cInRydWVcIj5cclxuICAgIDxkaXYgI3NoaWZ0RGV0YWlscyBjbGFzcz1cInNoaWZ0LWRldGFpbHMgcC1yZWxhdGl2ZVwiIFtjbGFzcy5jaGVja2VkXT1cImNoZWNrZWRcIiBbY2xhc3MucGVuZGluZ109XCIkcGVuZGluZygpXCI+XHJcbiAgICAgICAgPGRpdiAjY2hlY2sgY2xhc3M9XCJjaGVjayBwLWFic29sdXRlXCI+XHJcbiAgICAgICAgICAgIDxjb3JlLWNoZWNrYm94IFsobmdNb2RlbCldPVwiY2hlY2tlZFwiPjwvY29yZS1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxsaXBzaXMgcC1yZWxhdGl2ZSBmaXJzdC1saW5lXCIgdGl0bGU9XCI5OjAwIEFNIC0gMTE6MDAgQU0g4oCiIDJoXCJcclxuICAgICAgICAgICAgbmctY2xhc3M9XCJ7J2ljb24tb24tcmlnaHQnOiAhZXZlbnQuc2hvd0JpZ0ljb24gJmFtcDsmYW1wOyBldmVudC5ycnVsZSAmYW1wOyZhbXA7IGV2ZW50LnR5cGUgIT09ICdhdmFpbGFiaWxpdHknfVwiPlxyXG4gICAgICAgICAgICB7eyAkaG91cnNTdGFydCgpIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IC0ge3sgJGhvdXJzU3RvcCgpIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IOKAolxyXG4gICAgICAgICAgICB7eyAkZHVyYXRpb24oKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbGxpcHNpcyBzZWNvbmQtbGluZVwiIG5nLWNsYXNzPVwieydpY29uLW9uLXJpZ2h0JzogIWV2ZW50LnNob3dCaWdJY29uICZhbXA7JmFtcDsgZXZlbnQuc3VtbWFyeX1cIj5cclxuICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICB7eyAkc3ltYm9sQ29kZSgpIH19IOKAolxyXG5cclxuICAgICAgICAgICAgICAgIEBpZiAoJGlzT2ZmKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdWctY2lyY2xlLW1pbnVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICgkaXNIb2xpZGF5Q2FsKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoYW1wYWduZS1nbGFzc2VzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICgkaXNIYXZlU2FsKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNhY2stZG9sbGFyXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICgkaXNJbnNBcmlzaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNhci1idXJzdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICNwbHVzIGNsYXNzPVwicGx1cyBwLWFic29sdXRlXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1wbHVzXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFnQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBNEMsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUU5TixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFtQixZQUFZLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBaUI1RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJ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TSxDQUFDLElBQUksQ0FBQztZQUNmLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFNO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU87U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5SFUseUJBQXlCO2tHQUF6Qix5QkFBeUIsaXJDQzNCdEMsdS9EQWtETSxtMUREakNGLE9BQU8sc0VBR1AsYUFBYSxrREFDYixxQkFBcUIseUpBQ3JCLFdBQVc7OzJGQUtGLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixXQUFXO3FCQUNaOzhCQVdRLE1BQU07c0JBQWQsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBzaWduYWwsIFNpbXBsZUNoYW5nZXMsIHZpZXdDaGlsZCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUF0U2hpZnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RpbWUtbWFuYWdlbWVudC9JQXRTaGlmdCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGFibGVDZWxsUGlwZSB9IGZyb20gJy4uL3BpcGVzL3RhYmxlLWNlbGwucGlwZSc7XHJcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb3JlQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3gvY29yZS1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBXb3JrU2hpZnREbmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd29yay1zaGlmdC1kbmQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2hpZnQtc3RpY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBUYWJsZUNlbGxQaXBlLFxyXG4gICAgQ29yZUNoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNoaWZ0LXN0aWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLXNoaWZ0LXN0aWNrZXIuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlU2hpZnRTdGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgJGNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignY29udGFpbmVyJyk7XHJcbiAgJHNoaWZ0RGV0YWlscyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignc2hpZnREZXRhaWxzJyk7XHJcbiAgJGNoZWNrID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdjaGVjaycpO1xyXG4gICRwbHVzID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdwbHVzJyk7XHJcblxyXG4gIEBJbnB1dCgpIHNoaWZ0JCE6IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD47XHJcbiAgJHNoaWZ0Q2VsbElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG5cclxuICBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHdvcmtTaGlmdERuZFNlcnZpY2UgPSBpbmplY3QoV29ya1NoaWZ0RG5kU2VydmljZSk7XHJcblxyXG4gIEBJbnB1dCgpIGNoZWNrZWQhOiBib29sZWFuO1xyXG5cclxuICAkaGVpZ2h0ID0gaW5wdXQ8bnVtYmVyPigzNi41OSk7XHJcbiAgJHdpZHRoID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuICBjb2RlITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIG5hbWUhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgaG91cnNTdGFydCE6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgaG91cnNTdG9wITogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBzeW1ib2xDb2RlITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHN5bWJvbE5hbWUhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgaXNPZmYhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGlzSG9saWRheUNhbCE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNIYXZlU2FsITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBpc0luc0FyaXNpbmchOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGR1cmF0aW9uITogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIGRlbGV0ZWQhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGFkZGVkITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gRHluYW1pYyBzdHlsZSBwcm9wZXJ0eVxyXG4gIGhlaWdodDogc3RyaW5nID0gJzM2LjU5cHgnO1xyXG4gIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzJweCc7XHJcbiAgZm9udFNpemU6IHN0cmluZyA9ICcxMXB4JztcclxuICBsaW5lSGVpZ2h0OiBudW1iZXIgPSAxLjM7XHJcbiAgZmlyc3RMaW5lZm9udFdlaWdodDogbnVtYmVyID0gNjAwO1xyXG4gIGN1cnNvcjogc3RyaW5nID0gJ3BvaW50ZXInO1xyXG4gIHBhZGRpbmc6IHN0cmluZyA9ICc0cHggNnB4JztcclxuICBjb2xvcjogc3RyaW5nID0gJ3doaXRlJztcclxuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9ICcjRjc2QjZBJztcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCEhY2hhbmdlc1snY2hlY2tlZCddKSB7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuc2hpZnQkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmNvZGUgPSB4Py5jb2RlO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IHg/Lm5hbWU7XHJcbiAgICAgICAgdGhpcy5ob3Vyc1N0YXJ0ID0geD8uaG91cnNTdGFydDtcclxuICAgICAgICB0aGlzLmhvdXJzU3RvcCA9IHg/LmhvdXJzU3RvcDtcclxuICAgICAgICB0aGlzLnN5bWJvbENvZGUgPSB4Py5zeW1ib2wuY29kZTtcclxuICAgICAgICB0aGlzLnN5bWJvbE5hbWUgPSB4Py5zeW1ib2wubmFtZTtcclxuICAgICAgICB0aGlzLmlzT2ZmID0geD8uc3ltYm9sLmlzT2ZmO1xyXG4gICAgICAgIHRoaXMuaXNIb2xpZGF5Q2FsID0geD8uc3ltYm9sLmlzSG9saWRheUNhbDtcclxuICAgICAgICB0aGlzLmlzSW5zQXJpc2luZyA9IHg/LnN5bWJvbC5pc0luc0FyaXNpbmc7XHJcbiAgICAgICAgdGhpcy5pc0hhdmVTYWwgPSB4Py5zeW1ib2wuaXNIYXZlU2FsO1xyXG4gICAgICAgIC8vdGhpcy5kdXJhdGlvbiA9ICghIXRoaXMuaG91cnNTdGFydCAmJiAhIXRoaXMuaG91cnNTdG9wKSA/ICh0aGlzLmhvdXJzU3RvcC5nZXRUaW1lKCkgLSB0aGlzLmhvdXJzU3RhcnQuZ2V0VGltZSgpKSAvIDEwMDAgLyA2MCAvIDYwIDogdW5kZWZpbmVkXHJcbiAgICAgICAgdGhpcy5hZGRlZCA9IHg/LmFkZGVkO1xyXG4gICAgICAgIHRoaXMuZGVsZXRlZCA9IHg/LmRlbGV0ZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWdzdGFydCcpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXYuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIGAke3RoaXMuJHNoaWZ0Q2VsbElkKCl9OiR7dGhpcy5zaGlmdCQudmFsdWU/LmNvZGV9YCk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdEYXRhJC5uZXh0KGV2LmRhdGFUcmFuc2Zlci5nZXREYXRhKFwidGV4dC9wbGFpblwiKSk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdTaGlmdCQubmV4dCh0aGlzLnNoaWZ0JC52YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC5uZXh0KHRoaXMuJHNoaWZ0Q2VsbElkKCkpO1xyXG4gICAgICAgICAgdGhpcy4kc2hpZnREZXRhaWxzKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3dpZHRoJywgJzEwMCUnKTtcclxuICAgICAgICAgIHRoaXMuJHNoaWZ0RGV0YWlscygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdwYWRkaW5nLWxlZnQnLCAnNnB4Jyk7XHJcbiAgICAgICAgICB0aGlzLiRjaGVjaygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgIHRoaXMuJHBsdXMoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWcnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICB9KVxyXG5cclxuICAgICAgZnJvbUV2ZW50KHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LCAnZHJhZ2VuZCcpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBIVE1MNSBEcmFnIGFuZCBEcm9wIEFQSSwgXHJcbiAgICAgICAgICAvLyBkYXRhVHJhbnNmZXIgaXMgY2xlYXJlZCBvciByZXNldCBhdCB0aGUgZW5kIG9mIHRoZSBkcmFnIG9wZXJhdGlvbi4gXHJcbiAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGRhdGEgeW91IHNldCBpbiBkcmFnc3RhcnQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBpbiBkcmFnZW5kLlxyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQubmV4dCgnJyk7XHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdTaGlmdCQubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQubmV4dCgnJylcclxuICAgICAgICAgIHRoaXMuJHNoaWZ0RGV0YWlscygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd3aWR0aCcpO1xyXG4gICAgICAgICAgdGhpcy4kc2hpZnREZXRhaWxzKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3BhZGRpbmctbGVmdCcpO1xyXG4gICAgICAgICAgdGhpcy4kY2hlY2soKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xyXG4gICAgICAgICAgdGhpcy4kcGx1cygpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZVRvZ2dsZShldjogYW55KTogdm9pZCB7XHJcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgZGVsZXRlZCA9IHRoaXMuc2hpZnQkLnZhbHVlPy5kZWxldGVkO1xyXG5cclxuICAgIGlmICghIWRlbGV0ZWQpIHtcclxuICAgICAgLy8gdG8gZG86IGNoZWNrIGNvbGxhcHNlICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaGlmdCQubmV4dCh7XHJcbiAgICAgIC4uLnRoaXMuc2hpZnQkLnZhbHVlISxcclxuICAgICAgZGVsZXRlZDogIXRoaXMuc2hpZnQkLnZhbHVlPy5kZWxldGVkXHJcbiAgICB9KTsgICAgXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLXNoaWZ0LXN0aWNrZXItY29udGFpbmVyIGQtZmxleCBkLWZsZXgtYmV0d2VlbiBvcGVuLWZvbnRcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcclxuICAgIGhlaWdodCxcclxuICAgIGZvbnRTaXplLFxyXG4gICAgY3Vyc29yLFxyXG4gICAgd2lkdGg6ICR3aWR0aCgpICsgJ3B4JyxcclxuICAgIG1hcmdpbjogJzJweCdcclxufVwiIGRyYWdnYWJsZT1cInRydWVcIj5cclxuICAgIDxkaXYgI3NoaWZ0RGV0YWlscyBjbGFzcz1cInNoaWZ0LWRldGFpbHMgcC1yZWxhdGl2ZVwiIFxyXG4gICAgICAgIFtjbGFzcy5jaGVja2VkXT1cImNoZWNrZWRcIiBcclxuICAgICAgICBbY2xhc3MuYWRkZWRdPVwiYWRkZWRcIlxyXG4gICAgICAgIFtjbGFzcy5kZWxldGVkXT1cImRlbGV0ZWRcIj5cclxuICAgICAgICA8ZGl2ICNjaGVjayBjbGFzcz1cImNoZWNrIHAtYWJzb2x1dGVcIj5cclxuICAgICAgICAgICAgPGNvcmUtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJjaGVja2VkXCI+PC9jb3JlLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbGxpcHNpcyBwLXJlbGF0aXZlIGZpcnN0LWxpbmVcIiB0aXRsZT1cIjk6MDAgQU0gLSAxMTowMCBBTSDigKIgMmhcIlxyXG4gICAgICAgICAgICBuZy1jbGFzcz1cInsnaWNvbi1vbi1yaWdodCc6ICFldmVudC5zaG93QmlnSWNvbiAmYW1wOyZhbXA7IGV2ZW50LnJydWxlICZhbXA7JmFtcDsgZXZlbnQudHlwZSAhPT0gJ2F2YWlsYWJpbGl0eSd9XCI+XHJcbiAgICAgICAgICAgIHt7IGhvdXJzU3RhcnQgfCB0YWJsZUNlbGwgOiAnVElNRV9ISE1NJyA6IGxhbmcgfX0gLSB7eyBob3Vyc1N0b3AgfCB0YWJsZUNlbGwgOiAnVElNRV9ISE1NJyA6IGxhbmcgfX0g4oCiXHJcbiAgICAgICAgICAgIHt7IGR1cmF0aW9uIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVsbGlwc2lzIHNlY29uZC1saW5lXCIgbmctY2xhc3M9XCJ7J2ljb24tb24tcmlnaHQnOiAhZXZlbnQuc2hvd0JpZ0ljb24gJmFtcDsmYW1wOyBldmVudC5zdW1tYXJ5fVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IHN5bWJvbENvZGUgfX0g4oCiXHJcblxyXG4gICAgICAgICAgICAgICAgQGlmIChpc09mZikge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1Zy1jaXJjbGUtbWludXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzSG9saWRheUNhbCkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hhbXBhZ25lLWdsYXNzZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzSGF2ZVNhbCkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc2Fjay1kb2xsYXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzSW5zQXJpc2luZykge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyLWJ1cnN0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgI3BsdXMgY2xhc3M9XCJwbHVzIHAtYWJzb2x1dGVcIj5cclxuICAgICAgICAgICAgQGlmIChkZWxldGVkKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItcm90YXRlLWNjd1wiIChjbGljayk9XCJvbkRlbGV0ZVRvZ2dsZSgkZXZlbnQpXCI+PC9pPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCIgKGNsaWNrKT1cIm9uRGVsZXRlVG9nZ2xlKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|