@snabcentr/client-ui 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- package/banner/sc-banner.component.d.ts +56 -32
- package/banner/sc-banner.module.d.ts +3 -1
- package/esm2020/banner/sc-banner.component.mjs +100 -65
- package/esm2020/banner/sc-banner.module.mjs +8 -6
- package/fesm2015/snabcentr-client-ui.mjs +120 -82
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +116 -82
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +2 -1
- package/styles/tailwind/tailwind.scss +24 -4
@@ -1,18 +1,18 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { AfterViewInit, EventEmitter, QueryList, TemplateRef, ElementRef, ChangeDetectorRef } from '@angular/core';
|
2
|
+
import { ScBanner, ScBannerService } from '@snabcentr/client-core';
|
3
|
+
import { Observable, Subject } from 'rxjs';
|
3
4
|
import { ScPxConverter } from '../helpers';
|
5
|
+
import { IntersectionObserverService } from '@ng-web-apis/intersection-observer';
|
4
6
|
import * as i0 from "@angular/core";
|
5
7
|
/**
|
6
8
|
* Баннер с прокруткой переданных {@link TemplateRef} элементов, и баннеров локации.
|
7
9
|
*/
|
8
|
-
export declare class ScBannerComponent implements
|
10
|
+
export declare class ScBannerComponent implements AfterViewInit {
|
9
11
|
private readonly cdr;
|
10
|
-
private bannerService;
|
12
|
+
private readonly bannerService;
|
13
|
+
private readonly entries$;
|
14
|
+
private readonly element;
|
11
15
|
private pxConverter;
|
12
|
-
/**
|
13
|
-
* Список ссылок на элемент представлений шаблонов.
|
14
|
-
*/
|
15
|
-
bannersListRef: QueryList<TemplateRef<any>>;
|
16
16
|
/**
|
17
17
|
* Признак, что необходимо показывать кнопки навигации.
|
18
18
|
*/
|
@@ -40,35 +40,51 @@ export declare class ScBannerComponent implements OnInit {
|
|
40
40
|
/**
|
41
41
|
* Событие нажатия на изображение баннера.
|
42
42
|
*/
|
43
|
-
|
43
|
+
clickBannerEvent: EventEmitter<ScBanner>;
|
44
|
+
/**
|
45
|
+
* Список ссылок на элемент представлений шаблонов.
|
46
|
+
*/
|
47
|
+
bannersListRef: QueryList<TemplateRef<any>>;
|
48
|
+
/**
|
49
|
+
* Ссылка на {@link HTMLVideoElement} элемента отображения видео.
|
50
|
+
*/
|
51
|
+
private videoRef;
|
44
52
|
/**
|
45
53
|
* Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
|
46
54
|
*/
|
47
|
-
get isHidden()
|
55
|
+
private get isHidden();
|
48
56
|
/**
|
49
|
-
*
|
57
|
+
* Идентификатор текущего баннера.
|
50
58
|
*/
|
51
|
-
|
59
|
+
currentBannerId: number;
|
52
60
|
/**
|
53
|
-
*
|
61
|
+
* {@link Subject} изменения состояния таймера.
|
54
62
|
*/
|
55
|
-
|
63
|
+
readonly toggleTimer$: Subject<boolean>;
|
56
64
|
/**
|
57
|
-
*
|
65
|
+
* Признак, что необходимо показывать кнопки старта видео баннера.
|
58
66
|
*/
|
59
|
-
|
67
|
+
showPlayBtn: boolean;
|
60
68
|
/**
|
61
|
-
*
|
69
|
+
* {@link Observable} Обновления списка баннеров.
|
62
70
|
*/
|
63
|
-
|
71
|
+
readonly banners$: Observable<ScBanner[]>;
|
64
72
|
/**
|
65
73
|
* Список баннеров.
|
66
74
|
*/
|
67
|
-
banners
|
75
|
+
banners?: ScBanner[];
|
76
|
+
/**
|
77
|
+
* Свойство, от которого зависит высота `:host` компонента.
|
78
|
+
*/
|
79
|
+
height: string;
|
80
|
+
/**
|
81
|
+
* Свойство, от которого зависит ширина `:host` компонента.
|
82
|
+
*/
|
83
|
+
width: string;
|
68
84
|
/**
|
69
|
-
*
|
85
|
+
* Свойство, от которого зависит соотношение `:host` компонента.
|
70
86
|
*/
|
71
|
-
|
87
|
+
aspectRatio: string;
|
72
88
|
/**
|
73
89
|
* Инициализирует экземпляр класса {@link ScBannerComponent}.
|
74
90
|
*
|
@@ -76,31 +92,39 @@ export declare class ScBannerComponent implements OnInit {
|
|
76
92
|
* @param bannerService Сервис для работы с баннерами.
|
77
93
|
* @param pxConverter Класс хэлпер для конвертации пикселей.
|
78
94
|
*/
|
79
|
-
constructor(cdr: ChangeDetectorRef, bannerService: ScBannerService, pxConverter: ScPxConverter);
|
95
|
+
constructor(cdr: ChangeDetectorRef, bannerService: ScBannerService, entries$: IntersectionObserverService, element: ElementRef<Element>, pxConverter: ScPxConverter);
|
80
96
|
/** @inheritDoc */
|
81
|
-
|
97
|
+
ngAfterViewInit(): void;
|
82
98
|
/**
|
83
|
-
*
|
84
|
-
*
|
85
|
-
* @param banner Баннер, по ссылке которого совершён переход.
|
86
|
-
*/
|
87
|
-
onClick(banner: ScBanner): void;
|
88
|
-
/**
|
89
|
-
* Переключиться на предыдущий баннер.
|
99
|
+
* Переключает на предыдущий баннер.
|
90
100
|
*/
|
91
101
|
onPreviousBanner(): void;
|
92
102
|
/**
|
93
|
-
*
|
103
|
+
* Переключает на следующий баннер.
|
94
104
|
*/
|
95
105
|
onNextBanner(): void;
|
106
|
+
/**
|
107
|
+
* Переключает на следующий баннер.
|
108
|
+
*/
|
109
|
+
onEndedVideo(): void;
|
110
|
+
/**
|
111
|
+
* Обработчик нажатия на баннер, генерирующий событие {@link clickBannerImgEvent}.
|
112
|
+
*
|
113
|
+
* @param banner Баннер, по ссылке которого совершён переход.
|
114
|
+
*/
|
115
|
+
onClick(banner: ScBanner): void;
|
96
116
|
/**
|
97
117
|
* Обработчик события mouseenter.
|
118
|
+
*
|
119
|
+
* @private
|
98
120
|
*/
|
99
121
|
private mouseEnterHandler;
|
100
122
|
/**
|
101
123
|
* Обработчик события mouseleave.
|
124
|
+
*
|
125
|
+
* @private
|
102
126
|
*/
|
103
127
|
private mouseLeaveHandler;
|
104
128
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScBannerComponent, never>;
|
105
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScBannerComponent, "sc-banner", never, { "navigateButton": "navigateButton"; "playerInterval": "playerInterval"; "disabled": "disabled"; "bannerLocation": "bannerLocation"; "resizable": "resizable"; }, { "loadBannersEvent": "loadBannersEvent"; "
|
129
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScBannerComponent, "sc-banner", never, { "navigateButton": "navigateButton"; "playerInterval": "playerInterval"; "disabled": "disabled"; "bannerLocation": "bannerLocation"; "resizable": "resizable"; }, { "loadBannersEvent": "loadBannersEvent"; "clickBannerEvent": "clickBannerEvent"; }, ["bannersListRef"], never, false>;
|
106
130
|
}
|
@@ -5,11 +5,13 @@ import * as i3 from "@angular/router";
|
|
5
5
|
import * as i4 from "@taiga-ui/core";
|
6
6
|
import * as i5 from "@angular/material/core";
|
7
7
|
import * as i6 from "@taiga-ui/kit";
|
8
|
+
import * as i7 from "@ng-web-apis/intersection-observer";
|
9
|
+
import * as i8 from "@taiga-ui/cdk";
|
8
10
|
/**
|
9
11
|
* Модуль баннеров.
|
10
12
|
*/
|
11
13
|
export declare class ScBannerModule {
|
12
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScBannerModule, never>;
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScBannerModule, [typeof i1.ScBannerComponent], [typeof i2.CommonModule, typeof i3.RouterModule, typeof i4.TuiButtonModule, typeof i5.MatRippleModule, typeof i6.TuiCarouselModule, typeof
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScBannerModule, [typeof i1.ScBannerComponent], [typeof i2.CommonModule, typeof i3.RouterModule, typeof i4.TuiButtonModule, typeof i5.MatRippleModule, typeof i6.TuiCarouselModule, typeof i4.TuiModeModule, typeof i4.TuiLoaderModule, typeof i7.IntersectionObserverModule, typeof i8.TuiLetModule], [typeof i1.ScBannerComponent]>;
|
14
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<ScBannerModule>;
|
15
17
|
}
|
@@ -1,14 +1,18 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import { ChangeDetectionStrategy,
|
2
|
+
import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, ContentChildren, ViewChild, ElementRef, HostBinding, Inject, HostListener, } from '@angular/core';
|
3
|
+
import { map, tap, shareReplay, filter, switchMap, interval, takeUntil, Subject } from 'rxjs';
|
3
4
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
4
|
-
import {
|
5
|
+
import { IntersectionObserverService } from '@ng-web-apis/intersection-observer';
|
6
|
+
import { tuiFadeIn } from '@taiga-ui/core';
|
5
7
|
import * as i0 from "@angular/core";
|
6
8
|
import * as i1 from "@snabcentr/client-core";
|
7
9
|
import * as i2 from "../helpers";
|
8
10
|
import * as i3 from "@angular/common";
|
9
11
|
import * as i4 from "@taiga-ui/core";
|
10
|
-
import * as i5 from "@
|
11
|
-
import * as i6 from "@taiga-ui/
|
12
|
+
import * as i5 from "@angular/material/core";
|
13
|
+
import * as i6 from "@taiga-ui/kit";
|
14
|
+
import * as i7 from "@taiga-ui/cdk";
|
15
|
+
import * as i8 from "@ng-web-apis/intersection-observer";
|
12
16
|
/**
|
13
17
|
* Баннер с прокруткой переданных {@link TemplateRef} элементов, и баннеров локации.
|
14
18
|
*/
|
@@ -20,9 +24,11 @@ let ScBannerComponent = class ScBannerComponent {
|
|
20
24
|
* @param bannerService Сервис для работы с баннерами.
|
21
25
|
* @param pxConverter Класс хэлпер для конвертации пикселей.
|
22
26
|
*/
|
23
|
-
constructor(cdr, bannerService, pxConverter) {
|
27
|
+
constructor(cdr, bannerService, entries$, element, pxConverter) {
|
24
28
|
this.cdr = cdr;
|
25
29
|
this.bannerService = bannerService;
|
30
|
+
this.entries$ = entries$;
|
31
|
+
this.element = element;
|
26
32
|
this.pxConverter = pxConverter;
|
27
33
|
/**
|
28
34
|
* Признак, что необходимо показывать кнопки навигации.
|
@@ -31,7 +37,7 @@ let ScBannerComponent = class ScBannerComponent {
|
|
31
37
|
/**
|
32
38
|
* Интервал показа слайдов в миллисекундах.
|
33
39
|
*/
|
34
|
-
this.playerInterval =
|
40
|
+
this.playerInterval = 5000;
|
35
41
|
/**
|
36
42
|
* Признак, что прокрутка выключена.
|
37
43
|
*/
|
@@ -47,111 +53,134 @@ let ScBannerComponent = class ScBannerComponent {
|
|
47
53
|
/**
|
48
54
|
* Событие нажатия на изображение баннера.
|
49
55
|
*/
|
50
|
-
this.
|
56
|
+
this.clickBannerEvent = new EventEmitter();
|
51
57
|
/**
|
52
|
-
*
|
58
|
+
* Идентификатор текущего баннера.
|
53
59
|
*/
|
54
|
-
this.
|
60
|
+
this.currentBannerId = 0;
|
55
61
|
/**
|
56
|
-
*
|
62
|
+
* {@link Subject} изменения состояния таймера.
|
57
63
|
*/
|
58
|
-
this.
|
64
|
+
this.toggleTimer$ = new Subject();
|
59
65
|
/**
|
60
|
-
*
|
66
|
+
* Признак, что необходимо показывать кнопки старта видео баннера.
|
61
67
|
*/
|
62
|
-
this.
|
68
|
+
this.showPlayBtn = false;
|
63
69
|
/**
|
64
|
-
*
|
70
|
+
* {@link Observable} Обновления списка баннеров.
|
65
71
|
*/
|
66
|
-
this.
|
72
|
+
this.banners$ = this.bannerService.banners$.pipe(map((banners) => banners.filter((banner) => banner.location === this.bannerLocation).reverse()), tap((banners) => {
|
73
|
+
if (banners.length) {
|
74
|
+
if (this.resizable) {
|
75
|
+
this.width = `100%`;
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
this.height = `${this.pxConverter.pxToRem(banners[0].height)}rem`;
|
79
|
+
this.width = `${this.pxConverter.pxToRem(banners[0].width)}rem`;
|
80
|
+
}
|
81
|
+
this.aspectRatio = `${banners[0].width} / ${banners[0].height}`;
|
82
|
+
this.banners = banners;
|
83
|
+
this.toggleTimer$.next(true);
|
84
|
+
}
|
85
|
+
this.loadBannersEvent.emit(banners.length);
|
86
|
+
}), shareReplay(1));
|
67
87
|
/**
|
68
88
|
* Список баннеров.
|
69
89
|
*/
|
70
90
|
this.banners = [];
|
71
91
|
/**
|
72
|
-
*
|
92
|
+
* Свойство, от которого зависит высота `:host` компонента.
|
73
93
|
*/
|
74
|
-
this.
|
94
|
+
this.height = 'auto';
|
95
|
+
/**
|
96
|
+
* Свойство, от которого зависит ширина `:host` компонента.
|
97
|
+
*/
|
98
|
+
this.width = '';
|
99
|
+
/**
|
100
|
+
* Свойство, от которого зависит соотношение `:host` компонента.
|
101
|
+
*/
|
102
|
+
this.aspectRatio = '';
|
75
103
|
/**
|
76
104
|
* Обработчик события mouseenter.
|
105
|
+
*
|
106
|
+
* @private
|
77
107
|
*/
|
78
|
-
this.mouseEnterHandler = () =>
|
108
|
+
this.mouseEnterHandler = () => this.toggleTimer$.next(false);
|
79
109
|
/**
|
80
110
|
* Обработчик события mouseleave.
|
111
|
+
*
|
112
|
+
* @private
|
81
113
|
*/
|
82
|
-
this.mouseLeaveHandler = () =>
|
114
|
+
this.mouseLeaveHandler = () => this.toggleTimer$.next(true);
|
83
115
|
}
|
84
116
|
/**
|
85
117
|
* Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
|
86
118
|
*/
|
87
119
|
get isHidden() {
|
88
|
-
return this.bannersListRef.length + this.banners.length === 0;
|
120
|
+
return !this.banners || this.bannersListRef.length + this.banners.length === 0;
|
89
121
|
}
|
90
122
|
/** @inheritDoc */
|
91
|
-
|
92
|
-
|
93
|
-
.pipe(filter(() => !this.disabled &&
|
123
|
+
ngAfterViewInit() {
|
124
|
+
this.toggleTimer$
|
125
|
+
.pipe(filter((toggle) => toggle), switchMap(() => interval(this.playerInterval).pipe(takeUntil(this.toggleTimer$))), filter(() => !this.disabled && (this.banners?.[this.currentBannerId]?.mediaType === 'image' || this.showPlayBtn)), untilDestroyed(this))
|
94
126
|
.subscribe(() => this.onNextBanner());
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
if (banners.length) {
|
101
|
-
if (this.resizable) {
|
102
|
-
this.width = `100%`;
|
103
|
-
}
|
104
|
-
else {
|
105
|
-
this.height = `${this.pxConverter.pxToRem(banners[0].height)}rem`;
|
106
|
-
this.width = `${this.pxConverter.pxToRem(banners[0].width)}rem`;
|
107
|
-
}
|
108
|
-
this.aspectRatio = `${banners[0].width} / ${banners[0].height}`;
|
109
|
-
}
|
110
|
-
this.loadBannersEvent.emit(this.banners.length);
|
111
|
-
this.cdr.markForCheck();
|
112
|
-
});
|
113
|
-
}
|
127
|
+
// Отслеживание пересечения компонента с экраном пользователя.
|
128
|
+
// Если баннера не находится в поле видимости пользователя, то он перестаёт переключатся, а видео останавливается.
|
129
|
+
this.entries$.pipe(map((entries) => entries.find((item) => item.target === this.element.nativeElement))).subscribe((entry) => {
|
130
|
+
this.toggleTimer$.next(!!entry?.isIntersecting);
|
131
|
+
});
|
114
132
|
}
|
115
133
|
/**
|
116
|
-
*
|
117
|
-
*
|
118
|
-
* @param banner Баннер, по ссылке которого совершён переход.
|
119
|
-
*/
|
120
|
-
onClick(banner) {
|
121
|
-
if (banner.url) {
|
122
|
-
this.clickBannerImgEvent.emit(banner);
|
123
|
-
}
|
124
|
-
}
|
125
|
-
/**
|
126
|
-
* Переключиться на предыдущий баннер.
|
134
|
+
* Переключает на предыдущий баннер.
|
127
135
|
*/
|
128
136
|
onPreviousBanner() {
|
129
137
|
const previous = this.currentBannerId - 1;
|
130
|
-
this.currentBannerId = previous < 0 ? this.bannersListRef.length + this.banners
|
138
|
+
this.currentBannerId = previous < 0 ? this.bannersListRef.length + (this.banners?.length ?? 0) - 1 : previous;
|
131
139
|
this.cdr.markForCheck();
|
132
140
|
}
|
133
141
|
/**
|
134
|
-
*
|
142
|
+
* Переключает на следующий баннер.
|
135
143
|
*/
|
136
144
|
onNextBanner() {
|
137
145
|
const next = this.currentBannerId + 1;
|
138
|
-
this.currentBannerId = next === this.bannersListRef.length + this.banners
|
146
|
+
this.currentBannerId = next === this.bannersListRef.length + (this.banners?.length ?? 0) ? 0 : next;
|
139
147
|
this.cdr.markForCheck();
|
140
148
|
}
|
149
|
+
/**
|
150
|
+
* Переключает на следующий баннер.
|
151
|
+
*/
|
152
|
+
onEndedVideo() {
|
153
|
+
this.onNextBanner();
|
154
|
+
this.toggleTimer$.next(true);
|
155
|
+
this.showPlayBtn = true;
|
156
|
+
}
|
157
|
+
/**
|
158
|
+
* Обработчик нажатия на баннер, генерирующий событие {@link clickBannerImgEvent}.
|
159
|
+
*
|
160
|
+
* @param banner Баннер, по ссылке которого совершён переход.
|
161
|
+
*/
|
162
|
+
onClick(banner) {
|
163
|
+
if (banner.url) {
|
164
|
+
this.clickBannerEvent.emit(banner);
|
165
|
+
}
|
166
|
+
}
|
141
167
|
};
|
142
|
-
ScBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScBannerService }, { token: i2.ScPxConverter }], target: i0.ɵɵFactoryTarget.Component });
|
143
|
-
ScBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScBannerComponent, selector: "sc-banner", inputs: { navigateButton: "navigateButton", playerInterval: "playerInterval", disabled: "disabled", bannerLocation: "bannerLocation", resizable: "resizable" }, outputs: { loadBannersEvent: "loadBannersEvent",
|
168
|
+
ScBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScBannerService }, { token: IntersectionObserverService }, { token: ElementRef }, { token: i2.ScPxConverter }], target: i0.ɵɵFactoryTarget.Component });
|
169
|
+
ScBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScBannerComponent, selector: "sc-banner", inputs: { navigateButton: "navigateButton", playerInterval: "playerInterval", disabled: "disabled", bannerLocation: "bannerLocation", resizable: "resizable" }, outputs: { loadBannersEvent: "loadBannersEvent", clickBannerEvent: "clickBannerEvent" }, host: { listeners: { "mouseenter": "mouseEnterHandler()", "mouseleave": "mouseLeaveHandler()" }, properties: { "class.!hidden": "this.isHidden", "style.height": "this.height", "style.width": "this.width", "style.aspect-ratio": "this.aspectRatio" } }, providers: [IntersectionObserverService], queries: [{ propertyName: "bannersListRef", predicate: ["banner"] }], viewQueries: [{ propertyName: "videoRef", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<ng-container *tuiLet=\"banners$ | async\">\n <tui-carousel class=\"bg-white w-full h-full shadow-sc-2 rounded-xl overflow-hidden\" [(index)]=\"currentBannerId\">\n <ng-container *ngFor=\"let banner of banners; let index = index\">\n <a\n *tuiItem\n (click)=\"onClick(banner)\"\n [style.aspect-ratio]=\"aspectRatio\"\n [attr.href]=\"banner.url ? banner.url : null\"\n target=\"_blank\"\n [title]=\"banner.title\"\n class=\"relative\"\n >\n <ng-container [ngSwitch]=\"banner.mediaType\">\n <ng-container *ngSwitchCase=\"'video'\">\n <video\n #videoPlayer\n (suspend)=\"showPlayBtn = true\"\n (play)=\"showPlayBtn = false\"\n [src]=\"banner.mediaFile\"\n (ended)=\"onEndedVideo()\"\n (mouseover)=\"videoPlayer.pause()\"\n (mouseout)=\"videoPlayer.play()\"\n class=\"object-cover h-full\"\n muted\n autoplay\n ></video>\n <button\n *ngIf=\"showPlayBtn\"\n tuiIconButton\n [@tuiFadeIn]=\"200\"\n matRipple\n (click)=\"$event.preventDefault(); videoPlayer.play()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"!absolute left-8 bottom-4\"\n >\n <i class=\"icon-refresh text-black\"></i>\n </button>\n </ng-container>\n\n <img *ngSwitchCase=\"'image'\" [src]=\"banner.mediaFile\" alt=\"\u0411\u0430\u043D\u043D\u0435\u0440\" class=\"object-cover h-full\" />\n </ng-container>\n </a>\n </ng-container>\n <ng-container *ngFor=\"let item of bannersListRef\">\n <div *tuiItem [style.height]=\"height\" [style.width]=\"width\" [style.aspect-ratio]=\"aspectRatio\" class=\"overflow-hidden\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n </ng-container>\n </tui-carousel>\n</ng-container>\n<div *ngIf=\"navigateButton && !disabled && this.banners && (this.bannersListRef.length + this.banners.length) > 1\" tuiMode=\"onLight\" class=\"flex items-center\">\n <button tuiIconButton icon=\"tuiIconChevronLeftLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onPreviousBanner()\" class=\"!absolute left-2\"></button>\n <button tuiIconButton icon=\"tuiIconChevronRightLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onNextBanner()\" class=\"!absolute right-2\"></button>\n</div>\n", styles: [":host{--tui-carousel-padding: 0;display:flex;position:relative}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i6.TuiCarouselComponent, selector: "tui-carousel", inputs: ["draggable", "itemsCount", "index"], outputs: ["indexChange"] }, { kind: "directive", type: i6.TuiCarouselDirective, selector: "tui-carousel", inputs: ["duration", "index"] }, { kind: "directive", type: i7.TuiItemDirective, selector: "[tuiItem]" }, { kind: "directive", type: i4.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "directive", type: i7.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], animations: [tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
144
170
|
ScBannerComponent = __decorate([
|
145
171
|
UntilDestroy({ checkProperties: true })
|
146
172
|
], ScBannerComponent);
|
147
173
|
export { ScBannerComponent };
|
148
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerComponent, decorators: [{
|
149
175
|
type: Component,
|
150
|
-
args: [{ selector: 'sc-banner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<
|
151
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ScBannerService }, { type:
|
152
|
-
|
153
|
-
|
154
|
-
|
176
|
+
args: [{ selector: 'sc-banner', changeDetection: ChangeDetectionStrategy.OnPush, providers: [IntersectionObserverService], animations: [tuiFadeIn], template: "<ng-container *tuiLet=\"banners$ | async\">\n <tui-carousel class=\"bg-white w-full h-full shadow-sc-2 rounded-xl overflow-hidden\" [(index)]=\"currentBannerId\">\n <ng-container *ngFor=\"let banner of banners; let index = index\">\n <a\n *tuiItem\n (click)=\"onClick(banner)\"\n [style.aspect-ratio]=\"aspectRatio\"\n [attr.href]=\"banner.url ? banner.url : null\"\n target=\"_blank\"\n [title]=\"banner.title\"\n class=\"relative\"\n >\n <ng-container [ngSwitch]=\"banner.mediaType\">\n <ng-container *ngSwitchCase=\"'video'\">\n <video\n #videoPlayer\n (suspend)=\"showPlayBtn = true\"\n (play)=\"showPlayBtn = false\"\n [src]=\"banner.mediaFile\"\n (ended)=\"onEndedVideo()\"\n (mouseover)=\"videoPlayer.pause()\"\n (mouseout)=\"videoPlayer.play()\"\n class=\"object-cover h-full\"\n muted\n autoplay\n ></video>\n <button\n *ngIf=\"showPlayBtn\"\n tuiIconButton\n [@tuiFadeIn]=\"200\"\n matRipple\n (click)=\"$event.preventDefault(); videoPlayer.play()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"!absolute left-8 bottom-4\"\n >\n <i class=\"icon-refresh text-black\"></i>\n </button>\n </ng-container>\n\n <img *ngSwitchCase=\"'image'\" [src]=\"banner.mediaFile\" alt=\"\u0411\u0430\u043D\u043D\u0435\u0440\" class=\"object-cover h-full\" />\n </ng-container>\n </a>\n </ng-container>\n <ng-container *ngFor=\"let item of bannersListRef\">\n <div *tuiItem [style.height]=\"height\" [style.width]=\"width\" [style.aspect-ratio]=\"aspectRatio\" class=\"overflow-hidden\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n </ng-container>\n </tui-carousel>\n</ng-container>\n<div *ngIf=\"navigateButton && !disabled && this.banners && (this.bannersListRef.length + this.banners.length) > 1\" tuiMode=\"onLight\" class=\"flex items-center\">\n <button tuiIconButton icon=\"tuiIconChevronLeftLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onPreviousBanner()\" class=\"!absolute left-2\"></button>\n <button tuiIconButton icon=\"tuiIconChevronRightLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onNextBanner()\" class=\"!absolute right-2\"></button>\n</div>\n", styles: [":host{--tui-carousel-padding: 0;display:flex;position:relative}\n"] }]
|
177
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ScBannerService }, { type: i8.IntersectionObserverService, decorators: [{
|
178
|
+
type: Inject,
|
179
|
+
args: [IntersectionObserverService]
|
180
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
181
|
+
type: Inject,
|
182
|
+
args: [ElementRef]
|
183
|
+
}] }, { type: i2.ScPxConverter }]; }, propDecorators: { navigateButton: [{
|
155
184
|
type: Input
|
156
185
|
}], playerInterval: [{
|
157
186
|
type: Input
|
@@ -163,8 +192,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
163
192
|
type: Input
|
164
193
|
}], loadBannersEvent: [{
|
165
194
|
type: Output
|
166
|
-
}],
|
195
|
+
}], clickBannerEvent: [{
|
167
196
|
type: Output
|
197
|
+
}], bannersListRef: [{
|
198
|
+
type: ContentChildren,
|
199
|
+
args: ['banner']
|
200
|
+
}], videoRef: [{
|
201
|
+
type: ViewChild,
|
202
|
+
args: ['videoPlayer']
|
168
203
|
}], isHidden: [{
|
169
204
|
type: HostBinding,
|
170
205
|
args: ['class.!hidden']
|
@@ -184,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
184
219
|
type: HostListener,
|
185
220
|
args: ['mouseleave']
|
186
221
|
}] } });
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLGVBQWUsRUFDZixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFJN0M7O0dBRUc7QUFRSSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQTBGMUI7Ozs7OztPQU1HO0lBQ0gsWUFBb0MsR0FBc0IsRUFBVSxhQUE4QixFQUFVLFdBQTBCO1FBQWxHLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUExRnRJOztXQUVHO1FBRUksbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFdEM7O1dBRUc7UUFFSSxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUVyQzs7V0FFRztRQUVJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRakM7O1dBRUc7UUFFSSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRWpDOztXQUVHO1FBRUkscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFM0U7O1dBRUc7UUFFSSx3QkFBbUIsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQVVsRjs7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QU07Z0JBT0EsbUJBQW1CO3NCQUR6QixNQUFNO2dCQU9JLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsZUFBZTtnQkFTckIsTUFBTTtzQkFEWixXQUFXO3VCQUFDLGNBQWM7Z0JBT3BCLEtBQUs7c0JBRFgsV0FBVzt1QkFBQyxhQUFhO2dCQU9uQixXQUFXO3NCQURqQixXQUFXO3VCQUFDLG9CQUFvQjtnQkErRnpCLGlCQUFpQjtzQkFEeEIsWUFBWTt1QkFBQyxZQUFZO2dCQU9sQixpQkFBaUI7c0JBRHhCLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZmlsdGVyLCBpbnRlcnZhbCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY0Jhbm5lclNlcnZpY2UsIFNjQmFubmVyIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBTY1B4Q29udmVydGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbi8qKlxuICog0JHQsNC90L3QtdGAINGBINC/0YDQvtC60YDRg9GC0LrQvtC5INC/0LXRgNC10LTQsNC90L3Ri9GFIHtAbGluayBUZW1wbGF0ZVJlZn0g0Y3Qu9C10LzQtdC90YLQvtCyLCDQuCDQsdCw0L3QvdC10YDQvtCyINC70L7QutCw0YbQuNC4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWJhbm5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWJhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2MtYmFubmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuQFVudGlsRGVzdHJveSh7IGNoZWNrUHJvcGVydGllczogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFNjQmFubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0Y3Qu9C10LzQtdC90YIg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Lkg0YjQsNCx0LvQvtC90L7Qsi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKCdiYW5uZXInKVxuICAgIHB1YmxpYyBiYW5uZXJzTGlzdFJlZjogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQv9C+0LrQsNC30YvQstCw0YLRjCDQutC90L7Qv9C60Lgg0L3QsNCy0LjQs9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hdmlnYXRlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqINCY0L3RgtC10YDQstCw0Lsg0L/QvtC60LDQt9CwINGB0LvQsNC50LTQvtCyINCyINC80LjQu9C70LjRgdC10LrRg9C90LTQsNGFLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYXllckludGVydmFsOiBudW1iZXIgPSA4MDAwO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQv9GA0L7QutGA0YPRgtC60LAg0LLRi9C60LvRjtGH0LXQvdCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQnNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC1INCx0LDQvdC90LXRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhbm5lckxvY2F0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQutC+0LzQv9C+0L3QtdC90YIg0LTQvtC70LbQtdC9INGA0LDRgdGC0Y/Qs9C40LLQsNGC0YzRgdGPLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc2l6YWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQt9Cw0LPRgNGD0LfQutC4INCx0LDQvdC90LXRgNC+0LIg0YEg0LrQvtC70LjRh9C10YHRgtCy0L7QvCDQv9C+0LvRg9GH0LXQvdC90YvRhSDQsdCw0L3QvdC10YDQvtCyLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBsb2FkQmFubmVyc0V2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1INCx0LDQvdC90LXRgNCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0Jhbm5lckltZ0V2ZW50OiBFdmVudEVtaXR0ZXI8U2NCYW5uZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0Jhbm5lcj4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDQvdCw0LvQuNGH0LjQtSDQutC70LDRgdGB0LAgYCFoaWRkZW5gINGDIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy4haGlkZGVuJylcbiAgICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5iYW5uZXJzTGlzdFJlZi5sZW5ndGggKyB0aGlzLmJhbm5lcnMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDQstGL0YHQvtGC0LAgYDpob3N0YCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgcHVibGljIGhlaWdodDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDQodCy0L7QudGB0YLQstC+LCDQvtGCINC60L7RgtC+0YDQvtCz0L4g0LfQsNCy0LjRgdC40YIg0YjQuNGA0LjQvdCwIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXG4gICAgcHVibGljIHdpZHRoOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDRgdC+0L7RgtC90L7RiNC10L3QuNC1IGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5hc3BlY3QtcmF0aW8nKVxuICAgIHB1YmxpYyBhc3BlY3RSYXRpbzogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgtC10LrRg9GJ0LXQs9C+INCx0LDQvdC90LXRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW50QmFubmVySWQ6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LHQsNC90L3QtdGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgYmFubmVyczogU2NCYW5uZXJbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRg9C60LDQt9Cw0YLQtdC70Ywg0LzRi9GI0Lgg0L3QsNGF0L7QtNC40YLRgdGPINC90LDQtCDQsdCw0L3QvdC10YDQvtC8LlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNNb3VzZU92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NCYW5uZXJDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqIEBwYXJhbSBiYW5uZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINCx0LDQvdC90LXRgNCw0LzQuC5cbiAgICAgKiBAcGFyYW0gcHhDb252ZXJ0ZXIg0JrQu9Cw0YHRgSDRhdGN0LvQv9C10YAg0LTQu9GPINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0L/QuNC60YHQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGJhbm5lclNlcnZpY2U6IFNjQmFubmVyU2VydmljZSwgcHJpdmF0ZSBweENvbnZlcnRlcjogU2NQeENvbnZlcnRlcikge31cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaW50ZXJ2YWwodGhpcy5wbGF5ZXJJbnRlcnZhbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5pc01vdXNlT3ZlciksXG4gICAgICAgICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbk5leHRCYW5uZXIoKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuYmFubmVyTG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYmFubmVyU2VydmljZS5iYW5uZXJzJFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGJhbm5lcnMpID0+IGJhbm5lcnMuZmlsdGVyKChiYW5uZXIpID0+IGJhbm5lci5sb2NhdGlvbiA9PT0gdGhpcy5iYW5uZXJMb2NhdGlvbikpLFxuICAgICAgICAgICAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChiYW5uZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFubmVycyA9IGJhbm5lcnM7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJhbm5lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXNpemFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gYDEwMCVgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhlaWdodCA9IGAke3RoaXMucHhDb252ZXJ0ZXIucHhUb1JlbShiYW5uZXJzWzBdLmhlaWdodCl9cmVtYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gYCR7dGhpcy5weENvbnZlcnRlci5weFRvUmVtKGJhbm5lcnNbMF0ud2lkdGgpfXJlbWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNwZWN0UmF0aW8gPSBgJHtiYW5uZXJzWzBdLndpZHRofSAvICR7YmFubmVyc1swXS5oZWlnaHR9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEJhbm5lcnNFdmVudC5lbWl0KHRoaXMuYmFubmVycy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INC90LDQttCw0YLQuNGPINC90LAg0LHQsNC90L3QtdGALCDQs9C10L3QtdGA0LjRgNGD0Y7RidC40Lkg0YHQvtCx0YvRgtC40LUge0BsaW5rIGNsaWNrQmFubmVySW1nRXZlbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGJhbm5lciDQkdCw0L3QvdC10YAsINC/0L4g0YHRgdGL0LvQutC1INC60L7RgtC+0YDQvtCz0L4g0YHQvtCy0LXRgNGI0ZHQvSDQv9C10YDQtdGF0L7QtC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25DbGljayhiYW5uZXI6IFNjQmFubmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChiYW5uZXIudXJsKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQmFubmVySW1nRXZlbnQuZW1pdChiYW5uZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXQutC70Y7Rh9C40YLRjNGB0Y8g0L3QsCDQv9GA0LXQtNGL0LTRg9GJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uUHJldmlvdXNCYW5uZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRCYW5uZXJJZCAtIDE7XG4gICAgICAgIHRoaXMuY3VycmVudEJhbm5lcklkID0gcHJldmlvdXMgPCAwID8gdGhpcy5iYW5uZXJzTGlzdFJlZi5sZW5ndGggKyB0aGlzLmJhbm5lcnMubGVuZ3RoIC0gMSA6IHByZXZpb3VzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINGB0LvQtdC00YPRjtGJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uTmV4dEJhbm5lcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dDogbnVtYmVyID0gdGhpcy5jdXJyZW50QmFubmVySWQgKyAxO1xuICAgICAgICB0aGlzLmN1cnJlbnRCYW5uZXJJZCA9IG5leHQgPT09IHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aCA/IDAgOiBuZXh0O1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyBtb3VzZWVudGVyLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICAgIHByaXZhdGUgbW91c2VFbnRlckhhbmRsZXI6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiAodGhpcy5pc01vdXNlT3ZlciA9IHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0YHQvtCx0YvRgtC40Y8gbW91c2VsZWF2ZS5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwcml2YXRlIG1vdXNlTGVhdmVIYW5kbGVyOiAoKSA9PiBib29sZWFuID0gKCkgPT4gKHRoaXMuaXNNb3VzZU92ZXIgPSBmYWxzZSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZVwiIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiYXNwZWN0UmF0aW9cIj5cbiAgICA8dHVpLWNhcm91c2VsIGNsYXNzPVwiYmctd2hpdGUgdy1mdWxsIHNoYWRvdy1zYy0yICFhYnNvbHV0ZSByb3VuZGVkIG92ZXJmbG93LWhpZGRlblwiIFsoaW5kZXgpXT1cImN1cnJlbnRCYW5uZXJJZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJhbm5lcnNMaXN0UmVmOyBpbmRleCBhcyBpbmRleFwiPlxuICAgICAgICAgICAgPGRpdiAqdHVpSXRlbT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYmFubmVyIG9mIGJhbm5lcnM7IGluZGV4IGFzIGluZGV4XCI+XG4gICAgICAgICAgICA8YSAqdHVpSXRlbSAoY2xpY2spPVwib25DbGljayhiYW5uZXIpXCIgW2F0dHIuaHJlZl09XCJiYW5uZXIudXJsID8gYmFubmVyLnVybCA6IG51bGxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBbdGl0bGVdPVwiYmFubmVyLnRpdGxlXCIgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiYmFubmVyLm1lZGlhRmlsZVwiIGFsdD1cItCR0LDQvdC90LXRgFwiIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiYXNwZWN0UmF0aW9cIiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgb2JqZWN0LWNvdmVyIGgtZnVsbCB3LWZ1bGxcIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3R1aS1jYXJvdXNlbD5cbiAgICA8ZGl2ICpuZ0lmPVwibmF2aWdhdGVCdXR0b24gJiYgIWRpc2FibGVkICYmICh0aGlzLmJhbm5lcnNMaXN0UmVmLmxlbmd0aCArIHRoaXMuYmFubmVycy5sZW5ndGgpID4gMVwiIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBncm93IGp1c3RpZnktYmV0d2VlbiBwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIGljb249XCJ0dWlJY29uQ2hldnJvbkxlZnRMYXJnZVwiIHR1aU1vZGU9XCJvbkxpZ2h0XCIgc2l6ZT1cIm1cIiBzaGFwZT1cInJvdW5kZWRcIiBhcHBlYXJhbmNlPVwiZmxhdFwiIChjbGljayk9XCJvblByZXZpb3VzQmFubmVyKClcIiBjbGFzcz1cImFycm93LWJ0blwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR1aUljb25CdXR0b24gaWNvbj1cInR1aUljb25DaGV2cm9uUmlnaHRMYXJnZVwiIHR1aU1vZGU9XCJvbkxpZ2h0XCIgc2l6ZT1cIm1cIiBzaGFwZT1cInJvdW5kZWRcIiBhcHBlYXJhbmNlPVwiZmxhdFwiIChjbGljayk9XCJvbk5leHRCYW5uZXIoKVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjx0dWktcGFnaW5hdGlvblxuICAgICpuZ0lmPVwibmF2aWdhdGVCdXR0b24gJiYgIWRpc2FibGVkICYmICh0aGlzLmJhbm5lcnNMaXN0UmVmLmxlbmd0aCArIHRoaXMuYmFubmVycy5sZW5ndGgpID4gMVwiXG4gICAgc2l6ZT1cInNcIlxuICAgIGNsYXNzPVwibXQtM1wiXG4gICAgW2xlbmd0aF09XCJ0aGlzLmJhbm5lcnNMaXN0UmVmLmxlbmd0aCArIHRoaXMuYmFubmVycy5sZW5ndGhcIlxuICAgIFsoaW5kZXgpXT1cImN1cnJlbnRCYW5uZXJJZFwiXG4+PC90dWktcGFnaW5hdGlvbj5cbiJdfQ==
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUV2QixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixlQUFlLEVBR2YsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBRVgsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQUUzQzs7R0FFRztBQVVJLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBNEgxQjs7Ozs7O09BTUc7SUFDSCxZQUNxQixHQUFzQixFQUN0QixhQUE4QixFQUNPLFFBQXFDLEVBQ3RELE9BQTRCLEVBQ3pELFdBQTBCO1FBSmpCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUNPLGFBQVEsR0FBUixRQUFRLENBQTZCO1FBQ3RELFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQ3pELGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBdkl0Qzs7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b043QjtTQXBOWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFUN0IsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQywyQkFBMkIsQ0FBQyxjQUM1QixDQUFDLFNBQVMsQ0FBQzs7MEJBeUlsQixNQUFNOzJCQUFDLDJCQUEyQjs7MEJBQ2xDLE1BQU07MkJBQUMsVUFBVTt3RUFsSWYsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBT0EsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQU9BLGNBQWM7c0JBRHBCLGVBQWU7dUJBQUMsUUFBUTtnQkFNUyxRQUFRO3NCQUF6QyxTQUFTO3VCQUFDLGFBQWE7Z0JBTVosUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxlQUFlO2dCQXFEckIsTUFBTTtzQkFEWixXQUFXO3VCQUFDLGNBQWM7Z0JBT3BCLEtBQUs7c0JBRFgsV0FBVzt1QkFBQyxhQUFhO2dCQU9uQixXQUFXO3NCQURqQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFrRnpCLGlCQUFpQjtzQkFEeEIsWUFBWTt1QkFBQyxZQUFZO2dCQVNsQixpQkFBaUI7c0JBRHhCLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEluamVjdCxcbiAgICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NCYW5uZXIsIFNjQmFubmVyU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCB0YXAsIHNoYXJlUmVwbGF5LCBmaWx0ZXIsIHN3aXRjaE1hcCwgaW50ZXJ2YWwsIHRha2VVbnRpbCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NQeENvbnZlcnRlciB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAbmctd2ViLWFwaXMvaW50ZXJzZWN0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7IHR1aUZhZGVJbiB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcblxuLyoqXG4gKiDQkdCw0L3QvdC10YAg0YEg0L/RgNC+0LrRgNGD0YLQutC+0Lkg0L/QtdGA0LXQtNCw0L3QvdGL0YUge0BsaW5rIFRlbXBsYXRlUmVmfSDRjdC70LXQvNC10L3RgtC+0LIsINC4INCx0LDQvdC90LXRgNC+0LIg0LvQvtC60LDRhtC40LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtYmFubmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1iYW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFt0dWlGYWRlSW5dLFxufSlcbkBVbnRpbERlc3Ryb3koeyBjaGVja1Byb3BlcnRpZXM6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBTY0Jhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L/QvtC60LDQt9GL0LLQsNGC0Ywg0LrQvdC+0L/QutC4INC90LDQstC40LPQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYXZpZ2F0ZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90YLQtdGA0LLQsNC7INC/0L7QutCw0LfQsCDRgdC70LDQudC00L7QsiDQsiDQvNC40LvQu9C40YHQtdC60YPQvdC00LDRhS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGF5ZXJJbnRlcnZhbDogbnVtYmVyID0gNTAwMDtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L/RgNC+0LrRgNGD0YLQutCwINCy0YvQutC70Y7Rh9C10L3QsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JzQtdGB0YLQvtC/0L7Qu9C+0LbQtdC90LjQtSDQsdCw0L3QvdC10YDQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYW5uZXJMb2NhdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LrQvtC80L/QvtC90LXQvdGCINC00L7Qu9C20LXQvSDRgNCw0YHRgtGP0LPQuNCy0LDRgtGM0YHRjy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXNpemFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0LfQsNCz0YDRg9C30LrQuCDQsdCw0L3QvdC10YDQvtCyINGBINC60L7Qu9C40YfQtdGB0YLQstC+0Lwg0L/QvtC70YPRh9C10L3QvdGL0YUg0LHQsNC90L3QtdGA0L7Qsi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbG9hZEJhbm5lcnNFdmVudDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDQsdCw0L3QvdC10YDQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tCYW5uZXJFdmVudDogRXZlbnRFbWl0dGVyPFNjQmFubmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NCYW5uZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0Y3Qu9C10LzQtdC90YIg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Lkg0YjQsNCx0LvQvtC90L7Qsi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKCdiYW5uZXInKVxuICAgIHB1YmxpYyBiYW5uZXJzTGlzdFJlZjogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC90LAge0BsaW5rIEhUTUxWaWRlb0VsZW1lbnR9INGN0LvQtdC80LXQvdGC0LAg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQstC40LTQtdC+LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3ZpZGVvUGxheWVyJykgcHJpdmF0ZSB2aWRlb1JlZjogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDQvdCw0LvQuNGH0LjQtSDQutC70LDRgdGB0LAgYCFoaWRkZW5gINGDIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy4haGlkZGVuJylcbiAgICBwcml2YXRlIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmJhbm5lcnMgfHwgdGhpcy5iYW5uZXJzTGlzdFJlZi5sZW5ndGggKyB0aGlzLmJhbm5lcnMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LXQutGD0YnQtdCz0L4g0LHQsNC90L3QtdGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGN1cnJlbnRCYW5uZXJJZDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINGC0LDQudC80LXRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSB0b2dnbGVUaW1lciQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQv9C+0LrQsNC30YvQstCw0YLRjCDQutC90L7Qv9C60Lgg0YHRgtCw0YDRgtCwINCy0LjQtNC10L4g0LHQsNC90L3QtdGA0LAuXG4gICAgICovXG4gICAgcHVibGljIHNob3dQbGF5QnRuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0J7QsdC90L7QstC70LXQvdC40Y8g0YHQv9C40YHQutCwINCx0LDQvdC90LXRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGJhbm5lcnMkOiBPYnNlcnZhYmxlPFNjQmFubmVyW10+ID0gdGhpcy5iYW5uZXJTZXJ2aWNlLmJhbm5lcnMkLnBpcGUoXG4gICAgICAgIG1hcCgoYmFubmVycykgPT4gYmFubmVycy5maWx0ZXIoKGJhbm5lcikgPT4gYmFubmVyLmxvY2F0aW9uID09PSB0aGlzLmJhbm5lckxvY2F0aW9uKS5yZXZlcnNlKCkpLFxuICAgICAgICB0YXAoKGJhbm5lcnMpID0+IHtcbiAgICAgICAgICAgIGlmIChiYW5uZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gYDEwMCVgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gYCR7dGhpcy5weENvbnZlcnRlci5weFRvUmVtKGJhbm5lcnNbMF0uaGVpZ2h0KX1yZW1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gYCR7dGhpcy5weENvbnZlcnRlci5weFRvUmVtKGJhbm5lcnNbMF0ud2lkdGgpfXJlbWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5hc3BlY3RSYXRpbyA9IGAke2Jhbm5lcnNbMF0ud2lkdGh9IC8gJHtiYW5uZXJzWzBdLmhlaWdodH1gO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFubmVycyA9IGJhbm5lcnM7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVUaW1lciQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5sb2FkQmFubmVyc0V2ZW50LmVtaXQoYmFubmVycy5sZW5ndGgpO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INCx0LDQvdC90LXRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGJhbm5lcnM/OiBTY0Jhbm5lcltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiDQodCy0L7QudGB0YLQstC+LCDQvtGCINC60L7RgtC+0YDQvtCz0L4g0LfQsNCy0LjRgdC40YIg0LLRi9GB0L7RgtCwIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHB1YmxpYyBoZWlnaHQ6IHN0cmluZyA9ICdhdXRvJztcblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDRiNC40YDQuNC90LAgYDpob3N0YCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgICBwdWJsaWMgd2lkdGg6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog0KHQstC+0LnRgdGC0LLQviwg0L7RgiDQutC+0YLQvtGA0L7Qs9C+INC30LDQstC40YHQuNGCINGB0L7QvtGC0L3QvtGI0LXQvdC40LUgYDpob3N0YCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmFzcGVjdC1yYXRpbycpXG4gICAgcHVibGljIGFzcGVjdFJhdGlvOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NCYW5uZXJDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqIEBwYXJhbSBiYW5uZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINCx0LDQvdC90LXRgNCw0LzQuC5cbiAgICAgKiBAcGFyYW0gcHhDb252ZXJ0ZXIg0JrQu9Cw0YHRgSDRhdGN0LvQv9C10YAg0LTQu9GPINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0L/QuNC60YHQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBiYW5uZXJTZXJ2aWNlOiBTY0Jhbm5lclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSW50ZXJzZWN0aW9uT2JzZXJ2ZXJTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGVudHJpZXMkOiBJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmPEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHB4Q29udmVydGVyOiBTY1B4Q29udmVydGVyXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVUaW1lciRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodG9nZ2xlKSA9PiB0b2dnbGUpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBpbnRlcnZhbCh0aGlzLnBsYXllckludGVydmFsKS5waXBlKHRha2VVbnRpbCh0aGlzLnRvZ2dsZVRpbWVyJCkpKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuYmFubmVycz8uW3RoaXMuY3VycmVudEJhbm5lcklkXT8ubWVkaWFUeXBlID09PSAnaW1hZ2UnIHx8IHRoaXMuc2hvd1BsYXlCdG4pKSxcbiAgICAgICAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uTmV4dEJhbm5lcigpKTtcblxuICAgICAgICAvLyDQntGC0YHQu9C10LbQuNCy0LDQvdC40LUg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQutC+0LzQv9C+0L3QtdC90YLQsCDRgSDRjdC60YDQsNC90L7QvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICAgIC8vINCV0YHQu9C4INCx0LDQvdC90LXRgNCwINC90LUg0L3QsNGF0L7QtNC40YLRgdGPINCyINC/0L7Qu9C1INCy0LjQtNC40LzQvtGB0YLQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINGC0L4g0L7QvSDQv9C10YDQtdGB0YLQsNGR0YIg0L/QtdGA0LXQutC70Y7Rh9Cw0YLRgdGPLCDQsCDQstC40LTQtdC+INC+0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjy5cbiAgICAgICAgdGhpcy5lbnRyaWVzJC5waXBlKG1hcCgoZW50cmllcykgPT4gZW50cmllcy5maW5kKChpdGVtKSA9PiBpdGVtLnRhcmdldCA9PT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSkuc3Vic2NyaWJlKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVUaW1lciQubmV4dCghIWVudHJ5Py5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10LrQu9GO0YfQsNC10YIg0L3QsCDQv9GA0LXQtNGL0LTRg9GJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uUHJldmlvdXNCYW5uZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRCYW5uZXJJZCAtIDE7XG4gICAgICAgIHRoaXMuY3VycmVudEJhbm5lcklkID0gcHJldmlvdXMgPCAwID8gdGhpcy5iYW5uZXJzTGlzdFJlZi5sZW5ndGggKyAodGhpcy5iYW5uZXJzPy5sZW5ndGggPz8gMCkgLSAxIDogcHJldmlvdXM7XG5cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXQutC70Y7Rh9Cw0LXRgiDQvdCwINGB0LvQtdC00YPRjtGJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uTmV4dEJhbm5lcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dDogbnVtYmVyID0gdGhpcy5jdXJyZW50QmFubmVySWQgKyAxO1xuICAgICAgICB0aGlzLmN1cnJlbnRCYW5uZXJJZCA9IG5leHQgPT09IHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgKHRoaXMuYmFubmVycz8ubGVuZ3RoID8/IDApID8gMCA6IG5leHQ7XG5cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXQutC70Y7Rh9Cw0LXRgiDQvdCwINGB0LvQtdC00YPRjtGJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uRW5kZWRWaWRlbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbk5leHRCYW5uZXIoKTtcbiAgICAgICAgdGhpcy50b2dnbGVUaW1lciQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5zaG93UGxheUJ0biA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0L3QsNC20LDRgtC40Y8g0L3QsCDQsdCw0L3QvdC10YAsINCz0LXQvdC10YDQuNGA0YPRjtGJ0LjQuSDRgdC+0LHRi9GC0LjQtSB7QGxpbmsgY2xpY2tCYW5uZXJJbWdFdmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmFubmVyINCR0LDQvdC90LXRgCwg0L/QviDRgdGB0YvQu9C60LUg0LrQvtGC0L7RgNC+0LPQviDRgdC+0LLQtdGA0YjRkdC9INC/0LXRgNC10YXQvtC0LlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNsaWNrKGJhbm5lcjogU2NCYW5uZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJhbm5lci51cmwpIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tCYW5uZXJFdmVudC5lbWl0KGJhbm5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyBtb3VzZWVudGVyLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBwcml2YXRlIG1vdXNlRW50ZXJIYW5kbGVyOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy50b2dnbGVUaW1lciQubmV4dChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyBtb3VzZWxlYXZlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwcml2YXRlIG1vdXNlTGVhdmVIYW5kbGVyOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy50b2dnbGVUaW1lciQubmV4dCh0cnVlKTtcbn1cbiIsIjxuZy1jb250YWluZXIgKnR1aUxldD1cImJhbm5lcnMkIHwgYXN5bmNcIj5cbiAgICA8dHVpLWNhcm91c2VsIGNsYXNzPVwiYmctd2hpdGUgdy1mdWxsIGgtZnVsbCBzaGFkb3ctc2MtMiByb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlblwiIFsoaW5kZXgpXT1cImN1cnJlbnRCYW5uZXJJZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYW5uZXIgb2YgYmFubmVyczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKnR1aUl0ZW1cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGljayhiYW5uZXIpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYXNwZWN0LXJhdGlvXT1cImFzcGVjdFJhdGlvXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImJhbm5lci51cmwgPyBiYW5uZXIudXJsIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYmFubmVyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJiYW5uZXIubWVkaWFUeXBlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid2aWRlbydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb1BsYXllclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdXNwZW5kKT1cInNob3dQbGF5QnRuID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsYXkpPVwic2hvd1BsYXlCdG4gPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJiYW5uZXIubWVkaWFGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kZWQpPVwib25FbmRlZFZpZGVvKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwidmlkZW9QbGF5ZXIucGF1c2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cInZpZGVvUGxheWVyLnBsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvYmplY3QtY292ZXIgaC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICA+PC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQbGF5QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW0B0dWlGYWRlSW5dPVwiMjAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHZpZGVvUGxheWVyLnBsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIWFic29sdXRlIGxlZnQtOCBib3R0b20tNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLXJlZnJlc2ggdGV4dC1ibGFja1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCIgW3NyY109XCJiYW5uZXIubWVkaWFGaWxlXCIgYWx0PVwi0JHQsNC90L3QtdGAXCIgY2xhc3M9XCJvYmplY3QtY292ZXIgaC1mdWxsXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYmFubmVyc0xpc3RSZWZcIj5cbiAgICAgICAgICAgIDxkaXYgKnR1aUl0ZW0gW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIiBbc3R5bGUuYXNwZWN0LXJhdGlvXT1cImFzcGVjdFJhdGlvXCIgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3R1aS1jYXJvdXNlbD5cbjwvbmctY29udGFpbmVyPlxuPGRpdiAqbmdJZj1cIm5hdmlnYXRlQnV0dG9uICYmICFkaXNhYmxlZCAmJiB0aGlzLmJhbm5lcnMgJiYgKHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aCkgPiAxXCIgdHVpTW9kZT1cIm9uTGlnaHRcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIGljb249XCJ0dWlJY29uQ2hldnJvbkxlZnRMYXJnZVwiIHNpemU9XCJtXCIgc2hhcGU9XCJyb3VuZGVkXCIgYXBwZWFyYW5jZT1cImZsYXRcIiAoY2xpY2spPVwib25QcmV2aW91c0Jhbm5lcigpXCIgY2xhc3M9XCIhYWJzb2x1dGUgbGVmdC0yXCI+PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIGljb249XCJ0dWlJY29uQ2hldnJvblJpZ2h0TGFyZ2VcIiBzaXplPVwibVwiIHNoYXBlPVwicm91bmRlZFwiIGFwcGVhcmFuY2U9XCJmbGF0XCIgKGNsaWNrKT1cIm9uTmV4dEJhbm5lcigpXCIgY2xhc3M9XCIhYWJzb2x1dGUgcmlnaHQtMlwiPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
@@ -2,9 +2,11 @@ import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
3
3
|
import { ScBannerComponent } from './sc-banner.component';
|
4
4
|
import { RouterModule } from '@angular/router';
|
5
|
-
import { TuiButtonModule, TuiModeModule } from '@taiga-ui/core';
|
5
|
+
import { TuiButtonModule, TuiLoaderModule, TuiModeModule } from '@taiga-ui/core';
|
6
6
|
import { MatRippleModule } from '@angular/material/core';
|
7
|
-
import { TuiCarouselModule
|
7
|
+
import { TuiCarouselModule } from '@taiga-ui/kit';
|
8
|
+
import { IntersectionObserverModule } from '@ng-web-apis/intersection-observer';
|
9
|
+
import { TuiLetModule } from '@taiga-ui/cdk';
|
8
10
|
import * as i0 from "@angular/core";
|
9
11
|
/**
|
10
12
|
* Модуль баннеров.
|
@@ -12,14 +14,14 @@ import * as i0 from "@angular/core";
|
|
12
14
|
export class ScBannerModule {
|
13
15
|
}
|
14
16
|
ScBannerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
15
|
-
ScBannerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, declarations: [ScBannerComponent], imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule,
|
16
|
-
ScBannerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule,
|
17
|
+
ScBannerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, declarations: [ScBannerComponent], imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule, TuiModeModule, TuiLoaderModule, IntersectionObserverModule, TuiLetModule], exports: [ScBannerComponent] });
|
18
|
+
ScBannerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule, TuiModeModule, TuiLoaderModule, IntersectionObserverModule, TuiLetModule] });
|
17
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, decorators: [{
|
18
20
|
type: NgModule,
|
19
21
|
args: [{
|
20
22
|
declarations: [ScBannerComponent],
|
21
|
-
imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule,
|
23
|
+
imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule, TuiModeModule, TuiLoaderModule, IntersectionObserverModule, TuiLetModule],
|
22
24
|
exports: [ScBannerComponent],
|
23
25
|
}]
|
24
26
|
}] });
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYmFubmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3Qzs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBSlIsaUJBQWlCLGFBQ3RCLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLFlBQVksYUFDekosaUJBQWlCOzRHQUVsQixjQUFjLFlBSGIsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsWUFBWTsyRkFHMUosY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxDQUFDO29CQUNwSyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNjQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zYy1iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUdWlCdXR0b25Nb2R1bGUsIFR1aUxvYWRlck1vZHVsZSwgVHVpTW9kZU1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVHVpQ2Fyb3VzZWxNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IEludGVyc2VjdGlvbk9ic2VydmVyTW9kdWxlIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2ludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQgeyBUdWlMZXRNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LHQsNC90L3QtdGA0L7Qsi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTY0Jhbm5lckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBUdWlCdXR0b25Nb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSwgVHVpQ2Fyb3VzZWxNb2R1bGUsIFR1aU1vZGVNb2R1bGUsIFR1aUxvYWRlck1vZHVsZSwgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJNb2R1bGUsIFR1aUxldE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1NjQmFubmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2NCYW5uZXJNb2R1bGUge31cbiJdfQ==
|