@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.
- package/accordion/src/accordion/accordion.component.d.ts +6 -0
- package/accordion/src/accordion-tab/accordion-tab.component.d.ts +3 -0
- package/accordion/src/accordion.module.d.ts +2 -1
- package/carousel/src/carousel/carousel.component.d.ts +7 -2
- package/esm2020/accordion/src/accordion/accordion.component.mjs +7 -2
- package/esm2020/accordion/src/accordion-tab/accordion-tab.component.mjs +10 -5
- package/esm2020/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +4 -3
- package/esm2020/accordion/src/accordion.module.mjs +8 -4
- package/esm2020/carousel/src/carousel/carousel.component.mjs +29 -3
- package/fesm2015/mintplayer-ng-bootstrap-accordion.mjs +23 -10
- package/fesm2015/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs +28 -2
- package/fesm2015/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-accordion.mjs +23 -10
- package/fesm2020/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs +28 -2
- package/fesm2020/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { QueryList } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
3
|
import { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class BsAccordionComponent {
|
|
6
|
+
constructor();
|
|
5
7
|
tabPages: QueryList<BsAccordionTabComponent>;
|
|
6
8
|
disableAnimations: boolean;
|
|
7
9
|
highlightActiveTab: boolean;
|
|
10
|
+
accordionId$: BehaviorSubject<number>;
|
|
11
|
+
accordionName$: Observable<string>;
|
|
12
|
+
accordionTabCounter: number;
|
|
13
|
+
static accordionCounter: number;
|
|
8
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsAccordionComponent, never>;
|
|
9
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<BsAccordionComponent, "bs-accordion", never, { "highlightActiveTab": "highlightActiveTab"; }, {}, ["tabPages"], ["*"], false, never>;
|
|
10
16
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { EventEmitter, QueryList } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
3
|
import { BsAccordionComponent } from '../accordion/accordion.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class BsAccordionTabComponent {
|
|
5
6
|
accordion: BsAccordionComponent;
|
|
7
|
+
accordionTabId$: BehaviorSubject<number>;
|
|
8
|
+
accordionTabName$: Observable<string>;
|
|
6
9
|
childAccordions: QueryList<BsAccordionComponent>;
|
|
7
10
|
constructor(accordion: BsAccordionComponent);
|
|
8
11
|
accordionItemClass: boolean;
|
|
@@ -3,8 +3,9 @@ import * as i1 from "./accordion/accordion.component";
|
|
|
3
3
|
import * as i2 from "./accordion-tab/accordion-tab.component";
|
|
4
4
|
import * as i3 from "./accordion-tab-header/accordion-tab-header.component";
|
|
5
5
|
import * as i4 from "@angular/common";
|
|
6
|
+
import * as i5 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
6
7
|
export declare class BsAccordionModule {
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsAccordionModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BsAccordionModule, [typeof i1.BsAccordionComponent, typeof i2.BsAccordionTabComponent, typeof i3.BsAccordionTabHeaderComponent], [typeof i4.CommonModule], [typeof i1.BsAccordionComponent, typeof i2.BsAccordionTabComponent, typeof i3.BsAccordionTabHeaderComponent]>;
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BsAccordionModule, [typeof i1.BsAccordionComponent, typeof i2.BsAccordionTabComponent, typeof i3.BsAccordionTabHeaderComponent], [typeof i4.CommonModule, typeof i5.BsNoNoscriptModule], [typeof i1.BsAccordionComponent, typeof i2.BsAccordionTabComponent, typeof i3.BsAccordionTabHeaderComponent]>;
|
|
9
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<BsAccordionModule>;
|
|
10
11
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectorRef, QueryList } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, QueryList, TemplateRef } from '@angular/core';
|
|
2
2
|
import { Color } from '@mintplayer/ng-bootstrap';
|
|
3
3
|
import { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';
|
|
4
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
5
|
import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class BsCarouselComponent {
|
|
@@ -9,10 +10,14 @@ export declare class BsCarouselComponent {
|
|
|
9
10
|
colors: typeof Color;
|
|
10
11
|
isServerSide: boolean;
|
|
11
12
|
currentImageIndex: number;
|
|
13
|
+
images$: BehaviorSubject<QueryList<BsCarouselImageDirective> | null>;
|
|
14
|
+
imageCount$: Observable<number>;
|
|
15
|
+
firstImageTemplate$: Observable<TemplateRef<any> | null>;
|
|
16
|
+
lastImageTemplate$: Observable<TemplateRef<any> | null>;
|
|
12
17
|
indicators: boolean;
|
|
13
18
|
keyboardEvents: boolean;
|
|
14
19
|
swipeContainer: BsSwipeContainerDirective;
|
|
15
|
-
images: QueryList<BsCarouselImageDirective
|
|
20
|
+
set images(value: QueryList<BsCarouselImageDirective>);
|
|
16
21
|
animationsDisabled: boolean;
|
|
17
22
|
private _animation;
|
|
18
23
|
set animation(value: 'fade' | 'slide');
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { Component, ContentChildren, forwardRef, Input, QueryList } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, map } from 'rxjs';
|
|
2
3
|
import { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class BsAccordionComponent {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.disableAnimations = false;
|
|
7
8
|
this.highlightActiveTab = false;
|
|
9
|
+
this.accordionTabCounter = 0;
|
|
10
|
+
this.accordionId$ = new BehaviorSubject(++BsAccordionComponent.accordionCounter);
|
|
11
|
+
this.accordionName$ = this.accordionId$.pipe(map((id) => `bs-accordion-${id}`));
|
|
8
12
|
}
|
|
9
13
|
}
|
|
14
|
+
BsAccordionComponent.accordionCounter = 0;
|
|
10
15
|
BsAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
16
|
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"] });
|
|
12
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionComponent, decorators: [{
|
|
13
18
|
type: Component,
|
|
14
19
|
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"] }]
|
|
15
|
-
}], propDecorators: { tabPages: [{
|
|
20
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tabPages: [{
|
|
16
21
|
type: ContentChildren,
|
|
17
22
|
args: [forwardRef(() => BsAccordionTabComponent)]
|
|
18
23
|
}], highlightActiveTab: [{
|
|
19
24
|
type: Input
|
|
20
25
|
}] } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvYWNjb3JkaW9uL3NyYy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvYWNjb3JkaW9uL3NyYy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQU9uRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CO1FBTUEsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUlwQyx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFWdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7QUFTTSxxQ0FBZ0IsR0FBRyxDQUFDLENBQUM7aUhBZGpCLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHNLQU9HLHVCQUF1QixpQ0NoQjNELGtFQUVNOzJGRE9PLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxjQUFjOzBFQVdvQyxRQUFRO3NCQUFuRSxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFFakQsa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIGZvcndhcmRSZWYsIElucHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc0FjY29yZGlvblRhYkNvbXBvbmVudCB9IGZyb20gJy4uL2FjY29yZGlvbi10YWIvYWNjb3JkaW9uLXRhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNBY2NvcmRpb25Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYWNjb3JkaW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KCsrQnNBY2NvcmRpb25Db21wb25lbnQuYWNjb3JkaW9uQ291bnRlcik7XG4gICAgdGhpcy5hY2NvcmRpb25OYW1lJCA9IHRoaXMuYWNjb3JkaW9uSWQkLnBpcGUobWFwKChpZCkgPT4gYGJzLWFjY29yZGlvbi0ke2lkfWApKTtcbiAgfVxuICBcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQWNjb3JkaW9uVGFiQ29tcG9uZW50KSkgdGFiUGFnZXMhOiBRdWVyeUxpc3Q8QnNBY2NvcmRpb25UYWJDb21wb25lbnQ+O1xuICBkaXNhYmxlQW5pbWF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWdobGlnaHRBY3RpdmVUYWIgPSBmYWxzZTtcblxuICBhY2NvcmRpb25JZCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBhY2NvcmRpb25OYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBhY2NvcmRpb25UYWJDb3VudGVyID0gMDtcbiAgc3RhdGljIGFjY29yZGlvbkNvdW50ZXIgPSAwO1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SlideUpDownAnimation } from '@mintplayer/ng-animations';
|
|
3
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
3
4
|
import { BsAccordionComponent } from '../accordion/accordion.component';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../accordion/accordion.component";
|
|
6
|
-
import * as i2 from "@
|
|
7
|
+
import * as i2 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
7
9
|
export class BsAccordionTabComponent {
|
|
8
10
|
constructor(accordion) {
|
|
9
11
|
this.accordionItemClass = true;
|
|
@@ -13,6 +15,9 @@ export class BsAccordionTabComponent {
|
|
|
13
15
|
this.isActiveChange = new EventEmitter();
|
|
14
16
|
this._isActive = false;
|
|
15
17
|
this.accordion = accordion;
|
|
18
|
+
this.accordionTabId$ = new BehaviorSubject(++this.accordion.accordionTabCounter);
|
|
19
|
+
this.accordionTabName$ = combineLatest([this.accordion.accordionName$, this.accordionTabId$])
|
|
20
|
+
.pipe(map(([accordionName, accordionTabId]) => `${accordionName}-${accordionTabId}`));
|
|
16
21
|
}
|
|
17
22
|
get isActive() {
|
|
18
23
|
return this._isActive;
|
|
@@ -39,10 +44,10 @@ export class BsAccordionTabComponent {
|
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
BsAccordionTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, deps: [{ token: i1.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\" [@
|
|
47
|
+
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
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabComponent, decorators: [{
|
|
44
49
|
type: Component,
|
|
45
|
-
args: [{ selector: 'bs-accordion-tab', animations: [
|
|
50
|
+
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
51
|
}], ctorParameters: function () { return [{ type: i1.BsAccordionComponent }]; }, propDecorators: { childAccordions: [{
|
|
47
52
|
type: ContentChildren,
|
|
48
53
|
args: [forwardRef(() => BsAccordionComponent)]
|
|
@@ -60,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
60
65
|
}], isActive: [{
|
|
61
66
|
type: Input
|
|
62
67
|
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2FjY29yZGlvbi9zcmMvYWNjb3JkaW9uLXRhYi9hY2NvcmRpb24tdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvYWNjb3JkaW9uL3NyYy9hY2NvcmRpb24tdGFiL2FjY29yZGlvbi10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQVF4RSxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQVksU0FBK0I7UUFPTix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNiLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEQsa0JBQWtCO1FBQ0QsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3RELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFaeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQzFGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxhQUFhLElBQUksY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFTRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFvQixRQUFRLENBQUMsS0FBYztRQUN6QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3JDLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3pDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ2pDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN2QixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDOztvSEF6Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNFZBS0Esb0JBQW9CLGlDQ2hCeEQscWZBU00sc2xCREFRLENBQUMsb0JBQW9CLENBQUM7MkZBRXZCLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsQ0FBQyxvQkFBb0IsQ0FBQzsyR0FPdUIsZUFBZTtzQkFBdkUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBUWxCLGtCQUFrQjtzQkFBdEQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0wsTUFBTTtzQkFBbkMsV0FBVzt1QkFBQyxlQUFlO2dCQUNHLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUdaLGNBQWM7c0JBQTlCLE1BQU07Z0JBS2EsUUFBUTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsaWRlVXBEb3duQW5pbWF0aW9uIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuLi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWFjY29yZGlvbi10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc0FjY29yZGlvblRhYkNvbXBvbmVudCB7XG5cbiAgYWNjb3JkaW9uOiBCc0FjY29yZGlvbkNvbXBvbmVudDtcbiAgYWNjb3JkaW9uVGFiSWQkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgYWNjb3JkaW9uVGFiTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQWNjb3JkaW9uQ29tcG9uZW50KSkgY2hpbGRBY2NvcmRpb25zITogUXVlcnlMaXN0PEJzQWNjb3JkaW9uQ29tcG9uZW50PjtcbiAgY29uc3RydWN0b3IoYWNjb3JkaW9uOiBCc0FjY29yZGlvbkNvbXBvbmVudCkge1xuICAgIHRoaXMuYWNjb3JkaW9uID0gYWNjb3JkaW9uO1xuICAgIHRoaXMuYWNjb3JkaW9uVGFiSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KCsrdGhpcy5hY2NvcmRpb24uYWNjb3JkaW9uVGFiQ291bnRlcik7XG4gICAgdGhpcy5hY2NvcmRpb25UYWJOYW1lJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWNjb3JkaW9uLmFjY29yZGlvbk5hbWUkLCB0aGlzLmFjY29yZGlvblRhYklkJF0pXG4gICAgICAucGlwZShtYXAoKFthY2NvcmRpb25OYW1lLCBhY2NvcmRpb25UYWJJZF0pID0+IGAke2FjY29yZGlvbk5hbWV9LSR7YWNjb3JkaW9uVGFiSWR9YCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY2NvcmRpb24taXRlbScpIGFjY29yZGlvbkl0ZW1DbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZC1ibG9jaycpIGRCbG9jayA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYm9yZGVyLTAnKSBub0JvcmRlciA9IGZhbHNlO1xuICBcbiAgLy8jcmVnaW9uIElzQWN0aXZlXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXNBY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgX2lzQWN0aXZlID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQWN0aXZlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgaXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5faXNBY3RpdmUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9pc0FjdGl2ZSA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMuX2lzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLnRhYlBhZ2VzLmZpbHRlcigodGFiKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRhYiAhPT0gdGhpcztcbiAgICAgICAgfSkuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgdGFiLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGlsZEFjY29yZGlvbnMuZm9yRWFjaCgoYWNjb3JkaW9uKSA9PiB7XG4gICAgICAgICAgYWNjb3JkaW9uLnRhYlBhZ2VzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgICAgdGFiLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0FjdGl2ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8ZGl2IFtjbGFzcy5ib3JkZXItMF09XCJmYWxzZVwiIFtALmRpc2FibGVkXT1cImFjY29yZGlvbi5kaXNhYmxlQW5pbWF0aW9uc1wiIGJzTm9Ob3NjcmlwdD5cblxuICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImQtbm9uZVwiIFtuYW1lXT1cImFjY29yZGlvbi5hY2NvcmRpb25OYW1lJCB8IGFzeW5jXCIgW2lkXT1cImFjY29yZGlvblRhYk5hbWUkIHwgYXN5bmNcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJicy1hY2NvcmRpb24tdGFiLWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uLWNvbGxhcHNlIGNvbGxhcHNlIHNob3cgb3ZlcmZsb3ctaGlkZGVuXCIgW0BzbGlkZVVwRG93bl09XCJpc0FjdGl2ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uLWJvZHkgcC0wXCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import { BsAccordionTabComponent } from '../accordion-tab/accordion-tab.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../accordion-tab/accordion-tab.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
5
6
|
export class BsAccordionTabHeaderComponent {
|
|
6
7
|
constructor(accordionTab) {
|
|
7
8
|
this.accordionTab = accordionTab;
|
|
@@ -12,9 +13,9 @@ export class BsAccordionTabHeaderComponent {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
BsAccordionTabHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, deps: [{ token: i1.BsAccordionTabComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
-
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
|
|
16
|
+
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: i2.AsyncPipe, name: "async" }] });
|
|
16
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionTabHeaderComponent, decorators: [{
|
|
17
18
|
type: Component,
|
|
18
|
-
args: [{ selector: 'bs-accordion-tab-header', template: "<h2 class=\"accordion-header cursor-pointer\" (click)=\"headerClicked($event)\">\n
|
|
19
|
+
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"] }]
|
|
19
20
|
}], ctorParameters: function () { return [{ type: i1.BsAccordionTabComponent }]; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXRhYi1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi10YWItaGVhZGVyL2FjY29yZGlvbi10YWItaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvYWNjb3JkaW9uL3NyYy9hY2NvcmRpb24tdGFiLWhlYWRlci9hY2NvcmRpb24tdGFiLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7O0FBT25GLE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsWUFBWSxZQUFxQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBSUQsYUFBYSxDQUFDLEtBQWlCO1FBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzNELENBQUM7OzBIQVhVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtEQ1IxQyw0bUJBTUs7MkZERVEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNBY2NvcmRpb25UYWJDb21wb25lbnQgfSBmcm9tICcuLi9hY2NvcmRpb24tdGFiL2FjY29yZGlvbi10YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtYWNjb3JkaW9uLXRhYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLXRhYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24tdGFiLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzQWNjb3JkaW9uVGFiSGVhZGVyQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihhY2NvcmRpb25UYWI6IEJzQWNjb3JkaW9uVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy5hY2NvcmRpb25UYWIgPSBhY2NvcmRpb25UYWI7XG4gIH1cblxuICBhY2NvcmRpb25UYWI6IEJzQWNjb3JkaW9uVGFiQ29tcG9uZW50O1xuXG4gIGhlYWRlckNsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWNjb3JkaW9uVGFiLmlzQWN0aXZlID0gIXRoaXMuYWNjb3JkaW9uVGFiLmlzQWN0aXZlO1xuICB9XG59XG4iLCI8IS0tIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBjbGFzcz1cImQtbm9uZVwiIFtuYW1lXT1cImFjY29yZGlvblRhYi5hY2NvcmRpb24uYWNjb3JkaW9uTmFtZSQgfCBhc3luY1wiIFtpZF09XCJhY2NvcmRpb25UYWIuYWNjb3JkaW9uVGFiTmFtZSQgfCBhc3luY1wiPiAtLT5cbjxoMiBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaGVhZGVyQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgPCEtLSBbY2xhc3MuYmctdHJhbnNwYXJlbnRdPVwiIWFjY29yZGlvblRhYi5pc0FjdGl2ZSAmJiBhY2NvcmRpb25UYWIuYWNjb3JkaW9uLmhpZ2hsaWdodEFjdGl2ZVRhYlwiIC0tPlxuICAgIDxsYWJlbCBjbGFzcz1cImJ0biBhY2NvcmRpb24tYnV0dG9uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCIhYWNjb3JkaW9uVGFiLmlzQWN0aXZlXCIgW2NsYXNzLmJnLXVuc2V0XT1cIiFhY2NvcmRpb25UYWIuYWNjb3JkaW9uLmhpZ2hsaWdodEFjdGl2ZVRhYlwiIFtmb3JdPVwiYWNjb3JkaW9uVGFiLmFjY29yZGlvblRhYk5hbWUkIHwgYXN5bmNcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2xhYmVsPlxuPC9oMj4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
|
|
3
4
|
import { BsAccordionComponent } from './accordion/accordion.component';
|
|
4
5
|
import { BsAccordionTabComponent } from './accordion-tab/accordion-tab.component';
|
|
5
6
|
import { BsAccordionTabHeaderComponent } from './accordion-tab-header/accordion-tab-header.component';
|
|
@@ -9,10 +10,12 @@ export class BsAccordionModule {
|
|
|
9
10
|
BsAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
11
|
BsAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, declarations: [BsAccordionComponent,
|
|
11
12
|
BsAccordionTabComponent,
|
|
12
|
-
BsAccordionTabHeaderComponent], imports: [CommonModule
|
|
13
|
+
BsAccordionTabHeaderComponent], imports: [CommonModule,
|
|
14
|
+
BsNoNoscriptModule], exports: [BsAccordionComponent,
|
|
13
15
|
BsAccordionTabComponent,
|
|
14
16
|
BsAccordionTabHeaderComponent] });
|
|
15
|
-
BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule
|
|
17
|
+
BsAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, imports: [CommonModule,
|
|
18
|
+
BsNoNoscriptModule] });
|
|
16
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsAccordionModule, decorators: [{
|
|
17
20
|
type: NgModule,
|
|
18
21
|
args: [{
|
|
@@ -22,7 +25,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
22
25
|
BsAccordionTabHeaderComponent
|
|
23
26
|
],
|
|
24
27
|
imports: [
|
|
25
|
-
CommonModule
|
|
28
|
+
CommonModule,
|
|
29
|
+
BsNoNoscriptModule
|
|
26
30
|
],
|
|
27
31
|
exports: [
|
|
28
32
|
BsAccordionComponent,
|
|
@@ -31,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
31
35
|
]
|
|
32
36
|
}]
|
|
33
37
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvYWNjb3JkaW9uL3NyYy9hY2NvcmRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQWtCdEcsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQWQxQixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLDZCQUE2QixhQUc3QixZQUFZO1FBQ1osa0JBQWtCLGFBR2xCLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIsNkJBQTZCOytHQUdwQixpQkFBaUIsWUFUMUIsWUFBWTtRQUNaLGtCQUFrQjsyRkFRVCxpQkFBaUI7a0JBaEI3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsNkJBQTZCO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNOb05vc2NyaXB0TW9kdWxlIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwL25vLW5vc2NyaXB0JztcbmltcG9ydCB7IEJzQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0FjY29yZGlvblRhYkNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLXRhYi9hY2NvcmRpb24tdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc0FjY29yZGlvblRhYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLXRhYi1oZWFkZXIvYWNjb3JkaW9uLXRhYi1oZWFkZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnNBY2NvcmRpb25Db21wb25lbnQsXG4gICAgQnNBY2NvcmRpb25UYWJDb21wb25lbnQsXG4gICAgQnNBY2NvcmRpb25UYWJIZWFkZXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCc05vTm9zY3JpcHRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJzQWNjb3JkaW9uQ29tcG9uZW50LFxuICAgIEJzQWNjb3JkaW9uVGFiQ29tcG9uZW50LFxuICAgIEJzQWNjb3JkaW9uVGFiSGVhZGVyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQnNBY2NvcmRpb25Nb2R1bGUgeyB9XG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { ChangeDetectorRef, Component, ContentChildren, forwardRef, HostBinding,
|
|
|
3
3
|
import { FadeInOutAnimation } from '@mintplayer/ng-animations';
|
|
4
4
|
import { Color } from '@mintplayer/ng-bootstrap';
|
|
5
5
|
import { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';
|
|
6
|
+
import { BehaviorSubject, map } from 'rxjs';
|
|
6
7
|
import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/common";
|
|
@@ -13,12 +14,37 @@ export class BsCarouselComponent {
|
|
|
13
14
|
this.cdRef = cdRef;
|
|
14
15
|
this.colors = Color;
|
|
15
16
|
this.currentImageIndex = 0;
|
|
17
|
+
this.images$ = new BehaviorSubject(null);
|
|
16
18
|
this.indicators = false;
|
|
17
19
|
this.keyboardEvents = true;
|
|
18
20
|
//#region Animation
|
|
19
21
|
this.animationsDisabled = false;
|
|
20
22
|
this._animation = 'slide';
|
|
21
23
|
this.isServerSide = isPlatformServer(platformId);
|
|
24
|
+
this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));
|
|
25
|
+
this.firstImageTemplate$ = this.images$.pipe(map((images) => {
|
|
26
|
+
if (!images)
|
|
27
|
+
return null;
|
|
28
|
+
if (images.length === 0)
|
|
29
|
+
return null;
|
|
30
|
+
const img = images.get(0);
|
|
31
|
+
if (!img)
|
|
32
|
+
return null;
|
|
33
|
+
return img.itemTemplate;
|
|
34
|
+
}));
|
|
35
|
+
this.lastImageTemplate$ = this.images$.pipe(map((images) => {
|
|
36
|
+
if (!images)
|
|
37
|
+
return null;
|
|
38
|
+
if (images.length === 0)
|
|
39
|
+
return null;
|
|
40
|
+
const img = images.get(images.length - 1);
|
|
41
|
+
if (!img)
|
|
42
|
+
return null;
|
|
43
|
+
return img.itemTemplate;
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
set images(value) {
|
|
47
|
+
this.images$.next(value);
|
|
22
48
|
}
|
|
23
49
|
set animation(value) {
|
|
24
50
|
this.animationsDisabled = true;
|
|
@@ -75,10 +101,10 @@ export class BsCarouselComponent {
|
|
|
75
101
|
}
|
|
76
102
|
}
|
|
77
103
|
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 });
|
|
78
|
-
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] });
|
|
104
|
+
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] });
|
|
79
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BsCarouselComponent, decorators: [{
|
|
80
106
|
type: Component,
|
|
81
|
-
args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation], template: "<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *ngFor=\"let image of images; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; let j = index\" [attr.for]=\"'car-' + (j % images.length)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + images.length) % images.length)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % images.length)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of images; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner overflow-hidden text-nowrap 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"] }]
|
|
107
|
+
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"] }]
|
|
82
108
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
83
109
|
type: Inject,
|
|
84
110
|
args: [PLATFORM_ID]
|
|
@@ -104,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
|
|
|
104
130
|
type: HostListener,
|
|
105
131
|
args: ['document:keydown.ArrowRight', ['$event']]
|
|
106
132
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBUXRGLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBaUMsVUFBZSxFQUFVLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBSWxGLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDYixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBSy9CLG1CQUFtQjtRQUNlLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNyRCxlQUFVLEdBQXFCLE9B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bXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWRlSW5PdXRBbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICdAbWludHBsYXllci9uZy1zd2lwZXInO1xuaW1wb3J0IHsgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbRmFkZUluT3V0QW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc0Nhcm91c2VsQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnksIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5pc1NlcnZlclNpZGUgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuICB9XG4gIFxuICBjb2xvcnMgPSBDb2xvcjtcbiAgaXNTZXJ2ZXJTaWRlOiBib29sZWFuO1xuICBjdXJyZW50SW1hZ2VJbmRleCA9IDA7XG4gIEBJbnB1dCgpIGluZGljYXRvcnMgPSBmYWxzZTtcbiAgQElucHV0KCkga2V5Ym9hcmRFdmVudHMgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHN3aXBlQ29udGFpbmVyITogQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSkpIGltYWdlcyE6IFF1ZXJ5TGlzdDxCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmU+O1xuXG4gIC8vI3JlZ2lvbiBBbmltYXRpb25cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJykgcHVibGljIGFuaW1hdGlvbnNEaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hbmltYXRpb246ICdmYWRlJyB8ICdzbGlkZScgPSAnc2xpZGUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFuaW1hdGlvbih2YWx1ZTogJ2ZhZGUnIHwgJ3NsaWRlJykge1xuICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl9hbmltYXRpb24gPSB2YWx1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2UsIDIwKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpLCA1MCk7XG4gIH1cbiAgcHVibGljIGdldCBhbmltYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLkFycm93TGVmdCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dSaWdodCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXY6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5rZXlib2FyZEV2ZW50cykge1xuICAgICAgc3dpdGNoIChldi5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICB0aGlzLnByZXZpb3VzSW1hZ2UoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgdGhpcy5uZXh0SW1hZ2UoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJldmlvdXNJbWFnZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSB0aGlzLmltYWdlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLnByZXZpb3VzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG5leHRJbWFnZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICBjYXNlICdmYWRlJzpcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmltYWdlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VydmVyU2lkZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbCBteC1hdXRvIG5vc2NyaXB0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lciBkLWdyaWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2Nhci0nICsgaVwiIFtuYW1lXT1cIidjYXInXCIgY2xhc3M9XCJjYXItcmFkaW8gZC1ub25lXCIgYnNOb05vc2NyaXB0IFtjaGVja2VkXT1cImkgPT09IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBmYWRlIGQtZmxleCBmbGV4LXJvdyBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluZGljYXRvcnNcIiBjbGFzcz1cImNhcm91c2VsLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGogPSBpbmRleFwiIFthdHRyLmZvcl09XCInY2FyLScgKyAoaiAlIGltYWdlcy5sZW5ndGgpXCIgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBqXCIgZGF0YS1icy10YXJnZXQ+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSAtIDEgKyBpbWFnZXMubGVuZ3RoKSAlIGltYWdlcy5sZW5ndGgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+UHJldmlvdXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHQgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSArIDEpICUgaW1hZ2VzLmxlbmd0aClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTZXJ2ZXJTaWRlXCI+XG4gICAgPGRpdiAqbmdJZj1cImFuaW1hdGlvbiA9PT0gJ3NsaWRlJ1wiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbXgtYXV0b1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGFpbmVyLmN1cnJlbnRTbGlkZUhlaWdodCQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzOyBsZXQgaSA9IGluZGV4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjb250YWluZXIuZ290byhpKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoY29udGFpbmVyLmltYWdlSW5kZXgkIHwgYXN5bmMpID09PSBpXCIgZGF0YS1icy10YXJnZXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiKGNvbnRhaW5lci5pbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTbGlkZSAnICsgaVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyIG92ZXJmbG93LWhpZGRlbiB0ZXh0LW5vd3JhcCBwZS1ub25lXCI+XG4gICAgICAgICAgICA8ZGl2IGJzU3dpcGVDb250YWluZXIgI2NvbnRhaW5lcj1cImJzU3dpcGVDb250YWluZXJcIiBbbWluaW11bU9mZnNldF09XCI1MFwiIFsoaW1hZ2VJbmRleCldPVwiY3VycmVudEltYWdlSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBkLWlubGluZS1ibG9jayBmbG9hdC1ub25lIHctMTAwIG1lLTAgcGUtYXV0b1wiIGJzU3dpcGUgW29mZnNpZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1hZ2VzLmdldChpbWFnZXMubGVuZ3RoIC0gMSk/Lml0ZW1UZW1wbGF0ZSA/PyBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VzXCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGQtaW5saW5lLWJsb2NrIGZsb2F0LW5vbmUgdy0xMDAgbWUtMCBwZS1hdXRvXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgYnNTd2lwZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGQtaW5saW5lLWJsb2NrIGZsb2F0LW5vbmUgdy0xMDAgbWUtMCBwZS1hdXRvXCIgYnNTd2lwZSBbb2Zmc2lkZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbWFnZXMuZ2V0KDApPy5pdGVtVGVtcGxhdGUgPz8gbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJhbmltYXRpb24gPT09ICdmYWRlJ1wiIGNsYXNzPVwiY2Fyb3VzZWwgZmFkZSBteC1hdXRvXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpbmRpY2F0b3JzXCIgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGxldCBpID0gaW5kZXhcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImN1cnJlbnRJbWFnZUluZGV4ID0gaVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaVwiIGRhdGEtYnMtdGFyZ2V0XG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NsaWRlICcgKyBpXCI+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgQGZhZGVJbk91dCAqbmdJZj1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+ICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBUXRGLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBaUMsVUFBZSxFQUFVLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdUJsRixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNkMsSUFBSSxDQUFDLENBQUM7UUFLdkUsZUFBVSxH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QUs7Z0JBYU4sVUFBVTtzQkFGVCxZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWRlSW5PdXRBbmltYXRpb24gfSBmcm9tICdAbWludHBsYXllci9uZy1hbmltYXRpb25zJztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICdAbWludHBsYXllci9uZy1zd2lwZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSB9IGZyb20gJy4uL2Nhcm91c2VsLWltYWdlL2Nhcm91c2VsLWltYWdlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW0ZhZGVJbk91dEFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQnNDYXJvdXNlbENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55LCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuaXNTZXJ2ZXJTaWRlID0gaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKTtcbiAgICB0aGlzLmltYWdlQ291bnQkID0gdGhpcy5pbWFnZXMkLnBpcGUobWFwKChpbWFnZXMpID0+IGltYWdlcz8ubGVuZ3RoID8/IDApKTtcbiAgICB0aGlzLmZpcnN0SW1hZ2VUZW1wbGF0ZSQgPSB0aGlzLmltYWdlcyQucGlwZShtYXAoKGltYWdlcykgPT4ge1xuICAgICAgaWYgKCFpbWFnZXMpIHJldHVybiBudWxsO1xuICAgICAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBpbWcgPSBpbWFnZXMuZ2V0KDApO1xuICAgICAgaWYgKCFpbWcpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gaW1nLml0ZW1UZW1wbGF0ZTtcbiAgICB9KSk7XG4gICAgdGhpcy5sYXN0SW1hZ2VUZW1wbGF0ZSQgPSB0aGlzLmltYWdlcyQucGlwZShtYXAoKGltYWdlcykgPT4ge1xuICAgICAgaWYgKCFpbWFnZXMpIHJldHVybiBudWxsO1xuICAgICAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICAgICAgXG4gICAgICBjb25zdCBpbWcgPSBpbWFnZXMuZ2V0KGltYWdlcy5sZW5ndGggLSAxKTtcbiAgICAgIGlmICghaW1nKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIGltZy5pdGVtVGVtcGxhdGU7XG4gICAgfSkpO1xuICB9XG4gIFxuICBjb2xvcnMgPSBDb2xvcjtcbiAgaXNTZXJ2ZXJTaWRlOiBib29sZWFuO1xuICBjdXJyZW50SW1hZ2VJbmRleCA9IDA7XG4gIGltYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG4gIGltYWdlQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIGZpcnN0SW1hZ2VUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+O1xuICBsYXN0SW1hZ2VUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+O1xuXG4gIEBJbnB1dCgpIGluZGljYXRvcnMgPSBmYWxzZTtcbiAgQElucHV0KCkga2V5Ym9hcmRFdmVudHMgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHN3aXBlQ29udGFpbmVyITogQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSkpIHNldCBpbWFnZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5pbWFnZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgLy8jcmVnaW9uIEFuaW1hdGlvblxuICBASG9zdEJpbmRpbmcoJ0AuZGlzYWJsZWQnKSBwdWJsaWMgYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2FuaW1hdGlvbjogJ2ZhZGUnIHwgJ3NsaWRlJyA9ICdzbGlkZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYW5pbWF0aW9uKHZhbHVlOiAnZmFkZScgfCAnc2xpZGUnKSB7XG4gICAgdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2FuaW1hdGlvbiA9IHZhbHVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSBmYWxzZSwgMjApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCksIDUwKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFuaW1hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dMZWZ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5BcnJvd1JpZ2h0JywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldjogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmtleWJvYXJkRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGV2LmtleSkge1xuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMucHJldmlvdXNJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICB0aGlzLm5leHRJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91c0ltYWdlKCkge1xuICAgIHN3aXRjaCAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4LS07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IHRoaXMuaW1hZ2VzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbGlkZSc6XG4gICAgICAgIHRoaXMuc3dpcGVDb250YWluZXIucHJldmlvdXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbmV4dEltYWdlKCkge1xuICAgIHN3aXRjaCAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCA8IHRoaXMuaW1hZ2VzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbGlkZSc6XG4gICAgICAgIHRoaXMuc3dpcGVDb250YWluZXIubmV4dCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZXJ2ZXJTaWRlXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsIG14LWF1dG8gbm9zY3JpcHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyIGQtZ3JpZFwiICpuZ0lmPVwiKGltYWdlQ291bnQkIHwgYXN5bmMpIGFzIGltYWdlQ291bnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIChpbWFnZXMkIHwgYXN5bmMpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIFtpZF09XCInY2FyLScgKyBpXCIgW25hbWVdPVwiJ2NhcidcIiBjbGFzcz1cImNhci1yYWRpbyBkLW5vbmVcIiBic05vTm9zY3JpcHQgW2NoZWNrZWRdPVwiaSA9PT0gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGZhZGUgZC1mbGV4IGZsZXgtcm93IGgtMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGxldCBqID0gaW5kZXhcIiBbYXR0ci5mb3JdPVwiJ2Nhci0nICsgKGogJSBpbWFnZUNvdW50KVwiIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0galwiIGRhdGEtYnMtdGFyZ2V0PjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2IGN1cnNvci1wb2ludGVyXCIgW2Zvcl09XCInY2FyLScgKyAoKGkgLSAxICsgaW1hZ2VDb3VudCkgJSBpbWFnZUNvdW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0IGN1cnNvci1wb2ludGVyXCIgW2Zvcl09XCInY2FyLScgKyAoKGkgKyAxKSAlIGltYWdlQ291bnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+TmV4dDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VydmVyU2lkZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJhbmltYXRpb24gPT09ICdzbGlkZSdcIiBjbGFzcz1cImNhcm91c2VsIHNsaWRlIG14LWF1dG9cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImNvbnRhaW5lci5jdXJyZW50U2xpZGVIZWlnaHQkIHwgYXN5bmNcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImluZGljYXRvcnNcIiBjbGFzcz1cImNhcm91c2VsLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGltYWdlIG9mIChpbWFnZXMkIHwgYXN5bmMpOyBsZXQgaSA9IGluZGV4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjb250YWluZXIuZ290byhpKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoY29udGFpbmVyLmltYWdlSW5kZXgkIHwgYXN5bmMpID09PSBpXCIgZGF0YS1icy10YXJnZXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiKGNvbnRhaW5lci5pbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTbGlkZSAnICsgaVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyIG92ZXJmbG93LWhpZGRlbiB0ZXh0LW5vd3JhcCBwZS1ub25lXCI+XG4gICAgICAgICAgICA8ZGl2IGJzU3dpcGVDb250YWluZXIgI2NvbnRhaW5lcj1cImJzU3dpcGVDb250YWluZXJcIiBbbWluaW11bU9mZnNldF09XCI1MFwiIFsoaW1hZ2VJbmRleCldPVwiY3VycmVudEltYWdlSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBkLWlubGluZS1ibG9jayBmbG9hdC1ub25lIHctMTAwIG1lLTAgcGUtYXV0b1wiIGJzU3dpcGUgW29mZnNpZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFzdEltYWdlVGVtcGxhdGUkIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiAoaW1hZ2VzJCB8IGFzeW5jKVwiIGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBkLWlubGluZS1ibG9jayBmbG9hdC1ub25lIHctMTAwIG1lLTAgcGUtYXV0b1wiIFtjbGFzcy5hY3RpdmVdPVwidHJ1ZVwiIGJzU3dpcGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbWFnZS5pdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBkLWlubGluZS1ibG9jayBmbG9hdC1ub25lIHctMTAwIG1lLTAgcGUtYXV0b1wiIGJzU3dpcGUgW29mZnNpZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlyc3RJbWFnZVRlbXBsYXRlJCB8IGFzeW5jXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXZcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInByZXZpb3VzSW1hZ2UoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+UHJldmlvdXM8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJuZXh0SW1hZ2UoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+TmV4dDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImFuaW1hdGlvbiA9PT0gJ2ZhZGUnXCIgY2xhc3M9XCJjYXJvdXNlbCBmYWRlIG14LWF1dG9cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImluZGljYXRvcnNcIiBjbGFzcz1cImNhcm91c2VsLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGltYWdlIG9mIChpbWFnZXMkIHwgYXN5bmMpOyBsZXQgaSA9IGluZGV4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjdXJyZW50SW1hZ2VJbmRleCA9IGlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudEltYWdlSW5kZXggPT09IGlcIiBkYXRhLWJzLXRhcmdldFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJjdXJyZW50SW1hZ2VJbmRleCA9PT0gaSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTbGlkZSAnICsgaVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiAoaW1hZ2VzJCB8IGFzeW5jKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgQGZhZGVJbk91dCAqbmdJZj1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+ICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|