adb-shared 0.0.49 → 0.0.53
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/adb-shared.d.ts +1 -0
- package/adb-shared.metadata.json +1 -1
- package/bundles/adb-shared.umd.js +65 -29
- package/bundles/adb-shared.umd.js.map +1 -1
- package/bundles/adb-shared.umd.min.js +1 -1
- package/bundles/adb-shared.umd.min.js.map +1 -1
- package/esm2015/adb-shared.js +2 -1
- package/esm2015/lib/adb-header.component.js +14 -25
- package/esm2015/lib/adb-header.module.js +3 -2
- package/esm2015/lib/click-outside.directive.js +48 -0
- package/esm5/adb-shared.js +2 -1
- package/esm5/lib/adb-header.component.js +16 -30
- package/esm5/lib/adb-header.module.js +3 -2
- package/esm5/lib/click-outside.directive.js +51 -0
- package/fesm2015/adb-shared.js +63 -27
- package/fesm2015/adb-shared.js.map +1 -1
- package/fesm5/adb-shared.js +67 -32
- package/fesm5/adb-shared.js.map +1 -1
- package/lib/adb-header.component.d.ts +2 -1
- package/lib/click-outside.directive.d.ts +7 -0
- package/package.json +1 -1
package/fesm2015/adb-shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Injectable, Inject, EventEmitter, Component, Output, Input, NgModule } from '@angular/core';
|
|
1
|
+
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Inject, EventEmitter, Component, Output, Input, Directive, ElementRef, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import { Subscription, forkJoin } from 'rxjs';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -46,6 +46,7 @@ class ADBHeaderComponent {
|
|
|
46
46
|
this.subscription = new Subscription();
|
|
47
47
|
this.loginClicked = new EventEmitter();
|
|
48
48
|
this.logoutClicked = new EventEmitter();
|
|
49
|
+
this.dropMenuChange = new EventEmitter();
|
|
49
50
|
this.showMenu = false;
|
|
50
51
|
this.showUserMenu = false;
|
|
51
52
|
}
|
|
@@ -79,15 +80,6 @@ class ADBHeaderComponent {
|
|
|
79
80
|
this.navigation = result;
|
|
80
81
|
})));
|
|
81
82
|
this.initAllTranslations(baseUrl);
|
|
82
|
-
// if (this.trans.store.translations[this.trans.currentLang]) {
|
|
83
|
-
// console.log('this.trans.currentLang', this.trans.currentLang);
|
|
84
|
-
// this.initTranslations(baseUrl, this.trans.currentLang);
|
|
85
|
-
// } else {
|
|
86
|
-
// this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
87
|
-
// console.log('event', event);
|
|
88
|
-
// this.initTranslations(baseUrl, event.lang);
|
|
89
|
-
// }));
|
|
90
|
-
// }
|
|
91
83
|
}
|
|
92
84
|
/**
|
|
93
85
|
* @private
|
|
@@ -107,20 +99,14 @@ class ADBHeaderComponent {
|
|
|
107
99
|
})));
|
|
108
100
|
}
|
|
109
101
|
/**
|
|
110
|
-
* @
|
|
111
|
-
* @param {?} baseUrl
|
|
112
|
-
* @param {?} lang
|
|
102
|
+
* @param {?} show
|
|
113
103
|
* @return {?}
|
|
114
104
|
*/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*/
|
|
121
|
-
translations => {
|
|
122
|
-
this.trans.setTranslation(lang, translations, true);
|
|
123
|
-
})));
|
|
105
|
+
showMenuDropdown(show) {
|
|
106
|
+
if (this.showMenu !== show) {
|
|
107
|
+
this.showMenu = show;
|
|
108
|
+
this.dropMenuChange.emit(show);
|
|
109
|
+
}
|
|
124
110
|
}
|
|
125
111
|
/**
|
|
126
112
|
* @param {?} lang
|
|
@@ -128,7 +114,7 @@ class ADBHeaderComponent {
|
|
|
128
114
|
*/
|
|
129
115
|
setLanguage(lang) {
|
|
130
116
|
this.trans.use(lang);
|
|
131
|
-
//set localstorage/cookies
|
|
117
|
+
//TODO: set localstorage/cookies or probaly event to main app
|
|
132
118
|
}
|
|
133
119
|
/**
|
|
134
120
|
* @param {?} transId
|
|
@@ -163,7 +149,7 @@ class ADBHeaderComponent {
|
|
|
163
149
|
ADBHeaderComponent.decorators = [
|
|
164
150
|
{ type: Component, args: [{
|
|
165
151
|
selector: 'adb-header2',
|
|
166
|
-
template: "<header id=\"top-header\">\r\n <nav class=\"px-
|
|
152
|
+
template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo pl-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pr-4\" style=\"gap:2rem;\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a [href]=\"link.url\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ml-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block pl-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials px-2 py-1\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"text-dark\">\r\n <span class=\"initials py-2 px-2 mr-2\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt mr-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials mr-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?returnUrl={{url}}\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ml-0 mb-0 pl-0\">\r\n <li class=\"mb-1 list-group-item rounded-0\"\r\n [ngClass]=\"{'pointer list-group-item-action':link.children&&link.children.length>0}\"\r\n *ngFor=\"let link of navigation.links\">\r\n <div class=\"d-flex align-items-center justify-content-between\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\"\r\n (click)=\"onExpandLink(link.transId)\">\r\n <div>\r\n <small class=\"fa-stack\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n <a [href]=\"link.url\" (click)=\"$event.stopPropagation();\">\r\n {{link.transId|translate}}\r\n </a>\r\n </div>\r\n <div class=\"text-dark\" *ngIf=\"link.children&&link.children.length>0\">\r\n <i class=\"fas fa-chevron-up\" *ngIf=\"link.transId===expandedLink\"></i>\r\n <i class=\"fas fa-chevron-down\" *ngIf=\"link.transId!==expandedLink\"></i>\r\n </div>\r\n </div>\r\n <ul class=\"list-unstyled pl-4\" *ngIf=\"link.transId===expandedLink\">\r\n <li class=\"py-1m-0\" *ngFor=\"let subLink of link.children\">\r\n <a [href]=\"subLink.url\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <ul class=\"list-unstyled ml-0 pl-0\">\r\n <li class=\"mb-1 d-flex flex-wrap gap-2\">\r\n <div class=\"bg-white p-2 flex-grow-1\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">\r\n {{navigation.about.transId|translate}}\r\n </a>\r\n </div>\r\n <div class=\"bg-white p-2 flex-grow-1\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div>\r\n <img style=\"height: 3.2rem;\" src=\"/assets/images/logo.svg\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
|
|
167
153
|
}] }
|
|
168
154
|
];
|
|
169
155
|
/** @nocollapse */
|
|
@@ -175,6 +161,7 @@ ADBHeaderComponent.ctorParameters = () => [
|
|
|
175
161
|
ADBHeaderComponent.propDecorators = {
|
|
176
162
|
loginClicked: [{ type: Output }],
|
|
177
163
|
logoutClicked: [{ type: Output }],
|
|
164
|
+
dropMenuChange: [{ type: Output }],
|
|
178
165
|
userName: [{ type: Input }]
|
|
179
166
|
};
|
|
180
167
|
if (false) {
|
|
@@ -188,6 +175,8 @@ if (false) {
|
|
|
188
175
|
/** @type {?} */
|
|
189
176
|
ADBHeaderComponent.prototype.logoutClicked;
|
|
190
177
|
/** @type {?} */
|
|
178
|
+
ADBHeaderComponent.prototype.dropMenuChange;
|
|
179
|
+
/** @type {?} */
|
|
191
180
|
ADBHeaderComponent.prototype.fullName;
|
|
192
181
|
/** @type {?} */
|
|
193
182
|
ADBHeaderComponent.prototype.initials;
|
|
@@ -216,6 +205,53 @@ if (false) {
|
|
|
216
205
|
/* Skipping unhandled member: ;*/
|
|
217
206
|
}
|
|
218
207
|
|
|
208
|
+
/**
|
|
209
|
+
* @fileoverview added by tsickle
|
|
210
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
211
|
+
*/
|
|
212
|
+
class ClickOutsideDirective {
|
|
213
|
+
/**
|
|
214
|
+
* @param {?} elementRef
|
|
215
|
+
*/
|
|
216
|
+
constructor(elementRef) {
|
|
217
|
+
this.elementRef = elementRef;
|
|
218
|
+
this.clickOutside = new EventEmitter();
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @param {?} target
|
|
222
|
+
* @return {?}
|
|
223
|
+
*/
|
|
224
|
+
onClick(target) {
|
|
225
|
+
/** @type {?} */
|
|
226
|
+
const clickedInside = this.elementRef.nativeElement.contains(target);
|
|
227
|
+
if (!clickedInside) {
|
|
228
|
+
this.clickOutside.emit();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
ClickOutsideDirective.decorators = [
|
|
233
|
+
{ type: Directive, args: [{
|
|
234
|
+
selector: '[clickOutside]',
|
|
235
|
+
},] }
|
|
236
|
+
];
|
|
237
|
+
/** @nocollapse */
|
|
238
|
+
ClickOutsideDirective.ctorParameters = () => [
|
|
239
|
+
{ type: ElementRef }
|
|
240
|
+
];
|
|
241
|
+
ClickOutsideDirective.propDecorators = {
|
|
242
|
+
clickOutside: [{ type: Output }],
|
|
243
|
+
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
244
|
+
};
|
|
245
|
+
if (false) {
|
|
246
|
+
/** @type {?} */
|
|
247
|
+
ClickOutsideDirective.prototype.clickOutside;
|
|
248
|
+
/**
|
|
249
|
+
* @type {?}
|
|
250
|
+
* @private
|
|
251
|
+
*/
|
|
252
|
+
ClickOutsideDirective.prototype.elementRef;
|
|
253
|
+
}
|
|
254
|
+
|
|
219
255
|
/**
|
|
220
256
|
* @fileoverview added by tsickle
|
|
221
257
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
@@ -241,7 +277,7 @@ class ADBHeaderModule {
|
|
|
241
277
|
}
|
|
242
278
|
ADBHeaderModule.decorators = [
|
|
243
279
|
{ type: NgModule, args: [{
|
|
244
|
-
declarations: [ADBHeaderComponent],
|
|
280
|
+
declarations: [ADBHeaderComponent, ClickOutsideDirective],
|
|
245
281
|
imports: [
|
|
246
282
|
CommonModule,
|
|
247
283
|
HttpClientModule,
|
|
@@ -262,5 +298,5 @@ ADBHeaderModule.decorators = [
|
|
|
262
298
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
263
299
|
*/
|
|
264
300
|
|
|
265
|
-
export { ADBHeaderComponent, ADBHeaderModule, EnvironmentService as ɵa };
|
|
301
|
+
export { ADBHeaderComponent, ADBHeaderModule, EnvironmentService as ɵa, ClickOutsideDirective as ɵb };
|
|
266
302
|
//# sourceMappingURL=adb-shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-shared.js","sources":["ng://adb-shared/lib/environment.service.ts","ng://adb-shared/lib/adb-header.component.ts","ng://adb-shared/lib/adb-header.module.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n fullName: string;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initAllTranslations(baseUrl);\r\n
|
|
1
|
+
{"version":3,"file":"adb-shared.js","sources":["ng://adb-shared/lib/environment.service.ts","ng://adb-shared/lib/adb-header.component.ts","ng://adb-shared/lib/click-outside.directive.ts","ng://adb-shared/lib/adb-header.module.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initAllTranslations(baseUrl);\r\n }\r\n\r\n private initAllTranslations(baseUrl: string): void {\r\n const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n this.subscription.add(trans$.subscribe(result => {\r\n this.trans.setTranslation('en', result[0], true);\r\n this.trans.setTranslation('sv', result[1], true);\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(transId: string): void {\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n}\r\n\r\n\r\n // if (this.trans.store.translations[this.trans.currentLang]) {\r\n // console.log('this.trans.currentLang', this.trans.currentLang);\r\n // this.initTranslations(baseUrl, this.trans.currentLang);\r\n // } else {\r\n // this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n // console.log('event', event);\r\n // this.initTranslations(baseUrl, event.lang);\r\n // }));\r\n // }\r\n // private initTranslations(baseUrl: string, lang: string): void {\r\n // //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n // this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`, { headers: new HttpHeaders() }).subscribe(translations => {\r\n // this.trans.setTranslation(lang, translations, true);\r\n // }));\r\n // }","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent, ClickOutsideDirective],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
package/fesm5/adb-shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Injectable, Inject, EventEmitter, Component, Output, Input, NgModule } from '@angular/core';
|
|
1
|
+
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Inject, EventEmitter, Component, Output, Input, Directive, ElementRef, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import { Subscription, forkJoin } from 'rxjs';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -39,6 +39,7 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
39
39
|
this.subscription = new Subscription();
|
|
40
40
|
this.loginClicked = new EventEmitter();
|
|
41
41
|
this.logoutClicked = new EventEmitter();
|
|
42
|
+
this.dropMenuChange = new EventEmitter();
|
|
42
43
|
this.showMenu = false;
|
|
43
44
|
this.showUserMenu = false;
|
|
44
45
|
}
|
|
@@ -80,15 +81,6 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
80
81
|
_this.navigation = result;
|
|
81
82
|
})));
|
|
82
83
|
this.initAllTranslations(baseUrl);
|
|
83
|
-
// if (this.trans.store.translations[this.trans.currentLang]) {
|
|
84
|
-
// console.log('this.trans.currentLang', this.trans.currentLang);
|
|
85
|
-
// this.initTranslations(baseUrl, this.trans.currentLang);
|
|
86
|
-
// } else {
|
|
87
|
-
// this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
88
|
-
// console.log('event', event);
|
|
89
|
-
// this.initTranslations(baseUrl, event.lang);
|
|
90
|
-
// }));
|
|
91
|
-
// }
|
|
92
84
|
};
|
|
93
85
|
/**
|
|
94
86
|
* @private
|
|
@@ -114,27 +106,18 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
114
106
|
})));
|
|
115
107
|
};
|
|
116
108
|
/**
|
|
117
|
-
* @
|
|
118
|
-
* @param {?} baseUrl
|
|
119
|
-
* @param {?} lang
|
|
109
|
+
* @param {?} show
|
|
120
110
|
* @return {?}
|
|
121
111
|
*/
|
|
122
|
-
ADBHeaderComponent.prototype.
|
|
123
|
-
* @
|
|
124
|
-
* @param {?} baseUrl
|
|
125
|
-
* @param {?} lang
|
|
112
|
+
ADBHeaderComponent.prototype.showMenuDropdown = /**
|
|
113
|
+
* @param {?} show
|
|
126
114
|
* @return {?}
|
|
127
115
|
*/
|
|
128
|
-
function (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
* @return {?}
|
|
134
|
-
*/
|
|
135
|
-
function (translations) {
|
|
136
|
-
_this.trans.setTranslation(lang, translations, true);
|
|
137
|
-
})));
|
|
116
|
+
function (show) {
|
|
117
|
+
if (this.showMenu !== show) {
|
|
118
|
+
this.showMenu = show;
|
|
119
|
+
this.dropMenuChange.emit(show);
|
|
120
|
+
}
|
|
138
121
|
};
|
|
139
122
|
/**
|
|
140
123
|
* @param {?} lang
|
|
@@ -146,7 +129,7 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
146
129
|
*/
|
|
147
130
|
function (lang) {
|
|
148
131
|
this.trans.use(lang);
|
|
149
|
-
//set localstorage/cookies
|
|
132
|
+
//TODO: set localstorage/cookies or probaly event to main app
|
|
150
133
|
};
|
|
151
134
|
/**
|
|
152
135
|
* @param {?} transId
|
|
@@ -193,7 +176,7 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
193
176
|
ADBHeaderComponent.decorators = [
|
|
194
177
|
{ type: Component, args: [{
|
|
195
178
|
selector: 'adb-header2',
|
|
196
|
-
template: "<header id=\"top-header\">\r\n <nav class=\"px-
|
|
179
|
+
template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo pl-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pr-4\" style=\"gap:2rem;\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a [href]=\"link.url\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ml-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block pl-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials px-2 py-1\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"text-dark\">\r\n <span class=\"initials py-2 px-2 mr-2\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt mr-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials mr-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?returnUrl={{url}}\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ml-0 mb-0 pl-0\">\r\n <li class=\"mb-1 list-group-item rounded-0\"\r\n [ngClass]=\"{'pointer list-group-item-action':link.children&&link.children.length>0}\"\r\n *ngFor=\"let link of navigation.links\">\r\n <div class=\"d-flex align-items-center justify-content-between\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\"\r\n (click)=\"onExpandLink(link.transId)\">\r\n <div>\r\n <small class=\"fa-stack\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n <a [href]=\"link.url\" (click)=\"$event.stopPropagation();\">\r\n {{link.transId|translate}}\r\n </a>\r\n </div>\r\n <div class=\"text-dark\" *ngIf=\"link.children&&link.children.length>0\">\r\n <i class=\"fas fa-chevron-up\" *ngIf=\"link.transId===expandedLink\"></i>\r\n <i class=\"fas fa-chevron-down\" *ngIf=\"link.transId!==expandedLink\"></i>\r\n </div>\r\n </div>\r\n <ul class=\"list-unstyled pl-4\" *ngIf=\"link.transId===expandedLink\">\r\n <li class=\"py-1m-0\" *ngFor=\"let subLink of link.children\">\r\n <a [href]=\"subLink.url\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <ul class=\"list-unstyled ml-0 pl-0\">\r\n <li class=\"mb-1 d-flex flex-wrap gap-2\">\r\n <div class=\"bg-white p-2 flex-grow-1\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">\r\n {{navigation.about.transId|translate}}\r\n </a>\r\n </div>\r\n <div class=\"bg-white p-2 flex-grow-1\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div>\r\n <img style=\"height: 3.2rem;\" src=\"/assets/images/logo.svg\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
|
|
197
180
|
}] }
|
|
198
181
|
];
|
|
199
182
|
/** @nocollapse */
|
|
@@ -205,6 +188,7 @@ var ADBHeaderComponent = /** @class */ (function () {
|
|
|
205
188
|
ADBHeaderComponent.propDecorators = {
|
|
206
189
|
loginClicked: [{ type: Output }],
|
|
207
190
|
logoutClicked: [{ type: Output }],
|
|
191
|
+
dropMenuChange: [{ type: Output }],
|
|
208
192
|
userName: [{ type: Input }]
|
|
209
193
|
};
|
|
210
194
|
return ADBHeaderComponent;
|
|
@@ -220,6 +204,8 @@ if (false) {
|
|
|
220
204
|
/** @type {?} */
|
|
221
205
|
ADBHeaderComponent.prototype.logoutClicked;
|
|
222
206
|
/** @type {?} */
|
|
207
|
+
ADBHeaderComponent.prototype.dropMenuChange;
|
|
208
|
+
/** @type {?} */
|
|
223
209
|
ADBHeaderComponent.prototype.fullName;
|
|
224
210
|
/** @type {?} */
|
|
225
211
|
ADBHeaderComponent.prototype.initials;
|
|
@@ -248,6 +234,55 @@ if (false) {
|
|
|
248
234
|
/* Skipping unhandled member: ;*/
|
|
249
235
|
}
|
|
250
236
|
|
|
237
|
+
/**
|
|
238
|
+
* @fileoverview added by tsickle
|
|
239
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
240
|
+
*/
|
|
241
|
+
var ClickOutsideDirective = /** @class */ (function () {
|
|
242
|
+
function ClickOutsideDirective(elementRef) {
|
|
243
|
+
this.elementRef = elementRef;
|
|
244
|
+
this.clickOutside = new EventEmitter();
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* @param {?} target
|
|
248
|
+
* @return {?}
|
|
249
|
+
*/
|
|
250
|
+
ClickOutsideDirective.prototype.onClick = /**
|
|
251
|
+
* @param {?} target
|
|
252
|
+
* @return {?}
|
|
253
|
+
*/
|
|
254
|
+
function (target) {
|
|
255
|
+
/** @type {?} */
|
|
256
|
+
var clickedInside = this.elementRef.nativeElement.contains(target);
|
|
257
|
+
if (!clickedInside) {
|
|
258
|
+
this.clickOutside.emit();
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
ClickOutsideDirective.decorators = [
|
|
262
|
+
{ type: Directive, args: [{
|
|
263
|
+
selector: '[clickOutside]',
|
|
264
|
+
},] }
|
|
265
|
+
];
|
|
266
|
+
/** @nocollapse */
|
|
267
|
+
ClickOutsideDirective.ctorParameters = function () { return [
|
|
268
|
+
{ type: ElementRef }
|
|
269
|
+
]; };
|
|
270
|
+
ClickOutsideDirective.propDecorators = {
|
|
271
|
+
clickOutside: [{ type: Output }],
|
|
272
|
+
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
273
|
+
};
|
|
274
|
+
return ClickOutsideDirective;
|
|
275
|
+
}());
|
|
276
|
+
if (false) {
|
|
277
|
+
/** @type {?} */
|
|
278
|
+
ClickOutsideDirective.prototype.clickOutside;
|
|
279
|
+
/**
|
|
280
|
+
* @type {?}
|
|
281
|
+
* @private
|
|
282
|
+
*/
|
|
283
|
+
ClickOutsideDirective.prototype.elementRef;
|
|
284
|
+
}
|
|
285
|
+
|
|
251
286
|
/**
|
|
252
287
|
* @fileoverview added by tsickle
|
|
253
288
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
@@ -278,7 +313,7 @@ var ADBHeaderModule = /** @class */ (function () {
|
|
|
278
313
|
};
|
|
279
314
|
ADBHeaderModule.decorators = [
|
|
280
315
|
{ type: NgModule, args: [{
|
|
281
|
-
declarations: [ADBHeaderComponent],
|
|
316
|
+
declarations: [ADBHeaderComponent, ClickOutsideDirective],
|
|
282
317
|
imports: [
|
|
283
318
|
CommonModule,
|
|
284
319
|
HttpClientModule,
|
|
@@ -301,5 +336,5 @@ var ADBHeaderModule = /** @class */ (function () {
|
|
|
301
336
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
302
337
|
*/
|
|
303
338
|
|
|
304
|
-
export { ADBHeaderComponent, ADBHeaderModule, EnvironmentService as ɵa };
|
|
339
|
+
export { ADBHeaderComponent, ADBHeaderModule, EnvironmentService as ɵa, ClickOutsideDirective as ɵb };
|
|
305
340
|
//# sourceMappingURL=adb-shared.js.map
|
package/fesm5/adb-shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-shared.js","sources":["ng://adb-shared/lib/environment.service.ts","ng://adb-shared/lib/adb-header.component.ts","ng://adb-shared/lib/adb-header.module.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n fullName: string;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initAllTranslations(baseUrl);\r\n
|
|
1
|
+
{"version":3,"file":"adb-shared.js","sources":["ng://adb-shared/lib/environment.service.ts","ng://adb-shared/lib/adb-header.component.ts","ng://adb-shared/lib/click-outside.directive.ts","ng://adb-shared/lib/adb-header.module.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initAllTranslations(baseUrl);\r\n }\r\n\r\n private initAllTranslations(baseUrl: string): void {\r\n const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n this.subscription.add(trans$.subscribe(result => {\r\n this.trans.setTranslation('en', result[0], true);\r\n this.trans.setTranslation('sv', result[1], true);\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(transId: string): void {\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n}\r\n\r\n\r\n // if (this.trans.store.translations[this.trans.currentLang]) {\r\n // console.log('this.trans.currentLang', this.trans.currentLang);\r\n // this.initTranslations(baseUrl, this.trans.currentLang);\r\n // } else {\r\n // this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n // console.log('event', event);\r\n // this.initTranslations(baseUrl, event.lang);\r\n // }));\r\n // }\r\n // private initTranslations(baseUrl: string, lang: string): void {\r\n // //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n // this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`, { headers: new HttpHeaders() }).subscribe(translations => {\r\n // this.trans.setTranslation(lang, translations, true);\r\n // }));\r\n // }","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent, ClickOutsideDirective],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare class ADBHeaderComponent implements OnInit, OnDestroy {
|
|
|
10
10
|
private subscription;
|
|
11
11
|
loginClicked: EventEmitter<any>;
|
|
12
12
|
logoutClicked: EventEmitter<any>;
|
|
13
|
+
dropMenuChange: EventEmitter<boolean>;
|
|
13
14
|
fullName: string;
|
|
14
15
|
userName: string;
|
|
15
16
|
initials: string;
|
|
@@ -21,7 +22,7 @@ export declare class ADBHeaderComponent implements OnInit, OnDestroy {
|
|
|
21
22
|
constructor(httpClient: HttpClient, envService: EnvironmentService, trans: TranslateService);
|
|
22
23
|
ngOnInit(): void;
|
|
23
24
|
private initAllTranslations;
|
|
24
|
-
|
|
25
|
+
showMenuDropdown(show: boolean): void;
|
|
25
26
|
setLanguage(lang: any): void;
|
|
26
27
|
onExpandLink(transId: string): void;
|
|
27
28
|
login(): void;
|