@huntsman-cancer-institute/dialog 12.11.9-SNAPSHOT
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/CHANGELOG.md +4 -0
- package/README.md +24 -0
- package/alert/alert-dialog.component.d.ts +31 -0
- package/bundles/huntsman-cancer-institute-dialog.umd.js +1049 -0
- package/bundles/huntsman-cancer-institute-dialog.umd.js.map +1 -0
- package/bundles/huntsman-cancer-institute-dialog.umd.min.js +2 -0
- package/bundles/huntsman-cancer-institute-dialog.umd.min.js.map +1 -0
- package/confirm/confirm-dialog.component.d.ts +18 -0
- package/custom/custom-dialog.component.d.ts +35 -0
- package/dialog.module.d.ts +27 -0
- package/esm2015/alert/alert-dialog.component.js +243 -0
- package/esm2015/confirm/confirm-dialog.component.js +130 -0
- package/esm2015/custom/custom-dialog.component.js +231 -0
- package/esm2015/dialog.module.js +157 -0
- package/esm2015/generic/generic-container-dialog.component.js +158 -0
- package/esm2015/huntsman-cancer-institute-dialog.js +5 -0
- package/esm2015/index.js +13 -0
- package/esm2015/model/base-generic-container-dialog.js +26 -0
- package/esm2015/model/confirm-type.model.js +12 -0
- package/esm2015/model/dialog-type.model.js +12 -0
- package/esm2015/model/generic-dialog-action.model.js +6 -0
- package/esm2015/save-footer/save-footer.component.js +135 -0
- package/esm2015/service/dialog.service.js +272 -0
- package/esm2015/spinner/spinner-dialog.component.js +69 -0
- package/esm5/alert/alert-dialog.component.js +105 -0
- package/esm5/confirm/confirm-dialog.component.js +101 -0
- package/esm5/custom/custom-dialog.component.js +118 -0
- package/esm5/dialog.module.js +161 -0
- package/esm5/generic/generic-container-dialog.component.js +128 -0
- package/esm5/huntsman-cancer-institute-dialog.js +5 -0
- package/esm5/index.js +13 -0
- package/esm5/model/base-generic-container-dialog.js +28 -0
- package/esm5/model/confirm-type.model.js +12 -0
- package/esm5/model/dialog-type.model.js +12 -0
- package/esm5/model/generic-dialog-action.model.js +6 -0
- package/esm5/save-footer/save-footer.component.js +86 -0
- package/esm5/service/dialog.service.js +307 -0
- package/esm5/spinner/spinner-dialog.component.js +47 -0
- package/fesm2015/huntsman-cancer-institute-dialog.js +1396 -0
- package/fesm2015/huntsman-cancer-institute-dialog.js.map +1 -0
- package/fesm5/huntsman-cancer-institute-dialog.js +1047 -0
- package/fesm5/huntsman-cancer-institute-dialog.js.map +1 -0
- package/generic/generic-container-dialog.component.d.ts +38 -0
- package/huntsman-cancer-institute-dialog.d.ts +5 -0
- package/index.d.ts +14 -0
- package/model/base-generic-container-dialog.d.ts +13 -0
- package/model/confirm-type.model.d.ts +10 -0
- package/model/dialog-type.model.d.ts +10 -0
- package/model/generic-dialog-action.model.d.ts +18 -0
- package/package.json +34 -0
- package/save-footer/save-footer.component.d.ts +24 -0
- package/service/dialog.service.d.ts +45 -0
- package/spinner/spinner-dialog.component.d.ts +12 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
2
|
+
import { ChangeDetectorRef, Component, ElementRef, HostListener, Inject, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
3
|
+
import { ActionType } from '../model/generic-dialog-action.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class CustomDialogComponent {
|
|
8
|
+
constructor(dialogRef, data, changeDetector) {
|
|
9
|
+
this.dialogRef = dialogRef;
|
|
10
|
+
this.data = data;
|
|
11
|
+
this.changeDetector = changeDetector;
|
|
12
|
+
this.title = '';
|
|
13
|
+
this.icon = '';
|
|
14
|
+
this.actionType = ActionType;
|
|
15
|
+
this.originalXClick = 0;
|
|
16
|
+
this.originalYClick = 0;
|
|
17
|
+
this.movingDialog = false;
|
|
18
|
+
this.positionX = 0;
|
|
19
|
+
this.positionY = 0;
|
|
20
|
+
this.actions = [];
|
|
21
|
+
this.title = data.title;
|
|
22
|
+
this.tempRef = data.templateRef;
|
|
23
|
+
this.icon = data.icon;
|
|
24
|
+
this.context = data.context;
|
|
25
|
+
const actionConfig = data.actionConfig ? data.actionConfig : null;
|
|
26
|
+
this.actions = actionConfig ? actionConfig.actions : [];
|
|
27
|
+
this.form = actionConfig && actionConfig.formSource ? actionConfig.formSource : null;
|
|
28
|
+
}
|
|
29
|
+
get primaryDisable() {
|
|
30
|
+
return this.form && this.form.invalid;
|
|
31
|
+
}
|
|
32
|
+
// todo need make this customizable
|
|
33
|
+
get secondaryDisable() {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
this.context.dialog = this.dialogRef;
|
|
38
|
+
this.vcr.createEmbeddedView(this.tempRef, this.context);
|
|
39
|
+
}
|
|
40
|
+
onClose() {
|
|
41
|
+
this.dialogRef.close();
|
|
42
|
+
}
|
|
43
|
+
onMouseDownHeader(event) {
|
|
44
|
+
if (!event) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;
|
|
48
|
+
this.positionY = this.topmostLeftmost.nativeElement.offsetTop;
|
|
49
|
+
this.originalXClick = event.screenX;
|
|
50
|
+
this.originalYClick = event.screenY;
|
|
51
|
+
this.movingDialog = true;
|
|
52
|
+
this.changeDetector.detach();
|
|
53
|
+
}
|
|
54
|
+
onMouseMove(event) {
|
|
55
|
+
if (!event) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (this.movingDialog) {
|
|
59
|
+
this.positionX += event.screenX - this.originalXClick;
|
|
60
|
+
this.positionY += event.screenY - this.originalYClick;
|
|
61
|
+
this.originalXClick = event.screenX;
|
|
62
|
+
this.originalYClick = event.screenY;
|
|
63
|
+
const newDialogPosition = {
|
|
64
|
+
left: '' + this.positionX + 'px',
|
|
65
|
+
top: '' + this.positionY + 'px',
|
|
66
|
+
};
|
|
67
|
+
this.dialogRef.updatePosition(newDialogPosition);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onMouseUp() {
|
|
71
|
+
this.movingDialog = false;
|
|
72
|
+
this.changeDetector.reattach();
|
|
73
|
+
}
|
|
74
|
+
executeAction(action) {
|
|
75
|
+
if (action.externalAction) {
|
|
76
|
+
action.externalAction(this.dialogRef);
|
|
77
|
+
}
|
|
78
|
+
if (action.internalAction && action.internalAction === 'onClose') {
|
|
79
|
+
this.onClose();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
CustomDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
CustomDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomDialogComponent, selector: "hci-custom-dialog", host: { listeners: { "window:mousemove": "onMouseMove($event)", "window:mouseup": "onMouseUp($event)" } }, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["anchor"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "topmostLeftmost", first: true, predicate: ["topmostLeftmost"], descendants: true }], ngImport: i0, template: `
|
|
85
|
+
<div class="d-flex full-height full-width flex-column">
|
|
86
|
+
<div *ngIf="this.title" class="full-width generic-dialog-header-colors no-margin no-padding">
|
|
87
|
+
<div #topmostLeftmost mat-dialog-title (mousedown)="onMouseDownHeader($event)"
|
|
88
|
+
class="force-flex-container-row align-items-center full-width p-2 {{ movingDialog ? 'grabbed' : 'grabbable' }}">
|
|
89
|
+
<div class="-flex flex-row align-items-center padded">
|
|
90
|
+
<img *ngIf="icon" class="icon" [src]="this.icon">
|
|
91
|
+
<div *ngIf="icon && icon.substr(0, 2) === '<i'" class="i-class" [innerHTML]="icon" ></div>
|
|
92
|
+
<h3 style="margin:0;">{{this.title}}</h3>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="flex-grow-1"></div>
|
|
95
|
+
<div class="padded" (click)="onClose()">
|
|
96
|
+
<i class="exit fas fa-times"></i>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
<mat-dialog-content class="flex-grow-1 full-width no-margin p-2" style="min-height: 6em;">
|
|
101
|
+
<div #anchor></div>
|
|
102
|
+
</mat-dialog-content>
|
|
103
|
+
<mat-dialog-actions *ngIf="actions && actions.length > 0"
|
|
104
|
+
class="d-flex flex-row justify-content-end no-margin no-padding generic-dialog-footer-colors">
|
|
105
|
+
<div *ngFor="let action of actions">
|
|
106
|
+
<save-footer *ngIf="action.type === actionType.PRIMARY;else secondary"
|
|
107
|
+
[actionType]="action.type"
|
|
108
|
+
[icon]="action.icon"
|
|
109
|
+
[disableSave]="primaryDisable"
|
|
110
|
+
(saveClicked)="executeAction(action)"
|
|
111
|
+
[name]="action.name">
|
|
112
|
+
</save-footer>
|
|
113
|
+
<!-- to avoid issue with multiple spinner or dirty notes-->
|
|
114
|
+
<ng-template #secondary>
|
|
115
|
+
<save-footer [actionType]="action.type"
|
|
116
|
+
(saveClicked)="executeAction(action)"
|
|
117
|
+
[icon]="action.icon"
|
|
118
|
+
[disableSave]="secondaryDisable"
|
|
119
|
+
[name]="action.name">
|
|
120
|
+
</save-footer>
|
|
121
|
+
</ng-template>
|
|
122
|
+
</div>
|
|
123
|
+
</mat-dialog-actions>
|
|
124
|
+
</div>
|
|
125
|
+
`, isInline: true, styles: ["\n .centered-text { text-align: center; }\n\n .no-padding{\n padding:0;\n\n }\n\n .no-margin{\n margin: 0;\n }\n\n .grabbable {\n cursor: move;\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n }\n .grabbed:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n }\n\n .force-flex-container-row{\n display:flex !important;\n }\n\n .exit{\n max-width: 20px;\n cursor: pointer;\n }\n\n .i-class {\n margin-left: 0.3em;\n margin-right: 0.3em;\n }\n mat-dialog-content {\n max-height: 100vh !important;\n max-width: 100vw !important ;\n }\n "], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomDialogComponent, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{
|
|
129
|
+
selector: 'hci-custom-dialog',
|
|
130
|
+
template: `
|
|
131
|
+
<div class="d-flex full-height full-width flex-column">
|
|
132
|
+
<div *ngIf="this.title" class="full-width generic-dialog-header-colors no-margin no-padding">
|
|
133
|
+
<div #topmostLeftmost mat-dialog-title (mousedown)="onMouseDownHeader($event)"
|
|
134
|
+
class="force-flex-container-row align-items-center full-width p-2 {{ movingDialog ? 'grabbed' : 'grabbable' }}">
|
|
135
|
+
<div class="-flex flex-row align-items-center padded">
|
|
136
|
+
<img *ngIf="icon" class="icon" [src]="this.icon">
|
|
137
|
+
<div *ngIf="icon && icon.substr(0, 2) === '<i'" class="i-class" [innerHTML]="icon" ></div>
|
|
138
|
+
<h3 style="margin:0;">{{this.title}}</h3>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="flex-grow-1"></div>
|
|
141
|
+
<div class="padded" (click)="onClose()">
|
|
142
|
+
<i class="exit fas fa-times"></i>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
<mat-dialog-content class="flex-grow-1 full-width no-margin p-2" style="min-height: 6em;">
|
|
147
|
+
<div #anchor></div>
|
|
148
|
+
</mat-dialog-content>
|
|
149
|
+
<mat-dialog-actions *ngIf="actions && actions.length > 0"
|
|
150
|
+
class="d-flex flex-row justify-content-end no-margin no-padding generic-dialog-footer-colors">
|
|
151
|
+
<div *ngFor="let action of actions">
|
|
152
|
+
<save-footer *ngIf="action.type === actionType.PRIMARY;else secondary"
|
|
153
|
+
[actionType]="action.type"
|
|
154
|
+
[icon]="action.icon"
|
|
155
|
+
[disableSave]="primaryDisable"
|
|
156
|
+
(saveClicked)="executeAction(action)"
|
|
157
|
+
[name]="action.name">
|
|
158
|
+
</save-footer>
|
|
159
|
+
<!-- to avoid issue with multiple spinner or dirty notes-->
|
|
160
|
+
<ng-template #secondary>
|
|
161
|
+
<save-footer [actionType]="action.type"
|
|
162
|
+
(saveClicked)="executeAction(action)"
|
|
163
|
+
[icon]="action.icon"
|
|
164
|
+
[disableSave]="secondaryDisable"
|
|
165
|
+
[name]="action.name">
|
|
166
|
+
</save-footer>
|
|
167
|
+
</ng-template>
|
|
168
|
+
</div>
|
|
169
|
+
</mat-dialog-actions>
|
|
170
|
+
</div>
|
|
171
|
+
`,
|
|
172
|
+
styles: [`
|
|
173
|
+
.centered-text { text-align: center; }
|
|
174
|
+
|
|
175
|
+
.no-padding{
|
|
176
|
+
padding:0;
|
|
177
|
+
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.no-margin{
|
|
181
|
+
margin: 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.grabbable {
|
|
185
|
+
cursor: move;
|
|
186
|
+
cursor: grab;
|
|
187
|
+
cursor: -moz-grab;
|
|
188
|
+
cursor: -webkit-grab;
|
|
189
|
+
}
|
|
190
|
+
.grabbed:active {
|
|
191
|
+
cursor: grabbing;
|
|
192
|
+
cursor: -moz-grabbing;
|
|
193
|
+
cursor: -webkit-grabbing;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.force-flex-container-row{
|
|
197
|
+
display:flex !important;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.exit{
|
|
201
|
+
max-width: 20px;
|
|
202
|
+
cursor: pointer;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.i-class {
|
|
206
|
+
margin-left: 0.3em;
|
|
207
|
+
margin-right: 0.3em;
|
|
208
|
+
}
|
|
209
|
+
mat-dialog-content {
|
|
210
|
+
max-height: 100vh !important;
|
|
211
|
+
max-width: 100vw !important ;
|
|
212
|
+
}
|
|
213
|
+
`]
|
|
214
|
+
}]
|
|
215
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
216
|
+
type: Inject,
|
|
217
|
+
args: [MAT_DIALOG_DATA]
|
|
218
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { vcr: [{
|
|
219
|
+
type: ViewChild,
|
|
220
|
+
args: ['anchor', { read: ViewContainerRef, static: true }]
|
|
221
|
+
}], topmostLeftmost: [{
|
|
222
|
+
type: ViewChild,
|
|
223
|
+
args: ['topmostLeftmost', { static: false }]
|
|
224
|
+
}], onMouseMove: [{
|
|
225
|
+
type: HostListener,
|
|
226
|
+
args: ['window:mousemove', ['$event']]
|
|
227
|
+
}], onMouseUp: [{
|
|
228
|
+
type: HostListener,
|
|
229
|
+
args: ['window:mouseup', ['$event']]
|
|
230
|
+
}] } });
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJjdXN0b20vY3VzdG9tLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBMkIsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQTJGMUYsTUFBTSxPQUFPLHFCQUFxQjtJQTBCOUIsWUFBbUIsU0FBOEMsRUFDcEIsSUFBUyxFQUNsQyxjQUFpQztRQUZsQyxjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXpCOUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixlQUFVLEdBQVEsVUFBVSxDQUFDO1FBRXBDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ1gsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFJakIsWUFBTyxHQUFlLEVBQUUsQ0FBQztRQWE1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsTUFBTSxZQUFZLEdBQW1CLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUE4QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFMUYsQ0FBQztJQW5CRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFDRCxtQ0FBbUM7SUFDbkMsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQWVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakUsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUU5RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFFdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUVwQyxNQUFNLGlCQUFpQixHQUFtQjtnQkFDdEMsSUFBSSxFQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUk7Z0JBQ2xDLEdBQUcsRUFBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJO2FBQ3JDLENBQUM7WUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBZ0I7UUFDMUIsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQzlELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQjtJQUNMLENBQUM7O21IQWpHUSxxQkFBcUIsOENBMkJWLGVBQWU7dUdBM0IxQixxQkFBcUIsOE9BQ0QsZ0JBQWdCLGdKQXZGbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUNUOzRGQTZDUSxxQkFBcUI7a0JBeEZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5Q1Q7b0JBQ0QsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUNSLENBQUM7aUJBQ0w7OzBCQTZCZ0IsTUFBTTsyQkFBQyxlQUFlOzRFQTFCNkIsR0FBRztzQkFBbEUsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFHLElBQUksRUFBRTtnQkFDZixlQUFlO3NCQUE3RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkE4RDdDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQjVDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlhbG9nUG9zaXRpb24sIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3QsIE9uSW5pdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY3Rpb25UeXBlLCBHREFjdGlvbiwgR0RBY3Rpb25Db25maWd9IGZyb20gJy4uL21vZGVsL2dlbmVyaWMtZGlhbG9nLWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaGNpLWN1c3RvbS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZ1bGwtaGVpZ2h0IGZ1bGwtd2lkdGggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoaXMudGl0bGVcIiBjbGFzcz1cImZ1bGwtd2lkdGggZ2VuZXJpYy1kaWFsb2ctaGVhZGVyLWNvbG9ycyBuby1tYXJnaW4gbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjdG9wbW9zdExlZnRtb3N0IG1hdC1kaWFsb2ctdGl0bGUgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bkhlYWRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JjZS1mbGV4LWNvbnRhaW5lci1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGZ1bGwtd2lkdGggcC0yICAge3sgbW92aW5nRGlhbG9nID8gJ2dyYWJiZWQnIDogJ2dyYWJiYWJsZScgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHBhZGRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICAqbmdJZj1cImljb25cIiBjbGFzcz1cImljb25cIiBbc3JjXT1cInRoaXMuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnN1YnN0cigwLCAyKSA9PT0gJzxpJ1wiIGNsYXNzPVwiaS1jbGFzc1wiIFtpbm5lckhUTUxdPVwiaWNvblwiID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7XCI+e3t0aGlzLnRpdGxlfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkZWRcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZXhpdCBmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJmbGV4LWdyb3ctMSBmdWxsLXdpZHRoIG5vLW1hcmdpbiBwLTJcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDZlbTtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgI2FuY2hvcj48L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgKm5nSWY9XCJhY3Rpb25zICYmIGFjdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWVuZCBuby1tYXJnaW4gbm8tcGFkZGluZyBnZW5lcmljLWRpYWxvZy1mb290ZXItY29sb3JzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzYXZlLWZvb3RlciAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlLlBSSU1BUlk7ZWxzZSBzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uVHlwZV09XCJhY3Rpb24udHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVTYXZlXT1cInByaW1hcnlEaXNhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGlja2VkKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImFjdGlvbi5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zYXZlLWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIHRvIGF2b2lkIGlzc3VlIHdpdGggbXVsdGlwbGUgc3Bpbm5lciBvciBkaXJ0eSBub3Rlcy0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2Vjb25kYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2F2ZS1mb290ZXIgW2FjdGlvblR5cGVdPVwiYWN0aW9uLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGlja2VkKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVNhdmVdPVwic2Vjb25kYXJ5RGlzYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24ubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NhdmUtZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAgIC5jZW50ZXJlZC10ZXh0IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XHJcblxyXG4gICAgICAgIC5uby1wYWRkaW5ne1xyXG4gICAgICAgICAgICBwYWRkaW5nOjA7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm5vLW1hcmdpbntcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmdyYWJiYWJsZSB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogbW92ZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBncmFiO1xyXG4gICAgICAgICAgICBjdXJzb3I6IC1tb3otZ3JhYjtcclxuICAgICAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ncmFiYmVkOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLW1vei1ncmFiYmluZztcclxuICAgICAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZvcmNlLWZsZXgtY29udGFpbmVyLXJvd3tcclxuICAgICAgICAgICAgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZXhpdHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaS1jbGFzcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgMC4zZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hdC1kaWFsb2ctY29udGVudCB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwdncgIWltcG9ydGFudCA7XHJcbiAgICAgICAgfVxyXG4gICAgYF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnYW5jaG9yJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWMgOiB0cnVlIH0pIHZjcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIEBWaWV3Q2hpbGQoJ3RvcG1vc3RMZWZ0bW9zdCcsIHtzdGF0aWM6IGZhbHNlfSkgdG9wbW9zdExlZnRtb3N0OiBFbGVtZW50UmVmO1xyXG4gICAgcHVibGljIHRpdGxlID0gJyc7XHJcbiAgICBwdWJsaWMgaWNvbiA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpb25UeXBlOiBhbnkgPSBBY3Rpb25UeXBlO1xyXG5cclxuICAgIG9yaWdpbmFsWENsaWNrID0gMDtcclxuICAgIG9yaWdpbmFsWUNsaWNrID0gMDtcclxuICAgIG1vdmluZ0RpYWxvZyA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIHBvc2l0aW9uWCA9IDA7XHJcbiAgICBwcm90ZWN0ZWQgcG9zaXRpb25ZID0gMDtcclxuICAgIGNvbnRleHQ6IGFueTtcclxuXHJcbiAgICBwcml2YXRlIHRlbXBSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBwdWJsaWMgYWN0aW9uczogR0RBY3Rpb25bXSA9IFtdO1xyXG4gICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBnZXQgcHJpbWFyeURpc2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uaW52YWxpZDtcclxuICAgIH1cclxuICAgIC8vIHRvZG8gbmVlZCBtYWtlIHRoaXMgY3VzdG9taXphYmxlXHJcbiAgICBwdWJsaWMgZ2V0IHNlY29uZGFyeURpc2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDdXN0b21EaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogYW55LFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcclxuICAgICAgICB0aGlzLnRlbXBSZWYgPSBkYXRhLnRlbXBsYXRlUmVmO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBkYXRhLmNvbnRleHQ7XHJcbiAgICAgICAgY29uc3QgYWN0aW9uQ29uZmlnOiBHREFjdGlvbkNvbmZpZyA9IGRhdGEuYWN0aW9uQ29uZmlnID8gZGF0YS5hY3Rpb25Db25maWcgYXMgR0RBY3Rpb25Db25maWcgOiBudWxsO1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbkNvbmZpZyA/IGFjdGlvbkNvbmZpZy5hY3Rpb25zIDogW107XHJcbiAgICAgICAgdGhpcy5mb3JtID0gYWN0aW9uQ29uZmlnICYmIGFjdGlvbkNvbmZpZy5mb3JtU291cmNlID8gIGFjdGlvbkNvbmZpZy5mb3JtU291cmNlIDogbnVsbDtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmRpYWxvZyA9IHRoaXMuZGlhbG9nUmVmO1xyXG4gICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldzxhbnk+KHRoaXMudGVtcFJlZiwgdGhpcy5jb250ZXh0KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VEb3duSGVhZGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWV2ZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucG9zaXRpb25YID0gdGhpcy50b3Btb3N0TGVmdG1vc3QubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy50b3Btb3N0TGVmdG1vc3QubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XHJcblxyXG4gICAgICAgIHRoaXMub3JpZ2luYWxYQ2xpY2sgPSBldmVudC5zY3JlZW5YO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxZQ2xpY2sgPSBldmVudC5zY3JlZW5ZO1xyXG5cclxuICAgICAgICB0aGlzLm1vdmluZ0RpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRhY2goKTtcclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gICAgb25Nb3VzZU1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW92aW5nRGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25YICs9IGV2ZW50LnNjcmVlblggLSB0aGlzLm9yaWdpbmFsWENsaWNrO1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uWSArPSBldmVudC5zY3JlZW5ZIC0gdGhpcy5vcmlnaW5hbFlDbGljaztcclxuXHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxYQ2xpY2sgPSBldmVudC5zY3JlZW5YO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsWUNsaWNrID0gZXZlbnQuc2NyZWVuWTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RpYWxvZ1Bvc2l0aW9uOiBEaWFsb2dQb3NpdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6ICAgJycgKyB0aGlzLnBvc2l0aW9uWCArICdweCcsXHJcbiAgICAgICAgICAgICAgICB0b3A6ICAgICcnICsgdGhpcy5wb3NpdGlvblkgKyAncHgnLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYudXBkYXRlUG9zaXRpb24obmV3RGlhbG9nUG9zaXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICAgIG9uTW91c2VVcCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vdmluZ0RpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IucmVhdHRhY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBleGVjdXRlQWN0aW9uKGFjdGlvbjogR0RBY3Rpb24pOiB2b2lkIHtcclxuICAgICAgICBpZiAoYWN0aW9uLmV4dGVybmFsQWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGFjdGlvbi5leHRlcm5hbEFjdGlvbih0aGlzLmRpYWxvZ1JlZik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhY3Rpb24uaW50ZXJuYWxBY3Rpb24gJiYgYWN0aW9uLmludGVybmFsQWN0aW9uID09PSAnb25DbG9zZScpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary
|
|
3
|
+
*/
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { DialogService } from './service/dialog.service';
|
|
8
|
+
import { AlertDialogComponent } from './alert/alert-dialog.component';
|
|
9
|
+
import { CustomDialogComponent } from './custom/custom-dialog.component';
|
|
10
|
+
import { GenericContainerDialogComponent } from './generic/generic-container-dialog.component';
|
|
11
|
+
import { SaveFooterComponent } from './save-footer/save-footer.component';
|
|
12
|
+
import { SpinnerDialogComponent } from './spinner/spinner-dialog.component';
|
|
13
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
14
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
15
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
16
|
+
import { DynamicModule } from 'ng-dynamic-component';
|
|
17
|
+
import { ConfirmDialogComponent } from './confirm/confirm-dialog.component';
|
|
18
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
// import {RouterModule} from "@angular/router";
|
|
21
|
+
// import {MatButtonToggleModule} from "@angular/material/button-toggle";
|
|
22
|
+
// import {MatInputModule} from "@angular/material/input";
|
|
23
|
+
// import {MatIconModule} from "@angular/material/icon";
|
|
24
|
+
// import {TreeModule} from "@circlon/angular-tree-component";
|
|
25
|
+
// import {MatDatepickerModule} from "@angular/material/datepicker";
|
|
26
|
+
// import {MatSelectModule} from "@angular/material/select";
|
|
27
|
+
// import {NgbModule, NgbNavModule} from "@ng-bootstrap/ng-bootstrap";
|
|
28
|
+
// import {MiscModule} from "@huntsman-cancer-institute/misc";
|
|
29
|
+
// import { MatNativeDateModule } from "@angular/material/core";
|
|
30
|
+
// import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
31
|
+
/**
|
|
32
|
+
* The main @huntsman-cancer-institute/dialog module. The module exports all components that an implementation might use
|
|
33
|
+
* and the forRoot() provides a global service for an implementing application.
|
|
34
|
+
*
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
export class DialogModule {
|
|
38
|
+
static forRoot() {
|
|
39
|
+
return {
|
|
40
|
+
providers: [
|
|
41
|
+
DialogService
|
|
42
|
+
],
|
|
43
|
+
ngModule: DialogModule
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
DialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
48
|
+
DialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogModule, declarations: [AlertDialogComponent,
|
|
49
|
+
ConfirmDialogComponent,
|
|
50
|
+
CustomDialogComponent,
|
|
51
|
+
GenericContainerDialogComponent,
|
|
52
|
+
SaveFooterComponent,
|
|
53
|
+
SpinnerDialogComponent], imports: [CommonModule,
|
|
54
|
+
FormsModule,
|
|
55
|
+
DynamicModule,
|
|
56
|
+
MatButtonModule,
|
|
57
|
+
MatDialogModule,
|
|
58
|
+
MatExpansionModule,
|
|
59
|
+
MatProgressSpinnerModule
|
|
60
|
+
// RouterModule,
|
|
61
|
+
// MiscModule,
|
|
62
|
+
// NgbModule,
|
|
63
|
+
// MatButtonToggleModule,
|
|
64
|
+
// MatInputModule,
|
|
65
|
+
// MatIconModule,
|
|
66
|
+
// MatDatepickerModule,
|
|
67
|
+
// MatNativeDateModule,
|
|
68
|
+
// MatCheckboxModule,
|
|
69
|
+
// MatRadioModule,
|
|
70
|
+
// MatSelectModule,
|
|
71
|
+
// TreeModule,
|
|
72
|
+
// NgbNavModule
|
|
73
|
+
], exports: [AlertDialogComponent,
|
|
74
|
+
ConfirmDialogComponent,
|
|
75
|
+
CustomDialogComponent,
|
|
76
|
+
GenericContainerDialogComponent,
|
|
77
|
+
SaveFooterComponent,
|
|
78
|
+
SpinnerDialogComponent] });
|
|
79
|
+
DialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogModule, providers: [
|
|
80
|
+
// MatDatepickerModule,
|
|
81
|
+
], imports: [[
|
|
82
|
+
CommonModule,
|
|
83
|
+
FormsModule,
|
|
84
|
+
DynamicModule,
|
|
85
|
+
MatButtonModule,
|
|
86
|
+
MatDialogModule,
|
|
87
|
+
MatExpansionModule,
|
|
88
|
+
MatProgressSpinnerModule
|
|
89
|
+
// RouterModule,
|
|
90
|
+
// MiscModule,
|
|
91
|
+
// NgbModule,
|
|
92
|
+
// MatButtonToggleModule,
|
|
93
|
+
// MatInputModule,
|
|
94
|
+
// MatIconModule,
|
|
95
|
+
// MatDatepickerModule,
|
|
96
|
+
// MatNativeDateModule,
|
|
97
|
+
// MatCheckboxModule,
|
|
98
|
+
// MatRadioModule,
|
|
99
|
+
// MatSelectModule,
|
|
100
|
+
// TreeModule,
|
|
101
|
+
// NgbNavModule
|
|
102
|
+
]] });
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogModule, decorators: [{
|
|
104
|
+
type: NgModule,
|
|
105
|
+
args: [{
|
|
106
|
+
imports: [
|
|
107
|
+
CommonModule,
|
|
108
|
+
FormsModule,
|
|
109
|
+
DynamicModule,
|
|
110
|
+
MatButtonModule,
|
|
111
|
+
MatDialogModule,
|
|
112
|
+
MatExpansionModule,
|
|
113
|
+
MatProgressSpinnerModule
|
|
114
|
+
// RouterModule,
|
|
115
|
+
// MiscModule,
|
|
116
|
+
// NgbModule,
|
|
117
|
+
// MatButtonToggleModule,
|
|
118
|
+
// MatInputModule,
|
|
119
|
+
// MatIconModule,
|
|
120
|
+
// MatDatepickerModule,
|
|
121
|
+
// MatNativeDateModule,
|
|
122
|
+
// MatCheckboxModule,
|
|
123
|
+
// MatRadioModule,
|
|
124
|
+
// MatSelectModule,
|
|
125
|
+
// TreeModule,
|
|
126
|
+
// NgbNavModule
|
|
127
|
+
],
|
|
128
|
+
providers: [
|
|
129
|
+
// MatDatepickerModule,
|
|
130
|
+
],
|
|
131
|
+
declarations: [
|
|
132
|
+
AlertDialogComponent,
|
|
133
|
+
ConfirmDialogComponent,
|
|
134
|
+
CustomDialogComponent,
|
|
135
|
+
GenericContainerDialogComponent,
|
|
136
|
+
SaveFooterComponent,
|
|
137
|
+
SpinnerDialogComponent
|
|
138
|
+
],
|
|
139
|
+
entryComponents: [
|
|
140
|
+
AlertDialogComponent,
|
|
141
|
+
ConfirmDialogComponent,
|
|
142
|
+
CustomDialogComponent,
|
|
143
|
+
GenericContainerDialogComponent,
|
|
144
|
+
SaveFooterComponent,
|
|
145
|
+
SpinnerDialogComponent
|
|
146
|
+
],
|
|
147
|
+
exports: [
|
|
148
|
+
AlertDialogComponent,
|
|
149
|
+
ConfirmDialogComponent,
|
|
150
|
+
CustomDialogComponent,
|
|
151
|
+
GenericContainerDialogComponent,
|
|
152
|
+
SaveFooterComponent,
|
|
153
|
+
SpinnerDialogComponent
|
|
154
|
+
]
|
|
155
|
+
}]
|
|
156
|
+
}] });
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2RpYWxvZy8iLCJzb3VyY2VzIjpbImRpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFDL0QsZ0RBQWdEO0FBQ2hELHlFQUF5RTtBQUN6RSwwREFBMEQ7QUFDMUQsd0RBQXdEO0FBQ3hELDhEQUE4RDtBQUM5RCxvRUFBb0U7QUFDcEUsNERBQTREO0FBQzVELHNFQUFzRTtBQUN0RSw4REFBOEQ7QUFDOUQsZ0VBQWdFO0FBQ2hFLGtFQUFrRTtBQUdsRTs7Ozs7R0FLRztBQW9ESCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsYUFBYTthQUNkO1lBQ0QsUUFBUSxFQUFFLFlBQVk7U0FDdkIsQ0FBQztJQUNKLENBQUM7OzBHQVJVLFlBQVk7MkdBQVosWUFBWSxpQkF4QnJCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLCtCQUErQjtRQUMvQixtQkFBbUI7UUFDbkIsc0JBQXNCLGFBOUJ0QixZQUFZO1FBQ1osV0FBVztRQUNYLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxhQUFhO1FBQ2IseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsZUFBZTtpQkFzQmYsb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsK0JBQStCO1FBQy9CLG1CQUFtQjtRQUNuQixzQkFBc0I7MkdBR2IsWUFBWSxhQTVCWjtJQUNULHVCQUF1QjtLQUN4QixZQXhCUTtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLGFBQWE7WUFDYix5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxlQUFlO1NBQ2hCOzRGQTZCVSxZQUFZO2tCQW5EeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxlQUFlO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUU7b0JBQ1QsdUJBQXVCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsK0JBQStCO3dCQUMvQixtQkFBbUI7d0JBQ25CLHNCQUFzQjtxQkFDdkI7b0JBQ0QsZUFBZSxFQUFFO3dCQUNmLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLCtCQUErQjt3QkFDL0IsbUJBQW1CO3dCQUNuQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQiwrQkFBK0I7d0JBQy9CLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAxNiBIdW50c21hbiBDYW5jZXIgSW5zdGl0dXRlIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWgsIENvbmZpZGVudGlhbCBhbmQgUHJvcHJpZXRhcnlcclxuICovXHJcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7QWxlcnREaWFsb2dDb21wb25lbnR9IGZyb20gJy4vYWxlcnQvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q3VzdG9tRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2N1c3RvbS9jdXN0b20tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7R2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9nZW5lcmljL2dlbmVyaWMtY29udGFpbmVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1NhdmVGb290ZXJDb21wb25lbnR9IGZyb20gJy4vc2F2ZS1mb290ZXIvc2F2ZS1mb290ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTcGlubmVyRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL3NwaW5uZXIvc3Bpbm5lci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7RHluYW1pY01vZHVsZX0gZnJvbSAnbmctZHluYW1pYy1jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvbmZpcm1EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vY29uZmlybS9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdEV4cGFuc2lvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuLy8gaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuLy8gaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XHJcbi8vIGltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG4vLyBpbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbi8vIGltcG9ydCB7VHJlZU1vZHVsZX0gZnJvbSBcIkBjaXJjbG9uL2FuZ3VsYXItdHJlZS1jb21wb25lbnRcIjtcclxuLy8gaW1wb3J0IHtNYXREYXRlcGlja2VyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xyXG4vLyBpbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG4vLyBpbXBvcnQge05nYk1vZHVsZSwgTmdiTmF2TW9kdWxlfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuLy8gaW1wb3J0IHtNaXNjTW9kdWxlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvbWlzY1wiO1xyXG4vLyBpbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuLy8gaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBtYWluIEBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2RpYWxvZyBtb2R1bGUuICBUaGUgbW9kdWxlIGV4cG9ydHMgYWxsIGNvbXBvbmVudHMgdGhhdCBhbiBpbXBsZW1lbnRhdGlvbiBtaWdodCB1c2VcclxuICogYW5kIHRoZSBmb3JSb290KCkgcHJvdmlkZXMgYSBnbG9iYWwgc2VydmljZSBmb3IgYW4gaW1wbGVtZW50aW5nIGFwcGxpY2F0aW9uLlxyXG4gKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBEeW5hbWljTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXHJcbiAgICAvLyBSb3V0ZXJNb2R1bGUsXHJcbiAgICAvLyBNaXNjTW9kdWxlLFxyXG4gICAgLy8gTmdiTW9kdWxlLFxyXG4gICAgLy8gTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxyXG4gICAgLy8gTWF0SW5wdXRNb2R1bGUsXHJcbiAgICAvLyBNYXRJY29uTW9kdWxlLFxyXG4gICAgLy8gTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIC8vIE1hdE5hdGl2ZURhdGVNb2R1bGUsXHJcbiAgICAvLyBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIC8vIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgLy8gTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgLy8gVHJlZU1vZHVsZSxcclxuICAgIC8vIE5nYk5hdk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICAvLyBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBbGVydERpYWxvZ0NvbXBvbmVudCxcclxuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXHJcbiAgICBDdXN0b21EaWFsb2dDb21wb25lbnQsXHJcbiAgICBHZW5lcmljQ29udGFpbmVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgU2F2ZUZvb3RlckNvbXBvbmVudCxcclxuICAgIFNwaW5uZXJEaWFsb2dDb21wb25lbnRcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgQWxlcnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb25maXJtRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQ3VzdG9tRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgR2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFNhdmVGb290ZXJDb21wb25lbnQsXHJcbiAgICBTcGlubmVyRGlhbG9nQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBbGVydERpYWxvZ0NvbXBvbmVudCxcclxuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXHJcbiAgICBDdXN0b21EaWFsb2dDb21wb25lbnQsXHJcbiAgICBHZW5lcmljQ29udGFpbmVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgU2F2ZUZvb3RlckNvbXBvbmVudCxcclxuICAgIFNwaW5uZXJEaWFsb2dDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGlhbG9nTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBEaWFsb2dTZXJ2aWNlXHJcbiAgICAgIF0sXHJcbiAgICAgIG5nTW9kdWxlOiBEaWFsb2dNb2R1bGVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Component, ElementRef, HostListener, Inject, ViewChild, ChangeDetectorRef, HostBinding } from '@angular/core';
|
|
2
|
+
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { ActionType } from '../model/generic-dialog-action.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
import * as i2 from "@angular/router";
|
|
8
|
+
import * as i3 from "ng-dynamic-component";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
export class GenericContainerDialogComponent {
|
|
11
|
+
constructor(dialog, router, changeDetector, dialogRef, data) {
|
|
12
|
+
this.dialog = dialog;
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.changeDetector = changeDetector;
|
|
15
|
+
this.dialogRef = dialogRef;
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.classList = 'd-flex flex-column flex-grow-1 flex-shrink-1';
|
|
18
|
+
this.type = ActionType;
|
|
19
|
+
this.actions = [];
|
|
20
|
+
this.originalXClick = 0;
|
|
21
|
+
this.originalYClick = 0;
|
|
22
|
+
this.positionX = 0;
|
|
23
|
+
this.positionY = 0;
|
|
24
|
+
this.movingDialog = false;
|
|
25
|
+
if (data) {
|
|
26
|
+
this.dialogContentBluePrint = data.dialogContent;
|
|
27
|
+
this.icon = data.icon;
|
|
28
|
+
this.title = data.title;
|
|
29
|
+
this.useSaveFooter = data.actionConfig ? data.actionConfig.useSaveFooter : false;
|
|
30
|
+
this.actions = data.actionConfig ? data.actionConfig.actions : [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
}
|
|
35
|
+
createdComponent(event) {
|
|
36
|
+
this.dialogContent = event.instance;
|
|
37
|
+
}
|
|
38
|
+
executeAction(action) {
|
|
39
|
+
if (action.externalAction) {
|
|
40
|
+
action.externalAction();
|
|
41
|
+
}
|
|
42
|
+
if (action.internalAction) {
|
|
43
|
+
const internalAction = action.internalAction;
|
|
44
|
+
if (action.internalAction === 'cancel' || action.internalAction === 'onClose') {
|
|
45
|
+
if (this.dialogContent[internalAction]) {
|
|
46
|
+
this.dialogContent[internalAction]();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.onClose();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
if (typeof action.internalActionReturnValue !== 'undefined') {
|
|
54
|
+
if (action.internalActionReturnValue) {
|
|
55
|
+
this.dialogContent[internalAction](action.internalActionReturnValue);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.dialogContent[internalAction]();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
onMouseDownHeader(event) {
|
|
65
|
+
if (!event) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;
|
|
69
|
+
this.positionY = this.topmostLeftmost.nativeElement.offsetTop;
|
|
70
|
+
this.originalXClick = event.screenX;
|
|
71
|
+
this.originalYClick = event.screenY;
|
|
72
|
+
this.movingDialog = true;
|
|
73
|
+
this.changeDetector.detach();
|
|
74
|
+
}
|
|
75
|
+
onMouseMove(event) {
|
|
76
|
+
if (!event) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (this.movingDialog) {
|
|
80
|
+
this.positionX += event.screenX - this.originalXClick;
|
|
81
|
+
this.positionY += event.screenY - this.originalYClick;
|
|
82
|
+
this.originalXClick = event.screenX;
|
|
83
|
+
this.originalYClick = event.screenY;
|
|
84
|
+
const newDialogPosition = {
|
|
85
|
+
left: '' + this.positionX + 'px',
|
|
86
|
+
top: '' + this.positionY + 'px',
|
|
87
|
+
};
|
|
88
|
+
this.dialogRef.updatePosition(newDialogPosition);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
onMouseUp() {
|
|
92
|
+
this.movingDialog = false;
|
|
93
|
+
this.changeDetector.reattach();
|
|
94
|
+
}
|
|
95
|
+
onClose() {
|
|
96
|
+
this.dialogRef.close();
|
|
97
|
+
}
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
GenericContainerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GenericContainerDialogComponent, deps: [{ token: i1.MatDialog }, { token: i2.Router }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
+
GenericContainerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GenericContainerDialogComponent, selector: "hci-generic-container-dialog", host: { listeners: { "window:mousemove": "onMouseMove($event)", "window:mouseup": "onMouseUp($event)" }, properties: { "class": "this.classList" } }, viewQueries: [{ propertyName: "topmostLeftmost", first: true, predicate: ["topmostLeftmost"], descendants: true }], ngImport: i0, template: "<div class=\"full-height full-width d-flex flex-column\" style=\"height: 100%;\">\r\n <div class=\"full-width generic-dialog-header-colors no-margin no-padding\">\r\n <div #topmostLeftmost mat-dialog-title (mousedown)=\"onMouseDownHeader($event)\"\r\n class=\"d-flex align-items-center full-width\" [ngClass]=\"{'grabbed':movingDialog, 'grabbable': !movingDialog}\">\r\n <div class=\"d-flex flex-row align-items-center p-2\">\r\n <img class=\"icon\" *ngIf=\"icon && icon.substr(0, 2) !== '<i'\" [src]=\"icon\">\r\n <div *ngIf=\"icon && icon.substr(0, 2) === '<i'\" class=\"i-class\" [innerHTML]=\"icon\" ></div>\r\n <h3 style=\"margin:0;\">{{this.title ? this.title : this.dialogContent.innerTitle}}</h3>\r\n </div>\r\n <div class=\"flex-grow-1\"></div>\r\n <div class=\"padded\" (click)=\"onClose()\">\r\n <i class=\"exit fas fa-times\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-dialog-content class=\"flex-grow-1 no-margin no-padding\">\r\n <div class=\"flex-grow-1 full-height full-width padded\">\r\n <ndc-dynamic [ndcDynamicComponent]=\"this.dialogContentBluePrint\"\r\n [ndcDynamicInputs]=\"this.data\"\r\n (ndcDynamicCreated)=\"createdComponent($event)\">\r\n </ndc-dynamic>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions *ngIf=\"actions && actions.length > 0\"\r\n class=\"d-flex flex-row justify-content-end no-margin no-padding generic-dialog-footer-colors\">\r\n <div *ngFor=\"let action of actions\">\r\n <save-footer *ngIf=\"action.type === type.PRIMARY;else secondary\"\r\n [actionType]=\"action.type\"\r\n [icon]=\"action.icon\"\r\n (saveClicked)=\"executeAction(action)\"\r\n [disableSave]=\"this.dialogContent.primaryDisable(action)\"\r\n [dirty]=\"this.dialogContent.dirty()\"\r\n [name]=\"action.name\"\r\n [showSpinner]=\"this.dialogContent.showSpinner\">\r\n </save-footer>\r\n <!-- to avoid issue with multiple spinner or dirty notes-->\r\n <ng-template #secondary>\r\n <save-footer [actionType]=\"action.type\"\r\n (saveClicked)=\"executeAction(action)\"\r\n [icon]=\"action.icon\"\r\n [disableSave]=\"this.dialogContent.secondaryDisable(action)\"\r\n [name]=\"action.name\">\r\n\r\n </save-footer>\r\n </ng-template>\r\n </div>\r\n </mat-dialog-actions>\r\n</div>\r\n", styles: ["\n\n .no-padding{\n padding:0;\n }\n .no-margin{\n margin: 0;\n }\n .grabbable {\n cursor: move;\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n }\n .grabbed:active {\n cursor: move;\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n }\n .exit{\n max-width: 20px;\n cursor: pointer;\n }\n .i-class {\n margin-left: 0.3em;\n margin-right: 0.3em;\n }\n mat-dialog-content {\n max-height: 100% !important;\n }\n\n "], components: [{ type: i3.DynamicComponent, selector: "ndc-dynamic", inputs: ["ndcDynamicComponent", "ndcDynamicInjector", "ndcDynamicProviders", "ndcDynamicContent"], outputs: ["ndcDynamicCreated"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.DynamicIoDirective, selector: "[ndcDynamicInputs],[ndcDynamicOutputs],[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ndcDynamicInputs", "ngComponentOutletNdcDynamicInputs", "ndcDynamicOutputs", "ngComponentOutletNdcDynamicOutputs"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GenericContainerDialogComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{
|
|
106
|
+
selector: 'hci-generic-container-dialog',
|
|
107
|
+
templateUrl: './generic-container-dialog.component.html',
|
|
108
|
+
styles: [`
|
|
109
|
+
|
|
110
|
+
.no-padding{
|
|
111
|
+
padding:0;
|
|
112
|
+
}
|
|
113
|
+
.no-margin{
|
|
114
|
+
margin: 0;
|
|
115
|
+
}
|
|
116
|
+
.grabbable {
|
|
117
|
+
cursor: move;
|
|
118
|
+
cursor: grab;
|
|
119
|
+
cursor: -moz-grab;
|
|
120
|
+
cursor: -webkit-grab;
|
|
121
|
+
}
|
|
122
|
+
.grabbed:active {
|
|
123
|
+
cursor: move;
|
|
124
|
+
cursor: grabbing;
|
|
125
|
+
cursor: -moz-grabbing;
|
|
126
|
+
cursor: -webkit-grabbing;
|
|
127
|
+
}
|
|
128
|
+
.exit{
|
|
129
|
+
max-width: 20px;
|
|
130
|
+
cursor: pointer;
|
|
131
|
+
}
|
|
132
|
+
.i-class {
|
|
133
|
+
margin-left: 0.3em;
|
|
134
|
+
margin-right: 0.3em;
|
|
135
|
+
}
|
|
136
|
+
mat-dialog-content {
|
|
137
|
+
max-height: 100% !important;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
`]
|
|
141
|
+
}]
|
|
142
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
143
|
+
type: Inject,
|
|
144
|
+
args: [MAT_DIALOG_DATA]
|
|
145
|
+
}] }]; }, propDecorators: { classList: [{
|
|
146
|
+
type: HostBinding,
|
|
147
|
+
args: ['class']
|
|
148
|
+
}], topmostLeftmost: [{
|
|
149
|
+
type: ViewChild,
|
|
150
|
+
args: ['topmostLeftmost', { static: false }]
|
|
151
|
+
}], onMouseMove: [{
|
|
152
|
+
type: HostListener,
|
|
153
|
+
args: ['window:mousemove', ['$event']]
|
|
154
|
+
}], onMouseUp: [{
|
|
155
|
+
type: HostListener,
|
|
156
|
+
args: ['window:mouseup', ['$event']]
|
|
157
|
+
}] } });
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2RpYWxvZy8iLCJzb3VyY2VzIjpbImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC50cyIsImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBR04sU0FBUyxFQUFnQixpQkFBaUIsRUFBRSxXQUFXLEVBQzFELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBaUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUF1QzFFLE1BQU0sT0FBTywrQkFBK0I7SUFxQnhDLFlBQW9CLE1BQWlCLEVBQ2pCLE1BQWMsRUFDZCxjQUFpQyxFQUNqQyxTQUF3RCxFQUNoQyxJQUFJO1FBSjVCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUErQztRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBdkIxQixjQUFTLEdBQUcsOENBQThDLENBQUM7UUFJakYsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUlsQixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBR1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFTakIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNqRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBd0I7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBSSxLQUFLLENBQUMsUUFBdUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWdCO1FBQzFCLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUN2QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDdkIsTUFBTSxjQUFjLEdBQVcsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUNyRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO2dCQUMzRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztpQkFDeEM7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUNsQjthQUNKO2lCQUFNO2dCQUNMLElBQUksT0FBTyxNQUFNLENBQUMseUJBQXlCLEtBQUssV0FBVyxFQUFFO29CQUMzRCxJQUFJLE1BQU0sQ0FBQyx5QkFBeUIsRUFBQzt3QkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztxQkFDdEU7aUJBQ0Y7cUJBQUs7b0JBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2lCQUN0QzthQUVGO1NBQ0o7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDL0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFFOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUVwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBRXRELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFFcEMsTUFBTSxpQkFBaUIsR0FBbUI7Z0JBQ3RDLElBQUksRUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJO2dCQUNsQyxHQUFHLEVBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSTthQUNyQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwRDtJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7SUFDWCxDQUFDOzs2SEFqSFEsK0JBQStCLDhIQXlCcEIsZUFBZTtpSEF6QjFCLCtCQUErQiw4VUNwRDVDLGl5RkFpREE7NEZER2EsK0JBQStCO2tCQXJDM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxNQUFNLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQ1IsQ0FBQztpQkFDTDs7MEJBMEJnQixNQUFNOzJCQUFDLGVBQWU7NENBdkJiLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFFMkIsZUFBZTtzQkFBN0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBOEU3QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0I1QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdCxcclxuICAgIE9uSW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIFZpZXdDaGlsZCwgQ29tcG9uZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgSG9zdEJpbmRpbmdcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXREaWFsb2dSZWYsIE1hdERpYWxvZywgTUFUX0RJQUxPR19EQVRBLCBEaWFsb2dQb3NpdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge0Jhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nfSBmcm9tICcuLi9tb2RlbC9iYXNlLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZyc7XHJcbmltcG9ydCB7QWN0aW9uVHlwZSwgR0RBY3Rpb259IGZyb20gJy4uL21vZGVsL2dlbmVyaWMtZGlhbG9nLWFjdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaGNpLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW2BcclxuXHJcbiAgICAgICAgLm5vLXBhZGRpbmd7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm5vLW1hcmdpbntcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZ3JhYmJhYmxlIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICAgICAgICBjdXJzb3I6IGdyYWI7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLW1vei1ncmFiO1xyXG4gICAgICAgICAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmdyYWJiZWQ6YWN0aXZlIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xyXG4gICAgICAgICAgICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmV4aXR7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMjBweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaS1jbGFzcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgMC4zZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hdC1kaWFsb2ctY29udGVudCB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNDb250YWluZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTGlzdCA9ICdkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgZmxleC1zaHJpbmstMSc7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgndG9wbW9zdExlZnRtb3N0Jywge3N0YXRpYzogZmFsc2V9KSB0b3Btb3N0TGVmdG1vc3Q6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgdHlwZSA9IEFjdGlvblR5cGU7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgZGlhbG9nQ29udGVudEJsdWVQcmludDogYW55O1xyXG4gICAgYWN0aW9uczogR0RBY3Rpb25bXSA9IFtdO1xyXG4gICAgb3JpZ2luYWxYQ2xpY2sgPSAwO1xyXG4gICAgb3JpZ2luYWxZQ2xpY2sgPSAwO1xyXG4gICAgZGlhbG9nQ29udGVudDogQmFzZUdlbmVyaWNDb250YWluZXJEaWFsb2c7XHJcblxyXG4gICAgcHJvdGVjdGVkIHBvc2l0aW9uWCA9IDA7XHJcbiAgICBwcm90ZWN0ZWQgcG9zaXRpb25ZID0gMDtcclxuICAgIG1vdmluZ0RpYWxvZyA9IGZhbHNlO1xyXG4gICAgdXNlU2F2ZUZvb3RlcjogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnRCbHVlUHJpbnQgPSBkYXRhLmRpYWxvZ0NvbnRlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgICAgICAgICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XHJcbiAgICAgICAgICAgIHRoaXMudXNlU2F2ZUZvb3RlciA9IGRhdGEuYWN0aW9uQ29uZmlnID8gZGF0YS5hY3Rpb25Db25maWcudXNlU2F2ZUZvb3RlciA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBkYXRhLmFjdGlvbkNvbmZpZyA/IGRhdGEuYWN0aW9uQ29uZmlnLmFjdGlvbnMgYXMgR0RBY3Rpb25bXSA6IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVkQ29tcG9uZW50KGV2ZW50OiBDb21wb25lbnRSZWY8YW55Pikge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nQ29udGVudCA9IChldmVudC5pbnN0YW5jZSBhcyBCYXNlR2VuZXJpY0NvbnRhaW5lckRpYWxvZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZXhlY3V0ZUFjdGlvbihhY3Rpb246IEdEQWN0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGFjdGlvbi5leHRlcm5hbEFjdGlvbikge1xyXG4gICAgICAgICAgICBhY3Rpb24uZXh0ZXJuYWxBY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbi5pbnRlcm5hbEFjdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcm5hbEFjdGlvbjogc3RyaW5nID0gYWN0aW9uLmludGVybmFsQWN0aW9uO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uLmludGVybmFsQWN0aW9uID09PSAnY2FuY2VsJyB8fCBhY3Rpb24uaW50ZXJuYWxBY3Rpb24gPT09ICdvbkNsb3NlJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29udGVudFtpbnRlcm5hbEFjdGlvbl0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnRbaW50ZXJuYWxBY3Rpb25dKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0aW9uLmludGVybmFsQWN0aW9uUmV0dXJuVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLmludGVybmFsQWN0aW9uUmV0dXJuVmFsdWUpe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnRbaW50ZXJuYWxBY3Rpb25dKGFjdGlvbi5pbnRlcm5hbEFjdGlvblJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnRbaW50ZXJuYWxBY3Rpb25dKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNlRG93bkhlYWRlcihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFldmVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBvc2l0aW9uWCA9IHRoaXMudG9wbW9zdExlZnRtb3N0Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgICAgICB0aGlzLnBvc2l0aW9uWSA9IHRoaXMudG9wbW9zdExlZnRtb3N0Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xyXG5cclxuICAgICAgICB0aGlzLm9yaWdpbmFsWENsaWNrID0gZXZlbnQuc2NyZWVuWDtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsWUNsaWNrID0gZXZlbnQuc2NyZWVuWTtcclxuXHJcbiAgICAgICAgdGhpcy5tb3ZpbmdEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0YWNoKCk7XHJcbiAgICB9XHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcclxuICAgIG9uTW91c2VNb3ZlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWV2ZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vdmluZ0RpYWxvZykge1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uWCArPSBldmVudC5zY3JlZW5YIC0gdGhpcy5vcmlnaW5hbFhDbGljaztcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvblkgKz0gZXZlbnQuc2NyZWVuWSAtIHRoaXMub3JpZ2luYWxZQ2xpY2s7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsWENsaWNrID0gZXZlbnQuc2NyZWVuWDtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFlDbGljayA9IGV2ZW50LnNjcmVlblk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBuZXdEaWFsb2dQb3NpdGlvbjogRGlhbG9nUG9zaXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAgICcnICsgdGhpcy5wb3NpdGlvblggKyAncHgnLFxyXG4gICAgICAgICAgICAgICAgdG9wOiAgICAnJyArIHRoaXMucG9zaXRpb25ZICsgJ3B4JyxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLnVwZGF0ZVBvc2l0aW9uKG5ld0RpYWxvZ1Bvc2l0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgICBvbk1vdXNlVXAoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb3ZpbmdEaWFsb2cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLnJlYXR0YWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmdWxsLWhlaWdodCBmdWxsLXdpZHRoIGQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZ1bGwtd2lkdGggZ2VuZXJpYy1kaWFsb2ctaGVhZGVyLWNvbG9ycyBuby1tYXJnaW4gbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgI3RvcG1vc3RMZWZ0bW9zdCBtYXQtZGlhbG9nLXRpdGxlIChtb3VzZWRvd24pPVwib25Nb3VzZURvd25IZWFkZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZnVsbC13aWR0aFwiIFtuZ0NsYXNzXT1cInsnZ3JhYmJlZCc6bW92aW5nRGlhbG9nLCAnZ3JhYmJhYmxlJzogIW1vdmluZ0RpYWxvZ31cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwiaWNvbiAmJiBpY29uLnN1YnN0cigwLCAyKSAhPT0gJzxpJ1wiIFtzcmNdPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImljb24gJiYgaWNvbi5zdWJzdHIoMCwgMikgPT09ICc8aSdcIiBjbGFzcz1cImktY2xhc3NcIiBbaW5uZXJIVE1MXT1cImljb25cIiA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aDMgc3R5bGU9XCJtYXJnaW46MDtcIj57e3RoaXMudGl0bGUgPyB0aGlzLnRpdGxlIDogdGhpcy5kaWFsb2dDb250ZW50LmlubmVyVGl0bGV9fTwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZGRlZFwiIChjbGljayk9XCJvbkNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZXhpdCBmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImZsZXgtZ3Jvdy0xIG5vLW1hcmdpbiBuby1wYWRkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIGZ1bGwtaGVpZ2h0IGZ1bGwtd2lkdGggcGFkZGVkXCI+XHJcbiAgICAgICAgICAgIDxuZGMtZHluYW1pYyBbbmRjRHluYW1pY0NvbXBvbmVudF09XCJ0aGlzLmRpYWxvZ0NvbnRlbnRCbHVlUHJpbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW25kY0R5bmFtaWNJbnB1dHNdPVwidGhpcy5kYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChuZGNEeW5hbWljQ3JlYXRlZCk9XCJjcmVhdGVkQ29tcG9uZW50KCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9uZGMtZHluYW1pYz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucyAqbmdJZj1cImFjdGlvbnMgJiYgYWN0aW9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWVuZCBuby1tYXJnaW4gbm8tcGFkZGluZyBnZW5lcmljLWRpYWxvZy1mb290ZXItY29sb3JzXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPHNhdmUtZm9vdGVyICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IHR5cGUuUFJJTUFSWTtlbHNlIHNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uVHlwZV09XCJhY3Rpb24udHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwiZXhlY3V0ZUFjdGlvbihhY3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlU2F2ZV09XCJ0aGlzLmRpYWxvZ0NvbnRlbnQucHJpbWFyeURpc2FibGUoYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlydHldPVwidGhpcy5kaWFsb2dDb250ZW50LmRpcnR5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiYWN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTcGlubmVyXT1cInRoaXMuZGlhbG9nQ29udGVudC5zaG93U3Bpbm5lclwiPlxyXG4gICAgICAgICAgICA8L3NhdmUtZm9vdGVyPlxyXG4gICAgICAgICAgICA8IS0tIHRvIGF2b2lkIGlzc3VlIHdpdGggbXVsdGlwbGUgc3Bpbm5lciBvciBkaXJ0eSBub3Rlcy0tPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NlY29uZGFyeT5cclxuICAgICAgICAgICAgICAgIDxzYXZlLWZvb3RlciBbYWN0aW9uVHlwZV09XCJhY3Rpb24udHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGlja2VkKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiYWN0aW9uLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlU2F2ZV09XCJ0aGlzLmRpYWxvZ0NvbnRlbnQuc2Vjb25kYXJ5RGlzYWJsZShhY3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24ubmFtZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvc2F2ZS1mb290ZXI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS1kaWFsb2cuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJodW50c21hbi1jYW5jZXItaW5zdGl0dXRlLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|