@mintplayer/ng-bootstrap 13.3.1 → 13.3.5
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/esm2020/lib/components/navbar/navbar/navbar.component.mjs +2 -2
- package/esm2020/lib/components/navbar/navbar-content/navbar-content.directive.mjs +47 -12
- package/esm2020/lib/components/navbar/navbar-item/navbar-item.component.mjs +17 -17
- package/fesm2015/mintplayer-ng-bootstrap.mjs +65 -29
- package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap.mjs +62 -29
- package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/lib/components/navbar/navbar-content/navbar-content.directive.d.ts +8 -4
- package/package.json +1 -1
|
@@ -15,10 +15,10 @@ export class BsNavbarComponent {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsNavbarComponent, selector: "bs-navbar", inputs: { autoclose: "autoclose" }, viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["
|
|
18
|
+
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsNavbarComponent, selector: "bs-navbar", inputs: { autoclose: "autoclose" }, viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}.tw{margin:-.5rem -.6666666667rem}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe } });
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsNavbarComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["
|
|
21
|
+
args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}.tw{margin:-.5rem -.6666666667rem}\n"] }]
|
|
22
22
|
}], propDecorators: { nav: [{
|
|
23
23
|
type: ViewChild,
|
|
24
24
|
args: ['nav']
|
|
@@ -1,33 +1,68 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isPlatformServer } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, Inject, Input, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, combineLatest, filter, Subject, take, takeUntil } from 'rxjs';
|
|
2
4
|
import { BsNavbarComponent } from '../navbar/navbar.component';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
export class NavbarContentDirective {
|
|
5
|
-
constructor(element) {
|
|
7
|
+
constructor(element, platformId) {
|
|
6
8
|
this.element = element;
|
|
9
|
+
this.platformId = platformId;
|
|
10
|
+
this.destroyed$ = new Subject();
|
|
11
|
+
this.viewInit$ = new BehaviorSubject(false);
|
|
12
|
+
this.navbar$ = new BehaviorSubject(null);
|
|
13
|
+
this.resizeObserver = null;
|
|
7
14
|
this.initialPadding = 0;
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
combineLatest([this.viewInit$, this.navbar$])
|
|
16
|
+
.pipe(filter(([viewInit, navbar]) => {
|
|
17
|
+
return viewInit && !!navbar;
|
|
18
|
+
}))
|
|
19
|
+
.pipe(take(1))
|
|
20
|
+
.pipe(takeUntil(this.destroyed$))
|
|
21
|
+
.subscribe(([viewInit, navbar]) => {
|
|
22
|
+
if (!isPlatformServer(platformId)) {
|
|
23
|
+
// Initialize the ResizeObserver
|
|
24
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
25
|
+
const height = navbar
|
|
26
|
+
? navbar.nav.nativeElement.offsetHeight
|
|
27
|
+
: entries[0].contentRect.height;
|
|
28
|
+
this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';
|
|
29
|
+
});
|
|
30
|
+
// Monitor the size
|
|
31
|
+
const pt = parseInt(this.element.nativeElement.style.paddingTop.replace(/px$/, ''));
|
|
32
|
+
this.initialPadding = isNaN(pt) ? 0 : pt;
|
|
33
|
+
if (this.resizeObserver && navbar) {
|
|
34
|
+
this.resizeObserver.observe(navbar.nav.nativeElement);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
11
37
|
});
|
|
38
|
+
this.destroyed$
|
|
39
|
+
.pipe(filter(d => !!d))
|
|
40
|
+
.subscribe(() => {
|
|
41
|
+
this.resizeObserver?.unobserve(this.navbar$.value?.nav.nativeElement);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
set navbar(value) {
|
|
45
|
+
this.navbar$.next(value);
|
|
12
46
|
}
|
|
13
47
|
ngAfterViewInit() {
|
|
14
|
-
|
|
15
|
-
this.initialPadding = isNaN(p) ? 0 : p;
|
|
16
|
-
this.resizeObserver.observe(this.navbar.nav.nativeElement);
|
|
48
|
+
this.viewInit$.next(true);
|
|
17
49
|
}
|
|
18
50
|
ngOnDestroy() {
|
|
19
|
-
this.
|
|
51
|
+
this.destroyed$.next(true);
|
|
20
52
|
}
|
|
21
53
|
}
|
|
22
|
-
NavbarContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
54
|
+
NavbarContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
55
|
NavbarContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NavbarContentDirective, selector: "[navbarContent]", inputs: { navbar: ["navbarContent", "navbar"] }, ngImport: i0 });
|
|
24
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, decorators: [{
|
|
25
57
|
type: Directive,
|
|
26
58
|
args: [{
|
|
27
59
|
selector: '[navbarContent]'
|
|
28
60
|
}]
|
|
29
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [PLATFORM_ID]
|
|
64
|
+
}] }]; }, propDecorators: { navbar: [{
|
|
30
65
|
type: Input,
|
|
31
66
|
args: ['navbarContent']
|
|
32
67
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci1jb250ZW50L25hdmJhci1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUsvRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW9CLE9BQW1CLEVBQStCLFVBQWU7UUFBakUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUErQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBa0M3RSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztRQUN0RSxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUFDN0MsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFyQ2pCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7YUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLGdDQUFnQztnQkFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNO3dCQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWTt3QkFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO29CQUVsQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RGLENBQUMsQ0FBQyxDQUFDO2dCQUVILG1CQUFtQjtnQkFDbkIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3ZEO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxVQUFVO2FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVFELElBQTRCLE1BQU0sQ0FBQyxLQUF3QjtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7bUhBcERVLHNCQUFzQiw0Q0FFZ0IsV0FBVzt1R0FGakQsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQUcyQyxNQUFNOzJCQUFDLFdBQVc7NENBd0NoQyxNQUFNO3NCQUFqQyxLQUFLO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNOYXZiYXJDb21wb25lbnQgfSBmcm9tICcuLi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuYXZiYXJDb250ZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmlld0luaXQkLCB0aGlzLm5hdmJhciRdKVxuICAgICAgLnBpcGUoZmlsdGVyKChbdmlld0luaXQsIG5hdmJhcl0pID0+IHtcbiAgICAgICAgcmV0dXJuIHZpZXdJbml0ICYmICEhbmF2YmFyO1xuICAgICAgfSkpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChbdmlld0luaXQsIG5hdmJhcl0pID0+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgUmVzaXplT2JzZXJ2ZXJcbiAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBuYXZiYXJcbiAgICAgICAgICAgICAgPyBuYXZiYXIubmF2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICAgIDogZW50cmllc1swXS5jb250ZW50UmVjdC5oZWlnaHQ7XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnBhZGRpbmdUb3AgPSAodGhpcy5pbml0aWFsUGFkZGluZyArIGhlaWdodCkgKyAncHgnO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gTW9uaXRvciB0aGUgc2l6ZVxuICAgICAgICAgIGNvbnN0IHB0ID0gcGFyc2VJbnQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ1RvcC5yZXBsYWNlKC9weCQvLCAnJykpO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbFBhZGRpbmcgPSBpc05hTihwdCkgPyAwIDogcHQ7XG4gICAgICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIgJiYgbmF2YmFyKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUobmF2YmFyLm5hdi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95ZWQkXG4gICAgICAucGlwZShmaWx0ZXIoZCA9PiAhIWQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLm5hdmJhciQudmFsdWU/Lm5hdi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSB2aWV3SW5pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBuYXZiYXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCc05hdmJhckNvbXBvbmVudCB8IG51bGw+KG51bGwpO1xuICByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcbiAgaW5pdGlhbFBhZGRpbmcgPSAwO1xuXG4gIEBJbnB1dCgnbmF2YmFyQ29udGVudCcpIHNldCBuYXZiYXIodmFsdWU6IEJzTmF2YmFyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5uYXZiYXIkLm5leHQodmFsdWUpO1xuICB9XG4gIFxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -16,8 +16,9 @@ export class BsNavbarItemComponent {
|
|
|
16
16
|
this.anchorTag = this.element.nativeElement.querySelector('li a');
|
|
17
17
|
if (this.hasDropdown) {
|
|
18
18
|
(this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
|
|
19
|
-
if (this.anchorTag && !this.anchorTag.
|
|
20
|
-
this.anchorTag.
|
|
19
|
+
if (this.anchorTag && !this.anchorTag.getAttribute('close-init-b')) {
|
|
20
|
+
this.anchorTag.setAttribute('close-init-b', '1');
|
|
21
|
+
this.anchorTag.addEventListener('click', (ev) => {
|
|
21
22
|
ev.preventDefault();
|
|
22
23
|
// Normally there should be only one dropdown in this list
|
|
23
24
|
this.dropdowns.forEach((dropdown) => {
|
|
@@ -28,24 +29,23 @@ export class BsNavbarItemComponent {
|
|
|
28
29
|
}
|
|
29
30
|
});
|
|
30
31
|
return false;
|
|
31
|
-
};
|
|
32
|
+
});
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
else {
|
|
35
36
|
// Close if this is a link
|
|
36
|
-
if (this.dropdowns.length === 0) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
37
|
+
if ((this.dropdowns.length === 0) && this.anchorTag && !this.anchorTag.getAttribute('close-init-a')) {
|
|
38
|
+
this.anchorTag.setAttribute('close-init-a', '1');
|
|
39
|
+
this.anchorTag.addEventListener('click', (ev) => {
|
|
40
|
+
let d = this.parentDropdown;
|
|
41
|
+
while (d && d.autoclose) {
|
|
42
|
+
d.isVisible = false;
|
|
43
|
+
d = d.parentDropdown;
|
|
44
|
+
}
|
|
45
|
+
if (this.navbar.autoclose) {
|
|
46
|
+
this.navbar.isExpanded$.next(false);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
61
61
|
type: ContentChildren,
|
|
62
62
|
args: [forwardRef(() => BsNavbarDropdownComponent)]
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci1pdGVtL25hdmJhci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXItaXRlbS9uYXZiYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBT3pGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBb0IsTUFBeUIsRUFBYyxjQUF5QyxFQUFVLE9BQW1CO1FBQTdHLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQWlFLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFLakksZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUE2QixJQUFJLENBQUM7UUFMekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQU9ELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFcEUsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFjLEVBQUUsRUFBRTtvQkFDMUQsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNwQiwwREFBMEQ7b0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7NEJBQy9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0NBQ3hDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDOzRCQUMxQixDQUFDLENBQUMsQ0FBQzt5QkFDSjtvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSCxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7YUFBTTtZQUVMLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNuRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBYyxFQUFFLEVBQUU7b0JBQzFELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7d0JBQ3ZCLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQztxQkFDdEI7b0JBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTt3QkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNyQztnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBRUY7SUFDSCxDQUFDOztrSEFsRFUscUJBQXFCO3NHQUFyQixxQkFBcUIsbUhBU0UseUJBQXlCLGlDQ2xCN0QsME9BRUs7MkZET1EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs7MEJBTXNCLFFBQVE7cUVBT00sU0FBUztzQkFBdEUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNOYXZiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9uYXZiYXIvbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmJhci1kcm9wZG93bi9uYXZiYXItZHJvcGRvd24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtbmF2YmFyLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXItaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzTmF2YmFySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmF2YmFyOiBCc05hdmJhckNvbXBvbmVudCwgQE9wdGlvbmFsKCkgcGFyZW50RHJvcGRvd246IEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnQsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIHRoaXMucGFyZW50RHJvcGRvd24gPSBwYXJlbnREcm9wZG93bjtcbiAgfVxuXG4gIHBhcmVudERyb3Bkb3duOiBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50O1xuICBoYXNEcm9wZG93biA9IGZhbHNlO1xuICBhbmNob3JUYWc6IEhUTUxBbmNob3JFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50KSkgZHJvcGRvd25zITogUXVlcnlMaXN0PEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmFuY2hvclRhZyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpIGEnKTtcblxuICAgIGlmICh0aGlzLmhhc0Ryb3Bkb3duKSB7XG4gICAgICAodGhpcy5hbmNob3JUYWcpICYmIHRoaXMuYW5jaG9yVGFnLmNsYXNzTGlzdC5hZGQoJ2Ryb3Bkb3duLXRvZ2dsZScpO1xuXG4gICAgICBpZiAodGhpcy5hbmNob3JUYWcgJiYgIXRoaXMuYW5jaG9yVGFnLmdldEF0dHJpYnV0ZSgnY2xvc2UtaW5pdC1iJykpIHtcbiAgICAgICAgdGhpcy5hbmNob3JUYWcuc2V0QXR0cmlidXRlKCdjbG9zZS1pbml0LWInLCAnMScpO1xuICAgICAgICB0aGlzLmFuY2hvclRhZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldjogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgLy8gTm9ybWFsbHkgdGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIGRyb3Bkb3duIGluIHRoaXMgbGlzdFxuICAgICAgICAgIHRoaXMuZHJvcGRvd25zLmZvckVhY2goKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgICBpZiAoIShkcm9wZG93bi5pc1Zpc2libGUgPSAhZHJvcGRvd24uaXNWaXNpYmxlKSkge1xuICAgICAgICAgICAgICBkcm9wZG93bi5jaGlsZERyb3Bkb3ducy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNoaWxkLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG5cbiAgICAgIC8vIENsb3NlIGlmIHRoaXMgaXMgYSBsaW5rXG4gICAgICBpZiAoKHRoaXMuZHJvcGRvd25zLmxlbmd0aCA9PT0gMCkgJiYgdGhpcy5hbmNob3JUYWcgJiYgIXRoaXMuYW5jaG9yVGFnLmdldEF0dHJpYnV0ZSgnY2xvc2UtaW5pdC1hJykpIHtcbiAgICAgICAgdGhpcy5hbmNob3JUYWcuc2V0QXR0cmlidXRlKCdjbG9zZS1pbml0LWEnLCAnMScpO1xuICAgICAgICB0aGlzLmFuY2hvclRhZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldjogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGxldCBkID0gdGhpcy5wYXJlbnREcm9wZG93bjtcbiAgICAgICAgICB3aGlsZSAoZCAmJiBkLmF1dG9jbG9zZSkge1xuICAgICAgICAgICAgZC5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGQgPSBkLnBhcmVudERyb3Bkb3duO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5uYXZiYXIuYXV0b2Nsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmJhci5pc0V4cGFuZGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCI8bGkgW2NsYXNzLm5hdi1pdGVtXT1cInBhcmVudERyb3Bkb3duID09PSBudWxsXCIgW2NsYXNzLmRyb3Bkb3duXT1cIihkcm9wZG93bnMubGVuZ3RoID4gMCkgJiYgKHBhcmVudERyb3Bkb3duID09PSBudWxsKVwiIFtjbGFzcy5kcm9wZW5kXT1cIihkcm9wZG93bnMubGVuZ3RoID4gMCkgJiYgKHBhcmVudERyb3Bkb3duICE9PSBudWxsKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbGk+Il19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ContentChildren, NgModule, Input, Injectable, Pipe, EventEmitter, Output, Directive, HostBinding, InjectionToken, Inject, HostListener, Injector, ViewChild, Host, SkipSelf, forwardRef, PLATFORM_ID, ContentChild, ViewChildren, Optional, TemplateRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
|
-
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
4
|
+
import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';
|
|
5
5
|
import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation, ColorTransitionAnimation } from '@mintplayer/ng-animations';
|
|
6
6
|
import { Subject, BehaviorSubject, map, takeUntil, filter, take, Observable, combineLatest, debounceTime } from 'rxjs';
|
|
7
7
|
import { map as map$1, takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
|
|
@@ -2921,10 +2921,10 @@ class BsNavbarComponent {
|
|
|
2921
2921
|
}
|
|
2922
2922
|
}
|
|
2923
2923
|
BsNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2924
|
-
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsNavbarComponent, selector: "bs-navbar", inputs: { autoclose: "autoclose" }, viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["
|
|
2924
|
+
BsNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: BsNavbarComponent, selector: "bs-navbar", inputs: { autoclose: "autoclose" }, viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0, template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}.tw{margin:-.5rem -.6666666667rem}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i1.AsyncPipe } });
|
|
2925
2925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: BsNavbarComponent, decorators: [{
|
|
2926
2926
|
type: Component,
|
|
2927
|
-
args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["
|
|
2927
|
+
args: [{ selector: 'bs-navbar', template: "<nav #nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <div class=\"d-flex w-100 w-md-auto\">\n <ng-content select=\"bs-navbar-brand\"></ng-content>\n <div class=\"flex-end d-md-none d-flex tw\">\n <button (click)=\"toggleExpanded()\" title=\"Expand/collapse menu\" class=\"align-self-center\" [class.navbar-toggler]=\"!expandButtonTemplate\" [class.bg-transparent]=\"expandButtonTemplate\" [class.shadow-none]=\"expandButtonTemplate\" [class.border-0]=\"expandButtonTemplate\" type=\"button\">\n <ng-container *ngTemplateOutlet=\"expandButtonTemplate ?? defaultExpandButton; context: { $implicit: (isExpanded$ | async) ? 'open' : 'closed' }\"></ng-container>\n </button>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>\n\n<ng-template #defaultExpandButton>\n <span class=\"navbar-toggler-icon\"></span>\n</ng-template>", styles: ["nav{left:0;top:0;right:0;z-index:10}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}.tw{margin:-.5rem -.6666666667rem}\n"] }]
|
|
2928
2928
|
}], propDecorators: { nav: [{
|
|
2929
2929
|
type: ViewChild,
|
|
2930
2930
|
args: ['nav']
|
|
@@ -3006,8 +3006,9 @@ class BsNavbarItemComponent {
|
|
|
3006
3006
|
this.anchorTag = this.element.nativeElement.querySelector('li a');
|
|
3007
3007
|
if (this.hasDropdown) {
|
|
3008
3008
|
(this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
|
|
3009
|
-
if (this.anchorTag && !this.anchorTag.
|
|
3010
|
-
this.anchorTag.
|
|
3009
|
+
if (this.anchorTag && !this.anchorTag.getAttribute('close-init-b')) {
|
|
3010
|
+
this.anchorTag.setAttribute('close-init-b', '1');
|
|
3011
|
+
this.anchorTag.addEventListener('click', (ev) => {
|
|
3011
3012
|
ev.preventDefault();
|
|
3012
3013
|
// Normally there should be only one dropdown in this list
|
|
3013
3014
|
this.dropdowns.forEach((dropdown) => {
|
|
@@ -3018,24 +3019,23 @@ class BsNavbarItemComponent {
|
|
|
3018
3019
|
}
|
|
3019
3020
|
});
|
|
3020
3021
|
return false;
|
|
3021
|
-
};
|
|
3022
|
+
});
|
|
3022
3023
|
}
|
|
3023
3024
|
}
|
|
3024
3025
|
else {
|
|
3025
3026
|
// Close if this is a link
|
|
3026
|
-
if (this.dropdowns.length === 0) {
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
}
|
|
3027
|
+
if ((this.dropdowns.length === 0) && this.anchorTag && !this.anchorTag.getAttribute('close-init-a')) {
|
|
3028
|
+
this.anchorTag.setAttribute('close-init-a', '1');
|
|
3029
|
+
this.anchorTag.addEventListener('click', (ev) => {
|
|
3030
|
+
let d = this.parentDropdown;
|
|
3031
|
+
while (d && d.autoclose) {
|
|
3032
|
+
d.isVisible = false;
|
|
3033
|
+
d = d.parentDropdown;
|
|
3034
|
+
}
|
|
3035
|
+
if (this.navbar.autoclose) {
|
|
3036
|
+
this.navbar.isExpanded$.next(false);
|
|
3037
|
+
}
|
|
3038
|
+
});
|
|
3039
3039
|
}
|
|
3040
3040
|
}
|
|
3041
3041
|
}
|
|
@@ -3152,31 +3152,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
3152
3152
|
} });
|
|
3153
3153
|
|
|
3154
3154
|
class NavbarContentDirective {
|
|
3155
|
-
constructor(element) {
|
|
3155
|
+
constructor(element, platformId) {
|
|
3156
3156
|
this.element = element;
|
|
3157
|
+
this.platformId = platformId;
|
|
3158
|
+
this.destroyed$ = new Subject();
|
|
3159
|
+
this.viewInit$ = new BehaviorSubject(false);
|
|
3160
|
+
this.navbar$ = new BehaviorSubject(null);
|
|
3161
|
+
this.resizeObserver = null;
|
|
3157
3162
|
this.initialPadding = 0;
|
|
3158
|
-
this.
|
|
3159
|
-
|
|
3160
|
-
|
|
3163
|
+
combineLatest([this.viewInit$, this.navbar$])
|
|
3164
|
+
.pipe(filter(([viewInit, navbar]) => {
|
|
3165
|
+
return viewInit && !!navbar;
|
|
3166
|
+
}))
|
|
3167
|
+
.pipe(take(1))
|
|
3168
|
+
.pipe(takeUntil(this.destroyed$))
|
|
3169
|
+
.subscribe(([viewInit, navbar]) => {
|
|
3170
|
+
if (!isPlatformServer(platformId)) {
|
|
3171
|
+
// Initialize the ResizeObserver
|
|
3172
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
3173
|
+
const height = navbar
|
|
3174
|
+
? navbar.nav.nativeElement.offsetHeight
|
|
3175
|
+
: entries[0].contentRect.height;
|
|
3176
|
+
this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';
|
|
3177
|
+
});
|
|
3178
|
+
// Monitor the size
|
|
3179
|
+
const pt = parseInt(this.element.nativeElement.style.paddingTop.replace(/px$/, ''));
|
|
3180
|
+
this.initialPadding = isNaN(pt) ? 0 : pt;
|
|
3181
|
+
if (this.resizeObserver && navbar) {
|
|
3182
|
+
this.resizeObserver.observe(navbar.nav.nativeElement);
|
|
3183
|
+
}
|
|
3184
|
+
}
|
|
3161
3185
|
});
|
|
3186
|
+
this.destroyed$
|
|
3187
|
+
.pipe(filter(d => !!d))
|
|
3188
|
+
.subscribe(() => {
|
|
3189
|
+
var _a, _b;
|
|
3190
|
+
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve((_b = this.navbar$.value) === null || _b === void 0 ? void 0 : _b.nav.nativeElement);
|
|
3191
|
+
});
|
|
3192
|
+
}
|
|
3193
|
+
set navbar(value) {
|
|
3194
|
+
this.navbar$.next(value);
|
|
3162
3195
|
}
|
|
3163
3196
|
ngAfterViewInit() {
|
|
3164
|
-
|
|
3165
|
-
this.initialPadding = isNaN(p) ? 0 : p;
|
|
3166
|
-
this.resizeObserver.observe(this.navbar.nav.nativeElement);
|
|
3197
|
+
this.viewInit$.next(true);
|
|
3167
3198
|
}
|
|
3168
3199
|
ngOnDestroy() {
|
|
3169
|
-
this.
|
|
3200
|
+
this.destroyed$.next(true);
|
|
3170
3201
|
}
|
|
3171
3202
|
}
|
|
3172
|
-
NavbarContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3203
|
+
NavbarContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3173
3204
|
NavbarContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NavbarContentDirective, selector: "[navbarContent]", inputs: { navbar: ["navbarContent", "navbar"] }, ngImport: i0 });
|
|
3174
3205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NavbarContentDirective, decorators: [{
|
|
3175
3206
|
type: Directive,
|
|
3176
3207
|
args: [{
|
|
3177
3208
|
selector: '[navbarContent]'
|
|
3178
3209
|
}]
|
|
3179
|
-
}], ctorParameters: function () {
|
|
3210
|
+
}], ctorParameters: function () {
|
|
3211
|
+
return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
3212
|
+
type: Inject,
|
|
3213
|
+
args: [PLATFORM_ID]
|
|
3214
|
+
}] }];
|
|
3215
|
+
}, propDecorators: { navbar: [{
|
|
3180
3216
|
type: Input,
|
|
3181
3217
|
args: ['navbarContent']
|
|
3182
3218
|
}] } });
|