nextalys-carousel 0.0.67 → 0.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/common-types.mjs +4 -0
- package/esm2022/lib/nxs-carousel/common-types.mjs +4 -0
- package/esm2022/lib/nxs-carousel/nxs-carousel/carousel-events.mjs +5 -0
- package/{esm2020 → esm2022}/lib/nxs-carousel/nxs-carousel/nxs-carousel-dialog.component.mjs +11 -9
- package/esm2022/lib/nxs-carousel/nxs-carousel/nxs-carousel.component.mjs +288 -0
- package/esm2022/lib/nxs-carousel/nxs-carousel/nxs-carousel.module.mjs +75 -0
- package/{esm2020 → esm2022}/lib/nxs-carousel/nxs-carousel/swiper-directives.mjs +4 -4
- package/esm2022/lib/nxs-carousel-mock/common-types.mjs +4 -0
- package/esm2022/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-mock.component.mjs +45 -0
- package/{esm2020 → esm2022}/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-mock.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/nxs-carousel-mock/nxs-carousel-mock/swiper-directives.mjs +4 -4
- package/{fesm2015 → fesm2022}/nextalys-carousel-lib-nxs-carousel-mock.mjs +23 -24
- package/{fesm2020 → fesm2022}/nextalys-carousel-lib-nxs-carousel-mock.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/nextalys-carousel-lib-nxs-carousel.mjs +84 -52
- package/fesm2022/nextalys-carousel-lib-nxs-carousel.mjs.map +1 -0
- package/{fesm2015 → fesm2022}/nextalys-carousel.mjs +3 -3
- package/{fesm2020 → fesm2022}/nextalys-carousel.mjs.map +1 -1
- package/lib/nxs-carousel/nxs-carousel/nxs-carousel-dialog.component.d.ts +1 -1
- package/lib/nxs-carousel/nxs-carousel/nxs-carousel.component.d.ts +3 -2
- package/lib/nxs-carousel/nxs-carousel/nxs-carousel.component.d.ts.map +1 -1
- package/lib/nxs-carousel/nxs-carousel/swiper-directives.d.ts +1 -1
- package/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-mock.component.d.ts +1 -1
- package/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-types.d.ts +1 -1
- package/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-types.d.ts.map +1 -1
- package/lib/nxs-carousel-mock/nxs-carousel-mock/swiper-directives.d.ts +1 -1
- package/package.json +11 -21
- package/esm2020/common-types.mjs +0 -6
- package/esm2020/lib/nxs-carousel/common-types.mjs +0 -6
- package/esm2020/lib/nxs-carousel/nxs-carousel/carousel-events.mjs +0 -5
- package/esm2020/lib/nxs-carousel/nxs-carousel/nxs-carousel.component.mjs +0 -256
- package/esm2020/lib/nxs-carousel/nxs-carousel/nxs-carousel.module.mjs +0 -75
- package/esm2020/lib/nxs-carousel-mock/common-types.mjs +0 -6
- package/esm2020/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-mock.component.mjs +0 -44
- package/fesm2015/nextalys-carousel-lib-nxs-carousel-mock.mjs.map +0 -1
- package/fesm2015/nextalys-carousel-lib-nxs-carousel.mjs +0 -402
- package/fesm2015/nextalys-carousel-lib-nxs-carousel.mjs.map +0 -1
- package/fesm2015/nextalys-carousel.mjs.map +0 -1
- package/fesm2020/nextalys-carousel-lib-nxs-carousel-mock.mjs +0 -101
- package/fesm2020/nextalys-carousel-lib-nxs-carousel.mjs.map +0 -1
- package/fesm2020/nextalys-carousel.mjs +0 -14
- /package/{esm2020 → esm2022}/lib/nxs-carousel/nextalys-carousel-lib-nxs-carousel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nxs-carousel/nxs-carousel/nxs-carousel-types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nxs-carousel/public-api-carousel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nxs-carousel-mock/nextalys-carousel-lib-nxs-carousel-mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nxs-carousel-mock/nxs-carousel-mock/nxs-carousel-types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/nxs-carousel-mock/public-api-carousel-mock.mjs +0 -0
- /package/{esm2020 → esm2022}/nextalys-carousel.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, Input, ViewChild, Output, EventEmitter, PLATFORM_ID, Inject, Optional, NgZone, ContentChildren, TemplateRef } from '@angular/core';
|
|
2
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
-
import { EventsCollector } from 'nextalys-js-helpers/dist/events';
|
|
5
|
-
// import Swiper core and required modules
|
|
6
|
-
import SwiperCore, { Navigation, Pagination, Autoplay, Lazy, Thumbs } from 'swiper';
|
|
7
|
-
//Virtual,Scrollbar,A11y
|
|
8
|
-
import { SwiperComponent } from 'swiper/angular';
|
|
9
|
-
import { NxsSwiperTemplateDirective } from './swiper-directives';
|
|
10
|
-
import { NxsCarouselModuleConfig } from '../common-types';
|
|
11
|
-
import { CarouselEvents } from './carousel-events';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/material/dialog";
|
|
14
|
-
import * as i2 from "../common-types";
|
|
15
|
-
import * as i3 from "@angular/common";
|
|
16
|
-
import * as i4 from "swiper/angular";
|
|
17
|
-
// install Swiper modules
|
|
18
|
-
SwiperCore.use([Navigation, Pagination, Autoplay, Lazy, Thumbs]);
|
|
19
|
-
export class NxsCarouselComponent {
|
|
20
|
-
constructor(matDialog, zone, platformId, config) {
|
|
21
|
-
this.matDialog = matDialog;
|
|
22
|
-
this.zone = zone;
|
|
23
|
-
this.platformId = platformId;
|
|
24
|
-
this.config = config;
|
|
25
|
-
this.lazy = true;
|
|
26
|
-
this.eventsCollector = new EventsCollector();
|
|
27
|
-
this.options = null;
|
|
28
|
-
this.thumbnailsOptions = null;
|
|
29
|
-
this.hasHtmlContent = false;
|
|
30
|
-
this.slidesCount = 0;
|
|
31
|
-
this.slideChange = new EventEmitter();
|
|
32
|
-
this.currentSlide = 0;
|
|
33
|
-
this.slideClick = new EventEmitter();
|
|
34
|
-
this.isBrowser = false;
|
|
35
|
-
if (!this.config)
|
|
36
|
-
this.config = { debug: false };
|
|
37
|
-
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
38
|
-
this.log('constructor - isBrowser', this.isBrowser);
|
|
39
|
-
this.options = this.setDefaultOptions(undefined, false);
|
|
40
|
-
}
|
|
41
|
-
set setOptions(val) {
|
|
42
|
-
this.options = this.setDefaultOptions(val, false);
|
|
43
|
-
this.setThumbnailsOptions();
|
|
44
|
-
}
|
|
45
|
-
log(...args) {
|
|
46
|
-
if (!this.config.debug)
|
|
47
|
-
return;
|
|
48
|
-
console.log('[NxsCarousel]', ...args);
|
|
49
|
-
}
|
|
50
|
-
destroy() {
|
|
51
|
-
if (!this.isBrowser) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
this.eventsCollector?.unsubscribeAll();
|
|
55
|
-
}
|
|
56
|
-
ngOnDestroy() {
|
|
57
|
-
this.destroy();
|
|
58
|
-
}
|
|
59
|
-
ngAfterViewInit() {
|
|
60
|
-
// console.log('thi.contents', this.contents);
|
|
61
|
-
// this.initSlides();
|
|
62
|
-
// this.createSlider(true);
|
|
63
|
-
}
|
|
64
|
-
getMainSliderHeight() {
|
|
65
|
-
if (!this.options)
|
|
66
|
-
return '';
|
|
67
|
-
if (this.options.nxsThumbnails && this.options.nxsThumbnails.show) {
|
|
68
|
-
if (this.options.nxsThumbnails.onMainSlider) {
|
|
69
|
-
return '100%';
|
|
70
|
-
}
|
|
71
|
-
else if (this.options.nxsThumbnails.percentHeight) {
|
|
72
|
-
return (100 - this.options.nxsThumbnails.percentHeight) + '%';
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return '';
|
|
76
|
-
}
|
|
77
|
-
setDefaultOptions(options, forDialog) {
|
|
78
|
-
if (!options && forDialog) {
|
|
79
|
-
options = {
|
|
80
|
-
nxsShowNavigationBullets: true, loop: true, nxsThumbnails: { show: true }, effect: 'slide', nxsShowNavigationArrows: true, nxsShowImagesCount: true,
|
|
81
|
-
lazy: this.lazy,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
else if (!options) {
|
|
85
|
-
options = {
|
|
86
|
-
nxsShowNavigationBullets: true, loop: true,
|
|
87
|
-
nxsThumbnails: { show: false }, effect: 'slide', nxsShowNavigationArrows: true, nxsShowImagesCount: false, nxsCarouselDialogOptions: {},
|
|
88
|
-
lazy: this.lazy,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
if (options.nxsCarouselDialogOptions) {
|
|
92
|
-
if (typeof options.nxsCarouselDialogOptions.nxsThumbnails === 'undefined')
|
|
93
|
-
options.nxsCarouselDialogOptions.nxsThumbnails = { show: false };
|
|
94
|
-
if (typeof options.nxsCarouselDialogOptions.effect === 'undefined')
|
|
95
|
-
options.nxsCarouselDialogOptions.effect = 'slide';
|
|
96
|
-
if (typeof options.nxsCarouselDialogOptions.nxsShowNavigationArrows === 'undefined')
|
|
97
|
-
options.nxsCarouselDialogOptions.nxsShowNavigationArrows = true;
|
|
98
|
-
if (!!options.nxsCarouselDialogOptions.nxsThumbnails?.show) {
|
|
99
|
-
if (typeof options.nxsCarouselDialogOptions.nxsThumbnails.percentHeight === 'undefined')
|
|
100
|
-
options.nxsCarouselDialogOptions.nxsThumbnails.percentHeight = 20;
|
|
101
|
-
if (typeof options.nxsCarouselDialogOptions.nxsThumbnails.perView === 'undefined')
|
|
102
|
-
options.nxsCarouselDialogOptions.nxsThumbnails.perView = 10;
|
|
103
|
-
options.nxsCarouselDialogOptions.nxsThumbnails.breakpoints = {
|
|
104
|
-
640: {
|
|
105
|
-
slidesPerView: 5,
|
|
106
|
-
},
|
|
107
|
-
768: {
|
|
108
|
-
slidesPerView: 7,
|
|
109
|
-
},
|
|
110
|
-
1024: {
|
|
111
|
-
slidesPerView: 8,
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (!options.nxsThumbnails)
|
|
117
|
-
options.nxsThumbnails = { show: false };
|
|
118
|
-
if (options.nxsThumbnails.show && typeof options.nxsThumbnails.percentHeight === 'undefined')
|
|
119
|
-
options.nxsThumbnails.percentHeight = 20;
|
|
120
|
-
if (options.nxsThumbnails.show && typeof options.nxsThumbnails.perView === 'undefined')
|
|
121
|
-
options.nxsThumbnails.perView = 10;
|
|
122
|
-
if (forDialog)
|
|
123
|
-
options.nxsfullscreenOnClick = false;
|
|
124
|
-
if (options.nxsThumbnails.onMainSlider)
|
|
125
|
-
options.nxsShowNavigationBullets = false;
|
|
126
|
-
if (typeof options.lazy === 'undefined')
|
|
127
|
-
options.lazy = true;
|
|
128
|
-
if (typeof options.navigation === 'undefined')
|
|
129
|
-
options.navigation = true;
|
|
130
|
-
if (typeof options.pagination === 'undefined')
|
|
131
|
-
options.pagination = { clickable: true };
|
|
132
|
-
if (options.nxsShowNavigationBullets === false) {
|
|
133
|
-
options.pagination = false;
|
|
134
|
-
}
|
|
135
|
-
// console.log("Log ~ file: nxs-carousel.component.ts ~ line 272 ~ NxsCarouselComponent ~ setDefaultOptions ~ options", options);
|
|
136
|
-
return options;
|
|
137
|
-
}
|
|
138
|
-
setThumbnailsOptions() {
|
|
139
|
-
if (!!this.options?.nxsThumbnails?.show) {
|
|
140
|
-
this.thumbnailsOptions = {
|
|
141
|
-
slidesPerView: this.options.nxsThumbnails.perView,
|
|
142
|
-
loop: false,
|
|
143
|
-
freeMode: true,
|
|
144
|
-
// watchSlidesVisibility: true,
|
|
145
|
-
watchSlidesProgress: true,
|
|
146
|
-
breakpoints: this.options.nxsThumbnails.breakpoints,
|
|
147
|
-
// spaceBetween: 10,
|
|
148
|
-
};
|
|
149
|
-
if (this.lazy) {
|
|
150
|
-
// Disable preloading of all images
|
|
151
|
-
this.thumbnailsOptions.preloadImages = false;
|
|
152
|
-
// Enable lazy loading
|
|
153
|
-
this.thumbnailsOptions.lazy = true;
|
|
154
|
-
}
|
|
155
|
-
// console.log("Log ~ file: nxs-carousel.component.ts ~ line 184 ~ NxsCarouselComponent ~ setThumbnailsOptions ~ this.thumbnailsOptions.lazy", this.thumbnailsOptions.lazy);
|
|
156
|
-
// this.thumbnailsSliderInstance = new Swiper(this.nxsThumbnailsSliderContainer.nativeElement, thumbnailsOptions);
|
|
157
|
-
// this.options.thumbs = { swiper: this.thumbnailsSliderInstance };
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
showFullScreenCarousel(images, wrapperClass) {
|
|
161
|
-
this.options.nxsCarouselDialogOptions = this.setDefaultOptions(this.options.nxsCarouselDialogOptions, true);
|
|
162
|
-
const data = { images, wrapperClass, options: this.options.nxsCarouselDialogOptions };
|
|
163
|
-
CarouselEvents.openCarouselDialog?.emit({
|
|
164
|
-
data,
|
|
165
|
-
panelClass: 'nxs-carousel-dialog',
|
|
166
|
-
width: !!this.options.nxsCarouselDialogSize ? this.options.nxsCarouselDialogSize.width : undefined,
|
|
167
|
-
height: !!this.options.nxsCarouselDialogSize ? this.options.nxsCarouselDialogSize.height : undefined,
|
|
168
|
-
disableClose: !this.options.nxsCarouselDialogExitable,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
goToSlide(index, speed) {
|
|
172
|
-
this.swiperInstance?.slideTo(index, speed);
|
|
173
|
-
}
|
|
174
|
-
next() {
|
|
175
|
-
this.swiperInstance?.slideNext();
|
|
176
|
-
}
|
|
177
|
-
previous() {
|
|
178
|
-
this.swiperInstance?.slidePrev();
|
|
179
|
-
}
|
|
180
|
-
onSwiperThumbnails(instance) {
|
|
181
|
-
if (this.options?.nxsThumbnails?.show)
|
|
182
|
-
this.thumbnailsSwiperInstance = instance;
|
|
183
|
-
else
|
|
184
|
-
this.thumbnailsSwiperInstance = null;
|
|
185
|
-
// if (this.options?.nxsThumbnails?.show) {
|
|
186
|
-
// const optionsClone = MainHelpers.cloneObject(this.options);
|
|
187
|
-
// optionsClone.thumbs = { swiper: this.thumbnailsSwiperInstance };
|
|
188
|
-
// // this.options = optionsClone;
|
|
189
|
-
// // this.options = { ...this.options, thumbs: { swiper: this.thumbnailsSwiperInstance } };
|
|
190
|
-
// console.log("Log ~ file: nxs-carousel.component.ts ~ line 416 ~ NxsCarouselComponent ~ onSwiperThumbnails ~ this.options ", this.options);
|
|
191
|
-
// this.options.thumbs = { swiper: this.thumbnailsSwiperInstance };
|
|
192
|
-
// }
|
|
193
|
-
}
|
|
194
|
-
onSwiper(instance) {
|
|
195
|
-
this.log('swiper ready - instance', instance);
|
|
196
|
-
this.swiperInstance = instance;
|
|
197
|
-
this.swiperInstance.on('click', (swiperInstance, evt) => {
|
|
198
|
-
// console.log("Log ~ file: nxs-carousel.component.ts ~ line 392 ~ NxsCarouselComponent ~ this.swiperInstance.on ~ evt", evt);
|
|
199
|
-
const target = evt.target;
|
|
200
|
-
if (target.className.indexOf('nxs-carousel-button') !== -1 || target.className.indexOf('swiper-pagination') !== -1)
|
|
201
|
-
return;
|
|
202
|
-
this.runInZone(() => {
|
|
203
|
-
this.slideClick.next(evt);
|
|
204
|
-
if (this.options.nxsfullscreenOnClick && this.images && this.images.length && !this.hasHtmlContent) {
|
|
205
|
-
this.showFullScreenCarousel(this.images, 'fullscreen-carousel');
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
runInZone(callback, ...args) {
|
|
211
|
-
if (!this.zone) {
|
|
212
|
-
callback(args);
|
|
213
|
-
}
|
|
214
|
-
return this.zone.run(() => callback(args));
|
|
215
|
-
}
|
|
216
|
-
onSlideChange(instances) {
|
|
217
|
-
// this.swiperInstance = instance;
|
|
218
|
-
// this.log('slide change - instance', instance);
|
|
219
|
-
this.runInZone(() => {
|
|
220
|
-
this.currentSlide = this.swiperInstance?.realIndex || 0;
|
|
221
|
-
this.log('slide change - currentSlide', this.currentSlide);
|
|
222
|
-
this.slideChange.next(this.currentSlide);
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
NxsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselComponent, deps: [{ token: i1.MatDialog }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: i2.NxsCarouselModuleConfig, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
227
|
-
NxsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: NxsCarouselComponent, selector: "nxs-carousel", inputs: { lazy: "lazy", images: "images", setOptions: ["options", "setOptions"], hasHtmlContent: "hasHtmlContent" }, outputs: { slideChange: "slideChange", slideClick: "slideClick" }, queries: [{ propertyName: "contents", predicate: NxsSwiperTemplateDirective, read: TemplateRef }], viewQueries: [{ propertyName: "swiperComponent", first: true, predicate: ["swiper"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"options\"\n [ngClass]=\"{'swiper-container':true,'nxs-slider-with-thumbnails':!!options.nxsThumbnails && options.nxsThumbnails.show}\"\n [style.height]=\"getMainSliderHeight()\">\n <swiper [config]=\"options\" (swiper)=\"onSwiper($event)\" (slideChange)=\"onSlideChange($event)\"\n [thumbs]=\"{ swiper: thumbnailsSwiperInstance }\">\n <ng-container *ngIf=\"hasHtmlContent\">\n <ng-template *ngFor=\"let slide of contents\" swiperSlide>\n <ng-template [ngTemplateOutlet]=\"slide\" [ngTemplateOutletContext]=\"{\n $implicit: slide\n }\"></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!hasHtmlContent && images?.length\">\n <ng-template swiperSlide *ngFor=\"let slideImage of images\">\n <img [ngClass]=\"{'nxs-image-slide':true,'swiper-lazy':lazy}\"\n [attr.data-src]=\"lazy ? slideImage.src : null\" [src]=\"lazy ? null : slideImage.src\"\n [attr.alt]=\"slideImage.alt\" />\n <div *ngIf=\"lazy\" class=\"swiper-lazy-preloader swiper-lazy-preloader-black\"></div>\n </ng-template>\n </ng-container>\n </swiper>\n <ng-container *ngIf=\"images && options.nxsShowImagesCount\">\n <div class=\"nxs-image-counter\">\n {{currentSlide+1}} / {{images.length}}\n </div>\n </ng-container>\n</div>\n\n<div *ngIf=\"thumbnailsOptions && images?.length\"\n [style.height]=\"(!!options.nxsThumbnails && options.nxsThumbnails.show && !!options.nxsThumbnails.percentHeight) ? (options.nxsThumbnails.percentHeight + '%'):''\"\n [style.top]=\"(!!options.nxsThumbnails && options.nxsThumbnails.show && !!options.nxsThumbnails.percentHeight && options.nxsThumbnails.onMainSlider) ? ('-' + (options.nxsThumbnails.percentHeight) + '%'):''\"\n [ngClass]=\"{'swiper-container':true, 'nxs-slider-thumbnails-container':true,'nxs-slider-thumbnails-on-main-slider':options.nxsThumbnails && options.nxsThumbnails.onMainSlider}\">\n <swiper [config]=\"thumbnailsOptions\" (swiper)=\"onSwiperThumbnails($event)\">\n <ng-template swiperSlide *ngFor=\"let slideImage of images\">\n <img [ngClass]=\"{'nxs-image-slide':true,'swiper-lazy':lazy}\" [attr.data-src]=\"lazy ? slideImage.src : null\"\n [src]=\"lazy ? null : slideImage.src\" [attr.alt]=\"slideImage.alt\" />\n <div *ngIf=\"lazy\" class=\"swiper-lazy-preloader swiper-lazy-preloader-black\"></div>\n </ng-template>\n </swiper>\n</div>", styles: ["nxs-carousel{display:block;height:100%;position:relative;--swiper-navigation-color: #fff;--swiper-pagination-color: #fff;--swiper-theme-color: #fff}nxs-carousel .swiper-container{width:100%;height:100%;display:block;position:relative}nxs-carousel .swiper-container swiper{height:100%}nxs-carousel .swiper-container .swiper-wrapper .swiper-slide{height:100%;position:relative;width:auto;min-height:50px;background-size:cover;background-position:center;background-repeat:no-repeat}nxs-carousel .swiper-container .nxs-image-slide{height:100%;-o-object-fit:cover;object-fit:cover;width:100%;-o-object-position:center;object-position:center}nxs-carousel .swiper-container.nxs-slider-with-thumbnails{height:80%}nxs-carousel .swiper-container.nxs-slider-thumbnails-container{height:20%;background:transparent;padding:6px 0}nxs-carousel .swiper-container.nxs-slider-thumbnails-container .swiper-slide{cursor:pointer;border-radius:6px;margin:0 6px;border:2px solid transparent}nxs-carousel .swiper-container.nxs-slider-thumbnails-container .swiper-slide.swiper-slide-thumb-active{border:2px solid lightblue}nxs-carousel .swiper-container.nxs-slider-thumbnails-on-main-slider{top:-20%}nxs-carousel .nxs-image-counter{position:absolute;top:0;right:0;color:#fff;padding:4px;font-weight:700;z-index:10}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.SwiperComponent, selector: "swiper, [swiper]", inputs: ["enabled", "on", "direction", "touchEventsTarget", "initialSlide", "speed", "cssMode", "updateOnWindowResize", "resizeObserver", "nested", "focusableElements", "width", "height", "preventInteractionOnTransition", "userAgent", "url", "edgeSwipeDetection", "edgeSwipeThreshold", "freeMode", "autoHeight", "setWrapperSize", "virtualTranslate", "effect", "breakpoints", "spaceBetween", "slidesPerView", "maxBackfaceHiddenSlides", "grid", "slidesPerGroup", "slidesPerGroupSkip", "centeredSlides", "centeredSlidesBounds", "slidesOffsetBefore", "slidesOffsetAfter", "normalizeSlideIndex", "centerInsufficientSlides", "watchOverflow", "roundLengths", "touchRatio", "touchAngle", "simulateTouch", "shortSwipes", "longSwipes", "longSwipesRatio", "longSwipesMs", "followFinger", "allowTouchMove", "threshold", "touchMoveStopPropagation", "touchStartPreventDefault", "touchStartForcePreventDefault", "touchReleaseOnEdges", "uniqueNavElements", "resistance", "resistanceRatio", "watchSlidesProgress", "grabCursor", "preventClicks", "preventClicksPropagation", "slideToClickedSlide", "preloadImages", "updateOnImagesReady", "loop", "loopAdditionalSlides", "loopedSlides", "loopFillGroupWithBlank", "loopPreventsSlide", "rewind", "allowSlidePrev", "allowSlideNext", "swipeHandler", "noSwiping", "noSwipingClass", "noSwipingSelector", "passiveListeners", "containerModifierClass", "slideClass", "slideBlankClass", "slideActiveClass", "slideDuplicateActiveClass", "slideVisibleClass", "slideDuplicateClass", "slideNextClass", "slideDuplicateNextClass", "slidePrevClass", "slideDuplicatePrevClass", "wrapperClass", "runCallbacksOnInit", "observeParents", "observeSlideChildren", "a11y", "autoplay", "controller", "coverflowEffect", "cubeEffect", "fadeEffect", "flipEffect", "creativeEffect", "cardsEffect", "hashNavigation", "history", "keyboard", "lazy", "mousewheel", "parallax", "thumbs", "zoom", "class", "id", "navigation", "pagination", "scrollbar", "virtual", "config"], outputs: ["_beforeBreakpoint", "_containerClasses", "_slideClass", "_swiper", "activeIndexChange", "afterInit", "autoplay", "autoplayStart", "autoplayStop", "autoplayPause", "autoplayResume", "beforeDestroy", "beforeInit", "beforeLoopFix", "beforeResize", "beforeSlideChangeStart", "beforeTransitionStart", "breakpoint", "changeDirection", "click", "doubleTap", "doubleClick", "destroy", "fromEdge", "hashChange", "hashSet", "imagesReady", "init", "keyPress", "lazyImageLoad", "lazyImageReady", "loopFix", "momentumBounce", "navigationHide", "navigationShow", "observerUpdate", "orientationchange", "paginationHide", "paginationRender", "paginationShow", "paginationUpdate", "progress", "reachBeginning", "reachEnd", "realIndexChange", "resize", "scroll", "scrollbarDragEnd", "scrollbarDragMove", "scrollbarDragStart", "setTransition", "setTranslate", "slideChange", "slideChangeTransitionEnd", "slideChangeTransitionStart", "slideNextTransitionEnd", "slideNextTransitionStart", "slidePrevTransitionEnd", "slidePrevTransitionStart", "slideResetTransitionStart", "slideResetTransitionEnd", "sliderMove", "sliderFirstMove", "slidesLengthChange", "slidesGridLengthChange", "snapGridLengthChange", "snapIndexChange", "tap", "toEdge", "touchEnd", "touchMove", "touchMoveOpposite", "touchStart", "transitionEnd", "transitionStart", "update", "zoomChange", "swiper", "lock", "unlock"] }, { kind: "directive", type: i4.SwiperSlideDirective, selector: "ng-template[swiperSlide]", inputs: ["virtualIndex", "class", "ngClass", "data-swiper-autoplay", "zoom"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselComponent, decorators: [{
|
|
229
|
-
type: Component,
|
|
230
|
-
args: [{ selector: 'nxs-carousel', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"options\"\n [ngClass]=\"{'swiper-container':true,'nxs-slider-with-thumbnails':!!options.nxsThumbnails && options.nxsThumbnails.show}\"\n [style.height]=\"getMainSliderHeight()\">\n <swiper [config]=\"options\" (swiper)=\"onSwiper($event)\" (slideChange)=\"onSlideChange($event)\"\n [thumbs]=\"{ swiper: thumbnailsSwiperInstance }\">\n <ng-container *ngIf=\"hasHtmlContent\">\n <ng-template *ngFor=\"let slide of contents\" swiperSlide>\n <ng-template [ngTemplateOutlet]=\"slide\" [ngTemplateOutletContext]=\"{\n $implicit: slide\n }\"></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!hasHtmlContent && images?.length\">\n <ng-template swiperSlide *ngFor=\"let slideImage of images\">\n <img [ngClass]=\"{'nxs-image-slide':true,'swiper-lazy':lazy}\"\n [attr.data-src]=\"lazy ? slideImage.src : null\" [src]=\"lazy ? null : slideImage.src\"\n [attr.alt]=\"slideImage.alt\" />\n <div *ngIf=\"lazy\" class=\"swiper-lazy-preloader swiper-lazy-preloader-black\"></div>\n </ng-template>\n </ng-container>\n </swiper>\n <ng-container *ngIf=\"images && options.nxsShowImagesCount\">\n <div class=\"nxs-image-counter\">\n {{currentSlide+1}} / {{images.length}}\n </div>\n </ng-container>\n</div>\n\n<div *ngIf=\"thumbnailsOptions && images?.length\"\n [style.height]=\"(!!options.nxsThumbnails && options.nxsThumbnails.show && !!options.nxsThumbnails.percentHeight) ? (options.nxsThumbnails.percentHeight + '%'):''\"\n [style.top]=\"(!!options.nxsThumbnails && options.nxsThumbnails.show && !!options.nxsThumbnails.percentHeight && options.nxsThumbnails.onMainSlider) ? ('-' + (options.nxsThumbnails.percentHeight) + '%'):''\"\n [ngClass]=\"{'swiper-container':true, 'nxs-slider-thumbnails-container':true,'nxs-slider-thumbnails-on-main-slider':options.nxsThumbnails && options.nxsThumbnails.onMainSlider}\">\n <swiper [config]=\"thumbnailsOptions\" (swiper)=\"onSwiperThumbnails($event)\">\n <ng-template swiperSlide *ngFor=\"let slideImage of images\">\n <img [ngClass]=\"{'nxs-image-slide':true,'swiper-lazy':lazy}\" [attr.data-src]=\"lazy ? slideImage.src : null\"\n [src]=\"lazy ? null : slideImage.src\" [attr.alt]=\"slideImage.alt\" />\n <div *ngIf=\"lazy\" class=\"swiper-lazy-preloader swiper-lazy-preloader-black\"></div>\n </ng-template>\n </swiper>\n</div>", styles: ["nxs-carousel{display:block;height:100%;position:relative;--swiper-navigation-color: #fff;--swiper-pagination-color: #fff;--swiper-theme-color: #fff}nxs-carousel .swiper-container{width:100%;height:100%;display:block;position:relative}nxs-carousel .swiper-container swiper{height:100%}nxs-carousel .swiper-container .swiper-wrapper .swiper-slide{height:100%;position:relative;width:auto;min-height:50px;background-size:cover;background-position:center;background-repeat:no-repeat}nxs-carousel .swiper-container .nxs-image-slide{height:100%;-o-object-fit:cover;object-fit:cover;width:100%;-o-object-position:center;object-position:center}nxs-carousel .swiper-container.nxs-slider-with-thumbnails{height:80%}nxs-carousel .swiper-container.nxs-slider-thumbnails-container{height:20%;background:transparent;padding:6px 0}nxs-carousel .swiper-container.nxs-slider-thumbnails-container .swiper-slide{cursor:pointer;border-radius:6px;margin:0 6px;border:2px solid transparent}nxs-carousel .swiper-container.nxs-slider-thumbnails-container .swiper-slide.swiper-slide-thumb-active{border:2px solid lightblue}nxs-carousel .swiper-container.nxs-slider-thumbnails-on-main-slider{top:-20%}nxs-carousel .nxs-image-counter{position:absolute;top:0;right:0;color:#fff;padding:4px;font-weight:700;z-index:10}\n"] }]
|
|
231
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
232
|
-
type: Inject,
|
|
233
|
-
args: [PLATFORM_ID]
|
|
234
|
-
}] }, { type: i2.NxsCarouselModuleConfig, decorators: [{
|
|
235
|
-
type: Optional
|
|
236
|
-
}] }]; }, propDecorators: { contents: [{
|
|
237
|
-
type: ContentChildren,
|
|
238
|
-
args: [NxsSwiperTemplateDirective, { read: TemplateRef }]
|
|
239
|
-
}], swiperComponent: [{
|
|
240
|
-
type: ViewChild,
|
|
241
|
-
args: ['swiper', { static: false }]
|
|
242
|
-
}], lazy: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], images: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], setOptions: [{
|
|
247
|
-
type: Input,
|
|
248
|
-
args: ['options']
|
|
249
|
-
}], hasHtmlContent: [{
|
|
250
|
-
type: Input
|
|
251
|
-
}], slideChange: [{
|
|
252
|
-
type: Output
|
|
253
|
-
}], slideClick: [{
|
|
254
|
-
type: Output
|
|
255
|
-
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9ueHMtY2Fyb3VzZWwvbnhzLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9ueHMtY2Fyb3VzZWwvbnhzLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUUxTCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLDBDQUEwQztBQUMxQyxPQUFPLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBeUIsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNHLHdCQUF3QjtBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBRW5ELHlCQUF5QjtBQUN6QixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxD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QUFjO3NCQURiLEtBQUs7Z0JBT04sV0FBVztzQkFEVixNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBQTEFURk9STV9JRCwgSW5qZWN0LCBPcHRpb25hbCwgTmdab25lLCBDb250ZW50Q2hpbGRyZW4sIFRlbXBsYXRlUmVmLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnhzQ2Fyb3VzZWxEaWFsb2dEYXRhLCBOeHNDYXJvdXNlbE9wdGlvbnMgfSBmcm9tICcuL254cy1jYXJvdXNlbC10eXBlcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRzQ29sbGVjdG9yIH0gZnJvbSAnbmV4dGFseXMtanMtaGVscGVycy9kaXN0L2V2ZW50cyc7XG4vLyBpbXBvcnQgU3dpcGVyIGNvcmUgYW5kIHJlcXVpcmVkIG1vZHVsZXNcbmltcG9ydCBTd2lwZXJDb3JlLCB7IE5hdmlnYXRpb24sIFBhZ2luYXRpb24sIEF1dG9wbGF5LCBMYXp5LCBTd2lwZXIsIFN3aXBlck9wdGlvbnMsIFRodW1icyB9IGZyb20gJ3N3aXBlcic7XG4vL1ZpcnR1YWwsU2Nyb2xsYmFyLEExMXlcbmltcG9ydCB7IFN3aXBlckNvbXBvbmVudCB9IGZyb20gJ3N3aXBlci9hbmd1bGFyJztcbmltcG9ydCB7IE54c1N3aXBlclRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9zd2lwZXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbEltYWdlLCBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi10eXBlcyc7XG5pbXBvcnQgeyBDYXJvdXNlbEV2ZW50cyB9IGZyb20gJy4vY2Fyb3VzZWwtZXZlbnRzJztcblxuLy8gaW5zdGFsbCBTd2lwZXIgbW9kdWxlc1xuU3dpcGVyQ29yZS51c2UoW05hdmlnYXRpb24sIFBhZ2luYXRpb24sIEF1dG9wbGF5LCBMYXp5LCBUaHVtYnNdKTtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbnhzLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnhzLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ueHMtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBOeHNDYXJvdXNlbENvbXBvbmVudCB7XG4gICAgQENvbnRlbnRDaGlsZHJlbihOeHNTd2lwZXJUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGNvbnRlbnRzITogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3N3aXBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHN3aXBlckNvbXBvbmVudD86IFN3aXBlckNvbXBvbmVudDtcbiAgICBASW5wdXQoKVxuICAgIGxhenkgPSB0cnVlO1xuICAgIHByaXZhdGUgZXZlbnRzQ29sbGVjdG9yID0gbmV3IEV2ZW50c0NvbGxlY3RvcigpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2VzOiBOeHNDYXJvdXNlbEltYWdlW107XG4gICAgb3B0aW9uczogTnhzQ2Fyb3VzZWxPcHRpb25zID0gbnVsbDtcbiAgICB0aHVtYm5haWxzT3B0aW9uczogU3dpcGVyT3B0aW9ucyA9IG51bGw7XG4gICAgQElucHV0KCdvcHRpb25zJylcbiAgICBzZXQgc2V0T3B0aW9ucyh2YWw6IE54c0Nhcm91c2VsT3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnNldERlZmF1bHRPcHRpb25zKHZhbCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnNldFRodW1ibmFpbHNPcHRpb25zKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgaGFzSHRtbENvbnRlbnQgPSBmYWxzZTtcbiAgICBzbGlkZXNDb3VudDogbnVtYmVyID0gMDtcbiAgICBwcml2YXRlIHN3aXBlckluc3RhbmNlOiBTd2lwZXI7XG4gICAgdGh1bWJuYWlsc1N3aXBlckluc3RhbmNlOiBTd2lwZXI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzbGlkZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIHB1YmxpYyBjdXJyZW50U2xpZGUgPSAwO1xuICAgIEBPdXRwdXQoKVxuICAgIHNsaWRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgUG9pbnRlckV2ZW50PigpO1xuICAgIGlzQnJvd3NlciA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc/OiBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyxcblxuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnKVxuICAgICAgICAgICAgdGhpcy5jb25maWcgPSB7IGRlYnVnOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgICAgIHRoaXMubG9nKCdjb25zdHJ1Y3RvciAtIGlzQnJvd3NlcicsIHRoaXMuaXNCcm93c2VyKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5zZXREZWZhdWx0T3B0aW9ucyh1bmRlZmluZWQsIGZhbHNlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBsb2coLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5kZWJ1ZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc29sZS5sb2coJ1tOeHNDYXJvdXNlbF0nLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkZXN0cm95KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ldmVudHNDb2xsZWN0b3I/LnVuc3Vic2NyaWJlQWxsKCk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygndGhpLmNvbnRlbnRzJywgdGhpcy5jb250ZW50cyk7XG4gICAgICAgIC8vIHRoaXMuaW5pdFNsaWRlcygpO1xuICAgICAgICAvLyB0aGlzLmNyZWF0ZVNsaWRlcih0cnVlKTtcbiAgICB9XG4gICAgZ2V0TWFpblNsaWRlckhlaWdodCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscyAmJiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMub25NYWluU2xpZGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxMDAlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDEwMCAtIHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQpICsgJyUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0T3B0aW9ucyhvcHRpb25zOiBOeHNDYXJvdXNlbE9wdGlvbnMsIGZvckRpYWxvZzogYm9vbGVhbikge1xuICAgICAgICBpZiAoIW9wdGlvbnMgJiYgZm9yRGlhbG9nKSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIG54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0czogdHJ1ZSwgbG9vcDogdHJ1ZSwgbnhzVGh1bWJuYWlsczogeyBzaG93OiB0cnVlIH0sIGVmZmVjdDogJ3NsaWRlJywgbnhzU2hvd05hdmlnYXRpb25BcnJvd3M6IHRydWUsIG54c1Nob3dJbWFnZXNDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYXp5OiB0aGlzLmxhenksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIG54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0czogdHJ1ZSwgbG9vcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBueHNUaHVtYm5haWxzOiB7IHNob3c6IGZhbHNlIH0sIGVmZmVjdDogJ3NsaWRlJywgbnhzU2hvd05hdmlnYXRpb25BcnJvd3M6IHRydWUsIG54c1Nob3dJbWFnZXNDb3VudDogZmFsc2UsIG54c0Nhcm91c2VsRGlhbG9nT3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgbGF6eTogdGhpcy5sYXp5LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscyA9IHsgc2hvdzogZmFsc2UgfTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMuZWZmZWN0ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5lZmZlY3QgPSAnc2xpZGUnO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNTaG93TmF2aWdhdGlvbkFycm93cyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzU2hvd05hdmlnYXRpb25BcnJvd3MgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoISFvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzPy5zaG93KSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQgPSAyMDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9IDEwO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMuYnJlYWtwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIDY0MDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA3LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAxMDI0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA4LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLm54c1RodW1ibmFpbHMpXG4gICAgICAgICAgICBvcHRpb25zLm54c1RodW1ibmFpbHMgPSB7IHNob3c6IGZhbHNlIH07XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93ICYmIHR5cGVvZiBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9IDIwO1xuXG4gICAgICAgIGlmIChvcHRpb25zLm54c1RodW1ibmFpbHMuc2hvdyAmJiB0eXBlb2Ygb3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlclZpZXcgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgb3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlclZpZXcgPSAxMDtcblxuXG4gICAgICAgIGlmIChmb3JEaWFsb2cpXG4gICAgICAgICAgICBvcHRpb25zLm54c2Z1bGxzY3JlZW5PbkNsaWNrID0gZmFsc2U7XG4gICAgICAgIGlmIChvcHRpb25zLm54c1RodW1ibmFpbHMub25NYWluU2xpZGVyKVxuICAgICAgICAgICAgb3B0aW9ucy5ueHNTaG93TmF2aWdhdGlvbkJ1bGxldHMgPSBmYWxzZTtcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubGF6eSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICBvcHRpb25zLmxhenkgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5uYXZpZ2F0aW9uID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIG9wdGlvbnMubmF2aWdhdGlvbiA9IHRydWU7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wYWdpbmF0aW9uID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIG9wdGlvbnMucGFnaW5hdGlvbiA9IHsgY2xpY2thYmxlOiB0cnVlIH07XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubnhzU2hvd05hdmlnYXRpb25CdWxsZXRzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJMb2cgfiBmaWxlOiBueHMtY2Fyb3VzZWwuY29tcG9uZW50LnRzIH4gbGluZSAyNzIgfiBOeHNDYXJvdXNlbENvbXBvbmVudCB+IHNldERlZmF1bHRPcHRpb25zIH4gb3B0aW9uc1wiLCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRodW1ibmFpbHNPcHRpb25zKCkge1xuICAgICAgICBpZiAoISF0aGlzLm9wdGlvbnM/Lm54c1RodW1ibmFpbHM/LnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsc09wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmcmVlTW9kZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAvLyB3YXRjaFNsaWRlc1Zpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBicmVha3BvaW50czogdGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMuYnJlYWtwb2ludHMsXG4gICAgICAgICAgICAgICAgLy8gc3BhY2VCZXR3ZWVuOiAxMCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICAgICAgICAgICAgLy8gRGlzYWJsZSBwcmVsb2FkaW5nIG9mIGFsbCBpbWFnZXNcbiAgICAgICAgICAgICAgICB0aGlzLnRodW1ibmFpbHNPcHRpb25zLnByZWxvYWRJbWFnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBFbmFibGUgbGF6eSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgdGhpcy50aHVtYm5haWxzT3B0aW9ucy5sYXp5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiTG9nIH4gZmlsZTogbnhzLWNhcm91c2VsLmNvbXBvbmVudC50cyB+IGxpbmUgMTg0IH4gTnhzQ2Fyb3VzZWxDb21wb25lbnQgfiBzZXRUaHVtYm5haWxzT3B0aW9ucyB+ICAgdGhpcy50aHVtYm5haWxzT3B0aW9ucy5sYXp5XCIsIHRoaXMudGh1bWJuYWlsc09wdGlvbnMubGF6eSk7XG5cbiAgICAgICAgICAgIC8vIHRoaXMudGh1bWJuYWlsc1NsaWRlckluc3RhbmNlID0gbmV3IFN3aXBlcih0aGlzLm54c1RodW1ibmFpbHNTbGlkZXJDb250YWluZXIubmF0aXZlRWxlbWVudCwgdGh1bWJuYWlsc09wdGlvbnMpO1xuICAgICAgICAgICAgLy8gdGhpcy5vcHRpb25zLnRodW1icyA9IHsgc3dpcGVyOiB0aGlzLnRodW1ibmFpbHNTbGlkZXJJbnN0YW5jZSB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBzaG93RnVsbFNjcmVlbkNhcm91c2VsKGltYWdlczogTnhzQ2Fyb3VzZWxJbWFnZVtdLCB3cmFwcGVyQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucyA9IHRoaXMuc2V0RGVmYXVsdE9wdGlvbnModGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucywgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGRhdGE6IE54c0Nhcm91c2VsRGlhbG9nRGF0YSA9IHsgaW1hZ2VzLCB3cmFwcGVyQ2xhc3MsIG9wdGlvbnM6IHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMgfTtcbiAgICAgICAgQ2Fyb3VzZWxFdmVudHMub3BlbkNhcm91c2VsRGlhbG9nPy5lbWl0KHtcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAnbnhzLWNhcm91c2VsLWRpYWxvZycsXG4gICAgICAgICAgICB3aWR0aDogISF0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dTaXplID8gdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZS53aWR0aCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGhlaWdodDogISF0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dTaXplID8gdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZS5oZWlnaHQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6ICF0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dFeGl0YWJsZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdvVG9TbGlkZShpbmRleDogbnVtYmVyLCBzcGVlZD86IG51bWJlcikge1xuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlPy5zbGlkZVRvKGluZGV4LCBzcGVlZCk7XG4gICAgfVxuICAgIG5leHQoKSB7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2U/LnNsaWRlTmV4dCgpO1xuICAgIH1cbiAgICBwcmV2aW91cygpIHtcbiAgICAgICAgdGhpcy5zd2lwZXJJbnN0YW5jZT8uc2xpZGVQcmV2KCk7XG4gICAgfVxuICAgIG9uU3dpcGVyVGh1bWJuYWlscyhpbnN0YW5jZTogU3dpcGVyKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnM/Lm54c1RodW1ibmFpbHM/LnNob3cpXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbHNTd2lwZXJJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbHNTd2lwZXJJbnN0YW5jZSA9IG51bGw7XG5cbiAgICAgICAgLy8gaWYgKHRoaXMub3B0aW9ucz8ubnhzVGh1bWJuYWlscz8uc2hvdykge1xuICAgICAgICAvLyAgICAgY29uc3Qgb3B0aW9uc0Nsb25lID0gTWFpbkhlbHBlcnMuY2xvbmVPYmplY3QodGhpcy5vcHRpb25zKTtcbiAgICAgICAgLy8gICAgIG9wdGlvbnNDbG9uZS50aHVtYnMgPSB7IHN3aXBlcjogdGhpcy50aHVtYm5haWxzU3dpcGVySW5zdGFuY2UgfTtcbiAgICAgICAgLy8gICAgIC8vIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNDbG9uZTtcbiAgICAgICAgLy8gICAgIC8vIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCB0aHVtYnM6IHsgc3dpcGVyOiB0aGlzLnRodW1ibmFpbHNTd2lwZXJJbnN0YW5jZSB9IH07XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIkxvZyB+IGZpbGU6IG54cy1jYXJvdXNlbC5jb21wb25lbnQudHMgfiBsaW5lIDQxNiB+IE54c0Nhcm91c2VsQ29tcG9uZW50IH4gb25Td2lwZXJUaHVtYm5haWxzIH4gICAgdGhpcy5vcHRpb25zIFwiLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAvLyAgICAgdGhpcy5vcHRpb25zLnRodW1icyA9IHsgc3dpcGVyOiB0aGlzLnRodW1ibmFpbHNTd2lwZXJJbnN0YW5jZSB9O1xuICAgICAgICAvLyB9XG4gICAgfVxuICAgIG9uU3dpcGVyKGluc3RhbmNlOiBTd2lwZXIpIHtcbiAgICAgICAgdGhpcy5sb2coJ3N3aXBlciByZWFkeSAtIGluc3RhbmNlJywgaW5zdGFuY2UpO1xuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2Uub24oJ2NsaWNrJywgKHN3aXBlckluc3RhbmNlLCBldnQpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiTG9nIH4gZmlsZTogbnhzLWNhcm91c2VsLmNvbXBvbmVudC50cyB+IGxpbmUgMzkyIH4gTnhzQ2Fyb3VzZWxDb21wb25lbnQgfiB0aGlzLnN3aXBlckluc3RhbmNlLm9uIH4gZXZ0XCIsIGV2dCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHRhcmdldC5jbGFzc05hbWUuaW5kZXhPZignbnhzLWNhcm91c2VsLWJ1dHRvbicpICE9PSAtMSB8fCB0YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoJ3N3aXBlci1wYWdpbmF0aW9uJykgIT09IC0xKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucnVuSW5ab25lKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQ2xpY2submV4dChldnQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubnhzZnVsbHNjcmVlbk9uQ2xpY2sgJiYgdGhpcy5pbWFnZXMgJiYgdGhpcy5pbWFnZXMubGVuZ3RoICYmICF0aGlzLmhhc0h0bWxDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Z1bGxTY3JlZW5DYXJvdXNlbCh0aGlzLmltYWdlcywgJ2Z1bGxzY3JlZW4tY2Fyb3VzZWwnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBydW5JblpvbmU8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZD4oY2FsbGJhY2s6IFQsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGlmICghdGhpcy56b25lKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PiBjYWxsYmFjayhhcmdzKSk7XG4gICAgfVxuXG4gICAgb25TbGlkZUNoYW5nZShpbnN0YW5jZXM6IFN3aXBlcltdKSB7XG4gICAgICAgIC8vIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgLy8gdGhpcy5sb2coJ3NsaWRlIGNoYW5nZSAtIGluc3RhbmNlJywgaW5zdGFuY2UpO1xuICAgICAgICB0aGlzLnJ1bkluWm9uZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTbGlkZSA9IHRoaXMuc3dpcGVySW5zdGFuY2U/LnJlYWxJbmRleCB8fCAwO1xuICAgICAgICAgICAgdGhpcy5sb2coJ3NsaWRlIGNoYW5nZSAtIGN1cnJlbnRTbGlkZScsIHRoaXMuY3VycmVudFNsaWRlKTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVDaGFuZ2UubmV4dCh0aGlzLmN1cnJlbnRTbGlkZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJvcHRpb25zXCJcbiAgICBbbmdDbGFzc109XCJ7J3N3aXBlci1jb250YWluZXInOnRydWUsJ254cy1zbGlkZXItd2l0aC10aHVtYm5haWxzJzohIW9wdGlvbnMubnhzVGh1bWJuYWlscyAmJiBvcHRpb25zLm54c1RodW1ibmFpbHMuc2hvd31cIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiZ2V0TWFpblNsaWRlckhlaWdodCgpXCI+XG4gICAgPHN3aXBlciBbY29uZmlnXT1cIm9wdGlvbnNcIiAoc3dpcGVyKT1cIm9uU3dpcGVyKCRldmVudClcIiAoc2xpZGVDaGFuZ2UpPVwib25TbGlkZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3RodW1ic109XCJ7IHN3aXBlcjogdGh1bWJuYWlsc1N3aXBlckluc3RhbmNlIH1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0h0bWxDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nRm9yPVwibGV0IHNsaWRlIG9mIGNvbnRlbnRzXCIgc3dpcGVyU2xpZGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNsaWRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNsaWRlXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzSHRtbENvbnRlbnQgJiYgaW1hZ2VzPy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBzd2lwZXJTbGlkZSAqbmdGb3I9XCJsZXQgc2xpZGVJbWFnZSBvZiBpbWFnZXNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFtuZ0NsYXNzXT1cInsnbnhzLWltYWdlLXNsaWRlJzp0cnVlLCdzd2lwZXItbGF6eSc6bGF6eX1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNyY109XCJsYXp5ID8gc2xpZGVJbWFnZS5zcmMgOiBudWxsXCIgW3NyY109XCJsYXp5ID8gbnVsbCA6IHNsaWRlSW1hZ2Uuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYWx0XT1cInNsaWRlSW1hZ2UuYWx0XCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGF6eVwiIGNsYXNzPVwic3dpcGVyLWxhenktcHJlbG9hZGVyIHN3aXBlci1sYXp5LXByZWxvYWRlci1ibGFja1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zd2lwZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImltYWdlcyAmJiBvcHRpb25zLm54c1Nob3dJbWFnZXNDb3VudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibnhzLWltYWdlLWNvdW50ZXJcIj5cbiAgICAgICAgICAgIHt7Y3VycmVudFNsaWRlKzF9fSAvIHt7aW1hZ2VzLmxlbmd0aH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJ0aHVtYm5haWxzT3B0aW9ucyAmJiBpbWFnZXM/Lmxlbmd0aFwiXG4gICAgW3N0eWxlLmhlaWdodF09XCIoISFvcHRpb25zLm54c1RodW1ibmFpbHMgJiYgb3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cgJiYgISFvcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCkgPyAgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0ICsgJyUnKTonJ1wiXG4gICAgW3N0eWxlLnRvcF09XCIoISFvcHRpb25zLm54c1RodW1ibmFpbHMgJiYgb3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cgJiYgISFvcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCAmJiBvcHRpb25zLm54c1RodW1ibmFpbHMub25NYWluU2xpZGVyKSA/ICAoJy0nICsgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0KSArICclJyk6JydcIlxuICAgIFtuZ0NsYXNzXT1cInsnc3dpcGVyLWNvbnRhaW5lcic6dHJ1ZSwgJ254cy1zbGlkZXItdGh1bWJuYWlscy1jb250YWluZXInOnRydWUsJ254cy1zbGlkZXItdGh1bWJuYWlscy1vbi1tYWluLXNsaWRlcic6b3B0aW9ucy5ueHNUaHVtYm5haWxzICYmIG9wdGlvbnMubnhzVGh1bWJuYWlscy5vbk1haW5TbGlkZXJ9XCI+XG4gICAgPHN3aXBlciBbY29uZmlnXT1cInRodW1ibmFpbHNPcHRpb25zXCIgKHN3aXBlcik9XCJvblN3aXBlclRodW1ibmFpbHMoJGV2ZW50KVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgc3dpcGVyU2xpZGUgKm5nRm9yPVwibGV0IHNsaWRlSW1hZ2Ugb2YgaW1hZ2VzXCI+XG4gICAgICAgICAgICA8aW1nIFtuZ0NsYXNzXT1cInsnbnhzLWltYWdlLXNsaWRlJzp0cnVlLCdzd2lwZXItbGF6eSc6bGF6eX1cIiBbYXR0ci5kYXRhLXNyY109XCJsYXp5ID8gc2xpZGVJbWFnZS5zcmMgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImxhenkgPyBudWxsIDogc2xpZGVJbWFnZS5zcmNcIiBbYXR0ci5hbHRdPVwic2xpZGVJbWFnZS5hbHRcIiAvPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxhenlcIiBjbGFzcz1cInN3aXBlci1sYXp5LXByZWxvYWRlciBzd2lwZXItbGF6eS1wcmVsb2FkZXItYmxhY2tcIj48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3N3aXBlcj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NxsCarouselDialogComponent } from './nxs-carousel-dialog.component';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import { MatDialog, MatDialogModule } from '@angular/material/dialog';
|
|
7
|
-
import { NxsCarouselComponent } from './nxs-carousel.component';
|
|
8
|
-
import { SwiperModule } from 'swiper/angular';
|
|
9
|
-
import { NxsSwiperTemplateDirective } from './swiper-directives';
|
|
10
|
-
import { NxsCarouselModuleConfig } from '../common-types';
|
|
11
|
-
import { CarouselEvents } from './carousel-events';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/material/dialog";
|
|
14
|
-
export class NxsCarouselModule {
|
|
15
|
-
constructor(matDialog) {
|
|
16
|
-
NxsCarouselModule.subscribeToOpenDialog(matDialog);
|
|
17
|
-
}
|
|
18
|
-
static subscribeToOpenDialog(matDialog) {
|
|
19
|
-
if (this.openDialogSubscribed) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.openDialogSubscribed = true;
|
|
23
|
-
CarouselEvents.openCarouselDialog.subscribe((data) => {
|
|
24
|
-
if (NxsCarouselDialogComponent.dialogOpened) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
matDialog.open(NxsCarouselDialogComponent, data);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
static forRoot(config) {
|
|
31
|
-
return {
|
|
32
|
-
ngModule: NxsCarouselModule,
|
|
33
|
-
providers: [
|
|
34
|
-
{ provide: NxsCarouselModuleConfig, useValue: config },
|
|
35
|
-
],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
NxsCarouselModule.openDialogSubscribed = false;
|
|
40
|
-
NxsCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselModule, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
-
NxsCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselModule, declarations: [NxsCarouselComponent,
|
|
42
|
-
NxsCarouselDialogComponent,
|
|
43
|
-
NxsSwiperTemplateDirective], imports: [CommonModule,
|
|
44
|
-
MatIconModule,
|
|
45
|
-
MatButtonModule,
|
|
46
|
-
MatDialogModule,
|
|
47
|
-
SwiperModule], exports: [NxsCarouselComponent,
|
|
48
|
-
NxsSwiperTemplateDirective] });
|
|
49
|
-
NxsCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselModule, imports: [CommonModule,
|
|
50
|
-
MatIconModule,
|
|
51
|
-
MatButtonModule,
|
|
52
|
-
MatDialogModule,
|
|
53
|
-
SwiperModule] });
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselModule, decorators: [{
|
|
55
|
-
type: NgModule,
|
|
56
|
-
args: [{
|
|
57
|
-
declarations: [
|
|
58
|
-
NxsCarouselComponent,
|
|
59
|
-
NxsCarouselDialogComponent,
|
|
60
|
-
NxsSwiperTemplateDirective,
|
|
61
|
-
],
|
|
62
|
-
imports: [
|
|
63
|
-
CommonModule,
|
|
64
|
-
MatIconModule,
|
|
65
|
-
MatButtonModule,
|
|
66
|
-
MatDialogModule,
|
|
67
|
-
SwiperModule,
|
|
68
|
-
],
|
|
69
|
-
exports: [
|
|
70
|
-
NxsCarouselComponent,
|
|
71
|
-
NxsSwiperTemplateDirective,
|
|
72
|
-
],
|
|
73
|
-
}]
|
|
74
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9ueHMtY2Fyb3VzZWwvbnhzLWNhcm91c2VsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQW9CbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixZQUNJLFNBQW9CO1FBRXBCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxNQUFNLENBQUMscUJBQXFCLENBQUMsU0FBb0I7UUFDN0MsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakQsSUFBSSwwQkFBMEIsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pDLE9BQU87YUFDVjtZQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ00sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQztRQUNsRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTthQUN6RDtTQUNKLENBQUM7SUFDTixDQUFDOztBQXpCTSxzQ0FBb0IsR0FBRyxLQUFLLENBQUM7OEdBRDNCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQWhCdEIsb0JBQW9CO1FBQ3BCLDBCQUEwQjtRQUMxQiwwQkFBMEIsYUFHMUIsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLFlBQVksYUFHWixvQkFBb0I7UUFDcEIsMEJBQTBCOytHQUdyQixpQkFBaUIsWUFYdEIsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLFlBQVk7MkZBT1AsaUJBQWlCO2tCQWxCN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsb0JBQW9CO3dCQUNwQiwwQkFBMEI7cUJBQzdCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbnhzLWNhcm91c2VsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE54c0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFN3aXBlck1vZHVsZSB9IGZyb20gJ3N3aXBlci9hbmd1bGFyJztcbmltcG9ydCB7IE54c1N3aXBlclRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9zd2lwZXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi10eXBlcyc7XG5pbXBvcnQgeyBDYXJvdXNlbEV2ZW50cyB9IGZyb20gJy4vY2Fyb3VzZWwtZXZlbnRzJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTnhzQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgICAgIE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBOeHNTd2lwZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgU3dpcGVyTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBOeHNDYXJvdXNlbENvbXBvbmVudCxcbiAgICAgICAgTnhzU3dpcGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnhzQ2Fyb3VzZWxNb2R1bGUge1xuICAgIHN0YXRpYyBvcGVuRGlhbG9nU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgICApIHtcbiAgICAgICAgTnhzQ2Fyb3VzZWxNb2R1bGUuc3Vic2NyaWJlVG9PcGVuRGlhbG9nKG1hdERpYWxvZyk7XG4gICAgfVxuICAgIHN0YXRpYyBzdWJzY3JpYmVUb09wZW5EaWFsb2cobWF0RGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICAgICAgaWYgKHRoaXMub3BlbkRpYWxvZ1N1YnNjcmliZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5EaWFsb2dTdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgICAgQ2Fyb3VzZWxFdmVudHMub3BlbkNhcm91c2VsRGlhbG9nLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50LmRpYWxvZ09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hdERpYWxvZy5vcGVuKE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50LCBkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnhzQ2Fyb3VzZWxNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOeHNDYXJvdXNlbE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTnhzQ2Fyb3VzZWxNb2R1bGVDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxufSJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export class NxsCarouselModuleConfig {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.debug = false;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbW1vbi10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ0ksVUFBSyxHQUFhLEtBQUssQ0FBQztJQUM1QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgTnhzQ2Fyb3VzZWxJbWFnZSB7XG4gICAgYWx0Pzogc3RyaW5nO1xuICAgIHNyYzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIE54c0Nhcm91c2VsTW9kdWxlQ29uZmlnIHtcbiAgICBkZWJ1Zz86IGJvb2xlYW4gPSBmYWxzZTtcbn0iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NxsCarouselComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.lazy = true;
|
|
6
|
-
this.options = null;
|
|
7
|
-
this.hasHtmlContent = false;
|
|
8
|
-
this.slidesCount = 0;
|
|
9
|
-
this.slideChange = new EventEmitter();
|
|
10
|
-
this.currentSlide = 0;
|
|
11
|
-
this.slideClick = new EventEmitter();
|
|
12
|
-
this.isBrowser = false;
|
|
13
|
-
}
|
|
14
|
-
goToSlide(index, speed) {
|
|
15
|
-
}
|
|
16
|
-
next() {
|
|
17
|
-
}
|
|
18
|
-
previous() {
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
NxsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
NxsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: NxsCarouselComponent, selector: "nxs-carousel", inputs: { lazy: "lazy", images: "images", options: "options", hasHtmlContent: "hasHtmlContent" }, outputs: { slideChange: "slideChange", slideClick: "slideClick" }, ngImport: i0, template: '<div style="height:70px;width:100%;"></div>', isInline: true, encapsulation: i0.ViewEncapsulation.None });
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: NxsCarouselComponent, decorators: [{
|
|
24
|
-
type: Component,
|
|
25
|
-
args: [{
|
|
26
|
-
selector: 'nxs-carousel',
|
|
27
|
-
template: '<div style="height:70px;width:100%;"></div>',
|
|
28
|
-
// styleUrls: ['./nxs-carousel.component.scss'],
|
|
29
|
-
encapsulation: ViewEncapsulation.None,
|
|
30
|
-
}]
|
|
31
|
-
}], ctorParameters: function () { return []; }, propDecorators: { lazy: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], images: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], options: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], hasHtmlContent: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], slideChange: [{
|
|
40
|
-
type: Output
|
|
41
|
-
}], slideClick: [{
|
|
42
|
-
type: Output
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLW1vY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL254cy1jYXJvdXNlbC1tb2NrL254cy1jYXJvdXNlbC1tb2NrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxRixNQUFNLE9BQU8sb0JBQW9CO0lBaUI3QjtRQWZBLFNBQUksR0FBRyxJQUFJLENBQUM7UUFJWixZQUFPLEdBQXVCLElBQUksQ0FBQztRQUVuQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUV4QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQyxDQUFDO1FBQ3hFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFLbEIsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFhLEVBQUUsS0FBYztJQUN2QyxDQUFDO0lBQ0QsSUFBSTtJQUNKLENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQzs7aUhBMUJRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHlOQUpuQiw2Q0FBNkM7MkZBSTlDLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLDZDQUE2QztvQkFDdkQsZ0RBQWdEO29CQUNoRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEM7MEVBR0csSUFBSTtzQkFESCxLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE54c0Nhcm91c2VsSW1hZ2UgfSBmcm9tICcuLi9jb21tb24tdHlwZXMnO1xuaW1wb3J0IHsgTnhzQ2Fyb3VzZWxPcHRpb25zIH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwtdHlwZXMnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdueHMtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlOiAnPGRpdiBzdHlsZT1cImhlaWdodDo3MHB4O3dpZHRoOjEwMCU7XCI+PC9kaXY+JyxcbiAgICAvLyBzdHlsZVVybHM6IFsnLi9ueHMtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBOeHNDYXJvdXNlbENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBsYXp5ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZXM6IE54c0Nhcm91c2VsSW1hZ2VbXTtcbiAgICBASW5wdXQoKVxuICAgIG9wdGlvbnM6IE54c0Nhcm91c2VsT3B0aW9ucyA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBoYXNIdG1sQ29udGVudCA9IGZhbHNlO1xuICAgIHNsaWRlc0NvdW50OiBudW1iZXIgPSAwO1xuICAgIEBPdXRwdXQoKVxuICAgIHNsaWRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgcHVibGljIGN1cnJlbnRTbGlkZSA9IDA7XG4gICAgQE91dHB1dCgpXG4gICAgc2xpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IFRvdWNoRXZlbnQgfCBQb2ludGVyRXZlbnQ+KCk7XG4gICAgaXNCcm93c2VyID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICApIHtcblxuICAgIH1cbiAgICBnb1RvU2xpZGUoaW5kZXg6IG51bWJlciwgc3BlZWQ/OiBudW1iZXIpIHtcbiAgICB9XG4gICAgbmV4dCgpIHtcbiAgICB9XG4gICAgcHJldmlvdXMoKSB7XG4gICAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nextalys-carousel-lib-nxs-carousel-mock.mjs","sources":["../../lib/nxs-carousel-mock/nxs-carousel-mock.component.ts","../../lib/common-types.ts","../../lib/nxs-carousel-mock/swiper-directives.ts","../../lib/nxs-carousel-mock/nxs-carousel-mock.module.ts","../../lib/nextalys-carousel-lib-nxs-carousel-mock.ts"],"sourcesContent":["import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\nimport { NxsCarouselImage } from '../common-types';\nimport { NxsCarouselOptions } from './nxs-carousel-types';\n@Component({\n selector: 'nxs-carousel',\n template: '<div style=\"height:70px;width:100%;\"></div>',\n // styleUrls: ['./nxs-carousel.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NxsCarouselComponent {\n @Input()\n lazy = true;\n @Input()\n public images: NxsCarouselImage[];\n @Input()\n options: NxsCarouselOptions = null;\n @Input()\n hasHtmlContent = false;\n slidesCount: number = 0;\n @Output()\n slideChange = new EventEmitter<number>();\n public currentSlide = 0;\n @Output()\n slideClick = new EventEmitter<MouseEvent | TouchEvent | PointerEvent>();\n isBrowser = false;\n\n constructor(\n ) {\n\n }\n goToSlide(index: number, speed?: number) {\n }\n next() {\n }\n previous() {\n }\n}\n","\nexport interface NxsCarouselImage {\n alt?: string;\n src: string;\n}\nexport class NxsCarouselModuleConfig {\n debug?: boolean = false;\n}","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: '[nxsSwiperTemplate]',\n})\nexport class NxsSwiperTemplateDirective { }\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NxsCarouselModuleConfig } from '../common-types';\nimport { NxsCarouselComponent } from './nxs-carousel-mock.component';\nimport { NxsSwiperTemplateDirective } from './swiper-directives';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n NxsCarouselComponent,\n NxsSwiperTemplateDirective,\n ],\n exports: [\n NxsCarouselComponent,\n NxsSwiperTemplateDirective,\n ],\n})\nexport class NxsCarouselModule {\n public static forRoot(config?: NxsCarouselModuleConfig): ModuleWithProviders<NxsCarouselModule> {\n return {\n ngModule: NxsCarouselModule,\n providers: [\n { provide: NxsCarouselModuleConfig, useValue: config },\n ]\n };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api-carousel-mock';\n"],"names":[],"mappings":";;;;MASa,oBAAoB,CAAA;AAiB7B,IAAA,WAAA,GAAA;AAfA,QAAA,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;AAIZ,QAAA,IAAO,CAAA,OAAA,GAAuB,IAAI,CAAC;AAEnC,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AAClC,QAAA,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAA0C,CAAC;AACxE,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAKjB;IACD,SAAS,CAAC,KAAa,EAAE,KAAc,EAAA;KACtC;IACD,IAAI,GAAA;KACH;IACD,QAAQ,GAAA;KACP;;iHA1BQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yNAJnB,6CAA6C,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAI9C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,6CAA6C;;oBAEvD,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC,CAAA;0EAGG,IAAI,EAAA,CAAA;sBADH,KAAK;gBAGC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAGN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAGN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,UAAU,EAAA,CAAA;sBADT,MAAM;;;MCjBE,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACI,QAAA,IAAK,CAAA,KAAA,GAAa,KAAK,CAAC;KAC3B;AAAA;;MCFY,0BAA0B,CAAA;;uHAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;iBAClC,CAAA;;;MCeY,iBAAiB,CAAA;IACnB,OAAO,OAAO,CAAC,MAAgC,EAAA;QAClD,OAAO;AACH,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;AACP,gBAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE;AACzD,aAAA;SACJ,CAAC;KACL;;8GARQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBARtB,oBAAoB;QACpB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAJ1B,YAAY,CAAA,EAAA,OAAA,EAAA,CAOZ,oBAAoB;QACpB,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAGrB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAXtB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAWP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,oBAAoB;wBACpB,0BAA0B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,oBAAoB;wBACpB,0BAA0B;AAC7B,qBAAA;iBACJ,CAAA;;;AClBD;;AAEG;;;;"}
|