ngssm-shell 15.3.13 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/esm2022/lib/components/shell/shell.component.mjs +90 -0
  2. package/esm2022/lib/components/shell-notification/shell-notification.component.mjs +57 -0
  3. package/esm2022/lib/components/shell-notification-popup/shell-notification-popup.component.mjs +30 -0
  4. package/esm2022/lib/components/shell-notifications/shell-notifications.component.mjs +66 -0
  5. package/esm2022/lib/components/side-nav/side-nav.component.mjs +38 -0
  6. package/esm2022/lib/components/wrapper/wrapper.component.mjs +36 -0
  7. package/esm2022/lib/effects/notification-showing.effect.mjs +32 -0
  8. package/esm2022/lib/reducers/navigation-bar.reducer.mjs +55 -0
  9. package/esm2022/lib/reducers/shell-notifications.reducer.mjs +57 -0
  10. package/esm2022/lib/state/shell.state.mjs +26 -0
  11. package/{fesm2020 → fesm2022}/ngssm-shell.mjs +33 -33
  12. package/{fesm2020 → fesm2022}/ngssm-shell.mjs.map +1 -1
  13. package/lib/components/shell/shell.component.d.ts +1 -1
  14. package/lib/components/shell-notification/shell-notification.component.d.ts +1 -1
  15. package/lib/components/side-nav/side-nav.component.d.ts +1 -1
  16. package/lib/components/wrapper/wrapper.component.d.ts +1 -1
  17. package/package.json +8 -14
  18. package/esm2020/lib/components/shell/shell.component.mjs +0 -89
  19. package/esm2020/lib/components/shell-notification/shell-notification.component.mjs +0 -56
  20. package/esm2020/lib/components/shell-notification-popup/shell-notification-popup.component.mjs +0 -29
  21. package/esm2020/lib/components/shell-notifications/shell-notifications.component.mjs +0 -65
  22. package/esm2020/lib/components/side-nav/side-nav.component.mjs +0 -37
  23. package/esm2020/lib/components/wrapper/wrapper.component.mjs +0 -35
  24. package/esm2020/lib/effects/notification-showing.effect.mjs +0 -31
  25. package/esm2020/lib/reducers/navigation-bar.reducer.mjs +0 -54
  26. package/esm2020/lib/reducers/shell-notifications.reducer.mjs +0 -56
  27. package/esm2020/lib/state/shell.state.mjs +0 -26
  28. package/fesm2015/ngssm-shell.mjs +0 -467
  29. package/fesm2015/ngssm-shell.mjs.map +0 -1
  30. /package/{esm2020 → esm2022}/lib/actions/display-notification-details.action.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/actions/display-notification.action.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/actions/index.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/actions/lock-navigation-bar.action.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/actions/shell-action-type.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  36. /package/{esm2020 → esm2022}/lib/model/index.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/model/lock-status.mjs +0 -0
  38. /package/{esm2020 → esm2022}/lib/model/shell-config.mjs +0 -0
  39. /package/{esm2020 → esm2022}/lib/model/shell-notification-type.mjs +0 -0
  40. /package/{esm2020 → esm2022}/lib/model/shell-notification.mjs +0 -0
  41. /package/{esm2020 → esm2022}/lib/model/sidenav-config.mjs +0 -0
  42. /package/{esm2020 → esm2022}/lib/model/sidenav-item.mjs +0 -0
  43. /package/{esm2020 → esm2022}/lib/model/sidenav-section.mjs +0 -0
  44. /package/{esm2020 → esm2022}/lib/provide-ngssm-shell.mjs +0 -0
  45. /package/{esm2020 → esm2022}/lib/state/index.mjs +0 -0
  46. /package/{esm2020 → esm2022}/lib/state/shell-notifications.mjs +0 -0
  47. /package/{esm2020 → esm2022}/ngssm-shell.mjs +0 -0
  48. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,57 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NGSSM_REDUCER } from 'ngssm-store';
