@indice/ng-components 0.2.131 → 0.2.132-beta

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 (30) hide show
  1. package/README.md +4 -4
  2. package/_styles.css +72 -25
  3. package/bundles/indice-ng-components.umd.js +126 -124
  4. package/bundles/indice-ng-components.umd.js.map +1 -1
  5. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +1 -1
  6. package/esm2015/lib/controls/list-view/list-column.component.js +1 -1
  7. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +2 -2
  8. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +1 -1
  9. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +67 -62
  10. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +6 -11
  11. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +6 -5
  12. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +3 -1
  13. package/esm2015/lib/ng-components.module.js +6 -4
  14. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +2 -2
  15. package/esm2015/lib/pipes/obs-with-status.pipe.js +26 -0
  16. package/esm2015/lib/services/toaster.service.js +1 -1
  17. package/esm2015/lib/types.js +11 -5
  18. package/esm2015/public-api.js +2 -2
  19. package/fesm2015/indice-ng-components.js +111 -108
  20. package/fesm2015/indice-ng-components.js.map +1 -1
  21. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +24 -20
  22. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +2 -3
  23. package/lib/layouts/views/form-layout/form-layout.component.d.ts +3 -2
  24. package/lib/ng-components.module.d.ts +2 -2
  25. package/lib/pipes/obs-with-status.pipe.d.ts +13 -0
  26. package/lib/types.d.ts +12 -7
  27. package/package.json +1 -1
  28. package/public-api.d.ts +1 -1
  29. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -35
  30. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +0 -14
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/router'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@indice/ng-auth')) :
3
3
  typeof define === 'function' && define.amd ? define('@indice/ng-components', ['exports', '@angular/core', '@angular/common', '@angular/router', '@angular/forms', 'rxjs', 'rxjs/operators', '@indice/ng-auth'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.indice = global.indice || {}, global.indice["ng-components"] = {}), global.ng.core, global.ng.common, global.ng.router, global.ng.forms, global.rxjs, global.rxjs.operators, global.i2));
5
- })(this, (function (exports, i0, i1, i1$1, forms, rxjs, operators, i2) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.indice = global.indice || {}, global.indice['ng-components'] = {}), global.ng.core, global.ng.common, global.ng.router, global.ng.forms, global.rxjs, global.rxjs.operators, global.i2));
5
+ }(this, (function (exports, i0, i1, i1$1, forms, rxjs, operators, i2) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -13,12 +13,14 @@
13
13
  var d = Object.getOwnPropertyDescriptor(e, k);
14
14
  Object.defineProperty(n, k, d.get ? d : {
15
15
  enumerable: true,
16
- get: function () { return e[k]; }
16
+ get: function () {
17
+ return e[k];
18
+ }
17
19
  });
18
20
  }
19
21
  });
20
22
  }
21
- n["default"] = e;
23
+ n['default'] = e;
22
24
  return Object.freeze(n);
23
25
  }
24
26
 
@@ -253,16 +255,10 @@
253
255
  r[k] = a[j];
254
256
  return r;
255
257
  }
