ngx-snotifire 1.0.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.
Files changed (66) hide show
  1. package/README.md +19 -0
  2. package/esm2020/lib/components/buttons/buttons-config.interface.mjs +2 -0
  3. package/esm2020/lib/components/buttons/buttons.component.mjs +27 -0
  4. package/esm2020/lib/components/index.mjs +6 -0
  5. package/esm2020/lib/components/ngx-notifire/ngx-snotifire.component.mjs +130 -0
  6. package/esm2020/lib/components/prompt/prompt.component.mjs +26 -0
  7. package/esm2020/lib/components/toast/notifire-toast.model.mjs +61 -0
  8. package/esm2020/lib/components/toast/toast.component.mjs +186 -0
  9. package/esm2020/lib/decorators/set-toast-type.decorator.mjs +19 -0
  10. package/esm2020/lib/decorators/transform-argument.decorator.mjs +88 -0
  11. package/esm2020/lib/defaults/defaults.interface.mjs +2 -0
  12. package/esm2020/lib/defaults/global-config.interface.mjs +2 -0
  13. package/esm2020/lib/defaults/index.mjs +4 -0
  14. package/esm2020/lib/defaults/toast-defaults.mjs +68 -0
  15. package/esm2020/lib/models/index.mjs +7 -0
  16. package/esm2020/lib/models/snotifire-animate.interface.mjs +2 -0
  17. package/esm2020/lib/models/snotifire-config.interface.mjs +2 -0
  18. package/esm2020/lib/models/snotifire-event.type.mjs +14 -0
  19. package/esm2020/lib/models/snotifire-notifications.interface.mjs +2 -0
  20. package/esm2020/lib/models/snotifire-position.type.mjs +13 -0
  21. package/esm2020/lib/models/snotifire.model.mjs +26 -0
  22. package/esm2020/lib/models/snotifire.type.mjs +11 -0
  23. package/esm2020/lib/ngx-snotifire.module.mjs +38 -0
  24. package/esm2020/lib/pipes/index.mjs +3 -0
  25. package/esm2020/lib/pipes/keys.pipe.mjs +23 -0
  26. package/esm2020/lib/pipes/truncate.pipe.mjs +27 -0
  27. package/esm2020/lib/services/index.mjs +2 -0
  28. package/esm2020/lib/services/notification.service.mjs +274 -0
  29. package/esm2020/lib/utils.mjs +41 -0
  30. package/esm2020/ngx-snotifire.mjs +5 -0
  31. package/esm2020/public-api.mjs +10 -0
  32. package/fesm2015/ngx-snotifire.mjs +1038 -0
  33. package/fesm2015/ngx-snotifire.mjs.map +1 -0
  34. package/fesm2020/ngx-snotifire.mjs +1039 -0
  35. package/fesm2020/ngx-snotifire.mjs.map +1 -0
  36. package/index.d.ts +5 -0
  37. package/lib/components/buttons/buttons-config.interface.d.ts +17 -0
  38. package/lib/components/buttons/buttons.component.d.ts +17 -0
  39. package/lib/components/index.d.ts +5 -0
  40. package/lib/components/ngx-notifire/ngx-snotifire.component.d.ts +61 -0
  41. package/lib/components/prompt/prompt.component.d.ts +17 -0
  42. package/lib/components/toast/notifire-toast.model.d.ts +42 -0
  43. package/lib/components/toast/toast.component.d.ts +64 -0
  44. package/lib/decorators/set-toast-type.decorator.d.ts +10 -0
  45. package/lib/decorators/transform-argument.decorator.d.ts +10 -0
  46. package/lib/defaults/defaults.interface.d.ts +12 -0
  47. package/lib/defaults/global-config.interface.d.ts +34 -0
  48. package/lib/defaults/index.d.ts +3 -0
  49. package/lib/defaults/toast-defaults.d.ts +73 -0
  50. package/lib/models/index.d.ts +6 -0
  51. package/lib/models/snotifire-animate.interface.d.ts +19 -0
  52. package/lib/models/snotifire-config.interface.d.ts +82 -0
  53. package/lib/models/snotifire-event.type.d.ts +12 -0
  54. package/lib/models/snotifire-notifications.interface.d.ts +12 -0
  55. package/lib/models/snotifire-position.type.d.ts +11 -0
  56. package/lib/models/snotifire.model.d.ts +39 -0
  57. package/lib/models/snotifire.type.d.ts +9 -0
  58. package/lib/ngx-snotifire.module.d.ts +15 -0
  59. package/lib/pipes/index.d.ts +2 -0
  60. package/lib/pipes/keys.pipe.d.ts +7 -0
  61. package/lib/pipes/truncate.pipe.d.ts +9 -0
  62. package/lib/services/index.d.ts +1 -0
  63. package/lib/services/notification.service.d.ts +264 -0
  64. package/lib/utils.d.ts +17 -0
  65. package/package.json +31 -0
  66. package/public-api.d.ts +6 -0
