adb-shared 2.0.20 → 2.0.21

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.
@@ -1,10 +1,12 @@
1
- import { Directive, HostBinding, HostListener } from "@angular/core";
1
+ import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./adb-dropdown.service";
4
4
  export class AdbDropdownDirective {
5
5
  constructor(elementRef, adbDropdownService) {
6
6
  this.elementRef = elementRef;
7
7
  this.adbDropdownService = adbDropdownService;
8
+ this.adbDropdown = new EventEmitter();
9
+ this.insideClick = false;
8
10
  this.dataToggle = "dropdown";
9
11
  this.haspPopup = true;
10
12
  this.expanded = false;
@@ -26,13 +28,15 @@ export class AdbDropdownDirective {
26
28
  menu.classList.remove('show');
27
29
  }
28
30
  else {
31
+ this.adbDropdown.emit();
29
32
  menu.classList.add('show');
30
33
  }
31
34
  }
32
35
  }
33
36
  onCheckOutSideClick(target) {
34
37
  if (this.adbDropdownService.currentMenuId === this.id) {
35
- const clickedInside = this.elementRef.nativeElement.contains(target);
38
+ const parent = this.insideClick ? this.elementRef.nativeElement.parentNode : this.elementRef.nativeElement;
39
+ const clickedInside = parent.contains(target);
36
40
  if (!clickedInside) {
37
41
  const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
38
42
  parent?.classList.remove('show');
@@ -43,18 +47,28 @@ export class AdbDropdownDirective {
43
47
  parent?.classList.remove('show');
44
48
  }
45
49
  }
50
+ close() {
51
+ const node = this.elementRef.nativeElement.parentNode;
52
+ const menu = node.querySelector('.dropdown-menu');
53
+ menu.classList.remove('show');
54
+ }
46
55
  getId() {
47
56
  return '' + Math.floor(Math.random() * Date.now());
48
57
  }
49
58
  }
50
59
  /** @nocollapse */ AdbDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i1.AdbDropdownService }], target: i0.ɵɵFactoryTarget.Directive });
