@indice/ng-components 0.2.133-beta → 0.2.134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/_styles.css +25 -72
- package/bundles/indice-ng-components.umd.js +212 -119
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +1 -1
- package/esm2015/lib/controls/list-view/list-column.component.js +1 -1
- package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +2 -2
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +40 -0
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +68 -0
- package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +1 -1
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +70 -68
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +11 -6
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +5 -6
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +1 -3
- package/esm2015/lib/ng-components.module.js +7 -6
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +2 -2
- package/esm2015/lib/services/toaster.service.js +1 -1
- package/esm2015/lib/tokens.js +2 -1
- package/esm2015/lib/types.js +10 -7
- package/esm2015/public-api.js +2 -2
- package/fesm2015/indice-ng-components.js +189 -106
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +15 -0
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +23 -0
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +21 -24
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +3 -2
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +2 -3
- package/lib/ng-components.module.d.ts +6 -5
- package/lib/tokens.d.ts +1 -0
- package/lib/types.d.ts +27 -10
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2015/lib/pipes/obs-with-status.pipe.js +0 -26
- package/lib/pipes/obs-with-status.pipe.d.ts +0 -13
|
@@ -3,10 +3,10 @@ import { EventEmitter, PLATFORM_ID, Directive, Inject, Input, Output, Component,
|
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1$1 from '@angular/router';
|
|
6
|
-
import { NavigationStart, Router, ActivationStart, RouterModule } from '@angular/router';
|
|
6
|
+
import { NavigationStart, Router, ActivatedRoute, ActivationStart, RouterModule } from '@angular/router';
|
|
7
7
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
-
import { BehaviorSubject, Subject, of,
|
|
9
|
-
import { filter, map, debounceTime, distinctUntilChanged
|
|
8
|
+
import { BehaviorSubject, Subject, of, fromEvent } from 'rxjs';
|
|
9
|
+
import { filter, share, map, debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
10
10
|
import * as i2 from '@indice/ng-auth';
|
|
11
11
|
import { AuthService, IndiceAuthModule } from '@indice/ng-auth';
|
|
12
12
|
|
|
@@ -294,30 +294,33 @@ Icons.SortDesc = 'ms-Icon ms-Icon--Descending';
|
|
|
294
294
|
Icons.Details = ' ms-Icon ms-Icon--AccountActivity';
|
|
295
295
|
|
|
296
296
|
class NavLink {
|
|
297
|
-
constructor(text, path, exact = false, external = false, icon,
|
|
298
|
-
this.
|
|
297
|
+
constructor(text, path, exact = false, external = false, icon, data) {
|
|
298
|
+
this.type = 'router';
|
|
299
299
|
this.text = text;
|
|
300
300
|
this.path = path;
|
|
301
301
|
this.exact = exact;
|
|
302
302
|
this.external = external;
|
|
303
303
|
this.icon = icon;
|
|
304
|
-
this.
|
|
305
|
-
this.creationDate = creationDate;
|
|
304
|
+
this.data = data;
|
|
306
305
|
}
|
|
307
306
|
}
|
|
308
307
|
class ExternalNavLink extends NavLink {
|
|
309
308
|
constructor(text, path, openInNewTab, icon) {
|
|
310
309
|
super(text, path, true, openInNewTab, icon);
|
|
310
|
+
this.type = 'external';
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
class FragmentNavLink extends NavLink {
|
|
314
314
|
constructor(text, path, icon) {
|
|
315
315
|
super(text, path, true, true, icon);
|
|
316
|
+
this.type = 'fragment';
|
|
316
317
|
}
|
|
317
318
|
}
|
|
318
319
|
class NotificationNavLink extends NavLink {
|
|
319
320
|
constructor(text, path, isRead, creationDate) {
|
|
320
|
-
super(text, path, true, false, undefined
|
|
321
|
+
super(text, path, true, false, undefined);
|
|
322
|
+
this.isRead = isRead;
|
|
323
|
+
this.creationDate = creationDate;
|
|
321
324
|
}
|
|
322
325
|
}
|
|
323
326
|
class ViewAction {
|
|
@@ -371,7 +374,7 @@ class DefaultShellConfig {
|
|
|
371
374
|
this.appLogoAlt = 'your app name here';
|
|
372
375
|
this.showHeader = true;
|
|
373
376
|
this.showUserNameOnHeader = false;
|
|
374
|
-
this.
|
|
377
|
+
this.showAlertsOnHeader = false;
|
|
375
378
|
this.showFooter = true;
|
|
376
379
|
this.fluid = false;
|
|
377
380
|
}
|
|
@@ -598,7 +601,7 @@ class ListViewEmptyStateComponent {
|
|
|
598
601
|
}
|
|
599
602
|
}
|
|
600
603
|
ListViewEmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ListViewEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
601
|
-
ListViewEmptyStateComponent.ɵcmp = i0.ɵɵ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, template: "<div class=\"p-20\">\
|
|
604
|
+
ListViewEmptyStateComponent.ɵcmp = i0.ɵɵ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, 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
602
605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ListViewEmptyStateComponent, decorators: [{
|
|
603
606
|
type: Component,
|
|
604
607
|
args: [{
|
|
@@ -1394,7 +1397,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1394
1397
|
type: Output
|
|
1395
1398
|
}] } });
|
|
1396
1399
|
|
|
1400
|
+
class NavLinksListComponent {
|
|
1401
|
+
constructor() {
|
|
1402
|
+
// tslint:disable-next-line:no-input-rename
|
|
1403
|
+
this.navLinkClass = 'nav-link';
|
|
1404
|
+
// tslint:disable-next-line:no-input-rename
|
|
1405
|
+
this.navLinkActiveClass = 'nav-link-active';
|
|
1406
|
+
// tslint:disable-next-line:no-input-rename
|
|
1407
|
+
this.containerClass = '';
|
|
1408
|
+
}
|
|
1409
|
+
ngOnInit() {
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
NavLinksListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NavLinksListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1413
|
+
NavLinksListComponent.ɵcmp = i0.ɵɵ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"], containerClass: ["container-class", "containerClass"] }, ngImport: i0, template: "<div [class]=\"containerClass\">\n <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</div>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }], pipes: { "async": i1.AsyncPipe } });
|
|
1414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NavLinksListComponent, decorators: [{
|
|
1415
|
+
type: Component,
|
|
1416
|
+
args: [{
|
|
1417
|
+
selector: 'lib-nav-links-list',
|
|
1418
|
+
templateUrl: './nav-links-list.component.html'
|
|
1419
|
+
}]
|
|
1420
|
+
}], ctorParameters: function () { return []; }, propDecorators: { links: [{
|
|
1421
|
+
type: Input
|
|
1422
|
+
}], activeFragment: [{
|
|
1423
|
+
type: Input,
|
|
1424
|
+
args: ['active-fragment']
|
|
1425
|
+
}], navLinkClass: [{
|
|
1426
|
+
type: Input,
|
|
1427
|
+
args: ['link-class']
|
|
1428
|
+
}], navLinkActiveClass: [{
|
|
1429
|
+
type: Input,
|
|
1430
|
+
args: ['link-active-class']
|
|
1431
|
+
}], containerClass: [{
|
|
1432
|
+
type: Input,
|
|
1433
|
+
args: ['container-class']
|
|
1434
|
+
}] } });
|
|
1435
|
+
|
|
1397
1436
|
const APP_LINKS = new InjectionToken('APP_LINKS');
|
|
1437
|
+
const APP_NOTIFICATIONS = new InjectionToken('APP_NOTIFICATIONS');
|
|
1398
1438
|
const SHELL_CONFIG = new InjectionToken('SHELL_CONFIG');
|
|
1399
1439
|
|
|
1400
1440
|
class DynamicComponentHostDirective {
|
|
@@ -1643,102 +1683,154 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1643
1683
|
args: [{ providedIn: 'root' }]
|
|
1644
1684
|
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
1645
1685
|
|
|
1686
|
+
class NotificationsIndicatorComponent {
|
|
1687
|
+
constructor(notifications) {
|
|
1688
|
+
this.notifications = notifications;
|
|
1689
|
+
this.notificationsMenuVisible = true;
|
|
1690
|
+
this.menuExpanded = false;
|
|
1691
|
+
this.showNotifications = true;
|
|
1692
|
+
this.showUserNameOnHeader = true;
|
|
1693
|
+
this.unreadCount = 0;
|
|
1694
|
+
this.items = [];
|
|
1695
|
+
this.inboxAction = undefined;
|
|
1696
|
+
this.newArrival = false;
|
|
1697
|
+
}
|
|
1698
|
+
ngOnDestroy() {
|
|
1699
|
+
if (this.notificationsSub$) {
|
|
1700
|
+
this.notificationsSub$.unsubscribe();
|
|
1701
|
+
}
|
|
1702
|
+
}
|
|
1703
|
+
ngOnInit() {
|
|
1704
|
+
this.notificationsSub$ = this.notifications.messages.subscribe(result => {
|
|
1705
|
+
if (result.items) {
|
|
1706
|
+
this.newArrival = true;
|
|
1707
|
+
this.unreadCount = result.count;
|
|
1708
|
+
this.items = result.items;
|
|
1709
|
+
setTimeout(() => { this.newArrival = false; }, 1000);
|
|
1710
|
+
}
|
|
1711
|
+
});
|
|
1712
|
+
}
|
|
1713
|
+
toggleMenu() {
|
|
1714
|
+
this.menuExpanded = !this.menuExpanded;
|
|
1715
|
+
this.unreadCount = 0;
|
|
1716
|
+
}
|
|
1717
|
+
doInboxAction() {
|
|
1718
|
+
if (this.notifications.inboxAction) {
|
|
1719
|
+
this.notifications.inboxAction();
|
|
1720
|
+
}
|
|
1721
|
+
this.unreadCount = 0;
|
|
1722
|
+
}
|
|
1723
|
+
// this.notificationsSub$ = this.links.notifications?.pipe(map(result => {
|
|
1724
|
+
// this.allItemsLink = result.allNotifications;
|
|
1725
|
+
// this.items = result.items;
|
|
1726
|
+
// this.unreadCount = result.count;
|
|
1727
|
+
// }));
|
|
1728
|
+
// [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;
|
|
1729
|
+
// this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;
|
|
1730
|
+
// this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;
|
|
1731
|
+
// this.getUnreadNotificationsCount();
|
|
1732
|
+
// tslint:disable-next-line:typedef
|
|
1733
|
+
onClickOutside($event) {
|
|
1734
|
+
this.menuExpanded = false;
|
|
1735
|
+
}
|
|
1736
|
+
}
|
|
1737
|
+
NotificationsIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NotificationsIndicatorComponent, deps: [{ token: APP_NOTIFICATIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
1738
|
+
NotificationsIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator", ngImport: i0, template: "<div class=\"relative\">\n <!-- Notifications Button -->\n <button type=\"button\" (click)=\"doInboxAction()\" aria-expanded=\"false\" aria-haspopup=\"true\">\n <span class=\"sr-only\">View notifications</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">\n <i class=\"ms-Icon \"\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\n [class.text-sky-400]=\"unreadCount > 0\"\n [class.animate-notification]=\"newArrival\"\n [class.ms-Icon--Message]=\"unreadCount === 0\"></i>\n </span>\n <span *ngIf=\"unreadCount > 0\"\n [class.animate-pulse]=\"newArrival\"\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100\">\n {{unreadCount}}\n </span>\n </span>\n </button>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NotificationsIndicatorComponent, decorators: [{
|
|
1740
|
+
type: Component,
|
|
1741
|
+
args: [{
|
|
1742
|
+
selector: 'lib-notifications-indicator',
|
|
1743
|
+
templateUrl: './notifications-indicator.component.html'
|
|
1744
|
+
}]
|
|
1745
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1746
|
+
type: Inject,
|
|
1747
|
+
args: [APP_NOTIFICATIONS]
|
|
1748
|
+
}] }]; } });
|
|
1749
|
+
|
|
1646
1750
|
class ShellHeaderComponent {
|
|
1647
|
-
constructor(authService, router, links) {
|
|
1751
|
+
constructor(authService, router, route, config, links) {
|
|
1648
1752
|
this.authService = authService;
|
|
1649
1753
|
this.router = router;
|
|
1754
|
+
this.route = route;
|
|
1755
|
+
this.config = config;
|
|
1650
1756
|
this.links = links;
|
|
1651
1757
|
// tslint:disable-next-line:no-input-rename
|
|
1652
1758
|
this.sectionLinksPath = 'main';
|
|
1653
|
-
|
|
1654
|
-
this.allNotificationsLinkPath = 'allNotifications';
|
|
1655
|
-
this.border = true;
|
|
1656
|
-
this.showNotifications = false;
|
|
1657
|
-
this.showUserNameOnHeader = false;
|
|
1658
|
-
this.notificationsMenuVisible = true;
|
|
1759
|
+
// tslint:disable-next-line:no-input-rename
|
|
1659
1760
|
this.profileMenuVisible = true;
|
|
1761
|
+
// tslint:disable-next-line:no-input-rename
|
|
1762
|
+
this.showUserNameOnHeader = false;
|
|
1763
|
+
// tslint:disable-next-line:no-input-rename
|
|
1764
|
+
this.showAlerts = false;
|
|
1765
|
+
this.border = true;
|
|
1660
1766
|
this.sectionLinks = of([]);
|
|
1661
|
-
this.notificationLinks = of([]);
|
|
1662
|
-
this.allNotificationsLink = of();
|
|
1663
1767
|
this.mobileMenuExpanded = false;
|
|
1664
1768
|
this.userMenuExpanded = false;
|
|
1665
|
-
this.notificationsMenuExpanded = false;
|
|
1666
|
-
this.routeSubject = new Observable();
|
|
1667
1769
|
this.routerSub$ = null;
|
|
1668
1770
|
this.userSub$ = null;
|
|
1669
1771
|
this.statusSub$ = null;
|
|
1670
1772
|
this.user = null;
|
|
1671
1773
|
this.avatarName = null;
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
if (this.routerSub$) {
|
|
1675
|
-
this.routerSub$.unsubscribe();
|
|
1676
|
-
}
|
|
1677
|
-
// TODO: check authenticated user here before we start polling server status
|
|
1678
|
-
if (this.statusSub$) {
|
|
1679
|
-
this.statusSub$.unsubscribe();
|
|
1680
|
-
}
|
|
1681
|
-
if (this.userSub$) {
|
|
1682
|
-
this.userSub$.unsubscribe();
|
|
1683
|
-
}
|
|
1774
|
+
this.activeFragment = null;
|
|
1775
|
+
this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));
|
|
1684
1776
|
}
|
|
1685
1777
|
ngOnInit() {
|
|
1686
|
-
|
|
1687
|
-
this.showNotifications = (_a = this.config) === null || _a === void 0 ? void 0 : _a.showNotifications;
|
|
1688
|
-
this.showUserNameOnHeader = (_b = this.config) === null || _b === void 0 ? void 0 : _b.showUserNameOnHeader;
|
|
1778
|
+
this.activeFragment = this.route.fragment.pipe(share());
|
|
1689
1779
|
this.sectionLinks = this.links[this.sectionLinksPath];
|
|
1690
|
-
this.
|
|
1691
|
-
this.allNotificationsLink = this.links[this.allNotificationsLinkPath];
|
|
1692
|
-
this.routerSub$ = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => {
|
|
1780
|
+
this.routerSub$ = this.routeSubject.subscribe((event) => {
|
|
1693
1781
|
this.mobileMenuExpanded = false;
|
|
1694
1782
|
this.userMenuExpanded = false;
|
|
1695
|
-
this.notificationsMenuExpanded = false;
|
|
1696
1783
|
});
|
|
1697
1784
|
this.authService.loadUser().subscribe((user) => {
|
|
1698
|
-
console.log(user);
|
|
1699
1785
|
this.setCurrentUser(user);
|
|
1700
1786
|
}, error => {
|
|
1701
|
-
console.
|
|
1787
|
+
console.error(error);
|
|
1702
1788
|
});
|
|
1703
1789
|
// Detect user changes and display / or not user info accordingly...
|
|
1704
1790
|
this.userSub$ = this.authService.user$.subscribe((user) => {
|
|
1705
1791
|
// console.log('ShellHeaderComponent user subscription');
|
|
1706
1792
|
this.setCurrentUser(user);
|
|
1707
1793
|
});
|
|
1794
|
+
// set current lang if no current value from langs if any
|
|
1795
|
+
if (!this.currentLang && this.langs && this.langs.length > 0) {
|
|
1796
|
+
this.setCurrentLang(this.langs[0]);
|
|
1797
|
+
}
|
|
1708
1798
|
}
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1799
|
+
ngOnDestroy() {
|
|
1800
|
+
if (this.routerSub$) {
|
|
1801
|
+
this.routerSub$.unsubscribe();
|
|
1802
|
+
}
|
|
1803
|
+
// TODO: check authenticated user here before we start polling server status
|
|
1804
|
+
if (this.statusSub$) {
|
|
1805
|
+
this.statusSub$.unsubscribe();
|
|
1806
|
+
}
|
|
1807
|
+
if (this.userSub$) {
|
|
1808
|
+
this.userSub$.unsubscribe();
|
|
1715
1809
|
}
|
|
1716
1810
|
}
|
|
1717
1811
|
// tslint:disable-next-line:typedef
|
|
1718
|
-
|
|
1812
|
+
onClickOutside($event) {
|
|
1719
1813
|
this.userMenuExpanded = false;
|
|
1720
1814
|
}
|
|
1721
|
-
// tslint:disable-next-line:typedef
|
|
1722
|
-
onClickOutsideNotifications($event) {
|
|
1723
|
-
this.notificationsMenuExpanded = false;
|
|
1724
|
-
}
|
|
1725
1815
|
signin(event) {
|
|
1726
1816
|
if (event) {
|
|
1727
1817
|
event.preventDefault();
|
|
1728
1818
|
}
|
|
1729
1819
|
this.authService.signinRedirect();
|
|
1730
1820
|
}
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
this.
|
|
1821
|
+
setCurrentUser(user) {
|
|
1822
|
+
var _a, _b;
|
|
1823
|
+
this.user = user;
|
|
1824
|
+
if (this.user && this.user.profile) {
|
|
1825
|
+
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();
|
|
1826
|
+
}
|
|
1734
1827
|
}
|
|
1735
|
-
|
|
1736
|
-
this.
|
|
1737
|
-
this.userMenuExpanded = false;
|
|
1828
|
+
setCurrentLang(lang) {
|
|
1829
|
+
this.currentLang = lang;
|
|
1738
1830
|
}
|
|
1739
1831
|
}
|
|
1740
|
-
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
|
|
1741
|
-
ShellHeaderComponent.ɵcmp = i0.ɵɵ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, 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 <ng-container *ngIf=\"notificationLinks | async as obs; else loading\">\r\n <ng-container *ngFor=\"let link of obs\">\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 </ng-container>\r\n\r\n <ng-template #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 \r\n\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-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$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1.AsyncPipe, "date": i1.DatePipe } });
|
|
1832
|
+
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
|
|
1833
|
+
ShellHeaderComponent.ɵcmp = i0.ɵɵ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"], showAlerts: ["show-alerts", "showAlerts"], langs: "langs", currentLang: ["current-lang", "currentLang"], border: "border" }, ngImport: i0, 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\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [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 <div *ngIf=\"showAlerts && user\" class=\"mr-2\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\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 <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *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 </div>\r\n\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>\r\n\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 [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\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", "container-class"] }, { type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator" }], directives: [{ type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1742
1834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, decorators: [{
|
|
1743
1835
|
type: Component,
|
|
1744
1836
|
args: [{
|
|
@@ -1752,20 +1844,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1752
1844
|
}] }, { type: i1$1.Router, decorators: [{
|
|
1753
1845
|
type: Inject,
|
|
1754
1846
|
args: [Router]
|
|
1847
|
+
}] }, { type: i1$1.ActivatedRoute, decorators: [{
|
|
1848
|
+
type: Inject,
|
|
1849
|
+
args: [ActivatedRoute]
|
|
1850
|
+
}] }, { type: undefined, decorators: [{
|
|
1851
|
+
type: Inject,
|
|
1852
|
+
args: [SHELL_CONFIG]
|
|
1755
1853
|
}] }, { type: undefined, decorators: [{
|
|
1756
1854
|
type: Inject,
|
|
1757
1855
|
args: [APP_LINKS]
|
|
1758
1856
|
}] }]; }, propDecorators: { sectionLinksPath: [{
|
|
1759
1857
|
type: Input,
|
|
1760
1858
|
args: ['section-links']
|
|
1761
|
-
}],
|
|
1859
|
+
}], profileMenuVisible: [{
|
|
1762
1860
|
type: Input,
|
|
1763
|
-
args: ['
|
|
1764
|
-
}],
|
|
1861
|
+
args: ['profile-menu']
|
|
1862
|
+
}], showUserNameOnHeader: [{
|
|
1765
1863
|
type: Input,
|
|
1766
|
-
args: ['
|
|
1767
|
-
}],
|
|
1864
|
+
args: ['show-userName']
|
|
1865
|
+
}], showAlerts: [{
|
|
1866
|
+
type: Input,
|
|
1867
|
+
args: ['show-alerts']
|
|
1868
|
+
}], langs: [{
|
|
1768
1869
|
type: Input
|
|
1870
|
+
}], currentLang: [{
|
|
1871
|
+
type: Input,
|
|
1872
|
+
args: ['current-lang']
|
|
1769
1873
|
}], border: [{
|
|
1770
1874
|
type: Input
|
|
1771
1875
|
}] } });
|
|
@@ -1789,14 +1893,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1789
1893
|
}] }]; } });
|
|
1790
1894
|
|
|
1791
1895
|
class ShellLayoutComponent {
|
|
1792
|
-
constructor(router, location, config, componentLoaderFactory) {
|
|
1896
|
+
constructor(document, router, location, config, componentLoaderFactory) {
|
|
1897
|
+
this.document = document;
|
|
1793
1898
|
this.router = router;
|
|
1794
1899
|
this.location = location;
|
|
1795
1900
|
this.config = config;
|
|
1796
1901
|
this.componentLoaderFactory = componentLoaderFactory;
|
|
1797
1902
|
this.dynamicComponentHosts = null;
|
|
1798
|
-
this.routerSub$ = null;
|
|
1799
1903
|
this.showRightPaneSM = false;
|
|
1904
|
+
this.routerSub$ = null;
|
|
1800
1905
|
this.activeConfig = new DefaultShellConfig();
|
|
1801
1906
|
this.loaded = false;
|
|
1802
1907
|
if (!config) {
|
|
@@ -1857,8 +1962,8 @@ class ShellLayoutComponent {
|
|
|
1857
1962
|
}
|
|
1858
1963
|
}
|
|
1859
1964
|
}
|
|
1860
|
-
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1$1.Router }, { token: i1.Location }, { token: SHELL_CONFIG }, { token: ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
1861
|
-
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\"
|
|
1965
|
+
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: DOCUMENT }, { token: i1$1.Router }, { token: i1.Location }, { token: SHELL_CONFIG }, { token: ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
1966
|
+
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, 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\"\r\n [langs]=\"activeConfig.langs\"\r\n [show-userName]=\"activeConfig.showUserNameOnHeader\"\r\n [show-alerts]=\"activeConfig.showAlertsOnHeader\"></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", "show-alerts", "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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
1862
1967
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, decorators: [{
|
|
1863
1968
|
type: Component,
|
|
1864
1969
|
args: [{
|
|
@@ -1866,7 +1971,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1866
1971
|
selector: 'lib-shell-layout',
|
|
1867
1972
|
templateUrl: './shell-layout.component.html',
|
|
1868
1973
|
}]
|
|
1869
|
-
}], ctorParameters: function () { return [{ type:
|
|
1974
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1975
|
+
type: Inject,
|
|
1976
|
+
args: [DOCUMENT]
|
|
1977
|
+
}] }, { type: i1$1.Router }, { type: i1.Location }, { type: undefined, decorators: [{
|
|
1870
1978
|
type: Inject,
|
|
1871
1979
|
args: [SHELL_CONFIG]
|
|
1872
1980
|
}] }, { type: ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
|
|
@@ -1995,11 +2103,9 @@ class ModelViewLayoutComponent {
|
|
|
1995
2103
|
ngOnInit() {
|
|
1996
2104
|
}
|
|
1997
2105
|
onSidePaneActivated($event) {
|
|
1998
|
-
//console.log('onSidePaneActivated', $event);
|
|
1999
2106
|
this.showRightPaneSM = true;
|
|
2000
2107
|
}
|
|
2001
2108
|
onSidePaneDeactivated($event) {
|
|
2002
|
-
//console.log('onSidePaneActivated', $event);
|
|
2003
2109
|
this.showRightPaneSM = false;
|
|
2004
2110
|
}
|
|
2005
2111
|
closeSidePane() {
|
|
@@ -2126,8 +2232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
2126
2232
|
}] } });
|
|
2127
2233
|
|
|
2128
2234
|
class FormLayoutComponent {
|
|
2129
|
-
constructor(
|
|
2130
|
-
this.
|
|
2235
|
+
constructor(router$) {
|
|
2236
|
+
this.router$ = router$;
|
|
2131
2237
|
this.title = null;
|
|
2132
2238
|
// tslint:disable-next-line:no-input-rename
|
|
2133
2239
|
this.searchPlaceholder = 'αναζήτηση';
|
|
@@ -2139,7 +2245,6 @@ class FormLayoutComponent {
|
|
|
2139
2245
|
// tslint:disable-next-line:no-output-on-prefix
|
|
2140
2246
|
this.onSearch = new EventEmitter();
|
|
2141
2247
|
this.onComplete = new EventEmitter();
|
|
2142
|
-
this.showRightPaneSM = false;
|
|
2143
2248
|
}
|
|
2144
2249
|
ngOnInit() {
|
|
2145
2250
|
var _a;
|
|
@@ -2168,10 +2273,10 @@ class FormLayoutComponent {
|
|
|
2168
2273
|
}
|
|
2169
2274
|
routerLinkActionClick(action, relative = false) {
|
|
2170
2275
|
if (action.outlet) {
|
|
2171
|
-
this.
|
|
2276
|
+
this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);
|
|
2172
2277
|
}
|
|
2173
2278
|
else {
|
|
2174
|
-
this.
|
|
2279
|
+
this.router$.navigate([action.link]);
|
|
2175
2280
|
}
|
|
2176
2281
|
}
|
|
2177
2282
|
}
|
|
@@ -2308,7 +2413,7 @@ class PageNotFoundComponent {
|
|
|
2308
2413
|
}
|
|
2309
2414
|
}
|
|
2310
2415
|
PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2311
|
-
PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: PageNotFoundComponent, selector: "lib-page-not-found", ngImport: i0, template: "<lib-view-layout [show-header]=\"false\"
|
|
2416
|
+
PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: PageNotFoundComponent, selector: "lib-page-not-found", ngImport: i0, 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"] }] });
|
|
2312
2417
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
|
2313
2418
|
type: Component,
|
|
2314
2419
|
args: [{
|
|
@@ -2412,28 +2517,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
2412
2517
|
}]
|
|
2413
2518
|
}] });
|
|
2414
2519
|
|
|
2415
|
-
const defaultError = 'Something went wrong';
|
|
2416
|
-
class ObsWithStatusPipe {
|
|
2417
|
-
transform(val) {
|
|
2418
|
-
return val.pipe(map((value) => {
|
|
2419
|
-
return {
|
|
2420
|
-
loading: value.type === 'start',
|
|
2421
|
-
error: value.type === 'error' ? defaultError : '',
|
|
2422
|
-
value: value.type ? value.value : value,
|
|
2423
|
-
};
|
|
2424
|
-
}), startWith({ loading: true }), catchError(error => of({ loading: false, error: typeof error === 'string' ? error : defaultError })));
|
|
2425
|
-
}
|
|
2426
|
-
}
|
|
2427
|
-
ObsWithStatusPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ObsWithStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2428
|
-
ObsWithStatusPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ObsWithStatusPipe, name: "obsWithStatus", pure: false });
|
|
2429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ObsWithStatusPipe, decorators: [{
|
|
2430
|
-
type: Pipe,
|
|
2431
|
-
args: [{
|
|
2432
|
-
name: 'obsWithStatus',
|
|
2433
|
-
pure: false
|
|
2434
|
-
}]
|
|
2435
|
-
}] });
|
|
2436
|
-
|
|
2437
2520
|
class BaseListComponent {
|
|
2438
2521
|
constructor(route$, router$) {
|
|
2439
2522
|
this.route$ = route$;
|
|
@@ -3104,7 +3187,8 @@ IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
3104
3187
|
// pipes
|
|
3105
3188
|
AddressPipe,
|
|
3106
3189
|
DurationFormatPipe,
|
|
3107
|
-
|
|
3190
|
+
NavLinksListComponent,
|
|
3191
|
+
NotificationsIndicatorComponent], imports: [CommonModule,
|
|
3108
3192
|
RouterModule,
|
|
3109
3193
|
IndiceAuthModule], exports: [ClickOutsideDirective,
|
|
3110
3194
|
DropDownMenuComponent,
|
|
@@ -3131,7 +3215,6 @@ IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
3131
3215
|
UnauthorizedComponent,
|
|
3132
3216
|
AddressPipe,
|
|
3133
3217
|
DurationFormatPipe,
|
|
3134
|
-
ObsWithStatusPipe,
|
|
3135
3218
|
CollapsiblePanelComponent,
|
|
3136
3219
|
SidePaneComponent,
|
|
3137
3220
|
DatepickerComponent,
|
|
@@ -3188,7 +3271,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3188
3271
|
// pipes
|
|
3189
3272
|
AddressPipe,
|
|
3190
3273
|
DurationFormatPipe,
|
|
3191
|
-
|
|
3274
|
+
NavLinksListComponent,
|
|
3275
|
+
NotificationsIndicatorComponent
|
|
3192
3276
|
],
|
|
3193
3277
|
imports: [
|
|
3194
3278
|
CommonModule,
|
|
@@ -3221,7 +3305,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3221
3305
|
UnauthorizedComponent,
|
|
3222
3306
|
AddressPipe,
|
|
3223
3307
|
DurationFormatPipe,
|
|
3224
|
-
ObsWithStatusPipe,
|
|
3225
3308
|
CollapsiblePanelComponent,
|
|
3226
3309
|
SidePaneComponent,
|
|
3227
3310
|
DatepickerComponent,
|
|
@@ -3239,5 +3322,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3239
3322
|
* Generated bundle index. Do not edit.
|
|
3240
3323
|
*/
|
|
3241
3324
|
|
|
3242
|
-
export { APP_LINKS, AddressPipe, AuthCallbackComponent, AuthRenewComponent, AvatarInitialsComponent, BaseListComponent, ClickOutsideDirective, CollapsiblePanelComponent, ComponentLoaderFactory, DatepickerComponent, DefaultShellConfig, DropDownMenuComponent, DurationFormatPipe, ErrorComponent, ExternalNavLink, FormLayoutComponent, FragmentNavLink, HeaderMetaItem, Icons, IndiceComponentsModule, KpiTileComponent, ListColumnComponent, ListDetailsSectionComponent, ListTileComponent, ListViewComponent, ListViewEmptyStateComponent, ListViewType, LoggedOutComponent, MODAL_CONFIG_DEFAULT_OVERRIDE, MenuOption, Modal, ModalOptions, ModalService, ModelViewLayoutComponent, NULL_TOAST, NavLink,
|
|
3325
|
+
export { APP_LINKS, APP_NOTIFICATIONS, AddressPipe, AuthCallbackComponent, AuthRenewComponent, AvatarInitialsComponent, BaseListComponent, ClickOutsideDirective, CollapsiblePanelComponent, ComponentLoaderFactory, DatepickerComponent, DefaultShellConfig, DropDownMenuComponent, DurationFormatPipe, ErrorComponent, ExternalNavLink, FormLayoutComponent, FragmentNavLink, HeaderMetaItem, Icons, IndiceComponentsModule, KpiTileComponent, ListColumnComponent, ListDetailsSectionComponent, ListTileComponent, ListViewComponent, ListViewEmptyStateComponent, ListViewType, LoggedOutComponent, MODAL_CONFIG_DEFAULT_OVERRIDE, MenuOption, Modal, ModalOptions, ModalService, ModelViewLayoutComponent, NULL_TOAST, NavLink, NavLinksListComponent, NotificationNavLink, PageNotFoundComponent, PagerComponent, RouterViewAction, SCREEN_SIZE, SHELL_CONFIG, ShellFooterComponent, ShellHeaderComponent, ShellLayoutComponent, SidePaneComponent, SidePaneOverlayType, SidePaneSize, SideViewLayoutComponent, SkeletonLoaderComponent, SwitchViewAction, ToastType, ToasterComponent, ToasterContainerComponent, ToasterService, ToggleComponent, UnauthorizedComponent, ViewAction, ViewLayoutComponent };
|
|
3243
3326
|
//# sourceMappingURL=indice-ng-components.js.map
|