adb-shared 3.0.35 → 3.0.37
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/esm2020/lib/components/adb-header/adb-footer.component.mjs +56 -0
- package/esm2020/lib/components/adb-header/adb-header.module.mjs +6 -5
- package/esm2020/lib/components/adb-header/adb-nav.component.mjs +27 -28
- package/esm2020/lib/components/adb-header/navigation.model.mjs +1 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/adb-shared.mjs +180 -132
- package/fesm2015/adb-shared.mjs.map +1 -1
- package/fesm2020/adb-shared.mjs +180 -132
- package/fesm2020/adb-shared.mjs.map +1 -1
- package/lib/components/adb-header/adb-footer.component.d.ts +24 -0
- package/lib/components/adb-header/adb-header.module.d.ts +9 -8
- package/lib/components/adb-header/adb-nav.component.d.ts +10 -23
- package/lib/components/adb-header/navigation.model.d.ts +26 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/fesm2015/adb-shared.mjs
CHANGED
|
@@ -7,8 +7,8 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
7
7
|
import { Subscription, Subject, of } from 'rxjs';
|
|
8
8
|
import * as i1 from '@angular/common/http';
|
|
9
9
|
import { HttpClientModule } from '@angular/common/http';
|
|
10
|
-
import * as
|
|
11
|
-
import { RouterModule } from '@angular/router';
|
|
10
|
+
import * as i2$1 from '@angular/router';
|
|
11
|
+
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
12
12
|
import { startOfDay, subYears, endOfDay, addYears, getMonth, subMonths, addMonths, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isSameDay, isSameMonth, isWithinInterval, isValid, parseISO } from 'date-fns';
|
|
13
13
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
14
14
|
import { delay } from 'rxjs/operators';
|
|
@@ -269,6 +269,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
269
269
|
}]
|
|
270
270
|
}] });
|
|
271
271
|
|
|
272
|
+
class ADBNavComponent {
|
|
273
|
+
constructor(httpClient, router, envService, trans) {
|
|
274
|
+
this.httpClient = httpClient;
|
|
275
|
+
this.router = router;
|
|
276
|
+
this.envService = envService;
|
|
277
|
+
this.trans = trans;
|
|
278
|
+
this.subscription = new Subscription();
|
|
279
|
+
this.loginClicked = new EventEmitter();
|
|
280
|
+
this.logoutClicked = new EventEmitter();
|
|
281
|
+
this.dropMenuChange = new EventEmitter();
|
|
282
|
+
this.showPattern = false;
|
|
283
|
+
this.translationFinished = false;
|
|
284
|
+
this.lastPosition = 0;
|
|
285
|
+
this.artfakta = true;
|
|
286
|
+
this.showNavMenu = false;
|
|
287
|
+
this.showUserMenu = false;
|
|
288
|
+
this.showArtfakta = true;
|
|
289
|
+
this.showReport = false;
|
|
290
|
+
this.showNOS = true;
|
|
291
|
+
}
|
|
292
|
+
set userName(fullName) {
|
|
293
|
+
this.fullName = fullName;
|
|
294
|
+
const splitted = fullName.split(' ');
|
|
295
|
+
if ((splitted === null || splitted === void 0 ? void 0 : splitted.length) > 1) {
|
|
296
|
+
const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);
|
|
297
|
+
this.initials = initials.toUpperCase();
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
;
|
|
304
|
+
ngOnInit() {
|
|
305
|
+
this.url = window.location.href;
|
|
306
|
+
const baseUrl = this.envService.environment.resourceUrl;
|
|
307
|
+
const url = this.artfakta ? '/assets/links-ap3.json' : '/assets/artportalen/links-ap3.json';
|
|
308
|
+
this.subscription.add(this.httpClient.get(baseUrl + url).subscribe(result => {
|
|
309
|
+
this.navigation = result;
|
|
310
|
+
}));
|
|
311
|
+
this.initTranslations(baseUrl);
|
|
312
|
+
this.router.events.subscribe((event) => {
|
|
313
|
+
if (event instanceof NavigationEnd) {
|
|
314
|
+
this.showNavMenu = false;
|
|
315
|
+
this.dropMenuChange.emit(this.showNavMenu);
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
initTranslations(baseUrl) {
|
|
320
|
+
if (this.trans.store.translations[this.trans.currentLang]) {
|
|
321
|
+
this.loadTranslation(baseUrl, this.trans.currentLang);
|
|
322
|
+
}
|
|
323
|
+
this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
324
|
+
this.translationFinished = false;
|
|
325
|
+
this.loadTranslation(baseUrl, event.lang);
|
|
326
|
+
}));
|
|
327
|
+
}
|
|
328
|
+
loadTranslation(baseUrl, lang) {
|
|
329
|
+
//TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)
|
|
330
|
+
const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;
|
|
331
|
+
this.subscription.add(this.httpClient.get(url).subscribe(translations => {
|
|
332
|
+
this.trans.setTranslation(lang, translations, true);
|
|
333
|
+
this.translationFinished = true;
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
336
|
+
showMenuDropdown(show) {
|
|
337
|
+
this.showUserMenu = false;
|
|
338
|
+
if (this.showNavMenu !== show) {
|
|
339
|
+
this.showNavMenu = show;
|
|
340
|
+
this.dropMenuChange.emit(show);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
setLanguage(lang) {
|
|
344
|
+
this.trans.use(lang);
|
|
345
|
+
this.showNavMenu = false;
|
|
346
|
+
this.dropMenuChange.emit(false);
|
|
347
|
+
//TODO: set localstorage/cookies or probaly event to main app
|
|
348
|
+
}
|
|
349
|
+
login() {
|
|
350
|
+
this.loginClicked.emit();
|
|
351
|
+
}
|
|
352
|
+
logout() {
|
|
353
|
+
this.logoutClicked.emit();
|
|
354
|
+
}
|
|
355
|
+
ngOnDestroy() {
|
|
356
|
+
this.subscription.unsubscribe();
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/** @nocollapse */ ADBNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, deps: [{ token: i1.HttpClient }, { token: i2$1.Router }, { token: EnvironmentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
360
|
+
/** @nocollapse */ ADBNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: ADBNavComponent, selector: "adb-nav", inputs: { showPattern: "showPattern", userName: "userName", artfakta: "artfakta" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<div class=\"bg-primary adb-main-header\" [attr.id]=\"showPattern?'pattern':''\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg d-flex align-items-center gap-2\" *ngIf=\"translationFinished\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <div class=\"align-self-center d-none d-sm-block pe-5\">ARTDATABANKEN</div>\r\n </a>\r\n <a routerLink=\"/\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artfakta</a>\r\n </nav>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n attr.aria-label=\"{{'MENU'|translate}}\"\r\n (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\"\r\n [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\">Artfakta</h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div class=\"offcanvas-body p-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"initials\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showArtfakta?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showArtfakta = !showArtfakta\"\r\n attr.aria-controls=\"artfakta-links\" attr.aria-expanded=\"{{showArtfakta}}\">\r\n <span class=\"fas\" [ngClass]=\"showArtfakta?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showArtfakta\" id=\"artfakta-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.keys.url}}\" class=\"text-white\">\r\n {{navigation.keys.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.mySpecies.url}}\" class=\"text-white\">\r\n {{navigation.mySpecies.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.lists.url}}\" class=\"text-white\">\r\n {{navigation.lists.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.imageRec.url}}\" class=\"text-white\">\r\n {{navigation.imageRec.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.filter.url}}\" class=\"text-white\">\r\n {{navigation.filter.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showReport?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.report.url}}\">\r\n {{navigation.report.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showReport = !showReport\"\r\n attr.aria-controls=\"report-links\" attr.aria-expanded=\"{{showReport}}\">\r\n <span class=\"fas\" [ngClass]=\"showReport?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showReport\" id=\"report-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.wanted.url}}\" class=\"text-white\">\r\n {{navigation.wanted.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.checklist.url}}\" class=\"text-white\">\r\n {{navigation.checklist.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showNOS?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showNOS = !showNOS\"\r\n attr.aria-controls=\"nos-links\" attr.aria-expanded=\"{{showNOS}}\">\r\n <span class=\"fas\" [ngClass]=\"showNOS?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showNOS\" id=\"nos-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.nameSearch.url}}\" class=\"text-white\">\r\n {{navigation.nameSearch.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.match.url}}\" class=\"text-white\">\r\n {{navigation.match.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.subcriptions.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.subcriptions.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white py-2\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>", directives: [{ type: ClickOutsideDirective, selector: "[adbClickOutside]", outputs: ["adbClickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, decorators: [{
|
|
362
|
+
type: Component,
|
|
363
|
+
args: [{ selector: 'adb-nav', template: "<div class=\"bg-primary adb-main-header\" [attr.id]=\"showPattern?'pattern':''\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg d-flex align-items-center gap-2\" *ngIf=\"translationFinished\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <div class=\"align-self-center d-none d-sm-block pe-5\">ARTDATABANKEN</div>\r\n </a>\r\n <a routerLink=\"/\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artfakta</a>\r\n </nav>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n attr.aria-label=\"{{'MENU'|translate}}\"\r\n (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\"\r\n [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\">Artfakta</h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div class=\"offcanvas-body p-0\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"initials\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showArtfakta?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showArtfakta = !showArtfakta\"\r\n attr.aria-controls=\"artfakta-links\" attr.aria-expanded=\"{{showArtfakta}}\">\r\n <span class=\"fas\" [ngClass]=\"showArtfakta?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showArtfakta\" id=\"artfakta-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.keys.url}}\" class=\"text-white\">\r\n {{navigation.keys.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.mySpecies.url}}\" class=\"text-white\">\r\n {{navigation.mySpecies.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.lists.url}}\" class=\"text-white\">\r\n {{navigation.lists.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.imageRec.url}}\" class=\"text-white\">\r\n {{navigation.imageRec.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.filter.url}}\" class=\"text-white\">\r\n {{navigation.filter.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showReport?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.report.url}}\">\r\n {{navigation.report.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showReport = !showReport\"\r\n attr.aria-controls=\"report-links\" attr.aria-expanded=\"{{showReport}}\">\r\n <span class=\"fas\" [ngClass]=\"showReport?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showReport\" id=\"report-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.wanted.url}}\" class=\"text-white\">\r\n {{navigation.wanted.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.checklist.url}}\" class=\"text-white\">\r\n {{navigation.checklist.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showNOS?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showNOS = !showNOS\"\r\n attr.aria-controls=\"nos-links\" attr.aria-expanded=\"{{showNOS}}\">\r\n <span class=\"fas\" [ngClass]=\"showNOS?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showNOS\" id=\"nos-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.nameSearch.url}}\" class=\"text-white\">\r\n {{navigation.nameSearch.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.match.url}}\" class=\"text-white\">\r\n {{navigation.match.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.subcriptions.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.subcriptions.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white py-2\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
364
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2$1.Router }, { type: EnvironmentService }, { type: i3.TranslateService }]; }, propDecorators: { loginClicked: [{
|
|
365
|
+
type: Output
|
|
366
|
+
}], logoutClicked: [{
|
|
367
|
+
type: Output
|
|
368
|
+
}], dropMenuChange: [{
|
|
369
|
+
type: Output
|
|
370
|
+
}], showPattern: [{
|
|
371
|
+
type: Input
|
|
372
|
+
}], userName: [{
|
|
373
|
+
type: Input
|
|
374
|
+
}], artfakta: [{
|
|
375
|
+
type: Input
|
|
376
|
+
}] } });
|
|
377
|
+
|
|
272
378
|
class AdbDropdownService {
|
|
273
379
|
}
|
|
274
380
|
/** @nocollapse */ AdbDropdownService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -365,6 +471,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
365
471
|
args: ['document:click', ['$event.target']]
|
|
366
472
|
}] } });
|
|
367
473
|
|
|
474
|
+
class AdbDropdownModule {
|
|
475
|
+
}
|
|
476
|
+
/** @nocollapse */ AdbDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
477
|
+
/** @nocollapse */ AdbDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, declarations: [AdbDropdownDirective], imports: [CommonModule, i3.TranslateModule, AdbDirectivesModule], exports: [AdbDropdownDirective] });
|
|
478
|
+
/** @nocollapse */ AdbDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, providers: [AdbDropdownService], imports: [[CommonModule, TranslateModule.forChild(), AdbDirectivesModule]] });
|
|
479
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, decorators: [{
|
|
480
|
+
type: NgModule,
|
|
481
|
+
args: [{
|
|
482
|
+
imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],
|
|
483
|
+
declarations: [AdbDropdownDirective],
|
|
484
|
+
exports: [AdbDropdownDirective],
|
|
485
|
+
providers: [AdbDropdownService]
|
|
486
|
+
}]
|
|
487
|
+
}] });
|
|
488
|
+
|
|
368
489
|
class InfiniteScrollComponent {
|
|
369
490
|
constructor(_element) {
|
|
370
491
|
this._element = _element;
|
|
@@ -410,128 +531,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
410
531
|
args: ['style.height']
|
|
411
532
|
}] } });
|
|
412
533
|
|
|
413
|
-
class ADBNavComponent {
|
|
414
|
-
constructor(httpClient, envService, trans) {
|
|
415
|
-
this.httpClient = httpClient;
|
|
416
|
-
this.envService = envService;
|
|
417
|
-
this.trans = trans;
|
|
418
|
-
this.subscription = new Subscription();
|
|
419
|
-
this.loginClicked = new EventEmitter();
|
|
420
|
-
this.logoutClicked = new EventEmitter();
|
|
421
|
-
this.dropMenuChange = new EventEmitter();
|
|
422
|
-
this.showPattern = false;
|
|
423
|
-
this.translationFinished = false;
|
|
424
|
-
this.lastPosition = 0;
|
|
425
|
-
this.artfakta = true;
|
|
426
|
-
this.showMenu = false;
|
|
427
|
-
this.showUserMenu = false;
|
|
428
|
-
}
|
|
429
|
-
set userName(fullName) {
|
|
430
|
-
this.fullName = fullName;
|
|
431
|
-
const splitted = fullName.split(' ');
|
|
432
|
-
if ((splitted === null || splitted === void 0 ? void 0 : splitted.length) > 1) {
|
|
433
|
-
const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);
|
|
434
|
-
this.initials = initials.toUpperCase();
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
;
|
|
441
|
-
ngOnInit() {
|
|
442
|
-
this.url = window.location.href;
|
|
443
|
-
const baseUrl = this.envService.environment.resourceUrl;
|
|
444
|
-
const url = this.artfakta ? '/assets/links-ap3.json' : '/assets/artportalen/links-ap3.json';
|
|
445
|
-
this.subscription.add(this.httpClient.get(baseUrl + url).subscribe(result => {
|
|
446
|
-
this.navigation = result;
|
|
447
|
-
}));
|
|
448
|
-
this.initTranslations(baseUrl);
|
|
449
|
-
}
|
|
450
|
-
onHideTop(show) {
|
|
451
|
-
this.shrink = show;
|
|
452
|
-
}
|
|
453
|
-
initTranslations(baseUrl) {
|
|
454
|
-
if (this.trans.store.translations[this.trans.currentLang]) {
|
|
455
|
-
this.loadTranslation(baseUrl, this.trans.currentLang);
|
|
456
|
-
}
|
|
457
|
-
this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
458
|
-
this.translationFinished = false;
|
|
459
|
-
this.loadTranslation(baseUrl, event.lang);
|
|
460
|
-
}));
|
|
461
|
-
}
|
|
462
|
-
loadTranslation(baseUrl, lang) {
|
|
463
|
-
//TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)
|
|
464
|
-
const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;
|
|
465
|
-
this.subscription.add(this.httpClient.get(url).subscribe(translations => {
|
|
466
|
-
this.trans.setTranslation(lang, translations, true);
|
|
467
|
-
this.translationFinished = true;
|
|
468
|
-
}));
|
|
469
|
-
}
|
|
470
|
-
showMenuDropdown(show) {
|
|
471
|
-
if (this.showMenu !== show) {
|
|
472
|
-
this.showMenu = show;
|
|
473
|
-
this.dropMenuChange.emit(show);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
setLanguage(lang) {
|
|
477
|
-
this.trans.use(lang);
|
|
478
|
-
this.showMenu = false;
|
|
479
|
-
this.dropMenuChange.emit(false);
|
|
480
|
-
//TODO: set localstorage/cookies or probaly event to main app
|
|
481
|
-
}
|
|
482
|
-
onExpandLink(event, transId) {
|
|
483
|
-
event.preventDefault();
|
|
484
|
-
event.stopPropagation();
|
|
485
|
-
if (this.expandedLink === transId) {
|
|
486
|
-
this.expandedLink = null;
|
|
487
|
-
return;
|
|
488
|
-
}
|
|
489
|
-
this.expandedLink = transId;
|
|
490
|
-
}
|
|
491
|
-
login() {
|
|
492
|
-
this.loginClicked.emit();
|
|
493
|
-
}
|
|
494
|
-
logout() {
|
|
495
|
-
this.logoutClicked.emit();
|
|
496
|
-
}
|
|
497
|
-
ngOnDestroy() {
|
|
498
|
-
this.subscription.unsubscribe();
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
/** @nocollapse */ ADBNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, deps: [{ token: i1.HttpClient }, { token: EnvironmentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
502
|
-
/** @nocollapse */ ADBNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: ADBNavComponent, selector: "adb-nav", inputs: { showPattern: "showPattern", userName: "userName", artfakta: "artfakta" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<!-- position-static -->\r\n<div class=\"bg-primary fixed-sm-top p-2\" [attr.id]=\"showPattern&&!showMenu?'pattern':''\" [class.shrink]=\"shrink\" (adbClickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <header id=\"extra-header\">\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <nav class=\"d-flex gap-2 align-items-center\">\r\n <div class=\"me-5\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\">\r\n <div class=\"border-end\"></div>\r\n <small class=\"align-self-center\">ARTDATABANKEN</small>\r\n </a>\r\n </div>\r\n <a class=\"text-white fw-bold fs-3\" href=\"/\">ARTFAKTA</a>\r\n </nav>\r\n <ng-container *ngIf=\"translationFinished\">\r\n <div class=\"ms-auto d-flex gap-2\">\r\n <div class=\"btn-group d-block no-caret\">\r\n <button adbDropdown class=\"px-1 py-0 btn btn-primary btn-sm dropdown-toggle\"><span class=\"far fa-globe\"></span></button>\r\n <ul class=\"dropdown-menu dropdown-menu-end py-1 bg-primary\">\r\n <li>\r\n <button type=\"button\" [class.pe-none]=\"trans.currentLang==='sv'\" (click)=\"setLanguage('sv')\" class=\"btn btn-link py-0 px-2 text-white\">\r\n <span [class.fw-bold]=\"trans.currentLang==='sv'\">{{'ADB_HEADER.IN_SWEDISH'|translate}}</span>\r\n </button>\r\n </li>\r\n <div class=\"dropdown-divider my-1 opacity-25 bg-white\"></div>\r\n <li>\r\n <button type=\"button\" [class.pe-none]=\"trans.currentLang==='en'\" (click)=\"setLanguage('en')\" class=\"btn btn-link py-0 px-2 text-white\">\r\n <span [class.fw-bold]=\"trans.currentLang==='en'\">{{'ADB_HEADER.IN_ENGLISH'|translate}}</span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n <a class=\"ms-auto text-white d-none d-md-block\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" [href]=\"navigation.supportUrl\">Support</a>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </header>\r\n <header class=\"d-flex align-items-center flex-wrap gap-2\" *ngIf=\"translationFinished\">\r\n <nav *ngIf=\"navigation\" class=\"d-flex align-items-center gap-3\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"home-link\" target=\"new\"><img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\"></a>\r\n <a class=\"text-white fw-bold me-3 home-link\" href=\"{{navigation.artfakta.url}}\">\r\n {{navigation.artfakta.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n </nav>\r\n <div class=\"ms-auto\">\r\n <div class=\"btn-group no-caret d-none d-md-block\">\r\n <button type=\"button\" adbDropdown class=\"btn btn-primary btn-sm dropdown-toggle\" [class.initials]=\"initials\" (click)=\"showMenuDropdown(!showMenu)\">\r\n <ng-container *ngIf=\"initials\">{{initials}}</ng-container>\r\n <ng-container *ngIf=\"!initials\">{{'ADB_HEADER.LOGIN'|translate}}</ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end py-1 bg-primary text-white\">\r\n <ng-container *ngIf=\"initials\">\r\n <li class=\"px-2 pb-1\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0 text-white\">\r\n <span class=\"fas fa-sign-out-alt me-1\"></span>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </li>\r\n <hr class=\"my-0\">\r\n <li class=\"pt-1 px-2\">\r\n <span class=\"fas fa-user me-1\"></span>\r\n {{fullName}}\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <li>\r\n <div class=\"text-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 </li>\r\n <li>\r\n <a *ngIf=\"navigation\" class=\"d-block text-center mt-2 text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"d-block d-md-none\">\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=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n <div class=\"mobile-menu d-flex flex-column d-md-none bg-primary text-white\" *ngIf=\"showMenu&&navigation\">\r\n <div class=\"p-2\">\r\n <div class=\"d-flex justify-content-between align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-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 justify-content-between gap-2\" *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}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"px-2\">\r\n <hr class=\"my-0\">\r\n <ul class=\"list-unstyled\">\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <small class=\"d-block text-white py-2\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"mt-auto splash-height\" id=\"pattern\"></div>\r\n </div>\r\n</div>\r\n<div (onVisible)=\"onHideTop(false)\" (onHidden)=\"onHideTop(true)\" style=\"height:0px\"></div>", directives: [{ type: ClickOutsideDirective, selector: "[adbClickOutside]", outputs: ["adbClickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: AdbDropdownDirective, selector: "[adbDropdown]", inputs: ["insideClick"], outputs: ["adbDropdown"], exportAs: ["adbDropdown"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: InfiniteScrollComponent, selector: "[onVisible]", outputs: ["onVisible", "onHidden"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, decorators: [{
|
|
504
|
-
type: Component,
|
|
505
|
-
args: [{ selector: 'adb-nav', template: "<!-- position-static -->\r\n<div class=\"bg-primary fixed-sm-top p-2\" [attr.id]=\"showPattern&&!showMenu?'pattern':''\" [class.shrink]=\"shrink\" (adbClickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <header id=\"extra-header\">\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <nav class=\"d-flex gap-2 align-items-center\">\r\n <div class=\"me-5\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\">\r\n <div class=\"border-end\"></div>\r\n <small class=\"align-self-center\">ARTDATABANKEN</small>\r\n </a>\r\n </div>\r\n <a class=\"text-white fw-bold fs-3\" href=\"/\">ARTFAKTA</a>\r\n </nav>\r\n <ng-container *ngIf=\"translationFinished\">\r\n <div class=\"ms-auto d-flex gap-2\">\r\n <div class=\"btn-group d-block no-caret\">\r\n <button adbDropdown class=\"px-1 py-0 btn btn-primary btn-sm dropdown-toggle\"><span class=\"far fa-globe\"></span></button>\r\n <ul class=\"dropdown-menu dropdown-menu-end py-1 bg-primary\">\r\n <li>\r\n <button type=\"button\" [class.pe-none]=\"trans.currentLang==='sv'\" (click)=\"setLanguage('sv')\" class=\"btn btn-link py-0 px-2 text-white\">\r\n <span [class.fw-bold]=\"trans.currentLang==='sv'\">{{'ADB_HEADER.IN_SWEDISH'|translate}}</span>\r\n </button>\r\n </li>\r\n <div class=\"dropdown-divider my-1 opacity-25 bg-white\"></div>\r\n <li>\r\n <button type=\"button\" [class.pe-none]=\"trans.currentLang==='en'\" (click)=\"setLanguage('en')\" class=\"btn btn-link py-0 px-2 text-white\">\r\n <span [class.fw-bold]=\"trans.currentLang==='en'\">{{'ADB_HEADER.IN_ENGLISH'|translate}}</span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n <a class=\"ms-auto text-white d-none d-md-block\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" [href]=\"navigation.supportUrl\">Support</a>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </header>\r\n <header class=\"d-flex align-items-center flex-wrap gap-2\" *ngIf=\"translationFinished\">\r\n <nav *ngIf=\"navigation\" class=\"d-flex align-items-center gap-3\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"home-link\" target=\"new\"><img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\"></a>\r\n <a class=\"text-white fw-bold me-3 home-link\" href=\"{{navigation.artfakta.url}}\">\r\n {{navigation.artfakta.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-md-block\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n </nav>\r\n <div class=\"ms-auto\">\r\n <div class=\"btn-group no-caret d-none d-md-block\">\r\n <button type=\"button\" adbDropdown class=\"btn btn-primary btn-sm dropdown-toggle\" [class.initials]=\"initials\" (click)=\"showMenuDropdown(!showMenu)\">\r\n <ng-container *ngIf=\"initials\">{{initials}}</ng-container>\r\n <ng-container *ngIf=\"!initials\">{{'ADB_HEADER.LOGIN'|translate}}</ng-container>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end py-1 bg-primary text-white\">\r\n <ng-container *ngIf=\"initials\">\r\n <li class=\"px-2 pb-1\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0 text-white\">\r\n <span class=\"fas fa-sign-out-alt me-1\"></span>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </li>\r\n <hr class=\"my-0\">\r\n <li class=\"pt-1 px-2\">\r\n <span class=\"fas fa-user me-1\"></span>\r\n {{fullName}}\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <li>\r\n <div class=\"text-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 </li>\r\n <li>\r\n <a *ngIf=\"navigation\" class=\"d-block text-center mt-2 text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div class=\"d-block d-md-none\">\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=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n <div class=\"mobile-menu d-flex flex-column d-md-none bg-primary text-white\" *ngIf=\"showMenu&&navigation\">\r\n <div class=\"p-2\">\r\n <div class=\"d-flex justify-content-between align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-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 justify-content-between gap-2\" *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}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div class=\"px-2\">\r\n <hr class=\"my-0\">\r\n <ul class=\"list-unstyled\">\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n <hr class=\"my-0\">\r\n </li>\r\n <li>\r\n <small class=\"d-block text-white py-2\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"mt-auto splash-height\" id=\"pattern\"></div>\r\n </div>\r\n</div>\r\n<div (onVisible)=\"onHideTop(false)\" (onHidden)=\"onHideTop(true)\" style=\"height:0px\"></div>" }]
|
|
506
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EnvironmentService }, { type: i3.TranslateService }]; }, propDecorators: { loginClicked: [{
|
|
507
|
-
type: Output
|
|
508
|
-
}], logoutClicked: [{
|
|
509
|
-
type: Output
|
|
510
|
-
}], dropMenuChange: [{
|
|
511
|
-
type: Output
|
|
512
|
-
}], showPattern: [{
|
|
513
|
-
type: Input
|
|
514
|
-
}], userName: [{
|
|
515
|
-
type: Input
|
|
516
|
-
}], artfakta: [{
|
|
517
|
-
type: Input
|
|
518
|
-
}] } });
|
|
519
|
-
|
|
520
|
-
class AdbDropdownModule {
|
|
521
|
-
}
|
|
522
|
-
/** @nocollapse */ AdbDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
523
|
-
/** @nocollapse */ AdbDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, declarations: [AdbDropdownDirective], imports: [CommonModule, i3.TranslateModule, AdbDirectivesModule], exports: [AdbDropdownDirective] });
|
|
524
|
-
/** @nocollapse */ AdbDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, providers: [AdbDropdownService], imports: [[CommonModule, TranslateModule.forChild(), AdbDirectivesModule]] });
|
|
525
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownModule, decorators: [{
|
|
526
|
-
type: NgModule,
|
|
527
|
-
args: [{
|
|
528
|
-
imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],
|
|
529
|
-
declarations: [AdbDropdownDirective],
|
|
530
|
-
exports: [AdbDropdownDirective],
|
|
531
|
-
providers: [AdbDropdownService]
|
|
532
|
-
}]
|
|
533
|
-
}] });
|
|
534
|
-
|
|
535
534
|
class PagerBaseDirective {
|
|
536
535
|
constructor() {
|
|
537
536
|
this.limit = PagerBaseDirective.DEFAULT_LIMIT; //TODO: change to set method to update model
|
|
@@ -604,12 +603,12 @@ class PagerComponent extends PagerBaseDirective {
|
|
|
604
603
|
this.subscription.unsubscribe();
|
|
605
604
|
}
|
|
606
605
|
}
|
|
607
|
-
/** @nocollapse */ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PagerComponent, deps: [{ token:
|
|
608
|
-
/** @nocollapse */ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: PagerComponent, selector: "adb-pager-nav", inputs: { offsetName: "offsetName", infiniteLimit: "infiniteLimit" }, usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type:
|
|
606
|
+
/** @nocollapse */ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PagerComponent, deps: [{ token: i2$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
607
|
+
/** @nocollapse */ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: PagerComponent, selector: "adb-pager-nav", inputs: { offsetName: "offsetName", infiniteLimit: "infiniteLimit" }, usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
609
608
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PagerComponent, decorators: [{
|
|
610
609
|
type: Component,
|
|
611
610
|
args: [{ selector: 'adb-pager-nav', template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>" }]
|
|
612
|
-
}], ctorParameters: function () { return [{ type:
|
|
611
|
+
}], ctorParameters: function () { return [{ type: i2$1.ActivatedRoute }]; }, propDecorators: { offsetName: [{
|
|
613
612
|
type: Input
|
|
614
613
|
}], infiniteLimit: [{
|
|
615
614
|
type: Input
|
|
@@ -675,6 +674,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
675
674
|
}]
|
|
676
675
|
}] });
|
|
677
676
|
|
|
677
|
+
class ADBFooterComponent {
|
|
678
|
+
constructor(httpClient, envService, trans) {
|
|
679
|
+
this.httpClient = httpClient;
|
|
680
|
+
this.envService = envService;
|
|
681
|
+
this.trans = trans;
|
|
682
|
+
this.subscription = new Subscription();
|
|
683
|
+
this.translationFinished = false;
|
|
684
|
+
this.artfakta = true;
|
|
685
|
+
}
|
|
686
|
+
ngOnInit() {
|
|
687
|
+
this.url = window.location.href;
|
|
688
|
+
this.baseUrl = this.envService.environment.resourceUrl;
|
|
689
|
+
//TODO: wiat with these links to dev st. For now always prod
|
|
690
|
+
// const url = this.artfakta ? '/assets/links-ap3.json' : '/assets/artportalen/links-ap3.json';
|
|
691
|
+
// this.subscription.add(this.httpClient.get<Navigation2>(baseUrl + url).subscribe(result => {
|
|
692
|
+
// this.navigation = result;
|
|
693
|
+
// }));
|
|
694
|
+
this.initTranslations(this.baseUrl);
|
|
695
|
+
}
|
|
696
|
+
initTranslations(baseUrl) {
|
|
697
|
+
if (this.trans.store.translations[this.trans.currentLang]) {
|
|
698
|
+
this.loadTranslation(baseUrl, this.trans.currentLang);
|
|
699
|
+
}
|
|
700
|
+
this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
701
|
+
this.translationFinished = false;
|
|
702
|
+
this.loadTranslation(baseUrl, event.lang);
|
|
703
|
+
}));
|
|
704
|
+
}
|
|
705
|
+
loadTranslation(baseUrl, lang) {
|
|
706
|
+
//TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)
|
|
707
|
+
const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;
|
|
708
|
+
this.subscription.add(this.httpClient.get(url).subscribe(translations => {
|
|
709
|
+
this.trans.setTranslation(lang, translations, true);
|
|
710
|
+
this.translationFinished = true;
|
|
711
|
+
}));
|
|
712
|
+
}
|
|
713
|
+
ngOnDestroy() {
|
|
714
|
+
this.subscription.unsubscribe();
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
/** @nocollapse */ ADBFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBFooterComponent, deps: [{ token: i1.HttpClient }, { token: EnvironmentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
718
|
+
/** @nocollapse */ ADBFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: ADBFooterComponent, selector: "adb-footer", inputs: { artfakta: "artfakta" }, ngImport: i0, template: "<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 justify-content-center\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a href=\"https://artfakta.se/om\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://artfakta.se/om\" fragment=\"accessability\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a class=\"d-block text-white mb-2\" href=\"mailto:artfakta@artdatabanken.se\">{{'FOOTER.SUPPORT'|translate}}: artfakta@artdatabanken.se</a>\r\n </div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare/\" target=\"_blank\">{{'FOOTER.TERMS_OF_USE'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" target=\"_blank\">{{'FOOTER.PERSONAL_DATA'|translate}} <span\r\n class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://metadata.artfakta.se/dataproviders\" target=\"_blank\">{{'FOOTER.DATA_SOURCES'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://status.artdatabanken.se/status\" target=\"_blank\">{{'FOOTER.API'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-8 px-md-2\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\">\r\n <div class=\"border-end\"></div>\r\n <div class=\"align-self-center\">ARTDATABANKEN</div>\r\n </a>\r\n </div>\r\n <div class=\"col-lg-8\">\r\n <div class=\"mb-2 text-white\">{{'FOOTER.INFO'|translate}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBFooterComponent, decorators: [{
|
|
720
|
+
type: Component,
|
|
721
|
+
args: [{ selector: 'adb-footer', template: "<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 justify-content-center\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a href=\"https://artfakta.se/om\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://artfakta.se/om\" fragment=\"accessability\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a class=\"d-block text-white mb-2\" href=\"mailto:artfakta@artdatabanken.se\">{{'FOOTER.SUPPORT'|translate}}: artfakta@artdatabanken.se</a>\r\n </div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare/\" target=\"_blank\">{{'FOOTER.TERMS_OF_USE'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" target=\"_blank\">{{'FOOTER.PERSONAL_DATA'|translate}} <span\r\n class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://metadata.artfakta.se/dataproviders\" target=\"_blank\">{{'FOOTER.DATA_SOURCES'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://status.artdatabanken.se/status\" target=\"_blank\">{{'FOOTER.API'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-8 px-md-2\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/logo_sm_white.png\">\r\n <div class=\"border-end\"></div>\r\n <div class=\"align-self-center\">ARTDATABANKEN</div>\r\n </a>\r\n </div>\r\n <div class=\"col-lg-8\">\r\n <div class=\"mb-2 text-white\">{{'FOOTER.INFO'|translate}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>" }]
|
|
722
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EnvironmentService }, { type: i3.TranslateService }]; }, propDecorators: { artfakta: [{
|
|
723
|
+
type: Input
|
|
724
|
+
}] } });
|
|
725
|
+
|
|
678
726
|
class ADBHeaderModule {
|
|
679
727
|
static forRoot(environment) {
|
|
680
728
|
return {
|
|
@@ -690,13 +738,13 @@ class ADBHeaderModule {
|
|
|
690
738
|
}
|
|
691
739
|
}
|
|
692
740
|
/** @nocollapse */ ADBHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
693
|
-
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent, ADBNavComponent], imports: [CommonModule,
|
|
741
|
+
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent, ADBNavComponent, ADBFooterComponent], imports: [CommonModule,
|
|
694
742
|
HttpClientModule,
|
|
695
743
|
RouterModule,
|
|
696
744
|
TranslateModule,
|
|
697
745
|
AdbDirectivesModule,
|
|
698
746
|
AdbDropdownModule,
|
|
699
|
-
AdbPagersModule], exports: [ADBHeaderComponent, ADBNavComponent] });
|
|
747
|
+
AdbPagersModule], exports: [ADBHeaderComponent, ADBNavComponent, ADBFooterComponent] });
|
|
700
748
|
/** @nocollapse */ ADBHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, imports: [[
|
|
701
749
|
CommonModule,
|
|
702
750
|
HttpClientModule,
|
|
@@ -709,7 +757,7 @@ class ADBHeaderModule {
|
|
|
709
757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, decorators: [{
|
|
710
758
|
type: NgModule,
|
|
711
759
|
args: [{
|
|
712
|
-
declarations: [ADBHeaderComponent, ADBNavComponent],
|
|
760
|
+
declarations: [ADBHeaderComponent, ADBNavComponent, ADBFooterComponent],
|
|
713
761
|
imports: [
|
|
714
762
|
CommonModule,
|
|
715
763
|
HttpClientModule,
|
|
@@ -719,7 +767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
719
767
|
AdbDropdownModule,
|
|
720
768
|
AdbPagersModule
|
|
721
769
|
],
|
|
722
|
-
exports: [ADBHeaderComponent, ADBNavComponent]
|
|
770
|
+
exports: [ADBHeaderComponent, ADBNavComponent, ADBFooterComponent]
|
|
723
771
|
}]
|
|
724
772
|
}] });
|
|
725
773
|
|
|
@@ -1395,5 +1443,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
1395
1443
|
* Generated bundle index. Do not edit.
|
|
1396
1444
|
*/
|
|
1397
1445
|
|
|
1398
|
-
export { ADBHeaderComponent, ADBHeaderModule, ADBNavComponent, AdbConfirmModal, AdbDatePickerComponent, AdbDatePickerDirective, AdbDatePickerModule, AdbDirectivesModule, AdbDropdownDirective, AdbDropdownModule, AdbModalModule, AdbModalService, AdbPagersModule, AdbPipesModule, AdbToast, AdbToastModule, AdbToastService, ClickOutsideDirective, EmptyValuePipe, FileUploadDirective, FocusDirective, HighlightPipe2, InfiniteScrollComponent, LocaleDatePipe, NumberSpacingPipe, PagerComponent, PagerInlineComponent, RedListBadgeClassDirective, ToastType };
|
|
1446
|
+
export { ADBFooterComponent, ADBHeaderComponent, ADBHeaderModule, ADBNavComponent, AdbConfirmModal, AdbDatePickerComponent, AdbDatePickerDirective, AdbDatePickerModule, AdbDirectivesModule, AdbDropdownDirective, AdbDropdownModule, AdbModalModule, AdbModalService, AdbPagersModule, AdbPipesModule, AdbToast, AdbToastModule, AdbToastService, ClickOutsideDirective, EmptyValuePipe, FileUploadDirective, FocusDirective, HighlightPipe2, InfiniteScrollComponent, LocaleDatePipe, NumberSpacingPipe, PagerComponent, PagerInlineComponent, RedListBadgeClassDirective, ToastType };
|
|
1399
1447
|
//# sourceMappingURL=adb-shared.mjs.map
|