@mintplayer/ng-bootstrap 12.0.0 → 12.0.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.
Files changed (47) hide show
  1. package/bundles/mintplayer-ng-bootstrap.umd.js +339 -34
  2. package/bundles/mintplayer-ng-bootstrap.umd.js.map +1 -1
  3. package/esm2015/lib/components/carousel/carousel/carousel.component.js +70 -0
  4. package/esm2015/lib/components/carousel/carousel/carousel.component.js.map +1 -0
  5. package/esm2015/lib/components/carousel/carousel-image/carousel-image.directive.js +14 -0
  6. package/esm2015/lib/components/carousel/carousel-image/carousel-image.directive.js.map +1 -0
  7. package/esm2015/lib/components/carousel/carousel.module.js +31 -0
  8. package/esm2015/lib/components/carousel/carousel.module.js.map +1 -0
  9. package/esm2015/lib/components/carousel/index.js +4 -0
  10. package/esm2015/lib/components/carousel/index.js.map +1 -0
  11. package/esm2015/lib/components/index.js +1 -0
  12. package/esm2015/lib/components/index.js.map +1 -1
  13. package/esm2015/lib/components/navbar/dropdown-toggle/dropdown-toggle.directive.js +38 -0
  14. package/esm2015/lib/components/navbar/dropdown-toggle/dropdown-toggle.directive.js.map +1 -0
  15. package/esm2015/lib/components/navbar/index.js +4 -0
  16. package/esm2015/lib/components/navbar/index.js.map +1 -1
  17. package/esm2015/lib/components/navbar/nav-link/nav-link.directive.js +29 -0
  18. package/esm2015/lib/components/navbar/nav-link/nav-link.directive.js.map +1 -0
  19. package/esm2015/lib/components/navbar/navbar/navbar.component.js +8 -6
  20. package/esm2015/lib/components/navbar/navbar/navbar.component.js.map +1 -1
  21. package/esm2015/lib/components/navbar/navbar-content/navbar-content.directive.js +33 -0
  22. package/esm2015/lib/components/navbar/navbar-content/navbar-content.directive.js.map +1 -0
  23. package/esm2015/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.js +26 -5
  24. package/esm2015/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.js.map +1 -1
  25. package/esm2015/lib/components/navbar/navbar-item/navbar-item.component.js +38 -5
  26. package/esm2015/lib/components/navbar/navbar-item/navbar-item.component.js.map +1 -1
  27. package/esm2015/lib/components/navbar/navbar-nav/navbar-nav.component.js +22 -6
  28. package/esm2015/lib/components/navbar/navbar-nav/navbar-nav.component.js.map +1 -1
  29. package/esm2015/lib/components/navbar/navbar.module.js +29 -6
  30. package/esm2015/lib/components/navbar/navbar.module.js.map +1 -1
  31. package/fesm2015/mintplayer-ng-bootstrap.js +308 -32
  32. package/fesm2015/mintplayer-ng-bootstrap.js.map +1 -1
  33. package/lib/components/carousel/carousel/carousel.component.d.ts +18 -0
  34. package/lib/components/carousel/carousel-image/carousel-image.directive.d.ts +6 -0
  35. package/lib/components/carousel/carousel.module.d.ts +9 -0
  36. package/lib/components/carousel/index.d.ts +3 -0
  37. package/lib/components/index.d.ts +1 -0
  38. package/lib/components/navbar/dropdown-toggle/dropdown-toggle.directive.d.ts +13 -0
  39. package/lib/components/navbar/index.d.ts +3 -0
  40. package/lib/components/navbar/nav-link/nav-link.directive.d.ts +9 -0
  41. package/lib/components/navbar/navbar/navbar.component.d.ts +5 -4
  42. package/lib/components/navbar/navbar-content/navbar-content.directive.d.ts +14 -0
  43. package/lib/components/navbar/navbar-dropdown/navbar-dropdown.component.d.ts +10 -4
  44. package/lib/components/navbar/navbar-item/navbar-item.component.d.ts +12 -5
  45. package/lib/components/navbar/navbar-nav/navbar-nav.component.d.ts +7 -2
  46. package/lib/components/navbar/navbar.module.d.ts +7 -2
  47. package/package.json +5 -2
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@mintplayer/ng-animations'), require('@angular/platform-browser/animations')) :
3
- typeof define === 'function' && define.amd ? define('@mintplayer/ng-bootstrap', ['exports', '@angular/core', '@angular/common', '@mintplayer/ng-animations', '@angular/platform-browser/animations'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.mintplayer = global.mintplayer || {}, global.mintplayer['ng-bootstrap'] = {}), global.ng.core, global.ng.common, global.ngAnimations, global.ng.platformBrowser.animations));
5
- }(this, (function (exports, i0, i1, ngAnimations, animations) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@mintplayer/ng-animations'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@mintplayer/ng-click-outside'), require('@angular/platform-browser/animations')) :
3
+ typeof define === 'function' && define.amd ? define('@mintplayer/ng-bootstrap', ['exports', '@angular/core', '@angular/common', '@mintplayer/ng-animations', 'rxjs', 'rxjs/operators', '@angular/router', '@mintplayer/ng-click-outside', '@angular/platform-browser/animations'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.mintplayer = global.mintplayer || {}, global.mintplayer['ng-bootstrap'] = {}), global.ng.core, global.ng.common, global.ngAnimations, global.rxjs, global.rxjs.operators, global.ng.router, global.i2, global.ng.platformBrowser.animations));
5
+ }(this, (function (exports, i0, i1, ngAnimations, rxjs, operators, router, i2, animations) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -26,6 +26,7 @@
26
26
 
27
27
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
28
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
29
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
29
30
 
30
31
  exports.Color = void 0;
31
32
  (function (Color) {
@@ -808,6 +809,116 @@
808
809
  }]
809
810
  }] });
