@porscheinformatik/clr-addons 15.2.0 → 15.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dropdown/clr-dropdown-overflow.directive.d.ts +5 -3
- package/esm2020/dropdown/clr-dropdown-overflow.directive.mjs +24 -11
- package/fesm2015/clr-addons.mjs +22 -9
- package/fesm2015/clr-addons.mjs.map +1 -1
- package/fesm2020/clr-addons.mjs +22 -9
- package/fesm2020/clr-addons.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AfterContentChecked, ElementRef, OnDestroy } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ClrDropdownOverflowDirective implements
|
|
3
|
+
export declare class ClrDropdownOverflowDirective implements AfterContentChecked, OnDestroy {
|
|
4
4
|
private elRef;
|
|
5
5
|
clrDropdownMenuMaxHeight: string | number;
|
|
6
6
|
clrDropdownMenuItemMinHeight: string | number;
|
|
@@ -8,8 +8,10 @@ export declare class ClrDropdownOverflowDirective implements AfterContentInit, O
|
|
|
8
8
|
readonly defaultItemMinHeightRem = 1.5;
|
|
9
9
|
readonly marginBottomRem = 0.1;
|
|
10
10
|
private destroy$;
|
|
11
|
+
private alreadyChecked;
|
|
12
|
+
private heightFix;
|
|
11
13
|
constructor(elRef: ElementRef);
|
|
12
|
-
|
|
14
|
+
ngAfterContentChecked(): void;
|
|
13
15
|
ngOnDestroy(): void;
|
|
14
16
|
private applyDropdownOverflowStyles;
|
|
15
17
|
private removeDropdownOverflowStyles;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
|
|
3
3
|
* This software is released under MIT license.
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
|
-
import { ContentChildren, Directive, ElementRef, Input, QueryList } from '@angular/core';
|
|
6
|
+
import { ContentChildren, Directive, ElementRef, Input, QueryList, } from '@angular/core';
|
|
7
7
|
import { ClrDropdown } from '@clr/angular';
|
|
8
8
|
import { Subject } from 'rxjs';
|
|
9
9
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -14,8 +14,10 @@ export class ClrDropdownOverflowDirective {
|
|
|
14
14
|
this.defaultItemMinHeightRem = 1.5;
|
|
15
15
|
this.marginBottomRem = 0.1;
|
|
16
16
|
this.destroy$ = new Subject();
|
|
17
|
+
this.alreadyChecked = false;
|
|
18
|
+
this.heightFix = 27;
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
ngAfterContentChecked() {
|
|
19
21
|
// first trigger manually because the subscription lower only triggers after first change
|
|
20
22
|
if (!this.nestedDropdownChildren?.length) {
|
|
21
23
|
this.applyDropdownOverflowStyles();
|
|
@@ -37,14 +39,25 @@ export class ClrDropdownOverflowDirective {
|
|
|
37
39
|
applyDropdownOverflowStyles() {
|
|
38
40
|
// the vertical position of our element in the current window
|
|
39
41
|
const y = this.elRef.nativeElement.getBoundingClientRect().y;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
item
|
|
42
|
+
if (y !== 0 && !this.alreadyChecked) {
|
|
43
|
+
const itemMinHeightPx = this.getItemMinHeight(this.clrDropdownMenuItemMinHeight);
|
|
44
|
+
// see https://stackoverflow.com/questions/22754315/for-loop-for-htmlcollection-elements
|
|
45
|
+
for (const item of this.getAllChildDropdownMenuItems()) {
|
|
46
|
+
item.style.minHeight = itemMinHeightPx + 'px';
|
|
47
|
+
}
|
|
48
|
+
let height = 0;
|
|
49
|
+
if (y + this.heightFix < window.innerHeight - y) {
|
|
50
|
+
height = window.innerHeight - y - this.heightFix;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
height = window.innerHeight - y;
|
|
54
|
+
}
|
|
55
|
+
this.elRef.nativeElement.style.maxHeight =
|
|
56
|
+
this.getMenuMaxHeight(this.clrDropdownMenuMaxHeight, height - this.convertRemToPixels(this.marginBottomRem)) +
|
|
57
|
+
'px';
|
|
58
|
+
this.elRef.nativeElement.style.overflowY = 'auto';
|
|
59
|
+
this.alreadyChecked = true;
|
|
44
60
|
}
|
|
45
|
-
this.elRef.nativeElement.style.maxHeight =
|
|
46
|
-
this.getMenuMaxHeight(this.clrDropdownMenuMaxHeight, window.innerHeight - y - this.convertRemToPixels(this.marginBottomRem)) + 'px';
|
|
47
|
-
this.elRef.nativeElement.style.overflowY = 'auto';
|
|
48
61
|
}
|
|
49
62
|
removeDropdownOverflowStyles() {
|
|
50
63
|
for (const item of this.getAllChildDropdownMenuItems()) {
|
|
@@ -105,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
105
118
|
type: ContentChildren,
|
|
106
119
|
args: [ClrDropdown, { descendants: true }]
|
|
107
120
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xyLWRyb3Bkb3duLW92ZXJmbG93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2Ryb3Bkb3duL2Nsci1kcm9wZG93bi1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczQyxNQUFNLE9BQU8sNEJBQTRCO0lBV3ZDLFlBQTJCLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFMNUIsNEJBQXVCLEdBQUcsR0FBRyxDQUFDO1FBQzlCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBRTlCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRVEsQ0FBQztJQUVoRCxrQkFBa0I7UUFDaEIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWdDLEVBQUUsRUFBRTtZQUNoSCwwR0FBMEc7WUFDMUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO2FBQ3BDO2lCQUFNLElBQUks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S0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0RTtpQkFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7WUFDRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsRUFBVTtRQUNsQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUM3QyxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDMUIsQ0FBQzs7eUhBckdVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGdPQUl0QixXQUFXOzJGQUpqQiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7aUdBRWpDLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBRXVELHNCQUFzQjtzQkFBbEYsZUFBZTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyRHJvcGRvd24gfSBmcm9tICdAY2xyL2FuZ3VsYXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdjbHItZHJvcGRvd24tbWVudScgfSlcbmV4cG9ydCBjbGFzcyBDbHJEcm9wZG93bk92ZXJmbG93RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY2xyRHJvcGRvd25NZW51TWF4SGVpZ2h0OiBzdHJpbmcgfCBudW1iZXI7IC8vIGNhbiBiZSBvZiBweCwgcmVtLCB2aCwgb3IgYSBudW1iZXIgKHdoaWNoIHRoZW4gaXMgY29uc2lkZXJlZCBhcyBweCB2YWx1ZSlcbiAgQElucHV0KCkgY2xyRHJvcGRvd25NZW51SXRlbU1pbkhlaWdodDogc3RyaW5nIHwgbnVtYmVyOyAvLyBjYW4gYmUgb2YgcHgsIHJlbSwgdmgsIG9yIGEgbnVtYmVyICh3aGljaCB0aGVuIGlzIGNvbnNpZGVyZWQgYXMgcHggdmFsdWUpXG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJEcm9wZG93biwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcml2YXRlIG5lc3RlZERyb3Bkb3duQ2hpbGRyZW46IFF1ZXJ5TGlzdDxDbHJEcm9wZG93bj47XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRJdGVtTWluSGVpZ2h0UmVtID0gMS41O1xuICBwdWJsaWMgcmVhZG9ubHkgbWFyZ2luQm90dG9tUmVtID0gMC4xO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBmaXJzdCB0cmlnZ2VyIG1hbnVhbGx5IGJlY2F1c2UgdGhlIHN1YnNjcmlwdGlvbiBsb3dlciBvbmx5IHRyaWdnZXJzIGFmdGVyIGZpcnN0IGNoYW5nZVxuICAgIGlmICghdGhpcy5uZXN0ZWREcm9wZG93bkNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXBwbHlEcm9wZG93bk92ZXJmbG93U3R5bGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5uZXN0ZWREcm9wZG93bkNoaWxkcmVuLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoY2hpbGRyZW46IFF1ZXJ5TGlzdDxDbHJEcm9wZG93bj4pID0+IHtcbiAgICAgIC8vIGlmIHRoZXJlIGFyZSBhbnkgbmVzdGVkIGRyb3Bkb3ducywgb3VyIG92ZXJmbG93IGZpeCBwcmV2ZW50cyB0aG9zZSBmcm9tIHNob3dpbmcgYW5kIG5lZWRzIHRvIGJlIHJlbW92ZWRcbiAgICAgIGlmICghY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFwcGx5RHJvcGRvd25PdmVyZmxvd1N0eWxlcygpO1xuICAgICAgfSBlbHNlIGlmIChjaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRHJvcGRvd25PdmVyZmxvd1N0eWxlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURyb3Bkb3duT3ZlcmZsb3dTdHlsZXMoKTogdm9pZCB7XG4gICAgLy8gdGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIG91ciBlbGVtZW50IGluIHRoZSBjdXJyZW50IHdpbmRvd1xuICAgIGNvbnN0IHkgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTtcblxuICAgIGNvbnN0IGl0ZW1NaW5IZWlnaHRQeCA9IHRoaXMuZ2V0SXRlbU1pbkhlaWdodCh0aGlzLmNsckRyb3Bkb3duTWVudUl0ZW1NaW5IZWlnaHQpO1xuICAgIC8vIHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMjc1NDMxNS9mb3ItbG9vcC1mb3ItaHRtbGNvbGxlY3Rpb24tZWxlbWVudHNcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5nZXRBbGxDaGlsZERyb3Bkb3duTWVudUl0ZW1zKCkpIHtcbiAgICAgIGl0ZW0uc3R5bGUubWluSGVpZ2h0ID0gaXRlbU1pbkhlaWdodFB4ICsgJ3B4JztcbiAgICB9XG5cbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID1cbiAgICAgIHRoaXMuZ2V0TWVudU1heEhlaWdodChcbiAgICAgICAgdGhpcy5jbHJEcm9wZG93bk1lbnVNYXhIZWlnaHQsXG4gICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAtIHkgLSB0aGlzLmNvbnZlcnRSZW1Ub1BpeGVscyh0aGlzLm1hcmdpbkJvdHRvbVJlbSlcbiAgICAgICkgKyAncHgnO1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5vdmVyZmxvd1kgPSAnYXV0byc7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZURyb3Bkb3duT3ZlcmZsb3dTdHlsZXMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZ2V0QWxsQ2hpbGREcm9wZG93bk1lbnVJdGVtcygpKSB7XG4gICAgICBpdGVtLnN0eWxlLm1pbkhlaWdodCA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm1heEhlaWdodCA9IG51bGw7XG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm92ZXJmbG93WSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbENoaWxkRHJvcGRvd25NZW51SXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdkcm9wZG93bi1pdGVtJyk7XG4gIH1cblxuICBwcml2YXRlIGdldE1lbnVNYXhIZWlnaHQobWVudU1heEhlaWdodFByb3ZpZGVkOiBzdHJpbmcgfCBudW1iZXIsIG1lbnVNYXhIZWlnaHRQeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobWVudU1heEhlaWdodFByb3ZpZGVkKSB7XG4gICAgICBjb25zdCBtYXhIZWlnaHRQeCA9IHRoaXMuY29udmVydFRvUGl4ZWxzKG1lbnVNYXhIZWlnaHRQcm92aWRlZCk7XG4gICAgICByZXR1cm4gbWF4SGVpZ2h0UHggPiBtZW51TWF4SGVpZ2h0UHggPyBtZW51TWF4SGVpZ2h0UHggOiBtYXhIZWlnaHRQeDtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVNYXhIZWlnaHRQeDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbU1pbkhlaWdodChpdGVtTWluSGVpZ2h0UHJvdmlkZWQ6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGl0ZW1NaW5IZWlnaHRQcm92aWRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydFRvUGl4ZWxzKGl0ZW1NaW5IZWlnaHRQcm92aWRlZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRSZW1Ub1BpeGVscyh0aGlzLmRlZmF1bHRJdGVtTWluSGVpZ2h0UmVtKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvUGl4ZWxzKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ3B4JykpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5lbmRzV2l0aCgncmVtJykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFJlbVRvUGl4ZWxzKHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZSgncmVtJywgJycpKSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmVuZHNXaXRoKCd2aCcpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRWaFRvUGl4ZWxzKHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZSgndmgnLCAnJykpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0UmVtVG9QaXhlbHMocmVtOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiByZW0gKiBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5mb250U2l6ZSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRWaFRvUGl4ZWxzKHZoOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHB4UGVyVmhVbml0ID0gd2luZG93LmlubmVySGVpZ2h0IC8gMTAwO1xuICAgIHJldHVybiB2aCAqIHB4UGVyVmhVbml0O1xuICB9XG59XG4iXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xyLWRyb3Bkb3duLW92ZXJmbG93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2Ryb3Bkb3duL2Nsci1kcm9wZG93bi1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzNDLE1BQU0sT0FBTyw0QkFBNEI7SUFhdkMsWUFBMkIsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVA1Qiw0QkFBdUIsR0FBRyxHQUFHLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxHQUFHLENBQUM7UUFFOUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV3QixDQUFDO0lBRWhELHFCQUFxQjtRQUNuQix5RkFBeUY7UUFDekYsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUU7WUFDeEMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBZ0MsRUFBRSxFQUFFO1lBQ2hILDBHQUEwRztZQUMxRyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFB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SmpCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtpR0FFakMsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFFdUQsc0JBQXNCO3NCQUFsRixlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsckRyb3Bkb3duIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnY2xyLWRyb3Bkb3duLW1lbnUnIH0pXG5leHBvcnQgY2xhc3MgQ2xyRHJvcGRvd25PdmVyZmxvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNsckRyb3Bkb3duTWVudU1heEhlaWdodDogc3RyaW5nIHwgbnVtYmVyOyAvLyBjYW4gYmUgb2YgcHgsIHJlbSwgdmgsIG9yIGEgbnVtYmVyICh3aGljaCB0aGVuIGlzIGNvbnNpZGVyZWQgYXMgcHggdmFsdWUpXG4gIEBJbnB1dCgpIGNsckRyb3Bkb3duTWVudUl0ZW1NaW5IZWlnaHQ6IHN0cmluZyB8IG51bWJlcjsgLy8gY2FuIGJlIG9mIHB4LCByZW0sIHZoLCBvciBhIG51bWJlciAod2hpY2ggdGhlbiBpcyBjb25zaWRlcmVkIGFzIHB4IHZhbHVlKVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2xyRHJvcGRvd24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHJpdmF0ZSBuZXN0ZWREcm9wZG93bkNoaWxkcmVuOiBRdWVyeUxpc3Q8Q2xyRHJvcGRvd24+O1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0SXRlbU1pbkhlaWdodFJlbSA9IDEuNTtcbiAgcHVibGljIHJlYWRvbmx5IG1hcmdpbkJvdHRvbVJlbSA9IDAuMTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBhbHJlYWR5Q2hlY2tlZCA9IGZhbHNlO1xuICBwcml2YXRlIGhlaWdodEZpeCA9IDI3O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvLyBmaXJzdCB0cmlnZ2VyIG1hbnVhbGx5IGJlY2F1c2UgdGhlIHN1YnNjcmlwdGlvbiBsb3dlciBvbmx5IHRyaWdnZXJzIGFmdGVyIGZpcnN0IGNoYW5nZVxuICAgIGlmICghdGhpcy5uZXN0ZWREcm9wZG93bkNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXBwbHlEcm9wZG93bk92ZXJmbG93U3R5bGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5uZXN0ZWREcm9wZG93bkNoaWxkcmVuLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoY2hpbGRyZW46IFF1ZXJ5TGlzdDxDbHJEcm9wZG93bj4pID0+IHtcbiAgICAgIC8vIGlmIHRoZXJlIGFyZSBhbnkgbmVzdGVkIGRyb3Bkb3ducywgb3VyIG92ZXJmbG93IGZpeCBwcmV2ZW50cyB0aG9zZSBmcm9tIHNob3dpbmcgYW5kIG5lZWRzIHRvIGJlIHJlbW92ZWRcbiAgICAgIGlmICghY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmFwcGx5RHJvcGRvd25PdmVyZmxvd1N0eWxlcygpO1xuICAgICAgfSBlbHNlIGlmIChjaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRHJvcGRvd25PdmVyZmxvd1N0eWxlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURyb3Bkb3duT3ZlcmZsb3dTdHlsZXMoKTogdm9pZCB7XG4gICAgLy8gdGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIG91ciBlbGVtZW50IGluIHRoZSBjdXJyZW50IHdpbmRvd1xuICAgIGNvbnN0IHkgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTtcbiAgICBpZiAoeSAhPT0gMCAmJiAhdGhpcy5hbHJlYWR5Q2hlY2tlZCkge1xuICAgICAgY29uc3QgaXRlbU1pbkhlaWdodFB4ID0gdGhpcy5nZXRJdGVtTWluSGVpZ2h0KHRoaXMuY2xyRHJvcGRvd25NZW51SXRlbU1pbkhlaWdodCk7XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjI3NTQzMTUvZm9yLWxvb3AtZm9yLWh0bWxjb2xsZWN0aW9uLWVsZW1lbnRzXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5nZXRBbGxDaGlsZERyb3Bkb3duTWVudUl0ZW1zKCkpIHtcbiAgICAgICAgaXRlbS5zdHlsZS5taW5IZWlnaHQgPSBpdGVtTWluSGVpZ2h0UHggKyAncHgnO1xuICAgICAgfVxuICAgICAgbGV0IGhlaWdodCA9IDA7XG4gICAgICBpZiAoeSArIHRoaXMuaGVpZ2h0Rml4IDwgd2luZG93LmlubmVySGVpZ2h0IC0geSkge1xuICAgICAgICBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB5IC0gdGhpcy5oZWlnaHRGaXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB5O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID1cbiAgICAgICAgdGhpcy5nZXRNZW51TWF4SGVpZ2h0KHRoaXMuY2xyRHJvcGRvd25NZW51TWF4SGVpZ2h0LCBoZWlnaHQgLSB0aGlzLmNvbnZlcnRSZW1Ub1BpeGVscyh0aGlzLm1hcmdpbkJvdHRvbVJlbSkpICtcbiAgICAgICAgJ3B4JztcblxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm92ZXJmbG93WSA9ICdhdXRvJztcbiAgICAgIHRoaXMuYWxyZWFkeUNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHJvcGRvd25PdmVyZmxvd1N0eWxlcygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5nZXRBbGxDaGlsZERyb3Bkb3duTWVudUl0ZW1zKCkpIHtcbiAgICAgIGl0ZW0uc3R5bGUubWluSGVpZ2h0ID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3ZlcmZsb3dZID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsQ2hpbGREcm9wZG93bk1lbnVJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Ryb3Bkb3duLWl0ZW0nKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWVudU1heEhlaWdodChtZW51TWF4SGVpZ2h0UHJvdmlkZWQ6IHN0cmluZyB8IG51bWJlciwgbWVudU1heEhlaWdodFB4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChtZW51TWF4SGVpZ2h0UHJvdmlkZWQpIHtcbiAgICAgIGNvbnN0IG1heEhlaWdodFB4ID0gdGhpcy5jb252ZXJ0VG9QaXhlbHMobWVudU1heEhlaWdodFByb3ZpZGVkKTtcbiAgICAgIHJldHVybiBtYXhIZWlnaHRQeCA+IG1lbnVNYXhIZWlnaHRQeCA/IG1lbnVNYXhIZWlnaHRQeCA6IG1heEhlaWdodFB4O1xuICAgIH1cbiAgICByZXR1cm4gbWVudU1heEhlaWdodFB4O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtTWluSGVpZ2h0KGl0ZW1NaW5IZWlnaHRQcm92aWRlZDogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaXRlbU1pbkhlaWdodFByb3ZpZGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9QaXhlbHMoaXRlbU1pbkhlaWdodFByb3ZpZGVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udmVydFJlbVRvUGl4ZWxzKHRoaXMuZGVmYXVsdEl0ZW1NaW5IZWlnaHRSZW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9QaXhlbHModmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgncHgnKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKCdweCcsICcnKSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmVuZHNXaXRoKCdyZW0nKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0UmVtVG9QaXhlbHMocGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKCdyZW0nLCAnJykpKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUuZW5kc1dpdGgoJ3ZoJykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFZoVG9QaXhlbHMocGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKCd2aCcsICcnKSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRSZW1Ub1BpeGVscyhyZW06IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHJlbSAqIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFZoVG9QaXhlbHModmg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgcHhQZXJWaFVuaXQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAxMDA7XG4gICAgcmV0dXJuIHZoICogcHhQZXJWaFVuaXQ7XG4gIH1cbn1cbiJdfQ==
|
package/fesm2015/clr-addons.mjs
CHANGED
|
@@ -636,7 +636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
636
636
|
}] });
|
|
637
637
|
|
|
638
638
|
/*
|
|
639
|
-
* Copyright (c) 2018-
|
|
639
|
+
* Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
|
|
640
640
|
* This software is released under MIT license.
|
|
641
641
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
642
642
|
*/
|
|
@@ -646,8 +646,10 @@ class ClrDropdownOverflowDirective {
|
|
|
646
646
|
this.defaultItemMinHeightRem = 1.5;
|
|
647
647
|
this.marginBottomRem = 0.1;
|
|
648
648
|
this.destroy$ = new Subject();
|
|
649
|
+
this.alreadyChecked = false;
|
|
650
|
+
this.heightFix = 27;
|
|
649
651
|
}
|
|
650
|
-
|
|
652
|
+
ngAfterContentChecked() {
|
|
651
653
|
var _a;
|
|
652
654
|
// first trigger manually because the subscription lower only triggers after first change
|
|
653
655
|
if (!((_a = this.nestedDropdownChildren) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
@@ -670,14 +672,25 @@ class ClrDropdownOverflowDirective {
|
|
|
670
672
|
applyDropdownOverflowStyles() {
|
|
671
673
|
// the vertical position of our element in the current window
|
|
672
674
|
const y = this.elRef.nativeElement.getBoundingClientRect().y;
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
item
|
|
675
|
+
if (y !== 0 && !this.alreadyChecked) {
|
|
676
|
+
const itemMinHeightPx = this.getItemMinHeight(this.clrDropdownMenuItemMinHeight);
|
|
677
|
+
// see https://stackoverflow.com/questions/22754315/for-loop-for-htmlcollection-elements
|
|
678
|
+
for (const item of this.getAllChildDropdownMenuItems()) {
|
|
679
|
+
item.style.minHeight = itemMinHeightPx + 'px';
|
|
680
|
+
}
|
|
681
|
+
let height = 0;
|
|
682
|
+
if (y + this.heightFix < window.innerHeight - y) {
|
|
683
|
+
height = window.innerHeight - y - this.heightFix;
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
height = window.innerHeight - y;
|
|
687
|
+
}
|
|
688
|
+
this.elRef.nativeElement.style.maxHeight =
|
|
689
|
+
this.getMenuMaxHeight(this.clrDropdownMenuMaxHeight, height - this.convertRemToPixels(this.marginBottomRem)) +
|
|
690
|
+
'px';
|
|
691
|
+
this.elRef.nativeElement.style.overflowY = 'auto';
|
|
692
|
+
this.alreadyChecked = true;
|
|
677
693
|
}
|
|
678
|
-
this.elRef.nativeElement.style.maxHeight =
|
|
679
|
-
this.getMenuMaxHeight(this.clrDropdownMenuMaxHeight, window.innerHeight - y - this.convertRemToPixels(this.marginBottomRem)) + 'px';
|
|
680
|
-
this.elRef.nativeElement.style.overflowY = 'auto';
|
|
681
694
|
}
|
|
682
695
|
removeDropdownOverflowStyles() {
|
|
683
696
|
for (const item of this.getAllChildDropdownMenuItems()) {
|