adb-shared 3.0.21 → 3.0.22
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-header.module.mjs +8 -4
- package/esm2020/lib/components/adb-header/adb-nav.component.mjs +8 -3
- package/esm2020/lib/components/pagers/infinite-scroll.component.mjs +8 -2
- package/fesm2015/adb-shared.mjs +99 -86
- package/fesm2015/adb-shared.mjs.map +1 -1
- package/fesm2020/adb-shared.mjs +99 -86
- package/fesm2020/adb-shared.mjs.map +1 -1
- package/lib/components/adb-header/adb-header.module.d.ts +2 -1
- package/lib/components/adb-header/adb-nav.component.d.ts +3 -0
- package/lib/components/pagers/infinite-scroll.component.d.ts +2 -1
- package/package.json +1 -1
package/fesm2020/adb-shared.mjs
CHANGED
|
@@ -353,6 +353,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
353
353
|
args: ['document:click', ['$event.target']]
|
|
354
354
|
}] } });
|
|
355
355
|
|
|
356
|
+
class InfiniteScrollComponent {
|
|
357
|
+
constructor(_element) {
|
|
358
|
+
this._element = _element;
|
|
359
|
+
this.onVisible = new EventEmitter();
|
|
360
|
+
this.onHidden = new EventEmitter();
|
|
361
|
+
this.height = '1px';
|
|
362
|
+
this.checkForIntersection = (entries) => {
|
|
363
|
+
entries.forEach((entry) => {
|
|
364
|
+
const isIntersecting = entry.isIntersecting &&
|
|
365
|
+
entry.target === this._element.nativeElement;
|
|
366
|
+
if (isIntersecting) {
|
|
367
|
+
this.onVisible.emit();
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
this.onHidden.emit();
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
ngAfterViewInit() {
|
|
376
|
+
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
377
|
+
this.checkForIntersection(entries);
|
|
378
|
+
}, {});
|
|
379
|
+
this._intersectionObserver.observe(this._element.nativeElement);
|
|
380
|
+
}
|
|
381
|
+
ngOnDestroy() {
|
|
382
|
+
if (this._intersectionObserver) {
|
|
383
|
+
this._intersectionObserver.disconnect();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/** @nocollapse */ InfiniteScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: InfiniteScrollComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
388
|
+
/** @nocollapse */ InfiniteScrollComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: InfiniteScrollComponent, selector: "[onVisible]", outputs: { onVisible: "onVisible", onHidden: "onHidden" }, host: { properties: { "style.height": "this.height" } }, ngImport: i0 });
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: InfiniteScrollComponent, decorators: [{
|
|
390
|
+
type: Directive,
|
|
391
|
+
args: [{ selector: "[onVisible]" }]
|
|
392
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onVisible: [{
|
|
393
|
+
type: Output
|
|
394
|
+
}], onHidden: [{
|
|
395
|
+
type: Output
|
|
396
|
+
}], height: [{
|
|
397
|
+
type: HostBinding,
|
|
398
|
+
args: ['style.height']
|
|
399
|
+
}] } });
|
|
400
|
+
|
|
356
401
|
class ADBNavComponent {
|
|
357
402
|
constructor(httpClient, trans) {
|
|
358
403
|
this.httpClient = httpClient;
|
|
@@ -363,6 +408,7 @@ class ADBNavComponent {
|
|
|
363
408
|
this.dropMenuChange = new EventEmitter();
|
|
364
409
|
this.showPattern = false;
|
|
365
410
|
this.translationFinished = false;
|
|
411
|
+
this.lastPosition = 0;
|
|
366
412
|
this.artfakta = true;
|
|
367
413
|
this.showMenu = false;
|
|
368
414
|
this.showUserMenu = false;
|
|
@@ -387,6 +433,9 @@ class ADBNavComponent {
|
|
|
387
433
|
}));
|
|
388
434
|
this.initTranslations(baseUrl);
|
|
389
435
|
}
|
|
436
|
+
onHideTop(show) {
|
|
437
|
+
this.shrink = show;
|
|
438
|
+
}
|
|
390
439
|
initTranslations(baseUrl) {
|
|
391
440
|
if (this.trans.store.translations[this.trans.currentLang]) {
|
|
392
441
|
this.loadTranslation(baseUrl, this.trans.currentLang);
|
|
@@ -435,10 +484,10 @@ class ADBNavComponent {
|
|
|
435
484
|
}
|
|
436
485
|
}
|
|
437
486
|
/** @nocollapse */ ADBNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, deps: [{ token: i1.HttpClient }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
438
|
-
/** @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: "<header class=\"bg-primary\" [attr.id]=\"showPattern?'pattern':''\" (adbClickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap align-items-center p-2 gap-2\">\r\n <div class=\"me-5\">\r\n <a href=\"https://www.artdatabanken.se/\" target=\"new\"><img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\"></a>\r\n </div>\r\n <ng-container *ngIf=\"translationFinished\">\r\n <nav class=\"flex-grow-1 d-lg-flex align-items-center pe-4 gap-4\" *ngIf=\"navigation\">\r\n <a class=\"text-white fs-5 me-3\" href=\"{{navigation.artfakta.url}}\">\r\n {{navigation.artfakta.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-lg-block\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-lg-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-lg-block\" href=\"{{navigation.nameAndRelationship.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <a class=\"ms-auto text-white d-none d-lg-block\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n </a>\r\n <a class=\"text-white d-none d-lg-block\" [href]=\"navigation.supportUrl\">Support</a>\r\n </nav>\r\n <div class=\"ms-auto\">\r\n <div class=\"d-flex gap-2\">\r\n <div class=\"btn-group no-caret\">\r\n <button adbDropdown class=\"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 <div class=\"btn-group no-caret d-none d-lg-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>\r\n </div>\r\n <div class=\"d-block d-lg-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 </ng-container>\r\n </nav>\r\n <div class=\"mobile-menu d-flex flex-column d-lg-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</header>", 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"] }], pipes: { "translate": i1$1.TranslatePipe } });
|
|
487
|
+
/** @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 sticky-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\">\r\n <div class=\"me-5\" style=\"display: block;margin-top: -0.4rem;\">\r\n <a href=\"https://www.artdatabanken.se/\" target=\"new\"><img src=\"/assets/images/logo.svg\" style=\"height: 2.5rem;\"></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-2\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"home-link\" target=\"new\" style=\"margin-top: -0.4rem;\"><img src=\"/assets/images/logo_sm_white.png\" style=\"height: 1.6rem;\"></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)\"></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": i1$1.TranslatePipe } });
|
|
439
488
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBNavComponent, decorators: [{
|
|
440
489
|
type: Component,
|
|
441
|
-
args: [{ selector: 'adb-nav', template: "<
|
|
490
|
+
args: [{ selector: 'adb-nav', template: "<!-- position-static -->\r\n<div class=\"bg-primary sticky-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\">\r\n <div class=\"me-5\" style=\"display: block;margin-top: -0.4rem;\">\r\n <a href=\"https://www.artdatabanken.se/\" target=\"new\"><img src=\"/assets/images/logo.svg\" style=\"height: 2.5rem;\"></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-2\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"home-link\" target=\"new\" style=\"margin-top: -0.4rem;\"><img src=\"/assets/images/logo_sm_white.png\" style=\"height: 1.6rem;\"></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)\"></div>" }]
|
|
442
491
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i1$1.TranslateService }]; }, propDecorators: { loginClicked: [{
|
|
443
492
|
type: Output
|
|
444
493
|
}], logoutClicked: [{
|
|
@@ -468,90 +517,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
468
517
|
}]
|
|
469
518
|
}] });
|
|
470
519
|
|
|
471
|
-
class ADBHeaderModule {
|
|
472
|
-
static forRoot(environment) {
|
|
473
|
-
return {
|
|
474
|
-
ngModule: ADBHeaderModule,
|
|
475
|
-
providers: [
|
|
476
|
-
EnvironmentService,
|
|
477
|
-
{
|
|
478
|
-
provide: 'env',
|
|
479
|
-
useValue: environment
|
|
480
|
-
}
|
|
481
|
-
]
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
/** @nocollapse */ ADBHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
486
|
-
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent, ADBNavComponent], imports: [CommonModule,
|
|
487
|
-
HttpClientModule,
|
|
488
|
-
RouterModule,
|
|
489
|
-
TranslateModule,
|
|
490
|
-
AdbDirectivesModule,
|
|
491
|
-
AdbDropdownModule], exports: [ADBHeaderComponent, ADBNavComponent] });
|
|
492
|
-
/** @nocollapse */ ADBHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, imports: [[
|
|
493
|
-
CommonModule,
|
|
494
|
-
HttpClientModule,
|
|
495
|
-
RouterModule,
|
|
496
|
-
TranslateModule,
|
|
497
|
-
AdbDirectivesModule,
|
|
498
|
-
AdbDropdownModule
|
|
499
|
-
]] });
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, decorators: [{
|
|
501
|
-
type: NgModule,
|
|
502
|
-
args: [{
|
|
503
|
-
declarations: [ADBHeaderComponent, ADBNavComponent],
|
|
504
|
-
imports: [
|
|
505
|
-
CommonModule,
|
|
506
|
-
HttpClientModule,
|
|
507
|
-
RouterModule,
|
|
508
|
-
TranslateModule,
|
|
509
|
-
AdbDirectivesModule,
|
|
510
|
-
AdbDropdownModule
|
|
511
|
-
],
|
|
512
|
-
exports: [ADBHeaderComponent, ADBNavComponent]
|
|
513
|
-
}]
|
|
514
|
-
}] });
|
|
515
|
-
|
|
516
|
-
class InfiniteScrollComponent {
|
|
517
|
-
constructor(_element) {
|
|
518
|
-
this._element = _element;
|
|
519
|
-
this.onVisible = new EventEmitter();
|
|
520
|
-
this.height = '1px';
|
|
521
|
-
this.checkForIntersection = (entries) => {
|
|
522
|
-
entries.forEach((entry) => {
|
|
523
|
-
const isIntersecting = entry.isIntersecting &&
|
|
524
|
-
entry.target === this._element.nativeElement;
|
|
525
|
-
if (isIntersecting) {
|
|
526
|
-
this.onVisible.emit();
|
|
527
|
-
}
|
|
528
|
-
});
|
|
529
|
-
};
|
|
530
|
-
}
|
|
531
|
-
ngAfterViewInit() {
|
|
532
|
-
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
533
|
-
this.checkForIntersection(entries);
|
|
534
|
-
}, {});
|
|
535
|
-
this._intersectionObserver.observe(this._element.nativeElement);
|
|
536
|
-
}
|
|
537
|
-
ngOnDestroy() {
|
|
538
|
-
if (this._intersectionObserver) {
|
|
539
|
-
this._intersectionObserver.disconnect();
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
/** @nocollapse */ InfiniteScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: InfiniteScrollComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
544
|
-
/** @nocollapse */ InfiniteScrollComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: InfiniteScrollComponent, selector: "[onVisible]", outputs: { onVisible: "onVisible" }, host: { properties: { "style.height": "this.height" } }, ngImport: i0 });
|
|
545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: InfiniteScrollComponent, decorators: [{
|
|
546
|
-
type: Directive,
|
|
547
|
-
args: [{ selector: "[onVisible]" }]
|
|
548
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onVisible: [{
|
|
549
|
-
type: Output
|
|
550
|
-
}], height: [{
|
|
551
|
-
type: HostBinding,
|
|
552
|
-
args: ['style.height']
|
|
553
|
-
}] } });
|
|
554
|
-
|
|
555
520
|
class PagerBaseDirective {
|
|
556
521
|
constructor() {
|
|
557
522
|
this.limit = PagerBaseDirective.DEFAULT_LIMIT; //TODO: change to set method to update model
|
|
@@ -656,6 +621,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
656
621
|
}]
|
|
657
622
|
}] });
|
|
658
623
|
|
|
624
|
+
class ADBHeaderModule {
|
|
625
|
+
static forRoot(environment) {
|
|
626
|
+
return {
|
|
627
|
+
ngModule: ADBHeaderModule,
|
|
628
|
+
providers: [
|
|
629
|
+
EnvironmentService,
|
|
630
|
+
{
|
|
631
|
+
provide: 'env',
|
|
632
|
+
useValue: environment
|
|
633
|
+
}
|
|
634
|
+
]
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
/** @nocollapse */ ADBHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
639
|
+
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent, ADBNavComponent], imports: [CommonModule,
|
|
640
|
+
HttpClientModule,
|
|
641
|
+
RouterModule,
|
|
642
|
+
TranslateModule,
|
|
643
|
+
AdbDirectivesModule,
|
|
644
|
+
AdbDropdownModule,
|
|
645
|
+
AdbPagersModule], exports: [ADBHeaderComponent, ADBNavComponent] });
|
|
646
|
+
/** @nocollapse */ ADBHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, imports: [[
|
|
647
|
+
CommonModule,
|
|
648
|
+
HttpClientModule,
|
|
649
|
+
RouterModule,
|
|
650
|
+
TranslateModule,
|
|
651
|
+
AdbDirectivesModule,
|
|
652
|
+
AdbDropdownModule,
|
|
653
|
+
AdbPagersModule
|
|
654
|
+
]] });
|
|
655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderModule, decorators: [{
|
|
656
|
+
type: NgModule,
|
|
657
|
+
args: [{
|
|
658
|
+
declarations: [ADBHeaderComponent, ADBNavComponent],
|
|
659
|
+
imports: [
|
|
660
|
+
CommonModule,
|
|
661
|
+
HttpClientModule,
|
|
662
|
+
RouterModule,
|
|
663
|
+
TranslateModule,
|
|
664
|
+
AdbDirectivesModule,
|
|
665
|
+
AdbDropdownModule,
|
|
666
|
+
AdbPagersModule
|
|
667
|
+
],
|
|
668
|
+
exports: [ADBHeaderComponent, ADBNavComponent]
|
|
669
|
+
}]
|
|
670
|
+
}] });
|
|
671
|
+
|
|
659
672
|
class LocaleDatePipe {
|
|
660
673
|
constructor(translate) {
|
|
661
674
|
this.translate = translate;
|