ngx-alert-modal 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -92,6 +92,13 @@ providers:[
92
92
  export type AlertIcon = 'success' | 'error' | 'warning' | 'info' | 'question'
93
93
 
94
94
  export class AlertOptions {
95
+ /**
96
+ * add popover manual to set alert dialog container to top layer
97
+ * - usefull when using alert modal in angular material dialog
98
+ * - default is true
99
+ */
100
+ useOverlay?: boolean;
101
+
95
102
  /**
96
103
  * The title of the popup
97
104
  *
@@ -6,6 +6,7 @@ import { CommonModule, DOCUMENT } from '@angular/common';
6
6
 
7
7
  const NGX_ALERT_CONFIG = new InjectionToken('IAlertOptions');
8
8
  const defaultOptions = {
9
+ useOverlay: true,
9
10
  title: '',
10
11
  text: '',
11
12
  html: '',
@@ -34,6 +35,12 @@ const defaultOptions = {
34
35
  class AlertOptions {
35
36
  constructor(config) {
36
37
  this.config = config;
38
+ /**
39
+ * add popover manual to set alert dialog container to top layer
40
+ * - usefull when using alert modal in angular material dialog
41
+ *
42
+ */
43
+ this.useOverlay = this.config?.useOverlay;
37
44
  this.title = this.config?.title;
38
45
  this.text = this.config?.text;
39
46
  this.html = '';
@@ -146,15 +153,15 @@ class NgxAlertModalComponent {
146
153
  ev.preventDefault();
147
154
  ev.stopPropagation();
148
155
  }
149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: NgxAlertModalComponent, isStandalone: true, selector: "lib-ngx-alert-modal", host: { listeners: { "document:keydown.escape": "onScapeKey($event)", "document:keydown.enter": "onEnterKey($event)" } }, providers: [
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: NgxAlertModalComponent, isStandalone: true, selector: "lib-ngx-alert-modal", host: { listeners: { "document:keydown.escape": "onScapeKey($event)", "document:keydown.enter": "onEnterKey($event)" } }, providers: [
151
158
  {
152
159
  provide: NGX_ALERT_CONFIG,
153
160
  useValue: defaultOptions
154
161
  }
155
- ], ngImport: i0, template: "<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ngx-alert-container{position:fixed;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999;top:0;bottom:0;width:100%}.ngx-alert-container.has-backdrop{background:#0000001e}.ngx-alert-container .ngx-alert-inner{background-color:#fff;box-shadow:0 0 36px #00000029;width:400px;max-width:95%;min-height:150px;border-radius:6px;animation:ShowAlert .3s}.ngx-alert-container .ngx-alert-header{display:flex;align-items:center;font-size:30px;min-height:40px}.ngx-alert-container .ngx-alert-header .ngx-alert-close{background:none;border:none;outline:none;cursor:pointer}.ngx-alert-container .ngx-alert-header .ngx-alert-close svg{width:20px;height:20px}.ngx-alert-container .ngx-alert-body{padding:5px 15px 15px;text-align:center;max-height:calc(100vh - 120px);overflow:auto;line-height:2}.ngx-alert-container .ngx-alert-title{padding:15px;text-align:center;font-size:1.2rem}.ngx-alert-container .ngx-alert-footer{display:flex;align-items:center;flex-wrap:wrap;padding:15px;gap:6px;justify-content:center}.ngx-alert-container .ngx-alert-footer button{background:none;border:none;background-color:#007bff;color:#fff;padding:8px 15px;border-radius:3px;cursor:pointer}.ngx-alert-container .ngx-alert-footer button.btn-confirm{background-color:#007bff}.ngx-alert-container .ngx-alert-footer button.btn-cancel{background-color:#6e7881}.ngx-alert-container .ngx-alert-footer button.btn-deny{background-color:#dc3741}@keyframes ShowAlert{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}\n", ".alert-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;user-select:none}.alert-icon .alert-icon-content{display:flex;align-items:center;font-size:3.75em}.alert-icon.alert-error{border-color:#f27474;color:#f27474}.alert-icon.alert-error .alert-x-mark{position:relative;flex-grow:1}.alert-icon.alert-error [class^=alert-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.alert-icon.alert-error [class^=alert-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.alert-icon.alert-error [class^=alert-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.alert-icon.alert-error.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-error.alert-icon-show .alert-x-mark{animation:alert-animate-error-x-mark .5s}.alert-icon.alert-warning{border-color:#facea8;color:#f8bb86}.alert-icon.alert-warning.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-warning.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .5s}.alert-icon.alert-info{border-color:#9de0f6;color:#3fc3ee}.alert-icon.alert-info.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-info.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .8s}.alert-icon.alert-question{border-color:#c9dae1;color:#87adbd}.alert-icon.alert-question.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-question.alert-icon-show .alert-icon-content{animation:alert-animate-question-mark .8s}.alert-icon.alert-success{border-color:#a5dc86;color:#a5dc86}.alert-icon.alert-success [class^=alert-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.alert-icon.alert-success [class^=alert-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.alert-icon.alert-success [class^=alert-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.alert-icon.alert-success .alert-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.alert-icon.alert-success .alert-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.alert-icon.alert-success [class^=alert-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.alert-icon.alert-success [class^=alert-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.alert-icon.alert-success [class^=alert-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.alert-icon.alert-success.alert-icon-show .alert-success-line-tip{animation:alert-animate-success-line-tip .75s}.alert-icon.alert-success.alert-icon-show .alert-success-line-long{animation:alert-animate-success-line-long .75s}.alert-icon.alert-success.alert-icon-show .alert-success-circular-line-right{animation:alert-rotate-success-circular-line 4.25s ease-in}@keyframes alert-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@keyframes alert-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@keyframes alert-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes alert-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@keyframes alert-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes alert-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@keyframes alert-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes alert-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes alert-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes alert-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] }); }
162
+ ], ngImport: i0, template: "<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [":host:popover-open{margin:0;padding:0;border:none;background:transparent;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow:auto}.ngx-alert-container{position:fixed;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999;top:0;bottom:0;width:100%}.ngx-alert-container.has-backdrop{background:#0000001e}.ngx-alert-container .ngx-alert-inner{background-color:#fff;box-shadow:0 0 36px #00000029;width:400px;max-width:95%;min-height:150px;border-radius:6px;animation:ShowAlert .3s}.ngx-alert-container .ngx-alert-header{display:flex;align-items:center;font-size:30px;min-height:40px}.ngx-alert-container .ngx-alert-header .ngx-alert-close{background:none;border:none;outline:none;cursor:pointer}.ngx-alert-container .ngx-alert-header .ngx-alert-close svg{width:20px;height:20px}.ngx-alert-container .ngx-alert-body{padding:5px 15px 15px;text-align:center;max-height:calc(100vh - 120px);overflow:auto;line-height:2}.ngx-alert-container .ngx-alert-title{padding:15px;text-align:center;font-size:1.2rem}.ngx-alert-container .ngx-alert-footer{display:flex;align-items:center;flex-wrap:wrap;padding:15px;gap:6px;justify-content:center}.ngx-alert-container .ngx-alert-footer button{background:none;border:none;background-color:#007bff;color:#fff;padding:8px 15px;border-radius:3px;cursor:pointer}.ngx-alert-container .ngx-alert-footer button.btn-confirm{background-color:#007bff}.ngx-alert-container .ngx-alert-footer button.btn-cancel{background-color:#6e7881}.ngx-alert-container .ngx-alert-footer button.btn-deny{background-color:#dc3741}@keyframes ShowAlert{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}\n", ".alert-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;user-select:none}.alert-icon .alert-icon-content{display:flex;align-items:center;font-size:3.75em}.alert-icon.alert-error{border-color:#f27474;color:#f27474}.alert-icon.alert-error .alert-x-mark{position:relative;flex-grow:1}.alert-icon.alert-error [class^=alert-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.alert-icon.alert-error [class^=alert-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.alert-icon.alert-error [class^=alert-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.alert-icon.alert-error.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-error.alert-icon-show .alert-x-mark{animation:alert-animate-error-x-mark .5s}.alert-icon.alert-warning{border-color:#facea8;color:#f8bb86}.alert-icon.alert-warning.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-warning.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .5s}.alert-icon.alert-info{border-color:#9de0f6;color:#3fc3ee}.alert-icon.alert-info.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-info.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .8s}.alert-icon.alert-question{border-color:#c9dae1;color:#87adbd}.alert-icon.alert-question.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-question.alert-icon-show .alert-icon-content{animation:alert-animate-question-mark .8s}.alert-icon.alert-success{border-color:#a5dc86;color:#a5dc86}.alert-icon.alert-success [class^=alert-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.alert-icon.alert-success [class^=alert-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.alert-icon.alert-success [class^=alert-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.alert-icon.alert-success .alert-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.alert-icon.alert-success .alert-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.alert-icon.alert-success [class^=alert-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.alert-icon.alert-success [class^=alert-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.alert-icon.alert-success [class^=alert-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.alert-icon.alert-success.alert-icon-show .alert-success-line-tip{animation:alert-animate-success-line-tip .75s}.alert-icon.alert-success.alert-icon-show .alert-success-line-long{animation:alert-animate-success-line-long .75s}.alert-icon.alert-success.alert-icon-show .alert-success-circular-line-right{animation:alert-rotate-success-circular-line 4.25s ease-in}@keyframes alert-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@keyframes alert-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@keyframes alert-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes alert-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@keyframes alert-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes alert-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@keyframes alert-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes alert-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes alert-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes alert-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] }); }
156
163
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalComponent, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalComponent, decorators: [{
158
165
  type: Component,
159
166
  args: [{ selector: 'lib-ngx-alert-modal', standalone: true, imports: [
160
167
  CommonModule
@@ -163,7 +170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
163
170
  provide: NGX_ALERT_CONFIG,
164
171
  useValue: defaultOptions
165
172
  }
166
- ], template: "<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ngx-alert-container{position:fixed;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999;top:0;bottom:0;width:100%}.ngx-alert-container.has-backdrop{background:#0000001e}.ngx-alert-container .ngx-alert-inner{background-color:#fff;box-shadow:0 0 36px #00000029;width:400px;max-width:95%;min-height:150px;border-radius:6px;animation:ShowAlert .3s}.ngx-alert-container .ngx-alert-header{display:flex;align-items:center;font-size:30px;min-height:40px}.ngx-alert-container .ngx-alert-header .ngx-alert-close{background:none;border:none;outline:none;cursor:pointer}.ngx-alert-container .ngx-alert-header .ngx-alert-close svg{width:20px;height:20px}.ngx-alert-container .ngx-alert-body{padding:5px 15px 15px;text-align:center;max-height:calc(100vh - 120px);overflow:auto;line-height:2}.ngx-alert-container .ngx-alert-title{padding:15px;text-align:center;font-size:1.2rem}.ngx-alert-container .ngx-alert-footer{display:flex;align-items:center;flex-wrap:wrap;padding:15px;gap:6px;justify-content:center}.ngx-alert-container .ngx-alert-footer button{background:none;border:none;background-color:#007bff;color:#fff;padding:8px 15px;border-radius:3px;cursor:pointer}.ngx-alert-container .ngx-alert-footer button.btn-confirm{background-color:#007bff}.ngx-alert-container .ngx-alert-footer button.btn-cancel{background-color:#6e7881}.ngx-alert-container .ngx-alert-footer button.btn-deny{background-color:#dc3741}@keyframes ShowAlert{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}\n", ".alert-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;user-select:none}.alert-icon .alert-icon-content{display:flex;align-items:center;font-size:3.75em}.alert-icon.alert-error{border-color:#f27474;color:#f27474}.alert-icon.alert-error .alert-x-mark{position:relative;flex-grow:1}.alert-icon.alert-error [class^=alert-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.alert-icon.alert-error [class^=alert-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.alert-icon.alert-error [class^=alert-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.alert-icon.alert-error.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-error.alert-icon-show .alert-x-mark{animation:alert-animate-error-x-mark .5s}.alert-icon.alert-warning{border-color:#facea8;color:#f8bb86}.alert-icon.alert-warning.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-warning.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .5s}.alert-icon.alert-info{border-color:#9de0f6;color:#3fc3ee}.alert-icon.alert-info.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-info.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .8s}.alert-icon.alert-question{border-color:#c9dae1;color:#87adbd}.alert-icon.alert-question.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-question.alert-icon-show .alert-icon-content{animation:alert-animate-question-mark .8s}.alert-icon.alert-success{border-color:#a5dc86;color:#a5dc86}.alert-icon.alert-success [class^=alert-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.alert-icon.alert-success [class^=alert-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.alert-icon.alert-success [class^=alert-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.alert-icon.alert-success .alert-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.alert-icon.alert-success .alert-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.alert-icon.alert-success [class^=alert-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.alert-icon.alert-success [class^=alert-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.alert-icon.alert-success [class^=alert-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.alert-icon.alert-success.alert-icon-show .alert-success-line-tip{animation:alert-animate-success-line-tip .75s}.alert-icon.alert-success.alert-icon-show .alert-success-line-long{animation:alert-animate-success-line-long .75s}.alert-icon.alert-success.alert-icon-show .alert-success-circular-line-right{animation:alert-rotate-success-circular-line 4.25s ease-in}@keyframes alert-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@keyframes alert-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@keyframes alert-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes alert-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@keyframes alert-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes alert-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@keyframes alert-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes alert-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes alert-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes alert-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}\n"] }]
173
+ ], template: "<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>", styles: [":host:popover-open{margin:0;padding:0;border:none;background:transparent;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow:auto}.ngx-alert-container{position:fixed;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999;top:0;bottom:0;width:100%}.ngx-alert-container.has-backdrop{background:#0000001e}.ngx-alert-container .ngx-alert-inner{background-color:#fff;box-shadow:0 0 36px #00000029;width:400px;max-width:95%;min-height:150px;border-radius:6px;animation:ShowAlert .3s}.ngx-alert-container .ngx-alert-header{display:flex;align-items:center;font-size:30px;min-height:40px}.ngx-alert-container .ngx-alert-header .ngx-alert-close{background:none;border:none;outline:none;cursor:pointer}.ngx-alert-container .ngx-alert-header .ngx-alert-close svg{width:20px;height:20px}.ngx-alert-container .ngx-alert-body{padding:5px 15px 15px;text-align:center;max-height:calc(100vh - 120px);overflow:auto;line-height:2}.ngx-alert-container .ngx-alert-title{padding:15px;text-align:center;font-size:1.2rem}.ngx-alert-container .ngx-alert-footer{display:flex;align-items:center;flex-wrap:wrap;padding:15px;gap:6px;justify-content:center}.ngx-alert-container .ngx-alert-footer button{background:none;border:none;background-color:#007bff;color:#fff;padding:8px 15px;border-radius:3px;cursor:pointer}.ngx-alert-container .ngx-alert-footer button.btn-confirm{background-color:#007bff}.ngx-alert-container .ngx-alert-footer button.btn-cancel{background-color:#6e7881}.ngx-alert-container .ngx-alert-footer button.btn-deny{background-color:#dc3741}@keyframes ShowAlert{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}\n", ".alert-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;user-select:none}.alert-icon .alert-icon-content{display:flex;align-items:center;font-size:3.75em}.alert-icon.alert-error{border-color:#f27474;color:#f27474}.alert-icon.alert-error .alert-x-mark{position:relative;flex-grow:1}.alert-icon.alert-error [class^=alert-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.alert-icon.alert-error [class^=alert-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.alert-icon.alert-error [class^=alert-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.alert-icon.alert-error.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-error.alert-icon-show .alert-x-mark{animation:alert-animate-error-x-mark .5s}.alert-icon.alert-warning{border-color:#facea8;color:#f8bb86}.alert-icon.alert-warning.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-warning.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .5s}.alert-icon.alert-info{border-color:#9de0f6;color:#3fc3ee}.alert-icon.alert-info.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-info.alert-icon-show .alert-icon-content{animation:alert-animate-i-mark .8s}.alert-icon.alert-question{border-color:#c9dae1;color:#87adbd}.alert-icon.alert-question.alert-icon-show{animation:alert-animate-error-icon .5s}.alert-icon.alert-question.alert-icon-show .alert-icon-content{animation:alert-animate-question-mark .8s}.alert-icon.alert-success{border-color:#a5dc86;color:#a5dc86}.alert-icon.alert-success [class^=alert-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.alert-icon.alert-success [class^=alert-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.alert-icon.alert-success [class^=alert-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.alert-icon.alert-success .alert-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.alert-icon.alert-success .alert-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.alert-icon.alert-success [class^=alert-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.alert-icon.alert-success [class^=alert-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.alert-icon.alert-success [class^=alert-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.alert-icon.alert-success.alert-icon-show .alert-success-line-tip{animation:alert-animate-success-line-tip .75s}.alert-icon.alert-success.alert-icon-show .alert-success-line-long{animation:alert-animate-success-line-long .75s}.alert-icon.alert-success.alert-icon-show .alert-success-circular-line-right{animation:alert-rotate-success-circular-line 4.25s ease-in}@keyframes alert-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@keyframes alert-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@keyframes alert-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes alert-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@keyframes alert-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes alert-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@keyframes alert-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes alert-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes alert-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes alert-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}\n"] }]
167
174
  }], propDecorators: { onScapeKey: [{
168
175
  type: HostListener,
169
176
  args: ['document:keydown.escape', ['$event']]
@@ -215,12 +222,22 @@ class NgxAlertModalService {
215
222
  }
216
223
  removeDialogComponentFromBody(index) {
217
224
  if (this.alerts[index]) {
225
+ const domElem = this.alerts[index].hostView
226
+ .rootNodes[0];
227
+ // قبل از destroy باید hidePopover صدا بزنیم
228
+ if (domElem.popover === 'manual') {
229
+ try {
230
+ domElem.hidePopover();
231
+ }
232
+ catch { }
233
+ }
218
234
  this.appRef.detachView(this.alerts[index].hostView);
219
235
  this.alerts[index].destroy();
220
236
  }
221
237
  }
222
238
  appendDialogComponentToBody(componentRef, config) {
223
- const domElem = componentRef.hostView.rootNodes[0];
239
+ const domElem = componentRef.hostView
240
+ .rootNodes[0];
224
241
  if (config.containerClass) {
225
242
  for (let c of config.containerClass.split(' ')) {
226
243
  if (c.trim())
@@ -228,19 +245,23 @@ class NgxAlertModalService {
228
245
  }
229
246
  }
230
247
  this._doc.body.appendChild(domElem);
248
+ if (config.useOverlay) {
249
+ domElem.popover = 'manual';
250
+ domElem.showPopover();
251
+ }
231
252
  }
232
253
  closeAll() {
233
254
  for (let i = 0; i < this.alerts.length; i++) {
234
255
  this.removeDialogComponentFromBody(i);
235
256
  }
236
257
  }
237
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
238
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalService, providedIn: 'root' }); }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
259
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalService, providedIn: 'root' }); }
239
260
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalService, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalService, decorators: [{
241
262
  type: Injectable,
242
263
  args: [{
243
- providedIn: 'root'
264
+ providedIn: 'root',
244
265
  }]
245
266
  }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: Document, decorators: [{
246
267
  type: Inject,
@@ -259,13 +280,13 @@ class NgxAlertModalModule {
259
280
  ]
260
281
  };
261
282
  }
262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
263
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalModule }); }
264
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalModule, providers: [
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
284
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalModule }); }
285
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalModule, providers: [
265
286
  NgxAlertModalService
266
287
  ] }); }