256
- function __spreadArray(to, from, pack) {
257
- if (pack || arguments.length === 2)
258
- for (var i = 0, l = from.length, ar; i < l; i++) {
259
- if (ar || !(i in from)) {
260
- if (!ar)
261
- ar = Array.prototype.slice.call(from, 0, i);
262
- ar[i] = from[i];
263
- }
264
- }
265
- return to.concat(ar || Array.prototype.slice.call(from));
258
+ function __spreadArray(to, from) {
259
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
260
+ to[j] = from[i];
261
+ return to;
266
262
  }
267
263
  function __await(v) {
268
264
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -663,36 +659,41 @@
663
659
  Icons.Details = ' ms-Icon ms-Icon--AccountActivity';
664
660
 
665
661
  var NavLink = /** @class */ (function () {
666
- function NavLink(text, path, exact, external, icon) {
662
+ function NavLink(text, path, exact, external, icon, isRead, creationDate) {
667
663
  if (exact === void 0) { exact = false; }
668
664
  if (external === void 0) { external = false; }
669
- this.type = 'router';
665
+ this.isRead = false;
670
666
  this.text = text;
671
667
  this.path = path;
672
668
  this.exact = exact;
673
669
  this.external = external;
674
670
  this.icon = icon;
671
+ this.isRead = isRead;
672
+ this.creationDate = creationDate;
675
673
  }
676
674
  return NavLink;
677
675
  }());
678
676
  var ExternalNavLink = /** @class */ (function (_super) {
679
677
  __extends(ExternalNavLink, _super);
680
678
  function ExternalNavLink(text, path, openInNewTab, icon) {
681
- var _this = _super.call(this, text, path, true, openInNewTab, icon) || this;
682
- _this.type = 'external';
683
- return _this;
679
+ return _super.call(this, text, path, true, openInNewTab, icon) || this;
684
680
  }
685
681
  return ExternalNavLink;
686
682
  }(NavLink));
687
683
  var FragmentNavLink = /** @class */ (function (_super) {
688
684
  __extends(FragmentNavLink, _super);
689
685
  function FragmentNavLink(text, path, icon) {
690
- var _this = _super.call(this, text, path, true, true, icon) || this;
691
- _this.type = 'fragment';
692
- return _this;
686
+ return _super.call(this, text, path, true, true, icon) || this;
693
687
  }
694
688
  return FragmentNavLink;
695
689
  }(NavLink));
690
+ var NotificationNavLink = /** @class */ (function (_super) {
691
+ __extends(NotificationNavLink, _super);
692
+ function NotificationNavLink(text, path, isRead, creationDate) {
693
+ return _super.call(this, text, path, true, false, undefined, isRead, creationDate) || this;
694
+ }
695
+ return NotificationNavLink;
696
+ }(NavLink));
696
697
  var ViewAction = /** @class */ (function () {
697
698
  function ViewAction(type, key, param, icon, tooltip) {
698
699
  this.type = type;
@@ -755,6 +756,7 @@
755
756
  this.appLogoAlt = 'your app name here';
756
757
  this.showHeader = true;
757
758
  this.showUserNameOnHeader = false;
759
+ this.showNotifications = false;
758
760
  this.showFooter = true;
759
761
  this.fluid = false;
760
762
  }
@@ -987,7 +989,7 @@
987
989
  return ListViewEmptyStateComponent;
988
990
  }());
989
991
  ListViewEmptyStateComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ListViewEmptyStateComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
990
- ListViewEmptyStateComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0__namespace, template: "<div class=\"p-20\">\n <div class=\"text-center p-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\n </svg>\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\n <p class=\"mt-1 text-sm text-gray-500\">\n {{subTitle}}\n </p>\n <div class=\"mt-6\" *ngIf=\"false\">\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\n <!-- Heroicon name: solid/plus -->\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n </svg>\n {{newItemLabel}}\n </button>\n </div>\n </div>\n</div>\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
992
+ ListViewEmptyStateComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0__namespace, template: "<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
991
993
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ListViewEmptyStateComponent, decorators: [{
992
994
  type: i0.Component,
993
995
  args: [{
@@ -1811,38 +1813,6 @@
1811
1813
  type: i0.Output
1812
1814
  }] } });
1813
1815
 
1814
- var NavLinksListComponent = /** @class */ (function () {
1815
- function NavLinksListComponent() {
1816
- // tslint:disable-next-line:no-input-rename
1817
- this.navLinkClass = 'nav-link';
1818
- // tslint:disable-next-line:no-input-rename
1819
- this.navLinkActiveClass = 'nav-link-active';
1820
- }
1821
- NavLinksListComponent.prototype.ngOnInit = function () {
1822
- };
1823
- return NavLinksListComponent;
1824
- }());
1825
- NavLinksListComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: NavLinksListComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1826
- NavLinksListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"] }, ngImport: i0__namespace, template: "<ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n {{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n class=\"nav-link\">\n {{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n class=\"nav-link\">\n {{ link.text }}\n </a>\n </ng-container>\n</ng-container>\n", directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1__namespace$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], pipes: { "async": i1__namespace.AsyncPipe } });
1827
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: NavLinksListComponent, decorators: [{
1828
- type: i0.Component,
1829
- args: [{
1830
- selector: 'lib-nav-links-list',
1831
- templateUrl: './nav-links-list.component.html'
1832
- }]
1833
- }], ctorParameters: function () { return []; }, propDecorators: { links: [{
1834
- type: i0.Input
1835
- }], activeFragment: [{
1836
- type: i0.Input,
1837
- args: ['active-fragment']
1838
- }], navLinkClass: [{
1839
- type: i0.Input,
1840
- args: ['link-class']
1841
- }], navLinkActiveClass: [{
1842
- type: i0.Input,
1843
- args: ['link-active-class']
1844
- }] } });
1845
-
1846
1816
  var APP_LINKS = new i0.InjectionToken('APP_LINKS');
