adb-shared 5.0.39 → 5.0.40
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/esm2022/lib/components/adb-confirm-modal/adb-modal.service.mjs +1 -1
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.directive.mjs +12 -2
- package/fesm2022/adb-shared.mjs +11 -1
- package/fesm2022/adb-shared.mjs.map +1 -1
- package/lib/components/adb-dropdown/adb-dropdown.directive.d.ts +1 -0
- package/package.json +1 -1
|
@@ -43,4 +43,4 @@ export class AdbModalService {
|
|
|
43
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdbModalService, decorators: [{
|
|
44
44
|
type: Injectable
|
|
45
45
|
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLWNvbmZpcm0tbW9kYWwvYWRiLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2RCxVQUFVLEVBQXlDLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBZSxNQUFNLHFCQUFxQixDQUFDOztBQUduRSxNQUFNLE9BQU8sZUFBZTtJQVF4QixZQUNZLHdCQUFrRCxFQUMxRCxlQUFpQyxFQUN6QixNQUFzQixFQUN0QixRQUFrQjtRQUhsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBRWxELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFYdEIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzlDLFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBV3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFnQjtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFrQjtRQUMxQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEgsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUN6QyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDdEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQztRQUMxQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUMzRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUMsQ0FBQztrSUE3Q1EsZUFBZTtzSUFBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkNvbmZpcm1Nb2RhbCwgRGlhbG9nTW9kZWwgfSBmcm9tIFwiLi9hZGItY29uZmlybS1tb2RhbFwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRiTW9kYWxTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgY2xvc2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIGNsb3NlJCA9IHRoaXMuY2xvc2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcbiAgICBkb21FbGVtOiBIVE1MRWxlbWVudDtcclxuICAgIGJhY2tkcm9wOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlKGNvbmZpcm06IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KGNvbmZpcm0pO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5kb21FbGVtKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuYmFja2Ryb3ApO1xyXG4gICAgICAgIHZhciBtYWluID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudCgnbWFpbicsdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUobWFpbiwgJ2luZXJ0Jyk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZSQgPSB0aGlzLmNsb3NlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93Q29uZmlybShtb2RlbDogRGlhbG9nTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB2YXIgbWFpbiA9IHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoJ21haW4nLHRydWUpO1xyXG4gICAgICAgIG1haW4uc2V0QXR0cmlidXRlKCdpbmVydCcsJycpO1xyXG4gICAgICAgIHRoaXMuYmFja2Ryb3AgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHRoaXMuYmFja2Ryb3AuY2xhc3NMaXN0LmFkZCgnbW9kYWwtYmFja2Ryb3AnLCAnZmFkZScsICdzaG93Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLmJhY2tkcm9wKTtcclxuXHJcbiAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEFkYkNvbmZpcm1Nb2RhbCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgIG1vZGVsLmhlYWRlciA9IG1vZGVsLmhlYWRlciA/PyAnTk9UX1NFVCc7XHJcbiAgICAgICAgbW9kZWwudGV4dCA9IG1vZGVsLnRleHQgPz8gJ05PVF9TRVQnO1xyXG4gICAgICAgIG1vZGVsLmNvbmZpcm0gPSBtb2RlbC5jb25maXJtID8/ICdPSyc7XHJcbiAgICAgICAgbW9kZWwuZGVjbGluZSA9IG1vZGVsLmRlY2xpbmUgPz8gJ0NBTkNFTCc7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICB0aGlzLmRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmRvbUVsZW0pO1xyXG5cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -11,6 +11,7 @@ export class AdbDropdownDirective {
|
|
|
11
11
|
this.haspPopup = true;
|
|
12
12
|
this.expanded = false;
|
|
13
13
|
this.id = this.getId();
|
|
14
|
+
this.dropId = this.getId();
|
|
14
15
|
}
|
|
15
16
|
onClick() {
|
|
16
17
|
this.adbDropdownService.currentMenuId = this.id;
|
|
@@ -24,12 +25,15 @@ export class AdbDropdownDirective {
|
|
|
24
25
|
style = style + 'inset: 0px 0px auto auto;';
|
|
25
26
|
}
|
|
26
27
|
menu.setAttribute('style', style);
|
|
28
|
+
menu.setAttribute('id', this.dropId);
|
|
27
29
|
if (menu.classList.contains('show')) {
|
|
28
30
|
menu.classList.remove('show');
|
|
31
|
+
this.expanded = false;
|
|
29
32
|
}
|
|
30
33
|
else {
|
|
31
34
|
this.adbDropdown.emit();
|
|
32
35
|
menu.classList.add('show');
|
|
36
|
+
this.expanded = true;
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
}
|
|
@@ -40,23 +44,26 @@ export class AdbDropdownDirective {
|
|
|
40
44
|
if (!clickedInside) {
|
|
41
45
|
const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
|
|
42
46
|
parent?.classList.remove('show');
|
|
47
|
+
this.expanded = false;
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
else {
|
|
46
51
|
const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
|
|
47
52
|
parent?.classList.remove('show');
|
|
53
|
+
this.expanded = false;
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
close() {
|
|
51
57
|
const node = this.elementRef.nativeElement.parentNode;
|
|
52
58
|
const menu = node.querySelector('.dropdown-menu');
|
|
53
59
|
menu.classList.remove('show');
|
|
60
|
+
this.expanded = false;
|
|
54
61
|
}
|
|
55
62
|
getId() {
|
|
56
63
|
return '' + Math.floor(Math.random() * Date.now());
|
|
57
64
|
}
|
|
58
65
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdbDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i1.AdbDropdownService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AdbDropdownDirective, selector: "[adbDropdown]", inputs: { insideClick: "insideClick" }, outputs: { adbDropdown: "adbDropdown" }, host: { listeners: { "click": "onClick()", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "id": "this.id", "attr.data-toggle": "this.dataToggle", "attr.aria-haspopup": "this.haspPopup", "attr.aria-expanded": "this.expanded" } }, exportAs: ["adbDropdown"], ngImport: i0 }); }
|
|
66
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AdbDropdownDirective, selector: "[adbDropdown]", inputs: { insideClick: "insideClick" }, outputs: { adbDropdown: "adbDropdown" }, host: { listeners: { "click": "onClick()", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "id": "this.id", "attr.data-toggle": "this.dataToggle", "attr.aria-haspopup": "this.haspPopup", "attr.aria-expanded": "this.expanded", "attr.aria-controls": "this.dropId" } }, exportAs: ["adbDropdown"], ngImport: i0 }); }
|
|
60
67
|
}
|
|
61
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdbDropdownDirective, decorators: [{
|
|
62
69
|
type: Directive,
|
|
@@ -80,6 +87,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
80
87
|
}], expanded: [{
|
|
81
88
|
type: HostBinding,
|
|
82
89
|
args: ['attr.aria-expanded']
|
|
90
|
+
}], dropId: [{
|
|
91
|
+
type: HostBinding,
|
|
92
|
+
args: ['attr.aria-controls']
|
|
83
93
|
}], onClick: [{
|
|
84
94
|
type: HostListener,
|
|
85
95
|
args: ['click']
|
|
@@ -87,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
87
97
|
type: HostListener,
|
|
88
98
|
args: ['document:click', ['$event.target']]
|
|
89
99
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItZHJvcGRvd24vYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU85RyxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLFlBQ1ksVUFBc0IsRUFDdEIsa0JBQXNDO1FBRHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUt4QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNN0IsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUd4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFqQmIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQXFCRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLLEdBQUcsOEJBQThCLFlBQVksRUFBRSxZQUFZLEdBQUcsQ0FBQyxX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YUFBYTtpQkFDMUI7a0lBVWEsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUdOLEVBQUU7c0JBREQsV0FBVzt1QkFBQyxJQUFJO2dCQUlqQixVQUFVO3NCQURULFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixTQUFTO3NCQURSLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUlqQyxRQUFRO3NCQURQLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUlqQyxNQUFNO3NCQURMLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUlqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkEwQnJCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWRiRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRyb3Bkb3duLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbYWRiRHJvcGRvd25dJyxcclxuICAgIGV4cG9ydEFzOiAnYWRiRHJvcGRvd24nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJEcm9wZG93bkRpcmVjdGl2ZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgYWRiRHJvcGRvd25TZXJ2aWNlOiBBZGJEcm9wZG93blNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmlkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgICAgIHRoaXMuZHJvcElkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBhZGJEcm9wZG93biA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBJbnB1dCgpIGluc2lkZUNsaWNrID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpXHJcbiAgICBpZDogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRvZ2dsZScpXHJcbiAgICBkYXRhVG9nZ2xlID0gXCJkcm9wZG93blwiO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJylcclxuICAgIGhhc3BQb3B1cCA9IHRydWU7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxyXG4gICAgZXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpXHJcbiAgICBkcm9wSWQ6c3RyaW5nO1xyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnVJZCA9IHRoaXMuaWQ7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgY29uc3QgdG9nZ2xlQnV0dG9uID0gbm9kZS5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJyk7XHJcbiAgICAgICAgbGV0IHN0eWxlID0gYHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsICR7dG9nZ2xlQnV0dG9uPy5jbGllbnRIZWlnaHQgKyAxfXB4LCAwcHgpO2A7XHJcbiAgICAgICAgY29uc3QgbWVudSA9IG5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICBpZiAobWVudSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkYkRyb3Bkb3duU2VydmljZS5jdXJyZW50TWVudSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBpZiAobWVudS5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdkcm9wZG93bi1tZW51LWVuZCcpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZSA9IHN0eWxlICsgJ2luc2V0OiAwcHggMHB4IGF1dG8gYXV0bzsnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1lbnUuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlKTtcclxuICAgICAgICAgICAgbWVudS5zZXRBdHRyaWJ1dGUoJ2lkJywgdGhpcy5kcm9wSWQpO1xyXG4gICAgICAgICAgICBpZiAobWVudS5jbGFzc0xpc3QuY29udGFpbnMoJ3Nob3cnKSkge1xyXG4gICAgICAgICAgICAgICAgbWVudS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkYkRyb3Bkb3duLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIG1lbnUuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICAgIG9uQ2hlY2tPdXRTaWRlQ2xpY2sodGFyZ2V0OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnVJZCA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmluc2lkZUNsaWNrP3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU6dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBwYXJlbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICAgICAgcGFyZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgY29uc3QgbWVudSA9IG5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICBtZW51LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpXHJcbiAgICB9XHJcbn0iXX0=
|
package/fesm2022/adb-shared.mjs
CHANGED
|
@@ -290,6 +290,7 @@ class AdbDropdownDirective {
|
|
|
290
290
|
this.haspPopup = true;
|
|
291
291
|
this.expanded = false;
|
|
292
292
|
this.id = this.getId();
|
|
293
|
+
this.dropId = this.getId();
|
|
293
294
|
}
|
|
294
295
|
onClick() {
|
|
295
296
|
this.adbDropdownService.currentMenuId = this.id;
|
|
@@ -303,12 +304,15 @@ class AdbDropdownDirective {
|
|
|
303
304
|
style = style + 'inset: 0px 0px auto auto;';
|
|
304
305
|
}
|
|
305
306
|
menu.setAttribute('style', style);
|
|
307
|
+
menu.setAttribute('id', this.dropId);
|
|
306
308
|
if (menu.classList.contains('show')) {
|
|
307
309
|
menu.classList.remove('show');
|
|
310
|
+
this.expanded = false;
|
|
308
311
|
}
|
|
309
312
|
else {
|
|
310
313
|
this.adbDropdown.emit();
|
|
311
314
|
menu.classList.add('show');
|
|
315
|
+
this.expanded = true;
|
|
312
316
|
}
|
|
313
317
|
}
|
|
314
318
|
}
|
|
@@ -319,23 +323,26 @@ class AdbDropdownDirective {
|
|
|
319
323
|
if (!clickedInside) {
|
|
320
324
|
const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
|
|
321
325
|
parent?.classList.remove('show');
|
|
326
|
+
this.expanded = false;
|
|
322
327
|
}
|
|
323
328
|
}
|
|
324
329
|
else {
|
|
325
330
|
const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
|
|
326
331
|
parent?.classList.remove('show');
|
|
332
|
+
this.expanded = false;
|
|
327
333
|
}
|
|
328
334
|
}
|
|
329
335
|
close() {
|
|
330
336
|
const node = this.elementRef.nativeElement.parentNode;
|
|
331
337
|
const menu = node.querySelector('.dropdown-menu');
|
|
332
338
|
menu.classList.remove('show');
|
|
339
|
+
this.expanded = false;
|
|
333
340
|
}
|
|
334
341
|
getId() {
|
|
335
342
|
return '' + Math.floor(Math.random() * Date.now());
|
|
336
343
|
}
|
|
337
344
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdbDropdownDirective, deps: [{ token: i0.ElementRef }, { token: AdbDropdownService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
338
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AdbDropdownDirective, selector: "[adbDropdown]", inputs: { insideClick: "insideClick" }, outputs: { adbDropdown: "adbDropdown" }, host: { listeners: { "click": "onClick()", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "id": "this.id", "attr.data-toggle": "this.dataToggle", "attr.aria-haspopup": "this.haspPopup", "attr.aria-expanded": "this.expanded" } }, exportAs: ["adbDropdown"], ngImport: i0 }); }
|
|
345
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AdbDropdownDirective, selector: "[adbDropdown]", inputs: { insideClick: "insideClick" }, outputs: { adbDropdown: "adbDropdown" }, host: { listeners: { "click": "onClick()", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "id": "this.id", "attr.data-toggle": "this.dataToggle", "attr.aria-haspopup": "this.haspPopup", "attr.aria-expanded": "this.expanded", "attr.aria-controls": "this.dropId" } }, exportAs: ["adbDropdown"], ngImport: i0 }); }
|
|
339
346
|
}
|
|
340
347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdbDropdownDirective, decorators: [{
|
|
341
348
|
type: Directive,
|
|
@@ -359,6 +366,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
359
366
|
}], expanded: [{
|
|
360
367
|
type: HostBinding,
|
|
361
368
|
args: ['attr.aria-expanded']
|
|
369
|
+
}], dropId: [{
|
|
370
|
+
type: HostBinding,
|
|
371
|
+
args: ['attr.aria-controls']
|
|
362
372
|
}], onClick: [{
|
|
363
373
|
type: HostListener,
|
|
364
374
|
args: ['click']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-shared.mjs","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/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/redlist-badge-class.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-nav.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-nav.component.html","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.service.ts","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.directive.ts","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.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/pager-inline.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-inline.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-footer.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-footer.component.html","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/environment.service.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.html","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.html","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.pipe.ts","../../../projects/artdata-shared/src/lib/pipes/emptyValue.pipe.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/lib/components/date-picker/adb-date-picker.component.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.component.html","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.service.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.directive.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.module.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-modal.service.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-confirm-modal.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-confirm-modal.html","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-modal.module.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.service.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.html","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.module.ts","../../../projects/artdata-shared/src/lib/components/adb-buttons/help-button.component.ts","../../../projects/artdata-shared/src/lib/components/adb-buttons/help-button.component.html","../../../projects/artdata-shared/src/lib/components/adb-buttons/adb-buttons.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, 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<any>();\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(target);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'input[adbFileUpload]',\r\n host: {\r\n '(change)': 'onBeginUpload($event.target)',\r\n '(click)': 'onClick($event.target)'\r\n },\r\n outputs: ['upload']\r\n})\r\nexport class FileUploadDirective {\r\n upload = new EventEmitter();\r\n click = new EventEmitter();\r\n constructor(private el: ElementRef) {}\r\n \r\n onBeginUpload(target: any) {\r\n if (target) {\r\n if (target.files && target.files[0]) {\r\n this.upload.emit(target.files[0]);\r\n }\r\n }\r\n }\r\n\r\n onClick(target: any) {\r\n (this.el.nativeElement as HTMLInputElement).value = '';\r\n if (target) {\r\n this.click.emit(target);\r\n }\r\n }\r\n}","/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive, 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 focused: boolean;\r\n @Input() set adbFocus(value: boolean) {\r\n this.focused = value;\r\n if (this.focused) {\r\n this.element.nativeElement.focus();\r\n }else{\r\n this.element.nativeElement.blur();\r\n }\r\n }\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 { Directive, Input, HostBinding } from '@angular/core';\r\n@Directive({\r\n selector: '[adbRedListBadgeClass]'\r\n})\r\nexport class RedListBadgeClassDirective {\r\n @Input('adbRedListBadgeClass') redlistId: string;\r\n @HostBinding('class')\r\n get hostClasses(): string {\r\n let badgeClass;\r\n this.redlistId = this.redlistId ? this.redlistId.replace('°', '') : '';\r\n if (this.redlistId === 'EX' || this.redlistId === 'RE') {\r\n return badgeClass = 'bg-dark';\r\n } else if (this.redlistId === 'CR' || this.redlistId === 'EN' || this.redlistId === 'VU' || this.redlistId === 'NT') {\r\n return 'bg-danger';\r\n } else if (this.redlistId === 'DD' || this.redlistId === 'NE' || this.redlistId === 'NA') {\r\n return 'bg-secondary';\r\n } else if (this.redlistId === 'NONE') {\r\n return '';\r\n }\r\n return 'bg-success';\r\n }\r\n}\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\nimport { RedListBadgeClassDirective } from \"./redlist-badge-class.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective, RedListBadgeClassDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective, RedListBadgeClassDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Event, NavigationEnd, Router, } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\n@Component({\r\n selector: 'adb-nav',\r\n templateUrl: './adb-nav.component.html'\r\n})\r\nexport class ADBNavComponent 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\r\n @Input() showPattern = false;\r\n fullName: string;\r\n translationFinished = false;\r\n lastPosition = 0;\r\n\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 @Input() artfakta = true;\r\n\r\n initials: string;\r\n showNavMenu = false;\r\n showUserMenu = false;\r\n showArtfakta = true;\r\n showNOS = true;\r\n navigation: Navigation;\r\n url: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private router: Router,\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 const url = this.artfakta ? '/assets/links-ap3.json' : '/assets/artportalen/links-ap3.json';\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + url).subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.showNavMenu = false;\r\n this.dropMenuChange.emit(this.showNavMenu)\r\n }\r\n });\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 const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).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 this.showUserMenu = false;\r\n if (this.showNavMenu !== show) {\r\n this.showNavMenu = 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.showNavMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n","<div class=\"bg-primary adb-main-header\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg\" *ngIf=\"translationFinished\">\r\n <div [attr.id]=\"showPattern?'banner':''\" class=\"d-flex align-items-center gap-2\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2 gap-1\">\r\n <a class=\"d-flex text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"d-none d-sm-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n <a routerLink=\"/\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artfakta</a>\r\n </nav>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n attr.aria-label=\"{{'ADB_HEADER.MENY'|translate}}\"\r\n (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n <small class=\"d-none ms-2 d-md-inline-block\">{{'ADB_HEADER.MENY'|translate}}</small>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\"\r\n [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\">Artfakta</h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div tabindex=\"-1\" class=\"offcanvas-body d-flex flex-column p-0\">\r\n <div class=\"px-3\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"initials\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showArtfakta?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showArtfakta = !showArtfakta\"\r\n attr.aria-controls=\"artfakta-links\" attr.aria-expanded=\"{{showArtfakta}}\">\r\n <span class=\"fas\" [ngClass]=\"showArtfakta?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showArtfakta\" id=\"artfakta-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.keys.url}}\" class=\"text-white\">\r\n {{navigation.keys.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.mySpecies.url}}\" class=\"text-white\">\r\n {{navigation.mySpecies.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.lists.url}}\" class=\"text-white\">\r\n {{navigation.lists.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.imageRec.url}}\" class=\"text-white\">\r\n {{navigation.imageRec.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.filter.url}}\" class=\"text-white\">\r\n {{navigation.filter.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showNOS?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showNOS = !showNOS\"\r\n attr.aria-controls=\"nos-links\" attr.aria-expanded=\"{{showNOS}}\">\r\n <span class=\"fas\" [ngClass]=\"showNOS?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showNOS\" id=\"nos-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.nameSearch.url}}\" class=\"text-white\">\r\n {{navigation.nameSearch.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.match.url}}\" class=\"text-white\">\r\n {{navigation.match.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white pt-1\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u class=\"me-1\">{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u> <span class=\"fas fa-external-link\"></span></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div id=\"pattern\" class=\"flex-grow-1\">\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ElementRef, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class AdbDropdownService {\r\n currentMenu: any;\r\n currentMenuId: string;\r\n}","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from \"@angular/core\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@Directive({\r\n selector: '[adbDropdown]',\r\n exportAs: 'adbDropdown'\r\n})\r\nexport class AdbDropdownDirective {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private adbDropdownService: AdbDropdownService) {\r\n this.id = this.getId();\r\n }\r\n\r\n @Output() adbDropdown = new EventEmitter();\r\n @Input() insideClick = false;\r\n\r\n @HostBinding('id')\r\n id: string;\r\n\r\n @HostBinding('attr.data-toggle')\r\n dataToggle = \"dropdown\";\r\n\r\n @HostBinding('attr.aria-haspopup')\r\n haspPopup = true;\r\n\r\n\r\n @HostBinding('attr.aria-expanded')\r\n expanded = false;\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n this.adbDropdownService.currentMenuId = this.id;\r\n const node = this.elementRef.nativeElement.parentNode;\r\n const toggleButton = node.querySelector('.dropdown-toggle');\r\n let style = `transform:translate3d(0px, ${toggleButton?.clientHeight + 1}px, 0px);`;\r\n const menu = node.querySelector('.dropdown-menu');\r\n if (menu) {\r\n this.adbDropdownService.currentMenu = this.elementRef.nativeElement;\r\n if (menu.classList?.contains('dropdown-menu-end')) {\r\n style = style + 'inset: 0px 0px auto auto;';\r\n }\r\n menu.setAttribute('style', style);\r\n if (menu.classList.contains('show')) {\r\n menu.classList.remove('show');\r\n } else {\r\n this.adbDropdown.emit();\r\n menu.classList.add('show');\r\n }\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n onCheckOutSideClick(target: any): void {\r\n if (this.adbDropdownService.currentMenuId === this.id) {\r\n const parent = this.insideClick?this.elementRef.nativeElement.parentNode:this.elementRef.nativeElement;\r\n const clickedInside = parent.contains(target);\r\n if (!clickedInside) {\r\n const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');\r\n parent?.classList.remove('show');\r\n }\r\n } else {\r\n const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');\r\n parent?.classList.remove('show');\r\n }\r\n }\r\n\r\n close(): void {\r\n const node = this.elementRef.nativeElement.parentNode;\r\n const menu = node.querySelector('.dropdown-menu');\r\n menu.classList.remove('show');\r\n }\r\n\r\n private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbDropdownDirective } from \"./adb-dropdown.directive\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbDropdownDirective],\r\n exports: [AdbDropdownDirective],\r\n providers: [AdbDropdownService]\r\n})\r\nexport class AdbDropdownModule { }","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 @Output() public onHidden: EventEmitter<any> = new EventEmitter();\r\n \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 }else{\r\n this.onHidden.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 totalCount: number;\r\n limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n\r\n @Input('totalCount') set setTotalCount(value: number) {\r\n this.totalCount = value;\r\n this.calculatePages();\r\n }\r\n\r\n @Input('limit') set setLimit(value: number) {\r\n this.limit = value ?? PagerBaseDirective.DEFAULT_LIMIT;\r\n this.calculatePages();\r\n }\r\n\r\n pages: Array<number>;\r\n\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n if (this.totalCount >= 0 && this.limit > 0) {\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 } else {\r\n this.amountOfPages = 0;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, 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 @Input() offsetName: string = \"offset\";\r\n @Input() infiniteLimit = false;\r\n params: { first: any, prev: any, pages?: any[], next: any, last: any };\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[this.offsetName]) {\r\n this.currentPage = (+params[this.offsetName] / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n //create model\r\n this.params = {\r\n first: { [this.offsetName]: 0 },\r\n prev: { [this.offsetName]: (this.currentPage - 2) * this.limit },\r\n pages: [],\r\n next: { [this.offsetName]: this.currentPage * this.limit },\r\n last: { [this.offsetName]: (this.amountOfPages - 1) * this.limit },\r\n };\r\n if (this.pages) {\r\n for (const page of this.pages) {\r\n this.params.pages.push({ name: page, params: { [this.offsetName]: (page - 1) * this.limit } });\r\n }\r\n }\r\n\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 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager',\r\n templateUrl: 'pager-inline.html'\r\n})\r\nexport class PagerInlineComponent extends PagerBaseDirective implements OnInit {\r\n @Output() pageChanged = new EventEmitter<number>();\r\n constructor() {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.calculatePages();\r\n }\r\n onFirstClick(): void {\r\n this.currentPage = 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onPrevClick(): void {\r\n this.currentPage = this.currentPage - 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onPageClick(page: number): void {\r\n this.currentPage = page;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n }\r\n onNextClick(): void {\r\n this.currentPage = this.currentPage + 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onLastClick(): void {\r\n this.currentPage = this.amountOfPages;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pr-2 my-1\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onFirstClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onPrevClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage==page\" *ngFor=\"let page of pages\">\r\n <button class=\"page-link\" (click)=\"onPageClick(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onNextClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n</nav>\r\n","\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\nimport { PagerInlineComponent } from \"./pager-inline\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent, PagerInlineComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent, PagerInlineComponent]\r\n})\r\nexport class AdbPagersModule { }","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Navigation } from \"./navigation.model\";\r\n\r\n@Component({\r\n selector: 'adb-footer',\r\n templateUrl: './adb-footer.component.html'\r\n})\r\nexport class ADBFooterComponent implements OnInit,OnDestroy {\r\n private subscription = new Subscription();\r\n translationFinished = false;\r\n url: string;\r\n @Input() artfakta = true;\r\n navigation: Navigation;\r\n baseUrl: any;\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(): void {\r\n this.url = window.location.href;\r\n this.baseUrl = this.envService.environment.resourceUrl;\r\n this.initTranslations(this.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 const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}","<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 justify-content-center\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a href=\"https://artfakta.se/om\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://artfakta.se/om\" fragment=\"accessability\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a class=\"d-block text-white mb-2\" href=\"mailto:artfakta@artdatabanken.se\">{{'FOOTER.SUPPORT'|translate}}: artfakta@artdatabanken.se</a>\r\n </div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare/\" target=\"_blank\">{{'FOOTER.TERMS_OF_USE'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" target=\"_blank\">{{'FOOTER.PERSONAL_DATA'|translate}} <span\r\n class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://metadata.artfakta.se/dataproviders\" target=\"_blank\">{{'FOOTER.DATA_SOURCES'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://status.artdatabanken.se/status\" target=\"_blank\">{{'FOOTER.API'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <div class=\"mb-2 text-white\">{{'FOOTER.INFO'|translate}}</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\nimport { ADBNavComponent } from './adb-nav.component';\r\nimport { AdbDropdownModule } from '../adb-dropdown/adb-dropdown.module';\r\nimport { AdbPagersModule } from '../pagers/pagers.module';\r\nimport { ADBFooterComponent } from './adb-footer.component';\r\n@NgModule({\r\n declarations: [ADBNavComponent,ADBFooterComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule,\r\n AdbDropdownModule,\r\n AdbPagersModule\r\n ],\r\n exports: [ADBNavComponent,ADBFooterComponent]\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 { 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 { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Event, NavigationEnd, Router } from \"@angular/router\";\r\nimport { Navigation } from \"./navigation.model\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\n\r\n\r\n@Component({\r\n selector: 'adb-artportalen-nav',\r\n templateUrl: './adb-artportalen-nav.component.html'\r\n})\r\nexport class ArtportalenNavComponent 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\r\n @Input() showPattern = false;\r\n fullName: string;\r\n translationFinished = false;\r\n lastPosition = 0;\r\n\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n };\r\n\r\n navigation: Navigation;\r\n url: string;\r\n showNavMenu = false;\r\n showUserMenu = false;\r\n\r\n showReport = true;\r\n showObservations = true;\r\n showSubs = false;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private router: Router,\r\n public trans: TranslateService,\r\n private envService: EnvironmentService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n const url = '/assets/artportalen/links-ap3.json';\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + url).subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.showNavMenu = false;\r\n this.dropMenuChange.emit(this.showNavMenu)\r\n }\r\n });\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n this.showUserMenu = false;\r\n if (this.showNavMenu !== show) {\r\n this.showNavMenu = 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.showNavMenu = false;\r\n this.dropMenuChange.emit(false);\r\n }\r\n\r\n onUserClick():void{\r\n if(this.fullName){\r\n this.logout(); \r\n }else{\r\n this.login(); \r\n }\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\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 const url = baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n","<div class=\"bg-primary adb-main-header position-static\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg px-0\" *ngIf=\"translationFinished\">\r\n <div [attr.id]=\"showPattern?'banner':''\" class=\"px-1 d-flex flex-wrap align-items-center gap-2\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2 gap-2\">\r\n <a class=\"d-flex text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"d-none d-sm-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n <a [href]=\"navigation?.home\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artportalen beta</a>\r\n </nav>\r\n <div class=\"ms-auto d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"d-none d-md-block btn btn-primary-dark btn-lg\" type=\"button\"\r\n title=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n attr.aria-label=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n (click)=\"onUserClick()\">\r\n <small>{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}</small>\r\n </button>\r\n </div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\" title=\"{{'HEADER.MENY'|translate}}\" attr.aria-label=\"{{'HEADER.MENY'|translate}}\" (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n <small class=\"ms-2 d-none d-md-inline-block\">{{'HEADER.MENY'|translate}}</small>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-center d-md-none p-2 border-dark border-top\">\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n title=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n attr.aria-label=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\" (click)=\"onUserClick()\">\r\n <small>{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}</small>\r\n </button>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\" [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\"><a [href]=\"navigation.home\" class=\"text-white text-decoration-none\">Artportalen beta</a></h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div class=\"offcanvas-body d-flex flex-column p-0\">\r\n <div class=\"px-3\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"fullName\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!fullName\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showReport?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"py-1 text-white flex-grow-1\" href=\"{{navigation.report.url}}\">\r\n {{navigation.report.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showReport = !showReport\" attr.aria-controls=\"report-links\" attr.aria-expanded=\"{{showReport}}\">\r\n <span class=\"fas\" [ngClass]=\"showReport?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showReport\" id=\"report-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <div class=\"d-flex\">\r\n <a href=\"{{navigation.checklist.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.checklist.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.report.url}}\">\r\n {{'HEADER.REPORT'|translate}}\r\n </a>\r\n <li class=\"d-block py-1\">\r\n <div class=\"d-flex \">\r\n <a href=\"{{navigation.wanted.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.wanted.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showObservations?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"py-1 text-white flex-grow-1\" href=\"{{navigation.observations.url}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showObservations = !showObservations\" attr.aria-controls=\"observations-links\" attr.aria-expanded=\"{{showObservations}}\">\r\n <span class=\"fas\" [ngClass]=\"showObservations?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showObservations\" id=\"observations-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}\">\r\n {{'HEADER.TODAYS_OBSERVATIONS'|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showSubs?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <button class=\"btn btn-link p-0 text-white w-100 text-start\" (click)=\"showSubs = !showSubs\">\r\n {{navigation.subcriptions.transId|translate}}\r\n </button>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showSubs = !showSubs\" attr.aria-controls=\"subs-links\" attr.aria-expanded=\"{{showSubs}}\">\r\n <span class=\"fas\" [ngClass]=\"showSubs?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showSubs\" id=\"subs-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.subcriptions.url}}\">\r\n {{'HEADER.MY_SUBSCRIPTIONS'|translate}}\r\n </a>\r\n </li>\r\n <li class=\"py-1\">\r\n <div class=\"d-flex\">\r\n <a href=\"{{navigation.events.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.events.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.fyndregler.url}}\">\r\n {{navigation.fyndregler.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n Artportalen.se\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artfaktaUrl\">\r\n {{'HEADER.ARTFAKTA'|translate}}\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white pt-1\">\r\n {{'HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\">\r\n {{'HEADER.ARTDATABANKEN'|translate}}\r\n <span class=\"fas fa-external-link\"></span>\r\n </a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div id=\"pattern\" class=\"flex-grow-1\"> </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Navigation } from \"./navigation.model\";\r\n\r\n@Component({\r\n selector: 'adb-artportalen-footer',\r\n templateUrl: './adb-artportalen-footer.component.html'\r\n})\r\nexport class ArtportalenFooterComponent implements OnInit,OnDestroy {\r\n private subscription = new Subscription();\r\n translationFinished = false;\r\n url: string;\r\n navigation: Navigation;\r\n baseUrl: any;\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(): void {\r\n this.url = window.location.href;\r\n this.baseUrl = this.envService.environment.resourceUrl;\r\n this.initTranslations(this.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 const url = baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}","<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 px-5 justify-content-center text-white\">\r\n <div class=\"row mb-4\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 mb-3\">\r\n <a href=\"https://www.artdatabanken.se/artportalen/\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://www.artdatabanken.se/artportalen-tillganglighetsredogorelse\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a href=\"https://www.artdatabanken.se/om-oss/kontakt/support\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.SUPPORT'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.TERMS_OF_USE'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.PERSONAL_DATA'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2\" style=\"font-variant: small-caps;\"><sub><strong>{{'FOOTER.PARTNERS'|translate}}</strong></sub></div>\r\n <a href=\"https://birdlife.se\" class=\"d-block text-white mb-2\"><span class=\"me-1\">Birdlife Sverige</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://svenskbotanik.se\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Svenska Botaniska Föreningen</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.sef.nu\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Sveriges Entomologiska Förening</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.svampar.se\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Sveriges Mykologiska Förening</span><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3 text-white\">\r\n <div>{{'FOOTER.INFO'|translate}}</div>\r\n <div>{{'FOOTER.INFO2'|translate}}</div>\r\n <div>{{'FOOTER.INFO3'|translate}}\r\n <a href=\"https://www.naturvardsverket.se\" class=\"text-white mb-2\"><u class=\"me-1\">Naturvårdsverket.</u><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">{{'FOOTER.INFO4'|translate}}.</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img class=\"d-block d-md-none\" style=\"height: 2.6rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <img class=\"d-none d-md-block\" style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <div class=\"border-end d-block d-sm-none\"></div>\r\n <img class=\"d-none d-md-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n <img class=\"d-block d-md-none align-self-center pe-5\" style=\"height: 0.8rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\nimport { ArtportalenNavComponent } from './adb-artportalen-nav.component';\r\nimport { AdbDropdownModule } from '../adb-dropdown/adb-dropdown.module';\r\nimport { AdbPagersModule } from '../pagers/pagers.module';\r\nimport { ArtportalenFooterComponent } from './adb-artportalen-footer.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ArtportalenNavComponent,\r\n ArtportalenFooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule,\r\n AdbDropdownModule,\r\n AdbPagersModule\r\n ],\r\n exports: [\r\n ArtportalenNavComponent,\r\n ArtportalenFooterComponent\r\n ]\r\n})\r\nexport class ArtportalenNavModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ArtportalenNavModule> {\r\n return {\r\n ngModule: ArtportalenNavModule,\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 { DatePipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n@Pipe({\r\n name: 'adbLocaleDate',\r\n pure: false\r\n})\r\nexport class LocaleDatePipe implements PipeTransform {\r\n constructor(private translate: TranslateService) {}\r\n transform(value: any, format: string) {\r\n return new DatePipe(this.translate.currentLang).transform(value, format, null, this.translate.currentLang);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'adbEmptyValue'\r\n})\r\nexport class EmptyValuePipe implements PipeTransform {\r\n transform(value: any) {\r\n if (!value) {\r\n return '-';\r\n }\r\n if (value.trim() === '') {\r\n return '-';\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n forbiddenSymbols = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n transform(value: any, searchs: any): any {\r\n if (!value) { return value; }\r\n value = value + '';\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter(s => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.forbiddenSymbols.test(search)) {\r\n search = search.replace(this.forbiddenSymbols, '');\r\n }\r\n const normalizedSearch = this.normalizeText(search);\r\n const normalizedValue = this.normalizeText(value);\r\n const start = normalizedValue ? normalizedValue.indexOf(normalizedSearch) : -1;\r\n if (start !== -1) {\r\n const regex = new RegExp(`(${search})(?![^<]*>)`, 'gi');\r\n const match = value.match(regex);\r\n if (match) {\r\n value = value.replace(regex, '<mark>$1</mark>');\r\n }\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n private normalizeText(text: string): string {\r\n return text?.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLocaleLowerCase();\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 { LocaleDatePipe } from \"./date.pipe\";\r\nimport { EmptyValuePipe } from \"./emptyValue.pipe\";\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, LocaleDatePipe, EmptyValuePipe],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe, EmptyValuePipe]\r\n})\r\nexport class AdbPipesModule { }","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { addDays, addMonths, addYears, eachDayOfInterval, eachWeekOfInterval, endOfDay, endOfMonth, getHours, getISOWeek, getMinutes, getMonth, isSameDay, isSameMonth, isSameYear, isValid, isWithinInterval, parseISO, startOfDay, startOfMonth, subMonths, subYears } from \"date-fns\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AdbDatePickerDirective } from \"./adb-date-picker.directive\";\r\n\r\n@Component({\r\n selector: 'adb-date-picker',\r\n templateUrl: './adb-date-picker.component.html'\r\n})\r\nexport class AdbDatePickerComponent implements OnInit, OnDestroy {\r\n private subscriptions = new Subscription();\r\n static MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n static WEEK_DAYS = ['1', '2', '3', '4', '5', '6', '7'];\r\n static YEAR_INTERVALL = 8;\r\n currentdDate: Date = new Date();\r\n currentMonth: number;\r\n\r\n selectedDate: Date = new Date();\r\n years: { value: Date, title: string, isThisYear: boolean }[];\r\n months: { value: number, isThisMonth: boolean }[];\r\n weekDays = AdbDatePickerComponent.WEEK_DAYS;\r\n weeks: PickerWeek[];\r\n range: { start: any; end: any; };\r\n noYearMode = false;;\r\n\r\n @Input() initialDate: Date;\r\n @Input() settings: any;\r\n @Input() toLeft: boolean;\r\n\r\n @HostBinding('id')\r\n @Input() id: string;\r\n\r\n @Output() selectDate = new EventEmitter<Date>();\r\n @Output() hide = new EventEmitter<void>();\r\n\r\n constructor(public elementRef: ElementRef, private translate: TranslateService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.settings) {\r\n if (this.settings?.minDate || this.settings?.maxDate) {\r\n const minDate = AdbDatePickerComponent.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerComponent.parseDate(this.settings.maxDate);\r\n this.range = {\r\n start: minDate ? startOfDay(minDate) : subYears(new Date(), 1000),\r\n end: maxDate ? endOfDay(maxDate) : addYears(new Date(), 1000)\r\n };\r\n }\r\n if(this.settings.noYear){\r\n this.noYearMode = this.settings.noYear;\r\n }\r\n }\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\r\n this.currentMonth = getMonth(this.selectedDate);\r\n this.createCalendar()\r\n }\r\n\r\n onShowYear(): void {\r\n this.months = null;\r\n this.loadYearsInterval();\r\n }\r\n\r\n onShowMonth(): void {\r\n this.years = null;\r\n this.loadMonths();\r\n }\r\n\r\n onSelectYear(inYear?: Date): void {\r\n this.selectedDate.setFullYear(inYear.getFullYear());\r\n this.loadMonths();\r\n this.years = null;\r\n }\r\n\r\n onSelectMonth(inMonth?: number): void {\r\n this.selectedDate.setMonth(inMonth);\r\n this.currentMonth = getMonth(this.selectedDate);\r\n this.createCalendar();\r\n this.years = null;\r\n this.months = null;\r\n }\r\n\r\n onPrev(): void {\r\n if (this.years) {\r\n this.selectedDate = subYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n this.loadYearsInterval();\r\n } else if (this.months) {\r\n this.selectedDate = subYears(this.selectedDate, 1);\r\n this.loadMonths();\r\n } else {\r\n this.selectedDate = subMonths(this.selectedDate, 1);\r\n this.createCalendar();\r\n }\r\n this.currentMonth = getMonth(this.selectedDate);\r\n }\r\n\r\n onNext(): void {\r\n if (this.years) {\r\n this.selectedDate = addYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n this.loadYearsInterval();\r\n } else if (this.months) {\r\n this.selectedDate = addYears(this.selectedDate, 1);\r\n this.loadMonths();\r\n } else {\r\n this.selectedDate = addMonths(this.selectedDate, 1);\r\n this.createCalendar();\r\n }\r\n this.currentMonth = getMonth(this.selectedDate);\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private loadMonths(): void {\r\n this.months = AdbDatePickerComponent.MONTHS.map(x => {\r\n return {\r\n value: x,\r\n isThisMonth: getMonth(this.selectedDate) === x && isSameYear(this.currentdDate, this.selectedDate)\r\n }\r\n });\r\n }\r\n\r\n private loadYearsInterval() {\r\n let year = subYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n const years = [];\r\n for (let i = 0; i < 16; i++) {\r\n years.push({\r\n value: year,\r\n title: year.getFullYear(),\r\n isThisYear: isSameYear(year, this.currentdDate)\r\n });\r\n year = addYears(year, 1);\r\n }\r\n this.years = years;\r\n }\r\n\r\n onSelectDate(day: PickerDay): void {\r\n this.selectDate.emit(day.value);\r\n }\r\n\r\n private createCalendar() {\r\n const weeks = [];\r\n const monthInterval = { start: startOfMonth(this.selectedDate), end: endOfMonth(this.selectedDate) };\r\n var fnsWweeks = eachWeekOfInterval(monthInterval, { weekStartsOn: this.translate.currentLang === 'sv' || this.translate.currentLang === 'sv-SE' ? 1 : 0 });\r\n for (const fnsWeek of fnsWweeks) {\r\n const week = { weekNumber: 0, days: [] };\r\n week.weekNumber = getISOWeek(new Date(fnsWeek));\r\n const weekInterval = { start: new Date(fnsWeek), end: addDays(new Date(fnsWeek), 6) };\r\n week.days = eachDayOfInterval(weekInterval).map(day => {\r\n day.setHours(getHours(new Date()));\r\n day.setMinutes(getMinutes(new Date()));\r\n return {\r\n value: day,\r\n isSelected: isSameYear(day, this.initialDate) && isSameDay(day, this.initialDate) && isSameMonth(day, this.initialDate),\r\n isInRange: this.range ? isWithinInterval(day, this.range) : true,\r\n isToday: isSameDay(day, new Date()),\r\n inMonth: monthInterval.start.getMonth() === day.getMonth()\r\n };\r\n });\r\n weeks.push(week);\r\n }\r\n this.weeks = weeks;\r\n }\r\n\r\n static parseDate(value: Date | string): Date {\r\n if (typeof value === 'string') {\r\n if (isValid(parseISO(value))) {\r\n return parseISO(value);\r\n } else {\r\n return null;\r\n }\r\n } else if (value instanceof Date) {\r\n return value;\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport interface PickerWeek {\r\n weeks: {\r\n weekNumber: number;\r\n days: PickerDay[]\r\n }[];\r\n}\r\n\r\nexport interface PickerDay {\r\n value: Date,\r\n isToday: boolean,\r\n isInRange: boolean,\r\n inMonth: boolean,\r\n isSelected: boolean\r\n}","<div class=\"position-relative\" [class.to-left]=\"toLeft\">\r\n <nav class=\"bg-white shadow rounded position-absolute\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\" [disabled]=\"noYearMode&¤tMonth===0\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth();$event.stopPropagation()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button *ngIf=\"!noYearMode\" tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear();$event.stopPropagation()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button tabIndex=\"-1\" *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null;$event.stopPropagation()\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button tabIndex=\"-1\" *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear();$event.stopPropagation()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\" [disabled]=\"noYearMode&¤tMonth===11\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button type=\"button\" tabIndex=\"-1\" class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value);$event.stopPropagation()\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button type=\"button\" tabIndex=\"-1\" class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value);$event.stopPropagation()\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\" *ngIf=\"!years&&!months\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button tabIndex=\"-1\" class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\" type=\"button\" \r\n [class.border]=\"day.isToday\" [class.bg-primary]=\"day.isSelected\" [class.text-white]=\"day.isSelected\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </nav>\r\n</div>\r\n","import { ComponentRef, Inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\n\r\n@Injectable()\r\nexport class AdbDatePickerService {\r\n viewRef: ComponentRef<AdbDatePickerComponent>;\r\n}","import { formatDate } from \"@angular/common\";\r\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, ViewContainerRef } from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO, setHours, setMinutes } from \"date-fns\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\nimport { AdbDatePickerService } from \"./adb-date-picker.service\";\r\n\r\n@Directive({\r\n selector: `input[adbDatepicker]`,\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AdbDatePickerDirective),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: AdbDatePickerDirective,\r\n multi: true,\r\n },]\r\n})\r\nexport class AdbDatePickerDirective implements ControlValueAccessor, Validator, OnInit, OnDestroy {\r\n @HostBinding('autocomplete') autocomplete = 'off';\r\n private subscriptions = new Subscription();\r\n @Input() format = 'yyyy-MM-dd';\r\n @Input() toLeft: boolean;\r\n @Input() settings: { maxDate?: Date | string, minDate?: Date | string } = null;\r\n @Input() pickOnly = true;\r\n id: string;\r\n initialDate: Date;\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private adbDatePickerService: AdbDatePickerService,\r\n public translate: TranslateService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.pickOnly) {\r\n this.elementRef.nativeElement.setAttribute(\"placeholder\", this.format);\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.adbDatePickerService.viewRef) {\r\n this.adbDatePickerService.viewRef.destroy();\r\n }\r\n const viewRef = this.viewContainerRef.createComponent<AdbDatePickerComponent>(AdbDatePickerComponent);\r\n viewRef.instance.settings = this.settings;\r\n viewRef.instance.toLeft = this.toLeft;\r\n viewRef.instance.initialDate = this.initialDate;\r\n this.id = this.getId();\r\n viewRef.instance.id = this.id;\r\n viewRef.instance.selectDate.subscribe((date) => {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));\r\n this.onChange(date);\r\n this.initialDate = date;\r\n this.onHide();\r\n });\r\n viewRef.instance.hide.subscribe(() => {\r\n this.onHide();\r\n });\r\n this.adbDatePickerService.viewRef = viewRef;\r\n }\r\n\r\n @HostListener('keyup', ['$event']) public onKeyup(event: KeyboardEvent): void {\r\n if (!this.pickOnly) {\r\n const date = AdbDatePickerDirective.tryParse((event.target as HTMLInputElement).value);\r\n if (date) {\r\n const now = new Date();\r\n date.setHours(now.getHours()); date.setMinutes(now.getMinutes()); date.setSeconds(now.getSeconds());\r\n this.onChange(date);\r\n } else {\r\n this.onChange((event.target as HTMLInputElement).value); //send inccorect values to form\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup.esc')\r\n onHide(): void {\r\n this.adbDatePickerService.viewRef = null;\r\n this.viewContainerRef.detach();\r\n this.viewContainerRef.clear();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Tab') {\r\n this.onHide();\r\n }\r\n else if (this.pickOnly) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n onCheckOutSideClick(target: any): void {\r\n const nativeElement = this.adbDatePickerService.viewRef?.instance.elementRef.nativeElement ?? null;\r\n if (nativeElement) {\r\n if (nativeElement.id === this.id) {\r\n if (!target.hasAttribute('adbdatepicker')) {\r\n const clickedInside = nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.onHide();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n //Validator\r\n validate(control: AbstractControl): ValidationErrors {\r\n const value = control.value;\r\n if (!value) {\r\n return null;\r\n }\r\n if (value instanceof Date) {\r\n return null;\r\n }\r\n if (typeof value === 'string' || value instanceof String) {\r\n const date = AdbDatePickerDirective.tryParse(value as string);\r\n if (!date) {\r\n return { date: true }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onValidationChange: any = () => { };\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n //ControlValueAccessor\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n writeValue(value: Date | string): void {\r\n if (!value) {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\r\n return;\r\n }\r\n if (typeof value === 'string' || value instanceof String) {\r\n const date = AdbDatePickerDirective.tryParse(value as string);\r\n if (!date) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n return;\r\n }\r\n value = date;\r\n }\r\n if (value instanceof Date) {\r\n this.initialDate = value;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.viewContainerRef.clear();\r\n }\r\n\r\n static tryParse(dateString: string): Date {\r\n const parsed = parseISO(dateString);\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbPipesModule } from \"../../pipes/pipes.module\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\nimport { AdbDatePickerDirective } from \"./adb-date-picker.directive\";\r\nimport { AdbDatePickerService } from \"./adb-date-picker.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbPipesModule, AdbDirectivesModule],\r\n declarations: [AdbDatePickerComponent, AdbDatePickerDirective],\r\n exports: [AdbDatePickerComponent, AdbDatePickerDirective],\r\n providers: [AdbDatePickerService]\r\n})\r\nexport class AdbDatePickerModule { }","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Renderer2, RendererFactory2 } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { AdbConfirmModal, DialogModel } from \"./adb-confirm-modal\";\r\n\r\n@Injectable()\r\nexport class AdbModalService {\r\n private closeSubject = new Subject<boolean>();\r\n close$ = this.closeSubject.asObservable();\r\n\r\n renderer: Renderer2;\r\n domElem: HTMLElement;\r\n backdrop: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n rendererFactory: RendererFactory2,\r\n private appRef: ApplicationRef,\r\n private injector: Injector) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n hide(confirm: boolean): void {\r\n this.closeSubject.next(confirm);\r\n document.body.removeChild(this.domElem);\r\n document.body.removeChild(this.backdrop);\r\n \r\n var main = this.renderer.selectRootElement('main',true);\r\n this.renderer.removeAttribute(main, 'inert');\r\n this.closeSubject.unsubscribe();\r\n this.closeSubject = new Subject<boolean>();\r\n this.close$ = this.closeSubject.asObservable();\r\n }\r\n\r\n showConfirm(model: DialogModel): void {\r\n var main = this.renderer.selectRootElement('main',true);\r\n main.setAttribute('inert','');\r\n this.backdrop = this.renderer.createElement('div');\r\n this.backdrop.classList.add('modal-backdrop', 'fade', 'show');\r\n this.renderer.appendChild(document.body, this.backdrop);\r\n\r\n let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbConfirmModal).create(this.injector);\r\n model.header = model.header ?? 'NOT_SET';\r\n model.text = model.text ?? 'NOT_SET';\r\n model.confirm = model.confirm ?? 'OK';\r\n model.decline = model.decline ?? 'CANCEL';\r\n componentRef.instance.model = model;\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n this.domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(this.domElem);\r\n\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { AdbModalService } from './adb-modal.service';\r\n@Component({\r\n templateUrl: 'adb-confirm-modal.html'\r\n})\r\nexport class AdbConfirmModal {\r\n @Input() public model: DialogModel;\r\n constructor(public modalRef: AdbModalService) {\r\n }\r\n\r\n onClose(confirm: boolean): void {\r\n this.modalRef.hide(confirm);\r\n }\r\n}\r\n\r\nexport interface DialogModel {\r\n header: string;\r\n text: string;\r\n confirm?: string;\r\n decline?: string;\r\n value?: any;\r\n}\r\n","<div class=\"modal fade show\" *ngIf=\"model\" role=\"dialog\"\r\n attr.aria-labelledby=\"mod_header\"\r\n attr.aria-describedby=\"mod_desc\">\r\n <div class=\"modal-dialog modal-dialog-centered\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h1 class=\"h-subsection mb-0 modal-title\" id=\"mod_header\">{{model.header|translate}}</h1>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\" (click)=\"onClose(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div id=\"mod_desc\">{{model.text|translate}}</div>\r\n <div *ngIf=\"model.value\">\r\n <strong>{{model.value}}</strong>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <div class=\"text-right\">\r\n <button type=\"button\" class=\"btn btn-primary me-2\"\r\n (click)=\"onClose(true)\">{{model.confirm|translate}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\"\r\n (click)=\"onClose(false)\">{{model.decline|translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbConfirmModal } from \"./adb-confirm-modal\";\r\nimport { AdbModalService } from \"./adb-modal.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbConfirmModal],\r\n exports: [AdbConfirmModal],\r\n providers: [AdbModalService]\r\n})\r\nexport class AdbModalModule { }","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Renderer2, RendererFactory2 } from \"@angular/core\";\r\nimport { Observable, of, Subject } from \"rxjs\";\r\nimport { delay } from \"rxjs/operators\";\r\nimport { AdbToast } from \"./adb-toast\";\r\n@Injectable()\r\nexport class AdbToastService {\r\n private toasts = new Array<ToastMessage>();\r\n private toastsSubject = new Subject<ToastMessage[]>();\r\n $toasts: Observable<ToastMessage[]> = this.toastsSubject.asObservable();\r\n renderer: Renderer2;\r\n domElement: HTMLElement;\r\n container: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private rendererFactory: RendererFactory2,\r\n private appRef: ApplicationRef,\r\n private injector: Injector) {\r\n }\r\n\r\n add(toastMessage: ToastMessage, time = 4000): void {\r\n this.addContainer();\r\n toastMessage.type = toastMessage.type ? toastMessage.type : ToastType.Success;\r\n toastMessage.index = this.toasts.length;\r\n toastMessage.delay = of(toastMessage).pipe(delay(time)).subscribe(toast => {\r\n this.remove(toast);\r\n });\r\n this.toasts.push(toastMessage);\r\n this.toastsSubject.next(this.toasts);\r\n }\r\n\r\n remove(toast: ToastMessage) {\r\n this.toasts = this.toasts?.filter(x => x.index !== toast.index);\r\n this.toastsSubject.next(this.toasts);\r\n }\r\n\r\n private addContainer(): void {\r\n if (!this.container) {\r\n this.renderer = this.rendererFactory.createRenderer(null, null);\r\n //create container i top\r\n this.container = this.renderer.createElement('div');\r\n this.renderer.appendChild(document.body, this.container);\r\n let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);\r\n this.appRef.attachView(componentRef.hostView);\r\n const element = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n this.container.prepend(element);\r\n }\r\n }\r\n}\r\nexport interface ToastMessage {\r\n header?: string,\r\n message: string,\r\n messageValue?: string;\r\n type?: ToastType,\r\n index?: number;\r\n delay?: any;\r\n}\r\nexport enum ToastType {\r\n Info = 1,\r\n Success = 2,\r\n Warn = 3\r\n}","\r\nimport { Component } from '@angular/core';\r\nimport { AdbToastService, ToastMessage, ToastType } from './adb-toast.service';\r\n@Component({\r\n templateUrl: 'adb-toast.html'\r\n})\r\nexport class AdbToast {\r\n toasts: ToastMessage[];\r\n toastType = ToastType;\r\n constructor(public toastService: AdbToastService) {\r\n this.toastService.$toasts.subscribe(toasts => {\r\n this.toasts = toasts;\r\n });\r\n }\r\n onRemoveToast(toast: ToastMessage): void {\r\n this.toastService.remove(toast);\r\n }\r\n}","<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div *ngIf=\"!toast.messageValue\">{{toast.message|translate}}</div>\r\n <div *ngIf=\"toast.messageValue\">{{(toast.message|translate:{value:toast.messageValue} )}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbToast } from \"./adb-toast\";\r\nimport { AdbToastService } from \"./adb-toast.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbToast],\r\n exports: [AdbToast],\r\n providers: [AdbToastService]\r\n})\r\nexport class AdbToastModule { }","import { Component, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'adb-help-button',\r\n templateUrl: 'help-button.component.html'\r\n})\r\nexport class AdbHelpButtonComponent implements OnInit {\r\n showHelp = false;\r\n id: number;\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.id = + Math.floor(Math.random() * Date.now())\r\n }\r\n\r\n onClick(): void {\r\n const node = this.elementRef.nativeElement.parentNode;\r\n if (node) {\r\n if (this.showHelp) {\r\n node.classList.remove('position-relative');\r\n } else {\r\n node.classList.add('position-relative');\r\n }\r\n }\r\n this.showHelp = !this.showHelp\r\n }\r\n}","<div>\r\n <button type=\"button\" id=\"help-button\" tabindex=\"-1\" (adbClickOutside)=\"showHelp=false\" class=\"ms-auto btn btn-help p-0 w-auto\" \r\n [attr.aria-controls]=\"id\" attr.aria-label=\"Help\" [attr.aria-expanded]=\"showHelp\" (click)=\"onClick()\">\r\n </button>\r\n</div>\r\n<div>\r\n <div *ngIf=\"showHelp\" [id]=\"id\" class=\"position-absolute start-0 w-100 adb-plate-primary text-start shadow \" style=\"z-index:4\">\r\n <div class=\"d-flex align-items-center\">\r\n <div><ng-content></ng-content></div>\r\n <div class=\"ms-auto align-self-start d-flex align-items-start\">\r\n <button type=\"button\" class=\"btn-close p-1\" data-bs-dismiss=\"modal\" aria-label=\"Close\" (click)=\"showHelp=false\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbHelpButtonComponent } from \"./help-button.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdbDirectivesModule],\r\n declarations: [AdbHelpButtonComponent],\r\n exports: [AdbHelpButtonComponent]\r\n})\r\nexport class AdbButtonsModule { }","/*\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-nav.component';\r\nexport * from './lib/components/adb-header/adb-footer.component';\r\n\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-nav.module';\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-nav.component';\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-footer.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\nexport * from './lib/directives/redlist-badge-class.directive';\r\nexport * from './lib/directives/file-upload.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\nexport * from './lib/components/pagers/pager-inline';\r\n\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/pipes/highlight.pipe';\r\nexport * from './lib/pipes/number-spacing.pipe';\r\nexport * from './lib/pipes/date.pipe';\r\nexport * from './lib/pipes/emptyValue.pipe';\r\n\r\n\r\nexport * from './lib/components/date-picker/adb-date-picker.module';\r\nexport * from './lib/components/date-picker/adb-date-picker.component';\r\nexport * from './lib/components/date-picker/adb-date-picker.directive';\r\n\r\nexport * from './lib/components/adb-dropdown/adb-dropdown.module';\r\nexport * from './lib/components/adb-dropdown/adb-dropdown.directive';\r\n\r\nexport * from './lib/components/adb-confirm-modal/adb-modal.module';\r\nexport * from './lib/components/adb-confirm-modal/adb-confirm-modal';\r\nexport * from './lib/components/adb-confirm-modal/adb-modal.service';\r\n\r\nexport * from './lib/components/adb-toast/adb-toast.module';\r\nexport * from './lib/components/adb-toast/adb-toast';\r\nexport * from './lib/components/adb-toast/adb-toast.service';\r\n\r\nexport * from './lib/components/adb-buttons/adb-buttons.module';\r\nexport * from './lib/components/adb-buttons/help-button.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EnvironmentService","i3.EnvironmentService","i4","i5","i6.ClickOutsideDirective","i1.AdbDropdownService","i1","i2","i2.EnvironmentService","i4.EnvironmentService","i3.LocaleDatePipe","i1.AdbDatePickerService","i1.AdbModalService","i1.AdbToastService","i2.ClickOutsideDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adb-shared.mjs","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/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/redlist-badge-class.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-nav.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-nav.component.html","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.service.ts","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.directive.ts","../../../projects/artdata-shared/src/lib/components/adb-dropdown/adb-dropdown.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/pager-inline.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-inline.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-footer.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-footer.component.html","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/environment.service.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.html","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.ts","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.html","../../../projects/artdata-shared/src/lib/components/adb-artportalen-nav/adb-artportalen-nav.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.pipe.ts","../../../projects/artdata-shared/src/lib/pipes/emptyValue.pipe.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/lib/components/date-picker/adb-date-picker.component.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.component.html","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.service.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.directive.ts","../../../projects/artdata-shared/src/lib/components/date-picker/adb-date-picker.module.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-modal.service.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-confirm-modal.ts","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-confirm-modal.html","../../../projects/artdata-shared/src/lib/components/adb-confirm-modal/adb-modal.module.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.service.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.ts","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.html","../../../projects/artdata-shared/src/lib/components/adb-toast/adb-toast.module.ts","../../../projects/artdata-shared/src/lib/components/adb-buttons/help-button.component.ts","../../../projects/artdata-shared/src/lib/components/adb-buttons/help-button.component.html","../../../projects/artdata-shared/src/lib/components/adb-buttons/adb-buttons.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, 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<any>();\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(target);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'input[adbFileUpload]',\r\n host: {\r\n '(change)': 'onBeginUpload($event.target)',\r\n '(click)': 'onClick($event.target)'\r\n },\r\n outputs: ['upload']\r\n})\r\nexport class FileUploadDirective {\r\n upload = new EventEmitter();\r\n click = new EventEmitter();\r\n constructor(private el: ElementRef) {}\r\n \r\n onBeginUpload(target: any) {\r\n if (target) {\r\n if (target.files && target.files[0]) {\r\n this.upload.emit(target.files[0]);\r\n }\r\n }\r\n }\r\n\r\n onClick(target: any) {\r\n (this.el.nativeElement as HTMLInputElement).value = '';\r\n if (target) {\r\n this.click.emit(target);\r\n }\r\n }\r\n}","/* eslint-disable @angular-eslint/directive-selector */\r\nimport { Directive, 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 focused: boolean;\r\n @Input() set adbFocus(value: boolean) {\r\n this.focused = value;\r\n if (this.focused) {\r\n this.element.nativeElement.focus();\r\n }else{\r\n this.element.nativeElement.blur();\r\n }\r\n }\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 { Directive, Input, HostBinding } from '@angular/core';\r\n@Directive({\r\n selector: '[adbRedListBadgeClass]'\r\n})\r\nexport class RedListBadgeClassDirective {\r\n @Input('adbRedListBadgeClass') redlistId: string;\r\n @HostBinding('class')\r\n get hostClasses(): string {\r\n let badgeClass;\r\n this.redlistId = this.redlistId ? this.redlistId.replace('°', '') : '';\r\n if (this.redlistId === 'EX' || this.redlistId === 'RE') {\r\n return badgeClass = 'bg-dark';\r\n } else if (this.redlistId === 'CR' || this.redlistId === 'EN' || this.redlistId === 'VU' || this.redlistId === 'NT') {\r\n return 'bg-danger';\r\n } else if (this.redlistId === 'DD' || this.redlistId === 'NE' || this.redlistId === 'NA') {\r\n return 'bg-secondary';\r\n } else if (this.redlistId === 'NONE') {\r\n return '';\r\n }\r\n return 'bg-success';\r\n }\r\n}\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\nimport { RedListBadgeClassDirective } from \"./redlist-badge-class.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective, RedListBadgeClassDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective, RedListBadgeClassDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Event, NavigationEnd, Router, } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\n@Component({\r\n selector: 'adb-nav',\r\n templateUrl: './adb-nav.component.html'\r\n})\r\nexport class ADBNavComponent 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\r\n @Input() showPattern = false;\r\n fullName: string;\r\n translationFinished = false;\r\n lastPosition = 0;\r\n\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 @Input() artfakta = true;\r\n\r\n initials: string;\r\n showNavMenu = false;\r\n showUserMenu = false;\r\n showArtfakta = true;\r\n showNOS = true;\r\n navigation: Navigation;\r\n url: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private router: Router,\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 const url = this.artfakta ? '/assets/links-ap3.json' : '/assets/artportalen/links-ap3.json';\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + url).subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.showNavMenu = false;\r\n this.dropMenuChange.emit(this.showNavMenu)\r\n }\r\n });\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 const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).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 this.showUserMenu = false;\r\n if (this.showNavMenu !== show) {\r\n this.showNavMenu = 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.showNavMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n","<div class=\"bg-primary adb-main-header\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg\" *ngIf=\"translationFinished\">\r\n <div [attr.id]=\"showPattern?'banner':''\" class=\"d-flex align-items-center gap-2\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2 gap-1\">\r\n <a class=\"d-flex text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"d-none d-sm-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n <a routerLink=\"/\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artfakta</a>\r\n </nav>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n attr.aria-label=\"{{'ADB_HEADER.MENY'|translate}}\"\r\n (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n <small class=\"d-none ms-2 d-md-inline-block\">{{'ADB_HEADER.MENY'|translate}}</small>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\"\r\n [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\">Artfakta</h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div tabindex=\"-1\" class=\"offcanvas-body d-flex flex-column p-0\">\r\n <div class=\"px-3\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"initials\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showArtfakta?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.artinfo.url}}\">\r\n {{navigation.artinfo.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showArtfakta = !showArtfakta\"\r\n attr.aria-controls=\"artfakta-links\" attr.aria-expanded=\"{{showArtfakta}}\">\r\n <span class=\"fas\" [ngClass]=\"showArtfakta?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showArtfakta\" id=\"artfakta-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.keys.url}}\" class=\"text-white\">\r\n {{navigation.keys.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.mySpecies.url}}\" class=\"text-white\">\r\n {{navigation.mySpecies.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.lists.url}}\" class=\"text-white\">\r\n {{navigation.lists.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.imageRec.url}}\" class=\"text-white\">\r\n {{navigation.imageRec.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1\">\r\n <a href=\"{{navigation.filter.url}}\" class=\"text-white\">\r\n {{navigation.filter.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}?lang={{trans.currentLang}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showNOS?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.nameAndRelationship.url}}\">\r\n {{navigation.nameAndRelationship.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showNOS = !showNOS\"\r\n attr.aria-controls=\"nos-links\" attr.aria-expanded=\"{{showNOS}}\">\r\n <span class=\"fas\" [ngClass]=\"showNOS?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showNOS\" id=\"nos-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.nameSearch.url}}\" class=\"text-white\">\r\n {{navigation.nameSearch.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"d-block py-1 text-white\">\r\n <a href=\"{{navigation.match.url}}\" class=\"text-white\">\r\n {{navigation.match.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n {{'ADB_HEADER.ARTPORTALEN_TITLE'|translate}}\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white pt-1\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u class=\"me-1\">{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u> <span class=\"fas fa-external-link\"></span></a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div id=\"pattern\" class=\"flex-grow-1\">\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ElementRef, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class AdbDropdownService {\r\n currentMenu: any;\r\n currentMenuId: string;\r\n}","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from \"@angular/core\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@Directive({\r\n selector: '[adbDropdown]',\r\n exportAs: 'adbDropdown'\r\n})\r\nexport class AdbDropdownDirective {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private adbDropdownService: AdbDropdownService) {\r\n this.id = this.getId();\r\n this.dropId = this.getId();\r\n }\r\n\r\n @Output() adbDropdown = new EventEmitter();\r\n @Input() insideClick = false;\r\n\r\n @HostBinding('id')\r\n id: string;\r\n\r\n @HostBinding('attr.data-toggle')\r\n dataToggle = \"dropdown\";\r\n\r\n @HostBinding('attr.aria-haspopup')\r\n haspPopup = true;\r\n\r\n @HostBinding('attr.aria-expanded')\r\n expanded = false;\r\n\r\n @HostBinding('attr.aria-controls')\r\n dropId:string;\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n this.adbDropdownService.currentMenuId = this.id;\r\n const node = this.elementRef.nativeElement.parentNode;\r\n const toggleButton = node.querySelector('.dropdown-toggle');\r\n let style = `transform:translate3d(0px, ${toggleButton?.clientHeight + 1}px, 0px);`;\r\n const menu = node.querySelector('.dropdown-menu');\r\n if (menu) {\r\n this.adbDropdownService.currentMenu = this.elementRef.nativeElement;\r\n if (menu.classList?.contains('dropdown-menu-end')) {\r\n style = style + 'inset: 0px 0px auto auto;';\r\n }\r\n menu.setAttribute('style', style);\r\n menu.setAttribute('id', this.dropId);\r\n if (menu.classList.contains('show')) {\r\n menu.classList.remove('show');\r\n this.expanded = false;\r\n } else {\r\n this.adbDropdown.emit();\r\n menu.classList.add('show');\r\n this.expanded = true;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n onCheckOutSideClick(target: any): void {\r\n if (this.adbDropdownService.currentMenuId === this.id) {\r\n const parent = this.insideClick?this.elementRef.nativeElement.parentNode:this.elementRef.nativeElement;\r\n const clickedInside = parent.contains(target);\r\n if (!clickedInside) {\r\n const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');\r\n parent?.classList.remove('show');\r\n this.expanded = false;\r\n }\r\n } else {\r\n const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');\r\n parent?.classList.remove('show');\r\n this.expanded = false;\r\n }\r\n }\r\n\r\n close(): void {\r\n const node = this.elementRef.nativeElement.parentNode;\r\n const menu = node.querySelector('.dropdown-menu');\r\n menu.classList.remove('show');\r\n this.expanded = false;\r\n }\r\n\r\n private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbDropdownDirective } from \"./adb-dropdown.directive\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbDropdownDirective],\r\n exports: [AdbDropdownDirective],\r\n providers: [AdbDropdownService]\r\n})\r\nexport class AdbDropdownModule { }","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 @Output() public onHidden: EventEmitter<any> = new EventEmitter();\r\n \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 }else{\r\n this.onHidden.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 totalCount: number;\r\n limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n\r\n @Input('totalCount') set setTotalCount(value: number) {\r\n this.totalCount = value;\r\n this.calculatePages();\r\n }\r\n\r\n @Input('limit') set setLimit(value: number) {\r\n this.limit = value ?? PagerBaseDirective.DEFAULT_LIMIT;\r\n this.calculatePages();\r\n }\r\n\r\n pages: Array<number>;\r\n\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n if (this.totalCount >= 0 && this.limit > 0) {\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 } else {\r\n this.amountOfPages = 0;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, 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 @Input() offsetName: string = \"offset\";\r\n @Input() infiniteLimit = false;\r\n params: { first: any, prev: any, pages?: any[], next: any, last: any };\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[this.offsetName]) {\r\n this.currentPage = (+params[this.offsetName] / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n //create model\r\n this.params = {\r\n first: { [this.offsetName]: 0 },\r\n prev: { [this.offsetName]: (this.currentPage - 2) * this.limit },\r\n pages: [],\r\n next: { [this.offsetName]: this.currentPage * this.limit },\r\n last: { [this.offsetName]: (this.amountOfPages - 1) * this.limit },\r\n };\r\n if (this.pages) {\r\n for (const page of this.pages) {\r\n this.params.pages.push({ name: page, params: { [this.offsetName]: (page - 1) * this.limit } });\r\n }\r\n }\r\n\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 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.first\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.prev\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage===1}\" [attr.aria-disabled]=\"currentPage===1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page.name\" *ngFor=\"let page of params.pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"page.params\"\r\n queryParamsHandling=\"merge\">{{page.name}}</a>\r\n </li>\r\n <li class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.next\" queryParamsHandling=\"merge\"\r\n [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\" [attr.aria-disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <ng-container *ngIf=\"!infiniteLimit\">\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li class=\"page-item\" *ngIf=\"infiniteLimit\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"params.last\" queryParamsHandling=\"merge\"\r\n [attr.aria-disabled]=\"currentPage>=amountOfPages\" [ngClass]=\"{'pe-none opacity-50':currentPage>=amountOfPages}\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager',\r\n templateUrl: 'pager-inline.html'\r\n})\r\nexport class PagerInlineComponent extends PagerBaseDirective implements OnInit {\r\n @Output() pageChanged = new EventEmitter<number>();\r\n constructor() {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.calculatePages();\r\n }\r\n onFirstClick(): void {\r\n this.currentPage = 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onPrevClick(): void {\r\n this.currentPage = this.currentPage - 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onPageClick(page: number): void {\r\n this.currentPage = page;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n }\r\n onNextClick(): void {\r\n this.currentPage = this.currentPage + 1;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n onLastClick(): void {\r\n this.currentPage = this.amountOfPages;\r\n this.pageChanged.emit(this.currentPage - 1);\r\n this.calculatePages();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&¤tPage<=amountOfPages\" class=\"d-flex justify-content-end pr-2 my-1\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onFirstClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onPrevClick()\" [ngClass]=\"currentPage==1?'opacity-50 pe-none':''\" [disabled]=\"currentPage==1\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage==page\" *ngFor=\"let page of pages\">\r\n <button class=\"page-link\" (click)=\"onPageClick(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onNextClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n <li class=\"page-item\">\r\n <button class=\"page-link\" (click)=\"onLastClick()\" [ngClass]=\"currentPage>=amountOfPages?'opacity-50 pe-none':''\" [disabled]=\"currentPage>=amountOfPages\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n</nav>\r\n","\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\nimport { PagerInlineComponent } from \"./pager-inline\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent, PagerInlineComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent, PagerInlineComponent]\r\n})\r\nexport class AdbPagersModule { }","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Navigation } from \"./navigation.model\";\r\n\r\n@Component({\r\n selector: 'adb-footer',\r\n templateUrl: './adb-footer.component.html'\r\n})\r\nexport class ADBFooterComponent implements OnInit,OnDestroy {\r\n private subscription = new Subscription();\r\n translationFinished = false;\r\n url: string;\r\n @Input() artfakta = true;\r\n navigation: Navigation;\r\n baseUrl: any;\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(): void {\r\n this.url = window.location.href;\r\n this.baseUrl = this.envService.environment.resourceUrl;\r\n this.initTranslations(this.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 const url = this.artfakta ? baseUrl + `/assets/i18n/${lang}.json` : baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}","<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 justify-content-center\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a href=\"https://artfakta.se/om\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://artfakta.se/om\" fragment=\"accessability\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a class=\"d-block text-white mb-2\" href=\"mailto:artfakta@artdatabanken.se\">{{'FOOTER.SUPPORT'|translate}}: artfakta@artdatabanken.se</a>\r\n </div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare/\" target=\"_blank\">{{'FOOTER.TERMS_OF_USE'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" target=\"_blank\">{{'FOOTER.PERSONAL_DATA'|translate}} <span\r\n class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://metadata.artfakta.se/dataproviders\" target=\"_blank\">{{'FOOTER.DATA_SOURCES'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n <a class=\"d-block text-white mb-2\" href=\"https://status.artdatabanken.se/status\" target=\"_blank\">{{'FOOTER.API'|translate}} <span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 px-md-2\">\r\n <div class=\"mb-2 text-white\">{{'FOOTER.INFO'|translate}}</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\nimport { ADBNavComponent } from './adb-nav.component';\r\nimport { AdbDropdownModule } from '../adb-dropdown/adb-dropdown.module';\r\nimport { AdbPagersModule } from '../pagers/pagers.module';\r\nimport { ADBFooterComponent } from './adb-footer.component';\r\n@NgModule({\r\n declarations: [ADBNavComponent,ADBFooterComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule,\r\n AdbDropdownModule,\r\n AdbPagersModule\r\n ],\r\n exports: [ADBNavComponent,ADBFooterComponent]\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 { 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 { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Event, NavigationEnd, Router } from \"@angular/router\";\r\nimport { Navigation } from \"./navigation.model\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\n\r\n\r\n@Component({\r\n selector: 'adb-artportalen-nav',\r\n templateUrl: './adb-artportalen-nav.component.html'\r\n})\r\nexport class ArtportalenNavComponent 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\r\n @Input() showPattern = false;\r\n fullName: string;\r\n translationFinished = false;\r\n lastPosition = 0;\r\n\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n };\r\n\r\n navigation: Navigation;\r\n url: string;\r\n showNavMenu = false;\r\n showUserMenu = false;\r\n\r\n showReport = true;\r\n showObservations = true;\r\n showSubs = false;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private router: Router,\r\n public trans: TranslateService,\r\n private envService: EnvironmentService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n const url = '/assets/artportalen/links-ap3.json';\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + url).subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.showNavMenu = false;\r\n this.dropMenuChange.emit(this.showNavMenu)\r\n }\r\n });\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n this.showUserMenu = false;\r\n if (this.showNavMenu !== show) {\r\n this.showNavMenu = 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.showNavMenu = false;\r\n this.dropMenuChange.emit(false);\r\n }\r\n\r\n onUserClick():void{\r\n if(this.fullName){\r\n this.logout(); \r\n }else{\r\n this.login(); \r\n }\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\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 const url = baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\n","<div class=\"bg-primary adb-main-header position-static\" (adbClickOutside)=\"showMenuDropdown(false);\">\r\n <header class=\"container-lg px-0\" *ngIf=\"translationFinished\">\r\n <div [attr.id]=\"showPattern?'banner':''\" class=\"px-1 d-flex flex-wrap align-items-center gap-2\">\r\n <nav class=\"d-flex flex-grow-1 align-items-center pe-2 py-2 gap-2\">\r\n <a class=\"d-flex text-white text-decoration-none d-flex gap-2\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <img class=\"d-none d-sm-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n <a [href]=\"navigation?.home\" class=\"text-white text-decoration-none fs-1 fw-bold\">Artportalen beta</a>\r\n </nav>\r\n <div class=\"ms-auto d-flex align-items-center gap-2\">\r\n <div><ng-content></ng-content></div>\r\n <div>\r\n <button class=\"d-none d-md-block btn btn-primary-dark btn-lg\" type=\"button\"\r\n title=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n attr.aria-label=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n (click)=\"onUserClick()\">\r\n <small>{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}</small>\r\n </button>\r\n </div>\r\n <div>\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\" title=\"{{'HEADER.MENY'|translate}}\" attr.aria-label=\"{{'HEADER.MENY'|translate}}\" (click)=\"showMenuDropdown(!showNavMenu)\">\r\n <i class=\"fas fa-bars\"></i>\r\n <small class=\"ms-2 d-none d-md-inline-block\">{{'HEADER.MENY'|translate}}</small>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-center d-md-none p-2 border-dark border-top\">\r\n <button class=\"btn btn-primary-dark btn-lg\" type=\"button\"\r\n title=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\"\r\n attr.aria-label=\"{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}\" (click)=\"onUserClick()\">\r\n <small>{{(!fullName ? 'HEADER.LOGIN' : 'HEADER.LOGOUT')|translate}}</small>\r\n </button>\r\n </div>\r\n </header>\r\n <div *ngIf=\"navigation\" role=\"dialog\" class=\"offcanvas offcanvas-end bg-primary text-white\" [class.show]=\"showNavMenu\" tabindex=\"-1\" aria-labelledby=\"offcanvasNav\">\r\n <div class=\"offcanvas-header\">\r\n <h1 class=\"offcanvas-title h-section mb-0\" id=\"offcanvasNav\"><a [href]=\"navigation.home\" class=\"text-white text-decoration-none\">Artportalen beta</a></h1>\r\n <button type=\"button\" class=\"btn-close btn-close-white\" attr.aria-label=\"{{'CLOSE'|translate}}\" (click)=\"showMenuDropdown(false)\"></button>\r\n </div>\r\n <div class=\"offcanvas-body d-flex flex-column p-0\">\r\n <div class=\"px-3\">\r\n <div class=\"d-flex flex-wrap justify-content-between align-items-center mb-2 gap-1 px-2\">\r\n <ng-container *ngIf=\"fullName\">\r\n <div>\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-primary-dark\">\r\n {{'HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div>{{fullName}}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!fullName\">\r\n <div class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-primary-dark\" (click)=\"login()\" id=\"start-login\">{{'HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"text-white\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <ul class=\"list-group list-group-flush border-top\">\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showReport?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"py-1 text-white flex-grow-1\" href=\"{{navigation.report.url}}\">\r\n {{navigation.report.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showReport = !showReport\" attr.aria-controls=\"report-links\" attr.aria-expanded=\"{{showReport}}\">\r\n <span class=\"fas\" [ngClass]=\"showReport?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showReport\" id=\"report-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <div class=\"d-flex\">\r\n <a href=\"{{navigation.checklist.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.checklist.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.report.url}}\">\r\n {{'HEADER.REPORT'|translate}}\r\n </a>\r\n <li class=\"d-block py-1\">\r\n <div class=\"d-flex \">\r\n <a href=\"{{navigation.wanted.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.wanted.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showObservations?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <a class=\"py-1 text-white flex-grow-1\" href=\"{{navigation.observations.url}}\">\r\n {{navigation.observations.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showObservations = !showObservations\" attr.aria-controls=\"observations-links\" attr.aria-expanded=\"{{showObservations}}\">\r\n <span class=\"fas\" [ngClass]=\"showObservations?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showObservations\" id=\"observations-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.observations.url}}\">\r\n {{'HEADER.TODAYS_OBSERVATIONS'|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n <li class=\"list-group-item bg-primary\" [ngClass]=\"showSubs?'border-bottom-0 pb-0':''\">\r\n <div class=\"d-flex justify-content-between gap-2\">\r\n <button class=\"btn btn-link p-0 text-white w-100 text-start\" (click)=\"showSubs = !showSubs\">\r\n {{navigation.subcriptions.transId|translate}}\r\n </button>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"showSubs = !showSubs\" attr.aria-controls=\"subs-links\" attr.aria-expanded=\"{{showSubs}}\">\r\n <span class=\"fas\" [ngClass]=\"showSubs?'fa-chevron-up':'fa-chevron-down'\"></span>\r\n </button>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item bg-primary pt-0 px-3\" *ngIf=\"showSubs\" id=\"subs-links\">\r\n <ul class=\"list-unstyled\">\r\n <li class=\"d-block py-1\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.subcriptions.url}}\">\r\n {{'HEADER.MY_SUBSCRIPTIONS'|translate}}\r\n </a>\r\n </li>\r\n <li class=\"py-1\">\r\n <div class=\"d-flex\">\r\n <a href=\"{{navigation.events.url}}\" class=\"text-white flex-grow-1\">\r\n {{navigation.events.transId|translate}}\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block py-1 text-white\" href=\"{{navigation.fyndregler.url}}\">\r\n {{navigation.fyndregler.transId|translate}}\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artportalenUrl\">\r\n Artportalen.se\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <a class=\"d-block fw-bold py-1 text-white\" [href]=\"navigation.artfaktaUrl\">\r\n {{'HEADER.ARTFAKTA'|translate}}\r\n <i class=\"fas fa-external-link\"></i>\r\n </a>\r\n </li>\r\n <li class=\"list-group-item bg-primary\">\r\n <small class=\"d-block text-white pt-1\">\r\n {{'HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\">\r\n {{'HEADER.ARTDATABANKEN'|translate}}\r\n <span class=\"fas fa-external-link\"></span>\r\n </a>\r\n </small>\r\n </li>\r\n </ul>\r\n </div>\r\n <div id=\"pattern\" class=\"flex-grow-1\"> </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { EnvironmentService } from \"./environment.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Navigation } from \"./navigation.model\";\r\n\r\n@Component({\r\n selector: 'adb-artportalen-footer',\r\n templateUrl: './adb-artportalen-footer.component.html'\r\n})\r\nexport class ArtportalenFooterComponent implements OnInit,OnDestroy {\r\n private subscription = new Subscription();\r\n translationFinished = false;\r\n url: string;\r\n navigation: Navigation;\r\n baseUrl: any;\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(): void {\r\n this.url = window.location.href;\r\n this.baseUrl = this.envService.environment.resourceUrl;\r\n this.initTranslations(this.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 const url = baseUrl + `/assets/artportalen/i18n/${lang}.json`;\r\n this.subscription.add(this.httpClient.get(url).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n \r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}","<footer class=\"bg-primary-dark py-2 mt-auto container-fluid\" *ngIf=\"translationFinished\">\r\n <div class=\"d-flex justify-content-center\">\r\n <div class=\"container py-3 px-5 justify-content-center text-white\">\r\n <div class=\"row mb-4\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4 mb-3\">\r\n <a href=\"https://www.artdatabanken.se/artportalen/\" class=\"d-block text-white mb-2\">{{'FOOTER.ABOUT'|translate}}</a>\r\n <a href=\"https://www.artdatabanken.se/artportalen-tillganglighetsredogorelse\" class=\"d-block text-white mb-2\">{{'FOOTER.WCAG'|translate}}</a>\r\n <a href=\"https://www.artdatabanken.se/om-oss/kontakt/support\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.SUPPORT'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.artdatabanken.se/tjanster-och-miljodata/villkor-kontohavare\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.TERMS_OF_USE'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.artdatabanken.se/om-oss/behandling-av-personuppgifter\" class=\"d-block text-white mb-2\"><span class=\"me-1\">{{'FOOTER.PERSONAL_DATA'|translate}}</span><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2\" style=\"font-variant: small-caps;\"><sub><strong>{{'FOOTER.PARTNERS'|translate}}</strong></sub></div>\r\n <a href=\"https://birdlife.se\" class=\"d-block text-white mb-2\"><span class=\"me-1\">Birdlife Sverige</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://svenskbotanik.se\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Svenska Botaniska Föreningen</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.sef.nu\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Sveriges Entomologiska Förening</span><span class=\"fas fa-external-link\"></span></a>\r\n <a href=\"https://www.svampar.se\" class=\"d-block text-nowrap text-white mb-2\"><span class=\"me-1\">Sveriges Mykologiska Förening</span><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-2\"></div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3 text-white\">\r\n <div>{{'FOOTER.INFO'|translate}}</div>\r\n <div>{{'FOOTER.INFO2'|translate}}</div>\r\n <div>{{'FOOTER.INFO3'|translate}}\r\n <a href=\"https://www.naturvardsverket.se\" class=\"text-white mb-2\"><u class=\"me-1\">Naturvårdsverket.</u><span class=\"fas fa-external-link\"></span></a>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">{{'FOOTER.INFO4'|translate}}.</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <a class=\"text-white text-decoration-none d-flex gap-2 mb-3\" href=\"https://www.artdatabanken.se/\" target=\"new\">\r\n <img class=\"d-block d-md-none\" style=\"height: 2.6rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <img class=\"d-none d-md-block\" style=\"height: 2rem;\" src=\"/assets/images/slu.svg\" alt=\"logo\">\r\n <div class=\"border-end d-none d-sm-block\"></div>\r\n <div class=\"border-end d-block d-sm-none\"></div>\r\n <img class=\"d-none d-md-block align-self-center pe-5\" style=\"height: 0.7rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n <img class=\"d-block d-md-none align-self-center pe-5\" style=\"height: 0.8rem;\" src=\"/assets/images/artdatabanken.svg\" alt=\"logo\">\r\n </a>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\nimport { ArtportalenNavComponent } from './adb-artportalen-nav.component';\r\nimport { AdbDropdownModule } from '../adb-dropdown/adb-dropdown.module';\r\nimport { AdbPagersModule } from '../pagers/pagers.module';\r\nimport { ArtportalenFooterComponent } from './adb-artportalen-footer.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ArtportalenNavComponent,\r\n ArtportalenFooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule,\r\n AdbDropdownModule,\r\n AdbPagersModule\r\n ],\r\n exports: [\r\n ArtportalenNavComponent,\r\n ArtportalenFooterComponent\r\n ]\r\n})\r\nexport class ArtportalenNavModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ArtportalenNavModule> {\r\n return {\r\n ngModule: ArtportalenNavModule,\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 { DatePipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n@Pipe({\r\n name: 'adbLocaleDate',\r\n pure: false\r\n})\r\nexport class LocaleDatePipe implements PipeTransform {\r\n constructor(private translate: TranslateService) {}\r\n transform(value: any, format: string) {\r\n return new DatePipe(this.translate.currentLang).transform(value, format, null, this.translate.currentLang);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'adbEmptyValue'\r\n})\r\nexport class EmptyValuePipe implements PipeTransform {\r\n transform(value: any) {\r\n if (!value) {\r\n return '-';\r\n }\r\n if (value.trim() === '') {\r\n return '-';\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n forbiddenSymbols = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n transform(value: any, searchs: any): any {\r\n if (!value) { return value; }\r\n value = value + '';\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter(s => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.forbiddenSymbols.test(search)) {\r\n search = search.replace(this.forbiddenSymbols, '');\r\n }\r\n const normalizedSearch = this.normalizeText(search);\r\n const normalizedValue = this.normalizeText(value);\r\n const start = normalizedValue ? normalizedValue.indexOf(normalizedSearch) : -1;\r\n if (start !== -1) {\r\n const regex = new RegExp(`(${search})(?![^<]*>)`, 'gi');\r\n const match = value.match(regex);\r\n if (match) {\r\n value = value.replace(regex, '<mark>$1</mark>');\r\n }\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n private normalizeText(text: string): string {\r\n return text?.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLocaleLowerCase();\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 { LocaleDatePipe } from \"./date.pipe\";\r\nimport { EmptyValuePipe } from \"./emptyValue.pipe\";\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, LocaleDatePipe, EmptyValuePipe],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe, EmptyValuePipe]\r\n})\r\nexport class AdbPipesModule { }","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { addDays, addMonths, addYears, eachDayOfInterval, eachWeekOfInterval, endOfDay, endOfMonth, getHours, getISOWeek, getMinutes, getMonth, isSameDay, isSameMonth, isSameYear, isValid, isWithinInterval, parseISO, startOfDay, startOfMonth, subMonths, subYears } from \"date-fns\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AdbDatePickerDirective } from \"./adb-date-picker.directive\";\r\n\r\n@Component({\r\n selector: 'adb-date-picker',\r\n templateUrl: './adb-date-picker.component.html'\r\n})\r\nexport class AdbDatePickerComponent implements OnInit, OnDestroy {\r\n private subscriptions = new Subscription();\r\n static MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\r\n static WEEK_DAYS = ['1', '2', '3', '4', '5', '6', '7'];\r\n static YEAR_INTERVALL = 8;\r\n currentdDate: Date = new Date();\r\n currentMonth: number;\r\n\r\n selectedDate: Date = new Date();\r\n years: { value: Date, title: string, isThisYear: boolean }[];\r\n months: { value: number, isThisMonth: boolean }[];\r\n weekDays = AdbDatePickerComponent.WEEK_DAYS;\r\n weeks: PickerWeek[];\r\n range: { start: any; end: any; };\r\n noYearMode = false;;\r\n\r\n @Input() initialDate: Date;\r\n @Input() settings: any;\r\n @Input() toLeft: boolean;\r\n\r\n @HostBinding('id')\r\n @Input() id: string;\r\n\r\n @Output() selectDate = new EventEmitter<Date>();\r\n @Output() hide = new EventEmitter<void>();\r\n\r\n constructor(public elementRef: ElementRef, private translate: TranslateService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.settings) {\r\n if (this.settings?.minDate || this.settings?.maxDate) {\r\n const minDate = AdbDatePickerComponent.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerComponent.parseDate(this.settings.maxDate);\r\n this.range = {\r\n start: minDate ? startOfDay(minDate) : subYears(new Date(), 1000),\r\n end: maxDate ? endOfDay(maxDate) : addYears(new Date(), 1000)\r\n };\r\n }\r\n if(this.settings.noYear){\r\n this.noYearMode = this.settings.noYear;\r\n }\r\n }\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\r\n this.currentMonth = getMonth(this.selectedDate);\r\n this.createCalendar()\r\n }\r\n\r\n onShowYear(): void {\r\n this.months = null;\r\n this.loadYearsInterval();\r\n }\r\n\r\n onShowMonth(): void {\r\n this.years = null;\r\n this.loadMonths();\r\n }\r\n\r\n onSelectYear(inYear?: Date): void {\r\n this.selectedDate.setFullYear(inYear.getFullYear());\r\n this.loadMonths();\r\n this.years = null;\r\n }\r\n\r\n onSelectMonth(inMonth?: number): void {\r\n this.selectedDate.setMonth(inMonth);\r\n this.currentMonth = getMonth(this.selectedDate);\r\n this.createCalendar();\r\n this.years = null;\r\n this.months = null;\r\n }\r\n\r\n onPrev(): void {\r\n if (this.years) {\r\n this.selectedDate = subYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n this.loadYearsInterval();\r\n } else if (this.months) {\r\n this.selectedDate = subYears(this.selectedDate, 1);\r\n this.loadMonths();\r\n } else {\r\n this.selectedDate = subMonths(this.selectedDate, 1);\r\n this.createCalendar();\r\n }\r\n this.currentMonth = getMonth(this.selectedDate);\r\n }\r\n\r\n onNext(): void {\r\n if (this.years) {\r\n this.selectedDate = addYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n this.loadYearsInterval();\r\n } else if (this.months) {\r\n this.selectedDate = addYears(this.selectedDate, 1);\r\n this.loadMonths();\r\n } else {\r\n this.selectedDate = addMonths(this.selectedDate, 1);\r\n this.createCalendar();\r\n }\r\n this.currentMonth = getMonth(this.selectedDate);\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private loadMonths(): void {\r\n this.months = AdbDatePickerComponent.MONTHS.map(x => {\r\n return {\r\n value: x,\r\n isThisMonth: getMonth(this.selectedDate) === x && isSameYear(this.currentdDate, this.selectedDate)\r\n }\r\n });\r\n }\r\n\r\n private loadYearsInterval() {\r\n let year = subYears(this.selectedDate, AdbDatePickerComponent.YEAR_INTERVALL);\r\n const years = [];\r\n for (let i = 0; i < 16; i++) {\r\n years.push({\r\n value: year,\r\n title: year.getFullYear(),\r\n isThisYear: isSameYear(year, this.currentdDate)\r\n });\r\n year = addYears(year, 1);\r\n }\r\n this.years = years;\r\n }\r\n\r\n onSelectDate(day: PickerDay): void {\r\n this.selectDate.emit(day.value);\r\n }\r\n\r\n private createCalendar() {\r\n const weeks = [];\r\n const monthInterval = { start: startOfMonth(this.selectedDate), end: endOfMonth(this.selectedDate) };\r\n var fnsWweeks = eachWeekOfInterval(monthInterval, { weekStartsOn: this.translate.currentLang === 'sv' || this.translate.currentLang === 'sv-SE' ? 1 : 0 });\r\n for (const fnsWeek of fnsWweeks) {\r\n const week = { weekNumber: 0, days: [] };\r\n week.weekNumber = getISOWeek(new Date(fnsWeek));\r\n const weekInterval = { start: new Date(fnsWeek), end: addDays(new Date(fnsWeek), 6) };\r\n week.days = eachDayOfInterval(weekInterval).map(day => {\r\n day.setHours(getHours(new Date()));\r\n day.setMinutes(getMinutes(new Date()));\r\n return {\r\n value: day,\r\n isSelected: isSameYear(day, this.initialDate) && isSameDay(day, this.initialDate) && isSameMonth(day, this.initialDate),\r\n isInRange: this.range ? isWithinInterval(day, this.range) : true,\r\n isToday: isSameDay(day, new Date()),\r\n inMonth: monthInterval.start.getMonth() === day.getMonth()\r\n };\r\n });\r\n weeks.push(week);\r\n }\r\n this.weeks = weeks;\r\n }\r\n\r\n static parseDate(value: Date | string): Date {\r\n if (typeof value === 'string') {\r\n if (isValid(parseISO(value))) {\r\n return parseISO(value);\r\n } else {\r\n return null;\r\n }\r\n } else if (value instanceof Date) {\r\n return value;\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport interface PickerWeek {\r\n weeks: {\r\n weekNumber: number;\r\n days: PickerDay[]\r\n }[];\r\n}\r\n\r\nexport interface PickerDay {\r\n value: Date,\r\n isToday: boolean,\r\n isInRange: boolean,\r\n inMonth: boolean,\r\n isSelected: boolean\r\n}","<div class=\"position-relative\" [class.to-left]=\"toLeft\">\r\n <nav class=\"bg-white shadow rounded position-absolute\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\" [disabled]=\"noYearMode&¤tMonth===0\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth();$event.stopPropagation()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button *ngIf=\"!noYearMode\" tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear();$event.stopPropagation()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button tabIndex=\"-1\" *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null;$event.stopPropagation()\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button tabIndex=\"-1\" *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear();$event.stopPropagation()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button tabIndex=\"-1\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\" [disabled]=\"noYearMode&¤tMonth===11\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button type=\"button\" tabIndex=\"-1\" class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value);$event.stopPropagation()\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button type=\"button\" tabIndex=\"-1\" class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value);$event.stopPropagation()\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\" *ngIf=\"!years&&!months\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button tabIndex=\"-1\" class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\" type=\"button\" \r\n [class.border]=\"day.isToday\" [class.bg-primary]=\"day.isSelected\" [class.text-white]=\"day.isSelected\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </nav>\r\n</div>\r\n","import { ComponentRef, Inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\n\r\n@Injectable()\r\nexport class AdbDatePickerService {\r\n viewRef: ComponentRef<AdbDatePickerComponent>;\r\n}","import { formatDate } from \"@angular/common\";\r\nimport { Directive, ElementRef, forwardRef, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, ViewContainerRef } from \"@angular/core\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO, setHours, setMinutes } from \"date-fns\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\nimport { AdbDatePickerService } from \"./adb-date-picker.service\";\r\n\r\n@Directive({\r\n selector: `input[adbDatepicker]`,\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AdbDatePickerDirective),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: AdbDatePickerDirective,\r\n multi: true,\r\n },]\r\n})\r\nexport class AdbDatePickerDirective implements ControlValueAccessor, Validator, OnInit, OnDestroy {\r\n @HostBinding('autocomplete') autocomplete = 'off';\r\n private subscriptions = new Subscription();\r\n @Input() format = 'yyyy-MM-dd';\r\n @Input() toLeft: boolean;\r\n @Input() settings: { maxDate?: Date | string, minDate?: Date | string } = null;\r\n @Input() pickOnly = true;\r\n id: string;\r\n initialDate: Date;\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private adbDatePickerService: AdbDatePickerService,\r\n public translate: TranslateService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.pickOnly) {\r\n this.elementRef.nativeElement.setAttribute(\"placeholder\", this.format);\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.adbDatePickerService.viewRef) {\r\n this.adbDatePickerService.viewRef.destroy();\r\n }\r\n const viewRef = this.viewContainerRef.createComponent<AdbDatePickerComponent>(AdbDatePickerComponent);\r\n viewRef.instance.settings = this.settings;\r\n viewRef.instance.toLeft = this.toLeft;\r\n viewRef.instance.initialDate = this.initialDate;\r\n this.id = this.getId();\r\n viewRef.instance.id = this.id;\r\n viewRef.instance.selectDate.subscribe((date) => {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));\r\n this.onChange(date);\r\n this.initialDate = date;\r\n this.onHide();\r\n });\r\n viewRef.instance.hide.subscribe(() => {\r\n this.onHide();\r\n });\r\n this.adbDatePickerService.viewRef = viewRef;\r\n }\r\n\r\n @HostListener('keyup', ['$event']) public onKeyup(event: KeyboardEvent): void {\r\n if (!this.pickOnly) {\r\n const date = AdbDatePickerDirective.tryParse((event.target as HTMLInputElement).value);\r\n if (date) {\r\n const now = new Date();\r\n date.setHours(now.getHours()); date.setMinutes(now.getMinutes()); date.setSeconds(now.getSeconds());\r\n this.onChange(date);\r\n } else {\r\n this.onChange((event.target as HTMLInputElement).value); //send inccorect values to form\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup.esc')\r\n onHide(): void {\r\n this.adbDatePickerService.viewRef = null;\r\n this.viewContainerRef.detach();\r\n this.viewContainerRef.clear();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'Tab') {\r\n this.onHide();\r\n }\r\n else if (this.pickOnly) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n onCheckOutSideClick(target: any): void {\r\n const nativeElement = this.adbDatePickerService.viewRef?.instance.elementRef.nativeElement ?? null;\r\n if (nativeElement) {\r\n if (nativeElement.id === this.id) {\r\n if (!target.hasAttribute('adbdatepicker')) {\r\n const clickedInside = nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.onHide();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n //Validator\r\n validate(control: AbstractControl): ValidationErrors {\r\n const value = control.value;\r\n if (!value) {\r\n return null;\r\n }\r\n if (value instanceof Date) {\r\n return null;\r\n }\r\n if (typeof value === 'string' || value instanceof String) {\r\n const date = AdbDatePickerDirective.tryParse(value as string);\r\n if (!date) {\r\n return { date: true }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onValidationChange: any = () => { };\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n //ControlValueAccessor\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n writeValue(value: Date | string): void {\r\n if (!value) {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\r\n return;\r\n }\r\n if (typeof value === 'string' || value instanceof String) {\r\n const date = AdbDatePickerDirective.tryParse(value as string);\r\n if (!date) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n return;\r\n }\r\n value = date;\r\n }\r\n if (value instanceof Date) {\r\n this.initialDate = value;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.viewContainerRef.clear();\r\n }\r\n\r\n static tryParse(dateString: string): Date {\r\n const parsed = parseISO(dateString);\r\n return isValid(parsed) ? parsed : null;\r\n }\r\n\r\n private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbPipesModule } from \"../../pipes/pipes.module\";\r\nimport { AdbDatePickerComponent } from \"./adb-date-picker.component\";\r\nimport { AdbDatePickerDirective } from \"./adb-date-picker.directive\";\r\nimport { AdbDatePickerService } from \"./adb-date-picker.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbPipesModule, AdbDirectivesModule],\r\n declarations: [AdbDatePickerComponent, AdbDatePickerDirective],\r\n exports: [AdbDatePickerComponent, AdbDatePickerDirective],\r\n providers: [AdbDatePickerService]\r\n})\r\nexport class AdbDatePickerModule { }","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Renderer2, RendererFactory2 } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { AdbConfirmModal, DialogModel } from \"./adb-confirm-modal\";\r\n\r\n@Injectable()\r\nexport class AdbModalService {\r\n private closeSubject = new Subject<boolean>();\r\n close$ = this.closeSubject.asObservable();\r\n\r\n renderer: Renderer2;\r\n domElem: HTMLElement;\r\n backdrop: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n rendererFactory: RendererFactory2,\r\n private appRef: ApplicationRef,\r\n private injector: Injector) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n hide(confirm: boolean): void {\r\n this.closeSubject.next(confirm);\r\n document.body.removeChild(this.domElem);\r\n document.body.removeChild(this.backdrop);\r\n var main = this.renderer.selectRootElement('main',true);\r\n this.renderer.removeAttribute(main, 'inert');\r\n this.closeSubject.unsubscribe();\r\n this.closeSubject = new Subject<boolean>();\r\n this.close$ = this.closeSubject.asObservable();\r\n }\r\n\r\n showConfirm(model: DialogModel): void {\r\n var main = this.renderer.selectRootElement('main',true);\r\n main.setAttribute('inert','');\r\n this.backdrop = this.renderer.createElement('div');\r\n this.backdrop.classList.add('modal-backdrop', 'fade', 'show');\r\n this.renderer.appendChild(document.body, this.backdrop);\r\n\r\n let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbConfirmModal).create(this.injector);\r\n model.header = model.header ?? 'NOT_SET';\r\n model.text = model.text ?? 'NOT_SET';\r\n model.confirm = model.confirm ?? 'OK';\r\n model.decline = model.decline ?? 'CANCEL';\r\n componentRef.instance.model = model;\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n this.domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(this.domElem);\r\n\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { AdbModalService } from './adb-modal.service';\r\n@Component({\r\n templateUrl: 'adb-confirm-modal.html'\r\n})\r\nexport class AdbConfirmModal {\r\n @Input() public model: DialogModel;\r\n constructor(public modalRef: AdbModalService) {\r\n }\r\n\r\n onClose(confirm: boolean): void {\r\n this.modalRef.hide(confirm);\r\n }\r\n}\r\n\r\nexport interface DialogModel {\r\n header: string;\r\n text: string;\r\n confirm?: string;\r\n decline?: string;\r\n value?: any;\r\n}\r\n","<div class=\"modal fade show\" *ngIf=\"model\" role=\"dialog\"\r\n attr.aria-labelledby=\"mod_header\"\r\n attr.aria-describedby=\"mod_desc\">\r\n <div class=\"modal-dialog modal-dialog-centered\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h1 class=\"h-subsection mb-0 modal-title\" id=\"mod_header\">{{model.header|translate}}</h1>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\" (click)=\"onClose(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div id=\"mod_desc\">{{model.text|translate}}</div>\r\n <div *ngIf=\"model.value\">\r\n <strong>{{model.value}}</strong>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <div class=\"text-right\">\r\n <button type=\"button\" class=\"btn btn-primary me-2\"\r\n (click)=\"onClose(true)\">{{model.confirm|translate}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\"\r\n (click)=\"onClose(false)\">{{model.decline|translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbConfirmModal } from \"./adb-confirm-modal\";\r\nimport { AdbModalService } from \"./adb-modal.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbConfirmModal],\r\n exports: [AdbConfirmModal],\r\n providers: [AdbModalService]\r\n})\r\nexport class AdbModalModule { }","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Renderer2, RendererFactory2 } from \"@angular/core\";\r\nimport { Observable, of, Subject } from \"rxjs\";\r\nimport { delay } from \"rxjs/operators\";\r\nimport { AdbToast } from \"./adb-toast\";\r\n@Injectable()\r\nexport class AdbToastService {\r\n private toasts = new Array<ToastMessage>();\r\n private toastsSubject = new Subject<ToastMessage[]>();\r\n $toasts: Observable<ToastMessage[]> = this.toastsSubject.asObservable();\r\n renderer: Renderer2;\r\n domElement: HTMLElement;\r\n container: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private rendererFactory: RendererFactory2,\r\n private appRef: ApplicationRef,\r\n private injector: Injector) {\r\n }\r\n\r\n add(toastMessage: ToastMessage, time = 4000): void {\r\n this.addContainer();\r\n toastMessage.type = toastMessage.type ? toastMessage.type : ToastType.Success;\r\n toastMessage.index = this.toasts.length;\r\n toastMessage.delay = of(toastMessage).pipe(delay(time)).subscribe(toast => {\r\n this.remove(toast);\r\n });\r\n this.toasts.push(toastMessage);\r\n this.toastsSubject.next(this.toasts);\r\n }\r\n\r\n remove(toast: ToastMessage) {\r\n this.toasts = this.toasts?.filter(x => x.index !== toast.index);\r\n this.toastsSubject.next(this.toasts);\r\n }\r\n\r\n private addContainer(): void {\r\n if (!this.container) {\r\n this.renderer = this.rendererFactory.createRenderer(null, null);\r\n //create container i top\r\n this.container = this.renderer.createElement('div');\r\n this.renderer.appendChild(document.body, this.container);\r\n let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);\r\n this.appRef.attachView(componentRef.hostView);\r\n const element = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n this.container.prepend(element);\r\n }\r\n }\r\n}\r\nexport interface ToastMessage {\r\n header?: string,\r\n message: string,\r\n messageValue?: string;\r\n type?: ToastType,\r\n index?: number;\r\n delay?: any;\r\n}\r\nexport enum ToastType {\r\n Info = 1,\r\n Success = 2,\r\n Warn = 3\r\n}","\r\nimport { Component } from '@angular/core';\r\nimport { AdbToastService, ToastMessage, ToastType } from './adb-toast.service';\r\n@Component({\r\n templateUrl: 'adb-toast.html'\r\n})\r\nexport class AdbToast {\r\n toasts: ToastMessage[];\r\n toastType = ToastType;\r\n constructor(public toastService: AdbToastService) {\r\n this.toastService.$toasts.subscribe(toasts => {\r\n this.toasts = toasts;\r\n });\r\n }\r\n onRemoveToast(toast: ToastMessage): void {\r\n this.toastService.remove(toast);\r\n }\r\n}","<div class=\"position-fixed bottom-0 end-0\" style=\"z-index: 50000;min-width: 15rem;\">\r\n <div class=\"text-white px-3 pb-3 pt-2 mb-2\" *ngFor=\"let toast of toasts\"\r\n [class.bg-success]=\"toast.type===toastType.Success\" [class.bg-info]=\"toast.type===toastType.Info\" [class.bg-danger]=\"toast.type===toastType.Warn\">\r\n <div class=\"d-flex align-items-center justify-content-between pb-1\" *ngIf=\"toast.header\">\r\n <div class=\"fw-bold pb-1\">{{toast.header|translate}}</div>\r\n <button class=\"btn top-0 end-0 btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-1\">\r\n <div *ngIf=\"!toast.messageValue\">{{toast.message|translate}}</div>\r\n <div *ngIf=\"toast.messageValue\">{{(toast.message|translate:{value:toast.messageValue} )}}</div>\r\n <button *ngIf=\"!toast.header\" class=\"btn p-0 ms-2 text-white\" (click)=\"onRemoveToast(toast)\"><i class=\"fas fa-times\"></i></button>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbToast } from \"./adb-toast\";\r\nimport { AdbToastService } from \"./adb-toast.service\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule.forChild(), AdbDirectivesModule],\r\n declarations: [AdbToast],\r\n exports: [AdbToast],\r\n providers: [AdbToastService]\r\n})\r\nexport class AdbToastModule { }","import { Component, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'adb-help-button',\r\n templateUrl: 'help-button.component.html'\r\n})\r\nexport class AdbHelpButtonComponent implements OnInit {\r\n showHelp = false;\r\n id: number;\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.id = + Math.floor(Math.random() * Date.now())\r\n }\r\n\r\n onClick(): void {\r\n const node = this.elementRef.nativeElement.parentNode;\r\n if (node) {\r\n if (this.showHelp) {\r\n node.classList.remove('position-relative');\r\n } else {\r\n node.classList.add('position-relative');\r\n }\r\n }\r\n this.showHelp = !this.showHelp\r\n }\r\n}","<div>\r\n <button type=\"button\" id=\"help-button\" tabindex=\"-1\" (adbClickOutside)=\"showHelp=false\" class=\"ms-auto btn btn-help p-0 w-auto\" \r\n [attr.aria-controls]=\"id\" attr.aria-label=\"Help\" [attr.aria-expanded]=\"showHelp\" (click)=\"onClick()\">\r\n </button>\r\n</div>\r\n<div>\r\n <div *ngIf=\"showHelp\" [id]=\"id\" class=\"position-absolute start-0 w-100 adb-plate-primary text-start shadow \" style=\"z-index:4\">\r\n <div class=\"d-flex align-items-center\">\r\n <div><ng-content></ng-content></div>\r\n <div class=\"ms-auto align-self-start d-flex align-items-start\">\r\n <button type=\"button\" class=\"btn-close p-1\" data-bs-dismiss=\"modal\" aria-label=\"Close\" (click)=\"showHelp=false\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AdbDirectivesModule } from \"../../directives/directives.module\";\r\nimport { AdbHelpButtonComponent } from \"./help-button.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, AdbDirectivesModule],\r\n declarations: [AdbHelpButtonComponent],\r\n exports: [AdbHelpButtonComponent]\r\n})\r\nexport class AdbButtonsModule { }","/*\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-nav.component';\r\nexport * from './lib/components/adb-header/adb-footer.component';\r\n\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-nav.module';\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-nav.component';\r\nexport * from './lib/components/adb-artportalen-nav/adb-artportalen-footer.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\nexport * from './lib/directives/redlist-badge-class.directive';\r\nexport * from './lib/directives/file-upload.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\nexport * from './lib/components/pagers/pager-inline';\r\n\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/pipes/highlight.pipe';\r\nexport * from './lib/pipes/number-spacing.pipe';\r\nexport * from './lib/pipes/date.pipe';\r\nexport * from './lib/pipes/emptyValue.pipe';\r\n\r\n\r\nexport * from './lib/components/date-picker/adb-date-picker.module';\r\nexport * from './lib/components/date-picker/adb-date-picker.component';\r\nexport * from './lib/components/date-picker/adb-date-picker.directive';\r\n\r\nexport * from './lib/components/adb-dropdown/adb-dropdown.module';\r\nexport * from './lib/components/adb-dropdown/adb-dropdown.directive';\r\n\r\nexport * from './lib/components/adb-confirm-modal/adb-modal.module';\r\nexport * from './lib/components/adb-confirm-modal/adb-confirm-modal';\r\nexport * from './lib/components/adb-confirm-modal/adb-modal.service';\r\n\r\nexport * from './lib/components/adb-toast/adb-toast.module';\r\nexport * from './lib/components/adb-toast/adb-toast';\r\nexport * from './lib/components/adb-toast/adb-toast.service';\r\n\r\nexport * from './lib/components/adb-buttons/adb-buttons.module';\r\nexport * from './lib/components/adb-buttons/help-button.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EnvironmentService","i3.EnvironmentService","i4","i5","i6.ClickOutsideDirective","i1.AdbDropdownService","i1","i2","i2.EnvironmentService","i4.EnvironmentService","i3.LocaleDatePipe","i1.AdbDatePickerService","i1.AdbModalService","i1.AdbToastService","i2.ClickOutsideDirective"],"mappings":"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"}
|