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