@mintplayer/ng-bootstrap 15.18.4 → 15.18.6

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.
@@ -1,8 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ContentChildren, forwardRef, HostBinding, Output, Input, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
3
+ import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { SlideUpDownNgifAnimation } from '@mintplayer/ng-animations';
5
+ import * as i2 from '@mintplayer/ng-bootstrap/no-noscript';
6
+ import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
7
+ import { BehaviorSubject, combineLatest, map } from 'rxjs';
8
+ import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
6
9
 
7
10
  class BsAccordionTabComponent {
8
11
  constructor(accordion) {
@@ -13,6 +16,9 @@ class BsAccordionTabComponent {
13
16
  this.isActiveChange = new EventEmitter();
14
17
  this._isActive = false;
15
18
  this.accordion = accordion;
19
+ this.accordionTabId$ = new BehaviorSubject(++this.accordion.accordionTabCounter);
20
+ this.accordionTabName$ = combineLatest([this.accordion.accordionName$, this.accordionTabId$])
21
+ .pipe(map(([accordionName, accordionTabId]) => `${accordionName}-${accordionTabId}`));
16
22
  }
17
23
  get isActive() {
18
24
  return this._isActive;
@@ -39,10 +45,10 @@ class BsAccordionTabComponent {
39
45
  }
40
46
  }
41
47
  BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
42
- BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabComponent, selector: "bs-accordion-tab", inputs: { isActive: "isActive" }, outputs: { isActiveChange: "isActiveChange" }, host: { properties: { "class.accordion-item": "this.accordionItemClass", "class.d-block": "this.dBlock", "class.border-0": "this.noBorder" } }, queries: [{ propertyName: "childAccordions", predicate: i0.forwardRef(function () { return BsAccordionComponent; }) }], ngImport: i0, template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDownNgif] *ngIf=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [SlideUpDownNgifAnimation] });
48
+ BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabComponent, selector: "bs-accordion-tab", inputs: { isActive: "isActive" }, outputs: { isActiveChange: "isActiveChange" }, host: { properties: { "class.accordion-item": "this.accordionItemClass", "class.d-block": "this.dBlock", "class.border-0": "this.noBorder" } }, queries: [{ propertyName: "childAccordions", predicate: i0.forwardRef(function () { return BsAccordionComponent; }) }], ngImport: i0, template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\" bsNoNoscript>\n\n <input type=\"radio\" class=\"d-none\" [name]=\"accordion.accordionName$ | async\" [id]=\"accordionTabName$ | async\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDown]=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label{background-color:#e7f1ff}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label:after{transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .noscript>input[type=radio]:checked~.accordion-collapse{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], animations: [SlideUpDownAnimation] });
43
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, decorators: [{
44
50
  type: Component,
45
- args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownNgifAnimation], template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDownNgif] *ngIf=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"] }]
51
+ args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownAnimation], template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\" bsNoNoscript>\n\n <input type=\"radio\" class=\"d-none\" [name]=\"accordion.accordionName$ | async\" [id]=\"accordionTabName$ | async\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDown]=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label{background-color:#e7f1ff}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label:after{transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .noscript>input[type=radio]:checked~.accordion-collapse{height:auto!important}\n"] }]
46
52
  }], ctorParameters: function () { return [{ type: BsAccordionComponent }]; }, propDecorators: { childAccordions: [{
47
53
  type: ContentChildren,
48
54
  args: [forwardRef(() => BsAccordionComponent)]
@@ -65,14 +71,18 @@ class BsAccordionComponent {
65
71
  constructor() {
66
72
  this.disableAnimations = false;
67
73
  this.highlightActiveTab = false;
74
+ this.accordionTabCounter = 0;
75
+ this.accordionId$ = new BehaviorSubject(++BsAccordionComponent.accordionCounter);
76
+ this.accordionName$ = this.accordionId$.pipe(map((id) => `bs-accordion-${id}`));
68
77
  }
69
78
  }
79
+ BsAccordionComponent.accordionCounter = 0;
70
80
  BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
81
  BsAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionComponent, selector: "bs-accordion", inputs: { highlightActiveTab: "highlightActiveTab" }, queries: [{ propertyName: "tabPages", predicate: i0.forwardRef(function () { return BsAccordionTabComponent; }) }], ngImport: i0, template: "<div class=\"accordion\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: 1px;--bs-accordion-border-radius: .375rem;--bs-accordion-inner-border-radius:calc(.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #0c63e4;--bs-accordion-active-bg: #e7f1ff}:host ::ng-deep .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button{transition:none}}:host ::ng-deep .accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}:host ::ng-deep .accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\"\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button:after{transition:none}}:host ::ng-deep .accordion-button:hover{z-index:2}:host ::ng-deep .accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:host ::ng-deep .accordion-header{margin-bottom:0}:host ::ng-deep .accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}:host ::ng-deep .accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:not(:first-of-type){border-top:0}:host ::ng-deep .accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}:host ::ng-deep .accordion-flush .accordion-collapse{border-width:0}:host ::ng-deep .accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}:host ::ng-deep .accordion-flush .accordion-item:first-child{border-top:0}:host ::ng-deep .accordion-flush .accordion-item:last-child{border-bottom:0}:host ::ng-deep .accordion-flush .accordion-item .accordion-button,:host ::ng-deep .accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}:host ::ng-deep bs-accordion{margin:-1px}\n"] });
