@mintplayer/ng-bootstrap 15.16.2 → 15.17.0

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 (37) hide show
  1. package/carousel/src/carousel/carousel.component.d.ts +14 -15
  2. package/carousel/src/carousel-image/carousel-image.directive.d.ts +1 -0
  3. package/carousel/src/carousel.module.d.ts +3 -2
  4. package/dropdown-divider/index.d.ts +1 -0
  5. package/dropdown-divider/src/dropdown-divider.directive.d.ts +6 -0
  6. package/dropdown-divider/src/dropdown-divider.module.d.ts +8 -0
  7. package/dropdown-divider/src/index.d.ts +2 -0
  8. package/dropdown-menu/src/dropdown-menu.module.d.ts +2 -1
  9. package/esm2020/carousel/src/carousel/carousel.component.mjs +62 -64
  10. package/esm2020/carousel/src/carousel-image/carousel-image.directive.mjs +8 -4
  11. package/esm2020/carousel/src/carousel.module.mjs +5 -1
  12. package/esm2020/dropdown-divider/index.mjs +2 -0
  13. package/esm2020/dropdown-divider/mintplayer-ng-bootstrap-dropdown-divider.mjs +5 -0
  14. package/esm2020/dropdown-divider/src/dropdown-divider.directive.mjs +19 -0
  15. package/esm2020/dropdown-divider/src/dropdown-divider.module.mjs +18 -0
  16. package/esm2020/dropdown-divider/src/index.mjs +3 -0
  17. package/esm2020/dropdown-menu/src/dropdown-menu.module.mjs +12 -5
  18. package/esm2020/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +2 -3
  19. package/esm2020/navbar/src/navbar.module.mjs +10 -4
  20. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs +71 -66
  21. package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  22. package/fesm2015/mintplayer-ng-bootstrap-dropdown-divider.mjs +41 -0
  23. package/fesm2015/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -0
  24. package/fesm2015/mintplayer-ng-bootstrap-dropdown-menu.mjs +11 -4
  25. package/fesm2015/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  26. package/fesm2015/mintplayer-ng-bootstrap-navbar.mjs +10 -5
  27. package/fesm2015/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  28. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs +70 -65
  29. package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  30. package/fesm2020/mintplayer-ng-bootstrap-dropdown-divider.mjs +41 -0
  31. package/fesm2020/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -0
  32. package/fesm2020/mintplayer-ng-bootstrap-dropdown-menu.mjs +11 -4
  33. package/fesm2020/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  34. package/fesm2020/mintplayer-ng-bootstrap-navbar.mjs +10 -5
  35. package/fesm2020/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  36. package/navbar/src/navbar.module.d.ts +2 -1
  37. package/package.json +10 -1