810
811
 
812
+ var BsCarouselImageDirective = /** @class */ (function () {
813
+ function BsCarouselImageDirective() {
814
+ }
815
+ return BsCarouselImageDirective;
816
+ }());
817
+ BsCarouselImageDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselImageDirective, deps: [], target: i0__namespace.ɵɵFactoryTarget.Directive });
818
+ BsCarouselImageDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.0", type: BsCarouselImageDirective, selector: "img[bsCarouselImage]", ngImport: i0__namespace });
819
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselImageDirective, decorators: [{
820
+ type: i0.Directive,
821
+ args: [{
822
+ selector: 'img[bsCarouselImage]'
823
+ }]
824
+ }], ctorParameters: function () { return []; } });
825
+
826
+ var BsCarouselComponent = /** @class */ (function () {
827
+ function BsCarouselComponent() {
828
+ var _this = this;
829
+ this.destroyed$ = new rxjs.Subject();
830
+ this.currentImageIndex$ = new rxjs.BehaviorSubject(-1);
831
+ this.currentImage$ = this.currentImageIndex$
832
+ .pipe(operators.map(function (index) { var _a; return (_a = _this.images.get(index)) !== null && _a !== void 0 ? _a : null; }))
833
+ .pipe(operators.takeUntil(this.destroyed$));
834
+ }
835
+ BsCarouselComponent.prototype.ngOnInit = function () { };
836
+ BsCarouselComponent.prototype.ngOnDestroy = function () {
837
+ this.destroyed$.next(true);
838
+ };
839
+ BsCarouselComponent.prototype.ngAfterContentInit = function () {
840
+ if (this.images.length > 0) {
841
+ this.currentImageIndex$.next(0);
842
+ }
843
+ else {
844
+ this.currentImageIndex$.next(-1);
845
+ }
846
+ };
847
+ BsCarouselComponent.prototype.previousImage = function () {
848
+ var _this = this;
849
+ this.currentImageIndex$
850
+ .pipe(operators.take(1))
851
+ .subscribe(function (currentImageIndex) {
852
+ if (currentImageIndex === 0) {
853
+ _this.currentImageIndex$.next(_this.images.length - 1);
854
+ }
855
+ else {
856
+ _this.currentImageIndex$.next(currentImageIndex - 1);
857
+ }
858
+ });
859
+ };
860
+ BsCarouselComponent.prototype.nextImage = function () {
861
+ var _this = this;
862
+ this.currentImageIndex$
863
+ .pipe(operators.take(1))
864
+ .subscribe(function (currentImageIndex) {
865
+ if (currentImageIndex >= _this.images.length - 1) {
866
+ _this.currentImageIndex$.next(0);
867
+ }
868
+ else {
869
+ _this.currentImageIndex$.next(currentImageIndex + 1);
870
+ }
871
+ });
872
+ };
873
+ BsCarouselComponent.prototype.setCurrentImage = function (index) {
874
+ this.currentImageIndex$.next(index);
875
+ };
876
+ return BsCarouselComponent;
877
+ }());
878
+ BsCarouselComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
879
+ BsCarouselComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsCarouselComponent, selector: "bs-carousel", queries: [{ propertyName: "images", predicate: BsCarouselImageDirective, read: i0.ElementRef }], ngImport: i0__namespace, template: "<div class=\"carousel slide\">\n <div class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\" data-bs-target\n [class.active]=\"(currentImageIndex$ | async) === i\"\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageIndex$ | async\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <!-- @fadeInOut -->\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <img [src]=\"image.nativeElement.src\" class=\"d-block\" [attr.alt]=\"image.nativeElement.alt\" [class.w-100]=\"true\">\n </div>\n </ng-container>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n</div>", styles: [""], directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1__namespace.AsyncPipe }, animations: [ngAnimations.FadeInOutAnimation, ngAnimations.CarouselSlideAnimation] });
880
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselComponent, decorators: [{
881
+ type: i0.Component,
882
+ args: [{
883
+ selector: 'bs-carousel',
884
+ templateUrl: './carousel.component.html',
885
+ styleUrls: ['./carousel.component.scss'],
886
+ animations: [ngAnimations.FadeInOutAnimation, ngAnimations.CarouselSlideAnimation]
887
+ }]
888
+ }], ctorParameters: function () { return []; }, propDecorators: { images: [{
889
+ type: i0.ContentChildren,
890
+ args: [BsCarouselImageDirective, { read: i0.ElementRef }]
891
+ }] } });
892
+
893
+ var BsCarouselModule = /** @class */ (function () {
894
+ function BsCarouselModule() {
895
+ }
896
+ return BsCarouselModule;
897
+ }());
898
+ BsCarouselModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
899
+ BsCarouselModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselModule, declarations: [BsCarouselComponent,
900
+ BsCarouselImageDirective], imports: [i1.CommonModule], exports: [BsCarouselComponent,
901
+ BsCarouselImageDirective] });
902
+ BsCarouselModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselModule, imports: [[
903
+ i1.CommonModule
904
+ ]] });
905
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsCarouselModule, decorators: [{
906
+ type: i0.NgModule,
907
+ args: [{
908
+ declarations: [
909
+ BsCarouselComponent,
910
+ BsCarouselImageDirective
911
+ ],
912
+ imports: [
913
+ i1.CommonModule
914
+ ],
915
+ exports: [
916
+ BsCarouselComponent,
917
+ BsCarouselImageDirective
918
+ ]
919
+ }]
920
+ }] });
921
+
811
922
  var BsListGroupItemComponent = /** @class */ (function () {
812
923
  function BsListGroupItemComponent() {
813
924
  }
@@ -876,49 +987,129 @@
876
987
  function BsNavbarComponent() {
877
988
  this.isExpanded = false;
878
989
  }
879
- BsNavbarComponent.prototype.ngOnInit = function () {
990
+ BsNavbarComponent.prototype.toggleExpanded = function () {
991
+ this.isExpanded = !this.isExpanded;
880
992
  };
881
993
  return BsNavbarComponent;
882
994
  }());
883
995
  BsNavbarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
884
- BsNavbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarComponent, selector: "bs-navbar", ngImport: i0__namespace, template: "<nav class=\"navbar navbar-expand-md position-fixed navbar-dark bg-dark\">\n <div class=\"container-fluid\">\n <!-- <div class=\"w-100\"> -->\n <a class=\"navbar-brand mx-auto\" href=\"#\">Navbar 2</a>\n <button (click)=\"isExpanded = !isExpanded\" class=\"navbar-toggler align-self-end\" type=\"button\" data-toggle=\"collapse\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <!-- </div> -->\n <div class=\"navbar-collapse collapse w-100 show\" [@slideUpDown]=\"isExpanded ? 'down' : 'up'\">\n <ul class=\"navbar-nav mr-auto\">\n <li class=\"nav-item active\">\n <a class=\"nav-link\" href=\"#\">Left</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"//codeply.com\">Codeply</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\">Link</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\">Link</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\">Link</a>\n </li>\n </ul>\n </div>\n <div class=\"navbar-collapse collapse justify-content-end w-100 show\" [@slideUpDown]=\"isExpanded ? 'down' : 'up'\">\n <ul class=\"navbar-nav ml-auto\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\">Right</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" href=\"#\">Link</a>\n </li>\n </ul>\n </div>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:1}\n"], animations: [ngAnimations.SlideUpDownAnimation] });
996
+ BsNavbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarComponent, selector: "bs-navbar", viewQueries: [{ propertyName: "nav", first: true, predicate: ["nav"], descendants: true }], ngImport: i0__namespace, 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 <a class=\"navbar-brand mx-auto mx-md-unset\" href=\"#\">Navbar 2</a>\n <button (click)=\"toggleExpanded()\" class=\"navbar-toggler align-self-end\" type=\"button\" data-toggle=\"collapse\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n</nav>", styles: [":host ::ng-deep+*{padding-top:56px}nav{left:0;top:0;right:0;z-index:1}@media (min-width: 768px){.mx-md-unset{margin-left:0!important;margin-right:0!important}.w-md-auto{width:auto!important}}\n"] });
885
997
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarComponent, decorators: [{
886
998
  type: i0.Component,
887
999
  args: [{
888
1000
  selector: 'bs-navbar',
889
1001
  templateUrl: './navbar.component.html',
890
1002
  styleUrls: ['./navbar.component.scss'],
891
- animations: [ngAnimations.SlideUpDownAnimation]
892
1003
  }]
893
- }], ctorParameters: function () { return []; } });
1004
+ }], ctorParameters: function () { return []; }, propDecorators: { nav: [{
1005
+ type: i0.ViewChild,
1006
+ args: ['nav']
1007
+ }] } });
894
1008
 
