adb-shared 1.0.9 → 1.0.13
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/bundles/adb-shared.umd.js +424 -12
- package/bundles/adb-shared.umd.js.map +1 -1
- package/esm2015/lib/components/adb-header/adb-header.component.js +101 -0
- package/esm2015/lib/components/adb-header/adb-header.module.js +51 -0
- package/esm2015/lib/{environment.service.js → components/adb-header/environment.service.js} +1 -1
- package/esm2015/lib/components/adb-header/navigation.model.js +2 -0
- package/esm2015/lib/components/pagers/infinite-scroll.component.js +48 -0
- package/esm2015/lib/components/pagers/pagers.module.js +17 -0
- package/esm2015/lib/directives/click-outside.directive.js +28 -0
- package/esm2015/lib/directives/directives.module.js +17 -0
- package/esm2015/public-api.js +7 -3
- package/fesm2015/adb-shared.js +89 -12
- package/fesm2015/adb-shared.js.map +1 -1
- package/lib/{adb-header.component.d.ts → components/adb-header/adb-header.component.d.ts} +0 -0
- package/lib/{adb-header.module.d.ts → components/adb-header/adb-header.module.d.ts} +6 -6
- package/lib/{environment.service.d.ts → components/adb-header/environment.service.d.ts} +0 -0
- package/lib/{navigation.model.d.ts → components/adb-header/navigation.model.d.ts} +0 -0
- package/lib/components/pagers/infinite-scroll.component.d.ts +17 -0
- package/lib/components/pagers/pagers.module.d.ts +7 -0
- package/lib/{click-outside.directive.d.ts → directives/click-outside.directive.d.ts} +0 -0
- package/lib/directives/directives.module.d.ts +7 -0
- package/package.json +6 -5
- package/public-api.d.ts +6 -2
- package/esm2015/lib/adb-header.component.js +0 -101
- package/esm2015/lib/adb-header.module.js +0 -48
- package/esm2015/lib/click-outside.directive.js +0 -28
- package/esm2015/lib/navigation.model.js +0 -2
package/fesm2015/adb-shared.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import * as i5 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject, EventEmitter, Directive, Output, HostListener, Component, Input, NgModule } from '@angular/core';
|
|
4
|
+
import { Injectable, Inject, EventEmitter, Directive, Output, HostListener, Component, Input, NgModule, ViewChild } from '@angular/core';
|
|
5
|
+
import * as i3 from '@ngx-translate/core';
|
|
6
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
3
7
|
import { Subscription } from 'rxjs';
|
|
4
8
|
import * as i1 from '@angular/common/http';
|
|
5
9
|
import { HttpClientModule } from '@angular/common/http';
|
|
6
|
-
import * as i3 from '@ngx-translate/core';
|
|
7
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
-
import * as i5 from '@angular/common';
|
|
9
|
-
import { CommonModule } from '@angular/common';
|
|
10
10
|
import { RouterModule } from '@angular/router';
|
|
11
11
|
|
|
12
12
|
class EnvironmentService {
|
|
@@ -125,7 +125,7 @@ class ADBHeaderComponent {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
/** @nocollapse */ ADBHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderComponent, deps: [{ token: i1.HttpClient }, { token: EnvironmentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
-
/** @nocollapse */ ADBHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ADBHeaderComponent, selector: "adb-header2", inputs: { userName: "userName" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"text-dark\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" 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 </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials 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 gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?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>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\"\r\n [ngClass]=\"{'pointer list-group-item-action':link.children&&link.children.length>0}\"\r\n *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\">{{'ADB_HEADER.DEV_INFO'|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n", directives: [{ type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
128
|
+
/** @nocollapse */ ADBHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ADBHeaderComponent, selector: "adb-header2", inputs: { userName: "userName" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" 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 </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials 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 gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?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>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n", directives: [{ type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
129
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderComponent, decorators: [{
|
|
130
130
|
type: Component,
|
|
131
131
|
args: [{
|
|
@@ -142,6 +142,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
142
142
|
type: Input
|
|
143
143
|
}] } });
|
|
144
144
|
|
|
145
|
+
class DirectivesModule {
|
|
146
|
+
}
|
|
147
|
+
/** @nocollapse */ DirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
148
|
+
/** @nocollapse */ DirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] });
|
|
149
|
+
/** @nocollapse */ DirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, imports: [[]] });
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, decorators: [{
|
|
151
|
+
type: NgModule,
|
|
152
|
+
args: [{
|
|
153
|
+
imports: [],
|
|
154
|
+
declarations: [ClickOutsideDirective],
|
|
155
|
+
exports: [ClickOutsideDirective]
|
|
156
|
+
}]
|
|
157
|
+
}] });
|
|
158
|
+
|
|
145
159
|
class ADBHeaderModule {
|
|
146
160
|
static forRoot(environment) {
|
|
147
161
|
return {
|
|
@@ -157,30 +171,93 @@ class ADBHeaderModule {
|
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
/** @nocollapse */ ADBHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
160
|
-
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent
|
|
174
|
+
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent], imports: [CommonModule,
|
|
161
175
|
HttpClientModule,
|
|
162
176
|
RouterModule,
|
|
163
|
-
TranslateModule
|
|
177
|
+
TranslateModule,
|
|
178
|
+
DirectivesModule], exports: [ADBHeaderComponent] });
|
|
164
179
|
/** @nocollapse */ ADBHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, imports: [[
|
|
165
180
|
CommonModule,
|
|
166
181
|
HttpClientModule,
|
|
167
182
|
RouterModule,
|
|
168
|
-
TranslateModule
|
|
183
|
+
TranslateModule,
|
|
184
|
+
DirectivesModule
|
|
169
185
|
]] });
|
|
170
186
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, decorators: [{
|
|
171
187
|
type: NgModule,
|
|
172
188
|
args: [{
|
|
173
|
-
declarations: [ADBHeaderComponent
|
|
189
|
+
declarations: [ADBHeaderComponent],
|
|
174
190
|
imports: [
|
|
175
191
|
CommonModule,
|
|
176
192
|
HttpClientModule,
|
|
177
193
|
RouterModule,
|
|
178
|
-
TranslateModule
|
|
194
|
+
TranslateModule,
|
|
195
|
+
DirectivesModule
|
|
179
196
|
],
|
|
180
197
|
exports: [ADBHeaderComponent]
|
|
181
198
|
}]
|
|
182
199
|
}] });
|
|
183
200
|
|
|
201
|
+
class InfiniteScrollComponent {
|
|
202
|
+
constructor(host) {
|
|
203
|
+
this.host = host;
|
|
204
|
+
this.options = {};
|
|
205
|
+
this.scrolled = new EventEmitter();
|
|
206
|
+
}
|
|
207
|
+
get element() {
|
|
208
|
+
return this.host.nativeElement;
|
|
209
|
+
}
|
|
210
|
+
ngOnInit() {
|
|
211
|
+
const options = Object.assign({ root: this.isHostScrollable() ? this.host.nativeElement : null }, this.options);
|
|
212
|
+
this.observer = new IntersectionObserver(([entry]) => {
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
214
|
+
entry.isIntersecting && this.scrolled.emit();
|
|
215
|
+
}, options);
|
|
216
|
+
}
|
|
217
|
+
ngAfterViewInit() {
|
|
218
|
+
this.observer.observe(this.anchor.nativeElement);
|
|
219
|
+
}
|
|
220
|
+
isHostScrollable() {
|
|
221
|
+
const style = window.getComputedStyle(this.element);
|
|
222
|
+
return style.getPropertyValue('overflow') === 'auto' ||
|
|
223
|
+
style.getPropertyValue('overflow-y') === 'scroll';
|
|
224
|
+
}
|
|
225
|
+
ngOnDestroy() {
|
|
226
|
+
var _a;
|
|
227
|
+
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/** @nocollapse */ InfiniteScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InfiniteScrollComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
+
/** @nocollapse */ InfiniteScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: InfiniteScrollComponent, selector: "adb-infinite-scroll", inputs: { options: "options" }, outputs: { scrolled: "scrolled" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }], ngImport: i0, template: '<ng-content></ng-content><div #anchor></div>', isInline: true });
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InfiniteScrollComponent, decorators: [{
|
|
233
|
+
type: Component,
|
|
234
|
+
args: [{
|
|
235
|
+
selector: 'adb-infinite-scroll',
|
|
236
|
+
template: '<ng-content></ng-content><div #anchor></div>'
|
|
237
|
+
}]
|
|
238
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], scrolled: [{
|
|
241
|
+
type: Output
|
|
242
|
+
}], anchor: [{
|
|
243
|
+
type: ViewChild,
|
|
244
|
+
args: ['anchor']
|
|
245
|
+
}] } });
|
|
246
|
+
|
|
247
|
+
class PagersModule {
|
|
248
|
+
}
|
|
249
|
+
/** @nocollapse */ PagersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
250
|
+
/** @nocollapse */ PagersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, declarations: [InfiniteScrollComponent], exports: [InfiniteScrollComponent] });
|
|
251
|
+
/** @nocollapse */ PagersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, imports: [[]] });
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, decorators: [{
|
|
253
|
+
type: NgModule,
|
|
254
|
+
args: [{
|
|
255
|
+
imports: [],
|
|
256
|
+
declarations: [InfiniteScrollComponent],
|
|
257
|
+
exports: [InfiniteScrollComponent],
|
|
258
|
+
}]
|
|
259
|
+
}] });
|
|
260
|
+
|
|
184
261
|
/*
|
|
185
262
|
* Public API Surface of artdata-shared
|
|
186
263
|
*/
|
|
@@ -189,5 +266,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
189
266
|
* Generated bundle index. Do not edit.
|
|
190
267
|
*/
|
|
191
268
|
|
|
192
|
-
export { ADBHeaderComponent, ADBHeaderModule };
|
|
269
|
+
export { ADBHeaderComponent, ADBHeaderModule, ClickOutsideDirective, DirectivesModule, InfiniteScrollComponent, PagersModule };
|
|
193
270
|
//# sourceMappingURL=adb-shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-shared.js","sources":["../../../projects/artdata-shared/src/lib/environment.service.ts","../../../projects/artdata-shared/src/lib/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/adb-header.component.ts","../../../projects/artdata-shared/src/lib/adb-header.component.html","../../../projects/artdata-shared/src/lib/adb-header.module.ts","../../../projects/artdata-shared/src/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"text-dark\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" 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 </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials 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 gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?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>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\"\r\n [ngClass]=\"{'pointer list-group-item-action':link.children&&link.children.length>0}\"\r\n *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\">{{'ADB_HEADER.DEV_INFO'|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent, ClickOutsideDirective],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\nexport * from './lib/adb-header.component';\r\nexport * from './lib/adb-header.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adb-shared.js","sources":["../../../projects/artdata-shared/src/lib/components/adb-header/environment.service.ts","../../../projects/artdata-shared/src/lib/directives/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.html","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/pagers/infinite-scroll.component.ts","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: any) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted && splitted.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">Artfakta</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" 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 </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials 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 gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?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>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective],\r\n exports: [ClickOutsideDirective]\r\n})\r\nexport class DirectivesModule { }","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DirectivesModule } from '../../directives/directives.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n DirectivesModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ElementRef, ViewChild, Input, OnDestroy, AfterViewInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'adb-infinite-scroll',\r\n template: '<ng-content></ng-content><div #anchor></div>'\r\n})\r\nexport class InfiniteScrollComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() options = {};\r\n @Output() scrolled = new EventEmitter();\r\n @ViewChild('anchor') anchor: ElementRef<HTMLElement>;\r\n private observer: IntersectionObserver;\r\n constructor(private host: ElementRef) { }\r\n get element() {\r\n return this.host.nativeElement;\r\n }\r\n ngOnInit() {\r\n const options = {\r\n root: this.isHostScrollable() ? this.host.nativeElement : null,\r\n ...this.options\r\n };\r\n\r\n this.observer = new IntersectionObserver(([entry]) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n entry.isIntersecting && this.scrolled.emit();\r\n }, options);\r\n }\r\n ngAfterViewInit(): void {\r\n this.observer.observe(this.anchor.nativeElement);\r\n }\r\n private isHostScrollable() {\r\n const style = window.getComputedStyle(this.element);\r\n\r\n return style.getPropertyValue('overflow') === 'auto' ||\r\n style.getPropertyValue('overflow-y') === 'scroll';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.observer?.disconnect();\r\n }\r\n\r\n}\r\n","\r\nimport { NgModule } from \"@angular/core\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [InfiniteScrollComponent],\r\n exports: [InfiniteScrollComponent],\r\n})\r\nexport class PagersModule { }","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\n\r\nexport * from './lib/components/adb-header/adb-header.module';\r\nexport * from './lib/components/adb-header/adb-header.component';\r\n\r\nexport * from './lib/directives/directives.module';\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\nexport * from './lib/components/pagers/pagers.module';\r\nexport * from './lib/components/pagers/infinite-scroll.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "./adb-header.component";
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "@angular/common";
|
|
6
|
-
import * as i4 from "@angular/
|
|
7
|
-
import * as i5 from "@
|
|
8
|
-
import * as i6 from "
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/common/http";
|
|
6
|
+
import * as i4 from "@angular/router";
|
|
7
|
+
import * as i5 from "@ngx-translate/core";
|
|
8
|
+
import * as i6 from "../../directives/directives.module";
|
|
9
9
|
export declare class ADBHeaderModule {
|
|
10
10
|
static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule>;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ADBHeaderModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ADBHeaderModule, [typeof i1.ADBHeaderComponent, typeof i2.
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ADBHeaderModule, [typeof i1.ADBHeaderComponent], [typeof i2.CommonModule, typeof i3.HttpClientModule, typeof i4.RouterModule, typeof i5.TranslateModule, typeof i6.DirectivesModule], [typeof i1.ADBHeaderComponent]>;
|
|
13
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<ADBHeaderModule>;
|
|
14
14
|
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OnInit, EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class InfiniteScrollComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
4
|
+
private host;
|
|
5
|
+
options: {};
|
|
6
|
+
scrolled: EventEmitter<any>;
|
|
7
|
+
anchor: ElementRef<HTMLElement>;
|
|
8
|
+
private observer;
|
|
9
|
+
constructor(host: ElementRef);
|
|
10
|
+
get element(): any;
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
ngAfterViewInit(): void;
|
|
13
|
+
private isHostScrollable;
|
|
14
|
+
ngOnDestroy(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InfiniteScrollComponent, "adb-infinite-scroll", never, { "options": "options"; }, { "scrolled": "scrolled"; }, never, ["*"]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./infinite-scroll.component";
|
|
3
|
+
export declare class PagersModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PagersModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<PagersModule, [typeof i1.InfiniteScrollComponent], never, [typeof i1.InfiniteScrollComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<PagersModule>;
|
|
7
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./click-outside.directive";
|
|
3
|
+
export declare class DirectivesModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DirectivesModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DirectivesModule, [typeof i1.ClickOutsideDirective], never, [typeof i1.ClickOutsideDirective]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<DirectivesModule>;
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adb-shared",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"author": "ADB",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"peerDependencies": {
|
|
7
|
-
"@angular/common": "12
|
|
8
|
-
"@angular/core": "12
|
|
9
|
-
"@
|
|
10
|
-
"@ngx-translate/
|
|
7
|
+
"@angular/common": "12.x || 13.x",
|
|
8
|
+
"@angular/core": "12.x || 13.x",
|
|
9
|
+
"@angular/router": "12.x || 13.x",
|
|
10
|
+
"@ngx-translate/core": "12.x || 13.x",
|
|
11
|
+
"@ngx-translate/http-loader": "6.x || 7.x"
|
|
11
12
|
},
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export * from './lib/adb-header.
|
|
2
|
-
export * from './lib/adb-header.
|
|
1
|
+
export * from './lib/components/adb-header/adb-header.module';
|
|
2
|
+
export * from './lib/components/adb-header/adb-header.component';
|
|
3
|
+
export * from './lib/directives/directives.module';
|
|
4
|
+
export * from './lib/directives/click-outside.directive';
|
|
5
|
+
export * from './lib/components/pagers/pagers.module';
|
|
6
|
+
export * from './lib/components/pagers/infinite-scroll.component';
|