ngx-slick-carousel
Advanced tools
Comparing version 0.4.4 to 0.4.5
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms')) : | ||
typeof define === 'function' && define.amd ? define('ngx-slick-carousel', ['exports', '@angular/common', '@angular/core', '@angular/forms'], factory) : | ||
(factory((global['ngx-slick-carousel'] = {}),global.ng.common,global.ng.core,global.ng.forms)); | ||
}(this, (function (exports,common,core,forms) { 'use strict'; | ||
(global = global || self, factory(global['ngx-slick-carousel'] = {}, global.ng.common, global.ng.core, global.ng.forms)); | ||
}(this, function (exports, common, core, forms) { 'use strict'; | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -14,3 +14,3 @@ /** | ||
*/ | ||
var SlickCarouselComponent = (function () { | ||
var SlickCarouselComponent = /** @class */ (function () { | ||
/** | ||
@@ -43,5 +43,5 @@ * Constructor | ||
*/ | ||
function () { | ||
this.unslick(); | ||
}; | ||
function () { | ||
this.unslick(); | ||
}; | ||
/** | ||
@@ -53,5 +53,5 @@ * @return {?} | ||
*/ | ||
function () { | ||
this.ngAfterViewChecked(); | ||
}; | ||
function () { | ||
this.ngAfterViewChecked(); | ||
}; | ||
/** | ||
@@ -68,37 +68,54 @@ * On component view checked | ||
*/ | ||
function () { | ||
var _this = this; | ||
if (this._addedSlides.length > 0 || this._removedSlides.length > 0) { | ||
/** @type {?} */ | ||
var nextSlidesLength = this.slides.length - this._removedSlides.length + this._addedSlides.length; | ||
if (!this.initialized) { | ||
if (nextSlidesLength > 0) { | ||
this.initSlick(); | ||
} | ||
// if nextSlidesLength is zere, do nothing | ||
function () { | ||
var _this = this; | ||
if (this._addedSlides.length > 0 || this._removedSlides.length > 0) { | ||
/** @type {?} */ | ||
var nextSlidesLength = this.slides.length - this._removedSlides.length + this._addedSlides.length; | ||
if (!this.initialized) { | ||
if (nextSlidesLength > 0) { | ||
this.initSlick(); | ||
} | ||
else if (nextSlidesLength === 0) { | ||
// unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach(function (slickItem) { | ||
_this.slides.push(slickItem); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
}); | ||
}); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach(function (slickItem) { | ||
/** @type {?} */ | ||
var idx = _this.slides.indexOf(slickItem); | ||
_this.slides = _this.slides.filter(function (s) { return s !== slickItem; }); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickRemove', idx); | ||
}); | ||
}); | ||
this._removedSlides = []; | ||
} | ||
// if nextSlidesLength is zere, do nothing | ||
} | ||
}; | ||
else if (nextSlidesLength === 0) { // unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
_this.slides.push(slickItem); | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
})); | ||
})); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
/** @type {?} */ | ||
var idx = _this.slides.indexOf(slickItem); | ||
_this.slides = _this.slides.filter((/** | ||
* @param {?} s | ||
* @return {?} | ||
*/ | ||
function (s) { return s !== slickItem; })); | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickRemove', idx); | ||
})); | ||
})); | ||
this._removedSlides = []; | ||
} | ||
} | ||
}; | ||
/** | ||
@@ -115,43 +132,93 @@ * init slick | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.slides = this._addedSlides; | ||
this._addedSlides = []; | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.slides = this._addedSlides; | ||
this._addedSlides = []; | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance = jQuery(_this.el.nativeElement); | ||
_this.$instance.on('init', function (event, slick) { | ||
_this.zone.run(function () { | ||
_this.init.emit({ event: event, slick: slick }); | ||
}); | ||
}); | ||
_this.$instance.slick(_this.config); | ||
_this.zone.run(function () { | ||
_this.initialized = true; | ||
_this.currentIndex = (_this.config && _this.config.initialSlide) ? _this.config.initialSlide : 0; | ||
}); | ||
_this.$instance.on('afterChange', function (event, slick, currentSlide) { | ||
_this.zone.run(function () { | ||
_this.afterChange.emit({ event: event, slick: slick, currentSlide: currentSlide }); | ||
_this.currentIndex = currentSlide; | ||
}); | ||
}); | ||
_this.$instance.on('beforeChange', function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run(function () { | ||
_this.beforeChange.emit({ event: event, slick: slick, currentSlide: currentSlide, nextSlide: nextSlide }); | ||
}); | ||
}); | ||
_this.$instance.on('breakpoint', function (event, slick, breakpoint) { | ||
_this.zone.run(function () { | ||
_this.breakpoint.emit({ event: event, slick: slick, breakpoint: breakpoint }); | ||
}); | ||
}); | ||
_this.$instance.on('destroy', function (event, slick) { | ||
_this.zone.run(function () { | ||
_this.destroy.emit({ event: event, slick: slick }); | ||
_this.initialized = false; | ||
}); | ||
}); | ||
}); | ||
}; | ||
_this.$instance = jQuery(_this.el.nativeElement); | ||
_this.$instance.on('init', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.init.emit({ event: event, slick: slick }); | ||
})); | ||
})); | ||
_this.$instance.slick(_this.config); | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.initialized = true; | ||
_this.currentIndex = (_this.config && _this.config.initialSlide) ? _this.config.initialSlide : 0; | ||
})); | ||
_this.$instance.on('afterChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.afterChange.emit({ event: event, slick: slick, currentSlide: currentSlide }); | ||
_this.currentIndex = currentSlide; | ||
})); | ||
})); | ||
_this.$instance.on('beforeChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @param {?} nextSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.beforeChange.emit({ event: event, slick: slick, currentSlide: currentSlide, nextSlide: nextSlide }); | ||
})); | ||
})); | ||
_this.$instance.on('breakpoint', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
function (event, slick, breakpoint) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.breakpoint.emit({ event: event, slick: slick, breakpoint: breakpoint }); | ||
})); | ||
})); | ||
_this.$instance.on('destroy', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.destroy.emit({ event: event, slick: slick }); | ||
_this.initialized = false; | ||
})); | ||
})); | ||
})); | ||
}; | ||
/** | ||
@@ -165,5 +232,5 @@ * @param {?} slickItem | ||
*/ | ||
function (slickItem) { | ||
this._addedSlides.push(slickItem); | ||
}; | ||
function (slickItem) { | ||
this._addedSlides.push(slickItem); | ||
}; | ||
/** | ||
@@ -177,7 +244,10 @@ * @param {?} slickItem | ||
*/ | ||
function (slickItem) { | ||
this._removedSlides.push(slickItem); | ||
}; | ||
function (slickItem) { | ||
this._removedSlides.push(slickItem); | ||
}; | ||
/** | ||
* Slick Method | ||
*/ | ||
/** | ||
* Slick Method | ||
* @param {?} index | ||
@@ -191,8 +261,11 @@ * @return {?} | ||
*/ | ||
function (index) { | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickGoTo', index); | ||
}); | ||
}; | ||
function (index) { | ||
var _this = this; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickGoTo', index); | ||
})); | ||
}; | ||
/** | ||
@@ -204,8 +277,11 @@ * @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickNext'); | ||
}); | ||
}; | ||
_this.$instance.slick('slickNext'); | ||
})); | ||
}; | ||
/** | ||
@@ -217,8 +293,11 @@ * @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickPrev'); | ||
}); | ||
}; | ||
_this.$instance.slick('slickPrev'); | ||
})); | ||
}; | ||
/** | ||
@@ -230,8 +309,11 @@ * @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickPause'); | ||
}); | ||
}; | ||
_this.$instance.slick('slickPause'); | ||
})); | ||
}; | ||
/** | ||
@@ -243,8 +325,11 @@ * @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickPlay'); | ||
}); | ||
}; | ||
_this.$instance.slick('slickPlay'); | ||
})); | ||
}; | ||
/** | ||
@@ -256,12 +341,15 @@ * @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('unslick'); | ||
}); | ||
this.$instance = undefined; | ||
} | ||
this.initialized = false; | ||
}; | ||
function () { | ||
var _this = this; | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('unslick'); | ||
})); | ||
this.$instance = undefined; | ||
} | ||
this.initialized = false; | ||
}; | ||
/** | ||
@@ -275,17 +363,20 @@ * @param {?} changes | ||
*/ | ||
function (changes) { | ||
var _this = this; | ||
if (changes['config'].previousValue !== changes['config'].currentValue && changes['config'].currentValue !== undefined) { | ||
if (this.initialized) { | ||
/** @type {?} */ | ||
var refresh_1 = changes['config'].currentValue['refresh']; | ||
/** @type {?} */ | ||
var newOptions_1 = Object.assign({}, changes['config'].currentValue); | ||
delete newOptions_1['refresh']; | ||
this.zone.runOutsideAngular(function () { | ||
_this.$instance.slick('slickSetOption', newOptions_1, refresh_1); | ||
}); | ||
} | ||
function (changes) { | ||
var _this = this; | ||
if (changes['config'].previousValue !== changes['config'].currentValue && changes['config'].currentValue !== undefined) { | ||
if (this.initialized) { | ||
/** @type {?} */ | ||
var refresh_1 = changes['config'].currentValue['refresh']; | ||
/** @type {?} */ | ||
var newOptions_1 = Object.assign({}, changes['config'].currentValue); | ||
delete newOptions_1['refresh']; | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickSetOption', newOptions_1, refresh_1); | ||
})); | ||
} | ||
}; | ||
} | ||
}; | ||
SlickCarouselComponent.decorators = [ | ||
@@ -297,3 +388,6 @@ { type: core.Component, args: [{ | ||
provide: forms.NG_VALUE_ACCESSOR, | ||
useExisting: core.forwardRef(function () { return SlickCarouselComponent; }), | ||
useExisting: core.forwardRef((/** | ||
* @return {?} | ||
*/ | ||
function () { return SlickCarouselComponent; })), | ||
multi: true | ||
@@ -305,8 +399,6 @@ }], | ||
/** @nocollapse */ | ||
SlickCarouselComponent.ctorParameters = function () { | ||
return [ | ||
{ type: core.ElementRef }, | ||
{ type: core.NgZone } | ||
]; | ||
}; | ||
SlickCarouselComponent.ctorParameters = function () { return [ | ||
{ type: core.ElementRef }, | ||
{ type: core.NgZone } | ||
]; }; | ||
SlickCarouselComponent.propDecorators = { | ||
@@ -322,3 +414,3 @@ config: [{ type: core.Input }], | ||
}()); | ||
var SlickItemDirective = (function () { | ||
var SlickItemDirective = /** @class */ (function () { | ||
function SlickItemDirective(el, platformId, carousel) { | ||
@@ -335,7 +427,7 @@ this.el = el; | ||
*/ | ||
function () { | ||
if (common.isPlatformBrowser(this.platformId)) { | ||
this.carousel.addSlide(this); | ||
} | ||
}; | ||
function () { | ||
if (common.isPlatformBrowser(this.platformId)) { | ||
this.carousel.addSlide(this); | ||
} | ||
}; | ||
/** | ||
@@ -347,7 +439,7 @@ * @return {?} | ||
*/ | ||
function () { | ||
if (common.isPlatformBrowser(this.platformId)) { | ||
this.carousel.removeSlide(this); | ||
} | ||
}; | ||
function () { | ||
if (common.isPlatformBrowser(this.platformId)) { | ||
this.carousel.removeSlide(this); | ||
} | ||
}; | ||
SlickItemDirective.decorators = [ | ||
@@ -359,9 +451,7 @@ { type: core.Directive, args: [{ | ||
/** @nocollapse */ | ||
SlickItemDirective.ctorParameters = function () { | ||
return [ | ||
{ type: core.ElementRef }, | ||
{ type: String, decorators: [{ type: core.Inject, args: [core.PLATFORM_ID,] }] }, | ||
{ type: SlickCarouselComponent, decorators: [{ type: core.Host }] } | ||
]; | ||
}; | ||
SlickItemDirective.ctorParameters = function () { return [ | ||
{ type: core.ElementRef }, | ||
{ type: String, decorators: [{ type: core.Inject, args: [core.PLATFORM_ID,] }] }, | ||
{ type: SlickCarouselComponent, decorators: [{ type: core.Host }] } | ||
]; }; | ||
return SlickItemDirective; | ||
@@ -372,5 +462,5 @@ }()); | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
var SlickCarouselModule = (function () { | ||
var SlickCarouselModule = /** @class */ (function () { | ||
function SlickCarouselModule() { | ||
@@ -396,9 +486,4 @@ } | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
*/ | ||
exports.SlickCarouselComponent = SlickCarouselComponent; | ||
exports.SlickCarouselModule = SlickCarouselModule; | ||
exports.SlickCarouselComponent = SlickCarouselComponent; | ||
exports.SlickItemDirective = SlickItemDirective; | ||
@@ -408,4 +493,3 @@ | ||
}))); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNsaWNrLWNhcm91c2VsLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LXNsaWNrLWNhcm91c2VsL3NsaWNrLmNvbXBvbmVudC50cyIsIm5nOi8vbmd4LXNsaWNrLWNhcm91c2VsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5kZWNsYXJlIGNvbnN0IGpRdWVyeTogYW55O1xuXG4vKipcbiAqIFNsaWNrIGNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1zbGljay1jYXJvdXNlbCcsXG4gICAgZXhwb3J0QXM6ICdzbGljay1jYXJvdXNlbCcsXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tDYXJvdXNlbENvbXBvbmVudCksXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfV0sXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogYW55O1xuICAgIEBPdXRwdXQoKSBhZnRlckNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJlZm9yZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJyZWFrcG9pbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkZXN0cm95OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgJGluc3RhbmNlOiBhbnk7XG4gICAgcHVibGljIGN1cnJlbnRJbmRleDogbnVtYmVyO1xuICAgIHB1YmxpYyBzbGlkZXM6IGFueVtdID0gW107XG4gICAgcHVibGljIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfcmVtb3ZlZFNsaWRlczogU2xpY2tJdGVtRGlyZWN0aXZlW10gPSBbXTtcbiAgICBwcml2YXRlIF9hZGRlZFNsaWRlczogU2xpY2tJdGVtRGlyZWN0aXZlW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IGRlc3Ryb3lcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nQWZ0ZXJWaWV3Q2hlY2tlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGNvbXBvbmVudCB2aWV3IGNoZWNrZWRcbiAgICAgKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGggPiAwIHx8IHRoaXMuX3JlbW92ZWRTbGlkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFNsaWRlc0xlbmd0aCA9IHRoaXMuc2xpZGVzLmxlbmd0aCAtIHRoaXMuX3JlbW92ZWRTbGlkZXMubGVuZ3RoICsgdGhpcy5fYWRkZWRTbGlkZXMubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTbGlkZXNMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGlmIG5leHRTbGlkZXNMZW5ndGggaXMgemVyZSwgZG8gbm90aGluZ1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0U2xpZGVzTGVuZ3RoID09PSAwKSB7IC8vIHVuc2xpY2sgY2FzZVxuICAgICAgICAgICAgICAgIHRoaXMudW5zbGljaygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzLnB1c2goc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja0FkZCcsIHNsaWNrSXRlbS5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMuZm9yRWFjaChzbGlja0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLnNsaWRlcy5pbmRleE9mKHNsaWNrSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzID0gdGhpcy5zbGlkZXMuZmlsdGVyKHMgPT4gcyAhPT0gc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1JlbW92ZScsIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGluaXQgc2xpY2tcbiAgICAgKi9cbiAgICBpbml0U2xpY2soKSB7XG4gICAgICAgIHRoaXMuc2xpZGVzID0gdGhpcy5fYWRkZWRTbGlkZXM7XG4gICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzID0gW107XG4gICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlID0galF1ZXJ5KHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdpbml0JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2sodGhpcy5jb25maWcpO1xuXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSkgPyB0aGlzLmNvbmZpZy5pbml0aWFsU2xpZGUgOiAwO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdhZnRlckNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gY3VycmVudFNsaWRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdiZWZvcmVDaGFuZ2UnLCAoZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUsIG5leHRTbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZUNoYW5nZS5lbWl0KHtldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JyZWFrcG9pbnQnLCAoZXZlbnQsIHNsaWNrLCBicmVha3BvaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludC5lbWl0KHtldmVudCwgc2xpY2ssIGJyZWFrcG9pbnR9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignZGVzdHJveScsIChldmVudCwgc2xpY2spID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95LmVtaXQoe2V2ZW50LCBzbGlja30pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgIH1cblxuICAgIHJlbW92ZVNsaWRlKHNsaWNrSXRlbTogU2xpY2tJdGVtRGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNsaWNrIE1ldGhvZFxuICAgICAqL1xuICAgIHB1YmxpYyBzbGlja0dvVG8oaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrR29UbycsIGluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrTmV4dCgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja05leHQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrUHJldigpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1ByZXYnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrUGF1c2UoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQYXVzZScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQbGF5KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUGxheScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuJGluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCd1bnNsaWNrJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydjb25maWcnXS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgJiYgY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaCA9IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZVsncmVmcmVzaCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdPcHRpb25zWydyZWZyZXNoJ107XG5cbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tTZXRPcHRpb24nLCBuZXdPcHRpb25zLCByZWZyZXNoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3hTbGlja0l0ZW1dJyxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBASG9zdCgpIHByaXZhdGUgY2Fyb3VzZWw6IFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwuYWRkU2xpZGUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwucmVtb3ZlU2xpZGUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTbGlja0Nhcm91c2VsQ29tcG9uZW50LCBTbGlja0l0ZW1EaXJlY3RpdmV9IGZyb20gJy4vc2xpY2suY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgU2xpY2tJdGVtRGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tDYXJvdXNlbE1vZHVsZSB7XG59XG4iXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwiQ29tcG9uZW50IiwiTkdfVkFMVUVfQUNDRVNTT1IiLCJmb3J3YXJkUmVmIiwiRWxlbWVudFJlZiIsIk5nWm9uZSIsIklucHV0IiwiT3V0cHV0IiwiaXNQbGF0Zm9ybUJyb3dzZXIiLCJEaXJlY3RpdmUiLCJJbmplY3QiLCJQTEFURk9STV9JRCIsIkhvc3QiLCJOZ01vZHVsZSIsIkNvbW1vbk1vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7Ozs7O1FBd0RJLGdDQUFvQixFQUFjLEVBQ2Q7WUFEQSxPQUFFLEdBQUYsRUFBRSxDQUFZO1lBQ2QsU0FBSSxHQUFKLElBQUk7K0JBakJtQixJQUFJQSxpQkFBWSxFQUFFO2dDQUNqQixJQUFJQSxpQkFBWSxFQUFFOzhCQUNwQixJQUFJQSxpQkFBWSxFQUFFOzJCQUNyQixJQUFJQSxpQkFBWSxFQUFFO3dCQUNyQixJQUFJQSxpQkFBWSxFQUFFOzBCQUkvQixFQUFFOytCQUNKLEtBQUs7a0NBQ3FCLEVBQUU7Z0NBQ0osRUFBRTtTQVE5Qzs7Ozs7Ozs7UUFLRCw0Q0FBVzs7OztZQUFYO2dCQUNJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNsQjs7OztRQUVELGdEQUFlOzs7WUFBZjtnQkFDSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUM3Qjs7Ozs7Ozs7UUFLRCxtREFBa0I7Ozs7WUFBbEI7Z0JBQUEsaUJBNkJDO2dCQTVCRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O29CQUNoRSxJQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO29CQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDbkIsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUU7NEJBQ3RCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzt5QkFDcEI7O3FCQUVKO3lCQUFNLElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFOzt3QkFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUNsQjt5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 | ||
})); | ||
//# sourceMappingURL=ngx-slick-carousel.umd.js.map |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-slick-carousel",["exports","@angular/common","@angular/core","@angular/forms"],t):t(e["ngx-slick-carousel"]={},e.ng.common,e.ng.core,e.ng.forms)}(this,function(e,t,n,i){"use strict";var o=function(){function e(e,t){this.el=e,this.zone=t,this.afterChange=new n.EventEmitter,this.beforeChange=new n.EventEmitter,this.breakpoint=new n.EventEmitter,this.destroy=new n.EventEmitter,this.init=new n.EventEmitter,this.slides=[],this.initialized=!1,this._removedSlides=[],this._addedSlides=[]}return e.prototype.ngOnDestroy=function(){this.unslick()},e.prototype.ngAfterViewInit=function(){this.ngAfterViewChecked()},e.prototype.ngAfterViewChecked=function(){var n=this;if(0<this._addedSlides.length||0<this._removedSlides.length){var e=this.slides.length-this._removedSlides.length+this._addedSlides.length;this.initialized?0===e?this.unslick():(this._addedSlides.forEach(function(e){n.slides.push(e),n.zone.runOutsideAngular(function(){n.$instance.slick("slickAdd",e.el.nativeElement)})}),this._addedSlides=[],this._removedSlides.forEach(function(t){var e=n.slides.indexOf(t);n.slides=n.slides.filter(function(e){return e!==t}),n.zone.runOutsideAngular(function(){n.$instance.slick("slickRemove",e)})}),this._removedSlides=[]):0<e&&this.initSlick()}},e.prototype.initSlick=function(){var o=this;this.slides=this._addedSlides,this._addedSlides=[],this._removedSlides=[],this.zone.runOutsideAngular(function(){o.$instance=jQuery(o.el.nativeElement),o.$instance.on("init",function(e,t){o.zone.run(function(){o.init.emit({event:e,slick:t})})}),o.$instance.slick(o.config),o.zone.run(function(){o.initialized=!0,o.currentIndex=o.config&&o.config.initialSlide?o.config.initialSlide:0}),o.$instance.on("afterChange",function(e,t,n){o.zone.run(function(){o.afterChange.emit({event:e,slick:t,currentSlide:n}),o.currentIndex=n})}),o.$instance.on("beforeChange",function(e,t,n,i){o.zone.run(function(){o.beforeChange.emit({event:e,slick:t,currentSlide:n,nextSlide:i})})}),o.$instance.on("breakpoint",function(e,t,n){o.zone.run(function(){o.breakpoint.emit({event:e,slick:t,breakpoint:n})})}),o.$instance.on("destroy",function(e,t){o.zone.run(function(){o.destroy.emit({event:e,slick:t}),o.initialized=!1})})})},e.prototype.addSlide=function(e){this._addedSlides.push(e)},e.prototype.removeSlide=function(e){this._removedSlides.push(e)},e.prototype.slickGoTo=function(e){var t=this;this.zone.runOutsideAngular(function(){t.$instance.slick("slickGoTo",e)})},e.prototype.slickNext=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickNext")})},e.prototype.slickPrev=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPrev")})},e.prototype.slickPause=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPause")})},e.prototype.slickPlay=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPlay")})},e.prototype.unslick=function(){var e=this;this.$instance&&(this.zone.runOutsideAngular(function(){e.$instance.slick("unslick")}),this.$instance=undefined),this.initialized=!1},e.prototype.ngOnChanges=function(e){var t=this;if(e.config.previousValue!==e.config.currentValue&&e.config.currentValue!==undefined&&this.initialized){var n=e.config.currentValue.refresh,i=Object.assign({},e.config.currentValue);delete i.refresh,this.zone.runOutsideAngular(function(){t.$instance.slick("slickSetOption",i,n)})}},e.decorators=[{type:n.Component,args:[{selector:"ngx-slick-carousel",exportAs:"slick-carousel",providers:[{provide:i.NG_VALUE_ACCESSOR,useExisting:n.forwardRef(function(){return e}),multi:!0}],template:"<ng-content></ng-content>"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:n.NgZone}]},e.propDecorators={config:[{type:n.Input}],afterChange:[{type:n.Output}],beforeChange:[{type:n.Output}],breakpoint:[{type:n.Output}],destroy:[{type:n.Output}],init:[{type:n.Output}]},e}(),s=function(){function e(e,t,n){this.el=e,this.platformId=t,this.carousel=n}return e.prototype.ngOnInit=function(){t.isPlatformBrowser(this.platformId)&&this.carousel.addSlide(this)},e.prototype.ngOnDestroy=function(){t.isPlatformBrowser(this.platformId)&&this.carousel.removeSlide(this)},e.decorators=[{type:n.Directive,args:[{selector:"[ngxSlickItem]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:String,decorators:[{type:n.Inject,args:[n.PLATFORM_ID]}]},{type:o,decorators:[{type:n.Host}]}]},e}(),r=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule],declarations:[o,s],exports:[o,s]}]}],e}();e.SlickCarouselModule=r,e.SlickCarouselComponent=o,e.SlickItemDirective=s,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-slick-carousel",["exports","@angular/common","@angular/core","@angular/forms"],t):t((e=e||self)["ngx-slick-carousel"]={},e.ng.common,e.ng.core,e.ng.forms)}(this,function(e,t,n,i){"use strict";var o=function(){function e(e,t){this.el=e,this.zone=t,this.afterChange=new n.EventEmitter,this.beforeChange=new n.EventEmitter,this.breakpoint=new n.EventEmitter,this.destroy=new n.EventEmitter,this.init=new n.EventEmitter,this.slides=[],this.initialized=!1,this._removedSlides=[],this._addedSlides=[]}return e.prototype.ngOnDestroy=function(){this.unslick()},e.prototype.ngAfterViewInit=function(){this.ngAfterViewChecked()},e.prototype.ngAfterViewChecked=function(){var e=this;if(this._addedSlides.length>0||this._removedSlides.length>0){var t=this.slides.length-this._removedSlides.length+this._addedSlides.length;this.initialized?0===t?this.unslick():(this._addedSlides.forEach(function(t){e.slides.push(t),e.zone.runOutsideAngular(function(){e.$instance.slick("slickAdd",t.el.nativeElement)})}),this._addedSlides=[],this._removedSlides.forEach(function(t){var n=e.slides.indexOf(t);e.slides=e.slides.filter(function(e){return e!==t}),e.zone.runOutsideAngular(function(){e.$instance.slick("slickRemove",n)})}),this._removedSlides=[]):t>0&&this.initSlick()}},e.prototype.initSlick=function(){var e=this;this.slides=this._addedSlides,this._addedSlides=[],this._removedSlides=[],this.zone.runOutsideAngular(function(){e.$instance=jQuery(e.el.nativeElement),e.$instance.on("init",function(t,n){e.zone.run(function(){e.init.emit({event:t,slick:n})})}),e.$instance.slick(e.config),e.zone.run(function(){e.initialized=!0,e.currentIndex=e.config&&e.config.initialSlide?e.config.initialSlide:0}),e.$instance.on("afterChange",function(t,n,i){e.zone.run(function(){e.afterChange.emit({event:t,slick:n,currentSlide:i}),e.currentIndex=i})}),e.$instance.on("beforeChange",function(t,n,i,o){e.zone.run(function(){e.beforeChange.emit({event:t,slick:n,currentSlide:i,nextSlide:o})})}),e.$instance.on("breakpoint",function(t,n,i){e.zone.run(function(){e.breakpoint.emit({event:t,slick:n,breakpoint:i})})}),e.$instance.on("destroy",function(t,n){e.zone.run(function(){e.destroy.emit({event:t,slick:n}),e.initialized=!1})})})},e.prototype.addSlide=function(e){this._addedSlides.push(e)},e.prototype.removeSlide=function(e){this._removedSlides.push(e)},e.prototype.slickGoTo=function(e){var t=this;this.zone.runOutsideAngular(function(){t.$instance.slick("slickGoTo",e)})},e.prototype.slickNext=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickNext")})},e.prototype.slickPrev=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPrev")})},e.prototype.slickPause=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPause")})},e.prototype.slickPlay=function(){var e=this;this.zone.runOutsideAngular(function(){e.$instance.slick("slickPlay")})},e.prototype.unslick=function(){var e=this;this.$instance&&(this.zone.runOutsideAngular(function(){e.$instance.slick("unslick")}),this.$instance=void 0),this.initialized=!1},e.prototype.ngOnChanges=function(e){var t=this;if(e.config.previousValue!==e.config.currentValue&&void 0!==e.config.currentValue&&this.initialized){var n=e.config.currentValue.refresh,i=Object.assign({},e.config.currentValue);delete i.refresh,this.zone.runOutsideAngular(function(){t.$instance.slick("slickSetOption",i,n)})}},e.decorators=[{type:n.Component,args:[{selector:"ngx-slick-carousel",exportAs:"slick-carousel",providers:[{provide:i.NG_VALUE_ACCESSOR,useExisting:n.forwardRef(function(){return e}),multi:!0}],template:"<ng-content></ng-content>"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:n.NgZone}]},e.propDecorators={config:[{type:n.Input}],afterChange:[{type:n.Output}],beforeChange:[{type:n.Output}],breakpoint:[{type:n.Output}],destroy:[{type:n.Output}],init:[{type:n.Output}]},e}(),s=function(){function e(e,t,n){this.el=e,this.platformId=t,this.carousel=n}return e.prototype.ngOnInit=function(){t.isPlatformBrowser(this.platformId)&&this.carousel.addSlide(this)},e.prototype.ngOnDestroy=function(){t.isPlatformBrowser(this.platformId)&&this.carousel.removeSlide(this)},e.decorators=[{type:n.Directive,args:[{selector:"[ngxSlickItem]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:String,decorators:[{type:n.Inject,args:[n.PLATFORM_ID]}]},{type:o,decorators:[{type:n.Host}]}]},e}(),r=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule],declarations:[o,s],exports:[o,s]}]}],e}();e.SlickCarouselComponent=o,e.SlickCarouselModule=r,e.SlickItemDirective=s,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=ngx-slick-carousel.umd.min.js.map |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -26,3 +26,2 @@ import { CommonModule } from '@angular/common'; | ||
]; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0UsMkRBQWMsbUJBQW1CLENBQUM7QUFlbEMsTUFBTTs7O1lBYkwsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixzQkFBc0I7b0JBQ3RCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHNCQUFzQjtvQkFDdEIsa0JBQWtCO2lCQUNuQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2xpY2tDYXJvdXNlbENvbXBvbmVudCwgU2xpY2tJdGVtRGlyZWN0aXZlfSBmcm9tICcuL3NsaWNrLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2xpY2suY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTbGlja0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIFNsaWNrSXRlbURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgU2xpY2tJdGVtRGlyZWN0aXZlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNsaWNrQ2Fyb3VzZWxNb2R1bGUge1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0UsMkRBQWMsbUJBQW1CLENBQUM7QUFlbEMsTUFBTSxPQUFPLG1CQUFtQjs7O1lBYi9CLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osc0JBQXNCO29CQUN0QixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxzQkFBc0I7b0JBQ3RCLGtCQUFrQjtpQkFDbkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NsaWNrQ2Fyb3VzZWxDb21wb25lbnQsIFNsaWNrSXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NsaWNrLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTbGlja0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIFNsaWNrSXRlbURpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsTW9kdWxlIHtcbn1cbiJdfQ== |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -9,3 +9,2 @@ /** | ||
export { SlickCarouselModule, SlickCarouselComponent, SlickItemDirective } from './index'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNsaWNrLWNhcm91c2VsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibmd4LXNsaWNrLWNhcm91c2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnRkFBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19 |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -57,22 +57,39 @@ import { isPlatformBrowser } from '@angular/common'; | ||
} | ||
else if (nextSlidesLength === 0) { | ||
// unslick case | ||
else if (nextSlidesLength === 0) { // unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach(slickItem => { | ||
this._addedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
slickItem => { | ||
this.slides.push(slickItem); | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach(slickItem => { | ||
this._removedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
slickItem => { | ||
/** @type {?} */ | ||
const idx = this.slides.indexOf(slickItem); | ||
this.slides = this.slides.filter(s => s !== slickItem); | ||
this.zone.runOutsideAngular(() => { | ||
this.slides = this.slides.filter((/** | ||
* @param {?} s | ||
* @return {?} | ||
*/ | ||
s => s !== slickItem)); | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickRemove', idx); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._removedSlides = []; | ||
@@ -90,37 +107,87 @@ } | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance = jQuery(this.el.nativeElement); | ||
this.$instance.on('init', (event, slick) => { | ||
this.zone.run(() => { | ||
this.$instance.on('init', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
(event, slick) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.init.emit({ event, slick }); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this.$instance.slick(this.config); | ||
this.zone.run(() => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.initialized = true; | ||
this.currentIndex = (this.config && this.config.initialSlide) ? this.config.initialSlide : 0; | ||
}); | ||
this.$instance.on('afterChange', (event, slick, currentSlide) => { | ||
this.zone.run(() => { | ||
})); | ||
this.$instance.on('afterChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @return {?} | ||
*/ | ||
(event, slick, currentSlide) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.afterChange.emit({ event, slick, currentSlide }); | ||
this.currentIndex = currentSlide; | ||
}); | ||
}); | ||
this.$instance.on('beforeChange', (event, slick, currentSlide, nextSlide) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('beforeChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @param {?} nextSlide | ||
* @return {?} | ||
*/ | ||
(event, slick, currentSlide, nextSlide) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.beforeChange.emit({ event, slick, currentSlide, nextSlide }); | ||
}); | ||
}); | ||
this.$instance.on('breakpoint', (event, slick, breakpoint) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('breakpoint', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
(event, slick, breakpoint) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.breakpoint.emit({ event, slick, breakpoint }); | ||
}); | ||
}); | ||
this.$instance.on('destroy', (event, slick) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('destroy', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
(event, slick) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.destroy.emit({ event, slick }); | ||
this.initialized = false; | ||
}); | ||
}); | ||
}); | ||
})); | ||
})); | ||
})); | ||
} | ||
@@ -147,5 +214,8 @@ /** | ||
slickGoTo(index) { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickGoTo', index); | ||
}); | ||
})); | ||
} | ||
@@ -156,5 +226,8 @@ /** | ||
slickNext() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickNext'); | ||
}); | ||
})); | ||
} | ||
@@ -165,5 +238,8 @@ /** | ||
slickPrev() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPrev'); | ||
}); | ||
})); | ||
} | ||
@@ -174,5 +250,8 @@ /** | ||
slickPause() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPause'); | ||
}); | ||
})); | ||
} | ||
@@ -183,5 +262,8 @@ /** | ||
slickPlay() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPlay'); | ||
}); | ||
})); | ||
} | ||
@@ -193,5 +275,8 @@ /** | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('unslick'); | ||
}); | ||
})); | ||
this.$instance = undefined; | ||
@@ -213,5 +298,8 @@ } | ||
delete newOptions['refresh']; | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickSetOption', newOptions, refresh); | ||
}); | ||
})); | ||
} | ||
@@ -227,3 +315,6 @@ } | ||
provide: NG_VALUE_ACCESSOR, | ||
useExisting: forwardRef(() => SlickCarouselComponent), | ||
useExisting: forwardRef((/** | ||
* @return {?} | ||
*/ | ||
() => SlickCarouselComponent)), | ||
multi: true | ||
@@ -268,9 +359,21 @@ }], | ||
SlickCarouselComponent.prototype.initialized; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype._removedSlides; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype._addedSlides; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype.el; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype.zone; | ||
@@ -320,8 +423,13 @@ } | ||
SlickItemDirective.prototype.el; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickItemDirective.prototype.platformId; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickItemDirective.prototype.carousel; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsic2xpY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBR0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWlCakQsTUFBTTs7Ozs7O0lBbUJGLFlBQW9CLEVBQWMsRUFDZDtRQURBLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxTQUFJLEdBQUosSUFBSTsyQkFqQm1CLElBQUksWUFBWSxFQUFFOzRCQUNqQixJQUFJLFlBQVksRUFBRTswQkFDcEIsSUFBSSxZQUFZLEVBQUU7dUJBQ3JCLElBQUksWUFBWSxFQUFFO29CQUNyQixJQUFJLFlBQVksRUFBRTtzQkFJL0IsRUFBRTsyQkFDSixLQUFLOzhCQUNxQixFQUFFOzRCQUNKLEVBQUU7S0FROUM7Ozs7O0lBS0QsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNsQjs7OztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztLQUM3Qjs7Ozs7SUFLRCxrQkFBa0I7UUFDZCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7WUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FB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O1lBN05HLFVBQVU7eUNBZ09HLE1BQU0sU0FBQyxXQUFXO1lBQ08sc0JBQXNCLHVCQUEvQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmRlY2xhcmUgY29uc3QgalF1ZXJ5OiBhbnk7XG5cbi8qKlxuICogU2xpY2sgY29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXNsaWNrLWNhcm91c2VsJyxcbiAgICBleHBvcnRBczogJ3NsaWNrLWNhcm91c2VsJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gICAgQE91dHB1dCgpIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmVmb3JlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnJlYWtwb2ludDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRlc3Ryb3k6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyAkaW5zdGFuY2U6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHNsaWRlczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZW1vdmVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuICAgIHByaXZhdGUgX2FkZGVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgem9uZTogTmdab25lKSB7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjb21wb25lbnQgZGVzdHJveVxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc2xpY2soKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IHZpZXcgY2hlY2tlZFxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FkZGVkU2xpZGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2xpZGVzTGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggKyB0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFNsaWRlc0xlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgbmV4dFNsaWRlc0xlbmd0aCBpcyB6ZXJlLCBkbyBub3RoaW5nXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTbGlkZXNMZW5ndGggPT09IDApIHsgLy8gdW5zbGljayBjYXNlXG4gICAgICAgICAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzLmZvckVhY2goc2xpY2tJdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrQWRkJywgc2xpY2tJdGVtLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuc2xpZGVzLmluZGV4T2Yoc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLnNsaWRlcy5maWx0ZXIocyA9PiBzICE9PSBzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUmVtb3ZlJywgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBzbGlja1xuICAgICAqL1xuICAgIGluaXRTbGljaygpIHtcbiAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLl9hZGRlZFNsaWRlcztcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSBqUXVlcnkodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2luaXQnLCAoZXZlbnQsIHNsaWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdC5lbWl0KHtldmVudCwgc2xpY2t9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljayh0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuaW5pdGlhbFNsaWRlKSA/IHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSA6IDA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2FmdGVyQ2hhbmdlJywgKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7ZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JlZm9yZUNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlLCBuZXh0U2xpZGV9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYnJlYWtwb2ludCcsIChldmVudCwgc2xpY2ssIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50LmVtaXQoe2V2ZW50LCBzbGljaywgYnJlYWtwb2ludH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdkZXN0cm95JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3kuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTbGlkZShzbGlja0l0ZW06IFNsaWNrSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2xpY2sgTWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIHNsaWNrR29UbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tHb1RvJywgaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tOZXh0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrTmV4dCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQcmV2KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUHJldicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQYXVzZSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1BhdXNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1BsYXkoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy4kaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoID0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlWydyZWZyZXNoJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09wdGlvbnNbJ3JlZnJlc2gnXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1NldE9wdGlvbicsIG5ld09wdGlvbnMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFNsaWNrSXRlbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0l0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBjYXJvdXNlbDogU2xpY2tDYXJvdXNlbENvbXBvbmVudCkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5hZGRTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5yZW1vdmVTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsic2xpY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBR0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWlCakQsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7O0lBbUIvQixZQUFvQixFQUFjLEVBQ2QsSUFBWTtRQURaLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBakJ0QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJaEQsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUF5QixFQUFFLENBQUM7UUFDMUMsaUJBQVksR0FBeUIsRUFBRSxDQUFDO0lBUWhELENBQUM7Ozs7O0lBS0QsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7O0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7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Ozs7Ozs7SUFDM0IsWUFBbUIsRUFBYyxFQUNRLFVBQWtCLEVBQy9CLFFBQWdDO1FBRnpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDUSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQzVELENBQUM7Ozs7SUFFRCxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDOzs7O0lBRUQsV0FBVztRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQzs7O1lBbkJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzdCOzs7O1lBN05HLFVBQVU7eUNBZ09HLE1BQU0sU0FBQyxXQUFXO1lBQ08sc0JBQXNCLHVCQUEvQyxJQUFJOzs7O0lBRkwsZ0NBQXFCOzs7OztJQUNyQix3Q0FBK0M7Ozs7O0lBQy9DLHNDQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5kZWNsYXJlIGNvbnN0IGpRdWVyeTogYW55O1xuXG4vKipcbiAqIFNsaWNrIGNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1zbGljay1jYXJvdXNlbCcsXG4gICAgZXhwb3J0QXM6ICdzbGljay1jYXJvdXNlbCcsXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tDYXJvdXNlbENvbXBvbmVudCksXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfV0sXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogYW55O1xuICAgIEBPdXRwdXQoKSBhZnRlckNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJlZm9yZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJyZWFrcG9pbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkZXN0cm95OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgJGluc3RhbmNlOiBhbnk7XG4gICAgcHVibGljIGN1cnJlbnRJbmRleDogbnVtYmVyO1xuICAgIHB1YmxpYyBzbGlkZXM6IGFueVtdID0gW107XG4gICAgcHVibGljIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfcmVtb3ZlZFNsaWRlczogU2xpY2tJdGVtRGlyZWN0aXZlW10gPSBbXTtcbiAgICBwcml2YXRlIF9hZGRlZFNsaWRlczogU2xpY2tJdGVtRGlyZWN0aXZlW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IGRlc3Ryb3lcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nQWZ0ZXJWaWV3Q2hlY2tlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGNvbXBvbmVudCB2aWV3IGNoZWNrZWRcbiAgICAgKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGggPiAwIHx8IHRoaXMuX3JlbW92ZWRTbGlkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFNsaWRlc0xlbmd0aCA9IHRoaXMuc2xpZGVzLmxlbmd0aCAtIHRoaXMuX3JlbW92ZWRTbGlkZXMubGVuZ3RoICsgdGhpcy5fYWRkZWRTbGlkZXMubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTbGlkZXNMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGlmIG5leHRTbGlkZXNMZW5ndGggaXMgemVyZSwgZG8gbm90aGluZ1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0U2xpZGVzTGVuZ3RoID09PSAwKSB7IC8vIHVuc2xpY2sgY2FzZVxuICAgICAgICAgICAgICAgIHRoaXMudW5zbGljaygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzLnB1c2goc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja0FkZCcsIHNsaWNrSXRlbS5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMuZm9yRWFjaChzbGlja0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLnNsaWRlcy5pbmRleE9mKHNsaWNrSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzID0gdGhpcy5zbGlkZXMuZmlsdGVyKHMgPT4gcyAhPT0gc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1JlbW92ZScsIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGluaXQgc2xpY2tcbiAgICAgKi9cbiAgICBpbml0U2xpY2soKSB7XG4gICAgICAgIHRoaXMuc2xpZGVzID0gdGhpcy5fYWRkZWRTbGlkZXM7XG4gICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzID0gW107XG4gICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlID0galF1ZXJ5KHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdpbml0JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2sodGhpcy5jb25maWcpO1xuXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSkgPyB0aGlzLmNvbmZpZy5pbml0aWFsU2xpZGUgOiAwO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdhZnRlckNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gY3VycmVudFNsaWRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdiZWZvcmVDaGFuZ2UnLCAoZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUsIG5leHRTbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZUNoYW5nZS5lbWl0KHtldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JyZWFrcG9pbnQnLCAoZXZlbnQsIHNsaWNrLCBicmVha3BvaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludC5lbWl0KHtldmVudCwgc2xpY2ssIGJyZWFrcG9pbnR9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignZGVzdHJveScsIChldmVudCwgc2xpY2spID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95LmVtaXQoe2V2ZW50LCBzbGlja30pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgIH1cblxuICAgIHJlbW92ZVNsaWRlKHNsaWNrSXRlbTogU2xpY2tJdGVtRGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3JlbW92ZWRTbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNsaWNrIE1ldGhvZFxuICAgICAqL1xuICAgIHB1YmxpYyBzbGlja0dvVG8oaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrR29UbycsIGluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrTmV4dCgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja05leHQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrUHJldigpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1ByZXYnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrUGF1c2UoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQYXVzZScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQbGF5KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUGxheScpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuJGluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCd1bnNsaWNrJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydjb25maWcnXS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgJiYgY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaCA9IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZVsncmVmcmVzaCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdPcHRpb25zWydyZWZyZXNoJ107XG5cbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tTZXRPcHRpb24nLCBuZXdPcHRpb25zLCByZWZyZXNoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3hTbGlja0l0ZW1dJyxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBASG9zdCgpIHByaXZhdGUgY2Fyb3VzZWw6IFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwuYWRkU2xpZGUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwucmVtb3ZlU2xpZGUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -30,3 +30,2 @@ import { CommonModule } from '@angular/common'; | ||
export { SlickCarouselModule }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0UsMkRBQWMsbUJBQW1CLENBQUM7Ozs7O2dCQUVqQyxRQUFRLFNBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3dCQUN0QixrQkFBa0I7cUJBQ25CO2lCQUNGOzs4QkFsQkQ7O1NBbUJhLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NsaWNrQ2Fyb3VzZWxDb21wb25lbnQsIFNsaWNrSXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NsaWNrLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTbGlja0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIFNsaWNrSXRlbURpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsTW9kdWxlIHtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0UsMkRBQWMsbUJBQW1CLENBQUM7QUFFbEM7SUFBQTtJQWNBLENBQUM7O2dCQWRBLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3dCQUN0QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLGtCQUFrQjtxQkFDbkI7aUJBQ0Y7O0lBRUQsMEJBQUM7Q0FBQSxBQWRELElBY0M7U0FEWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTbGlja0Nhcm91c2VsQ29tcG9uZW50LCBTbGlja0l0ZW1EaXJlY3RpdmV9IGZyb20gJy4vc2xpY2suY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgU2xpY2tJdGVtRGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tDYXJvdXNlbE1vZHVsZSB7XG59XG4iXX0= |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -9,3 +9,2 @@ /** | ||
export { SlickCarouselModule, SlickCarouselComponent, SlickItemDirective } from './index'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNsaWNrLWNhcm91c2VsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibmd4LXNsaWNrLWNhcm91c2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnRkFBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19 |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -73,22 +73,39 @@ import { isPlatformBrowser } from '@angular/common'; | ||
} | ||
else if (nextSlidesLength === 0) { | ||
// unslick case | ||
else if (nextSlidesLength === 0) { // unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach(function (slickItem) { | ||
this._addedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
_this.slides.push(slickItem); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach(function (slickItem) { | ||
this._removedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
/** @type {?} */ | ||
var idx = _this.slides.indexOf(slickItem); | ||
_this.slides = _this.slides.filter(function (s) { return s !== slickItem; }); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.slides = _this.slides.filter((/** | ||
* @param {?} s | ||
* @return {?} | ||
*/ | ||
function (s) { return s !== slickItem; })); | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickRemove', idx); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._removedSlides = []; | ||
@@ -114,37 +131,87 @@ } | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance = jQuery(_this.el.nativeElement); | ||
_this.$instance.on('init', function (event, slick) { | ||
_this.zone.run(function () { | ||
_this.$instance.on('init', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.init.emit({ event: event, slick: slick }); | ||
}); | ||
}); | ||
})); | ||
})); | ||
_this.$instance.slick(_this.config); | ||
_this.zone.run(function () { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.initialized = true; | ||
_this.currentIndex = (_this.config && _this.config.initialSlide) ? _this.config.initialSlide : 0; | ||
}); | ||
_this.$instance.on('afterChange', function (event, slick, currentSlide) { | ||
_this.zone.run(function () { | ||
})); | ||
_this.$instance.on('afterChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.afterChange.emit({ event: event, slick: slick, currentSlide: currentSlide }); | ||
_this.currentIndex = currentSlide; | ||
}); | ||
}); | ||
_this.$instance.on('beforeChange', function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('beforeChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @param {?} nextSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.beforeChange.emit({ event: event, slick: slick, currentSlide: currentSlide, nextSlide: nextSlide }); | ||
}); | ||
}); | ||
_this.$instance.on('breakpoint', function (event, slick, breakpoint) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('breakpoint', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
function (event, slick, breakpoint) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.breakpoint.emit({ event: event, slick: slick, breakpoint: breakpoint }); | ||
}); | ||
}); | ||
_this.$instance.on('destroy', function (event, slick) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('destroy', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.destroy.emit({ event: event, slick: slick }); | ||
_this.initialized = false; | ||
}); | ||
}); | ||
}); | ||
})); | ||
})); | ||
})); | ||
}; | ||
@@ -175,2 +242,5 @@ /** | ||
* Slick Method | ||
*/ | ||
/** | ||
* Slick Method | ||
* @param {?} index | ||
@@ -186,5 +256,8 @@ * @return {?} | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickGoTo', index); | ||
}); | ||
})); | ||
}; | ||
@@ -199,5 +272,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickNext'); | ||
}); | ||
})); | ||
}; | ||
@@ -212,5 +288,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPrev'); | ||
}); | ||
})); | ||
}; | ||
@@ -225,5 +304,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPause'); | ||
}); | ||
})); | ||
}; | ||
@@ -238,5 +320,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPlay'); | ||
}); | ||
})); | ||
}; | ||
@@ -252,5 +337,8 @@ /** | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('unslick'); | ||
}); | ||
})); | ||
this.$instance = undefined; | ||
@@ -277,5 +365,8 @@ } | ||
delete newOptions_1['refresh']; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickSetOption', newOptions_1, refresh_1); | ||
}); | ||
})); | ||
} | ||
@@ -290,3 +381,6 @@ } | ||
provide: NG_VALUE_ACCESSOR, | ||
useExisting: forwardRef(function () { return SlickCarouselComponent; }), | ||
useExisting: forwardRef((/** | ||
* @return {?} | ||
*/ | ||
function () { return SlickCarouselComponent; })), | ||
multi: true | ||
@@ -334,9 +428,21 @@ }], | ||
SlickCarouselComponent.prototype.initialized; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype._removedSlides; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype._addedSlides; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype.el; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickCarouselComponent.prototype.zone; | ||
@@ -389,8 +495,13 @@ } | ||
SlickItemDirective.prototype.el; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickItemDirective.prototype.platformId; | ||
/** @type {?} */ | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
SlickItemDirective.prototype.carousel; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsic2xpY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBR0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7SUFpQzdDOztPQUVHO0lBQ0gsZ0NBQW9CLEVBQWMsRUFDZDtRQURBLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxTQUFJLEdBQUosSUFBSTsyQkFqQm1CLElBQUksWUFBWSxFQUFFOzRCQUNqQixJQUFJLFlBQVksRUFBRTswQkFDcEIsSUFBSSxZQUFZLEVBQUU7dUJBQ3JCLElBQUksWUFBWSxFQUFFO29CQUNyQixJQUFJLFlBQVksRUFBRTtzQkFJL0IsRUFBRTsyQkFDSixLQUFLOzhCQUNxQixFQUFFOzRCQUNKLEVBQUU7S0FROUM7SUFFRDs7T0FFRzs7Ozs7SUFDSCw0Q0FBVzs7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ2xCOzs7O0lBRUQsZ0RBQWU7OztJQUFmO1FBQ0ksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7S0FDN0I7SUFFRDs7T0FFRzs7Ozs7SUFDSCxtREFBa0I7Ozs7SUFBbEI7UUFBQSxpQkE2QkM7UUE1QkcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBQ2pFLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDcEcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2lCQUNwQjs7YUFFSjtZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBQSxTQUFTO29CQUMvQixLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDNUIsS0FBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDeEIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ2hFLENBQUMsQ0FBQztpQkFDTixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBRXZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQUEsU0FBUzs7b0JBQ2pDLElBQU0sR0FBRyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMzQyxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLFNBQVMsRUFBZixDQUFlLENBQUMsQ0FBQztvQkFDdkQsS0FBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDeEIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUM1QyxDQUFDLENBQUM7aUJBQ04sQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO2FBQzVCO1NBQ0o7S0FDSjtJQUVEOztPQUVHOzs7OztJQUNILDBDQUFTOzs7O0lBQVQ7UUFBQSxpQkErQ0M7UUE5Q0csSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDeEIsS0FBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUUvQyxLQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxLQUFLLEVBQUUsS0FBSztnQkFDbkMsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ1YsS0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLE9BQUEsRUFBRSxLQUFLLE9BQUEsRUFBQyxDQUFDLENBQUM7aUJBQ2xDLENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVsQyxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDVixLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFFeEIsS0FBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUksQ0FBQyxNQUFNLElBQUksS0FBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFFSCxLQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFlBQVk7Z0JBQ3hELEtBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNWLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxPQUFBLEVBQUUsS0FBSyxPQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUMsQ0FBQyxDQUFDO29CQUNwRCxLQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztpQkFDcEMsQ0FBQyxDQUFDO2FBQ04sQ0FBQyxDQUFDO1lBRUgsS0FBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUztnQkFDcEUsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ1YsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLE9BQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxZQUFZLGNBQUEsRUFBRSxTQUFTLFdBQUEsRUFBQyxDQUFDLENBQUM7aUJBQ25FLENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVTtnQkFDckQsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ1YsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLE9BQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxVQUFVLFlBQUEsRUFBQyxDQUFDLENBQUM7aUJBQ3BELENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFDLEtBQUssRUFBRSxLQUFLO2dCQUN0QyxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDVixLQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssT0FBQSxFQUFFLEtBQUssT0FBQSxFQUFDLENBQUMsQ0FBQztvQkFDbEMsS0FBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7aUJBQzVCLENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQztTQUNOLENBQUMsQ0FBQztLQUNOOzs7OztJQUVELHlDQUFROzs7O0lBQVIsVUFBUyxTQUE2QjtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNyQzs7Ozs7SUFFRCw0Q0FBVzs7OztJQUFYLFVBQVksU0FBNkI7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdkM7Ozs7OztJQUtNLDBDQUFTOzs7OztjQUFDLEtBQWE7O1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDeEIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDLENBQUMsQ0FBQzs7Ozs7SUFHQSwwQ0FBUzs7Ozs7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ3hCLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDLENBQUMsQ0FBQzs7Ozs7SUFHQSwwQ0FBUzs7Ozs7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ3hCLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDLENBQUMsQ0FBQzs7Ozs7SUFHQSwyQ0FBVTs7Ozs7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ3hCLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3RDLENBQUMsQ0FBQzs7Ozs7SUFHQSwwQ0FBUzs7Ozs7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ3hCLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDLENBQUMsQ0FBQzs7Ozs7SUFHQSx3Q0FBTzs7Ozs7UUFDVixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2dCQUN4QixLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDOzs7Ozs7SUFHN0IsNENBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQWxDLGlCQVlDO1FBWEcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNySCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs7Z0JBQ25CLElBQU0sU0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7O2dCQUMxRCxJQUFNLFlBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3JFLE9BQU8sWUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUN4QixLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFVLEVBQUUsU0FBTyxDQUFDLENBQUM7aUJBQy9ELENBQUMsQ0FBQzthQUNOO1NBQ0o7S0FDSjs7Z0JBbE1KLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQzs0QkFDUixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSxzQkFBc0IsRUFBdEIsQ0FBc0IsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQztvQkFDRixRQUFRLEVBQUUsMkJBQTJCO2lCQUN4Qzs7OztnQkE5QkcsVUFBVTtnQkFNVixNQUFNOzs7eUJBMkJMLEtBQUs7OEJBQ0wsTUFBTTsrQkFDTixNQUFNOzZCQUNOLE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNOztpQ0E1Q1g7O1NBcUNhLHNCQUFzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnTS9CLDRCQUFtQixFQUFjLEVBQ1EsVUFBa0IsRUFDL0IsUUFBZ0M7UUFGekMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNRLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7S0FDM0Q7Ozs7SUFFRCxxQ0FBUTs7O0lBQVI7UUFDSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO0tBQ0o7Ozs7SUFFRCx3Q0FBVzs7O0lBQVg7UUFDSSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO0tBQ0o7O2dCQW5CSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7Ozs7Z0JBN05HLFVBQVU7NkNBZ09HLE1BQU0sU0FBQyxXQUFXO2dCQUNPLHNCQUFzQix1QkFBL0MsSUFBSTs7NkJBdk9yQjs7U0FvT2Esa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmRlY2xhcmUgY29uc3QgalF1ZXJ5OiBhbnk7XG5cbi8qKlxuICogU2xpY2sgY29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXNsaWNrLWNhcm91c2VsJyxcbiAgICBleHBvcnRBczogJ3NsaWNrLWNhcm91c2VsJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gICAgQE91dHB1dCgpIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmVmb3JlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnJlYWtwb2ludDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRlc3Ryb3k6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyAkaW5zdGFuY2U6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHNsaWRlczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZW1vdmVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuICAgIHByaXZhdGUgX2FkZGVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgem9uZTogTmdab25lKSB7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjb21wb25lbnQgZGVzdHJveVxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc2xpY2soKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IHZpZXcgY2hlY2tlZFxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FkZGVkU2xpZGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2xpZGVzTGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggKyB0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFNsaWRlc0xlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgbmV4dFNsaWRlc0xlbmd0aCBpcyB6ZXJlLCBkbyBub3RoaW5nXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTbGlkZXNMZW5ndGggPT09IDApIHsgLy8gdW5zbGljayBjYXNlXG4gICAgICAgICAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzLmZvckVhY2goc2xpY2tJdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrQWRkJywgc2xpY2tJdGVtLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuc2xpZGVzLmluZGV4T2Yoc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLnNsaWRlcy5maWx0ZXIocyA9PiBzICE9PSBzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUmVtb3ZlJywgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBzbGlja1xuICAgICAqL1xuICAgIGluaXRTbGljaygpIHtcbiAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLl9hZGRlZFNsaWRlcztcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSBqUXVlcnkodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2luaXQnLCAoZXZlbnQsIHNsaWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdC5lbWl0KHtldmVudCwgc2xpY2t9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljayh0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuaW5pdGlhbFNsaWRlKSA/IHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSA6IDA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2FmdGVyQ2hhbmdlJywgKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7ZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JlZm9yZUNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlLCBuZXh0U2xpZGV9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYnJlYWtwb2ludCcsIChldmVudCwgc2xpY2ssIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50LmVtaXQoe2V2ZW50LCBzbGljaywgYnJlYWtwb2ludH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdkZXN0cm95JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3kuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTbGlkZShzbGlja0l0ZW06IFNsaWNrSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2xpY2sgTWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIHNsaWNrR29UbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tHb1RvJywgaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tOZXh0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrTmV4dCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQcmV2KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUHJldicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQYXVzZSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1BhdXNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1BsYXkoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy4kaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoID0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlWydyZWZyZXNoJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09wdGlvbnNbJ3JlZnJlc2gnXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1NldE9wdGlvbicsIG5ld09wdGlvbnMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFNsaWNrSXRlbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0l0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBjYXJvdXNlbDogU2xpY2tDYXJvdXNlbENvbXBvbmVudCkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5hZGRTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5yZW1vdmVTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNsaWNrLWNhcm91c2VsLyIsInNvdXJjZXMiOlsic2xpY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBR0gsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRDtJQTBCSTs7T0FFRztJQUNILGdDQUFvQixFQUFjLEVBQ2QsSUFBWTtRQURaLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBakJ0QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJaEQsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUF5QixFQUFFLENBQUM7UUFDMUMsaUJBQVksR0FBeUIsRUFBRSxDQUFDO0lBUWhELENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSCw0Q0FBVzs7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7Ozs7SUFFRCxnREFBZTs7O0lBQWY7UUFDSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUs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QTBEOztJQUMxRCxzQ0FBdUQ7O0lBRXZELDJDQUFzQjs7SUFDdEIsOENBQTRCOztJQUM1Qix3Q0FBMEI7O0lBQzFCLDZDQUEyQjs7Ozs7SUFDM0IsZ0RBQWtEOzs7OztJQUNsRCw4Q0FBZ0Q7Ozs7O0lBS3BDLG9DQUFzQjs7Ozs7SUFDdEIsc0NBQW9COztBQXdLcEM7SUFJSSw0QkFBbUIsRUFBYyxFQUNRLFVBQWtCLEVBQy9CLFFBQWdDO1FBRnpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDUSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQzVELENBQUM7Ozs7SUFFRCxxQ0FBUTs7O0lBQVI7UUFDSSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztJQUNMLENBQUM7Ozs7SUFFRCx3Q0FBVzs7O0lBQVg7UUFDSSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7O2dCQW5CSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7Ozs7Z0JBN05HLFVBQVU7NkNBZ09HLE1BQU0sU0FBQyxXQUFXO2dCQUNPLHNCQUFzQix1QkFBL0MsSUFBSTs7SUFjckIseUJBQUM7Q0FBQSxBQXBCRCxJQW9CQztTQWpCWSxrQkFBa0I7OztJQUNmLGdDQUFxQjs7Ozs7SUFDckIsd0NBQStDOzs7OztJQUMvQyxzQ0FBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZGVjbGFyZSBjb25zdCBqUXVlcnk6IGFueTtcblxuLyoqXG4gKiBTbGljayBjb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtc2xpY2stY2Fyb3VzZWwnLFxuICAgIGV4cG9ydEFzOiAnc2xpY2stY2Fyb3VzZWwnLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQpLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG59KVxuZXhwb3J0IGNsYXNzIFNsaWNrQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgICBASW5wdXQoKSBjb25maWc6IGFueTtcbiAgICBAT3V0cHV0KCkgYWZ0ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBiZWZvcmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBicmVha3BvaW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZGVzdHJveTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGluaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljICRpbnN0YW5jZTogYW55O1xuICAgIHB1YmxpYyBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgICBwdWJsaWMgc2xpZGVzOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3JlbW92ZWRTbGlkZXM6IFNsaWNrSXRlbURpcmVjdGl2ZVtdID0gW107XG4gICAgcHJpdmF0ZSBfYWRkZWRTbGlkZXM6IFNsaWNrSXRlbURpcmVjdGl2ZVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGNvbXBvbmVudCBkZXN0cm95XG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zbGljaygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ0FmdGVyVmlld0NoZWNrZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjb21wb25lbnQgdmlldyBjaGVja2VkXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBpZiAodGhpcy5fYWRkZWRTbGlkZXMubGVuZ3RoID4gMCB8fCB0aGlzLl9yZW1vdmVkU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRTbGlkZXNMZW5ndGggPSB0aGlzLnNsaWRlcy5sZW5ndGggLSB0aGlzLl9yZW1vdmVkU2xpZGVzLmxlbmd0aCArIHRoaXMuX2FkZGVkU2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U2xpZGVzTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRTbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpZiBuZXh0U2xpZGVzTGVuZ3RoIGlzIHplcmUsIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dFNsaWRlc0xlbmd0aCA9PT0gMCkgeyAvLyB1bnNsaWNrIGNhc2VcbiAgICAgICAgICAgICAgICB0aGlzLnVuc2xpY2soKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMuZm9yRWFjaChzbGlja0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tBZGQnLCBzbGlja0l0ZW0uZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzID0gW107XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVkU2xpZGVzLmZvckVhY2goc2xpY2tJdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5zbGlkZXMuaW5kZXhPZihzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlcyA9IHRoaXMuc2xpZGVzLmZpbHRlcihzID0+IHMgIT09IHNsaWNrSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tSZW1vdmUnLCBpZHgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVkU2xpZGVzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbml0IHNsaWNrXG4gICAgICovXG4gICAgaW5pdFNsaWNrKCkge1xuICAgICAgICB0aGlzLnNsaWRlcyA9IHRoaXMuX2FkZGVkU2xpZGVzO1xuICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcyA9IFtdO1xuICAgICAgICB0aGlzLl9yZW1vdmVkU2xpZGVzID0gW107XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZSA9IGpRdWVyeSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignaW5pdCcsIChldmVudCwgc2xpY2spID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0LmVtaXQoe2V2ZW50LCBzbGlja30pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9ICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbmZpZy5pbml0aWFsU2xpZGUpID8gdGhpcy5jb25maWcuaW5pdGlhbFNsaWRlIDogMDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYWZ0ZXJDaGFuZ2UnLCAoZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlckNoYW5nZS5lbWl0KHtldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGN1cnJlbnRTbGlkZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYmVmb3JlQ2hhbmdlJywgKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlLCBuZXh0U2xpZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWZvcmVDaGFuZ2UuZW1pdCh7ZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUsIG5leHRTbGlkZX0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdicmVha3BvaW50JywgKGV2ZW50LCBzbGljaywgYnJlYWtwb2ludCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJyZWFrcG9pbnQuZW1pdCh7ZXZlbnQsIHNsaWNrLCBicmVha3BvaW50fSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2Rlc3Ryb3knLCAoZXZlbnQsIHNsaWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveS5lbWl0KHtldmVudCwgc2xpY2t9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZFNsaWRlKHNsaWNrSXRlbTogU2xpY2tJdGVtRGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzLnB1c2goc2xpY2tJdGVtKTtcbiAgICB9XG5cbiAgICByZW1vdmVTbGlkZShzbGlja0l0ZW06IFNsaWNrSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9yZW1vdmVkU2xpZGVzLnB1c2goc2xpY2tJdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTbGljayBNZXRob2RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2xpY2tHb1RvKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja0dvVG8nLCBpbmRleCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja05leHQoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tOZXh0Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1ByZXYoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQcmV2Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1BhdXNlKCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUGF1c2UnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNsaWNrUGxheSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1BsYXknKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLiRpbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygndW5zbGljaycpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlICYmIGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZnJlc2ggPSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWVbJ3JlZnJlc2gnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3T3B0aW9uc1sncmVmcmVzaCddO1xuXG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrU2V0T3B0aW9uJywgbmV3T3B0aW9ucywgcmVmcmVzaCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmd4U2xpY2tJdGVtXScsXG59KVxuZXhwb3J0IGNsYXNzIFNsaWNrSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgQEhvc3QoKSBwcml2YXRlIGNhcm91c2VsOiBTbGlja0Nhcm91c2VsQ29tcG9uZW50KSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLmFkZFNsaWRlKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLnJlbW92ZVNsaWRlKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 |
import { isPlatformBrowser, CommonModule } from '@angular/common'; | ||
import { Component, Directive, ElementRef, EventEmitter, forwardRef, Host, Inject, Input, NgZone, Output, PLATFORM_ID, NgModule } from '@angular/core'; | ||
import { EventEmitter, Component, forwardRef, ElementRef, NgZone, Input, Output, Directive, Inject, PLATFORM_ID, Host, NgModule } from '@angular/core'; | ||
import { NG_VALUE_ACCESSOR } from '@angular/forms'; | ||
@@ -7,3 +7,3 @@ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -59,22 +59,39 @@ /** | ||
} | ||
else if (nextSlidesLength === 0) { | ||
// unslick case | ||
else if (nextSlidesLength === 0) { // unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach(slickItem => { | ||
this._addedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
slickItem => { | ||
this.slides.push(slickItem); | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach(slickItem => { | ||
this._removedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
slickItem => { | ||
/** @type {?} */ | ||
const idx = this.slides.indexOf(slickItem); | ||
this.slides = this.slides.filter(s => s !== slickItem); | ||
this.zone.runOutsideAngular(() => { | ||
this.slides = this.slides.filter((/** | ||
* @param {?} s | ||
* @return {?} | ||
*/ | ||
s => s !== slickItem)); | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickRemove', idx); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._removedSlides = []; | ||
@@ -92,37 +109,87 @@ } | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance = jQuery(this.el.nativeElement); | ||
this.$instance.on('init', (event, slick) => { | ||
this.zone.run(() => { | ||
this.$instance.on('init', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
(event, slick) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.init.emit({ event, slick }); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this.$instance.slick(this.config); | ||
this.zone.run(() => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.initialized = true; | ||
this.currentIndex = (this.config && this.config.initialSlide) ? this.config.initialSlide : 0; | ||
}); | ||
this.$instance.on('afterChange', (event, slick, currentSlide) => { | ||
this.zone.run(() => { | ||
})); | ||
this.$instance.on('afterChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @return {?} | ||
*/ | ||
(event, slick, currentSlide) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.afterChange.emit({ event, slick, currentSlide }); | ||
this.currentIndex = currentSlide; | ||
}); | ||
}); | ||
this.$instance.on('beforeChange', (event, slick, currentSlide, nextSlide) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('beforeChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @param {?} nextSlide | ||
* @return {?} | ||
*/ | ||
(event, slick, currentSlide, nextSlide) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.beforeChange.emit({ event, slick, currentSlide, nextSlide }); | ||
}); | ||
}); | ||
this.$instance.on('breakpoint', (event, slick, breakpoint) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('breakpoint', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
(event, slick, breakpoint) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.breakpoint.emit({ event, slick, breakpoint }); | ||
}); | ||
}); | ||
this.$instance.on('destroy', (event, slick) => { | ||
this.zone.run(() => { | ||
})); | ||
})); | ||
this.$instance.on('destroy', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
(event, slick) => { | ||
this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.destroy.emit({ event, slick }); | ||
this.initialized = false; | ||
}); | ||
}); | ||
}); | ||
})); | ||
})); | ||
})); | ||
} | ||
@@ -149,5 +216,8 @@ /** | ||
slickGoTo(index) { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickGoTo', index); | ||
}); | ||
})); | ||
} | ||
@@ -158,5 +228,8 @@ /** | ||
slickNext() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickNext'); | ||
}); | ||
})); | ||
} | ||
@@ -167,5 +240,8 @@ /** | ||
slickPrev() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPrev'); | ||
}); | ||
})); | ||
} | ||
@@ -176,5 +252,8 @@ /** | ||
slickPause() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPause'); | ||
}); | ||
})); | ||
} | ||
@@ -185,5 +264,8 @@ /** | ||
slickPlay() { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickPlay'); | ||
}); | ||
})); | ||
} | ||
@@ -195,5 +277,8 @@ /** | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('unslick'); | ||
}); | ||
})); | ||
this.$instance = undefined; | ||
@@ -215,5 +300,8 @@ } | ||
delete newOptions['refresh']; | ||
this.zone.runOutsideAngular(() => { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this.$instance.slick('slickSetOption', newOptions, refresh); | ||
}); | ||
})); | ||
} | ||
@@ -229,3 +317,6 @@ } | ||
provide: NG_VALUE_ACCESSOR, | ||
useExisting: forwardRef(() => SlickCarouselComponent), | ||
useExisting: forwardRef((/** | ||
* @return {?} | ||
*/ | ||
() => SlickCarouselComponent)), | ||
multi: true | ||
@@ -291,3 +382,3 @@ }], | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -312,9 +403,3 @@ class SlickCarouselModule { | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
*/ | ||
export { SlickCarouselModule, SlickCarouselComponent, SlickItemDirective }; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNsaWNrLWNhcm91c2VsLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvc2xpY2suY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmRlY2xhcmUgY29uc3QgalF1ZXJ5OiBhbnk7XG5cbi8qKlxuICogU2xpY2sgY29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXNsaWNrLWNhcm91c2VsJyxcbiAgICBleHBvcnRBczogJ3NsaWNrLWNhcm91c2VsJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gICAgQE91dHB1dCgpIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmVmb3JlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnJlYWtwb2ludDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRlc3Ryb3k6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyAkaW5zdGFuY2U6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHNsaWRlczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZW1vdmVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuICAgIHByaXZhdGUgX2FkZGVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgem9uZTogTmdab25lKSB7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjb21wb25lbnQgZGVzdHJveVxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc2xpY2soKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IHZpZXcgY2hlY2tlZFxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FkZGVkU2xpZGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2xpZGVzTGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggKyB0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFNsaWRlc0xlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgbmV4dFNsaWRlc0xlbmd0aCBpcyB6ZXJlLCBkbyBub3RoaW5nXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTbGlkZXNMZW5ndGggPT09IDApIHsgLy8gdW5zbGljayBjYXNlXG4gICAgICAgICAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzLmZvckVhY2goc2xpY2tJdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrQWRkJywgc2xpY2tJdGVtLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuc2xpZGVzLmluZGV4T2Yoc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLnNsaWRlcy5maWx0ZXIocyA9PiBzICE9PSBzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUmVtb3ZlJywgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBzbGlja1xuICAgICAqL1xuICAgIGluaXRTbGljaygpIHtcbiAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLl9hZGRlZFNsaWRlcztcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSBqUXVlcnkodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2luaXQnLCAoZXZlbnQsIHNsaWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdC5lbWl0KHtldmVudCwgc2xpY2t9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljayh0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuaW5pdGlhbFNsaWRlKSA/IHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSA6IDA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2FmdGVyQ2hhbmdlJywgKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7ZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JlZm9yZUNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlLCBuZXh0U2xpZGV9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYnJlYWtwb2ludCcsIChldmVudCwgc2xpY2ssIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50LmVtaXQoe2V2ZW50LCBzbGljaywgYnJlYWtwb2ludH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdkZXN0cm95JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3kuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTbGlkZShzbGlja0l0ZW06IFNsaWNrSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2xpY2sgTWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIHNsaWNrR29UbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tHb1RvJywgaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tOZXh0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrTmV4dCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQcmV2KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUHJldicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQYXVzZSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1BhdXNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1BsYXkoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy4kaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoID0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlWydyZWZyZXNoJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09wdGlvbnNbJ3JlZnJlc2gnXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1NldE9wdGlvbicsIG5ld09wdGlvbnMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFNsaWNrSXRlbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0l0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBjYXJvdXNlbDogU2xpY2tDYXJvdXNlbENvbXBvbmVudCkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5hZGRTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5yZW1vdmVTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NsaWNrQ2Fyb3VzZWxDb21wb25lbnQsIFNsaWNrSXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NsaWNrLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTbGlja0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIFNsaWNrSXRlbURpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsTW9kdWxlIHtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7QUFxQ0E7Ozs7OztJQW1CSSxZQUFvQixFQUFjLEVBQ2Q7UUFEQSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsU0FBSSxHQUFKLElBQUk7MkJBakJtQixJQUFJLFlBQVksRUFB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 | ||
export { SlickCarouselComponent, SlickCarouselModule, SlickItemDirective }; | ||
//# sourceMappingURL=ngx-slick-carousel.js.map |
import { isPlatformBrowser, CommonModule } from '@angular/common'; | ||
import { Component, Directive, ElementRef, EventEmitter, forwardRef, Host, Inject, Input, NgZone, Output, PLATFORM_ID, NgModule } from '@angular/core'; | ||
import { Component, forwardRef, ElementRef, NgZone, Input, Output, Directive, Inject, PLATFORM_ID, Host, EventEmitter, NgModule } from '@angular/core'; | ||
import { NG_VALUE_ACCESSOR } from '@angular/forms'; | ||
@@ -7,3 +7,3 @@ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -75,22 +75,39 @@ /** | ||
} | ||
else if (nextSlidesLength === 0) { | ||
// unslick case | ||
else if (nextSlidesLength === 0) { // unslick case | ||
this.unslick(); | ||
} | ||
else { | ||
this._addedSlides.forEach(function (slickItem) { | ||
this._addedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
_this.slides.push(slickItem); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickAdd', slickItem.el.nativeElement); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._addedSlides = []; | ||
this._removedSlides.forEach(function (slickItem) { | ||
this._removedSlides.forEach((/** | ||
* @param {?} slickItem | ||
* @return {?} | ||
*/ | ||
function (slickItem) { | ||
/** @type {?} */ | ||
var idx = _this.slides.indexOf(slickItem); | ||
_this.slides = _this.slides.filter(function (s) { return s !== slickItem; }); | ||
_this.zone.runOutsideAngular(function () { | ||
_this.slides = _this.slides.filter((/** | ||
* @param {?} s | ||
* @return {?} | ||
*/ | ||
function (s) { return s !== slickItem; })); | ||
_this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickRemove', idx); | ||
}); | ||
}); | ||
})); | ||
})); | ||
this._removedSlides = []; | ||
@@ -116,37 +133,87 @@ } | ||
this._removedSlides = []; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance = jQuery(_this.el.nativeElement); | ||
_this.$instance.on('init', function (event, slick) { | ||
_this.zone.run(function () { | ||
_this.$instance.on('init', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.init.emit({ event: event, slick: slick }); | ||
}); | ||
}); | ||
})); | ||
})); | ||
_this.$instance.slick(_this.config); | ||
_this.zone.run(function () { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.initialized = true; | ||
_this.currentIndex = (_this.config && _this.config.initialSlide) ? _this.config.initialSlide : 0; | ||
}); | ||
_this.$instance.on('afterChange', function (event, slick, currentSlide) { | ||
_this.zone.run(function () { | ||
})); | ||
_this.$instance.on('afterChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.afterChange.emit({ event: event, slick: slick, currentSlide: currentSlide }); | ||
_this.currentIndex = currentSlide; | ||
}); | ||
}); | ||
_this.$instance.on('beforeChange', function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('beforeChange', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} currentSlide | ||
* @param {?} nextSlide | ||
* @return {?} | ||
*/ | ||
function (event, slick, currentSlide, nextSlide) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.beforeChange.emit({ event: event, slick: slick, currentSlide: currentSlide, nextSlide: nextSlide }); | ||
}); | ||
}); | ||
_this.$instance.on('breakpoint', function (event, slick, breakpoint) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('breakpoint', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
function (event, slick, breakpoint) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.breakpoint.emit({ event: event, slick: slick, breakpoint: breakpoint }); | ||
}); | ||
}); | ||
_this.$instance.on('destroy', function (event, slick) { | ||
_this.zone.run(function () { | ||
})); | ||
})); | ||
_this.$instance.on('destroy', (/** | ||
* @param {?} event | ||
* @param {?} slick | ||
* @return {?} | ||
*/ | ||
function (event, slick) { | ||
_this.zone.run((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.destroy.emit({ event: event, slick: slick }); | ||
_this.initialized = false; | ||
}); | ||
}); | ||
}); | ||
})); | ||
})); | ||
})); | ||
}; | ||
@@ -177,2 +244,5 @@ /** | ||
* Slick Method | ||
*/ | ||
/** | ||
* Slick Method | ||
* @param {?} index | ||
@@ -188,5 +258,8 @@ * @return {?} | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickGoTo', index); | ||
}); | ||
})); | ||
}; | ||
@@ -201,5 +274,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickNext'); | ||
}); | ||
})); | ||
}; | ||
@@ -214,5 +290,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPrev'); | ||
}); | ||
})); | ||
}; | ||
@@ -227,5 +306,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPause'); | ||
}); | ||
})); | ||
}; | ||
@@ -240,5 +322,8 @@ /** | ||
var _this = this; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickPlay'); | ||
}); | ||
})); | ||
}; | ||
@@ -254,5 +339,8 @@ /** | ||
if (this.$instance) { | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('unslick'); | ||
}); | ||
})); | ||
this.$instance = undefined; | ||
@@ -279,5 +367,8 @@ } | ||
delete newOptions_1['refresh']; | ||
this.zone.runOutsideAngular(function () { | ||
this.zone.runOutsideAngular((/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this.$instance.slick('slickSetOption', newOptions_1, refresh_1); | ||
}); | ||
})); | ||
} | ||
@@ -292,3 +383,6 @@ } | ||
provide: NG_VALUE_ACCESSOR, | ||
useExisting: forwardRef(function () { return SlickCarouselComponent; }), | ||
useExisting: forwardRef((/** | ||
* @return {?} | ||
*/ | ||
function () { return SlickCarouselComponent; })), | ||
multi: true | ||
@@ -358,3 +452,3 @@ }], | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -382,9 +476,3 @@ var SlickCarouselModule = /** @class */ (function () { | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc | ||
*/ | ||
export { SlickCarouselModule, SlickCarouselComponent, SlickItemDirective }; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNsaWNrLWNhcm91c2VsLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvc2xpY2suY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtc2xpY2stY2Fyb3VzZWwvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmRlY2xhcmUgY29uc3QgalF1ZXJ5OiBhbnk7XG5cbi8qKlxuICogU2xpY2sgY29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXNsaWNrLWNhcm91c2VsJyxcbiAgICBleHBvcnRBczogJ3NsaWNrLWNhcm91c2VsJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0Nhcm91c2VsQ29tcG9uZW50KSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gICAgQE91dHB1dCgpIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmVmb3JlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnJlYWtwb2ludDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRlc3Ryb3k6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBpbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyAkaW5zdGFuY2U6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHNsaWRlczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZW1vdmVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuICAgIHByaXZhdGUgX2FkZGVkU2xpZGVzOiBTbGlja0l0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgem9uZTogTmdab25lKSB7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBjb21wb25lbnQgZGVzdHJveVxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc2xpY2soKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdBZnRlclZpZXdDaGVja2VkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY29tcG9uZW50IHZpZXcgY2hlY2tlZFxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FkZGVkU2xpZGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0U2xpZGVzTGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fcmVtb3ZlZFNsaWRlcy5sZW5ndGggKyB0aGlzLl9hZGRlZFNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFNsaWRlc0xlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gaWYgbmV4dFNsaWRlc0xlbmd0aCBpcyB6ZXJlLCBkbyBub3RoaW5nXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTbGlkZXNMZW5ndGggPT09IDApIHsgLy8gdW5zbGljayBjYXNlXG4gICAgICAgICAgICAgICAgdGhpcy51bnNsaWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkU2xpZGVzLmZvckVhY2goc2xpY2tJdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMucHVzaChzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrQWRkJywgc2xpY2tJdGVtLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5mb3JFYWNoKHNsaWNrSXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuc2xpZGVzLmluZGV4T2Yoc2xpY2tJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLnNsaWRlcy5maWx0ZXIocyA9PiBzICE9PSBzbGlja0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUmVtb3ZlJywgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBzbGlja1xuICAgICAqL1xuICAgIGluaXRTbGljaygpIHtcbiAgICAgICAgdGhpcy5zbGlkZXMgPSB0aGlzLl9hZGRlZFNsaWRlcztcbiAgICAgICAgdGhpcy5fYWRkZWRTbGlkZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcyA9IFtdO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSBqUXVlcnkodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2luaXQnLCAoZXZlbnQsIHNsaWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdC5lbWl0KHtldmVudCwgc2xpY2t9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljayh0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuaW5pdGlhbFNsaWRlKSA/IHRoaXMuY29uZmlnLmluaXRpYWxTbGlkZSA6IDA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2FmdGVyQ2hhbmdlJywgKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7ZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uub24oJ2JlZm9yZUNoYW5nZScsIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlQ2hhbmdlLmVtaXQoe2V2ZW50LCBzbGljaywgY3VycmVudFNsaWRlLCBuZXh0U2xpZGV9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5vbignYnJlYWtwb2ludCcsIChldmVudCwgc2xpY2ssIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50LmVtaXQoe2V2ZW50LCBzbGljaywgYnJlYWtwb2ludH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLm9uKCdkZXN0cm95JywgKGV2ZW50LCBzbGljaykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3kuZW1pdCh7ZXZlbnQsIHNsaWNrfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTbGlkZShzbGlja0l0ZW06IFNsaWNrSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9hZGRlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2xpZGUoc2xpY2tJdGVtOiBTbGlja0l0ZW1EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlZFNsaWRlcy5wdXNoKHNsaWNrSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2xpY2sgTWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIHNsaWNrR29UbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tHb1RvJywgaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tOZXh0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrTmV4dCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQcmV2KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3NsaWNrUHJldicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2xpY2tQYXVzZSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1BhdXNlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzbGlja1BsYXkoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRpbnN0YW5jZS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy4kaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2Uuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy4kaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoID0gY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlWydyZWZyZXNoJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09wdGlvbnNbJ3JlZnJlc2gnXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJGluc3RhbmNlLnNsaWNrKCdzbGlja1NldE9wdGlvbicsIG5ld09wdGlvbnMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFNsaWNrSXRlbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0l0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBjYXJvdXNlbDogU2xpY2tDYXJvdXNlbENvbXBvbmVudCkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5hZGRTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5yZW1vdmVTbGlkZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NsaWNrQ2Fyb3VzZWxDb21wb25lbnQsIFNsaWNrSXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9zbGljay5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NsaWNrLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2xpY2tDYXJvdXNlbENvbXBvbmVudCxcbiAgICBTbGlja0l0ZW1EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTbGlja0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIFNsaWNrSXRlbURpcmVjdGl2ZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlja0Nhcm91c2VsTW9kdWxlIHtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7O0lBd0RJLGdDQUFvQixFQUFjLEVBQ2Q7UUFEQSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsU0FBSSxHQUFKLElBQUk7MkJBakJtQixJQUFJLFlBQVksRUFBRTs0QkFD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 | ||
export { SlickCarouselComponent, SlickCarouselModule, SlickItemDirective }; | ||
//# sourceMappingURL=ngx-slick-carousel.js.map |
{ | ||
"name": "ngx-slick-carousel", | ||
"version": "0.4.4", | ||
"version": "0.4.5", | ||
"repository": { | ||
@@ -22,7 +22,7 @@ "type": "git", | ||
"peerDependencies": { | ||
"@angular/core": "^6.0.0 || ^7.0.0", | ||
"@angular/common": "^6.0.0 || ^7.0.0", | ||
"@angular/forms": "^6.0.0 || ^7.0.0", | ||
"@angular/core": "^7.0.0 || ^8.0.0", | ||
"@angular/common": "^7.0.0 || ^8.0.0", | ||
"@angular/forms": "^7.0.0 || ^8.0.0", | ||
"rxjs": "^6.0.0", | ||
"zone.js": "^0.8.26" | ||
"zone.js": "^0.9.1" | ||
}, | ||
@@ -29,0 +29,0 @@ "main": "bundles/ngx-slick-carousel.umd.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2386
179469
19
1
0