package/README.md ADDED
@@ -0,0 +1,19 @@
1
+ # NgxSnotifire
2
+
3
+ Demo project at [https://ccpatrut.github.io/ngx-snotifire/](https://ccpatrut.github.io/ngx-snotifire/)
4
+
5
+ ## Features
6
+
7
+ - 8 types of toast notifications
8
+ - Ability to create toasts in different positions at the same time
9
+ - Many config options (icons, backdrop, timeout, position and much more)
10
+ - Custom fully controlled styling including animations
11
+ - Repository includes 3 different styles. So you can use on of them, or create your own
12
+ - Callbacks
13
+ - Custom HTML
14
+
15
+ ## Instalation
16
+
17
+ NPM
18
+
19
+ `npm install ngx-snotifire`
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b25zLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdGlmaXJlTW9kZWwgfSBmcm9tICcuLi90b2FzdC9ub3RpZmlyZS10b2FzdC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uc0NvbmZpZyB7XG4gIC8qKlxuICAgKiBCdXR0b24gdGV4dFxuICAgKi9cbiAgdGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgYnV0dG9ucyB0ZXh0IGJlIGJvbGQuXG4gICAqL1xuICBib2xkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGFmdGVyIGJ1dHRvbnMgY2xpY2tcbiAgICogQHBhcmFtIHRleHQ/IHN0cmluZ1xuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBhY3Rpb24/OiAodG9hc3Q6IE5vdGlmaXJlTW9kZWwpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services";
4
+ import * as i2 from "@angular/common";
5
+ /**
6
+ * Buttons component
7
+ */
8
+ export class ButtonsComponent {
9
+ constructor(service) {
10
+ this.service = service;
11
+ }
12
+ /**
13
+ * remove toast
14
+ */
15
+ remove() {
16
+ this.service.remove(this.toast.id);
17
+ }
18
+ }
19
+ ButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ButtonsComponent, deps: [{ token: i1.SnotificationService }], target: i0.ɵɵFactoryTarget.Component });
20
+ ButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ButtonsComponent, selector: "notifire-button", inputs: { toast: "toast" }, ngImport: i0, template: "<div class=\"notifire-toast__buttons\">\n <ng-container *ngIf=\"toast.config\">\n <button\n type=\"button\"\n *ngFor=\"let button of toast.config.buttons\"\n [ngClass]=\"{ 'notifire-toast__buttons--bold': button.bold }\"\n (click)=\"button.action ? button.action(toast) : remove()\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ButtonsComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'notifire-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"notifire-toast__buttons\">\n <ng-container *ngIf=\"toast.config\">\n <button\n type=\"button\"\n *ngFor=\"let button of toast.config.buttons\"\n [ngClass]=\"{ 'notifire-toast__buttons--bold': button.bold }\"\n (click)=\"button.action ? button.action(toast) : remove()\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n</div>\n" }]
24
+ }], ctorParameters: function () { return [{ type: i1.SnotificationService }]; }, propDecorators: { toast: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQTZCLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQztJQUU5RDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OzhHQWJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1GQ25CN0IsOGFBWUE7NEZET2EsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNFLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzJHQVM1QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RpZmlyZU1vZGVsIH0gZnJvbSAnLi4vdG9hc3Qvbm90aWZpcmUtdG9hc3QubW9kZWwnO1xuaW1wb3J0IHsgU25vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdGlmaXJlLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b25zLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuLyoqXG4gKiBCdXR0b25zIGNvbXBvbmVudFxuICovXG5leHBvcnQgY2xhc3MgQnV0dG9uc0NvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBHZXQgYnV0dG9ucyBBcnJheVxuICAgKi9cbiAgQElucHV0KCkgdG9hc3QhOiBOb3RpZmlyZU1vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogU25vdGlmaWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIHJlbW92ZSB0b2FzdFxuICAgKi9cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMuc2VydmljZS5yZW1vdmUodGhpcy50b2FzdC5pZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9fYnV0dG9uc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b2FzdC5jb25maWdcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHRvYXN0LmNvbmZpZy5idXR0b25zXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ25vdGlmaXJlLXRvYXN0X19idXR0b25zLS1ib2xkJzogYnV0dG9uLmJvbGQgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uLmFjdGlvbiA/IGJ1dHRvbi5hY3Rpb24odG9hc3QpIDogcmVtb3ZlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBidXR0b24udGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './buttons/buttons.component';
2
+ export * from './prompt/prompt.component';
3
+ export * from './ngx-notifire/ngx-snotifire.component';
4
+ export * from './toast/toast.component';
5
+ export * from './toast/notifire-toast.model';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1dHRvbnMvYnV0dG9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9tcHQvcHJvbXB0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25neC1ub3RpZmlyZS9uZ3gtc25vdGlmaXJlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbiJdfQ==
@@ -0,0 +1,130 @@
1
+ import { Component, ViewEncapsulation, } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { SnotifireEventType, SnotificationPositionType } from '../../models';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../toast/toast.component";
8
+ import * as i4 from "../../pipes/keys.pipe";
9
+ export class NgxSnotifireComponent {
10
+ constructor(service) {
11
+ this.service = service;
12
+ this.unsubscribe$ = new Subject();
13
+ /**
14
+ * Backdrop Opacity
15
+ */
16
+ this.backdrop = -1;
17
+ /**
18
+ * How many toasts with backdrop in current queue
19
+ */
20
+ this.withBackdrop = [];
21
+ }
22
+ ngAfterViewInit() { }
23
+ ngOnInit() {
24
+ this.service.emitter
25
+ .pipe(takeUntil(this.unsubscribe$))
26
+ .subscribe((toasts) => {
27
+ if (this.service.defaultConfig &&
28
+ this.service.defaultConfig.global &&
29
+ this.service.defaultConfig.global.newOnTop) {
30
+ this.dockSizeA = this.service.defaultConfig.global.maxOnScreen
31
+ ? -this.service.defaultConfig.global.maxOnScreen
32
+ : 6;
33
+ this.dockSizeB = undefined;
34
+ this.blockSizeA = this.service.defaultConfig.global.maxAtPosition
35
+ ? -this.service.defaultConfig.global.maxAtPosition
36
+ : 4;
37
+ this.blockSizeB = undefined;
38
+ this.withBackdrop = toasts.filter((toast) => toast.config &&
39
+ toast.config.backdrop &&
40
+ toast.config.backdrop >= 0);
41
+ }
42
+ else {
43
+ this.dockSizeA = 0;
44
+ this.dockSizeB =
45
+ this.service.defaultConfig.global &&
46
+ this.service.defaultConfig.global.maxOnScreen;
47
+ this.blockSizeA = 0;
48
+ this.blockSizeB =
49
+ this.service.defaultConfig.global &&
50
+ this.service.defaultConfig.global.maxAtPosition;
51
+ this.withBackdrop = toasts
52
+ .filter((toast) => toast.config &&
53
+ toast.config.backdrop &&
54
+ toast.config.backdrop >= 0)
55
+ .reverse();
56
+ }
57
+ this.notifications = this.splitToasts(toasts.slice(this.dockSizeA, this.dockSizeB));
58
+ this.stateChanged(SnotifireEventType.MOUNTED);
59
+ });
60
+ }
61
+ /**
62
+ * Split toasts toasts into different objects
63
+ * @param toasts notifire-toast[]
64
+ * @returns SnotifyNotifications
65
+ */
66
+ splitToasts(toasts) {
67
+ const result = {};
68
+ for (const property in SnotificationPositionType) {
69
+ if (SnotificationPositionType.hasOwnProperty(property)) {
70
+ result[SnotificationPositionType[property]] = [];
71
+ }
72
+ }
73
+ toasts.forEach((toast) => {
74
+ if (toast.config.position) {
75
+ const keyIndex = Object.keys(SnotificationPositionType).indexOf(toast.config.position);
76
+ const searchedString = Object.values(SnotificationPositionType)[keyIndex];
77
+ result[searchedString]?.push(toast);
78
+ }
79
+ });
80
+ console.log(result);
81
+ return result;
82
+ }
83
+ getNotificationArray(notifications, position) {
84
+ return notifications[position];
85
+ }
86
+ /**
87
+ * Changes the backdrop opacity
88
+ * @param event NotificationEventType
89
+ */
90
+ stateChanged(event) {
91
+ if (!this.withBackdrop.length) {
92
+ if (this.backdrop && this.backdrop >= 0) {
93
+ this.backdrop = -1;
94
+ }
95
+ return;
96
+ }
97
+ switch (event) {
98
+ case 'mounted':
99
+ if (this.backdrop && this.backdrop < 0) {
100
+ this.backdrop = 0;
101
+ }
102
+ break;
103
+ case 'beforeShow':
104
+ this.backdrop =
105
+ this.withBackdrop[this.withBackdrop.length - 1].config?.backdrop;
106
+ break;
107
+ case 'beforeHide':
108
+ if (this.withBackdrop.length === 1) {
109
+ this.backdrop = 0;
110
+ }
111
+ break;
112
+ case 'hidden':
113
+ if (this.withBackdrop.length === 1) {
114
+ this.backdrop = -1;
115
+ }
116
+ break;
117
+ }
118
+ }
119
+ ngOnDestroy() {
120
+ this.unsubscribe$.next();
121
+ this.unsubscribe$.complete();
122
+ }
123
+ }
124
+ NgxSnotifireComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireComponent, deps: [{ token: i1.SnotificationService }], target: i0.ɵɵFactoryTarget.Component });
125
+ NgxSnotifireComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: NgxSnotifireComponent, selector: "ngx-snotifire", ngImport: i0, template: "<div\n class=\"snotifire-backdrop\"\n *ngIf=\"backdrop && backdrop >= 0\"\n [style.opacity]=\"backdrop\"\n></div>\n\n<div\n *ngFor=\"let position of notifications | keys\"\n class=\"snotify snotify-{{ position }}\"\n>\n <ngx-toast\n *ngFor=\"let notification of getNotificationArray(notifications, position) | slice: blockSizeA:blockSizeB\"\n [toast]=\"notification\"\n (stateChanged)=\"stateChanged($event)\"\n >\n </ngx-toast>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ToastComponent, selector: "ngx-toast", inputs: ["toast"], outputs: ["stateChanged"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i4.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireComponent, decorators: [{
127
+ type: Component,
128
+ args: [{ selector: 'ngx-snotifire', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"snotifire-backdrop\"\n *ngIf=\"backdrop && backdrop >= 0\"\n [style.opacity]=\"backdrop\"\n></div>\n\n<div\n *ngFor=\"let position of notifications | keys\"\n class=\"snotify snotify-{{ position }}\"\n>\n <ngx-toast\n *ngFor=\"let notification of getNotificationArray(notifications, position) | slice: blockSizeA:blockSizeB\"\n [toast]=\"notification\"\n (stateChanged)=\"stateChanged($event)\"\n >\n </ngx-toast>\n\n</div>\n" }]
129
+ }], ctorParameters: function () { return [{ type: i1.SnotificationService }]; } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNub3RpZmlyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFVN0UsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFBcUIsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFsQ2pDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQXlCcEQ7O1dBRUc7UUFDSCxhQUFRLEdBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDOztXQUVHO1FBQ0gsaUJBQVksR0FBb0IsRUFBRSxDQUFDO0lBRWtCLENBQUM7SUFDdEQsZUFBZSxLQUFVLENBQUM7SUFFMUIsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzthQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUU7WUFDckMsSUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU07Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQzFDO2dCQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVc7b0JBQzVELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXO29CQUNoRCxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUMvRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYTtvQkFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMvQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsS0FBSyxDQUFDLE1BQU07b0JBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRO29CQUNyQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQzdCLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFNBQVM7b0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTTt3QkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVO29CQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU07d0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTTtxQkFDdkIsTUFBTSxDQUNMLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFLLENBQUMsTUFBTTtvQkFDWixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQ3JCLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FDN0I7cUJBQ0EsT0FBTyxFQUFFLENBQUM7YUFDZDtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FDbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDN0MsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxNQUF1QjtRQUNqQyxNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO1FBRTFDLEtBQUssTUFBTSxRQUFRLElBQUkseUJBQXlCLEVBQUU7WUFDaEQsSUFBSSx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RELE1BQU0sQ0FDSix5QkFBeUIsQ0FDdkIsUUFBa0QsQ0FDbkQsQ0FDRixHQUFHLEVBQUUsQ0FBQzthQUNSO1NBQ0Y7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ3RDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxPQUFPLENBQzdELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUN0QixDQUFDO2dCQUNGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FDN0QsUUFBUSxDQUNULENBQUM7Z0JBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLGFBQXFDLEVBQ3JDLFFBQW1DO1FBRW5DLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsS0FBeUI7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNwQjtZQUNELE9BQU87U0FDUjtRQUNELFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxTQUFTO2dCQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7aUJBQ25CO2dCQUNELE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxDQUFDLFFBQVE7b0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2dCQUNuRSxNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztpQkFDbkI7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDcEI7Z0JBQ0QsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7bUhBbktVLHFCQUFxQjt1R0FBckIscUJBQXFCLHFEQ2xCbEMsdWVBa0JBOzRGREFhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlLGlCQUVWLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU25vdGlmaXJlRXZlbnRUeXBlLCBTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNub3RpZmlyZU5vdGlmaWNhdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc25vdGlmaXJlLW5vdGlmaWNhdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vdGlmaXJlTW9kZWwgfSBmcm9tICcuLi90b2FzdC9ub3RpZmlyZS10b2FzdC5tb2RlbCc7XG5pbXBvcnQgeyBTbm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXNub3RpZmlyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3gtc25vdGlmaXJlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4U25vdGlmaXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIC8qKlxuICAgKiBUb2FzdHMgYXJyYXlcbiAgICovXG4gIG5vdGlmaWNhdGlvbnMhOiBTbm90aWZpcmVOb3RpZmljYXRpb25zO1xuICAvKipcbiAgICogVG9hc3RzIGVtaXR0ZXJcbiAgICovXG4gIGVtaXR0ZXIhOiBTdWJzY3JpcHRpb247XG4gIC8qKlxuICAgKiBIZWxwZXIgZm9yIHNsaWNlIHBpcGUgKG1heE9uU2NyZWVuKVxuICAgKi9cbiAgZG9ja1NpemVBITogbnVtYmVyO1xuICAvKipcbiAgICogSGVscGVyIGZvciBzbGljZSBwaXBlIChtYXhPblNjcmVlbilcbiAgICovXG4gIGRvY2tTaXplQiE6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEhlbHBlciBmb3Igc2xpY2UgcGlwZSAobWF4QXRQb3NpdGlvbilcbiAgICovXG4gIGJsb2NrU2l6ZUEhOiBudW1iZXI7XG4gIC8qKlxuICAgKiBIZWxwZXIgZm9yIHNsaWNlIHBpcGUgKG1heEF0UG9zaXRpb24pXG4gICAqL1xuICBibG9ja1NpemVCITogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQmFja2Ryb3AgT3BhY2l0eVxuICAgKi9cbiAgYmFja2Ryb3A6IG51bWJlciB8IHVuZGVmaW5lZCA9IC0xO1xuICAvKipcbiAgICogSG93IG1hbnkgdG9hc3RzIHdpdGggYmFja2Ryb3AgaW4gY3VycmVudCBxdWV1ZVxuICAgKi9cbiAgd2l0aEJhY2tkcm9wOiBOb3RpZmlyZU1vZGVsW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzZXJ2aWNlOiBTbm90aWZpY2F0aW9uU2VydmljZSkge31cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZW1pdHRlclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRvYXN0czogTm90aWZpcmVNb2RlbFtdKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZyAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5uZXdPblRvcFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmRvY2tTaXplQSA9IHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhPblNjcmVlblxuICAgICAgICAgICAgPyAtdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuXG4gICAgICAgICAgICA6IDY7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVBID0gdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb25cbiAgICAgICAgICAgID8gLXRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhBdFBvc2l0aW9uXG4gICAgICAgICAgICA6IDQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRoaXMud2l0aEJhY2tkcm9wID0gdG9hc3RzLmZpbHRlcihcbiAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgdG9hc3QuY29uZmlnICYmXG4gICAgICAgICAgICAgIHRvYXN0LmNvbmZpZy5iYWNrZHJvcCAmJlxuICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUEgPSAwO1xuICAgICAgICAgIHRoaXMuZG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuO1xuICAgICAgICAgIHRoaXMuYmxvY2tTaXplQSA9IDA7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb247XG4gICAgICAgICAgdGhpcy53aXRoQmFja2Ryb3AgPSB0b2FzdHNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLnNwbGl0VG9hc3RzKFxuICAgICAgICAgIHRvYXN0cy5zbGljZSh0aGlzLmRvY2tTaXplQSwgdGhpcy5kb2NrU2l6ZUIpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VkKFNub3RpZmlyZUV2ZW50VHlwZS5NT1VOVEVEKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRvYXN0cyB0b2FzdHMgaW50byBkaWZmZXJlbnQgb2JqZWN0c1xuICAgKiBAcGFyYW0gdG9hc3RzIG5vdGlmaXJlLXRvYXN0W11cbiAgICogQHJldHVybnMgU25vdGlmeU5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHNwbGl0VG9hc3RzKHRvYXN0czogTm90aWZpcmVNb2RlbFtdKTogU25vdGlmaXJlTm90aWZpY2F0aW9ucyB7XG4gICAgY29uc3QgcmVzdWx0OiBTbm90aWZpcmVOb3RpZmljYXRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpIHtcbiAgICAgIGlmIChTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICByZXN1bHRbXG4gICAgICAgICAgU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZVtcbiAgICAgICAgICAgIHByb3BlcnR5IGFzIGtleW9mIHR5cGVvZiBTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlXG4gICAgICAgICAgXVxuICAgICAgICBdID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdG9hc3RzLmZvckVhY2goKHRvYXN0OiBOb3RpZmlyZU1vZGVsKSA9PiB7XG4gICAgICBpZiAodG9hc3QuY29uZmlnLnBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IGtleUluZGV4ID0gT2JqZWN0LmtleXMoU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZSkuaW5kZXhPZihcbiAgICAgICAgICB0b2FzdC5jb25maWcucG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoZWRTdHJpbmcgPSBPYmplY3QudmFsdWVzKFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpW1xuICAgICAgICAgIGtleUluZGV4XG4gICAgICAgIF07XG4gICAgICAgIHJlc3VsdFtzZWFyY2hlZFN0cmluZ10/LnB1c2godG9hc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkFycmF5KFxuICAgIG5vdGlmaWNhdGlvbnM6IFNub3RpZmlyZU5vdGlmaWNhdGlvbnMsXG4gICAgcG9zaXRpb246IFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGVcbiAgKTogTm90aWZpcmVNb2RlbFtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbm90aWZpY2F0aW9uc1twb3NpdGlvbl07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgYmFja2Ryb3Agb3BhY2l0eVxuICAgKiBAcGFyYW0gZXZlbnQgTm90aWZpY2F0aW9uRXZlbnRUeXBlXG4gICAqL1xuICBzdGF0ZUNoYW5nZWQoZXZlbnQ6IFNub3RpZmlyZUV2ZW50VHlwZSkge1xuICAgIGlmICghdGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5iYWNrZHJvcCAmJiB0aGlzLmJhY2tkcm9wID49IDApIHtcbiAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdtb3VudGVkJzpcbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgJiYgdGhpcy5iYWNrZHJvcCA8IDApIHtcbiAgICAgICAgICB0aGlzLmJhY2tkcm9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZVNob3cnOlxuICAgICAgICB0aGlzLmJhY2tkcm9wID1cbiAgICAgICAgICB0aGlzLndpdGhCYWNrZHJvcFt0aGlzLndpdGhCYWNrZHJvcC5sZW5ndGggLSAxXS5jb25maWc/LmJhY2tkcm9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZUhpZGUnOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaWRkZW4nOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJzbm90aWZpcmUtYmFja2Ryb3BcIlxuICAgICpuZ0lmPVwiYmFja2Ryb3AgJiYgYmFja2Ryb3AgPj0gMFwiXG4gICAgW3N0eWxlLm9wYWNpdHldPVwiYmFja2Ryb3BcIlxuPjwvZGl2PlxuXG48ZGl2XG4gICAgKm5nRm9yPVwibGV0IHBvc2l0aW9uIG9mIG5vdGlmaWNhdGlvbnMgfCBrZXlzXCJcbiAgICBjbGFzcz1cInNub3RpZnkgc25vdGlmeS17eyBwb3NpdGlvbiB9fVwiXG4+XG4gICAgPG5neC10b2FzdFxuICAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIGdldE5vdGlmaWNhdGlvbkFycmF5KG5vdGlmaWNhdGlvbnMsIHBvc2l0aW9uKSB8IHNsaWNlOiBibG9ja1NpemVBOmJsb2NrU2l6ZUJcIlxuICAgICAgICBbdG9hc3RdPVwibm90aWZpY2F0aW9uXCJcbiAgICAgICAgKHN0YXRlQ2hhbmdlZCk9XCJzdGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvbmd4LXRvYXN0PlxuXG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
2
+ import { SnotifireEventType } from '../../models';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../pipes/truncate.pipe";
6
+ export class PromptComponent {
7
+ constructor() {
8
+ this.inputType = SnotifireEventType.INPUT;
9
+ /**
10
+ * Is PROMPT focused
11
+ */
12
+ this.isPromptFocused = false;
13
+ }
14
+ getValue($event) {
15
+ return $event.target.value;
16
+ }
17
+ }
18
+ PromptComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ PromptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: PromptComponent, selector: "ngx-snotify-prompt", inputs: { toast: "toast" }, ngImport: i0, template: "<span\n class=\"notifire-toast__input\"\n [ngClass]=\"{ 'notifire-toast__input--filled': isPromptFocused }\"\n>\n <input\n (input)=\"toast.value = getValue($event); toast.eventEmitter.next(inputType)\"\n autofocus\n class=\"notifire-toast__input__field\"\n type=\"text\"\n [id]=\"toast.id\"\n (focus)=\"isPromptFocused = true\"\n (blur)=\"isPromptFocused = !!toast.value && !!toast.value.length\"\n >\n <label\n class=\"notifire-toast__input__label\"\n [for]=\"toast.id\"\n >\n <span\n class=\"notifire-toast__input__labelContent\"\n *ngIf=\"toast.config && toast.config.placeholder \"\n >\n {{ toast.config.placeholder | truncate }}\n </span>\n </label>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PromptComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'ngx-snotify-prompt', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span\n class=\"notifire-toast__input\"\n [ngClass]=\"{ 'notifire-toast__input--filled': isPromptFocused }\"\n>\n <input\n (input)=\"toast.value = getValue($event); toast.eventEmitter.next(inputType)\"\n autofocus\n class=\"notifire-toast__input__field\"\n type=\"text\"\n [id]=\"toast.id\"\n (focus)=\"isPromptFocused = true\"\n (blur)=\"isPromptFocused = !!toast.value && !!toast.value.length\"\n >\n <label\n class=\"notifire-toast__input__label\"\n [for]=\"toast.id\"\n >\n <span\n class=\"notifire-toast__input__labelContent\"\n *ngIf=\"toast.config && toast.config.placeholder \"\n >\n {{ toast.config.placeholder | truncate }}\n </span>\n </label>\n</span>\n" }]
23
+ }], propDecorators: { toast: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbm90aWZpcmUvc3JjL2xpYi9jb21wb25lbnRzL3Byb21wdC9wcm9tcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvbXB0L3Byb21wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQVNsRCxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9FLGNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFLckM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztLQUt6QjtJQUhDLFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7NkdBYlUsZUFBZTtpR0FBZixlQUFlLHNGQ2hCNUIscXlCQXlCQTs0RkRUYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU81QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTm90aWZpcmVNb2RlbCB9IGZyb20gJy4uL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXNub3RpZnktcHJvbXB0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21wdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb21wb25lbnQge1xuICBpbnB1dFR5cGUgPSBTbm90aWZpcmVFdmVudFR5cGUuSU5QVVQ7XG4gIC8qKlxuICAgKiBHZXQgUFJPTVBUIHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IE5vdGlmaXJlTW9kZWw7XG4gIC8qKlxuICAgKiBJcyBQUk9NUFQgZm9jdXNlZFxuICAgKi9cbiAgaXNQcm9tcHRGb2N1c2VkID0gZmFsc2U7XG5cbiAgZ2V0VmFsdWUoJGV2ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG59XG4iLCI8c3BhblxuICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lucHV0XCJcbiAgICBbbmdDbGFzc109XCJ7ICdub3RpZmlyZS10b2FzdF9faW5wdXQtLWZpbGxlZCc6IGlzUHJvbXB0Rm9jdXNlZCB9XCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgKGlucHV0KT1cInRvYXN0LnZhbHVlID0gZ2V0VmFsdWUoJGV2ZW50KTsgdG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoaW5wdXRUeXBlKVwiXG4gICAgICAgIGF1dG9mb2N1c1xuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fZmllbGRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpZF09XCJ0b2FzdC5pZFwiXG4gICAgICAgIChmb2N1cyk9XCJpc1Byb21wdEZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgKGJsdXIpPVwiaXNQcm9tcHRGb2N1c2VkID0gISF0b2FzdC52YWx1ZSAmJiAhIXRvYXN0LnZhbHVlLmxlbmd0aFwiXG4gICAgPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxcIlxuICAgICAgICBbZm9yXT1cInRvYXN0LmlkXCJcbiAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxDb250ZW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnICYmIHRvYXN0LmNvbmZpZy5wbGFjZWhvbGRlciBcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0b2FzdC5jb25maWcucGxhY2Vob2xkZXIgfCB0cnVuY2F0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbjwvc3Bhbj5cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { Subject } from 'rxjs';
2
+ import { SnotifireEventType } from '../../models/snotifire-event.type';
3
+ import { SnotifireType } from '../../models/snotifire.type';
4
+ /**
5
+ * Toast main model
6
+ */
7
+ export class NotifireModel {
8
+ constructor(id, title, body, config) {
9
+ this.id = id;
10
+ this.title = title;
11
+ this.body = body;
12
+ this.config = config;
13
+ /**
14
+ * Emits NotifireEventType
15
+ */
16
+ this.eventEmitter = new Subject();
17
+ /**
18
+ * Holds all subscribers because we need to unsubscribe from all before toast get destroyed
19
+ */
20
+ this.eventsHolder = [];
21
+ /**
22
+ * Toast validator
23
+ */
24
+ this.valid = true;
25
+ if (this.config && this.config.type === SnotifireType.PROMPT) {
26
+ this.value = '';
27
+ }
28
+ this.on(SnotifireEventType.HIDDEN, () => {
29
+ this.eventsHolder.forEach((subscription) => {
30
+ subscription.unsubscribe();
31
+ });
32
+ });
33
+ }
34
+ /**
35
+ * Subscribe to toast events
36
+ * @returns this
37
+ * @param event NotificationEventType
38
+ * @param action (toast: this) => void
39
+ */
40
+ on(event, action) {
41
+ this.eventsHolder.push(this.eventEmitter.subscribe((e) => {
42
+ if (e === event) {
43
+ action(this);
44
+ }
45
+ }));
46
+ return this;
47
+ }
48
+ /**
49
+ * Tests if a toast equals this toast.
50
+ * @returns boolean true then equals else false.
51
+ * @param toast notifire-toast
52
+ */
53
+ equals(toast) {
54
+ return this.config && toast.config
55
+ ? this.body === toast.body &&
56
+ this.title === toast.title &&
57
+ this.config.type === toast.config.type
58
+ : this.body === toast.body && this.title === toast.title;
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpcmUtdG9hc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy90b2FzdC9ub3RpZmlyZS10b2FzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQXFCeEIsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixJQUFZLEVBQ1osTUFBdUI7UUFIdkIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUF4QnpDOztXQUVHO1FBQ00saUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUUxRDs7V0FFRztRQUNLLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQU8xQzs7V0FFRztRQUNILFVBQUssR0FBWSxJQUFJLENBQUM7UUFRcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7Z0JBQ3ZELFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsRUFBRSxDQUFDLEtBQXlCLEVBQUUsTUFBNkI7UUFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBcUIsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTtnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTTtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSTtnQkFDdEIsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU25vdGlmaXJlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nub3RpZmlyZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNub3RpZmlyZUV2ZW50VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9zbm90aWZpcmUtZXZlbnQudHlwZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nub3RpZmlyZS50eXBlJztcblxuLyoqXG4gKiBUb2FzdCBtYWluIG1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RpZmlyZU1vZGVsIHtcbiAgLyoqXG4gICAqIEVtaXRzIE5vdGlmaXJlRXZlbnRUeXBlXG4gICAqL1xuICByZWFkb25seSBldmVudEVtaXR0ZXIgPSBuZXcgU3ViamVjdDxTbm90aWZpcmVFdmVudFR5cGU+KCk7XG5cbiAgLyoqXG4gICAqIEhvbGRzIGFsbCBzdWJzY3JpYmVycyBiZWNhdXNlIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgYmVmb3JlIHRvYXN0IGdldCBkZXN0cm95ZWRcbiAgICovXG4gIHByaXZhdGUgZXZlbnRzSG9sZGVyOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUb2FzdCBwcm9tcHQgdmFsdWVcbiAgICovXG4gIHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUb2FzdCB2YWxpZGF0b3JcbiAgICovXG4gIHZhbGlkOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IG51bWJlcixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGl0bGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgYm9keTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApIHtcbiAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcudHlwZSA9PT0gU25vdGlmaXJlVHlwZS5QUk9NUFQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9XG4gICAgdGhpcy5vbihTbm90aWZpcmVFdmVudFR5cGUuSElEREVOLCAoKSA9PiB7XG4gICAgICB0aGlzLmV2ZW50c0hvbGRlci5mb3JFYWNoKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gdG9hc3QgZXZlbnRzXG4gICAqIEByZXR1cm5zIHRoaXNcbiAgICogQHBhcmFtIGV2ZW50IE5vdGlmaWNhdGlvbkV2ZW50VHlwZVxuICAgKiBAcGFyYW0gYWN0aW9uICh0b2FzdDogdGhpcykgPT4gdm9pZFxuICAgKi9cbiAgb24oZXZlbnQ6IFNub3RpZmlyZUV2ZW50VHlwZSwgYWN0aW9uOiAodG9hc3Q6IHRoaXMpID0+IHZvaWQpOiB0aGlzIHtcbiAgICB0aGlzLmV2ZW50c0hvbGRlci5wdXNoKFxuICAgICAgdGhpcy5ldmVudEVtaXR0ZXIuc3Vic2NyaWJlKChlOiBTbm90aWZpcmVFdmVudFR5cGUpID0+IHtcbiAgICAgICAgaWYgKGUgPT09IGV2ZW50KSB7XG4gICAgICAgICAgYWN0aW9uKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGVzdHMgaWYgYSB0b2FzdCBlcXVhbHMgdGhpcyB0b2FzdC5cbiAgICogQHJldHVybnMgYm9vbGVhbiB0cnVlIHRoZW4gZXF1YWxzIGVsc2UgZmFsc2UuXG4gICAqIEBwYXJhbSB0b2FzdCBub3RpZmlyZS10b2FzdFxuICAgKi9cbiAgZXF1YWxzKHRvYXN0OiBOb3RpZmlyZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRvYXN0LmNvbmZpZ1xuICAgICAgPyB0aGlzLmJvZHkgPT09IHRvYXN0LmJvZHkgJiZcbiAgICAgICAgICB0aGlzLnRpdGxlID09PSB0b2FzdC50aXRsZSAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLnR5cGUgPT09IHRvYXN0LmNvbmZpZy50eXBlXG4gICAgICA6IHRoaXMuYm9keSA9PT0gdG9hc3QuYm9keSAmJiB0aGlzLnRpdGxlID09PSB0b2FzdC50aXRsZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,186 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { SnotifireEventType, SnotifireType } from '../../models';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../prompt/prompt.component";
8
+ import * as i4 from "../buttons/buttons.component";
9
+ import * as i5 from "../../pipes/truncate.pipe";
10
+ export class ToastComponent {
11
+ constructor(service) {
12
+ this.service = service;
13
+ this.unsubscribe$ = new Subject();
14
+ this.stateChanged = new EventEmitter();
15
+ /**
16
+ * Toast state
17
+ */
18
+ this.state = {
19
+ paused: false,
20
+ progress: 0,
21
+ animation: '',
22
+ isDestroying: false,
23
+ promptType: SnotifireType.PROMPT,
24
+ };
25
+ }
26
+ ngOnInit() {
27
+ this.service.toastChanged
28
+ .pipe(takeUntil(this.unsubscribe$))
29
+ .subscribe((toast) => {
30
+ console.log('toast');
31
+ if (this.toast.id === toast.id) {
32
+ this.initToast();
33
+ }
34
+ });
35
+ this.service.toastDeleted
36
+ .pipe(takeUntil(this.unsubscribe$))
37
+ .subscribe((id) => {
38
+ if (this.toast.id === id) {
39
+ this.onRemove();
40
+ }
41
+ });
42
+ if (this.toast && this.toast.config && !this.toast.config.timeout) {
43
+ this.toast.config.showProgressBar = false;
44
+ }
45
+ this.toast.eventEmitter.next(SnotifireEventType.MOUNTED);
46
+ this.state.animation = 'notifire-toast--in';
47
+ }
48
+ ngAfterContentInit() {
49
+ if (this.service.defaultConfig.snotifireConfig &&
50
+ this.service.defaultConfig.snotifireConfig.animation) {
51
+ setTimeout(() => {
52
+ this.stateChanged.emit(SnotifireEventType.BEFORE_SHOW);
53
+ this.toast.eventEmitter.next(SnotifireEventType.BEFORE_SHOW);
54
+ this.state.animation =
55
+ this.toast.config &&
56
+ this.toast.config.animation &&
57
+ this.toast.config.animation.enter
58
+ ? this.toast.config.animation.enter
59
+ : '';
60
+ }, this.service.defaultConfig.snotifireConfig.animation.time / 5); // time to show toast push animation (notifire-toast--in)
61
+ }
62
+ }
63
+ /**
64
+ * Trigger beforeDestroy lifecycle. Removes toast
65
+ */
66
+ onRemove() {
67
+ this.state.isDestroying = true;
68
+ this.toast.eventEmitter.next(SnotifireEventType.BEFORE_HIDE);
69
+ this.stateChanged.emit(SnotifireEventType.BEFORE_HIDE);
70
+ this.state.animation =
71
+ (this.toast.config &&
72
+ this.toast.config.animation &&
73
+ this.toast.config.animation.exit) ||
74
+ '';
75
+ setTimeout(() => {
76
+ this.stateChanged.emit(SnotifireEventType.HIDDEN);
77
+ this.state.animation = 'notifire-toast--out';
78
+ this.toast.eventEmitter.next(SnotifireEventType.HIDDEN);
79
+ setTimeout(() => this.service.remove(this.toast.id, true), this.toast.config &&
80
+ this.toast.config.animation &&
81
+ this.toast.config.animation.time / 2);
82
+ }, this.toast.config && this.toast.config.animation && this.toast.config.animation.time / 2);
83
+ }
84
+ /**
85
+ * Trigger OnClick lifecycle
86
+ */
87
+ onClick() {
88
+ this.toast.eventEmitter.next(SnotifireEventType.CLICK);
89
+ if (this.toast && this.toast.config && this.toast.config.closeOnClick) {
90
+ this.service.remove(this.toast.id);
91
+ }
92
+ }
93
+ /**
94
+ * Trigger onHoverEnter lifecycle
95
+ */
96
+ onMouseEnter() {
97
+ this.toast.eventEmitter.next(SnotifireEventType.MOUSE_ENTER);
98
+ if (this.toast && this.toast.config && this.toast.config.pauseOnHover) {
99
+ this.state.paused = true;
100
+ }
101
+ }
102
+ /**
103
+ * Trigger onHoverLeave lifecycle
104
+ */
105
+ onMouseLeave() {
106
+ if (this.toast &&
107
+ this.toast.config &&
108
+ this.toast.config.pauseOnHover &&
109
+ this.toast.config.timeout) {
110
+ this.state.paused = false;
111
+ this.startTimeout(this.toast.config.timeout * this.state.progress);
112
+ }
113
+ this.toast.eventEmitter.next(SnotifireEventType.MOUSE_LEAVE);
114
+ }
115
+ /**
116
+ * Remove toast completely after animation
117
+ */
118
+ onExitTransitionEnd() {
119
+ if (this.state.isDestroying) {
120
+ return;
121
+ }
122
+ this.initToast();
123
+ this.toast.eventEmitter.next(SnotifireEventType.SHOWN);
124
+ }
125
+ /*
126
+ Common
127
+ */
128
+ /**
129
+ * Initialize base toast config
130
+ *
131
+ */
132
+ initToast() {
133
+ if ((this.toast && this.toast.config && this.toast.config.timeout
134
+ ? this.toast.config.timeout
135
+ : 0) > 0) {
136
+ this.startTimeout(0);
137
+ }
138
+ }
139
+ /**
140
+ * Start progress bar
141
+ * @param startTime number
142
+ */
143
+ startTimeout(startTime = 0) {
144
+ const start = performance.now();
145
+ const calculate = () => {
146
+ this.animationFrame = requestAnimationFrame((timestamp) => {
147
+ const runtime = timestamp + startTime - start;
148
+ const progress = Math.min(runtime /
149
+ (this.toast && this.toast.config && this.toast.config.timeout
150
+ ? this.toast.config.timeout
151
+ : 1), 1);
152
+ if (this.state.paused) {
153
+ cancelAnimationFrame(this.animationFrame);
154
+ }
155
+ else if (runtime <
156
+ (this.toast && this.toast.config && this.toast.config.timeout
157
+ ? this.toast.config.timeout
158
+ : 1)) {
159
+ this.state.progress = progress;
160
+ calculate();
161
+ }
162
+ else {
163
+ this.state.progress = 1;
164
+ cancelAnimationFrame(this.animationFrame);
165
+ this.service.remove(this.toast.id);
166
+ }
167
+ });
168
+ };
169
+ calculate();
170
+ }
171
+ ngOnDestroy() {
172
+ this.unsubscribe$.next();
173
+ this.unsubscribe$.complete();
174
+ }
175
+ }
176
+ ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastComponent, deps: [{ token: i1.SnotificationService }], target: i0.ɵɵFactoryTarget.Component });
177
+ ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ToastComponent, selector: "ngx-toast", inputs: { toast: "toast" }, outputs: { stateChanged: "stateChanged" }, ngImport: i0, template: "<ng-container *ngIf=\"toast && toast.config\">\n <div\n [attr.role]=\"toast.config.type === state.promptType ? 'dialog' : 'alert'\"\n [attr.aria-labelledby]=\"'snotify_' + toast.id\"\n [attr.aria-modal]=\"toast.config.type === state.promptType\"\n [ngClass]=\"[\n 'notifire-toast animated',\n 'snotify-' + toast.config.type,\n state.animation, toast.valid === undefined ? '' : toast.valid ? 'snotifyToast--valid' : 'snotifyToast--invalid'\n]\"\n [ngStyle]=\"{\n '-webkit-transition': toast.config.animation && toast.config.animation.time + 'ms',\n transition: toast.config.animation && toast.config.animation.time + 'ms',\n '-webkit-animation-duration': toast.config.animation && toast.config.animation.time + 'ms',\n 'animation-duration': toast.config.animation && toast.config.animation.time + 'ms'\n}\"\n (animationend)=\"onExitTransitionEnd()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"notifire-toast__progressBar\"\n *ngIf=\"toast.config.showProgressBar\"\n >\n <span\n class=\"notifire-toast__progressBar__percentage\"\n [ngStyle]=\"{ width: state.progress * 100 + '%' }\"\n ></span>\n </div>\n <div\n class=\"notifire-toast__inner\"\n *ngIf=\"!toast.config.html; else toastHTML\"\n >\n <div\n class=\"notifire-toast__title\"\n [attr.id]=\"'snotify_' + toast.id\"\n *ngIf=\"toast.title\"\n >\n {{ toast.title | truncate: toast.config.titleMaxLength }}\n </div>\n <div\n class=\"notifire-toast__body\"\n *ngIf=\"toast.body\"\n >\n {{ toast.body | truncate: toast.config.bodyMaxLength }}\n </div>\n <ngx-snotify-prompt\n *ngIf=\"toast.config.type === state.promptType\"\n [toast]=\"toast\"\n >\n </ngx-snotify-prompt>\n <div\n *ngIf=\"!toast.config.icon; else elseBlock\"\n [ngClass]=\"['snotify-icon', toast.config.iconClass || 'snotify-icon--' + toast.config.type]\"\n ></div>\n <ng-template #elseBlock>\n <img\n class=\"snotify-icon\"\n [src]=\"toast.config.icon\"\n >\n </ng-template>\n </div>\n <ng-template #toastHTML>\n <div\n class=\"notifire-toast__inner\"\n [innerHTML]=\"toast.config.html\"\n ></div>\n </ng-template>\n <notifire-button\n *ngIf=\"toast.config.buttons\"\n [toast]=\"toast\"\n ></notifire-button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PromptComponent, selector: "ngx-snotify-prompt", inputs: ["toast"] }, { kind: "component", type: i4.ButtonsComponent, selector: "notifire-button", inputs: ["toast"] }, { kind: "pipe", type: i5.TruncatePipe, name: "truncate" }], encapsulation: i0.ViewEncapsulation.None });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastComponent, decorators: [{
179
+ type: Component,
180
+ args: [{ selector: 'ngx-toast', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"toast && toast.config\">\n <div\n [attr.role]=\"toast.config.type === state.promptType ? 'dialog' : 'alert'\"\n [attr.aria-labelledby]=\"'snotify_' + toast.id\"\n [attr.aria-modal]=\"toast.config.type === state.promptType\"\n [ngClass]=\"[\n 'notifire-toast animated',\n 'snotify-' + toast.config.type,\n state.animation, toast.valid === undefined ? '' : toast.valid ? 'snotifyToast--valid' : 'snotifyToast--invalid'\n]\"\n [ngStyle]=\"{\n '-webkit-transition': toast.config.animation && toast.config.animation.time + 'ms',\n transition: toast.config.animation && toast.config.animation.time + 'ms',\n '-webkit-animation-duration': toast.config.animation && toast.config.animation.time + 'ms',\n 'animation-duration': toast.config.animation && toast.config.animation.time + 'ms'\n}\"\n (animationend)=\"onExitTransitionEnd()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"notifire-toast__progressBar\"\n *ngIf=\"toast.config.showProgressBar\"\n >\n <span\n class=\"notifire-toast__progressBar__percentage\"\n [ngStyle]=\"{ width: state.progress * 100 + '%' }\"\n ></span>\n </div>\n <div\n class=\"notifire-toast__inner\"\n *ngIf=\"!toast.config.html; else toastHTML\"\n >\n <div\n class=\"notifire-toast__title\"\n [attr.id]=\"'snotify_' + toast.id\"\n *ngIf=\"toast.title\"\n >\n {{ toast.title | truncate: toast.config.titleMaxLength }}\n </div>\n <div\n class=\"notifire-toast__body\"\n *ngIf=\"toast.body\"\n >\n {{ toast.body | truncate: toast.config.bodyMaxLength }}\n </div>\n <ngx-snotify-prompt\n *ngIf=\"toast.config.type === state.promptType\"\n [toast]=\"toast\"\n >\n </ngx-snotify-prompt>\n <div\n *ngIf=\"!toast.config.icon; else elseBlock\"\n [ngClass]=\"['snotify-icon', toast.config.iconClass || 'snotify-icon--' + toast.config.type]\"\n ></div>\n <ng-template #elseBlock>\n <img\n class=\"snotify-icon\"\n [src]=\"toast.config.icon\"\n >\n </ng-template>\n </div>\n <ng-template #toastHTML>\n <div\n class=\"notifire-toast__inner\"\n [innerHTML]=\"toast.config.html\"\n ></div>\n </ng-template>\n <notifire-button\n *ngIf=\"toast.config.buttons\"\n [toast]=\"toast\"\n ></notifire-button>\n </div>\n</ng-container>\n" }]
181
+ }], ctorParameters: function () { return [{ type: i1.SnotificationService }]; }, propDecorators: { toast: [{
182
+ type: Input
183
+ }], stateChanged: [{
184
+ type: Output
185
+ }] } });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVNqRSxNQUFNLE9BQU8sY0FBYztJQXlCekIsWUFBNkIsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUF4QmxELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1qQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBT2hFOztXQUVHO1FBQ0gsVUFBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNO1NBQ2pDLENBQUM7SUFFMkQsQ0FBQztJQUU5RCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNsQyxP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QyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDL0IsU0FBUyxFQUFFLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixTQUFTLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7OzRHQWpNVSxjQUFjO2dHQUFkLGNBQWMsd0hDbkIzQixpM0ZBMkVBOzRGRHhEYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSTsyR0FRNUIsS0FBSztzQkFBYixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU25vdGlmaXJlRXZlbnRUeXBlLCBTbm90aWZpcmVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE5vdGlmaXJlTW9kZWwgfSBmcm9tICcuL25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBHZXQgdG9hc3QgZnJvbSBub3RpZmljYXRpb25zIGFycmF5XG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IE5vdGlmaXJlTW9kZWw7XG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNub3RpZmlyZUV2ZW50VHlwZT4oKTtcblxuICAvKipcbiAgICogcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGlkXG4gICAqL1xuICBhbmltYXRpb25GcmFtZSE6IG51bWJlcjtcblxuICAvKipcbiAgICogVG9hc3Qgc3RhdGVcbiAgICovXG4gIHN0YXRlID0ge1xuICAgIHBhdXNlZDogZmFsc2UsXG4gICAgcHJvZ3Jlc3M6IDAsXG4gICAgYW5pbWF0aW9uOiAnJyxcbiAgICBpc0Rlc3Ryb3lpbmc6IGZhbHNlLFxuICAgIHByb21wdFR5cGU6IFNub3RpZmlyZVR5cGUuUFJPTVBULFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogU25vdGlmaWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnRvYXN0Q2hhbmdlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRvYXN0OiBOb3RpZmlyZU1vZGVsKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCd0b2FzdCcpO1xuICAgICAgICBpZiAodGhpcy50b2FzdC5pZCA9PT0gdG9hc3QuaWQpIHtcbiAgICAgICAgICB0aGlzLmluaXRUb2FzdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2VydmljZS50b2FzdERlbGV0ZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChpZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50b2FzdC5pZCA9PT0gaWQpIHtcbiAgICAgICAgICB0aGlzLm9uUmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIGlmICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmICF0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnRvYXN0LmNvbmZpZy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5NT1VOVEVEKTtcbiAgICB0aGlzLnN0YXRlLmFuaW1hdGlvbiA9ICdub3RpZmlyZS10b2FzdC0taW4nO1xuICB9XG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcgJiZcbiAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLnNub3RpZmlyZUNvbmZpZy5hbmltYXRpb25cbiAgICApIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlZC5lbWl0KFNub3RpZmlyZUV2ZW50VHlwZS5CRUZPUkVfU0hPVyk7XG4gICAgICAgIHRoaXMudG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoU25vdGlmaXJlRXZlbnRUeXBlLkJFRk9SRV9TSE9XKTtcbiAgICAgICAgdGhpcy5zdGF0ZS5hbmltYXRpb24gPVxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnICYmXG4gICAgICAgICAgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uICYmXG4gICAgICAgICAgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uLmVudGVyXG4gICAgICAgICAgICA/IHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi5lbnRlclxuICAgICAgICAgICAgOiAnJztcbiAgICAgIH0sIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLnNub3RpZmlyZUNvbmZpZy5hbmltYXRpb24udGltZSAvIDUpOyAvLyB0aW1lIHRvIHNob3cgdG9hc3QgcHVzaCBhbmltYXRpb24gKG5vdGlmaXJlLXRvYXN0LS1pbilcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgYmVmb3JlRGVzdHJveSBsaWZlY3ljbGUuIFJlbW92ZXMgdG9hc3RcbiAgICovXG4gIG9uUmVtb3ZlKCkge1xuICAgIHRoaXMuc3RhdGUuaXNEZXN0cm95aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5CRUZPUkVfSElERSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdChTbm90aWZpcmVFdmVudFR5cGUuQkVGT1JFX0hJREUpO1xuICAgIHRoaXMuc3RhdGUuYW5pbWF0aW9uID1cbiAgICAgICh0aGlzLnRvYXN0LmNvbmZpZyAmJlxuICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiZcbiAgICAgICAgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uLmV4aXQpIHx8XG4gICAgICAnJztcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VkLmVtaXQoU25vdGlmaXJlRXZlbnRUeXBlLkhJRERFTik7XG4gICAgICB0aGlzLnN0YXRlLmFuaW1hdGlvbiA9ICdub3RpZmlyZS10b2FzdC0tb3V0JztcbiAgICAgIHRoaXMudG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoU25vdGlmaXJlRXZlbnRUeXBlLkhJRERFTik7XG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB0aGlzLnNlcnZpY2UucmVtb3ZlKHRoaXMudG9hc3QuaWQsIHRydWUpLFxuICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZyAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lIC8gMlxuICAgICAgKTtcbiAgICB9LCB0aGlzLnRvYXN0LmNvbmZpZyAmJiB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiYgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uLnRpbWUgLyAyKTtcbiAgfVxuICAvKipcbiAgICogVHJpZ2dlciBPbkNsaWNrIGxpZmVjeWNsZVxuICAgKi9cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5DTElDSyk7XG4gICAgaWYgKHRoaXMudG9hc3QgJiYgdGhpcy50b2FzdC5jb25maWcgJiYgdGhpcy50b2FzdC5jb25maWcuY2xvc2VPbkNsaWNrKSB7XG4gICAgICB0aGlzLnNlcnZpY2UucmVtb3ZlKHRoaXMudG9hc3QuaWQpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogVHJpZ2dlciBvbkhvdmVyRW50ZXIgbGlmZWN5Y2xlXG4gICAqL1xuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuTU9VU0VfRU5URVIpO1xuICAgIGlmICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnBhdXNlT25Ib3Zlcikge1xuICAgICAgdGhpcy5zdGF0ZS5wYXVzZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIG9uSG92ZXJMZWF2ZSBsaWZlY3ljbGVcbiAgICovXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnRvYXN0ICYmXG4gICAgICB0aGlzLnRvYXN0LmNvbmZpZyAmJlxuICAgICAgdGhpcy50b2FzdC5jb25maWcucGF1c2VPbkhvdmVyICYmXG4gICAgICB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXRlLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zdGFydFRpbWVvdXQodGhpcy50b2FzdC5jb25maWcudGltZW91dCAqIHRoaXMuc3RhdGUucHJvZ3Jlc3MpO1xuICAgIH1cbiAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5NT1VTRV9MRUFWRSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbW92ZSB0b2FzdCBjb21wbGV0ZWx5IGFmdGVyIGFuaW1hdGlvblxuICAgKi9cbiAgb25FeGl0VHJhbnNpdGlvbkVuZCgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5pc0Rlc3Ryb3lpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0VG9hc3QoKTtcbiAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5TSE9XTik7XG4gIH1cblxuICAvKlxuICAgQ29tbW9uXG4gICAqL1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGJhc2UgdG9hc3QgY29uZmlnXG4gICAqXG4gICAqL1xuICBpbml0VG9hc3QoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMudG9hc3QgJiYgdGhpcy50b2FzdC5jb25maWcgJiYgdGhpcy50b2FzdC5jb25maWcudGltZW91dFxuICAgICAgICA/IHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgOiAwKSA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuc3RhcnRUaW1lb3V0KDApO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogU3RhcnQgcHJvZ3Jlc3MgYmFyXG4gICAqIEBwYXJhbSBzdGFydFRpbWUgbnVtYmVyXG4gICAqL1xuICBzdGFydFRpbWVvdXQoc3RhcnRUaW1lOiBudW1iZXIgPSAwKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBjb25zdCBjYWxjdWxhdGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbkZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgY29uc3QgcnVudGltZSA9IHRpbWVzdGFtcCArIHN0YXJ0VGltZSAtIHN0YXJ0O1xuICAgICAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKFxuICAgICAgICAgIHJ1bnRpbWUgL1xuICAgICAgICAgICAgKHRoaXMudG9hc3QgJiYgdGhpcy50b2FzdC5jb25maWcgJiYgdGhpcy50b2FzdC5jb25maWcudGltZW91dFxuICAgICAgICAgICAgICA/IHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgICAgOiAxKSxcbiAgICAgICAgICAxXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnBhdXNlZCkge1xuICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHJ1bnRpbWUgPFxuICAgICAgICAgICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgID8gdGhpcy50b2FzdC5jb25maWcudGltZW91dFxuICAgICAgICAgICAgOiAxKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnN0YXRlLnByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgICAgICAgY2FsY3VsYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IDE7XG4gICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25GcmFtZSk7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzLnRvYXN0LmlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjYWxjdWxhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidG9hc3QgJiYgdG9hc3QuY29uZmlnXCI+XG4gICAgPGRpdlxuICAgICAgICBbYXR0ci5yb2xlXT1cInRvYXN0LmNvbmZpZy50eXBlID09PSBzdGF0ZS5wcm9tcHRUeXBlID8gJ2RpYWxvZycgOiAnYWxlcnQnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzbm90aWZ5XycgKyB0b2FzdC5pZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbW9kYWxdPVwidG9hc3QuY29uZmlnLnR5cGUgPT09IHN0YXRlLnByb21wdFR5cGVcIlxuICAgICAgICBbbmdDbGFzc109XCJbXG4gICdub3RpZmlyZS10b2FzdCBhbmltYXRlZCcsXG4gICdzbm90aWZ5LScgKyB0b2FzdC5jb25maWcudHlwZSxcbiAgc3RhdGUuYW5pbWF0aW9uLCAgdG9hc3QudmFsaWQgPT09IHVuZGVmaW5lZCA/ICcnIDogdG9hc3QudmFsaWQgPyAnc25vdGlmeVRvYXN0LS12YWxpZCcgOiAnc25vdGlmeVRvYXN0LS1pbnZhbGlkJ1xuXVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgJy13ZWJraXQtdHJhbnNpdGlvbic6IHRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiYgdG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lICArICdtcycsXG4gIHRyYW5zaXRpb246ICB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSArICdtcycsXG4gICctd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbic6ICB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmICB0b2FzdC5jb25maWcuYW5pbWF0aW9uLnRpbWUgKyAnbXMnLFxuICAnYW5pbWF0aW9uLWR1cmF0aW9uJzogIHRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiYgdG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lICsgJ21zJ1xufVwiXG4gICAgICAgIChhbmltYXRpb25lbmQpPVwib25FeGl0VHJhbnNpdGlvbkVuZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9fcHJvZ3Jlc3NCYXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdC5jb25maWcuc2hvd1Byb2dyZXNzQmFyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19wcm9ncmVzc0Jhcl9fcGVyY2VudGFnZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogc3RhdGUucHJvZ3Jlc3MgKiAxMDAgKyAnJScgfVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9faW5uZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCIhdG9hc3QuY29uZmlnLmh0bWw7IGVsc2UgdG9hc3RIVE1MXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX3RpdGxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCInc25vdGlmeV8nICsgdG9hc3QuaWRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9hc3QudGl0bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRvYXN0LnRpdGxlIHwgdHJ1bmNhdGU6IHRvYXN0LmNvbmZpZy50aXRsZU1heExlbmd0aCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9fYm9keVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdC5ib2R5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0b2FzdC5ib2R5IHwgdHJ1bmNhdGU6IHRvYXN0LmNvbmZpZy5ib2R5TWF4TGVuZ3RoIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZ3gtc25vdGlmeS1wcm9tcHRcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvYXN0LmNvbmZpZy50eXBlID09PSBzdGF0ZS5wcm9tcHRUeXBlXCJcbiAgICAgICAgICAgICAgICBbdG9hc3RdPVwidG9hc3RcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZ3gtc25vdGlmeS1wcm9tcHQ+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdG9hc3QuY29uZmlnLmljb247IGVsc2UgZWxzZUJsb2NrXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3Nub3RpZnktaWNvbicsIHRvYXN0LmNvbmZpZy5pY29uQ2xhc3MgfHwgJ3Nub3RpZnktaWNvbi0tJyArIHRvYXN0LmNvbmZpZy50eXBlXVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic25vdGlmeS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJ0b2FzdC5jb25maWcuaWNvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9hc3RIVE1MPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lubmVyXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRvYXN0LmNvbmZpZy5odG1sXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5vdGlmaXJlLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdC5jb25maWcuYnV0dG9uc1wiXG4gICAgICAgICAgICBbdG9hc3RdPVwidG9hc3RcIlxuICAgICAgICA+PC9ub3RpZmlyZS1idXR0b24+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Defines toast style depending on method name
3
+ * @param target any
4
+ * @param propertyKey NotificationType
5
+ * @param descriptor PropertyDescriptor
6
+ * @returns value: ((...args: any[]) => any)
7
+ */
8
+ export function SetToastType(target, propertyKey, descriptor) {
9
+ return {
10
+ value(...args) {
11
+ args[0].config = {
12
+ ...args[0].config,
13
+ type: propertyKey,
14
+ };
15
+ return descriptor.value.apply(this, args);
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXRvYXN0LXR5cGUuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2RlY29yYXRvcnMvc2V0LXRvYXN0LXR5cGUuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQVcsRUFDWCxXQUFtQixFQUNuQixVQUE4QjtJQUU5QixPQUFPO1FBQ0wsS0FBSyxDQUFDLEdBQUcsSUFBVztZQUNqQixJQUFJLENBQUMsQ0FBQyxDQUFvQixDQUFDLE1BQU0sR0FBRztnQkFDbkMsR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUFvQixDQUFDLE1BQU07Z0JBQ3JDLElBQUksRUFBRSxXQUE0QjthQUNuQyxDQUFDO1lBQ0YsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU25vdGlmaXJlTW9kZWwsIFNub3RpZmlyZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKipcbiAqIERlZmluZXMgdG9hc3Qgc3R5bGUgZGVwZW5kaW5nIG9uIG1ldGhvZCBuYW1lXG4gKiBAcGFyYW0gdGFyZ2V0IGFueVxuICogQHBhcmFtIHByb3BlcnR5S2V5IE5vdGlmaWNhdGlvblR5cGVcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIFByb3BlcnR5RGVzY3JpcHRvclxuICogQHJldHVybnMgdmFsdWU6ICgoLi4uYXJnczogYW55W10pID0+IGFueSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNldFRvYXN0VHlwZShcbiAgdGFyZ2V0OiBhbnksXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvclxuKSB7XG4gIHJldHVybiB7XG4gICAgdmFsdWUoLi4uYXJnczogYW55W10pIHtcbiAgICAgIChhcmdzWzBdIGFzIFNub3RpZmlyZU1vZGVsKS5jb25maWcgPSB7XG4gICAgICAgIC4uLihhcmdzWzBdIGFzIFNub3RpZmlyZU1vZGVsKS5jb25maWcsXG4gICAgICAgIHR5cGU6IHByb3BlcnR5S2V5IGFzIFNub3RpZmlyZVR5cGUsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGRlc2NyaXB0b3IudmFsdWUuYXBwbHkodGhpcywgYXJncyk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==