72
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, decorators: [{
73
83
  type: Component,
74
84
  args: [{ selector: 'bs-accordion', template: "<div class=\"accordion\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: 1px;--bs-accordion-border-radius: .375rem;--bs-accordion-inner-border-radius:calc(.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #0c63e4;--bs-accordion-active-bg: #e7f1ff}:host ::ng-deep .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button{transition:none}}:host ::ng-deep .accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}:host ::ng-deep .accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\"\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button:after{transition:none}}:host ::ng-deep .accordion-button:hover{z-index:2}:host ::ng-deep .accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:host ::ng-deep .accordion-header{margin-bottom:0}:host ::ng-deep .accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}:host ::ng-deep .accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:not(:first-of-type){border-top:0}:host ::ng-deep .accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}:host ::ng-deep .accordion-flush .accordion-collapse{border-width:0}:host ::ng-deep .accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}:host ::ng-deep .accordion-flush .accordion-item:first-child{border-top:0}:host ::ng-deep .accordion-flush .accordion-item:last-child{border-bottom:0}:host ::ng-deep .accordion-flush .accordion-item .accordion-button,:host ::ng-deep .accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}:host ::ng-deep bs-accordion{margin:-1px}\n"] }]
75
- }], propDecorators: { tabPages: [{
85
+ }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
76
86
  type: ContentChildren,
77
87
  args: [forwardRef(() => BsAccordionTabComponent)]
78
88
  }], highlightActiveTab: [{
@@ -89,10 +99,10 @@ class BsAccordionTabHeaderComponent {
89
99
  }
90
100
  }
91
101
  BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: BsAccordionTabComponent }], target: i0.ɵɵFactoryTarget.Component });
92
- BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <button class=\"accordion-button\" [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" [class.collapsed]=\"!accordionTab.isActive\" [class.background-unset]=\"!accordionTab.accordion.highlightActiveTab\" type=\"button\">\n <ng-content></ng-content>\n </button>\n</h2>", styles: [".accordion-button{background:unset}.background-unset{background:unset!important}\n"] });
102
+ BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<!-- <input type=\"radio\" class=\"d-none\" [name]=\"accordionTab.accordion.accordionName$ | async\" [id]=\"accordionTab.accordionTabName$ | async\"> -->\n<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <!-- [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" -->\n <label class=\"btn accordion-button\" [class.collapsed]=\"!accordionTab.isActive\" [class.bg-unset]=\"!accordionTab.accordion.highlightActiveTab\" [for]=\"accordionTab.accordionTabName$ | async\" type=\"button\">\n <ng-content></ng-content>\n </label>\n</h2>", styles: [".bg-unset{background:unset}\n"], dependencies: [{ kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
93
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
94
104
  type: Component,
95
- args: [{ selector: 'bs-accordion-tab-header', template: "<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <button class=\"accordion-button\" [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" [class.collapsed]=\"!accordionTab.isActive\" [class.background-unset]=\"!accordionTab.accordion.highlightActiveTab\" type=\"button\">\n <ng-content></ng-content>\n </button>\n</h2>", styles: [".accordion-button{background:unset}.background-unset{background:unset!important}\n"] }]
105
+ args: [{ selector: 'bs-accordion-tab-header', template: "<!-- <input type=\"radio\" class=\"d-none\" [name]=\"accordionTab.accordion.accordionName$ | async\" [id]=\"accordionTab.accordionTabName$ | async\"> -->\n<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <!-- [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" -->\n <label class=\"btn accordion-button\" [class.collapsed]=\"!accordionTab.isActive\" [class.bg-unset]=\"!accordionTab.accordion.highlightActiveTab\" [for]=\"accordionTab.accordionTabName$ | async\" type=\"button\">\n <ng-content></ng-content>\n </label>\n</h2>", styles: [".bg-unset{background:unset}\n"] }]
96
106
  }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }]; } });
