@huntsman-cancer-institute/dialog 12.11.9-SNAPSHOT → 12.11.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"huntsman-cancer-institute-dialog.js","sources":["ng://@huntsman-cancer-institute/dialog/model/dialog-type.model.ts","ng://@huntsman-cancer-institute/dialog/model/generic-dialog-action.model.ts","ng://@huntsman-cancer-institute/dialog/alert/alert-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/spinner/spinner-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/spinner/spinner-dialog.component.html","ng://@huntsman-cancer-institute/dialog/custom/custom-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/generic/generic-container-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/generic/generic-container-dialog.component.html","ng://@huntsman-cancer-institute/dialog/model/confirm-type.model.ts","ng://@huntsman-cancer-institute/dialog/model/base-generic-container-dialog.ts","ng://@huntsman-cancer-institute/dialog/confirm/confirm-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/service/dialog.service.ts","ng://@huntsman-cancer-institute/dialog/save-footer/save-footer.component.ts","ng://@huntsman-cancer-institute/dialog/dialog.module.ts","ng://@huntsman-cancer-institute/dialog/huntsman-cancer-institute-dialog.ts"],"sourcesContent":["\r\n\r\nexport enum DialogType {\r\n ERROR = 'Error',\r\n WARNING = 'Warning',\r\n ALERT = 'Alert',\r\n SUCCESS = 'Succeed',\r\n FAILED = 'Failed',\r\n CONFIRM = 'Confirm',\r\n INFO = 'Info',\r\n VALIDATION = 'Validation Error',\r\n}\r\n","import {MatDialogRef} from '@angular/material/dialog';\r\nimport {FormGroup} from '@angular/forms';\r\n\r\nexport enum ActionType {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'accent'\r\n}\r\nexport interface GDActionConfig {\r\n formSource?: FormGroup;\r\n actions: GDAction[];\r\n}\r\nexport interface GDAction {\r\n type: ActionType;\r\n internalAction?: string;\r\n internalActionReturnValue?: boolean | any;\r\n externalAction?: (dialogRef?: MatDialogRef<any>) => void | string;\r\n icon?: string;\r\n name: string;\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Inject, OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {DialogPosition, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {DialogType} from '../model/dialog-type.model';\r\nimport {ActionType} from '../model/generic-dialog-action.model';\r\n\r\n@Component({\r\n selector: 'hci-alert-dialog',\r\n template: `\r\n <div class=\"full-height full-width d-flex flex-column\">\r\n <div class=\"full-width dialog-header-colors no-margin no-padding\">\r\n <div #topmostLeftmost mat-dialog-title (mousedown)=\"onMouseDownHeader($event)\"\r\n class=\"force-flex-container-row align-center full-width padding {{ movingDialog ? 'grabbed' : 'grabbable' }}\">\r\n <div class=\"d-flex flex-row align-items-center padded\">\r\n <img *ngIf=\"icon\" class=\"icon\" [src]=\"this.icon\">\r\n <div *ngIf=\"!icon\">\r\n <i *ngIf=\"dialogType === type.ALERT\" class=\"fa fa-exclamation fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.SUCCESS\" class=\"fa fa-check-circle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.FAILED || dialogType === type.ERROR\" class=\"fa fa-exclamation-triangle fa-2x i-margin i-color-red\"></i>\r\n <i *ngIf=\"dialogType === type.WARNING || dialogType === type.VALIDATION\" class=\"fa fa-exclamation-triangle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.INFO\" class=\"fa fa-info-circle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.CONFIRM\" class=\"fa fa-check fa-2x i-margin i-color-blue\"></i>\r\n </div>\r\n <h1 *ngIf=\"dialogType !== type.ERROR\"\r\n style=\"margin:0;\">{{this.title ? this.title : defaultTitle}}</h1>\r\n <h1 *ngIf=\"dialogType === type.ERROR\"\r\n style=\"margin:0; color: Red\">{{this.title ? this.title : defaultTitle}}</h1>\r\n </div>\r\n </div>\r\n </div>\r\n <mat-dialog-content class=\"flex-grow-1 no-margin no-padding\">\r\n <hr>\r\n <div class=\"flex-grow-1 full-width extra-padded message\">\r\n <div *ngFor=\"let line of message\" class=\"full-width\"\r\n [innerHTML]=\"line\" style=\"white-space: pre-line\">\r\n </div>\r\n </div>\r\n <br>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"d-flex justify-content-center no-margin no-padding\">\r\n <save-footer *ngIf=\"dialogType !== type.CONFIRM\" class=\"centered-text large-size\"\r\n (saveClicked)=\"onClickOk()\" name=\"Ok\"></save-footer>\r\n <save-footer *ngIf=\"dialogType === type.CONFIRM\" class=\"centered-text large-size\"\r\n (saveClicked)=\"onClickYes()\" name=\"Yes\"></save-footer>\r\n <save-footer *ngIf=\"dialogType === type.CONFIRM\" [actionType]=\"actionType\"\r\n class=\"centered-text large-size\" (saveClicked)=\"onClickNo()\"\r\n name=\"No\"></save-footer>\r\n </mat-dialog-actions>\r\n </div>\r\n `,\r\n styles: [`\r\n hr {\r\n width: 98%;\r\n }\r\n\r\n .i-margin {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n .i-color-blue {\r\n color: #0077B3FF;\r\n }\r\n .i-color-red {\r\n color: red;\r\n }\r\n\r\n .centered-text { text-align: center; }\r\n\r\n .no-padding{\r\n padding:0;\r\n\r\n }\r\n\r\n .no-margin{\r\n margin: 0;\r\n }\r\n\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed {\r\n cursor: move;\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n\r\n .force-flex-container-row{\r\n display:flex !important;\r\n }\r\n .extra-padded {\r\n padding: 0.6em 0.9em 0.6em 0.9em;\r\n }\r\n .large-size {\r\n font-size: large;\r\n }\r\n .primary-action {\r\n font-size: large;\r\n }\r\n .secondary-action {\r\n font-size: large;\r\n }\r\n .message {\r\n color: #0F244DFF;\r\n }\r\n `]\r\n}) export class AlertDialogComponent implements OnInit {\r\n public type: any = DialogType;\r\n\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n\r\n public message: string[] = null;\r\n public title = '';\r\n public icon = '';\r\n public dialogType = '';\r\n public defaultTitle = '';\r\n public actionType: any = ActionType.SECONDARY;\r\n\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n movingDialog = false;\r\n\r\n constructor(public dialogRef: MatDialogRef<AlertDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data,\r\n private changeDetector: ChangeDetectorRef) {\r\n if (data) {\r\n this.message = Array.isArray(data.message) ? data.message : [data.message];\r\n this.title = data.title;\r\n this.icon = data.icon;\r\n this.dialogType = data.dialogType;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.dialogType) {\r\n this.defaultTitle = this.dialogType;\r\n }\r\n for (let i = 0; i < this.message.length; i++) {\r\n this.message[i] = this.message[i].replace(/\\n/g, '<br>') + '<br>';\r\n }\r\n }\r\n\r\n onClickOk(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onClickYes(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onClickNo(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n}\r\n","import {Component, Inject, Input} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'hci-spinner-dialog',\r\n templateUrl: 'spinner-dialog.component.html',\r\n styles: [`\r\n .t { display: table; }\r\n .tr { display: table-row; }\r\n .td { display: table-cell; }\r\n\r\n .full-height { height: 100%; }\r\n .full-width { width: 100%; }\r\n\r\n .vertical-center { vertical-align: middle; }\r\n\r\n .padded {\r\n padding-top: 0.4em;\r\n padding-bottom: 0.4em;\r\n }\r\n\r\n .not-rendered {\r\n padding: 0;\r\n margin: 0;\r\n\r\n min-height: 0;\r\n max-height: 0;\r\n height: 0;\r\n }\r\n\r\n `]\r\n})\r\nexport class SpinnerDialogComponent {\r\n @Input() strokeWidth = 3;\r\n @Input() diameter = 30;\r\n\r\n @Input() message = 'Loading...';\r\n\r\n constructor(private dialogRef: MatDialogRef<SpinnerDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data) {\r\n if (this.data) {\r\n if (!!this.data.message) {\r\n this.message = this.data.message;\r\n }\r\n if (!!this.data.diameter) {\r\n this.diameter = this.data.diameter;\r\n }\r\n if (!!this.data.strokeWidth) {\r\n this.strokeWidth = this.data.strokeWidth;\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<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","import {DialogPosition, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {\r\n ChangeDetectorRef,\r\n Component, ElementRef,\r\n HostListener,\r\n Inject, OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport {ActionType, GDAction, GDActionConfig} from '../model/generic-dialog-action.model';\r\nimport {FormGroup} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'hci-custom-dialog',\r\n template: `\r\n <div class=\"d-flex full-height full-width flex-column\">\r\n <div *ngIf=\"this.title\" class=\"full-width generic-dialog-header-colors no-margin no-padding\">\r\n <div #topmostLeftmost mat-dialog-title (mousedown)=\"onMouseDownHeader($event)\"\r\n class=\"force-flex-container-row align-items-center full-width p-2 {{ movingDialog ? 'grabbed' : 'grabbable' }}\">\r\n <div class=\"-flex flex-row align-items-center padded\">\r\n <img *ngIf=\"icon\" class=\"icon\" [src]=\"this.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}}</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 <mat-dialog-content class=\"flex-grow-1 full-width no-margin p-2\" style=\"min-height: 6em;\">\r\n <div #anchor></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 === actionType.PRIMARY;else secondary\"\r\n [actionType]=\"action.type\"\r\n [icon]=\"action.icon\"\r\n [disableSave]=\"primaryDisable\"\r\n (saveClicked)=\"executeAction(action)\"\r\n [name]=\"action.name\">\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]=\"secondaryDisable\"\r\n [name]=\"action.name\">\r\n </save-footer>\r\n </ng-template>\r\n </div>\r\n </mat-dialog-actions>\r\n </div>\r\n `,\r\n styles: [`\r\n .centered-text { text-align: center; }\r\n\r\n .no-padding{\r\n padding:0;\r\n\r\n }\r\n\r\n .no-margin{\r\n margin: 0;\r\n }\r\n\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed:active {\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n\r\n .force-flex-container-row{\r\n display:flex !important;\r\n }\r\n\r\n .exit{\r\n max-width: 20px;\r\n cursor: pointer;\r\n }\r\n\r\n .i-class {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n mat-dialog-content {\r\n max-height: 100vh !important;\r\n max-width: 100vw !important ;\r\n }\r\n `]\r\n})\r\n\r\nexport class CustomDialogComponent implements OnInit {\r\n @ViewChild('anchor', { read: ViewContainerRef, static : true }) vcr: ViewContainerRef;\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n public title = '';\r\n public icon = '';\r\n\r\n public actionType: any = ActionType;\r\n\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n movingDialog = false;\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n context: any;\r\n\r\n private tempRef: TemplateRef<any>;\r\n public actions: GDAction[] = [];\r\n public form: FormGroup;\r\n public get primaryDisable(): boolean {\r\n return this.form && this.form.invalid;\r\n }\r\n // todo need make this customizable\r\n public get secondaryDisable(): boolean {\r\n return false;\r\n }\r\n\r\n constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private changeDetector: ChangeDetectorRef) {\r\n this.title = data.title;\r\n this.tempRef = data.templateRef;\r\n this.icon = data.icon;\r\n this.context = data.context;\r\n const actionConfig: GDActionConfig = data.actionConfig ? data.actionConfig as GDActionConfig : null;\r\n this.actions = actionConfig ? actionConfig.actions : [];\r\n this.form = actionConfig && actionConfig.formSource ? actionConfig.formSource : null;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.context.dialog = this.dialogRef;\r\n this.vcr.createEmbeddedView<any>(this.tempRef, this.context);\r\n\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n\r\n executeAction(action: GDAction): void {\r\n if (action.externalAction) {\r\n action.externalAction(this.dialogRef);\r\n }\r\n if (action.internalAction && action.internalAction === 'onClose') {\r\n this.onClose();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Inject,\r\n OnInit,\r\n OnDestroy,\r\n ViewChild, ComponentRef, ChangeDetectorRef, HostBinding\r\n} from '@angular/core';\r\nimport {MatDialogRef, MatDialog, MAT_DIALOG_DATA, DialogPosition} from '@angular/material/dialog';\r\n\r\nimport {Router} from '@angular/router';\r\nimport {BaseGenericContainerDialog} from '../model/base-generic-container-dialog';\r\nimport {ActionType, GDAction} from '../model/generic-dialog-action.model';\r\n\r\n@Component({\r\n selector: 'hci-generic-container-dialog',\r\n templateUrl: './generic-container-dialog.component.html',\r\n styles: [`\r\n\r\n .no-padding{\r\n padding:0;\r\n }\r\n .no-margin{\r\n margin: 0;\r\n }\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed:active {\r\n cursor: move;\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n .exit{\r\n max-width: 20px;\r\n cursor: pointer;\r\n }\r\n .i-class {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n mat-dialog-content {\r\n max-height: 100% !important;\r\n }\r\n\r\n `]\r\n})\r\nexport class GenericContainerDialogComponent implements OnInit, OnDestroy {\r\n\r\n @HostBinding('class') classList = 'd-flex flex-column flex-grow-1 flex-shrink-1';\r\n\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n\r\n type = ActionType;\r\n title: string;\r\n icon: string;\r\n dialogContentBluePrint: any;\r\n actions: GDAction[] = [];\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n dialogContent: BaseGenericContainerDialog;\r\n\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n movingDialog = false;\r\n useSaveFooter: boolean;\r\n\r\n\r\n constructor(private dialog: MatDialog,\r\n private router: Router,\r\n private changeDetector: ChangeDetectorRef,\r\n private dialogRef: MatDialogRef<GenericContainerDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data) {\r\n if (data) {\r\n this.dialogContentBluePrint = data.dialogContent;\r\n this.icon = data.icon;\r\n this.title = data.title;\r\n this.useSaveFooter = data.actionConfig ? data.actionConfig.useSaveFooter : false;\r\n this.actions = data.actionConfig ? data.actionConfig.actions as GDAction[] : [];\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n createdComponent(event: ComponentRef<any>) {\r\n this.dialogContent = (event.instance as BaseGenericContainerDialog);\r\n }\r\n\r\n executeAction(action: GDAction): void {\r\n if (action.externalAction) {\r\n action.externalAction();\r\n }\r\n if (action.internalAction) {\r\n const internalAction: string = action.internalAction;\r\n if (action.internalAction === 'cancel' || action.internalAction === 'onClose') {\r\n if (this.dialogContent[internalAction]) {\r\n this.dialogContent[internalAction]();\r\n } else {\r\n this.onClose();\r\n }\r\n } else {\r\n if (typeof action.internalActionReturnValue !== 'undefined') {\r\n if (action.internalActionReturnValue){\r\n this.dialogContent[internalAction](action.internalActionReturnValue);\r\n }\r\n }else {\r\n this.dialogContent[internalAction]();\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n","<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","\r\nexport enum ConfirmType {\r\n DELETE = 'delete',\r\n DELETE_W_MESSAGE = 'deleteMessage',\r\n DELETE_W_PROMPT = 'deletePrompt',\r\n DISCARD = 'discard',\r\n CONFIRM_AND_CLOSE = 'confirmAndClose',\r\n ADD = 'add',\r\n ALERT = 'alert',\r\n GENERIC = 'generic',\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {GDAction} from './generic-dialog-action.model';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseGenericContainerDialog {\r\n @Input() inputData: any;\r\n public showSpinner: boolean = false;\r\n public innerTitle: string = '';\r\n\r\n public primaryDisable: (action?: GDAction) => boolean = (action) => {\r\n return false;\r\n }\r\n\r\n public secondaryDisable: (action?: GDAction) => boolean = (action) => {\r\n return false;\r\n }\r\n\r\n public dirty: () => boolean = () => { return false; };\r\n\r\n protected constructor() {\r\n }\r\n}\r\n","import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, Inject} from '@angular/core';\r\nimport {BaseGenericContainerDialog} from '../model/base-generic-container-dialog';\r\nimport {ConfirmType} from '../model/confirm-type.model';\r\n\r\n@Component({\r\n selector: 'hci-confirm-dialog',\r\n template: `\r\n <div class=\"ri-confirm-body\">\r\n\r\n <div *ngIf=\"confirmType !== ConfirmType.ALERT; else alertBlock\">\r\n {{prompt}}\r\n <div class=\"ri-confirm-text-delete\">{{ message1 }}</div>\r\n {{message2}}\r\n </div>\r\n\r\n\r\n <div #alertBlock>\r\n <p>We are working to correct it. Contact CODE support if the error persists.</p>\r\n <mat-expansion-panel>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <strong>Show details</strong>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div>{{ message1 }}</div>\r\n </mat-expansion-panel>\r\n </div>\r\n\r\n </div>\r\n `,\r\n styles: [`\r\n\r\n `]\r\n})\r\nexport class ConfirmDialogComponent extends BaseGenericContainerDialog {\r\n\r\n public ConfirmType = ConfirmType; // make enum available in template\r\n\r\n prompt = '';\r\n message1 = '';\r\n message2 = '';\r\n\r\n confirmType: ConfirmType = ConfirmType.GENERIC;\r\n\r\n constructor(private dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: any) {\r\n super();\r\n\r\n const temp = data.confirmType ? data.confirmType : ConfirmType.GENERIC;\r\n if (Object.values(ConfirmType).includes(temp as ConfirmType)){\r\n this.confirmType = temp;\r\n }\r\n\r\n this.prompt = data.prompt ? data.prompt : '';\r\n this.message1 = data.message1 ? data.message1 : '';\r\n this.message2 = data.message2 ? data.message2 : '';\r\n\r\n this.setupMessagesByType();\r\n }\r\n\r\n setupMessagesByType(){\r\n\r\n // by enum type, setup the messages/prompt\r\n switch (this.confirmType) {\r\n case ConfirmType.DELETE:\r\n this.prompt = 'The following will be deleted:';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.DELETE_W_MESSAGE:\r\n this.prompt = 'The following will be deleted:';\r\n break;\r\n case ConfirmType.DELETE_W_PROMPT:\r\n // noop, take all of what was passed in\r\n break;\r\n case ConfirmType.DISCARD:\r\n this.prompt = '';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.CONFIRM_AND_CLOSE:\r\n this.prompt = '';\r\n this.message2 = '';\r\n break;\r\n case ConfirmType.ADD:\r\n this.prompt = 'The following will be added:';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.ALERT:\r\n // noop, will only use the message1 in a special template, and just ignore rest\r\n break;\r\n case ConfirmType.GENERIC:\r\n // TODO: either only use message 1 or just take all passed in...\r\n this.prompt = '';\r\n this.message2 = '';\r\n break;\r\n default:\r\n throw new Error('Confirm type doesn\\'t exist');\r\n }\r\n\r\n\r\n }\r\n\r\n onConfirmClick(value: boolean | any){\r\n this.dialogRef.close(value);\r\n }\r\n}\r\n","import {Injectable, TemplateRef} from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AlertDialogComponent } from '../alert/alert-dialog.component';\r\nimport { SpinnerDialogComponent } from '../spinner/spinner-dialog.component';\r\nimport {CustomDialogComponent} from '../custom/custom-dialog.component';\r\nimport {GenericContainerDialogComponent} from '../generic/generic-container-dialog.component';\r\nimport {ActionType, GDActionConfig} from '../model/generic-dialog-action.model';\r\nimport {DialogType} from '../model/dialog-type.model';\r\nimport {ConfirmType} from '../model/confirm-type.model';\r\nimport {ConfirmDialogComponent} from '../confirm/confirm-dialog.component';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n\r\n private _spinnerDialogIsOpen = false;\r\n private spinnerWorkItemCount = 0;\r\n private checkingSpinnerWorkItems = false;\r\n\r\n public spinnerDialogRefs: MatDialogRef<SpinnerDialogComponent>[] = [];\r\n\r\n public get spinnerDialogIsOpen(): boolean {\r\n return this._spinnerDialogIsOpen;\r\n }\r\n\r\n constructor(private dialog: MatDialog) {\r\n }\r\n\r\n public alert(message: string | string[], title?: string,\r\n dialogType?: DialogType, icon?: string,\r\n config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, dialogType ? dialogType : DialogType.ALERT, icon, config);\r\n }\r\n\r\n public confirm(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.CONFIRM, icon, config);\r\n\r\n }\r\n\r\n /**\r\n * Creates a ConfirmDialogComponent with different display depending on\r\n * the ConfirmType.\r\n * @param title defaults to 'Confirm'\r\n * @param icon defaults to 'fa fa-info-circle'\r\n * @param config config.data can contain a prompt, message1 and/or\r\n * message2 according to the ConfirmType chosen\r\n * @param actionConfig sets up the dialog buttons and actions if you want\r\n * to override the defaults\r\n */\r\n public confirmByType(confirmType: ConfirmType, title?: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig): Observable<boolean> {\r\n if (!title){\r\n title = 'Confirm';\r\n }\r\n\r\n if (!icon){\r\n icon = 'fa fa-info-circle';\r\n }\r\n\r\n // set up a default if needed\r\n if (!config){\r\n config = new MatDialogConfig<any>();\r\n config.width = '33vw';\r\n config.minWidth = '300px';\r\n config.disableClose = true;\r\n }\r\n\r\n if (config.data){\r\n config.data.confirmType = confirmType;\r\n }else {\r\n config.data = {\r\n confirmType\r\n };\r\n }\r\n\r\n // if no actions passed in, set up the defaults\r\n if (!actionConfig){\r\n\r\n // default actions\r\n let primary = {type: ActionType.PRIMARY, name: 'YES',\r\n internalAction: 'onConfirmClick', internalActionReturnValue: true};\r\n let secondary = {type: ActionType.SECONDARY, name: 'GO BACK',\r\n internalAction: 'onClose'};\r\n\r\n // by enum type, setup the messages/prompt\r\n // only two need different defaults than generic defaults\r\n switch (confirmType) {\r\n case ConfirmType.CONFIRM_AND_CLOSE:\r\n primary = {type: ActionType.PRIMARY, name: 'CONFIRM AND CLOSE',\r\n internalAction: 'onConfirmClick', internalActionReturnValue: true};\r\n break;\r\n case ConfirmType.ALERT:\r\n primary = undefined;\r\n secondary = {type: ActionType.SECONDARY, name: 'CLOSE',\r\n internalAction: 'onClose'};\r\n break;\r\n // case ConfirmType.DELETE:\r\n // case ConfirmType.DELETE_W_MESSAGE:\r\n // case ConfirmType.DELETE_W_PROMPT:\r\n // case ConfirmType.DISCARD:\r\n // case ConfirmType.ADD:\r\n // case ConfirmType.GENERIC:\r\n default:\r\n throw new Error('Confirm type doesn\\'t exist');\r\n }\r\n\r\n const actions = [];\r\n if (primary){\r\n actions.push(primary);\r\n }\r\n if (secondary){\r\n actions.push(secondary);\r\n }\r\n\r\n actionConfig = {\r\n actions\r\n };\r\n }\r\n\r\n return this.genericDialogContainer(ConfirmDialogComponent,\r\n title, icon, config, actionConfig);\r\n }\r\n\r\n public error(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.ERROR, icon, config);\r\n }\r\n\r\n public info(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.INFO, icon, config);\r\n }\r\n\r\n public createCustomDialog(tempRef: TemplateRef<any>, context?: any, title?: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig) {\r\n let configuration: MatDialogConfig = null;\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.templateRef = tempRef;\r\n configuration.data.title = title ? title : '';\r\n configuration.data.icon = icon ? icon : '';\r\n configuration.data.context = context;\r\n if (actionConfig) {\r\n configuration.data.actionConfig = actionConfig;\r\n }\r\n\r\n configuration.minWidth = configuration.minWidth ? configuration.minWidth : '10em';\r\n configuration.width = configuration.width ? configuration.width : '30em';\r\n\r\n configuration.panelClass = ['mx-sized-dialog', 'no-padding'];\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = true;\r\n\r\n const dialogRef = this.dialog.open(CustomDialogComponent, configuration);\r\n\r\n return dialogRef;\r\n }\r\n\r\n public startDefaultSpinnerDialog(): MatDialogRef<SpinnerDialogComponent> {\r\n return this.startSpinnerDialog('Please wait...', 3, 30);\r\n }\r\n\r\n public startSpinnerDialog(message: string, strokeWidth: number, diameter: number): MatDialogRef<SpinnerDialogComponent> {\r\n if (this._spinnerDialogIsOpen) {\r\n return null;\r\n }\r\n\r\n this._spinnerDialogIsOpen = true;\r\n\r\n const configuration: MatDialogConfig = new MatDialogConfig();\r\n configuration.data = {\r\n message,\r\n strokeWidth,\r\n diameter\r\n };\r\n configuration.width = '13em';\r\n configuration.disableClose = true;\r\n\r\n const dialogRef: MatDialogRef<SpinnerDialogComponent> = this.dialog.open(SpinnerDialogComponent, configuration);\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n this._spinnerDialogIsOpen = false;\r\n });\r\n\r\n this.spinnerDialogRefs.push(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n public startNonModalSpinnerDialog(message: string, strokeWidth: number, diameter: number): MatDialogRef<SpinnerDialogComponent> {\r\n if (this._spinnerDialogIsOpen) {\r\n return null;\r\n }\r\n\r\n this._spinnerDialogIsOpen = true;\r\n\r\n const configuration: MatDialogConfig = new MatDialogConfig();\r\n configuration.data = {\r\n message,\r\n strokeWidth,\r\n diameter\r\n };\r\n configuration.width = '13em';\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = false;\r\n\r\n const dialogRef: MatDialogRef<SpinnerDialogComponent> = this.dialog.open(SpinnerDialogComponent, configuration);\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n this._spinnerDialogIsOpen = false;\r\n });\r\n\r\n this.spinnerDialogRefs.push(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n // Let there be an alternative, global way to stop all active spinner dialogs.\r\n public stopAllSpinnerDialogs(): void {\r\n this.spinnerWorkItemCount = 0;\r\n for (const dialogRef of this.spinnerDialogRefs) {\r\n setTimeout(() => {\r\n dialogRef.close();\r\n });\r\n }\r\n this.spinnerDialogRefs = [];\r\n }\r\n\r\n public addSpinnerWorkItem(): void {\r\n this.spinnerWorkItemCount++;\r\n if (!this.checkingSpinnerWorkItems) {\r\n this.checkingSpinnerWorkItems = true;\r\n setTimeout(() => {\r\n this.checkSpinnerWorkItems();\r\n });\r\n }\r\n }\r\n\r\n public removeSpinnerWorkItem(): void {\r\n this.spinnerWorkItemCount--;\r\n if (this.spinnerWorkItemCount < 0) {\r\n this.spinnerWorkItemCount = 0;\r\n }\r\n if (!this.checkingSpinnerWorkItems) {\r\n this.checkingSpinnerWorkItems = true;\r\n setTimeout(() => {\r\n this.checkSpinnerWorkItems();\r\n });\r\n }\r\n }\r\n\r\n private checkSpinnerWorkItems(): void {\r\n this.checkingSpinnerWorkItems = false;\r\n if (this.spinnerWorkItemCount) {\r\n if (!this._spinnerDialogIsOpen) {\r\n this.startDefaultSpinnerDialog();\r\n }\r\n } else if (this._spinnerDialogIsOpen) {\r\n this.stopAllSpinnerDialogs();\r\n }\r\n }\r\n\r\n public genericDialogContainer(dialogContent: any, title: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig): Observable<any> {\r\n let configuration: MatDialogConfig = null;\r\n\r\n\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.dialogContent = dialogContent;\r\n configuration.data.title = title;\r\n if (icon) {\r\n configuration.data.icon = icon;\r\n }\r\n if (actionConfig) {\r\n configuration.data.actionConfig = actionConfig;\r\n }\r\n configuration.panelClass = ['mx-sized-dialog', 'no-padding'];\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = true;\r\n const dialogRef = this.dialog.open(GenericContainerDialogComponent, configuration);\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n private openDialog(message: string | string[], title?: string,\r\n type?: DialogType, icon?: string, config?: MatDialogConfig): Observable<any> {\r\n let configuration: MatDialogConfig = null;\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.message = message;\r\n configuration.data.title = title ? title : '';\r\n configuration.data.icon = icon ? icon : '';\r\n configuration.data.dialogType = type ? type : '';\r\n\r\n configuration.maxWidth = configuration.maxWidth ? configuration.maxWidth : '80vw';\r\n configuration.maxHeight = configuration.maxHeight ? configuration.maxHeight : '80vh';\r\n configuration.minWidth = configuration.minWidth ? configuration.minWidth : '30em';\r\n\r\n configuration.panelClass = 'no-padding';\r\n configuration.disableClose = true;\r\n configuration.autoFocus = false;\r\n configuration.hasBackdrop = false;\r\n\r\n let dialogRef: MatDialogRef<AlertDialogComponent>;\r\n\r\n dialogRef = this.dialog.open(AlertDialogComponent, configuration);\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {DialogService} from '../service/dialog.service';\r\nimport {ActionType} from '../model/generic-dialog-action.model';\r\n\r\n\r\n@Component({\r\n selector: 'hci-save-footer',\r\n template: `\r\n <div class=\"full-height full-width\" style=\"margin-bottom: 8px;\">\r\n <div class=\"d-flex flex-row align-items-center right-align padded\">\r\n <div *ngIf=\"dirty\" class=\"warning-background padded\">\r\n {{ message }}\r\n </div>\r\n <div class=\"major-left-right-margin\">\r\n <button mat-raised-button [disabled]=\"disableSave\"\r\n [color]=\"actionType\" (click)=\"notifySave()\"\r\n [ngClass]=\"{'primary-action': actionType === type.PRIMARY,\r\n 'secondary-action': actionType === type.SECONDARY && !disableSave }\">\r\n <img *ngIf=\"icon\" [src]=\"icon\" alt=\"\">\r\n {{ name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .primary-action{\r\n background-color: #0077B3FF;\r\n font-weight: bolder;\r\n color: white;\r\n }\r\n .secondary-action{\r\n background-color: #DEF4FFFF;\r\n font-weight: bolder;\r\n color: #0077B3FF;\r\n border: #0077B3FF solid 1px;\r\n }\r\n\r\n .major-left-right-margin {\r\n margin-left: 0.5em;\r\n margin-right: 0.5em;\r\n }\r\n\r\n .right-align {\r\n text-align: right;\r\n justify-content: flex-end;\r\n }\r\n\r\n\r\n .warning-background { background:#feec89; }\r\n\r\n `]\r\n})\r\nexport class SaveFooterComponent implements OnInit, OnDestroy {\r\n\r\n private _dirty: boolean;\r\n\r\n\r\n @Input() actionType: ActionType = ActionType.PRIMARY;\r\n @Input() icon: string;\r\n @Input() message = 'Your changes have not been saved';\r\n @Input() name = 'Save';\r\n @Input() set dirty(data: any){\r\n if (data){\r\n this._dirty = data;\r\n }else{\r\n this._dirty = false;\r\n }\r\n\r\n }\r\n get dirty(){\r\n return this._dirty;\r\n }\r\n\r\n\r\n @Input() set showSpinner(showSpinner: boolean) {\r\n setTimeout( () => {\r\n if (showSpinner) {\r\n this.dialogService.startDefaultSpinnerDialog();\r\n } else {\r\n this.dialogService.stopAllSpinnerDialogs();\r\n }\r\n });\r\n\r\n }\r\n\r\n @Input() disableSave = false;\r\n @Output() saveClicked = new EventEmitter<any>();\r\n type = ActionType;\r\n\r\n constructor(private dialogService: DialogService) { }\r\n\r\n ngOnInit(){\r\n // console.log(this.disableSave);\r\n }\r\n notifySave(): void{\r\n this.saveClicked.emit();\r\n }\r\n ngOnDestroy(){\r\n this.saveClicked.unsubscribe();\r\n }\r\n\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {DialogService} from './service/dialog.service';\r\nimport {AlertDialogComponent} from './alert/alert-dialog.component';\r\nimport {CustomDialogComponent} from './custom/custom-dialog.component';\r\nimport {GenericContainerDialogComponent} from './generic/generic-container-dialog.component';\r\nimport {SaveFooterComponent} from './save-footer/save-footer.component';\r\nimport {SpinnerDialogComponent} from './spinner/spinner-dialog.component';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {DynamicModule} from 'ng-dynamic-component';\r\nimport {ConfirmDialogComponent} from './confirm/confirm-dialog.component';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\n// import {RouterModule} from \"@angular/router\";\r\n// import {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\n// import {MatInputModule} from \"@angular/material/input\";\r\n// import {MatIconModule} from \"@angular/material/icon\";\r\n// import {TreeModule} from \"@circlon/angular-tree-component\";\r\n// import {MatDatepickerModule} from \"@angular/material/datepicker\";\r\n// import {MatSelectModule} from \"@angular/material/select\";\r\n// import {NgbModule, NgbNavModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n// import {MiscModule} from \"@huntsman-cancer-institute/misc\";\r\n// import { MatNativeDateModule } from \"@angular/material/core\";\r\n// import { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n\r\n/**\r\n * The main @huntsman-cancer-institute/dialog module. The module exports all components that an implementation might use\r\n * and the forRoot() provides a global service for an implementing application.\r\n *\r\n * @since 1.0.0\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DynamicModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatProgressSpinnerModule\r\n // RouterModule,\r\n // MiscModule,\r\n // NgbModule,\r\n // MatButtonToggleModule,\r\n // MatInputModule,\r\n // MatIconModule,\r\n // MatDatepickerModule,\r\n // MatNativeDateModule,\r\n // MatCheckboxModule,\r\n // MatRadioModule,\r\n // MatSelectModule,\r\n // TreeModule,\r\n // NgbNavModule\r\n ],\r\n providers: [\r\n // MatDatepickerModule,\r\n ],\r\n declarations: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ],\r\n entryComponents: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ],\r\n exports: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ]\r\n})\r\nexport class DialogModule {\r\n static forRoot(): ModuleWithProviders<DialogModule> {\r\n return {\r\n providers: [\r\n DialogService\r\n ],\r\n ngModule: DialogModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"huntsman-cancer-institute-dialog.js","sources":["ng://@huntsman-cancer-institute/dialog/model/dialog-type.model.ts","ng://@huntsman-cancer-institute/dialog/model/generic-dialog-action.model.ts","ng://@huntsman-cancer-institute/dialog/alert/alert-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/spinner/spinner-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/spinner/spinner-dialog.component.html","ng://@huntsman-cancer-institute/dialog/custom/custom-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/generic/generic-container-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/generic/generic-container-dialog.component.html","ng://@huntsman-cancer-institute/dialog/model/confirm-type.model.ts","ng://@huntsman-cancer-institute/dialog/model/base-generic-container-dialog.ts","ng://@huntsman-cancer-institute/dialog/confirm/confirm-dialog.component.ts","ng://@huntsman-cancer-institute/dialog/service/dialog.service.ts","ng://@huntsman-cancer-institute/dialog/save-footer/save-footer.component.ts","ng://@huntsman-cancer-institute/dialog/dialog.module.ts","ng://@huntsman-cancer-institute/dialog/huntsman-cancer-institute-dialog.ts"],"sourcesContent":["\r\n\r\nexport enum DialogType {\r\n ERROR = 'Error',\r\n WARNING = 'Warning',\r\n ALERT = 'Alert',\r\n SUCCESS = 'Succeed',\r\n FAILED = 'Failed',\r\n CONFIRM = 'Confirm',\r\n INFO = 'Info',\r\n VALIDATION = 'Validation Error',\r\n}\r\n","import {MatDialogRef} from '@angular/material/dialog';\r\nimport {FormGroup} from '@angular/forms';\r\n\r\nexport enum ActionType {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'accent'\r\n}\r\nexport interface GDActionConfig {\r\n formSource?: FormGroup;\r\n actions: GDAction[];\r\n}\r\nexport interface GDAction {\r\n type: ActionType;\r\n internalAction?: string;\r\n internalActionReturnValue?: boolean | any;\r\n externalAction?: (dialogRef?: MatDialogRef<any>) => void | string;\r\n icon?: string;\r\n name: string;\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Inject, OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {DialogPosition, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {DialogType} from '../model/dialog-type.model';\r\nimport {ActionType} from '../model/generic-dialog-action.model';\r\n\r\n@Component({\r\n selector: 'hci-alert-dialog',\r\n template: `\r\n <div class=\"full-height full-width d-flex flex-column\">\r\n <div class=\"full-width dialog-header-colors no-margin no-padding\">\r\n <div #topmostLeftmost mat-dialog-title (mousedown)=\"onMouseDownHeader($event)\"\r\n class=\"force-flex-container-row align-center full-width padding {{ movingDialog ? 'grabbed' : 'grabbable' }}\">\r\n <div class=\"d-flex flex-row align-items-center padded\">\r\n <img *ngIf=\"icon\" class=\"icon\" [src]=\"this.icon\">\r\n <div *ngIf=\"!icon\">\r\n <i *ngIf=\"dialogType === type.ALERT\" class=\"fa fa-exclamation fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.SUCCESS\" class=\"fa fa-check-circle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.FAILED || dialogType === type.ERROR\" class=\"fa fa-exclamation-triangle fa-2x i-margin i-color-red\"></i>\r\n <i *ngIf=\"dialogType === type.WARNING || dialogType === type.VALIDATION\" class=\"fa fa-exclamation-triangle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.INFO\" class=\"fa fa-info-circle fa-2x i-margin i-color-blue\"></i>\r\n <i *ngIf=\"dialogType === type.CONFIRM\" class=\"fa fa-check fa-2x i-margin i-color-blue\"></i>\r\n </div>\r\n <h1 *ngIf=\"dialogType !== type.ERROR\"\r\n style=\"margin:0;\">{{this.title ? this.title : defaultTitle}}</h1>\r\n <h1 *ngIf=\"dialogType === type.ERROR\"\r\n style=\"margin:0; color: Red\">{{this.title ? this.title : defaultTitle}}</h1>\r\n </div>\r\n </div>\r\n </div>\r\n <mat-dialog-content class=\"flex-grow-1 no-margin no-padding\">\r\n <hr>\r\n <div class=\"flex-grow-1 full-width extra-padded message\">\r\n <div *ngFor=\"let line of message\" class=\"full-width\"\r\n [innerHTML]=\"line\" style=\"white-space: pre-line\">\r\n </div>\r\n </div>\r\n <br>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"d-flex justify-content-center no-margin no-padding\">\r\n <save-footer *ngIf=\"dialogType !== type.CONFIRM\" class=\"centered-text large-size\"\r\n (saveClicked)=\"onClickOk()\" name=\"Ok\"></save-footer>\r\n <save-footer *ngIf=\"dialogType === type.CONFIRM\" class=\"centered-text large-size\"\r\n (saveClicked)=\"onClickYes()\" name=\"Yes\"></save-footer>\r\n <save-footer *ngIf=\"dialogType === type.CONFIRM\" [actionType]=\"actionType\"\r\n class=\"centered-text large-size\" (saveClicked)=\"onClickNo()\"\r\n name=\"No\"></save-footer>\r\n </mat-dialog-actions>\r\n </div>\r\n `,\r\n styles: [`\r\n hr {\r\n width: 98%;\r\n }\r\n\r\n .i-margin {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n .i-color-blue {\r\n color: #0077B3FF;\r\n }\r\n .i-color-red {\r\n color: red;\r\n }\r\n\r\n .centered-text { text-align: center; }\r\n\r\n .no-padding{\r\n padding:0;\r\n\r\n }\r\n\r\n .no-margin{\r\n margin: 0;\r\n }\r\n\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed {\r\n cursor: move;\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n\r\n .force-flex-container-row{\r\n display:flex !important;\r\n }\r\n .extra-padded {\r\n padding: 0.6em 0.9em 0.6em 0.9em;\r\n }\r\n .large-size {\r\n font-size: large;\r\n }\r\n .primary-action {\r\n font-size: large;\r\n }\r\n .secondary-action {\r\n font-size: large;\r\n }\r\n .message {\r\n color: #0F244DFF;\r\n }\r\n `]\r\n}) export class AlertDialogComponent implements OnInit {\r\n public type: any = DialogType;\r\n\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n\r\n public message: string[] = null;\r\n public title = '';\r\n public icon = '';\r\n public dialogType = '';\r\n public defaultTitle = '';\r\n public actionType: any = ActionType.SECONDARY;\r\n\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n movingDialog = false;\r\n\r\n constructor(public dialogRef: MatDialogRef<AlertDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data,\r\n private changeDetector: ChangeDetectorRef) {\r\n if (data) {\r\n this.message = Array.isArray(data.message) ? data.message : [data.message];\r\n this.title = data.title;\r\n this.icon = data.icon;\r\n this.dialogType = data.dialogType;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.dialogType) {\r\n this.defaultTitle = this.dialogType;\r\n }\r\n for (let i = 0; i < this.message.length; i++) {\r\n this.message[i] = this.message[i].replace(/\\n/g, '<br>') + '<br>';\r\n }\r\n }\r\n\r\n onClickOk(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onClickYes(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onClickNo(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n}\r\n","import {Component, Inject, Input} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'hci-spinner-dialog',\r\n templateUrl: 'spinner-dialog.component.html',\r\n styles: [`\r\n .t { display: table; }\r\n .tr { display: table-row; }\r\n .td { display: table-cell; }\r\n\r\n .full-height { height: 100%; }\r\n .full-width { width: 100%; }\r\n\r\n .vertical-center { vertical-align: middle; }\r\n\r\n .padded {\r\n padding-top: 0.4em;\r\n padding-bottom: 0.4em;\r\n }\r\n\r\n .not-rendered {\r\n padding: 0;\r\n margin: 0;\r\n\r\n min-height: 0;\r\n max-height: 0;\r\n height: 0;\r\n }\r\n\r\n `]\r\n})\r\nexport class SpinnerDialogComponent {\r\n @Input() strokeWidth = 3;\r\n @Input() diameter = 30;\r\n\r\n @Input() message = 'Loading...';\r\n\r\n constructor(private dialogRef: MatDialogRef<SpinnerDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data) {\r\n if (this.data) {\r\n if (!!this.data.message) {\r\n this.message = this.data.message;\r\n }\r\n if (!!this.data.diameter) {\r\n this.diameter = this.data.diameter;\r\n }\r\n if (!!this.data.strokeWidth) {\r\n this.strokeWidth = this.data.strokeWidth;\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<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","import {DialogPosition, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {\r\n ChangeDetectorRef,\r\n Component, ElementRef,\r\n HostListener,\r\n Inject, OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport {ActionType, GDAction, GDActionConfig} from '../model/generic-dialog-action.model';\r\nimport {FormGroup} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'hci-custom-dialog',\r\n template: `\r\n <div class=\"d-flex full-height full-width flex-column\">\r\n <div *ngIf=\"this.title\" class=\"full-width generic-dialog-header-colors no-margin no-padding\">\r\n <div #topmostLeftmost mat-dialog-title (mousedown)=\"onMouseDownHeader($event)\"\r\n class=\"force-flex-container-row align-items-center full-width p-2 {{ movingDialog ? 'grabbed' : 'grabbable' }}\">\r\n <div class=\"-flex flex-row align-items-center padded\">\r\n <img *ngIf=\"icon\" class=\"icon\" [src]=\"this.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}}</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 <mat-dialog-content class=\"flex-grow-1 full-width no-margin p-2\" style=\"min-height: 6em;\">\r\n <div #anchor></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 === actionType.PRIMARY;else secondary\"\r\n [actionType]=\"action.type\"\r\n [icon]=\"action.icon\"\r\n [disableSave]=\"primaryDisable\"\r\n (saveClicked)=\"executeAction(action)\"\r\n [name]=\"action.name\">\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]=\"secondaryDisable\"\r\n [name]=\"action.name\">\r\n </save-footer>\r\n </ng-template>\r\n </div>\r\n </mat-dialog-actions>\r\n </div>\r\n `,\r\n styles: [`\r\n .centered-text { text-align: center; }\r\n\r\n .no-padding{\r\n padding:0;\r\n\r\n }\r\n\r\n .no-margin{\r\n margin: 0;\r\n }\r\n\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed:active {\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n\r\n .force-flex-container-row{\r\n display:flex !important;\r\n }\r\n\r\n .exit{\r\n max-width: 20px;\r\n cursor: pointer;\r\n }\r\n\r\n .i-class {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n mat-dialog-content {\r\n max-height: 100vh !important;\r\n max-width: 100vw !important ;\r\n }\r\n `]\r\n})\r\n\r\nexport class CustomDialogComponent implements OnInit {\r\n @ViewChild('anchor', { read: ViewContainerRef, static : true }) vcr: ViewContainerRef;\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n public title = '';\r\n public icon = '';\r\n\r\n public actionType: any = ActionType;\r\n\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n movingDialog = false;\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n context: any;\r\n\r\n private tempRef: TemplateRef<any>;\r\n public actions: GDAction[] = [];\r\n public form: FormGroup;\r\n public get primaryDisable(): boolean {\r\n return this.form && this.form.invalid;\r\n }\r\n // todo need make this customizable\r\n public get secondaryDisable(): boolean {\r\n return false;\r\n }\r\n\r\n constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private changeDetector: ChangeDetectorRef) {\r\n this.title = data.title;\r\n this.tempRef = data.templateRef;\r\n this.icon = data.icon;\r\n this.context = data.context;\r\n const actionConfig: GDActionConfig = data.actionConfig ? data.actionConfig as GDActionConfig : null;\r\n this.actions = actionConfig ? actionConfig.actions : [];\r\n this.form = actionConfig && actionConfig.formSource ? actionConfig.formSource : null;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.context.dialog = this.dialogRef;\r\n this.vcr.createEmbeddedView<any>(this.tempRef, this.context);\r\n\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n\r\n executeAction(action: GDAction): void {\r\n if (action.externalAction) {\r\n action.externalAction(this.dialogRef);\r\n }\r\n if (action.internalAction && action.internalAction === 'onClose') {\r\n this.onClose();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Inject,\r\n OnInit,\r\n OnDestroy,\r\n ViewChild, ComponentRef, ChangeDetectorRef, HostBinding\r\n} from '@angular/core';\r\nimport {MatDialogRef, MatDialog, MAT_DIALOG_DATA, DialogPosition} from '@angular/material/dialog';\r\n\r\nimport {Router} from '@angular/router';\r\nimport {BaseGenericContainerDialog} from '../model/base-generic-container-dialog';\r\nimport {ActionType, GDAction} from '../model/generic-dialog-action.model';\r\n\r\n@Component({\r\n selector: 'hci-generic-container-dialog',\r\n templateUrl: './generic-container-dialog.component.html',\r\n styles: [`\r\n\r\n .no-padding{\r\n padding:0;\r\n }\r\n .no-margin{\r\n margin: 0;\r\n }\r\n .grabbable {\r\n cursor: move;\r\n cursor: grab;\r\n cursor: -moz-grab;\r\n cursor: -webkit-grab;\r\n }\r\n .grabbed:active {\r\n cursor: move;\r\n cursor: grabbing;\r\n cursor: -moz-grabbing;\r\n cursor: -webkit-grabbing;\r\n }\r\n .exit{\r\n max-width: 20px;\r\n cursor: pointer;\r\n }\r\n .i-class {\r\n margin-left: 0.3em;\r\n margin-right: 0.3em;\r\n }\r\n mat-dialog-content {\r\n max-height: 100% !important;\r\n }\r\n\r\n `]\r\n})\r\nexport class GenericContainerDialogComponent implements OnInit, OnDestroy {\r\n\r\n @HostBinding('class') classList = 'd-flex flex-column flex-grow-1 flex-shrink-1';\r\n\r\n @ViewChild('topmostLeftmost', {static: false}) topmostLeftmost: ElementRef;\r\n\r\n type = ActionType;\r\n title: string;\r\n icon: string;\r\n dialogContentBluePrint: any;\r\n actions: GDAction[] = [];\r\n originalXClick = 0;\r\n originalYClick = 0;\r\n dialogContent: BaseGenericContainerDialog;\r\n\r\n protected positionX = 0;\r\n protected positionY = 0;\r\n movingDialog = false;\r\n useSaveFooter: boolean;\r\n\r\n\r\n constructor(private dialog: MatDialog,\r\n private router: Router,\r\n private changeDetector: ChangeDetectorRef,\r\n private dialogRef: MatDialogRef<GenericContainerDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data) {\r\n if (data) {\r\n this.dialogContentBluePrint = data.dialogContent;\r\n this.icon = data.icon;\r\n this.title = data.title;\r\n this.useSaveFooter = data.actionConfig ? data.actionConfig.useSaveFooter : false;\r\n this.actions = data.actionConfig ? data.actionConfig.actions as GDAction[] : [];\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n createdComponent(event: ComponentRef<any>) {\r\n this.dialogContent = (event.instance as BaseGenericContainerDialog);\r\n }\r\n\r\n executeAction(action: GDAction): void {\r\n if (action.externalAction) {\r\n action.externalAction();\r\n }\r\n if (action.internalAction) {\r\n const internalAction: string = action.internalAction;\r\n if (action.internalAction === 'cancel' || action.internalAction === 'onClose') {\r\n if (this.dialogContent[internalAction]) {\r\n this.dialogContent[internalAction]();\r\n } else {\r\n this.onClose();\r\n }\r\n } else {\r\n if (typeof action.internalActionReturnValue !== 'undefined') {\r\n if (action.internalActionReturnValue){\r\n this.dialogContent[internalAction](action.internalActionReturnValue);\r\n }\r\n }else {\r\n this.dialogContent[internalAction]();\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n onMouseDownHeader(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n this.positionX = this.topmostLeftmost.nativeElement.offsetLeft;\r\n this.positionY = this.topmostLeftmost.nativeElement.offsetTop;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n this.movingDialog = true;\r\n this.changeDetector.detach();\r\n }\r\n @HostListener('window:mousemove', ['$event'])\r\n onMouseMove(event: any): void {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n if (this.movingDialog) {\r\n this.positionX += event.screenX - this.originalXClick;\r\n this.positionY += event.screenY - this.originalYClick;\r\n\r\n this.originalXClick = event.screenX;\r\n this.originalYClick = event.screenY;\r\n\r\n const newDialogPosition: DialogPosition = {\r\n left: '' + this.positionX + 'px',\r\n top: '' + this.positionY + 'px',\r\n };\r\n\r\n this.dialogRef.updatePosition(newDialogPosition);\r\n }\r\n }\r\n @HostListener('window:mouseup', ['$event'])\r\n onMouseUp(): void {\r\n this.movingDialog = false;\r\n this.changeDetector.reattach();\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n","<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","\r\nexport enum ConfirmType {\r\n DELETE = 'delete',\r\n DELETE_W_MESSAGE = 'deleteMessage',\r\n DELETE_W_PROMPT = 'deletePrompt',\r\n DISCARD = 'discard',\r\n CONFIRM_AND_CLOSE = 'confirmAndClose',\r\n ADD = 'add',\r\n ALERT = 'alert',\r\n GENERIC = 'generic',\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {GDAction} from './generic-dialog-action.model';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseGenericContainerDialog {\r\n @Input() inputData: any;\r\n public showSpinner: boolean = false;\r\n public innerTitle: string = '';\r\n\r\n public primaryDisable: (action?: GDAction) => boolean = (action) => {\r\n return false;\r\n }\r\n\r\n public secondaryDisable: (action?: GDAction) => boolean = (action) => {\r\n return false;\r\n }\r\n\r\n public dirty: () => boolean = () => { return false; };\r\n\r\n protected constructor() {\r\n }\r\n}\r\n","import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, Inject} from '@angular/core';\r\nimport {BaseGenericContainerDialog} from '../model/base-generic-container-dialog';\r\nimport {ConfirmType} from '../model/confirm-type.model';\r\n\r\n@Component({\r\n selector: 'hci-confirm-dialog',\r\n template: `\r\n <div class=\"ri-confirm-body\">\r\n\r\n <div *ngIf=\"confirmType !== ConfirmType.ALERT; else alertBlock\">\r\n {{prompt}}\r\n <div class=\"ri-confirm-text-delete\">{{ message1 }}</div>\r\n {{message2}}\r\n </div>\r\n\r\n\r\n <div #alertBlock>\r\n <p>We are working to correct it. Contact CODE support if the error persists.</p>\r\n <mat-expansion-panel>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <strong>Show details</strong>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div>{{ message1 }}</div>\r\n </mat-expansion-panel>\r\n </div>\r\n\r\n </div>\r\n `,\r\n styles: [`\r\n\r\n `]\r\n})\r\nexport class ConfirmDialogComponent extends BaseGenericContainerDialog {\r\n\r\n public ConfirmType = ConfirmType; // make enum available in template\r\n\r\n prompt = '';\r\n message1 = '';\r\n message2 = '';\r\n\r\n confirmType: ConfirmType = ConfirmType.GENERIC;\r\n\r\n constructor(private dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) private data: any) {\r\n super();\r\n\r\n const temp = data.confirmType ? data.confirmType : ConfirmType.GENERIC;\r\n if (Object.values(ConfirmType).includes(temp as ConfirmType)){\r\n this.confirmType = temp;\r\n }\r\n\r\n this.prompt = data.prompt ? data.prompt : '';\r\n this.message1 = data.message1 ? data.message1 : '';\r\n this.message2 = data.message2 ? data.message2 : '';\r\n\r\n this.setupMessagesByType();\r\n }\r\n\r\n setupMessagesByType(){\r\n\r\n // by enum type, setup the messages/prompt\r\n switch (this.confirmType) {\r\n case ConfirmType.DELETE:\r\n this.prompt = 'The following will be deleted:';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.DELETE_W_MESSAGE:\r\n this.prompt = 'The following will be deleted:';\r\n break;\r\n case ConfirmType.DELETE_W_PROMPT:\r\n // noop, take all of what was passed in\r\n break;\r\n case ConfirmType.DISCARD:\r\n this.prompt = '';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.CONFIRM_AND_CLOSE:\r\n this.prompt = '';\r\n this.message2 = '';\r\n break;\r\n case ConfirmType.ADD:\r\n this.prompt = 'The following will be added:';\r\n this.message2 = 'Continue?';\r\n break;\r\n case ConfirmType.ALERT:\r\n // noop, will only use the message1 in a special template, and just ignore rest\r\n break;\r\n case ConfirmType.GENERIC:\r\n // TODO: either only use message 1 or just take all passed in...\r\n this.prompt = '';\r\n this.message2 = '';\r\n break;\r\n default:\r\n throw new Error('Confirm type doesn\\'t exist');\r\n }\r\n\r\n\r\n }\r\n\r\n onConfirmClick(value: boolean | any){\r\n this.dialogRef.close(value);\r\n }\r\n}\r\n","import {Injectable, TemplateRef} from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AlertDialogComponent } from '../alert/alert-dialog.component';\r\nimport { SpinnerDialogComponent } from '../spinner/spinner-dialog.component';\r\nimport {CustomDialogComponent} from '../custom/custom-dialog.component';\r\nimport {GenericContainerDialogComponent} from '../generic/generic-container-dialog.component';\r\nimport {ActionType, GDActionConfig} from '../model/generic-dialog-action.model';\r\nimport {DialogType} from '../model/dialog-type.model';\r\nimport {ConfirmType} from '../model/confirm-type.model';\r\nimport {ConfirmDialogComponent} from '../confirm/confirm-dialog.component';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n\r\n private _spinnerDialogIsOpen = false;\r\n private spinnerWorkItemCount = 0;\r\n private checkingSpinnerWorkItems = false;\r\n\r\n public spinnerDialogRefs: MatDialogRef<SpinnerDialogComponent>[] = [];\r\n\r\n public get spinnerDialogIsOpen(): boolean {\r\n return this._spinnerDialogIsOpen;\r\n }\r\n\r\n constructor(private dialog: MatDialog) {\r\n }\r\n\r\n public alert(message: string | string[], title?: string,\r\n dialogType?: DialogType, icon?: string,\r\n config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, dialogType ? dialogType : DialogType.ALERT, icon, config);\r\n }\r\n\r\n public confirm(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.CONFIRM, icon, config);\r\n\r\n }\r\n\r\n /**\r\n * Creates a ConfirmDialogComponent with different display depending on\r\n * the ConfirmType.\r\n * @param title defaults to 'Confirm'\r\n * @param icon defaults to 'fa fa-info-circle'\r\n * @param config config.data can contain a prompt, message1 and/or\r\n * message2 according to the ConfirmType chosen\r\n * @param actionConfig sets up the dialog buttons and actions if you want\r\n * to override the defaults\r\n */\r\n public confirmByType(confirmType: ConfirmType, title?: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig): Observable<boolean> {\r\n if (!title){\r\n title = 'Confirm';\r\n }\r\n\r\n if (!icon){\r\n icon = 'fa fa-info-circle';\r\n }\r\n\r\n // set up a default if needed\r\n if (!config){\r\n config = new MatDialogConfig<any>();\r\n }\r\n\r\n // if the config doesn't have these values set, set defaults\r\n // but config can exist without them if want to pass message(s) without\r\n // overriding defaults\r\n if (!config.width) {\r\n config.width = '33vw';\r\n }\r\n if (!config.minWidth){\r\n config.minWidth = '300px';\r\n }\r\n if (!config.disableClose){\r\n config.disableClose = true;\r\n }\r\n\r\n if (config.data){\r\n config.data.confirmType = confirmType;\r\n }else {\r\n config.data = {\r\n confirmType\r\n };\r\n }\r\n\r\n // if no actions passed in, set up the defaults\r\n if (!actionConfig){\r\n\r\n // default actions\r\n let primary = {type: ActionType.PRIMARY, name: 'YES',\r\n internalAction: 'onConfirmClick', internalActionReturnValue: true};\r\n let secondary = {type: ActionType.SECONDARY, name: 'GO BACK',\r\n internalAction: 'onClose'};\r\n\r\n // by enum type, setup the messages/prompt\r\n // only two need different defaults than generic defaults\r\n switch (confirmType) {\r\n case ConfirmType.CONFIRM_AND_CLOSE:\r\n primary = {type: ActionType.PRIMARY, name: 'CONFIRM AND CLOSE',\r\n internalAction: 'onConfirmClick', internalActionReturnValue: true};\r\n break;\r\n case ConfirmType.ALERT:\r\n primary = undefined;\r\n secondary = {type: ActionType.SECONDARY, name: 'CLOSE',\r\n internalAction: 'onClose'};\r\n break;\r\n // case ConfirmType.DELETE:\r\n // case ConfirmType.DELETE_W_MESSAGE:\r\n // case ConfirmType.DELETE_W_PROMPT:\r\n // case ConfirmType.DISCARD:\r\n // case ConfirmType.ADD:\r\n // case ConfirmType.GENERIC:\r\n default:\r\n throw new Error('Confirm type doesn\\'t exist');\r\n }\r\n\r\n const actions = [];\r\n if (primary){\r\n actions.push(primary);\r\n }\r\n if (secondary){\r\n actions.push(secondary);\r\n }\r\n\r\n actionConfig = {\r\n actions\r\n };\r\n }\r\n\r\n return this.genericDialogContainer(ConfirmDialogComponent,\r\n title, icon, config, actionConfig);\r\n }\r\n\r\n public error(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.ERROR, icon, config);\r\n }\r\n\r\n public info(message: string | string[], title?: string,\r\n icon?: string, config?: MatDialogConfig): Observable<boolean> {\r\n return this.openDialog(message, title, DialogType.INFO, icon, config);\r\n }\r\n\r\n public createCustomDialog(tempRef: TemplateRef<any>, context?: any, title?: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig) {\r\n let configuration: MatDialogConfig = null;\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.templateRef = tempRef;\r\n configuration.data.title = title ? title : '';\r\n configuration.data.icon = icon ? icon : '';\r\n configuration.data.context = context;\r\n if (actionConfig) {\r\n configuration.data.actionConfig = actionConfig;\r\n }\r\n\r\n configuration.minWidth = configuration.minWidth ? configuration.minWidth : '10em';\r\n configuration.width = configuration.width ? configuration.width : '30em';\r\n\r\n configuration.panelClass = ['mx-sized-dialog', 'no-padding'];\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = true;\r\n\r\n const dialogRef = this.dialog.open(CustomDialogComponent, configuration);\r\n\r\n return dialogRef;\r\n }\r\n\r\n public startDefaultSpinnerDialog(): MatDialogRef<SpinnerDialogComponent> {\r\n return this.startSpinnerDialog('Please wait...', 3, 30);\r\n }\r\n\r\n public startSpinnerDialog(message: string, strokeWidth: number, diameter: number): MatDialogRef<SpinnerDialogComponent> {\r\n if (this._spinnerDialogIsOpen) {\r\n return null;\r\n }\r\n\r\n this._spinnerDialogIsOpen = true;\r\n\r\n const configuration: MatDialogConfig = new MatDialogConfig();\r\n configuration.data = {\r\n message,\r\n strokeWidth,\r\n diameter\r\n };\r\n configuration.width = '13em';\r\n configuration.disableClose = true;\r\n\r\n const dialogRef: MatDialogRef<SpinnerDialogComponent> = this.dialog.open(SpinnerDialogComponent, configuration);\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n this._spinnerDialogIsOpen = false;\r\n });\r\n\r\n this.spinnerDialogRefs.push(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n public startNonModalSpinnerDialog(message: string, strokeWidth: number, diameter: number): MatDialogRef<SpinnerDialogComponent> {\r\n if (this._spinnerDialogIsOpen) {\r\n return null;\r\n }\r\n\r\n this._spinnerDialogIsOpen = true;\r\n\r\n const configuration: MatDialogConfig = new MatDialogConfig();\r\n configuration.data = {\r\n message,\r\n strokeWidth,\r\n diameter\r\n };\r\n configuration.width = '13em';\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = false;\r\n\r\n const dialogRef: MatDialogRef<SpinnerDialogComponent> = this.dialog.open(SpinnerDialogComponent, configuration);\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n this._spinnerDialogIsOpen = false;\r\n });\r\n\r\n this.spinnerDialogRefs.push(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n // Let there be an alternative, global way to stop all active spinner dialogs.\r\n public stopAllSpinnerDialogs(): void {\r\n this.spinnerWorkItemCount = 0;\r\n for (const dialogRef of this.spinnerDialogRefs) {\r\n setTimeout(() => {\r\n dialogRef.close();\r\n });\r\n }\r\n this.spinnerDialogRefs = [];\r\n }\r\n\r\n public addSpinnerWorkItem(): void {\r\n this.spinnerWorkItemCount++;\r\n if (!this.checkingSpinnerWorkItems) {\r\n this.checkingSpinnerWorkItems = true;\r\n setTimeout(() => {\r\n this.checkSpinnerWorkItems();\r\n });\r\n }\r\n }\r\n\r\n public removeSpinnerWorkItem(): void {\r\n this.spinnerWorkItemCount--;\r\n if (this.spinnerWorkItemCount < 0) {\r\n this.spinnerWorkItemCount = 0;\r\n }\r\n if (!this.checkingSpinnerWorkItems) {\r\n this.checkingSpinnerWorkItems = true;\r\n setTimeout(() => {\r\n this.checkSpinnerWorkItems();\r\n });\r\n }\r\n }\r\n\r\n private checkSpinnerWorkItems(): void {\r\n this.checkingSpinnerWorkItems = false;\r\n if (this.spinnerWorkItemCount) {\r\n if (!this._spinnerDialogIsOpen) {\r\n this.startDefaultSpinnerDialog();\r\n }\r\n } else if (this._spinnerDialogIsOpen) {\r\n this.stopAllSpinnerDialogs();\r\n }\r\n }\r\n\r\n public genericDialogContainer(dialogContent: any, title: string,\r\n icon?: string, config?: MatDialogConfig,\r\n actionConfig?: GDActionConfig): Observable<any> {\r\n let configuration: MatDialogConfig = null;\r\n\r\n\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.dialogContent = dialogContent;\r\n configuration.data.title = title;\r\n if (icon) {\r\n configuration.data.icon = icon;\r\n }\r\n if (actionConfig) {\r\n configuration.data.actionConfig = actionConfig;\r\n }\r\n configuration.panelClass = ['mx-sized-dialog', 'no-padding'];\r\n configuration.disableClose = true;\r\n configuration.hasBackdrop = true;\r\n const dialogRef = this.dialog.open(GenericContainerDialogComponent, configuration);\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n private openDialog(message: string | string[], title?: string,\r\n type?: DialogType, icon?: string, config?: MatDialogConfig): Observable<any> {\r\n let configuration: MatDialogConfig = null;\r\n if (!config) {\r\n configuration = new MatDialogConfig();\r\n } else {\r\n configuration = config;\r\n }\r\n\r\n configuration.data = configuration.data ? configuration.data : {};\r\n configuration.data.message = message;\r\n configuration.data.title = title ? title : '';\r\n configuration.data.icon = icon ? icon : '';\r\n configuration.data.dialogType = type ? type : '';\r\n\r\n configuration.maxWidth = configuration.maxWidth ? configuration.maxWidth : '80vw';\r\n configuration.maxHeight = configuration.maxHeight ? configuration.maxHeight : '80vh';\r\n configuration.minWidth = configuration.minWidth ? configuration.minWidth : '30em';\r\n\r\n configuration.panelClass = 'no-padding';\r\n configuration.disableClose = true;\r\n configuration.autoFocus = false;\r\n configuration.hasBackdrop = false;\r\n\r\n let dialogRef: MatDialogRef<AlertDialogComponent>;\r\n\r\n dialogRef = this.dialog.open(AlertDialogComponent, configuration);\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {DialogService} from '../service/dialog.service';\r\nimport {ActionType} from '../model/generic-dialog-action.model';\r\n\r\n\r\n@Component({\r\n selector: 'hci-save-footer',\r\n template: `\r\n <div class=\"full-height full-width\" style=\"margin-bottom: 8px;\">\r\n <div class=\"d-flex flex-row align-items-center right-align padded\">\r\n <div *ngIf=\"dirty\" class=\"warning-background padded\">\r\n {{ message }}\r\n </div>\r\n <div class=\"major-left-right-margin\">\r\n <button mat-raised-button [disabled]=\"disableSave\"\r\n [color]=\"actionType\" (click)=\"notifySave()\"\r\n [ngClass]=\"{'primary-action': actionType === type.PRIMARY,\r\n 'secondary-action': actionType === type.SECONDARY && !disableSave }\">\r\n <img *ngIf=\"icon\" [src]=\"icon\" alt=\"\">\r\n {{ name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .primary-action{\r\n background-color: #0077B3FF;\r\n font-weight: bolder;\r\n color: white;\r\n }\r\n .secondary-action{\r\n background-color: #DEF4FFFF;\r\n font-weight: bolder;\r\n color: #0077B3FF;\r\n border: #0077B3FF solid 1px;\r\n }\r\n\r\n .major-left-right-margin {\r\n margin-left: 0.5em;\r\n margin-right: 0.5em;\r\n }\r\n\r\n .right-align {\r\n text-align: right;\r\n justify-content: flex-end;\r\n }\r\n\r\n\r\n .warning-background { background:#feec89; }\r\n\r\n `]\r\n})\r\nexport class SaveFooterComponent implements OnInit, OnDestroy {\r\n\r\n private _dirty: boolean;\r\n\r\n\r\n @Input() actionType: ActionType = ActionType.PRIMARY;\r\n @Input() icon: string;\r\n @Input() message = 'Your changes have not been saved';\r\n @Input() name = 'Save';\r\n @Input() set dirty(data: any){\r\n if (data){\r\n this._dirty = data;\r\n }else{\r\n this._dirty = false;\r\n }\r\n\r\n }\r\n get dirty(){\r\n return this._dirty;\r\n }\r\n\r\n\r\n @Input() set showSpinner(showSpinner: boolean) {\r\n setTimeout( () => {\r\n if (showSpinner) {\r\n this.dialogService.startDefaultSpinnerDialog();\r\n } else {\r\n this.dialogService.stopAllSpinnerDialogs();\r\n }\r\n });\r\n\r\n }\r\n\r\n @Input() disableSave = false;\r\n @Output() saveClicked = new EventEmitter<any>();\r\n type = ActionType;\r\n\r\n constructor(private dialogService: DialogService) { }\r\n\r\n ngOnInit(){\r\n // console.log(this.disableSave);\r\n }\r\n notifySave(): void{\r\n this.saveClicked.emit();\r\n }\r\n ngOnDestroy(){\r\n this.saveClicked.unsubscribe();\r\n }\r\n\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {DialogService} from './service/dialog.service';\r\nimport {AlertDialogComponent} from './alert/alert-dialog.component';\r\nimport {CustomDialogComponent} from './custom/custom-dialog.component';\r\nimport {GenericContainerDialogComponent} from './generic/generic-container-dialog.component';\r\nimport {SaveFooterComponent} from './save-footer/save-footer.component';\r\nimport {SpinnerDialogComponent} from './spinner/spinner-dialog.component';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {DynamicModule} from 'ng-dynamic-component';\r\nimport {ConfirmDialogComponent} from './confirm/confirm-dialog.component';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\n// import {RouterModule} from \"@angular/router\";\r\n// import {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\n// import {MatInputModule} from \"@angular/material/input\";\r\n// import {MatIconModule} from \"@angular/material/icon\";\r\n// import {TreeModule} from \"@circlon/angular-tree-component\";\r\n// import {MatDatepickerModule} from \"@angular/material/datepicker\";\r\n// import {MatSelectModule} from \"@angular/material/select\";\r\n// import {NgbModule, NgbNavModule} from \"@ng-bootstrap/ng-bootstrap\";\r\n// import {MiscModule} from \"@huntsman-cancer-institute/misc\";\r\n// import { MatNativeDateModule } from \"@angular/material/core\";\r\n// import { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n\r\n/**\r\n * The main @huntsman-cancer-institute/dialog module. The module exports all components that an implementation might use\r\n * and the forRoot() provides a global service for an implementing application.\r\n *\r\n * @since 1.0.0\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DynamicModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatProgressSpinnerModule\r\n // RouterModule,\r\n // MiscModule,\r\n // NgbModule,\r\n // MatButtonToggleModule,\r\n // MatInputModule,\r\n // MatIconModule,\r\n // MatDatepickerModule,\r\n // MatNativeDateModule,\r\n // MatCheckboxModule,\r\n // MatRadioModule,\r\n // MatSelectModule,\r\n // TreeModule,\r\n // NgbNavModule\r\n ],\r\n providers: [\r\n // MatDatepickerModule,\r\n ],\r\n declarations: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ],\r\n entryComponents: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ],\r\n exports: [\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n CustomDialogComponent,\r\n GenericContainerDialogComponent,\r\n SaveFooterComponent,\r\n SpinnerDialogComponent\r\n ]\r\n})\r\nexport class DialogModule {\r\n static forRoot(): ModuleWithProviders<DialogModule> {\r\n return {\r\n providers: [\r\n DialogService\r\n ],\r\n ngModule: DialogModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;IAEY;AAAZ,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,6CAA+B,CAAA;AACnC,CAAC,EATW,UAAU,KAAV,UAAU;;ICCV;AAAZ,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,kCAAoB,CAAA;AACxB,CAAC,EAHW,UAAU,KAAV,UAAU;;;ICkIlB,8BAAmB,SAA6C,EACnB,IAAI,EAC7B,cAAiC;QAFlC,cAAS,GAAT,SAAS,CAAoC;QACnB,SAAI,GAAJ,IAAI,CAAA;QAC7B,mBAAc,GAAd,cAAc,CAAmB;QAnB9C,SAAI,GAAQ,UAAU,CAAC;QAIvB,YAAO,GAAa,IAAI,CAAC;QACzB,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QACV,eAAU,GAAG,EAAE,CAAC;QAChB,iBAAY,GAAG,EAAE,CAAC;QAClB,eAAU,GAAQ,UAAU,CAAC,SAAS,CAAC;QAE9C,mBAAc,GAAG,CAAC,CAAC;QACnB,mBAAc,GAAG,CAAC,CAAC;QACT,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QACxB,iBAAY,GAAG,KAAK,CAAC;QAKjB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SACrC;KACJ;IAED,uCAAQ,GAAR;QACI,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;SACvC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;SACrE;KACJ;IAED,wCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,yCAAU,GAAV;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,wCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAED,gDAAiB,GAAjB,UAAkB,KAAU;QACxB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC;QAE9D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAChC;IAED,0CAAW,GADX,UACY,KAAU;QAClB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAEtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YAEpC,IAAM,iBAAiB,GAAmB;gBACtC,IAAI,EAAI,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;gBAClC,GAAG,EAAK,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;aACrC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;SACpD;KACJ;IAED,wCAAS,GADT;QAEI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;mHAzFW,oBAAoB,2CAmBZ,eAAe;uGAnBvB,oBAAoB,uRArGtB,uiGAyCT;+BAvDL;CAYA,IAiMC;yFA1Fe,oBAAoB;kBAvGnC,SAAS;mBAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,uiGAyCT;oBACD,MAAM,EAAE,CAAC,8rCA0DR,CAAC;iBACL;;0BAmBgB,MAAM;2BAAC,eAAe;yEAhBY,eAAe;sBAA7D,SAAS;uBAAC,iBAAiB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBA8D7C,WAAW;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;gBAsB5C,SAAS;sBADR,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;;IClK1C,gCAAoB,SAA+C,EACtB,IAAI;QAD7B,cAAS,GAAT,SAAS,CAAsC;QACtB,SAAI,GAAJ,IAAI,CAAA;QANxC,gBAAW,GAAG,CAAC,CAAC;QAChB,aAAQ,GAAG,EAAE,CAAC;QAEd,YAAO,GAAG,YAAY,CAAC;QAI5B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aACpC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACtC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aAC5C;SACJ;KACJ;qHAnBQ,sBAAsB,2CAOX,eAAe;yGAP1B,sBAAsB,4IChCnC,2rBAkBA;iCDlBA;CAGA,IAmDC;yFAtBY,sBAAsB;kBA7BlC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,WAAW,EAAE,+BAA+B;oBAC5C,MAAM,EAAE,CAAC,mhBAwBR,CAAC;iBACL;;0BAQgB,MAAM;2BAAC,eAAe;4CAN1B,WAAW;sBAAnB,KAAK;gBACG,QAAQ;sBAAhB,KAAK;gBAEG,OAAO;sBAAf,KAAK;;;;IE2FN,+BAAmB,SAA8C,EACpB,IAAS,EAClC,cAAiC;QAFlC,cAAS,GAAT,SAAS,CAAqC;QACpB,SAAI,GAAJ,IAAI,CAAK;QAClC,mBAAc,GAAd,cAAc,CAAmB;QAzB9C,UAAK,GAAG,EAAE,CAAC;QACX,SAAI,GAAG,EAAE,CAAC;QAEV,eAAU,GAAQ,UAAU,CAAC;QAEpC,mBAAc,GAAG,CAAC,CAAC;QACnB,mBAAc,GAAG,CAAC,CAAC;QACnB,iBAAY,GAAG,KAAK,CAAC;QACX,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QAIjB,YAAO,GAAe,EAAE,CAAC;QAa5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAM,YAAY,GAAmB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAA8B,GAAG,IAAI,CAAC;QACpG,IAAI,CAAC,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,YAAY,IAAI,YAAY,CAAC,UAAU,GAAI,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;KAEzF;IAnBD,sBAAW,iDAAc;aAAzB;YACI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SACzC;;;OAAA;IAED,sBAAW,mDAAgB;;aAA3B;YACI,OAAO,KAAK,CAAC;SAChB;;;OAAA;IAeD,wCAAQ,GAAR;QACI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAEhE;IAED,uCAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAED,iDAAiB,GAAjB,UAAkB,KAAU;QACxB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC;QAE9D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAChC;IAED,2CAAW,GADX,UACY,KAAU;QAClB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAEtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YAEpC,IAAM,iBAAiB,GAAmB;gBACtC,IAAI,EAAI,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;gBAClC,GAAG,EAAK,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;aACrC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;SACpD;KACJ;IAED,yCAAS,GADT;QAEI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;IAED,6CAAa,GAAb,UAAc,MAAgB;QAC1B,IAAI,MAAM,CAAC,cAAc,EAAE;YACvB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACzC;QACD,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;KACJ;oHAjGQ,qBAAqB,2CA2BV,eAAe;wGA3B1B,qBAAqB,8OACD,gBAAgB,gJAvFnC,mgFAyCT;gCAxDL;CAaA,IA2LC;yFAnGY,qBAAqB;kBAxFjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,mgFAyCT;oBACD,MAAM,EAAE,CAAC,+2BAyCR,CAAC;iBACL;;0BA6BgB,MAAM;2BAAC,eAAe;yEA1B6B,GAAG;sBAAlE,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAG,IAAI,EAAE;gBACf,eAAe;sBAA7D,SAAS;uBAAC,iBAAiB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBA8D7C,WAAW;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;gBAsB5C,SAAS;sBADR,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;;IChH1C,yCAAoB,MAAiB,EACjB,MAAc,EACd,cAAiC,EACjC,SAAwD,EAChC,IAAI;QAJ5B,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAmB;QACjC,cAAS,GAAT,SAAS,CAA+C;QAChC,SAAI,GAAJ,IAAI,CAAA;QAvB1B,cAAS,GAAG,8CAA8C,CAAC;QAIjF,SAAI,GAAG,UAAU,CAAC;QAIlB,YAAO,GAAe,EAAE,CAAC;QACzB,mBAAc,GAAG,CAAC,CAAC;QACnB,mBAAc,GAAG,CAAC,CAAC;QAGT,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QACxB,iBAAY,GAAG,KAAK,CAAC;QASjB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,KAAK,CAAC;YACjF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAqB,GAAG,EAAE,CAAC;SACnF;KACJ;IAED,kDAAQ,GAAR;KACC;IAED,0DAAgB,GAAhB,UAAiB,KAAwB;QACrC,IAAI,CAAC,aAAa,GAAI,KAAK,CAAC,QAAuC,CAAC;KACvE;IAED,uDAAa,GAAb,UAAc,MAAgB;QAC1B,IAAI,MAAM,CAAC,cAAc,EAAE;YACvB,MAAM,CAAC,cAAc,EAAE,CAAC;SAC3B;QACD,IAAI,MAAM,CAAC,cAAc,EAAE;YACvB,IAAM,cAAc,GAAW,MAAM,CAAC,cAAc,CAAC;YACrD,IAAI,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;gBAC3E,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;oBACpC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;iBACxC;qBAAM;oBACH,IAAI,CAAC,OAAO,EAAE,CAAC;iBAClB;aACJ;iBAAM;gBACL,IAAI,OAAO,MAAM,CAAC,yBAAyB,KAAK,WAAW,EAAE;oBAC3D,IAAI,MAAM,CAAC,yBAAyB,EAAC;wBACnC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;qBACtE;iBACF;qBAAK;oBACJ,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;iBACtC;aAEF;SACJ;KACJ;IAED,2DAAiB,GAAjB,UAAkB,KAAU;QACxB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC;QAE9D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAChC;IAED,qDAAW,GADX,UACY,KAAU;QAClB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAEtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YAEpC,IAAM,iBAAiB,GAAmB;gBACtC,IAAI,EAAI,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;gBAClC,GAAG,EAAK,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI;aACrC,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;SACpD;KACJ;IAED,mDAAS,GADT;QAEI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;IAED,iDAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAED,qDAAW,GAAX;KACC;8HAjHQ,+BAA+B,kHAyBpB,eAAe;kHAzB1B,+BAA+B,8UCpD5C,iyFAiDA;0CDjDA;CAeA,IAuJC;yFAlHY,+BAA+B;kBArC3C,SAAS;mBAAC;oBACP,QAAQ,EAAE,8BAA8B;oBACxC,WAAW,EAAE,2CAA2C;oBACxD,MAAM,EAAE,CAAC,+sBAgCR,CAAC;iBACL;;0BA0BgB,MAAM;2BAAC,eAAe;4CAvBb,SAAS;sBAA9B,WAAW;uBAAC,OAAO;gBAE2B,eAAe;sBAA7D,SAAS;uBAAC,iBAAiB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBA8E7C,WAAW;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;gBAsB5C,SAAS;sBADR,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;IEzJlC;AAAZ,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,iDAAkC,CAAA;IAClC,+CAAgC,CAAA;IAChC,kCAAmB,CAAA;IACnB,oDAAqC,CAAA;IACrC,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,kCAAmB,CAAA;AACrB,CAAC,EATW,WAAW,KAAX,WAAW;;;ICoBnB;QAbO,gBAAW,GAAY,KAAK,CAAC;QAC7B,eAAU,GAAW,EAAE,CAAC;QAEvB,mBAAc,GAAmC,UAAC,MAAM;YAC5D,OAAO,KAAK,CAAC;SAChB,CAAA;QAEO,qBAAgB,GAAmC,UAAC,MAAM;YAC9D,OAAO,KAAK,CAAC;SAChB,CAAA;QAEM,UAAK,GAAkB,cAAQ,OAAO,KAAK,CAAC,EAAE,CAAC;KAGrD;yHAhBiB,0BAA0B;6GAA1B,0BAA0B,wFAFlC,EAAE;qCAJhB;CAGA,IAoBC;yFAjBqB,0BAA0B;kBAH/C,SAAS;mBAAC;oBACP,QAAQ,EAAE,EAAE;iBACf;0EAEY,SAAS;sBAAjB,KAAK;;;;;;;;;;;;;;;;;;;IC4BkC,0CAA0B;IAUpE,gCAAoB,SAA+C,EACtB,IAAS;QADtD,YAEE,iBAAO,SAYR;QAdmB,eAAS,GAAT,SAAS,CAAsC;QACtB,UAAI,GAAJ,IAAI,CAAK;QAT/C,iBAAW,GAAG,WAAW,CAAC;QAEjC,YAAM,GAAG,EAAE,CAAC;QACZ,cAAQ,GAAG,EAAE,CAAC;QACd,cAAQ,GAAG,EAAE,CAAC;QAEd,iBAAW,GAAgB,WAAW,CAAC,OAAO,CAAC;QAM7C,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAmB,CAAC,EAAC;YAC3D,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QAED,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC7C,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnD,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnD,KAAI,CAAC,mBAAmB,EAAE,CAAC;;KAC5B;IAED,oDAAmB,GAAnB;;QAGE,QAAQ,IAAI,CAAC,WAAW;YACtB,KAAK,WAAW,CAAC,MAAM;gBACrB,IAAI,CAAC,MAAM,GAAG,gCAAgC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC5B,MAAM;YACR,KAAK,WAAW,CAAC,gBAAgB;gBAC/B,IAAI,CAAC,MAAM,GAAG,gCAAgC,CAAC;gBAC/C,MAAM;YACR,KAAK,WAAW,CAAC,eAAe;;gBAE9B,MAAM;YACR,KAAK,WAAW,CAAC,OAAO;gBACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC5B,MAAM;YACR,KAAK,WAAW,CAAC,iBAAiB;gBAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,WAAW,CAAC,GAAG;gBAClB,IAAI,CAAC,MAAM,GAAG,8BAA8B,CAAC;gBAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC5B,MAAM;YACR,KAAK,WAAW,CAAC,KAAK;;gBAEpB,MAAM;YACR,KAAK,WAAW,CAAC,OAAO;;gBAEtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;KAGF;IAED,+CAAc,GAAd,UAAe,KAAoB;QACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC7B;qHArEU,sBAAsB,2CAWb,eAAe;yGAXxB,sBAAsB,iFA5BvB,uqBAuBT;iCA9BH;CAyGC,CAtE2C,0BAA0B,GAsErE;yFAtEY,sBAAsB;kBA9BlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE,uqBAuBT;oBACD,MAAM,EAAE,CAAC,QAER,CAAC;iBACH;;0BAYc,MAAM;2BAAC,eAAe;;;;;;;;;;;;;;;ICjBjC,uBAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAV7B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,yBAAoB,GAAG,CAAC,CAAC;QACzB,6BAAwB,GAAG,KAAK,CAAC;QAElC,sBAAiB,GAA2C,EAAE,CAAC;KAOrE;IALD,sBAAW,8CAAmB;aAA9B;YACI,OAAO,IAAI,CAAC,oBAAoB,CAAC;SACpC;;;OAAA;IAKM,6BAAK,GAAZ,UAAa,OAA0B,EAAE,KAAc,EAC1C,UAAuB,EAAE,IAAa,EACtC,MAAwB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACpG;IAEM,+BAAO,GAAd,UAAe,OAA0B,EAAE,KAAc,EAC1C,IAAa,EAAE,MAAwB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KAE5E;;;;;;;;;;;IAYI,qCAAa,GAApB,UAAqB,WAAwB,EAAE,KAAc,EACxC,IAAa,EAAE,MAAwB,EACvC,YAA6B;QAChD,IAAI,CAAC,KAAK,EAAC;YACT,KAAK,GAAG,SAAS,CAAC;SACnB;QAED,IAAI,CAAC,IAAI,EAAC;YACR,IAAI,GAAG,mBAAmB,CAAC;SAC5B;;QAGD,IAAI,CAAC,MAAM,EAAC;YACV,MAAM,GAAG,IAAI,eAAe,EAAO,CAAC;SACrC;;;;QAKD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;SACvB;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC;YACnB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAC;YACvB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;QAED,IAAI,MAAM,CAAC,IAAI,EAAC;YACd,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SACvC;aAAK;YACJ,MAAM,CAAC,IAAI,GAAG;gBACZ,WAAW,aAAA;aACZ,CAAC;SACH;;QAGD,IAAI,CAAC,YAAY,EAAC;;YAGhB,IAAI,OAAO,GAAG,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK;gBAClD,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,IAAI,EAAC,CAAC;YACrE,IAAI,SAAS,GAAG,EAAC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS;gBAC1D,cAAc,EAAE,SAAS,EAAC,CAAC;;;YAI7B,QAAQ,WAAW;gBACjB,KAAK,WAAW,CAAC,iBAAiB;oBAChC,OAAO,GAAG,EAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,mBAAmB;wBAC5D,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,IAAI,EAAC,CAAC;oBACrE,MAAM;gBACR,KAAK,WAAW,CAAC,KAAK;oBACpB,OAAO,GAAG,SAAS,CAAC;oBACpB,SAAS,GAAG,EAAC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO;wBACpD,cAAc,EAAE,SAAS,EAAC,CAAC;oBAC7B,MAAM;;;;;;;gBAOR;oBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAClD;YAED,IAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,OAAO,EAAC;gBACV,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvB;YACD,IAAI,SAAS,EAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;YAED,YAAY,GAAG;gBACb,OAAO,SAAA;aACR,CAAC;SACH;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EACvD,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;KACtC;IAEQ,6BAAK,GAAZ,UAAa,OAA0B,EAAE,KAAc,EAC1C,IAAa,EAAE,MAAwB;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KAC1E;IAEM,4BAAI,GAAX,UAAY,OAA0B,EAAE,KAAc,EAC1C,IAAa,EAAE,MAAwB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACzE;IAEM,0CAAkB,GAAzB,UAA0B,OAAyB,EAAE,OAAa,EAAE,KAAc,EACxD,IAAa,EAAE,MAAwB,EACvC,YAA6B;QACnD,IAAI,aAAa,GAAoB,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACT,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;aAAM;YACH,aAAa,GAAG,MAAM,CAAC;SAC1B;QAED,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;QAClE,aAAa,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QACzC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,aAAa,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,IAAI,YAAY,EAAE;YACd,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClD;QAED,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAClF,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;QAEzE,aAAa,CAAC,UAAU,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC7D,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;QAEjC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QAEzE,OAAO,SAAS,CAAC;KACpB;IAEM,iDAAyB,GAAhC;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;KAC3D;IAEM,0CAAkB,GAAzB,UAA0B,OAAe,EAAE,WAAmB,EAAE,QAAgB;QAAhF,iBAyBC;QAxBG,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAM,aAAa,GAAoB,IAAI,eAAe,EAAE,CAAC;QAC7D,aAAa,CAAC,IAAI,GAAG;YACjB,OAAO,SAAA;YACP,WAAW,aAAA;YACX,QAAQ,UAAA;SACX,CAAC;QACF,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAElC,IAAM,SAAS,GAAyC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;QAEhH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAC9B,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;KACpB;IAEM,kDAA0B,GAAjC,UAAkC,OAAe,EAAE,WAAmB,EAAE,QAAgB;QAAxF,iBA0BC;QAzBG,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAM,aAAa,GAAoB,IAAI,eAAe,EAAE,CAAC;QAC7D,aAAa,CAAC,IAAI,GAAG;YACjB,OAAO,SAAA;YACP,WAAW,aAAA;YACX,QAAQ,UAAA;SACX,CAAC;QACF,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;QAElC,IAAM,SAAS,GAAyC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;QAEhH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAC9B,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;KACpB;;IAGM,6CAAqB,GAA5B;;QACI,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gCACnB,SAAS;YAChB,UAAU,CAAC;gBACP,SAAS,CAAC,KAAK,EAAE,CAAC;aACrB,CAAC,CAAC;;;YAHP,KAAwB,IAAA,KAAA,SAAA,IAAI,CAAC,iBAAiB,CAAA,gBAAA;gBAAzC,IAAM,SAAS,WAAA;wBAAT,SAAS;aAInB;;;;;;;;;QACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;IAEM,0CAAkB,GAAzB;QAAA,iBAQC;QAPG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,UAAU,CAAC;gBACP,KAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC,CAAC,CAAC;SACN;KACJ;IAEM,6CAAqB,GAA5B;QAAA,iBAWC;QAVG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,UAAU,CAAC;gBACP,KAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC,CAAC,CAAC;SACN;KACJ;IAEO,6CAAqB,GAA7B;QACI,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC5B,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACpC;SACJ;aAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;KACJ;IAEM,8CAAsB,GAA7B,UAA8B,aAAkB,EAAE,KAAa,EACjC,IAAa,EAAE,MAAwB,EACvC,YAA6B;QACvD,IAAI,aAAa,GAAoB,IAAI,CAAC;QAG1C,IAAI,CAAC,MAAM,EAAE;YACT,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;aAAM;YACH,aAAa,GAAG,MAAM,CAAC;SAC1B;QACD,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;QAClE,aAAa,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACjD,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,IAAI,EAAE;YACN,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,YAAY,EAAE;YACd,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClD;QACD,aAAa,CAAC,UAAU,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC7D,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,aAAa,CAAC,CAAC;QAEnF,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;KAClC;IAEO,kCAAU,GAAlB,UAAmB,OAA0B,EAAE,KAAc,EAC1C,IAAiB,EAAE,IAAa,EAAE,MAAwB;QACzE,IAAI,aAAa,GAAoB,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACT,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;aAAM;YACH,aAAa,GAAG,MAAM,CAAC;SAC1B;QAED,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;QAClE,aAAa,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAEjD,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAClF,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC;QACrF,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAElF,aAAa,CAAC,UAAU,GAAG,YAAY,CAAC;QACxC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;QAChC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;QAElC,IAAI,SAA6C,CAAC;QAElD,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;QAElE,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;KAClC;4GApUQ,aAAa;gHAAb,aAAa;wBAjB1B;CAgBA,IAwUC;yFAvUY,aAAa;kBADzB,UAAU;;;;IC0EP,6BAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAhCvC,eAAU,GAAe,UAAU,CAAC,OAAO,CAAC;QAE5C,YAAO,GAAG,kCAAkC,CAAC;QAC7C,SAAI,GAAG,MAAM,CAAC;QAyBd,gBAAW,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAChD,SAAI,GAAG,UAAU,CAAC;KAEmC;IA5BrD,sBAAa,sCAAK;aAQlB;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;aAVD,UAAmB,IAAS;YACxB,IAAI,IAAI,EAAC;gBACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;iBAAI;gBACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;SAEJ;;;OAAA;IAMD,sBAAa,4CAAW;aAAxB,UAAyB,WAAoB;YAA7C,iBASC;YARG,UAAU,CAAE;gBACR,IAAI,WAAW,EAAE;oBACb,KAAI,CAAC,aAAa,CAAC,yBAAyB,EAAE,CAAC;iBAClD;qBAAM;oBACH,KAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;iBAC9C;aACJ,CAAC,CAAC;SAEN;;;OAAA;IAQD,sCAAQ,GAAR;;KAEC;IACD,wCAAU,GAAV;QACI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;IACD,yCAAW,GAAX;QACI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;KAClC;kHA/CQ,mBAAmB;sGAAnB,mBAAmB,8PA9ClB,64BAiBT;8BAxBL;CAKA,IAiGC;yFAjDY,mBAAmB;kBAhD/B,SAAS;mBAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,64BAiBT;oBACD,MAAM,EAAE,CAAC,8mBA0BR,CAAC;iBACL;iGAMY,UAAU;sBAAlB,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACG,OAAO;sBAAf,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACO,KAAK;sBAAjB,KAAK;gBAaO,WAAW;sBAAvB,KAAK;gBAWG,WAAW;sBAAnB,KAAK;gBACI,WAAW;sBAApB,MAAM;;;ACvFX;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;IAMA;KA4DC;IARQ,oBAAO,GAAd;QACE,OAAO;YACL,SAAS,EAAE;gBACT,aAAa;aACd;YACD,QAAQ,EAAE,YAAY;SACvB,CAAC;KACH;2GARU,YAAY;4GAAZ,YAAY,iBAxBrB,oBAAoB;YACpB,sBAAsB;YACtB,qBAAqB;YACrB,+BAA+B;YAC/B,mBAAmB;YACnB,sBAAsB,aA9BtB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,wBAAwB;;;;;;;;;;;;;;qBAmCxB,oBAAoB;YACpB,sBAAsB;YACtB,qBAAqB;YACrB,+BAA+B;YAC/B,mBAAmB;YACnB,sBAAsB;4GAGb,YAAY,aA5BZ;;SAEV,YAxBQ;gBACP,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,eAAe;gBACf,eAAe;gBACf,kBAAkB;gBAClB,wBAAwB;;;;;;;;;;;;;;aAczB;uBA3DH;CAqCA,IA4DC;yFATY,YAAY;kBAnDxB,QAAQ;mBAAC;oBACR,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,wBAAwB;;;;;;;;;;;;;;qBAczB;oBACD,SAAS,EAAE;;qBAEV;oBACD,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,sBAAsB;wBACtB,qBAAqB;wBACrB,+BAA+B;wBAC/B,mBAAmB;wBACnB,sBAAsB;qBACvB;oBACD,eAAe,EAAE;wBACf,oBAAoB;wBACpB,sBAAsB;wBACtB,qBAAqB;wBACrB,+BAA+B;wBAC/B,mBAAmB;wBACnB,sBAAsB;qBACvB;oBACD,OAAO,EAAE;wBACP,oBAAoB;wBACpB,sBAAsB;wBACtB,qBAAqB;wBACrB,+BAA+B;wBAC/B,mBAAmB;wBACnB,sBAAsB;qBACvB;iBACF;;;ACvFD;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huntsman-cancer-institute/dialog",
3
- "version": "12.11.9-SNAPSHOT",
3
+ "version": "12.11.10",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git@gitlab.com:huntsman-cancer-institute/risr/ng/hci-ng-lib.git"
package/CHANGELOG.md DELETED
@@ -1,4 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.