895
1009
  var BsNavbarNavComponent = /** @class */ (function () {
896
- function BsNavbarNavComponent() {
1010
+ function BsNavbarNavComponent(bsNavbar) {
1011
+ //#region collapse
1012
+ this._collapse = true;
1013
+ this.bsNavbar = bsNavbar;
897
1014
  }
898
1015
  BsNavbarNavComponent.prototype.ngOnInit = function () {
899
1016
  };
1017
+ Object.defineProperty(BsNavbarNavComponent.prototype, "collapse", {
1018
+ get: function () {
1019
+ return this._collapse;
1020
+ },
1021
+ set: function (value) {
1022
+ this._collapse = value;
1023
+ },
1024
+ enumerable: false,
1025
+ configurable: true
1026
+ });
900
1027
  return BsNavbarNavComponent;
901
1028
  }());
902
- BsNavbarNavComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarNavComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
903
- BsNavbarNavComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarNavComponent, selector: "bs-navbar-nav", ngImport: i0__namespace, template: "<p>navbar-nav works!</p>\n", styles: [""] });
1029
+ BsNavbarNavComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarNavComponent, deps: [{ token: BsNavbarComponent }], target: i0__namespace.ɵɵFactoryTarget.Component });
1030
+ BsNavbarNavComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarNavComponent, selector: "bs-navbar-nav", inputs: { collapse: "collapse" }, ngImport: i0__namespace, template: "<div class=\"navbar-collapse collapse w-100 show\" [@slideUpDown]=\"bsNavbar.isExpanded ? 'down' : 'up'\">\n <ul class=\"navbar-nav mr-auto\">\n <ng-content></ng-content>\n </ul>\n</div>", styles: [":host{margin-right:auto}@media screen and (max-width: 767px){:host{width:100%!important}.navbar-collapse.collapse{overflow:hidden}}\n"], animations: [ngAnimations.SlideUpDownAnimation] });
904
1031
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarNavComponent, decorators: [{
905
1032
  type: i0.Component,
906
1033
  args: [{
907
1034
  selector: 'bs-navbar-nav',
908
1035
  templateUrl: './navbar-nav.component.html',
909
- styleUrls: ['./navbar-nav.component.scss']
1036
+ styleUrls: ['./navbar-nav.component.scss'],
1037
+ animations: [ngAnimations.SlideUpDownAnimation]
910
1038
  }]
911
- }], ctorParameters: function () { return []; } });
1039
+ }], ctorParameters: function () { return [{ type: BsNavbarComponent }]; }, propDecorators: { collapse: [{
1040
+ type: i0.Input
1041
+ }] } });
1042
+
1043
+ var BsNavbarItemComponent = /** @class */ (function () {
1044
+ function BsNavbarItemComponent(parentDropdown, element) {
1045
+ this.element = element;
1046
+ this.hasDropdown = false;
1047
+ this.anchorTag = null;
1048
+ this.parentDropdown = parentDropdown;
1049
+ }
1050
+ BsNavbarItemComponent.prototype.ngOnInit = function () {
1051
+ };
1052
+ BsNavbarItemComponent.prototype.ngAfterContentChecked = function () {
1053
+ var _this = this;
1054
+ if (this.hasDropdown) {
1055
+ window.element = this.element.nativeElement;
1056
+ this.anchorTag = this.element.nativeElement.querySelector('li a');
1057
+ (this.anchorTag) && this.anchorTag.classList.add('dropdown-toggle');
1058
+ if (this.anchorTag && !this.anchorTag.onclick) {
1059
+ this.anchorTag.onclick = function (ev) {
1060
+ ev.preventDefault();
1061
+ // Normally there should be only one dropdown in this list
1062
+ _this.dropdowns.forEach(function (dropdown) {
1063
+ if (!(dropdown.isVisible = !dropdown.isVisible)) {
1064
+ dropdown.childDropdowns.forEach(function (child) {
1065
+ child.isVisible = false;
1066
+ });
1067
+ }
1068
+ });
1069
+ return false;
1070
+ };
1071
+ }
1072
+ }
1073
+ };
1074
+ return BsNavbarItemComponent;
1075
+ }());
1076
+ BsNavbarItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarItemComponent, deps: [{ token: BsNavbarDropdownComponent, optional: true }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1077
+ BsNavbarItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarItemComponent, selector: "bs-navbar-item", queries: [{ propertyName: "dropdowns", predicate: BsNavbarDropdownComponent }], ngImport: i0__namespace, template: "<li [class.nav-item]=\"parentDropdown === null\" [class.dropdown]=\"(dropdowns.length > 0) && (parentDropdown === null)\" [class.dropend]=\"(dropdowns.length > 0) && (parentDropdown !== null)\">\n <ng-content></ng-content>\n</li>", styles: ["li.dropend ::ng-deep a.dropdown-toggle{padding-right:1.5rem}li.dropend ::ng-deep a.dropdown-toggle:after{position:absolute;right:.5rem;top:.75rem}\n"] });
1078
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarItemComponent, decorators: [{
1079
+ type: i0.Component,
1080
+ args: [{
1081
+ selector: 'bs-navbar-item',
1082
+ templateUrl: './navbar-item.component.html',
1083
+ styleUrls: ['./navbar-item.component.scss']
1084
+ }]
1085
+ }], ctorParameters: function () {
1086
+ return [{ type: BsNavbarDropdownComponent, decorators: [{
1087
+ type: i0.Optional
1088
+ }] }, { type: i0__namespace.ElementRef }];
1089
+ }, propDecorators: { dropdowns: [{
1090
+ type: i0.ContentChildren,
1091
+ args: [BsNavbarDropdownComponent]
1092
+ }] } });
912
1093
 
