@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
package/esm2015/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,26 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BaseGenericContainerDialog {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.showSpinner = false;
|
|
6
|
+
this.innerTitle = '';
|
|
7
|
+
this.primaryDisable = (action) => {
|
|
8
|
+
return false;
|
|
9
|
+
};
|
|
10
|
+
this.secondaryDisable = (action) => {
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
this.dirty = () => { return false; };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
BaseGenericContainerDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGenericContainerDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
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 });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGenericContainerDialog, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
template: ''
|
|
22
|
+
}]
|
|
23
|
+
}], ctorParameters: function () { return []; }, propDecorators: { inputData: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1nZW5lcmljLWNvbnRhaW5lci1kaWFsb2cuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJtb2RlbC9iYXNlLWdlbmVyaWMtY29udGFpbmVyLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFNL0MsTUFBTSxPQUFnQiwwQkFBMEI7SUFlNUM7UUFiTyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXZCLG1CQUFjLEdBQW1DLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEUsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFBO1FBRU8scUJBQWdCLEdBQW1DLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEUsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFBO1FBRU0sVUFBSyxHQUFrQixHQUFHLEVBQUUsR0FBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUd0RCxDQUFDOzt3SEFoQmlCLDBCQUEwQjs0R0FBMUIsMEJBQTBCLHdGQUZsQyxFQUFFOzRGQUVNLDBCQUEwQjtrQkFIL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtpQkFDZjswRUFFWSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtHREFjdGlvbn0gZnJvbSAnLi9nZW5lcmljLWRpYWxvZy1hY3Rpb24ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VHZW5lcmljQ29udGFpbmVyRGlhbG9nIHtcclxuICAgIEBJbnB1dCgpIGlucHV0RGF0YTogYW55O1xyXG4gICAgcHVibGljIHNob3dTcGlubmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaW5uZXJUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgcHVibGljICBwcmltYXJ5RGlzYWJsZTogKGFjdGlvbj86IEdEQWN0aW9uKSA9PiBib29sZWFuID0gKGFjdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgIHNlY29uZGFyeURpc2FibGU6IChhY3Rpb24/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,135 @@
|
|
|
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
|
+
export class SaveFooterComponent {
|
|
9
|
+
constructor(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
|
+
set dirty(data) {
|
|
19
|
+
if (data) {
|
|
20
|
+
this._dirty = data;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this._dirty = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get dirty() {
|
|
27
|
+
return this._dirty;
|
|
28
|
+
}
|
|
29
|
+
set showSpinner(showSpinner) {
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
if (showSpinner) {
|
|
32
|
+
this.dialogService.startDefaultSpinnerDialog();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.dialogService.stopAllSpinnerDialogs();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
// console.log(this.disableSave);
|
|
41
|
+
}
|
|
42
|
+
notifySave() {
|
|
43
|
+
this.saveClicked.emit();
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
this.saveClicked.unsubscribe();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
SaveFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SaveFooterComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
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: `
|
|
51
|
+
<div class="full-height full-width" style="margin-bottom: 8px;">
|
|
52
|
+
<div class="d-flex flex-row align-items-center right-align padded">
|
|
53
|
+
<div *ngIf="dirty" class="warning-background padded">
|
|
54
|
+
{{ message }}
|
|
55
|
+
</div>
|
|
56
|
+
<div class="major-left-right-margin">
|
|
57
|
+
<button mat-raised-button [disabled]="disableSave"
|
|
58
|
+
[color]="actionType" (click)="notifySave()"
|
|
59
|
+
[ngClass]="{'primary-action': actionType === type.PRIMARY,
|
|
60
|
+
'secondary-action': actionType === type.SECONDARY && !disableSave }">
|
|
61
|
+
<img *ngIf="icon" [src]="icon" alt="">
|
|
62
|
+
{{ name }}
|
|
63
|
+
</button>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
`, 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"] }] });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SaveFooterComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{
|
|
71
|
+
selector: 'hci-save-footer',
|
|
72
|
+
template: `
|
|
73
|
+
<div class="full-height full-width" style="margin-bottom: 8px;">
|
|
74
|
+
<div class="d-flex flex-row align-items-center right-align padded">
|
|
75
|
+
<div *ngIf="dirty" class="warning-background padded">
|
|
76
|
+
{{ message }}
|
|
77
|
+
</div>
|
|
78
|
+
<div class="major-left-right-margin">
|
|
79
|
+
<button mat-raised-button [disabled]="disableSave"
|
|
80
|
+
[color]="actionType" (click)="notifySave()"
|
|
81
|
+
[ngClass]="{'primary-action': actionType === type.PRIMARY,
|
|
82
|
+
'secondary-action': actionType === type.SECONDARY && !disableSave }">
|
|
83
|
+
<img *ngIf="icon" [src]="icon" alt="">
|
|
84
|
+
{{ name }}
|
|
85
|
+
</button>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
`,
|
|
90
|
+
styles: [`
|
|
91
|
+
.primary-action{
|
|
92
|
+
background-color: #0077B3FF;
|
|
93
|
+
font-weight: bolder;
|
|
94
|
+
color: white;
|
|
95
|
+
}
|
|
96
|
+
.secondary-action{
|
|
97
|
+
background-color: #DEF4FFFF;
|
|
98
|
+
font-weight: bolder;
|
|
99
|
+
color: #0077B3FF;
|
|
100
|
+
border: #0077B3FF solid 1px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.major-left-right-margin {
|
|
104
|
+
margin-left: 0.5em;
|
|
105
|
+
margin-right: 0.5em;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.right-align {
|
|
109
|
+
text-align: right;
|
|
110
|
+
justify-content: flex-end;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
.warning-background { background:#feec89; }
|
|
115
|
+
|
|
116
|
+
`]
|
|
117
|
+
}]
|
|
118
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }]; }, propDecorators: { actionType: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], icon: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], message: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], name: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], dirty: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], showSpinner: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], disableSave: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], saveClicked: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}] } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvZGlhbG9nLyIsInNvdXJjZXMiOlsic2F2ZS1mb290ZXIvc2F2ZS1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7O0FBbURoRSxNQUFNLE9BQU8sbUJBQW1CO0lBcUM1QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWhDdkMsZUFBVSxHQUFlLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFFNUMsWUFBTyxHQUFHLGtDQUFrQyxDQUFDO1FBQzdDLFNBQUksR0FBRyxNQUFNLENBQUM7UUF5QmQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELFNBQUksR0FBRyxVQUFVLENBQUM7SUFFa0MsQ0FBQztJQTVCckQsSUFBYSxLQUFLLENBQUMsSUFBUztRQUN4QixJQUFJLElBQUksRUFBQztZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO2FBQUk7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN2QjtJQUVMLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUdELElBQWEsV0FBVyxDQUFDLFdBQW9CO1FBQ3pDLFVBQVUsQ0FBRSxHQUFHLEVBQUU7WUFDYixJQUFJLFdBQVcsRUFBRTtnQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQzlDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBUUQsUUFBUTtRQUNKLGlDQUFpQztJQUNyQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7O2lIQS9DUSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw4UEE5Q2xCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDs0RkE2QlEsbUJBQW1CO2tCQWhEL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO29CQUNELE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTBCUixDQUFDO2lCQUNMO29HQU1ZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFhTyxXQUFXO3NCQUF2QixLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtBY3Rpb25UeXBlfSBmcm9tICcuLi9tb2RlbC9nZW5lcmljLWRpYWxvZy1hY3Rpb24ubW9kZWwnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdoY2ktc2F2ZS1mb290ZXInLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnVsbC1oZWlnaHQgZnVsbC13aWR0aFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogOHB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciByaWdodC1hbGlnbiBwYWRkZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXJ0eVwiIGNsYXNzPVwid2FybmluZy1iYWNrZ3JvdW5kIHBhZGRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ham9yLWxlZnQtcmlnaHQtbWFyZ2luXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZVNhdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvblR5cGVcIiAoY2xpY2spPVwibm90aWZ5U2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncHJpbWFyeS1hY3Rpb24nOiBhY3Rpb25UeXBlID09PSB0eXBlLlBSSU1BUlksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kYXJ5LWFjdGlvbic6IGFjdGlvblR5cGUgPT09IHR5cGUuU0VDT05EQVJZICYmICFkaXNhYmxlU2F2ZSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpY29uXCIgW3NyY109XCJpY29uXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgLnByaW1hcnktYWN0aW9ue1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N0IzRkY7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNlY29uZGFyeS1hY3Rpb257XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNERUY0RkZGRjtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDc3QjNGRjtcclxuICAgICAgICAgICAgYm9yZGVyOiAjMDA3N0IzRkYgIHNvbGlkIDFweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYWpvci1sZWZ0LXJpZ2h0LW1hcmdpbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgMC41ZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucmlnaHQtYWxpZ24ge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAud2FybmluZy1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZDojZmVlYzg5OyB9XHJcblxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGlydHk6IGJvb2xlYW47XHJcblxyXG5cclxuICAgIEBJbnB1dCgpIGFjdGlvblR5cGU6IEFjdGlvblR5cGUgPSBBY3Rpb25UeXBlLlBSSU1BUlk7XHJcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBtZXNzYWdlID0gJ1lvdXIgY2hhbmdlcyBoYXZlIG5vdCBiZWVuIHNhdmVkJztcclxuICAgIEBJbnB1dCgpIG5hbWUgPSAnU2F2ZSc7XHJcbiAgICBASW5wdXQoKSBzZXQgZGlydHkoZGF0YTogYW55KXtcclxuICAgICAgICBpZiAoZGF0YSl7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gZGF0YTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZ2V0IGRpcnR5KCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKSBzZXQgc2hvd1NwaW5uZXIoc2hvd1NwaW5uZXI6IGJvb2xlYW4pIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzaG93U3Bpbm5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlU2F2ZSA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHNhdmVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICB0eXBlID0gQWN0aW9uVHlwZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCl7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kaXNhYmxlU2F2ZSk7XHJcbiAgICB9XHJcbiAgICBub3RpZnlTYXZlKCk6IHZvaWR7XHJcbiAgICAgICAgdGhpcy5zYXZlQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpe1xyXG4gICAgICAgIHRoaXMuc2F2ZUNsaWNrZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
|
3
|
+
import { AlertDialogComponent } from '../alert/alert-dialog.component';
|
|
4
|
+
import { SpinnerDialogComponent } from '../spinner/spinner-dialog.component';
|
|
5
|
+
import { CustomDialogComponent } from '../custom/custom-dialog.component';
|
|
6
|
+
import { GenericContainerDialogComponent } from '../generic/generic-container-dialog.component';
|
|
7
|
+
import { ActionType } from '../model/generic-dialog-action.model';
|
|
8
|
+
import { DialogType } from '../model/dialog-type.model';
|
|
9
|
+
import { ConfirmType } from '../model/confirm-type.model';
|
|
10
|
+
import { ConfirmDialogComponent } from '../confirm/confirm-dialog.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/material/dialog";
|
|
13
|
+
export class DialogService {
|
|
14
|
+
constructor(dialog) {
|
|
15
|
+
this.dialog = dialog;
|
|
16
|
+
this._spinnerDialogIsOpen = false;
|
|
17
|
+
this.spinnerWorkItemCount = 0;
|
|
18
|
+
this.checkingSpinnerWorkItems = false;
|
|
19
|
+
this.spinnerDialogRefs = [];
|
|
20
|
+
}
|
|
21
|
+
get spinnerDialogIsOpen() {
|
|
22
|
+
return this._spinnerDialogIsOpen;
|
|
23
|
+
}
|
|
24
|
+
alert(message, title, dialogType, icon, config) {
|
|
25
|
+
return this.openDialog(message, title, dialogType ? dialogType : DialogType.ALERT, icon, config);
|
|
26
|
+
}
|
|
27
|
+
confirm(message, title, icon, config) {
|
|
28
|
+
return this.openDialog(message, title, DialogType.CONFIRM, icon, config);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a ConfirmDialogComponent with different display depending on
|
|
32
|
+
* the ConfirmType.
|
|
33
|
+
* @param title defaults to 'Confirm'
|
|
34
|
+
* @param icon defaults to 'fa fa-info-circle'
|
|
35
|
+
* @param config config.data can contain a prompt, message1 and/or
|
|
36
|
+
* message2 according to the ConfirmType chosen
|
|
37
|
+
* @param actionConfig sets up the dialog buttons and actions if you want
|
|
38
|
+
* to override the defaults
|
|
39
|
+
*/
|
|
40
|
+
confirmByType(confirmType, title, icon, config, actionConfig) {
|
|
41
|
+
if (!title) {
|
|
42
|
+
title = 'Confirm';
|
|
43
|
+
}
|
|
44
|
+
if (!icon) {
|
|
45
|
+
icon = 'fa fa-info-circle';
|
|
46
|
+
}
|
|
47
|
+
// set up a default if needed
|
|
48
|
+
if (!config) {
|
|
49
|
+
config = new MatDialogConfig();
|
|
50
|
+
config.width = '33vw';
|
|
51
|
+
config.minWidth = '300px';
|
|
52
|
+
config.disableClose = true;
|
|
53
|
+
}
|
|
54
|
+
if (config.data) {
|
|
55
|
+
config.data.confirmType = confirmType;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
config.data = {
|
|
59
|
+
confirmType
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// if no actions passed in, set up the defaults
|
|
63
|
+
if (!actionConfig) {
|
|
64
|
+
// default actions
|
|
65
|
+
let primary = { type: ActionType.PRIMARY, name: 'YES',
|
|
66
|
+
internalAction: 'onConfirmClick', internalActionReturnValue: true };
|
|
67
|
+
let secondary = { type: ActionType.SECONDARY, name: 'GO BACK',
|
|
68
|
+
internalAction: 'onClose' };
|
|
69
|
+
// by enum type, setup the messages/prompt
|
|
70
|
+
// only two need different defaults than generic defaults
|
|
71
|
+
switch (confirmType) {
|
|
72
|
+
case ConfirmType.CONFIRM_AND_CLOSE:
|
|
73
|
+
primary = { type: ActionType.PRIMARY, name: 'CONFIRM AND CLOSE',
|
|
74
|
+
internalAction: 'onConfirmClick', internalActionReturnValue: true };
|
|
75
|
+
break;
|
|
76
|
+
case ConfirmType.ALERT:
|
|
77
|
+
primary = undefined;
|
|
78
|
+
secondary = { type: ActionType.SECONDARY, name: 'CLOSE',
|
|
79
|
+
internalAction: 'onClose' };
|
|
80
|
+
break;
|
|
81
|
+
// case ConfirmType.DELETE:
|
|
82
|
+
// case ConfirmType.DELETE_W_MESSAGE:
|
|
83
|
+
// case ConfirmType.DELETE_W_PROMPT:
|
|
84
|
+
// case ConfirmType.DISCARD:
|
|
85
|
+
// case ConfirmType.ADD:
|
|
86
|
+
// case ConfirmType.GENERIC:
|
|
87
|
+
default:
|
|
88
|
+
throw new Error('Confirm type doesn\'t exist');
|
|
89
|
+
}
|
|
90
|
+
const actions = [];
|
|
91
|
+
if (primary) {
|
|
92
|
+
actions.push(primary);
|
|
93
|
+
}
|
|
94
|
+
if (secondary) {
|
|
95
|
+
actions.push(secondary);
|
|
96
|
+
}
|
|
97
|
+
actionConfig = {
|
|
98
|
+
actions
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return this.genericDialogContainer(ConfirmDialogComponent, title, icon, config, actionConfig);
|
|
102
|
+
}
|
|
103
|
+
error(message, title, icon, config) {
|
|
104
|
+
return this.openDialog(message, title, DialogType.ERROR, icon, config);
|
|
105
|
+
}
|
|
106
|
+
info(message, title, icon, config) {
|
|
107
|
+
return this.openDialog(message, title, DialogType.INFO, icon, config);
|
|
108
|
+
}
|
|
109
|
+
createCustomDialog(tempRef, context, title, icon, config, actionConfig) {
|
|
110
|
+
let configuration = null;
|
|
111
|
+
if (!config) {
|
|
112
|
+
configuration = new MatDialogConfig();
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
configuration = config;
|
|
116
|
+
}
|
|
117
|
+
configuration.data = configuration.data ? configuration.data : {};
|
|
118
|
+
configuration.data.templateRef = tempRef;
|
|
119
|
+
configuration.data.title = title ? title : '';
|
|
120
|
+
configuration.data.icon = icon ? icon : '';
|
|
121
|
+
configuration.data.context = context;
|
|
122
|
+
if (actionConfig) {
|
|
123
|
+
configuration.data.actionConfig = actionConfig;
|
|
124
|
+
}
|
|
125
|
+
configuration.minWidth = configuration.minWidth ? configuration.minWidth : '10em';
|
|
126
|
+
configuration.width = configuration.width ? configuration.width : '30em';
|
|
127
|
+
configuration.panelClass = ['mx-sized-dialog', 'no-padding'];
|
|
128
|
+
configuration.disableClose = true;
|
|
129
|
+
configuration.hasBackdrop = true;
|
|
130
|
+
const dialogRef = this.dialog.open(CustomDialogComponent, configuration);
|
|
131
|
+
return dialogRef;
|
|
132
|
+
}
|
|
133
|
+
startDefaultSpinnerDialog() {
|
|
134
|
+
return this.startSpinnerDialog('Please wait...', 3, 30);
|
|
135
|
+
}
|
|
136
|
+
startSpinnerDialog(message, strokeWidth, diameter) {
|
|
137
|
+
if (this._spinnerDialogIsOpen) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
this._spinnerDialogIsOpen = true;
|
|
141
|
+
const configuration = new MatDialogConfig();
|
|
142
|
+
configuration.data = {
|
|
143
|
+
message,
|
|
144
|
+
strokeWidth,
|
|
145
|
+
diameter
|
|
146
|
+
};
|
|
147
|
+
configuration.width = '13em';
|
|
148
|
+
configuration.disableClose = true;
|
|
149
|
+
const dialogRef = this.dialog.open(SpinnerDialogComponent, configuration);
|
|
150
|
+
dialogRef.afterClosed().subscribe(() => {
|
|
151
|
+
this._spinnerDialogIsOpen = false;
|
|
152
|
+
});
|
|
153
|
+
this.spinnerDialogRefs.push(dialogRef);
|
|
154
|
+
return dialogRef;
|
|
155
|
+
}
|
|
156
|
+
startNonModalSpinnerDialog(message, strokeWidth, diameter) {
|
|
157
|
+
if (this._spinnerDialogIsOpen) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
this._spinnerDialogIsOpen = true;
|
|
161
|
+
const configuration = new MatDialogConfig();
|
|
162
|
+
configuration.data = {
|
|
163
|
+
message,
|
|
164
|
+
strokeWidth,
|
|
165
|
+
diameter
|
|
166
|
+
};
|
|
167
|
+
configuration.width = '13em';
|
|
168
|
+
configuration.disableClose = true;
|
|
169
|
+
configuration.hasBackdrop = false;
|
|
170
|
+
const dialogRef = this.dialog.open(SpinnerDialogComponent, configuration);
|
|
171
|
+
dialogRef.afterClosed().subscribe(() => {
|
|
172
|
+
this._spinnerDialogIsOpen = false;
|
|
173
|
+
});
|
|
174
|
+
this.spinnerDialogRefs.push(dialogRef);
|
|
175
|
+
return dialogRef;
|
|
176
|
+
}
|
|
177
|
+
// Let there be an alternative, global way to stop all active spinner dialogs.
|
|
178
|
+
stopAllSpinnerDialogs() {
|
|
179
|
+
this.spinnerWorkItemCount = 0;
|
|
180
|
+
for (const dialogRef of this.spinnerDialogRefs) {
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
dialogRef.close();
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
this.spinnerDialogRefs = [];
|
|
186
|
+
}
|
|
187
|
+
addSpinnerWorkItem() {
|
|
188
|
+
this.spinnerWorkItemCount++;
|
|
189
|
+
if (!this.checkingSpinnerWorkItems) {
|
|
190
|
+
this.checkingSpinnerWorkItems = true;
|
|
191
|
+
setTimeout(() => {
|
|
192
|
+
this.checkSpinnerWorkItems();
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
removeSpinnerWorkItem() {
|
|
197
|
+
this.spinnerWorkItemCount--;
|
|
198
|
+
if (this.spinnerWorkItemCount < 0) {
|
|
199
|
+
this.spinnerWorkItemCount = 0;
|
|
200
|
+
}
|
|
201
|
+
if (!this.checkingSpinnerWorkItems) {
|
|
202
|
+
this.checkingSpinnerWorkItems = true;
|
|
203
|
+
setTimeout(() => {
|
|
204
|
+
this.checkSpinnerWorkItems();
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
checkSpinnerWorkItems() {
|
|
209
|
+
this.checkingSpinnerWorkItems = false;
|
|
210
|
+
if (this.spinnerWorkItemCount) {
|
|
211
|
+
if (!this._spinnerDialogIsOpen) {
|
|
212
|
+
this.startDefaultSpinnerDialog();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else if (this._spinnerDialogIsOpen) {
|
|
216
|
+
this.stopAllSpinnerDialogs();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
genericDialogContainer(dialogContent, title, icon, config, actionConfig) {
|
|
220
|
+
let configuration = null;
|
|
221
|
+
if (!config) {
|
|
222
|
+
configuration = new MatDialogConfig();
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
configuration = config;
|
|
226
|
+
}
|
|
227
|
+
configuration.data = configuration.data ? configuration.data : {};
|
|
228
|
+
configuration.data.dialogContent = dialogContent;
|
|
229
|
+
configuration.data.title = title;
|
|
230
|
+
if (icon) {
|
|
231
|
+
configuration.data.icon = icon;
|
|
232
|
+
}
|
|
233
|
+
if (actionConfig) {
|
|
234
|
+
configuration.data.actionConfig = actionConfig;
|
|
235
|
+
}
|
|
236
|
+
configuration.panelClass = ['mx-sized-dialog', 'no-padding'];
|
|
237
|
+
configuration.disableClose = true;
|
|
238
|
+
configuration.hasBackdrop = true;
|
|
239
|
+
const dialogRef = this.dialog.open(GenericContainerDialogComponent, configuration);
|
|
240
|
+
return dialogRef.afterClosed();
|
|
241
|
+
}
|
|
242
|
+
openDialog(message, title, type, icon, config) {
|
|
243
|
+
let configuration = null;
|
|
244
|
+
if (!config) {
|
|
245
|
+
configuration = new MatDialogConfig();
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
configuration = config;
|
|
249
|
+
}
|
|
250
|
+
configuration.data = configuration.data ? configuration.data : {};
|
|
251
|
+
configuration.data.message = message;
|
|
252
|
+
configuration.data.title = title ? title : '';
|
|
253
|
+
configuration.data.icon = icon ? icon : '';
|
|
254
|
+
configuration.data.dialogType = type ? type : '';
|
|
255
|
+
configuration.maxWidth = configuration.maxWidth ? configuration.maxWidth : '80vw';
|
|
256
|
+
configuration.maxHeight = configuration.maxHeight ? configuration.maxHeight : '80vh';
|
|
257
|
+
configuration.minWidth = configuration.minWidth ? configuration.minWidth : '30em';
|
|
258
|
+
configuration.panelClass = 'no-padding';
|
|
259
|
+
configuration.disableClose = true;
|
|
260
|
+
configuration.autoFocus = false;
|
|
261
|
+
configuration.hasBackdrop = false;
|
|
262
|
+
let dialogRef;
|
|
263
|
+
dialogRef = this.dialog.open(AlertDialogComponent, configuration);
|
|
264
|
+
return dialogRef.afterClosed();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
DialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
268
|
+
DialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogService });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DialogService, decorators: [{
|
|
270
|
+
type: Injectable
|
|
271
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9kaWFsb2cvIiwic291cmNlcyI6WyJzZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFnQixTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFDLFVBQVUsRUFBaUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFLM0UsTUFBTSxPQUFPLGFBQWE7SUFZdEIsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQVY3Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUVsQyxzQkFBaUIsR0FBMkMsRUFBRSxDQUFDO0lBT3RFLENBQUM7SUFMRCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBS00sS0FBSyxDQUFDLE9BQTBCLEVBQUUsS0FBYyxFQUMxQyxVQUF1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QUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JGLGFBQWEsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRWxGLGFBQWEsQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDO1FBQ3hDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRWxDLElBQUksU0FBNkMsQ0FBQztRQUVsRCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFbEUsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7MkdBMVRRLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQWxlcnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hbGVydC9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtDdXN0b21EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uL2N1c3RvbS9jdXN0b20tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7R2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi4vZ2VuZXJpYy9nZW5lcmljLWNvbnRhaW5lci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtBY3Rpb25UeXBlLCBHREFjdGlvbkNvbmZpZ30gZnJvbSAnLi4vbW9kZWwvZ2VuZXJpYy1kaWFsb2ctYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHtEaWFsb2dUeXBlfSBmcm9tICcuLi9tb2RlbC9kaWFsb2ctdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7Q29uZmlybVR5cGV9IGZyb20gJy4uL21vZGVsL2NvbmZpcm0tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7Q29uZmlybURpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi4vY29uZmlybS9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcclxuXHJcbiAgICBwcml2YXRlIF9zcGlubmVyRGlhbG9nSXNPcGVuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIHNwaW5uZXJXb3JrSXRlbUNvdW50ID0gMDtcclxuICAgIHByaXZhdGUgY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIHNwaW5uZXJEaWFsb2dSZWZzOiBNYXREaWFsb2dSZWY8U3Bpbm5lckRpYWxvZ0NvbXBvbmVudD5bXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgc3Bpbm5lckRpYWxvZ0lzT3BlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3BlbjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFsZXJ0KG1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdLCB0aXRsZT86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICBkaWFsb2dUeXBlPzogRGlhbG9nVHlwZSwgaWNvbj86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICBjb25maWc/OiBNYXREaWFsb2dDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcGVuRGlhbG9nKG1lc3NhZ2UsIHRpdGxlLCBkaWFsb2dUeXBlID8gZGlhbG9nVHlwZSA6IERpYWxvZ1R5cGUuQUxFUlQsIGljb24sIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbmZpcm0obWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIHRpdGxlPzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgaWNvbj86IHN0cmluZywgY29uZmlnPzogTWF0RGlhbG9nQ29uZmlnKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkRpYWxvZyhtZXNzYWdlLCB0aXRsZSwgRGlhbG9nVHlwZS5DT05GSVJNLCBpY29uLCBjb25maWcpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIENvbmZpcm1EaWFsb2dDb21wb25lbnQgd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBkZXBlbmRpbmcgb25cclxuICAgKiB0aGUgQ29uZmlybVR5cGUuXHJcbiAgICogQHBhcmFtIHRpdGxlIGRlZmF1bHRzIHRvICdDb25maXJtJ1xyXG4gICAqIEBwYXJhbSBpY29uIGRlZmF1bHRzIHRvICdmYSBmYS1pbmZvLWNpcmNsZSdcclxuICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZy5kYXRhIGNhbiBjb250YWluIGEgcHJvbXB0LCBtZXNzYWdlMSBhbmQvb3JcclxuICAgKiBtZXNzYWdlMiBhY2NvcmRpbmcgdG8gdGhlIENvbmZpcm1UeXBlIGNob3NlblxyXG4gICAqIEBwYXJhbSBhY3Rpb25Db25maWcgc2V0cyB1cCB0aGUgZGlhbG9nIGJ1dHRvbnMgYW5kIGFjdGlvbnMgaWYgeW91IHdhbnRcclxuICAgKiB0byBvdmVycmlkZSB0aGUgZGVmYXVsdHNcclxuICAgKi9cclxuICBwdWJsaWMgY29uZmlybUJ5VHlwZShjb25maXJtVHlwZTogQ29uZmlybVR5cGUsIHRpdGxlPzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGljb24/OiBzdHJpbmcsIGNvbmZpZz86IE1hdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWc/OiBHREFjdGlvbkNvbmZpZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKCF0aXRsZSl7XHJcbiAgICAgIHRpdGxlID0gJ0NvbmZpcm0nO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghaWNvbil7XHJcbiAgICAgIGljb24gPSAnZmEgZmEtaW5mby1jaXJjbGUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldCB1cCBhIGRlZmF1bHQgaWYgbmVlZGVkXHJcbiAgICBpZiAoIWNvbmZpZyl7XHJcbiAgICAgIGNvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWc8YW55PigpO1xyXG4gICAgICBjb25maWcud2lkdGggPSAnMzN2dyc7XHJcbiAgICAgIGNvbmZpZy5taW5XaWR0aCA9ICczMDBweCc7XHJcbiAgICAgIGNvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuZGF0YSl7XHJcbiAgICAgIGNvbmZpZy5kYXRhLmNvbmZpcm1UeXBlID0gY29uZmlybVR5cGU7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIGNvbmZpZy5kYXRhID0ge1xyXG4gICAgICAgIGNvbmZpcm1UeXBlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgbm8gYWN0aW9ucyBwYXNzZWQgaW4sIHNldCB1cCB0aGUgZGVmYXVsdHNcclxuICAgIGlmICghYWN0aW9uQ29uZmlnKXtcclxuXHJcbiAgICAgIC8vIGRlZmF1bHQgYWN0aW9uc1xyXG4gICAgICBsZXQgcHJpbWFyeSA9IHt0eXBlOiBBY3Rpb25UeXBlLlBSSU1BUlksIG5hbWU6ICdZRVMnLFxyXG4gICAgICAgIGludGVybmFsQWN0aW9uOiAnb25Db25maXJtQ2xpY2snLCBpbnRlcm5hbEFjdGlvblJldHVyblZhbHVlOiB0cnVlfTtcclxuICAgICAgbGV0IHNlY29uZGFyeSA9IHt0eXBlOiBBY3Rpb25UeXBlLlNFQ09OREFSWSwgbmFtZTogJ0dPIEJBQ0snLFxyXG4gICAgICAgIGludGVybmFsQWN0aW9uOiAnb25DbG9zZSd9O1xyXG5cclxuICAgICAgLy8gYnkgZW51bSB0eXBlLCBzZXR1cCB0aGUgbWVzc2FnZXMvcHJvbXB0XHJcbiAgICAgIC8vIG9ubHkgdHdvIG5lZWQgZGlmZmVyZW50IGRlZmF1bHRzIHRoYW4gZ2VuZXJpYyBkZWZhdWx0c1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpcm1UeXBlKSB7XHJcbiAgICAgICAgY2FzZSBDb25maXJtVHlwZS5DT05GSVJNX0FORF9DTE9TRTpcclxuICAgICAgICAgIHByaW1hcnkgPSB7dHlwZTogQWN0aW9uVHlwZS5QUklNQVJZLCBuYW1lOiAnQ09ORklSTSBBTkQgQ0xPU0UnLFxyXG4gICAgICAgICAgICBpbnRlcm5hbEFjdGlvbjogJ29uQ29uZmlybUNsaWNrJywgaW50ZXJuYWxBY3Rpb25SZXR1cm5WYWx1ZTogdHJ1ZX07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbmZpcm1UeXBlLkFMRVJUOlxyXG4gICAgICAgICAgcHJpbWFyeSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHNlY29uZGFyeSA9IHt0eXBlOiBBY3Rpb25UeXBlLlNFQ09OREFSWSwgbmFtZTogJ0NMT1NFJyxcclxuICAgICAgICAgICAgaW50ZXJuYWxBY3Rpb246ICdvbkNsb3NlJ307XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLyBjYXNlIENvbmZpcm1UeXBlLkRFTEVURTpcclxuICAgICAgICAvLyBjYXNlIENvbmZpcm1UeXBlLkRFTEVURV9XX01FU1NBR0U6XHJcbiAgICAgICAgLy8gY2FzZSBDb25maXJtVHlwZS5ERUxFVEVfV19QUk9NUFQ6XHJcbiAgICAgICAgLy8gY2FzZSBDb25maXJtVHlwZS5ESVNDQVJEOlxyXG4gICAgICAgIC8vIGNhc2UgQ29uZmlybVR5cGUuQUREOlxyXG4gICAgICAgIC8vIGNhc2UgQ29uZmlybVR5cGUuR0VORVJJQzpcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25maXJtIHR5cGUgZG9lc25cXCd0IGV4aXN0Jyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFjdGlvbnMgPSBbXTtcclxuICAgICAgaWYgKHByaW1hcnkpe1xyXG4gICAgICAgIGFjdGlvbnMucHVzaChwcmltYXJ5KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoc2Vjb25kYXJ5KXtcclxuICAgICAgICBhY3Rpb25zLnB1c2goc2Vjb25kYXJ5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYWN0aW9uQ29uZmlnID0ge1xyXG4gICAgICAgIGFjdGlvbnNcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZW5lcmljRGlhbG9nQ29udGFpbmVyKENvbmZpcm1EaWFsb2dDb21wb25lbnQsXHJcbiAgICAgIHRpdGxlLCBpY29uLCBjb25maWcsIGFjdGlvbkNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAgIHB1YmxpYyBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSwgdGl0bGU/OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgaWNvbj86IHN0cmluZywgY29uZmlnPzogTWF0RGlhbG9nQ29uZmlnKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkRpYWxvZyhtZXNzYWdlLCB0aXRsZSwgRGlhbG9nVHlwZS5FUlJPUiwgaWNvbiwgY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5mbyhtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSwgdGl0bGU/OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBpY29uPzogc3RyaW5nLCBjb25maWc/OiBNYXREaWFsb2dDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcGVuRGlhbG9nKG1lc3NhZ2UsIHRpdGxlLCBEaWFsb2dUeXBlLklORk8sIGljb24sIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNyZWF0ZUN1c3RvbURpYWxvZyh0ZW1wUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCBjb250ZXh0PzogYW55LCB0aXRsZT86IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj86IHN0cmluZywgY29uZmlnPzogTWF0RGlhbG9nQ29uZmlnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWc/OiBHREFjdGlvbkNvbmZpZykge1xyXG4gICAgICAgIGxldCBjb25maWd1cmF0aW9uOiBNYXREaWFsb2dDb25maWcgPSBudWxsO1xyXG4gICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9IGNvbmZpZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IGNvbmZpZ3VyYXRpb24uZGF0YSA/IGNvbmZpZ3VyYXRpb24uZGF0YSA6IHt9O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS50ZW1wbGF0ZVJlZiA9IHRlbXBSZWY7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5kYXRhLnRpdGxlID0gdGl0bGUgPyB0aXRsZSA6ICcnO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS5pY29uID0gaWNvbiA/IGljb24gOiAnJztcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRhdGEuY29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgaWYgKGFjdGlvbkNvbmZpZykge1xyXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uLmRhdGEuYWN0aW9uQ29uZmlnID0gYWN0aW9uQ29uZmlnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5taW5XaWR0aCA9IGNvbmZpZ3VyYXRpb24ubWluV2lkdGggPyBjb25maWd1cmF0aW9uLm1pbldpZHRoIDogJzEwZW0nO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBjb25maWd1cmF0aW9uLndpZHRoID8gY29uZmlndXJhdGlvbi53aWR0aCA6ICczMGVtJztcclxuXHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5wYW5lbENsYXNzID0gWydteC1zaXplZC1kaWFsb2cnLCAnbm8tcGFkZGluZyddO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmhhc0JhY2tkcm9wID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDdXN0b21EaWFsb2dDb21wb25lbnQsIGNvbmZpZ3VyYXRpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydERlZmF1bHRTcGlubmVyRGlhbG9nKCk6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRTcGlubmVyRGlhbG9nKCdQbGVhc2Ugd2FpdC4uLicsIDMsIDMwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhcnRTcGlubmVyRGlhbG9nKG1lc3NhZ2U6IHN0cmluZywgc3Ryb2tlV2lkdGg6IG51bWJlciwgZGlhbWV0ZXI6IG51bWJlcik6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbjogTWF0RGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZSxcclxuICAgICAgICAgICAgc3Ryb2tlV2lkdGgsXHJcbiAgICAgICAgICAgIGRpYW1ldGVyXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25maWd1cmF0aW9uLndpZHRoID0gJzEzZW0nO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U3Bpbm5lckRpYWxvZ0NvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFNwaW5uZXJEaWFsb2dDb21wb25lbnQsIGNvbmZpZ3VyYXRpb24pO1xyXG5cclxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Bpbm5lckRpYWxvZ1JlZnMucHVzaChkaWFsb2dSZWYpO1xyXG5cclxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGFydE5vbk1vZGFsU3Bpbm5lckRpYWxvZyhtZXNzYWdlOiBzdHJpbmcsIHN0cm9rZVdpZHRoOiBudW1iZXIsIGRpYW1ldGVyOiBudW1iZXIpOiBNYXREaWFsb2dSZWY8U3Bpbm5lckRpYWxvZ0NvbXBvbmVudD4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc3Bpbm5lckRpYWxvZ0lzT3BlbiA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IE1hdERpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRhdGEgPSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoLFxyXG4gICAgICAgICAgICBkaWFtZXRlclxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi53aWR0aCA9ICcxM2VtJztcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5oYXNCYWNrZHJvcCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTcGlubmVyRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oU3Bpbm5lckRpYWxvZ0NvbXBvbmVudCwgY29uZmlndXJhdGlvbik7XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyRGlhbG9nUmVmcy5wdXNoKGRpYWxvZ1JlZik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTGV0IHRoZXJlIGJlIGFuIGFsdGVybmF0aXZlLCBnbG9iYWwgd2F5IHRvIHN0b3AgYWxsIGFjdGl2ZSBzcGlubmVyIGRpYWxvZ3MuXHJcbiAgICBwdWJsaWMgc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPSAwO1xyXG4gICAgICAgIGZvciAoY29uc3QgZGlhbG9nUmVmIG9mIHRoaXMuc3Bpbm5lckRpYWxvZ1JlZnMpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3Bpbm5lckRpYWxvZ1JlZnMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkU3Bpbm5lcldvcmtJdGVtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQrKztcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU3Bpbm5lcldvcmtJdGVtcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZVNwaW5uZXJXb3JrSXRlbSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJXb3JrSXRlbUNvdW50LS07XHJcbiAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lcldvcmtJdGVtQ291bnQgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tpbmdTcGlubmVyV29ya0l0ZW1zID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU3Bpbm5lcldvcmtJdGVtcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja1NwaW5uZXJXb3JrSXRlbXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGVja2luZ1NwaW5uZXJXb3JrSXRlbXMgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5zcGlubmVyV29ya0l0ZW1Db3VudCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3NwaW5uZXJEaWFsb2dJc09wZW4pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zcGlubmVyRGlhbG9nSXNPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZW5lcmljRGlhbG9nQ29udGFpbmVyKGRpYWxvZ0NvbnRlbnQ6IGFueSwgdGl0bGU6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24/OiBzdHJpbmcsIGNvbmZpZz86IE1hdERpYWxvZ0NvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkNvbmZpZz86IEdEQWN0aW9uQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBsZXQgY29uZmlndXJhdGlvbjogTWF0RGlhbG9nQ29uZmlnID0gbnVsbDtcclxuXHJcblxyXG4gICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9IGNvbmZpZztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5kYXRhID0gY29uZmlndXJhdGlvbi5kYXRhID8gY29uZmlndXJhdGlvbi5kYXRhIDoge307XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5kYXRhLmRpYWxvZ0NvbnRlbnQgPSBkaWFsb2dDb250ZW50O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgIGlmIChpY29uKSB7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS5pY29uID0gaWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbkNvbmZpZykge1xyXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uLmRhdGEuYWN0aW9uQ29uZmlnID0gYWN0aW9uQ29uZmlnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25maWd1cmF0aW9uLnBhbmVsQ2xhc3MgPSBbJ214LXNpemVkLWRpYWxvZycsICduby1wYWRkaW5nJ107XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uaGFzQmFja2Ryb3AgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oR2VuZXJpY0NvbnRhaW5lckRpYWxvZ0NvbXBvbmVudCwgY29uZmlndXJhdGlvbik7XHJcblxyXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9wZW5EaWFsb2cobWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10sIHRpdGxlPzogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHR5cGU/OiBEaWFsb2dUeXBlLCBpY29uPzogc3RyaW5nLCBjb25maWc/OiBNYXREaWFsb2dDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGxldCBjb25maWd1cmF0aW9uOiBNYXREaWFsb2dDb25maWcgPSBudWxsO1xyXG4gICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9IGNvbmZpZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YSA9IGNvbmZpZ3VyYXRpb24uZGF0YSA/IGNvbmZpZ3VyYXRpb24uZGF0YSA6IHt9O1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRhdGEudGl0bGUgPSB0aXRsZSA/IHRpdGxlIDogJyc7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5kYXRhLmljb24gPSBpY29uID8gaWNvbiA6ICcnO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uZGF0YS5kaWFsb2dUeXBlID0gdHlwZSA/IHR5cGUgOiAnJztcclxuXHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5tYXhXaWR0aCA9IGNvbmZpZ3VyYXRpb24ubWF4V2lkdGggPyBjb25maWd1cmF0aW9uLm1heFdpZHRoIDogJzgwdncnO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ubWF4SGVpZ2h0ID0gY29uZmlndXJhdGlvbi5tYXhIZWlnaHQgPyBjb25maWd1cmF0aW9uLm1heEhlaWdodCA6ICc4MHZoJztcclxuICAgICAgICBjb25maWd1cmF0aW9uLm1pbldpZHRoID0gY29uZmlndXJhdGlvbi5taW5XaWR0aCA/IGNvbmZpZ3VyYXRpb24ubWluV2lkdGggOiAnMzBlbSc7XHJcblxyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24ucGFuZWxDbGFzcyA9ICduby1wYWRkaW5nJztcclxuICAgICAgICBjb25maWd1cmF0aW9uLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbi5hdXRvRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICBjb25maWd1cmF0aW9uLmhhc0JhY2tkcm9wID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGxldCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBbGVydERpYWxvZ0NvbXBvbmVudD47XHJcblxyXG4gICAgICAgIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWxlcnREaWFsb2dDb21wb25lbnQsIGNvbmZpZ3VyYXRpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCk7XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "@angular/material/progress-spinner";
|
|
6
|
+
export class SpinnerDialogComponent {
|
|
7
|
+
constructor(dialogRef, data) {
|
|
8
|
+
this.dialogRef = dialogRef;
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.strokeWidth = 3;
|
|
11
|
+
this.diameter = 30;
|
|
12
|
+
this.message = 'Loading...';
|
|
13
|
+
if (this.data) {
|
|
14
|
+
if (!!this.data.message) {
|
|
15
|
+
this.message = this.data.message;
|
|
16
|
+
}
|
|
17
|
+
if (!!this.data.diameter) {
|
|
18
|
+
this.diameter = this.data.diameter;
|
|
19
|
+
}
|
|
20
|
+
if (!!this.data.strokeWidth) {
|
|
21
|
+
this.strokeWidth = this.data.strokeWidth;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
SpinnerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SpinnerDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
SpinnerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SpinnerDialogComponent, selector: "hci-spinner-dialog", inputs: { strokeWidth: "strokeWidth", diameter: "diameter", message: "message" }, ngImport: i0, template: "<div mat-dialog-title class=\"not-rendered\">\r\n<!--<div mat-dialog-title>-->\r\n</div>\r\n<div mat-dialog-content class=\"full-height padded\">\r\n <div class=\"full-width full-height t\">\r\n <div class=\"tr\">\r\n <div class=\"td vertical-center\" [style.height.px]=\"diameter + 5\">\r\n <mat-spinner [hidden]=\"false\" strokeWidth=\"{{strokeWidth}}\" [diameter]=\"diameter\"></mat-spinner>\r\n </div>\r\n <div class=\"td vertical-center\">\r\n {{message}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions class=\"not-rendered\">\r\n<!--<div mat-dialog-actions>-->\r\n</div>\r\n", styles: ["\n .t { display: table; }\n .tr { display: table-row; }\n .td { display: table-cell; }\n\n .full-height { height: 100%; }\n .full-width { width: 100%; }\n\n .vertical-center { vertical-align: middle; }\n\n .padded {\n padding-top: 0.4em;\n padding-bottom: 0.4em;\n }\n\n .not-rendered {\n padding: 0;\n margin: 0;\n\n min-height: 0;\n max-height: 0;\n height: 0;\n }\n\n "], components: [{ type: i2.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ 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]" }] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SpinnerDialogComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'hci-spinner-dialog',
|
|
32
|
+
templateUrl: 'spinner-dialog.component.html',
|
|
33
|
+
styles: [`
|
|
34
|
+
.t { display: table; }
|
|
35
|
+
.tr { display: table-row; }
|
|
36
|
+
.td { display: table-cell; }
|
|
37
|
+
|
|
38
|
+
.full-height { height: 100%; }
|
|
39
|
+
.full-width { width: 100%; }
|
|
40
|
+
|
|
41
|
+
.vertical-center { vertical-align: middle; }
|
|
42
|
+
|
|
43
|
+
.padded {
|
|
44
|
+
padding-top: 0.4em;
|
|
45
|
+
padding-bottom: 0.4em;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.not-rendered {
|
|
49
|
+
padding: 0;
|
|
50
|
+
margin: 0;
|
|
51
|
+
|
|
52
|
+
min-height: 0;
|
|
53
|
+
max-height: 0;
|
|
54
|
+
height: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
`]
|
|
58
|
+
}]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
60
|
+
type: Inject,
|
|
61
|
+
args: [MAT_DIALOG_DATA]
|
|
62
|
+
}] }]; }, propDecorators: { strokeWidth: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], diameter: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], message: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvZGlhbG9nLyIsInNvdXJjZXMiOlsic3Bpbm5lci9zcGlubmVyLWRpYWxvZy5jb21wb25lbnQudHMiLCJzcGlubmVyL3NwaW5uZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBK0J2RSxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQW9CLFNBQStDLEVBQ3RCLElBQUk7UUFEN0IsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBQTtRQU54QyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUk1QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDNUM7U0FDSjtJQUNMLENBQUM7O29IQW5CUSxzQkFBc0IsOENBT1gsZUFBZTt3R0FQMUIsc0JBQXNCLDRJQ2hDbkMsMnJCQWtCQTs0RkRjYSxzQkFBc0I7a0JBN0JsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F3QlIsQ0FBQztpQkFDTDs7MEJBUWdCLE1BQU07MkJBQUMsZUFBZTs0Q0FOMUIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdoY2ktc3Bpbm5lci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdzcGlubmVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgLnQgIHsgZGlzcGxheTogdGFibGU7IH1cclxuICAgICAgICAudHIgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cclxuICAgICAgICAudGQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XHJcblxyXG4gICAgICAgIC5mdWxsLWhlaWdodCB7IGhlaWdodDogMTAwJTsgfVxyXG4gICAgICAgIC5mdWxsLXdpZHRoICB7IHdpZHRoOiAgMTAwJTsgfVxyXG5cclxuICAgICAgICAudmVydGljYWwtY2VudGVyIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cclxuICAgICAgICAucGFkZGVkIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNGVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC40ZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubm90LXJlbmRlcmVkIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgbWFyZ2luOiAgMDtcclxuXHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogICAgIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlubmVyRGlhbG9nQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHN0cm9rZVdpZHRoID0gMztcclxuICAgIEBJbnB1dCgpIGRpYW1ldGVyID0gMzA7XHJcblxyXG4gICAgQElucHV0KCkgbWVzc2FnZSA9ICdMb2FkaW5nLi4uJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNwaW5uZXJEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YSkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuZGF0YS5tZXNzYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuZGF0YS5kaWFtZXRlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFtZXRlciA9IHRoaXMuZGF0YS5kaWFtZXRlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoISF0aGlzLmRhdGEuc3Ryb2tlV2lkdGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Ryb2tlV2lkdGggPSB0aGlzLmRhdGEuc3Ryb2tlV2lkdGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJub3QtcmVuZGVyZWRcIj5cclxuPCEtLTxkaXYgbWF0LWRpYWxvZy10aXRsZT4tLT5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZnVsbC1oZWlnaHQgcGFkZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnVsbC13aWR0aCBmdWxsLWhlaWdodCB0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZCB2ZXJ0aWNhbC1jZW50ZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImRpYW1ldGVyICsgNVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIFtoaWRkZW5dPVwiZmFsc2VcIiBzdHJva2VXaWR0aD1cInt7c3Ryb2tlV2lkdGh9fVwiIFtkaWFtZXRlcl09XCJkaWFtZXRlclwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQgdmVydGljYWwtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7e21lc3NhZ2V9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJub3QtcmVuZGVyZWRcIj5cclxuPCEtLTxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPi0tPlxyXG48L2Rpdj5cclxuIl19
|