3
+ import { ShellActionType } from '../actions';
4
+ import { updateShellState } from '../state';
5
+ import * as i0 from "@angular/core";
6
+ class ShellNotificationsReducer {
7
+ constructor() {
8
+ this.processedActions = [
9
+ ShellActionType.displayNotification,
10
+ ShellActionType.displayNotificationDetails,
11
+ ShellActionType.clearAllNotifications
12
+ ];
13
+ }
14
+ updateState(state, action) {
15
+ switch (action.type) {
16
+ case ShellActionType.displayNotification:
17
+ const displayNotificationAction = action;
18
+ const notification = {
19
+ type: displayNotificationAction.notificationType,
20
+ title: displayNotificationAction.title,
21
+ details: displayNotificationAction.details,
22
+ timestamp: new Date()
23
+ };
24
+ return updateShellState(state, {
25
+ shellNotifications: {
26
+ notifications: { $push: [notification] }
27
+ }
28
+ });
29
+ case ShellActionType.displayNotificationDetails:
30
+ const displayNotificationDetailsAction = action;
31
+ return updateShellState(state, {
32
+ shellNotifications: {
33
+ selectedNotificaitonIndex: { $set: displayNotificationDetailsAction.notificationIndex }
34
+ }
35
+ });
36
+ case ShellActionType.clearAllNotifications:
37
+ return updateShellState(state, {
38
+ shellNotifications: {
39
+ notifications: { $set: [] }
40
+ }
41
+ });
42
+ }
43
+ return state;
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer }); }
47
+ }
48
+ export { ShellNotificationsReducer };
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer, decorators: [{
50
+ type: Injectable
51
+ }] });
52
+ export const shellNotificationsReducerProvider = {
53
+ provide: NGSSM_REDUCER,
54
+ useClass: ShellNotificationsReducer,
55
+ multi: true
56
+ };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbm90aWZpY2F0aW9ucy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc2hlbGwvc3JjL2xpYi9yZWR1Y2Vycy9zaGVsbC1ub3RpZmljYXRpb25zLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQStELGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRTVDLE1BQ2EseUJBQXlCO0lBRHRDO1FBRWtCLHFCQUFnQixHQUFhO1lBQzNDLGVBQWUsQ0FBQyxtQkFBbUI7WUFDbkMsZUFBZSxDQUFDLDBCQUEwQjtZQUMxQyxlQUFlLENBQUMscUJBQXFCO1NBQ3RDLENBQUM7S0FvQ0g7SUFsQ1EsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLGVBQWUsQ0FBQyxtQkFBbUI7Z0JBQ3RDLE1BQU0seUJBQXlCLEdBQUcsTUFBbUMsQ0FBQztnQkFDdEUsTUFBTSxZQUFZLEdBQXNCO29CQUN0QyxJQUFJLEVBQUUseUJBQXlCLENBQUMsZ0JBQWdCO29CQUNoRCxLQUFLLEVBQUUseUJBQXlCLENBQUMsS0FBSztvQkFDdEMsT0FBTyxFQUFFLHlCQUF5QixDQUFDLE9BQU87b0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtpQkFDdEIsQ0FBQztnQkFDRixPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRTtvQkFDN0Isa0JBQWtCLEVBQUU7d0JBQ2xCLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO3FCQUN6QztpQkFDRixDQUFDLENBQUM7WUFFTCxLQUFLLGVBQWUsQ0FBQywwQkFBMEI7Z0JBQzdDLE1BQU0sZ0NBQWdDLEdBQUcsTUFBMEMsQ0FBQztnQkFDcEYsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLGtCQUFrQixFQUFFO3dCQUNsQix5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxpQkFBaUIsRUFBRTtxQkFDeEY7aUJBQ0YsQ0FBQyxDQUFDO1lBRUwsS0FBSyxlQUFlLENBQUMscUJBQXFCO2dCQUN4QyxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRTtvQkFDN0Isa0JBQWtCLEVBQUU7d0JBQ2xCLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7cUJBQzVCO2lCQUNGLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQXhDVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7U0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7O0FBNENYLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFhO0lBQ3pELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSx5QkFBeUI7SUFDbkMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiwgTkdTU01fUkVEVUNFUiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgRGlzcGxheU5vdGlmaWNhdGlvbkFjdGlvbiwgRGlzcGxheU5vdGlmaWNhdGlvbkRldGFpbHNBY3Rpb24sIFNoZWxsQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgU2hlbGxOb3RpZmljYXRpb24gfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyB1cGRhdGVTaGVsbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2hlbGxOb3RpZmljYXRpb25zUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbXG4gICAgU2hlbGxBY3Rpb25UeXBlLmRpc3BsYXlOb3RpZmljYXRpb24sXG4gICAgU2hlbGxBY3Rpb25UeXBlLmRpc3BsYXlOb3RpZmljYXRpb25EZXRhaWxzLFxuICAgIFNoZWxsQWN0aW9uVHlwZS5jbGVhckFsbE5vdGlmaWNhdGlvbnNcbiAgXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIFNoZWxsQWN0aW9uVHlwZS5kaXNwbGF5Tm90aWZpY2F0aW9uOlxuICAgICAgICBjb25zdCBkaXNwbGF5Tm90aWZpY2F0aW9uQWN0aW9uID0gYWN0aW9uIGFzIERpc3BsYXlOb3RpZmljYXRpb25BY3Rpb247XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbjogU2hlbGxOb3RpZmljYXRpb24gPSB7XG4gICAgICAgICAgdHlwZTogZGlzcGxheU5vdGlmaWNhdGlvbkFjdGlvbi5ub3RpZmljYXRpb25UeXBlLFxuICAgICAgICAgIHRpdGxlOiBkaXNwbGF5Tm90aWZpY2F0aW9uQWN0aW9uLnRpdGxlLFxuICAgICAgICAgIGRldGFpbHM6IGRpc3BsYXlOb3RpZmljYXRpb25BY3Rpb24uZGV0YWlscyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKClcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVNoZWxsU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBzaGVsbE5vdGlmaWNhdGlvbnM6IHtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbnM6IHsgJHB1c2g6IFtub3RpZmljYXRpb25dIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlIFNoZWxsQWN0aW9uVHlwZS5kaXNwbGF5Tm90aWZpY2F0aW9uRGV0YWlsczpcbiAgICAgICAgY29uc3QgZGlzcGxheU5vdGlmaWNhdGlvbkRldGFpbHNBY3Rpb24gPSBhY3Rpb24gYXMgRGlzcGxheU5vdGlmaWNhdGlvbkRldGFpbHNBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVTaGVsbFN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgc2hlbGxOb3RpZmljYXRpb25zOiB7XG4gICAgICAgICAgICBzZWxlY3RlZE5vdGlmaWNhaXRvbkluZGV4OiB7ICRzZXQ6IGRpc3BsYXlOb3RpZmljYXRpb25EZXRhaWxzQWN0aW9uLm5vdGlmaWNhdGlvbkluZGV4IH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlIFNoZWxsQWN0aW9uVHlwZS5jbGVhckFsbE5vdGlmaWNhdGlvbnM6XG4gICAgICAgIHJldHVybiB1cGRhdGVTaGVsbFN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgc2hlbGxOb3RpZmljYXRpb25zOiB7XG4gICAgICAgICAgICBub3RpZmljYXRpb25zOiB7ICRzZXQ6IFtdIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2hlbGxOb3RpZmljYXRpb25zUmVkdWNlclByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdTU01fUkVEVUNFUixcbiAgdXNlQ2xhc3M6IFNoZWxsTm90aWZpY2F0aW9uc1JlZHVjZXIsXG4gIG11bHRpOiB0cnVlXG59O1xuIl19
@@ -0,0 +1,26 @@
1
+ var ShellStateSpecification_1;
2
+ import { __decorate } from "tslib";
3
+ import update from 'immutability-helper';
4
+ import { NgSsmFeatureState } from 'ngssm-store';
5
+ import { LockStatus } from '../model';
6
+ import { getDefaultShellNotifications } from './shell-notifications';
7
+ export const selectShellState = (state) => state[ShellStateSpecification.featureStateKey];
8
+ export const updateShellState = (state, command) => update(state, {
9
+ [ShellStateSpecification.featureStateKey]: command
10
+ });
11
+ let ShellStateSpecification = ShellStateSpecification_1 = class ShellStateSpecification {
12
+ static { this.featureStateKey = 'shell-state'; }
13
+ static { this.initialState = {
14
+ navigationBarOpen: true,
15
+ navigationBarLockStatus: LockStatus.notLocked,
16
+ shellNotifications: getDefaultShellNotifications()
17
+ }; }
18
+ };
19
+ ShellStateSpecification = ShellStateSpecification_1 = __decorate([
20
+ NgSsmFeatureState({
21
+ featureStateKey: ShellStateSpecification_1.featureStateKey,
22
+ initialState: ShellStateSpecification_1.initialState
23
+ })
24
+ ], ShellStateSpecification);
25
+ export { ShellStateSpecification };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zaGVsbC9zcmMvbGliL3N0YXRlL3NoZWxsLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxNQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSw0QkFBNEIsRUFBc0IsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQVksRUFBYyxFQUFFLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBZSxDQUFDO0FBRTNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBWSxFQUFFLE9BQWdDLEVBQVMsRUFBRSxDQUN4RixNQUFNLENBQUMsS0FBSyxFQUFFO0lBQ1osQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPO0NBQ25ELENBQUMsQ0FBQztBQVlMLElBQWEsdUJBQXVCLCtCQUFwQyxNQUFhLHVCQUF1QjthQUNYLG9CQUFlLEdBQUcsYUFBYSxBQUFoQixDQUFpQjthQUNoQyxpQkFBWSxHQUFlO1FBQ2hELGlCQUFpQixFQUFFLElBQUk7UUFDdkIsdUJBQXVCLEVBQUUsVUFBVSxDQUFDLFNBQVM7UUFDN0Msa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUU7S0FDbkQsQUFKa0MsQ0FJakM7O0FBTlMsdUJBQXVCO0lBSm5DLGlCQUFpQixDQUFDO1FBQ2pCLGVBQWUsRUFBRSx5QkFBdUIsQ0FBQyxlQUFlO1FBQ3hELFlBQVksRUFBRSx5QkFBdUIsQ0FBQyxZQUFZO0tBQ25ELENBQUM7R0FDVyx1QkFBdUIsQ0FPbkM7U0FQWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXBkYXRlLCB7IFNwZWMgfSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgTmdTc21GZWF0dXJlU3RhdGUsIFN0YXRlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgTG9ja1N0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IGdldERlZmF1bHRTaGVsbE5vdGlmaWNhdGlvbnMsIFNoZWxsTm90aWZpY2F0aW9ucyB9IGZyb20gJy4vc2hlbGwtbm90aWZpY2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RTaGVsbFN0YXRlID0gKHN0YXRlOiBTdGF0ZSk6IFNoZWxsU3RhdGUgPT4gc3RhdGVbU2hlbGxTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5XSBhcyBTaGVsbFN0YXRlO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlU2hlbGxTdGF0ZSA9IChzdGF0ZTogU3RhdGUsIGNvbW1hbmQ6IFNwZWM8U2hlbGxTdGF0ZSwgbmV2ZXI+KTogU3RhdGUgPT5cbiAgdXBkYXRlKHN0YXRlLCB7XG4gICAgW1NoZWxsU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV06IGNvbW1hbmRcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hlbGxTdGF0ZSB7XG4gIG5hdmlnYXRpb25CYXJPcGVuOiBib29sZWFuO1xuICBuYXZpZ2F0aW9uQmFyTG9ja1N0YXR1czogTG9ja1N0YXR1cztcbiAgc2hlbGxOb3RpZmljYXRpb25zOiBTaGVsbE5vdGlmaWNhdGlvbnM7XG59XG5cbkBOZ1NzbUZlYXR1cmVTdGF0ZSh7XG4gIGZlYXR1cmVTdGF0ZUtleTogU2hlbGxTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5LFxuICBpbml0aWFsU3RhdGU6IFNoZWxsU3RhdGVTcGVjaWZpY2F0aW9uLmluaXRpYWxTdGF0ZVxufSlcbmV4cG9ydCBjbGFzcyBTaGVsbFN0YXRlU3BlY2lmaWNhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZmVhdHVyZVN0YXRlS2V5ID0gJ3NoZWxsLXN0YXRlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBpbml0aWFsU3RhdGU6IFNoZWxsU3RhdGUgPSB7XG4gICAgbmF2aWdhdGlvbkJhck9wZW46IHRydWUsXG4gICAgbmF2aWdhdGlvbkJhckxvY2tTdGF0dXM6IExvY2tTdGF0dXMubm90TG9ja2VkLFxuICAgIHNoZWxsTm90aWZpY2F0aW9uczogZ2V0RGVmYXVsdFNoZWxsTm90aWZpY2F0aW9ucygpXG4gIH07XG59XG4iXX0=
@@ -85,12 +85,12 @@ const updateShellState = (state, command) => update(state, {
85
85
  [ShellStateSpecification.featureStateKey]: command
86
86
  });