97
107
 
98
108
  class BsAccordionModule {
@@ -100,10 +110,12 @@ class BsAccordionModule {
100
110
  BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
101
111
  BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
102
112
  BsAccordionTabComponent,
103
- BsAccordionTabHeaderComponent], imports: [CommonModule], exports: [BsAccordionComponent,
113
+ BsAccordionTabHeaderComponent], imports: [CommonModule,
114
+ BsNoNoscriptModule], exports: [BsAccordionComponent,
104
115
  BsAccordionTabComponent,
105
116
  BsAccordionTabHeaderComponent] });
106
- BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule] });
117
+ BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule,
118
+ BsNoNoscriptModule] });
107
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, decorators: [{
108
120
  type: NgModule,
109
121
  args: [{
@@ -113,7 +125,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
113
125
  BsAccordionTabHeaderComponent
114
126
  ],
115
127
  imports: [
116
- CommonModule
128
+ CommonModule,
129
+ BsNoNoscriptModule
117
130
  ],
118
131
  exports: [
119
132
  BsAccordionComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-accordion.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab/accordion-tab.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab/accordion-tab.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion/accordion.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion/accordion.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab-header/accordion-tab-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab-header/accordion-tab-header.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion.module.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/mintplayer-ng-bootstrap-accordion.ts"],"sourcesContent":["import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList } from '@angular/core';\nimport { SlideUpDownNgifAnimation } from '@mintplayer/ng-animations';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab',\n templateUrl: './accordion-tab.component.html',\n styleUrls: ['./accordion-tab.component.scss'],\n animations: [SlideUpDownNgifAnimation]\n})\nexport class BsAccordionTabComponent {\n\n accordion: BsAccordionComponent;\n @ContentChildren(forwardRef(() => BsAccordionComponent)) childAccordions!: QueryList<BsAccordionComponent>;\n constructor(accordion: BsAccordionComponent) {\n this.accordion = accordion;\n }\n\n @HostBinding('class.accordion-item') accordionItemClass = true;\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.border-0') noBorder = false;\n \n //#region IsActive\n @Output() public isActiveChange = new EventEmitter<boolean>();\n private _isActive = false;\n public get isActive() {\n return this._isActive;\n }\n @Input() public set isActive(value: boolean) {\n if (this._isActive !== value) {\n this._isActive = value;\n if (this._isActive) {\n this.accordion.tabPages.filter((tab) => {\n return tab !== this;\n }).forEach((tab) => {\n tab.isActive = false;\n });\n } else {\n this.childAccordions.forEach((accordion) => {\n accordion.tabPages.forEach((tab) => {\n tab.isActive = false;\n });\n });\n }\n this.isActiveChange.emit(value);\n }\n }\n //#endregion\n}\n","<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDownNgif] *ngIf=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>","import { Component, ContentChildren, forwardRef, Input, QueryList } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class BsAccordionComponent {\n\n @ContentChildren(forwardRef(() => BsAccordionTabComponent)) tabPages!: QueryList<BsAccordionTabComponent>;\n disableAnimations = false;\n @Input() highlightActiveTab = false;\n\n}\n","<div class=\"accordion\">\n <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion-tab-header',\n templateUrl: './accordion-tab-header.component.html',\n styleUrls: ['./accordion-tab-header.component.scss']\n})\nexport class BsAccordionTabHeaderComponent {\n\n constructor(accordionTab: BsAccordionTabComponent) {\n this.accordionTab = accordionTab;\n }\n\n accordionTab: BsAccordionTabComponent;\n\n headerClicked(event: MouseEvent) {\n event.preventDefault();\n this.accordionTab.isActive = !this.accordionTab.isActive;\n }\n}\n","<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <button class=\"accordion-button\" [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" [class.collapsed]=\"!accordionTab.isActive\" [class.background-unset]=\"!accordionTab.accordion.highlightActiveTab\" type=\"button\">\n <ng-content></ng-content>\n </button>\n</h2>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsAccordionComponent } from './accordion/accordion.component';\nimport { BsAccordionTabComponent } from './accordion-tab/accordion-tab.component';\nimport { BsAccordionTabHeaderComponent } from './accordion-tab-header/accordion-tab-header.component';\n\n@NgModule({\n declarations: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ]\n})\nexport class BsAccordionModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsAccordionComponent","i1.BsAccordionTabComponent"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-accordion.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab/accordion-tab.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab/accordion-tab.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion/accordion.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion/accordion.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab-header/accordion-tab-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion-tab-header/accordion-tab-header.component.html","../../../../libs/mintplayer-ng-bootstrap/accordion/src/accordion.module.ts","../../../../libs/mintplayer-ng-bootstrap/accordion/mintplayer-ng-bootstrap-accordion.ts"],"sourcesContent":["import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsAccordionComponent } from '../accordion/accordion.component';\n\n@Component({\n selector: 'bs-accordion-tab',\n templateUrl: './accordion-tab.component.html',\n styleUrls: ['./accordion-tab.component.scss'],\n animations: [SlideUpDownAnimation]\n})\nexport class BsAccordionTabComponent {\n\n accordion: BsAccordionComponent;\n accordionTabId$: BehaviorSubject<number>;\n accordionTabName$: Observable<string>;\n @ContentChildren(forwardRef(() => BsAccordionComponent)) childAccordions!: QueryList<BsAccordionComponent>;\n constructor(accordion: BsAccordionComponent) {\n this.accordion = accordion;\n this.accordionTabId$ = new BehaviorSubject<number>(++this.accordion.accordionTabCounter);\n this.accordionTabName$ = combineLatest([this.accordion.accordionName$, this.accordionTabId$])\n .pipe(map(([accordionName, accordionTabId]) => `${accordionName}-${accordionTabId}`));\n }\n\n @HostBinding('class.accordion-item') accordionItemClass = true;\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.border-0') noBorder = false;\n \n //#region IsActive\n @Output() public isActiveChange = new EventEmitter<boolean>();\n private _isActive = false;\n public get isActive() {\n return this._isActive;\n }\n @Input() public set isActive(value: boolean) {\n if (this._isActive !== value) {\n this._isActive = value;\n if (this._isActive) {\n this.accordion.tabPages.filter((tab) => {\n return tab !== this;\n }).forEach((tab) => {\n tab.isActive = false;\n });\n } else {\n this.childAccordions.forEach((accordion) => {\n accordion.tabPages.forEach((tab) => {\n tab.isActive = false;\n });\n });\n }\n this.isActiveChange.emit(value);\n }\n }\n //#endregion\n}\n","<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\" bsNoNoscript>\n\n <input type=\"radio\" class=\"d-none\" [name]=\"accordion.accordionName$ | async\" [id]=\"accordionTabName$ | async\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDown]=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>","import { Component, ContentChildren, forwardRef, Input, QueryList } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class BsAccordionComponent {\n\n constructor() {\n this.accordionId$ = new BehaviorSubject<number>(++BsAccordionComponent.accordionCounter);\n this.accordionName$ = this.accordionId$.pipe(map((id) => `bs-accordion-${id}`));\n }\n \n @ContentChildren(forwardRef(() => BsAccordionTabComponent)) tabPages!: QueryList<BsAccordionTabComponent>;\n disableAnimations = false;\n @Input() highlightActiveTab = false;\n\n accordionId$: BehaviorSubject<number>;\n accordionName$: Observable<string>;\n accordionTabCounter = 0;\n static accordionCounter = 0;\n\n}\n","<div class=\"accordion\">\n <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\nimport { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';\n\n@Component({\n selector: 'bs-accordion-tab-header',\n templateUrl: './accordion-tab-header.component.html',\n styleUrls: ['./accordion-tab-header.component.scss']\n})\nexport class BsAccordionTabHeaderComponent {\n\n constructor(accordionTab: BsAccordionTabComponent) {\n this.accordionTab = accordionTab;\n }\n\n accordionTab: BsAccordionTabComponent;\n\n headerClicked(event: MouseEvent) {\n event.preventDefault();\n this.accordionTab.isActive = !this.accordionTab.isActive;\n }\n}\n","<!-- <input type=\"radio\" class=\"d-none\" [name]=\"accordionTab.accordion.accordionName$ | async\" [id]=\"accordionTab.accordionTabName$ | async\"> -->\n<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <!-- [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" -->\n <label class=\"btn accordion-button\" [class.collapsed]=\"!accordionTab.isActive\" [class.bg-unset]=\"!accordionTab.accordion.highlightActiveTab\" [for]=\"accordionTab.accordionTabName$ | async\" type=\"button\">\n <ng-content></ng-content>\n </label>\n</h2>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsAccordionComponent } from './accordion/accordion.component';\nimport { BsAccordionTabComponent } from './accordion-tab/accordion-tab.component';\nimport { BsAccordionTabHeaderComponent } from './accordion-tab-header/accordion-tab-header.component';\n\n@NgModule({\n declarations: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ],\n imports: [\n CommonModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsAccordionComponent,\n BsAccordionTabComponent,\n BsAccordionTabHeaderComponent\n ]\n})\nexport class BsAccordionModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsAccordionComponent","i1.BsAccordionTabComponent","i2"],"mappings":"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"}
@@ -4,6 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { Directive, HostBinding, PLATFORM_ID, Component, Inject, Input, ViewChild, ContentChildren, forwardRef, HostListener, NgModule } from '@angular/core';
5
5
  import { FadeInOutAnimation } from '@mintplayer/ng-animations';
6
6
  import { Color } from '@mintplayer/ng-bootstrap';
7
+ import { BehaviorSubject, map } from 'rxjs';
7
8
  import * as i2 from '@mintplayer/ng-swiper';
8
9
  import { BsSwiperModule } from '@mintplayer/ng-swiper';
9
10
  import * as i3 from '@mintplayer/ng-bootstrap/no-noscript';
@@ -33,12 +34,37 @@ class BsCarouselComponent {
33
34
  this.cdRef = cdRef;
34
35
  this.colors = Color;
35
36
  this.currentImageIndex = 0;
37
+ this.images$ = new BehaviorSubject(null);
36
38
  this.indicators = false;
37
39
  this.keyboardEvents = true;
38
40
  //#region Animation
39
41
  this.animationsDisabled = false;
40
42
  this._animation = 'slide';
41
43
  this.isServerSide = isPlatformServer(platformId);
44
+ this.imageCount$ = this.images$.pipe(map((images) => { var _a; return (_a = images === null || images === void 0 ? void 0 : images.length) !== null && _a !== void 0 ? _a : 0; }));
45
+ this.firstImageTemplate$ = this.images$.pipe(map((images) => {
46
+ if (!images)
47
+ return null;
48
+ if (images.length === 0)
49
+ return null;
50
+ const img = images.get(0);
51
+ if (!img)
52
+ return null;
53
+ return img.itemTemplate;
54
+ }));
55
+ this.lastImageTemplate$ = this.images$.pipe(map((images) => {
56
+ if (!images)
57
+ return null;
58
+ if (images.length === 0)
59
+ return null;
60
+ const img = images.get(images.length - 1);
61
+ if (!img)
62
+ return null;
63
+ return img.itemTemplate;
64
+ }));
65
+ }
66
+ set images(value) {
67
+ this.images$.next(value);
42
68
  }
43
69
  set animation(value) {
44
70
  this.animationsDisabled = true;
@@ -95,10 +121,10 @@ class BsCarouselComponent {
95
121
  }
96
122
  }
97
123
  BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
98
- BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", 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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(images.length - 1)?.itemTemplate ?? null\"></ng-container>\n </div>\n <div *ngFor=\"let image of images\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(0)?.itemTemplate ?? null\"></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]", inputs: ["offside"] }, { 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] });
124
+ BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", 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\" *ngIf=\"(imageCount$ | async) as imageCount\">\n <ng-container *ngFor=\"let image of (images$ | async); 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$ | async); let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [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 + imageCount) % imageCount)\">\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) % imageCount)\">\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$ | async); 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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n <div *ngFor=\"let image of (images$ | async)\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></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$ | async); 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$ | async); 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]", inputs: ["offside"] }, { 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] });
99
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsCarouselComponent, decorators: [{
100
126
  type: Component,
101
- 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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(images.length - 1)?.itemTemplate ?? null\"></ng-container>\n </div>\n <div *ngFor=\"let image of images\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(0)?.itemTemplate ?? null\"></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"] }]
127
+ 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\" *ngIf=\"(imageCount$ | async) as imageCount\">\n <ng-container *ngFor=\"let image of (images$ | async); 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$ | async); let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [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 + imageCount) % imageCount)\">\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) % imageCount)\">\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$ | async); 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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n <div *ngFor=\"let image of (images$ | async)\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></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$ | async); 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$ | async); 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"] }]
102
128
  }], ctorParameters: function () {
103
129
  return [{ type: undefined, decorators: [{
104
130
  type: Inject,
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>) {\n this.itemTemplate = this.templateRef;\n }\n\n @HostBinding('class.w-100') width100class = true;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { ChangeDetectorRef, Component, ContentChildren, forwardRef, HostBinding, HostListener, Inject, Input, PLATFORM_ID, QueryList, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) images!: QueryList<BsCarouselImageDirective>;\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n\n}\n","<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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(images.length - 1)?.itemTemplate ?? null\"></ng-container>\n </div>\n <div *ngFor=\"let image of images\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"images.get(0)?.itemTemplate ?? null\"></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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ],\n imports: [\n CommonModule,\n BsSwiperModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>) {\n this.itemTemplate = this.templateRef;\n }\n\n @HostBinding('class.w-100') width100class = true;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { ChangeDetectorRef, Component, ContentChildren, forwardRef, HostBinding, HostListener, Inject, Input, PLATFORM_ID, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));\n this.firstImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n\n const img = images.get(0);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n this.lastImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n \n const img = images.get(images.length - 1);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n images$ = new BehaviorSubject<QueryList<BsCarouselImageDirective> | null>(null);\n imageCount$: Observable<number>;\n firstImageTemplate$: Observable<TemplateRef<any> | null>;\n lastImageTemplate$: Observable<TemplateRef<any> | null>;\n\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) set images(value: QueryList<BsCarouselImageDirective>) {\n this.images$.next(value);\n }\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n\n}\n","<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\" *ngIf=\"(imageCount$ | async) as imageCount\">\n <ng-container *ngFor=\"let image of (images$ | async); 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$ | async); let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [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 + imageCount) % imageCount)\">\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) % imageCount)\">\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$ | async); 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 pe-none\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n <div *ngFor=\"let image of (images$ | async)\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></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$ | async); 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$ | async); 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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ],\n imports: [\n CommonModule,\n BsSwiperModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ContentChildren, forwardRef, HostBinding, Output, Input, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
3
+ import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { SlideUpDownNgifAnimation } from '@mintplayer/ng-animations';
5
+ import * as i2 from '@mintplayer/ng-bootstrap/no-noscript';
6
+ import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
7
+ import { BehaviorSubject, combineLatest, map } from 'rxjs';
8
+ import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
6
9
 
7
10
  class BsAccordionTabComponent {
8
11
  constructor(accordion) {
@@ -13,6 +16,9 @@ class BsAccordionTabComponent {
13
16
  this.isActiveChange = new EventEmitter();
14
17
  this._isActive = false;
15
18
  this.accordion = accordion;
19
+ this.accordionTabId$ = new BehaviorSubject(++this.accordion.accordionTabCounter);
20
+ this.accordionTabName$ = combineLatest([this.accordion.accordionName$, this.accordionTabId$])
21
+ .pipe(map(([accordionName, accordionTabId]) => `${accordionName}-${accordionTabId}`));
16
22
  }
17
23
  get isActive() {
18
24
  return this._isActive;
@@ -39,10 +45,10 @@ class BsAccordionTabComponent {
39
45
  }
40
46
  }
41
47
  BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: BsAccordionComponent }], target: i0.ɵɵFactoryTarget.Component });
42
- BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabComponent, selector: "bs-accordion-tab", inputs: { isActive: "isActive" }, outputs: { isActiveChange: "isActiveChange" }, host: { properties: { "class.accordion-item": "this.accordionItemClass", "class.d-block": "this.dBlock", "class.border-0": "this.noBorder" } }, queries: [{ propertyName: "childAccordions", predicate: i0.forwardRef(function () { return BsAccordionComponent; }) }], ngImport: i0, template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDownNgif] *ngIf=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [SlideUpDownNgifAnimation] });
48
+ BsAccordionTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabComponent, selector: "bs-accordion-tab", inputs: { isActive: "isActive" }, outputs: { isActiveChange: "isActiveChange" }, host: { properties: { "class.accordion-item": "this.accordionItemClass", "class.d-block": "this.dBlock", "class.border-0": "this.noBorder" } }, queries: [{ propertyName: "childAccordions", predicate: i0.forwardRef(function () { return BsAccordionComponent; }) }], ngImport: i0, template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\" bsNoNoscript>\n\n <input type=\"radio\" class=\"d-none\" [name]=\"accordion.accordionName$ | async\" [id]=\"accordionTabName$ | async\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDown]=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label{background-color:#e7f1ff}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label:after{transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .noscript>input[type=radio]:checked~.accordion-collapse{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], animations: [SlideUpDownAnimation] });
43
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, decorators: [{
44
50
  type: Component,
45
- args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownNgifAnimation], template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDownNgif] *ngIf=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}\n"] }]
51
+ args: [{ selector: 'bs-accordion-tab', animations: [SlideUpDownAnimation], template: "<div [class.border-0]=\"false\" [@.disabled]=\"accordion.disableAnimations\" bsNoNoscript>\n\n <input type=\"radio\" class=\"d-none\" [name]=\"accordion.accordionName$ | async\" [id]=\"accordionTabName$ | async\">\n <ng-content select=\"bs-accordion-tab-header\"></ng-content>\n <div class=\"accordion-collapse collapse show overflow-hidden\" [@slideUpDown]=\"isActive\">\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: [".card,.card-header,.card-block{border-radius:0}.card{margin-bottom:-1px}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label{background-color:#e7f1ff}:host ::ng-deep .noscript>input[type=radio]:checked+bs-accordion-tab-header>h2>label:after{transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .noscript>input[type=radio]:checked~.accordion-collapse{height:auto!important}\n"] }]
46
52
  }], ctorParameters: function () { return [{ type: BsAccordionComponent }]; }, propDecorators: { childAccordions: [{
47
53
  type: ContentChildren,
48
54
  args: [forwardRef(() => BsAccordionComponent)]
@@ -65,14 +71,18 @@ class BsAccordionComponent {
65
71
  constructor() {
66
72
  this.disableAnimations = false;
67
73
  this.highlightActiveTab = false;
74
+ this.accordionTabCounter = 0;
75
+ this.accordionId$ = new BehaviorSubject(++BsAccordionComponent.accordionCounter);
76
+ this.accordionName$ = this.accordionId$.pipe(map((id) => `bs-accordion-${id}`));
68
77
  }
69
78
  }
79
+ BsAccordionComponent.accordionCounter = 0;
70
80
  BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
81
  BsAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionComponent, selector: "bs-accordion", inputs: { highlightActiveTab: "highlightActiveTab" }, queries: [{ propertyName: "tabPages", predicate: i0.forwardRef(function () { return BsAccordionTabComponent; }) }], ngImport: i0, template: "<div class=\"accordion\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: 1px;--bs-accordion-border-radius: .375rem;--bs-accordion-inner-border-radius:calc(.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #0c63e4;--bs-accordion-active-bg: #e7f1ff}:host ::ng-deep .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button{transition:none}}:host ::ng-deep .accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}:host ::ng-deep .accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\"\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button:after{transition:none}}:host ::ng-deep .accordion-button:hover{z-index:2}:host ::ng-deep .accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:host ::ng-deep .accordion-header{margin-bottom:0}:host ::ng-deep .accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}:host ::ng-deep .accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:not(:first-of-type){border-top:0}:host ::ng-deep .accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}:host ::ng-deep .accordion-flush .accordion-collapse{border-width:0}:host ::ng-deep .accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}:host ::ng-deep .accordion-flush .accordion-item:first-child{border-top:0}:host ::ng-deep .accordion-flush .accordion-item:last-child{border-bottom:0}:host ::ng-deep .accordion-flush .accordion-item .accordion-button,:host ::ng-deep .accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}:host ::ng-deep bs-accordion{margin:-1px}\n"] });
72
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, decorators: [{
73
83
  type: Component,
74
84
  args: [{ selector: 'bs-accordion', template: "<div class=\"accordion\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: 1px;--bs-accordion-border-radius: .375rem;--bs-accordion-inner-border-radius:calc(.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #0c63e4;--bs-accordion-active-bg: #e7f1ff}:host ::ng-deep .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button{transition:none}}:host ::ng-deep .accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}:host ::ng-deep .accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}:host ::ng-deep .accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\"\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){:host ::ng-deep .accordion-button:after{transition:none}}:host ::ng-deep .accordion-button:hover{z-index:2}:host ::ng-deep .accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}:host ::ng-deep .accordion-header{margin-bottom:0}:host ::ng-deep .accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}:host ::ng-deep .accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:not(:first-of-type){border-top:0}:host ::ng-deep .accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}:host ::ng-deep .accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}:host ::ng-deep .accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}:host ::ng-deep .accordion-flush .accordion-collapse{border-width:0}:host ::ng-deep .accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}:host ::ng-deep .accordion-flush .accordion-item:first-child{border-top:0}:host ::ng-deep .accordion-flush .accordion-item:last-child{border-bottom:0}:host ::ng-deep .accordion-flush .accordion-item .accordion-button,:host ::ng-deep .accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}:host ::ng-deep bs-accordion{margin:-1px}\n"] }]
75
- }], propDecorators: { tabPages: [{
85
+ }], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
76
86
  type: ContentChildren,
77
87
  args: [forwardRef(() => BsAccordionTabComponent)]
78
88
  }], highlightActiveTab: [{
@@ -89,10 +99,10 @@ class BsAccordionTabHeaderComponent {
89
99
  }
90
100
  }
91
101
  BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: BsAccordionTabComponent }], target: i0.ɵɵFactoryTarget.Component });