@@ -1,26 +1,25 @@
1
- import { AfterContentInit, OnDestroy, QueryList, TemplateRef } from '@angular/core';
2
- import { BehaviorSubject, Observable, Subject } from 'rxjs';
1
+ import { ChangeDetectorRef, QueryList } from '@angular/core';
2
+ import { Color } from '@mintplayer/ng-bootstrap';
3
+ import { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';
3
4
  import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
4
5
  import * as i0 from "@angular/core";
5
- export declare class BsCarouselComponent implements OnDestroy, AfterContentInit {
6
- constructor(platformId: any);
7
- images: QueryList<BsCarouselImageDirective>;
8
- indicators: boolean;
6
+ export declare class BsCarouselComponent {
7
+ private cdRef;
8
+ constructor(platformId: any, cdRef: ChangeDetectorRef);
9
+ colors: typeof Color;
9
10
  isServerSide: boolean;
10
- destroyed$: Subject<unknown>;
11
- currentImageCounter$: BehaviorSubject<number>;
12
- currentImageIndex$: Observable<number>;
13
- currentImage$: Observable<TemplateRef<any> | null>;
14
- ngOnDestroy(): void;
15
- ngAfterContentInit(): void;
11
+ currentImageIndex: number;
12
+ indicators: boolean;
13
+ keyboardEvents: boolean;
14
+ swipeContainer: BsSwipeContainerDirective;
15
+ images: QueryList<BsCarouselImageDirective>;
16
16
  animationsDisabled: boolean;
17
17
  private _animation;
18
18
  set animation(value: 'fade' | 'slide');
19
19
  get animation(): 'fade' | 'slide';
20
+ onKeyPress(ev: KeyboardEvent): void;
20
21
  previousImage(): void;
21
22
  nextImage(): void;
22
- setCurrentImage(index: number): void;
23
- onKeyPress(ev: KeyboardEvent): void;
24
23
  static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<BsCarouselComponent, "bs-carousel", never, { "indicators": "indicators"; "animation": "animation"; }, {}, ["images"], never, false, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<BsCarouselComponent, "bs-carousel", never, { "indicators": "indicators"; "keyboardEvents": "keyboardEvents"; "animation": "animation"; }, {}, ["images"], never, false, never>;
26
25
  }
@@ -4,6 +4,7 @@ export declare class BsCarouselImageDirective {
4
4
  private templateRef;
5
5
  itemTemplate: TemplateRef<any>;
6
6
  constructor(templateRef: TemplateRef<any>);
7
+ width100class: boolean;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselImageDirective, never>;
8
9
  static ɵdir: i0.ɵɵDirectiveDeclaration<BsCarouselImageDirective, "*[bsCarouselImage]", never, {}, {}, never, never, false, never>;
9
10
  }
@@ -2,9 +2,10 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./carousel/carousel.component";
3
3
  import * as i2 from "./carousel-image/carousel-image.directive";
4
4
  import * as i3 from "@angular/common";
5
- import * as i4 from "@mintplayer/ng-bootstrap/no-noscript";
5
+ import * as i4 from "@mintplayer/ng-swiper";
6
+ import * as i5 from "@mintplayer/ng-bootstrap/no-noscript";
6
7
  export declare class BsCarouselModule {
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<BsCarouselModule, [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective], [typeof i3.CommonModule, typeof i4.BsNoNoscriptModule], [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BsCarouselModule, [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective], [typeof i3.CommonModule, typeof i4.BsSwiperModule, typeof i5.BsNoNoscriptModule], [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective]>;
9
10
  static ɵinj: i0.ɵɵInjectorDeclaration<BsCarouselModule>;
10
11
  }
@@ -0,0 +1 @@
1
+ export * from './src';
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BsDropdownDividerDirective {
3
+ dropdownDividerClass: boolean;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BsDropdownDividerDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BsDropdownDividerDirective, "[bsDropdownDivider]", never, {}, {}, never, never, false, never>;
6
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./dropdown-divider.directive";
3
+ import * as i2 from "@angular/common";
4
+ export declare class BsDropdownDividerModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<BsDropdownDividerModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BsDropdownDividerModule, [typeof i1.BsDropdownDividerDirective], [typeof i2.CommonModule], [typeof i1.BsDropdownDividerDirective]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<BsDropdownDividerModule>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './dropdown-divider.directive';
2
+ export * from './dropdown-divider.module';
@@ -2,8 +2,9 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./dropdown-menu/dropdown-menu.component";
3
3
  import * as i2 from "./dropdown-item/dropdown-item.component";
4
4
  import * as i3 from "@angular/common";
5
+ import * as i4 from "@mintplayer/ng-bootstrap/dropdown-divider";
5
6
  export declare class BsDropdownMenuModule {
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<BsDropdownMenuModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<BsDropdownMenuModule, [typeof i1.BsDropdownMenuComponent, typeof i2.BsDropdownItemComponent], [typeof i3.CommonModule], [typeof i1.BsDropdownMenuComponent, typeof i2.BsDropdownItemComponent]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BsDropdownMenuModule, [typeof i1.BsDropdownMenuComponent, typeof i2.BsDropdownItemComponent], [typeof i3.CommonModule, typeof i4.BsDropdownDividerModule], [typeof i1.BsDropdownMenuComponent, typeof i2.BsDropdownItemComponent, typeof i4.BsDropdownDividerDirective]>;
8
9
  static ɵinj: i0.ɵɵInjectorDeclaration<BsDropdownMenuModule>;
9
10
  }
@@ -1,99 +1,97 @@
1
1
  import { isPlatformServer } from '@angular/common';
2
- import { Component, ContentChildren, HostBinding, HostListener, Inject, Input, PLATFORM_ID, QueryList } from '@angular/core';
3
- import { FadeInOutAnimation, CarouselSlideAnimation } from '@mintplayer/ng-animations';
4
- import { BehaviorSubject, Subject } from 'rxjs';
5
- import { map, take, takeUntil } from 'rxjs/operators';
2
+ import { ChangeDetectorRef, Component, ContentChildren, forwardRef, HostBinding, HostListener, Inject, Input, PLATFORM_ID, QueryList, ViewChild } from '@angular/core';
3
+ import { FadeInOutAnimation } from '@mintplayer/ng-animations';
4
+ import { Color } from '@mintplayer/ng-bootstrap';
5
+ import { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';
6
6
  import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
- import * as i2 from "@mintplayer/ng-bootstrap/no-noscript";
9
+ import * as i2 from "@mintplayer/ng-swiper";
10
+ import * as i3 from "@mintplayer/ng-bootstrap/no-noscript";
10
11
  export class BsCarouselComponent {
11
- constructor(platformId) {
12
+ constructor(platformId, cdRef) {
13
+ this.cdRef = cdRef;
14
+ this.colors = Color;
15
+ this.currentImageIndex = 0;
12
16
  this.indicators = false;
13
- this.destroyed$ = new Subject();
14
- this.currentImageCounter$ = new BehaviorSubject(-1);
17
+ this.keyboardEvents = true;
15
18
  //#region Animation
16
19
  this.animationsDisabled = false;
17
20
  this._animation = 'slide';
18
21
  this.isServerSide = isPlatformServer(platformId);
19
- this.currentImageIndex$ = this.currentImageCounter$
20
- .pipe(map((counter) => {
21
- const l = this.images.length;
22
- return ((counter % l) + l) % l;
23
- }))
24
- .pipe(takeUntil(this.destroyed$));
25
- this.currentImage$ = this.currentImageIndex$
26
- .pipe(map((index) => this.images.get(index)?.itemTemplate ?? null))
27
- .pipe(takeUntil(this.destroyed$));
28
- }
29
- ngOnDestroy() {
30
- this.destroyed$.next(true);
31
- }
32
- ngAfterContentInit() {
33
- if (this.images.length > 0) {
34
- this.currentImageCounter$.next(0);
35
- }
36
- else {
37
- this.currentImageCounter$.next(-1);
38
- }
39
22
  }
40
23
  set animation(value) {
41
24
  this.animationsDisabled = true;
42
25
  this._animation = value;
43
- setTimeout(() => {
44
- this.animationsDisabled = false;
45
- }, 20);
26
+ setTimeout(() => this.animationsDisabled = false, 20);
27
+ setTimeout(() => this.cdRef.detectChanges(), 50);
46
28
  }
47
29
  get animation() {
48
30
  return this._animation;
49
31
  }
50
32
  //#endregion
33
+ onKeyPress(ev) {
34
+ if (this.keyboardEvents) {
35
+ switch (ev.key) {
36
+ case 'ArrowLeft':
37
+ this.previousImage();
38
+ break;
39
+ case 'ArrowRight':
40
+ this.nextImage();
41
+ break;
42
+ }
43
+ ev.preventDefault();
44
+ }
45
+ }
51
46
  previousImage() {
52
- this.currentImageCounter$
53
- .pipe(take(1))
54
- .subscribe((currentImageCounter) => {
55
- this.currentImageCounter$.next(currentImageCounter - 1);
56
- });
47
+ switch (this.animation) {
48
+ case 'fade':
49
+ if (this.currentImageIndex > 0) {
50
+ this.currentImageIndex--;
51
+ }
52
+ else {
53
+ this.currentImageIndex = this.images.length - 1;
54
+ }
55
+ break;
56
+ case 'slide':
57
+ this.swipeContainer.previous();
58
+ break;
59
+ }
57
60
  }
58
61
  nextImage() {
59
- this.currentImageCounter$
60
- .pipe(take(1))
61
- .subscribe((currentImageCounter) => {
62
- this.currentImageCounter$.next(currentImageCounter + 1);
63
- });
64
- }
65
- setCurrentImage(index) {
66
- const currentValue = this.currentImageCounter$.value;
67
- const l = this.images.length;
68
- const counterMod = ((currentValue % l) + l) % l;
69
- const newValue = currentValue - counterMod + index;
70
- this.currentImageCounter$.next(newValue);
71
- }
72
- onKeyPress(ev) {
73
- switch (ev.key) {
74
- case 'ArrowLeft':
75
- this.previousImage();
62
+ switch (this.animation) {
63
+ case 'fade':
64
+ if (this.currentImageIndex < this.images.length - 1) {
65
+ this.currentImageIndex++;
66
+ }
67
+ else {
68
+ this.currentImageIndex = 0;
69
+ }
76
70
  break;
77
- case 'ArrowRight':
78
- this.nextImage();
71
+ case 'slide':
72
+ this.swipeContainer.next();
79
73
  break;
80
74
  }
81
- ev.preventDefault();
82
75
  }
83
76
  }
84
- BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
85
- BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "onKeyPress($event)" }, properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: BsCarouselImageDirective }], ngImport: i0, template: "<div class=\"carousel\" bsNoNoscript>\n <!-- Only client-side -->\n <div *ngIf=\"!isServerSide && indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <!-- Only server-side -->\n <div class=\"carousel-inner d-grid\" *ngIf=\"isServerSide\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <!-- Only server-side -->\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; let j = index\" [attr.for]=\"'car-' + (j % images.length)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <!-- Only server-side -->\n <ng-container *ngIf=\"isServerSide\">\n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + images.length) % images.length)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % images.length)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Only client-side -->\n <ng-container *ngIf=\"!isServerSide\">\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Only client-side -->\n <ng-container *ngIf=\"!isServerSide\">\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 </ng-container>\n</div>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation, CarouselSlideAnimation] });
77
+ BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
+ BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", keyboardEvents: "keyboardEvents", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "onKeyPress($event)" }, properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: i0.forwardRef(function () { return BsCarouselImageDirective; }) }], viewQueries: [{ propertyName: "swipeContainer", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; let j = index\" [attr.for]=\"'car-' + (j % images.length)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + images.length) % images.length)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % images.length)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner overflow-hidden text-nowrap\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div *ngFor=\"let image of images\" class=\"carousel-item d-inline-block float-none w-100 me-0\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n </div>\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>\n <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \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>\n</ng-container>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}.wrapper{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsSwipeDirective, selector: "[bsSwipe]" }, { kind: "directive", type: i2.BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: ["minimumOffset", "imageIndex"], outputs: ["imageIndexChange"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: i3.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] });
86
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselComponent, decorators: [{
87
80
  type: Component,
88
- args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation, CarouselSlideAnimation], template: "<div class=\"carousel\" bsNoNoscript>\n <!-- Only client-side -->\n <div *ngIf=\"!isServerSide && indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"setCurrentImage(i)\"\n [class.active]=\"(currentImageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(currentImageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <!-- Only server-side -->\n <div class=\"carousel-inner d-grid\" *ngIf=\"isServerSide\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <!-- Only server-side -->\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; let j = index\" [attr.for]=\"'car-' + (j % images.length)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <!-- Only server-side -->\n <ng-container *ngIf=\"isServerSide\">\n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + images.length) % images.length)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % images.length)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Only client-side -->\n <ng-container *ngIf=\"!isServerSide\">\n <div class=\"carousel-inner\" [@carouselSlide]=\"currentImageCounter$ | async\" *ngIf=\"animation === 'slide'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <div class=\"carousel-inner\" *ngIf=\"animation === 'fade'\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"(currentImageIndex$ | async) === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Only client-side -->\n <ng-container *ngIf=\"!isServerSide\">\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 </ng-container>\n</div>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}\n"] }]
81
+ args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation], template: "<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; let j = index\" [attr.for]=\"'car-' + (j % images.length)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + images.length) % images.length)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % images.length)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner overflow-hidden text-nowrap\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div *ngFor=\"let image of images\" class=\"carousel-item d-inline-block float-none w-100 me-0\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n </div>\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>\n <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \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>\n</ng-container>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}.wrapper{overflow:hidden}\n"] }]
89
82
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
90
83
  type: Inject,