87
87
  let ShellStateSpecification = ShellStateSpecification_1 = class ShellStateSpecification {
88
- };
89
- ShellStateSpecification.featureStateKey = 'shell-state';
90
- ShellStateSpecification.initialState = {
91
- navigationBarOpen: true,
92
- navigationBarLockStatus: LockStatus.notLocked,
93
- shellNotifications: getDefaultShellNotifications()
88
+ static { this.featureStateKey = 'shell-state'; }
89
+ static { this.initialState = {
90
+ navigationBarOpen: true,
91
+ navigationBarLockStatus: LockStatus.notLocked,
92
+ shellNotifications: getDefaultShellNotifications()
93
+ }; }
94
94
  };
95
95
  ShellStateSpecification = ShellStateSpecification_1 = __decorate([
96
96
  NgSsmFeatureState({
@@ -136,10 +136,10 @@ class NavigationBarReducer {
136
136
  }
137
137
  return state;
138
138
  }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NavigationBarReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
140
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NavigationBarReducer }); }
139
141
  }
140
- NavigationBarReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NavigationBarReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
141
- NavigationBarReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NavigationBarReducer });
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NavigationBarReducer, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NavigationBarReducer, decorators: [{
143
143
  type: Injectable
144
144
  }] });
145
145
  const navigationBarReducerProvider = {
@@ -187,10 +187,10 @@ class ShellNotificationsReducer {
187
187
  }
188
188
  return state;
189
189
  }
