@indice/ng-components 0.2.133 → 0.2.134-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.
- package/README.md +4 -4
- package/_styles.css +72 -25
- package/bundles/indice-ng-components.umd.js +126 -129
- 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/skeleton-loader/skeleton-loader.component.js +1 -1
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +68 -64
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +6 -11
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +6 -5
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +3 -1
- package/esm2015/lib/ng-components.module.js +6 -4
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +2 -2
- package/esm2015/lib/pipes/obs-with-status.pipe.js +26 -0
- package/esm2015/lib/services/toaster.service.js +1 -1
- package/esm2015/lib/types.js +11 -5
- package/esm2015/public-api.js +2 -2
- package/fesm2015/indice-ng-components.js +110 -112
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +24 -20
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +2 -3
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +3 -2
- package/lib/ng-components.module.d.ts +2 -2
- package/lib/pipes/obs-with-status.pipe.d.ts +13 -0
- package/lib/types.d.ts +12 -7
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -40
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +0 -15
|
@@ -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,
|
|
6
|
+
import { NavigationStart, Router, ActivationStart, RouterModule } from '@angular/router';
|
|
7
7
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
-
import { BehaviorSubject, Subject, of, fromEvent } from 'rxjs';
|
|
9
|
-
import { filter,
|
|
8
|
+
import { BehaviorSubject, Subject, of, Observable, fromEvent } from 'rxjs';
|
|
9
|
+
import { filter, map, debounceTime, distinctUntilChanged, startWith, catchError } from 'rxjs/operators';
|
|
10
10
|
import * as i2 from '@indice/ng-auth';
|
|
11
11
|
import { AuthService, IndiceAuthModule } from '@indice/ng-auth';
|
|
12
12
|
|
|
@@ -294,25 +294,30 @@ 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, isRead, creationDate) {
|
|
298
|
+
this.isRead = false;
|
|
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.isRead = isRead;
|
|
305
|
+
this.creationDate = creationDate;
|
|
304
306
|
}
|
|
305
307
|
}
|
|
306
308
|
class ExternalNavLink extends NavLink {
|
|
307
309
|
constructor(text, path, openInNewTab, icon) {
|
|
308
310
|
super(text, path, true, openInNewTab, icon);
|
|
309
|
-
this.type = 'external';
|
|
310
311
|
}
|
|
311
312
|
}
|
|
312
313
|
class FragmentNavLink extends NavLink {
|
|
313
314
|
constructor(text, path, icon) {
|
|
314
315
|
super(text, path, true, true, icon);
|
|
315
|
-
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
class NotificationNavLink extends NavLink {
|
|
319
|
+
constructor(text, path, isRead, creationDate) {
|
|
320
|
+
super(text, path, true, false, undefined, isRead, creationDate);
|
|
316
321
|
}
|
|
317
322
|
}
|
|
318
323
|
class ViewAction {
|
|
@@ -366,6 +371,7 @@ class DefaultShellConfig {
|
|
|
366
371
|
this.appLogoAlt = 'your app name here';
|
|
367
372
|
this.showHeader = true;
|
|
368
373
|
this.showUserNameOnHeader = false;
|
|
374
|
+
this.showNotifications = false;
|
|
369
375
|
this.showFooter = true;
|
|
370
376
|
this.fluid = false;
|
|
371
377
|
}
|
|
@@ -592,7 +598,7 @@ class ListViewEmptyStateComponent {
|
|
|
592
598
|
}
|
|
593
599
|
}
|
|
594
600
|
ListViewEmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ListViewEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
595
|
-
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"] }] });
|
|
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\">\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
596
602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ListViewEmptyStateComponent, decorators: [{
|
|
597
603
|
type: Component,
|
|
598
604
|
args: [{
|
|
@@ -1388,42 +1394,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1388
1394
|
type: Output
|
|
1389
1395
|
}] } });
|
|
1390
1396
|
|
|
1391
|
-
class NavLinksListComponent {
|
|
1392
|
-
constructor() {
|
|
1393
|
-
// tslint:disable-next-line:no-input-rename
|
|
1394
|
-
this.navLinkClass = 'nav-link';
|
|
1395
|
-
// tslint:disable-next-line:no-input-rename
|
|
1396
|
-
this.navLinkActiveClass = 'nav-link-active';
|
|
1397
|
-
// tslint:disable-next-line:no-input-rename
|
|
1398
|
-
this.containerClass = '';
|
|
1399
|
-
}
|
|
1400
|
-
ngOnInit() {
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
NavLinksListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NavLinksListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1404
|
-
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 } });
|
|
1405
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: NavLinksListComponent, decorators: [{
|
|
1406
|
-
type: Component,
|
|
1407
|
-
args: [{
|
|
1408
|
-
selector: 'lib-nav-links-list',
|
|
1409
|
-
templateUrl: './nav-links-list.component.html'
|
|
1410
|
-
}]
|
|
1411
|
-
}], ctorParameters: function () { return []; }, propDecorators: { links: [{
|
|
1412
|
-
type: Input
|
|
1413
|
-
}], activeFragment: [{
|
|
1414
|
-
type: Input,
|
|
1415
|
-
args: ['active-fragment']
|
|
1416
|
-
}], navLinkClass: [{
|
|
1417
|
-
type: Input,
|
|
1418
|
-
args: ['link-class']
|
|
1419
|
-
}], navLinkActiveClass: [{
|
|
1420
|
-
type: Input,
|
|
1421
|
-
args: ['link-active-class']
|
|
1422
|
-
}], containerClass: [{
|
|
1423
|
-
type: Input,
|
|
1424
|
-
args: ['container-class']
|
|
1425
|
-
}] } });
|
|
1426
|
-
|
|
1427
1397
|
const APP_LINKS = new InjectionToken('APP_LINKS');
|
|
1428
1398
|
const SHELL_CONFIG = new InjectionToken('SHELL_CONFIG');
|
|
1429
1399
|
|
|
@@ -1674,87 +1644,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1674
1644
|
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
1675
1645
|
|
|
1676
1646
|
class ShellHeaderComponent {
|
|
1677
|
-
constructor(authService, router,
|
|
1647
|
+
constructor(authService, router, links) {
|
|
1678
1648
|
this.authService = authService;
|
|
1679
1649
|
this.router = router;
|
|
1680
|
-
this.route = route;
|
|
1681
|
-
this.config = config;
|
|
1682
1650
|
this.links = links;
|
|
1683
1651
|
// tslint:disable-next-line:no-input-rename
|
|
1684
1652
|
this.sectionLinksPath = 'main';
|
|
1685
|
-
|
|
1686
|
-
this.
|
|
1687
|
-
// tslint:disable-next-line:no-input-rename
|
|
1688
|
-
this.showUserNameOnHeader = false;
|
|
1653
|
+
this.notificationLinksPath = 'notifications';
|
|
1654
|
+
this.allNotificationsLinkPath = 'allNotifications';
|
|
1689
1655
|
this.border = true;
|
|
1656
|
+
this.showNotifications = false;
|
|
1657
|
+
this.showUserNameOnHeader = false;
|
|
1658
|
+
this.notificationsMenuVisible = true;
|
|
1659
|
+
this.profileMenuVisible = true;
|
|
1690
1660
|
this.sectionLinks = of([]);
|
|
1661
|
+
this.notificationLinks = of([]);
|
|
1662
|
+
this.allNotificationsLink = of();
|
|
1691
1663
|
this.mobileMenuExpanded = false;
|
|
1692
1664
|
this.userMenuExpanded = false;
|
|
1665
|
+
this.notificationsMenuExpanded = false;
|
|
1666
|
+
this.routeSubject = new Observable();
|
|
1693
1667
|
this.routerSub$ = null;
|
|
1694
1668
|
this.userSub$ = null;
|
|
1695
1669
|
this.statusSub$ = null;
|
|
1696
1670
|
this.user = null;
|
|
1697
1671
|
this.avatarName = null;
|
|
1698
|
-
|
|
1699
|
-
|
|
1672
|
+
}
|
|
1673
|
+
ngOnDestroy() {
|
|
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
|
+
}
|
|
1700
1684
|
}
|
|
1701
1685
|
ngOnInit() {
|
|
1702
|
-
|
|
1686
|
+
var _a, _b;
|
|
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;
|
|
1703
1689
|
this.sectionLinks = this.links[this.sectionLinksPath];
|
|
1704
|
-
this.
|
|
1690
|
+
this.notificationLinks = this.links[this.notificationLinksPath];
|
|
1691
|
+
this.allNotificationsLink = this.links[this.allNotificationsLinkPath];
|
|
1692
|
+
this.routerSub$ = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => {
|
|
1705
1693
|
this.mobileMenuExpanded = false;
|
|
1706
1694
|
this.userMenuExpanded = false;
|
|
1695
|
+
this.notificationsMenuExpanded = false;
|
|
1707
1696
|
});
|
|
1708
1697
|
this.authService.loadUser().subscribe((user) => {
|
|
1698
|
+
console.log(user);
|
|
1709
1699
|
this.setCurrentUser(user);
|
|
1710
1700
|
}, error => {
|
|
1711
|
-
console.
|
|
1701
|
+
console.log(error);
|
|
1712
1702
|
});
|
|
1713
1703
|
// Detect user changes and display / or not user info accordingly...
|
|
1714
1704
|
this.userSub$ = this.authService.user$.subscribe((user) => {
|
|
1715
1705
|
// console.log('ShellHeaderComponent user subscription');
|
|
1716
1706
|
this.setCurrentUser(user);
|
|
1717
1707
|
});
|
|
1718
|
-
// set current lang if no current value from langs if any
|
|
1719
|
-
if (!this.currentLang && this.langs && this.langs.length > 0) {
|
|
1720
|
-
this.setCurrentLang(this.langs[0]);
|
|
1721
|
-
}
|
|
1722
1708
|
}
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
this.statusSub$.unsubscribe();
|
|
1730
|
-
}
|
|
1731
|
-
if (this.userSub$) {
|
|
1732
|
-
this.userSub$.unsubscribe();
|
|
1709
|
+
setCurrentUser(user) {
|
|
1710
|
+
var _a, _b;
|
|
1711
|
+
this.user = user;
|
|
1712
|
+
if (this.user && this.user.profile) {
|
|
1713
|
+
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)}`;
|
|
1714
|
+
console.log('load user', this.avatarName);
|
|
1733
1715
|
}
|
|
1734
1716
|
}
|
|
1735
1717
|
// tslint:disable-next-line:typedef
|
|
1736
|
-
|
|
1718
|
+
onClickOutsideProfile($event) {
|
|
1737
1719
|
this.userMenuExpanded = false;
|
|
1738
1720
|
}
|
|
1721
|
+
// tslint:disable-next-line:typedef
|
|
1722
|
+
onClickOutsideNotifications($event) {
|
|
1723
|
+
this.notificationsMenuExpanded = false;
|
|
1724
|
+
}
|
|
1739
1725
|
signin(event) {
|
|
1740
1726
|
if (event) {
|
|
1741
1727
|
event.preventDefault();
|
|
1742
1728
|
}
|
|
1743
1729
|
this.authService.signinRedirect();
|
|
1744
1730
|
}
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
this.
|
|
1748
|
-
if (this.user && this.user.profile) {
|
|
1749
|
-
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();
|
|
1750
|
-
}
|
|
1731
|
+
expandUserMenu() {
|
|
1732
|
+
this.userMenuExpanded = !this.userMenuExpanded;
|
|
1733
|
+
this.notificationsMenuExpanded = false;
|
|
1751
1734
|
}
|
|
1752
|
-
|
|
1753
|
-
this.
|
|
1735
|
+
expandNotificationsMenu() {
|
|
1736
|
+
this.notificationsMenuExpanded = !this.notificationsMenuExpanded;
|
|
1737
|
+
this.userMenuExpanded = false;
|
|
1754
1738
|
}
|
|
1755
1739
|
}
|
|
1756
|
-
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token:
|
|
1757
|
-
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"], 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 [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 <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"] }], 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"] }] });
|
|
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\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 <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a [routerLink]=\"link.path\"\r\n class=\"nav-link-notifications grid\"\r\n [ngClass]=\"!link.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\">\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ link.creationDate | date: 'EEE, d MMMM' }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ link.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <!-- <div class=\"flex-none font-thin tracking-tighter\">\r\n <button type=\"button\"\r\n title=\"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\"\r\n class=\"text-red-600 hover:text-red-900\">\r\n <span class=\"ms-Icon ms-Icon--Delete\"></span>\r\n </button>\r\n </div> -->\r\n </div>\r\n </li>\r\n\r\n\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 <a [routerLink]=\"(allNotificationsLink | async)?.path\">\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 </a>\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 } });
|
|
1758
1742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, decorators: [{
|
|
1759
1743
|
type: Component,
|
|
1760
1744
|
args: [{
|
|
@@ -1768,29 +1752,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1768
1752
|
}] }, { type: i1$1.Router, decorators: [{
|
|
1769
1753
|
type: Inject,
|
|
1770
1754
|
args: [Router]
|
|
1771
|
-
}] }, { type: i1$1.ActivatedRoute, decorators: [{
|
|
1772
|
-
type: Inject,
|
|
1773
|
-
args: [ActivatedRoute]
|
|
1774
|
-
}] }, { type: undefined, decorators: [{
|
|
1775
|
-
type: Inject,
|
|
1776
|
-
args: [SHELL_CONFIG]
|
|
1777
1755
|
}] }, { type: undefined, decorators: [{
|
|
1778
1756
|
type: Inject,
|
|
1779
1757
|
args: [APP_LINKS]
|
|
1780
1758
|
}] }]; }, propDecorators: { sectionLinksPath: [{
|
|
1781
1759
|
type: Input,
|
|
1782
1760
|
args: ['section-links']
|
|
1783
|
-
}],
|
|
1761
|
+
}], notificationLinksPath: [{
|
|
1784
1762
|
type: Input,
|
|
1785
|
-
args: ['
|
|
1786
|
-
}],
|
|
1763
|
+
args: ['notification-links']
|
|
1764
|
+
}], allNotificationsLinkPath: [{
|
|
1787
1765
|
type: Input,
|
|
1788
|
-
args: ['
|
|
1789
|
-
}],
|
|
1766
|
+
args: ['all-notifications']
|
|
1767
|
+
}], config: [{
|
|
1790
1768
|
type: Input
|
|
1791
|
-
}], currentLang: [{
|
|
1792
|
-
type: Input,
|
|
1793
|
-
args: ['current-lang']
|
|
1794
1769
|
}], border: [{
|
|
1795
1770
|
type: Input
|
|
1796
1771
|
}] } });
|
|
@@ -1814,15 +1789,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1814
1789
|
}] }]; } });
|
|
1815
1790
|
|
|
1816
1791
|
class ShellLayoutComponent {
|
|
1817
|
-
constructor(
|
|
1818
|
-
this.document = document;
|
|
1792
|
+
constructor(router, location, config, componentLoaderFactory) {
|
|
1819
1793
|
this.router = router;
|
|
1820
1794
|
this.location = location;
|
|
1821
1795
|
this.config = config;
|
|
1822
1796
|
this.componentLoaderFactory = componentLoaderFactory;
|
|
1823
1797
|
this.dynamicComponentHosts = null;
|
|
1824
|
-
this.showRightPaneSM = false;
|
|
1825
1798
|
this.routerSub$ = null;
|
|
1799
|
+
this.showRightPaneSM = false;
|
|
1826
1800
|
this.activeConfig = new DefaultShellConfig();
|
|
1827
1801
|
this.loaded = false;
|
|
1828
1802
|
if (!config) {
|
|
@@ -1883,8 +1857,8 @@ class ShellLayoutComponent {
|
|
|
1883
1857
|
}
|
|
1884
1858
|
}
|
|
1885
1859
|
}
|
|
1886
|
-
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token:
|
|
1887
|
-
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\"
|
|
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\"\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.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"] }] });
|
|
1888
1862
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, decorators: [{
|
|
1889
1863
|
type: Component,
|
|
1890
1864
|
args: [{
|
|
@@ -1892,10 +1866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
1892
1866
|
selector: 'lib-shell-layout',
|
|
1893
1867
|
templateUrl: './shell-layout.component.html',
|
|
1894
1868
|
}]
|
|
1895
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1896
|
-
type: Inject,
|
|
1897
|
-
args: [DOCUMENT]
|
|
1898
|
-
}] }, { type: i1$1.Router }, { type: i1.Location }, { type: undefined, decorators: [{
|
|
1869
|
+
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1.Location }, { type: undefined, decorators: [{
|
|
1899
1870
|
type: Inject,
|
|
1900
1871
|
args: [SHELL_CONFIG]
|
|
1901
1872
|
}] }, { type: ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
|
|
@@ -2024,9 +1995,11 @@ class ModelViewLayoutComponent {
|
|
|
2024
1995
|
ngOnInit() {
|
|
2025
1996
|
}
|
|
2026
1997
|
onSidePaneActivated($event) {
|
|
1998
|
+
//console.log('onSidePaneActivated', $event);
|
|
2027
1999
|
this.showRightPaneSM = true;
|
|
2028
2000
|
}
|
|
2029
2001
|
onSidePaneDeactivated($event) {
|
|
2002
|
+
//console.log('onSidePaneActivated', $event);
|
|
2030
2003
|
this.showRightPaneSM = false;
|
|
2031
2004
|
}
|
|
2032
2005
|
closeSidePane() {
|
|
@@ -2153,8 +2126,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
2153
2126
|
}] } });
|
|
2154
2127
|
|
|
2155
2128
|
class FormLayoutComponent {
|
|
2156
|
-
constructor(
|
|
2157
|
-
this.
|
|
2129
|
+
constructor(_router) {
|
|
2130
|
+
this._router = _router;
|
|
2158
2131
|
this.title = null;
|
|
2159
2132
|
// tslint:disable-next-line:no-input-rename
|
|
2160
2133
|
this.searchPlaceholder = 'αναζήτηση';
|
|
@@ -2166,6 +2139,7 @@ class FormLayoutComponent {
|
|
|
2166
2139
|
// tslint:disable-next-line:no-output-on-prefix
|
|
2167
2140
|
this.onSearch = new EventEmitter();
|
|
2168
2141
|
this.onComplete = new EventEmitter();
|
|
2142
|
+
this.showRightPaneSM = false;
|
|
2169
2143
|
}
|
|
2170
2144
|
ngOnInit() {
|
|
2171
2145
|
var _a;
|
|
@@ -2194,10 +2168,10 @@ class FormLayoutComponent {
|
|
|
2194
2168
|
}
|
|
2195
2169
|
routerLinkActionClick(action, relative = false) {
|
|
2196
2170
|
if (action.outlet) {
|
|
2197
|
-
this.
|
|
2171
|
+
this._router.navigate(['', { outlets: { formRightPane: action.link } }]);
|
|
2198
2172
|
}
|
|
2199
2173
|
else {
|
|
2200
|
-
this.
|
|
2174
|
+
this._router.navigate([action.link]);
|
|
2201
2175
|
}
|
|
2202
2176
|
}
|
|
2203
2177
|
}
|
|
@@ -2334,7 +2308,7 @@ class PageNotFoundComponent {
|
|
|
2334
2308
|
}
|
|
2335
2309
|
}
|
|
2336
2310
|
PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2337
|
-
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\"
|
|
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\"\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"] }] });
|
|
2338
2312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
|
2339
2313
|
type: Component,
|
|
2340
2314
|
args: [{
|
|
@@ -2438,6 +2412,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
2438
2412
|
}]
|
|
2439
2413
|
}] });
|
|
2440
2414
|
|
|
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
|
+
|
|
2441
2437
|
class BaseListComponent {
|
|
2442
2438
|
constructor(route$, router$) {
|
|
2443
2439
|
this.route$ = route$;
|
|
@@ -3108,7 +3104,7 @@ IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
3108
3104
|
// pipes
|
|
3109
3105
|
AddressPipe,
|
|
3110
3106
|
DurationFormatPipe,
|
|
3111
|
-
|
|
3107
|
+
ObsWithStatusPipe], imports: [CommonModule,
|
|
3112
3108
|
RouterModule,
|
|
3113
3109
|
IndiceAuthModule], exports: [ClickOutsideDirective,
|
|
3114
3110
|
DropDownMenuComponent,
|
|
@@ -3135,6 +3131,7 @@ IndiceComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
|
|
|
3135
3131
|
UnauthorizedComponent,
|
|
3136
3132
|
AddressPipe,
|
|
3137
3133
|
DurationFormatPipe,
|
|
3134
|
+
ObsWithStatusPipe,
|
|
3138
3135
|
CollapsiblePanelComponent,
|
|
3139
3136
|
SidePaneComponent,
|
|
3140
3137
|
DatepickerComponent,
|
|
@@ -3191,7 +3188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3191
3188
|
// pipes
|
|
3192
3189
|
AddressPipe,
|
|
3193
3190
|
DurationFormatPipe,
|
|
3194
|
-
|
|
3191
|
+
ObsWithStatusPipe
|
|
3195
3192
|
],
|
|
3196
3193
|
imports: [
|
|
3197
3194
|
CommonModule,
|
|
@@ -3224,6 +3221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3224
3221
|
UnauthorizedComponent,
|
|
3225
3222
|
AddressPipe,
|
|
3226
3223
|
DurationFormatPipe,
|
|
3224
|
+
ObsWithStatusPipe,
|
|
3227
3225
|
CollapsiblePanelComponent,
|
|
3228
3226
|
SidePaneComponent,
|
|
3229
3227
|
DatepickerComponent,
|
|
@@ -3241,5 +3239,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
3241
3239
|
* Generated bundle index. Do not edit.
|
|
3242
3240
|
*/
|
|
3243
3241
|
|
|
3244
|
-
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,
|
|
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, NotificationNavLink, ObsWithStatusPipe, PageNotFoundComponent, PagerComponent, RouterViewAction, SCREEN_SIZE, SHELL_CONFIG, ShellFooterComponent, ShellHeaderComponent, ShellLayoutComponent, SidePaneComponent, SidePaneOverlayType, SidePaneSize, SideViewLayoutComponent, SkeletonLoaderComponent, SwitchViewAction, ToastType, ToasterComponent, ToasterContainerComponent, ToasterService, ToggleComponent, UnauthorizedComponent, ViewAction, ViewLayoutComponent };
|
|
3245
3243
|
//# sourceMappingURL=indice-ng-components.js.map
|