@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.
@@ -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: [":host ::ng-deep+*{padding-top:56px}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 } });
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: [":host ::ng-deep+*{padding-top:56px}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"] }]
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 { Directive, ElementRef, Input } from '@angular/core';
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.resizeObserver = new ResizeObserver((entries) => {
9
- let height = entries[0].contentRect.height;
10
- this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';
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
- let p = parseInt(this.element.nativeElement.style.paddingTop.replace(/px$/, ''));
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.resizeObserver.unobserve(this.navbar.nav.nativeElement);
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 }]; }, propDecorators: { navbar: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci1jb250ZW50L25hdmJhci1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUsvRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFvQnZDLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBbkJ6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELGVBQWU7UUFDYixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7bUhBbkJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUdBVXlCLE1BQU07c0JBQTdCLEtBQUs7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNOYXZiYXJDb21wb25lbnQgfSBmcm9tICcuLi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuYXZiYXJDb250ZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgbGV0IGhlaWdodCA9IGVudHJpZXNbMF0uY29udGVudFJlY3QuaGVpZ2h0O1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ1RvcCA9ICh0aGlzLmluaXRpYWxQYWRkaW5nICsgaGVpZ2h0KSArICdweCc7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoJ25hdmJhckNvbnRlbnQnKSBuYXZiYXIhOiBCc05hdmJhckNvbXBvbmVudDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IHAgPSBwYXJzZUludCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5wYWRkaW5nVG9wLnJlcGxhY2UoL3B4JC8sICcnKSk7XG4gICAgdGhpcy5pbml0aWFsUGFkZGluZyA9IGlzTmFOKHApID8gMCA6IHA7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMubmF2YmFyLm5hdi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMubmF2YmFyLm5hdi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgaW5pdGlhbFBhZGRpbmc6IG51bWJlciA9IDA7XG59XG4iXX0=
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.onclick) {
20
- this.anchorTag.onclick = (ev) => {
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
- if (this.anchorTag && !this.anchorTag.onclick) {
38
- this.anchorTag.onclick = (ev) => {
39
- let d = this.parentDropdown;
40
- while (d && d.autoclose) {
41
- d.isVisible = false;
42
- d = d.parentDropdown;
43
- }
44
- if (this.navbar.autoclose) {
45
- this.navbar.isExpanded$.next(false);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci1pdGVtL25hdmJhci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXItaXRlbS9uYXZiYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBT3pGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBb0IsTUFBeUIsRUFBYyxjQUF5QyxFQUFVLE9BQW1CO1FBQTdHLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQWlFLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFLakksZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUE2QixJQUFJLENBQUM7UUFMekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQU9ELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFcEUsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBUyxFQUFFLEVBQUU7b0JBQ3JDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDcEIsMERBQTBEO29CQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUNsQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFOzRCQUMvQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dDQUN4QyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQzs0QkFDMUIsQ0FBQyxDQUFDLENBQUM7eUJBQ0o7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxDQUFBO2FBQ0Y7U0FDRjthQUFNO1lBRUwsMEJBQTBCO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtvQkFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFTLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQzt3QkFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTs0QkFDdkIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7NEJBQ3BCLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDO3lCQUN0Qjt3QkFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFOzRCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ3JDO29CQUNILENBQUMsQ0FBQztpQkFDSDthQUNGO1NBRUY7SUFDSCxDQUFDOztrSEFsRFUscUJBQXFCO3NHQUFyQixxQkFBcUIsbUhBU0UseUJBQXlCLGlDQ2xCN0QsME9BRUs7MkZET1EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs7MEJBTXNCLFFBQVE7cUVBT00sU0FBUztzQkFBdEUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNOYXZiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9uYXZiYXIvbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNOYXZiYXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmJhci1kcm9wZG93bi9uYXZiYXItZHJvcGRvd24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtbmF2YmFyLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXItaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzTmF2YmFySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmF2YmFyOiBCc05hdmJhckNvbXBvbmVudCwgQE9wdGlvbmFsKCkgcGFyZW50RHJvcGRvd246IEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnQsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIHRoaXMucGFyZW50RHJvcGRvd24gPSBwYXJlbnREcm9wZG93bjtcbiAgfVxuXG4gIHBhcmVudERyb3Bkb3duOiBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50O1xuICBoYXNEcm9wZG93biA9IGZhbHNlO1xuICBhbmNob3JUYWc6IEhUTUxBbmNob3JFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCc05hdmJhckRyb3Bkb3duQ29tcG9uZW50KSkgZHJvcGRvd25zITogUXVlcnlMaXN0PEJzTmF2YmFyRHJvcGRvd25Db21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmFuY2hvclRhZyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpIGEnKTtcblxuICAgIGlmICh0aGlzLmhhc0Ryb3Bkb3duKSB7XG4gICAgICAodGhpcy5hbmNob3JUYWcpICYmIHRoaXMuYW5jaG9yVGFnLmNsYXNzTGlzdC5hZGQoJ2Ryb3Bkb3duLXRvZ2dsZScpO1xuXG4gICAgICBpZiAodGhpcy5hbmNob3JUYWcgJiYgIXRoaXMuYW5jaG9yVGFnLm9uY2xpY2spIHtcbiAgICAgICAgdGhpcy5hbmNob3JUYWcub25jbGljayA9IChldjogRXZlbnQpID0+IHtcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIC8vIE5vcm1hbGx5IHRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBkcm9wZG93biBpbiB0aGlzIGxpc3RcbiAgICAgICAgICB0aGlzLmRyb3Bkb3ducy5mb3JFYWNoKChkcm9wZG93bikgPT4ge1xuICAgICAgICAgICAgaWYgKCEoZHJvcGRvd24uaXNWaXNpYmxlID0gIWRyb3Bkb3duLmlzVmlzaWJsZSkpIHtcbiAgICAgICAgICAgICAgZHJvcGRvd24uY2hpbGREcm9wZG93bnMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZC5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcblxuICAgICAgLy8gQ2xvc2UgaWYgdGhpcyBpcyBhIGxpbmtcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3ducy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKHRoaXMuYW5jaG9yVGFnICYmICF0aGlzLmFuY2hvclRhZy5vbmNsaWNrKSB7XG4gICAgICAgICAgdGhpcy5hbmNob3JUYWcub25jbGljayA9IChldjogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGxldCBkID0gdGhpcy5wYXJlbnREcm9wZG93bjtcbiAgICAgICAgICAgIHdoaWxlIChkICYmIGQuYXV0b2Nsb3NlKSB7XG4gICAgICAgICAgICAgIGQuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgIGQgPSBkLnBhcmVudERyb3Bkb3duO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubmF2YmFyLmF1dG9jbG9zZSkge1xuICAgICAgICAgICAgICB0aGlzLm5hdmJhci5pc0V4cGFuZGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cbiIsIjxsaSBbY2xhc3MubmF2LWl0ZW1dPVwicGFyZW50RHJvcGRvd24gPT09IG51bGxcIiBbY2xhc3MuZHJvcGRvd25dPVwiKGRyb3Bkb3ducy5sZW5ndGggPiAwKSAmJiAocGFyZW50RHJvcGRvd24gPT09IG51bGwpXCIgW2NsYXNzLmRyb3BlbmRdPVwiKGRyb3Bkb3ducy5sZW5ndGggPiAwKSAmJiAocGFyZW50RHJvcGRvd24gIT09IG51bGwpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9saT4iXX0=
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: [":host ::ng-deep+*{padding-top:56px}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 } });
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: [":host ::ng-deep+*{padding-top:56px}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"] }]
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.onclick) {
3010
- this.anchorTag.onclick = (ev) => {
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
- if (this.anchorTag && !this.anchorTag.onclick) {
3028
- this.anchorTag.onclick = (ev) => {
3029
- let d = this.parentDropdown;
3030
- while (d && d.autoclose) {
3031
- d.isVisible = false;
3032
- d = d.parentDropdown;
3033
- }
3034
- if (this.navbar.autoclose) {
3035
- this.navbar.isExpanded$.next(false);
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.resizeObserver = new ResizeObserver((entries) => {
3159
- let height = entries[0].contentRect.height;
3160
- this.element.nativeElement.style.paddingTop = (this.initialPadding + height) + 'px';
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
- let p = parseInt(this.element.nativeElement.style.paddingTop.replace(/px$/, ''));
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.resizeObserver.unobserve(this.navbar.nav.nativeElement);
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 () { return [{ type: i0.ElementRef }]; }, propDecorators: { navbar: [{
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
  }] } });