nextalys-carousel 0.0.50 → 0.0.53
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/README.md +0 -0
- package/bundles/nextalys-carousel.umd.js +437 -344
- package/bundles/nextalys-carousel.umd.js.map +1 -1
- package/bundles/nextalys-carousel.umd.min.js +2 -2
- package/bundles/nextalys-carousel.umd.min.js.map +1 -1
- package/esm2015/lib/nxs-carousel/nxs-carousel-dialog.component.js +15 -19
- package/esm2015/lib/nxs-carousel/nxs-carousel-types.js +1 -1
- package/esm2015/lib/nxs-carousel/nxs-carousel.component.js +43 -71
- package/esm2015/lib/nxs-carousel/nxs-carousel.module.js +22 -25
- package/esm2015/nextalys-carousel.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/nextalys-carousel.js +76 -106
- package/fesm2015/nextalys-carousel.js.map +1 -1
- package/lib/nxs-carousel/nxs-carousel-dialog.component.d.ts +1 -0
- package/lib/nxs-carousel/nxs-carousel-dialog.component.d.ts.map +1 -0
- package/lib/nxs-carousel/nxs-carousel-types.d.ts +1 -0
- package/lib/nxs-carousel/nxs-carousel-types.d.ts.map +1 -0
- package/lib/nxs-carousel/nxs-carousel.component.d.ts +2 -0
- package/lib/nxs-carousel/nxs-carousel.component.d.ts.map +1 -0
- package/lib/nxs-carousel/nxs-carousel.module.d.ts +1 -0
- package/lib/nxs-carousel/nxs-carousel.module.d.ts.map +1 -0
- package/nextalys-carousel.d.ts +1 -0
- package/nextalys-carousel.d.ts.map +1 -0
- package/nextalys-carousel.metadata.json +1 -1
- package/package.json +4 -6
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -0
- package/esm5/lib/nxs-carousel/nxs-carousel-dialog.component.js +0 -29
- package/esm5/lib/nxs-carousel/nxs-carousel-types.js +0 -8
- package/esm5/lib/nxs-carousel/nxs-carousel.component.js +0 -394
- package/esm5/lib/nxs-carousel/nxs-carousel.module.js +0 -45
- package/esm5/nextalys-carousel.js +0 -6
- package/esm5/public-api.js +0 -4
- package/fesm5/nextalys-carousel.js +0 -467
- package/fesm5/nextalys-carousel.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { __awaiter
|
|
2
|
-
import { Component, ViewEncapsulation, Input, ViewChild, ElementRef, Output, EventEmitter, PLATFORM_ID, Inject, Optional, NgZone
|
|
3
|
-
import {
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, ViewEncapsulation, Input, ViewChild, ElementRef, Output, EventEmitter, PLATFORM_ID, Inject, Optional, NgZone } from '@angular/core';
|
|
3
|
+
import { NxsCarouselModuleConfig } from './nxs-carousel-types';
|
|
4
4
|
import { NxsCarouselDialogComponent } from './nxs-carousel-dialog.component';
|
|
5
5
|
import { MatDialog } from '@angular/material/dialog';
|
|
6
6
|
import { isPlatformBrowser } from '@angular/common';
|
|
7
7
|
import { EventsCollector } from 'nextalys-js-helpers/dist/events';
|
|
8
|
-
|
|
8
|
+
export class NxsCarouselComponent {
|
|
9
9
|
constructor(matDialog, zone, platformId, config) {
|
|
10
10
|
this.matDialog = matDialog;
|
|
11
11
|
this.zone = zone;
|
|
@@ -57,10 +57,10 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
57
57
|
this.zone.runOutsideAngular(() => {
|
|
58
58
|
if (!this.hasHtmlContent && this.images) {
|
|
59
59
|
this.nxsSlidesWrapper.nativeElement.innerHTML = '';
|
|
60
|
-
for (
|
|
60
|
+
for (const cImage of this.images) {
|
|
61
61
|
const div = document.createElement('div');
|
|
62
62
|
div.className = 'swiper-slide';
|
|
63
|
-
div.style.backgroundImage = 'url(' +
|
|
63
|
+
div.style.backgroundImage = 'url(' + cImage.src + ')';
|
|
64
64
|
if (this.options.nxsCarouselImageBackgroundSize)
|
|
65
65
|
div.style.backgroundSize = this.options.nxsCarouselImageBackgroundSize;
|
|
66
66
|
this.nxsSlidesWrapper.nativeElement.appendChild(div);
|
|
@@ -68,10 +68,10 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
68
68
|
this.slidesCount = this.images.length;
|
|
69
69
|
if (!!this.options.nxsThumbnails && this.options.nxsThumbnails.show) {
|
|
70
70
|
this.nxsThumbnailsSlidesWrapper.nativeElement.innerHTML = '';
|
|
71
|
-
for (
|
|
71
|
+
for (const cImage of this.images) {
|
|
72
72
|
const div = document.createElement('div');
|
|
73
73
|
div.className = 'swiper-slide';
|
|
74
|
-
div.style.backgroundImage = 'url(' +
|
|
74
|
+
div.style.backgroundImage = 'url(' + cImage.src + ')';
|
|
75
75
|
this.nxsThumbnailsSlidesWrapper.nativeElement.appendChild(div);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -79,6 +79,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
79
79
|
}
|
|
80
80
|
else if (this.hasHtmlContent) {
|
|
81
81
|
this.log('initSlides - html content - slides length => ', this.nxsSlidesWrapper.nativeElement.children.length);
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
82
83
|
for (let i = 0; i < this.nxsSlidesWrapper.nativeElement.children.length; i++) {
|
|
83
84
|
const child = this.nxsSlidesWrapper.nativeElement.children[i];
|
|
84
85
|
if (!child.className)
|
|
@@ -92,15 +93,17 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
92
93
|
}
|
|
93
94
|
});
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
+
destroy() {
|
|
97
|
+
var _a, _b, _c;
|
|
96
98
|
if (!this.isBrowser) {
|
|
97
99
|
return;
|
|
98
100
|
}
|
|
99
|
-
this.eventsCollector.unsubscribeAll();
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
(_a = this.eventsCollector) === null || _a === void 0 ? void 0 : _a.unsubscribeAll();
|
|
102
|
+
(_b = this.mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
103
|
+
(_c = this.sliderInstance) === null || _c === void 0 ? void 0 : _c.destroy();
|
|
104
|
+
}
|
|
105
|
+
ngOnDestroy() {
|
|
106
|
+
this.destroy();
|
|
104
107
|
}
|
|
105
108
|
subscribeToSlideChanged() {
|
|
106
109
|
if (!this.hasHtmlContent) {
|
|
@@ -156,6 +159,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
156
159
|
return '';
|
|
157
160
|
}
|
|
158
161
|
setDefaultOptions(options, forDialog) {
|
|
162
|
+
var _a;
|
|
159
163
|
if (!options && forDialog) {
|
|
160
164
|
options = { nxsShowNavigationBullets: true, loop: true, nxsThumbnails: { show: true }, effect: 'slide', nxsShowNavigationArrows: true, nxsShowImagesCount: true };
|
|
161
165
|
}
|
|
@@ -168,7 +172,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
168
172
|
options.nxsCarouselDialogOptions.effect = 'slide';
|
|
169
173
|
if (typeof options.nxsCarouselDialogOptions.nxsShowNavigationArrows === 'undefined')
|
|
170
174
|
options.nxsCarouselDialogOptions.nxsShowNavigationArrows = true;
|
|
171
|
-
if (options.nxsCarouselDialogOptions.nxsThumbnails.show) {
|
|
175
|
+
if (!!((_a = options.nxsCarouselDialogOptions.nxsThumbnails) === null || _a === void 0 ? void 0 : _a.show)) {
|
|
172
176
|
if (typeof options.nxsCarouselDialogOptions.nxsThumbnails.percentHeight === 'undefined')
|
|
173
177
|
options.nxsCarouselDialogOptions.nxsThumbnails.percentHeight = 20;
|
|
174
178
|
if (typeof options.nxsCarouselDialogOptions.nxsThumbnails.perView === 'undefined')
|
|
@@ -186,7 +190,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
186
190
|
};
|
|
187
191
|
}
|
|
188
192
|
}
|
|
189
|
-
if (
|
|
193
|
+
if (!options.nxsThumbnails)
|
|
190
194
|
options.nxsThumbnails = { show: false };
|
|
191
195
|
if (options.nxsThumbnails.show && typeof options.nxsThumbnails.percentHeight === 'undefined')
|
|
192
196
|
options.nxsThumbnails.percentHeight = 20;
|
|
@@ -229,8 +233,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
229
233
|
return;
|
|
230
234
|
}
|
|
231
235
|
this.zone.runOutsideAngular(() => __awaiter(this, void 0, void 0, function* () {
|
|
232
|
-
|
|
233
|
-
this.sliderInstance.destroy();
|
|
236
|
+
this.destroy();
|
|
234
237
|
this.options.pagination = {
|
|
235
238
|
el: '.nxs-carousel-pagination',
|
|
236
239
|
clickable: true,
|
|
@@ -251,6 +254,7 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
251
254
|
watchSlidesVisibility: true,
|
|
252
255
|
watchSlidesProgress: true,
|
|
253
256
|
breakpoints: this.options.nxsThumbnails.breakpoints,
|
|
257
|
+
// spaceBetween: 10,
|
|
254
258
|
};
|
|
255
259
|
this.thumbnailsSliderInstance = new Swiper(this.nxsThumbnailsSliderContainer.nativeElement, thumbnailsOptions);
|
|
256
260
|
this.options.thumbs = { swiper: this.thumbnailsSliderInstance };
|
|
@@ -293,62 +297,30 @@ let NxsCarouselComponent = class NxsCarouselComponent {
|
|
|
293
297
|
return;
|
|
294
298
|
this.sliderInstance.slidePrev();
|
|
295
299
|
}
|
|
296
|
-
}
|
|
300
|
+
}
|
|
301
|
+
NxsCarouselComponent.decorators = [
|
|
302
|
+
{ type: Component, args: [{
|
|
303
|
+
selector: 'nxs-carousel',
|
|
304
|
+
template: "<div #nxsSliderContainer\n \u00A0[ngClass]=\"{'swiper-container':true,'nxs-slider-with-thumbnails':!!options.nxsThumbnails && options.nxsThumbnails.show}\"\n [style.height]=\"getMainSliderHeight()\">\n <div class=\"swiper-wrapper\" #nxsSlidesWrapper>\n <ng-content>\n\n </ng-content>\n </div>\n <!-- (cdkObserveContent)=\"onContentChange($event)\" -->\n <!-- If we need pagination -->\n <div class=\"swiper-pagination nxs-carousel-pagination\"\n [style.display]=\"slidesCount>0 && options && options.nxsShowNavigationBullets ? '':'none'\"></div>\n\n <!-- If we need navigation buttons -->\n <ng-container *ngIf=\"options.nxsShowNavigationArrows\">\n <div class=\"nxs-carousel-button-prev swiper-button-prev\"></div>\n <div class=\"nxs-carousel-button-next swiper-button-next\"></div>\n </ng-container>\n\n <ng-container *ngIf=\"images && options.nxsShowImagesCount\">\n <div class=\"nxs-image-counter\">\n {{currentSlide+1}} / {{images.length}}\n </div>\n </ng-container>\n\n</div>\n\n<div #nxsThumbnailsSliderContainer\n [style.display]=\"(images && !!options.nxsThumbnails && options.nxsThumbnails.show) ?'':'none'\"\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 <div class=\"swiper-wrapper\" #nxsThumbnailsSlidesWrapper>\n\n </div>\n\n</div>",
|
|
305
|
+
encapsulation: ViewEncapsulation.None,
|
|
306
|
+
styles: ["nxs-carousel{display:block;height:100%;position:relative;--swiper-navigation-color:#fff;--swiper-theme-color:#fff}nxs-carousel .swiper-container{width:100%;display:block;position:relative;height:100%}nxs-carousel .swiper-container .swiper-wrapper .swiper-slide{height:100%;position:relative;width:100%;min-height:50px;background-size:cover;background-position:50%;background-repeat:no-repeat}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 #add8e6}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}"]
|
|
307
|
+
},] }
|
|
308
|
+
];
|
|
297
309
|
NxsCarouselComponent.ctorParameters = () => [
|
|
298
310
|
{ type: MatDialog },
|
|
299
311
|
{ type: NgZone },
|
|
300
312
|
{ type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
|
301
313
|
{ type: NxsCarouselModuleConfig, decorators: [{ type: Optional }] }
|
|
302
314
|
];
|
|
303
|
-
|
|
304
|
-
ViewChild
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
], NxsCarouselComponent.prototype, "nxsThumbnailsSliderContainer", void 0);
|
|
315
|
-
__decorate([
|
|
316
|
-
ViewChild('nxsThumbnailsSlidesWrapper', { static: true }),
|
|
317
|
-
__metadata("design:type", ElementRef)
|
|
318
|
-
], NxsCarouselComponent.prototype, "nxsThumbnailsSlidesWrapper", void 0);
|
|
319
|
-
__decorate([
|
|
320
|
-
Input('options'),
|
|
321
|
-
__metadata("design:type", Object),
|
|
322
|
-
__metadata("design:paramtypes", [Object])
|
|
323
|
-
], NxsCarouselComponent.prototype, "setOptions", null);
|
|
324
|
-
__decorate([
|
|
325
|
-
Input('images'),
|
|
326
|
-
__metadata("design:type", Array),
|
|
327
|
-
__metadata("design:paramtypes", [Array])
|
|
328
|
-
], NxsCarouselComponent.prototype, "setImages", null);
|
|
329
|
-
__decorate([
|
|
330
|
-
Input(),
|
|
331
|
-
__metadata("design:type", Object)
|
|
332
|
-
], NxsCarouselComponent.prototype, "hasHtmlContent", void 0);
|
|
333
|
-
__decorate([
|
|
334
|
-
Output(),
|
|
335
|
-
__metadata("design:type", Object)
|
|
336
|
-
], NxsCarouselComponent.prototype, "slideChange", void 0);
|
|
337
|
-
__decorate([
|
|
338
|
-
Output(),
|
|
339
|
-
__metadata("design:type", Object)
|
|
340
|
-
], NxsCarouselComponent.prototype, "slideClick", void 0);
|
|
341
|
-
NxsCarouselComponent = __decorate([
|
|
342
|
-
Component({
|
|
343
|
-
selector: 'nxs-carousel',
|
|
344
|
-
template: "<div #nxsSliderContainer\n \u00A0[ngClass]=\"{'swiper-container':true,'nxs-slider-with-thumbnails':!!options.nxsThumbnails && options.nxsThumbnails.show}\"\n [style.height]=\"getMainSliderHeight()\">\n <div class=\"swiper-wrapper\" #nxsSlidesWrapper>\n <ng-content>\n\n </ng-content>\n </div>\n <!-- (cdkObserveContent)=\"onContentChange($event)\" -->\n <!-- If we need pagination -->\n <div class=\"swiper-pagination nxs-carousel-pagination\"\n [style.display]=\"slidesCount>0 && options && options.nxsShowNavigationBullets ? '':'none'\"></div>\n\n <!-- If we need navigation buttons -->\n <ng-container *ngIf=\"options.nxsShowNavigationArrows\">\n <div class=\"nxs-carousel-button-prev swiper-button-prev\"></div>\n <div class=\"nxs-carousel-button-next swiper-button-next\"></div>\n </ng-container>\n\n <ng-container *ngIf=\"images && options.nxsShowImagesCount\">\n <div class=\"nxs-image-counter\">\n {{currentSlide+1}} / {{images.length}}\n </div>\n </ng-container>\n\n</div>\n\n<div #nxsThumbnailsSliderContainer\n [style.display]=\"(images && !!options.nxsThumbnails && options.nxsThumbnails.show) ?'':'none'\"\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 <div class=\"swiper-wrapper\" #nxsThumbnailsSlidesWrapper>\n\n </div>\n\n</div>",
|
|
345
|
-
encapsulation: ViewEncapsulation.None,
|
|
346
|
-
styles: ["nxs-carousel{display:block;height:100%;position:relative;--swiper-navigation-color:white;--swiper-theme-color:white}nxs-carousel .swiper-container{width:100%;display:block;position:relative;height:100%}nxs-carousel .swiper-container .swiper-wrapper .swiper-slide{height:100%;position:relative;width:100%;min-height:50px;background-size:cover;background-position:center;background-repeat:no-repeat}nxs-carousel .swiper-container.nxs-slider-with-thumbnails{height:80%}nxs-carousel .swiper-container.nxs-slider-thumbnails-container{height:20%;background:0 0;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 #add8e6}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}"]
|
|
347
|
-
}),
|
|
348
|
-
__param(2, Inject(PLATFORM_ID)),
|
|
349
|
-
__param(3, Optional()),
|
|
350
|
-
__metadata("design:paramtypes", [MatDialog,
|
|
351
|
-
NgZone, Object, NxsCarouselModuleConfig])
|
|
352
|
-
], NxsCarouselComponent);
|
|
353
|
-
export { NxsCarouselComponent };
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25leHRhbHlzLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL254cy1jYXJvdXNlbC9ueHMtY2Fyb3VzZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckgsT0FBTyxFQUF5QiwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPbEUsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUEwQzdCLFlBQ1ksU0FBb0IsRUFDcEIsSUFBWSxFQUNTLFVBQWUsRUFDeEIsTUFBZ0M7UUFINUMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1MsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQTdDaEQscUJBQWdCLEdBQTRCLElBQUksQ0FBQztRQUN6RCw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBY2hELFlBQU8sR0FBdUIsRUFBRSxDQUFDO1FBWWpDLG1CQUFj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QUd2RDtJQURDLEtBQUssQ0FBQyxTQUFTLENBQUM7OztzREFHaEI7QUFFRDtJQURDLEtBQUssQ0FBQyxRQUFRLENBQUM7OztxREFLZjtBQUVEO0lBREMsS0FBSyxFQUFFOzs0REFDZTtBQU12QjtJQURDLE1BQU0sRUFBRTs7eURBQ2dDO0FBR3pDO0lBREMsTUFBTSxFQUFFOzt3REFDbUM7QUF0Q25DLG9CQUFvQjtJQU5oQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztRQUN4QiwrMURBQTRDO1FBRTVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOztLQUN4QyxDQUFDO0lBOENPLFdBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ25CLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBSFEsU0FBUztRQUNkLE1BQU0sVUFFUyx1QkFBdUI7R0E5Qy9DLG9CQUFvQixDQXNVaEM7U0F0VVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFBMQVRGT1JNX0lELCBJbmplY3QsIE9wdGlvbmFsLCBOZ1pvbmUsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE54c0Nhcm91c2VsT3B0aW9ucywgTnhzQ2Fyb3VzZWxJbWFnZSwgU3dpcGVySW5zdGFuY2UsIE54c0Nhcm91c2VsTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwtdHlwZXMnO1xuaW1wb3J0IHsgTnhzQ2Fyb3VzZWxEaWFsb2dEYXRhLCBOeHNDYXJvdXNlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbnhzLWNhcm91c2VsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV2ZW50c0NvbGxlY3RvciB9IGZyb20gJ25leHRhbHlzLWpzLWhlbHBlcnMvZGlzdC9ldmVudHMnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdueHMtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ueHMtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL254cy1jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE54c0Nhcm91c2VsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcbiAgICByZWNyZWF0ZVNsaWRlclN1YnNjcmliZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGV2ZW50c0NvbGxlY3RvciA9IG5ldyBFdmVudHNDb2xsZWN0b3IoKTtcbiAgICBwdWJsaWMgaW1hZ2VzOiBOeHNDYXJvdXNlbEltYWdlW107XG5cbiAgICBAVmlld0NoaWxkKCdueHNTbGlkZXJDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG54c1NsaWRlckNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdueHNTbGlkZXNXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBueHNTbGlkZXNXcmFwcGVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8vdGh1bWJuYWlsc1xuICAgIEBWaWV3Q2hpbGQoJ254c1RodW1ibmFpbHNTbGlkZXJDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG54c1RodW1ibmFpbHNTbGlkZXJDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ254c1RodW1ibmFpbHNTbGlkZXNXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBueHNUaHVtYm5haWxzU2xpZGVzV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgb3B0aW9uczogTnhzQ2Fyb3VzZWxPcHRpb25zID0ge307XG4gICAgQElucHV0KCdvcHRpb25zJylcbiAgICBzZXQgc2V0T3B0aW9ucyh2YWw6IE54c0Nhcm91c2VsT3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnNldERlZmF1bHRPcHRpb25zKHZhbCwgZmFsc2UpO1xuICAgIH1cbiAgICBASW5wdXQoJ2ltYWdlcycpXG4gICAgc2V0IHNldEltYWdlcyh2YWw6IE54c0Nhcm91c2VsSW1hZ2VbXSkge1xuICAgICAgICB0aGlzLmltYWdlcyA9IHZhbDtcbiAgICAgICAgdGhpcy5pbml0U2xpZGVzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlU2xpZGVyKHRydWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGhhc0h0bWxDb250ZW50ID0gZmFsc2U7XG4gICAgc2xpZGVzQ291bnQ6IG51bWJlciA9IDA7XG4gICAgcHVibGljIHNsaWRlckluc3RhbmNlOiBTd2lwZXJJbnN0YW5jZTtcbiAgICBwdWJsaWMgdGh1bWJuYWlsc1NsaWRlckluc3RhbmNlOiBTd2lwZXJJbnN0YW5jZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHNsaWRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgcHVibGljIGN1cnJlbnRTbGlkZSA9IDA7XG4gICAgQE91dHB1dCgpXG4gICAgc2xpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICBpc0Jyb3dzZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIHN3aXBlckxpYnJhcnk6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnPzogTnhzQ2Fyb3VzZWxNb2R1bGVDb25maWcsXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcpXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyA9IHsgZGVidWc6IGZhbHNlIH07XG4gICAgICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcbiAgICAgICAgdGhpcy5sb2coJ2NvbnN0cnVjdG9yIC0gaXNCcm93c2VyJywgdGhpcy5pc0Jyb3dzZXIpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnNldERlZmF1bHRPcHRpb25zKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIH1cbiAgICBwcml2YXRlIGxvZyguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmRlYnVnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zb2xlLmxvZygnW054c0Nhcm91c2VsXScsIC4uLmFyZ3MpO1xuICAgIH1cblxuICAgIG9uQ29udGVudENoYW5nZShjaGFuZ2VzOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiTG9nOiBOeHNDYXJvdXNlbENvbXBvbmVudCAtPiBvbkNvbnRlbnRDaGFuZ2UgLT4gY2hhbmdlc1wiLCBjaGFuZ2VzKTtcbiAgICAgICAgLy8gY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiBjb25zb2xlLmxvZyhjaGFuZ2UudGFyZ2V0KSk7XG4gICAgfVxuICAgIGluaXRTbGlkZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdwcmV2ZW50IGluaXRTbGlkZXMgb24gcGxhdGZvcm0gc2VydmVyJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm54c1NsaWRlc1dyYXBwZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdjYW4gbm90IGluaXRTbGlkZXMgOiBueHNTbGlkZXNXcmFwcGVyIGlzIG5vdCBkZWZpbmVkICEnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZygnaW5pdFNsaWRlcyBiZWdpbnMnKTtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNIdG1sQ29udGVudCAmJiB0aGlzLmltYWdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMubnhzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnc3dpcGVyLXNsaWRlJztcbiAgICAgICAgICAgICAgICAgICAgZGl2LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoJyArIHRoaXMuaW1hZ2VzW2ldLnNyYyArICcpJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbEltYWdlQmFja2dyb3VuZFNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYuc3R5bGUuYmFja2dyb3VuZFNpemUgPSB0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxJbWFnZUJhY2tncm91bmRTaXplO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm54c1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlc0NvdW50ID0gdGhpcy5pbWFnZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICghIXRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzICYmIHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ueHNUaHVtYm5haWxzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW1hZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnc3dpcGVyLXNsaWRlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAndXJsKCcgKyB0aGlzLmltYWdlc1tpXS5zcmMgKyAnKSc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm54c1RodW1ibmFpbHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvZygnaW5pdFNsaWRlcyAtIGltYWdlcyBhcmUgZGVmaW5lZCAtIHNsaWRlcyBjb3VudCA9PiAnLCB0aGlzLnNsaWRlc0NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaGFzSHRtbENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZygnaW5pdFNsaWRlcyAtIGh0bWwgY29udGVudCAtIHNsaWRlcyBsZW5ndGggPT4gJywgdGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubnhzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5baV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGQuY2xhc3NOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuY2xhc3NOYW1lID0gJ3N3aXBlci1zbGlkZSc7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkLmNsYXNzTmFtZS5pbmRleE9mKCdzd2lwZXItc2xpZGUnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmNsYXNzTmFtZSArPSAnIHN3aXBlci1zbGlkZSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zbGlkZXNDb3VudCA9IHRoaXMubnhzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZygnaW5pdFNsaWRlcyAtIGh0bWwgY29udGVudCAtIHNsaWRlcyBjb3VudCA9PiAnLCB0aGlzLnNsaWRlc0NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV2ZW50c0NvbGxlY3Rvci51bnN1YnNjcmliZUFsbCgpO1xuICAgICAgICBpZiAodGhpcy5tdXRhdGlvbk9ic2VydmVyKVxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgaWYgKHRoaXMuc2xpZGVySW5zdGFuY2UpXG4gICAgICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb1NsaWRlQ2hhbmdlZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0h0bWxDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvZygnc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQgY2Fubm90IGJlIHN1YnNjcmliZWQgOiBoYXMgbm8gaHRtbCBjb250ZW50Jyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm54c1NsaWRlc1dyYXBwZXIgfHwgIXRoaXMubnhzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvZygnc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQgZXJyb3IgOiBueHNTbGlkZXNXcmFwcGVyIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2Nhbm5vdCB1c2UgbXV0YXRpb24gb2JzZXJ2ZXInKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXIpXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgICAgIHRoaXMubG9nKCdzdWJzY3JpYmUgdG8gbXV0YXRpb24gb2JzZXJ2ZXInKTtcbiAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiTG9nOiBOeHNDYXJvdXNlbENvbXBvbmVudCAtPiBzdWJzY3JpYmVUb1NsaWRlQ2hhbmdlZCAtPiBtdXRhdGlvbnNMaXN0XCIsIG11dGF0aW9uc0xpc3QpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJMb2c6IE54c0Nhcm91c2VsQ29tcG9uZW50IC0+IHN1YnNjcmliZVRvU2xpZGVDaGFuZ2VkIC0+IE11dGF0aW9uT2JzZXJ2ZXJcIik7XG4gICAgICAgICAgICB0aGlzLmxvZygnbXV0YXRpb24gb2JzZXJ2ZXIgLSBodG1sIGNvbnRlbnQgaGFzIGNoYW5nZWQnKTtcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbnNMaXN0Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBsZXQgbXVzdFVwZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCB8fCBtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBtdXN0VXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG11c3RVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTbGlkZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVNsaWRlcih0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBhdHRyaWJ1dGVzOiBmYWxzZSwgfSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0U2xpZGVzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlU2xpZGVyKHRydWUpO1xuICAgIH1cbiAgICBnZXRNYWluU2xpZGVySGVpZ2h0KCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzICYmIHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5vbk1haW5TbGlkZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJzEwMCUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoMTAwIC0gdGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCkgKyAnJSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBwcml2YXRlIHNldERlZmF1bHRPcHRpb25zKG9wdGlvbnM6IE54c0Nhcm91c2VsT3B0aW9ucywgZm9yRGlhbG9nOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghb3B0aW9ucyAmJiBmb3JEaWFsb2cpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IG54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0czogdHJ1ZSwgbG9vcDogdHJ1ZSwgbnhzVGh1bWJuYWlsczogeyBzaG93OiB0cnVlIH0sIGVmZmVjdDogJ3NsaWRlJywgbnhzU2hvd05hdmlnYXRpb25BcnJvd3M6IHRydWUsIG54c1Nob3dJbWFnZXNDb3VudDogdHJ1ZSB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIW9wdGlvbnMpXG4gICAgICAgICAgICBvcHRpb25zID0geyBueHNTaG93TmF2aWdhdGlvbkJ1bGxldHM6IHRydWUsIGxvb3A6IHRydWUsIG54c1RodW1ibmFpbHM6IHsgc2hvdzogZmFsc2UgfSwgZWZmZWN0OiAnc2xpZGUnLCBueHNTaG93TmF2aWdhdGlvbkFycm93czogdHJ1ZSwgbnhzU2hvd0ltYWdlc0NvdW50OiBmYWxzZSwgbnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zOiB7fSB9XG4gICAgICAgIGlmIChvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzID0geyBzaG93OiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5lZmZlY3QgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLmVmZmVjdCA9ICdzbGlkZSc7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1Nob3dOYXZpZ2F0aW9uQXJyb3dzID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNTaG93TmF2aWdhdGlvbkFycm93cyA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9IDIwO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJWaWV3ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJWaWV3ID0gMTA7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5icmVha3BvaW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgNjQwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA1LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICA3Njg6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIDEwMjQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDgsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzVGh1bWJuYWlscyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICBvcHRpb25zLm54c1RodW1ibmFpbHMgPSB7IHNob3c6IGZhbHNlIH07XG5cblxuICAgICAgICBpZiAob3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cgJiYgdHlwZW9mIG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0ID0gMjA7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93ICYmIHR5cGVvZiBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9IDEwO1xuXG5cbiAgICAgICAgaWYgKGZvckRpYWxvZylcbiAgICAgICAgICAgIG9wdGlvbnMubnhzZnVsbHNjcmVlbk9uQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5vbk1haW5TbGlkZXIpXG4gICAgICAgICAgICBvcHRpb25zLm54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0cyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gICAgcHVibGljIHNob3dGdWxsU2NyZWVuQ2Fyb3VzZWwoaW1hZ2VzOiBOeHNDYXJvdXNlbEltYWdlW10sIHdyYXBwZXJDbGFzcz86IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zID0gdGhpcy5zZXREZWZhdWx0T3B0aW9ucyh0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZGF0YTogTnhzQ2Fyb3VzZWxEaWFsb2dEYXRhID0geyBpbWFnZXMsIHdyYXBwZXJDbGFzcywgb3B0aW9uczogdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucyB9O1xuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ254cy1jYXJvdXNlbC1kaWFsb2cnLFxuICAgICAgICAgICAgd2lkdGg6ICEhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZSA/IHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ1NpemUud2lkdGggOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBoZWlnaHQ6ICEhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZSA/IHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ1NpemUuaGVpZ2h0IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiAhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nRXhpdGFibGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGNyZWF0ZVNsaWRlcihmb3JjZVJlY3JlYXRlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdwcmV2ZW50IGNyZWF0ZVNsaWRlciA6IHBsYXRmb3JtIGlzIHNlcnZlcicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5ueHNTbGlkZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdjYW4gbm90IGNyZWF0ZVNsaWRlciA6IG54c1NsaWRlckNvbnRhaW5lciBpcyBub3QgZGVmaW5lZCAhJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2coJ2NyZWF0ZVNsaWRlcicsIHRoaXMubnhzU2xpZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXNDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2NhbiBub3QgY3JlYXRlU2xpZGVyIDogc2xpZGVzQ291bnQgPT09IDAnKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zbGlkZXJJbnN0YW5jZSAmJiAhZm9yY2VSZWNyZWF0ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2NhbiByZSBjcmVhdGUgc2xpZGVyID0+IHNsaWRlciBpcyBhbHJlYWR5IGNyZWF0ZWQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgZWw6ICcubnhzLWNhcm91c2VsLXBhZ2luYXRpb24nLFxuICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnVsbGV0cycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm5hdmlnYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgbmV4dEVsOiAnLm54cy1jYXJvdXNlbC1idXR0b24tbmV4dCcsXG4gICAgICAgICAgICAgICAgcHJldkVsOiAnLm54cy1jYXJvdXNlbC1idXR0b24tcHJldicsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCF0aGlzLnN3aXBlckxpYnJhcnkpXG4gICAgICAgICAgICAgICAgdGhpcy5zd2lwZXJMaWJyYXJ5ID0gYXdhaXQgaW1wb3J0KFwic3dpcGVyXCIpO1xuICAgICAgICAgICAgY29uc3QgU3dpcGVyID0gdGhpcy5zd2lwZXJMaWJyYXJ5LmRlZmF1bHQ7XG4gICAgICAgICAgICBpZiAoISF0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscyAmJiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGh1bWJuYWlsc09wdGlvbnM6IE54c0Nhcm91c2VsT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyxcbiAgICAgICAgICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB3YXRjaFNsaWRlc1Zpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5icmVha3BvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgLy8gc3BhY2VCZXR3ZWVuOiAxMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsc1NsaWRlckluc3RhbmNlID0gbmV3IFN3aXBlcih0aGlzLm54c1RodW1ibmFpbHNTbGlkZXJDb250YWluZXIubmF0aXZlRWxlbWVudCwgdGh1bWJuYWlsc09wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy50aHVtYnMgPSB7IHN3aXBlcjogdGhpcy50aHVtYm5haWxzU2xpZGVySW5zdGFuY2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHRoaXMubnhzU2xpZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmxvZygnc2xpZGVySW5zdGFuY2UgaGFzIGJlZW4gY3JlYXRlZCcsIHRoaXMuc2xpZGVySW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy5zbGlkZXJJbnN0YW5jZS5vbignc2xpZGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gdGhpcy5zbGlkZXJJbnN0YW5jZS5yZWFsSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKFwic2xpZGVDaGFuZ2VcIiwgdGhpcy5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQ2hhbmdlLm5leHQodGhpcy5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLm9uKCdjbGljaycsIChldnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoJ254cy1jYXJvdXNlbC1idXR0b24nKSAhPT0gLTEgfHwgdGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCdzd2lwZXItcGFnaW5hdGlvbicpICE9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQ2xpY2submV4dChldnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm54c2Z1bGxzY3JlZW5PbkNsaWNrICYmIHRoaXMuaW1hZ2VzICYmIHRoaXMuaW1hZ2VzLmxlbmd0aCAmJiAhdGhpcy5oYXNIdG1sQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RnVsbFNjcmVlbkNhcm91c2VsKHRoaXMuaW1hZ2VzLCAnZnVsbHNjcmVlbi1jYXJvdXNlbCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1NsaWRlQ2hhbmdlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnb1RvU2xpZGUoaW5kZXg6IG51bWJlciwgc3BlZWQ/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlVG8oaW5kZXgsIHNwZWVkKTtcbiAgICB9XG4gICAgbmV4dCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlTmV4dCgpO1xuICAgIH1cbiAgICBwcmV2aW91cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlUHJldigpO1xuICAgIH1cbn1cbiJdfQ==
|
|
315
|
+
NxsCarouselComponent.propDecorators = {
|
|
316
|
+
nxsSliderContainer: [{ type: ViewChild, args: ['nxsSliderContainer', { static: true },] }],
|
|
317
|
+
nxsSlidesWrapper: [{ type: ViewChild, args: ['nxsSlidesWrapper', { static: true },] }],
|
|
318
|
+
nxsThumbnailsSliderContainer: [{ type: ViewChild, args: ['nxsThumbnailsSliderContainer', { static: true },] }],
|
|
319
|
+
nxsThumbnailsSlidesWrapper: [{ type: ViewChild, args: ['nxsThumbnailsSlidesWrapper', { static: true },] }],
|
|
320
|
+
setOptions: [{ type: Input, args: ['options',] }],
|
|
321
|
+
setImages: [{ type: Input, args: ['images',] }],
|
|
322
|
+
hasHtmlContent: [{ type: Input }],
|
|
323
|
+
slideChange: [{ type: Output }],
|
|
324
|
+
slideClick: [{ type: Output }]
|
|
325
|
+
};
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbnhzLWNhcm91c2VsL254cy1jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZLLE9BQU8sRUFBd0QsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNySCxPQUFPLEVBQXlCLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9sRSxNQUFNLE9BQU8sb0JBQW9CO0lBMEM3QixZQUNZLFNBQW9CLEVBQ3BCLElBQVksRUFDUyxVQUFlLEVBQ3hCLE1BQWdDO1FBSDVDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNTLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUE3Q2hELHFCQUFnQixHQUE0QixJQUFJLENBQUM7UUFDekQsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQWNoRCxZQUFPLEdBQXVCLEVBQUUsQ0FBQztRQVlqQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUt4QixnQkFBVyxHQUFHLElB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LElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUNwQixPQUFPO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQ3BCLE9BQU87UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQ3BCLE9BQU87UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OztZQTdVSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLCsxREFBNEM7Z0JBRTVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN4Qzs7O1lBUlEsU0FBUztZQUh3RyxNQUFNOzRDQXlEdkgsTUFBTSxTQUFDLFdBQVc7WUF4RG9DLHVCQUF1Qix1QkF5RDdFLFFBQVE7OztpQ0F4Q1osU0FBUyxTQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTsrQkFHaEQsU0FBUyxTQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTsyQ0FJOUMsU0FBUyxTQUFDLDhCQUE4QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt5Q0FFMUQsU0FBUyxTQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt5QkFHeEQsS0FBSyxTQUFDLFNBQVM7d0JBSWYsS0FBSyxTQUFDLFFBQVE7NkJBTWQsS0FBSzswQkFNTCxNQUFNO3lCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgUExBVEZPUk1fSUQsIEluamVjdCwgT3B0aW9uYWwsIE5nWm9uZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnhzQ2Fyb3VzZWxPcHRpb25zLCBOeHNDYXJvdXNlbEltYWdlLCBTd2lwZXJJbnN0YW5jZSwgTnhzQ2Fyb3VzZWxNb2R1bGVDb25maWcgfSBmcm9tICcuL254cy1jYXJvdXNlbC10eXBlcyc7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbERpYWxvZ0RhdGEsIE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRzQ29sbGVjdG9yIH0gZnJvbSAnbmV4dGFseXMtanMtaGVscGVycy9kaXN0L2V2ZW50cyc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ254cy1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL254cy1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbnhzLWNhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTnhzQ2Fyb3VzZWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICAgIHJlY3JlYXRlU2xpZGVyU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZXZlbnRzQ29sbGVjdG9yID0gbmV3IEV2ZW50c0NvbGxlY3RvcigpO1xuICAgIHB1YmxpYyBpbWFnZXM6IE54c0Nhcm91c2VsSW1hZ2VbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ254c1NsaWRlckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgbnhzU2xpZGVyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ254c1NsaWRlc1dyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG54c1NsaWRlc1dyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLy90aHVtYm5haWxzXG4gICAgQFZpZXdDaGlsZCgnbnhzVGh1bWJuYWlsc1NsaWRlckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgbnhzVGh1bWJuYWlsc1NsaWRlckNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnbnhzVGh1bWJuYWlsc1NsaWRlc1dyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG54c1RodW1ibmFpbHNTbGlkZXNXcmFwcGVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBvcHRpb25zOiBOeHNDYXJvdXNlbE9wdGlvbnMgPSB7fTtcbiAgICBASW5wdXQoJ29wdGlvbnMnKVxuICAgIHNldCBzZXRPcHRpb25zKHZhbDogTnhzQ2Fyb3VzZWxPcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuc2V0RGVmYXVsdE9wdGlvbnModmFsLCBmYWxzZSk7XG4gICAgfVxuICAgIEBJbnB1dCgnaW1hZ2VzJylcbiAgICBzZXQgc2V0SW1hZ2VzKHZhbDogTnhzQ2Fyb3VzZWxJbWFnZVtdKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VzID0gdmFsO1xuICAgICAgICB0aGlzLmluaXRTbGlkZXMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVTbGlkZXIodHJ1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgaGFzSHRtbENvbnRlbnQgPSBmYWxzZTtcbiAgICBzbGlkZXNDb3VudDogbnVtYmVyID0gMDtcbiAgICBwdWJsaWMgc2xpZGVySW5zdGFuY2U6IFN3aXBlckluc3RhbmNlO1xuICAgIHB1YmxpYyB0aHVtYm5haWxzU2xpZGVySW5zdGFuY2U6IFN3aXBlckluc3RhbmNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgc2xpZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBwdWJsaWMgY3VycmVudFNsaWRlID0gMDtcbiAgICBAT3V0cHV0KClcbiAgICBzbGlkZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIGlzQnJvd3NlciA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3dpcGVyTGlicmFyeTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc/OiBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyxcbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZylcbiAgICAgICAgICAgIHRoaXMuY29uZmlnID0geyBkZWJ1ZzogZmFsc2UgfTtcbiAgICAgICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuICAgICAgICB0aGlzLmxvZygnY29uc3RydWN0b3IgLSBpc0Jyb3dzZXInLCB0aGlzLmlzQnJvd3Nlcik7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuc2V0RGVmYXVsdE9wdGlvbnModW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgfVxuICAgIHByaXZhdGUgbG9nKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuZGVidWcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnNvbGUubG9nKCdbTnhzQ2Fyb3VzZWxdJywgLi4uYXJncyk7XG4gICAgfVxuXG4gICAgb25Db250ZW50Q2hhbmdlKGNoYW5nZXM6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJMb2c6IE54c0Nhcm91c2VsQ29tcG9uZW50IC0+IG9uQ29udGVudENoYW5nZSAtPiBjaGFuZ2VzXCIsIGNoYW5nZXMpO1xuICAgICAgICAvLyBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IGNvbnNvbGUubG9nKGNoYW5nZS50YXJnZXQpKTtcbiAgICB9XG4gICAgaW5pdFNsaWRlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3ByZXZlbnQgaW5pdFNsaWRlcyBvbiBwbGF0Zm9ybSBzZXJ2ZXInKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubnhzU2xpZGVzV3JhcHBlcikge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2NhbiBub3QgaW5pdFNsaWRlcyA6IG54c1NsaWRlc1dyYXBwZXIgaXMgbm90IGRlZmluZWQgIScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nKCdpbml0U2xpZGVzIGJlZ2lucycpO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0h0bWxDb250ZW50ICYmIHRoaXMuaW1hZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNJbWFnZSBvZiB0aGlzLmltYWdlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdzd2lwZXItc2xpZGUnO1xuICAgICAgICAgICAgICAgICAgICBkaXYuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ3VybCgnICsgY0ltYWdlLnNyYyArICcpJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbEltYWdlQmFja2dyb3VuZFNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYuc3R5bGUuYmFja2dyb3VuZFNpemUgPSB0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxJbWFnZUJhY2tncm91bmRTaXplO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm54c1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlc0NvdW50ID0gdGhpcy5pbWFnZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICghIXRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzICYmIHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ueHNUaHVtYm5haWxzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNJbWFnZSBvZiB0aGlzLmltYWdlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ3N3aXBlci1zbGlkZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ3VybCgnICsgY0ltYWdlLnNyYyArICcpJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubnhzVGh1bWJuYWlsc1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9nKCdpbml0U2xpZGVzIC0gaW1hZ2VzIGFyZSBkZWZpbmVkIC0gc2xpZGVzIGNvdW50ID0+ICcsIHRoaXMuc2xpZGVzQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5oYXNIdG1sQ29udGVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nKCdpbml0U2xpZGVzIC0gaHRtbCBjb250ZW50IC0gc2xpZGVzIGxlbmd0aCA9PiAnLCB0aGlzLm54c1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLm54c1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbltpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZC5jbGFzc05hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5jbGFzc05hbWUgPSAnc3dpcGVyLXNsaWRlJztcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQuY2xhc3NOYW1lLmluZGV4T2YoJ3N3aXBlci1zbGlkZScpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuY2xhc3NOYW1lICs9ICcgc3dpcGVyLXNsaWRlJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlc0NvdW50ID0gdGhpcy5ueHNTbGlkZXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nKCdpbml0U2xpZGVzIC0gaHRtbCBjb250ZW50IC0gc2xpZGVzIGNvdW50ID0+ICcsIHRoaXMuc2xpZGVzQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXZlbnRzQ29sbGVjdG9yPy51bnN1YnNjcmliZUFsbCgpO1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5zbGlkZXJJbnN0YW5jZT8uZGVzdHJveSgpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfVxuICAgIHByaXZhdGUgc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNIdG1sQ29udGVudCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3N1YnNjcmliZVRvU2xpZGVDaGFuZ2VkIGNhbm5vdCBiZSBzdWJzY3JpYmVkIDogaGFzIG5vIGh0bWwgY29udGVudCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5ueHNTbGlkZXNXcmFwcGVyIHx8ICF0aGlzLm54c1NsaWRlc1dyYXBwZXIubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3N1YnNjcmliZVRvU2xpZGVDaGFuZ2VkIGVycm9yIDogbnhzU2xpZGVzV3JhcHBlciBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgTXV0YXRpb25PYnNlcnZlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdjYW5ub3QgdXNlIG11dGF0aW9uIG9ic2VydmVyJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tdXRhdGlvbk9ic2VydmVyKVxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgICAgICB0aGlzLmxvZygnc3Vic2NyaWJlIHRvIG11dGF0aW9uIG9ic2VydmVyJyk7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0KSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkxvZzogTnhzQ2Fyb3VzZWxDb21wb25lbnQgLT4gc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQgLT4gbXV0YXRpb25zTGlzdFwiLCBtdXRhdGlvbnNMaXN0KTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiTG9nOiBOeHNDYXJvdXNlbENvbXBvbmVudCAtPiBzdWJzY3JpYmVUb1NsaWRlQ2hhbmdlZCAtPiBNdXRhdGlvbk9ic2VydmVyXCIpO1xuICAgICAgICAgICAgdGhpcy5sb2coJ211dGF0aW9uIG9ic2VydmVyIC0gaHRtbCBjb250ZW50IGhhcyBjaGFuZ2VkJyk7XG4gICAgICAgICAgICBpZiAobXV0YXRpb25zTGlzdC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgbGV0IG11c3RVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgICAgICAgICAgIGlmIChtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDAgfHwgbXV0YXRpb24ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbXVzdFVwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtdXN0VXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpZGVzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVTbGlkZXIodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMubnhzU2xpZGVzV3JhcHBlci5uYXRpdmVFbGVtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgYXR0cmlidXRlczogZmFsc2UsIH0pO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFNsaWRlcygpO1xuICAgICAgICB0aGlzLmNyZWF0ZVNsaWRlcih0cnVlKTtcbiAgICB9XG4gICAgZ2V0TWFpblNsaWRlckhlaWdodCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscyAmJiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMub25NYWluU2xpZGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxMDAlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDEwMCAtIHRoaXMub3B0aW9ucy5ueHNUaHVtYm5haWxzLnBlcmNlbnRIZWlnaHQpICsgJyUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0T3B0aW9ucyhvcHRpb25zOiBOeHNDYXJvdXNlbE9wdGlvbnMsIGZvckRpYWxvZzogYm9vbGVhbikge1xuICAgICAgICBpZiAoIW9wdGlvbnMgJiYgZm9yRGlhbG9nKSB7XG4gICAgICAgICAgICBvcHRpb25zID0geyBueHNTaG93TmF2aWdhdGlvbkJ1bGxldHM6IHRydWUsIGxvb3A6IHRydWUsIG54c1RodW1ibmFpbHM6IHsgc2hvdzogdHJ1ZSB9LCBlZmZlY3Q6ICdzbGlkZScsIG54c1Nob3dOYXZpZ2F0aW9uQXJyb3dzOiB0cnVlLCBueHNTaG93SW1hZ2VzQ291bnQ6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghb3B0aW9ucylcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IG54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0czogdHJ1ZSwgbG9vcDogdHJ1ZSwgbnhzVGh1bWJuYWlsczogeyBzaG93OiBmYWxzZSB9LCBlZmZlY3Q6ICdzbGlkZScsIG54c1Nob3dOYXZpZ2F0aW9uQXJyb3dzOiB0cnVlLCBueHNTaG93SW1hZ2VzQ291bnQ6IGZhbHNlLCBueHNDYXJvdXNlbERpYWxvZ09wdGlvbnM6IHt9IH07XG4gICAgICAgIGlmIChvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNUaHVtYm5haWxzID0geyBzaG93OiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5lZmZlY3QgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLmVmZmVjdCA9ICdzbGlkZSc7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1Nob3dOYXZpZ2F0aW9uQXJyb3dzID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICBvcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucy5ueHNTaG93TmF2aWdhdGlvbkFycm93cyA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmICghIW9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHM/LnNob3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLm54c1RodW1ibmFpbHMucGVyY2VudEhlaWdodCA9IDIwO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJWaWV3ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJWaWV3ID0gMTA7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ09wdGlvbnMubnhzVGh1bWJuYWlscy5icmVha3BvaW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgNjQwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA1LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICA3Njg6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIDEwMjQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDgsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMubnhzVGh1bWJuYWlscylcbiAgICAgICAgICAgIG9wdGlvbnMubnhzVGh1bWJuYWlscyA9IHsgc2hvdzogZmFsc2UgfTtcblxuICAgICAgICBpZiAob3B0aW9ucy5ueHNUaHVtYm5haWxzLnNob3cgJiYgdHlwZW9mIG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIG9wdGlvbnMubnhzVGh1bWJuYWlscy5wZXJjZW50SGVpZ2h0ID0gMjA7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93ICYmIHR5cGVvZiBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICBvcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyA9IDEwO1xuXG5cbiAgICAgICAgaWYgKGZvckRpYWxvZylcbiAgICAgICAgICAgIG9wdGlvbnMubnhzZnVsbHNjcmVlbk9uQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubnhzVGh1bWJuYWlscy5vbk1haW5TbGlkZXIpXG4gICAgICAgICAgICBvcHRpb25zLm54c1Nob3dOYXZpZ2F0aW9uQnVsbGV0cyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gICAgcHVibGljIHNob3dGdWxsU2NyZWVuQ2Fyb3VzZWwoaW1hZ2VzOiBOeHNDYXJvdXNlbEltYWdlW10sIHdyYXBwZXJDbGFzcz86IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zID0gdGhpcy5zZXREZWZhdWx0T3B0aW9ucyh0aGlzLm9wdGlvbnMubnhzQ2Fyb3VzZWxEaWFsb2dPcHRpb25zLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZGF0YTogTnhzQ2Fyb3VzZWxEaWFsb2dEYXRhID0geyBpbWFnZXMsIHdyYXBwZXJDbGFzcywgb3B0aW9uczogdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nT3B0aW9ucyB9O1xuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ254cy1jYXJvdXNlbC1kaWFsb2cnLFxuICAgICAgICAgICAgd2lkdGg6ICEhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZSA/IHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ1NpemUud2lkdGggOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBoZWlnaHQ6ICEhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nU2l6ZSA/IHRoaXMub3B0aW9ucy5ueHNDYXJvdXNlbERpYWxvZ1NpemUuaGVpZ2h0IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiAhdGhpcy5vcHRpb25zLm54c0Nhcm91c2VsRGlhbG9nRXhpdGFibGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGNyZWF0ZVNsaWRlcihmb3JjZVJlY3JlYXRlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdwcmV2ZW50IGNyZWF0ZVNsaWRlciA6IHBsYXRmb3JtIGlzIHNlcnZlcicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5ueHNTbGlkZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdjYW4gbm90IGNyZWF0ZVNsaWRlciA6IG54c1NsaWRlckNvbnRhaW5lciBpcyBub3QgZGVmaW5lZCAhJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2coJ2NyZWF0ZVNsaWRlcicsIHRoaXMubnhzU2xpZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXNDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2NhbiBub3QgY3JlYXRlU2xpZGVyIDogc2xpZGVzQ291bnQgPT09IDAnKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlVG9TbGlkZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zbGlkZXJJbnN0YW5jZSAmJiAhZm9yY2VSZWNyZWF0ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2NhbiByZSBjcmVhdGUgc2xpZGVyID0+IHNsaWRlciBpcyBhbHJlYWR5IGNyZWF0ZWQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgZWw6ICcubnhzLWNhcm91c2VsLXBhZ2luYXRpb24nLFxuICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnVsbGV0cycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm5hdmlnYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgbmV4dEVsOiAnLm54cy1jYXJvdXNlbC1idXR0b24tbmV4dCcsXG4gICAgICAgICAgICAgICAgcHJldkVsOiAnLm54cy1jYXJvdXNlbC1idXR0b24tcHJldicsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCF0aGlzLnN3aXBlckxpYnJhcnkpXG4gICAgICAgICAgICAgICAgdGhpcy5zd2lwZXJMaWJyYXJ5ID0gYXdhaXQgaW1wb3J0KFwic3dpcGVyXCIpO1xuICAgICAgICAgICAgY29uc3QgU3dpcGVyID0gdGhpcy5zd2lwZXJMaWJyYXJ5LmRlZmF1bHQ7XG4gICAgICAgICAgICBpZiAoISF0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscyAmJiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5zaG93KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGh1bWJuYWlsc09wdGlvbnM6IE54c0Nhcm91c2VsT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5vcHRpb25zLm54c1RodW1ibmFpbHMucGVyVmlldyxcbiAgICAgICAgICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB3YXRjaFNsaWRlc1Zpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB0aGlzLm9wdGlvbnMubnhzVGh1bWJuYWlscy5icmVha3BvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgLy8gc3BhY2VCZXR3ZWVuOiAxMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsc1NsaWRlckluc3RhbmNlID0gbmV3IFN3aXBlcih0aGlzLm54c1RodW1ibmFpbHNTbGlkZXJDb250YWluZXIubmF0aXZlRWxlbWVudCwgdGh1bWJuYWlsc09wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy50aHVtYnMgPSB7IHN3aXBlcjogdGhpcy50aHVtYm5haWxzU2xpZGVySW5zdGFuY2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHRoaXMubnhzU2xpZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmxvZygnc2xpZGVySW5zdGFuY2UgaGFzIGJlZW4gY3JlYXRlZCcsIHRoaXMuc2xpZGVySW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy5zbGlkZXJJbnN0YW5jZS5vbignc2xpZGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNsaWRlID0gdGhpcy5zbGlkZXJJbnN0YW5jZS5yZWFsSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKFwic2xpZGVDaGFuZ2VcIiwgdGhpcy5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQ2hhbmdlLm5leHQodGhpcy5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLm9uKCdjbGljaycsIChldnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoJ254cy1jYXJvdXNlbC1idXR0b24nKSAhPT0gLTEgfHwgdGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCdzd2lwZXItcGFnaW5hdGlvbicpICE9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQ2xpY2submV4dChldnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm54c2Z1bGxzY3JlZW5PbkNsaWNrICYmIHRoaXMuaW1hZ2VzICYmIHRoaXMuaW1hZ2VzLmxlbmd0aCAmJiAhdGhpcy5oYXNIdG1sQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RnVsbFNjcmVlbkNhcm91c2VsKHRoaXMuaW1hZ2VzLCAnZnVsbHNjcmVlbi1jYXJvdXNlbCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1NsaWRlQ2hhbmdlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnb1RvU2xpZGUoaW5kZXg6IG51bWJlciwgc3BlZWQ/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlVG8oaW5kZXgsIHNwZWVkKTtcbiAgICB9XG4gICAgbmV4dCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlTmV4dCgpO1xuICAgIH1cbiAgICBwcmV2aW91cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluc3RhbmNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckluc3RhbmNlLnNsaWRlUHJldigpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
var NxsCarouselModule_1;
|
|
2
|
-
import { __decorate } from "tslib";
|
|
3
1
|
import { NgModule } from '@angular/core';
|
|
4
2
|
import { CommonModule } from '@angular/common';
|
|
5
3
|
import { NxsCarouselDialogComponent } from './nxs-carousel-dialog.component';
|
|
@@ -9,33 +7,32 @@ import { MatDialogModule } from '@angular/material/dialog';
|
|
|
9
7
|
import { NxsCarouselComponent } from './nxs-carousel.component';
|
|
10
8
|
import { NxsCarouselModuleConfig } from './nxs-carousel-types';
|
|
11
9
|
import { ObserversModule } from '@angular/cdk/observers';
|
|
12
|
-
|
|
10
|
+
export class NxsCarouselModule {
|
|
13
11
|
static forRoot(config) {
|
|
14
12
|
return {
|
|
15
|
-
ngModule:
|
|
13
|
+
ngModule: NxsCarouselModule,
|
|
16
14
|
providers: [
|
|
17
15
|
{ provide: NxsCarouselModuleConfig, useValue: config },
|
|
18
16
|
]
|
|
19
17
|
};
|
|
20
18
|
}
|
|
21
|
-
}
|
|
22
|
-
NxsCarouselModule =
|
|
23
|
-
NgModule
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25leHRhbHlzLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL254cy1jYXJvdXNlbC9ueHMtY2Fyb3VzZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWtCekQsSUFBYSxpQkFBaUIseUJBQTlCLE1BQWEsaUJBQWlCO0lBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBZ0M7UUFDbEQsT0FBTztZQUNILFFBQVEsRUFBRSxtQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDekQ7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUE7QUFUWSxpQkFBaUI7SUFoQjdCLFFBQVEsQ0FBQztRQUNOLFlBQVksRUFBRTtZQUNWLG9CQUFvQjtZQUNwQiwwQkFBMEI7U0FDN0I7UUFDRCxPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtTQUNsQjtRQUNELE9BQU8sRUFBRTtZQUNMLG9CQUFvQjtTQUN2QjtLQUNKLENBQUM7R0FDVyxpQkFBaUIsQ0FTN0I7U0FUWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE54c0Nhcm91c2VsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE54c0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE54c0Nhcm91c2VsTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9ueHMtY2Fyb3VzZWwtdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIE54c0Nhcm91c2VsQ29tcG9uZW50LFxuICAgICAgICBOeHNDYXJvdXNlbERpYWxvZ0NvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgT2JzZXJ2ZXJzTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBOeHNDYXJvdXNlbENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOeHNDYXJvdXNlbE1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IE54c0Nhcm91c2VsTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOeHNDYXJvdXNlbE1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE54c0Nhcm91c2VsTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn0iXX0=
|
|
19
|
+
}
|
|
20
|
+
NxsCarouselModule.decorators = [
|
|
21
|
+
{ type: NgModule, args: [{
|
|
22
|
+
declarations: [
|
|
23
|
+
NxsCarouselComponent,
|
|
24
|
+
NxsCarouselDialogComponent,
|
|
25
|
+
],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
MatIconModule,
|
|
29
|
+
MatButtonModule,
|
|
30
|
+
MatDialogModule,
|
|
31
|
+
ObserversModule,
|
|
32
|
+
],
|
|
33
|
+
exports: [
|
|
34
|
+
NxsCarouselComponent,
|
|
35
|
+
],
|
|
36
|
+
},] }
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnhzLWNhcm91c2VsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbnhzLWNhcm91c2VsL254cy1jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWtCekQsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWdDO1FBQ2xELE9BQU87WUFDSCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQ3pEO1NBQ0osQ0FBQztJQUNOLENBQUM7OztZQXhCSixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFO29CQUNWLG9CQUFvQjtvQkFDcEIsMEJBQTBCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixlQUFlO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsb0JBQW9CO2lCQUN2QjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbnhzLWNhcm91c2VsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vbnhzLWNhcm91c2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vbnhzLWNhcm91c2VsLXR5cGVzJztcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBOeHNDYXJvdXNlbENvbXBvbmVudCxcbiAgICAgICAgTnhzQ2Fyb3VzZWxEaWFsb2dDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIE9ic2VydmVyc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTnhzQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnhzQ2Fyb3VzZWxNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBOeHNDYXJvdXNlbE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnhzQ2Fyb3VzZWxNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOeHNDYXJvdXNlbE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTnhzQ2Fyb3VzZWxNb2R1bGVDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59Il19
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
5
|
export { NxsCarouselDialogComponent as ɵa } from './lib/nxs-carousel/nxs-carousel-dialog.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGFseXMtY2Fyb3VzZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV4dGFseXMtY2Fyb3VzZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TnhzQ2Fyb3VzZWxEaWFsb2dDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9ueHMtY2Fyb3VzZWwvbnhzLWNhcm91c2VsLWRpYWxvZy5jb21wb25lbnQnOyJdfQ==
|
package/esm2015/public-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './lib/nxs-carousel/nxs-carousel.component';
|
|
2
2
|
export * from './lib/nxs-carousel/nxs-carousel.module';
|
|
3
3
|
export * from './lib/nxs-carousel/nxs-carousel-types';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbnhzLWNhcm91c2VsL254cy1jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbnhzLWNhcm91c2VsL254cy1jYXJvdXNlbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbnhzLWNhcm91c2VsL254cy1jYXJvdXNlbC10eXBlcyc7XG4iXX0=
|