1847
1817
  var SHELL_CONFIG = new i0.InjectionToken('SHELL_CONFIG');
1848
1818
 
@@ -2097,90 +2067,129 @@
2097
2067
  args: [{ providedIn: 'root' }]
2098
2068
  }], ctorParameters: function () { return [{ type: i0__namespace.ComponentFactoryResolver }, { type: i0__namespace.Injector }, { type: i0__namespace.ApplicationRef }]; } });
2099
2069
 
2070
+ var defaultError = 'Something went wrong';
2071
+ var ObsWithStatusPipe = /** @class */ (function () {
2072
+ function ObsWithStatusPipe() {
2073
+ }
2074
+ ObsWithStatusPipe.prototype.transform = function (val) {
2075
+ return val.pipe(operators.map(function (value) {
2076
+ return {
2077
+ loading: value.type === 'start',
2078
+ error: value.type === 'error' ? defaultError : '',
2079
+ value: value.type ? value.value : value,
2080
+ };
2081
+ }), operators.startWith({ loading: true }), operators.catchError(function (error) { return rxjs.of({ loading: false, error: typeof error === 'string' ? error : defaultError }); }));
2082
+ };
2083
+ return ObsWithStatusPipe;
2084
+ }());
2085
+ ObsWithStatusPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ObsWithStatusPipe, deps: [], target: i0__namespace.ɵɵFactoryTarget.Pipe });
2086
+ ObsWithStatusPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ObsWithStatusPipe, name: "obsWithStatus", pure: false });
2087
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ObsWithStatusPipe, decorators: [{
2088
+ type: i0.Pipe,
2089
+ args: [{
2090
+ name: 'obsWithStatus',
2091
+ pure: false
2092
+ }]
2093
+ }] });
2094
+
2100
2095
  var ShellHeaderComponent = /** @class */ (function () {
2101
- function ShellHeaderComponent(authService, router, route, config, links) {
2096
+ function ShellHeaderComponent(authService, router, links) {
2102
2097
  this.authService = authService;
2103
2098
  this.router = router;
2104
- this.route = route;
2105
- this.config = config;
2106
2099
  this.links = links;
2107
2100
  // tslint:disable-next-line:no-input-rename
2108
2101
  this.sectionLinksPath = 'main';
2109
- // tslint:disable-next-line:no-input-rename
2110
- this.profileMenuVisible = true;
2111
- // tslint:disable-next-line:no-input-rename
2112
- this.showUserNameOnHeader = false;
2102
+ this.notificationLinksPath = 'notifications';
2103
+ this.allNotificationsLinkPath = 'allNotifications';
2113
2104
  this.border = true;
2105
+ this.showNotifications = false;
2106
+ this.showUserNameOnHeader = false;
2107
+ this.notificationsMenuVisible = true;
2108
+ this.profileMenuVisible = true;
2114
2109
  this.sectionLinks = rxjs.of([]);
2110
+ this.notificationLinks = rxjs.of([]);
2111
+ this.allNotificationsLink = rxjs.of();
2115
2112
  this.mobileMenuExpanded = false;
2116
2113
  this.userMenuExpanded = false;
2114
+ this.notificationsMenuExpanded = false;
2115
+ this.routeSubject = new rxjs.Observable();
2117
2116
  this.routerSub$ = null;
2118
2117
  this.userSub$ = null;
2119
2118
  this.statusSub$ = null;
2120
2119
  this.user = null;
2121
2120
  this.avatarName = null;
2122
- this.activeFragment = null;
2123
- this.routeSubject = this.router.events.pipe(operators.filter(function (event) { return event instanceof i1$1.NavigationStart; }));
2124
2121
  }
2122
+ ShellHeaderComponent.prototype.ngOnDestroy = function () {
2123
+ if (this.routerSub$) {
2124
+ this.routerSub$.unsubscribe();
2125
+ }
2126
+ // TODO: check authenticated user here before we start polling server status
2127
+ if (this.statusSub$) {
2128
+ this.statusSub$.unsubscribe();
2129
+ }
2130
+ if (this.userSub$) {
2131
+ this.userSub$.unsubscribe();
2132
+ }
2133
+ };
2125
2134
  ShellHeaderComponent.prototype.ngOnInit = function () {
2126
2135
  var _this = this;
2127
- this.activeFragment = this.route.fragment.pipe(operators.share());
2136
+ var _a, _b;
2137
+ this.showNotifications = (_a = this.config) === null || _a === void 0 ? void 0 : _a.showNotifications;
2138
+ this.showUserNameOnHeader = (_b = this.config) === null || _b === void 0 ? void 0 : _b.showUserNameOnHeader;
2128
2139
  this.sectionLinks = this.links[this.sectionLinksPath];
2129
- this.routerSub$ = this.routeSubject.subscribe(function (event) {
2140
+ this.notificationLinks = this.links[this.notificationLinksPath];
2141
+ this.allNotificationsLink = this.links[this.allNotificationsLinkPath];
2142
+ this.routerSub$ = this.router.events.pipe(operators.filter(function (event) { return event instanceof i1$1.NavigationStart; })).subscribe(function (event) {
2130
2143
  _this.mobileMenuExpanded = false;
2131
2144
  _this.userMenuExpanded = false;
2145
+ _this.notificationsMenuExpanded = false;
2132
2146
  });
2133
2147
  this.authService.loadUser().subscribe(function (user) {
2148
+ console.log(user);
2134
2149
  _this.setCurrentUser(user);
2135
2150
  }, function (error) {
2136
- console.error(error);
2151
+ console.log(error);
2137
2152
  });
2138
2153
  // Detect user changes and display / or not user info accordingly...
2139
2154
  this.userSub$ = this.authService.user$.subscribe(function (user) {
2140
2155
  // console.log('ShellHeaderComponent user subscription');
2141
2156
  _this.setCurrentUser(user);
2142
2157
  });
2143
- // set current lang if no current value from langs if any
2144
- if (!this.currentLang && this.langs && this.langs.length > 0) {
2145
- this.setCurrentLang(this.langs[0]);
2146
- }
2147
2158
  };
2148
- ShellHeaderComponent.prototype.ngOnDestroy = function () {
2149
- if (this.routerSub$) {
2150
- this.routerSub$.unsubscribe();
2151
- }
2152
- // TODO: check authenticated user here before we start polling server status
2153
- if (this.statusSub$) {
2154
- this.statusSub$.unsubscribe();
2155
- }
2156
- if (this.userSub$) {
2157
- this.userSub$.unsubscribe();
2159
+ ShellHeaderComponent.prototype.setCurrentUser = function (user) {
2160
+ var _a, _b;
2161
+ this.user = user;
2162
+ if (this.user && this.user.profile) {
2163
+ this.avatarName = "" + ((_a = this.user.profile.given_name) === null || _a === void 0 ? void 0 : _a.charAt(0)) + ((_b = this.user.profile.family_name) === null || _b === void 0 ? void 0 : _b.charAt(0));
2164
+ console.log('load user', this.avatarName);
2158
2165
  }
2159
2166
  };
2160
2167
  // tslint:disable-next-line:typedef
2161
- ShellHeaderComponent.prototype.onClickOutside = function ($event) {
2168
+ ShellHeaderComponent.prototype.onClickOutsideProfile = function ($event) {
2162
2169
  this.userMenuExpanded = false;
2163
2170
  };
2171
+ // tslint:disable-next-line:typedef
2172
+ ShellHeaderComponent.prototype.onClickOutsideNotifications = function ($event) {
2173
+ this.notificationsMenuExpanded = false;
2174
+ };
2164
2175
  ShellHeaderComponent.prototype.signin = function (event) {
2165
2176
  if (event) {
2166
2177
  event.preventDefault();
2167
2178
  }
2168
2179
  this.authService.signinRedirect();
2169
2180
  };
2170
- ShellHeaderComponent.prototype.setCurrentUser = function (user) {
2171
- var _a, _b;
2172
- this.user = user;
2173
- if (this.user && this.user.profile) {
2174
- this.avatarName = ("" + ((_a = this.user.profile.given_name) === null || _a === void 0 ? void 0 : _a.charAt(0)) + ((_b = this.user.profile.family_name) === null || _b === void 0 ? void 0 : _b.charAt(0))).toUpperCase();
2175
- }
2181
+ ShellHeaderComponent.prototype.expandUserMenu = function () {
2182
+ this.userMenuExpanded = !this.userMenuExpanded;
2183
+ this.notificationsMenuExpanded = false;
2176
2184
  };
2177
- ShellHeaderComponent.prototype.setCurrentLang = function (lang) {
2178
- this.currentLang = lang;
2185
+ ShellHeaderComponent.prototype.expandNotificationsMenu = function () {
2186
+ this.notificationsMenuExpanded = !this.notificationsMenuExpanded;
2187
+ this.userMenuExpanded = false;
2179
2188
  };
2180
2189
  return ShellHeaderComponent;
2181
2190
  }());
2182
- ShellHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellHeaderComponent, deps: [{ token: i2.AuthService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
2183
- ShellHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], profileMenuVisible: ["profile-menu", "profileMenuVisible"], showUserNameOnHeader: ["show-userName", "showUserNameOnHeader"], langs: "langs", currentLang: ["current-lang", "currentLang"], border: "border" }, ngImport: i0__namespace, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"langs && langs.length > 1 && currentLang\" class=\"shell-header-links-far-container\">\r\n <button class=\"text-blue-300 hover:text-blue-500\">\r\n <span>{{currentLang}}</span>\r\n <i class=\"text-xs ml-1 ms-Icon ms-Icon--ChevronDown\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list [links]=\"links.profileActions\" [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\" [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n <!-- <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutside($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\" [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container> -->\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-2 relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\" *ngIf=\"user\" (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <div class=\"mobile-menu-link-container\">\r\n <lib-nav-links-list [links]=\"sectionLinks\" [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\" [link-active-class]=\"'nav-link-mobile-active'\">\r\n </lib-nav-links-list>\r\n <ng-container *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"mobile-menu-link-container\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n </div>\r\n</nav>\r\n", components: [{ type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class"] }], directives: [{ type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2191
+ ShellHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellHeaderComponent, deps: [{ token: i2.AuthService }, { token: i1$1.Router }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
2192
+ ShellHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], notificationLinksPath: ["notification-links", "notificationLinksPath"], allNotificationsLinkPath: ["all-notifications", "allNotificationsLinkPath"], config: "config", border: "border" }, ngImport: i0__namespace, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n <div>\r\n <a href=\"#\"\r\n [routerLink]=\"['/']\"><img class=\"app-logo\"\r\n [src]=\"config.appLogo\"\r\n [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [routerLinkActive]=\"['nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n\r\n <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\"\r\n [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Profile dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n *ngIf=\"profileMenuVisible\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\"\r\n class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"user\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <!-- <a href=\"#\" class=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100\" role=\"menuitem\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <!-- <a *ngIf=\"link.external\" [attr.href]=\"link.path\" [attr.target]=\"'_blank'\" class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a> -->\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-profile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideNotifications($event)\"\r\n *ngIf=\"notificationsMenuVisible\">\r\n <!-- Notifications Button -->\r\n <button class=\"mobile-menu-rounded-button bg-transparent\"\r\n *ngIf=\"showNotifications\"\r\n (click)=\"expandNotificationsMenu()\"\r\n id=\"notifications-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n\r\n <div *ngIf=\"notificationsMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-notifications-dropdown-with-username' : 'shell-header-notifications-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"notifications-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!notificationLinks; else notificationsDropDown\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-template #notificationsDropDown>\r\n <ul class=\"pr-1.5\">\r\n <div *ngIf=\"notificationLinks | obsWithStatus | async as obs\">\r\n <ng-template [ngIf]=\"obs.value\">\r\n <ng-container *ngFor=\"let link of notificationLinks | async\">\r\n <li class=\"mb-2\"\r\n [ngClass]=\"{'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !link.isRead }\">\r\n <a [routerLink]=\"link.path\"\r\n class=\"nav-link-notifications grid grid-row\"\r\n [ngClass]=\"!link.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\">\r\n <span class=\"font-bold\">\r\n {{ link.text }}\r\n </span>\r\n <span class=\"font-thin tracking-tighter\">\r\n {{ link.creationDate | date: 'EEE, d MMMM' }}\r\n </span>\r\n </a>\r\n </li>\r\n </ng-container>\r\n\r\n </ng-template>\r\n <ng-template [ngIf]=\"obs.loading\">\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"pr-1.5 py-1 rounded-sm\">\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button type=\"button\"\r\n class=\"shell-header-notifications-dropdown-view-all-button\">\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03CC\u03BB\u03C9\u03BD</button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg class=\"block h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg class=\"hidden h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\"\r\n *ngIf=\"mobileMenuExpanded\"\r\n id=\"mobile-menu\">\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a *ngIf=\"!link.external\"\r\n [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user\">\r\n <a href=\"#\"\r\n (click)=\"signin($event)\"\r\n class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"mobile-menu-user-info-container\"\r\n *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <!-- <a href=\"#\" class=\"block px-3 py-2 rounded-sm text-base font-medium text-gray-400 hover:text-white hover:bg-gray-700\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n </div>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1__namespace.AsyncPipe, "obsWithStatus": ObsWithStatusPipe, "date": i1__namespace.DatePipe } });
2184
2193
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellHeaderComponent, decorators: [{
2185
2194
  type: i0.Component,
2186
2195
  args: [{
@@ -2195,12 +2204,6 @@
2195
2204
  }] }, { type: i1__namespace$1.Router, decorators: [{
2196
2205
  type: i0.Inject,
2197
2206
  args: [i1$1.Router]
2198
- }] }, { type: i1__namespace$1.ActivatedRoute, decorators: [{
2199
- type: i0.Inject,
2200
- args: [i1$1.ActivatedRoute]
2201
- }] }, { type: undefined, decorators: [{
2202
- type: i0.Inject,
2203
- args: [SHELL_CONFIG]
2204
2207
  }] }, { type: undefined, decorators: [{
2205
2208
  type: i0.Inject,
2206
2209
  args: [APP_LINKS]
@@ -2208,17 +2211,14 @@
2208
2211
  }, propDecorators: { sectionLinksPath: [{
2209
2212
  type: i0.Input,
2210
2213
  args: ['section-links']
2211
- }], profileMenuVisible: [{
2214
+ }], notificationLinksPath: [{
2212
2215
  type: i0.Input,
2213
- args: ['profile-menu']
2214
- }], showUserNameOnHeader: [{
2216
+ args: ['notification-links']
2217
+ }], allNotificationsLinkPath: [{
2215
2218
  type: i0.Input,
2216
- args: ['show-userName']
2217
- }], langs: [{
2219
+ args: ['all-notifications']
2220
+ }], config: [{
2218
2221
  type: i0.Input
2219
- }], currentLang: [{
2220
- type: i0.Input,
2221
- args: ['current-lang']
2222
2222
  }], border: [{
2223
2223
  type: i0.Input
2224
2224
  }] } });
@@ -2245,15 +2245,14 @@
2245
2245
  } });
2246
2246
 
2247
2247
  var ShellLayoutComponent = /** @class */ (function () {
2248
- function ShellLayoutComponent(document, router, location, config, componentLoaderFactory) {
2249
- this.document = document;
2248
+ function ShellLayoutComponent(router, location, config, componentLoaderFactory) {
2250
2249
  this.router = router;
2251
2250
  this.location = location;
2252
2251
  this.config = config;
2253
2252
  this.componentLoaderFactory = componentLoaderFactory;
2254
2253
  this.dynamicComponentHosts = null;
2255
- this.showRightPaneSM = false;
2256
2254
  this.routerSub$ = null;
2255
+ this.showRightPaneSM = false;
2257
2256
  this.activeConfig = new DefaultShellConfig();
2258
2257
  this.loaded = false;
2259
2258
  if (!config) {
@@ -2317,8 +2316,8 @@
2317
2316
  };
2318
2317
  return ShellLayoutComponent;
2319
2318
  }());
2320
- ShellLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellLayoutComponent, deps: [{ token: i1.DOCUMENT }, { token: i1__namespace$1.Router }, { token: i1__namespace.Location }, { token: SHELL_CONFIG }, { token: ComponentLoaderFactory }], target: i0__namespace.ɵɵFactoryTarget.Component });
2321
- ShellLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0__namespace, template: "<div *ngIf=\"loaded\" [style.display]=\"!loaded ? 'none':'block'\" class=\"shell-container active-side-pane\">\r\n\r\n <div class=\"shell-header-container\" *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost =\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\" [langs]=\"activeConfig.langs\" [show-userName]=\"activeConfig.showUserNameOnHeader\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\" *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "profile-menu", "show-userName", "langs", "current-lang", "border"] }, { type: ShellFooterComponent, selector: "lib-shell-footer" }, { type: SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
2319
+ ShellLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellLayoutComponent, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace.Location }, { token: SHELL_CONFIG }, { token: ComponentLoaderFactory }], target: i0__namespace.ɵɵFactoryTarget.Component });
2320
+ ShellLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0__namespace, template: "<div *ngIf=\"loaded\"\r\n [style.display]=\"!loaded ? 'none':'block'\"\r\n class=\"shell-container active-side-pane\">\r\n <div class=\"shell-header-container\"\r\n *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\"\r\n [config]=\"activeConfig\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\"\r\n *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "notification-links", "all-notifications", "config", "border"] }, { type: ShellFooterComponent, selector: "lib-shell-footer" }, { type: SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
2322
2321
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: ShellLayoutComponent, decorators: [{
2323
2322
  type: i0.Component,
2324
2323
  args: [{
@@ -2327,10 +2326,7 @@
2327
2326
  templateUrl: './shell-layout.component.html',
2328
2327
  }]
2329
2328
  }], ctorParameters: function () {
2330
- return [{ type: undefined, decorators: [{
2331
- type: i0.Inject,
2332
- args: [i1.DOCUMENT]
2333
- }] }, { type: i1__namespace$1.Router }, { type: i1__namespace.Location }, { type: undefined, decorators: [{
2329
+ return [{ type: i1__namespace$1.Router }, { type: i1__namespace.Location }, { type: undefined, decorators: [{
2334
2330
  type: i0.Inject,
2335
2331
  args: [SHELL_CONFIG]
2336
2332
  }] }, { type: ComponentLoaderFactory }];
@@ -2461,9 +2457,11 @@
2461
2457
  ModelViewLayoutComponent.prototype.ngOnInit = function () {
2462
2458
  };
2463
2459
  ModelViewLayoutComponent.prototype.onSidePaneActivated = function ($event) {
2460
+ //console.log('onSidePaneActivated', $event);
2464
2461
  this.showRightPaneSM = true;
2465
2462
  };
2466
2463
  ModelViewLayoutComponent.prototype.onSidePaneDeactivated = function ($event) {
2464
+ //console.log('onSidePaneActivated', $event);
2467
2465
  this.showRightPaneSM = false;
2468
2466
  };
2469
2467
  ModelViewLayoutComponent.prototype.closeSidePane = function () {
@@ -2593,8 +2591,8 @@
2593
2591
  }] } });
2594
2592
 
2595
2593
  var FormLayoutComponent = /** @class */ (function () {
2596
- function FormLayoutComponent(router$) {
2597
- this.router$ = router$;
2594
+ function FormLayoutComponent(_router) {
2595
+ this._router = _router;
2598
2596
  this.title = null;
2599
2597
  // tslint:disable-next-line:no-input-rename
2600
2598
  this.searchPlaceholder = 'αναζήτηση';
@@ -2606,6 +2604,7 @@
2606
2604
  // tslint:disable-next-line:no-output-on-prefix
2607
2605
  this.onSearch = new i0.EventEmitter();
2608
2606
  this.onComplete = new i0.EventEmitter();
2607
+ this.showRightPaneSM = false;
2609
2608
  }
2610
2609
  FormLayoutComponent.prototype.ngOnInit = function () {
2611
2610
  var _a;
@@ -2635,10 +2634,10 @@
2635
2634
  FormLayoutComponent.prototype.routerLinkActionClick = function (action, relative) {
2636
2635
  if (relative === void 0) { relative = false; }
2637
2636
  if (action.outlet) {
2638
- this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
2637
+ this._router.navigate(['', { outlets: { formRightPane: action.link } }]);
2639
2638
  }
2640
2639
  else {
2641
- this.router$.navigate([action.link]);
2640
+ this._router.navigate([action.link]);
2642
2641
  }
2643
2642
  };
2644
2643
  return FormLayoutComponent;
@@ -2791,7 +2790,7 @@
2791
2790
  return PageNotFoundComponent;
2792
2791
  }());
2793
2792
  PageNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: PageNotFoundComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
2794
- PageNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: PageNotFoundComponent, selector: "lib-page-not-found", ngImport: i0__namespace, template: "<lib-view-layout [show-header]=\"false\" title=\"404 - \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">\u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5 \u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03C0\u03BF\u03C5 \u03B6\u03B7\u03C4\u03AE\u03C3\u03B1\u03C4\u03B5!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n", components: [{ type: ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
2793
+ PageNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: PageNotFoundComponent, selector: "lib-page-not-found", ngImport: i0__namespace, template: "<lib-view-layout [show-header]=\"false\"\r\n title=\"404 - \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">\u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5 \u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03C0\u03BF\u03C5 \u03B6\u03B7\u03C4\u03AE\u03C3\u03B1\u03C4\u03B5!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>", components: [{ type: ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
2795
2794
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0__namespace, type: PageNotFoundComponent, decorators: [{
2796
2795
  type: i0.Component,
2797
2796
  args: [{
@@ -3582,7 +3581,7 @@
3582
3581
  // pipes
3583
3582
  AddressPipe,
3584
3583
  DurationFormatPipe,
3585
- NavLinksListComponent
3584
+ ObsWithStatusPipe
3586
3585
  ], imports: [i1.CommonModule,
3587
3586
  i1$1.RouterModule,
3588
3587
  i2.IndiceAuthModule], exports: [ClickOutsideDirective,
@@ -3610,6 +3609,7 @@
3610
3609
  UnauthorizedComponent,
3611
3610
  AddressPipe,
3612
3611
  DurationFormatPipe,
3612
+ ObsWithStatusPipe,
3613
3613
  CollapsiblePanelComponent,
3614
3614
  SidePaneComponent,
3615
3615
  DatepickerComponent,
@@ -3666,7 +3666,7 @@
3666
3666
  // pipes
3667
3667
  AddressPipe,
3668
3668
  DurationFormatPipe,
3669
- NavLinksListComponent
3669
+ ObsWithStatusPipe
3670
3670
  ],
3671
3671
  imports: [
3672
3672
  i1.CommonModule,
@@ -3699,6 +3699,7 @@
3699
3699
  UnauthorizedComponent,
3700
3700
  AddressPipe,
3701
3701
  DurationFormatPipe,
3702
+ ObsWithStatusPipe,
3702
3703
  CollapsiblePanelComponent,
3703
3704
  SidePaneComponent,
3704
3705
  DatepickerComponent,
@@ -3752,7 +3753,8 @@
3752
3753
  exports.ModelViewLayoutComponent = ModelViewLayoutComponent;
3753
3754
  exports.NULL_TOAST = NULL_TOAST;
3754
3755
  exports.NavLink = NavLink;
3755
- exports.NavLinksListComponent = NavLinksListComponent;
3756
+ exports.NotificationNavLink = NotificationNavLink;
3757
+ exports.ObsWithStatusPipe = ObsWithStatusPipe;
3756
3758
  exports.PageNotFoundComponent = PageNotFoundComponent;
3757
3759
  exports.PagerComponent = PagerComponent;
3758
3760
  exports.RouterViewAction = RouterViewAction;
@@ -3774,5 +3776,5 @@
3774
3776
 
3775
3777
  Object.defineProperty(exports, '__esModule', { value: true });
3776
3778
 
3777
- }));
3779
+ })));
3778
3780
  //# sourceMappingURL=indice-ng-components.umd.js.map