@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,128 @@
|
|
|
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
|
+
var GenericContainerDialogComponent = /** @class */ (function () {
|
|
11
|
+
function GenericContainerDialogComponent(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
|
+
GenericContainerDialogComponent.prototype.ngOnInit = function () {
|
|
34
|
+
};
|
|
35
|
+
GenericContainerDialogComponent.prototype.createdComponent = function (event) {
|
|
36
|
+
this.dialogContent = event.instance;
|
|
37
|
+
};
|
|
38
|
+
GenericContainerDialogComponent.prototype.executeAction = function (action) {
|
|
39
|
+
if (action.externalAction) {
|
|
40
|
+
action.externalAction();
|
|
41
|
+
}
|
|
42
|
+
if (action.internalAction) {
|
|
43
|
+
var 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
|
+
GenericContainerDialogComponent.prototype.onMouseDownHeader = function (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
|
+
GenericContainerDialogComponent.prototype.onMouseMove = function (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
|
+
var newDialogPosition = {
|
|
85
|
+
left: '' + this.positionX + 'px',
|
|
86
|
+
top: '' + this.positionY + 'px',
|
|
87
|
+
};
|
|
88
|
+
this.dialogRef.updatePosition(newDialogPosition);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
GenericContainerDialogComponent.prototype.onMouseUp = function () {
|
|
92
|
+
this.movingDialog = false;
|
|
93
|
+
this.changeDetector.reattach();
|
|
94
|
+
};
|
|
95
|
+
GenericContainerDialogComponent.prototype.onClose = function () {
|
|
96
|
+
this.dialogRef.close();
|
|
97
|
+
};
|
|
98
|
+
GenericContainerDialogComponent.prototype.ngOnDestroy = function () {
|
|
99
|
+
};
|
|
100
|
+
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 });
|
|
101
|
+
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"] }] });
|
|
102
|
+
return GenericContainerDialogComponent;
|
|
103
|
+
}());
|
|
104
|
+
export { GenericContainerDialogComponent };
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GenericContainerDialogComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{
|
|
108
|
+
selector: 'hci-generic-container-dialog',
|
|
109
|
+
templateUrl: './generic-container-dialog.component.html',
|
|
110
|
+
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 "]
|
|
111
|
+
}]
|
|
112
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
113
|
+
type: Inject,
|
|
114
|
+
args: [MAT_DIALOG_DATA]
|
|
115
|
+
}] }]; }, propDecorators: { classList: [{
|
|
116
|
+
type: HostBinding,
|
|
117
|
+
args: ['class']
|
|
118
|
+
}], topmostLeftmost: [{
|
|
119
|
+
type: ViewChild,
|
|
120
|
+
args: ['topmostLeftmost', { static: false }]
|
|
121
|
+
}], onMouseMove: [{
|
|
122
|
+
type: HostListener,
|
|
123
|
+
args: ['window:mousemove', ['$event']]
|
|
124
|
+
}], onMouseUp: [{
|
|
125
|
+
type: HostListener,
|
|
126
|
+
args: ['window:mouseup', ['$event']]
|
|
127
|
+
}] } });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2RpYWxvZy8iLCJzb3VyY2VzIjpbImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC50cyIsImdlbmVyaWMvZ2VuZXJpYy1jb250YWluZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBR04sU0FBUyxFQUFnQixpQkFBaUIsRUFBRSxXQUFXLEVBQzFELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBaUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFFMUU7SUEwREkseUNBQW9CLE1BQWlCLEVBQ2pCLE1BQWMsRUFDZCxjQUFpQyxFQUNqQyxTQUF3RCxFQUNoQyxJQUFJO1FBSjVCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUErQztRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFBO1FBdkIxQixjQUFTLEdBQUcsOENBQThDLENBQUM7UUFJakYsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUlsQixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBR1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFTakIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNqRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztJQUVELGtEQUFRLEdBQVI7SUFDQSxDQUFDO0lBRUQsMERBQWdCLEdBQWhCLFVBQWlCLEtBQXdCO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUksS0FBSyxDQUFDLFFBQXVDLENBQUM7SUFDeEUsQ0FBQztJQUVELHVEQUFhLEdBQWIsVUFBYyxNQUFnQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDdkIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQU0sY0FBYyxHQUFXLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDckQsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtnQkFDM0UsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFO29CQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7aUJBQ3hDO3FCQUFNO29CQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDbEI7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLE9BQU8sTUFBTSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsRUFBRTtvQkFDM0QsSUFBSSxNQUFNLENBQUMseUJBQXlCLEVBQUM7d0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7cUJBQ3RFO2lCQUNGO3FCQUFLO29CQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztpQkFDdEM7YUFFRjtTQUNKO0lBQ0wsQ0FBQztJQUVELDJEQUFpQixHQUFqQixVQUFrQixLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUU5RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELHFEQUFXLEdBRFgsVUFDWSxLQUFVO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFFdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUVwQyxJQUFNLGlCQUFpQixHQUFtQjtnQkFDdEMsSUFBSSxFQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUk7Z0JBQ2xDLEdBQUcsRUFBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJO2FBQ3JDLENBQUM7WUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVELG1EQUFTLEdBRFQ7UUFFSSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpREFBTyxHQUFQO1FBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQscURBQVcsR0FBWDtJQUNBLENBQUM7aUlBakhRLCtCQUErQiw4SEF5QnBCLGVBQWU7cUhBekIxQiwrQkFBK0IsOFVDcEQ1QyxpeUZBaURBOzBDRGpEQTtDQXNLQyxBQXZKRCxJQXVKQztTQWxIWSwrQkFBK0I7NEZBQS9CLCtCQUErQjtrQkFyQzNDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsV0FBVyxFQUFFLDJDQUEyQztvQkFDeEQsTUFBTSxFQUFFLENBQUMsK3NCQWdDUixDQUFDO2lCQUNMOzswQkEwQmdCLE1BQU07MkJBQUMsZUFBZTs0Q0F2QmIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUUyQixlQUFlO3NCQUE3RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkE4RTdDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQjVDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgVmlld0NoaWxkLCBDb21wb25lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdERpYWxvZ1JlZiwgTWF0RGlhbG9nLCBNQVRfRElBTE9HX0RBVEEsIERpYWxvZ1Bvc2l0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7QmFzZUdlbmVyaWNDb250YWluZXJEaWFsb2d9IGZyb20gJy4uL21vZGVsL2Jhc2UtZ2VuZXJpYy1jb250YWluZXItZGlhbG9nJztcclxuaW1wb3J0IHtBY3Rpb25UeXBlLCBHREFjdGlvbn0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJpYy1kaWFsb2ctYWN0aW9uLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdoY2ktZ2VuZXJpYy1jb250YWluZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWNvbnRhaW5lci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbYFxyXG5cclxuICAgICAgICAubm8tcGFkZGluZ3tcclxuICAgICAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubm8tbWFyZ2lue1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ncmFiYmFibGUge1xyXG4gICAgICAgICAgICBjdXJzb3I6IG1vdmU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogZ3JhYjtcclxuICAgICAgICAgICAgY3Vyc29yOiAtbW96LWdyYWI7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZ3JhYmJlZDphY3RpdmUge1xyXG4gICAgICAgICAgICBjdXJzb3I6IG1vdmU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XHJcbiAgICAgICAgICAgIGN1cnNvcjogLW1vei1ncmFiYmluZztcclxuICAgICAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZXhpdHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pLWNsYXNzIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICAwLjNlbTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWF0LWRpYWxvZy1jb250ZW50IHtcclxuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NMaXN0ID0gJ2QtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWdyb3ctMSBmbGV4LXNocmluay0xJztcclxuXHJcbiAgICBAVmlld0NoaWxkKCd0b3Btb3N0TGVmdG1vc3QnLCB7c3RhdGljOiBmYWxzZX0pIHRvcG1vc3RMZWZ0bW9zdDogRWxlbWVudFJlZjtcclxuXHJcbiAgICB0eXBlID0gQWN0aW9uVHlwZTtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBkaWFsb2dDb250ZW50Qmx1ZVByaW50OiBhbnk7XHJcbiAgICBhY3Rpb25zOiBHREFjdGlvbltdID0gW107XHJcbiAgICBvcmlnaW5hbFhDbGljayA9IDA7XHJcbiAgICBvcmlnaW5hbFlDbGljayA9IDA7XHJcbiAgICBkaWFsb2dDb250ZW50OiBCYXNlR2VuZXJpY0NvbnRhaW5lckRpYWxvZztcclxuXHJcbiAgICBwcm90ZWN0ZWQgcG9zaXRpb25YID0gMDtcclxuICAgIHByb3RlY3RlZCBwb3NpdGlvblkgPSAwO1xyXG4gICAgbW92aW5nRGlhbG9nID0gZmFsc2U7XHJcbiAgICB1c2VTYXZlRm9vdGVyOiBib29sZWFuO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHZW5lcmljQ29udGFpbmVyRGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSkge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udGVudEJsdWVQcmludCA9IGRhdGEuZGlhbG9nQ29udGVudDtcclxuICAgICAgICAgICAgdGhpcy5pY29uID0gZGF0YS5pY29uO1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcclxuICAgICAgICAgICAgdGhpcy51c2VTYXZlRm9vdGVyID0gZGF0YS5hY3Rpb25Db25maWcgPyBkYXRhLmFjdGlvbkNvbmZpZy51c2VTYXZlRm9vdGVyIDogZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9ucyA9IGRhdGEuYWN0aW9uQ29uZmlnID8gZGF0YS5hY3Rpb25Db25maWcuYWN0aW9ucyBhcyBHREFjdGlvbltdIDogW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZWRDb21wb25lbnQoZXZlbnQ6IENvbXBvbmVudFJlZjxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dDb250ZW50ID0gKGV2ZW50Lmluc3RhbmNlIGFzIEJhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nKTtcclxuICAgIH1cclxuXHJcbiAgICBleGVjdXRlQWN0aW9uKGFjdGlvbjogR0RBY3Rpb24pOiB2b2lkIHtcclxuICAgICAgICBpZiAoYWN0aW9uLmV4dGVybmFsQWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGFjdGlvbi5leHRlcm5hbEFjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWN0aW9uLmludGVybmFsQWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVybmFsQWN0aW9uOiBzdHJpbmcgPSBhY3Rpb24uaW50ZXJuYWxBY3Rpb247XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24uaW50ZXJuYWxBY3Rpb24gPT09ICdjYW5jZWwnIHx8IGFjdGlvbi5pbnRlcm5hbEFjdGlvbiA9PT0gJ29uQ2xvc2UnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb250ZW50W2ludGVybmFsQWN0aW9uXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udGVudFtpbnRlcm5hbEFjdGlvbl0oKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uaW50ZXJuYWxBY3Rpb25SZXR1cm5WYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uaW50ZXJuYWxBY3Rpb25SZXR1cm5WYWx1ZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udGVudFtpbnRlcm5hbEFjdGlvbl0oYWN0aW9uLmludGVybmFsQWN0aW9uUmV0dXJuVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29udGVudFtpbnRlcm5hbEFjdGlvbl0oKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VEb3duSGVhZGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWV2ZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucG9zaXRpb25YID0gdGhpcy50b3Btb3N0TGVmdG1vc3QubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy50b3Btb3N0TGVmdG1vc3QubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XHJcblxyXG4gICAgICAgIHRoaXMub3JpZ2luYWxYQ2xpY2sgPSBldmVudC5zY3JlZW5YO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxZQ2xpY2sgPSBldmVudC5zY3JlZW5ZO1xyXG5cclxuICAgICAgICB0aGlzLm1vdmluZ0RpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRhY2goKTtcclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gICAgb25Nb3VzZU1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW92aW5nRGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25YICs9IGV2ZW50LnNjcmVlblggLSB0aGlzLm9yaWdpbmFsWENsaWNrO1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uWSArPSBldmVudC5zY3JlZW5ZIC0gdGhpcy5vcmlnaW5hbFlDbGljaztcclxuXHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxYQ2xpY2sgPSBldmVudC5zY3JlZW5YO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsWUNsaWNrID0gZXZlbnQuc2NyZWVuWTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RpYWxvZ1Bvc2l0aW9uOiBEaWFsb2dQb3NpdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6ICAgJycgKyB0aGlzLnBvc2l0aW9uWCArICdweCcsXHJcbiAgICAgICAgICAgICAgICB0b3A6ICAgICcnICsgdGhpcy5wb3NpdGlvblkgKyAncHgnLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYudXBkYXRlUG9zaXRpb24obmV3RGlhbG9nUG9zaXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICAgIG9uTW91c2VVcCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vdmluZ0RpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IucmVhdHRhY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlKCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZ1bGwtaGVpZ2h0IGZ1bGwtd2lkdGggZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnVsbC13aWR0aCBnZW5lcmljLWRpYWxvZy1oZWFkZXItY29sb3JzIG5vLW1hcmdpbiBuby1wYWRkaW5nXCI+XHJcbiAgICAgICAgPGRpdiAjdG9wbW9zdExlZnRtb3N0IG1hdC1kaWFsb2ctdGl0bGUgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bkhlYWRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmdWxsLXdpZHRoXCIgW25nQ2xhc3NdPVwieydncmFiYmVkJzptb3ZpbmdEaWFsb2csICdncmFiYmFibGUnOiAhbW92aW5nRGlhbG9nfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJpY29uICYmIGljb24uc3Vic3RyKDAsIDIpICE9PSAnPGknXCIgW3NyY109XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnN1YnN0cigwLCAyKSA9PT0gJzxpJ1wiIGNsYXNzPVwiaS1jbGFzc1wiIFtpbm5lckhUTUxdPVwiaWNvblwiID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjowO1wiPnt7dGhpcy50aXRsZSA/IHRoaXMudGl0bGUgOiB0aGlzLmRpYWxvZ0NvbnRlbnQuaW5uZXJUaXRsZX19PC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkZGVkXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJleGl0IGZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZmxleC1ncm93LTEgbm8tbWFyZ2luIG5vLXBhZGRpbmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZnVsbC1oZWlnaHQgZnVsbC13aWR0aCBwYWRkZWRcIj5cclxuICAgICAgICAgICAgPG5kYy1keW5hbWljIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cInRoaXMuZGlhbG9nQ29udGVudEJsdWVQcmludFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbmRjRHluYW1pY0lucHV0c109XCJ0aGlzLmRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG5kY0R5bmFtaWNDcmVhdGVkKT1cImNyZWF0ZWRDb21wb25lbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L25kYy1keW5hbWljPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zICpuZ0lmPVwiYWN0aW9ucyAmJiBhY3Rpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG5vLW1hcmdpbiBuby1wYWRkaW5nIGdlbmVyaWMtZGlhbG9nLWZvb3Rlci1jb2xvcnNcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8c2F2ZS1mb290ZXIgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gdHlwZS5QUklNQVJZO2Vsc2Ugc2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25UeXBlXT1cImFjdGlvbi50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2tlZCk9XCJleGVjdXRlQWN0aW9uKGFjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVTYXZlXT1cInRoaXMuZGlhbG9nQ29udGVudC5wcmltYXJ5RGlzYWJsZShhY3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXJ0eV09XCJ0aGlzLmRpYWxvZ0NvbnRlbnQuZGlydHkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NwaW5uZXJdPVwidGhpcy5kaWFsb2dDb250ZW50LnNob3dTcGlubmVyXCI+XHJcbiAgICAgICAgICAgIDwvc2F2ZS1mb290ZXI+XHJcbiAgICAgICAgICAgIDwhLS0gdG8gYXZvaWQgaXNzdWUgd2l0aCBtdWx0aXBsZSBzcGlubmVyIG9yIGRpcnR5IG5vdGVzLS0+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2Vjb25kYXJ5PlxyXG4gICAgICAgICAgICAgICAgPHNhdmUtZm9vdGVyIFthY3Rpb25UeXBlXT1cImFjdGlvbi50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwiZXhlY3V0ZUFjdGlvbihhY3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVTYXZlXT1cInRoaXMuZGlhbG9nQ29udGVudC5zZWNvbmRhcnlEaXNhYmxlKGFjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImFjdGlvbi5uYW1lXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9zYXZlLWZvb3Rlcj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS1kaWFsb2cuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJodW50c21hbi1jYW5jZXItaW5zdGl0dXRlLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm5/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { DialogModule } from './dialog.module';
|
|
2
|
+
export { DialogService } from './service/dialog.service';
|
|
3
|
+
export { BaseGenericContainerDialog } from './model/base-generic-container-dialog';
|
|
4
|
+
export { ActionType } from './model/generic-dialog-action.model';
|
|
5
|
+
export { DialogType } from './model/dialog-type.model';
|
|
6
|
+
export { ConfirmType } from './model/confirm-type.model';
|
|
7
|
+
export { AlertDialogComponent } from './alert/alert-dialog.component';
|
|
8
|
+
export { ConfirmDialogComponent } from './confirm/confirm-dialog.component';
|
|
9
|
+
export { CustomDialogComponent } from './custom/custom-dialog.component';
|
|
10
|
+
export { GenericContainerDialogComponent } from './generic/generic-container-dialog.component';
|
|
11
|
+
export { SaveFooterComponent } from './save-footer/save-footer.component';
|
|
12
|
+
export { SpinnerDialogComponent } from './spinner/spinner-dialog.component';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUcvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtEaWFsb2dNb2R1bGV9IGZyb20gJy4vZGlhbG9nLm1vZHVsZSc7XHJcblxyXG5leHBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5leHBvcnQge0Jhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nfSBmcm9tICcuL21vZGVsL2Jhc2UtZ2VuZXJpYy1jb250YWluZXItZGlhbG9nJztcclxuZXhwb3J0IHtBY3Rpb25UeXBlfSBmcm9tICcuL21vZGVsL2dlbmVyaWMtZGlhbG9nLWFjdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCB7R0RBY3Rpb25Db25maWd9IGZyb20gJy4vbW9kZWwvZ2VuZXJpYy1kaWFsb2ctYWN0aW9uLm1vZGVsJztcclxuZXhwb3J0IHtHREFjdGlvbn0gZnJvbSAnLi9tb2RlbC9nZW5lcmljLWRpYWxvZy1hY3Rpb24ubW9kZWwnO1xyXG5leHBvcnQge0RpYWxvZ1R5cGV9IGZyb20gJy4vbW9kZWwvZGlhbG9nLXR5cGUubW9kZWwnO1xyXG5leHBvcnQge0NvbmZpcm1UeXBlfSBmcm9tICcuL21vZGVsL2NvbmZpcm0tdHlwZS5tb2RlbCc7XHJcblxyXG5leHBvcnQge0FsZXJ0RGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2FsZXJ0L2FsZXJ0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQge0NvbmZpcm1EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vY29uZmlybS9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQge0N1c3RvbURpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9jdXN0b20vY3VzdG9tLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQge0dlbmVyaWNDb250YWluZXJEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vZ2VuZXJpYy9nZW5lcmljLWNvbnRhaW5lci1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0IHtTYXZlRm9vdGVyQ29tcG9uZW50fSBmcm9tICcuL3NhdmUtZm9vdGVyL3NhdmUtZm9vdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7U3Bpbm5lckRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
var BaseGenericContainerDialog = /** @class */ (function () {
|
|
4
|
+
function BaseGenericContainerDialog() {
|
|
5
|
+
this.showSpinner = false;
|
|
6
|
+
this.innerTitle = '';
|
|
7
|
+
this.primaryDisable = function (action) {
|
|
8
|
+
return false;
|
|
9
|
+
};
|
|
10
|
+
this.secondaryDisable = function (action) {
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
this.dirty = function () { return false; };
|
|
14
|
+
}
|
|
15
|
+
BaseGenericContainerDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGenericContainerDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
BaseGenericContainerDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BaseGenericContainerDialog, selector: "ng-component", inputs: { inputData: "inputData" }, ngImport: i0, template: '', isInline: true });
|
|
17
|
+
return BaseGenericContainerDialog;
|
|
18
|
+
}());
|
|
19
|
+
export { BaseGenericContainerDialog };
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGenericContainerDialog, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
template: ''
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return []; }, propDecorators: { inputData: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1nZW5lcmljLWNvbnRhaW5lci1kaWFsb2cuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJtb2RlbC9iYXNlLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHL0M7SUFrQkk7UUFiTyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXZCLG1CQUFjLEdBQW1DLFVBQUMsTUFBTTtZQUM1RCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUE7UUFFTyxxQkFBZ0IsR0FBbUMsVUFBQyxNQUFNO1lBQzlELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQTtRQUVNLFVBQUssR0FBa0IsY0FBUSxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUd0RCxDQUFDOzRIQWhCaUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsd0ZBRmxDLEVBQUU7cUNBSmhCO0NBdUJDLEFBcEJELElBb0JDO1NBakJxQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFIL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtpQkFDZjswRUFFWSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtHREFjdGlvbn0gZnJvbSAnLi9nZW5lcmljLWRpYWxvZy1hY3Rpb24ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nIHtcclxuICAgIEBJbnB1dCgpIGlucHV0RGF0YTogYW55O1xyXG4gICAgcHVibGljIHNob3dTcGlubmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaW5uZXJUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgcHVibGljICBwcmltYXJ5RGlzYWJsZTogKGFjdGlvbj86IEdEQWN0aW9uKSA9PiBib29sZWFuID0gKGFjdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgIHNlY29uZGFyeURpc2FibGU6IChhY3Rpb24/OiBHREFjdGlvbikgPT4gYm9vbGVhbiA9IChhY3Rpb24pID0+IHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpcnR5OiAoKSA9PiBib29sZWFuID0gKCkgPT4geyByZXR1cm4gZmFsc2U7IH07XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var ConfirmType;
|
|
2
|
+
(function (ConfirmType) {
|
|
3
|
+
ConfirmType["DELETE"] = "delete";
|
|
4
|
+
ConfirmType["DELETE_W_MESSAGE"] = "deleteMessage";
|
|
5
|
+
ConfirmType["DELETE_W_PROMPT"] = "deletePrompt";
|
|
6
|
+
ConfirmType["DISCARD"] = "discard";
|
|
7
|
+
ConfirmType["CONFIRM_AND_CLOSE"] = "confirmAndClose";
|
|
8
|
+
ConfirmType["ADD"] = "add";
|
|
9
|
+
ConfirmType["ALERT"] = "alert";
|
|
10
|
+
ConfirmType["GENERIC"] = "generic";
|
|
11
|
+
})(ConfirmType || (ConfirmType = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS10eXBlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvZGlhbG9nLyIsInNvdXJjZXMiOlsibW9kZWwvY29uZmlybS10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBTixJQUFZLFdBU1g7QUFURCxXQUFZLFdBQVc7SUFDckIsZ0NBQWlCLENBQUE7SUFDakIsaURBQWtDLENBQUE7SUFDbEMsK0NBQWdDLENBQUE7SUFDaEMsa0NBQW1CLENBQUE7SUFDbkIsb0RBQXFDLENBQUE7SUFDckMsMEJBQVcsQ0FBQTtJQUNYLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVFcsV0FBVyxLQUFYLFdBQVcsUUFTdEIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGVudW0gQ29uZmlybVR5cGUge1xyXG4gIERFTEVURSA9ICdkZWxldGUnLFxyXG4gIERFTEVURV9XX01FU1NBR0UgPSAnZGVsZXRlTWVzc2FnZScsXHJcbiAgREVMRVRFX1dfUFJPTVBUID0gJ2RlbGV0ZVByb21wdCcsXHJcbiAgRElTQ0FSRCA9ICdkaXNjYXJkJyxcclxuICBDT05GSVJNX0FORF9DTE9TRSA9ICdjb25maXJtQW5kQ2xvc2UnLFxyXG4gIEFERCA9ICdhZGQnLFxyXG4gIEFMRVJUID0gJ2FsZXJ0JyxcclxuICBHRU5FUklDID0gJ2dlbmVyaWMnLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var DialogType;
|
|
2
|
+
(function (DialogType) {
|
|
3
|
+
DialogType["ERROR"] = "Error";
|
|
4
|
+
DialogType["WARNING"] = "Warning";
|
|
5
|
+
DialogType["ALERT"] = "Alert";
|
|
6
|
+
DialogType["SUCCESS"] = "Succeed";
|
|
7
|
+
DialogType["FAILED"] = "Failed";
|
|
8
|
+
DialogType["CONFIRM"] = "Confirm";
|
|
9
|
+
DialogType["INFO"] = "Info";
|
|
10
|
+
DialogType["VALIDATION"] = "Validation Error";
|
|
11
|
+
})(DialogType || (DialogType = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXR5cGUubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJtb2RlbC9kaWFsb2ctdHlwZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxVQVNYO0FBVEQsV0FBWSxVQUFVO0lBQ2xCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsaUNBQW1CLENBQUE7SUFDbkIsMkJBQWEsQ0FBQTtJQUNiLDZDQUErQixDQUFBO0FBQ25DLENBQUMsRUFUVyxVQUFVLEtBQVYsVUFBVSxRQVNyQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuZXhwb3J0IGVudW0gRGlhbG9nVHlwZSB7XHJcbiAgICBFUlJPUiA9ICdFcnJvcicsXHJcbiAgICBXQVJOSU5HID0gJ1dhcm5pbmcnLFxyXG4gICAgQUxFUlQgPSAnQWxlcnQnLFxyXG4gICAgU1VDQ0VTUyA9ICdTdWNjZWVkJyxcclxuICAgIEZBSUxFRCA9ICdGYWlsZWQnLFxyXG4gICAgQ09ORklSTSA9ICdDb25maXJtJyxcclxuICAgIElORk8gPSAnSW5mbycsXHJcbiAgICBWQUxJREFUSU9OID0gJ1ZhbGlkYXRpb24gRXJyb3InLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var ActionType;
|
|
2
|
+
(function (ActionType) {
|
|
3
|
+
ActionType["PRIMARY"] = "primary";
|
|
4
|
+
ActionType["SECONDARY"] = "accent";
|
|
5
|
+
})(ActionType || (ActionType = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1kaWFsb2ctYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvZGlhbG9nLyIsInNvdXJjZXMiOlsibW9kZWwvZ2VuZXJpYy1kaWFsb2ctYWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBTixJQUFZLFVBR1g7QUFIRCxXQUFZLFVBQVU7SUFDbEIsaUNBQW1CLENBQUE7SUFDbkIsa0NBQW9CLENBQUE7QUFDeEIsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgZW51bSBBY3Rpb25UeXBlIHtcclxuICAgIFBSSU1BUlkgPSAncHJpbWFyeScsXHJcbiAgICBTRUNPTkRBUlkgPSAnYWNjZW50J1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR0RBY3Rpb25Db25maWcge1xyXG4gICAgZm9ybVNvdXJjZT86IEZvcm1Hcm91cDtcclxuICAgIGFjdGlvbnM6IEdEQWN0aW9uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHREFjdGlvbiB7XHJcbiAgICB0eXBlOiBBY3Rpb25UeXBlO1xyXG4gICAgaW50ZXJuYWxBY3Rpb24/OiBzdHJpbmc7XHJcbiAgICBpbnRlcm5hbEFjdGlvblJldHVyblZhbHVlPzogYm9vbGVhbiB8IGFueTtcclxuICAgIGV4dGVybmFsQWN0aW9uPzogKGRpYWxvZ1JlZj86IE1hdERpYWxvZ1JlZjxhbnk+KSA9PiB2b2lkIHwgc3RyaW5nO1xyXG4gICAgaWNvbj86IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { DialogService } from '../service/dialog.service';
|
|
3
|
+
import { ActionType } from '../model/generic-dialog-action.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../service/dialog.service";
|
|
6
|
+
import * as i2 from "@angular/material/button";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
var SaveFooterComponent = /** @class */ (function () {
|
|
9
|
+
function SaveFooterComponent(dialogService) {
|
|
10
|
+
this.dialogService = dialogService;
|
|
11
|
+
this.actionType = ActionType.PRIMARY;
|
|
12
|
+
this.message = 'Your changes have not been saved';
|
|
13
|
+
this.name = 'Save';
|
|
14
|
+
this.disableSave = false;
|
|
15
|
+
this.saveClicked = new EventEmitter();
|
|
16
|
+
this.type = ActionType;
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(SaveFooterComponent.prototype, "dirty", {
|
|
19
|
+
get: function () {
|
|
20
|
+
return this._dirty;
|
|
21
|
+
},
|
|
22
|
+
set: function (data) {
|
|
23
|
+
if (data) {
|
|
24
|
+
this._dirty = data;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this._dirty = false;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
enumerable: false,
|
|
31
|
+
configurable: true
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(SaveFooterComponent.prototype, "showSpinner", {
|
|
34
|
+
set: function (showSpinner) {
|
|
35
|
+
var _this = this;
|
|
36
|
+
setTimeout(function () {
|
|
37
|
+
if (showSpinner) {
|
|
38
|
+
_this.dialogService.startDefaultSpinnerDialog();
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
_this.dialogService.stopAllSpinnerDialogs();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
enumerable: false,
|
|
46
|
+
configurable: true
|
|
47
|
+
});
|
|
48
|
+
SaveFooterComponent.prototype.ngOnInit = function () {
|
|
49
|
+
// console.log(this.disableSave);
|
|
50
|
+
};
|
|
51
|
+
SaveFooterComponent.prototype.notifySave = function () {
|
|
52
|
+
this.saveClicked.emit();
|
|
53
|
+
};
|
|
54
|
+
SaveFooterComponent.prototype.ngOnDestroy = function () {
|
|
55
|
+
this.saveClicked.unsubscribe();
|
|
56
|
+
};
|
|
57
|
+
SaveFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SaveFooterComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
SaveFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SaveFooterComponent, selector: "hci-save-footer", inputs: { actionType: "actionType", icon: "icon", message: "message", name: "name", dirty: "dirty", showSpinner: "showSpinner", disableSave: "disableSave" }, outputs: { saveClicked: "saveClicked" }, ngImport: i0, template: "\n <div class=\"full-height full-width\" style=\"margin-bottom: 8px;\">\n <div class=\"d-flex flex-row align-items-center right-align padded\">\n <div *ngIf=\"dirty\" class=\"warning-background padded\">\n {{ message }}\n </div>\n <div class=\"major-left-right-margin\">\n <button mat-raised-button [disabled]=\"disableSave\"\n [color]=\"actionType\" (click)=\"notifySave()\"\n [ngClass]=\"{'primary-action': actionType === type.PRIMARY,\n 'secondary-action': actionType === type.SECONDARY && !disableSave }\">\n <img *ngIf=\"icon\" [src]=\"icon\" alt=\"\">\n {{ name }}\n </button>\n </div>\n </div>\n </div>\n ", isInline: true, styles: ["\n .primary-action{\n background-color: #0077B3FF;\n font-weight: bolder;\n color: white;\n }\n .secondary-action{\n background-color: #DEF4FFFF;\n font-weight: bolder;\n color: #0077B3FF;\n border: #0077B3FF solid 1px;\n }\n\n .major-left-right-margin {\n margin-left: 0.5em;\n margin-right: 0.5em;\n }\n\n .right-align {\n text-align: right;\n justify-content: flex-end;\n }\n\n\n .warning-background { background:#feec89; }\n\n "], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
59
|
+
return SaveFooterComponent;
|
|
60
|
+
}());
|
|
61
|
+
export { SaveFooterComponent };
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SaveFooterComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{
|
|
65
|
+
selector: 'hci-save-footer',
|
|
66
|
+
template: "\n <div class=\"full-height full-width\" style=\"margin-bottom: 8px;\">\n <div class=\"d-flex flex-row align-items-center right-align padded\">\n <div *ngIf=\"dirty\" class=\"warning-background padded\">\n {{ message }}\n </div>\n <div class=\"major-left-right-margin\">\n <button mat-raised-button [disabled]=\"disableSave\"\n [color]=\"actionType\" (click)=\"notifySave()\"\n [ngClass]=\"{'primary-action': actionType === type.PRIMARY,\n 'secondary-action': actionType === type.SECONDARY && !disableSave }\">\n <img *ngIf=\"icon\" [src]=\"icon\" alt=\"\">\n {{ name }}\n </button>\n </div>\n </div>\n </div>\n ",
|
|
67
|
+
styles: ["\n .primary-action{\n background-color: #0077B3FF;\n font-weight: bolder;\n color: white;\n }\n .secondary-action{\n background-color: #DEF4FFFF;\n font-weight: bolder;\n color: #0077B3FF;\n border: #0077B3FF solid 1px;\n }\n\n .major-left-right-margin {\n margin-left: 0.5em;\n margin-right: 0.5em;\n }\n\n .right-align {\n text-align: right;\n justify-content: flex-end;\n }\n\n\n .warning-background { background:#feec89; }\n\n "]
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }]; }, propDecorators: { actionType: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], icon: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], message: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], name: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], dirty: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], showSpinner: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], disableSave: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], saveClicked: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvZGlhbG9nLyIsInNvdXJjZXMiOlsic2F2ZS1mb290ZXIvc2F2ZS1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7O0FBR2hFO0lBcUZJLDZCQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWhDdkMsZUFBVSxHQUFlLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFFNUMsWUFBTyxHQUFHLGtDQUFrQyxDQUFDO1FBQzdDLFNBQUksR0FBRyxNQUFNLENBQUM7UUF5QmQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELFNBQUksR0FBRyxVQUFVLENBQUM7SUFFa0MsQ0FBQztJQTVCckQsc0JBQWEsc0NBQUs7YUFRbEI7WUFDSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzthQVZELFVBQW1CLElBQVM7WUFDeEIsSUFBSSxJQUFJLEVBQUM7Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDdEI7aUJBQUk7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDdkI7UUFFTCxDQUFDOzs7T0FBQTtJQU1ELHNCQUFhLDRDQUFXO2FBQXhCLFVBQXlCLFdBQW9CO1lBQTdDLGlCQVNDO1lBUkcsVUFBVSxDQUFFO2dCQUNSLElBQUksV0FBVyxFQUFFO29CQUNiLEtBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLEVBQUUsQ0FBQztpQkFDbEQ7cUJBQU07b0JBQ0gsS0FBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2lCQUM5QztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsQ0FBQzs7O09BQUE7SUFRRCxzQ0FBUSxHQUFSO1FBQ0ksaUNBQWlDO0lBQ3JDLENBQUM7SUFDRCx3Q0FBVSxHQUFWO1FBQ0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QseUNBQVcsR0FBWDtRQUNJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztxSEEvQ1EsbUJBQW1CO3lHQUFuQixtQkFBbUIsOFBBOUNsQiw2NEJBaUJUOzhCQXhCTDtDQXNHQyxBQWpHRCxJQWlHQztTQWpEWSxtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFoRC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLDY0QkFpQlQ7b0JBQ0QsTUFBTSxFQUFFLENBQUMsOG1CQTBCUixDQUFDO2lCQUNMO29HQU1ZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFhTyxXQUFXO3NCQUF2QixLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtBY3Rpb25UeXBlfSBmcm9tICcuLi9tb2RlbC9nZW5lcmljLWRpYWxvZy1hY3Rpb24ubW9kZWwnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdoY2ktc2F2ZS1mb290ZXInLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnVsbC1oZWlnaHQgZnVsbC13aWR0aFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogOHB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciByaWdodC1hbGlnbiBwYWRkZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXJ0eVwiIGNsYXNzPVwid2FybmluZy1iYWNrZ3JvdW5kIHBhZGRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ham9yLWxlZnQtcmlnaHQtbWFyZ2luXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZVNhdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvblR5cGVcIiAoY2xpY2spPVwibm90aWZ5U2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncHJpbWFyeS1hY3Rpb24nOiBhY3Rpb25UeXBlID09PSB0eXBlLlBSSU1BUlksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kYXJ5LWFjdGlvbic6IGFjdGlvblR5cGUgPT09IHR5cGUuU0VDT05EQVJZICYmICFkaXNhYmxlU2F2ZSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpY29uXCIgW3NyY109XCJpY29uXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgLnByaW1hcnktYWN0aW9ue1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0IzRkY7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNlY29uZGFyeS1hY3Rpb257XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNERUY0RkZGRjtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDc3QjNGRjtcclxuICAgICAgICAgICAgYm9yZGVyOiAjMDA3N0IzRkYgIHNvbGlkIDFweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYWpvci1sZWZ0LXJpZ2h0LW1hcmdpbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgMC41ZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucmlnaHQtYWxpZ24ge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAud2FybmluZy1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZDojZmVlYzg5OyB9XHJcblxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGlydHk6IGJvb2xlYW47XHJcblxyXG5cclxuICAgIEBJbnB1dCgpIGFjdGlvblR5cGU6IEFjdGlvblR5cGUgPSBBY3Rpb25UeXBlLlBSSU1BUlk7XHJcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBtZXNzYWdlID0gJ1lvdXIgY2hhbmdlcyBoYXZlIG5vdCBiZWVuIHNhdmVkJztcclxuICAgIEBJbnB1dCgpIG5hbWUgPSAnU2F2ZSc7XHJcbiAgICBASW5wdXQoKSBzZXQgZGlydHkoZGF0YTogYW55KXtcclxuICAgICAgICBpZiAoZGF0YSl7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gZGF0YTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZ2V0IGRpcnR5KCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKSBzZXQgc2hvd1NwaW5uZXIoc2hvd1NwaW5uZXI6IGJvb2xlYW4pIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzaG93U3Bpbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlU2F2ZSA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHNhdmVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICB0eXBlID0gQWN0aW9uVHlwZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCl7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kaXNhYmxlU2F2ZSk7XHJcbiAgICB9XHJcbiAgICBub3RpZnlTYXZlKCk6IHZvaWR7XHJcbiAgICAgICAgdGhpcy5zYXZlQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpe1xyXG4gICAgICAgIHRoaXMuc2F2ZUNsaWNrZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|