913
1094
  var BsNavbarDropdownComponent = /** @class */ (function () {
914
- function BsNavbarDropdownComponent() {
1095
+ function BsNavbarDropdownComponent(parentDropdown, navbarItem) {
1096
+ this.isVisible = false;
1097
+ this.parentDropdown = parentDropdown;
1098
+ this.navbarItem = navbarItem;
915
1099
  }
1100
+ Object.defineProperty(BsNavbarDropdownComponent.prototype, "elementsToExclude", {
1101
+ get: function () {
1102
+ return [this.navbarItem.anchorTag].filter(function (a) { return a; }).map(function (a) { return a; });
1103
+ },
1104
+ enumerable: false,
1105
+ configurable: true
1106
+ });
916
1107
  BsNavbarDropdownComponent.prototype.ngOnInit = function () {
917
1108
  };
918
1109
  return BsNavbarDropdownComponent;
919
1110
  }());
920
- BsNavbarDropdownComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarDropdownComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
921
- BsNavbarDropdownComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarDropdownComponent, selector: "bs-navbar-dropdown", ngImport: i0__namespace, template: "<p>navbar-dropdown works!</p>\n", styles: [""] });
1111
+ BsNavbarDropdownComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarDropdownComponent, deps: [{ token: BsNavbarDropdownComponent, host: true, optional: true, skipSelf: true }, { token: BsNavbarItemComponent, host: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1112
+ BsNavbarDropdownComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarDropdownComponent, selector: "bs-navbar-dropdown", queries: [{ propertyName: "childDropdowns", predicate: BsNavbarDropdownComponent, descendants: true }], ngImport: i0__namespace, template: "<ul class=\"dropdown-menu\" [class.show]=\"isVisible\" [class.submenu]=\"!!parentDropdown\" (clickOutside)=\"isVisible = false\" [exclude]=\"elementsToExclude\" aria-labelledby=\"navbarDropdown\">\n <ng-content></ng-content>\n</ul>", styles: ["@media (max-width: 767px){.submenu{margin-left:.5rem;margin-right:.5rem}}@media (min-width: 768px){.submenu{position:absolute;left:100%;top:-1px}}\n"], directives: [{ type: i2__namespace.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
922
1113
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarDropdownComponent, decorators: [{
923
1114
  type: i0.Component,
924
1115
  args: [{
@@ -926,25 +1117,115 @@
926
1117
  templateUrl: './navbar-dropdown.component.html',
927
1118
  styleUrls: ['./navbar-dropdown.component.scss']
928
1119
  }]
929
- }], ctorParameters: function () { return []; } });
1120
+ }], ctorParameters: function () {
1121
+ return [{ type: BsNavbarDropdownComponent, decorators: [{
1122
+ type: i0.SkipSelf
1123
+ }, {
1124
+ type: i0.Host
1125
+ }, {
1126
+ type: i0.Optional
1127
+ }] }, { type: BsNavbarItemComponent, decorators: [{
1128
+ type: i0.Host
1129
+ }] }];
1130
+ }, propDecorators: { childDropdowns: [{
1131
+ type: i0.ContentChildren,
1132
+ args: [BsNavbarDropdownComponent, { descendants: true }]
1133
+ }] } });
930
1134
 
