@snabcentr/client-ui 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/banner/index.d.ts +2 -0
- package/banner/sc-banner.component.d.ts +106 -0
- package/banner/sc-banner.module.d.ts +15 -0
- package/catalog/category-card/sc-category-card.component.d.ts +64 -0
- package/catalog/index.d.ts +3 -0
- package/catalog/sc-catalog.module.d.ts +14 -0
- package/catalog/sc-favorite-btn/sc-favorite-btn.component.d.ts +13 -0
- package/esm2020/banner/index.mjs +3 -0
- package/esm2020/banner/sc-banner.component.mjs +187 -0
- package/esm2020/banner/sc-banner.module.mjs +25 -0
- package/esm2020/catalog/category-card/sc-category-card.component.mjs +102 -0
- package/esm2020/catalog/index.mjs +4 -0
- package/esm2020/catalog/sc-catalog.module.mjs +24 -0
- package/esm2020/catalog/sc-favorite-btn/sc-favorite-btn.component.mjs +24 -0
- package/esm2020/helpers/index.mjs +2 -0
- package/esm2020/helpers/sc-px-converter.mjs +27 -0
- package/esm2020/icons/index.mjs +2 -0
- package/esm2020/icons/sc-client-ui-icons-name.mjs +97 -0
- package/esm2020/news/index.mjs +4 -0
- package/esm2020/news/news-card/sc-news-card.component.mjs +19 -0
- package/esm2020/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +23 -0
- package/esm2020/news/sc-news.module.mjs +24 -0
- package/esm2020/public-api.mjs +6 -2
- package/esm2020/share-button/index.mjs +3 -0
- package/esm2020/share-button/sc-share-button.component.mjs +15 -0
- package/esm2020/share-button/sc-share-button.module.mjs +21 -0
- package/fesm2015/snabcentr-client-ui.mjs +544 -8
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +541 -8
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/helpers/index.d.ts +1 -0
- package/helpers/sc-px-converter.d.ts +15 -0
- package/icons/index.d.ts +1 -0
- package/icons/sc-client-ui-icons-name.d.ts +4 -0
- package/icons/svg-pack/scIconAddProfile.svg +11 -0
- package/icons/svg-pack/scIconApplication.svg +11 -0
- package/icons/svg-pack/scIconArrowDown.svg +11 -0
- package/icons/svg-pack/scIconArrowDownLarge.svg +11 -0
- package/icons/svg-pack/scIconArrowDownLargeEnd.svg +12 -0
- package/icons/svg-pack/scIconArrowLeft.svg +11 -0
- package/icons/svg-pack/scIconArrowReturn.svg +11 -0
- package/icons/svg-pack/scIconArrowRight.svg +11 -0
- package/icons/svg-pack/scIconArrowUp.svg +11 -0
- package/icons/svg-pack/scIconAttention.svg +11 -0
- package/icons/svg-pack/scIconBag.svg +11 -0
- package/icons/svg-pack/scIconBasket.svg +11 -0
- package/icons/svg-pack/scIconBell.svg +11 -0
- package/icons/svg-pack/scIconBook.svg +11 -0
- package/icons/svg-pack/scIconBubble.svg +11 -0
- package/icons/svg-pack/scIconCalendar.svg +11 -0
- package/icons/svg-pack/scIconCancel.svg +18 -0
- package/icons/svg-pack/scIconCart.svg +11 -0
- package/icons/svg-pack/scIconCatalog.svg +16 -0
- package/icons/svg-pack/scIconClients.svg +11 -0
- package/icons/svg-pack/scIconClip.svg +11 -0
- package/icons/svg-pack/scIconClock.svg +11 -0
- package/icons/svg-pack/scIconConfigurator.svg +18 -0
- package/icons/svg-pack/scIconContacts.svg +11 -0
- package/icons/svg-pack/scIconCross.svg +11 -0
- package/icons/svg-pack/scIconDeleteProfile.svg +12 -0
- package/icons/svg-pack/scIconDone.svg +12 -0
- package/icons/svg-pack/scIconDownloading.svg +11 -0
- package/icons/svg-pack/scIconEdit.svg +11 -0
- package/icons/svg-pack/scIconError.svg +12 -0
- package/icons/svg-pack/scIconExcelFile.svg +11 -0
- package/icons/svg-pack/scIconEye.svg +11 -0
- package/icons/svg-pack/scIconFavorite.svg +11 -0
- package/icons/svg-pack/scIconFavoriteFill.svg +11 -0
- package/icons/svg-pack/scIconFile.svg +11 -0
- package/icons/svg-pack/scIconFilter.svg +11 -0
- package/icons/svg-pack/scIconFolder.svg +11 -0
- package/icons/svg-pack/scIconFolderOpen.svg +11 -0
- package/icons/svg-pack/scIconFolderPlus.svg +11 -0
- package/icons/svg-pack/scIconGraph.svg +11 -0
- package/icons/svg-pack/scIconHamburger.svg +13 -0
- package/icons/svg-pack/scIconHeart.svg +11 -0
- package/icons/svg-pack/scIconHeartFill.svg +11 -0
- package/icons/svg-pack/scIconHistory.svg +11 -0
- package/icons/svg-pack/scIconHome.svg +12 -0
- package/icons/svg-pack/scIconImage.svg +11 -0
- package/icons/svg-pack/scIconLike.svg +11 -0
- package/icons/svg-pack/scIconList.svg +11 -0
- package/icons/svg-pack/scIconLocation.svg +11 -0
- package/icons/svg-pack/scIconLock.svg +11 -0
- package/icons/svg-pack/scIconLockOpen.svg +11 -0
- package/icons/svg-pack/scIconLogIn.svg +11 -0
- package/icons/svg-pack/scIconLogOut.svg +13 -0
- package/icons/svg-pack/scIconLogOut2.svg +13 -0
- package/icons/svg-pack/scIconMail.svg +11 -0
- package/icons/svg-pack/scIconMoney.svg +11 -0
- package/icons/svg-pack/scIconMoney2.svg +11 -0
- package/icons/svg-pack/scIconNews.svg +11 -0
- package/icons/svg-pack/scIconOffer.svg +11 -0
- package/icons/svg-pack/scIconPalette.svg +18 -0
- package/icons/svg-pack/scIconPdfFile.svg +12 -0
- package/icons/svg-pack/scIconPercentage.svg +11 -0
- package/icons/svg-pack/scIconPhone.svg +11 -0
- package/icons/svg-pack/scIconPlus.svg +11 -0
- package/icons/svg-pack/scIconPrice.svg +11 -0
- package/icons/svg-pack/scIconProfile.svg +11 -0
- package/icons/svg-pack/scIconQRCodeScan.svg +18 -0
- package/icons/svg-pack/scIconQuestion.svg +11 -0
- package/icons/svg-pack/scIconReclamation.svg +11 -0
- package/icons/svg-pack/scIconRefresh.svg +11 -0
- package/icons/svg-pack/scIconRepeat.svg +11 -0
- package/icons/svg-pack/scIconRequisites.svg +11 -0
- package/icons/svg-pack/scIconRocket.svg +18 -0
- package/icons/svg-pack/scIconSave.svg +11 -0
- package/icons/svg-pack/scIconSearch.svg +12 -0
- package/icons/svg-pack/scIconSend.svg +11 -0
- package/icons/svg-pack/scIconSettings.svg +11 -0
- package/icons/svg-pack/scIconShare.svg +15 -0
- package/icons/svg-pack/scIconStar.svg +11 -0
- package/icons/svg-pack/scIconSuitcase.svg +11 -0
- package/icons/svg-pack/scIconTasks.svg +11 -0
- package/icons/svg-pack/scIconTick.svg +11 -0
- package/icons/svg-pack/scIconTop.svg +11 -0
- package/icons/svg-pack/scIconVerticalThreeDots.svg +11 -0
- package/icons/svg-pack/scIconViewGrid.svg +11 -0
- package/icons/svg-pack/scIconViewInline.svg +11 -0
- package/icons/svg-pack/scIconViewMinus.svg +11 -0
- package/icons/svg-pack/scIconViewTree.svg +15 -0
- package/icons/svg-pack/scIconWallet.svg +11 -0
- package/icons/svg-pack/scIconWarning.svg +11 -0
- package/icons/svg-pack/scIconWordFile.svg +12 -0
- package/news/index.d.ts +3 -0
- package/news/news-card/sc-news-card.component.d.ts +13 -0
- package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +12 -0
- package/news/sc-news.module.d.ts +14 -0
- package/package.json +16 -1
- package/public-api.d.ts +5 -1
- package/share-button/index.d.ts +2 -0
- package/share-button/sc-share-button.component.d.ts +8 -0
- package/share-button/sc-share-button.module.d.ts +11 -0
- package/styles/taiga/variables.less +49 -50
- package/styles/tailwind/extend.js +189 -0
- package/styles/tailwind/tailwind.scss +1055 -0
- package/esm2020/test-component/test.component.mjs +0 -14
- package/test-component/test.component.d.ts +0 -8
@@ -0,0 +1,106 @@
|
|
1
|
+
import { ChangeDetectorRef, OnInit, QueryList, TemplateRef, EventEmitter } from '@angular/core';
|
2
|
+
import { ScBannerService, ScIBanner } from '@snabcentr/client-core';
|
3
|
+
import { ScPxConverter } from '../helpers';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
/**
|
6
|
+
* Баннер с прокруткой переданных {@link TemplateRef} элементов, и баннеров локации.
|
7
|
+
*/
|
8
|
+
export declare class ScBannerComponent implements OnInit {
|
9
|
+
private readonly cdr;
|
10
|
+
private bannerService;
|
11
|
+
private pxConverter;
|
12
|
+
/**
|
13
|
+
* Список ссылок на элемент представлений шаблонов.
|
14
|
+
*/
|
15
|
+
bannersListRef: QueryList<TemplateRef<any>>;
|
16
|
+
/**
|
17
|
+
* Признак, что необходимо показывать кнопки навигации.
|
18
|
+
*/
|
19
|
+
navigateButton: boolean;
|
20
|
+
/**
|
21
|
+
* Интервал показа слайдов в миллисекундах.
|
22
|
+
*/
|
23
|
+
playerInterval: number;
|
24
|
+
/**
|
25
|
+
* Признак, что прокрутка выключена.
|
26
|
+
*/
|
27
|
+
disabled: boolean;
|
28
|
+
/**
|
29
|
+
* Местоположение баннера.
|
30
|
+
*/
|
31
|
+
bannerLocation?: string;
|
32
|
+
/**
|
33
|
+
* Признак, что компонент должен растягиваться.
|
34
|
+
*/
|
35
|
+
resizable: boolean;
|
36
|
+
/**
|
37
|
+
* Событие загрузки баннеров с количеством полученных баннеров.
|
38
|
+
*/
|
39
|
+
loadBannersEvent: EventEmitter<number>;
|
40
|
+
/**
|
41
|
+
* Событие нажатия на изображение баннера.
|
42
|
+
*/
|
43
|
+
clickBannerImgEvent: EventEmitter<ScIBanner>;
|
44
|
+
/**
|
45
|
+
* Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
|
46
|
+
*/
|
47
|
+
get isHidden(): boolean;
|
48
|
+
/**
|
49
|
+
* Свойство, от которого зависит высота `:host` компонента.
|
50
|
+
*/
|
51
|
+
height: string;
|
52
|
+
/**
|
53
|
+
* Свойство, от которого зависит ширина `:host` компонента.
|
54
|
+
*/
|
55
|
+
width: string;
|
56
|
+
/**
|
57
|
+
* Свойство, от которого зависит соотношение `:host` компонента.
|
58
|
+
*/
|
59
|
+
aspectRatio: string;
|
60
|
+
/**
|
61
|
+
* Идентификатор текущего баннера.
|
62
|
+
*/
|
63
|
+
currentBannerId: number;
|
64
|
+
/**
|
65
|
+
* Список баннеров.
|
66
|
+
*/
|
67
|
+
banners: ScIBanner[];
|
68
|
+
/**
|
69
|
+
* Признак, что указатель мыши находится над баннером.
|
70
|
+
*/
|
71
|
+
private isMouseOver;
|
72
|
+
/**
|
73
|
+
* Инициализирует экземпляр класса {@link ScBannerComponent}.
|
74
|
+
*
|
75
|
+
* @param cdr Объект для работы с обнаружением изменений.
|
76
|
+
* @param bannerService Сервис для работы с баннерами.
|
77
|
+
* @param pxConverter Класс хэлпер для конвертации пикселей.
|
78
|
+
*/
|
79
|
+
constructor(cdr: ChangeDetectorRef, bannerService: ScBannerService, pxConverter: ScPxConverter);
|
80
|
+
/** @inheritDoc */
|
81
|
+
ngOnInit(): void;
|
82
|
+
/**
|
83
|
+
* Обработчик нажатия на баннер, генерирующий событие {@link clickBannerImgEvent}.
|
84
|
+
*
|
85
|
+
* @param banner Баннер, по ссылке которого совершён переход.
|
86
|
+
*/
|
87
|
+
onClick(banner: ScIBanner): void;
|
88
|
+
/**
|
89
|
+
* Переключиться на предыдущий баннер.
|
90
|
+
*/
|
91
|
+
onPreviousBanner(): void;
|
92
|
+
/**
|
93
|
+
* Переключиться на следующий баннер.
|
94
|
+
*/
|
95
|
+
onNextBanner(): void;
|
96
|
+
/**
|
97
|
+
* Обработчик события mouseenter.
|
98
|
+
*/
|
99
|
+
private mouseEnterHandler;
|
100
|
+
/**
|
101
|
+
* Обработчик события mouseleave.
|
102
|
+
*/
|
103
|
+
private mouseLeaveHandler;
|
104
|
+
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"; "clickBannerImgEvent": "clickBannerImgEvent"; }, ["bannersListRef"], never, false>;
|
106
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./sc-banner.component";
|
3
|
+
import * as i2 from "@angular/common";
|
4
|
+
import * as i3 from "@angular/router";
|
5
|
+
import * as i4 from "@taiga-ui/core";
|
6
|
+
import * as i5 from "@angular/material/core";
|
7
|
+
import * as i6 from "@taiga-ui/kit";
|
8
|
+
/**
|
9
|
+
* Модуль баннеров.
|
10
|
+
*/
|
11
|
+
export declare class ScBannerModule {
|
12
|
+
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 i6.TuiPaginationModule], [typeof i1.ScBannerComponent]>;
|
14
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ScBannerModule>;
|
15
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { EventEmitter, Renderer2 } from '@angular/core';
|
2
|
+
import { ScCategory, ScIUrls } from '@snabcentr/client-core';
|
3
|
+
import { TuiSizeS } from '@taiga-ui/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
/**
|
6
|
+
* Карточка категории.
|
7
|
+
*/
|
8
|
+
export declare class ScCategoryCardComponent {
|
9
|
+
private readonly urls;
|
10
|
+
private renderer;
|
11
|
+
private readonly pathImageNotFound;
|
12
|
+
/**
|
13
|
+
* Информация о категории.
|
14
|
+
*/
|
15
|
+
category?: ScCategory;
|
16
|
+
/**
|
17
|
+
* Ссылка на {@link HTMLElement} блока названия.
|
18
|
+
*/
|
19
|
+
private name;
|
20
|
+
/**
|
21
|
+
* Размер карточки категории.
|
22
|
+
*/
|
23
|
+
size: TuiSizeS;
|
24
|
+
/**
|
25
|
+
* Признак, что карточка является скелетоном.
|
26
|
+
*/
|
27
|
+
isSkeleton: boolean;
|
28
|
+
/**
|
29
|
+
* Признак необходимости отобразить/скрыть кнопку избранной категории.
|
30
|
+
*/
|
31
|
+
showFavoriteBtn: boolean;
|
32
|
+
/**
|
33
|
+
* Событие нажатия на карточку категории.
|
34
|
+
*/
|
35
|
+
clickOnCardEvent: EventEmitter<ScCategory>;
|
36
|
+
/**
|
37
|
+
* Событие нажатия на кнопку избранной категории.
|
38
|
+
*/
|
39
|
+
clickOnFavoriteEvent: EventEmitter<ScCategory>;
|
40
|
+
/**
|
41
|
+
* Инициализирует экземпляр класса {@link CategoryCardComponent}.
|
42
|
+
*
|
43
|
+
* @param urls Список ссылок на разделы backend'a.
|
44
|
+
* @param renderer Экземпляр базового класса для реализации пользовательского рендеринга.
|
45
|
+
* @param pathImageNotFound Путь до изображения 'Товар не найден'.
|
46
|
+
*/
|
47
|
+
constructor(urls: ScIUrls, renderer: Renderer2, pathImageNotFound: string);
|
48
|
+
/**
|
49
|
+
* Возвращает путь к изображению категории. Если путь отсутствует, то вернёт изображение по-умолчанию ("product_not_found").
|
50
|
+
*
|
51
|
+
* @param category Информация о категории.
|
52
|
+
*/
|
53
|
+
getCategoryImgURL(category: ScCategory): string;
|
54
|
+
/**
|
55
|
+
* Обработчик события mousemove.
|
56
|
+
*/
|
57
|
+
private moveEnterHandler;
|
58
|
+
/**
|
59
|
+
* Обработчик события mouseleave.
|
60
|
+
*/
|
61
|
+
private mouseLeaveHandler;
|
62
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScCategoryCardComponent, never>;
|
63
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScCategoryCardComponent, "sc-category-card", never, { "category": "category"; "size": "size"; "isSkeleton": "isSkeleton"; "showFavoriteBtn": "showFavoriteBtn"; }, { "clickOnCardEvent": "clickOnCardEvent"; "clickOnFavoriteEvent": "clickOnFavoriteEvent"; }, never, never, false>;
|
64
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./category-card/sc-category-card.component";
|
3
|
+
import * as i2 from "./sc-favorite-btn/sc-favorite-btn.component";
|
4
|
+
import * as i3 from "@angular/common";
|
5
|
+
import * as i4 from "@angular/router";
|
6
|
+
import * as i5 from "@taiga-ui/core";
|
7
|
+
/**
|
8
|
+
* Модуль каталога.
|
9
|
+
*/
|
10
|
+
export declare class ScCatalogModule {
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScCatalogModule, never>;
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScCatalogModule, [typeof i1.ScCategoryCardComponent, typeof i2.ScFavoriteBtnComponent], [typeof i3.CommonModule, typeof i4.RouterModule, typeof i5.TuiButtonModule, typeof i5.TuiSvgModule], [typeof i1.ScCategoryCardComponent, typeof i2.ScFavoriteBtnComponent]>;
|
13
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ScCatalogModule>;
|
14
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* Компонент кнопки избранных товаров и категорий.
|
5
|
+
*/
|
6
|
+
export declare class ScFavoriteBtnComponent {
|
7
|
+
/**
|
8
|
+
* Событие нажатия на кнопку.
|
9
|
+
*/
|
10
|
+
clickEvent: EventEmitter<void>;
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScFavoriteBtnComponent, never>;
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScFavoriteBtnComponent, "sc-favorite-btn", never, {}, { "clickEvent": "clickEvent"; }, never, never, false>;
|
13
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './sc-banner.component';
|
2
|
+
export * from './sc-banner.module';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvYmFubmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWJhbm5lci5tb2R1bGUnO1xuIl19
|
@@ -0,0 +1,187 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { ChangeDetectionStrategy, Component, HostListener, Input, ContentChildren, HostBinding, Output, EventEmitter, } from '@angular/core';
|
3
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
4
|
+
import { filter, interval, map } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@snabcentr/client-core";
|
7
|
+
import * as i2 from "../helpers";
|
8
|
+
import * as i3 from "@angular/common";
|
9
|
+
import * as i4 from "@taiga-ui/core";
|
10
|
+
import * as i5 from "@taiga-ui/kit";
|
11
|
+
import * as i6 from "@taiga-ui/cdk";
|
12
|
+
/**
|
13
|
+
* Баннер с прокруткой переданных {@link TemplateRef} элементов, и баннеров локации.
|
14
|
+
*/
|
15
|
+
let ScBannerComponent = class ScBannerComponent {
|
16
|
+
/**
|
17
|
+
* Инициализирует экземпляр класса {@link ScBannerComponent}.
|
18
|
+
*
|
19
|
+
* @param cdr Объект для работы с обнаружением изменений.
|
20
|
+
* @param bannerService Сервис для работы с баннерами.
|
21
|
+
* @param pxConverter Класс хэлпер для конвертации пикселей.
|
22
|
+
*/
|
23
|
+
constructor(cdr, bannerService, pxConverter) {
|
24
|
+
this.cdr = cdr;
|
25
|
+
this.bannerService = bannerService;
|
26
|
+
this.pxConverter = pxConverter;
|
27
|
+
/**
|
28
|
+
* Признак, что необходимо показывать кнопки навигации.
|
29
|
+
*/
|
30
|
+
this.navigateButton = true;
|
31
|
+
/**
|
32
|
+
* Интервал показа слайдов в миллисекундах.
|
33
|
+
*/
|
34
|
+
this.playerInterval = 8000;
|
35
|
+
/**
|
36
|
+
* Признак, что прокрутка выключена.
|
37
|
+
*/
|
38
|
+
this.disabled = false;
|
39
|
+
/**
|
40
|
+
* Признак, что компонент должен растягиваться.
|
41
|
+
*/
|
42
|
+
this.resizable = true;
|
43
|
+
/**
|
44
|
+
* Событие загрузки баннеров с количеством полученных баннеров.
|
45
|
+
*/
|
46
|
+
this.loadBannersEvent = new EventEmitter();
|
47
|
+
/**
|
48
|
+
* Событие нажатия на изображение баннера.
|
49
|
+
*/
|
50
|
+
this.clickBannerImgEvent = new EventEmitter();
|
51
|
+
/**
|
52
|
+
* Свойство, от которого зависит высота `:host` компонента.
|
53
|
+
*/
|
54
|
+
this.height = '';
|
55
|
+
/**
|
56
|
+
* Свойство, от которого зависит ширина `:host` компонента.
|
57
|
+
*/
|
58
|
+
this.width = '';
|
59
|
+
/**
|
60
|
+
* Свойство, от которого зависит соотношение `:host` компонента.
|
61
|
+
*/
|
62
|
+
this.aspectRatio = '';
|
63
|
+
/**
|
64
|
+
* Идентификатор текущего баннера.
|
65
|
+
*/
|
66
|
+
this.currentBannerId = 0;
|
67
|
+
/**
|
68
|
+
* Список баннеров.
|
69
|
+
*/
|
70
|
+
this.banners = [];
|
71
|
+
/**
|
72
|
+
* Признак, что указатель мыши находится над баннером.
|
73
|
+
*/
|
74
|
+
this.isMouseOver = false;
|
75
|
+
/**
|
76
|
+
* Обработчик события mouseenter.
|
77
|
+
*/
|
78
|
+
this.mouseEnterHandler = () => (this.isMouseOver = true);
|
79
|
+
/**
|
80
|
+
* Обработчик события mouseleave.
|
81
|
+
*/
|
82
|
+
this.mouseLeaveHandler = () => (this.isMouseOver = false);
|
83
|
+
}
|
84
|
+
/**
|
85
|
+
* Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
|
86
|
+
*/
|
87
|
+
get isHidden() {
|
88
|
+
return this.bannersListRef.length + this.banners.length === 0;
|
89
|
+
}
|
90
|
+
/** @inheritDoc */
|
91
|
+
ngOnInit() {
|
92
|
+
interval(this.playerInterval)
|
93
|
+
.pipe(filter(() => !this.disabled && !this.isMouseOver), untilDestroyed(this))
|
94
|
+
.subscribe(() => this.onNextBanner());
|
95
|
+
if (this.bannerLocation) {
|
96
|
+
this.bannerService.banners$
|
97
|
+
.pipe(map((banners) => banners.filter((banner) => banner.location === this.bannerLocation)), untilDestroyed(this))
|
98
|
+
.subscribe((banners) => {
|
99
|
+
this.banners = banners;
|
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
|
+
}
|
114
|
+
}
|
115
|
+
/**
|
116
|
+
* Обработчик нажатия на баннер, генерирующий событие {@link clickBannerImgEvent}.
|
117
|
+
*
|
118
|
+
* @param banner Баннер, по ссылке которого совершён переход.
|
119
|
+
*/
|
120
|
+
onClick(banner) {
|
121
|
+
if (banner.url) {
|
122
|
+
this.clickBannerImgEvent.emit(banner);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
/**
|
126
|
+
* Переключиться на предыдущий баннер.
|
127
|
+
*/
|
128
|
+
onPreviousBanner() {
|
129
|
+
const previous = this.currentBannerId - 1;
|
130
|
+
this.currentBannerId = previous < 0 ? this.bannersListRef.length + this.banners.length - 1 : previous;
|
131
|
+
this.cdr.markForCheck();
|
132
|
+
}
|
133
|
+
/**
|
134
|
+
* Переключиться на следующий баннер.
|
135
|
+
*/
|
136
|
+
onNextBanner() {
|
137
|
+
const next = this.currentBannerId + 1;
|
138
|
+
this.currentBannerId = next === this.bannersListRef.length + this.banners.length ? 0 : next;
|
139
|
+
this.cdr.markForCheck();
|
140
|
+
}
|
141
|
+
};
|
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", clickBannerImgEvent: "clickBannerImgEvent" }, host: { listeners: { "mouseenter": "mouseEnterHandler()", "mouseleave": "mouseLeaveHandler()" }, properties: { "class.!hidden": "this.isHidden", "style.height": "this.height", "style.width": "this.width", "style.aspect-ratio": "this.aspectRatio" } }, queries: [{ propertyName: "bannersListRef", predicate: ["banner"] }], ngImport: i0, template: "<div class=\"flex relative\" [style.aspect-ratio]=\"aspectRatio\">\n <tui-carousel class=\"bg-white w-full shadow-sc !absolute rounded overflow-hidden\" [(index)]=\"currentBannerId\">\n <ng-container *ngFor=\"let item of bannersListRef; index as index\">\n <div *tuiItem>\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngFor=\"let banner of banners; index as index\">\n <a *tuiItem (click)=\"onClick(banner)\" [attr.href]=\"banner.url ? banner.url : null\" target=\"_blank\" [title]=\"banner.title\" class=\"\">\n <img [src]=\"banner.image\" alt=\"\u0411\u0430\u043D\u043D\u0435\u0440\" [style.aspect-ratio]=\"aspectRatio\" class=\"pointer-events-none object-cover h-full w-full\" />\n </a>\n </ng-container>\n </tui-carousel>\n <div *ngIf=\"navigateButton && !disabled && (this.bannersListRef.length + this.banners.length) > 1\" class=\"w-full h-full flex items-center grow justify-between p-3\">\n <button tuiIconButton icon=\"tuiIconChevronLeftLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onPreviousBanner()\" class=\"arrow-btn\"></button>\n <button tuiIconButton icon=\"tuiIconChevronRightLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onNextBanner()\" class=\"arrow-btn\"></button>\n </div>\n</div>\n<tui-pagination\n *ngIf=\"navigateButton && !disabled && (this.bannersListRef.length + this.banners.length) > 1\"\n size=\"s\"\n class=\"mt-3\"\n [length]=\"this.bannersListRef.length + this.banners.length\"\n [(index)]=\"currentBannerId\"\n></tui-pagination>\n", styles: [":host{--tui-carousel-padding: 0;display:flex;flex-direction:column}:host tui-pagination{color:var(--yellow)}\n", "*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.\\!absolute{position:absolute!important}.absolute{position:absolute}.\\!relative{position:relative!important}.relative{position:relative}.sticky{position:sticky}.left-1{left:.25rem}.left-3{left:.75rem}.top-1{top:.25rem}.top-3{top:.75rem}.isolate{isolation:isolate}.m-8{margin:2rem}.mb-2{margin-bottom:.5rem}.mb-2\\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mt-3{margin-top:.75rem}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.\\!block{display:block!important}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\\!hidden{display:none!important}.hidden{display:none}.h-3{height:.75rem}.h-32{height:8rem}.h-50{height:12.5rem}.h-82{height:20.5rem}.h-full{height:100%}.w-3{width:.75rem}.w-3\\/4{width:75%}.w-70{width:17.5rem}.w-8{width:2rem}.w-96{width:24rem}.w-full{width:100%}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded-tui-radius-m{border-radius:var(--tui-radius-m)}.rounded-tui-radius-s{border-radius:var(--tui-radius-s)}.border{border-width:1px}.bg-tui-base-02{background-color:var(--tui-base-02)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{object-fit:cover}.p-3{padding:.75rem}.p-5{padding:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-4\\.5{padding-top:1.125rem;padding-bottom:1.125rem}.align-baseline{vertical-align:baseline}.\\!text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-feature-settings:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-tui-base-07{color:var(--tui-base-07)}.text-tui-primary{color:var(--tui-primary)}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.shadow-sc{--tw-shadow: 2px 7px 20px 1px rgba(0, 0, 0, .1);--tw-shadow-colored: 2px 7px 20px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\\[fs\\:0\\]{fs:0}.\\[k\\:string\\]{k:string}\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: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i5.TuiCarouselComponent, selector: "tui-carousel", inputs: ["draggable", "itemsCount", "index"], outputs: ["indexChange"] }, { kind: "directive", type: i5.TuiCarouselDirective, selector: "tui-carousel", inputs: ["duration", "index"] }, { kind: "directive", type: i6.TuiItemDirective, selector: "[tuiItem]" }, { kind: "component", type: i5.TuiPaginationComponent, selector: "tui-pagination", inputs: ["length", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
144
|
+
ScBannerComponent = __decorate([
|
145
|
+
UntilDestroy({ checkProperties: true })
|
146
|
+
], ScBannerComponent);
|
147
|
+
export { ScBannerComponent };
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerComponent, decorators: [{
|
149
|
+
type: Component,
|
150
|
+
args: [{ selector: 'sc-banner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex relative\" [style.aspect-ratio]=\"aspectRatio\">\n <tui-carousel class=\"bg-white w-full shadow-sc !absolute rounded overflow-hidden\" [(index)]=\"currentBannerId\">\n <ng-container *ngFor=\"let item of bannersListRef; index as index\">\n <div *tuiItem>\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngFor=\"let banner of banners; index as index\">\n <a *tuiItem (click)=\"onClick(banner)\" [attr.href]=\"banner.url ? banner.url : null\" target=\"_blank\" [title]=\"banner.title\" class=\"\">\n <img [src]=\"banner.image\" alt=\"\u0411\u0430\u043D\u043D\u0435\u0440\" [style.aspect-ratio]=\"aspectRatio\" class=\"pointer-events-none object-cover h-full w-full\" />\n </a>\n </ng-container>\n </tui-carousel>\n <div *ngIf=\"navigateButton && !disabled && (this.bannersListRef.length + this.banners.length) > 1\" class=\"w-full h-full flex items-center grow justify-between p-3\">\n <button tuiIconButton icon=\"tuiIconChevronLeftLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onPreviousBanner()\" class=\"arrow-btn\"></button>\n <button tuiIconButton icon=\"tuiIconChevronRightLarge\" size=\"m\" shape=\"rounded\" appearance=\"flat\" (click)=\"onNextBanner()\" class=\"arrow-btn\"></button>\n </div>\n</div>\n<tui-pagination\n *ngIf=\"navigateButton && !disabled && (this.bannersListRef.length + this.banners.length) > 1\"\n size=\"s\"\n class=\"mt-3\"\n [length]=\"this.bannersListRef.length + this.banners.length\"\n [(index)]=\"currentBannerId\"\n></tui-pagination>\n", styles: [":host{--tui-carousel-padding: 0;display:flex;flex-direction:column}:host tui-pagination{color:var(--yellow)}\n", "*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.\\!absolute{position:absolute!important}.absolute{position:absolute}.\\!relative{position:relative!important}.relative{position:relative}.sticky{position:sticky}.left-1{left:.25rem}.left-3{left:.75rem}.top-1{top:.25rem}.top-3{top:.75rem}.isolate{isolation:isolate}.m-8{margin:2rem}.mb-2{margin-bottom:.5rem}.mb-2\\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mt-3{margin-top:.75rem}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.\\!block{display:block!important}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\\!hidden{display:none!important}.hidden{display:none}.h-3{height:.75rem}.h-32{height:8rem}.h-50{height:12.5rem}.h-82{height:20.5rem}.h-full{height:100%}.w-3{width:.75rem}.w-3\\/4{width:75%}.w-70{width:17.5rem}.w-8{width:2rem}.w-96{width:24rem}.w-full{width:100%}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded-tui-radius-m{border-radius:var(--tui-radius-m)}.rounded-tui-radius-s{border-radius:var(--tui-radius-s)}.border{border-width:1px}.bg-tui-base-02{background-color:var(--tui-base-02)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{object-fit:cover}.p-3{padding:.75rem}.p-5{padding:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-4\\.5{padding-top:1.125rem;padding-bottom:1.125rem}.align-baseline{vertical-align:baseline}.\\!text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-feature-settings:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-tui-base-07{color:var(--tui-base-07)}.text-tui-primary{color:var(--tui-primary)}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.shadow-sc{--tw-shadow: 2px 7px 20px 1px rgba(0, 0, 0, .1);--tw-shadow-colored: 2px 7px 20px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\\[fs\\:0\\]{fs:0}.\\[k\\:string\\]{k:string}\n"] }]
|
151
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ScBannerService }, { type: i2.ScPxConverter }]; }, propDecorators: { bannersListRef: [{
|
152
|
+
type: ContentChildren,
|
153
|
+
args: ['banner']
|
154
|
+
}], navigateButton: [{
|
155
|
+
type: Input
|
156
|
+
}], playerInterval: [{
|
157
|
+
type: Input
|
158
|
+
}], disabled: [{
|
159
|
+
type: Input
|
160
|
+
}], bannerLocation: [{
|
161
|
+
type: Input
|
162
|
+
}], resizable: [{
|
163
|
+
type: Input
|
164
|
+
}], loadBannersEvent: [{
|
165
|
+
type: Output
|
166
|
+
}], clickBannerImgEvent: [{
|
167
|
+
type: Output
|
168
|
+
}], isHidden: [{
|
169
|
+
type: HostBinding,
|
170
|
+
args: ['class.!hidden']
|
171
|
+
}], height: [{
|
172
|
+
type: HostBinding,
|
173
|
+
args: ['style.height']
|
174
|
+
}], width: [{
|
175
|
+
type: HostBinding,
|
176
|
+
args: ['style.width']
|
177
|
+
}], aspectRatio: [{
|
178
|
+
type: HostBinding,
|
179
|
+
args: ['style.aspect-ratio']
|
180
|
+
}], mouseEnterHandler: [{
|
181
|
+
type: HostListener,
|
182
|
+
args: ['mouseenter']
|
183
|
+
}], mouseLeaveHandler: [{
|
184
|
+
type: HostListener,
|
185
|
+
args: ['mouseleave']
|
186
|
+
}] } });
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLGVBQWUsRUFDZixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFJN0M7O0dBRUc7QUFRSSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQTBGMUI7Ozs7OztPQU1HO0lBQ0gsWUFBb0MsR0FBc0IsRUFBVSxhQUE4QixFQUFVLFdBQTBCO1FBQWxHLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUExRnRJOztXQUVHO1FBRUksbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFdEM7O1dBRUc7UUFFSSxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUVyQzs7V0FFRztRQUVJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRakM7O1dBRUc7UUFFSSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRWpDOztXQUVHO1FBRUkscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFM0U7O1dBRUc7UUFFSSx3QkFBbUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQVVwRjs7V0FFRztRQUVJLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFFM0I7O1dBRUc7UUFFSSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBRUksZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFaEM7O1dBRUc7UUFDSSxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUVuQzs7V0FFRztRQUNJLFlBQU8sR0FBZ0IsRUFBRSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ssZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUEyRXJDOztXQUVHO1FBRUssc0JBQWlCLEdBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUUzRTs7V0FFRztRQUVLLHNCQUFpQixHQUFrQixHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUM7SUE1RTZELENBQUM7SUFoRDFJOztPQUVHO0lBQ0gsSUFDVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQTRDRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDeEIsSUFBSSxDQUNELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQ2pELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FDdkI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtpQkFDdEIsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFDckYsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUN2QjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBRXZCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDaEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztxQkFDdkI7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO3dCQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7cUJBQ25FO29CQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDbkU7Z0JBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxNQUFpQjtRQUM1QixJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ25CLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2YsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OEdBaktRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGluQkM3QjlCLDhxREF5QkE7QURJYSxpQkFBaUI7SUFEN0IsWUFBWSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO0dBQzNCLGlCQUFpQixDQThLN0I7U0E5S1ksaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0ksV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNO2tLQVF4QyxjQUFjO3NCQURwQixlQUFlO3VCQUFDLFFBQVE7Z0JBT2xCLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQU9BLG1CQUFtQjtzQkFEekIsTUFBTTtnQkFPSSxRQUFRO3NCQURsQixXQUFXO3VCQUFDLGVBQWU7Z0JBU3JCLE1BQU07c0JBRFosV0FBVzt1QkFBQyxjQUFjO2dCQU9wQixLQUFLO3NCQURYLFdBQVc7dUJBQUMsYUFBYTtnQkFPbkIsV0FBVztzQkFEakIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBK0Z6QixpQkFBaUI7c0JBRHhCLFlBQVk7dUJBQUMsWUFBWTtnQkFPbEIsaUJBQWlCO3NCQUR4QixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IGZpbHRlciwgaW50ZXJ2YWwsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NCYW5uZXJTZXJ2aWNlLCBTY0lCYW5uZXIgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFNjUHhDb252ZXJ0ZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuLyoqXG4gKiDQkdCw0L3QvdC10YAg0YEg0L/RgNC+0LrRgNGD0YLQutC+0Lkg0L/QtdGA0LXQtNCw0L3QvdGL0YUge0BsaW5rIFRlbXBsYXRlUmVmfSDRjdC70LXQvNC10L3RgtC+0LIsINC4INCx0LDQvdC90LXRgNC+0LIg0LvQvtC60LDRhtC40LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtYmFubmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYmFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1iYW5uZXIuY29tcG9uZW50LnNjc3MnLCAnLi4vc3R5bGVzL3RhaWx3aW5kL3RhaWx3aW5kLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5AVW50aWxEZXN0cm95KHsgY2hlY2tQcm9wZXJ0aWVzOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgU2NCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRjdC70LXQvNC10L3RgiDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQuSDRiNCw0LHQu9C+0L3QvtCyLlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oJ2Jhbm5lcicpXG4gICAgcHVibGljIGJhbm5lcnNMaXN0UmVmOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC/0L7QutCw0LfRi9Cy0LDRgtGMINC60L3QvtC/0LrQuCDQvdCw0LLQuNCz0LDRhtC40LguXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmF2aWdhdGVCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdGC0LXRgNCy0LDQuyDQv9C+0LrQsNC30LAg0YHQu9Cw0LnQtNC+0LIg0LIg0LzQuNC70LvQuNGB0LXQutGD0L3QtNCw0YUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGxheWVySW50ZXJ2YWw6IG51bWJlciA9IDgwMDA7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC/0YDQvtC60YDRg9GC0LrQsCDQstGL0LrQu9GO0YfQtdC90LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LUg0LHQsNC90L3QtdGA0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmFubmVyTG9jYXRpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60L7QvNC/0L7QvdC10L3RgiDQtNC+0LvQttC10L0g0YDQsNGB0YLRj9Cz0LjQstCw0YLRjNGB0Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzaXphYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC30LDQs9GA0YPQt9C60Lgg0LHQsNC90L3QtdGA0L7QsiDRgSDQutC+0LvQuNGH0LXRgdGC0LLQvtC8INC/0L7Qu9GD0YfQtdC90L3Ri9GFINCx0LDQvdC90LXRgNC+0LIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGxvYWRCYW5uZXJzRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC40LfQvtCx0YDQsNC20LXQvdC40LUg0LHQsNC90L3QtdGA0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrQmFubmVySW1nRXZlbnQ6IEV2ZW50RW1pdHRlcjxTY0lCYW5uZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0lCYW5uZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodCy0L7QudGB0YLQstC+LCDQvtGCINC60L7RgtC+0YDQvtCz0L4g0LfQsNCy0LjRgdC40YIg0L3QsNC70LjRh9C40LUg0LrQu9Cw0YHRgdCwIGAhaGlkZGVuYCDRgyBgOmhvc3RgINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuIWhpZGRlbicpXG4gICAgcHVibGljIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0L7QudGB0YLQstC+LCDQvtGCINC60L7RgtC+0YDQvtCz0L4g0LfQsNCy0LjRgdC40YIg0LLRi9GB0L7RgtCwIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHB1YmxpYyBoZWlnaHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog0KHQstC+0LnRgdGC0LLQviwg0L7RgiDQutC+0YLQvtGA0L7Qs9C+INC30LDQstC40YHQuNGCINGI0LjRgNC40L3QsCBgOmhvc3RgINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICAgIHB1YmxpYyB3aWR0aDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDQodCy0L7QudGB0YLQstC+LCDQvtGCINC60L7RgtC+0YDQvtCz0L4g0LfQsNCy0LjRgdC40YIg0YHQvtC+0YLQvdC+0YjQtdC90LjQtSBgOmhvc3RgINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYXNwZWN0LXJhdGlvJylcbiAgICBwdWJsaWMgYXNwZWN0UmF0aW86IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YLQtdC60YPRidC10LPQviDQsdCw0L3QvdC10YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVudEJhbm5lcklkOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INCx0LDQvdC90LXRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGJhbm5lcnM6IFNjSUJhbm5lcltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGD0LrQsNC30LDRgtC10LvRjCDQvNGL0YjQuCDQvdCw0YXQvtC00LjRgtGB0Y8g0L3QsNC0INCx0LDQvdC90LXRgNC+0LwuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc01vdXNlT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0Jhbm5lckNvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2RyINCe0LHRitC10LrRgiDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC+0LHQvdCw0YDRg9C20LXQvdC40LXQvCDQuNC30LzQtdC90LXQvdC40LkuXG4gICAgICogQHBhcmFtIGJhbm5lclNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LHQsNC90L3QtdGA0LDQvNC4LlxuICAgICAqIEBwYXJhbSBweENvbnZlcnRlciDQmtC70LDRgdGBINGF0Y3Qu9C/0LXRgCDQtNC70Y8g0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQv9C40LrRgdC10LvQtdC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYmFubmVyU2VydmljZTogU2NCYW5uZXJTZXJ2aWNlLCBwcml2YXRlIHB4Q29udmVydGVyOiBTY1B4Q29udmVydGVyKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpbnRlcnZhbCh0aGlzLnBsYXllckludGVydmFsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRpc2FibGVkICYmICF0aGlzLmlzTW91c2VPdmVyKSxcbiAgICAgICAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uTmV4dEJhbm5lcigpKTtcblxuICAgICAgICBpZiAodGhpcy5iYW5uZXJMb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5iYW5uZXJTZXJ2aWNlLmJhbm5lcnMkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoYmFubmVycykgPT4gYmFubmVycy5maWx0ZXIoKGJhbm5lcikgPT4gYmFubmVyLmxvY2F0aW9uID09PSB0aGlzLmJhbm5lckxvY2F0aW9uKSksXG4gICAgICAgICAgICAgICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGJhbm5lcnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYW5uZXJzID0gYmFubmVycztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoYmFubmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSBgMTAwJWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gYCR7dGhpcy5weENvbnZlcnRlci5weFRvUmVtKGJhbm5lcnNbMF0uaGVpZ2h0KX1yZW1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSBgJHt0aGlzLnB4Q29udmVydGVyLnB4VG9SZW0oYmFubmVyc1swXS53aWR0aCl9cmVtYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3BlY3RSYXRpbyA9IGAke2Jhbm5lcnNbMF0ud2lkdGh9IC8gJHtiYW5uZXJzWzBdLmhlaWdodH1gO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkQmFubmVyc0V2ZW50LmVtaXQodGhpcy5iYW5uZXJzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0L3QsNC20LDRgtC40Y8g0L3QsCDQsdCw0L3QvdC10YAsINCz0LXQvdC10YDQuNGA0YPRjtGJ0LjQuSDRgdC+0LHRi9GC0LjQtSB7QGxpbmsgY2xpY2tCYW5uZXJJbWdFdmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmFubmVyINCR0LDQvdC90LXRgCwg0L/QviDRgdGB0YvQu9C60LUg0LrQvtGC0L7RgNC+0LPQviDRgdC+0LLQtdGA0YjRkdC9INC/0LXRgNC10YXQvtC0LlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNsaWNrKGJhbm5lcjogU2NJQmFubmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChiYW5uZXIudXJsKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQmFubmVySW1nRXZlbnQuZW1pdChiYW5uZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXQutC70Y7Rh9C40YLRjNGB0Y8g0L3QsCDQv9GA0LXQtNGL0LTRg9GJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uUHJldmlvdXNCYW5uZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRCYW5uZXJJZCAtIDE7XG4gICAgICAgIHRoaXMuY3VycmVudEJhbm5lcklkID0gcHJldmlvdXMgPCAwID8gdGhpcy5iYW5uZXJzTGlzdFJlZi5sZW5ndGggKyB0aGlzLmJhbm5lcnMubGVuZ3RoIC0gMSA6IHByZXZpb3VzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINGB0LvQtdC00YPRjtGJ0LjQuSDQsdCw0L3QvdC10YAuXG4gICAgICovXG4gICAgcHVibGljIG9uTmV4dEJhbm5lcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dDogbnVtYmVyID0gdGhpcy5jdXJyZW50QmFubmVySWQgKyAxO1xuICAgICAgICB0aGlzLmN1cnJlbnRCYW5uZXJJZCA9IG5leHQgPT09IHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aCA/IDAgOiBuZXh0O1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyBtb3VzZWVudGVyLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICAgIHByaXZhdGUgbW91c2VFbnRlckhhbmRsZXI6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiAodGhpcy5pc01vdXNlT3ZlciA9IHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0YHQvtCx0YvRgtC40Y8gbW91c2VsZWF2ZS5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwcml2YXRlIG1vdXNlTGVhdmVIYW5kbGVyOiAoKSA9PiBib29sZWFuID0gKCkgPT4gKHRoaXMuaXNNb3VzZU92ZXIgPSBmYWxzZSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZVwiIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiYXNwZWN0UmF0aW9cIj5cbiAgICA8dHVpLWNhcm91c2VsIGNsYXNzPVwiYmctd2hpdGUgdy1mdWxsIHNoYWRvdy1zYyAhYWJzb2x1dGUgcm91bmRlZCBvdmVyZmxvdy1oaWRkZW5cIiBbKGluZGV4KV09XCJjdXJyZW50QmFubmVySWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBiYW5uZXJzTGlzdFJlZjsgaW5kZXggYXMgaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgKnR1aUl0ZW0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJhbm5lciBvZiBiYW5uZXJzOyBpbmRleCBhcyBpbmRleFwiPlxuICAgICAgICAgICAgPGEgKnR1aUl0ZW0gKGNsaWNrKT1cIm9uQ2xpY2soYmFubmVyKVwiIFthdHRyLmhyZWZdPVwiYmFubmVyLnVybCA/IGJhbm5lci51cmwgOiBudWxsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgW3RpdGxlXT1cImJhbm5lci50aXRsZVwiIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImJhbm5lci5pbWFnZVwiIGFsdD1cItCR0LDQvdC90LXRgFwiIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiYXNwZWN0UmF0aW9cIiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLW5vbmUgb2JqZWN0LWNvdmVyIGgtZnVsbCB3LWZ1bGxcIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3R1aS1jYXJvdXNlbD5cbiAgICA8ZGl2ICpuZ0lmPVwibmF2aWdhdGVCdXR0b24gJiYgIWRpc2FibGVkICYmICh0aGlzLmJhbm5lcnNMaXN0UmVmLmxlbmd0aCArIHRoaXMuYmFubmVycy5sZW5ndGgpID4gMVwiIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBncm93IGp1c3RpZnktYmV0d2VlbiBwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIGljb249XCJ0dWlJY29uQ2hldnJvbkxlZnRMYXJnZVwiIHNpemU9XCJtXCIgc2hhcGU9XCJyb3VuZGVkXCIgYXBwZWFyYW5jZT1cImZsYXRcIiAoY2xpY2spPVwib25QcmV2aW91c0Jhbm5lcigpXCIgY2xhc3M9XCJhcnJvdy1idG5cIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIGljb249XCJ0dWlJY29uQ2hldnJvblJpZ2h0TGFyZ2VcIiBzaXplPVwibVwiIHNoYXBlPVwicm91bmRlZFwiIGFwcGVhcmFuY2U9XCJmbGF0XCIgKGNsaWNrKT1cIm9uTmV4dEJhbm5lcigpXCIgY2xhc3M9XCJhcnJvdy1idG5cIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPHR1aS1wYWdpbmF0aW9uXG4gICAgKm5nSWY9XCJuYXZpZ2F0ZUJ1dHRvbiAmJiAhZGlzYWJsZWQgJiYgKHRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aCkgPiAxXCJcbiAgICBzaXplPVwic1wiXG4gICAgY2xhc3M9XCJtdC0zXCJcbiAgICBbbGVuZ3RoXT1cInRoaXMuYmFubmVyc0xpc3RSZWYubGVuZ3RoICsgdGhpcy5iYW5uZXJzLmxlbmd0aFwiXG4gICAgWyhpbmRleCldPVwiY3VycmVudEJhbm5lcklkXCJcbj48L3R1aS1wYWdpbmF0aW9uPlxuIl19
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { ScBannerComponent } from './sc-banner.component';
|
4
|
+
import { RouterModule } from '@angular/router';
|
5
|
+
import { TuiButtonModule } from '@taiga-ui/core';
|
6
|
+
import { MatRippleModule } from '@angular/material/core';
|
7
|
+
import { TuiCarouselModule, TuiPaginationModule } from '@taiga-ui/kit';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
/**
|
10
|
+
* Модуль баннеров.
|
11
|
+
*/
|
12
|
+
export class ScBannerModule {
|
13
|
+
}
|
14
|
+
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, TuiPaginationModule], exports: [ScBannerComponent] });
|
16
|
+
ScBannerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule, TuiPaginationModule] });
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScBannerModule, decorators: [{
|
18
|
+
type: NgModule,
|
19
|
+
args: [{
|
20
|
+
declarations: [ScBannerComponent],
|
21
|
+
imports: [CommonModule, RouterModule, TuiButtonModule, MatRippleModule, TuiCarouselModule, TuiPaginationModule],
|
22
|
+
exports: [ScBannerComponent],
|
23
|
+
}]
|
24
|
+
}] });
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYmFubmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9iYW5uZXIvc2MtYmFubmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXZFOztHQUVHO0FBTUgsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFKUixpQkFBaUIsYUFDdEIsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixhQUNwRyxpQkFBaUI7NEdBRWxCLGNBQWMsWUFIYixZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1COzJGQUdyRyxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7b0JBQy9HLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2NCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL3NjLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFR1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVHVpQ2Fyb3VzZWxNb2R1bGUsIFR1aVBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LHQsNC90L3QtdGA0L7Qsi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTY0Jhbm5lckNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBUdWlCdXR0b25Nb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSwgVHVpQ2Fyb3VzZWxNb2R1bGUsIFR1aVBhZ2luYXRpb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTY0Jhbm5lckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQmFubmVyTW9kdWxlIHt9XG4iXX0=
|