91
84
  args: [PLATFORM_ID]
92
- }] }]; }, propDecorators: { images: [{
93
- type: ContentChildren,
94
- args: [BsCarouselImageDirective]
95
- }], indicators: [{
85
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { indicators: [{
96
86
  type: Input
87
+ }], keyboardEvents: [{
88
+ type: Input
89
+ }], swipeContainer: [{
90
+ type: ViewChild,
91
+ args: ['container']
92
+ }], images: [{
93
+ type: ContentChildren,
94
+ args: [forwardRef(() => BsCarouselImageDirective)]
97
95
  }], animationsDisabled: [{
98
96
  type: HostBinding,
99
97
  args: ['@.disabled']
@@ -106,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
106
104
  type: HostListener,
107
105
  args: ['document:keydown.ArrowRight', ['$event']]
108
106
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFvQixTQUFTLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUMvSyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQVF0RixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQWlDLFVBQWU7UUFjdkMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUk1QixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBZ0J2RCxtQkFBbUI7UUFDZSx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDckQsZUFBVSxHQUFxQixPQUFPLENBQUM7UUFwQzdDLElBQUks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LElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBSUQsVUFBVSxDQUFDLEVBQWlCO1FBQzFCLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUNkLEtBQUssV0FBVztnQkFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1NBQ1Q7UUFDRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Z0hBeEZVLG1CQUFtQixrQkFFVixXQUFXO29HQUZwQixtQkFBbUIsbVVBZWIsd0JBQXdCLDZCQzVCM0Msc3ZIQWlFTSwybkxEdERRLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUM7MkZBRTdDLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLGNBR1gsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQzs7MEJBSTNDLE1BQU07MkJBQUMsV0FBVzs0Q0FhWSxNQUFNO3NCQUFoRCxlQUFlO3VCQUFDLHdCQUF3QjtnQkFDaEMsVUFBVTtzQkFBbEIsS0FBSztnQkFzQjRCLGtCQUFrQjtzQkFBbkQsV0FBVzt1QkFBQyxZQUFZO2dCQUVMLFNBQVM7c0JBQTVCLEtBQUs7Z0JBc0NOLFVBQVU7c0JBRlQsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3JELFlBQVk7dUJBQUMsNkJBQTZCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhZGVJbk91dEFuaW1hdGlvbiwgQ2Fyb3VzZWxTbGlkZUFuaW1hdGlvbiB9IGZyb20gJ0BtaW50cGxheWVyL25nLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSB9IGZyb20gJy4uL2Nhcm91c2VsLWltYWdlL2Nhcm91c2VsLWltYWdlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW0ZhZGVJbk91dEFuaW1hdGlvbiwgQ2Fyb3VzZWxTbGlkZUFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQnNDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55KSB7XG4gICAgdGhpcy5pc1NlcnZlclNpZGUgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXgkID0gdGhpcy5jdXJyZW50SW1hZ2VDb3VudGVyJFxuICAgICAgLnBpcGUobWFwKChjb3VudGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgICAgIHJldHVybiAoKGNvdW50ZXIgJSBsKSArIGwpICUgbDtcbiAgICAgIH0pKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpO1xuICAgIHRoaXMuY3VycmVudEltYWdlJCA9IHRoaXMuY3VycmVudEltYWdlSW5kZXgkXG4gICAgICAucGlwZShtYXAoKGluZGV4KSA9PiB0aGlzLmltYWdlcy5nZXQoaW5kZXgpPy5pdGVtVGVtcGxhdGUgPz8gbnVsbCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSk7XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSkgaW1hZ2VzITogUXVlcnlMaXN0PEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZT47XG4gIEBJbnB1dCgpIGluZGljYXRvcnMgPSBmYWxzZTtcbiAgXG4gIGlzU2VydmVyU2lkZTogYm9vbGVhbjtcblxuICBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgY3VycmVudEltYWdlQ291bnRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTEpO1xuICBjdXJyZW50SW1hZ2VJbmRleCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgY3VycmVudEltYWdlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD47XG4gIFxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pbWFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50SW1hZ2VDb3VudGVyJC5uZXh0KDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUNvdW50ZXIkLm5leHQoLTEpO1xuICAgIH1cbiAgfVxuXG4gIC8vI3JlZ2lvbiBBbmltYXRpb25cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJykgcHVibGljIGFuaW1hdGlvbnNEaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hbmltYXRpb246ICdmYWRlJyB8ICdzbGlkZScgPSAnc2xpZGUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFuaW1hdGlvbih2YWx1ZTogJ2ZhZGUnIHwgJ3NsaWRlJykge1xuICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl9hbmltYXRpb24gPSB2YWx1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgfSwgMjApO1xuICB9XG4gIHB1YmxpYyBnZXQgYW5pbWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRpb247XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHJldmlvdXNJbWFnZSgpIHtcbiAgICB0aGlzLmN1cnJlbnRJbWFnZUNvdW50ZXIkXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoY3VycmVudEltYWdlQ291bnRlcikgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUNvdW50ZXIkLm5leHQoY3VycmVudEltYWdlQ291bnRlciAtIDEpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZXh0SW1hZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50SW1hZ2VDb3VudGVyJFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGN1cnJlbnRJbWFnZUNvdW50ZXIpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VDb3VudGVyJC5uZXh0KGN1cnJlbnRJbWFnZUNvdW50ZXIgKyAxKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0Q3VycmVudEltYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmN1cnJlbnRJbWFnZUNvdW50ZXIkLnZhbHVlO1xuICAgIGNvbnN0IGwgPSB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgY29uc3QgY291bnRlck1vZCA9ICgoY3VycmVudFZhbHVlICUgbCkgKyBsKSAlIGw7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjdXJyZW50VmFsdWUgLSBjb3VudGVyTW9kICsgaW5kZXg7XG4gICAgdGhpcy5jdXJyZW50SW1hZ2VDb3VudGVyJC5uZXh0KG5ld1ZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dMZWZ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5BcnJvd1JpZ2h0JywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldjogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXYua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICB0aGlzLnByZXZpb3VzSW1hZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgdGhpcy5uZXh0SW1hZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNhcm91c2VsXCIgYnNOb05vc2NyaXB0PlxuICAgIDwhLS0gT25seSBjbGllbnQtc2lkZSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzU2VydmVyU2lkZSAmJiBpbmRpY2F0b3JzXCIgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGkgPSBpbmRleFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2V0Q3VycmVudEltYWdlKGkpXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiKGN1cnJlbnRJbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaVwiIGRhdGEtYnMtdGFyZ2V0XG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiKGN1cnJlbnRJbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NsaWRlICcgKyBpXCI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBPbmx5IHNlcnZlci1zaWRlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lciBkLWdyaWRcIiAqbmdJZj1cImlzU2VydmVyU2lkZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2Nhci0nICsgaVwiIFtuYW1lXT1cIidjYXInXCIgY2xhc3M9XCJjYXItcmFkaW8gZC1ub25lXCIgYnNOb05vc2NyaXB0IFtjaGVja2VkXT1cImkgPT09IDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGZhZGUgZC1mbGV4IGZsZXgtcm93IGgtMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIE9ubHkgc2VydmVyLXNpZGUgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmRpY2F0b3JzXCIgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGogPSBpbmRleFwiIFthdHRyLmZvcl09XCInY2FyLScgKyAoaiAlIGltYWdlcy5sZW5ndGgpXCIgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBqXCIgZGF0YS1icy10YXJnZXQ+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBPbmx5IHNlcnZlci1zaWRlIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VydmVyU2lkZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldiBjdXJzb3ItcG9pbnRlclwiIFtmb3JdPVwiJ2Nhci0nICsgKChpIC0gMSArIGltYWdlcy5sZW5ndGgpICUgaW1hZ2VzLmxlbmd0aClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dCBjdXJzb3ItcG9pbnRlclwiIFtmb3JdPVwiJ2Nhci0nICsgKChpICsgMSkgJSBpbWFnZXMubGVuZ3RoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gT25seSBjbGllbnQtc2lkZSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VydmVyU2lkZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXJcIiBbQGNhcm91c2VsU2xpZGVdPVwiY3VycmVudEltYWdlQ291bnRlciQgfCBhc3luY1wiICpuZ0lmPVwiYW5pbWF0aW9uID09PSAnc2xpZGUnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwidHJ1ZVwiICpuZ0lmPVwiKGN1cnJlbnRJbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPiAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyXCIgKm5nSWY9XCJhbmltYXRpb24gPT09ICdmYWRlJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInRydWVcIiBAZmFkZUluT3V0ICpuZ0lmPVwiKGN1cnJlbnRJbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPiAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gT25seSBjbGllbnQtc2lkZSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VydmVyU2lkZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBUXRGLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBaUMsVUFBZSxFQUFVLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBSWxGLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDYixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBSy9CLG1CQUFtQjtRQUNlLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNyRCxlQUFVLEdBQXFCLE9B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bXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWRlSW5PdXRBbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICdAbWludHBsYXllci9uZy1zd2lwZXInO1xuaW1wb3J0IHsgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbRmFkZUluT3V0QW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc0Nhcm91c2VsQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnksIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5pc1NlcnZlclNpZGUgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuICB9XG4gIFxuICBjb2xvcnMgPSBDb2xvcjtcbiAgaXNTZXJ2ZXJTaWRlOiBib29sZWFuO1xuICBjdXJyZW50SW1hZ2VJbmRleCA9IDA7XG4gIEBJbnB1dCgpIGluZGljYXRvcnMgPSBmYWxzZTtcbiAgQElucHV0KCkga2V5Ym9hcmRFdmVudHMgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHN3aXBlQ29udGFpbmVyITogQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSkpIGltYWdlcyE6IFF1ZXJ5TGlzdDxCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmU+O1xuXG4gIC8vI3JlZ2lvbiBBbmltYXRpb25cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJykgcHVibGljIGFuaW1hdGlvbnNEaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hbmltYXRpb246ICdmYWRlJyB8ICdzbGlkZScgPSAnc2xpZGUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFuaW1hdGlvbih2YWx1ZTogJ2ZhZGUnIHwgJ3NsaWRlJykge1xuICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl9hbmltYXRpb24gPSB2YWx1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2UsIDIwKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpLCA1MCk7XG4gIH1cbiAgcHVibGljIGdldCBhbmltYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLkFycm93TGVmdCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dSaWdodCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXY6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5rZXlib2FyZEV2ZW50cykge1xuICAgICAgc3dpdGNoIChldi5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICB0aGlzLnByZXZpb3VzSW1hZ2UoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgdGhpcy5uZXh0SW1hZ2UoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJldmlvdXNJbWFnZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSB0aGlzLmltYWdlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLnByZXZpb3VzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG5leHRJbWFnZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmltYWdlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VydmVyU2lkZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbCBteC1hdXRvIG5vc2NyaXB0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lciBkLWdyaWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2Nhci0nICsgaVwiIFtuYW1lXT1cIidjYXInXCIgY2xhc3M9XCJjYXItcmFkaW8gZC1ub25lXCIgYnNOb05vc2NyaXB0IFtjaGVja2VkXT1cImkgPT09IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBmYWRlIGQtZmxleCBmbGV4LXJvdyBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluZGljYXRvcnNcIiBjbGFzcz1cImNhcm91c2VsLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGogPSBpbmRleFwiIFthdHRyLmZvcl09XCInY2FyLScgKyAoaiAlIGltYWdlcy5sZW5ndGgpXCIgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBqXCIgZGF0YS1icy10YXJnZXQ+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSAtIDEgKyBpbWFnZXMubGVuZ3RoKSAlIGltYWdlcy5sZW5ndGgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+UHJldmlvdXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHQgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSArIDEpICUgaW1hZ2VzLmxlbmd0aClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTZXJ2ZXJTaWRlXCI+XG4gICAgPGRpdiAqbmdJZj1cImFuaW1hdGlvbiA9PT0gJ3NsaWRlJ1wiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbXgtYXV0b1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGFpbmVyLmN1cnJlbnRTbGlkZUhlaWdodCQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzOyBsZXQgaSA9IGluZGV4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjb250YWluZXIuZ290byhpKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoY29udGFpbmVyLmltYWdlSW5kZXgkIHwgYXN5bmMpID09PSBpXCIgZGF0YS1icy10YXJnZXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiKGNvbnRhaW5lci5pbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTbGlkZSAnICsgaVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyIG92ZXJmbG93LWhpZGRlbiB0ZXh0LW5vd3JhcFwiPlxuICAgICAgICAgICAgPGRpdiBic1N3aXBlQ29udGFpbmVyICNjb250YWluZXI9XCJic1N3aXBlQ29udGFpbmVyXCIgW21pbmltdW1PZmZzZXRdPVwiNTBcIiBbKGltYWdlSW5kZXgpXT1cImN1cnJlbnRJbWFnZUluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzXCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGQtaW5saW5lLWJsb2NrIGZsb2F0LW5vbmUgdy0xMDAgbWUtMFwiIFtjbGFzcy5hY3RpdmVdPVwidHJ1ZVwiIGJzU3dpcGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbWFnZS5pdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYW5pbWF0aW9uID09PSAnZmFkZSdcIiBjbGFzcz1cImNhcm91c2VsIGZhZGUgbXgtYXV0b1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzOyBsZXQgaSA9IGluZGV4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjdXJyZW50SW1hZ2VJbmRleCA9IGlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudEltYWdlSW5kZXggPT09IGlcIiBkYXRhLWJzLXRhcmdldFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTbGlkZSAnICsgaVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwidHJ1ZVwiIEBmYWRlSW5PdXQgKm5nSWY9XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPiAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -1,17 +1,21 @@
1
- import { Directive, TemplateRef } from '@angular/core';
1
+ import { Directive, TemplateRef, HostBinding } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class BsCarouselImageDirective {
4
4
  constructor(templateRef) {
5
5
  this.templateRef = templateRef;
6
+ this.width100class = true;
6
7
  this.itemTemplate = this.templateRef;
7
8
  }
8
9
  }
9
10
  BsCarouselImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselImageDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
10
- BsCarouselImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0", type: BsCarouselImageDirective, selector: "*[bsCarouselImage]", ngImport: i0 });
11
+ BsCarouselImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0", type: BsCarouselImageDirective, selector: "*[bsCarouselImage]", host: { properties: { "class.w-100": "this.width100class" } }, ngImport: i0 });
11
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
12
13
  type: Directive,
13
14
  args: [{
14
15
  selector: '*[bsCarouselImage]'
15
16
  }]
16
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt2RCxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQW9CLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQzs7cUhBTlUsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnKltic0Nhcm91c2VsSW1hZ2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmUge1xuXG4gIHB1YmxpYyBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5pdGVtVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlUmVmO1xuICB9XG59XG4iXX0=
17
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { width100class: [{
18
+ type: HostBinding,
19
+ args: ['class.w-100']
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLcEUsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUFvQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFJckIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFIL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7O3FIQU5VLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7a0dBUzZCLGFBQWE7c0JBQXhDLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJypbYnNDYXJvdXNlbEltYWdlXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIHtcblxuICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mudy0xMDAnKSB3aWR0aDEwMGNsYXNzID0gdHJ1ZTtcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { BsSwiperModule } from '@mintplayer/ng-swiper';
3
4
  import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
4
5
  import { BsCarouselComponent } from './carousel/carousel.component';
5
6
  import { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';
@@ -9,9 +10,11 @@ export class BsCarouselModule {
9
10
  BsCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
11
  BsCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
11
12
  BsCarouselImageDirective], imports: [CommonModule,
13
+ BsSwiperModule,
12
14
  BsNoNoscriptModule], exports: [BsCarouselComponent,
13
15
  BsCarouselImageDirective] });
14
16
  BsCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselModule, imports: [CommonModule,
17
+ BsSwiperModule,
15
18
  BsNoNoscriptModule] });
16
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsCarouselModule, decorators: [{
17
20
  type: NgModule,
@@ -22,6 +25,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
22
25
  ],
23
26
  imports: [
24
27
  CommonModule,
28
+ BsSwiperModule,
25
29
  BsNoNoscriptModule
26
30
  ],
27
31
  exports: [
@@ -30,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
30
34
  ]
31
35
  }]
32
36
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQWdCckYsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQVp6QixtQkFBbUI7UUFDbkIsd0JBQXdCLGFBR3hCLFlBQVk7UUFDWixrQkFBa0IsYUFHbEIsbUJBQW1CO1FBQ25CLHdCQUF3Qjs4R0FHZixnQkFBZ0IsWUFSekIsWUFBWTtRQUNaLGtCQUFrQjsyRkFPVCxnQkFBZ0I7a0JBZDVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJzTm9Ob3NjcmlwdE1vZHVsZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9uby1ub3NjcmlwdCc7XG5pbXBvcnQgeyBCc0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIH0gZnJvbSAnLi9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCc0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJzTm9Ob3NjcmlwdE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnNDYXJvdXNlbENvbXBvbmVudCxcbiAgICBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCc0Nhcm91c2VsTW9kdWxlIHsgfVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFpQnJGLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFiekIsbUJBQW1CO1FBQ25CLHdCQUF3QixhQUd4QixZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQixhQUdsQixtQkFBbUI7UUFDbkIsd0JBQXdCOzhHQUdmLGdCQUFnQixZQVR6QixZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQjsyRkFPVCxnQkFBZ0I7a0JBZjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNTd2lwZXJNb2R1bGUgfSBmcm9tICdAbWludHBsYXllci9uZy1zd2lwZXInO1xuaW1wb3J0IHsgQnNOb05vc2NyaXB0TW9kdWxlIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwL25vLW5vc2NyaXB0JztcbmltcG9ydCB7IEJzQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmUgfSBmcm9tICcuL2Nhcm91c2VsLWltYWdlL2Nhcm91c2VsLWltYWdlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnNTd2lwZXJNb2R1bGUsXG4gICAgQnNOb05vc2NyaXB0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzQ2Fyb3VzZWxNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './src';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2Ryb3Bkb3duLWRpdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYyc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludHBsYXllci1uZy1ib290c3RyYXAtZHJvcGRvd24tZGl2aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvZHJvcGRvd24tZGl2aWRlci9taW50cGxheWVyLW5nLWJvb3RzdHJhcC1kcm9wZG93bi1kaXZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { Directive, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BsDropdownDividerDirective {
4
+ constructor() {
5
+ this.dropdownDividerClass = true;
6
+ }
7
+ }
8
+ BsDropdownDividerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
+ BsDropdownDividerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0", type: BsDropdownDividerDirective, selector: "[bsDropdownDivider]", host: { properties: { "class.dropdown-divider": "this.dropdownDividerClass" } }, ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[bsDropdownDivider]'
14
+ }]
15
+ }], propDecorators: { dropdownDividerClass: [{
16
+ type: HostBinding,
17
+ args: ['class.dropdown-divider']
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZGl2aWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2Ryb3Bkb3duLWRpdmlkZXIvc3JjL2Ryb3Bkb3duLWRpdmlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt2RCxNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBSXlDLHlCQUFvQixHQUFHLElBQUksQ0FBQztLQUNwRTs7dUhBRlksMEJBQTBCOzJHQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs4QkFFd0Msb0JBQW9CO3NCQUExRCxXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzRHJvcGRvd25EaXZpZGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNEcm9wZG93bkRpdmlkZXJEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRyb3Bkb3duLWRpdmlkZXInKSBkcm9wZG93bkRpdmlkZXJDbGFzcyA9IHRydWU7XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsDropdownDividerDirective } from './dropdown-divider.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class BsDropdownDividerModule {
6
+ }
7
+ BsDropdownDividerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ BsDropdownDividerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerModule, declarations: [BsDropdownDividerDirective], imports: [CommonModule], exports: [BsDropdownDividerDirective] });
9
+ BsDropdownDividerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: BsDropdownDividerModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [BsDropdownDividerDirective],
14
+ imports: [CommonModule],
15
+ exports: [BsDropdownDividerDirective]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZGl2aWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2Ryb3Bkb3duLWRpdmlkZXIvc3JjL2Ryb3Bkb3duLWRpdmlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVMxRSxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBSm5CLDBCQUEwQixhQUMvQixZQUFZLGFBQ1osMEJBQTBCO3FIQUV6Qix1QkFBdUIsWUFIeEIsWUFBWTsyRkFHWCx1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGl2aWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tZGl2aWRlci5kaXJlY3RpdmUnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQnNEcm9wZG93bkRpdmlkZXJEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0JzRHJvcGRvd25EaXZpZGVyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBCc0Ryb3Bkb3duRGl2aWRlck1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './dropdown-divider.directive';
2
+ export * from './dropdown-divider.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2Ryb3Bkb3duLWRpdmlkZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tZGl2aWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1kaXZpZGVyLm1vZHVsZSc7Il19