931
- var BsNavbarItemComponent = /** @class */ (function () {
932
- function BsNavbarItemComponent() {
1135
+ var DropdownToggleDirective = /** @class */ (function () {
1136
+ function DropdownToggleDirective(elementRef, bsNavbarItem, parentDropdown) {
1137
+ this.elementRef = elementRef;
1138
+ this.bsNavbarItem = bsNavbarItem;
933
1139
  }
934
- BsNavbarItemComponent.prototype.ngOnInit = function () {
1140
+ DropdownToggleDirective.prototype.ngAfterContentInit = function () {
1141
+ if (this.bsNavbarItem.dropdowns.length > 0) {
1142
+ this.bsNavbarItem.hasDropdown = true;
1143
+ }
935
1144
  };
936
- return BsNavbarItemComponent;
1145
+ return DropdownToggleDirective;
937
1146
  }());
938
- BsNavbarItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarItemComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
939
- BsNavbarItemComponentcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BsNavbarItemComponent, selector: "bs-navbar-item", ngImport: i0__namespace, template: "<p>navbar-item works!</p>\n", styles: [""] });
940
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarItemComponent, decorators: [{
941
- type: i0.Component,
1147
+ DropdownToggleDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: DropdownToggleDirective, deps: [{ token: i0__namespace.ElementRef }, { token: i0.forwardRef(function () { return BsNavbarItemComponent; }) }, { token: i0.forwardRef(function () { return BsNavbarDropdownComponent; }), optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1148
+ DropdownToggleDirectivedir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.0", type: DropdownToggleDirective, selector: "bs-navbar-item", queries: [{ propertyName: "childDropdowns", predicate: BsNavbarDropdownComponent }], ngImport: i0__namespace });
1149
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: DropdownToggleDirective, decorators: [{
1150
+ type: i0.Directive,
942
1151
  args: [{
1152
+ // selector: 'bs-navbar-item > a[routerLink]',
943
1153
  selector: 'bs-navbar-item',
944
- templateUrl: './navbar-item.component.html',
945
- styleUrls: ['./navbar-item.component.scss']
1154
+ queries: {
1155
+ childDropdowns: new i0.ContentChildren(BsNavbarDropdownComponent)
1156
+ }
946
1157
  }]
947
- }], ctorParameters: function () { return []; } });
1158
+ }], ctorParameters: function () {
1159
+ return [{ type: i0__namespace.ElementRef }, { type: BsNavbarItemComponent, decorators: [{
1160
+ type: i0.Inject,
1161
+ args: [i0.forwardRef(function () { return BsNavbarItemComponent; })]
1162
+ }] }, { type: BsNavbarDropdownComponent, decorators: [{
1163
+ type: i0.Optional
1164
+ }, {
1165
+ type: i0.Inject,
1166
+ args: [i0.forwardRef(function () { return BsNavbarDropdownComponent; })]
1167
+ }] }];
1168
+ } });
1169
+
1170
+ var NavLinkDirective = /** @class */ (function () {
1171
+ function NavLinkDirective(elementRef, parentDropdown) {
1172
+ this.elementRef = elementRef;
1173
+ if (parentDropdown == null) {
1174
+ this.elementRef.nativeElement.classList.add('nav-link');
1175
+ }
1176
+ else {
1177
+ this.elementRef.nativeElement.classList.add('dropdown-item');
1178
+ }
1179
+ }
1180
+ return NavLinkDirective;
1181
+ }());
1182
+ NavLinkDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: NavLinkDirective, deps: [{ token: i0__namespace.ElementRef }, { token: i0.forwardRef(function () { return BsNavbarDropdownComponent; }), optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1183
+ NavLinkDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.0", type: NavLinkDirective, selector: "bs-navbar-item > a[routerLink]", ngImport: i0__namespace });
1184
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: NavLinkDirective, decorators: [{
1185
+ type: i0.Directive,
1186
+ args: [{
1187
+ selector: 'bs-navbar-item > a[routerLink]'
1188
+ }]
1189
+ }], ctorParameters: function () {
1190
+ return [{ type: i0__namespace.ElementRef }, { type: BsNavbarDropdownComponent, decorators: [{
1191
+ type: i0.Optional
1192
+ }, {
1193
+ type: i0.Inject,
1194
+ args: [i0.forwardRef(function () { return BsNavbarDropdownComponent; })]
1195
+ }] }];
1196
+ } });
1197
+
1198
+ var NavbarContentDirective = /** @class */ (function () {
1199
+ function NavbarContentDirective(element) {
1200
+ var _this = this;
1201
+ this.element = element;
1202
+ this.initialPadding = 0;
1203
+ this.resizeObserver = new ResizeObserver(function (entries) {
1204
+ var height = entries[0].contentRect.height;
1205
+ _this.element.nativeElement.style.paddingTop = (_this.initialPadding + height) + 'px';
1206
+ });
1207
+ }
1208
+ NavbarContentDirective.prototype.ngAfterViewInit = function () {
1209
+ var p = parseInt(this.element.nativeElement.style.paddingTop.replace(/px$/, ''));
1210
+ this.initialPadding = isNaN(p) ? 0 : p;
1211
+ this.resizeObserver.observe(this.navbar.nav.nativeElement);
1212
+ };
1213
+ NavbarContentDirective.prototype.ngOnDestroy = function () {
1214
+ this.resizeObserver.unobserve(this.navbar.nav.nativeElement);
1215
+ };
1216
+ return NavbarContentDirective;
1217
+ }());
1218
+ NavbarContentDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: NavbarContentDirective, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1219
+ NavbarContentDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.0", type: NavbarContentDirective, selector: "[navbarContent]", inputs: { navbar: ["navbarContent", "navbar"] }, ngImport: i0__namespace });
1220
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: NavbarContentDirective, decorators: [{
1221
+ type: i0.Directive,
1222
+ args: [{
1223
+ selector: '[navbarContent]'
1224
+ }]
1225
+ }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }]; }, propDecorators: { navbar: [{
1226
+ type: i0.Input,
1227
+ args: ['navbarContent']
1228
+ }] } });
948
1229
 
