@progress-chef/platform-shared-components 0.0.109 → 0.0.110

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.
@@ -5,6 +5,9 @@ export class ToastNotificationService {
5
5
  constructor(notificationService) {
6
6
  this.notificationService = notificationService;
7
7
  this.httpStatusHandledInHttpInterceptor = new Set([0, 202, 207, 401, 402, 403, 405, 500, 502, 503, 504]);
8
+ this.httpErrorStatusSet = new Set();
9
+ this.allSubscriptions = [];
10
+ this.errorNotifications = [];
8
11
  }
9
12
  /**
10
13
  * @param notification
@@ -28,15 +31,48 @@ export class ToastNotificationService {
28
31
  if (this.httpStatusHandledInHttpInterceptor.has(mergedNotification?.action?.payload?.error?.status || mergedNotification?.action?.payload?.response?.code)) {
29
32
  return;
30
33
  }
31
- this.notificationService.show({
32
- content: mergedNotification.content,
33
- cssClass: mergedNotification.cssClass,
34
- animation: mergedNotification.animation,
35
- position: mergedNotification.position,
36
- type: mergedNotification.type,
37
- closable: mergedNotification.closable,
38
- hideAfter: mergedNotification.hideAfter,
34
+ if (mergedNotification.type.style === 'error' && this.httpErrorStatusSet.has(mergedNotification.content)) {
35
+ return;
36
+ }
37
+ if (mergedNotification.type.style === 'error') {
38
+ this.httpErrorStatusSet.add(mergedNotification.content);
39
+ const notification = this.notificationService.show({
40
+ content: mergedNotification.content,
41
+ cssClass: mergedNotification.cssClass,
42
+ animation: mergedNotification.animation,
43
+ position: mergedNotification.position,
44
+ type: mergedNotification.type,
45
+ closable: mergedNotification.closable,
46
+ hideAfter: mergedNotification.hideAfter,
47
+ });
48
+ this.errorNotifications.push(notification);
49
+ if (notification && notification.afterHide) {
50
+ let notificationAfterHideSubscription = notification.afterHide.subscribe(() => {
51
+ this.httpErrorStatusSet.delete(mergedNotification.content);
52
+ notificationAfterHideSubscription.unsubscribe();
53
+ });
54
+ }
55
+ }
56
+ else {
57
+ this.notificationService.show({
58
+ content: mergedNotification.content,
59
+ cssClass: mergedNotification.cssClass,
60
+ animation: mergedNotification.animation,
61
+ position: mergedNotification.position,
62
+ type: mergedNotification.type,
63
+ closable: mergedNotification.closable,
64
+ hideAfter: mergedNotification.hideAfter,
65
+ });
66
+ }
67
+ }
68
+ hideErrorToastNotifications() {
69
+ this.errorNotifications.forEach((notification) => {
70
+ notification.hide();
39
71
  });
72
+ this.errorNotifications = [];
73
+ }
74
+ ngOnDestroy() {
75
+ this.allSubscriptions.forEach((subs) => subs.unsubscribe());
40
76
  }
41
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastNotificationService, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
78
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastNotificationService, providedIn: 'root' }); }
@@ -47,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
83
  providedIn: 'root',
48
84
  }]
49
85
  }], ctorParameters: function () { return [{ type: i1.NotificationService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qtbm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9hdG9tcy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7O0FBaUJ4RCxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRjVELHVDQUFrQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFcEMsQ0FBQztJQUVqRTs7Ozs7Ozs7T0FRRztJQUVJLHFCQUFxQixDQUFDLFlBQStCO1FBQzFELE1BQU0sbUJBQW1CLEdBQXNCO1lBQzdDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQzNDLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDdEMsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLElBQUksa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDMUosT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUM1QixPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztZQUNuQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtZQUNyQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsU0FBUztZQUN2QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtZQUNyQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSTtZQUM3QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtZQUNyQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsU0FBUztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXZDVSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzs0RkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ub3RpZmljYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0Tm90aWZpY2F0aW9uIHtcbiAgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IEZ1bmN0aW9uLFxuICBjc3NDbGFzcz86IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfCBPYmplY3QsXG4gIGFuaW1hdGlvbj86IGFueSxcbiAgcG9zaXRpb24/OiBhbnksXG4gIHR5cGU/OiBhbnksXG4gIGNsb3NhYmxlPzogYm9vbGVhbixcbiAgaGlkZUFmdGVyPzogbnVtYmVyXG4gIGFjdGlvbjogYW55XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuXG4gIGh0dHBTdGF0dXNIYW5kbGVkSW5IdHRwSW50ZXJjZXB0b3IgPSBuZXcgU2V0KFswLCAyMDIsIDIwNywgNDAxLCA0MDIsIDQwMywgNDA1LCA1MDAsIDUwMiwgNTAzLCA1MDRdKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIFxuICAgKiBkZWZhdWx0IG5vdGlmaWNhdGlvbiBjb25maWc6XG4gICAqIC0gY29udGVudDogJycsXG4gICAqIC0gYW5pbWF0aW9uOiB7IHR5cGU6ICdzbGlkZScsIGR1cmF0aW9uOiA0MDAgfSxcbiAgICogLSBwb3NpdGlvbjogeyBob3Jpem9udGFsOiAnY2VudGVyJywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAqIC0gdHlwZTogeyBzdHlsZTogJ3N1Y2Nlc3MnLCBpY29uOiB0cnVlIH0sXG4gICAqIC0gaGlkZUFmdGVyOiA0MDAwLFxuICAgKi9cblxuICBwdWJsaWMgc2hvd1RvYXN0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogVG9hc3ROb3RpZmljYXRpb24pIHtcbiAgICBjb25zdCBkZWZhdWx0Tm90aWZpY2F0aW9uOiBUb2FzdE5vdGlmaWNhdGlvbiA9IHtcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgYW5pbWF0aW9uOiB7IHR5cGU6ICdzbGlkZScsIGR1cmF0aW9uOiA0MDAgfSxcbiAgICAgIHBvc2l0aW9uOiB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgIHR5cGU6IHsgc3R5bGU6ICdzdWNjZXNzJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgaGlkZUFmdGVyOiA0MDAwLFxuICAgICAgYWN0aW9uOiB7fVxuICAgIH1cbiAgICBjb25zdCBtZXJnZWROb3RpZmljYXRpb24gPSB7IC4uLmRlZmF1bHROb3RpZmljYXRpb24sIC4uLm5vdGlmaWNhdGlvbiB9O1xuICAgIGlmICh0aGlzLmh0dHBTdGF0dXNIYW5kbGVkSW5IdHRwSW50ZXJjZXB0b3IuaGFzKG1lcmdlZE5vdGlmaWNhdGlvbj8uYWN0aW9uPy5wYXlsb2FkPy5lcnJvcj8uc3RhdHVzIHx8IG1lcmdlZE5vdGlmaWNhdGlvbj8uYWN0aW9uPy5wYXlsb2FkPy5yZXNwb25zZT8uY29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdyh7XG4gICAgICBjb250ZW50OiBtZXJnZWROb3RpZmljYXRpb24uY29udGVudCxcbiAgICAgIGNzc0NsYXNzOiBtZXJnZWROb3RpZmljYXRpb24uY3NzQ2xhc3MsXG4gICAgICBhbmltYXRpb246IG1lcmdlZE5vdGlmaWNhdGlvbi5hbmltYXRpb24sXG4gICAgICBwb3NpdGlvbjogbWVyZ2VkTm90aWZpY2F0aW9uLnBvc2l0aW9uLFxuICAgICAgdHlwZTogbWVyZ2VkTm90aWZpY2F0aW9uLnR5cGUsXG4gICAgICBjbG9zYWJsZTogbWVyZ2VkTm90aWZpY2F0aW9uLmNsb3NhYmxlLFxuICAgICAgaGlkZUFmdGVyOiBtZXJnZWROb3RpZmljYXRpb24uaGlkZUFmdGVyLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qtbm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9hdG9tcy90b2FzdC1ub3RpZmljYXRpb24vdG9hc3Qtbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxlQUFlLENBQUM7OztBQWtCbkUsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQyxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUw1RCx1Q0FBa0MsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQW1CLEVBQUUsQ0FBQztRQUN0Qyx1QkFBa0IsR0FBc0IsRUFBRSxDQUFDO0lBRXFCLENBQUM7SUFFakU7Ozs7Ozs7O09BUUc7SUFFSSxxQkFBcUIsQ0FBQyxZQUErQjtRQUMxRCxNQUFNLG1CQUFtQixHQUFzQjtZQUM3QyxPQUFPLEVBQUUsRUFBRTtZQUNYLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUMzQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDbkQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3RDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxFQUFFLEVBQUU7U0FDWCxD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bmplY3RhYmxlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25SZWYsIE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3ROb3RpZmljYXRpb24ge1xuICBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgRnVuY3Rpb24sXG4gIGNzc0NsYXNzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiB8IE9iamVjdCxcbiAgYW5pbWF0aW9uPzogYW55LFxuICBwb3NpdGlvbj86IGFueSxcbiAgdHlwZT86IGFueSxcbiAgY2xvc2FibGU/OiBib29sZWFuLFxuICBoaWRlQWZ0ZXI/OiBudW1iZXJcbiAgYWN0aW9uOiBhbnlcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgaHR0cFN0YXR1c0hhbmRsZWRJbkh0dHBJbnRlcmNlcHRvciA9IG5ldyBTZXQoWzAsIDIwMiwgMjA3LCA0MDEsIDQwMiwgNDAzLCA0MDUsIDUwMCwgNTAyLCA1MDMsIDUwNF0pO1xuICBodHRwRXJyb3JTdGF0dXNTZXQgPSBuZXcgU2V0KCk7XG4gIGFsbFN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIGVycm9yTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uUmVmW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIFxuICAgKiBkZWZhdWx0IG5vdGlmaWNhdGlvbiBjb25maWc6XG4gICAqIC0gY29udGVudDogJycsXG4gICAqIC0gYW5pbWF0aW9uOiB7IHR5cGU6ICdzbGlkZScsIGR1cmF0aW9uOiA0MDAgfSxcbiAgICogLSBwb3NpdGlvbjogeyBob3Jpem9udGFsOiAnY2VudGVyJywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAqIC0gdHlwZTogeyBzdHlsZTogJ3N1Y2Nlc3MnLCBpY29uOiB0cnVlIH0sXG4gICAqIC0gaGlkZUFmdGVyOiA0MDAwLFxuICAgKi9cblxuICBwdWJsaWMgc2hvd1RvYXN0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogVG9hc3ROb3RpZmljYXRpb24pIHtcbiAgICBjb25zdCBkZWZhdWx0Tm90aWZpY2F0aW9uOiBUb2FzdE5vdGlmaWNhdGlvbiA9IHtcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgYW5pbWF0aW9uOiB7IHR5cGU6ICdzbGlkZScsIGR1cmF0aW9uOiA0MDAgfSxcbiAgICAgIHBvc2l0aW9uOiB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgIHR5cGU6IHsgc3R5bGU6ICdzdWNjZXNzJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgaGlkZUFmdGVyOiA0MDAwLFxuICAgICAgYWN0aW9uOiB7fVxuICAgIH1cbiAgICBjb25zdCBtZXJnZWROb3RpZmljYXRpb24gPSB7IC4uLmRlZmF1bHROb3RpZmljYXRpb24sIC4uLm5vdGlmaWNhdGlvbiB9O1xuICAgIGlmICh0aGlzLmh0dHBTdGF0dXNIYW5kbGVkSW5IdHRwSW50ZXJjZXB0b3IuaGFzKG1lcmdlZE5vdGlmaWNhdGlvbj8uYWN0aW9uPy5wYXlsb2FkPy5lcnJvcj8uc3RhdHVzIHx8IG1lcmdlZE5vdGlmaWNhdGlvbj8uYWN0aW9uPy5wYXlsb2FkPy5yZXNwb25zZT8uY29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihtZXJnZWROb3RpZmljYXRpb24udHlwZS5zdHlsZSA9PT0gJ2Vycm9yJyAmJiB0aGlzLmh0dHBFcnJvclN0YXR1c1NldC5oYXMobWVyZ2VkTm90aWZpY2F0aW9uLmNvbnRlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYobWVyZ2VkTm90aWZpY2F0aW9uLnR5cGUuc3R5bGUgPT09ICdlcnJvcicpIHsgXG4gICAgICB0aGlzLmh0dHBFcnJvclN0YXR1c1NldC5hZGQobWVyZ2VkTm90aWZpY2F0aW9uLmNvbnRlbnQpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25SZWYgPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIGNvbnRlbnQ6IG1lcmdlZE5vdGlmaWNhdGlvbi5jb250ZW50LFxuICAgICAgICBjc3NDbGFzczogbWVyZ2VkTm90aWZpY2F0aW9uLmNzc0NsYXNzLFxuICAgICAgICBhbmltYXRpb246IG1lcmdlZE5vdGlmaWNhdGlvbi5hbmltYXRpb24sXG4gICAgICAgIHBvc2l0aW9uOiBtZXJnZWROb3RpZmljYXRpb24ucG9zaXRpb24sXG4gICAgICAgIHR5cGU6IG1lcmdlZE5vdGlmaWNhdGlvbi50eXBlLFxuICAgICAgICBjbG9zYWJsZTogbWVyZ2VkTm90aWZpY2F0aW9uLmNsb3NhYmxlLFxuICAgICAgICBoaWRlQWZ0ZXI6IG1lcmdlZE5vdGlmaWNhdGlvbi5oaWRlQWZ0ZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXJyb3JOb3RpZmljYXRpb25zLnB1c2gobm90aWZpY2F0aW9uKTtcbiAgICAgIGlmIChub3RpZmljYXRpb24gJiYgbm90aWZpY2F0aW9uLmFmdGVySGlkZSkge1xuICAgICAgICBsZXQgbm90aWZpY2F0aW9uQWZ0ZXJIaWRlU3Vic2NyaXB0aW9uID0gbm90aWZpY2F0aW9uLmFmdGVySGlkZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaHR0cEVycm9yU3RhdHVzU2V0LmRlbGV0ZShtZXJnZWROb3RpZmljYXRpb24uY29udGVudCk7XG4gICAgICAgICAgbm90aWZpY2F0aW9uQWZ0ZXJIaWRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIGNvbnRlbnQ6IG1lcmdlZE5vdGlmaWNhdGlvbi5jb250ZW50LFxuICAgICAgICBjc3NDbGFzczogbWVyZ2VkTm90aWZpY2F0aW9uLmNzc0NsYXNzLFxuICAgICAgICBhbmltYXRpb246IG1lcmdlZE5vdGlmaWNhdGlvbi5hbmltYXRpb24sXG4gICAgICAgIHBvc2l0aW9uOiBtZXJnZWROb3RpZmljYXRpb24ucG9zaXRpb24sXG4gICAgICAgIHR5cGU6IG1lcmdlZE5vdGlmaWNhdGlvbi50eXBlLFxuICAgICAgICBjbG9zYWJsZTogbWVyZ2VkTm90aWZpY2F0aW9uLmNsb3NhYmxlLFxuICAgICAgICBoaWRlQWZ0ZXI6IG1lcmdlZE5vdGlmaWNhdGlvbi5oaWRlQWZ0ZXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZUVycm9yVG9hc3ROb3RpZmljYXRpb25zKCkge1xuICAgIHRoaXMuZXJyb3JOb3RpZmljYXRpb25zLmZvckVhY2goKG5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgbm90aWZpY2F0aW9uLmhpZGUoKTtcbiAgICB9KTtcbiAgICB0aGlzLmVycm9yTm90aWZpY2F0aW9ucyA9IFtdO1xuICB9XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmFsbFN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3VicykgPT4gc3Vicy51bnN1YnNjcmliZSgpKVxuICB9XG59XG4iXX0=
@@ -66,6 +66,9 @@ class ToastNotificationService {
66
66
  constructor(notificationService) {
67
67
  this.notificationService = notificationService;
68
68
  this.httpStatusHandledInHttpInterceptor = new Set([0, 202, 207, 401, 402, 403, 405, 500, 502, 503, 504]);
69
+ this.httpErrorStatusSet = new Set();
70
+ this.allSubscriptions = [];
71
+ this.errorNotifications = [];
69
72
  }
70
73
  /**
71
74
  * @param notification
@@ -89,15 +92,48 @@ class ToastNotificationService {
89
92
  if (this.httpStatusHandledInHttpInterceptor.has(mergedNotification?.action?.payload?.error?.status || mergedNotification?.action?.payload?.response?.code)) {
90
93
  return;
91
94
  }
92
- this.notificationService.show({
93
- content: mergedNotification.content,
94
- cssClass: mergedNotification.cssClass,
95
- animation: mergedNotification.animation,
96
- position: mergedNotification.position,
97
- type: mergedNotification.type,
98
- closable: mergedNotification.closable,
99
- hideAfter: mergedNotification.hideAfter,
95
+ if (mergedNotification.type.style === 'error' && this.httpErrorStatusSet.has(mergedNotification.content)) {
96
+ return;
97
+ }
98
+ if (mergedNotification.type.style === 'error') {
99
+ this.httpErrorStatusSet.add(mergedNotification.content);
100
+ const notification = this.notificationService.show({
101
+ content: mergedNotification.content,
102
+ cssClass: mergedNotification.cssClass,
103
+ animation: mergedNotification.animation,
104
+ position: mergedNotification.position,
105
+ type: mergedNotification.type,
106
+ closable: mergedNotification.closable,
107
+ hideAfter: mergedNotification.hideAfter,
108
+ });
109
+ this.errorNotifications.push(notification);
110
+ if (notification && notification.afterHide) {
111
+ let notificationAfterHideSubscription = notification.afterHide.subscribe(() => {
112
+ this.httpErrorStatusSet.delete(mergedNotification.content);
113
+ notificationAfterHideSubscription.unsubscribe();
114
+ });
115
+ }
116
+ }
117
+ else {
118
+ this.notificationService.show({
119
+ content: mergedNotification.content,
120
+ cssClass: mergedNotification.cssClass,
121
+ animation: mergedNotification.animation,
122
+ position: mergedNotification.position,
123
+ type: mergedNotification.type,
124
+ closable: mergedNotification.closable,
125
+ hideAfter: mergedNotification.hideAfter,
126
+ });
127
+ }
128
+ }
129
+ hideErrorToastNotifications() {
130
+ this.errorNotifications.forEach((notification) => {
131
+ notification.hide();
100
132
  });
133
+ this.errorNotifications = [];
134
+ }
135
+ ngOnDestroy() {
136
+ this.allSubscriptions.forEach((subs) => subs.unsubscribe());
101
137
  }
102
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastNotificationService, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
103
139
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastNotificationService, providedIn: 'root' }); }