92
- BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <button class=\"accordion-button\" [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" [class.collapsed]=\"!accordionTab.isActive\" [class.background-unset]=\"!accordionTab.accordion.highlightActiveTab\" type=\"button\">\n <ng-content></ng-content>\n </button>\n</h2>", styles: [".accordion-button{background:unset}.background-unset{background:unset!important}\n"] });
102
+ BsAccordionTabHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BsAccordionTabHeaderComponent, selector: "bs-accordion-tab-header", ngImport: i0, template: "<!-- <input type=\"radio\" class=\"d-none\" [name]=\"accordionTab.accordion.accordionName$ | async\" [id]=\"accordionTab.accordionTabName$ | async\"> -->\n<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <!-- [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" -->\n <label class=\"btn accordion-button\" [class.collapsed]=\"!accordionTab.isActive\" [class.bg-unset]=\"!accordionTab.accordion.highlightActiveTab\" [for]=\"accordionTab.accordionTabName$ | async\" type=\"button\">\n <ng-content></ng-content>\n </label>\n</h2>", styles: [".bg-unset{background:unset}\n"], dependencies: [{ kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
93
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
94
104
  type: Component,
95
- args: [{ selector: 'bs-accordion-tab-header', template: "<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <button class=\"accordion-button\" [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" [class.collapsed]=\"!accordionTab.isActive\" [class.background-unset]=\"!accordionTab.accordion.highlightActiveTab\" type=\"button\">\n <ng-content></ng-content>\n </button>\n</h2>", styles: [".accordion-button{background:unset}.background-unset{background:unset!important}\n"] }]
105
+ args: [{ selector: 'bs-accordion-tab-header', template: "<!-- <input type=\"radio\" class=\"d-none\" [name]=\"accordionTab.accordion.accordionName$ | async\" [id]=\"accordionTab.accordionTabName$ | async\"> -->\n<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n <!-- [class.bg-transparent]=\"!accordionTab.isActive && accordionTab.accordion.highlightActiveTab\" -->\n <label class=\"btn accordion-button\" [class.collapsed]=\"!accordionTab.isActive\" [class.bg-unset]=\"!accordionTab.accordion.highlightActiveTab\" [for]=\"accordionTab.accordionTabName$ | async\" type=\"button\">\n <ng-content></ng-content>\n </label>\n</h2>", styles: [".bg-unset{background:unset}\n"] }]
96
106
  }], ctorParameters: function () { return [{ type: BsAccordionTabComponent }]; } });
97
107
 
98
108
  class BsAccordionModule {
@@ -100,10 +110,12 @@ class BsAccordionModule {
100
110
  BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
101
111
  BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
102
112
  BsAccordionTabComponent,
103
- BsAccordionTabHeaderComponent], imports: [CommonModule], exports: [BsAccordionComponent,
113
+ BsAccordionTabHeaderComponent], imports: [CommonModule,
114
+ BsNoNoscriptModule], exports: [BsAccordionComponent,
104
115
  BsAccordionTabComponent,
105
116
  BsAccordionTabHeaderComponent] });
106
- BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule] });
117
+ BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule,
118
+ BsNoNoscriptModule] });
107
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, decorators: [{
108
120
  type: NgModule,
109
121
  args: [{
@@ -113,7 +125,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
113
125
  BsAccordionTabHeaderComponent
114
126
  ],
115
127
  imports: [
116
- CommonModule
128
+ CommonModule,
129
+ BsNoNoscriptModule
117
130
  ],
118
131
  exports: [
119
132
  BsAccordionComponent,