949
1230
  var BsNavbarModule = /** @class */ (function () {
950
1231
  function BsNavbarModule() {
@@ -955,12 +1236,22 @@
955
1236
  BsNavbarModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarModule, declarations: [BsNavbarComponent,
956
1237
  BsNavbarNavComponent,
957
1238
  BsNavbarDropdownComponent,
958
- BsNavbarItemComponent], imports: [i1.CommonModule], exports: [BsNavbarComponent,
1239
+ BsNavbarItemComponent,
1240
+ DropdownToggleDirective,
1241
+ NavLinkDirective,
1242
+ NavbarContentDirective], imports: [i1.CommonModule,
1243
+ router.RouterModule,
1244
+ i2.ClickOutsideModule], exports: [BsNavbarComponent,
959
1245
  BsNavbarNavComponent,
960
1246
  BsNavbarDropdownComponent,
961
- BsNavbarItemComponent] });
1247
+ BsNavbarItemComponent,
1248
+ DropdownToggleDirective,
1249
+ NavLinkDirective,
1250
+ NavbarContentDirective] });
962
1251
  BsNavbarModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarModule, imports: [[
963
- i1.CommonModule
1252
+ i1.CommonModule,
1253
+ router.RouterModule,
1254
+ i2.ClickOutsideModule
964
1255
  ]] });
