new-front-common-library 18.0.2-REF2 → 18.0.2-REF4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/_global.scss +11 -0
- package/esm2022/lib/util/component/header/settings/settings.component.mjs +3 -3
- package/esm2022/lib/util/component/notification/notification-bar.component.mjs +4 -3
- package/esm2022/lib/util/enums/notification-classification.enum.mjs +7 -0
- package/esm2022/lib/util/models/notification.model.mjs +1 -1
- package/esm2022/lib/util/pipes/notification-classification-icon.pipe.mjs +24 -0
- package/esm2022/lib/util/services/auth/auth.service.mjs +1 -1
- package/esm2022/lib/util/services/notification/notification.service.mjs +4 -8
- package/esm2022/lib/util/util.module.mjs +14 -7
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/new-front-common-library.mjs +48 -18
- package/fesm2022/new-front-common-library.mjs.map +1 -1
- package/lib/util/enums/notification-classification.enum.d.ts +5 -0
- package/lib/util/models/notification.model.d.ts +2 -1
- package/lib/util/pipes/notification-classification-icon.pipe.d.ts +8 -0
- package/lib/util/services/auth/auth.service.d.ts +1 -1
- package/lib/util/services/notification/notification.service.d.ts +0 -2
- package/lib/util/util.module.d.ts +18 -17
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -2565,7 +2565,7 @@ class SettingsComponent {
|
|
|
2565
2565
|
this.redirect.emit({ module: module, route: route });
|
|
2566
2566
|
}
|
|
2567
2567
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2568
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: SettingsComponent, selector: "sc-settings", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { redirect: "redirect" }, ngImport: i0, template: "<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track
|
|
2568
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: SettingsComponent, selector: "sc-settings", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { redirect: "redirect" }, ngImport: i0, template: "<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track language) {\n @if (lang() !== language) {\n <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\n <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\n <span>{{ language }}</span>\n </button>\n }\n }\n\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--NOTIFICATIONS-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n</mat-menu>\n", styles: [".header-icon{color:#009ef7;cursor:pointer;text-align:center;margin:0 4px}.header-separator{display:inline-block;height:25%}.global-search-separator{display:inline-block;height:70%;border-right:2px solid #D3DFEC}:host-context(.dark-theme){background-color:#2a2d3e}:host-context(.dark-theme) .global-search{background:#34384c}:host-context(.dark-theme) .global-search-input{background:#34384c}:host-context(.dark-theme) .global-search-separator{border-right:2px solid #2A2D3E}:host-context(.dark-theme) .header-separator{border-right:2px solid #111219}::ng-deep .dark-theme .mat-autocomplete-global-search{background:#2a2d3e!important}::ng-deep .dark-theme .mat-mdc-option.mat-option-global-search:focus:not(.mat-option-disabled){background:#212332!important;color:#fff!important}::ng-deep .dark-theme .mat-mdc-option.mat-option-global-search{color:#fff!important}::ng-deep .dark-theme .global-search-input::placeholder{color:#a1b7d4!important}:host-context(.light-theme){background-color:#fff}:host-context(.light-theme) .global-search{background:#eff3f6}:host-context(.light-theme) .global-search-input{background:#eff3f6}:host-context(.light-theme) .global-search-separator{border-right:2px solid #D3DFEC}:host-context(.light-theme) .header-separator{border-right:2px solid #D3DFEC}:host-context(.light-theme) .global-search-input::placeholder{color:#445d7b!important}:host-context(.light-theme) .mat-toolbar{background-color:#fff}::ng-deep .light-theme .mat-mdc-option.mat-option-global-search:hover:not(.mdc-list-item--disabled){background:#d3dfec!important}.logo-unity{height:48px;width:48px}.global-search .header-icon{margin:0 10px}.global-search{display:flex;align-items:center;height:40px;background:#eff3f6;margin-left:5px;border-radius:8px;flex:1 1 0;width:auto;min-width:0}.global-search-input{background:#f3f6f9;border:none;margin-left:10px;font-size:14px!important}.global-search-input :focus{outline:none}.advanced-button{background:#7c87ff!important;color:#fff!important;width:90px;min-width:90px!important;height:24px!important;box-shadow:0 2px 6px #445d7b29,inset 0 2px 6px #ffffff14,inset 0 -2px 4px #445d7b0f;margin-right:5px;padding:0}.advanced-button .mat-icon{color:#fff!important;font-size:14px!important;height:unset;width:unset;margin-right:0}.connected-as{font-size:12px}.user-thumb{margin-right:16px;width:40px;height:40px}#env-dev,#env-uat,#env-sbx,#env-local{background-color:#809ec1;color:#fff}.env{color:#fff;font-size:10px;border-radius:1px;padding:0 5px;line-height:16px;height:16px}.global-search-input::placeholder{font-style:italic!important;font-weight:700!important}.mat-option-global-search{height:30px!important;line-height:15px!important;padding:0 8px}::ng-deep .global-search .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .global-search .mat-mdc-form-field .mat-mdc-text-field-wrapper{background-color:transparent!important}::ng-deep .global-search .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-focus-overlay{opacity:0!important}::ng-deep .global-search .mdc-line-ripple{display:none!important}::ng-deep .global-search .mat-mdc-form-field-infix{min-height:40px!important;padding-top:8px!important;padding-bottom:8px!important}.max-width-0{flex:1 1 0%;max-width:0%}.max-width-5{flex:1 1 5%;max-width:5%}.max-width-10{flex:1 1 10%;max-width:10%}.max-width-15{flex:1 1 15%;max-width:15%}.max-width-20{flex:1 1 20%;max-width:20%}.max-width-25{flex:1 1 25%;max-width:25%}.max-width-30{flex:1 1 30%;max-width:30%}.max-width-35{flex:1 1 35%;max-width:35%}.max-width-40{flex:1 1 40%;max-width:40%}.max-width-45{flex:1 1 45%;max-width:45%}.max-width-50{flex:1 1 50%;max-width:50%}.max-width-55{flex:1 1 55%;max-width:55%}.max-width-60{flex:1 1 60%;max-width:60%}.max-width-65{flex:1 1 65%;max-width:65%}.max-width-70{flex:1 1 70%;max-width:70%}.max-width-75{flex:1 1 75%;max-width:75%}.max-width-80{flex:1 1 80%;max-width:80%}.max-width-85{flex:1 1 85%;max-width:85%}.max-width-90{flex:1 1 90%;max-width:90%}.max-width-95{flex:1 1 95%;max-width:95%}.max-width-100{flex:1 1 100%;max-width:100%}.spacer{flex:1 1 auto}.toolbar-header{height:64px;position:absolute;padding:0 16px!important;z-index:999}.menu-header{max-width:70%;overflow:hidden;max-height:60px}::ng-deep .settings-menu.mat-mdc-menu-panel .mat-mdc-menu-item .mat-icon{height:24px;width:24px;display:flex;justify-content:center;align-items:center;margin-right:15px;font-size:18px}::ng-deep .settings-menu.mat-mdc-menu-panel .img-btn .mat-mdc-menu-item-text{display:flex;justify-content:start;align-items:center}::ng-deep .settings-menu.mat-mdc-menu-panel .img-btn img{height:12px!important;width:auto!important;display:block!important;padding-left:3px;margin-right:17px!important}.theme-icon{font-size:24px!important}\n"], dependencies: [{ kind: "directive", type: i3$1.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i1$3.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "pipe", type: CommonTranslatePipe, name: "commonTranslate" }] }); }
|
|
2569
2569
|
}
|
|
2570
2570
|
__decorate([
|
|
2571
2571
|
Theme()
|
|
@@ -2575,7 +2575,7 @@ __decorate([
|
|
|
2575
2575
|
], SettingsComponent.prototype, "user", void 0);
|
|
2576
2576
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
2577
2577
|
type: Component,
|
|
2578
|
-
args: [{ selector: 'sc-settings', template: "<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track
|
|
2578
|
+
args: [{ selector: 'sc-settings', template: "<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track language) {\n @if (lang() !== language) {\n <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\n <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\n <span>{{ language }}</span>\n </button>\n }\n }\n\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--NOTIFICATIONS-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n</mat-menu>\n", styles: [".header-icon{color:#009ef7;cursor:pointer;text-align:center;margin:0 4px}.header-separator{display:inline-block;height:25%}.global-search-separator{display:inline-block;height:70%;border-right:2px solid #D3DFEC}:host-context(.dark-theme){background-color:#2a2d3e}:host-context(.dark-theme) .global-search{background:#34384c}:host-context(.dark-theme) .global-search-input{background:#34384c}:host-context(.dark-theme) .global-search-separator{border-right:2px solid #2A2D3E}:host-context(.dark-theme) .header-separator{border-right:2px solid #111219}::ng-deep .dark-theme .mat-autocomplete-global-search{background:#2a2d3e!important}::ng-deep .dark-theme .mat-mdc-option.mat-option-global-search:focus:not(.mat-option-disabled){background:#212332!important;color:#fff!important}::ng-deep .dark-theme .mat-mdc-option.mat-option-global-search{color:#fff!important}::ng-deep .dark-theme .global-search-input::placeholder{color:#a1b7d4!important}:host-context(.light-theme){background-color:#fff}:host-context(.light-theme) .global-search{background:#eff3f6}:host-context(.light-theme) .global-search-input{background:#eff3f6}:host-context(.light-theme) .global-search-separator{border-right:2px solid #D3DFEC}:host-context(.light-theme) .header-separator{border-right:2px solid #D3DFEC}:host-context(.light-theme) .global-search-input::placeholder{color:#445d7b!important}:host-context(.light-theme) .mat-toolbar{background-color:#fff}::ng-deep .light-theme .mat-mdc-option.mat-option-global-search:hover:not(.mdc-list-item--disabled){background:#d3dfec!important}.logo-unity{height:48px;width:48px}.global-search .header-icon{margin:0 10px}.global-search{display:flex;align-items:center;height:40px;background:#eff3f6;margin-left:5px;border-radius:8px;flex:1 1 0;width:auto;min-width:0}.global-search-input{background:#f3f6f9;border:none;margin-left:10px;font-size:14px!important}.global-search-input :focus{outline:none}.advanced-button{background:#7c87ff!important;color:#fff!important;width:90px;min-width:90px!important;height:24px!important;box-shadow:0 2px 6px #445d7b29,inset 0 2px 6px #ffffff14,inset 0 -2px 4px #445d7b0f;margin-right:5px;padding:0}.advanced-button .mat-icon{color:#fff!important;font-size:14px!important;height:unset;width:unset;margin-right:0}.connected-as{font-size:12px}.user-thumb{margin-right:16px;width:40px;height:40px}#env-dev,#env-uat,#env-sbx,#env-local{background-color:#809ec1;color:#fff}.env{color:#fff;font-size:10px;border-radius:1px;padding:0 5px;line-height:16px;height:16px}.global-search-input::placeholder{font-style:italic!important;font-weight:700!important}.mat-option-global-search{height:30px!important;line-height:15px!important;padding:0 8px}::ng-deep .global-search .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .global-search .mat-mdc-form-field .mat-mdc-text-field-wrapper{background-color:transparent!important}::ng-deep .global-search .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-focus-overlay{opacity:0!important}::ng-deep .global-search .mdc-line-ripple{display:none!important}::ng-deep .global-search .mat-mdc-form-field-infix{min-height:40px!important;padding-top:8px!important;padding-bottom:8px!important}.max-width-0{flex:1 1 0%;max-width:0%}.max-width-5{flex:1 1 5%;max-width:5%}.max-width-10{flex:1 1 10%;max-width:10%}.max-width-15{flex:1 1 15%;max-width:15%}.max-width-20{flex:1 1 20%;max-width:20%}.max-width-25{flex:1 1 25%;max-width:25%}.max-width-30{flex:1 1 30%;max-width:30%}.max-width-35{flex:1 1 35%;max-width:35%}.max-width-40{flex:1 1 40%;max-width:40%}.max-width-45{flex:1 1 45%;max-width:45%}.max-width-50{flex:1 1 50%;max-width:50%}.max-width-55{flex:1 1 55%;max-width:55%}.max-width-60{flex:1 1 60%;max-width:60%}.max-width-65{flex:1 1 65%;max-width:65%}.max-width-70{flex:1 1 70%;max-width:70%}.max-width-75{flex:1 1 75%;max-width:75%}.max-width-80{flex:1 1 80%;max-width:80%}.max-width-85{flex:1 1 85%;max-width:85%}.max-width-90{flex:1 1 90%;max-width:90%}.max-width-95{flex:1 1 95%;max-width:95%}.max-width-100{flex:1 1 100%;max-width:100%}.spacer{flex:1 1 auto}.toolbar-header{height:64px;position:absolute;padding:0 16px!important;z-index:999}.menu-header{max-width:70%;overflow:hidden;max-height:60px}::ng-deep .settings-menu.mat-mdc-menu-panel .mat-mdc-menu-item .mat-icon{height:24px;width:24px;display:flex;justify-content:center;align-items:center;margin-right:15px;font-size:18px}::ng-deep .settings-menu.mat-mdc-menu-panel .img-btn .mat-mdc-menu-item-text{display:flex;justify-content:start;align-items:center}::ng-deep .settings-menu.mat-mdc-menu-panel .img-btn img{height:12px!important;width:auto!important;display:block!important;padding-left:3px;margin-right:17px!important}.theme-icon{font-size:24px!important}\n"] }]
|
|
2579
2579
|
}], propDecorators: { theme: [], user: [] } });
|
|
2580
2580
|
|
|
2581
2581
|
class NotificationApiService {
|
|
@@ -2626,13 +2626,10 @@ class NotificationService {
|
|
|
2626
2626
|
this.notificationSubject = new BehaviorSubject(null);
|
|
2627
2627
|
// Observable for components to subscribe to messages
|
|
2628
2628
|
this.notifications$ = this.notificationSubject.asObservable();
|
|
2629
|
-
// Subject to track the connection status (connected/disconnected)
|
|
2630
|
-
this.connectionSubject = new BehaviorSubject(false);
|
|
2631
|
-
this.apiUrl = this.config.api_url + NOTIFICATION_WEBSOCKET_URL;
|
|
2632
2629
|
authService.isAuthenticated$.subscribe(isAuthenticated => {
|
|
2633
2630
|
if (isAuthenticated) {
|
|
2634
2631
|
this.fetchLiveNotifications();
|
|
2635
|
-
this.subscribeToNotifications();
|
|
2632
|
+
this.subscribeToNotifications(this.config.api_url + NOTIFICATION_WEBSOCKET_URL);
|
|
2636
2633
|
}
|
|
2637
2634
|
});
|
|
2638
2635
|
}
|
|
@@ -2654,12 +2651,12 @@ class NotificationService {
|
|
|
2654
2651
|
.forEach(notification => this.handleNotification(notification));
|
|
2655
2652
|
});
|
|
2656
2653
|
}
|
|
2657
|
-
subscribeToNotifications() {
|
|
2654
|
+
subscribeToNotifications(wsApiUrl) {
|
|
2658
2655
|
if (this.stompClient) {
|
|
2659
2656
|
return;
|
|
2660
2657
|
}
|
|
2661
2658
|
// Start listening for new notifications
|
|
2662
|
-
const socket = new SockJS(
|
|
2659
|
+
const socket = new SockJS(wsApiUrl); // Initialize the SockJS WebSocket connection to the server
|
|
2663
2660
|
// Configure the STOMP client with connection details
|
|
2664
2661
|
this.stompClient = new Client$1({
|
|
2665
2662
|
webSocketFactory: () => socket, // Use SockJS as the WebSocket factory
|
|
@@ -2671,7 +2668,6 @@ class NotificationService {
|
|
|
2671
2668
|
}
|
|
2672
2669
|
// On successful connection
|
|
2673
2670
|
this.stompClient.onConnect = () => {
|
|
2674
|
-
this.connectionSubject.next(true);
|
|
2675
2671
|
// Register notification callback
|
|
2676
2672
|
this.stompClient.subscribe(NOTIFICATION_TOPIC, (message) => {
|
|
2677
2673
|
const notification = JSON.parse(message.body);
|
|
@@ -2708,6 +2704,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
2708
2704
|
args: [WEB_CONFIG]
|
|
2709
2705
|
}] }, { type: NotificationApiService }, { type: LocalStorageService }, { type: AuthService }], propDecorators: { user: [] } });
|
|
2710
2706
|
|
|
2707
|
+
var NotificationClassification;
|
|
2708
|
+
(function (NotificationClassification) {
|
|
2709
|
+
NotificationClassification["INFO"] = "INFO";
|
|
2710
|
+
NotificationClassification["FEAT"] = "FEAT";
|
|
2711
|
+
NotificationClassification["MAINT"] = "MAINT";
|
|
2712
|
+
})(NotificationClassification || (NotificationClassification = {}));
|
|
2713
|
+
|
|
2714
|
+
class NotificationClassificationIconPipe {
|
|
2715
|
+
transform(value) {
|
|
2716
|
+
switch (value) {
|
|
2717
|
+
case NotificationClassification.INFO:
|
|
2718
|
+
return 'info';
|
|
2719
|
+
case NotificationClassification.FEAT:
|
|
2720
|
+
return 'rocket_launch';
|
|
2721
|
+
case NotificationClassification.MAINT:
|
|
2722
|
+
return 'warning_amber';
|
|
2723
|
+
default:
|
|
2724
|
+
return 'question_mark';
|
|
2725
|
+
}
|
|
2726
|
+
}
|
|
2727
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationClassificationIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2728
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: NotificationClassificationIconPipe, name: "notificationClassificationIconPipe" }); }
|
|
2729
|
+
}
|
|
2730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationClassificationIconPipe, decorators: [{
|
|
2731
|
+
type: Pipe,
|
|
2732
|
+
args: [{ name: 'notificationClassificationIconPipe' }]
|
|
2733
|
+
}] });
|
|
2734
|
+
|
|
2711
2735
|
class NotificationBarComponent {
|
|
2712
2736
|
constructor() {
|
|
2713
2737
|
this.lang = input();
|
|
@@ -2731,11 +2755,11 @@ class NotificationBarComponent {
|
|
|
2731
2755
|
this.notifications.splice(index, 1);
|
|
2732
2756
|
}
|
|
2733
2757
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2734
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
2758
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: NotificationBarComponent, selector: "notification-bar", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"notification-bar-container\">\n @for (notification of notifications; track notification) {\n <div class=\"notification-bar\" [ngClass]=\"'notification-classification-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n {{ notification.classification | notificationClassificationIconPipe }}\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-bar-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n }\n</div>\n", styles: [":host{position:relative}.notification-bar-container{display:block;left:0;overflow:hidden;right:0;width:100%}.notification-bar-container *{box-sizing:border-box;margin:0;padding:0}.notification-bar-container .notification-bar{border:1px solid;border-radius:5px;align-items:center;display:inline-flex;margin:0 auto;padding:3px;position:relative;font-size:14px;color:#fff;width:100%}.notification-bar-container .notification-bar .notification-bar-close-button{background:transparent;cursor:pointer;border:0;border-radius:0;color:#fff;transition:all .25s ease}.notification-bar-container .notification-bar .notification-bar-message{display:flex;width:100%;margin:auto;gap:10px}.notification-bar-container .mat-icon-small{display:flex;align-items:center;height:18px;width:18px;min-width:18px;font-size:18px;color:#fff!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: NotificationClassificationIconPipe, name: "notificationClassificationIconPipe" }] }); }
|
|
2735
2759
|
}
|
|
2736
2760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationBarComponent, decorators: [{
|
|
2737
2761
|
type: Component,
|
|
2738
|
-
args: [{ selector: 'notification-bar', template: "<div class=\"notification-bar-
|
|
2762
|
+
args: [{ selector: 'notification-bar', template: "<div class=\"notification-bar-container\">\n @for (notification of notifications; track notification) {\n <div class=\"notification-bar\" [ngClass]=\"'notification-classification-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n {{ notification.classification | notificationClassificationIconPipe }}\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-bar-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n }\n</div>\n", styles: [":host{position:relative}.notification-bar-container{display:block;left:0;overflow:hidden;right:0;width:100%}.notification-bar-container *{box-sizing:border-box;margin:0;padding:0}.notification-bar-container .notification-bar{border:1px solid;border-radius:5px;align-items:center;display:inline-flex;margin:0 auto;padding:3px;position:relative;font-size:14px;color:#fff;width:100%}.notification-bar-container .notification-bar .notification-bar-close-button{background:transparent;cursor:pointer;border:0;border-radius:0;color:#fff;transition:all .25s ease}.notification-bar-container .notification-bar .notification-bar-message{display:flex;width:100%;margin:auto;gap:10px}.notification-bar-container .mat-icon-small{display:flex;align-items:center;height:18px;width:18px;min-width:18px;font-size:18px;color:#fff!important;margin-right:0!important}\n"] }]
|
|
2739
2763
|
}] });
|
|
2740
2764
|
|
|
2741
2765
|
class HeaderComponent {
|
|
@@ -3216,7 +3240,8 @@ class UtilModule {
|
|
|
3216
3240
|
RoyaltyContractRapidSearchComponent,
|
|
3217
3241
|
RoyaltyInvoiceRapidSearchComponent,
|
|
3218
3242
|
RoyaltyCountRapidSearchComponent,
|
|
3219
|
-
NotificationBarComponent
|
|
3243
|
+
NotificationBarComponent,
|
|
3244
|
+
NotificationClassificationIconPipe], imports: [MatInputModule,
|
|
3220
3245
|
MatTooltipModule,
|
|
3221
3246
|
MatButtonModule,
|
|
3222
3247
|
MatToolbarModule,
|
|
@@ -3249,7 +3274,8 @@ class UtilModule {
|
|
|
3249
3274
|
OverlayComponent,
|
|
3250
3275
|
SubHeaderComponent,
|
|
3251
3276
|
ShowIfTruncatedDirective,
|
|
3252
|
-
CommonTranslatePipe
|
|
3277
|
+
CommonTranslatePipe,
|
|
3278
|
+
NotificationClassificationIconPipe] }); }
|
|
3253
3279
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: UtilModule, providers: [
|
|
3254
3280
|
{
|
|
3255
3281
|
provide: HTTP_INTERCEPTORS,
|
|
@@ -3282,7 +3308,8 @@ class UtilModule {
|
|
|
3282
3308
|
VideoApiService,
|
|
3283
3309
|
AuthService,
|
|
3284
3310
|
UserSubsidiaryService,
|
|
3285
|
-
NotificationApiService
|
|
3311
|
+
NotificationApiService,
|
|
3312
|
+
NotificationClassificationIconPipe
|
|
3286
3313
|
], imports: [MatInputModule,
|
|
3287
3314
|
MatTooltipModule,
|
|
3288
3315
|
MatButtonModule,
|
|
@@ -3359,7 +3386,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
3359
3386
|
RoyaltyContractRapidSearchComponent,
|
|
3360
3387
|
RoyaltyInvoiceRapidSearchComponent,
|
|
3361
3388
|
RoyaltyCountRapidSearchComponent,
|
|
3362
|
-
NotificationBarComponent
|
|
3389
|
+
NotificationBarComponent,
|
|
3390
|
+
NotificationClassificationIconPipe
|
|
3363
3391
|
],
|
|
3364
3392
|
providers: [
|
|
3365
3393
|
{
|
|
@@ -3393,7 +3421,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
3393
3421
|
VideoApiService,
|
|
3394
3422
|
AuthService,
|
|
3395
3423
|
UserSubsidiaryService,
|
|
3396
|
-
NotificationApiService
|
|
3424
|
+
NotificationApiService,
|
|
3425
|
+
NotificationClassificationIconPipe
|
|
3397
3426
|
],
|
|
3398
3427
|
exports: [
|
|
3399
3428
|
MyNumberFormatterDirective,
|
|
@@ -3412,7 +3441,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
3412
3441
|
OverlayComponent,
|
|
3413
3442
|
SubHeaderComponent,
|
|
3414
3443
|
ShowIfTruncatedDirective,
|
|
3415
|
-
CommonTranslatePipe
|
|
3444
|
+
CommonTranslatePipe,
|
|
3445
|
+
NotificationClassificationIconPipe
|
|
3416
3446
|
]
|
|
3417
3447
|
}]
|
|
3418
3448
|
}], ctorParameters: () => [] });
|
|
@@ -6109,5 +6139,5 @@ class MultiTranslateHttpLoader {
|
|
|
6109
6139
|
* Generated bundle index. Do not edit.
|
|
6110
6140
|
*/
|
|
6111
6141
|
|
|
6112
|
-
export { ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, AdressModel, AdressTypeModel, AesService, AnyLineModel, ArrayService, AttachedFileModel, AudioContentModel, AuthInterceptor, AuthService, AuthUserModel, BankAccountModel, BasicHierarchyModel, BasicModel, BroadcastListItem, CANAL_PLUS_INTERNATIONAL_RESTRICTION, CUSTOM_DATE_FORMATS, CapitalizefirstPipe, ColorModel, CommonApiService, CommonTranslatePipe, CompanyModel, ContentModel, ContentTypeModel, ContractWork2Model, ContractWorkModel, CostCenterCriteriaModel, CostCenterCriteriaValueModel, CostCenterModel, CountryModel, CurrencyModel, CustomMatPaginatorIntl, DEFAULT_WEB_CONFIG, DateUtil, DiscDetailModel, DiscModel, DiscProgramModel, DisplayNullPipe, EditorialContentModel, ElasticsearchService, EventTypeModel, FSKIndexModel, FSKModel, FamilyModel, FixingModel, FlatMediaModel, FormActionsEventsService, FormatCurrencyPipe, FormatDurationPipe, FormatImageModel, FormatModel, FormatNumberInput, FormatTypeModel, FunctionModel, GenreModel, HeaderComponent, HeaderEventsService, HistoryService, HttpParamsBuilder, InvoiceBankAccountModel, InvoiceProductTypeModel, JwtHelper, KeywordsModel, LangLineModel, LangService, LanguageModel, LocalDatePipe, LocalStorageEventsService, LocalStorageService, MediaFilterModel, MediaLineModel, MediaModel, MenuLanguageModel, ModuleModel, MultiTranslateHttpLoader, MyDialogPopupLoginComponent, MyNumberFormatterDirective, MyNumberPipe, NOTIFICATION_TOPIC, NOTIFICATION_WEBSOCKET_URL, NotificationModel, NotificationService, NumberValidator, OptionHtmlModel, OverlayComponent, OverlayService, ParticipantModel, PeriodModel, PermissionModel, PermissionsService, PersonModel, ProductBoxSetModel, ProductDiscModel, ProductModel, ProgramModel, ProjectStatusModel, PurchaseOrderModel, QuotaModel, ReferentialEntityStateModel, ReferentialValueModel, ReferentielModel, RegexService, SanitizeHtml, SapOrderModel, SearchResponseModel, SectionModel, SelectHtmlModel, ServiceErrorModel, SessionStorageEventsService, SessionStorageService, ShowIfTruncatedDirective, SortBy, SoundModel, SpacesNumberPipe, StatusColor, SubHeaderComponent, SubsidiaryModel, SubtitleContentModel, TerritoriesLanguagesModel, TerritoryFilterModel, TerritoryModel, Theme, ThemeEventsService, ThemeModel, ThirdPartyAddressPipe, ThirdPartyCreationRequestModel, ThirdPartyModel, ThirdPartyModuleModel, ToasterEventsService, TranslatedValueModel, TrimStringPipe, TvaModel, TypeExportModel, TypeTvaCompanyTerritoryModel, TypeTvaModel, User, UserModel, UserSubsidiaryService, UserVideoModel, UtilModule, VideoContentModel, WEB_CONFIG, WorkAddonsModel, WorkAppartenanceModel, WorkGenreModel, WorkLanguageModel, WorkMiloModel, WorkModel, WorkRestrictionModel, WorkThemeModel, WorkTitleModel, WorkVersionArticleModel, WorkVersionModel, WorkVersionOriginModel, WorkVersionUsedModel, WorkYearProductionModel, ZoneModel, authGuard, loginGuard };
|
|
6142
|
+
export { ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, AdressModel, AdressTypeModel, AesService, AnyLineModel, ArrayService, AttachedFileModel, AudioContentModel, AuthInterceptor, AuthService, AuthUserModel, BankAccountModel, BasicHierarchyModel, BasicModel, BroadcastListItem, CANAL_PLUS_INTERNATIONAL_RESTRICTION, CUSTOM_DATE_FORMATS, CapitalizefirstPipe, ColorModel, CommonApiService, CommonTranslatePipe, CompanyModel, ContentModel, ContentTypeModel, ContractWork2Model, ContractWorkModel, CostCenterCriteriaModel, CostCenterCriteriaValueModel, CostCenterModel, CountryModel, CurrencyModel, CustomMatPaginatorIntl, DEFAULT_WEB_CONFIG, DateUtil, DiscDetailModel, DiscModel, DiscProgramModel, DisplayNullPipe, EditorialContentModel, ElasticsearchService, EventTypeModel, FSKIndexModel, FSKModel, FamilyModel, FixingModel, FlatMediaModel, FormActionsEventsService, FormatCurrencyPipe, FormatDurationPipe, FormatImageModel, FormatModel, FormatNumberInput, FormatTypeModel, FunctionModel, GenreModel, HeaderComponent, HeaderEventsService, HistoryService, HttpParamsBuilder, InvoiceBankAccountModel, InvoiceProductTypeModel, JwtHelper, KeywordsModel, LangLineModel, LangService, LanguageModel, LocalDatePipe, LocalStorageEventsService, LocalStorageService, MediaFilterModel, MediaLineModel, MediaModel, MenuLanguageModel, ModuleModel, MultiTranslateHttpLoader, MyDialogPopupLoginComponent, MyNumberFormatterDirective, MyNumberPipe, NOTIFICATION_TOPIC, NOTIFICATION_WEBSOCKET_URL, NotificationClassification, NotificationClassificationIconPipe, NotificationModel, NotificationService, NumberValidator, OptionHtmlModel, OverlayComponent, OverlayService, ParticipantModel, PeriodModel, PermissionModel, PermissionsService, PersonModel, ProductBoxSetModel, ProductDiscModel, ProductModel, ProgramModel, ProjectStatusModel, PurchaseOrderModel, QuotaModel, ReferentialEntityStateModel, ReferentialValueModel, ReferentielModel, RegexService, SanitizeHtml, SapOrderModel, SearchResponseModel, SectionModel, SelectHtmlModel, ServiceErrorModel, SessionStorageEventsService, SessionStorageService, ShowIfTruncatedDirective, SortBy, SoundModel, SpacesNumberPipe, StatusColor, SubHeaderComponent, SubsidiaryModel, SubtitleContentModel, TerritoriesLanguagesModel, TerritoryFilterModel, TerritoryModel, Theme, ThemeEventsService, ThemeModel, ThirdPartyAddressPipe, ThirdPartyCreationRequestModel, ThirdPartyModel, ThirdPartyModuleModel, ToasterEventsService, TranslatedValueModel, TrimStringPipe, TvaModel, TypeExportModel, TypeTvaCompanyTerritoryModel, TypeTvaModel, User, UserModel, UserSubsidiaryService, UserVideoModel, UtilModule, VideoContentModel, WEB_CONFIG, WorkAddonsModel, WorkAppartenanceModel, WorkGenreModel, WorkLanguageModel, WorkMiloModel, WorkModel, WorkRestrictionModel, WorkThemeModel, WorkTitleModel, WorkVersionArticleModel, WorkVersionModel, WorkVersionOriginModel, WorkVersionUsedModel, WorkYearProductionModel, ZoneModel, authGuard, loginGuard };
|
|
6113
6143
|
//# sourceMappingURL=new-front-common-library.mjs.map
|