190
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
191
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer }); }
190
192
  }
191
- ShellNotificationsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
192
- ShellNotificationsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationsReducer });
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationsReducer, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsReducer, decorators: [{
194
194
  type: Injectable
195
195
  }] });
196
196
  const shellNotificationsReducerProvider = {
@@ -227,10 +227,10 @@ class ShellNotificationComponent extends NgSsmComponent {
227
227
  displayDetails() {
228
228
  this.dispatchAction(new DisplayNotificationDetailsAction(this._shellNotificationIndex$.value ?? -1));
229
229
  }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ShellNotificationComponent, isStandalone: true, selector: "ngssm-shell-notification", inputs: { displayDetailsButton: "displayDetailsButton", shellNotificationIndex: "shellNotificationIndex" }, usesInheritance: true, ngImport: i0, template: "<mat-card\n appearance=\"outlined\" *ngIf=\"(shellNotification$ | async) as shellNotification; else noNotification\"\n class=\"ngssm-shell-notification-card\">\n <mat-card-header\n [ngClass]=\"{'ngssm-shell-notification-success' : shellNotification.type === shellNotificationType.success, 'ngssm-shell-notification-error':shellNotification.type === shellNotificationType.error}\">\n <mat-icon mat-card-avatar class=\"fa-solid fa-check ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.success\">\n </mat-icon>\n <mat-icon mat-card-avatar class=\"fa-solid fa-triangle-exclamation ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.error\">\n </mat-icon>\n <mat-card-title>{{shellNotification.title}}</mat-card-title>\n <mat-card-subtitle>{{shellNotification.timestamp | date:'shortTime'}}</mat-card-subtitle>\n </mat-card-header>\n <div class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button *ngIf=\"(displayDetailsButton$ | async) === true && shellNotification.details\"\n (click)=\"displayDetails()\">\n Display details\n </button>\n </div>\n</mat-card>\n\n<ng-template #noNotification>\n No notification to display...\n</ng-template>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
230
232
  }
231
- ShellNotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
232
- ShellNotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ShellNotificationComponent, isStandalone: true, selector: "ngssm-shell-notification", inputs: { displayDetailsButton: "displayDetailsButton", shellNotificationIndex: "shellNotificationIndex" }, usesInheritance: true, ngImport: i0, template: "<mat-card\n appearance=\"outlined\" *ngIf=\"(shellNotification$ | async) as shellNotification; else noNotification\"\n class=\"ngssm-shell-notification-card\">\n <mat-card-header\n [ngClass]=\"{'ngssm-shell-notification-success' : shellNotification.type === shellNotificationType.success, 'ngssm-shell-notification-error':shellNotification.type === shellNotificationType.error}\">\n <mat-icon mat-card-avatar class=\"fa-solid fa-check ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.success\">\n </mat-icon>\n <mat-icon mat-card-avatar class=\"fa-solid fa-triangle-exclamation ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.error\">\n </mat-icon>\n <mat-card-title>{{shellNotification.title}}</mat-card-title>\n <mat-card-subtitle>{{shellNotification.timestamp | date:'shortTime'}}</mat-card-subtitle>\n </mat-card-header>\n <div class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button *ngIf=\"(displayDetailsButton$ | async) === true && shellNotification.details\"\n (click)=\"displayDetails()\">\n Display details\n </button>\n </div>\n</mat-card>\n\n<ng-template #noNotification>\n No notification to display...\n</ng-template>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationComponent, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationComponent, decorators: [{
234
234
  type: Component,
235
235
  args: [{ selector: 'ngssm-shell-notification', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card\n appearance=\"outlined\" *ngIf=\"(shellNotification$ | async) as shellNotification; else noNotification\"\n class=\"ngssm-shell-notification-card\">\n <mat-card-header\n [ngClass]=\"{'ngssm-shell-notification-success' : shellNotification.type === shellNotificationType.success, 'ngssm-shell-notification-error':shellNotification.type === shellNotificationType.error}\">\n <mat-icon mat-card-avatar class=\"fa-solid fa-check ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.success\">\n </mat-icon>\n <mat-icon mat-card-avatar class=\"fa-solid fa-triangle-exclamation ngssm-shell-avatar-notification \"\n *ngIf=\"shellNotification.type === shellNotificationType.error\">\n </mat-icon>\n <mat-card-title>{{shellNotification.title}}</mat-card-title>\n <mat-card-subtitle>{{shellNotification.timestamp | date:'shortTime'}}</mat-card-subtitle>\n </mat-card-header>\n <div class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button *ngIf=\"(displayDetailsButton$ | async) === true && shellNotification.details\"\n (click)=\"displayDetails()\">\n Display details\n </button>\n </div>\n</mat-card>\n\n<ng-template #noNotification>\n No notification to display...\n</ng-template>", styles: [":host{display:flex;flex-direction:column}\n"] }]
236
236
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { displayDetailsButton: [{
@@ -251,10 +251,10 @@ class ShellNotificationPopupComponent extends NgSsmComponent {
251
251
  get shellNotificationIndex$() {
252
252
  return this._shellNotificationIndex$.asObservable();
253
253
  }
254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationPopupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
255
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ShellNotificationPopupComponent, isStandalone: true, selector: "ngssm-shell-notification-popup", usesInheritance: true, ngImport: i0, template: "<ngssm-shell-notification [shellNotificationIndex]=\"shellNotificationIndex$ | async\"></ngssm-shell-notification>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ShellNotificationComponent, selector: "ngssm-shell-notification", inputs: ["displayDetailsButton", "shellNotificationIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
254
256
  }
255
- ShellNotificationPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationPopupComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
256
- ShellNotificationPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ShellNotificationPopupComponent, isStandalone: true, selector: "ngssm-shell-notification-popup", usesInheritance: true, ngImport: i0, template: "<ngssm-shell-notification [shellNotificationIndex]=\"shellNotificationIndex$ | async\"></ngssm-shell-notification>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ShellNotificationComponent, selector: "ngssm-shell-notification", inputs: ["displayDetailsButton", "shellNotificationIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationPopupComponent, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationPopupComponent, decorators: [{
258
258
  type: Component,
259
259
  args: [{ selector: 'ngssm-shell-notification-popup', standalone: true, imports: [CommonModule, ShellNotificationComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ngssm-shell-notification [shellNotificationIndex]=\"shellNotificationIndex$ | async\"></ngssm-shell-notification>", styles: [":host{display:flex;flex-direction:column}\n"] }]
260
260
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
@@ -277,10 +277,10 @@ class WrapperComponent extends NgSsmComponent {
277
277
  get innerHtml$() {
278
278
  return this._innerHtml$.asObservable();
279
279
  }
280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WrapperComponent, deps: [{ token: i1.Store }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: WrapperComponent, isStandalone: true, selector: "ngssm-wrapper", inputs: { item: "item" }, usesInheritance: true, ngImport: i0, template: "<span *ngIf=\"(innerHtml$ | async) as innerHtml\" [innerHTML]=\"innerHtml\"></span>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
280
282
  }
281
- WrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WrapperComponent, deps: [{ token: i1.Store }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
282
- WrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: WrapperComponent, isStandalone: true, selector: "ngssm-wrapper", inputs: { item: "item" }, usesInheritance: true, ngImport: i0, template: "<span *ngIf=\"(innerHtml$ | async) as innerHtml\" [innerHTML]=\"innerHtml\"></span>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WrapperComponent, decorators: [{
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WrapperComponent, decorators: [{
284
284
  type: Component,
285
285
  args: [{ selector: 'ngssm-wrapper', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"(innerHtml$ | async) as innerHtml\" [innerHTML]=\"innerHtml\"></span>" }]
286
286
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ViewContainerRef }]; }, propDecorators: { item: [{
@@ -299,10 +299,10 @@ class SideNavComponent extends NgSsmComponent {
299
299
  get sidenavConfig$() {
300
300
  return this._sidenavConfig$.asObservable();
301
301
  }
302
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SideNavComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
303
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SideNavComponent, isStandalone: true, selector: "ngssm-side-nav", inputs: { config: "config" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-sidenav-main-container\" *ngIf=\"(sidenavConfig$ | async) as config\">\n <div class=\"ngssm-sidenav-title\" *ngIf=\"config.title\">{{config.title}}</div>\n <mat-divider *ngIf=\"config.title\"></mat-divider>\n <ng-container *ngFor=\"let section of config.sections;let last = last;\" class=\"ngssm-sidenav-section-container\">\n <div class=\"ngssm-sidenav-section-item-container\">\n <div *ngIf=\"!section.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"section.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:section.linkActiveOnlyIfExact === true}\" *ngIf=\"section.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n <div *ngFor=\"let item of section.items\" class=\"ngssm-sidenav-item-container\">\n <div *ngIf=\"!item.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"item.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:item.linkActiveOnlyIfExact === true}\" *ngIf=\"item.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </ng-container>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: WrapperComponent, selector: "ngssm-wrapper", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
302
304
  }
303
- SideNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SideNavComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
304
- SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: SideNavComponent, isStandalone: true, selector: "ngssm-side-nav", inputs: { config: "config" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-sidenav-main-container\" *ngIf=\"(sidenavConfig$ | async) as config\">\n <div class=\"ngssm-sidenav-title\" *ngIf=\"config.title\">{{config.title}}</div>\n <mat-divider *ngIf=\"config.title\"></mat-divider>\n <ng-container *ngFor=\"let section of config.sections;let last = last;\" class=\"ngssm-sidenav-section-container\">\n <div class=\"ngssm-sidenav-section-item-container\">\n <div *ngIf=\"!section.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"section.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:section.linkActiveOnlyIfExact === true}\" *ngIf=\"section.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n <div *ngFor=\"let item of section.items\" class=\"ngssm-sidenav-item-container\">\n <div *ngIf=\"!item.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"item.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:item.linkActiveOnlyIfExact === true}\" *ngIf=\"item.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </ng-container>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: WrapperComponent, selector: "ngssm-wrapper", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SideNavComponent, decorators: [{
305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SideNavComponent, decorators: [{
306
306
  type: Component,
307
307
  args: [{ selector: 'ngssm-side-nav', standalone: true, imports: [CommonModule, MatDividerModule, RouterModule, WrapperComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-sidenav-main-container\" *ngIf=\"(sidenavConfig$ | async) as config\">\n <div class=\"ngssm-sidenav-title\" *ngIf=\"config.title\">{{config.title}}</div>\n <mat-divider *ngIf=\"config.title\"></mat-divider>\n <ng-container *ngFor=\"let section of config.sections;let last = last;\" class=\"ngssm-sidenav-section-container\">\n <div class=\"ngssm-sidenav-section-item-container\">\n <div *ngIf=\"!section.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"section.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:section.linkActiveOnlyIfExact === true}\" *ngIf=\"section.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"section.icon\" [innerHTML]=\"section.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{section.label}}\n <ngssm-wrapper *ngIf=\"section.component\" [item]=\"section.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n <div *ngFor=\"let item of section.items\" class=\"ngssm-sidenav-item-container\">\n <div *ngIf=\"!item.route\" class=\"ngssm-sidenav-section-item\">\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n\n <a [routerLink]=\"item.route\" routerLinkActive=\"ngssm-sidenav-active-link\"\n [routerLinkActiveOptions]=\"{exact:item.linkActiveOnlyIfExact === true}\" *ngIf=\"item.route\"\n class=\"ngssm-sidenav-section-item\">\n <div>\n <span *ngIf=\"item.icon\" [innerHTML]=\"item.icon\" class=\"ngssm-sidenav-item-icon\"></span>\n {{item.label}}\n <ngssm-wrapper *ngIf=\"item.component\" [item]=\"item.component\"></ngssm-wrapper>\n </div>\n </a>\n </div>\n\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </ng-container>\n</div>" }]
308
308
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { class: [{
@@ -351,10 +351,10 @@ class ShellNotificationsComponent extends NgSsmComponent {
351
351
  clearAll() {
352
352
  this.dispatchActionType(ShellActionType.clearAllNotifications);
353
353
  }
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
355
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ShellNotificationsComponent, isStandalone: true, selector: "ngssm-shell-notifications", usesInheritance: true, ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\"\n *ngIf=\"(notificationSelected$ | async) === false; else notificationDetails\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notifications\n <span class=\"fxFlex\"></span>\n <button mat-stroked-button color=\"primary\" [disabled]=\"(notifications$ | async)?.length === 0\"\n (click)=\"clearAll()\">\n Clear all\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content class=\"notifications-container flex-column-stretch fxFlex\">\n <ngssm-shell-notification *ngFor=\"let notification of notifications$ | async;let index=index\"\n [shellNotificationIndex]=\"index\" [displayDetailsButton]=\"true\">\n </ngssm-shell-notification>\n </mat-card-content>\n</mat-card>\n\n<ng-template #notificationDetails>\n <mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notification details\n <span class=\"fxFlex\"></span>\n <button mat-icon-button (click)=\"closeDetailsPanel()\">\n <mat-icon class=\"fa-solid fa-rectangle-xmark\"></mat-icon>\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <ngssm-ace-editor class=\"fxFlex\" [readonly]=\"true\" [content]=\"(details$ | async) ?? ''\"\n [editorMode]=\"ngssmAceEditorMode.json\">\n </ngssm-ace-editor>\n </mat-card>\n</ng-template>", styles: [":host{display:flex;flex-direction:column;padding:8px;min-width:400px;max-width:400px}:host .notifications-container{overflow:auto}:host ngssm-shell-notification{margin:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NgssmAceEditorComponent, selector: "ngssm-ace-editor", inputs: ["content", "readonly", "editorMode"], outputs: ["contentChanged", "isValidChanged", "editorReady"] }, { kind: "component", type: ShellNotificationComponent, selector: "ngssm-shell-notification", inputs: ["displayDetailsButton", "shellNotificationIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
354
356
  }
355
- ShellNotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
356
- ShellNotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ShellNotificationsComponent, isStandalone: true, selector: "ngssm-shell-notifications", usesInheritance: true, ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\"\n *ngIf=\"(notificationSelected$ | async) === false; else notificationDetails\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notifications\n <span class=\"fxFlex\"></span>\n <button mat-stroked-button color=\"primary\" [disabled]=\"(notifications$ | async)?.length === 0\"\n (click)=\"clearAll()\">\n Clear all\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content class=\"notifications-container flex-column-stretch fxFlex\">\n <ngssm-shell-notification *ngFor=\"let notification of notifications$ | async;let index=index\"\n [shellNotificationIndex]=\"index\" [displayDetailsButton]=\"true\">\n </ngssm-shell-notification>\n </mat-card-content>\n</mat-card>\n\n<ng-template #notificationDetails>\n <mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notification details\n <span class=\"fxFlex\"></span>\n <button mat-icon-button (click)=\"closeDetailsPanel()\">\n <mat-icon class=\"fa-solid fa-rectangle-xmark\"></mat-icon>\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <ngssm-ace-editor class=\"fxFlex\" [readonly]=\"true\" [content]=\"(details$ | async) ?? ''\"\n [editorMode]=\"ngssmAceEditorMode.json\">\n </ngssm-ace-editor>\n </mat-card>\n</ng-template>", styles: [":host{display:flex;flex-direction:column;padding:8px;min-width:400px;max-width:400px}:host .notifications-container{overflow:auto}:host ngssm-shell-notification{margin:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NgssmAceEditorComponent, selector: "ngssm-ace-editor", inputs: ["content", "readonly", "editorMode"], outputs: ["contentChanged", "isValidChanged", "editorReady"] }, { kind: "component", type: ShellNotificationComponent, selector: "ngssm-shell-notification", inputs: ["displayDetailsButton", "shellNotificationIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellNotificationsComponent, decorators: [{
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellNotificationsComponent, decorators: [{
358
358
  type: Component,
359
359
  args: [{ selector: 'ngssm-shell-notifications', standalone: true, imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, NgssmAceEditorComponent, ShellNotificationComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\"\n *ngIf=\"(notificationSelected$ | async) === false; else notificationDetails\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notifications\n <span class=\"fxFlex\"></span>\n <button mat-stroked-button color=\"primary\" [disabled]=\"(notifications$ | async)?.length === 0\"\n (click)=\"clearAll()\">\n Clear all\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content class=\"notifications-container flex-column-stretch fxFlex\">\n <ngssm-shell-notification *ngFor=\"let notification of notifications$ | async;let index=index\"\n [shellNotificationIndex]=\"index\" [displayDetailsButton]=\"true\">\n </ngssm-shell-notification>\n </mat-card-content>\n</mat-card>\n\n<ng-template #notificationDetails>\n <mat-card appearance=\"outlined\" class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title class=\"flex-row-center\">\n Notification details\n <span class=\"fxFlex\"></span>\n <button mat-icon-button (click)=\"closeDetailsPanel()\">\n <mat-icon class=\"fa-solid fa-rectangle-xmark\"></mat-icon>\n </button>\n </mat-card-title>\n </mat-card-header>\n\n <ngssm-ace-editor class=\"fxFlex\" [readonly]=\"true\" [content]=\"(details$ | async) ?? ''\"\n [editorMode]=\"ngssmAceEditorMode.json\">\n </ngssm-ace-editor>\n </mat-card>\n</ng-template>", styles: [":host{display:flex;flex-direction:column;padding:8px;min-width:400px;max-width:400px}:host .notifications-container{overflow:auto}:host ngssm-shell-notification{margin:4px}\n"] }]
360
360
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
@@ -399,10 +399,10 @@ class ShellComponent extends NgSsmComponent {
399
399
  toggleNavigationBarState() {
400
400
  this.dispatchActionType(ShellActionType.toggleNavigationBarState);
401
401
  }
402
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
403
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ShellComponent, isStandalone: true, selector: "ngssm-shell", inputs: { shellConfig: "shellConfig" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-shell-container\" *ngIf=\"(shellConfig$ | async) as config; else noShellConfig\">\n <mat-sidenav-container>\n <mat-sidenav-content>\n <mat-toolbar class=\"ngssm-shell-header\">\n <button mat-icon-button (click)=\"toggleNavigationBarState()\">\n <mat-icon class=\"fa-solid fa-bars\"></mat-icon>\n </button>\n <img [src]=\"config.logo\" *ngIf=\"config.logo\" class=\"ngssm-shell-header-logo\" />\n <span class=\"ngssm-shell-header-title\" *ngIf=\"config.applicationTitle\">\n {{config.applicationTitle}}\n </span>\n <ng-content></ng-content>\n </mat-toolbar>\n\n <mat-sidenav-container>\n <mat-sidenav mode=\"side\" [opened]=\"(navigationBarOpen$ | async)===true\"\n class=\"ngssm-shell-navigation-bar\">\n <ngssm-side-nav [config]=\"config.sidenavConfig\"></ngssm-side-nav>\n </mat-sidenav>\n <mat-sidenav-content class=\"ngssm-shell-content\">\n <router-outlet></router-outlet>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n\n <mat-sidenav mode=\"over\" opened=\"false\" #rightSidebar position=\"end\" class=\"ngssm-shell-messages-bar\">\n <ngssm-shell-notifications class=\"ngssm-shell-notifications\"></ngssm-shell-notifications>\n </mat-sidenav>\n </mat-sidenav-container>\n <mat-toolbar class=\"ngssm-shell-footer\" *ngIf=\"config.displayFooter === true\">\n <ngssm-wrapper *ngFor=\"let component of config.footerComponents\" [item]=\"component\"></ngssm-wrapper>\n <span class=\"ngssm-fxFlex\"></span>\n <button mat-icon-button (click)=\"rightSidebar.toggle()\" *ngIf=\"config.displayFooterNotificationsButton\">\n <mat-icon class=\"fa-regular fa-message\" [matBadge]=\"notificationsCount$ | async\"\n *ngIf=\"(notificationsCount$ | async) ?? 0 > 0\">\n </mat-icon>\n <mat-icon class=\"fa-regular fa-message\" *ngIf=\"(notificationsCount$ | async) === 0\">\n </mat-icon>\n </button>\n </mat-toolbar>\n</div>\n\n<ng-template #noShellConfig>\n <div class=\"ngssm-shell-no-config\">\n Please, provide a config for the shell.\n </div>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i4$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4$3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4$3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: SideNavComponent, selector: "ngssm-side-nav", inputs: ["config"] }, { kind: "component", type: ShellNotificationsComponent, selector: "ngssm-shell-notifications" }, { kind: "component", type: WrapperComponent, selector: "ngssm-wrapper", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
402
404
  }
403
- ShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
404
- ShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ShellComponent, isStandalone: true, selector: "ngssm-shell", inputs: { shellConfig: "shellConfig" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-shell-container\" *ngIf=\"(shellConfig$ | async) as config; else noShellConfig\">\n <mat-sidenav-container>\n <mat-sidenav-content>\n <mat-toolbar class=\"ngssm-shell-header\">\n <button mat-icon-button (click)=\"toggleNavigationBarState()\">\n <mat-icon class=\"fa-solid fa-bars\"></mat-icon>\n </button>\n <img [src]=\"config.logo\" *ngIf=\"config.logo\" class=\"ngssm-shell-header-logo\" />\n <span class=\"ngssm-shell-header-title\" *ngIf=\"config.applicationTitle\">\n {{config.applicationTitle}}\n </span>\n <ng-content></ng-content>\n </mat-toolbar>\n\n <mat-sidenav-container>\n <mat-sidenav mode=\"side\" [opened]=\"(navigationBarOpen$ | async)===true\"\n class=\"ngssm-shell-navigation-bar\">\n <ngssm-side-nav [config]=\"config.sidenavConfig\"></ngssm-side-nav>\n </mat-sidenav>\n <mat-sidenav-content class=\"ngssm-shell-content\">\n <router-outlet></router-outlet>\n </mat-sidenav-content>\n </mat-sidenav-container>\n </mat-sidenav-content>\n\n <mat-sidenav mode=\"over\" opened=\"false\" #rightSidebar position=\"end\" class=\"ngssm-shell-messages-bar\">\n <ngssm-shell-notifications class=\"ngssm-shell-notifications\"></ngssm-shell-notifications>\n </mat-sidenav>\n </mat-sidenav-container>\n <mat-toolbar class=\"ngssm-shell-footer\" *ngIf=\"config.displayFooter === true\">\n <ngssm-wrapper *ngFor=\"let component of config.footerComponents\" [item]=\"component\"></ngssm-wrapper>\n <span class=\"ngssm-fxFlex\"></span>\n <button mat-icon-button (click)=\"rightSidebar.toggle()\" *ngIf=\"config.displayFooterNotificationsButton\">\n <mat-icon class=\"fa-regular fa-message\" [matBadge]=\"notificationsCount$ | async\"\n *ngIf=\"(notificationsCount$ | async) ?? 0 > 0\">\n </mat-icon>\n <mat-icon class=\"fa-regular fa-message\" *ngIf=\"(notificationsCount$ | async) === 0\">\n </mat-icon>\n </button>\n </mat-toolbar>\n</div>\n\n<ng-template #noShellConfig>\n <div class=\"ngssm-shell-no-config\">\n Please, provide a config for the shell.\n </div>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i4$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4$3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4$3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: SideNavComponent, selector: "ngssm-side-nav", inputs: ["config"] }, { kind: "component", type: ShellNotificationsComponent, selector: "ngssm-shell-notifications" }, { kind: "component", type: WrapperComponent, selector: "ngssm-wrapper", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ShellComponent, decorators: [{
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ShellComponent, decorators: [{
406
406
  type: Component,
407
407
  args: [{ selector: 'ngssm-shell', standalone: true, imports: [
408
408
  CommonModule,
@@ -436,10 +436,10 @@ class NotificationShowingEffect {
436
436
  verticalPosition: 'top'
437
437
  });
438
438
  }
439
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NotificationShowingEffect, deps: [{ token: i1$1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
440
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NotificationShowingEffect }); }
439
441
  }
440
- NotificationShowingEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NotificationShowingEffect, deps: [{ token: i1$1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
441
- NotificationShowingEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NotificationShowingEffect });
442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NotificationShowingEffect, decorators: [{
442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NotificationShowingEffect, decorators: [{
443
443
  type: Injectable
444
444
  }], ctorParameters: function () { return [{ type: i1$1.MatSnackBar }]; } });
445
445
  const notificationShowingEffectProvider = {