51
- /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDropdownDirective, selector: "[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" } }, ngImport: i0 });
60
+ /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", 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 });
52
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, decorators: [{
53
62
  type: Directive,
54
63
  args: [{
55
- selector: '[adbDropdown]'
64
+ selector: '[adbDropdown]',
65
+ exportAs: 'adbDropdown'
56
66
  }]
57
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AdbDropdownService }]; }, propDecorators: { id: [{
67
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AdbDropdownService }]; }, propDecorators: { adbDropdown: [{
68
+ type: Output
69
+ }], insideClick: [{
70
+ type: Input
71
+ }], id: [{
58
72
  type: HostBinding,
59
73
  args: ['id']
60
74
  }], dataToggle: [{
@@ -73,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
73
87
  type: HostListener,
74
88
  args: ['document:click', ['$event.target']]
75
89
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItZHJvcGRvd24vYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU1qRixNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLFlBQ1ksVUFBc0IsRUFDdEIsa0JBQXNDO1FBRHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVFsRCxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBR3hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFJakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWRiLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFpQkQsT0FBTztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELElBQUksS0FBSyxHQUFHLDhCQUE4QixZQUFZLEVBQUUsWUFBWSxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDcEUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO2dCQUMvQyxLQUFLLEdBQUcsS0FBSyxHQUFHLDJCQUEyQixDQUFDO2FBQy9DO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDOUI7U0FDSjtJQUNMLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxNQUFXO1FBQzNCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ25ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3hGLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BDO1NBQ0o7YUFBTTtZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN4RixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFTyxLQUFLO1FBQ1QsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDdEQsQ0FBQzs7b0lBM0RRLG9CQUFvQjt3SEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO2tJQVVHLEVBQUU7c0JBREQsV0FBVzt1QkFBQyxJQUFJO2dCQUlqQixVQUFVO3NCQURULFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixTQUFTO3NCQURSLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUtqQyxRQUFRO3NCQURQLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUtqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFzQnJCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFkYkRyb3Bkb3duU2VydmljZSB9IGZyb20gXCIuL2FkYi1kcm9wZG93bi5zZXJ2aWNlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2FkYkRyb3Bkb3duXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYkRyb3Bkb3duRGlyZWN0aXZlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEcm9wZG93blNlcnZpY2U6IEFkYkRyb3Bkb3duU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLmdldElkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpXHJcbiAgICBpZDogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRvZ2dsZScpXHJcbiAgICBkYXRhVG9nZ2xlID0gXCJkcm9wZG93blwiO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJylcclxuICAgIGhhc3BQb3B1cCA9IHRydWU7XHJcblxyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcclxuICAgIGV4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnVJZCA9IHRoaXMuaWQ7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgY29uc3QgdG9nZ2xlQnV0dG9uID0gbm9kZS5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJyk7XHJcbiAgICAgICAgbGV0IHN0eWxlID0gYHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsICR7dG9nZ2xlQnV0dG9uPy5jbGllbnRIZWlnaHQgKyAxfXB4LCAwcHgpO2A7XHJcbiAgICAgICAgY29uc3QgbWVudSA9IG5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICBpZiAobWVudSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkYkRyb3Bkb3duU2VydmljZS5jdXJyZW50TWVudSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBpZiAobWVudS5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdkcm9wZG93bi1tZW51LWVuZCcpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZSA9IHN0eWxlICsgJ2luc2V0OiAwcHggMHB4IGF1dG8gYXV0bzsnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1lbnUuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlKTtcclxuICAgICAgICAgICAgaWYgKG1lbnUuY2xhc3NMaXN0LmNvbnRhaW5zKCdzaG93JykpIHtcclxuICAgICAgICAgICAgICAgIG1lbnUuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbWVudS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICAgIG9uQ2hlY2tPdXRTaWRlQ2xpY2sodGFyZ2V0OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnVJZCA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICAgICAgcGFyZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJycgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKVxyXG4gICAgfVxyXG59Il19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItZHJvcGRvd24vYWRiLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU85RyxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLFlBQ1ksVUFBc0IsRUFDdEIsa0JBQXNDO1FBRHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUl4QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNN0IsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUd4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBSWpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFqQmIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQW1CRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLLEdBQUcsOEJBQThCLFlBQVksRUFBRSxZQUFZLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDcEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxn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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBZGJEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi9hZGItZHJvcGRvd24uc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1thZGJEcm9wZG93bl0nLFxyXG4gICAgZXhwb3J0QXM6ICdhZGJEcm9wZG93bidcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYkRyb3Bkb3duRGlyZWN0aXZlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEcm9wZG93blNlcnZpY2U6IEFkYkRyb3Bkb3duU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLmdldElkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpIGFkYkRyb3Bkb3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgaW5zaWRlQ2xpY2sgPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2lkJylcclxuICAgIGlkOiBzdHJpbmc7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdG9nZ2xlJylcclxuICAgIGRhdGFUb2dnbGUgPSBcImRyb3Bkb3duXCI7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGFzcG9wdXAnKVxyXG4gICAgaGFzcFBvcHVwID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxyXG4gICAgZXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRHJvcGRvd25TZXJ2aWNlLmN1cnJlbnRNZW51SWQgPSB0aGlzLmlkO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xyXG4gICAgICAgIGNvbnN0IHRvZ2dsZUJ1dHRvbiA9IG5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpO1xyXG4gICAgICAgIGxldCBzdHlsZSA9IGB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMHB4LCAke3RvZ2dsZUJ1dHRvbj8uY2xpZW50SGVpZ2h0ICsgMX1weCwgMHB4KTtgO1xyXG4gICAgICAgIGNvbnN0IG1lbnUgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XHJcbiAgICAgICAgaWYgKG1lbnUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKG1lbnUuY2xhc3NMaXN0Py5jb250YWlucygnZHJvcGRvd24tbWVudS1lbmQnKSkge1xyXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBzdHlsZSArICdpbnNldDogMHB4IDBweCBhdXRvIGF1dG87JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtZW51LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZSk7XHJcbiAgICAgICAgICAgIGlmIChtZW51LmNsYXNzTGlzdC5jb250YWlucygnc2hvdycpKSB7XHJcbiAgICAgICAgICAgICAgICBtZW51LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRiRHJvcGRvd24uZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgbWVudS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICAgIG9uQ2hlY2tPdXRTaWRlQ2xpY2sodGFyZ2V0OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hZGJEcm9wZG93blNlcnZpY2UuY3VycmVudE1lbnVJZCA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmluc2lkZUNsaWNrP3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU6dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBwYXJlbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLW1lbnUnKTtcclxuICAgICAgICAgICAgcGFyZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xyXG4gICAgICAgIGNvbnN0IG1lbnUgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bi1tZW51Jyk7XHJcbiAgICAgICAgbWVudS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpXHJcbiAgICB9XHJcbn0iXX0=
@@ -807,6 +807,8 @@ class AdbDropdownDirective {
807
807
  constructor(elementRef, adbDropdownService) {
808
808
  this.elementRef = elementRef;
809
809
  this.adbDropdownService = adbDropdownService;
810
+ this.adbDropdown = new EventEmitter();
811
+ this.insideClick = false;
810
812
  this.dataToggle = "dropdown";
811
813
  this.haspPopup = true;
812
814
  this.expanded = false;
@@ -829,13 +831,15 @@ class AdbDropdownDirective {
829
831
  menu.classList.remove('show');
830
832
  }
831
833
  else {
834
+ this.adbDropdown.emit();
832
835
  menu.classList.add('show');
833
836
  }
834
837
  }
835
838
  }
836
839
  onCheckOutSideClick(target) {
837
840
  if (this.adbDropdownService.currentMenuId === this.id) {
838
- const clickedInside = this.elementRef.nativeElement.contains(target);
841
+ const parent = this.insideClick ? this.elementRef.nativeElement.parentNode : this.elementRef.nativeElement;
842
+ const clickedInside = parent.contains(target);
839
843
  if (!clickedInside) {
840
844
  const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
841
845
  parent === null || parent === void 0 ? void 0 : parent.classList.remove('show');
@@ -846,18 +850,28 @@ class AdbDropdownDirective {
846
850
  parent === null || parent === void 0 ? void 0 : parent.classList.remove('show');
847
851
  }
848
852
  }
853
+ close() {
854
+ const node = this.elementRef.nativeElement.parentNode;
855
+ const menu = node.querySelector('.dropdown-menu');
856
+ menu.classList.remove('show');
857
+ }
849
858
  getId() {
850
859
  return '' + Math.floor(Math.random() * Date.now());
851
860
  }
852
861
  }
853
862
  /** @nocollapse */ AdbDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, deps: [{ token: i0.ElementRef }, { token: AdbDropdownService }], target: i0.ɵɵFactoryTarget.Directive });
854
- /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDropdownDirective, selector: "[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" } }, ngImport: i0 });
863
+ /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", 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 });
855
864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, decorators: [{
856
865
  type: Directive,
857
866
  args: [{
858
- selector: '[adbDropdown]'
867
+ selector: '[adbDropdown]',
868
+ exportAs: 'adbDropdown'
859
869
  }]
860
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AdbDropdownService }]; }, propDecorators: { id: [{
870
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AdbDropdownService }]; }, propDecorators: { adbDropdown: [{
871
+ type: Output
872
+ }], insideClick: [{
873
+ type: Input
874
+ }], id: [{
861
875
  type: HostBinding,
862
876
  args: ['id']
863
877
  }], dataToggle: [{
@@ -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/components/adb-header/adb-header.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.html","../../../projects/artdata-shared/src/lib/directives/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/pagers/infinite-scroll.component.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-base.directive.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.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.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.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.module.ts","../../../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/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted?.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n } else {\r\n this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n this.showMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { Directive, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[adbClickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() adbClickOutside = new EventEmitter<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\r\n @Input('adbFocus')\r\n focused = false;\r\n\r\n constructor(public element: ElementRef<HTMLElement>) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.\r\n if (this.focused) {\r\n setTimeout(() => this.element.nativeElement.focus(), 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[onVisible]\" })\r\nexport class InfiniteScrollComponent implements AfterViewInit, OnDestroy {\r\n @Output() public onVisible: EventEmitter<any> = new EventEmitter();\r\n @HostBinding('style.height') height = '1px';\r\n private _intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(private _element: ElementRef) { }\r\n\r\n public ngAfterViewInit() {\r\n this._intersectionObserver = new IntersectionObserver(entries => {\r\n this.checkForIntersection(entries);\r\n }, {});\r\n this._intersectionObserver.observe(<Element>this._element.nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n }\r\n\r\n private checkForIntersection = (\r\n entries: Array<IntersectionObserverEntry>\r\n ) => {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n const isIntersecting =\r\n (<any>entry).isIntersecting &&\r\n entry.target === this._element.nativeElement;\r\n\r\n if (isIntersecting) {\r\n this.onVisible.emit();\r\n }\r\n });\r\n };\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class PagerBaseDirective {\r\n private static DEFAULT_LIMIT = 10;\r\n private static VISIBLE_PAGES = 5;\r\n protected static SKIP_RESOURCE = 'offset';\r\n\r\n @Input() totalCount: number;\r\n pages: Array<number>;\r\n @Input() limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n this.amountOfPages = Math.ceil(this.totalCount / this.limit);\r\n if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {\r\n this.pages = [\r\n this.currentPage - 2,\r\n this.currentPage - 1, this.currentPage];\r\n const above = this.amountOfPages - this.currentPage;\r\n if (above >= 1) {\r\n this.pages.push(this.currentPage + 1);\r\n }\r\n if (above >= 2) {\r\n this.pages.push(this.currentPage + 2);\r\n }\r\n } else if (this.totalCount) {\r\n const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;\r\n this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager-nav',\r\n templateUrl: 'pager.html'\r\n})\r\nexport class PagerComponent extends PagerBaseDirective implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {\r\n if (params.offset) {\r\n this.currentPage = (+params.offset / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\nimport { PagerComponent } from \"./pager\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent]\r\n})\r\nexport class AdbPagersModule { }","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: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n format = /[`!@#$%*\\\\()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?~]/g;\r\n transform(value: any, searchs: any): any {\r\n if (!value) {\r\n return value;\r\n }\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter((s: any) => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.format.test(search)) {\r\n search = search.replace(this.format, '');\r\n }\r\n const reText = new RegExp(search, 'gi');\r\n value = value.replace(reText, '<mark>$&</mark>');\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'adbSpacing',\r\n pure: false\r\n})\r\nexport class NumberSpacingPipe implements PipeTransform {\r\n transform(value) {\r\n // If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string\r\n if (!value && value !== 0) {\r\n return '';\r\n }\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { LocaleDatePipe } from \"./date.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],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe]\r\n})\r\nexport class AdbPipesModule { }","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, OnDestroy, OnInit, Renderer2, ViewContainerRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO } 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\nexport class AdbDatePickerDirective implements ControlValueAccessor, 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 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 }\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.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 } else if (event.key === 'Backspace') {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\r\n this.onChange();\r\n this.onHide();\r\n }\r\n else {\r\n event.preventDefault();\r\n }\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 //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 = AdbDatePickerDirective.parseDate(value);\r\n if (this.initialDate) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n } else {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\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 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 private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","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, isWithinInterval, 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 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\r\n @Input() initialDate: Date;\r\n\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 = AdbDatePickerDirective.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerDirective.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 }\r\n\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\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.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 }\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 }\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\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()\"><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 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()\"><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>","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 { 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, HostBinding, HostListener } from \"@angular/core\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@Directive({\r\n selector: '[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 @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\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 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 clickedInside = this.elementRef.nativeElement.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 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 { }","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\n\r\nexport * from './lib/components/adb-header/adb-header.module';\r\nexport * from './lib/components/adb-header/adb-header.component';\r\n\r\nexport * from './lib/directives/directives.module';\r\nexport * from './lib/directives/click-outside.directive';\r\nexport * from './lib/directives/focus.directive';\r\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\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i4","i1","i1.AdbDatePickerService","i2","i3.LocaleDatePipe","i1.AdbDropdownService"],"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/components/adb-header/adb-header.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.html","../../../projects/artdata-shared/src/lib/directives/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/pagers/infinite-scroll.component.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-base.directive.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.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.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.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.module.ts","../../../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/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted?.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n } else {\r\n this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n this.showMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { Directive, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[adbClickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() adbClickOutside = new EventEmitter<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\r\n @Input('adbFocus')\r\n focused = false;\r\n\r\n constructor(public element: ElementRef<HTMLElement>) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.\r\n if (this.focused) {\r\n setTimeout(() => this.element.nativeElement.focus(), 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[onVisible]\" })\r\nexport class InfiniteScrollComponent implements AfterViewInit, OnDestroy {\r\n @Output() public onVisible: EventEmitter<any> = new EventEmitter();\r\n @HostBinding('style.height') height = '1px';\r\n private _intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(private _element: ElementRef) { }\r\n\r\n public ngAfterViewInit() {\r\n this._intersectionObserver = new IntersectionObserver(entries => {\r\n this.checkForIntersection(entries);\r\n }, {});\r\n this._intersectionObserver.observe(<Element>this._element.nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n }\r\n\r\n private checkForIntersection = (\r\n entries: Array<IntersectionObserverEntry>\r\n ) => {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n const isIntersecting =\r\n (<any>entry).isIntersecting &&\r\n entry.target === this._element.nativeElement;\r\n\r\n if (isIntersecting) {\r\n this.onVisible.emit();\r\n }\r\n });\r\n };\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class PagerBaseDirective {\r\n private static DEFAULT_LIMIT = 10;\r\n private static VISIBLE_PAGES = 5;\r\n protected static SKIP_RESOURCE = 'offset';\r\n\r\n @Input() totalCount: number;\r\n pages: Array<number>;\r\n @Input() limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n this.amountOfPages = Math.ceil(this.totalCount / this.limit);\r\n if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {\r\n this.pages = [\r\n this.currentPage - 2,\r\n this.currentPage - 1, this.currentPage];\r\n const above = this.amountOfPages - this.currentPage;\r\n if (above >= 1) {\r\n this.pages.push(this.currentPage + 1);\r\n }\r\n if (above >= 2) {\r\n this.pages.push(this.currentPage + 2);\r\n }\r\n } else if (this.totalCount) {\r\n const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;\r\n this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager-nav',\r\n templateUrl: 'pager.html'\r\n})\r\nexport class PagerComponent extends PagerBaseDirective implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {\r\n if (params.offset) {\r\n this.currentPage = (+params.offset / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\nimport { PagerComponent } from \"./pager\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent]\r\n})\r\nexport class AdbPagersModule { }","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: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n format = /[`!@#$%*\\\\()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?~]/g;\r\n transform(value: any, searchs: any): any {\r\n if (!value) {\r\n return value;\r\n }\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter((s: any) => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.format.test(search)) {\r\n search = search.replace(this.format, '');\r\n }\r\n const reText = new RegExp(search, 'gi');\r\n value = value.replace(reText, '<mark>$&</mark>');\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'adbSpacing',\r\n pure: false\r\n})\r\nexport class NumberSpacingPipe implements PipeTransform {\r\n transform(value) {\r\n // If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string\r\n if (!value && value !== 0) {\r\n return '';\r\n }\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { LocaleDatePipe } from \"./date.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],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe]\r\n})\r\nexport class AdbPipesModule { }","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, OnDestroy, OnInit, Renderer2, ViewContainerRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO } 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\nexport class AdbDatePickerDirective implements ControlValueAccessor, 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 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 }\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.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 } else if (event.key === 'Backspace') {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\r\n this.onChange();\r\n this.onHide();\r\n }\r\n else {\r\n event.preventDefault();\r\n }\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 //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 = AdbDatePickerDirective.parseDate(value);\r\n if (this.initialDate) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n } else {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\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 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 private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","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, isWithinInterval, 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 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\r\n @Input() initialDate: Date;\r\n\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 = AdbDatePickerDirective.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerDirective.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 }\r\n\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\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.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 }\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 }\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\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()\"><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 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()\"><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>","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 { 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 { }","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\n\r\nexport * from './lib/components/adb-header/adb-header.module';\r\nexport * from './lib/components/adb-header/adb-header.component';\r\n\r\nexport * from './lib/directives/directives.module';\r\nexport * from './lib/directives/click-outside.directive';\r\nexport * from './lib/directives/focus.directive';\r\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\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i4","i1","i1.AdbDatePickerService","i2","i3.LocaleDatePipe","i1.AdbDropdownService"],"mappings":"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"}
@@ -803,6 +803,8 @@ class AdbDropdownDirective {
803
803
  constructor(elementRef, adbDropdownService) {
804
804
  this.elementRef = elementRef;
805
805
  this.adbDropdownService = adbDropdownService;
806
+ this.adbDropdown = new EventEmitter();
807
+ this.insideClick = false;
806
808
  this.dataToggle = "dropdown";
807
809
  this.haspPopup = true;
808
810
  this.expanded = false;
@@ -824,13 +826,15 @@ class AdbDropdownDirective {
824
826
  menu.classList.remove('show');
825
827
  }
826
828
  else {
829
+ this.adbDropdown.emit();
827
830
  menu.classList.add('show');
828
831
  }
829
832
  }
830
833
  }
831
834
  onCheckOutSideClick(target) {
832
835
  if (this.adbDropdownService.currentMenuId === this.id) {
833
- const clickedInside = this.elementRef.nativeElement.contains(target);
836
+ const parent = this.insideClick ? this.elementRef.nativeElement.parentNode : this.elementRef.nativeElement;
837
+ const clickedInside = parent.contains(target);
834
838
  if (!clickedInside) {
835
839
  const parent = this.elementRef.nativeElement.parentNode.querySelector('.dropdown-menu');
836
840
  parent?.classList.remove('show');
@@ -841,18 +845,28 @@ class AdbDropdownDirective {
841
845
  parent?.classList.remove('show');
842
846
  }
843
847
  }
848
+ close() {
849
+ const node = this.elementRef.nativeElement.parentNode;
850
+ const menu = node.querySelector('.dropdown-menu');
851
+ menu.classList.remove('show');
852
+ }
844
853
  getId() {
845
854
  return '' + Math.floor(Math.random() * Date.now());
846
855
  }
847
856
  }
848
857
  /** @nocollapse */ AdbDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, deps: [{ token: i0.ElementRef }, { token: AdbDropdownService }], target: i0.ɵɵFactoryTarget.Directive });
849
- /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDropdownDirective, selector: "[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" } }, ngImport: i0 });
858
+ /** @nocollapse */ AdbDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", 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 });
850
859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDropdownDirective, decorators: [{
851
860
  type: Directive,
852
861
  args: [{
853
- selector: '[adbDropdown]'
862
+ selector: '[adbDropdown]',
863
+ exportAs: 'adbDropdown'
854
864
  }]
855
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AdbDropdownService }]; }, propDecorators: { id: [{
865
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AdbDropdownService }]; }, propDecorators: { adbDropdown: [{
866
+ type: Output
867
+ }], insideClick: [{
868
+ type: Input
869
+ }], id: [{
856
870
  type: HostBinding,
857
871
  args: ['id']
858
872
  }], dataToggle: [{
@@ -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/components/adb-header/adb-header.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.html","../../../projects/artdata-shared/src/lib/directives/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/pagers/infinite-scroll.component.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-base.directive.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.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.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.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.module.ts","../../../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/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted?.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n } else {\r\n this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n this.showMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { Directive, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[adbClickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() adbClickOutside = new EventEmitter<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\r\n @Input('adbFocus')\r\n focused = false;\r\n\r\n constructor(public element: ElementRef<HTMLElement>) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.\r\n if (this.focused) {\r\n setTimeout(() => this.element.nativeElement.focus(), 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[onVisible]\" })\r\nexport class InfiniteScrollComponent implements AfterViewInit, OnDestroy {\r\n @Output() public onVisible: EventEmitter<any> = new EventEmitter();\r\n @HostBinding('style.height') height = '1px';\r\n private _intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(private _element: ElementRef) { }\r\n\r\n public ngAfterViewInit() {\r\n this._intersectionObserver = new IntersectionObserver(entries => {\r\n this.checkForIntersection(entries);\r\n }, {});\r\n this._intersectionObserver.observe(<Element>this._element.nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n }\r\n\r\n private checkForIntersection = (\r\n entries: Array<IntersectionObserverEntry>\r\n ) => {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n const isIntersecting =\r\n (<any>entry).isIntersecting &&\r\n entry.target === this._element.nativeElement;\r\n\r\n if (isIntersecting) {\r\n this.onVisible.emit();\r\n }\r\n });\r\n };\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class PagerBaseDirective {\r\n private static DEFAULT_LIMIT = 10;\r\n private static VISIBLE_PAGES = 5;\r\n protected static SKIP_RESOURCE = 'offset';\r\n\r\n @Input() totalCount: number;\r\n pages: Array<number>;\r\n @Input() limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n this.amountOfPages = Math.ceil(this.totalCount / this.limit);\r\n if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {\r\n this.pages = [\r\n this.currentPage - 2,\r\n this.currentPage - 1, this.currentPage];\r\n const above = this.amountOfPages - this.currentPage;\r\n if (above >= 1) {\r\n this.pages.push(this.currentPage + 1);\r\n }\r\n if (above >= 2) {\r\n this.pages.push(this.currentPage + 2);\r\n }\r\n } else if (this.totalCount) {\r\n const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;\r\n this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager-nav',\r\n templateUrl: 'pager.html'\r\n})\r\nexport class PagerComponent extends PagerBaseDirective implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {\r\n if (params.offset) {\r\n this.currentPage = (+params.offset / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\nimport { PagerComponent } from \"./pager\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent]\r\n})\r\nexport class AdbPagersModule { }","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: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n format = /[`!@#$%*\\\\()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?~]/g;\r\n transform(value: any, searchs: any): any {\r\n if (!value) {\r\n return value;\r\n }\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter((s: any) => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.format.test(search)) {\r\n search = search.replace(this.format, '');\r\n }\r\n const reText = new RegExp(search, 'gi');\r\n value = value.replace(reText, '<mark>$&</mark>');\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'adbSpacing',\r\n pure: false\r\n})\r\nexport class NumberSpacingPipe implements PipeTransform {\r\n transform(value) {\r\n // If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string\r\n if (!value && value !== 0) {\r\n return '';\r\n }\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { LocaleDatePipe } from \"./date.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],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe]\r\n})\r\nexport class AdbPipesModule { }","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, OnDestroy, OnInit, Renderer2, ViewContainerRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO } 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\nexport class AdbDatePickerDirective implements ControlValueAccessor, 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 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 }\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.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 } else if (event.key === 'Backspace') {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\r\n this.onChange();\r\n this.onHide();\r\n }\r\n else {\r\n event.preventDefault();\r\n }\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 //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 = AdbDatePickerDirective.parseDate(value);\r\n if (this.initialDate) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n } else {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\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 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 private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","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, isWithinInterval, 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 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\r\n @Input() initialDate: Date;\r\n\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 = AdbDatePickerDirective.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerDirective.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 }\r\n\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\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.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 }\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 }\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\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()\"><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 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()\"><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>","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 { 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, HostBinding, HostListener } from \"@angular/core\";\r\nimport { AdbDropdownService } from \"./adb-dropdown.service\";\r\n\r\n@Directive({\r\n selector: '[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 @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\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 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 clickedInside = this.elementRef.nativeElement.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 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 { }","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\n\r\nexport * from './lib/components/adb-header/adb-header.module';\r\nexport * from './lib/components/adb-header/adb-header.component';\r\n\r\nexport * from './lib/directives/directives.module';\r\nexport * from './lib/directives/click-outside.directive';\r\nexport * from './lib/directives/focus.directive';\r\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\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i4","i1","i1.AdbDatePickerService","i2","i3.LocaleDatePipe","i1.AdbDropdownService"],"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/components/adb-header/adb-header.component.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.component.html","../../../projects/artdata-shared/src/lib/directives/click-outside.directive.ts","../../../projects/artdata-shared/src/lib/directives/file-upload.directive.ts","../../../projects/artdata-shared/src/lib/directives/focus.directive.ts","../../../projects/artdata-shared/src/lib/directives/directives.module.ts","../../../projects/artdata-shared/src/lib/components/adb-header/adb-header.module.ts","../../../projects/artdata-shared/src/lib/components/pagers/infinite-scroll.component.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager-base.directive.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.ts","../../../projects/artdata-shared/src/lib/components/pagers/pager.html","../../../projects/artdata-shared/src/lib/components/pagers/pagers.module.ts","../../../projects/artdata-shared/src/lib/pipes/date.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.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.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.module.ts","../../../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/public-api.ts","../../../projects/artdata-shared/src/adb-shared.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class EnvironmentService {\r\n constructor(@Inject('env') public environment) {\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Navigation } from './navigation.model';\r\nimport { take } from 'rxjs/operators';\r\n@Component({\r\n selector: 'adb-header2',\r\n templateUrl: './adb-header.component.html'\r\n})\r\nexport class ADBHeaderComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n @Output() loginClicked = new EventEmitter();\r\n @Output() logoutClicked = new EventEmitter();\r\n @Output() dropMenuChange = new EventEmitter<boolean>();\r\n fullName: string;\r\n translationFinished = false;\r\n @Input() set userName(fullName: string) {\r\n this.fullName = fullName;\r\n const splitted = fullName.split(' ');\r\n if (splitted?.length > 1) {\r\n const initials = splitted.shift().charAt(0) + splitted.pop().charAt(0);\r\n this.initials = initials.toUpperCase();\r\n } else {\r\n this.initials = this.fullName ? this.fullName.charAt(0).toUpperCase() : this.fullName;\r\n }\r\n };\r\n initials: string;\r\n showMenu = false;\r\n showUserMenu = false;\r\n navigation: Navigation;\r\n url: string;\r\n expandedLink: string;\r\n constructor(\r\n private httpClient: HttpClient,\r\n private envService: EnvironmentService,\r\n public trans: TranslateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.url = window.location.href;\r\n const baseUrl = this.envService.environment.resourceUrl;\r\n this.subscription.add(this.httpClient.get<Navigation>(baseUrl + '/assets/links.json').subscribe(result => {\r\n this.navigation = result;\r\n }));\r\n this.initTranslations(baseUrl);\r\n }\r\n\r\n private initTranslations(baseUrl: string): void {\r\n if (this.trans.store.translations[this.trans.currentLang]) {\r\n this.loadTranslation(baseUrl, this.trans.currentLang);\r\n }\r\n this.subscription.add(this.trans.onLangChange.subscribe((event) => {\r\n this.translationFinished = false;\r\n this.loadTranslation(baseUrl, event.lang);\r\n }));\r\n }\r\n\r\n private loadTranslation(baseUrl: string, lang: string): void {\r\n //TODO: Prepare for diffents lang then en sv (en-GB) or add more files in devcomponentserver :)\r\n this.subscription.add(this.httpClient.get(baseUrl + `/assets/i18n/${lang}.json`).subscribe(translations => {\r\n this.trans.setTranslation(lang, translations, true);\r\n this.translationFinished = true;\r\n }));\r\n }\r\n\r\n showMenuDropdown(show: boolean): void {\r\n if (this.showMenu !== show) {\r\n this.showMenu = show;\r\n this.dropMenuChange.emit(show);\r\n }\r\n }\r\n\r\n setLanguage(lang): void {\r\n this.trans.use(lang);\r\n this.showMenu = false;\r\n this.dropMenuChange.emit(false);\r\n //TODO: set localstorage/cookies or probaly event to main app\r\n }\r\n\r\n onExpandLink(event: any, transId: string): void {\r\n event.preventDefault(); event.stopPropagation();\r\n if (this.expandedLink === transId) {\r\n this.expandedLink = null;\r\n return;\r\n }\r\n this.expandedLink = transId;\r\n }\r\n\r\n login(): void {\r\n this.loginClicked.emit();\r\n }\r\n\r\n logout(): void {\r\n this.logoutClicked.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // private initAllTranslations(baseUrl: string): void {\r\n // const trans$ = forkJoin([this.httpClient.get(baseUrl + '/assets/i18n/en.json'), this.httpClient.get(baseUrl + '/assets/i18n/sv.json')])\r\n // this.subscription.add(trans$.subscribe(result => {\r\n // this.trans.setTranslation('en', result[0], true);\r\n // this.trans.setTranslation('sv', result[1], true);\r\n // }));\r\n // }\r\n}\r\n\r\n","<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n","import { Directive, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[adbClickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() adbClickOutside = new EventEmitter<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\r\n @Input('adbFocus')\r\n focused = false;\r\n\r\n constructor(public element: ElementRef<HTMLElement>) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.\r\n if (this.focused) {\r\n setTimeout(() => this.element.nativeElement.focus(), 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ClickOutsideDirective } from \"./click-outside.directive\";\r\nimport { FileUploadDirective } from \"./file-upload.directive\";\r\nimport { FocusDirective } from \"./focus.directive\";\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ClickOutsideDirective, FocusDirective, FileUploadDirective],\r\n exports: [ClickOutsideDirective, FocusDirective, FileUploadDirective]\r\n})\r\nexport class AdbDirectivesModule { }","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ADBHeaderComponent } from './adb-header.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AdbDirectivesModule } from '../../directives/directives.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [ADBHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslateModule,\r\n AdbDirectivesModule\r\n ],\r\n exports: [ADBHeaderComponent]\r\n})\r\nexport class ADBHeaderModule {\r\n public static forRoot(environment: any): ModuleWithProviders<ADBHeaderModule> {\r\n return {\r\n ngModule: ADBHeaderModule,\r\n providers: [\r\n EnvironmentService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[onVisible]\" })\r\nexport class InfiniteScrollComponent implements AfterViewInit, OnDestroy {\r\n @Output() public onVisible: EventEmitter<any> = new EventEmitter();\r\n @HostBinding('style.height') height = '1px';\r\n private _intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(private _element: ElementRef) { }\r\n\r\n public ngAfterViewInit() {\r\n this._intersectionObserver = new IntersectionObserver(entries => {\r\n this.checkForIntersection(entries);\r\n }, {});\r\n this._intersectionObserver.observe(<Element>this._element.nativeElement);\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n }\r\n\r\n private checkForIntersection = (\r\n entries: Array<IntersectionObserverEntry>\r\n ) => {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n const isIntersecting =\r\n (<any>entry).isIntersecting &&\r\n entry.target === this._element.nativeElement;\r\n\r\n if (isIntersecting) {\r\n this.onVisible.emit();\r\n }\r\n });\r\n };\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class PagerBaseDirective {\r\n private static DEFAULT_LIMIT = 10;\r\n private static VISIBLE_PAGES = 5;\r\n protected static SKIP_RESOURCE = 'offset';\r\n\r\n @Input() totalCount: number;\r\n pages: Array<number>;\r\n @Input() limit: number = PagerBaseDirective.DEFAULT_LIMIT;\r\n amountOfPages: number;\r\n currentPage = 1;\r\n\r\n protected calculatePages(): void {\r\n this.amountOfPages = Math.ceil(this.totalCount / this.limit);\r\n if ((this.currentPage + 1) > PagerBaseDirective.VISIBLE_PAGES) {\r\n this.pages = [\r\n this.currentPage - 2,\r\n this.currentPage - 1, this.currentPage];\r\n const above = this.amountOfPages - this.currentPage;\r\n if (above >= 1) {\r\n this.pages.push(this.currentPage + 1);\r\n }\r\n if (above >= 2) {\r\n this.pages.push(this.currentPage + 2);\r\n }\r\n } else if (this.totalCount) {\r\n const max = this.amountOfPages > PagerBaseDirective.VISIBLE_PAGES ? 5 : this.amountOfPages;\r\n this.pages = Array(Math.ceil(max)).fill(1).map((x, i) => i + 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PagerBaseDirective } from './pager-base.directive';\r\n\r\n@Component({\r\n selector: 'adb-pager-nav',\r\n templateUrl: 'pager.html'\r\n})\r\nexport class PagerComponent extends PagerBaseDirective implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(this.activatedRoute.queryParams.subscribe(params => {\r\n if (params.offset) {\r\n this.currentPage = (+params.offset / this.limit) + 1;\r\n }\r\n this.calculatePages();\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>","\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { InfiniteScrollComponent } from \"./infinite-scroll.component\";\r\nimport { PagerComponent } from \"./pager\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [InfiniteScrollComponent, PagerComponent],\r\n exports: [InfiniteScrollComponent, PagerComponent]\r\n})\r\nexport class AdbPagersModule { }","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: 'adbHighlight'\r\n})\r\nexport class HighlightPipe implements PipeTransform {\r\n format = /[`!@#$%*\\\\()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?~]/g;\r\n transform(value: any, searchs: any): any {\r\n if (!value) {\r\n return value;\r\n }\r\n if (searchs) {\r\n if (!Array.isArray(searchs)) {\r\n searchs = searchs.split(' ').filter((s: any) => s);\r\n }\r\n for (let search of searchs) {\r\n if (this.format.test(search)) {\r\n search = search.replace(this.format, '');\r\n }\r\n const reText = new RegExp(search, 'gi');\r\n value = value.replace(reText, '<mark>$&</mark>');\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'adbSpacing',\r\n pure: false\r\n})\r\nexport class NumberSpacingPipe implements PipeTransform {\r\n transform(value) {\r\n // If value is empty, 0 is falsy so perform an extra check to not make '0' to an empty string\r\n if (!value && value !== 0) {\r\n return '';\r\n }\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { LocaleDatePipe } from \"./date.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],\r\n exports: [HighlightPipe, NumberSpacingPipe, LocaleDatePipe]\r\n})\r\nexport class AdbPipesModule { }","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, OnDestroy, OnInit, Renderer2, ViewContainerRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { isValid, parse, parseISO } 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\nexport class AdbDatePickerDirective implements ControlValueAccessor, 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 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 }\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.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 } else if (event.key === 'Backspace') {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\r\n this.onChange();\r\n this.onHide();\r\n }\r\n else {\r\n event.preventDefault();\r\n }\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 //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 = AdbDatePickerDirective.parseDate(value);\r\n if (this.initialDate) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));\r\n }\r\n } else {\r\n this.initialDate = null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\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 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 private getId(): string {\r\n return '' + Math.floor(Math.random() * Date.now())\r\n }\r\n}","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, isWithinInterval, 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 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\r\n @Input() initialDate: Date;\r\n\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 = AdbDatePickerDirective.parseDate(this.settings.minDate);\r\n const maxDate = AdbDatePickerDirective.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 }\r\n\r\n this.selectedDate = this.currentdDate = this.initialDate ?? new Date();\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.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 }\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 }\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\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()\"><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 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()\"><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>","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 { 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 { }","/*\r\n * Public API Surface of artdata-shared\r\n */\r\n\r\n\r\nexport * from './lib/components/adb-header/adb-header.module';\r\nexport * from './lib/components/adb-header/adb-header.component';\r\n\r\nexport * from './lib/directives/directives.module';\r\nexport * from './lib/directives/click-outside.directive';\r\nexport * from './lib/directives/focus.directive';\r\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\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\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i4","i1","i1.AdbDatePickerService","i2","i3.LocaleDatePipe","i1.AdbDropdownService"],"mappings":"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"}
@@ -1,17 +1,20 @@
1
- import { ElementRef } from "@angular/core";
1
+ import { ElementRef, EventEmitter } from "@angular/core";
2
2
  import { AdbDropdownService } from "./adb-dropdown.service";
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AdbDropdownDirective {
5
5
  private elementRef;
6
6
  private adbDropdownService;
7
7
  constructor(elementRef: ElementRef, adbDropdownService: AdbDropdownService);
8
+ adbDropdown: EventEmitter<any>;
9
+ insideClick: boolean;
8
10
  id: string;
9
11
  dataToggle: string;
10
12
  haspPopup: boolean;
11
13
  expanded: boolean;
12
14
  onClick(): void;
13
15
  onCheckOutSideClick(target: any): void;
16
+ close(): void;
14
17
  private getId;
15
18
  static ɵfac: i0.ɵɵFactoryDeclaration<AdbDropdownDirective, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<AdbDropdownDirective, "[adbDropdown]", never, {}, {}, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AdbDropdownDirective, "[adbDropdown]", ["adbDropdown"], { "insideClick": "insideClick"; }, { "adbDropdown": "adbDropdown"; }, never>;
17
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adb-shared",
3
- "version": "2.0.20",
3
+ "version": "2.0.21",
4
4
  "author": "ADB",
5
5
  "license": "ISC",
6
6
  "peerDependencies": {