965
1256
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0__namespace, type: BsNavbarModule, decorators: [{
966
1257
  type: i0.NgModule,
@@ -969,16 +1260,24 @@
969
1260
  BsNavbarComponent,
970
1261
  BsNavbarNavComponent,
971
1262
  BsNavbarDropdownComponent,
972
- BsNavbarItemComponent
1263
+ BsNavbarItemComponent,
1264
+ DropdownToggleDirective,
1265
+ NavLinkDirective,
1266
+ NavbarContentDirective
973
1267
  ],
974
1268
  imports: [
975
- i1.CommonModule
1269
+ i1.CommonModule,
1270
+ router.RouterModule,
1271
+ i2.ClickOutsideModule
976
1272
  ],
977
1273
  exports: [
978
1274
  BsNavbarComponent,
979
1275
  BsNavbarNavComponent,
980
1276
  BsNavbarDropdownComponent,
981
- BsNavbarItemComponent
1277
+ BsNavbarItemComponent,
1278
+ DropdownToggleDirective,
1279
+ NavLinkDirective,
1280
+ NavbarContentDirective
982
1281
  ]
983
1282
  }]
984
1283
  }] });
@@ -1195,6 +1494,9 @@
1195
1494
  exports.BsCardComponent = BsCardComponent;
1196
1495
  exports.BsCardHeaderComponent = BsCardHeaderComponent;
1197
1496
  exports.BsCardModule = BsCardModule;
1497
+ exports.BsCarouselComponent = BsCarouselComponent;
1498
+ exports.BsCarouselImageDirective = BsCarouselImageDirective;
1499
+ exports.BsCarouselModule = BsCarouselModule;
1198
1500
  exports.BsListGroupComponent = BsListGroupComponent;
1199
1501
  exports.BsListGroupItemComponent = BsListGroupItemComponent;
1200
1502
  exports.BsListGroupModule = BsListGroupModule;
@@ -1206,6 +1508,9 @@
1206
1508
  exports.BsTabControlComponent = BsTabControlComponent;
1207
1509
  exports.BsTabControlModule = BsTabControlModule;
1208
1510
  exports.BsTabPageComponent = BsTabPageComponent;
1511
+ exports.DropdownToggleDirective = DropdownToggleDirective;
1512
+ exports.NavLinkDirective = NavLinkDirective;
1513
+ exports.NavbarContentDirective = NavbarContentDirective;
1209
1514
 
1210
1515
  Object.defineProperty(exports, '__esModule', { value: true });
1211
1516