267
288
  }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NgxAlertModalModule, decorators: [{
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgxAlertModalModule, decorators: [{
269
290
  type: NgModule,
270
291
  args: [{
271
292
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-alert-modal.mjs","sources":["../../../projects/ngx-alert-modal/src/models/AlertOptions.ts","../../../projects/ngx-alert-modal/src/models/alert-result.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.component.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.component.html","../../../projects/ngx-alert-modal/src/helper/apply-default.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.service.ts","../../../projects/ngx-alert-modal/src/ngx-alert-modal.module.ts","../../../projects/ngx-alert-modal/src/public-api.ts","../../../projects/ngx-alert-modal/src/ngx-alert-modal.ts"],"sourcesContent":["import { Inject, InjectionToken } from \"@angular/core\";\r\nimport { IAlertOptions } from \"./IAlertOptions\";\r\n\r\nexport type AlertIcon = 'None' | 'success' | 'error' | 'warning' | 'info' | 'question'\r\n\r\nexport const NGX_ALERT_CONFIG = new InjectionToken<IAlertOptions>('IAlertOptions');\r\n\r\nexport const defaultOptions: AlertOptions = {\r\n title: '',\r\n text: '',\r\n html: '',\r\n backdrop: true,\r\n icon: 'None',\r\n width: undefined,\r\n allowOutsideClick: true,\r\n allowEscapeKey: true,\r\n allowEnterKey: true,\r\n showConfirmButton: true,\r\n showDenyButton: false,\r\n showCancelButton: false,\r\n confirmButtonText: 'Ok',\r\n denyButtonText: 'No',\r\n cancelButtonText: 'Cancel',\r\n confirmButtonColor: '',\r\n denyButtonColor: '',\r\n cancelButtonColor: '',\r\n confirmButtonAriaLabel: '',\r\n denyButtonAriaLabel: '',\r\n cancelButtonAriaLabel: '',\r\n reverseButtons: false,\r\n showCloseButton: false,\r\n containerClass: '',\r\n}\r\n\r\n\r\nexport class AlertOptions implements IAlertOptions {\r\n public constructor(\r\n private config?: IAlertOptions,\r\n ) {\r\n //config = { ...(new AlertOptions()), ...config };\r\n }\r\n\r\n title?: string = this.config?.title;\r\n text?: string = this.config?.text;\r\n html?: string | HTMLElement = '';\r\n backdrop?: boolean = true;\r\n icon?: AlertIcon;\r\n width?: number | string;\r\n allowOutsideClick?: boolean = true;\r\n allowEscapeKey?: boolean = true;\r\n allowEnterKey?: boolean = true;\r\n showConfirmButton?: boolean = true;\r\n showDenyButton?: boolean = false;\r\n showCancelButton?: boolean = false;\r\n confirmButtonText: string = this.config?.confirmButtonText ?? 'Ok';\r\n denyButtonText?: string = 'No';\r\n cancelButtonText?: string = 'Cancel';\r\n confirmButtonColor?: string;\r\n denyButtonColor?: string;\r\n cancelButtonColor?: string;\r\n confirmButtonAriaLabel?: string = '';\r\n denyButtonAriaLabel?: string = '';\r\n cancelButtonAriaLabel?: string = '';\r\n reverseButtons?: boolean = false;\r\n showCloseButton?: boolean = false;\r\n containerClass?: string = '';\r\n}","export interface AlertResult<T = any> {\r\n readonly isConfirmed: boolean\r\n readonly isDenied: boolean\r\n readonly isDismissed: boolean\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n readonly value?: T\r\n readonly dismiss?: DismissReason\r\n}\r\n\r\n\r\n/**\r\n * An enum of possible reasons that can explain an alert dismissal.\r\n */\r\nexport enum DismissReason {\r\n cancel,\r\n backdrop,\r\n close,\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n esc,\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n timer,\r\n}\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { IAlertOptions } from \"../models/IAlertOptions\";\r\nimport { Subject } from 'rxjs';\r\nimport { AlertResult, DismissReason } from '../models/alert-result';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NGX_ALERT_CONFIG, defaultOptions } from '../public-api';\r\n\r\n@Component({\r\n selector: 'lib-ngx-alert-modal',\r\n templateUrl: 'ngx-alert-modal.component.html',\r\n styleUrls: ['./ngx-alert-modal.component.scss', './ngx-alert-icons.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n {\r\n provide: NGX_ALERT_CONFIG,\r\n useValue: defaultOptions\r\n }\r\n ]\r\n})\r\nexport class NgxAlertModalComponent {\r\n options!: IAlertOptions;\r\n index = 0;\r\n\r\n private readonly _onClose = new Subject<{ index: number, result: AlertResult<any> }>();\r\n public onClose = this._onClose.asObservable();\r\n\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onScapeKey(event: KeyboardEvent) {\r\n if (this.options.allowEscapeKey) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.enter', ['$event'])\r\n onEnterKey(event: KeyboardEvent) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (this.options.allowEnterKey) {\r\n if (this.options.showConfirmButton) {\r\n this.onConfirm();\r\n } else if (this.options.showDenyButton) {\r\n this.onDeny();\r\n } else {\r\n this.onCancel()\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n onConfirm() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: true,\r\n isDismissed: false,\r\n isDenied: false,\r\n dismiss: DismissReason.close,\r\n }\r\n }\r\n );\r\n }\r\n onCancel() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: false,\r\n isDismissed: true,\r\n isDenied: false,\r\n dismiss: DismissReason.cancel,\r\n }\r\n }\r\n );\r\n }\r\n onDeny() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: false,\r\n isDismissed: false,\r\n isDenied: true,\r\n dismiss: DismissReason.close,\r\n }\r\n }\r\n );\r\n }\r\n close() {\r\n this.onCancel();\r\n }\r\n\r\n\r\n onOutSideClick() {\r\n if (this.options.allowOutsideClick) {\r\n this.onCancel();\r\n }\r\n }\r\n innerOnClick(ev: Event) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n}\r\n","<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>","\r\nexport function applyDefaultConfig(config: any, defaultConfig: any): any {\r\n var config = JSON.parse(JSON.stringify(config));\r\n for (let key in defaultConfig) {\r\n if (config[key] === undefined || config[key] === null || config[key] === '') {\r\n config[key] = defaultConfig[key];\r\n } else if (typeof config[key] === 'object') {\r\n config[key] = applyDefaultConfig(config[key], defaultConfig[key]);\r\n }\r\n }\r\n return config;\r\n}\r\n","import {\r\n ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Inject, Injectable, Injector,\r\n} from '@angular/core';\r\nimport { NGX_ALERT_CONFIG, defaultOptions, } from '../models/AlertOptions';\r\nimport { IAlertOptions } from \"../models/IAlertOptions\";\r\nimport { NgxAlertModalComponent } from './ngx-alert-modal.component';\r\nimport { AlertResult } from '../models/alert-result';\r\nimport { applyDefaultConfig } from '../helper/apply-default';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgxAlertModalService {\r\n currentAdIndex = -1;\r\n alerts: ComponentRef<NgxAlertModalComponent>[] = [];\r\n insertedId = 0;\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n @Inject(DOCUMENT) private _doc:Document\r\n ) { }\r\n\r\n\r\n public show(config: IAlertOptions): Promise<AlertResult<any>> {\r\n let d = applyDefaultConfig(this.injector.get(NGX_ALERT_CONFIG, defaultOptions), defaultOptions);\r\n config = applyDefaultConfig(config, d);\r\n return new Promise((resolve, reject) => {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(NgxAlertModalComponent);\r\n const componentRef = componentFactory.create(this.injector);\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n this.appendDialogComponentToBody(componentRef, config);\r\n componentRef.instance.options = config;\r\n componentRef.instance.index = this.insertedId;\r\n componentRef.instance.onClose.subscribe((result) => {\r\n this.removeDialogComponentFromBody(result.index);\r\n resolve(result.result);\r\n });\r\n this.alerts.push(componentRef);\r\n this.insertedId++;\r\n });\r\n }\r\n\r\n\r\n private removeDialogComponentFromBody(index: number): void {\r\n if (this.alerts[index]) {\r\n this.appRef.detachView(this.alerts[index].hostView);\r\n this.alerts[index].destroy();\r\n }\r\n }\r\n\r\n private appendDialogComponentToBody(componentRef: ComponentRef<NgxAlertModalComponent>, config: IAlertOptions) {\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n if (config.containerClass) {\r\n for (let c of config.containerClass.split(' ')) {\r\n if (c.trim())\r\n domElem.classList.add(c);\r\n }\r\n }\r\n this._doc.body.appendChild(domElem);\r\n }\r\n\r\n closeAll() {\r\n for (let i = 0; i < this.alerts.length; i++) {\r\n this.removeDialogComponentFromBody(i);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { IAlertOptions, NGX_ALERT_CONFIG } from \"./public-api\";\r\nimport { NgxAlertModalService } from \"./lib/ngx-alert-modal.service\";\r\n\r\n@NgModule({\r\n providers: [\r\n NgxAlertModalService\r\n ]\r\n})\r\nexport class NgxAlertModalModule {\r\n static forRoot(config: IAlertOptions): ModuleWithProviders<NgxAlertModalModule> {\r\n return {\r\n ngModule: NgxAlertModalModule,\r\n providers: [\r\n {\r\n provide: NGX_ALERT_CONFIG,\r\n useValue: config\r\n }\r\n ]\r\n }\r\n }\r\n}","/*\r\n * Public API Surface of ngx-alert-modal\r\n */\r\n\r\nexport * from './lib/ngx-alert-modal.service';\r\nexport * from './lib/ngx-alert-modal.component';\r\n\r\nexport * from './models/alert-result';\r\n\r\nexport * from './models/AlertOptions';\r\nexport * from './models/IAlertOptions';\r\n\r\nexport * from './ngx-alert-modal.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-alert-modal.mjs","sources":["../../../projects/ngx-alert-modal/src/models/AlertOptions.ts","../../../projects/ngx-alert-modal/src/models/alert-result.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.component.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.component.html","../../../projects/ngx-alert-modal/src/helper/apply-default.ts","../../../projects/ngx-alert-modal/src/lib/ngx-alert-modal.service.ts","../../../projects/ngx-alert-modal/src/ngx-alert-modal.module.ts","../../../projects/ngx-alert-modal/src/public-api.ts","../../../projects/ngx-alert-modal/src/ngx-alert-modal.ts"],"sourcesContent":["import { Inject, InjectionToken } from '@angular/core';\r\nimport { IAlertOptions } from './IAlertOptions';\r\n\r\nexport type AlertIcon =\r\n | 'None'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'question';\r\n\r\nexport const NGX_ALERT_CONFIG = new InjectionToken<IAlertOptions>(\r\n 'IAlertOptions',\r\n);\r\n\r\nexport const defaultOptions: AlertOptions = {\r\n useOverlay: true,\r\n title: '',\r\n text: '',\r\n html: '',\r\n backdrop: true,\r\n icon: 'None',\r\n width: undefined,\r\n allowOutsideClick: true,\r\n allowEscapeKey: true,\r\n allowEnterKey: true,\r\n showConfirmButton: true,\r\n showDenyButton: false,\r\n showCancelButton: false,\r\n confirmButtonText: 'Ok',\r\n denyButtonText: 'No',\r\n cancelButtonText: 'Cancel',\r\n confirmButtonColor: '',\r\n denyButtonColor: '',\r\n cancelButtonColor: '',\r\n confirmButtonAriaLabel: '',\r\n denyButtonAriaLabel: '',\r\n cancelButtonAriaLabel: '',\r\n reverseButtons: false,\r\n showCloseButton: false,\r\n containerClass: '',\r\n};\r\n\r\nexport class AlertOptions implements IAlertOptions {\r\n public constructor(private config?: IAlertOptions) {\r\n //config = { ...(new AlertOptions()), ...config };\r\n }\r\n /**\r\n * add popover manual to set alert dialog container to top layer\r\n * - usefull when using alert modal in angular material dialog\r\n *\r\n */\r\n useOverlay?: boolean = this.config?.useOverlay;\r\n title?: string = this.config?.title;\r\n text?: string = this.config?.text;\r\n html?: string | HTMLElement = '';\r\n backdrop?: boolean = true;\r\n icon?: AlertIcon;\r\n width?: number | string;\r\n allowOutsideClick?: boolean = true;\r\n allowEscapeKey?: boolean = true;\r\n allowEnterKey?: boolean = true;\r\n showConfirmButton?: boolean = true;\r\n showDenyButton?: boolean = false;\r\n showCancelButton?: boolean = false;\r\n confirmButtonText: string = this.config?.confirmButtonText ?? 'Ok';\r\n denyButtonText?: string = 'No';\r\n cancelButtonText?: string = 'Cancel';\r\n confirmButtonColor?: string;\r\n denyButtonColor?: string;\r\n cancelButtonColor?: string;\r\n confirmButtonAriaLabel?: string = '';\r\n denyButtonAriaLabel?: string = '';\r\n cancelButtonAriaLabel?: string = '';\r\n reverseButtons?: boolean = false;\r\n showCloseButton?: boolean = false;\r\n containerClass?: string = '';\r\n}\r\n","export interface AlertResult<T = any> {\r\n readonly isConfirmed: boolean\r\n readonly isDenied: boolean\r\n readonly isDismissed: boolean\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n readonly value?: T\r\n readonly dismiss?: DismissReason\r\n}\r\n\r\n\r\n/**\r\n * An enum of possible reasons that can explain an alert dismissal.\r\n */\r\nexport enum DismissReason {\r\n cancel,\r\n backdrop,\r\n close,\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n esc,\r\n /**\r\n * @description ❌⚠️NOT Implemented!⚠️❌\r\n */\r\n timer,\r\n}\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { IAlertOptions } from \"../models/IAlertOptions\";\r\nimport { Subject } from 'rxjs';\r\nimport { AlertResult, DismissReason } from '../models/alert-result';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NGX_ALERT_CONFIG, defaultOptions } from '../public-api';\r\n\r\n@Component({\r\n selector: 'lib-ngx-alert-modal',\r\n templateUrl: 'ngx-alert-modal.component.html',\r\n styleUrls: ['./ngx-alert-modal.component.scss', './ngx-alert-icons.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n {\r\n provide: NGX_ALERT_CONFIG,\r\n useValue: defaultOptions\r\n }\r\n ]\r\n})\r\nexport class NgxAlertModalComponent {\r\n options!: IAlertOptions;\r\n index = 0;\r\n\r\n private readonly _onClose = new Subject<{ index: number, result: AlertResult<any> }>();\r\n public onClose = this._onClose.asObservable();\r\n\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onScapeKey(event: Event) {\r\n if (this.options.allowEscapeKey) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.enter', ['$event'])\r\n onEnterKey(event: Event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (this.options.allowEnterKey) {\r\n if (this.options.showConfirmButton) {\r\n this.onConfirm();\r\n } else if (this.options.showDenyButton) {\r\n this.onDeny();\r\n } else {\r\n this.onCancel()\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n onConfirm() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: true,\r\n isDismissed: false,\r\n isDenied: false,\r\n dismiss: DismissReason.close,\r\n }\r\n }\r\n );\r\n }\r\n onCancel() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: false,\r\n isDismissed: true,\r\n isDenied: false,\r\n dismiss: DismissReason.cancel,\r\n }\r\n }\r\n );\r\n }\r\n onDeny() {\r\n this._onClose.next({\r\n index: this.index,\r\n result: {\r\n isConfirmed: false,\r\n isDismissed: false,\r\n isDenied: true,\r\n dismiss: DismissReason.close,\r\n }\r\n }\r\n );\r\n }\r\n close() {\r\n this.onCancel();\r\n }\r\n\r\n\r\n onOutSideClick() {\r\n if (this.options.allowOutsideClick) {\r\n this.onCancel();\r\n }\r\n }\r\n innerOnClick(ev: Event) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n}\r\n","<div class=\"ngx-alert-container\" (click)=\"onOutSideClick()\" [ngClass]=\"options.containerClass\"\r\n [class.has-backdrop]=\"options.backdrop\">\r\n <div class=\"ngx-alert-inner\" (click)=\"innerOnClick($event)\">\r\n <div class=\"ngx-alert-header\" *ngIf=\"options.showCloseButton\">\r\n <button class=\"ngx-alert-close\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n d=\"M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <!-- --------- icon -------- -->\r\n <ng-container [ngSwitch]=\"options.icon\">\r\n\r\n\r\n <div *ngSwitchCase=\"'success'\" class=\"alert-icon alert-success alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-success-circular-line-left\"></div>\r\n <span class=\"alert-success-line-tip\"></span> <span class=\"alert-success-line-long\"></span>\r\n <div class=\"alert-success-ring\"></div>\r\n <div class=\"alert-success-fix\"></div>\r\n <div class=\"alert-success-circular-line-right\"></div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'error'\" class=\"alert-icon alert-error alert-icon-show\" style=\"display: flex;\">\r\n <span class=\"alert-x-mark\">\r\n <span class=\"alert-x-mark-line-left\"></span>\r\n <span class=\"alert-x-mark-line-right\"></span>\r\n </span>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'info'\" class=\"alert-icon alert-info alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">i</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'question'\" class=\"alert-icon alert-question alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">?</div>\r\n </div>\r\n\r\n\r\n <div *ngSwitchCase=\"'warning'\" class=\"alert-icon alert-warning alert-icon-show\" style=\"display: flex;\">\r\n <div class=\"alert-icon-content\">!</div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n <!-- --------- /icon -------- -->\r\n\r\n <div class=\"ngx-alert-title\">\r\n {{options.title}}\r\n </div>\r\n <div class=\"ngx-alert-body\">\r\n {{options.text}}\r\n <span [innerHTML]=\"options.html\"></span>\r\n </div>\r\n <div class=\"ngx-alert-footer\">\r\n <button *ngIf=\"options.showCancelButton\" class=\"btn-cancel\" (click)=\"onCancel()\"\r\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\r\n {{options.cancelButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showDenyButton\" class=\"btn-deny\" (click)=\"onDeny()\"\r\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\r\n {{options.denyButtonText}}\r\n </button>\r\n <button *ngIf=\"options.showConfirmButton\" class=\"btn-confirm\" (click)=\"onConfirm()\"\r\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\r\n {{options.confirmButtonText}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>","\r\nexport function applyDefaultConfig(config: any, defaultConfig: any): any {\r\n var config = JSON.parse(JSON.stringify(config));\r\n for (let key in defaultConfig) {\r\n if (config[key] === undefined || config[key] === null || config[key] === '') {\r\n config[key] = defaultConfig[key];\r\n } else if (typeof config[key] === 'object') {\r\n config[key] = applyDefaultConfig(config[key], defaultConfig[key]);\r\n }\r\n }\r\n return config;\r\n}\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Inject,\r\n Injectable,\r\n Injector,\r\n} from '@angular/core';\r\nimport { NGX_ALERT_CONFIG, defaultOptions } from '../models/AlertOptions';\r\nimport { IAlertOptions } from '../models/IAlertOptions';\r\nimport { NgxAlertModalComponent } from './ngx-alert-modal.component';\r\nimport { AlertResult } from '../models/alert-result';\r\nimport { applyDefaultConfig } from '../helper/apply-default';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NgxAlertModalService {\r\n currentAdIndex = -1;\r\n alerts: ComponentRef<NgxAlertModalComponent>[] = [];\r\n insertedId = 0;\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n @Inject(DOCUMENT) private _doc: Document,\r\n ) {}\r\n\r\n public show(config: IAlertOptions): Promise<AlertResult<any>> {\r\n let d = applyDefaultConfig(\r\n this.injector.get(NGX_ALERT_CONFIG, defaultOptions),\r\n defaultOptions,\r\n );\r\n config = applyDefaultConfig(config, d);\r\n return new Promise((resolve, reject) => {\r\n const componentFactory =\r\n this.componentFactoryResolver.resolveComponentFactory(\r\n NgxAlertModalComponent,\r\n );\r\n const componentRef = componentFactory.create(this.injector);\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n this.appendDialogComponentToBody(componentRef, config);\r\n componentRef.instance.options = config;\r\n componentRef.instance.index = this.insertedId;\r\n componentRef.instance.onClose.subscribe((result) => {\r\n this.removeDialogComponentFromBody(result.index);\r\n resolve(result.result);\r\n });\r\n this.alerts.push(componentRef);\r\n this.insertedId++;\r\n });\r\n }\r\n\r\n private removeDialogComponentFromBody(index: number): void {\r\n if (this.alerts[index]) {\r\n const domElem = (this.alerts[index].hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n // قبل از destroy باید hidePopover صدا بزنیم\r\n if (domElem.popover === 'manual') {\r\n try {\r\n domElem.hidePopover();\r\n } catch {}\r\n }\r\n\r\n this.appRef.detachView(this.alerts[index].hostView);\r\n this.alerts[index].destroy();\r\n }\r\n }\r\n\r\n private appendDialogComponentToBody(\r\n componentRef: ComponentRef<NgxAlertModalComponent>,\r\n config: IAlertOptions,\r\n ) {\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n if (config.containerClass) {\r\n for (let c of config.containerClass.split(' ')) {\r\n if (c.trim()) domElem.classList.add(c);\r\n }\r\n }\r\n this._doc.body.appendChild(domElem);\r\n if (config.useOverlay) {\r\n domElem.popover = 'manual';\r\n domElem.showPopover();\r\n }\r\n }\r\n\r\n closeAll() {\r\n for (let i = 0; i < this.alerts.length; i++) {\r\n this.removeDialogComponentFromBody(i);\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { IAlertOptions, NGX_ALERT_CONFIG } from \"./public-api\";\r\nimport { NgxAlertModalService } from \"./lib/ngx-alert-modal.service\";\r\n\r\n@NgModule({\r\n providers: [\r\n NgxAlertModalService\r\n ]\r\n})\r\nexport class NgxAlertModalModule {\r\n static forRoot(config: IAlertOptions): ModuleWithProviders<NgxAlertModalModule> {\r\n return {\r\n ngModule: NgxAlertModalModule,\r\n providers: [\r\n {\r\n provide: NGX_ALERT_CONFIG,\r\n useValue: config\r\n }\r\n ]\r\n }\r\n }\r\n}","/*\r\n * Public API Surface of ngx-alert-modal\r\n */\r\n\r\nexport * from './lib/ngx-alert-modal.service';\r\nexport * from './lib/ngx-alert-modal.component';\r\n\r\nexport * from './models/alert-result';\r\n\r\nexport * from './models/AlertOptions';\r\nexport * from './models/IAlertOptions';\r\n\r\nexport * from './ngx-alert-modal.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -8,6 +8,12 @@ declare const defaultOptions: AlertOptions;
8
8
  declare class AlertOptions implements IAlertOptions {
9
9
  private config?;
10
10
  constructor(config?: IAlertOptions | undefined);
11
+ /**
12
+ * add popover manual to set alert dialog container to top layer
13
+ * - usefull when using alert modal in angular material dialog
14
+ *
15
+ */
16
+ useOverlay?: boolean;
11
17
  title?: string;
12
18
  text?: string;
13
19
  html?: string | HTMLElement;
@@ -36,10 +42,16 @@ declare class AlertOptions implements IAlertOptions {
36
42
 
37
43
  interface IAlertOptions {
38
44
  /**
39
- * The title of the popup
40
- *
41
- * @default ''
42
- */
45
+ * add popover manual to set alert dialog container to top layer
46
+ * - usefull when using alert modal in angular material dialog
47
+ *
48
+ */
49
+ useOverlay?: boolean;
50
+ /**
51
+ * The title of the popup
52
+ *
53
+ * @default ''
54
+ */
43
55
  title?: string;
44
56
  /**
45
57
  * A description for the popup.
@@ -216,8 +228,8 @@ declare class NgxAlertModalComponent {
216
228
  index: number;
217
229
  result: AlertResult<any>;
218
230
  }>;
219
- onScapeKey(event: KeyboardEvent): void;
220
- onEnterKey(event: KeyboardEvent): void;
231
+ onScapeKey(event: Event): void;
232
+ onEnterKey(event: Event): void;
221
233
  onConfirm(): void;
222
234
  onCancel(): void;
223
235
  onDeny(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-alert-modal",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18",
6
6
  "@angular/core": ">=18"