@provoly/dashboard 1.4.49 → 1.4.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2suaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zbmFja2Jhci9zbmFjay5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJ5U25hY2tNZXNzYWdlIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBhY3Rpb24/OiBzdHJpbmc7XG4gIHR5cGU6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcic7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2suaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zbmFja2Jhci9zbmFjay5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJ5U25hY2tNZXNzYWdlIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgYWN0aW9uPzogc3RyaW5nO1xuICB0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJ25vdGlmJztcbiAgdGltZW91dD86IG51bWJlcjtcbiAgbGluaz86IHN0cmluZztcbn1cbiJdfQ==
@@ -1,8 +1,10 @@
1
1
  import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';
2
2
  import { Component, Input } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "../../icon/icon.component";
4
+ import * as i1 from "../snackbar.service";
5
+ import * as i2 from "@angular/router";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "../../icon/icon.component";
6
8
  const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
7
9
  const hideAnimation = animation([animate('{{transition}}'), style({ transform: '{{transform}}', opacity: 0 })]);
8
10
  export class PrySnackbarComponent {
@@ -10,13 +12,25 @@ export class PrySnackbarComponent {
10
12
  this._data = message;
11
13
  this.cdRef.detectChanges();
12
14
  }
13
- constructor(cdRef) {
15
+ set listIndex(listIndex) {
16
+ if (!!listIndex || listIndex === 0) {
17
+ this._listIndex = listIndex;
18
+ }
19
+ this.getStyle();
20
+ }
21
+ get listIndex() {
22
+ return this._listIndex;
23
+ }
24
+ constructor(cdRef, snackService, router) {
14
25
  this.cdRef = cdRef;
26
+ this.snackService = snackService;
27
+ this.router = router;
15
28
  this._data = { message: '', action: undefined, type: 'info', timeout: 3000 };
16
- this.listIndex = 0;
17
29
  this.transformOptions = 'translate3d(-50%, 100%, 0px)';
18
30
  this.transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
19
31
  this.hiddenFromAction = false;
32
+ this._listIndex = 0;
33
+ this.snackStyle = { top: '' };
20
34
  }
21
35
  get data() {
22
36
  return this._data;
@@ -24,12 +38,25 @@ export class PrySnackbarComponent {
24
38
  get typeClass() {
25
39
  return { ['-' + this.data.type]: true };
26
40
  }
41
+ getStyle() {
42
+ if (this.data.type === 'notif') {
43
+ this.snackStyle = {
44
+ top: (this.listIndex === 0 ? 60 : this.listIndex * 60 + 60) + 'px'
45
+ };
46
+ }
47
+ else {
48
+ this.snackStyle = {
49
+ bottom: this.listIndex * 60 + 'px'
50
+ };
51
+ }
52
+ }
27
53
  get icon() {
28
54
  const iconsDefs = {
29
55
  info: 'information-point',
30
56
  success: 'check',
31
57
  warning: 'warning',
32
- error: 'close'
58
+ error: 'close',
59
+ notif: 'information-point'
33
60
  };
34
61
  return iconsDefs[this.data.type];
35
62
  }
@@ -39,8 +66,17 @@ export class PrySnackbarComponent {
39
66
  hide() {
40
67
  this.hiddenFromAction = true;
41
68
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", listIndex: "listIndex", actionClicked: "actionClicked" }, ngImport: i0, template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
69
+ openEvenement(data) {
70
+ this.router.navigate([]).then(() => {
71
+ const url = this.router.serializeUrl(this.router.createUrlTree(['', data.link]));
72
+ window.open(url, '_blank');
73
+ });
74
+ }
75
+ closeNotif(data) {
76
+ this.snackService.closeNotif(data);
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PrySnackbarService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", actionClicked: "actionClicked", listIndex: "listIndex" }, ngImport: i0, template: "@if (!hiddenFromAction) {\n @if (data.type === 'notif') {\n <div\n (click)=\"openEvenement(data)\"\n class=\"m-snackbar m-snackbar-notif\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <p class=\"a-p\">{{ data.message }}</p>\n <pry-icon (click)=\"closeNotif(data)\" class=\"notif-erase\" iconSvg=\"close\" [width]=\"18\" [height]=\"18\"> </pry-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n }\n}\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
44
80
  trigger('panelState', [
45
81
  transition('void => visible', [useAnimation(showAnimation)]),
46
82
  transition('visible => void', [useAnimation(hideAnimation)])
@@ -54,12 +90,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
54
90
  transition('void => visible', [useAnimation(showAnimation)]),
55
91
  transition('visible => void', [useAnimation(hideAnimation)])
56
92
  ])
57
- ], template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n" }]
58
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{
59
- type: Input
60
- }], listIndex: [{
93
+ ], template: "@if (!hiddenFromAction) {\n @if (data.type === 'notif') {\n <div\n (click)=\"openEvenement(data)\"\n class=\"m-snackbar m-snackbar-notif\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <p class=\"a-p\">{{ data.message }}</p>\n <pry-icon (click)=\"closeNotif(data)\" class=\"notif-erase\" iconSvg=\"close\" [width]=\"18\" [height]=\"18\"> </pry-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n }\n}\n" }]
94
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PrySnackbarService }, { type: i2.Router }], propDecorators: { data: [{
61
95
  type: Input
62
96
  }], actionClicked: [{
63
97
  type: Input
98
+ }], listIndex: [{
99
+ type: Input
64
100
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25HLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUlwRSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoSCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQVloSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLElBQWEsSUFBSSxDQUFDLE9BQXdCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQVFELFlBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBWjVDLFVBQUssR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQXFCLENBQUM7UUFNbEYsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUV2QixxQkFBZ0IsR0FBRyw4QkFBOEIsQ0FBQztRQUNsRCxzQkFBaUIsR0FBRyxrQ0FBa0MsQ0FBQztRQUN2RCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFc0IsQ0FBQztJQUVoRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixNQUFNLFNBQVMsR0FBRztZQUNoQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDOzhHQXhDVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixzSUNuQmpDLG1qQkFnQkEsaVNESmM7WUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNwQixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDNUQsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDN0QsQ0FBQztTQUNIOzsyRkFFVSxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0UsY0FBYyxjQUVaO3dCQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ3BCLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDOzRCQUM1RCxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt5QkFDN0QsQ0FBQztxQkFDSDtzRkFLWSxJQUFJO3NCQUFoQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGlvbiwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByeVNuYWNrTWVzc2FnZSB9IGZyb20gJy4uL3NuYWNrLmludGVyZmFjZSc7XG5cbmNvbnN0IHNob3dBbmltYXRpb24gPSBhbmltYXRpb24oW3N0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJ3t7dHJhbnNpdGlvbn19JyldKTtcblxuY29uc3QgaGlkZUFuaW1hdGlvbiA9IGFuaW1hdGlvbihbYW5pbWF0ZSgne3t0cmFuc2l0aW9ufX0nKSwgc3R5bGUoeyB0cmFuc2Zvcm06ICd7e3RyYW5zZm9ybX19Jywgb3BhY2l0eTogMCB9KV0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc25hY2tiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcigncGFuZWxTdGF0ZScsIFtcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFt1c2VBbmltYXRpb24oc2hvd0FuaW1hdGlvbildKSxcbiAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCcsIFt1c2VBbmltYXRpb24oaGlkZUFuaW1hdGlvbildKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5U25hY2tiYXJDb21wb25lbnQge1xuICBjb250YWluZXI6IGFueTtcbiAgX2RhdGEgPSB7IG1lc3NhZ2U6ICcnLCBhY3Rpb246IHVuZGVmaW5lZCwgdHlwZTogJ2luZm8nLCB0aW1lb3V0OiAzMDAwIH0gYXMgUHJ5U25hY2tNZXNzYWdlO1xuICBASW5wdXQoKSBzZXQgZGF0YShtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UpIHtcbiAgICB0aGlzLl9kYXRhID0gbWVzc2FnZTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGxpc3RJbmRleCA9IDA7XG4gIEBJbnB1dCgpIGFjdGlvbkNsaWNrZWQhOiBTdWJqZWN0PHZvaWQ+O1xuICB0cmFuc2Zvcm1PcHRpb25zID0gJ3RyYW5zbGF0ZTNkKC01MCUsIDEwMCUsIDBweCknO1xuICB0cmFuc2l0aW9uT3B0aW9ucyA9ICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gIGhpZGRlbkZyb21BY3Rpb24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIGdldCB0eXBlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHsgWyctJyArIHRoaXMuZGF0YS50eXBlXTogdHJ1ZSB9O1xuICB9XG5cbiAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpY29uc0RlZnMgPSB7XG4gICAgICBpbmZvOiAnaW5mb3JtYXRpb24tcG9pbnQnLFxuICAgICAgc3VjY2VzczogJ2NoZWNrJyxcbiAgICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICAgIGVycm9yOiAnY2xvc2UnXG4gICAgfTtcbiAgICByZXR1cm4gaWNvbnNEZWZzW3RoaXMuZGF0YS50eXBlXTtcbiAgfVxuXG4gIGFjdGlvbkNsaWNrKCkge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5uZXh0KCk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuaGlkZGVuRnJvbUFjdGlvbiA9IHRydWU7XG4gIH1cbn1cbiIsIkBpZiAoIWhpZGRlbkZyb21BY3Rpb24pIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwibS1zbmFja2JhciAtYm90dG9tXCJcbiAgICBbbmdDbGFzc109XCJ0eXBlQ2xhc3NcIlxuICAgIFtAcGFuZWxTdGF0ZV09XCJ7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2Zvcm06IHRyYW5zZm9ybU9wdGlvbnMsIHRyYW5zaXRpb246IHRyYW5zaXRpb25PcHRpb25zIH0gfVwiXG4gICAgW3N0eWxlLmJvdHRvbS5weF09XCJsaXN0SW5kZXggKiA2MFwiXG4gICAgPlxuICAgIDxkaXYgY2xhc3M9XCJtLXNuYWNrYmFyX19jb250ZW50XCI+XG4gICAgICA8cHJ5LWljb24gW2ljb25TdmddPVwiaWNvblwiPjwvcHJ5LWljb24+XG4gICAgICA8cCBjbGFzcz1cImEtcFwiPnt7IGRhdGEubWVzc2FnZSB9fTwvcD5cbiAgICAgIEBpZiAoISFkYXRhLmFjdGlvbikge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1zbmFja2Jhcl9fYWN0aW9uXCIgKGNsaWNrKT1cImFjdGlvbkNsaWNrKClcIj57eyBkYXRhLmFjdGlvbiB9fTwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25HLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBTXBFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hILE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBWWhILE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsSUFBYSxJQUFJLENBQUMsT0FBd0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBUUQsSUFB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LElBQXFCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBL0VVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHNJQ3BCakMscW1DQThCQSxpU0RqQmM7WUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNwQixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDNUQsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDN0QsQ0FBQztTQUNIOzsyRkFFVSxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0UsY0FBYyxjQUVaO3dCQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7NEJBQ3BCLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDOzRCQUM1RCxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt5QkFDN0QsQ0FBQztxQkFDSDs0SUFLWSxJQUFJO3NCQUFoQixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGlvbiwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByeVNuYWNrTWVzc2FnZSB9IGZyb20gJy4uL3NuYWNrLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmNvbnN0IHNob3dBbmltYXRpb24gPSBhbmltYXRpb24oW3N0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJ3t7dHJhbnNpdGlvbn19JyldKTtcbmNvbnN0IGhpZGVBbmltYXRpb24gPSBhbmltYXRpb24oW2FuaW1hdGUoJ3t7dHJhbnNpdGlvbn19JyksIHN0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSldKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXNuYWNrYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3BhbmVsU3RhdGUnLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBbdXNlQW5pbWF0aW9uKHNob3dBbmltYXRpb24pXSksXG4gICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlID0+IHZvaWQnLCBbdXNlQW5pbWF0aW9uKGhpZGVBbmltYXRpb24pXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFByeVNuYWNrYmFyQ29tcG9uZW50IHtcbiAgY29udGFpbmVyOiBhbnk7XG4gIF9kYXRhID0geyBtZXNzYWdlOiAnJywgYWN0aW9uOiB1bmRlZmluZWQsIHR5cGU6ICdpbmZvJywgdGltZW91dDogMzAwMCB9IGFzIFByeVNuYWNrTWVzc2FnZTtcbiAgQElucHV0KCkgc2V0IGRhdGEobWVzc2FnZTogUHJ5U25hY2tNZXNzYWdlKSB7XG4gICAgdGhpcy5fZGF0YSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBASW5wdXQoKSBhY3Rpb25DbGlja2VkITogU3ViamVjdDx2b2lkPjtcbiAgdHJhbnNmb3JtT3B0aW9ucyA9ICd0cmFuc2xhdGUzZCgtNTAlLCAxMDAlLCAwcHgpJztcbiAgdHJhbnNpdGlvbk9wdGlvbnMgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICBoaWRkZW5Gcm9tQWN0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpc3RJbmRleCA9IDA7XG4gIHNuYWNrU3R5bGU6IHsgdG9wPzogc3RyaW5nOyBib3R0b20/OiBzdHJpbmcgfSA9IHsgdG9wOiAnJyB9O1xuICBASW5wdXQoKSBzZXQgbGlzdEluZGV4KGxpc3RJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCEhbGlzdEluZGV4IHx8IGxpc3RJbmRleCA9PT0gMCkge1xuICAgICAgdGhpcy5fbGlzdEluZGV4ID0gbGlzdEluZGV4O1xuICAgIH1cbiAgICB0aGlzLmdldFN0eWxlKCk7XG4gIH1cblxuICBnZXQgbGlzdEluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0SW5kZXg7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHNuYWNrU2VydmljZTogUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgZ2V0IHR5cGVDbGFzcygpIHtcbiAgICByZXR1cm4geyBbJy0nICsgdGhpcy5kYXRhLnR5cGVdOiB0cnVlIH07XG4gIH1cblxuICBnZXRTdHlsZSgpIHtcbiAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdub3RpZicpIHtcbiAgICAgIHRoaXMuc25hY2tTdHlsZSA9IHtcbiAgICAgICAgdG9wOiAodGhpcy5saXN0SW5kZXggPT09IDAgPyA2MCA6IHRoaXMubGlzdEluZGV4ICogNjAgKyA2MCkgKyAncHgnXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNuYWNrU3R5bGUgPSB7XG4gICAgICAgIGJvdHRvbTogdGhpcy5saXN0SW5kZXggKiA2MCArICdweCdcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpY29uc0RlZnMgPSB7XG4gICAgICBpbmZvOiAnaW5mb3JtYXRpb24tcG9pbnQnLFxuICAgICAgc3VjY2VzczogJ2NoZWNrJyxcbiAgICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICAgIGVycm9yOiAnY2xvc2UnLFxuICAgICAgbm90aWY6ICdpbmZvcm1hdGlvbi1wb2ludCdcbiAgICB9O1xuICAgIHJldHVybiBpY29uc0RlZnNbdGhpcy5kYXRhLnR5cGVdO1xuICB9XG5cbiAgYWN0aW9uQ2xpY2soKSB7XG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLm5leHQoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5oaWRkZW5Gcm9tQWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG9wZW5FdmVuZW1lbnQoZGF0YTogUHJ5U25hY2tNZXNzYWdlKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10pLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycnLCBkYXRhLmxpbmtdKSk7XG4gICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlTm90aWYoZGF0YTogUHJ5U25hY2tNZXNzYWdlKSB7XG4gICAgdGhpcy5zbmFja1NlcnZpY2UuY2xvc2VOb3RpZihkYXRhKTtcbiAgfVxufVxuIiwiQGlmICghaGlkZGVuRnJvbUFjdGlvbikge1xuICBAaWYgKGRhdGEudHlwZSA9PT0gJ25vdGlmJykge1xuICAgIDxkaXZcbiAgICAgIChjbGljayk9XCJvcGVuRXZlbmVtZW50KGRhdGEpXCJcbiAgICAgIGNsYXNzPVwibS1zbmFja2JhciBtLXNuYWNrYmFyLW5vdGlmXCJcbiAgICAgIFtAcGFuZWxTdGF0ZV09XCJ7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2Zvcm06IHRyYW5zZm9ybU9wdGlvbnMsIHRyYW5zaXRpb246IHRyYW5zaXRpb25PcHRpb25zIH0gfVwiXG4gICAgICBbc3R5bGVdPVwic25hY2tTdHlsZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tc25hY2tiYXJfX2NvbnRlbnRcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj57eyBkYXRhLm1lc3NhZ2UgfX08L3A+XG4gICAgICAgIDxwcnktaWNvbiAoY2xpY2spPVwiY2xvc2VOb3RpZihkYXRhKVwiIGNsYXNzPVwibm90aWYtZXJhc2VcIiBpY29uU3ZnPVwiY2xvc2VcIiBbd2lkdGhdPVwiMThcIiBbaGVpZ2h0XT1cIjE4XCI+IDwvcHJ5LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtLXNuYWNrYmFyIC1ib3R0b21cIlxuICAgICAgW25nQ2xhc3NdPVwidHlwZUNsYXNzXCJcbiAgICAgIFtAcGFuZWxTdGF0ZV09XCJ7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2Zvcm06IHRyYW5zZm9ybU9wdGlvbnMsIHRyYW5zaXRpb246IHRyYW5zaXRpb25PcHRpb25zIH0gfVwiXG4gICAgICBbc3R5bGVdPVwic25hY2tTdHlsZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tc25hY2tiYXJfX2NvbnRlbnRcIj5cbiAgICAgICAgPHByeS1pY29uIFtpY29uU3ZnXT1cImljb25cIj48L3ByeS1pY29uPlxuICAgICAgICA8cCBjbGFzcz1cImEtcFwiPnt7IGRhdGEubWVzc2FnZSB9fTwvcD5cbiAgICAgICAgQGlmICghIWRhdGEuYWN0aW9uKSB7XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tc25hY2tiYXJfX2FjdGlvblwiIChjbGljayk9XCJhY3Rpb25DbGljaygpXCI+e3sgZGF0YS5hY3Rpb24gfX08L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbn1cbiJdfQ==
@@ -17,6 +17,7 @@ export class PrySnackbarService {
17
17
  this.overlay = overlay;
18
18
  this.translate = translate;
19
19
  this.messageEvents$ = new Subject();
20
+ this.notifRef = [];
20
21
  // Allows to access snackbar from javascript, for example to manage Vega errors
21
22
  document.addEventListener(PRY_CUSTOMEVENT_TYPE, (e) => {
22
23
  const pryMessage = e.detail;
@@ -34,26 +35,63 @@ export class PrySnackbarService {
34
35
  dispatchOpenEvent(message) {
35
36
  document.dispatchEvent(new CustomEvent(PRY_CUSTOMEVENT_TYPE, { detail: message }));
36
37
  }
38
+ closeNotif(message) {
39
+ const notifIndex = this.notifRef.findIndex((notif) => notif.componentRef.instance.data.id === message.id);
40
+ const elementToRemove = this.notifRef.splice(notifIndex, 1).shift();
41
+ elementToRemove.componentRef.instance.hiddenFromAction = true;
42
+ elementToRemove.componentRef.instance.actionClicked.complete();
43
+ elementToRemove.overlayRef.dispose();
44
+ elementToRemove.componentRef.destroy();
45
+ this.notifRef.forEach((notifRef, index) => {
46
+ notifRef.componentRef.instance.listIndex = index;
47
+ });
48
+ }
37
49
  notMitigatedOpen(message) {
38
- this.overlayRef = this.overlay.create(new OverlayConfig({
50
+ const overlayRef = this.overlay.create(new OverlayConfig({
39
51
  hasBackdrop: false
40
52
  }));
41
53
  const componentPortal = new ComponentPortal(PrySnackbarComponent, this.rootViewContainer);
42
- const component = this.overlayRef.attach(componentPortal);
54
+ const component = overlayRef.attach(componentPortal);
43
55
  component.instance.data = message;
44
- component.instance.listIndex = PrySnackbarService.count++;
45
56
  component.instance.actionClicked = new Subject();
46
- setTimeout(() => {
47
- /* First hide component so it uses animation */
48
- component.instance.hiddenFromAction = true;
49
- PrySnackbarService.count--;
57
+ if (message.type === 'notif') {
58
+ if (this.notifRef.length < 5) {
59
+ this.notifRef.unshift({ componentRef: component, overlayRef });
60
+ this.notifRef.forEach((notifRef, index) => {
61
+ notifRef.componentRef.instance.listIndex = index;
62
+ });
63
+ }
64
+ else if (this.notifRef.length === 5) {
65
+ const olderComponent = this.notifRef.pop();
66
+ olderComponent.componentRef.instance.hiddenFromAction = true;
67
+ olderComponent.componentRef.instance.actionClicked.complete();
68
+ olderComponent.overlayRef.dispose();
69
+ olderComponent.componentRef.destroy();
70
+ this.notifRef.unshift({ componentRef: component, overlayRef });
71
+ this.notifRef.forEach((notifRef, index) => {
72
+ notifRef.componentRef.instance.listIndex = index;
73
+ });
74
+ }
50
75
  setTimeout(() => {
51
- /* then clean by removing it */
52
76
  component.instance.actionClicked.complete();
53
- this.overlayRef?.dispose();
77
+ overlayRef?.dispose();
54
78
  component.destroy();
55
- }, DELAY_FOR_HIDE);
56
- }, message.timeout ?? DEFAULT_MSG_TIMEOUT);
79
+ }, 10000);
80
+ }
81
+ else {
82
+ component.instance.listIndex = PrySnackbarService.count++;
83
+ setTimeout(() => {
84
+ /* First hide component so it uses animation */
85
+ component.instance.hiddenFromAction = true;
86
+ PrySnackbarService.count--;
87
+ setTimeout(() => {
88
+ /* then clean by removing it */
89
+ component.instance.actionClicked.complete();
90
+ overlayRef?.dispose();
91
+ component.destroy();
92
+ }, DELAY_FOR_HIDE);
93
+ }, message.timeout ?? DEFAULT_MSG_TIMEOUT);
94
+ }
57
95
  return component.instance.actionClicked;
58
96
  }
59
97
  open(message) {
@@ -68,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
68
106
  providedIn: 'root'
69
107
  }]
70
108
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i2.PryI18nService }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFckUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBS2pELE1BQU0sT0FBTyxrQkFBa0I7YUFFdEIsVUFBSyxHQUFHLENBQUMsQUFBSixDQUFLO0lBTWpCLFlBQ1UsT0FBZ0IsRUFDaEIsU0FBeUI7UUFEekIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUozQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBTXRELCtFQUErRTtRQUMvRSxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLG9CQUFvQixFQUNwQixDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ1gsTUFBTSxVQUFVLEdB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QWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgc3dpdGNoTWFwLCB3aW5kb3dUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBQcnlTbmFja01lc3NhZ2UgfSBmcm9tICcuL3NuYWNrLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTVNHX1RJTUVPVVQgPSAzMDAwO1xuZXhwb3J0IGNvbnN0IERFTEFZX0ZPUl9ISURFID0gMjAwO1xuXG5leHBvcnQgY29uc3QgUFJZX0NVU1RPTUVWRU5UX1RZUEUgPSAnQHByeS5zbmFjayc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeVNuYWNrYmFyU2VydmljZSB7XG4gIHJvb3RWaWV3Q29udGFpbmVyPzogVmlld0NvbnRhaW5lclJlZjtcbiAgc3RhdGljIGNvdW50ID0gMDtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgbWVzc2FnZUV2ZW50cyQgPSBuZXcgU3ViamVjdDxQcnlTbmFja01lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICAvLyBBbGxvd3MgdG8gYWNjZXNzIHNuYWNrYmFyIGZyb20gamF2YXNjcmlwdCwgZm9yIGV4YW1wbGUgdG8gbWFuYWdlIFZlZ2EgZXJyb3JzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFBSWV9DVVNUT01FVkVOVF9UWVBFLFxuICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByeU1lc3NhZ2UgPSAoZSBhcyBDdXN0b21FdmVudDxQcnlTbmFja01lc3NhZ2U+KS5kZXRhaWw7XG4gICAgICAgIHByeU1lc3NhZ2UubWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJ5TWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgcHJ5TWVzc2FnZS5hY3Rpb24gPSAhIXByeU1lc3NhZ2UuYWN0aW9uID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcnlNZXNzYWdlLmFjdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChwcnlNZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLm1lc3NhZ2VFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgd2luZG93VGltZSgxMDAwKSxcbiAgICAgICAgc3dpdGNoTWFwKChzb3VyY2UpID0+IHNvdXJjZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCB2KSA9PiBlcXVhbChwLCB2KSkpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4gdGhpcy5ub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIHNldFJvb3RWaWV3Q29udGFpbmVyUmVmKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB0aGlzLnJvb3RWaWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lclJlZjtcbiAgfVxuXG4gIGRpc3BhdGNoT3BlbkV2ZW50KG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFBSWV9DVVNUT01FVkVOVF9UWVBFLCB7IGRldGFpbDogbWVzc2FnZSB9KSk7XG4gIH1cblxuICBub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSk6IE9ic2VydmFibGU8dm9pZD4gfCBudWxsIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2VcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFByeVNuYWNrYmFyQ29tcG9uZW50LCB0aGlzLnJvb3RWaWV3Q29udGFpbmVyKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbXBvbmVudFBvcnRhbCk7XG5cbiAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YSA9IG1lc3NhZ2U7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmxpc3RJbmRleCA9IFByeVNuYWNrYmFyU2VydmljZS5jb3VudCsrO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLyogRmlyc3QgaGlkZSBjb21wb25lbnQgc28gaXQgdXNlcyBhbmltYXRpb24gKi9cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5oaWRkZW5Gcm9tQWN0aW9uID0gdHJ1ZTtcbiAgICAgIFByeVNuYWNrYmFyU2VydmljZS5jb3VudC0tO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLyogdGhlbiBjbGVhbiBieSByZW1vdmluZyBpdCAqL1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuYWN0aW9uQ2xpY2tlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgIH0sIERFTEFZX0ZPUl9ISURFKTtcbiAgICB9LCBtZXNzYWdlLnRpbWVvdXQgPz8gREVGQVVMVF9NU0dfVElNRU9VVCk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQ7XG4gIH1cblxuICBvcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChtZXNzYWdlKTtcbiAgfVxufVxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBZ0IsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBRXJFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFlBQVksQ0FBQztBQVVqRCxNQUFNLE9BQU8sa0JBQWtCO2FBRXRCLFVBQUssR0FBRyxDQUFDLEFBQUosQ0FBSztJQUtqQixZQUNVLE9BQWdCLEVBQ2hCLFNBQXlCO1FBRHpCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFMM0IsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUNoRCxhQUFRLEdBQWlCLEVBQUUsQ0FBQztRQU1sQywrRUFBK0U7UUFDL0UsUUFBUSxDQUFDLGdCQUFnQixDQUN2QixvQkFBb0IsRUFDcEIsQ0FBQyxDQUFR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aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHdpbmRvd1RpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFByeVNuYWNrTWVzc2FnZSB9IGZyb20gJy4vc25hY2suaW50ZXJmYWNlJztcbmltcG9ydCB7IFByeVNuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NU0dfVElNRU9VVCA9IDMwMDA7XG5leHBvcnQgY29uc3QgREVMQVlfRk9SX0hJREUgPSAyMDA7XG5cbmV4cG9ydCBjb25zdCBQUllfQ1VTVE9NRVZFTlRfVFlQRSA9ICdAcHJ5LnNuYWNrJztcblxuZXhwb3J0IGludGVyZmFjZSBub3RpZlNuYWNrIHtcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UHJ5U25hY2tiYXJDb21wb25lbnQ+O1xuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTbmFja2JhclNlcnZpY2Uge1xuICByb290Vmlld0NvbnRhaW5lcj86IFZpZXdDb250YWluZXJSZWY7XG4gIHN0YXRpYyBjb3VudCA9IDA7XG5cbiAgcHJpdmF0ZSBtZXNzYWdlRXZlbnRzJCA9IG5ldyBTdWJqZWN0PFByeVNuYWNrTWVzc2FnZT4oKTtcbiAgcHJpdmF0ZSBub3RpZlJlZjogbm90aWZTbmFja1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICAvLyBBbGxvd3MgdG8gYWNjZXNzIHNuYWNrYmFyIGZyb20gamF2YXNjcmlwdCwgZm9yIGV4YW1wbGUgdG8gbWFuYWdlIFZlZ2EgZXJyb3JzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFBSWV9DVVNUT01FVkVOVF9UWVBFLFxuICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByeU1lc3NhZ2UgPSAoZSBhcyBDdXN0b21FdmVudDxQcnlTbmFja01lc3NhZ2U+KS5kZXRhaWw7XG4gICAgICAgIHByeU1lc3NhZ2UubWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJ5TWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgcHJ5TWVzc2FnZS5hY3Rpb24gPSAhIXByeU1lc3NhZ2UuYWN0aW9uID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcnlNZXNzYWdlLmFjdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChwcnlNZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLm1lc3NhZ2VFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgd2luZG93VGltZSgxMDAwKSxcbiAgICAgICAgc3dpdGNoTWFwKChzb3VyY2UpID0+IHNvdXJjZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCB2KSA9PiBlcXVhbChwLCB2KSkpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4gdGhpcy5ub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIHNldFJvb3RWaWV3Q29udGFpbmVyUmVmKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB0aGlzLnJvb3RWaWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lclJlZjtcbiAgfVxuXG4gIGRpc3BhdGNoT3BlbkV2ZW50KG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFBSWV9DVVNUT01FVkVOVF9UWVBFLCB7IGRldGFpbDogbWVzc2FnZSB9KSk7XG4gIH1cblxuICBjbG9zZU5vdGlmKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIGNvbnN0IG5vdGlmSW5kZXggPSB0aGlzLm5vdGlmUmVmLmZpbmRJbmRleCgobm90aWYpID0+IG5vdGlmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5kYXRhLmlkID09PSBtZXNzYWdlLmlkKTtcbiAgICBjb25zdCBlbGVtZW50VG9SZW1vdmUgPSB0aGlzLm5vdGlmUmVmLnNwbGljZShub3RpZkluZGV4LCAxKS5zaGlmdCgpO1xuICAgIGVsZW1lbnRUb1JlbW92ZSEuY29tcG9uZW50UmVmLmluc3RhbmNlLmhpZGRlbkZyb21BY3Rpb24gPSB0cnVlO1xuICAgIGVsZW1lbnRUb1JlbW92ZSEuY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGlvbkNsaWNrZWQuY29tcGxldGUoKTtcbiAgICBlbGVtZW50VG9SZW1vdmUhLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIGVsZW1lbnRUb1JlbW92ZSEuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLm5vdGlmUmVmLmZvckVhY2goKG5vdGlmUmVmLCBpbmRleCkgPT4ge1xuICAgICAgbm90aWZSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLmxpc3RJbmRleCA9IGluZGV4O1xuICAgIH0pO1xuICB9XG5cbiAgbm90TWl0aWdhdGVkT3BlbihtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UpOiBPYnNlcnZhYmxlPHZvaWQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZVxuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoUHJ5U25hY2tiYXJDb21wb25lbnQsIHRoaXMucm9vdFZpZXdDb250YWluZXIpO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IG92ZXJsYXlSZWYuYXR0YWNoKGNvbXBvbmVudFBvcnRhbCk7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmRhdGEgPSBtZXNzYWdlO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbm90aWYnKSB7XG4gICAgICBpZiAodGhpcy5ub3RpZlJlZi5sZW5ndGggPCA1KSB7XG4gICAgICAgIHRoaXMubm90aWZSZWYudW5zaGlmdCh7IGNvbXBvbmVudFJlZjogY29tcG9uZW50LCBvdmVybGF5UmVmIH0pO1xuICAgICAgICB0aGlzLm5vdGlmUmVmLmZvckVhY2goKG5vdGlmUmVmLCBpbmRleCkgPT4ge1xuICAgICAgICAgIG5vdGlmUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5saXN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubm90aWZSZWYubGVuZ3RoID09PSA1KSB7XG4gICAgICAgIGNvbnN0IG9sZGVyQ29tcG9uZW50ID0gdGhpcy5ub3RpZlJlZi5wb3AoKTtcbiAgICAgICAgb2xkZXJDb21wb25lbnQhLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRkZW5Gcm9tQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgb2xkZXJDb21wb25lbnQhLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5hY3Rpb25DbGlja2VkLmNvbXBsZXRlKCk7XG4gICAgICAgIG9sZGVyQ29tcG9uZW50IS5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgb2xkZXJDb21wb25lbnQhLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubm90aWZSZWYudW5zaGlmdCh7IGNvbXBvbmVudFJlZjogY29tcG9uZW50LCBvdmVybGF5UmVmIH0pO1xuICAgICAgICB0aGlzLm5vdGlmUmVmLmZvckVhY2goKG5vdGlmUmVmLCBpbmRleCkgPT4ge1xuICAgICAgICAgIG5vdGlmUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5saXN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQuY29tcGxldGUoKTtcbiAgICAgICAgb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICBjb21wb25lbnQuZGVzdHJveSgpO1xuICAgICAgfSwgMTAwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UubGlzdEluZGV4ID0gUHJ5U25hY2tiYXJTZXJ2aWNlLmNvdW50Kys7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLyogRmlyc3QgaGlkZSBjb21wb25lbnQgc28gaXQgdXNlcyBhbmltYXRpb24gKi9cbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmhpZGRlbkZyb21BY3Rpb24gPSB0cnVlO1xuICAgICAgICBQcnlTbmFja2JhclNlcnZpY2UuY291bnQtLTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLyogdGhlbiBjbGVhbiBieSByZW1vdmluZyBpdCAqL1xuICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICAgIGNvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgICAgIH0sIERFTEFZX0ZPUl9ISURFKTtcbiAgICAgIH0sIG1lc3NhZ2UudGltZW91dCA/PyBERUZBVUxUX01TR19USU1FT1VUKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQ7XG4gIH1cblxuICBvcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChtZXNzYWdlKTtcbiAgfVxufVxuIl19
@@ -2705,13 +2705,25 @@ class PrySnackbarComponent {
2705
2705
  this._data = message;
2706
2706
  this.cdRef.detectChanges();
2707
2707
  }
2708
- constructor(cdRef) {
2708
+ set listIndex(listIndex) {
2709
+ if (!!listIndex || listIndex === 0) {
2710
+ this._listIndex = listIndex;
2711
+ }
2712
+ this.getStyle();
2713
+ }
2714
+ get listIndex() {
2715
+ return this._listIndex;
2716
+ }
2717
+ constructor(cdRef, snackService, router) {
2709
2718
  this.cdRef = cdRef;
2719
+ this.snackService = snackService;
2720
+ this.router = router;
2710
2721
  this._data = { message: '', action: undefined, type: 'info', timeout: 3000 };
2711
- this.listIndex = 0;
2712
2722
  this.transformOptions = 'translate3d(-50%, 100%, 0px)';
2713
2723
  this.transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
2714
2724
  this.hiddenFromAction = false;
2725
+ this._listIndex = 0;
2726
+ this.snackStyle = { top: '' };
2715
2727
  }
2716
2728
  get data() {
2717
2729
  return this._data;
@@ -2719,12 +2731,25 @@ class PrySnackbarComponent {
2719
2731
  get typeClass() {
2720
2732
  return { ['-' + this.data.type]: true };
2721
2733
  }
2734
+ getStyle() {
2735
+ if (this.data.type === 'notif') {
2736
+ this.snackStyle = {
2737
+ top: (this.listIndex === 0 ? 60 : this.listIndex * 60 + 60) + 'px'
2738
+ };
2739
+ }
2740
+ else {
2741
+ this.snackStyle = {
2742
+ bottom: this.listIndex * 60 + 'px'
2743
+ };
2744
+ }
2745
+ }
2722
2746
  get icon() {
2723
2747
  const iconsDefs = {
2724
2748
  info: 'information-point',
2725
2749
  success: 'check',
2726
2750
  warning: 'warning',
2727
- error: 'close'
2751
+ error: 'close',
2752
+ notif: 'information-point'
2728
2753
  };
2729
2754
  return iconsDefs[this.data.type];
2730
2755
  }
@@ -2734,8 +2759,17 @@ class PrySnackbarComponent {
2734
2759
  hide() {
2735
2760
  this.hiddenFromAction = true;
2736
2761
  }
2737
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2738
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", listIndex: "listIndex", actionClicked: "actionClicked" }, ngImport: i0, template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
2762
+ openEvenement(data) {
2763
+ this.router.navigate([]).then(() => {
2764
+ const url = this.router.serializeUrl(this.router.createUrlTree(['', data.link]));
2765
+ window.open(url, '_blank');
2766
+ });
2767
+ }
2768
+ closeNotif(data) {
2769
+ this.snackService.closeNotif(data);
2770
+ }
2771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PrySnackbarService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2772
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", actionClicked: "actionClicked", listIndex: "listIndex" }, ngImport: i0, template: "@if (!hiddenFromAction) {\n @if (data.type === 'notif') {\n <div\n (click)=\"openEvenement(data)\"\n class=\"m-snackbar m-snackbar-notif\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <p class=\"a-p\">{{ data.message }}</p>\n <pry-icon (click)=\"closeNotif(data)\" class=\"notif-erase\" iconSvg=\"close\" [width]=\"18\" [height]=\"18\"> </pry-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n }\n}\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
2739
2773
  trigger('panelState', [
2740
2774
  transition('void => visible', [useAnimation(showAnimation)]),
2741
2775
  transition('visible => void', [useAnimation(hideAnimation)])
@@ -2749,13 +2783,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
2749
2783
  transition('void => visible', [useAnimation(showAnimation)]),
2750
2784
  transition('visible => void', [useAnimation(hideAnimation)])
2751
2785
  ])
2752
- ], template: "@if (!hiddenFromAction) {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style.bottom.px]=\"listIndex * 60\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n}\n" }]
2753
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{
2754
- type: Input
2755
- }], listIndex: [{
2786
+ ], template: "@if (!hiddenFromAction) {\n @if (data.type === 'notif') {\n <div\n (click)=\"openEvenement(data)\"\n class=\"m-snackbar m-snackbar-notif\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <p class=\"a-p\">{{ data.message }}</p>\n <pry-icon (click)=\"closeNotif(data)\" class=\"notif-erase\" iconSvg=\"close\" [width]=\"18\" [height]=\"18\"> </pry-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n [style]=\"snackStyle\"\n >\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n @if (!!data.action) {\n <button class=\"m-snackbar__action\" (click)=\"actionClick()\">{{ data.action }}</button>\n }\n </div>\n </div>\n }\n}\n" }]
2787
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: PrySnackbarService }, { type: i2.Router }], propDecorators: { data: [{
2756
2788
  type: Input
2757
2789
  }], actionClicked: [{
2758
2790
  type: Input
2791
+ }], listIndex: [{
2792
+ type: Input
2759
2793
  }] } });
2760
2794
 
2761
2795
  const DEFAULT_MSG_TIMEOUT = 3000;
@@ -2767,6 +2801,7 @@ class PrySnackbarService {
2767
2801
  this.overlay = overlay;
2768
2802
  this.translate = translate;
2769
2803
  this.messageEvents$ = new Subject();
2804
+ this.notifRef = [];
2770
2805
  // Allows to access snackbar from javascript, for example to manage Vega errors
2771
2806
  document.addEventListener(PRY_CUSTOMEVENT_TYPE, (e) => {
2772
2807
  const pryMessage = e.detail;
@@ -2784,26 +2819,63 @@ class PrySnackbarService {
2784
2819
  dispatchOpenEvent(message) {
2785
2820
  document.dispatchEvent(new CustomEvent(PRY_CUSTOMEVENT_TYPE, { detail: message }));
2786
2821
  }
2822
+ closeNotif(message) {
2823
+ const notifIndex = this.notifRef.findIndex((notif) => notif.componentRef.instance.data.id === message.id);
2824
+ const elementToRemove = this.notifRef.splice(notifIndex, 1).shift();
2825
+ elementToRemove.componentRef.instance.hiddenFromAction = true;
2826
+ elementToRemove.componentRef.instance.actionClicked.complete();
2827
+ elementToRemove.overlayRef.dispose();
2828
+ elementToRemove.componentRef.destroy();
2829
+ this.notifRef.forEach((notifRef, index) => {
2830
+ notifRef.componentRef.instance.listIndex = index;
2831
+ });
2832
+ }
2787
2833
  notMitigatedOpen(message) {
2788
- this.overlayRef = this.overlay.create(new OverlayConfig({
2834
+ const overlayRef = this.overlay.create(new OverlayConfig({
2789
2835
  hasBackdrop: false
2790
2836
  }));
2791
2837
  const componentPortal = new ComponentPortal(PrySnackbarComponent, this.rootViewContainer);
2792
- const component = this.overlayRef.attach(componentPortal);
2838
+ const component = overlayRef.attach(componentPortal);
2793
2839
  component.instance.data = message;
2794
- component.instance.listIndex = PrySnackbarService.count++;
2795
2840
  component.instance.actionClicked = new Subject();
2796
- setTimeout(() => {
2797
- /* First hide component so it uses animation */
2798
- component.instance.hiddenFromAction = true;
2799
- PrySnackbarService.count--;
2841
+ if (message.type === 'notif') {
2842
+ if (this.notifRef.length < 5) {
2843
+ this.notifRef.unshift({ componentRef: component, overlayRef });
2844
+ this.notifRef.forEach((notifRef, index) => {
2845
+ notifRef.componentRef.instance.listIndex = index;
2846
+ });
2847
+ }
2848
+ else if (this.notifRef.length === 5) {
2849
+ const olderComponent = this.notifRef.pop();
2850
+ olderComponent.componentRef.instance.hiddenFromAction = true;
2851
+ olderComponent.componentRef.instance.actionClicked.complete();
2852
+ olderComponent.overlayRef.dispose();
2853
+ olderComponent.componentRef.destroy();
2854
+ this.notifRef.unshift({ componentRef: component, overlayRef });
2855
+ this.notifRef.forEach((notifRef, index) => {
2856
+ notifRef.componentRef.instance.listIndex = index;
2857
+ });
2858
+ }
2800
2859
  setTimeout(() => {
2801
- /* then clean by removing it */
2802
2860
  component.instance.actionClicked.complete();
2803
- this.overlayRef?.dispose();
2861
+ overlayRef?.dispose();
2804
2862
  component.destroy();
2805
- }, DELAY_FOR_HIDE);
2806
- }, message.timeout ?? DEFAULT_MSG_TIMEOUT);
2863
+ }, 10000);
2864
+ }
2865
+ else {
2866
+ component.instance.listIndex = PrySnackbarService.count++;
2867
+ setTimeout(() => {
2868
+ /* First hide component so it uses animation */
2869
+ component.instance.hiddenFromAction = true;
2870
+ PrySnackbarService.count--;
2871
+ setTimeout(() => {
2872
+ /* then clean by removing it */
2873
+ component.instance.actionClicked.complete();
2874
+ overlayRef?.dispose();
2875
+ component.destroy();
2876
+ }, DELAY_FOR_HIDE);
2877
+ }, message.timeout ?? DEFAULT_MSG_TIMEOUT);
2878
+ }
2807
2879
  return component.instance.actionClicked;
2808
2880
  }
2809
2881
  open(message) {