@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.
Files changed (53) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +24 -0
  3. package/alert/alert-dialog.component.d.ts +31 -0
  4. package/bundles/huntsman-cancer-institute-dialog.umd.js +1049 -0
  5. package/bundles/huntsman-cancer-institute-dialog.umd.js.map +1 -0
  6. package/bundles/huntsman-cancer-institute-dialog.umd.min.js +2 -0
  7. package/bundles/huntsman-cancer-institute-dialog.umd.min.js.map +1 -0
  8. package/confirm/confirm-dialog.component.d.ts +18 -0
  9. package/custom/custom-dialog.component.d.ts +35 -0
  10. package/dialog.module.d.ts +27 -0
  11. package/esm2015/alert/alert-dialog.component.js +243 -0
  12. package/esm2015/confirm/confirm-dialog.component.js +130 -0
  13. package/esm2015/custom/custom-dialog.component.js +231 -0
  14. package/esm2015/dialog.module.js +157 -0
  15. package/esm2015/generic/generic-container-dialog.component.js +158 -0
  16. package/esm2015/huntsman-cancer-institute-dialog.js +5 -0
  17. package/esm2015/index.js +13 -0
  18. package/esm2015/model/base-generic-container-dialog.js +26 -0
  19. package/esm2015/model/confirm-type.model.js +12 -0
  20. package/esm2015/model/dialog-type.model.js +12 -0
  21. package/esm2015/model/generic-dialog-action.model.js +6 -0
  22. package/esm2015/save-footer/save-footer.component.js +135 -0
  23. package/esm2015/service/dialog.service.js +272 -0
  24. package/esm2015/spinner/spinner-dialog.component.js +69 -0
  25. package/esm5/alert/alert-dialog.component.js +105 -0
  26. package/esm5/confirm/confirm-dialog.component.js +101 -0
  27. package/esm5/custom/custom-dialog.component.js +118 -0
  28. package/esm5/dialog.module.js +161 -0
  29. package/esm5/generic/generic-container-dialog.component.js +128 -0
  30. package/esm5/huntsman-cancer-institute-dialog.js +5 -0
  31. package/esm5/index.js +13 -0
  32. package/esm5/model/base-generic-container-dialog.js +28 -0
  33. package/esm5/model/confirm-type.model.js +12 -0
  34. package/esm5/model/dialog-type.model.js +12 -0
  35. package/esm5/model/generic-dialog-action.model.js +6 -0
  36. package/esm5/save-footer/save-footer.component.js +86 -0
  37. package/esm5/service/dialog.service.js +307 -0
  38. package/esm5/spinner/spinner-dialog.component.js +47 -0
  39. package/fesm2015/huntsman-cancer-institute-dialog.js +1396 -0
  40. package/fesm2015/huntsman-cancer-institute-dialog.js.map +1 -0
  41. package/fesm5/huntsman-cancer-institute-dialog.js +1047 -0
  42. package/fesm5/huntsman-cancer-institute-dialog.js.map +1 -0
  43. package/generic/generic-container-dialog.component.d.ts +38 -0
  44. package/huntsman-cancer-institute-dialog.d.ts +5 -0
  45. package/index.d.ts +14 -0
  46. package/model/base-generic-container-dialog.d.ts +13 -0
  47. package/model/confirm-type.model.d.ts +10 -0
  48. package/model/dialog-type.model.d.ts +10 -0
  49. package/model/generic-dialog-action.model.d.ts +18 -0
  50. package/package.json +34 -0
  51. package/save-footer/save-footer.component.d.ts +24 -0
  52. package/service/dialog.service.d.ts +45 -0
  53. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJjdXN0b20vY3VzdG9tLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBMkIsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQTJGMUYsTUFBTSxPQUFPLHFCQUFxQjtJQTBCOUIsWUFBbUIsU0FBOEMsRUFDcEIsSUFBUyxFQUNsQyxjQUFpQztRQUZsQyxjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXpCOUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVixlQUFVLEdBQVEsVUFBVSxDQUFDO1FBRXBDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ1gsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFJakIsWUFBTyxHQUFlLEVBQUUsQ0FBQztRQWE1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FB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Q0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQzlELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQjtJQUNMLENBQUM7O21IQWpHUSxxQkFBcUIsOENBMkJWLGVBQWU7dUdBM0IxQixxQkFBcUIsOE9BQ0QsZ0JBQWdCLGdKQXZGbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUNUOzRGQTZDUSxxQkFBcUI7a0JBeEZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5Q1Q7b0JBQ0QsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUNSLENBQUM7aUJBQ0w7OzBCQTZCZ0IsTUFBTTsyQkFBQyxlQUFlOzRFQTFCNkIsR0FBRztzQkFBbEUsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFHLElBQUksRUFBRTtnQkFDZixlQUFlO3NCQUE3RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkE4RDdDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQjVDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlhbG9nUG9zaXRpb24sIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3QsIE9uSW5pdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY3Rpb25UeXBlLCBHREFjdGlvbiwgR0RBY3Rpb25Db25maWd9IGZyb20gJy4uL21vZGVsL2dlbmVyaWMtZGlhbG9nLWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaGNpLWN1c3RvbS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZ1bGwtaGVpZ2h0IGZ1bGwtd2lkdGggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoaXMudGl0bGVcIiBjbGFzcz1cImZ1bGwtd2lkdGggZ2VuZXJpYy1kaWFsb2ctaGVhZGVyLWNvbG9ycyBuby1tYXJnaW4gbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjdG9wbW9zdExlZnRtb3N0IG1hdC1kaWFsb2ctdGl0bGUgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bkhlYWRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JjZS1mbGV4LWNvbnRhaW5lci1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGZ1bGwtd2lkdGggcC0yICAge3sgbW92aW5nRGlhbG9nID8gJ2dyYWJiZWQnIDogJ2dyYWJiYWJsZScgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHBhZGRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICAqbmdJZj1cImljb25cIiBjbGFzcz1cImljb25cIiBbc3JjXT1cInRoaXMuaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnN1YnN0cigwLCAyKSA9PT0gJzxpJ1wiIGNsYXNzPVwiaS1jbGFzc1wiIFtpbm5lckhUTUxdPVwiaWNvblwiID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7XCI+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2RpYWxvZy8iLCJzb3VyY2VzIjpbImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC50cyIsImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBR04sU0FBUyxFQUFnQixpQkFBaUIsRUFBRSxXQUFXLEVBQzFELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBaUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUF1QzFFLE1BQU0sT0FBTywrQkFBK0I7SUFxQnhDLFlBQW9CLE1BQWlCLEVBQ2pCLE1BQWMsRUFDZCxjQUFpQyxFQUNqQyxTQUF3RCxFQUNoQyxJQUFJO1FBSjVCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUErQztRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBdkIxQixjQUFTLEdBQUcsOENBQThDLENBQUM7UUFJakYsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUlsQixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBR1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FB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WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdCxcclxuICAgIE9uSW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIFZpZXdDaGlsZCwgQ29tcG9uZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgSG9zdEJpbmRpbmdcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXREaWFsb2dSZWYsIE1hdERpYWxvZywgTUFUX0RJQUxPR19EQVRBLCBEaWFsb2dQb3NpdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge0Jhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nfSBmcm9tICcuLi9tb2RlbC9iYXNlLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZyc7XHJcbmltcG9ydCB7QWN0aW9uVHlwZSwgR0RBY3Rpb259IGZyb20gJy4uL21vZGVsL2dlbmVyaWMtZGlhbG9nLWFjdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaGNpLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW2BcclxuXHJcbiAgICAgICAgLm5vLXBhZGRpbmd7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6MDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm5vLW1hcmdpbntcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZ3JhYmJhYmxlIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICAgICAgICBjdXJzb3I6IGdyYWI7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLW1vei1ncmFiO1xyXG4gICAgICAgICAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmdyYWJiZWQ6YWN0aXZlIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xyXG4gICAgICAgICAgICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmV4aXR7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMjBweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaS1jbGFzcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgMC4zZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hdC1kaWFsb2ctY29udGVudCB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNDb250YWluZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTGlzdCA9ICdkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgZmxleC1zaHJpbmstMSc7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgndG9wbW9zdExlZnRtb3N0Jywge3N0YXRpYzogZmFsc2V9KSB0b3Btb3N0TGVmdG1vc3Q6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgdHlwZSA9IEFjdGlvblR5cGU7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgZGlhbG9nQ29udGVudEJsdWVQcmludDogYW55O1xyXG4gICAgYWN0aW9uczogR0RBY3Rpb25bXSA9IFtdO1xyXG4gICAgb3JpZ2luYWxYQ2xpY2sgPSAwO1xyXG4gICAgb3JpZ2luYWxZQ2xpY2sgPSAwO1xyXG4gICAgZGlhbG9nQ29udGVudDogQmFzZUdlbmVyaWNDb250YWluZXJEaWFsb2c7XHJcblxyXG4gICAgcHJvdGVjdGVkIHBvc2l0aW9uWCA9IDA7XHJcbiAgICBwcm90ZWN0ZWQgcG9zaXRpb25ZID0gMDtcclxuICAgIG1vdmluZ0RpYWxvZyA9IGZhbHNlO1xyXG4gICAgdXNlU2F2ZUZvb3RlcjogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnRCbHVlUHJpbnQgPSBkYXRhLmRpYWxvZ0NvbnRlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgICAgICAgICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XHJcbiAgICAgICAgICAgIHRoaXMudXNlU2F2ZUZvb3RlciA9IGRhdGEuYWN0aW9uQ29uZmlnID8gZGF0YS5hY3Rpb25Db25maWcudXNlU2F2ZUZvb3RlciA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBkYXRhLmFjdGlvbkNvbmZpZyA/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==