adb-shared 1.0.21 → 2.0.1
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/{esm2015/adb-shared.js → esm2020/adb-shared.mjs} +0 -0
- package/esm2020/lib/components/adb-header/adb-header.component.mjs +102 -0
- package/{esm2015/lib/components/adb-header/adb-header.module.js → esm2020/lib/components/adb-header/adb-header.module.mjs} +5 -5
- package/{esm2015/lib/components/adb-header/environment.service.js → esm2020/lib/components/adb-header/environment.service.mjs} +4 -4
- package/{esm2015/lib/components/adb-header/navigation.model.js → esm2020/lib/components/adb-header/navigation.model.mjs} +0 -0
- package/esm2020/lib/components/date-picker/adb-date-picker.component.mjs +137 -0
- package/esm2020/lib/components/date-picker/adb-date-picker.directive.mjs +117 -0
- package/esm2020/lib/components/date-picker/adb-date-picker.module.mjs +24 -0
- package/esm2020/lib/components/date-picker/adb-date-picker.service.mjs +28 -0
- package/{esm2015/lib/components/pagers/infinite-scroll.component.js → esm2020/lib/components/pagers/infinite-scroll.component.mjs} +4 -4
- package/{esm2015/lib/components/pagers/pager-base.directive.js → esm2020/lib/components/pagers/pager-base.directive.mjs} +4 -4
- package/esm2020/lib/components/pagers/pager.mjs +31 -0
- package/{esm2015/lib/components/pagers/pagers.module.js → esm2020/lib/components/pagers/pagers.module.mjs} +5 -5
- package/esm2020/lib/directives/click-outside.directive.mjs +28 -0
- package/{esm2015/lib/directives/directives.module.js → esm2020/lib/directives/directives.module.mjs} +5 -5
- package/{esm2015/lib/directives/focus.directive.js → esm2020/lib/directives/focus.directive.mjs} +4 -4
- package/esm2020/lib/pipes/date.pipe.mjs +22 -0
- package/{esm2015/lib/pipes/highlight.pipe.js → esm2020/lib/pipes/highlight.pipe.mjs} +4 -4
- package/{esm2015/lib/pipes/number-spacing.pipe.js → esm2020/lib/pipes/number-spacing.pipe.mjs} +4 -4
- package/esm2020/lib/pipes/pipes.module.mjs +19 -0
- package/esm2020/public-api.mjs +19 -0
- package/fesm2015/adb-shared.mjs +727 -0
- package/fesm2015/adb-shared.mjs.map +1 -0
- package/fesm2020/adb-shared.mjs +724 -0
- package/fesm2020/adb-shared.mjs.map +1 -0
- package/lib/components/date-picker/adb-date-picker.component.d.ts +54 -0
- package/lib/components/date-picker/adb-date-picker.directive.d.ts +33 -0
- package/lib/components/date-picker/adb-date-picker.module.d.ts +12 -0
- package/lib/components/date-picker/adb-date-picker.service.d.ts +20 -0
- package/lib/directives/click-outside.directive.d.ts +1 -1
- package/lib/pipes/date.pipe.d.ts +10 -0
- package/lib/pipes/pipes.module.d.ts +2 -1
- package/package.json +25 -11
- package/public-api.d.ts +4 -0
- package/bundles/adb-shared.umd.js +0 -831
- package/bundles/adb-shared.umd.js.map +0 -1
- package/esm2015/lib/components/adb-header/adb-header.component.js +0 -104
- package/esm2015/lib/components/pagers/pager.js +0 -34
- package/esm2015/lib/directives/click-outside.directive.js +0 -28
- package/esm2015/lib/pipes/pipes.module.js +0 -18
- package/esm2015/public-api.js +0 -15
- package/fesm2015/adb-shared.js +0 -432
- package/fesm2015/adb-shared.js.map +0 -1
package/fesm2015/adb-shared.js
DELETED
|
@@ -1,432 +0,0 @@
|
|
|
1
|
-
import * as i4 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, Inject, EventEmitter, Component, Output, Input, Directive, HostListener, NgModule, HostBinding, Pipe } from '@angular/core';
|
|
5
|
-
import * as i3 from '@ngx-translate/core';
|
|
6
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
7
|
-
import { Subscription } from 'rxjs';
|
|
8
|
-
import * as i1 from '@angular/common/http';
|
|
9
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
10
|
-
import * as i1$1 from '@angular/router';
|
|
11
|
-
import { RouterModule } from '@angular/router';
|
|
12
|
-
|
|
13
|
-
class EnvironmentService {
|
|
14
|
-
constructor(environment) {
|
|
15
|
-
this.environment = environment;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/** @nocollapse */ EnvironmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EnvironmentService, deps: [{ token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
-
/** @nocollapse */ EnvironmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EnvironmentService });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
21
|
-
type: Injectable
|
|
22
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
23
|
-
type: Inject,
|
|
24
|
-
args: ['env']
|
|
25
|
-
}] }]; } });
|
|
26
|
-
|
|
27
|
-
class ADBHeaderComponent {
|
|
28
|
-
constructor(httpClient, envService, trans) {
|
|
29
|
-
this.httpClient = httpClient;
|
|
30
|
-
this.envService = envService;
|
|
31
|
-
this.trans = trans;
|
|
32
|
-
this.subscription = new Subscription();
|
|
33
|
-
this.loginClicked = new EventEmitter();
|
|
34
|
-
this.logoutClicked = new EventEmitter();
|
|
35
|
-
this.dropMenuChange = new EventEmitter();
|
|
36
|
-
this.translationFinished = false;
|
|
37
|
-
this.showMenu = false;
|
|
38
|
-
this.showUserMenu = false;
|
|
39
|
-
}
|
|
40
|
-
set userName(fullName) {
|
|
41
|
-
this.fullName = fullName;
|
|
42
|
-
const splitted = fullName.split(' ');
|
|
43
|
-
if ((splitted === null || splitted === void 0 ? void 0 : splitted.length) > 1) {
|
|
44
|
-
const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);
|
|
45
|
-
this.initials = initials.toUpperCase();
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
;
|
|
52
|
-
ngOnInit() {
|
|
53
|
-
this.url = window.location.href;
|
|
54
|
-
const baseUrl = this.envService.environment.resourceUrl;
|
|
55
|
-
this.subscription.add(this.httpClient.get(baseUrl + '/assets/links.json').subscribe(result => {
|
|
56
|
-
this.navigation = result;
|
|
57
|
-
}));
|
|
58
|
-
this.initTranslations(baseUrl);
|
|
59
|
-
}
|
|
60
|
-
initTranslations(baseUrl) {
|
|
61
|
-
if (this.trans.store.translations[this.trans.currentLang]) {
|
|
62
|
-
this.loadTranslation(baseUrl, this.trans.currentLang);
|
|
63
|
-
}
|
|
64
|
-
this.subscription.add(this.trans.onLangChange.subscribe((event) => {
|
|
65
|
-
this.translationFinished = false;
|
|
66
|
-
this.loadTranslation(baseUrl, event.lang);
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
loadTranslation(baseUrl, lang) {
|
|
70
|
-
//TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)
|
|
71
|
-
this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {
|
|
72
|
-
this.trans.setTranslation(lang, translations, true);
|
|
73
|
-
this.translationFinished = true;
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
showMenuDropdown(show) {
|
|
77
|
-
if (this.showMenu !== show) {
|
|
78
|
-
this.showMenu = show;
|
|
79
|
-
this.dropMenuChange.emit(show);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
setLanguage(lang) {
|
|
83
|
-
this.trans.use(lang);
|
|
84
|
-
this.showMenu = false;
|
|
85
|
-
//TODO: set localstorage/cookies or probaly event to main app
|
|
86
|
-
}
|
|
87
|
-
onExpandLink(event, transId) {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
event.stopPropagation();
|
|
90
|
-
if (this.expandedLink === transId) {
|
|
91
|
-
this.expandedLink = null;
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
this.expandedLink = transId;
|
|
95
|
-
}
|
|
96
|
-
login() {
|
|
97
|
-
this.loginClicked.emit();
|
|
98
|
-
}
|
|
99
|
-
logout() {
|
|
100
|
-
this.logoutClicked.emit();
|
|
101
|
-
}
|
|
102
|
-
ngOnDestroy() {
|
|
103
|
-
this.subscription.unsubscribe();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/** @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 });
|
|
107
|
-
/** @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\">{{'ADB_HEADER.TITLE'|translate}}</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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderComponent, decorators: [{
|
|
109
|
-
type: Component,
|
|
110
|
-
args: [{
|
|
111
|
-
selector: 'adb-header2',
|
|
112
|
-
templateUrl: './adb-header.component.html'
|
|
113
|
-
}]
|
|
114
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EnvironmentService }, { type: i3.TranslateService }]; }, propDecorators: { loginClicked: [{
|
|
115
|
-
type: Output
|
|
116
|
-
}], logoutClicked: [{
|
|
117
|
-
type: Output
|
|
118
|
-
}], dropMenuChange: [{
|
|
119
|
-
type: Output
|
|
120
|
-
}], userName: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}] } });
|
|
123
|
-
|
|
124
|
-
class ClickOutsideDirective {
|
|
125
|
-
constructor(elementRef) {
|
|
126
|
-
this.elementRef = elementRef;
|
|
127
|
-
this.adbClickOutside = new EventEmitter();
|
|
128
|
-
}
|
|
129
|
-
onClick(target) {
|
|
130
|
-
const clickedInside = this.elementRef.nativeElement.contains(target);
|
|
131
|
-
if (!clickedInside) {
|
|
132
|
-
this.adbClickOutside.emit();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/** @nocollapse */ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
137
|
-
/** @nocollapse */ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: ClickOutsideDirective, selector: "[adbClickOutside]", outputs: { adbClickOutside: "adbClickOutside" }, host: { listeners: { "document:click": "onClick($event.target)" } }, ngImport: i0 });
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
139
|
-
type: Directive,
|
|
140
|
-
args: [{
|
|
141
|
-
selector: '[adbClickOutside]',
|
|
142
|
-
}]
|
|
143
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { adbClickOutside: [{
|
|
144
|
-
type: Output
|
|
145
|
-
}], onClick: [{
|
|
146
|
-
type: HostListener,
|
|
147
|
-
args: ['document:click', ['$event.target']]
|
|
148
|
-
}] } });
|
|
149
|
-
|
|
150
|
-
/* eslint-disable @angular-eslint/directive-selector */
|
|
151
|
-
class FocusDirective {
|
|
152
|
-
constructor(element) {
|
|
153
|
-
this.element = element;
|
|
154
|
-
this.focused = false;
|
|
155
|
-
}
|
|
156
|
-
ngAfterViewInit() {
|
|
157
|
-
// ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
|
|
158
|
-
if (this.focused) {
|
|
159
|
-
setTimeout(() => this.element.nativeElement.focus(), 0);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/** @nocollapse */ FocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
164
|
-
/** @nocollapse */ FocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: FocusDirective, selector: "[adbFocus]", inputs: { focused: ["adbFocus", "focused"] }, ngImport: i0 });
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FocusDirective, decorators: [{
|
|
166
|
-
type: Directive,
|
|
167
|
-
args: [{
|
|
168
|
-
selector: '[adbFocus]',
|
|
169
|
-
}]
|
|
170
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { focused: [{
|
|
171
|
-
type: Input,
|
|
172
|
-
args: ['adbFocus']
|
|
173
|
-
}] } });
|
|
174
|
-
|
|
175
|
-
class DirectivesModule {
|
|
176
|
-
}
|
|
177
|
-
/** @nocollapse */ DirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
178
|
-
/** @nocollapse */ DirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, declarations: [ClickOutsideDirective, FocusDirective], exports: [ClickOutsideDirective, FocusDirective] });
|
|
179
|
-
/** @nocollapse */ DirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, imports: [[]] });
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DirectivesModule, decorators: [{
|
|
181
|
-
type: NgModule,
|
|
182
|
-
args: [{
|
|
183
|
-
imports: [],
|
|
184
|
-
declarations: [ClickOutsideDirective, FocusDirective],
|
|
185
|
-
exports: [ClickOutsideDirective, FocusDirective]
|
|
186
|
-
}]
|
|
187
|
-
}] });
|
|
188
|
-
|
|
189
|
-
class ADBHeaderModule {
|
|
190
|
-
static forRoot(environment) {
|
|
191
|
-
return {
|
|
192
|
-
ngModule: ADBHeaderModule,
|
|
193
|
-
providers: [
|
|
194
|
-
EnvironmentService,
|
|
195
|
-
{
|
|
196
|
-
provide: 'env',
|
|
197
|
-
useValue: environment
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
/** @nocollapse */ ADBHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
204
|
-
/** @nocollapse */ ADBHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, declarations: [ADBHeaderComponent], imports: [CommonModule,
|
|
205
|
-
HttpClientModule,
|
|
206
|
-
RouterModule,
|
|
207
|
-
TranslateModule,
|
|
208
|
-
DirectivesModule], exports: [ADBHeaderComponent] });
|
|
209
|
-
/** @nocollapse */ ADBHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, imports: [[
|
|
210
|
-
CommonModule,
|
|
211
|
-
HttpClientModule,
|
|
212
|
-
RouterModule,
|
|
213
|
-
TranslateModule,
|
|
214
|
-
DirectivesModule
|
|
215
|
-
]] });
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ADBHeaderModule, decorators: [{
|
|
217
|
-
type: NgModule,
|
|
218
|
-
args: [{
|
|
219
|
-
declarations: [ADBHeaderComponent],
|
|
220
|
-
imports: [
|
|
221
|
-
CommonModule,
|
|
222
|
-
HttpClientModule,
|
|
223
|
-
RouterModule,
|
|
224
|
-
TranslateModule,
|
|
225
|
-
DirectivesModule
|
|
226
|
-
],
|
|
227
|
-
exports: [ADBHeaderComponent]
|
|
228
|
-
}]
|
|
229
|
-
}] });
|
|
230
|
-
|
|
231
|
-
class InfiniteScrollComponent {
|
|
232
|
-
constructor(_element) {
|
|
233
|
-
this._element = _element;
|
|
234
|
-
this.onVisible = new EventEmitter();
|
|
235
|
-
this.height = '1px';
|
|
236
|
-
this.checkForIntersection = (entries) => {
|
|
237
|
-
entries.forEach((entry) => {
|
|
238
|
-
const isIntersecting = entry.isIntersecting &&
|
|
239
|
-
entry.target === this._element.nativeElement;
|
|
240
|
-
if (isIntersecting) {
|
|
241
|
-
this.onVisible.emit();
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
ngAfterViewInit() {
|
|
247
|
-
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
248
|
-
this.checkForIntersection(entries);
|
|
249
|
-
}, {});
|
|
250
|
-
this._intersectionObserver.observe(this._element.nativeElement);
|
|
251
|
-
}
|
|
252
|
-
ngOnDestroy() {
|
|
253
|
-
if (this._intersectionObserver) {
|
|
254
|
-
this._intersectionObserver.disconnect();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
/** @nocollapse */ InfiniteScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InfiniteScrollComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
259
|
-
/** @nocollapse */ InfiniteScrollComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: InfiniteScrollComponent, selector: "[onVisible]", outputs: { onVisible: "onVisible" }, host: { properties: { "style.height": "this.height" } }, ngImport: i0 });
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InfiniteScrollComponent, decorators: [{
|
|
261
|
-
type: Directive,
|
|
262
|
-
args: [{ selector: "[onVisible]" }]
|
|
263
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onVisible: [{
|
|
264
|
-
type: Output
|
|
265
|
-
}], height: [{
|
|
266
|
-
type: HostBinding,
|
|
267
|
-
args: ['style.height']
|
|
268
|
-
}] } });
|
|
269
|
-
|
|
270
|
-
class PagerBaseDirective {
|
|
271
|
-
constructor() {
|
|
272
|
-
this.limit = PagerBaseDirective.DEFAULT_LIMIT;
|
|
273
|
-
this.currentPage = 1;
|
|
274
|
-
}
|
|
275
|
-
calculatePages() {
|
|
276
|
-
this.amountOfPages = Math.ceil(this.totalCount / this.limit);
|
|
277
|
-
if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {
|
|
278
|
-
this.pages = [
|
|
279
|
-
this.currentPage - 2,
|
|
280
|
-
this.currentPage - 1, this.currentPage
|
|
281
|
-
];
|
|
282
|
-
const above = this.amountOfPages - this.currentPage;
|
|
283
|
-
if (above >= 1) {
|
|
284
|
-
this.pages.push(this.currentPage + 1);
|
|
285
|
-
}
|
|
286
|
-
if (above >= 2) {
|
|
287
|
-
this.pages.push(this.currentPage + 2);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else if (this.totalCount) {
|
|
291
|
-
const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;
|
|
292
|
-
this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
PagerBaseDirective.DEFAULT_LIMIT = 10;
|
|
297
|
-
PagerBaseDirective.VISIBLE_PAGES = 5;
|
|
298
|
-
PagerBaseDirective.SKIP_RESOURCE = 'offset';
|
|
299
|
-
/** @nocollapse */ PagerBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagerBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
300
|
-
/** @nocollapse */ PagerBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: PagerBaseDirective, inputs: { totalCount: "totalCount", limit: "limit" }, ngImport: i0 });
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagerBaseDirective, decorators: [{
|
|
302
|
-
type: Directive
|
|
303
|
-
}], propDecorators: { totalCount: [{
|
|
304
|
-
type: Input
|
|
305
|
-
}], limit: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}] } });
|
|
308
|
-
|
|
309
|
-
class PagerComponent extends PagerBaseDirective {
|
|
310
|
-
constructor(activatedRoute) {
|
|
311
|
-
super();
|
|
312
|
-
this.activatedRoute = activatedRoute;
|
|
313
|
-
this.subscription = new Subscription();
|
|
314
|
-
}
|
|
315
|
-
ngOnInit() {
|
|
316
|
-
this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {
|
|
317
|
-
if (params.offset) {
|
|
318
|
-
this.currentPage = (+params.offset / this.limit) + 1;
|
|
319
|
-
}
|
|
320
|
-
this.calculatePages();
|
|
321
|
-
}));
|
|
322
|
-
}
|
|
323
|
-
ngOnDestroy() {
|
|
324
|
-
this.subscription.unsubscribe();
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
/** @nocollapse */ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagerComponent, deps: [{ token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
/** @nocollapse */ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: PagerComponent, selector: "adb-pager-nav", usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagerComponent, decorators: [{
|
|
330
|
-
type: Component,
|
|
331
|
-
args: [{
|
|
332
|
-
selector: 'adb-pager-nav',
|
|
333
|
-
templateUrl: 'pager.html'
|
|
334
|
-
}]
|
|
335
|
-
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }]; } });
|
|
336
|
-
|
|
337
|
-
class PagersModule {
|
|
338
|
-
}
|
|
339
|
-
/** @nocollapse */ PagersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
340
|
-
/** @nocollapse */ PagersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, declarations: [InfiniteScrollComponent, PagerComponent], imports: [CommonModule,
|
|
341
|
-
RouterModule], exports: [InfiniteScrollComponent, PagerComponent] });
|
|
342
|
-
/** @nocollapse */ PagersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, imports: [[
|
|
343
|
-
CommonModule,
|
|
344
|
-
RouterModule
|
|
345
|
-
]] });
|
|
346
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PagersModule, decorators: [{
|
|
347
|
-
type: NgModule,
|
|
348
|
-
args: [{
|
|
349
|
-
imports: [
|
|
350
|
-
CommonModule,
|
|
351
|
-
RouterModule
|
|
352
|
-
],
|
|
353
|
-
declarations: [InfiniteScrollComponent, PagerComponent],
|
|
354
|
-
exports: [InfiniteScrollComponent, PagerComponent]
|
|
355
|
-
}]
|
|
356
|
-
}] });
|
|
357
|
-
|
|
358
|
-
class HighlightPipe {
|
|
359
|
-
constructor() {
|
|
360
|
-
this.format = /[`!@#$%*\\()_+\-=\[\]{};':"\\|,<>\/?~]/g;
|
|
361
|
-
}
|
|
362
|
-
transform(value, searchs) {
|
|
363
|
-
if (!value) {
|
|
364
|
-
return value;
|
|
365
|
-
}
|
|
366
|
-
if (searchs) {
|
|
367
|
-
if (!Array.isArray(searchs)) {
|
|
368
|
-
searchs = searchs.split(' ').filter((s) => s);
|
|
369
|
-
}
|
|
370
|
-
for (let search of searchs) {
|
|
371
|
-
if (this.format.test(search)) {
|
|
372
|
-
search = search.replace(this.format, '');
|
|
373
|
-
}
|
|
374
|
-
const reText = new RegExp(search, 'gi');
|
|
375
|
-
value = value.replace(reText, '<mark>$&</mark>');
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
return value;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
/** @nocollapse */ HighlightPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: HighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
382
|
-
/** @nocollapse */ HighlightPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: HighlightPipe, name: "adbHighlight" });
|
|
383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: HighlightPipe, decorators: [{
|
|
384
|
-
type: Pipe,
|
|
385
|
-
args: [{
|
|
386
|
-
name: 'adbHighlight'
|
|
387
|
-
}]
|
|
388
|
-
}] });
|
|
389
|
-
|
|
390
|
-
class NumberSpacingPipe {
|
|
391
|
-
transform(value) {
|
|
392
|
-
// If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string
|
|
393
|
-
if (!value && value !== 0) {
|
|
394
|
-
return '';
|
|
395
|
-
}
|
|
396
|
-
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
/** @nocollapse */ NumberSpacingPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NumberSpacingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
400
|
-
/** @nocollapse */ NumberSpacingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NumberSpacingPipe, name: "adbSpacing", pure: false });
|
|
401
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NumberSpacingPipe, decorators: [{
|
|
402
|
-
type: Pipe,
|
|
403
|
-
args: [{
|
|
404
|
-
name: 'adbSpacing',
|
|
405
|
-
pure: false
|
|
406
|
-
}]
|
|
407
|
-
}] });
|
|
408
|
-
|
|
409
|
-
class PipesModule {
|
|
410
|
-
}
|
|
411
|
-
/** @nocollapse */ PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
412
|
-
/** @nocollapse */ PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PipesModule, declarations: [HighlightPipe, NumberSpacingPipe], exports: [HighlightPipe, NumberSpacingPipe] });
|
|
413
|
-
/** @nocollapse */ PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PipesModule, imports: [[]] });
|
|
414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PipesModule, decorators: [{
|
|
415
|
-
type: NgModule,
|
|
416
|
-
args: [{
|
|
417
|
-
imports: [],
|
|
418
|
-
declarations: [HighlightPipe, NumberSpacingPipe],
|
|
419
|
-
exports: [HighlightPipe, NumberSpacingPipe]
|
|
420
|
-
}]
|
|
421
|
-
}] });
|
|
422
|
-
|
|
423
|
-
/*
|
|
424
|
-
* Public API Surface of artdata-shared
|
|
425
|
-
*/
|
|
426
|
-
|
|
427
|
-
/**
|
|
428
|
-
* Generated bundle index. Do not edit.
|
|
429
|
-
*/
|
|
430
|
-
|
|
431
|
-
export { ADBHeaderComponent, ADBHeaderModule, ClickOutsideDirective, DirectivesModule, FocusDirective, HighlightPipe, InfiniteScrollComponent, NumberSpacingPipe, PagerComponent, PagersModule, PipesModule };
|
|
432
|
-
//# sourceMappingURL=adb-shared.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adb-shared.js","sources":["../../../projects/artdata-shared/src/lib/components/adb-header/environment.service.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/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../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/pager-base.directive.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/pipes/highlight.pipe.ts","../../../projects/artdata-shared/src/lib/pipes/number-spacing.pipe.ts","../../../projects/artdata-shared/src/lib/pipes/pipes.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 { 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?.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n } else {\r\n this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;\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 this.showMenu = false;\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\">{{'ADB_HEADER.TITLE'|translate}}</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 { Directive, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[adbClickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() adbClickOutside = 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.adbClickOutside.emit();\r\n }\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive, OnInit, ElementRef, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[adbFocus]',\r\n})\r\nexport class FocusDirective implements AfterViewInit {\r\n\r\n @Input('adbFocus')\r\n focused = false;\r\n\r\n constructor(public element: ElementRef<HTMLElement>) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.\r\n if (this.focused) {\r\n setTimeout(() => this.element.nativeElement.focus(), 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective],\r\n exports: [ClickOutsideDirective, FocusDirective]\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 { AfterViewInit, Directive, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[onVisible]\" })\r\nexport class InfiniteScrollComponent implements AfterViewInit, OnDestroy {\r\n @Output() public onVisible: EventEmitter<any> = new EventEmitter();\r\n @HostBinding('style.height') height = '1px';\r\n private _intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(private _element: ElementRef) { }\r\n\r\n public ngAfterViewInit() {\r\n this._intersectionObserver = new IntersectionObserver(entries => {\r\n this.checkForIntersection(entries);\r\n }, {});\r\n this._intersectionObserver.observe(<Element>this._element.nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n }\r\n\r\n private checkForIntersection = (\r\n entries: Array<IntersectionObserverEntry>\r\n ) => {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n const isIntersecting =\r\n (<any>entry).isIntersecting &&\r\n entry.target === this._element.nativeElement;\r\n\r\n if (isIntersecting) {\r\n this.onVisible.emit();\r\n }\r\n });\r\n };\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class PagerBaseDirective {\r\n private static DEFAULT_LIMIT = 10;\r\n private static VISIBLE_PAGES = 5;\r\n protected static SKIP_RESOURCE = 'offset';\r\n\r\n @Input() totalCount: number;\r\n pages: Array<number>;\r\n @Input() limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n this.amountOfPages = Math.ceil(this.totalCount / this.limit);\r\n if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {\r\n this.pages = [\r\n this.currentPage - 2,\r\n this.currentPage - 1, this.currentPage];\r\n const above = this.amountOfPages - this.currentPage;\r\n if (above >= 1) {\r\n this.pages.push(this.currentPage + 1);\r\n }\r\n if (above >= 2) {\r\n this.pages.push(this.currentPage + 2);\r\n }\r\n } else if (this.totalCount) {\r\n const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;\r\n this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager-nav',\r\n templateUrl: 'pager.html'\r\n})\r\nexport class PagerComponent extends PagerBaseDirective implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {\r\n if (params.offset) {\r\n this.currentPage = (+params.offset / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\nimport { PagerComponent } from \"./pager\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent]\r\n})\r\nexport class PagersModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n format = /[`!@#$%*\\\\()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?~]/g;\r\n transform(value: any, searchs: any): any {\r\n if (!value) {\r\n return value;\r\n }\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter((s: any) => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.format.test(search)) {\r\n search = search.replace(this.format, '');\r\n }\r\n const reText = new RegExp(search, 'gi');\r\n value = value.replace(reText, '<mark>$&</mark>');\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'adbSpacing',\r\n pure: false\r\n})\r\nexport class NumberSpacingPipe implements PipeTransform {\r\n transform(value) {\r\n // If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string\r\n if (!value && value !== 0) {\r\n return '';\r\n }\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { HighlightPipe } from \"./highlight.pipe\";\r\nimport { NumberSpacingPipe } from \"./number-spacing.pipe\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [HighlightPipe, NumberSpacingPipe],\r\n exports: [HighlightPipe, NumberSpacingPipe]\r\n})\r\nexport class PipesModule { }","/*\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\nexport * from './lib/directives/focus.directive';\r\n\r\nexport * from './lib/components/pagers/pagers.module';\r\nexport * from './lib/components/pagers/infinite-scroll.component';\r\nexport * from './lib/components/pagers/pager';\r\n\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/pipes/highlight.pipe';\r\nexport * from './lib/pipes/number-spacing.pipe';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|